diff --git a/SECURITY.md b/SECURITY.md index e4a9a87230d..c17dd099ecf 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -10,7 +10,7 @@ The following document describes various aspects of the Firedancer security prog # Bug Bounty Program -Security-relevant bugs in Firedancer v0.1 should be submitted to our [Immunefi bug bounty program](https://immunefi.com/bug-bounty/firedancer/). +Security-relevant bugs in Firedancer v0.1 should be submitted to our [Immunefi bug bounty program](https://immunefi.com/bug-bounty/Frankendancer/). Under the terms and conditions of the program, you may be eligible for a reward. Code outside the scope of the bug bounty program is still in development. diff --git a/book/api/metrics-generated.md b/book/api/metrics-generated.md index 85cb0f37ba3..2cfb128b82d 100644 --- a/book/api/metrics-generated.md +++ b/book/api/metrics-generated.md @@ -617,7 +617,9 @@ | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​prune_​destination"} | counter | Number of gossip messages processed (Prune (destination)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​prune_​wallclock"} | counter | Number of gossip messages processed (Prune (wallclock)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​prune_​signature"} | counter | Number of gossip messages processed (Prune (signature)) | +| gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​push_​loopback"} | counter | Number of gossip messages processed (Push (loopback)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​push_​no_​valid_​crds"} | counter | Number of gossip messages processed (Push (no valid crds)) | +| gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​pull_​response_​loopback"} | counter | Number of gossip messages processed (Pull Response (loopback)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​pull_​response_​no_​valid_​crds"} | counter | Number of gossip messages processed (Pull Response (no valid crds)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​ping_​signature"} | counter | Number of gossip messages processed (Ping (signature)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​pong_​signature"} | counter | Number of gossip messages processed (Pong (signature)) | @@ -638,7 +640,9 @@ | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​prune_​destination"} | counter | Total wire bytes of gossip messages processed (Prune (destination)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​prune_​wallclock"} | counter | Total wire bytes of gossip messages processed (Prune (wallclock)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​prune_​signature"} | counter | Total wire bytes of gossip messages processed (Prune (signature)) | +| gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​push_​loopback"} | counter | Total wire bytes of gossip messages processed (Push (loopback)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​push_​no_​valid_​crds"} | counter | Total wire bytes of gossip messages processed (Push (no valid crds)) | +| gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​pull_​response_​loopback"} | counter | Total wire bytes of gossip messages processed (Pull Response (loopback)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​pull_​response_​no_​valid_​crds"} | counter | Total wire bytes of gossip messages processed (Pull Response (no valid crds)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​ping_​signature"} | counter | Total wire bytes of gossip messages processed (Ping (signature)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​pong_​signature"} | counter | Total wire bytes of gossip messages processed (Pong (signature)) | diff --git a/config/extra/with-arm.mk b/config/extra/with-arm.mk index 24ea0a12437..3abb2a7d156 100644 --- a/config/extra/with-arm.mk +++ b/config/extra/with-arm.mk @@ -30,7 +30,6 @@ endif else # CROSS=0 -include config/extra/with-ucontext.mk include config/extra/with-s2nbignum.mk include config/extra/with-blst.mk include config/extra/with-zstd.mk diff --git a/config/extra/with-ucontext.mk b/config/extra/with-ucontext.mk deleted file mode 100644 index ae413d011d1..00000000000 --- a/config/extra/with-ucontext.mk +++ /dev/null @@ -1,10 +0,0 @@ -# ucontext.h is no longer part of POSIX and thus considered an extra. -# It is still part of glibc, but not musl libc. - -# Hacky: If libucontext is installed, use that instead. -ifeq ($(shell test -f /lib/libucontext.a && echo 1),1) - LDFLAGS+=-lucontext -endif - -FD_HAS_UCONTEXT:=1 -CPPFLAGS+=-DFD_HAS_UCONTEXT=1 diff --git a/config/extra/with-x86-64.mk b/config/extra/with-x86-64.mk index db9802144a2..24bd3d8f8db 100644 --- a/config/extra/with-x86-64.mk +++ b/config/extra/with-x86-64.mk @@ -13,7 +13,6 @@ endif # -falign-loops since Clang/LLVM 13 ifndef FD_NODEPS -include config/extra/with-ucontext.mk include config/extra/with-s2nbignum.mk include config/extra/with-blst.mk include config/extra/with-zstd.mk diff --git a/contrib/codeql/lib/filter.qll b/contrib/codeql/lib/filter.qll index 226a03ff157..20cb126a32d 100644 --- a/contrib/codeql/lib/filter.qll +++ b/contrib/codeql/lib/filter.qll @@ -1,7 +1,14 @@ /** * Exclude agave code and whatever else we don't want to analyze. + * + * In production databases the source root is the repo root, so Firedancer + * files have relative paths starting with "src/". In CodeQL test databases + * the source root is the individual test directory, so the test .c files have + * bare filenames with no directory component. Both cases are included. */ import cpp predicate included(Location loc) { - loc.getFile().getRelativePath().prefix(4) = "src/" + loc.getFile().getRelativePath().prefix(4) = "src/" or + // Test databases: bare filename with no leading directory. + not loc.getFile().getRelativePath().matches("%/%") } diff --git a/contrib/codeql/src/nightly/ImplicitIntegerTruncation.ql b/contrib/codeql/src/nightly/ImplicitIntegerTruncation.ql new file mode 100644 index 00000000000..a532000bf6c --- /dev/null +++ b/contrib/codeql/src/nightly/ImplicitIntegerTruncation.ql @@ -0,0 +1,42 @@ +/** + * @name Implicit integer truncation + * @description An integer value is implicitly narrowed to a shorter integer type + * without an explicit cast. This can cause silent data loss. + * Under -Werror=all, GCC 8.3 rejects these conversions even for + * small integer literals (e.g. uchar x[2] = {3,4}). + * @kind problem + * @problem.severity warning + * @precision medium + * @id firedancer-io/implicit-integer-truncation + * @tags reliability + * correctness + * types + */ + +import cpp +import filter + +/** + * Holds if expression `e` is implicitly converted from integral type `fromType` + * to the narrower integral type `toType` without an explicit cast. + * + * Note: integer promotion artifacts are included (e.g. `uchar c = a + b` where + * `a + b` has type `int` due to promotion). These may be numerous; add explicit + * casts (e.g. `(uchar)(a + b)`) to suppress individual findings. + */ +predicate implicitIntegerTruncation(Expr e, IntegralType fromType, IntegralType toType) { + not e.hasExplicitConversion() and + not e.isInMacroExpansion() and + fromType = e.getType().getUnderlyingType() and + toType = e.getConversion().getType().getUnderlyingType() and + not fromType instanceof BoolType and + not toType instanceof BoolType and + toType.getSize() < fromType.getSize() +} + +from Expr e, IntegralType fromType, IntegralType toType +where + implicitIntegerTruncation(e, fromType, toType) and + included(e.getLocation()) +select e, + "Implicit truncation from " + fromType.getName() + " to " + toType.getName() + "." diff --git a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c new file mode 100644 index 00000000000..831f829da69 --- /dev/null +++ b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c @@ -0,0 +1,79 @@ +typedef unsigned char uchar; +typedef unsigned short ushort; +typedef unsigned int uint; +typedef unsigned long ulong; + +// ── Return-value truncation ──────────────────────────────────────────────── + +uchar ret_as_uchar(ulong x) { + return x; // $ Alert +} + +ushort ret_as_ushort(ulong x) { + return x; // $ Alert +} + +uint ret_as_uint(ulong x) { + return x; // $ Alert +} + +// ── Variable initialisation ──────────────────────────────────────────────── + +void init_vars(ulong big) { + uchar a = big; // $ Alert + ushort b = big; // $ Alert + uint c = big; // $ Alert + + // Explicit casts – no alert + uchar d = (uchar)big; // NO Alert + ushort e = (ushort)big; // NO Alert + uint f = (uint)big; // NO Alert + + // Widening – no alert + ulong g = c; // NO Alert + ulong h = b; // NO Alert + ulong i = a; // NO Alert + (void)(d + e + f + g + h + i); +} + +// ── Integer literal narrowing (GCC 8.3 compile-failure case) ────────────── +// int literals are widened to `int` by the C standard before assignment, +// which is an implicit truncation to `uchar`/`ushort`. + +void literal_narrow(void) { + uchar x = 3; // $ Alert + ushort y = 300; // $ Alert + (void)(x + y); +} + +// ── ulong literal narrowing (patterns from real codebase) ───────────────── +// e.g. `uchar x = 0UL` or `uchar x = 64UL` — ulong suffix makes this a +// ulong→uchar implicit truncation. + +void ulong_literal_narrow(void) { + uchar a = 0UL; // $ Alert + uchar b = 64UL; // $ Alert + (void)(a + b); +} + +// ── Function-call argument truncation ───────────────────────────────────── + +void takes_ushort(ushort x); + +void call_with_ulong(ulong big) { + takes_ushort(big); // $ Alert +} + +// ── Struct-member assignment ─────────────────────────────────────────────── + +struct narrow_fields { + ushort x; + uchar y; +}; + +void assign_members(ulong big) { + struct narrow_fields s; + s.x = big; // $ Alert + s.y = big; // $ Alert + s.x = (ushort)big; // NO Alert +} diff --git a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected new file mode 100644 index 00000000000..3f9645e64a9 --- /dev/null +++ b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected @@ -0,0 +1,13 @@ +| ImplicitIntegerTruncation.c:9:12:9:12 | x | Implicit truncation from unsigned long to unsigned char. | +| ImplicitIntegerTruncation.c:13:12:13:12 | x | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:17:12:17:12 | x | Implicit truncation from unsigned long to unsigned int. | +| ImplicitIntegerTruncation.c:23:16:23:18 | big | Implicit truncation from unsigned long to unsigned char. | +| ImplicitIntegerTruncation.c:24:16:24:18 | big | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:25:16:25:18 | big | Implicit truncation from unsigned long to unsigned int. | +| ImplicitIntegerTruncation.c:44:16:44:16 | 3 | Implicit truncation from int to unsigned char. | +| ImplicitIntegerTruncation.c:45:16:45:18 | 300 | Implicit truncation from int to unsigned short. | +| ImplicitIntegerTruncation.c:54:15:54:17 | 0 | Implicit truncation from unsigned long to unsigned char. | +| ImplicitIntegerTruncation.c:55:15:55:18 | 64 | Implicit truncation from unsigned long to unsigned char. | +| ImplicitIntegerTruncation.c:64:18:64:20 | big | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:76:11:76:13 | big | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:77:11:77:13 | big | Implicit truncation from unsigned long to unsigned char. | diff --git a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.qlref b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.qlref new file mode 100644 index 00000000000..b2883e39a75 --- /dev/null +++ b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.qlref @@ -0,0 +1,2 @@ +query: ImplicitIntegerTruncation.ql +postprocess: InlineExpectationsTestQuery.ql diff --git a/contrib/codeql/test/query-tests/LargeMemset/LargeMemset.expected b/contrib/codeql/test/query-tests/LargeMemset/LargeMemset.expected index 6e798210dae..9bcd2059d41 100644 --- a/contrib/codeql/test/query-tests/LargeMemset/LargeMemset.expected +++ b/contrib/codeql/test/query-tests/LargeMemset/LargeMemset.expected @@ -1,4 +1,4 @@ | LargeMemset.c:34:5:34:10 | call to memset | This call to memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:34:33:34:48 | ... * ... | size argument | -| LargeMemset.c:35:5:35:13 | call to fd_memset | This call to memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:35:36:35:53 | ... * ... | size argument | +| LargeMemset.c:35:5:35:13 | call to fd_memset | This call to fd_memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:35:36:35:53 | ... * ... | size argument | | LargeMemset.c:36:5:36:10 | call to memset | This call to memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:36:33:36:53 | sizeof(huge_region_t) | size argument | -| LargeMemset.c:37:5:37:13 | call to fd_memset | This call to memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:37:36:37:56 | sizeof(huge_region_t) | size argument | +| LargeMemset.c:37:5:37:13 | call to fd_memset | This call to fd_memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:37:36:37:56 | sizeof(huge_region_t) | size argument | diff --git a/contrib/codeql/test/query-tests/TrivialMemcpy/TrivialMemcpy.expected b/contrib/codeql/test/query-tests/TrivialMemcpy/TrivialMemcpy.expected index 62031db543b..60302d35fca 100644 --- a/contrib/codeql/test/query-tests/TrivialMemcpy/TrivialMemcpy.expected +++ b/contrib/codeql/test/query-tests/TrivialMemcpy/TrivialMemcpy.expected @@ -1,15 +1,15 @@ -| TrivialMemcpy.c:57:5:57:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:58:5:58:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:59:5:59:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:61:5:61:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:62:5:62:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:63:5:63:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:67:5:67:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:68:5:68:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:69:5:69:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:71:5:71:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:72:5:72:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:73:5:73:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:89:5:89:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:92:5:92:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:93:5:93:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:55:5:55:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:56:5:56:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:57:5:57:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:59:5:59:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:60:5:60:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:61:5:61:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:65:5:65:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:66:5:66:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:67:5:67:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:69:5:69:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:70:5:70:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:71:5:71:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:87:5:87:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:90:5:90:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:91:5:91:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | diff --git a/deps.sh b/deps.sh index b6d1674e769..f3d29fc262a 100755 --- a/deps.sh +++ b/deps.sh @@ -243,10 +243,12 @@ check_alpine_pkgs () { build-base # C/C++ compiler curl # download rustup linux-headers # base dependency - libucontext-dev # base dependency patch # build system zstd # build system gzip # build system + grep # build system + make # build system + perl # OpenSSL ) if [[ $DEVMODE == 1 ]]; then REQUIRED_APKS+=( autoconf automake bison flex gettext perl protobuf-dev ) diff --git a/src/app/fdctl/Local.mk b/src/app/fdctl/Local.mk index e211758702c..5e02ebb1ecd 100644 --- a/src/app/fdctl/Local.mk +++ b/src/app/fdctl/Local.mk @@ -18,9 +18,12 @@ $(OBJDIR)/obj/app/fdctl/version.d: src/app/fdctl/version.h # Always generate a version file include src/app/fdctl/version.h +# version +$(call make-lib,fdctl_version) +$(call add-objs,version,fdctl_version) + ifdef FD_HAS_ALLOCA ifdef FD_HAS_DOUBLE -ifdef FD_HAS_INT128 ifdef FD_HAS_HOSTED $(OBJDIR)/obj/app/fdctl/config.o: src/app/fdctl/config/default.toml @@ -37,10 +40,6 @@ ifdef FD_HAS_THREADS $(call add-objs,commands/run_agave,fd_fdctl) $(call add-objs,commands/set_identityh,fd_fdctl) -# version -$(call make-lib,fdctl_version) -$(call add-objs,version,fdctl_version) - $(call make-bin-rust,fdctl,main,fd_fdctl fdctl_shared fdctl_platform fd_discoh fd_disco fd_choreo agave_validator fd_flamenco fd_funk fd_quic fd_tls fd_reedsol fd_waltz fd_tango fd_ballet fd_util fdctl_version) check-agave-hash: @@ -143,4 +142,3 @@ endif endif endif endif -endif diff --git a/src/app/fdctl/config/default.toml b/src/app/fdctl/config/default.toml index 6cd52138fdb..b882a5bcc26 100644 --- a/src/app/fdctl/config/default.toml +++ b/src/app/fdctl/config/default.toml @@ -1019,6 +1019,21 @@ dynamic_port_range = "8900-9000" # back to "simple" mode if necessary. rss_queue_mode = "simple" + # Some specialized networking setups, including DoubleZero, + # deliver packets to the validator in a GRE tunnel. By default, + # when using rss_queue_mode="dedicated", Firedancer ignores all + # GRE-wrapped traffic. Setting listen_gre = true causes + # Firedancer to install an ethtool 'ntuple' rule routing GRE + # traffic to a Firedancer net tile, enabling Firedancer to see + # GRE-wrapped traffic. Unfortunately, few NICs are compatible + # with this class of rule, but ConnectX NICs (mlx5) are known to + # support listen_gre = true. If your NIC does not support the + # rule and you must use GRE tunnels, set rss_queue_mode = + # "simple". If rss_queue_mode is simple, this option is + # ignored, and Firedancer automatically listens to GRE-wrapped + # traffic when a GRE tunnel interface is configured. + listen_gre = false + # Enable native network bonding support. # # If native_bond is set to 'true' and [net.interface] is a 'bond' diff --git a/src/app/fddev/Local.mk b/src/app/fddev/Local.mk index 42eebc6bd10..5eeed01e90a 100644 --- a/src/app/fddev/Local.mk +++ b/src/app/fddev/Local.mk @@ -2,7 +2,6 @@ ifdef FD_HAS_HOSTED ifdef FD_HAS_LINUX ifdef FD_HAS_ALLOCA ifdef FD_HAS_DOUBLE -ifdef FD_HAS_INT128 .PHONY: fddev run monitor @@ -42,4 +41,3 @@ endif endif endif endif -endif diff --git a/src/app/firedancer-dev/Local.mk b/src/app/firedancer-dev/Local.mk index 4bee3e3fc73..3ec19b12553 100644 --- a/src/app/firedancer-dev/Local.mk +++ b/src/app/firedancer-dev/Local.mk @@ -2,7 +2,6 @@ ifdef FD_HAS_HOSTED ifdef FD_HAS_LINUX ifdef FD_HAS_ALLOCA ifdef FD_HAS_DOUBLE -ifdef FD_HAS_INT128 ifdef FD_HAS_ZSTD .PHONY: firedancer-dev @@ -36,4 +35,3 @@ endif endif endif endif -endif diff --git a/src/app/firedancer-dev/commands/gossip.c b/src/app/firedancer-dev/commands/gossip.c index 6d8e8154438..1dde96c04e1 100644 --- a/src/app/firedancer-dev/commands/gossip.c +++ b/src/app/firedancer-dev/commands/gossip.c @@ -95,6 +95,10 @@ fd_gossip_subtopo( config_t * config, ulong tile_to_cpu[ FD_TILE_MAX ] FD_PARAM_ gossvf_tile->gossvf.allow_private_address = config->development.gossip.allow_private_address; gossvf_tile->gossvf.entrypoints_cnt = config->gossip.entrypoints_cnt; gossvf_tile->gossvf.boot_timestamp_nanos = config->boot_timestamp_nanos; + gossvf_tile->gossvf.gossip_addr.addr = config->net.ip_addr; + gossvf_tile->gossvf.gossip_addr.port = fd_ushort_bswap( config->gossip.port ); + gossvf_tile->gossvf.src_addr.addr = config->net.ip_addr; + gossvf_tile->gossvf.src_addr.port = fd_ushort_bswap( config->gossip.port ); for( ulong i=0UL; igossip.entrypoints_cnt; i++ ) { gossvf_tile->gossvf.entrypoints[ i ] = config->gossip.resolved_entrypoints[ i ]; } diff --git a/src/app/firedancer-dev/commands/repair.c b/src/app/firedancer-dev/commands/repair.c index 67c17bb6866..6375c7af873 100644 --- a/src/app/firedancer-dev/commands/repair.c +++ b/src/app/firedancer-dev/commands/repair.c @@ -10,7 +10,6 @@ #include "../../../util/tile/fd_tile_private.h" #include "../../firedancer/topology.h" -#include "../../firedancer/topology.c" #include "../../shared/commands/configure/configure.h" #include "../../shared/commands/run/run.h" /* initialize_workspaces */ #include "../../shared/fd_config.h" /* config_t */ @@ -22,6 +21,10 @@ #include "../../platform/fd_sys_util.h" #include "../../shared/commands/monitor/helper.h" #include "../../../disco/metrics/fd_metrics.h" +#include "../../../discof/restore/utils/fd_ssmanifest_parser.h" +#include "../../../flamenco/runtime/sysvar/fd_sysvar_epoch_schedule.h" +#include "../../../flamenco/stakes/fd_stake_weight.h" +#include "../../../flamenco/leaders/fd_leaders_base.h" #include "../../../discof/repair/fd_repair_tile.c" #include "gossip.h" @@ -55,9 +58,198 @@ restore_terminal( void ) { (void)tcsetattr( STDIN_FILENO, TCSANOW, &termios_backup ); } +extern fd_topo_obj_callbacks_t * CALLBACKS[]; + fd_topo_run_tile_t fdctl_tile_run( fd_topo_tile_t const * tile ); +void +resolve_gossip_entrypoints( config_t * config ); + +#define MANIFEST_LOAD_MAX_SZ (2UL * FD_SHMEM_GIGANTIC_PAGE_SZ) + +/* https://github.com/anza-xyz/agave/blob/v3.1.8/runtime/src/snapshot_bank_utils.rs#L632 */ +static int +repair_verify_epoch_stakes( fd_snapshot_manifest_t const * manifest ) { + fd_epoch_schedule_t epoch_schedule = (fd_epoch_schedule_t){ + .slots_per_epoch = manifest->epoch_schedule_params.slots_per_epoch, + .leader_schedule_slot_offset = manifest->epoch_schedule_params.leader_schedule_slot_offset, + .warmup = manifest->epoch_schedule_params.warmup, + .first_normal_epoch = manifest->epoch_schedule_params.first_normal_epoch, + .first_normal_slot = manifest->epoch_schedule_params.first_normal_slot, + }; + + ulong min_required_epoch = fd_slot_to_epoch( &epoch_schedule, manifest->slot, NULL ); + ulong max_required_epoch = fd_slot_to_leader_schedule_epoch( &epoch_schedule, manifest->slot ); + + for( ulong i=min_required_epoch; i<=max_required_epoch; i++ ) { + int found = 0; + for( ulong j=0UL; jepoch_stakes[j].epoch==i ) { + found = 1; + break; + } + } + if( FD_UNLIKELY( !found ) ) { + FD_LOG_WARNING(( "stakes not found for epoch %lu in manifest", i )); + return -1; + } + } + return 0; +} + +static inline ulong +repair_generate_epoch_info_msg( ulong epoch, + fd_epoch_schedule_t const * epoch_schedule, + fd_snapshot_manifest_epoch_stakes_t const * epoch_stakes, + ulong * epoch_info_msg_out ) { + fd_epoch_info_msg_t * epoch_info_msg = (fd_epoch_info_msg_t *)fd_type_pun( epoch_info_msg_out ); + fd_vote_stake_weight_t * stake_weights = fd_epoch_info_msg_stake_weights( epoch_info_msg ); + + epoch_info_msg->epoch = epoch; + epoch_info_msg->start_slot = fd_epoch_slot0( epoch_schedule, epoch ); + epoch_info_msg->slot_cnt = fd_epoch_slot_cnt( epoch_schedule, epoch ); + epoch_info_msg->excluded_id_stake = 0UL; + + fd_memset( &epoch_info_msg->features, 0xFF, sizeof(fd_features_t) ); + + ulong idx = 0UL; + for( ulong i=0UL; ivote_stakes_len; i++ ) { + ulong stake = epoch_stakes->vote_stakes[ i ].stake; + if( FD_UNLIKELY( !stake ) ) continue; + stake_weights[ idx ].stake = stake; + memcpy( stake_weights[ idx ].id_key.uc, epoch_stakes->vote_stakes[ i ].identity, sizeof(fd_pubkey_t) ); + memcpy( stake_weights[ idx ].vote_key.uc, epoch_stakes->vote_stakes[ i ].vote, sizeof(fd_pubkey_t) ); + idx++; + } + epoch_info_msg->staked_vote_cnt = idx; + sort_vote_weights_by_stake_vote_inplace( stake_weights, idx ); + + fd_stake_weight_t * id_weights = fd_epoch_info_msg_id_weights( epoch_info_msg ); + epoch_info_msg->staked_id_cnt = compute_id_weights_from_vote_weights( id_weights, stake_weights, epoch_info_msg->staked_vote_cnt ); + FD_TEST( idx<=MAX_SHRED_DESTS ); + + epoch_info_msg->epoch_schedule = *epoch_schedule; + return fd_epoch_info_msg_sz( epoch_info_msg->staked_vote_cnt, epoch_info_msg->staked_id_cnt ); +} + +/* repair_load_manifest loads the snapshot manifest from disk and + pre-populates the snapin_manif and replay_epoch dcache links so + that consumer tiles see the data on their first poll cycle. */ +static void +repair_load_manifest( fd_topo_t * topo, + char const * manifest_path ) { + if( FD_UNLIKELY( !manifest_path || !manifest_path[0] ) ) return; + + /* Parse manifest */ + + int fd = open( manifest_path, O_RDONLY ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "open(%s) failed (%d-%s)", manifest_path, errno, fd_io_strerror( errno ) )); + + fd_snapshot_manifest_t * manifest = aligned_alloc( alignof(fd_snapshot_manifest_t), sizeof(fd_snapshot_manifest_t) ); + FD_TEST( manifest ); + for( ulong i=0UL; iepoch_stakes[i].epoch = ULONG_MAX; + + uchar * buf = aligned_alloc( 128UL, MANIFEST_LOAD_MAX_SZ ); + FD_TEST( buf ); + ulong buf_sz = 0; + FD_TEST( !fd_io_read( fd, buf, 0UL, MANIFEST_LOAD_MAX_SZ-1UL, &buf_sz ) ); + close( fd ); + + fd_ssmanifest_parser_t * parser = fd_ssmanifest_parser_join( fd_ssmanifest_parser_new( + aligned_alloc( fd_ssmanifest_parser_align(), fd_ssmanifest_parser_footprint() ) ) ); + FD_TEST( parser ); + fd_ssmanifest_parser_init( parser, manifest ); + int parser_err = fd_ssmanifest_parser_consume( parser, buf, buf_sz, NULL, NULL ); + FD_TEST( parser_err!=FD_SSMANIFEST_PARSER_ADVANCE_ERROR ); + FD_TEST( fd_ssmanifest_parser_fini( parser )==FD_SSMANIFEST_PARSER_ADVANCE_DONE ); + free( parser ); + free( buf ); + + FD_LOG_NOTICE(( "manifest bank slot %lu", manifest->slot )); + FD_TEST( !repair_verify_epoch_stakes( manifest ) ); + + /* Update root_slot fseq */ + + ulong root_slot_obj_id = fd_pod_queryf_ulong( topo->props, ULONG_MAX, "root_slot" ); + if( FD_LIKELY( root_slot_obj_id!=ULONG_MAX ) ) { + ulong * root_fseq = fd_fseq_join( fd_topo_obj_laddr( topo, root_slot_obj_id ) ); + FD_TEST( root_fseq ); + fd_fseq_update( root_fseq, manifest->slot ); + } + + /* Publish manifest to snapin_manif dcache */ + + ulong snap_link_idx = fd_topo_find_link( topo, "snapin_manif", 0UL ); + FD_TEST( snap_link_idx!=ULONG_MAX ); + fd_topo_link_t * snap_link = &topo->links[ snap_link_idx ]; + fd_wksp_t * snap_mem = topo->workspaces[ topo->objs[ snap_link->dcache_obj_id ].wksp_id ].wksp; + ulong snap_chunk0 = fd_dcache_compact_chunk0( snap_mem, snap_link->dcache ); + ulong snap_wmark = fd_dcache_compact_wmark ( snap_mem, snap_link->dcache, snap_link->mtu ); + ulong snap_chunk = snap_chunk0; + + uchar * snap_dst = fd_chunk_to_laddr( snap_mem, snap_chunk ); + memcpy( snap_dst, manifest, sizeof(fd_snapshot_manifest_t) ); + fd_mcache_publish( snap_link->mcache, snap_link->depth, 0UL, + fd_ssmsg_sig( FD_SSMSG_MANIFEST_INCREMENTAL ), + snap_chunk, sizeof(fd_snapshot_manifest_t), 0UL, 0UL, 0UL ); + snap_chunk = fd_dcache_compact_next( snap_chunk, sizeof(fd_snapshot_manifest_t), snap_chunk0, snap_wmark ); + + fd_mcache_publish( snap_link->mcache, snap_link->depth, 1UL, + fd_ssmsg_sig( FD_SSMSG_DONE ), 0UL, 0UL, 0UL, 0UL, 0UL ); + + /* Publish epoch stake weights to replay_epoch dcache */ + + ulong epoch_link_idx = fd_topo_find_link( topo, "replay_epoch", 0UL ); + FD_TEST( epoch_link_idx!=ULONG_MAX ); + fd_topo_link_t * epoch_link = &topo->links[ epoch_link_idx ]; + fd_wksp_t * epoch_mem = topo->workspaces[ topo->objs[ epoch_link->dcache_obj_id ].wksp_id ].wksp; + ulong epoch_chunk0 = fd_dcache_compact_chunk0( epoch_mem, epoch_link->dcache ); + ulong epoch_wmark = fd_dcache_compact_wmark ( epoch_mem, epoch_link->dcache, epoch_link->mtu ); + ulong epoch_chunk = epoch_chunk0; + ulong epoch_seq = 0UL; + + /* Construct fd_epoch_schedule_t field-by-field rather than type-punning + from the unpacked manifest struct (fd_epoch_schedule_t is packed). */ + fd_epoch_schedule_t schedule_local; + schedule_local.slots_per_epoch = manifest->epoch_schedule_params.slots_per_epoch; + schedule_local.leader_schedule_slot_offset = manifest->epoch_schedule_params.leader_schedule_slot_offset; + schedule_local.warmup = manifest->epoch_schedule_params.warmup; + schedule_local.first_normal_epoch = manifest->epoch_schedule_params.first_normal_epoch; + schedule_local.first_normal_slot = manifest->epoch_schedule_params.first_normal_slot; + fd_epoch_schedule_t const * schedule = &schedule_local; + ulong epoch = fd_slot_to_epoch( schedule, manifest->slot, NULL ); + + ulong epoch_stakes_base = epoch > 0UL ? epoch - 1UL : 0UL; + ulong leader_schedule_epoch = fd_slot_to_leader_schedule_epoch( schedule, manifest->slot ); + ulong cur_idx = epoch - epoch_stakes_base; + FD_TEST( cur_idx < FD_EPOCH_STAKES_LEN ); + + ulong * epoch_dst = fd_chunk_to_laddr( epoch_mem, epoch_chunk ); + ulong epoch_sz = repair_generate_epoch_info_msg( epoch, schedule, &manifest->epoch_stakes[cur_idx], epoch_dst ); + fd_mcache_publish( epoch_link->mcache, epoch_link->depth, epoch_seq, + 4UL, epoch_chunk, epoch_sz, 0UL, 0UL, fd_frag_meta_ts_comp( fd_tickcount() ) ); + epoch_chunk = fd_dcache_compact_next( epoch_chunk, epoch_sz, epoch_chunk0, epoch_wmark ); + epoch_seq++; + FD_LOG_NOTICE(( "sending current epoch stake weights - epoch: %lu", epoch )); + + if( leader_schedule_epoch >= epoch + 1UL ) { + ulong next_idx = epoch + 1UL - epoch_stakes_base; + FD_TEST( next_idx < FD_EPOCH_STAKES_LEN ); + + epoch_dst = fd_chunk_to_laddr( epoch_mem, epoch_chunk ); + epoch_sz = repair_generate_epoch_info_msg( epoch + 1UL, schedule, &manifest->epoch_stakes[next_idx], epoch_dst ); + fd_mcache_publish( epoch_link->mcache, epoch_link->depth, epoch_seq, + 4UL, epoch_chunk, epoch_sz, 0UL, 0UL, fd_frag_meta_ts_comp( fd_tickcount() ) ); + epoch_chunk = fd_dcache_compact_next( epoch_chunk, epoch_sz, epoch_chunk0, epoch_wmark ); + epoch_seq++; + FD_LOG_NOTICE(( "sending next epoch stake weights - epoch: %lu", epoch + 1UL )); + } + (void)epoch_chunk; + + free( manifest ); +} + /* repair_topo is a subset of "src/app/firedancer/topology.c" at commit 0d8386f4f305bb15329813cfe4a40c3594249e96, slightly modified to work as a repair catchup. TODO ideally, one should invoke the firedancer @@ -134,7 +326,6 @@ repair_topo( config_t * config ) { fd_topob_wksp( topo, "fec_sets" ); fd_topob_wksp( topo, "snapin_manif" ); - fd_topob_wksp( topo, "slot_fseqs" ); /* fseqs for marked slots eg. turbine slot */ fd_topob_wksp( topo, "genesi_out" ); /* mock genesi_out for ipecho */ fd_topob_wksp( topo, "tower_out" ); /* mock tower_out for confirmation msgs. Not needed for any topo except eqvoc. */ @@ -196,11 +387,6 @@ repair_topo( config_t * config ) { fd_topo_tile_t * poh_tile = &topo->tiles[ fd_topo_find_tile( topo, "gossip", 0UL ) ]; fd_topob_tile_uses( topo, poh_tile, poh_shred_obj, FD_SHMEM_JOIN_MODE_READ_WRITE ); - /* root_slot is an fseq marking the validator's current Tower root. */ - - fd_topo_obj_t * root_slot_obj = fd_topob_obj( topo, "fseq", "slot_fseqs" ); - FD_TEST( fd_pod_insertf_ulong( topo->props, root_slot_obj->id, "root_slot" ) ); - for( ulong i=0UL; itiles[ fd_topo_find_tile( topo, "shred", i ) ]; fd_topob_tile_uses( topo, shred_tile, poh_shred_obj, FD_SHMEM_JOIN_MODE_READ_ONLY ); @@ -269,25 +455,6 @@ repair_topo( config_t * config ) { /**/ fd_topob_tile_in ( topo, "ipecho", 0UL, "metric_in", "genesi_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); /**/ fd_topob_tile_in ( topo, "repair", 0UL, "metric_in", "tower_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); - if( 1 ) { - fd_topob_wksp( topo, "scap" ); - - fd_topo_tile_t * scap_tile = fd_topob_tile( topo, "scap", "scap", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 0, 0 ); - - fd_topob_tile_in( topo, "scap", 0UL, "metric_in", "repair_net", 0UL, FD_TOPOB_UNRELIABLE, FD_TOPOB_POLLED ); - for( ulong j=0UL; jprops, rnonce_ss_obj->id, "rnonce_ss" ) ); } - FD_TEST( fd_link_permit_no_producers( topo, "quic_net" ) == quic_tile_cnt ); - FD_TEST( fd_link_permit_no_producers( topo, "poh_shred" ) == 1UL ); - FD_TEST( fd_link_permit_no_producers( topo, "txsend_out" ) == 1UL ); - FD_TEST( fd_link_permit_no_producers( topo, "genesi_out" ) == 1UL ); - FD_TEST( fd_link_permit_no_producers( topo, "tower_out" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "quic_net" ) == quic_tile_cnt ); + FD_TEST( fd_link_permit_no_producers( topo, "poh_shred" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "txsend_out" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "genesi_out" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "tower_out" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "replay_epoch" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "snapin_manif" ) == 1UL ); FD_TEST( fd_link_permit_no_consumers( topo, "net_quic" ) == net_tile_cnt ); FD_TEST( fd_link_permit_no_consumers( topo, "repair_out" ) == 1UL ); @@ -502,16 +671,16 @@ print_peer_location_latency( fd_wksp_t * repair_tile_wksp, ctx_t * tile_ctx ) { ulong peer_cnt = sort_peers_by_latency( peers_map, peers_dlist, peers_wlist, peers_arr ); printf("\nPeer Location/Latency Information\n"); - printf( "| %-46s | %-7s | %-8s | %-8s | %-7s | %12s | %s\n", "Pubkey", "Req Cnt", "Req B/s", "Rx B/s", "Rx Rate", "Avg Latency", "Location Info" ); + printf( " | %-46s | %-7s | %-8s | %-8s | %-7s | %-7s | %-12s | %s\n", "Pubkey", "Req Cnt", "Req B/s", "Rx B/s", "Rx Rate", "Avg Latency", "Ewma Latency", "Location Info" ); for( uint i = 0; i < peer_cnt; i++ ) { fd_policy_peer_t const * active = fd_policy_peer_map_ele_query( peers_map, &peers_copy[ i ], NULL, peers_arr ); if( FD_LIKELY( active && active->res_cnt > 0 ) ) { fd_location_info_t * info = fd_location_table_query( location_table, active->ip4, NULL ); - char * geolocation = info ? info->location : "Unknown"; + char * geolocation = info ? info->location : ""; double peer_bps = (double)(active->res_cnt * FD_SHRED_MIN_SZ) / ((double)(active->last_resp_ts - active->first_resp_ts) / 1e9); double req_bps = (double)active->req_cnt * 202 / ((double)(active->last_req_ts - active->first_req_ts) / 1e9); FD_BASE58_ENCODE_32_BYTES( active->key.key, key_b58 ); - printf( "%-5u | %-46s | %-7lu | %-8.2f | %-8.2f | %-7.2f | %10.3fms | %s\n", i, key_b58, active->req_cnt, req_bps, peer_bps, (double)active->res_cnt / (double)active->req_cnt, ((double)active->total_lat / (double)active->res_cnt) / 1e6, geolocation ); + printf( "%-5u | %-46s | %-7lu | %-8.2f | %-8.2f | %-7.2f | %10.3fms | %10.3fms | %s\n", i, key_b58, active->req_cnt, req_bps, peer_bps, (double)active->res_cnt / (double)active->req_cnt, ((double)active->total_lat / (double)active->res_cnt) / 1e6, (double)active->ewma_lat / 1e6, geolocation ); } } printf("\n"); @@ -620,6 +789,12 @@ print_tile_metrics( volatile ulong * shred_metrics, (double)backpressure_ticks/(double)total_ticks*100.0 ); #undef DIFFX fflush( stdout ); + + printf( " Block failed insert: %lu\n", repair_metrics[ MIDX( COUNTER, REPAIR, BLK_FAILED_INSERT ) ] ); + printf( " Block evicted: %lu\n", repair_metrics[ MIDX( COUNTER, REPAIR, BLK_EVICTED ) ] ); + printf( " slot evicted: %lu\n", repair_metrics[ MIDX( GAUGE, REPAIR, SLOT_EVICTED ) ] ); + printf( " slot evicted by: %lu\n", repair_metrics[ MIDX( GAUGE, REPAIR, SLOT_EVICTED_BY ) ] ); + printf( " slot failed insert: %lu\n", repair_metrics[ MIDX( GAUGE, REPAIR, SLOT_FAILED_INSERT ) ] ); for( ulong i=0UL; itopo ); + repair_load_manifest( &config->topo, args->repair.manifest_path ); + /* Access repair workspace memory and metrics */ ulong repair_tile_idx = fd_topo_find_tile( &config->topo, "repair", 0UL ); @@ -802,6 +979,9 @@ repair_cmd_fn_eqvoc( args_t * args, run_firedancer_init( config, 1, 0 ); fd_topo_join_workspaces( &config->topo, FD_SHMEM_JOIN_MODE_READ_WRITE, FD_TOPO_CORE_DUMP_LEVEL_DISABLED ); fd_topo_fill( &config->topo ); + + repair_load_manifest( &config->topo, args->repair.manifest_path ); + ulong repair_tile_idx = fd_topo_find_tile( &config->topo, "repair", 0UL ); fd_topo_tile_t * repair_tile = &config->topo.tiles[ repair_tile_idx ]; volatile ulong * repair_metrics = fd_metrics_tile( repair_tile->metrics ); @@ -936,6 +1116,8 @@ repair_cmd_fn_inflight( args_t * args, for( ;; ) { fd_inflights_print( inflights->outstanding_dl, inflight_pool ); + printf("popped count: %lu\n", inflights->popped_cnt); + fd_inflights_print( inflights->popped_dl, inflight_pool ); sleep( 1 ); } } @@ -1060,6 +1242,59 @@ repair_cmd_fn_waterfall( args_t * args, } } +#define PEERS_DISPLAY_MAX 20 + +static void +print_peer_dlist( fd_policy_peer_dlist_t * dlist, + fd_policy_peer_t * pool, + fd_policy_peer_dlist_iter_t cursor, + char const * label ) { + ulong cnt = 0; + for( fd_policy_peer_dlist_iter_t it = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + !fd_policy_peer_dlist_iter_done( it, dlist, pool ); + it = fd_policy_peer_dlist_iter_fwd_next( it, dlist, pool ) ) cnt++; + + printf( "%s (%lu peers)\n", label, cnt ); + if( !cnt || fd_policy_peer_dlist_iter_done( cursor, dlist, pool ) ) { + printf( " (empty or iterator not initialized)\n\n" ); + return; + } + + printf( " | %-8s | %-12s | %-12s | %-8s | %-8s\n", + "Idx", "Pubkey", "Ewma Lat", "Avg Lat", "Req/Res" ); + printf( "-----+----------+--------------+--------------+----------+---------\n" ); + + fd_policy_peer_dlist_iter_t it = cursor; + for( ulong i = 0; i < PEERS_DISPLAY_MAX && i < cnt; i++ ) { + fd_policy_peer_t * peer = fd_policy_peer_dlist_iter_ele( it, dlist, pool ); + + FD_BASE58_ENCODE_32_BYTES( peer->key.key, b58 ); + char pubkey_short[13]; + fd_cstr_fini( fd_cstr_append_text( fd_cstr_init( pubkey_short ), b58, 12 ) ); + + double avg_lat_ms = peer->res_cnt ? ((double)peer->total_lat / (double)peer->res_cnt) / 1e6 : 0.0; + double ewma_lat_ms = (double)peer->ewma_lat / 1e6; + + printf( " %s%c%s | %-8lu | %-12s | %9.3fms | %9.3fms | %lu/%lu\n", + i == 0 ? "\033[1;33m" : "", + i == 0 ? '>' : ' ', + i == 0 ? "\033[0m" : "", + fd_policy_peer_pool_idx( pool, peer ), + pubkey_short, + ewma_lat_ms, + avg_lat_ms, + peer->req_cnt, + peer->res_cnt ); + + it = fd_policy_peer_dlist_iter_fwd_next( it, dlist, pool ); + if( fd_policy_peer_dlist_iter_done( it, dlist, pool ) ) { + it = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + } + } + if( cnt > PEERS_DISPLAY_MAX ) printf( " ... (%lu more)\n", cnt - PEERS_DISPLAY_MAX ); + printf( "\n" ); +} + static void repair_cmd_fn_peers( args_t * args, config_t * config ) { @@ -1069,30 +1304,30 @@ repair_cmd_fn_peers( args_t * args, fd_policy_t * policy = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, repair_ctx->policy ) ); - fd_policy_peer_dlist_t * best_dlist = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.fast ) ); - fd_policy_peer_dlist_t * worst_dlist = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.slow ) ); - fd_policy_peer_t * pool = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.pool ) ); - - printf("FAST REPAIR PEERS (latency < 80ms)\n"); - int i = 1; - for( fd_policy_peer_dlist_iter_t iter = fd_policy_peer_dlist_iter_fwd_init( best_dlist, pool ); - !fd_policy_peer_dlist_iter_done( iter, best_dlist, pool ); - iter = fd_policy_peer_dlist_iter_fwd_next( iter, best_dlist, pool ) ) { - fd_policy_peer_t * peer = fd_policy_peer_dlist_iter_ele( iter, best_dlist, pool ); - FD_BASE58_ENCODE_32_BYTES( peer->key.key, p ); - printf(" %d. %s\n", i, p ); - i++; - } + fd_policy_peer_dlist_t * fast_dlist = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.fast ) ); + fd_policy_peer_dlist_t * slow_dlist = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.slow ) ); + fd_policy_peer_t * pool = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.pool ) ); + + long last_print = 0; + for( ;; ) { + long now = fd_log_wallclock(); + if( FD_UNLIKELY( now - last_print > 1e9L ) ) { + last_print = now; + printf( "\033[2J\033[H" ); + + char fast_label[64]; + char slow_label[64]; + snprintf( fast_label, sizeof(fast_label), "FAST PEERS (ewma < %ldms)", (long)(FD_POLICY_LATENCY_THRESH / 1e6L) ); + snprintf( slow_label, sizeof(slow_label), "SLOW PEERS (ewma >= %ldms or no responses)", (long)(FD_POLICY_LATENCY_THRESH / 1e6L) ); + print_peer_dlist( fast_dlist, pool, policy->peers.select.fast_iter, fast_label ); + print_peer_dlist( slow_dlist, pool, policy->peers.select.slow_iter, slow_label ); + + printf( "select cnt: %u / %u (fast per slow)\n", policy->peers.select.cnt, FD_POLICY_FAST_PER_SLOW ); + printf( "pool used: %lu / %lu\n", fd_policy_peer_pool_used( pool ), fd_policy_peer_pool_max( pool ) ); + + fflush( stdout ); + } - printf("SLOW REPAIR PEERS (latency > 80ms)\n"); - i = 1; - for( fd_policy_peer_dlist_iter_t iter = fd_policy_peer_dlist_iter_fwd_init( worst_dlist, pool ); - !fd_policy_peer_dlist_iter_done( iter, worst_dlist, pool ); - iter = fd_policy_peer_dlist_iter_fwd_next( iter, worst_dlist, pool ) ) { - fd_policy_peer_t * peer = fd_policy_peer_dlist_iter_ele( iter, worst_dlist, pool ); - FD_BASE58_ENCODE_32_BYTES( peer->key.key, p ); - printf(" %d. %s\n", i, p); - i++; } } diff --git a/src/app/firedancer-dev/commands/send_test/send_test.c b/src/app/firedancer-dev/commands/send_test/send_test.c index 7c8e8da2e71..adc26b51c47 100644 --- a/src/app/firedancer-dev/commands/send_test/send_test.c +++ b/src/app/firedancer-dev/commands/send_test/send_test.c @@ -38,6 +38,9 @@ extern fd_topo_obj_callbacks_t * CALLBACKS[]; fd_topo_run_tile_t fdctl_tile_run( fd_topo_tile_t const * tile ); +void +resolve_gossip_entrypoints( config_t * config ); + struct { char gossip_file[256]; char stake_file[256]; @@ -76,7 +79,10 @@ send_test_topo( config_t * config ) { int use_live_gossip = !strcmp( send_test_args.gossip_file, "live" ); fd_core_subtopo( config, tile_to_cpu ); - if( use_live_gossip ) fd_gossip_subtopo( config, tile_to_cpu ); + if( use_live_gossip ) { + resolve_gossip_entrypoints( config ); + fd_gossip_subtopo( config, tile_to_cpu ); + } #define FOR(cnt) for( ulong i=0UL; igossip.entrypoints[ i ] )); } } + + if( FD_UNLIKELY( strcmp( config->firedancer.gossip.host, "" ) ) ) { + if( FD_UNLIKELY( !resolve_address( config->firedancer.gossip.host, &config->gossip.resolved_host ) ) ) + FD_LOG_ERR(( "could not resolve [gossip.host] %s", config->firedancer.gossip.host )); + } else { + config->gossip.resolved_host = 0U; + } } void @@ -1172,11 +1183,20 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, tile->gossvf.entrypoints_cnt = config->gossip.entrypoints_cnt; fd_memcpy( tile->gossvf.entrypoints, config->gossip.resolved_entrypoints, tile->gossvf.entrypoints_cnt * sizeof(fd_ip4_port_t) ); + if( FD_UNLIKELY( strcmp( config->firedancer.gossip.host, "" ) ) ) { + tile->gossvf.gossip_addr.addr = config->gossip.resolved_host; + } else { + tile->gossvf.gossip_addr.addr = config->net.ip_addr; + } + tile->gossvf.gossip_addr.port = fd_ushort_bswap( config->gossip.port ); + + tile->gossvf.src_addr.addr = config->net.ip_addr; + tile->gossvf.src_addr.port = fd_ushort_bswap( config->gossip.port ); + } else if( FD_UNLIKELY( !strcmp( tile->name, "gossip" ) ) ) { if( FD_UNLIKELY( strcmp( config->firedancer.gossip.host, "" ) ) ) { - if( !resolve_address( config->firedancer.gossip.host, &tile->gossip.ip_addr ) ) - FD_LOG_ERR(( "could not resolve [gossip.host] %s", config->firedancer.gossip.host )); + tile->gossip.ip_addr = config->gossip.resolved_host; } else { tile->gossip.ip_addr = config->net.ip_addr; } diff --git a/src/app/shared/Local.mk b/src/app/shared/Local.mk index e82ae356fe6..0644434fc3e 100644 --- a/src/app/shared/Local.mk +++ b/src/app/shared/Local.mk @@ -1,6 +1,5 @@ ifdef FD_HAS_HOSTED ifdef FD_HAS_LINUX -ifdef FD_HAS_INT128 $(call make-lib,fdctl_shared) @@ -30,10 +29,11 @@ $(call add-objs,commands/configure/hugetlbfs,fdctl_shared) $(call add-objs,commands/configure/hyperthreads,fdctl_shared) $(call add-objs,commands/configure/sysctl,fdctl_shared) $(call add-objs,commands/configure/snapshots,fdctl_shared) +ifdef FD_HAS_ALLOCA $(call add-objs,commands/monitor/monitor commands/monitor/helper,fdctl_shared) $(call add-objs,commands/watch/watch,fdctl_shared) +endif # FD_HAS_ALLOCA $(call add-objs,commands/run/run commands/run/run1,fdctl_shared) endif endif -endif diff --git a/src/app/shared/commands/configure/ethtool-channels.c b/src/app/shared/commands/configure/ethtool-channels.c index 0c921e4232a..181f1d81b98 100644 --- a/src/app/shared/commands/configure/ethtool-channels.c +++ b/src/app/shared/commands/configure/ethtool-channels.c @@ -69,6 +69,7 @@ static int init_device( char const * device, fd_config_t const * config, int dedicated_mode, + int listen_gre, int strict, uint device_cnt ) { FD_TEST( dedicated_mode || strict ); @@ -159,6 +160,20 @@ init_device( char const * device, "Try `net.xdp.rss_queue_mode=\"simple\"` or `layout.net_tile_count=1`", device )); else return 1; } + + /* It's rather unfortunate, but given the APIs that ethtool exposes, + we can't do much better than sending all GRE packets to a single + queue. At least more recent Mellanox NICs certainly do support + RSS based on the inner header, but it's not possible to configure + this in a generic way. */ + int gre_ntuple_error = 0; + if( listen_gre ) gre_ntuple_error = fd_ethtool_ioctl_ntuple_set_gre( &ioc, rule_idx++, 0U ); + if( FD_UNLIKELY( gre_ntuple_error ) ) { + FD_LOG_ERR(( "error configuring network device (%s), failed to install ntuple rule " + "to route GRE packets to Firedancer. If you require GRE-wrapped " + "traffic (e.g. with DoubleZero), set `net.xdp.rss_queue_mode=\"simple\"`. " + "Otherwise, set `net.xdp.listen_gre=false`.", device )); + } } return 0; @@ -179,6 +194,8 @@ init( fd_config_t const * config ) { device_cnt = fd_bonding_slave_cnt( config->net.interface ); } + int listen_gre = config->net.xdp.listen_gre; + /* If the mode was auto, we will try to init in dedicated mode but will not fail the stage if this is not successful. If the mode was dedicated, we will require success. */ @@ -189,10 +206,10 @@ init( fd_config_t const * config ) { fd_bonding_slave_iter_t * iter = fd_bonding_slave_iter_init( iter_, config->net.interface ); for( ; !failed && !fd_bonding_slave_iter_done( iter ); fd_bonding_slave_iter_next( iter ) ) { - failed = init_device( fd_bonding_slave_iter_ele( iter ), config, 1, only_dedicated, device_cnt ); + failed = init_device( fd_bonding_slave_iter_ele( iter ), config, 1, listen_gre, only_dedicated, device_cnt ); } } else { - failed = init_device( config->net.interface, config, 1, only_dedicated, device_cnt ); + failed = init_device( config->net.interface, config, 1, listen_gre, only_dedicated, device_cnt ); } if( !failed ) return; FD_TEST( !only_dedicated ); @@ -218,10 +235,10 @@ init( fd_config_t const * config ) { fd_bonding_slave_iter_t * iter = fd_bonding_slave_iter_init( iter_, config->net.interface ); for( ; !fd_bonding_slave_iter_done( iter ); fd_bonding_slave_iter_next( iter ) ) { - init_device( fd_bonding_slave_iter_ele( iter ), config, 0, 1, device_cnt ); + init_device( fd_bonding_slave_iter_ele( iter ), config, 0, listen_gre, 1, device_cnt ); } } else { - init_device( config->net.interface, config, 0, 1, device_cnt ); + init_device( config->net.interface, config, 0, listen_gre, 1, device_cnt ); } } @@ -248,7 +265,7 @@ check_device_is_modified( char const * device ) { } int ntuple_rules_empty; - FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, NULL, 0, 0, &ntuple_rules_empty ) ); + FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate( &ioc, NULL, 0, 0, UINT_MAX, &ntuple_rules_empty ) ); if( !ntuple_rules_empty ) return 1; return 0; @@ -296,13 +313,14 @@ check_device_is_configured( char const * device, if( !dedicated_mode ) { int ntuple_rules_empty; - FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, NULL, 0, 0, &ntuple_rules_empty ) ); + FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate( &ioc, NULL, 0, 0, UINT_MAX, &ntuple_rules_empty ) ); if( !ntuple_rules_empty ) return 0; } else { int ports_valid; ushort ports[ 32 ]; uint port_cnt = get_ports( config, ports ); - FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, ports, port_cnt, queue_cnt, &ports_valid )); + int listen_gre = config->net.xdp.listen_gre; + FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate( &ioc, ports, port_cnt, queue_cnt, listen_gre ? 0U : UINT_MAX, &ports_valid )); if( !ports_valid ) return 0; } @@ -390,7 +408,7 @@ fini_device( char const * device ) { uint rxfh_table_orig_ele_cnt; error |= (0!=fd_ethtool_ioctl_rxfh_get_table( &ioc, rxfh_table_orig, &rxfh_table_orig_ele_cnt )); int ntuple_rules_empty_orig; - error |= (0!=fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, NULL, 0, 0, &ntuple_rules_empty_orig )); + error |= (0!=fd_ethtool_ioctl_ntuple_validate( &ioc, NULL, 0, 0, UINT_MAX, &ntuple_rules_empty_orig )); if( FD_UNLIKELY( error ) ) FD_LOG_ERR(( "error configuring network device (%s), unable to determine initial state", device )); @@ -415,7 +433,7 @@ fini_device( char const * device ) { uint rxfh_table_new_ele_cnt; error |= (0!=fd_ethtool_ioctl_rxfh_get_table( &ioc, rxfh_table_new, &rxfh_table_new_ele_cnt )); int ntuple_rules_empty_new; - error |= (0!=fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, NULL, 0, 0, &ntuple_rules_empty_new )); + error |= (0!=fd_ethtool_ioctl_ntuple_validate( &ioc, NULL, 0, 0, UINT_MAX, &ntuple_rules_empty_new )); if( FD_UNLIKELY( error ) ) FD_LOG_ERR(( "error configuring network device (%s), unable to determine final state", device )); diff --git a/src/app/shared/commands/configure/fd_ethtool_ioctl.c b/src/app/shared/commands/configure/fd_ethtool_ioctl.c index a53a6eb6350..083827470b9 100644 --- a/src/app/shared/commands/configure/fd_ethtool_ioctl.c +++ b/src/app/shared/commands/configure/fd_ethtool_ioctl.c @@ -5,6 +5,7 @@ #include #include #include +#include #include "fd_ethtool_ioctl.h" #include "../../../../util/fd_util.h" @@ -486,22 +487,54 @@ fd_ethtool_ioctl_ntuple_set_udp_dport( fd_ethtool_ioctl_t * ioc, } int -fd_ethtool_ioctl_ntuple_validate_udp_dport( fd_ethtool_ioctl_t * ioc, - ushort const * dports, - uint dports_cnt, - uint queue_cnt, - int * valid ) { +fd_ethtool_ioctl_ntuple_set_gre( fd_ethtool_ioctl_t * ioc, + uint rule_idx, + uint queue_idx ) { + /* See above for any_location */ + struct ethtool_rxnfc get = { .cmd = ETHTOOL_GRXCLSRLCNT }; + TRY_RUN_IOCTL( ioc, "ETHTOOL_GRXCLSRLCNT", &get ); + int const any_location = !!(get.data & RX_CLS_LOC_SPECIAL); + + FD_LOG_NOTICE(( "RUN: `ethtool --config-ntuple %s flow-type ip4 l4proto 47 queue %u`", + ioc->ifr.ifr_name, queue_idx )); + struct ethtool_rxnfc efc = { + .cmd = ETHTOOL_SRXCLSRLINS, + .fs = { + .flow_type = IPV4_USER_FLOW, + .h_u = { .usr_ip4_spec = { + .ip_ver = ETH_RX_NFC_IP4, + .proto = IPPROTO_GRE } }, + .m_u = { .usr_ip4_spec = { + .ip_ver = 0xFF, + .proto = 0xFF } }, + .ring_cookie = queue_idx, + .location = any_location ? RX_CLS_LOC_ANY : rule_idx, + } + }; + TRY_RUN_IOCTL( ioc, "ETHTOOL_SRXCLSRLINS", &efc ); + return 0; +} + +int +fd_ethtool_ioctl_ntuple_validate( fd_ethtool_ioctl_t * ioc, + ushort const * dports, + uint dports_cnt, + uint queue_cnt, + uint gre_queue, + int * valid ) { union { struct ethtool_rxnfc m; uchar _[ ETHTOOL_CMD_SIZE( struct ethtool_rxnfc, uint, MAX_NTUPLE_RULES ) ]; } efc = { 0 }; + int gre_rule = (gre_queue!=UINT_MAX); + /* Get count of currently defined rules */ efc.m.cmd = ETHTOOL_GRXCLSRLCNT; int ret = run_ioctl( ioc, "ETHTOOL_GRXCLSRLCNT", &efc, 1, 0 ); if( FD_UNLIKELY( ret!=0 ) ) { if( FD_LIKELY( ret==EOPNOTSUPP ) ) { - *valid = (dports_cnt==0U); + *valid = (dports_cnt==0U) & !gre_rule; return 0; } return ret; @@ -509,18 +542,19 @@ fd_ethtool_ioctl_ntuple_validate_udp_dport( fd_ethtool_ioctl_t * ioc, uint const rule_cnt = efc.m.rule_cnt; if( FD_UNLIKELY( rule_cnt>MAX_NTUPLE_RULES ) ) return EINVAL; - if( dports_cnt==0U ) { + if( (dports_cnt==0U) & !gre_rule ) { *valid = (rule_cnt==0U); return 0; } FD_TEST( queue_cnt>0U ); uint const rule_group_cnt = fd_uint_pow2_up( queue_cnt ); - if( rule_cnt!=(dports_cnt*rule_group_cnt) ) { + if( rule_cnt!=(dports_cnt*rule_group_cnt + (uint)gre_rule) ) { *valid = 0; return 0; } ushort expected[ MAX_NTUPLE_RULES ] = { 0 }; + int found_gre = 0; for( uint r=0U; r=rule_group_cnt) | (get.fs.ring_cookie!=(rule_group_idx%queue_cnt)) ) || - 0!=memcmp( &get.fs.m_u, &expected_mask, sizeof(expected_mask) ) || - 0!=memcmp( &get.fs.m_ext, &EXPECTED_EXT_MASK, sizeof(EXPECTED_EXT_MASK)) ) ) { + + /* Is this the GRE rule? */ + if( FD_UNLIKELY( ((!found_gre) & (flow_type==IPV4_USER_FLOW) & (get.fs.ring_cookie==gre_queue) & + (get.fs.h_u.usr_ip4_spec.proto==IPPROTO_GRE))&& + !memcmp( &get.fs.m_u, &expected_gre_mask, sizeof(expected_gre_mask) ) && + !memcmp( &get.fs.m_ext, &EXPECTED_EXT_MASK, sizeof(EXPECTED_EXT_MASK)) ) ) { + found_gre = 1; + continue; + } else if( FD_UNLIKELY( ((flow_type!=UDP_V4_FLOW) | (rule_group_idx>=rule_group_cnt) | + (get.fs.ring_cookie!=(rule_group_idx%queue_cnt)) | (dport==0)) || + 0!=memcmp( &get.fs.m_u, &expected_mask, sizeof(expected_mask) ) || + 0!=memcmp( &get.fs.m_ext, &EXPECTED_EXT_MASK, sizeof(EXPECTED_EXT_MASK)) ) ) { *valid = 0; return 0; } @@ -569,8 +616,9 @@ fd_ethtool_ioctl_ntuple_validate_udp_dport( fd_ethtool_ioctl_t * ioc, } } - /* All rules are valid and matched expected ports */ - *valid = 1; + /* All UDP rules are valid and matched expected ports. It's fully + valid if GRE matched. */ + *valid = found_gre==gre_rule; return 0; } diff --git a/src/app/shared/commands/configure/fd_ethtool_ioctl.h b/src/app/shared/commands/configure/fd_ethtool_ioctl.h index 319f7d6997d..0585d3af05f 100644 --- a/src/app/shared/commands/configure/fd_ethtool_ioctl.h +++ b/src/app/shared/commands/configure/fd_ethtool_ioctl.h @@ -172,7 +172,7 @@ fd_ethtool_ioctl_ntuple_clear( fd_ethtool_ioctl_t * ioc ); /* fd_ethtool_ioctl_ntuple_set_udp_dport installs a flow steering rule at the given rule_idx to route all UDP/IPv4 packets with the given destination port to the given queue_idx. Note that if a rule already - exists at rule_idx, it will be overwritten. + exists at rule_idx, it may be overwritten. In order to facilitate load balancing flows across multiple queues, a nonzero rule_group_idx can be given. rule_group_cnt must be a @@ -192,21 +192,34 @@ fd_ethtool_ioctl_ntuple_set_udp_dport( fd_ethtool_ioctl_t * ioc, uint rule_group_cnt, uint queue_idx ); -/* fd_ethtool_ioctl_ntuple_validate_udp_dport queries all ntuple - rules and then sets valid to 1 if they match the expected set of - rules for the given UDP destination ports and the given number of - queues (each queue should have a group of rules, one for each port - in dports). In other words, this makes sure the existing rules are - correct and that no other rules are active. If dports_cnt is zero, - then this effectively checks whether any rules exist. Returns - nonzero on failure (uncertain if valid or not). */ +/* fd_ethtool_ioctl_ntuple_set_gre installs a flow steering rule at the + given rule_idx to route all GRE traffic (IP proto 47) to the given + queue_idx. Note that if a rule already exists at rule_idx, it may + be overwritten. + + Returns nonzero on failure. */ +int +fd_ethtool_ioctl_ntuple_set_gre( fd_ethtool_ioctl_t * ioc, + uint rule_idx, + uint queue_idx ); + +/* fd_ethtool_ioctl_ntuple_validate queries all ntuple rules and then + sets valid to 1 if they match the expected set of rules for GRE to go + to gre_queue (unless it is UINT_MAX), and the given UDP destination + ports and the given number of queues (each queue should have a group + of rules, one for each port in dports). In other words, this makes + sure the existing rules are correct and that no other rules are + active. If dports_cnt is zero and gre_queue is UINT_MAX, then this + effectively checks whether any rules exist. Returns nonzero on + failure (uncertain if valid or not). */ int -fd_ethtool_ioctl_ntuple_validate_udp_dport( fd_ethtool_ioctl_t * ioc, - ushort const * dports, - uint dports_cnt, - uint queue_cnt, - int * valid ); +fd_ethtool_ioctl_ntuple_validate( fd_ethtool_ioctl_t * ioc, + ushort const * dports, + uint dports_cnt, + uint queue_cnt, + uint gre_queue, + int * valid ); /* fd_ethtool_ioctl_rxfh_set_flow_hash_udp4 configures the NIC to include source and destination ports in the RSS hash for UDP/IPv4 diff --git a/src/app/shared/commands/configure/hugetlbfs.c b/src/app/shared/commands/configure/hugetlbfs.c index cd7e132d16d..8b8a41f1baf 100644 --- a/src/app/shared/commands/configure/hugetlbfs.c +++ b/src/app/shared/commands/configure/hugetlbfs.c @@ -36,7 +36,7 @@ static char const * FREE_HUGE_PAGE_PATH[ 2 ] = { "/sys/devices/system/node/node%lu/hugepages/hugepages-1048576kB/free_hugepages", }; -static ulong PAGE_SIZE[ 2 ] = { +static ulong FD_PAGE_SIZE[ 2 ] = { 2097152, 1073741824, }; @@ -153,8 +153,8 @@ init( config_t const * config ) { ulong min_size[ 2 ] = {0}; for( ulong i=0UL; itopo, i, 0 ); - min_size[ 1 ] += PAGE_SIZE[ 1 ] * fd_topo_gigantic_page_cnt( &config->topo, i ); + min_size[ 0 ] += FD_PAGE_SIZE[ 0 ] * fd_topo_huge_page_cnt( &config->topo, i, 0 ); + min_size[ 1 ] += FD_PAGE_SIZE[ 1 ] * fd_topo_gigantic_page_cnt( &config->topo, i ); } for( ulong i=0UL; i<2UL; i++ ) { @@ -164,7 +164,7 @@ init( config_t const * config ) { } char options[ 256 ]; - FD_TEST( fd_cstr_printf_check( options, sizeof(options), NULL, "pagesize=%lu,min_size=%lu", PAGE_SIZE[ i ], min_size[ i ] ) ); + FD_TEST( fd_cstr_printf_check( options, sizeof(options), NULL, "pagesize=%lu,min_size=%lu", FD_PAGE_SIZE[ i ], min_size[ i ] ) ); FD_LOG_NOTICE(( "RUN: `mount -t hugetlbfs none %s -o %s`", mount_path[ i ], options )); if( FD_UNLIKELY( mount( "none", mount_path[ i ], "hugetlbfs", 0, options) ) ) FD_LOG_ERR(( "mount of hugetlbfs at `%s` failed (%i-%s)", mount_path[ i ], errno, fd_io_strerror( errno ) )); @@ -303,8 +303,8 @@ check( config_t const * config, ulong numa_node_cnt = fd_shmem_numa_cnt(); ulong required_min_size[ 2 ] = {0}; for( ulong i=0UL; itopo, i, 0 ); - required_min_size[ 1 ] += PAGE_SIZE[ 1 ] * fd_topo_gigantic_page_cnt( &config->topo, i ); + required_min_size[ 0 ] += FD_PAGE_SIZE[ 0 ] * fd_topo_huge_page_cnt( &config->topo, i, 0 ); + required_min_size[ 1 ] += FD_PAGE_SIZE[ 1 ] * fd_topo_gigantic_page_cnt( &config->topo, i ); } struct stat st; diff --git a/src/app/shared/fd_config.h b/src/app/shared/fd_config.h index da9d9e76e36..c93ab5f747a 100644 --- a/src/app/shared/fd_config.h +++ b/src/app/shared/fd_config.h @@ -212,6 +212,7 @@ struct fd_config_net { uint xdp_tx_queue_size; uint flush_timeout_micros; char rss_queue_mode[ 16 ]; /* "simple", "dedicated", or "auto" */ + int listen_gre; int native_bond; } xdp; @@ -289,6 +290,8 @@ struct fd_config { char entrypoints[ GOSSIP_TILE_ENTRYPOINTS_MAX ][ 262 ]; fd_ip4_port_t resolved_entrypoints[ GOSSIP_TILE_ENTRYPOINTS_MAX ]; + /* The IPv4 addr that [gossip.host] resolves to. */ + uint resolved_host; ushort port; } gossip; diff --git a/src/app/shared/fd_config_parse.c b/src/app/shared/fd_config_parse.c index 8c22914015b..82a38efe1d9 100644 --- a/src/app/shared/fd_config_parse.c +++ b/src/app/shared/fd_config_parse.c @@ -190,6 +190,7 @@ fd_config_extract_pod( uchar * pod, CFG_POP ( uint, net.xdp.xdp_tx_queue_size ); CFG_POP ( uint, net.xdp.flush_timeout_micros ); CFG_POP ( cstr, net.xdp.rss_queue_mode ); + CFG_POP ( bool, net.xdp.listen_gre ); CFG_POP ( bool, net.xdp.native_bond ); CFG_POP ( uint, net.socket.receive_buffer_size ); CFG_POP ( uint, net.socket.send_buffer_size ); diff --git a/src/app/shared_dev/commands/bench/fd_benchs.c b/src/app/shared_dev/commands/bench/fd_benchs.c index 98667ed4367..d0e1a5e30f9 100644 --- a/src/app/shared_dev/commands/bench/fd_benchs.c +++ b/src/app/shared_dev/commands/bench/fd_benchs.c @@ -450,8 +450,7 @@ unprivileged_init( fd_topo_t const * topo, static void quic_tx_aio_send_flush( fd_benchs_ctx_t * ctx ) { if( FD_LIKELY( ctx->tx_idx ) ) { - int flags = 0; - int rtn = sendmmsg( ctx->conn_fd[0], ctx->tx_msgs, (uint)ctx->tx_idx, flags ); + int rtn = sendmmsg( ctx->conn_fd[0], ctx->tx_msgs, (uint)ctx->tx_idx, 0 ); if( FD_UNLIKELY( rtn < 0 ) ) { FD_LOG_NOTICE(( "Error occurred in sendmmsg. Error: %d %s", errno, strerror( errno ) )); diff --git a/src/app/shared_dev/commands/dump.c b/src/app/shared_dev/commands/dump.c index 02e08488e90..023cb571eac 100644 --- a/src/app/shared_dev/commands/dump.c +++ b/src/app/shared_dev/commands/dump.c @@ -310,9 +310,10 @@ dump_cmd_fn( args_t * args, fd_rng_t _rng[1]; fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, (uint)fd_tickcount(), 0UL ) ); - uchar * scratch = fd_alloca( FD_STEM_SCRATCH_ALIGN, stem_scratch_footprint( ctx.link_cnt, 0UL, 0UL ) ); + uchar __attribute__((aligned(FD_STEM_SCRATCH_ALIGN))) scratch[ stem_scratch_footprint( ctx.link_cnt, 0UL, 0UL ) ]; + uchar __attribute__((aligned(FD_METRICS_ALIGN))) metrics_mem[ FD_METRICS_FOOTPRINT( ctx.link_cnt ) ]; - ctx.metrics_base = fd_metrics_join( fd_metrics_new( fd_alloca( FD_METRICS_ALIGN, FD_METRICS_FOOTPRINT( ctx.link_cnt ) ), ctx.link_cnt ) ); + ctx.metrics_base = fd_metrics_join( fd_metrics_new( metrics_mem, ctx.link_cnt ) ); fd_metrics_register( ctx.metrics_base ); /* The purpose of the warmup period is to ensure that all frags in diff --git a/src/app/shared_dev/commands/quic_trace/Local.mk b/src/app/shared_dev/commands/quic_trace/Local.mk index a7bfb078753..1771d515361 100644 --- a/src/app/shared_dev/commands/quic_trace/Local.mk +++ b/src/app/shared_dev/commands/quic_trace/Local.mk @@ -1,8 +1,6 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_quic_trace_frame,fddev_shared) $(call add-objs,fd_quic_trace_main,fddev_shared) $(call add-objs,fd_quic_trace_rx_tile,fddev_shared) $(call add-objs,fd_quic_trace_log_tile,fddev_shared) endif -endif diff --git a/src/ballet/aes/fd_aes_gcm_ref.h b/src/ballet/aes/fd_aes_gcm_ref.h index c801026c0ef..4d35ec7c684 100644 --- a/src/ballet/aes/fd_aes_gcm_ref.h +++ b/src/ballet/aes/fd_aes_gcm_ref.h @@ -8,9 +8,7 @@ union fd_gcm128 { ulong hi; ulong lo; }; -# if FD_HAS_INT128 uint128 u128; -# endif }; typedef union fd_gcm128 fd_gcm128_t; diff --git a/src/ballet/bn254/Local.mk b/src/ballet/bn254/Local.mk index 51c3e0904fe..04de95d9931 100644 --- a/src/ballet/bn254/Local.mk +++ b/src/ballet/bn254/Local.mk @@ -1,8 +1,6 @@ -ifdef FD_HAS_INT128 $(call add-hdrs,fd_bn254.h fd_bn254_scalar.h fd_poseidon.h) $(call add-objs,fd_bn254 fd_poseidon,fd_ballet) $(call make-unit-test,test_bn254,test_bn254,fd_ballet fd_util) $(call make-unit-test,test_poseidon,test_poseidon,fd_ballet fd_util) $(call run-unit-test,test_bn254) $(call run-unit-test,test_poseidon) -endif diff --git a/src/ballet/lthash/fd_lthash.h b/src/ballet/lthash/fd_lthash.h index dd1867a03f0..8728e5b6ff0 100644 --- a/src/ballet/lthash/fd_lthash.h +++ b/src/ballet/lthash/fd_lthash.h @@ -65,22 +65,6 @@ fd_lthash_sub( fd_lthash_value_t * restrict r, return r; } -#define FD_LTHASH_ENC_32_BUF( _x, _y ) __extension__({ \ - if( FD_UNLIKELY( _x == NULL ) ) { \ - strcpy(_y, ""); \ - } else { \ - uchar _blake3_hash[FD_HASH_FOOTPRINT]; \ - fd_blake3_hash(_x, FD_LTHASH_LEN_BYTES, _blake3_hash ); \ - fd_base58_encode_32( _blake3_hash, NULL, _y ); \ - } \ -}) - -#define FD_LTHASH_ENC_32_ALLOCA( x ) __extension__({ \ - char *_out = (char *)fd_alloca_check( 1UL, FD_BASE58_ENCODED_32_SZ ); \ - FD_LTHASH_ENC_32_BUF(x, _out); \ - _out; \ -}) - FD_PROTOTYPES_END #endif /* HEADER_fd_src_ballet_lthash_fd_lthash_h */ diff --git a/src/choreo/eqvoc/Local.mk b/src/choreo/eqvoc/Local.mk index 6ed3160e05b..9048ea1369f 100644 --- a/src/choreo/eqvoc/Local.mk +++ b/src/choreo/eqvoc/Local.mk @@ -1,4 +1,3 @@ -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_eqvoc.h) $(call add-objs,fd_eqvoc,fd_choreo) ifdef FD_HAS_HOSTED @@ -6,4 +5,3 @@ $(call make-unit-test,test_eqvoc,test_eqvoc,fd_choreo fd_flamenco fd_ballet fd_u $(call run-unit-test,test_eqvoc) $(call make-fuzz-test,fuzz_eqvoc,fuzz_eqvoc,fd_choreo fd_flamenco fd_ballet fd_util) endif -endif diff --git a/src/choreo/ghost/Local.mk b/src/choreo/ghost/Local.mk index 9cf79f57159..3c37b2145b9 100644 --- a/src/choreo/ghost/Local.mk +++ b/src/choreo/ghost/Local.mk @@ -1,8 +1,6 @@ -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_ghost.h) $(call add-objs,fd_ghost,fd_choreo) ifdef FD_HAS_HOSTED $(call make-unit-test,test_ghost,test_ghost,fd_choreo fd_flamenco fd_tango fd_ballet fd_util) $(call run-unit-test,test_ghost) endif -endif diff --git a/src/choreo/tower/test_tower.c b/src/choreo/tower/test_tower.c index 4bb9665dd21..7fa3efe8dba 100644 --- a/src/choreo/tower/test_tower.c +++ b/src/choreo/tower/test_tower.c @@ -691,8 +691,7 @@ test_switch_closed_vote_account( fd_wksp_t * wksp ) { /* Insert lockout and stake for candidate_slot=109 (fork C, ABC active). Do NOT insert stake for ABC on switch_slot=106 — ABC's vote account - was closed on fork A, so it was skipped during query_vote_accs for - slot 106. */ + was closed on fork A, so it was skipped in slot 106. */ fd_tower_lockos_insert( tower, 109, &acct.vote_acc, acct.votes ); fd_tower_stakes_insert( tower, 109, &acct.vote_acc, acct.stake, ULONG_MAX ); diff --git a/src/disco/dedup/Local.mk b/src/disco/dedup/Local.mk index ec857dd2ae0..5302077a09b 100644 --- a/src/disco/dedup/Local.mk +++ b/src/disco/dedup/Local.mk @@ -1,6 +1,4 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_dedup_tile,fd_disco) # $(call make-unit-test,test_dedup,test_dedup,fd_disco fd_tango fd_util) endif -endif diff --git a/src/disco/diag/Local.mk b/src/disco/diag/Local.mk index b952902ff37..71fc6627fc0 100644 --- a/src/disco/diag/Local.mk +++ b/src/disco/diag/Local.mk @@ -1,7 +1,5 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_diag_tile,fd_disco) -endif $(call add-hdrs,fd_proc_interrupts.h) $(call add-objs,fd_proc_interrupts,fd_disco) $(call make-unit-test,test_proc_interrupts,test_proc_interrupts,fd_disco fd_util) diff --git a/src/disco/events/Local.mk b/src/disco/events/Local.mk index 9fa1b7775c3..d4dc327186b 100644 --- a/src/disco/events/Local.mk +++ b/src/disco/events/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_HOSTED $(call add-hdrs,fd_circq.h) $(call add-objs,fd_circq fd_event_client,fd_disco) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_event_tile,fd_disco) -endif $(call make-unit-test,test_circq,test_circq,fd_disco fd_flamenco fd_tango fd_util) $(call run-unit-test,test_circq) diff --git a/src/disco/gui/Local.mk b/src/disco/gui/Local.mk index dd4fc99bd5c..d2ce4d86955 100644 --- a/src/disco/gui/Local.mk +++ b/src/disco/gui/Local.mk @@ -1,11 +1,9 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call add-hdrs,fd_gui.h fd_gui_printf.h fd_gui_peers.h fd_gui_config_parse.h fd_gui_metrics.h) $(call add-objs,fd_gui fd_gui_printf fd_gui_peers fd_gui_config_parse fd_gui_tile generated/http_import_dist,fd_disco) $(OBJDIR)/obj/disco/gui/fd_gui_tile.o: book/public/fire.svg $(call make-unit-test,test_live_table,test_live_table,fd_disco fd_util) $(call make-fuzz-test,fuzz_config_parser,fuzz_config_parser,fd_disco fd_ballet fd_util) -endif src/disco/gui/dist_stable_cmp/%.zst: src/disco/gui/dist_stable/% mkdir -p $(@D); diff --git a/src/disco/gui/dist_dev/assets/index-C054xcgF.js b/src/disco/gui/dist_dev/assets/index-C054xcgF.js new file mode 100644 index 00000000000..cf1b956e777 --- /dev/null +++ b/src/disco/gui/dist_dev/assets/index-C054xcgF.js @@ -0,0 +1,214 @@ +var rxe=Object.defineProperty;var ixe=(e,t,n)=>t in e?rxe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $u=(e,t,n)=>ixe(e,typeof t!="symbol"?t+"":t,n);var hC,Yme,Kme,Xme;function oxe(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=t(r);fetch(r.href,i)}})();var Ac=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function to(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wD={exports:{}},v2={},kD={exports:{}},gn={};/** +* @license React +* react.production.min.js +* +* Copyright (c) Facebook, Inc. and its affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var hv=Symbol.for("react.element"),axe=Symbol.for("react.portal"),sxe=Symbol.for("react.fragment"),lxe=Symbol.for("react.strict_mode"),uxe=Symbol.for("react.profiler"),cxe=Symbol.for("react.provider"),dxe=Symbol.for("react.context"),fxe=Symbol.for("react.forward_ref"),hxe=Symbol.for("react.suspense"),pxe=Symbol.for("react.memo"),mxe=Symbol.for("react.lazy"),SD=Symbol.iterator;function gxe(e){return e===null||typeof e!="object"?null:(e=SD&&e[SD]||e["@@iterator"],typeof e=="function"?e:null)}var CD={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jD=Object.assign,TD={};function Jm(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}Jm.prototype.isReactComponent={},Jm.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},Jm.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ID(){}ID.prototype=Jm.prototype;function cj(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}var dj=cj.prototype=new ID;dj.constructor=cj,jD(dj,Jm.prototype),dj.isPureReactComponent=!0;var ED=Array.isArray,ND=Object.prototype.hasOwnProperty,fj={current:null},$D={key:!0,ref:!0,__self:!0,__source:!0};function MD(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)ND.call(t,r)&&!$D.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1>>1,B=F[ce];if(0>>1;cei(me,ee))kei(he,me)?(F[ce]=he,F[ke]=ee,ce=ke):(F[ce]=me,F[je]=ee,ce=je);else if(kei(he,ee))F[ce]=he,F[ke]=ee,ce=ke;else break e}}return H}function i(F,H){var ee=F.sortIndex-H.sortIndex;return ee!==0?ee:F.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],d=1,f=null,p=3,v=!1,x=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(F){for(var H=n(c);H!==null;){if(H.callback===null)r(c);else if(H.startTime<=F)r(c),H.sortIndex=H.expirationTime,t(l,H);else break;H=n(c)}}function C(F){if(y=!1,S(F),!x)if(n(l)!==null)x=!0,A(j);else{var H=n(c);H!==null&&Y(C,H.startTime-F)}}function j(F,H){x=!1,y&&(y=!1,w($),$=-1),v=!0;var ee=p;try{for(S(H),f=n(l);f!==null&&(!(f.expirationTime>H)||F&&!O());){var ce=f.callback;if(typeof ce=="function"){f.callback=null,p=f.priorityLevel;var B=ce(f.expirationTime<=H);H=e.unstable_now(),typeof B=="function"?f.callback=B:f===n(l)&&r(l),S(H)}else r(l);f=n(l)}if(f!==null)var ae=!0;else{var je=n(c);je!==null&&Y(C,je.startTime-H),ae=!1}return ae}finally{f=null,p=ee,v=!1}}var T=!1,E=null,$=-1,D=5,M=-1;function O(){return!(e.unstable_now()-MF||125ce?(F.sortIndex=ee,t(c,F),n(l)===null&&F===n(c)&&(y?(w($),$=-1):y=!0,Y(C,ee-ce))):(F.sortIndex=B,t(l,F),x||v||(x=!0,A(j))),F},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(F){var H=p;return function(){var ee=p;p=H;try{return F.apply(this,arguments)}finally{p=ee}}}})(DD),zD.exports=DD;var Txe=zD.exports;/** +* @license React +* react-dom.production.min.js +* +* Copyright (c) Facebook, Inc. and its affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var Ixe=m,is=Txe;function Ze(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),vj=Object.prototype.hasOwnProperty,Exe=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,FD={},UD={};function Nxe(e){return vj.call(UD,e)?!0:vj.call(FD,e)?!1:Exe.test(e)?UD[e]=!0:(FD[e]=!0,!1)}function $xe(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Mxe(e,t,n,r){if(t===null||typeof t>"u"||$xe(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ia(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var yo={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yo[e]=new ia(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yo[t]=new ia(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){yo[e]=new ia(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yo[e]=new ia(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){yo[e]=new ia(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){yo[e]=new ia(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){yo[e]=new ia(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){yo[e]=new ia(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){yo[e]=new ia(e,5,!1,e.toLowerCase(),null,!1,!1)});var yj=/[\-:]([a-z])/g;function bj(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(yj,bj);yo[t]=new ia(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(yj,bj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(yj,bj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!1,!1)}),yo.xlinkHref=new ia("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!0,!0)});function xj(e,t,n,r){var i=yo.hasOwnProperty(t)?yo[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var l=` +`+i[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Ij=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?gv(e):""}function Rxe(e){switch(e.tag){case 5:return gv(e.type);case 16:return gv("Lazy");case 13:return gv("Suspense");case 19:return gv("SuspenseList");case 0:case 2:case 15:return e=Ej(e.type,!1),e;case 11:return e=Ej(e.type.render,!1),e;case 1:return e=Ej(e.type,!0),e;default:return""}}function Nj(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case t0:return"Fragment";case e0:return"Portal";case wj:return"Profiler";case _j:return"StrictMode";case Sj:return"Suspense";case Cj:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case WD:return(e.displayName||"Context")+".Consumer";case BD:return(e._context.displayName||"Context")+".Provider";case kj:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case jj:return t=e.displayName||null,t!==null?t:Nj(e.type)||"Memo";case Qd:t=e._payload,e=e._init;try{return Nj(e(t))}catch{}}return null}function Lxe(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Nj(t);case 8:return t===_j?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ef(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ZD(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Pxe(e){var t=ZD(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function w2(e){e._valueTracker||(e._valueTracker=Pxe(e))}function qD(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ZD(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function k2(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function $j(e,t){var n=t.checked;return Qr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function GD(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ef(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function YD(e,t){t=t.checked,t!=null&&xj(e,"checked",t,!1)}function Mj(e,t){YD(e,t);var n=ef(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Rj(e,t.type,n):t.hasOwnProperty("defaultValue")&&Rj(e,t.type,ef(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function KD(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Rj(e,t,n){(t!=="number"||k2(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var vv=Array.isArray;function n0(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=S2.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function yv(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var bv={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Oxe=["Webkit","ms","Moz","O"];Object.keys(bv).forEach(function(e){Oxe.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),bv[t]=bv[e]})});function nA(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||bv.hasOwnProperty(e)&&bv[e]?(""+t).trim():t+"px"}function rA(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=nA(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var zxe=Qr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Oj(e,t){if(t){if(zxe[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ze(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ze(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Ze(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Ze(62))}}function zj(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Dj=null;function Aj(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Fj=null,r0=null,i0=null;function iA(e){if(e=Uv(e)){if(typeof Fj!="function")throw Error(Ze(280));var t=e.stateNode;t&&(t=q2(t),Fj(e.stateNode,e.type,t))}}function oA(e){r0?i0?i0.push(e):i0=[e]:r0=e}function aA(){if(r0){var e=r0,t=i0;if(i0=r0=null,iA(e),t)for(e=0;e>>=0,e===0?32:31-(Gxe(e)/Yxe|0)|0}var E2=64,N2=4194304;function kv(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $2(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=kv(s):(o&=a,o!==0&&(r=kv(o)))}else a=n&~i,a!==0?r=kv(a):o!==0&&(r=kv(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Sv(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Nl(t),e[t]=n}function Qxe(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Mv),LA=" ",PA=!1;function OA(e,t){switch(e){case"keyup":return T_e.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zA(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var s0=!1;function E_e(e,t){switch(e){case"compositionend":return zA(t);case"keypress":return t.which!==32?null:(PA=!0,LA);case"textInput":return e=t.data,e===LA&&PA?null:e;default:return null}}function N_e(e,t){if(s0)return e==="compositionend"||!i8&&OA(e,t)?(e=IA(),O2=Jj=af=null,s0=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=VA(n)}}function ZA(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ZA(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function qA(){for(var e=window,t=k2();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=k2(e.document)}return t}function s8(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function A_e(e){var t=qA(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ZA(n.ownerDocument.documentElement,n)){if(r!==null&&s8(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=HA(n,o);var a=HA(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,l0=null,l8=null,Ov=null,u8=!1;function GA(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;u8||l0==null||l0!==k2(r)||(r=l0,"selectionStart"in r&&s8(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ov&&Pv(Ov,r)||(Ov=r,r=V2(l8,"onSelect"),0h0||(e.current=_8[h0],_8[h0]=null,h0--)}function Tr(e,t){h0++,_8[h0]=e.current,e.current=t}var cf={},Po=uf(cf),Na=uf(!1),Ph=cf;function p0(e,t){var n=e.type.contextTypes;if(!n)return cf;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function $a(e){return e=e.childContextTypes,e!=null}function G2(){Or(Na),Or(Po)}function uF(e,t,n){if(Po.current!==cf)throw Error(Ze(168));Tr(Po,t),Tr(Na,n)}function cF(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(Ze(108,Lxe(e)||"Unknown",i));return Qr({},n,r)}function Y2(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cf,Ph=Po.current,Tr(Po,e),Tr(Na,Na.current),!0}function dF(e,t,n){var r=e.stateNode;if(!r)throw Error(Ze(169));n?(e=cF(e,t,Ph),r.__reactInternalMemoizedMergedChildContext=e,Or(Na),Or(Po),Tr(Po,e)):Or(Na),Tr(Na,n)}var Wc=null,K2=!1,w8=!1;function fF(e){Wc===null?Wc=[e]:Wc.push(e)}function X_e(e){K2=!0,fF(e)}function df(){if(!w8&&Wc!==null){w8=!0;var e=0,t=Qn;try{var n=Wc;for(Qn=1;e>=a,i-=a,Vc=1<<32-Nl(t)+i|n<$?(D=E,E=null):D=E.sibling;var M=p(w,E,S[$],C);if(M===null){E===null&&(E=D);break}e&&E&&M.alternate===null&&t(w,E),_=o(M,_,$),T===null?j=M:T.sibling=M,T=M,E=D}if($===S.length)return n(w,E),Zr&&zh(w,$),j;if(E===null){for(;$$?(D=E,E=null):D=E.sibling;var O=p(w,E,M.value,C);if(O===null){E===null&&(E=D);break}e&&E&&O.alternate===null&&t(w,E),_=o(O,_,$),T===null?j=O:T.sibling=O,T=O,E=D}if(M.done)return n(w,E),Zr&&zh(w,$),j;if(E===null){for(;!M.done;$++,M=S.next())M=f(w,M.value,C),M!==null&&(_=o(M,_,$),T===null?j=M:T.sibling=M,T=M);return Zr&&zh(w,$),j}for(E=r(w,E);!M.done;$++,M=S.next())M=v(E,w,$,M.value,C),M!==null&&(e&&M.alternate!==null&&E.delete(M.key===null?$:M.key),_=o(M,_,$),T===null?j=M:T.sibling=M,T=M);return e&&E.forEach(function(te){return t(w,te)}),Zr&&zh(w,$),j}function b(w,_,S,C){if(typeof S=="object"&&S!==null&&S.type===t0&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case _2:e:{for(var j=S.key,T=_;T!==null;){if(T.key===j){if(j=S.type,j===t0){if(T.tag===7){n(w,T.sibling),_=i(T,S.props.children),_.return=w,w=_;break e}}else if(T.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===Qd&&yF(j)===T.type){n(w,T.sibling),_=i(T,S.props),_.ref=Bv(w,T,S),_.return=w,w=_;break e}n(w,T);break}else t(w,T);T=T.sibling}S.type===t0?(_=Hh(S.props.children,w.mode,C,S.key),_.return=w,w=_):(C=Sw(S.type,S.key,S.props,null,w.mode,C),C.ref=Bv(w,_,S),C.return=w,w=C)}return a(w);case e0:e:{for(T=S.key;_!==null;){if(_.key===T)if(_.tag===4&&_.stateNode.containerInfo===S.containerInfo&&_.stateNode.implementation===S.implementation){n(w,_.sibling),_=i(_,S.children||[]),_.return=w,w=_;break e}else{n(w,_);break}else t(w,_);_=_.sibling}_=y9(S,w.mode,C),_.return=w,w=_}return a(w);case Qd:return T=S._init,b(w,_,T(S._payload),C)}if(vv(S))return x(w,_,S,C);if(mv(S))return y(w,_,S,C);ew(w,S)}return typeof S=="string"&&S!==""||typeof S=="number"?(S=""+S,_!==null&&_.tag===6?(n(w,_.sibling),_=i(_,S),_.return=w,w=_):(n(w,_),_=v9(S,w.mode,C),_.return=w,w=_),a(w)):n(w,_)}return b}var y0=bF(!0),xF=bF(!1),tw=uf(null),nw=null,b0=null,I8=null;function E8(){I8=b0=nw=null}function N8(e){var t=tw.current;Or(tw),e._currentValue=t}function $8(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function x0(e,t){nw=e,I8=b0=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ma=!0),e.firstContext=null)}function qs(e){var t=e._currentValue;if(I8!==e)if(e={context:e,memoizedValue:t,next:null},b0===null){if(nw===null)throw Error(Ze(308));b0=e,nw.dependencies={lanes:0,firstContext:e}}else b0=b0.next=e;return t}var Dh=null;function M8(e){Dh===null?Dh=[e]:Dh.push(e)}function _F(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,M8(t)):(n.next=i.next,i.next=n),t.interleaved=n,Zc(e,r)}function Zc(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var ff=!1;function R8(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wF(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function qc(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function hf(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Nn&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Zc(e,n)}return i=r.interleaved,i===null?(t.next=t,M8(r)):(t.next=i.next,i.next=t),r.interleaved=t,Zc(e,n)}function rw(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,qj(e,n)}}function kF(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?i=o=a:o=o.next=a,n=n.next}while(n!==null);o===null?i=o=t:o=o.next=t}else i=o=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function iw(e,t,n,r){var i=e.updateQueue;ff=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?o=c:a.next=c,a=l;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==a&&(s===null?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l))}if(o!==null){var f=i.baseState;a=0,d=c=l=null,s=o;do{var p=s.lane,v=s.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:v,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var x=e,y=s;switch(p=t,v=n,y.tag){case 1:if(x=y.payload,typeof x=="function"){f=x.call(v,f,p);break e}f=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=y.payload,p=typeof x=="function"?x.call(v,f,p):x,p==null)break e;f=Qr({},f,p);break e;case 2:ff=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[s]:p.push(s))}else v={eventTime:v,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(c=d=v,l=f):d=d.next=v,a|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(!0);if(d===null&&(l=f),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do a|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);Uh|=a,e.lanes=a,e.memoizedState=f}}function SF(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=D8.transition;D8.transition={};try{e(!1),t()}finally{Qn=n,D8.transition=r}}function WF(){return Gs().memoizedState}function t2e(e,t,n){var r=vf(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},VF(e))HF(t,n);else if(n=_F(e,t,n,r),n!==null){var i=aa();Ol(n,e,r,i),ZF(n,t,r)}}function n2e(e,t,n){var r=vf(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(VF(e))HF(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,$l(s,a)){var l=t.interleaved;l===null?(i.next=i,M8(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=_F(e,t,i,r),n!==null&&(i=aa(),Ol(n,e,r,i),ZF(n,t,r))}}function VF(e){var t=e.alternate;return e===ti||t!==null&&t===ti}function HF(e,t){Zv=sw=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ZF(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,qj(e,n)}}var cw={readContext:qs,useCallback:Oo,useContext:Oo,useEffect:Oo,useImperativeHandle:Oo,useInsertionEffect:Oo,useLayoutEffect:Oo,useMemo:Oo,useReducer:Oo,useRef:Oo,useState:Oo,useDebugValue:Oo,useDeferredValue:Oo,useTransition:Oo,useMutableSource:Oo,useSyncExternalStore:Oo,useId:Oo,unstable_isNewReconciler:!1},r2e={readContext:qs,useCallback:function(e,t){return Pu().memoizedState=[e,t===void 0?null:t],e},useContext:qs,useEffect:PF,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lw(4194308,4,DF.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lw(4194308,4,e,t)},useInsertionEffect:function(e,t){return lw(4,2,e,t)},useMemo:function(e,t){var n=Pu();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Pu();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=t2e.bind(null,ti,e),[r.memoizedState,e]},useRef:function(e){var t=Pu();return e={current:e},t.memoizedState=e},useState:RF,useDebugValue:H8,useDeferredValue:function(e){return Pu().memoizedState=e},useTransition:function(){var e=RF(!1),t=e[0];return e=e2e.bind(null,e[1]),Pu().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ti,i=Pu();if(Zr){if(n===void 0)throw Error(Ze(407));n=n()}else{if(n=t(),ro===null)throw Error(Ze(349));Fh&30||IF(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,PF(NF.bind(null,r,o,e),[e]),r.flags|=2048,Yv(9,EF.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Pu(),t=ro.identifierPrefix;if(Zr){var n=Hc,r=Vc;n=(r&~(1<<32-Nl(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=qv++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Ru]=t,e[Fv]=r,fU(e,t,!1,!1),t.stateNode=e;e:{switch(a=zj(n,r),n){case"dialog":Pr("cancel",e),Pr("close",e),i=r;break;case"iframe":case"object":case"embed":Pr("load",e),i=r;break;case"video":case"audio":for(i=0;iC0&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304)}else{if(!r)if(e=ow(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Kv(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!Zr)return zo(t),null}else 2*bi()-o.renderingStartTime>C0&&n!==1073741824&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=bi(),t.sibling=null,n=ei.current,Tr(ei,r?n&1|2:n&1),t):(zo(t),null);case 22:case 23:return p9(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ls&1073741824&&(zo(t),t.subtreeFlags&6&&(t.flags|=8192)):zo(t),null;case 24:return null;case 25:return null}throw Error(Ze(156,t.tag))}function d2e(e,t){switch(S8(t),t.tag){case 1:return $a(t.type)&&G2(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return _0(),Or(Na),Or(Po),z8(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return P8(t),null;case 13:if(Or(ei),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ze(340));v0()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Or(ei),null;case 4:return _0(),null;case 10:return N8(t.type._context),null;case 22:case 23:return p9(),null;case 24:return null;default:return null}}var pw=!1,Do=!1,f2e=typeof WeakSet=="function"?WeakSet:Set,dt=null;function k0(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ui(e,t,r)}else n.current=null}function mU(e,t,n){try{n()}catch(r){ui(e,t,r)}}var gU=!1;function h2e(e,t){if(m8=L2,e=qA(),s8(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,d=0,f=e,p=null;t:for(;;){for(var v;f!==n||i!==0&&f.nodeType!==3||(s=a+i),f!==o||r!==0&&f.nodeType!==3||(l=a+r),f.nodeType===3&&(a+=f.nodeValue.length),(v=f.firstChild)!==null;)p=f,f=v;for(;;){if(f===e)break t;if(p===n&&++c===i&&(s=a),p===o&&++d===r&&(l=a),(v=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=v}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(g8={focusedElem:e,selectionRange:n},L2=!1,dt=t;dt!==null;)if(t=dt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dt=e;else for(;dt!==null;){t=dt;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var y=x.memoizedProps,b=x.memoizedState,w=t.stateNode,_=w.getSnapshotBeforeUpdate(t.elementType===t.type?y:Rl(t.type,y),b);w.__reactInternalSnapshotBeforeUpdate=_}break;case 3:var S=t.stateNode.containerInfo;S.nodeType===1?S.textContent="":S.nodeType===9&&S.documentElement&&S.removeChild(S.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ze(163))}}catch(C){ui(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,dt=e;break}dt=t.return}return x=gU,gU=!1,x}function Xv(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&mU(t,n,o)}i=i.next}while(i!==r)}}function mw(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function r9(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function vU(e){var t=e.alternate;t!==null&&(e.alternate=null,vU(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ru],delete t[Fv],delete t[x8],delete t[Y_e],delete t[K_e])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function yU(e){return e.tag===5||e.tag===3||e.tag===4}function bU(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||yU(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function i9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Z2));else if(r!==4&&(e=e.child,e!==null))for(i9(e,t,n),e=e.sibling;e!==null;)i9(e,t,n),e=e.sibling}function o9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(o9(e,t,n),e=e.sibling;e!==null;)o9(e,t,n),e=e.sibling}var bo=null,Ll=!1;function pf(e,t,n){for(n=n.child;n!==null;)xU(e,t,n),n=n.sibling}function xU(e,t,n){if(Mu&&typeof Mu.onCommitFiberUnmount=="function")try{Mu.onCommitFiberUnmount(I2,n)}catch{}switch(n.tag){case 5:Do||k0(n,t);case 6:var r=bo,i=Ll;bo=null,pf(e,t,n),bo=r,Ll=i,bo!==null&&(Ll?(e=bo,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):bo.removeChild(n.stateNode));break;case 18:bo!==null&&(Ll?(e=bo,n=n.stateNode,e.nodeType===8?b8(e.parentNode,n):e.nodeType===1&&b8(e,n),Ev(e)):b8(bo,n.stateNode));break;case 4:r=bo,i=Ll,bo=n.stateNode.containerInfo,Ll=!0,pf(e,t,n),bo=r,Ll=i;break;case 0:case 11:case 14:case 15:if(!Do&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&mU(n,t,a),i=i.next}while(i!==r)}pf(e,t,n);break;case 1:if(!Do&&(k0(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){ui(n,t,s)}pf(e,t,n);break;case 21:pf(e,t,n);break;case 22:n.mode&1?(Do=(r=Do)||n.memoizedState!==null,pf(e,t,n),Do=r):pf(e,t,n);break;default:pf(e,t,n)}}function _U(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new f2e),t.forEach(function(r){var i=w2e.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Pl(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=bi()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*m2e(r/1960))-r,10e?16:e,gf===null)var r=!1;else{if(e=gf,gf=null,xw=0,Nn&6)throw Error(Ze(331));var i=Nn;for(Nn|=4,dt=e.current;dt!==null;){var o=dt,a=o.child;if(dt.flags&16){var s=o.deletions;if(s!==null){for(var l=0;lbi()-l9?Wh(e,0):s9|=n),La(e,t)}function LU(e,t){t===0&&(e.mode&1?(t=N2,N2<<=1,!(N2&130023424)&&(N2=4194304)):t=1);var n=aa();e=Zc(e,t),e!==null&&(Sv(e,t,n),La(e,n))}function _2e(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),LU(e,n)}function w2e(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(Ze(314))}r!==null&&r.delete(t),LU(e,n)}var PU;PU=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Na.current)Ma=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ma=!1,u2e(e,t,n);Ma=!!(e.flags&131072)}else Ma=!1,Zr&&t.flags&1048576&&hF(t,J2,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;hw(e,t),e=t.pendingProps;var i=p0(t,Po.current);x0(t,n),i=F8(null,t,r,e,i,n);var o=U8();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,$a(r)?(o=!0,Y2(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,R8(t),i.updater=dw,t.stateNode=i,i._reactInternals=t,q8(t,r,e,n),t=X8(null,t,r,!0,o,n)):(t.tag=0,Zr&&o&&k8(t),oa(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(hw(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=S2e(r),e=Rl(r,e),i){case 0:t=K8(null,t,r,e,n);break e;case 1:t=aU(null,t,r,e,n);break e;case 11:t=tU(null,t,r,e,n);break e;case 14:t=nU(null,t,r,Rl(r.type,e),n);break e}throw Error(Ze(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),K8(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),aU(e,t,r,i,n);case 3:e:{if(sU(t),e===null)throw Error(Ze(387));r=t.pendingProps,o=t.memoizedState,i=o.element,wF(e,t),iw(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=w0(Error(Ze(423)),t),t=lU(e,t,r,n,i);break e}else if(r!==i){i=w0(Error(Ze(424)),t),t=lU(e,t,r,n,i);break e}else for(ss=lf(t.stateNode.containerInfo.firstChild),as=t,Zr=!0,Ml=null,n=xF(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(v0(),r===i){t=Gc(e,t,n);break e}oa(e,t,r,n)}t=t.child}return t;case 5:return CF(t),e===null&&j8(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,v8(r,i)?a=null:o!==null&&v8(r,o)&&(t.flags|=32),oU(e,t),oa(e,t,a,n),t.child;case 6:return e===null&&j8(t),null;case 13:return uU(e,t,n);case 4:return L8(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=y0(t,null,r,n):oa(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),tU(e,t,r,i,n);case 7:return oa(e,t,t.pendingProps,n),t.child;case 8:return oa(e,t,t.pendingProps.children,n),t.child;case 12:return oa(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,Tr(tw,r._currentValue),r._currentValue=a,o!==null)if($l(o.value,a)){if(o.children===i.children&&!Na.current){t=Gc(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=qc(-1,n&-n),l.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),$8(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(Ze(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),$8(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}oa(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,x0(t,n),i=qs(i),r=r(i),t.flags|=1,oa(e,t,r,n),t.child;case 14:return r=t.type,i=Rl(r,t.pendingProps),i=Rl(r.type,i),nU(e,t,r,i,n);case 15:return rU(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),hw(e,t),t.tag=1,$a(r)?(e=!0,Y2(t)):e=!1,x0(t,n),GF(t,r,i),q8(t,r,i,n),X8(null,t,r,!0,e,n);case 19:return dU(e,t,n);case 22:return iU(e,t,n)}throw Error(Ze(156,t.tag))};function OU(e,t){return pA(e,t)}function k2e(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ks(e,t,n,r){return new k2e(e,t,n,r)}function g9(e){return e=e.prototype,!(!e||!e.isReactComponent)}function S2e(e){if(typeof e=="function")return g9(e)?1:0;if(e!=null){if(e=e.$$typeof,e===kj)return 11;if(e===jj)return 14}return 2}function bf(e,t){var n=e.alternate;return n===null?(n=Ks(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Sw(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")g9(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case t0:return Hh(n.children,i,o,t);case _j:a=8,i|=8;break;case wj:return e=Ks(12,n,t,i|2),e.elementType=wj,e.lanes=o,e;case Sj:return e=Ks(13,n,t,i),e.elementType=Sj,e.lanes=o,e;case Cj:return e=Ks(19,n,t,i),e.elementType=Cj,e.lanes=o,e;case VD:return Cw(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case BD:a=10;break e;case WD:a=9;break e;case kj:a=11;break e;case jj:a=14;break e;case Qd:a=16,r=null;break e}throw Error(Ze(130,e==null?e:typeof e,""))}return t=Ks(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function Hh(e,t,n,r){return e=Ks(7,e,r,t),e.lanes=n,e}function Cw(e,t,n,r){return e=Ks(22,e,r,t),e.elementType=VD,e.lanes=n,e.stateNode={isHidden:!1},e}function v9(e,t,n){return e=Ks(6,e,null,t),e.lanes=n,e}function y9(e,t,n){return t=Ks(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function C2e(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Zj(0),this.expirationTimes=Zj(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zj(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function b9(e,t,n,r,i,o,a,s,l){return e=new C2e(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ks(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},R8(o),e}function j2e(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(BU)}catch(e){console.error(e)}}BU(),OD.exports=rs;var Kc=OD.exports;const WU=to(Kc);var VU=Kc;gj.createRoot=VU.createRoot,gj.hydrateRoot=VU.hydrateRoot;function HU(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zl(...e){return t=>{let n=!1;const r=e.map(i=>{const o=HU(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{children:o,...a}=r,s=m.Children.toArray(o),l=s.find(R2e);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}var xf=vr("Slot");function $2e(e){const t=m.forwardRef((n,r)=>{const{children:i,...o}=n;if(m.isValidElement(i)){const a=P2e(i),s=L2e(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ZU=Symbol("radix.slottable");function qU(e){const t=({children:n})=>u.jsx(u.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=ZU,t}var M2e=qU("Slottable");function R2e(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ZU}function L2e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function P2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var O2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],z2e=O2e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),GU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),D2e="VisuallyHidden",YU=m.forwardRef((e,t)=>u.jsx(z2e.span,{...e,ref:t,style:{...GU,...e.style}}));YU.displayName=D2e;var KU=YU;function A2e(e,t){const n=m.createContext(t),r=o=>{const{children:a,...s}=o,l=m.useMemo(()=>s,Object.values(s));return u.jsx(n.Provider,{value:l,children:a})};r.displayName=e+"Provider";function i(o){const a=m.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[r,i]}function Pa(e,t=[]){let n=[];function r(o,a){const s=m.createContext(a),l=n.length;n=[...n,a];const c=f=>{var w;const{scope:p,children:v,...x}=f,y=((w=p==null?void 0:p[e])==null?void 0:w[l])||s,b=m.useMemo(()=>x,Object.values(x));return u.jsx(y.Provider,{value:b,children:v})};c.displayName=o+"Provider";function d(f,p){var y;const v=((y=p==null?void 0:p[e])==null?void 0:y[l])||s,x=m.useContext(v);if(x)return x;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[c,d]}const i=()=>{const o=n.map(a=>m.createContext(a));return function(a){const s=(a==null?void 0:a[e])||o;return m.useMemo(()=>({[`__scope${e}`]:{...a,[e]:s}}),[a,s])}};return i.scopeName=e,[r,F2e(i,...t)]}function F2e(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(i){const o=r.reduce((a,{useScope:s,scopeName:l})=>{const c=s(i)[`__scope${l}`];return{...a,...c}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function Mw(e){const t=e+"CollectionProvider",[n,r]=Pa(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=y=>{const{scope:b,children:w}=y,_=Pe.useRef(null),S=Pe.useRef(new Map).current;return u.jsx(i,{scope:b,itemMap:S,collectionRef:_,children:w})};a.displayName=t;const s=e+"CollectionSlot",l=vr(s),c=Pe.forwardRef((y,b)=>{const{scope:w,children:_}=y,S=o(s,w),C=At(b,S.collectionRef);return u.jsx(l,{ref:C,children:_})});c.displayName=s;const d=e+"CollectionItemSlot",f="data-radix-collection-item",p=vr(d),v=Pe.forwardRef((y,b)=>{const{scope:w,children:_,...S}=y,C=Pe.useRef(null),j=At(b,C),T=o(d,w);return Pe.useEffect(()=>(T.itemMap.set(C,{ref:C,...S}),()=>void T.itemMap.delete(C))),u.jsx(p,{[f]:"",ref:j,children:_})});v.displayName=d;function x(y){const b=o(e+"CollectionConsumer",y);return Pe.useCallback(()=>{const w=b.collectionRef.current;if(!w)return[];const _=Array.from(w.querySelectorAll(`[${f}]`));return Array.from(b.itemMap.values()).sort((S,C)=>_.indexOf(S.ref.current)-_.indexOf(C.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:c,ItemSlot:v},x,r]}function Xe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}var _o=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},U2e=mj[" useInsertionEffect ".trim().toString()]||_o;function Xs({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,o,a]=B2e({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:i;{const d=m.useRef(e!==void 0);m.useEffect(()=>{const f=d.current;f!==s&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,r])}const c=m.useCallback(d=>{var f;if(s){const p=W2e(d)?d(e):d;p!==e&&((f=a.current)==null||f.call(a,p))}else o(d)},[s,e,o,a]);return[l,c]}function B2e({defaultProp:e,onChange:t}){const[n,r]=m.useState(e),i=m.useRef(n),o=m.useRef(t);return U2e(()=>{o.current=t},[t]),m.useEffect(()=>{var a;i.current!==n&&((a=o.current)==null||a.call(o,n),i.current=n)},[n,i]),[n,r,o]}function W2e(e){return typeof e=="function"}function V2e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var Ao=e=>{const{present:t,children:n}=e,r=H2e(t),i=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),o=At(r.ref,Z2e(i));return typeof n=="function"||r.isPresent?m.cloneElement(i,{ref:o}):null};Ao.displayName="Presence";function H2e(e){const[t,n]=m.useState(),r=m.useRef(null),i=m.useRef(e),o=m.useRef("none"),a=e?"mounted":"unmounted",[s,l]=V2e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const c=Rw(r.current);o.current=s==="mounted"?c:"none"},[s]),_o(()=>{const c=r.current,d=i.current;if(d!==e){const f=o.current,p=Rw(c);e?l("MOUNT"):p==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(d&&f!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),_o(()=>{if(t){let c;const d=t.ownerDocument.defaultView??window,f=v=>{const x=Rw(r.current).includes(CSS.escape(v.animationName));if(v.target===t&&x&&(l("ANIMATION_END"),!i.current)){const y=t.style.animationFillMode;t.style.animationFillMode="forwards",c=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=y)})}},p=v=>{v.target===t&&(o.current=Rw(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(c),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:m.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function Rw(e){return(e==null?void 0:e.animationName)||"none"}function Z2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var q2e=mj[" useId ".trim().toString()]||(()=>{}),G2e=0;function wo(e){const[t,n]=m.useState(q2e());return _o(()=>{n(r=>r??String(G2e++))},[e]),t?`radix-${t}`:""}var XU=m.createContext(void 0),Y2e=e=>{const{dir:t,children:n}=e;return u.jsx(XU.Provider,{value:t,children:n})};function T0(e){const t=m.useContext(XU);return e||t||"ltr"}var K2e=Y2e,X2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],JU=X2e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function J2e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}function ko(e){const t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function Q2e(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e);m.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ewe="DismissableLayer",k9="dismissableLayer.update",twe="dismissableLayer.pointerDownOutside",nwe="dismissableLayer.focusOutside",QU,eB=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),I0=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:a,onDismiss:s,...l}=e,c=m.useContext(eB),[d,f]=m.useState(null),p=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=m.useState({}),x=At(t,E=>f(E)),y=Array.from(c.layers),[b]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),w=y.indexOf(b),_=d?y.indexOf(d):-1,S=c.layersWithOutsidePointerEventsDisabled.size>0,C=_>=w,j=owe(E=>{const $=E.target,D=[...c.branches].some(M=>M.contains($));!C||D||(i==null||i(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p),T=awe(E=>{const $=E.target;[...c.branches].some(D=>D.contains($))||(o==null||o(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p);return Q2e(E=>{_===c.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&s&&(E.preventDefault(),s()))},p),m.useEffect(()=>{if(d)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(QU=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(d)),c.layers.add(d),tB(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=QU)}},[d,p,n,c]),m.useEffect(()=>()=>{d&&(c.layers.delete(d),c.layersWithOutsidePointerEventsDisabled.delete(d),tB())},[d,c]),m.useEffect(()=>{const E=()=>v({});return document.addEventListener(k9,E),()=>document.removeEventListener(k9,E)},[]),u.jsx(JU.div,{...l,ref:x,style:{pointerEvents:S?C?"auto":"none":void 0,...e.style},onFocusCapture:Xe(e.onFocusCapture,T.onFocusCapture),onBlurCapture:Xe(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:Xe(e.onPointerDownCapture,j.onPointerDownCapture)})});I0.displayName=ewe;var rwe="DismissableLayerBranch",iwe=m.forwardRef((e,t)=>{const n=m.useContext(eB),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),u.jsx(JU.div,{...e,ref:i})});iwe.displayName=rwe;function owe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1),i=m.useRef(()=>{});return m.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let l=function(){nB(twe,n,c,{discrete:!0})};const c={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=l,t.addEventListener("click",i.current,{once:!0})):l()}else t.removeEventListener("click",i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function awe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1);return m.useEffect(()=>{const i=o=>{o.target&&!r.current&&nB(nwe,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function tB(){const e=new CustomEvent(k9);document.dispatchEvent(e)}function nB(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?J2e(i,o):i.dispatchEvent(o)}var swe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lwe=swe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),S9="focusScope.autoFocusOnMount",C9="focusScope.autoFocusOnUnmount",rB={bubbles:!1,cancelable:!0},uwe="FocusScope",ny=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,l]=m.useState(null),c=ko(i),d=ko(o),f=m.useRef(null),p=At(t,y=>l(y)),v=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let y=function(S){if(v.paused||!s)return;const C=S.target;s.contains(C)?f.current=C:_f(f.current,{select:!0})},b=function(S){if(v.paused||!s)return;const C=S.relatedTarget;C!==null&&(s.contains(C)||_f(f.current,{select:!0}))},w=function(S){if(document.activeElement===document.body)for(const C of S)C.removedNodes.length>0&&_f(s)};document.addEventListener("focusin",y),document.addEventListener("focusout",b);const _=new MutationObserver(w);return s&&_.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",b),_.disconnect()}}},[r,s,v.paused]),m.useEffect(()=>{if(s){aB.add(v);const y=document.activeElement;if(!s.contains(y)){const b=new CustomEvent(S9,rB);s.addEventListener(S9,c),s.dispatchEvent(b),b.defaultPrevented||(cwe(mwe(iB(s)),{select:!0}),document.activeElement===y&&_f(s))}return()=>{s.removeEventListener(S9,c),setTimeout(()=>{const b=new CustomEvent(C9,rB);s.addEventListener(C9,d),s.dispatchEvent(b),b.defaultPrevented||_f(y??document.body,{select:!0}),s.removeEventListener(C9,d),aB.remove(v)},0)}}},[s,c,d,v]);const x=m.useCallback(y=>{if(!n&&!r||v.paused)return;const b=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,w=document.activeElement;if(b&&w){const _=y.currentTarget,[S,C]=dwe(_);S&&C?!y.shiftKey&&w===C?(y.preventDefault(),n&&_f(S,{select:!0})):y.shiftKey&&w===S&&(y.preventDefault(),n&&_f(C,{select:!0})):w===_&&y.preventDefault()}},[n,r,v.paused]);return u.jsx(lwe.div,{tabIndex:-1,...a,ref:p,onKeyDown:x})});ny.displayName=uwe;function cwe(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(_f(r,{select:t}),document.activeElement!==n)return}function dwe(e){const t=iB(e),n=oB(t,e),r=oB(t.reverse(),e);return[n,r]}function iB(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function oB(e,t){for(const n of e)if(!fwe(n,{upTo:t}))return n}function fwe(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function hwe(e){return e instanceof HTMLInputElement&&"select"in e}function _f(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&hwe(e)&&t&&e.select()}}var aB=pwe();function pwe(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=sB(e,t),e.unshift(t)},remove(t){var n;e=sB(e,t),(n=e[0])==null||n.resume()}}}function sB(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function mwe(e){return e.filter(t=>t.tagName!=="A")}var gwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],vwe=gwe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ywe="Portal",Zh=m.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[i,o]=m.useState(!1);_o(()=>o(!0),[]);const a=n||i&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return a?WU.createPortal(u.jsx(vwe.div,{...r,ref:t}),a):null});Zh.displayName=ywe;var lB=Zh,bwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ry=bwe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),j9=0;function Lw(){m.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??uB()),document.body.insertAdjacentElement("beforeend",e[1]??uB()),j9++,()=>{j9===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),j9--}},[])}function uB(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var zu=function(){return zu=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u")return Owe;var t=zwe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Awe=pB(),E0="data-scroll-locked",Fwe=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(_we,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(s,"px ").concat(r,`; + } + body[`).concat(E0,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(i,`px; + padding-top: `).concat(o,`px; + padding-right: `).concat(a,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(Pw,` { + right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(Ow,` { + margin-right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(Pw," .").concat(Pw,` { + right: 0 `).concat(r,`; + } + + .`).concat(Ow," .").concat(Ow,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(E0,`] { + `).concat(wwe,": ").concat(s,`px; + } +`)},mB=function(){var e=parseInt(document.body.getAttribute(E0)||"0",10);return isFinite(e)?e:0},Uwe=function(){m.useEffect(function(){return document.body.setAttribute(E0,(mB()+1).toString()),function(){var e=mB()-1;e<=0?document.body.removeAttribute(E0):document.body.setAttribute(E0,e.toString())}},[])},Bwe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r;Uwe();var o=m.useMemo(function(){return Dwe(i)},[i]);return m.createElement(Awe,{styles:Fwe(o,!t,i,n?"":"!important")})},N9=!1;if(typeof window<"u")try{var Dw=Object.defineProperty({},"passive",{get:function(){return N9=!0,!0}});window.addEventListener("test",Dw,Dw),window.removeEventListener("test",Dw,Dw)}catch{N9=!1}var N0=N9?{passive:!1}:!1,Wwe=function(e){return e.tagName==="TEXTAREA"},gB=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Wwe(e)&&n[t]==="visible")},Vwe=function(e){return gB(e,"overflowY")},Hwe=function(e){return gB(e,"overflowX")},vB=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var i=yB(e,r);if(i){var o=bB(e,r),a=o[1],s=o[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Zwe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},qwe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},yB=function(e,t){return e==="v"?Vwe(t):Hwe(t)},bB=function(e,t){return e==="v"?Zwe(t):qwe(t)},Gwe=function(e,t){return e==="h"&&t==="rtl"?-1:1},Ywe=function(e,t,n,r,i){var o=Gwe(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,l=t.contains(s),c=!1,d=a>0,f=0,p=0;do{if(!s)break;var v=bB(e,s),x=v[0],y=v[1],b=v[2],w=y-b-o*x;(x||w)&&yB(e,s)&&(f+=w,p+=x);var _=s.parentNode;s=_&&_.nodeType===Node.DOCUMENT_FRAGMENT_NODE?_.host:_}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&Math.abs(f)<1||!d&&Math.abs(p)<1)&&(c=!0),c},Aw=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},xB=function(e){return[e.deltaX,e.deltaY]},_B=function(e){return e&&"current"in e?e.current:e},Kwe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Xwe=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Jwe=0,$0=[];function Qwe(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),i=m.useState(Jwe++)[0],o=m.useState(pB)[0],a=m.useRef(e);m.useEffect(function(){a.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var y=xwe([e.lockRef.current],(e.shards||[]).map(_B),!0).filter(Boolean);return y.forEach(function(b){return b.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),y.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=m.useCallback(function(y,b){if("touches"in y&&y.touches.length===2||y.type==="wheel"&&y.ctrlKey)return!a.current.allowPinchZoom;var w=Aw(y),_=n.current,S="deltaX"in y?y.deltaX:_[0]-w[0],C="deltaY"in y?y.deltaY:_[1]-w[1],j,T=y.target,E=Math.abs(S)>Math.abs(C)?"h":"v";if("touches"in y&&E==="h"&&T.type==="range")return!1;var $=vB(E,T);if(!$)return!0;if($?j=E:(j=E==="v"?"h":"v",$=vB(E,T)),!$)return!1;if(!r.current&&"changedTouches"in y&&(S||C)&&(r.current=j),!j)return!0;var D=r.current||j;return Ywe(D,b,y,D==="h"?S:C)},[]),l=m.useCallback(function(y){var b=y;if(!(!$0.length||$0[$0.length-1]!==o)){var w="deltaY"in b?xB(b):Aw(b),_=t.current.filter(function(j){return j.name===b.type&&(j.target===b.target||b.target===j.shadowParent)&&Kwe(j.delta,w)})[0];if(_&&_.should){b.cancelable&&b.preventDefault();return}if(!_){var S=(a.current.shards||[]).map(_B).filter(Boolean).filter(function(j){return j.contains(b.target)}),C=S.length>0?s(b,S[0]):!a.current.noIsolation;C&&b.cancelable&&b.preventDefault()}}},[]),c=m.useCallback(function(y,b,w,_){var S={name:y,delta:b,target:w,should:_,shadowParent:e4e(w)};t.current.push(S),setTimeout(function(){t.current=t.current.filter(function(C){return C!==S})},1)},[]),d=m.useCallback(function(y){n.current=Aw(y),r.current=void 0},[]),f=m.useCallback(function(y){c(y.type,xB(y),y.target,s(y,e.lockRef.current))},[]),p=m.useCallback(function(y){c(y.type,Aw(y),y.target,s(y,e.lockRef.current))},[]);m.useEffect(function(){return $0.push(o),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",l,N0),document.addEventListener("touchmove",l,N0),document.addEventListener("touchstart",d,N0),function(){$0=$0.filter(function(y){return y!==o}),document.removeEventListener("wheel",l,N0),document.removeEventListener("touchmove",l,N0),document.removeEventListener("touchstart",d,N0)}},[]);var v=e.removeScrollBar,x=e.inert;return m.createElement(m.Fragment,null,x?m.createElement(o,{styles:Xwe(i)}):null,v?m.createElement(Bwe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function e4e(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const t4e=Ewe(hB,Qwe);var iy=m.forwardRef(function(e,t){return m.createElement(zw,zu({},e,{ref:t,sideCar:t4e}))});iy.classNames=zw.classNames;var n4e=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},M0=new WeakMap,Fw=new WeakMap,Uw={},$9=0,wB=function(e){return e&&(e.host||wB(e.parentNode))},r4e=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=wB(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},i4e=function(e,t,n,r){var i=r4e(t,Array.isArray(e)?e:[e]);Uw[n]||(Uw[n]=new WeakMap);var o=Uw[n],a=[],s=new Set,l=new Set(i),c=function(f){!f||s.has(f)||(s.add(f),c(f.parentNode))};i.forEach(c);var d=function(f){!f||l.has(f)||Array.prototype.forEach.call(f.children,function(p){if(s.has(p))d(p);else try{var v=p.getAttribute(r),x=v!==null&&v!=="false",y=(M0.get(p)||0)+1,b=(o.get(p)||0)+1;M0.set(p,y),o.set(p,b),a.push(p),y===1&&x&&Fw.set(p,!0),b===1&&p.setAttribute(n,"true"),x||p.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",p,w)}})};return d(t),s.clear(),$9++,function(){a.forEach(function(f){var p=M0.get(f)-1,v=o.get(f)-1;M0.set(f,p),o.set(f,v),p||(Fw.has(f)||f.removeAttribute(r),Fw.delete(f)),v||f.removeAttribute(n)}),$9--,$9||(M0=new WeakMap,M0=new WeakMap,Fw=new WeakMap,Uw={})}},Bw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=n4e(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live], script"))),i4e(r,i,n,"aria-hidden")):function(){return null}},Ww="Dialog",[kB]=Pa(Ww),[o4e,Dl]=kB(Ww),SB=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!0}=e,s=m.useRef(null),l=m.useRef(null),[c,d]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Ww});return u.jsx(o4e,{scope:t,triggerRef:s,contentRef:l,contentId:wo(),titleId:wo(),descriptionId:wo(),open:c,onOpenChange:d,onOpenToggle:m.useCallback(()=>d(f=>!f),[d]),modal:a,children:n})};SB.displayName=Ww;var CB="DialogTrigger",jB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(CB,n),o=At(t,i.triggerRef);return u.jsx(ry.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":L9(i.open),...r,ref:o,onClick:Xe(e.onClick,i.onOpenToggle)})});jB.displayName=CB;var M9="DialogPortal",[a4e,TB]=kB(M9,{forceMount:void 0}),IB=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=Dl(M9,t);return u.jsx(a4e,{scope:t,forceMount:n,children:m.Children.map(r,a=>u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:a})}))})};IB.displayName=M9;var Vw="DialogOverlay",EB=m.forwardRef((e,t)=>{const n=TB(Vw,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(Vw,e.__scopeDialog);return o.modal?u.jsx(Ao,{present:r||o.open,children:u.jsx(l4e,{...i,ref:t})}):null});EB.displayName=Vw;var s4e=vr("DialogOverlay.RemoveScroll"),l4e=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(Vw,n);return u.jsx(iy,{as:s4e,allowPinchZoom:!0,shards:[i.contentRef],children:u.jsx(ry.div,{"data-state":L9(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),qh="DialogContent",NB=m.forwardRef((e,t)=>{const n=TB(qh,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(qh,e.__scopeDialog);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx(u4e,{...i,ref:t}):u.jsx(c4e,{...i,ref:t})})});NB.displayName=qh;var u4e=m.forwardRef((e,t)=>{const n=Dl(qh,e.__scopeDialog),r=m.useRef(null),i=At(t,n.contentRef,r);return m.useEffect(()=>{const o=r.current;if(o)return Bw(o)},[]),u.jsx($B,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,o=>{var a;o.preventDefault(),(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:Xe(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,s=a.button===0&&a.ctrlKey===!0;(a.button===2||s)&&o.preventDefault()}),onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault())})}),c4e=m.forwardRef((e,t)=>{const n=Dl(qh,e.__scopeDialog),r=m.useRef(!1),i=m.useRef(!1);return u.jsx($B,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),$B=m.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...a}=e,s=Dl(qh,n),l=m.useRef(null),c=At(t,l);return Lw(),u.jsxs(u.Fragment,{children:[u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":L9(s.open),...a,ref:c,onDismiss:()=>s.onOpenChange(!1)})}),u.jsxs(u.Fragment,{children:[u.jsx(d4e,{titleId:s.titleId}),u.jsx(h4e,{contentRef:l,descriptionId:s.descriptionId})]})]})}),R9="DialogTitle",MB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(R9,n);return u.jsx(ry.h2,{id:i.titleId,...r,ref:t})});MB.displayName=R9;var RB="DialogDescription",LB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(RB,n);return u.jsx(ry.p,{id:i.descriptionId,...r,ref:t})});LB.displayName=RB;var PB="DialogClose",OB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(PB,n);return u.jsx(ry.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});OB.displayName=PB;function L9(e){return e?"open":"closed"}var zB="DialogTitleWarning",[E5t,DB]=A2e(zB,{contentName:qh,titleName:R9,docsSlug:"dialog"}),d4e=({titleId:e})=>{const t=DB(zB),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return m.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},f4e="DialogDescriptionWarning",h4e=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${DB(f4e).contentName}}.`;return m.useEffect(()=>{var i;const r=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},AB=SB,p4e=jB,FB=IB,UB=EB,BB=NB,m4e=MB,g4e=LB,v4e=OB,WB={exports:{}},VB={};/** +* @license React +* use-sync-external-store-shim.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var R0=m;function y4e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var b4e=typeof Object.is=="function"?Object.is:y4e,x4e=R0.useState,_4e=R0.useEffect,w4e=R0.useLayoutEffect,k4e=R0.useDebugValue;function S4e(e,t){var n=t(),r=x4e({inst:{value:n,getSnapshot:t}}),i=r[0].inst,o=r[1];return w4e(function(){i.value=n,i.getSnapshot=t,P9(i)&&o({inst:i})},[e,n,t]),_4e(function(){return P9(i)&&o({inst:i}),e(function(){P9(i)&&o({inst:i})})},[e]),k4e(n),n}function P9(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!b4e(e,n)}catch{return!0}}function C4e(e,t){return t()}var j4e=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?C4e:S4e;VB.useSyncExternalStore=R0.useSyncExternalStore!==void 0?R0.useSyncExternalStore:j4e,WB.exports=VB;var T4e=WB.exports;function O9(e){const t=m.useRef({value:e,previous:e});return m.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function z9(e){const[t,n]=m.useState(void 0);return _o(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const o=i[0];let a,s;if("borderBoxSize"in o){const l=o.borderBoxSize,c=Array.isArray(l)?l[0]:l;a=c.inlineSize,s=c.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const I4e=["top","right","bottom","left"],wf=Math.min,us=Math.max,Hw=Math.round,Zw=Math.floor,Du=e=>({x:e,y:e}),E4e={left:"right",right:"left",bottom:"top",top:"bottom"},N4e={start:"end",end:"start"};function D9(e,t,n){return us(e,wf(t,n))}function Xc(e,t){return typeof e=="function"?e(t):e}function Jc(e){return e.split("-")[0]}function L0(e){return e.split("-")[1]}function A9(e){return e==="x"?"y":"x"}function F9(e){return e==="y"?"height":"width"}const $4e=new Set(["top","bottom"]);function Au(e){return $4e.has(Jc(e))?"y":"x"}function U9(e){return A9(Au(e))}function M4e(e,t,n){n===void 0&&(n=!1);const r=L0(e),i=U9(e),o=F9(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=qw(a)),[a,qw(a)]}function R4e(e){const t=qw(e);return[B9(e),t,B9(t)]}function B9(e){return e.replace(/start|end/g,t=>N4e[t])}const HB=["left","right"],ZB=["right","left"],L4e=["top","bottom"],P4e=["bottom","top"];function O4e(e,t,n){switch(e){case"top":case"bottom":return n?t?ZB:HB:t?HB:ZB;case"left":case"right":return t?L4e:P4e;default:return[]}}function z4e(e,t,n,r){const i=L0(e);let o=O4e(Jc(e),n==="start",r);return i&&(o=o.map(a=>a+"-"+i),t&&(o=o.concat(o.map(B9)))),o}function qw(e){return e.replace(/left|right|bottom|top/g,t=>E4e[t])}function D4e(e){return{top:0,right:0,bottom:0,left:0,...e}}function qB(e){return typeof e!="number"?D4e(e):{top:e,right:e,bottom:e,left:e}}function Gw(e){const{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function GB(e,t,n){let{reference:r,floating:i}=e;const o=Au(t),a=U9(t),s=F9(a),l=Jc(t),c=o==="y",d=r.x+r.width/2-i.width/2,f=r.y+r.height/2-i.height/2,p=r[s]/2-i[s]/2;let v;switch(l){case"top":v={x:d,y:r.y-i.height};break;case"bottom":v={x:d,y:r.y+r.height};break;case"right":v={x:r.x+r.width,y:f};break;case"left":v={x:r.x-i.width,y:f};break;default:v={x:r.x,y:r.y}}switch(L0(t)){case"start":v[a]-=p*(n&&c?-1:1);break;case"end":v[a]+=p*(n&&c?-1:1);break}return v}const A4e=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=o.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:f}=GB(c,r,l),p=r,v={},x=0;for(let y=0;y({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:o,platform:a,elements:s,middlewareData:l}=t,{element:c,padding:d=0}=Xc(e,t)||{};if(c==null)return{};const f=qB(d),p={x:n,y:r},v=U9(i),x=F9(v),y=await a.getDimensions(c),b=v==="y",w=b?"top":"left",_=b?"bottom":"right",S=b?"clientHeight":"clientWidth",C=o.reference[x]+o.reference[v]-p[v]-o.floating[x],j=p[v]-o.reference[v],T=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c));let E=T?T[S]:0;(!E||!await(a.isElement==null?void 0:a.isElement(T)))&&(E=s.floating[S]||o.floating[x]);const $=C/2-j/2,D=E/2-y[x]/2-1,M=wf(f[w],D),O=wf(f[_],D),te=M,q=E-y[x]-O,P=E/2-y[x]/2+$,X=D9(te,P,q),A=!l.arrow&&L0(i)!=null&&P!==X&&o.reference[x]/2-(PP<=0)){var O,te;const P=(((O=o.flip)==null?void 0:O.index)||0)+1,X=E[P];if(X&&(!(f==="alignment"&&_!==Au(X))||M.every(Y=>Au(Y.placement)===_?Y.overflows[0]>0:!0)))return{data:{index:P,overflows:M},reset:{placement:X}};let A=(te=M.filter(Y=>Y.overflows[0]<=0).sort((Y,F)=>Y.overflows[1]-F.overflows[1])[0])==null?void 0:te.placement;if(!A)switch(v){case"bestFit":{var q;const Y=(q=M.filter(F=>{if(T){const H=Au(F.placement);return H===_||H==="y"}return!0}).map(F=>[F.placement,F.overflows.filter(H=>H>0).reduce((H,ee)=>H+ee,0)]).sort((F,H)=>F[1]-H[1])[0])==null?void 0:q[0];Y&&(A=Y);break}case"initialPlacement":A=s;break}if(i!==A)return{reset:{placement:A}}}return{}}}};function YB(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function KB(e){return I4e.some(t=>e[t]>=0)}const B4e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...i}=Xc(e,t);switch(r){case"referenceHidden":{const o=await oy(t,{...i,elementContext:"reference"}),a=YB(o,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:KB(a)}}}case"escaped":{const o=await oy(t,{...i,altBoundary:!0}),a=YB(o,n.floating);return{data:{escapedOffsets:a,escaped:KB(a)}}}default:return{}}}}},XB=new Set(["left","top"]);async function W4e(e,t){const{placement:n,platform:r,elements:i}=e,o=await(r.isRTL==null?void 0:r.isRTL(i.floating)),a=Jc(n),s=L0(n),l=Au(n)==="y",c=XB.has(a)?-1:1,d=o&&l?-1:1,f=Xc(t,e);let{mainAxis:p,crossAxis:v,alignmentAxis:x}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return s&&typeof x=="number"&&(v=s==="end"?x*-1:x),l?{x:v*d,y:p*c}:{x:p*c,y:v*d}}const V4e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:o,placement:a,middlewareData:s}=t,l=await W4e(t,e);return a===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:i+l.x,y:o+l.y,data:{...l,placement:a}}}}},H4e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:b=>{let{x:w,y:_}=b;return{x:w,y:_}}},...l}=Xc(e,t),c={x:n,y:r},d=await oy(t,l),f=Au(Jc(i)),p=A9(f);let v=c[p],x=c[f];if(o){const b=p==="y"?"top":"left",w=p==="y"?"bottom":"right",_=v+d[b],S=v-d[w];v=D9(_,v,S)}if(a){const b=f==="y"?"top":"left",w=f==="y"?"bottom":"right",_=x+d[b],S=x-d[w];x=D9(_,x,S)}const y=s.fn({...t,[p]:v,[f]:x});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[p]:o,[f]:a}}}}}},Z4e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:o,middlewareData:a}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=Xc(e,t),d={x:n,y:r},f=Au(i),p=A9(f);let v=d[p],x=d[f];const y=Xc(s,t),b=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(l){const S=p==="y"?"height":"width",C=o.reference[p]-o.floating[S]+b.mainAxis,j=o.reference[p]+o.reference[S]-b.mainAxis;vj&&(v=j)}if(c){var w,_;const S=p==="y"?"width":"height",C=XB.has(Jc(i)),j=o.reference[f]-o.floating[S]+(C&&((w=a.offset)==null?void 0:w[f])||0)+(C?0:b.crossAxis),T=o.reference[f]+o.reference[S]+(C?0:((_=a.offset)==null?void 0:_[f])||0)-(C?b.crossAxis:0);xT&&(x=T)}return{[p]:v,[f]:x}}}},q4e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:i,rects:o,platform:a,elements:s}=t,{apply:l=()=>{},...c}=Xc(e,t),d=await oy(t,c),f=Jc(i),p=L0(i),v=Au(i)==="y",{width:x,height:y}=o.floating;let b,w;f==="top"||f==="bottom"?(b=f,w=p===(await(a.isRTL==null?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(w=f,b=p==="end"?"top":"bottom");const _=y-d.top-d.bottom,S=x-d.left-d.right,C=wf(y-d[b],_),j=wf(x-d[w],S),T=!t.middlewareData.shift;let E=C,$=j;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&($=S),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(E=_),T&&!p){const M=us(d.left,0),O=us(d.right,0),te=us(d.top,0),q=us(d.bottom,0);v?$=x-2*(M!==0||O!==0?M+O:us(d.left,d.right)):E=y-2*(te!==0||q!==0?te+q:us(d.top,d.bottom))}await l({...t,availableWidth:$,availableHeight:E});const D=await a.getDimensions(s.floating);return x!==D.width||y!==D.height?{reset:{rects:!0}}:{}}}};function Yw(){return typeof window<"u"}function P0(e){return JB(e)?(e.nodeName||"").toLowerCase():"#document"}function cs(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Fu(e){var t;return(t=(JB(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function JB(e){return Yw()?e instanceof Node||e instanceof cs(e).Node:!1}function Al(e){return Yw()?e instanceof Element||e instanceof cs(e).Element:!1}function Uu(e){return Yw()?e instanceof HTMLElement||e instanceof cs(e).HTMLElement:!1}function QB(e){return!Yw()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof cs(e).ShadowRoot}const G4e=new Set(["inline","contents"]);function ay(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=Fl(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!G4e.has(i)}const Y4e=new Set(["table","td","th"]);function K4e(e){return Y4e.has(P0(e))}const X4e=[":popover-open",":modal"];function Kw(e){return X4e.some(t=>{try{return e.matches(t)}catch{return!1}})}const J4e=["transform","translate","scale","rotate","perspective"],Q4e=["transform","translate","scale","rotate","perspective","filter"],e3e=["paint","layout","strict","content"];function W9(e){const t=V9(),n=Al(e)?Fl(e):e;return J4e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||Q4e.some(r=>(n.willChange||"").includes(r))||e3e.some(r=>(n.contain||"").includes(r))}function t3e(e){let t=kf(e);for(;Uu(t)&&!O0(t);){if(W9(t))return t;if(Kw(t))return null;t=kf(t)}return null}function V9(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const n3e=new Set(["html","body","#document"]);function O0(e){return n3e.has(P0(e))}function Fl(e){return cs(e).getComputedStyle(e)}function Xw(e){return Al(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function kf(e){if(P0(e)==="html")return e;const t=e.assignedSlot||e.parentNode||QB(e)&&e.host||Fu(e);return QB(t)?t.host:t}function eW(e){const t=kf(e);return O0(t)?e.ownerDocument?e.ownerDocument.body:e.body:Uu(t)&&ay(t)?t:eW(t)}function sy(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=eW(e),o=i===((r=e.ownerDocument)==null?void 0:r.body),a=cs(i);if(o){const s=H9(a);return t.concat(a,a.visualViewport||[],ay(i)?i:[],s&&n?sy(s):[])}return t.concat(i,sy(i,[],n))}function H9(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function tW(e){const t=Fl(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=Uu(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:r,s=Hw(n)!==o||Hw(r)!==a;return s&&(n=o,r=a),{width:n,height:r,$:s}}function Z9(e){return Al(e)?e:e.contextElement}function z0(e){const t=Z9(e);if(!Uu(t))return Du(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:o}=tW(t);let a=(o?Hw(n.width):n.width)/r,s=(o?Hw(n.height):n.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}const r3e=Du(0);function nW(e){const t=cs(e);return!V9()||!t.visualViewport?r3e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function i3e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==cs(e)?!1:t}function Gh(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),o=Z9(e);let a=Du(1);t&&(r?Al(r)&&(a=z0(r)):a=z0(e));const s=i3e(o,n,r)?nW(o):Du(0);let l=(i.left+s.x)/a.x,c=(i.top+s.y)/a.y,d=i.width/a.x,f=i.height/a.y;if(o){const p=cs(o),v=r&&Al(r)?cs(r):r;let x=p,y=H9(x);for(;y&&r&&v!==x;){const b=z0(y),w=y.getBoundingClientRect(),_=Fl(y),S=w.left+(y.clientLeft+parseFloat(_.paddingLeft))*b.x,C=w.top+(y.clientTop+parseFloat(_.paddingTop))*b.y;l*=b.x,c*=b.y,d*=b.x,f*=b.y,l+=S,c+=C,x=cs(y),y=H9(x)}}return Gw({width:d,height:f,x:l,y:c})}function Jw(e,t){const n=Xw(e).scrollLeft;return t?t.left+n:Gh(Fu(e)).left+n}function rW(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Jw(e,n),i=n.top+t.scrollTop;return{x:r,y:i}}function o3e(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const o=i==="fixed",a=Fu(r),s=t?Kw(t.floating):!1;if(r===a||s&&o)return n;let l={scrollLeft:0,scrollTop:0},c=Du(1);const d=Du(0),f=Uu(r);if((f||!f&&!o)&&((P0(r)!=="body"||ay(a))&&(l=Xw(r)),Uu(r))){const v=Gh(r);c=z0(r),d.x=v.x+r.clientLeft,d.y=v.y+r.clientTop}const p=a&&!f&&!o?rW(a,l):Du(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+p.x,y:n.y*c.y-l.scrollTop*c.y+d.y+p.y}}function a3e(e){return Array.from(e.getClientRects())}function s3e(e){const t=Fu(e),n=Xw(e),r=e.ownerDocument.body,i=us(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=us(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Jw(e);const s=-n.scrollTop;return Fl(r).direction==="rtl"&&(a+=us(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:a,y:s}}const iW=25;function l3e(e,t){const n=cs(e),r=Fu(e),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;const d=V9();(!d||d&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}const c=Jw(r);if(c<=0){const d=r.ownerDocument,f=d.body,p=getComputedStyle(f),v=d.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,x=Math.abs(r.clientWidth-f.clientWidth-v);x<=iW&&(o-=x)}else c<=iW&&(o+=c);return{width:o,height:a,x:s,y:l}}const u3e=new Set(["absolute","fixed"]);function c3e(e,t){const n=Gh(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=Uu(e)?z0(e):Du(1),a=e.clientWidth*o.x,s=e.clientHeight*o.y,l=i*o.x,c=r*o.y;return{width:a,height:s,x:l,y:c}}function oW(e,t,n){let r;if(t==="viewport")r=l3e(e,n);else if(t==="document")r=s3e(Fu(e));else if(Al(t))r=c3e(t,n);else{const i=nW(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return Gw(r)}function aW(e,t){const n=kf(e);return n===t||!Al(n)||O0(n)?!1:Fl(n).position==="fixed"||aW(n,t)}function d3e(e,t){const n=t.get(e);if(n)return n;let r=sy(e,[],!1).filter(s=>Al(s)&&P0(s)!=="body"),i=null;const o=Fl(e).position==="fixed";let a=o?kf(e):e;for(;Al(a)&&!O0(a);){const s=Fl(a),l=W9(a);!l&&s.position==="fixed"&&(i=null),(o?!l&&!i:!l&&s.position==="static"&&i&&u3e.has(i.position)||ay(a)&&!l&&aW(e,a))?r=r.filter(c=>c!==a):i=s,a=kf(a)}return t.set(e,r),r}function f3e(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?Kw(t)?[]:d3e(t,this._c):[].concat(n),r],a=o[0],s=o.reduce((l,c)=>{const d=oW(t,c,i);return l.top=us(d.top,l.top),l.right=wf(d.right,l.right),l.bottom=wf(d.bottom,l.bottom),l.left=us(d.left,l.left),l},oW(t,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function h3e(e){const{width:t,height:n}=tW(e);return{width:t,height:n}}function p3e(e,t,n){const r=Uu(t),i=Fu(t),o=n==="fixed",a=Gh(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const l=Du(0);function c(){l.x=Jw(i)}if(r||!r&&!o)if((P0(t)!=="body"||ay(i))&&(s=Xw(t)),r){const v=Gh(t,!0,o,t);l.x=v.x+t.clientLeft,l.y=v.y+t.clientTop}else i&&c();o&&!r&&i&&c();const d=i&&!r&&!o?rW(i,s):Du(0),f=a.left+s.scrollLeft-l.x-d.x,p=a.top+s.scrollTop-l.y-d.y;return{x:f,y:p,width:a.width,height:a.height}}function q9(e){return Fl(e).position==="static"}function sW(e,t){if(!Uu(e)||Fl(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Fu(e)===n&&(n=n.ownerDocument.body),n}function lW(e,t){const n=cs(e);if(Kw(e))return n;if(!Uu(e)){let i=kf(e);for(;i&&!O0(i);){if(Al(i)&&!q9(i))return i;i=kf(i)}return n}let r=sW(e,t);for(;r&&K4e(r)&&q9(r);)r=sW(r,t);return r&&O0(r)&&q9(r)&&!W9(r)?n:r||t3e(e)||n}const m3e=async function(e){const t=this.getOffsetParent||lW,n=this.getDimensions,r=await n(e.floating);return{reference:p3e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function g3e(e){return Fl(e).direction==="rtl"}const v3e={convertOffsetParentRelativeRectToViewportRelativeRect:o3e,getDocumentElement:Fu,getClippingRect:f3e,getOffsetParent:lW,getElementRects:m3e,getClientRects:a3e,getDimensions:h3e,getScale:z0,isElement:Al,isRTL:g3e};function uW(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function y3e(e,t){let n=null,r;const i=Fu(e);function o(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function a(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();const c=e.getBoundingClientRect(),{left:d,top:f,width:p,height:v}=c;if(s||t(),!p||!v)return;const x=Zw(f),y=Zw(i.clientWidth-(d+p)),b=Zw(i.clientHeight-(f+v)),w=Zw(d),_={rootMargin:-x+"px "+-y+"px "+-b+"px "+-w+"px",threshold:us(0,wf(1,l))||1};let S=!0;function C(j){const T=j[0].intersectionRatio;if(T!==l){if(!S)return a();T?a(!1,T):r=setTimeout(()=>{a(!1,1e-7)},1e3)}T===1&&!uW(c,e.getBoundingClientRect())&&a(),S=!1}try{n=new IntersectionObserver(C,{..._,root:i.ownerDocument})}catch{n=new IntersectionObserver(C,_)}n.observe(e)}return a(!0),o}function b3e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=Z9(e),d=i||o?[...c?sy(c):[],...sy(t)]:[];d.forEach(w=>{i&&w.addEventListener("scroll",n,{passive:!0}),o&&w.addEventListener("resize",n)});const f=c&&s?y3e(c,n):null;let p=-1,v=null;a&&(v=new ResizeObserver(w=>{let[_]=w;_&&_.target===c&&v&&(v.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var S;(S=v)==null||S.observe(t)})),n()}),c&&!l&&v.observe(c),v.observe(t));let x,y=l?Gh(e):null;l&&b();function b(){const w=Gh(e);y&&!uW(y,w)&&n(),y=w,x=requestAnimationFrame(b)}return n(),()=>{var w;d.forEach(_=>{i&&_.removeEventListener("scroll",n),o&&_.removeEventListener("resize",n)}),f==null||f(),(w=v)==null||w.disconnect(),v=null,l&&cancelAnimationFrame(x)}}const x3e=V4e,_3e=H4e,w3e=U4e,k3e=q4e,S3e=B4e,cW=F4e,C3e=Z4e,j3e=(e,t,n)=>{const r=new Map,i={platform:v3e,...n},o={...i.platform,_c:r};return A4e(e,t,{...i,platform:o})};var T3e=typeof document<"u",I3e=function(){},Qw=T3e?m.useLayoutEffect:I3e;function e4(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!e4(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!(o==="_owner"&&e.$$typeof)&&!e4(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function dW(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function fW(e,t){const n=dW(e);return Math.round(t*n)/n}function G9(e){const t=m.useRef(e);return Qw(()=>{t.current=e}),t}function E3e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:o,floating:a}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[d,f]=m.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,v]=m.useState(r);e4(p,r)||v(r);const[x,y]=m.useState(null),[b,w]=m.useState(null),_=m.useCallback(F=>{F!==T.current&&(T.current=F,y(F))},[]),S=m.useCallback(F=>{F!==E.current&&(E.current=F,w(F))},[]),C=o||x,j=a||b,T=m.useRef(null),E=m.useRef(null),$=m.useRef(d),D=l!=null,M=G9(l),O=G9(i),te=G9(c),q=m.useCallback(()=>{if(!T.current||!E.current)return;const F={placement:t,strategy:n,middleware:p};O.current&&(F.platform=O.current),j3e(T.current,E.current,F).then(H=>{const ee={...H,isPositioned:te.current!==!1};P.current&&!e4($.current,ee)&&($.current=ee,Kc.flushSync(()=>{f(ee)}))})},[p,t,n,O,te]);Qw(()=>{c===!1&&$.current.isPositioned&&($.current.isPositioned=!1,f(F=>({...F,isPositioned:!1})))},[c]);const P=m.useRef(!1);Qw(()=>(P.current=!0,()=>{P.current=!1}),[]),Qw(()=>{if(C&&(T.current=C),j&&(E.current=j),C&&j){if(M.current)return M.current(C,j,q);q()}},[C,j,q,M,D]);const X=m.useMemo(()=>({reference:T,floating:E,setReference:_,setFloating:S}),[_,S]),A=m.useMemo(()=>({reference:C,floating:j}),[C,j]),Y=m.useMemo(()=>{const F={position:n,left:0,top:0};if(!A.floating)return F;const H=fW(A.floating,d.x),ee=fW(A.floating,d.y);return s?{...F,transform:"translate("+H+"px, "+ee+"px)",...dW(A.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:H,top:ee}},[n,s,A.floating,d.x,d.y]);return m.useMemo(()=>({...d,update:q,refs:X,elements:A,floatingStyles:Y}),[d,q,X,A,Y])}const N3e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:i}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?cW({element:r.current,padding:i}).fn(n):{}:r?cW({element:r,padding:i}).fn(n):{}}}},$3e=(e,t)=>({...x3e(e),options:[e,t]}),M3e=(e,t)=>({..._3e(e),options:[e,t]}),R3e=(e,t)=>({...C3e(e),options:[e,t]}),L3e=(e,t)=>({...w3e(e),options:[e,t]}),P3e=(e,t)=>({...k3e(e),options:[e,t]}),O3e=(e,t)=>({...S3e(e),options:[e,t]}),z3e=(e,t)=>({...N3e(e),options:[e,t]});var D3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],A3e=D3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),F3e="Arrow",hW=m.forwardRef((e,t)=>{const{children:n,width:r=10,height:i=5,...o}=e;return u.jsx(A3e.svg,{...o,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:u.jsx("polygon",{points:"0,0 30,0 15,10"})})});hW.displayName=F3e;var U3e=hW,B3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pW=B3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Y9="Popper",[mW,Sf]=Pa(Y9),[W3e,gW]=mW(Y9),vW=e=>{const{__scopePopper:t,children:n}=e,[r,i]=m.useState(null);return u.jsx(W3e,{scope:t,anchor:r,onAnchorChange:i,children:n})};vW.displayName=Y9;var yW="PopperAnchor",bW=m.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,o=gW(yW,n),a=m.useRef(null),s=At(t,a),l=m.useRef(null);return m.useEffect(()=>{const c=l.current;l.current=(r==null?void 0:r.current)||a.current,c!==l.current&&o.onAnchorChange(l.current)}),r?null:u.jsx(pW.div,{...i,ref:s})});bW.displayName=yW;var K9="PopperContent",[V3e,H3e]=mW(K9),xW=m.forwardRef((e,t)=>{var he,ue,re,ge,$e,pe;const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:o="center",alignOffset:a=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:p=!1,updatePositionStrategy:v="optimized",onPlaced:x,...y}=e,b=gW(K9,n),[w,_]=m.useState(null),S=At(t,ye=>_(ye)),[C,j]=m.useState(null),T=z9(C),E=(T==null?void 0:T.width)??0,$=(T==null?void 0:T.height)??0,D=r+(o!=="center"?"-"+o:""),M=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},O=Array.isArray(c)?c:[c],te=O.length>0,q={padding:M,boundary:O.filter(q3e),altBoundary:te},{refs:P,floatingStyles:X,placement:A,isPositioned:Y,middlewareData:F}=E3e({strategy:"fixed",placement:D,whileElementsMounted:(...ye)=>b3e(...ye,{animationFrame:v==="always"}),elements:{reference:b.anchor},middleware:[$3e({mainAxis:i+$,alignmentAxis:a}),l&&M3e({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?R3e():void 0,...q}),l&&L3e({...q}),P3e({...q,apply:({elements:ye,rects:Se,availableWidth:Ce,availableHeight:Ue})=>{const{width:Ge,height:_t}=Se.reference,St=ye.floating.style;St.setProperty("--radix-popper-available-width",`${Ce}px`),St.setProperty("--radix-popper-available-height",`${Ue}px`),St.setProperty("--radix-popper-anchor-width",`${Ge}px`),St.setProperty("--radix-popper-anchor-height",`${_t}px`)}}),C&&z3e({element:C,padding:s}),G3e({arrowWidth:E,arrowHeight:$}),p&&O3e({strategy:"referenceHidden",...q})]}),[H,ee]=kW(A),ce=ko(x);_o(()=>{Y&&(ce==null||ce())},[Y,ce]);const B=(he=F.arrow)==null?void 0:he.x,ae=(ue=F.arrow)==null?void 0:ue.y,je=((re=F.arrow)==null?void 0:re.centerOffset)!==0,[me,ke]=m.useState();return _o(()=>{w&&ke(window.getComputedStyle(w).zIndex)},[w]),u.jsx("div",{ref:P.setFloating,"data-radix-popper-content-wrapper":"",style:{...X,transform:Y?X.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:me,"--radix-popper-transform-origin":[(ge=F.transformOrigin)==null?void 0:ge.x,($e=F.transformOrigin)==null?void 0:$e.y].join(" "),...((pe=F.hide)==null?void 0:pe.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:u.jsx(V3e,{scope:n,placedSide:H,onArrowChange:j,arrowX:B,arrowY:ae,shouldHideArrow:je,children:u.jsx(pW.div,{"data-side":H,"data-align":ee,...y,ref:S,style:{...y.style,animation:Y?void 0:"none"}})})})});xW.displayName=K9;var _W="PopperArrow",Z3e={top:"bottom",right:"left",bottom:"top",left:"right"},wW=m.forwardRef(function(e,t){const{__scopePopper:n,...r}=e,i=H3e(_W,n),o=Z3e[i.placedSide];return u.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:u.jsx(U3e,{...r,ref:t,style:{...r.style,display:"block"}})})});wW.displayName=_W;function q3e(e){return e!==null}var G3e=e=>({name:"transformOrigin",options:e,fn(t){var y,b,w;const{placement:n,rects:r,middlewareData:i}=t,o=((y=i.arrow)==null?void 0:y.centerOffset)!==0,a=o?0:e.arrowWidth,s=o?0:e.arrowHeight,[l,c]=kW(n),d={start:"0%",center:"50%",end:"100%"}[c],f=(((b=i.arrow)==null?void 0:b.x)??0)+a/2,p=(((w=i.arrow)==null?void 0:w.y)??0)+s/2;let v="",x="";return l==="bottom"?(v=o?d:`${f}px`,x=`${-s}px`):l==="top"?(v=o?d:`${f}px`,x=`${r.floating.height+s}px`):l==="right"?(v=`${-s}px`,x=o?d:`${p}px`):l==="left"&&(v=`${r.floating.width+s}px`,x=o?d:`${p}px`),{data:{x:v,y:x}}}});function kW(e){const[t,n="center"]=e.split("-");return[t,n]}var t4=vW,ly=bW,n4=xW,r4=wW,Y3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],uy=Y3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function K3e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}var X3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],SW=X3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),X9="rovingFocusGroup.onEntryFocus",J3e={bubbles:!1,cancelable:!0},cy="RovingFocusGroup",[J9,CW,Q3e]=Mw(cy),[eke,i4]=Pa(cy,[Q3e]),[tke,nke]=eke(cy),jW=m.forwardRef((e,t)=>u.jsx(J9.Provider,{scope:e.__scopeRovingFocusGroup,children:u.jsx(J9.Slot,{scope:e.__scopeRovingFocusGroup,children:u.jsx(rke,{...e,ref:t})})}));jW.displayName=cy;var rke=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:d=!1,...f}=e,p=m.useRef(null),v=At(t,p),x=T0(o),[y,b]=Xs({prop:a,defaultProp:s??null,onChange:l,caller:cy}),[w,_]=m.useState(!1),S=ko(c),C=CW(n),j=m.useRef(!1),[T,E]=m.useState(0);return m.useEffect(()=>{const $=p.current;if($)return $.addEventListener(X9,S),()=>$.removeEventListener(X9,S)},[S]),u.jsx(tke,{scope:n,orientation:r,dir:x,loop:i,currentTabStopId:y,onItemFocus:m.useCallback($=>b($),[b]),onItemShiftTab:m.useCallback(()=>_(!0),[]),onFocusableItemAdd:m.useCallback(()=>E($=>$+1),[]),onFocusableItemRemove:m.useCallback(()=>E($=>$-1),[]),children:u.jsx(SW.div,{tabIndex:w||T===0?-1:0,"data-orientation":r,...f,ref:v,style:{outline:"none",...e.style},onMouseDown:Xe(e.onMouseDown,()=>{j.current=!0}),onFocus:Xe(e.onFocus,$=>{const D=!j.current;if($.target===$.currentTarget&&D&&!w){const M=new CustomEvent(X9,J3e);if($.currentTarget.dispatchEvent(M),!M.defaultPrevented){const O=C().filter(X=>X.focusable),te=O.find(X=>X.active),q=O.find(X=>X.id===y),P=[te,q,...O].filter(Boolean).map(X=>X.ref.current);EW(P,d)}}j.current=!1}),onBlur:Xe(e.onBlur,()=>_(!1))})})}),TW="RovingFocusGroupItem",IW=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,children:a,...s}=e,l=wo(),c=o||l,d=nke(TW,n),f=d.currentTabStopId===c,p=CW(n),{onFocusableItemAdd:v,onFocusableItemRemove:x,currentTabStopId:y}=d;return m.useEffect(()=>{if(r)return v(),()=>x()},[r,v,x]),u.jsx(J9.ItemSlot,{scope:n,id:c,focusable:r,active:i,children:u.jsx(SW.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:Xe(e.onMouseDown,b=>{r?d.onItemFocus(c):b.preventDefault()}),onFocus:Xe(e.onFocus,()=>d.onItemFocus(c)),onKeyDown:Xe(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const w=ake(b,d.orientation,d.dir);if(w!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let _=p().filter(S=>S.focusable).map(S=>S.ref.current);if(w==="last")_.reverse();else if(w==="prev"||w==="next"){w==="prev"&&_.reverse();const S=_.indexOf(b.currentTarget);_=d.loop?ske(_,S+1):_.slice(S+1)}setTimeout(()=>EW(_))}}),children:typeof a=="function"?a({isCurrentTabStop:f,hasTabStop:y!=null}):a})})});IW.displayName=TW;var ike={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function oke(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function ake(e,t,n){const r=oke(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return ike[r]}function EW(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function ske(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var NW=jW,$W=IW,Q9=["Enter"," "],lke=["ArrowDown","PageUp","Home"],MW=["ArrowUp","PageDown","End"],uke=[...lke,...MW],cke={ltr:[...Q9,"ArrowRight"],rtl:[...Q9,"ArrowLeft"]},dke={ltr:["ArrowLeft"],rtl:["ArrowRight"]},dy="Menu",[fy,fke,hke]=Mw(dy),[Yh,RW]=Pa(dy,[hke,Sf,i4]),o4=Sf(),LW=i4(),[pke,Kh]=Yh(dy),[mke,hy]=Yh(dy),PW=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:a=!0}=e,s=o4(t),[l,c]=m.useState(null),d=m.useRef(!1),f=ko(o),p=T0(i);return m.useEffect(()=>{const v=()=>{d.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},x=()=>d.current=!1;return document.addEventListener("keydown",v,{capture:!0}),()=>{document.removeEventListener("keydown",v,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),u.jsx(t4,{...s,children:u.jsx(pke,{scope:t,open:n,onOpenChange:f,content:l,onContentChange:c,children:u.jsx(mke,{scope:t,onClose:m.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:p,modal:a,children:r})})})};PW.displayName=dy;var gke="MenuAnchor",e7=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(ly,{...i,...r,ref:t})});e7.displayName=gke;var t7="MenuPortal",[vke,OW]=Yh(t7,{forceMount:void 0}),zW=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,o=Kh(t7,t);return u.jsx(vke,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:r})})})};zW.displayName=t7;var Js="MenuContent",[yke,n7]=Yh(Js),DW=m.forwardRef((e,t)=>{const n=OW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Kh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:a.modal?u.jsx(bke,{...i,ref:t}):u.jsx(xke,{...i,ref:t})})})})}),bke=m.forwardRef((e,t)=>{const n=Kh(Js,e.__scopeMenu),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return Bw(o)},[]),u.jsx(r7,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),xke=m.forwardRef((e,t)=>{const n=Kh(Js,e.__scopeMenu);return u.jsx(r7,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),_ke=vr("MenuContent.ScrollLock"),r7=m.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,disableOutsideScroll:x,...y}=e,b=Kh(Js,n),w=hy(Js,n),_=o4(n),S=LW(n),C=fke(n),[j,T]=m.useState(null),E=m.useRef(null),$=At(t,E,b.onContentChange),D=m.useRef(0),M=m.useRef(""),O=m.useRef(0),te=m.useRef(null),q=m.useRef("right"),P=m.useRef(0),X=x?iy:m.Fragment,A=x?{as:_ke,allowPinchZoom:!0}:void 0,Y=H=>{var he,ue;const ee=M.current+H,ce=C().filter(re=>!re.disabled),B=document.activeElement,ae=(he=ce.find(re=>re.ref.current===B))==null?void 0:he.textValue,je=ce.map(re=>re.textValue),me=Rke(je,ee,ae),ke=(ue=ce.find(re=>re.textValue===me))==null?void 0:ue.ref.current;(function re(ge){M.current=ge,window.clearTimeout(D.current),ge!==""&&(D.current=window.setTimeout(()=>re(""),1e3))})(ee),ke&&setTimeout(()=>ke.focus())};m.useEffect(()=>()=>window.clearTimeout(D.current),[]),Lw();const F=m.useCallback(H=>{var ee,ce;return q.current===((ee=te.current)==null?void 0:ee.side)&&Pke(H,(ce=te.current)==null?void 0:ce.area)},[]);return u.jsx(yke,{scope:n,searchRef:M,onItemEnter:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),onItemLeave:m.useCallback(H=>{var ee;F(H)||((ee=E.current)==null||ee.focus(),T(null))},[F]),onTriggerLeave:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),pointerGraceTimerRef:O,onPointerGraceIntentChange:m.useCallback(H=>{te.current=H},[]),children:u.jsx(X,{...A,children:u.jsx(ny,{asChild:!0,trapped:i,onMountAutoFocus:Xe(o,H=>{var ee;H.preventDefault(),(ee=E.current)==null||ee.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,children:u.jsx(NW,{asChild:!0,...S,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:j,onCurrentTabStopIdChange:T,onEntryFocus:Xe(l,H=>{w.isUsingKeyboardRef.current||H.preventDefault()}),preventScrollOnEntryFocus:!0,children:u.jsx(n4,{role:"menu","aria-orientation":"vertical","data-state":tV(b.open),"data-radix-menu-content":"",dir:w.dir,..._,...y,ref:$,style:{outline:"none",...y.style},onKeyDown:Xe(y.onKeyDown,H=>{const ee=H.target.closest("[data-radix-menu-content]")===H.currentTarget,ce=H.ctrlKey||H.altKey||H.metaKey,B=H.key.length===1;ee&&(H.key==="Tab"&&H.preventDefault(),!ce&&B&&Y(H.key));const ae=E.current;if(H.target!==ae||!uke.includes(H.key))return;H.preventDefault();const je=C().filter(me=>!me.disabled).map(me=>me.ref.current);MW.includes(H.key)&&je.reverse(),$ke(je)}),onBlur:Xe(e.onBlur,H=>{H.currentTarget.contains(H.target)||(window.clearTimeout(D.current),M.current="")}),onPointerMove:Xe(e.onPointerMove,my(H=>{const ee=H.target,ce=P.current!==H.clientX;if(H.currentTarget.contains(ee)&&ce){const B=H.clientX>P.current?"right":"left";q.current=B,P.current=H.clientX}}))})})})})})})});DW.displayName=Js;var wke="MenuGroup",i7=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"group",...r,ref:t})});i7.displayName=wke;var kke="MenuLabel",AW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{...r,ref:t})});AW.displayName=kke;var a4="MenuItem",FW="menu.itemSelect",s4=m.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,o=m.useRef(null),a=hy(a4,e.__scopeMenu),s=n7(a4,e.__scopeMenu),l=At(t,o),c=m.useRef(!1),d=()=>{const f=o.current;if(!n&&f){const p=new CustomEvent(FW,{bubbles:!0,cancelable:!0});f.addEventListener(FW,v=>r==null?void 0:r(v),{once:!0}),K3e(f,p),p.defaultPrevented?c.current=!1:a.onClose()}};return u.jsx(UW,{...i,ref:l,disabled:n,onClick:Xe(e.onClick,d),onPointerDown:f=>{var p;(p=e.onPointerDown)==null||p.call(e,f),c.current=!0},onPointerUp:Xe(e.onPointerUp,f=>{var p;c.current||((p=f.currentTarget)==null||p.click())}),onKeyDown:Xe(e.onKeyDown,f=>{const p=s.searchRef.current!=="";n||p&&f.key===" "||Q9.includes(f.key)&&(f.currentTarget.click(),f.preventDefault())})})});s4.displayName=a4;var UW=m.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,a=n7(a4,n),s=LW(n),l=m.useRef(null),c=At(t,l),[d,f]=m.useState(!1),[p,v]=m.useState("");return m.useEffect(()=>{const x=l.current;x&&v((x.textContent??"").trim())},[o.children]),u.jsx(fy.ItemSlot,{scope:n,disabled:r,textValue:i??p,children:u.jsx($W,{asChild:!0,...s,focusable:!r,children:u.jsx(uy.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...o,ref:c,onPointerMove:Xe(e.onPointerMove,my(x=>{r?a.onItemLeave(x):(a.onItemEnter(x),x.defaultPrevented||x.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Xe(e.onPointerLeave,my(x=>a.onItemLeave(x))),onFocus:Xe(e.onFocus,()=>f(!0)),onBlur:Xe(e.onBlur,()=>f(!1))})})})}),Ske="MenuCheckboxItem",BW=m.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return u.jsx(qW,{scope:e.__scopeMenu,checked:n,children:u.jsx(s4,{role:"menuitemcheckbox","aria-checked":l4(n)?"mixed":n,...i,ref:t,"data-state":a7(n),onSelect:Xe(i.onSelect,()=>r==null?void 0:r(l4(n)?!0:!n),{checkForDefaultPrevented:!1})})})});BW.displayName=Ske;var WW="MenuRadioGroup",[Cke,jke]=Yh(WW,{value:void 0,onValueChange:()=>{}}),VW=m.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,o=ko(r);return u.jsx(Cke,{scope:e.__scopeMenu,value:n,onValueChange:o,children:u.jsx(i7,{...i,ref:t})})});VW.displayName=WW;var HW="MenuRadioItem",ZW=m.forwardRef((e,t)=>{const{value:n,...r}=e,i=jke(HW,e.__scopeMenu),o=n===i.value;return u.jsx(qW,{scope:e.__scopeMenu,checked:o,children:u.jsx(s4,{role:"menuitemradio","aria-checked":o,...r,ref:t,"data-state":a7(o),onSelect:Xe(r.onSelect,()=>{var a;return(a=i.onValueChange)==null?void 0:a.call(i,n)},{checkForDefaultPrevented:!1})})})});ZW.displayName=HW;var o7="MenuItemIndicator",[qW,Tke]=Yh(o7,{checked:!1}),GW=m.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,o=Tke(o7,n);return u.jsx(Ao,{present:r||l4(o.checked)||o.checked===!0,children:u.jsx(uy.span,{...i,ref:t,"data-state":a7(o.checked)})})});GW.displayName=o7;var Ike="MenuSeparator",YW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});YW.displayName=Ike;var Eke="MenuArrow",KW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(r4,{...i,...r,ref:t})});KW.displayName=Eke;var Nke="MenuSub",[N5t,XW]=Yh(Nke),py="MenuSubTrigger",JW=m.forwardRef((e,t)=>{const n=Kh(py,e.__scopeMenu),r=hy(py,e.__scopeMenu),i=XW(py,e.__scopeMenu),o=n7(py,e.__scopeMenu),a=m.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=o,c={__scopeMenu:e.__scopeMenu},d=m.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return m.useEffect(()=>d,[d]),m.useEffect(()=>{const f=s.current;return()=>{window.clearTimeout(f),l(null)}},[s,l]),u.jsx(e7,{asChild:!0,...c,children:u.jsx(UW,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":tV(n.open),...e,ref:zl(t,i.onTriggerChange),onClick:f=>{var p;(p=e.onClick)==null||p.call(e,f),!(e.disabled||f.defaultPrevented)&&(f.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Xe(e.onPointerMove,my(f=>{o.onItemEnter(f),!f.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(o.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:Xe(e.onPointerLeave,my(f=>{var v,x;d();const p=(v=n.content)==null?void 0:v.getBoundingClientRect();if(p){const y=(x=n.content)==null?void 0:x.dataset.side,b=y==="right",w=b?-5:5,_=p[b?"left":"right"],S=p[b?"right":"left"];o.onPointerGraceIntentChange({area:[{x:f.clientX+w,y:f.clientY},{x:_,y:p.top},{x:S,y:p.top},{x:S,y:p.bottom},{x:_,y:p.bottom}],side:y}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(f),f.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Xe(e.onKeyDown,f=>{var v;const p=o.searchRef.current!=="";e.disabled||p&&f.key===" "||cke[r.dir].includes(f.key)&&(n.onOpenChange(!0),(v=n.content)==null||v.focus(),f.preventDefault())})})})});JW.displayName=py;var QW="MenuSubContent",eV=m.forwardRef((e,t)=>{const n=OW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Kh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu),s=XW(QW,e.__scopeMenu),l=m.useRef(null),c=At(t,l);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:u.jsx(r7,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:c,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{var f;a.isUsingKeyboardRef.current&&((f=l.current)==null||f.focus()),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:Xe(e.onFocusOutside,d=>{d.target!==s.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Xe(e.onEscapeKeyDown,d=>{a.onClose(),d.preventDefault()}),onKeyDown:Xe(e.onKeyDown,d=>{var v;const f=d.currentTarget.contains(d.target),p=dke[a.dir].includes(d.key);f&&p&&(o.onOpenChange(!1),(v=s.trigger)==null||v.focus(),d.preventDefault())})})})})})});eV.displayName=QW;function tV(e){return e?"open":"closed"}function l4(e){return e==="indeterminate"}function a7(e){return l4(e)?"indeterminate":e?"checked":"unchecked"}function $ke(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Mke(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Rke(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=Mke(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function Lke(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function Pke(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Lke(n,t)}function my(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Oke=PW,zke=e7,Dke=zW,Ake=DW,Fke=i7,Uke=AW,Bke=s4,Wke=BW,Vke=VW,Hke=ZW,Zke=GW,qke=YW,Gke=KW,Yke=JW,Kke=eV,Xke=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Jke=Xke.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),u4="DropdownMenu",[Qke]=Pa(u4,[RW]),sa=RW(),[e6e,nV]=Qke(u4),rV=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:o,onOpenChange:a,modal:s=!0}=e,l=sa(t),c=m.useRef(null),[d,f]=Xs({prop:i,defaultProp:o??!1,onChange:a,caller:u4});return u.jsx(e6e,{scope:t,triggerId:wo(),triggerRef:c,contentId:wo(),open:d,onOpenChange:f,onOpenToggle:m.useCallback(()=>f(p=>!p),[f]),modal:s,children:u.jsx(Oke,{...l,open:d,onOpenChange:f,dir:r,modal:s,children:n})})};rV.displayName=u4;var iV="DropdownMenuTrigger",oV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,o=nV(iV,n),a=sa(n);return u.jsx(zke,{asChild:!0,...a,children:u.jsx(Jke.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...i,ref:zl(t,o.triggerRef),onPointerDown:Xe(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(o.onOpenToggle(),o.open||s.preventDefault())}),onKeyDown:Xe(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&o.onOpenToggle(),s.key==="ArrowDown"&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});oV.displayName=iV;var t6e="DropdownMenuPortal",aV=e=>{const{__scopeDropdownMenu:t,...n}=e,r=sa(t);return u.jsx(Dke,{...r,...n})};aV.displayName=t6e;var sV="DropdownMenuContent",lV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=nV(sV,n),o=sa(n),a=m.useRef(!1);return u.jsx(Ake,{id:i.contentId,"aria-labelledby":i.triggerId,...o,...r,ref:t,onCloseAutoFocus:Xe(e.onCloseAutoFocus,s=>{var l;a.current||((l=i.triggerRef.current)==null||l.focus()),a.current=!1,s.preventDefault()}),onInteractOutside:Xe(e.onInteractOutside,s=>{const l=s.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0,d=l.button===2||c;(!i.modal||d)&&(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});lV.displayName=sV;var n6e="DropdownMenuGroup",uV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Fke,{...i,...r,ref:t})});uV.displayName=n6e;var r6e="DropdownMenuLabel",cV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Uke,{...i,...r,ref:t})});cV.displayName=r6e;var i6e="DropdownMenuItem",dV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Bke,{...i,...r,ref:t})});dV.displayName=i6e;var o6e="DropdownMenuCheckboxItem",fV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Wke,{...i,...r,ref:t})});fV.displayName=o6e;var a6e="DropdownMenuRadioGroup",hV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Vke,{...i,...r,ref:t})});hV.displayName=a6e;var s6e="DropdownMenuRadioItem",pV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Hke,{...i,...r,ref:t})});pV.displayName=s6e;var l6e="DropdownMenuItemIndicator",mV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Zke,{...i,...r,ref:t})});mV.displayName=l6e;var u6e="DropdownMenuSeparator",gV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(qke,{...i,...r,ref:t})});gV.displayName=u6e;var c6e="DropdownMenuArrow",d6e=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Gke,{...i,...r,ref:t})});d6e.displayName=c6e;var f6e="DropdownMenuSubTrigger",vV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Yke,{...i,...r,ref:t})});vV.displayName=f6e;var h6e="DropdownMenuSubContent",yV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Kke,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yV.displayName=h6e;var bV=rV,xV=oV,s7=aV,_V=lV,p6e=uV,m6e=cV,wV=dV,g6e=fV,v6e=hV,y6e=pV,kV=mV,b6e=gV,x6e=vV,_6e=yV,w6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],k6e=w6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),S6e="Label",SV=m.forwardRef((e,t)=>u.jsx(k6e.label,{...e,ref:t,onMouseDown:n=>{var r;n.target.closest("button, input, select, textarea")||((r=e.onMouseDown)==null||r.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));SV.displayName=S6e;var C6e=SV;function gy(e,[t,n]){return Math.min(n,Math.max(t,e))}var j6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],CV=j6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),c4="Popover",[jV]=Pa(c4,[Sf]),vy=Sf(),[T6e,Cf]=jV(c4),TV=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!1}=e,s=vy(t),l=m.useRef(null),[c,d]=m.useState(!1),[f,p]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:c4});return u.jsx(t4,{...s,children:u.jsx(T6e,{scope:t,contentId:wo(),triggerRef:l,open:f,onOpenChange:p,onOpenToggle:m.useCallback(()=>p(v=>!v),[p]),hasCustomAnchor:c,onCustomAnchorAdd:m.useCallback(()=>d(!0),[]),onCustomAnchorRemove:m.useCallback(()=>d(!1),[]),modal:a,children:n})})};TV.displayName=c4;var IV="PopoverAnchor",EV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Cf(IV,n),o=vy(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:s}=i;return m.useEffect(()=>(a(),()=>s()),[a,s]),u.jsx(ly,{...o,...r,ref:t})});EV.displayName=IV;var NV="PopoverTrigger",$V=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Cf(NV,n),o=vy(n),a=At(t,i.triggerRef),s=u.jsx(CV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":zV(i.open),...r,ref:a,onClick:Xe(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:u.jsx(ly,{asChild:!0,...o,children:s})});$V.displayName=NV;var l7="PopoverPortal",[I6e,E6e]=jV(l7,{forceMount:void 0}),MV=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=Cf(l7,t);return u.jsx(I6e,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:r})})})};MV.displayName=l7;var D0="PopoverContent",RV=m.forwardRef((e,t)=>{const n=E6e(D0,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,o=Cf(D0,e.__scopePopover);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx($6e,{...i,ref:t}):u.jsx(M6e,{...i,ref:t})})});RV.displayName=D0;var N6e=vr("PopoverContent.RemoveScroll"),$6e=m.forwardRef((e,t)=>{const n=Cf(D0,e.__scopePopover),r=m.useRef(null),i=At(t,r),o=m.useRef(!1);return m.useEffect(()=>{const a=r.current;if(a)return Bw(a)},[]),u.jsx(iy,{as:N6e,allowPinchZoom:!0,children:u.jsx(LV,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,a=>{var s;a.preventDefault(),o.current||((s=n.triggerRef.current)==null||s.focus())}),onPointerDownOutside:Xe(e.onPointerDownOutside,a=>{const s=a.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0,c=s.button===2||l;o.current=c},{checkForDefaultPrevented:!1}),onFocusOutside:Xe(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),M6e=m.forwardRef((e,t)=>{const n=Cf(D0,e.__scopePopover),r=m.useRef(!1),i=m.useRef(!1);return u.jsx(LV,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),LV=m.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:a,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:d,...f}=e,p=Cf(D0,n),v=vy(n);return Lw(),u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>p.onOpenChange(!1),children:u.jsx(n4,{"data-state":zV(p.open),role:"dialog",id:p.contentId,...v,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),PV="PopoverClose",OV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Cf(PV,n);return u.jsx(CV.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});OV.displayName=PV;var R6e="PopoverArrow",L6e=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=vy(n);return u.jsx(r4,{...i,...r,ref:t})});L6e.displayName=R6e;function zV(e){return e?"open":"closed"}var u7=TV,DV=EV,AV=$V,c7=MV,d7=RV,P6e=OV,O6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],FV=O6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),f7="Progress",h7=100,[z6e]=Pa(f7),[D6e,A6e]=z6e(f7),UV=m.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:i,getValueLabel:o=F6e,...a}=e;(i||i===0)&&!HV(i)&&console.error(U6e(`${i}`,"Progress"));const s=HV(i)?i:h7;r!==null&&!ZV(r,s)&&console.error(B6e(`${r}`,"Progress"));const l=ZV(r,s)?r:null,c=d4(l)?o(l,s):void 0;return u.jsx(D6e,{scope:n,value:l,max:s,children:u.jsx(FV.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":d4(l)?l:void 0,"aria-valuetext":c,role:"progressbar","data-state":VV(l,s),"data-value":l??void 0,"data-max":s,...a,ref:t})})});UV.displayName=f7;var BV="ProgressIndicator",WV=m.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,i=A6e(BV,n);return u.jsx(FV.div,{"data-state":VV(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});WV.displayName=BV;function F6e(e,t){return`${Math.round(e/t*100)}%`}function VV(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function d4(e){return typeof e=="number"}function HV(e){return d4(e)&&!isNaN(e)&&e>0}function ZV(e,t){return d4(e)&&!isNaN(e)&&e<=t&&e>=0}function U6e(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${h7}\`.`}function B6e(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${h7} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var W6e=UV,V6e=WV,H6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yy=H6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Z6e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var p7="ScrollArea",[qV]=Pa(p7),[q6e,Qs]=qV(p7),GV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:i,scrollHideDelay:o=600,...a}=e,[s,l]=m.useState(null),[c,d]=m.useState(null),[f,p]=m.useState(null),[v,x]=m.useState(null),[y,b]=m.useState(null),[w,_]=m.useState(0),[S,C]=m.useState(0),[j,T]=m.useState(!1),[E,$]=m.useState(!1),D=At(t,O=>l(O)),M=T0(i);return u.jsx(q6e,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:s,viewport:c,onViewportChange:d,content:f,onContentChange:p,scrollbarX:v,onScrollbarXChange:x,scrollbarXEnabled:j,onScrollbarXEnabledChange:T,scrollbarY:y,onScrollbarYChange:b,scrollbarYEnabled:E,onScrollbarYEnabledChange:$,onCornerWidthChange:_,onCornerHeightChange:C,children:u.jsx(yy.div,{dir:M,...a,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":w+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});GV.displayName=p7;var YV="ScrollAreaViewport",KV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:i,...o}=e,a=Qs(YV,n),s=m.useRef(null),l=At(t,s,a.onViewportChange);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),u.jsx(yy.div,{"data-radix-scroll-area-viewport":"",...o,ref:l,style:{overflowX:a.scrollbarXEnabled?"scroll":"hidden",overflowY:a.scrollbarYEnabled?"scroll":"hidden",...e.style},children:u.jsx("div",{ref:a.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});KV.displayName=YV;var Bu="ScrollAreaScrollbar",XV=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Bu,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:a}=i,s=e.orientation==="horizontal";return m.useEffect(()=>(s?o(!0):a(!0),()=>{s?o(!1):a(!1)}),[s,o,a]),i.type==="hover"?u.jsx(G6e,{...r,ref:t,forceMount:n}):i.type==="scroll"?u.jsx(Y6e,{...r,ref:t,forceMount:n}):i.type==="auto"?u.jsx(JV,{...r,ref:t,forceMount:n}):i.type==="always"?u.jsx(m7,{...r,ref:t}):null});XV.displayName=Bu;var G6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Bu,e.__scopeScrollArea),[o,a]=m.useState(!1);return m.useEffect(()=>{const s=i.scrollArea;let l=0;if(s){const c=()=>{window.clearTimeout(l),a(!0)},d=()=>{l=window.setTimeout(()=>a(!1),i.scrollHideDelay)};return s.addEventListener("pointerenter",c),s.addEventListener("pointerleave",d),()=>{window.clearTimeout(l),s.removeEventListener("pointerenter",c),s.removeEventListener("pointerleave",d)}}},[i.scrollArea,i.scrollHideDelay]),u.jsx(Ao,{present:n||o,children:u.jsx(JV,{"data-state":o?"visible":"hidden",...r,ref:t})})}),Y6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Bu,e.__scopeScrollArea),o=e.orientation==="horizontal",a=m4(()=>l("SCROLL_END"),100),[s,l]=Z6e("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return m.useEffect(()=>{if(s==="idle"){const c=window.setTimeout(()=>l("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(c)}},[s,i.scrollHideDelay,l]),m.useEffect(()=>{const c=i.viewport,d=o?"scrollLeft":"scrollTop";if(c){let f=c[d];const p=()=>{const v=c[d];f!==v&&(l("SCROLL"),a()),f=v};return c.addEventListener("scroll",p),()=>c.removeEventListener("scroll",p)}},[i.viewport,o,l,a]),u.jsx(Ao,{present:n||s!=="hidden",children:u.jsx(m7,{"data-state":s==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Xe(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:Xe(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),JV=m.forwardRef((e,t)=>{const n=Qs(Bu,e.__scopeScrollArea),{forceMount:r,...i}=e,[o,a]=m.useState(!1),s=e.orientation==="horizontal",l=m4(()=>{if(n.viewport){const c=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,i=Qs(Bu,e.__scopeScrollArea),o=m.useRef(null),a=m.useRef(0),[s,l]=m.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=rH(s.viewport,s.content),d={...r,sizes:s,onSizesChange:l,hasThumb:c>0&&c<1,onThumbChange:p=>o.current=p,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:p=>a.current=p};function f(p,v){return t5e(p,a.current,s,v)}return n==="horizontal"?u.jsx(K6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollLeft,v=iH(p,s,i.dir);o.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollLeft=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollLeft=f(p,i.dir))}}):n==="vertical"?u.jsx(X6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollTop,v=iH(p,s);o.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollTop=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollTop=f(p))}}):null}),K6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Bu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarXChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"horizontal",...i,ref:c,sizes:n,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollLeft+d.deltaX;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:h4(a.paddingLeft),paddingEnd:h4(a.paddingRight)}})}})}),X6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Bu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarYChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"vertical",...i,ref:c,sizes:n,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollTop+d.deltaY;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:h4(a.paddingTop),paddingEnd:h4(a.paddingBottom)}})}})}),[J6e,QV]=qV(Bu),eH=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:a,onThumbPointerDown:s,onThumbPositionChange:l,onDragScroll:c,onWheelScroll:d,onResize:f,...p}=e,v=Qs(Bu,n),[x,y]=m.useState(null),b=At(t,D=>y(D)),w=m.useRef(null),_=m.useRef(""),S=v.viewport,C=r.content-r.viewport,j=ko(d),T=ko(l),E=m4(f,10);function $(D){if(w.current){const M=D.clientX-w.current.left,O=D.clientY-w.current.top;c({x:M,y:O})}}return m.useEffect(()=>{const D=M=>{const O=M.target;x!=null&&x.contains(O)&&j(M,C)};return document.addEventListener("wheel",D,{passive:!1}),()=>document.removeEventListener("wheel",D,{passive:!1})},[S,x,C,j]),m.useEffect(T,[r,T]),A0(x,E),A0(v.content,E),u.jsx(J6e,{scope:n,scrollbar:x,hasThumb:i,onThumbChange:ko(o),onThumbPointerUp:ko(a),onThumbPositionChange:T,onThumbPointerDown:ko(s),children:u.jsx(yy.div,{...p,ref:b,style:{position:"absolute",...p.style},onPointerDown:Xe(e.onPointerDown,D=>{D.button===0&&(D.target.setPointerCapture(D.pointerId),w.current=x.getBoundingClientRect(),_.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),$(D))}),onPointerMove:Xe(e.onPointerMove,$),onPointerUp:Xe(e.onPointerUp,D=>{const M=D.target;M.hasPointerCapture(D.pointerId)&&M.releasePointerCapture(D.pointerId),document.body.style.webkitUserSelect=_.current,v.viewport&&(v.viewport.style.scrollBehavior=""),w.current=null})})})}),f4="ScrollAreaThumb",tH=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=QV(f4,e.__scopeScrollArea);return u.jsx(Ao,{present:n||i.hasThumb,children:u.jsx(Q6e,{ref:t,...r})})}),Q6e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...i}=e,o=Qs(f4,n),a=QV(f4,n),{onThumbPositionChange:s}=a,l=At(t,f=>a.onThumbChange(f)),c=m.useRef(void 0),d=m4(()=>{c.current&&(c.current(),c.current=void 0)},100);return m.useEffect(()=>{const f=o.viewport;if(f){const p=()=>{if(d(),!c.current){const v=n5e(f,s);c.current=v,s()}};return s(),f.addEventListener("scroll",p),()=>f.removeEventListener("scroll",p)}},[o.viewport,d,s]),u.jsx(yy.div,{"data-state":a.hasThumb?"visible":"hidden",...i,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Xe(e.onPointerDownCapture,f=>{const p=f.target.getBoundingClientRect(),v=f.clientX-p.left,x=f.clientY-p.top;a.onThumbPointerDown({x:v,y:x})}),onPointerUp:Xe(e.onPointerUp,a.onThumbPointerUp)})});tH.displayName=f4;var g7="ScrollAreaCorner",nH=m.forwardRef((e,t)=>{const n=Qs(g7,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?u.jsx(e5e,{...e,ref:t}):null});nH.displayName=g7;var e5e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,i=Qs(g7,n),[o,a]=m.useState(0),[s,l]=m.useState(0),c=!!(o&&s);return A0(i.scrollbarX,()=>{var f;const d=((f=i.scrollbarX)==null?void 0:f.offsetHeight)||0;i.onCornerHeightChange(d),l(d)}),A0(i.scrollbarY,()=>{var f;const d=((f=i.scrollbarY)==null?void 0:f.offsetWidth)||0;i.onCornerWidthChange(d),a(d)}),c?u.jsx(yy.div,{...r,ref:t,style:{width:o,height:s,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function h4(e){return e?parseInt(e,10):0}function rH(e,t){const n=e/t;return isNaN(n)?0:n}function p4(e){const t=rH(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function t5e(e,t,n,r="ltr"){const i=p4(n),o=i/2,a=t||o,s=i-a,l=n.scrollbar.paddingStart+a,c=n.scrollbar.size-n.scrollbar.paddingEnd-s,d=n.content-n.viewport,f=r==="ltr"?[0,d]:[d*-1,0];return oH([l,c],f)(e)}function iH(e,t,n="ltr"){const r=p4(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,a=t.content-t.viewport,s=o-r,l=n==="ltr"?[0,a]:[a*-1,0],c=gy(e,l);return oH([0,a],[0,s])(c)}function oH(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function aH(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function i(){const o={left:e.scrollLeft,top:e.scrollTop},a=n.left!==o.left,s=n.top!==o.top;(a||s)&&t(),n=o,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function m4(e,t){const n=ko(e),r=m.useRef(0);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),m.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function A0(e,t){const n=ko(t);_o(()=>{let r=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return i.observe(e),()=>{window.cancelAnimationFrame(r),i.unobserve(e)}}},[e,n])}var sH=GV,lH=KV,v7=XV,y7=tH,r5e=nH,i5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ds=i5e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),o5e=[" ","Enter","ArrowUp","ArrowDown"],a5e=[" ","Enter"],Xh="Select",[g4,v4,s5e]=Mw(Xh),[F0]=Pa(Xh,[s5e,Sf]),y4=Sf(),[l5e,jf]=F0(Xh),[u5e,c5e]=F0(Xh),uH=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:o,value:a,defaultValue:s,onValueChange:l,dir:c,name:d,autoComplete:f,disabled:p,required:v,form:x}=e,y=y4(t),[b,w]=m.useState(null),[_,S]=m.useState(null),[C,j]=m.useState(!1),T=T0(c),[E,$]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Xh}),[D,M]=Xs({prop:a,defaultProp:s,onChange:l,caller:Xh}),O=m.useRef(null),te=b?x||!!b.closest("form"):!0,[q,P]=m.useState(new Set),X=Array.from(q).map(A=>A.props.value).join(";");return u.jsx(t4,{...y,children:u.jsxs(l5e,{required:v,scope:t,trigger:b,onTriggerChange:w,valueNode:_,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:j,contentId:wo(),value:D,onValueChange:M,open:E,onOpenChange:$,dir:T,triggerPointerDownPosRef:O,disabled:p,children:[u.jsx(g4.Provider,{scope:t,children:u.jsx(u5e,{scope:e.__scopeSelect,onNativeOptionAdd:m.useCallback(A=>{P(Y=>new Set(Y).add(A))},[]),onNativeOptionRemove:m.useCallback(A=>{P(Y=>{const F=new Set(Y);return F.delete(A),F})},[]),children:n})}),te?u.jsxs(MH,{"aria-hidden":!0,required:v,tabIndex:-1,name:d,autoComplete:f,value:D,onChange:A=>M(A.target.value),disabled:p,form:x,children:[D===void 0?u.jsx("option",{value:""}):null,Array.from(q)]},X):null]})})};uH.displayName=Xh;var cH="SelectTrigger",dH=m.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,o=y4(n),a=jf(cH,n),s=a.disabled||r,l=At(t,a.onTriggerChange),c=v4(n),d=m.useRef("touch"),[f,p,v]=LH(y=>{const b=c().filter(S=>!S.disabled),w=b.find(S=>S.value===a.value),_=PH(b,y,w);_!==void 0&&a.onValueChange(_.value)}),x=y=>{s||(a.onOpenChange(!0),v()),y&&(a.triggerPointerDownPosRef.current={x:Math.round(y.pageX),y:Math.round(y.pageY)})};return u.jsx(ly,{asChild:!0,...o,children:u.jsx(ds.button,{type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":RH(a.value)?"":void 0,...i,ref:l,onClick:Xe(i.onClick,y=>{y.currentTarget.focus(),d.current!=="mouse"&&x(y)}),onPointerDown:Xe(i.onPointerDown,y=>{d.current=y.pointerType;const b=y.target;b.hasPointerCapture(y.pointerId)&&b.releasePointerCapture(y.pointerId),y.button===0&&y.ctrlKey===!1&&y.pointerType==="mouse"&&(x(y),y.preventDefault())}),onKeyDown:Xe(i.onKeyDown,y=>{const b=f.current!=="";!(y.ctrlKey||y.altKey||y.metaKey)&&y.key.length===1&&p(y.key),!(b&&y.key===" ")&&o5e.includes(y.key)&&(x(),y.preventDefault())})})})});dH.displayName=cH;var fH="SelectValue",hH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:o,placeholder:a="",...s}=e,l=jf(fH,n),{onValueNodeHasChildrenChange:c}=l,d=o!==void 0,f=At(t,l.onValueNodeChange);return _o(()=>{c(d)},[c,d]),u.jsx(ds.span,{...s,ref:f,style:{pointerEvents:"none"},children:RH(l.value)?u.jsx(u.Fragment,{children:a}):o})});hH.displayName=fH;var d5e="SelectIcon",pH=m.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return u.jsx(ds.span,{"aria-hidden":!0,...i,ref:t,children:r||"\u25BC"})});pH.displayName=d5e;var f5e="SelectPortal",mH=e=>u.jsx(Zh,{asChild:!0,...e});mH.displayName=f5e;var Jh="SelectContent",gH=m.forwardRef((e,t)=>{const n=jf(Jh,e.__scopeSelect),[r,i]=m.useState();if(_o(()=>{i(new DocumentFragment)},[]),!n.open){const o=r;return o?Kc.createPortal(u.jsx(vH,{scope:e.__scopeSelect,children:u.jsx(g4.Slot,{scope:e.__scopeSelect,children:u.jsx("div",{children:e.children})})}),o):null}return u.jsx(yH,{...e,ref:t})});gH.displayName=Jh;var Ul=10,[vH,Tf]=F0(Jh),h5e="SelectContentImpl",p5e=vr("SelectContent.RemoveScroll"),yH=m.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:a,side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:x,hideWhenDetached:y,avoidCollisions:b,...w}=e,_=jf(Jh,n),[S,C]=m.useState(null),[j,T]=m.useState(null),E=At(t,he=>C(he)),[$,D]=m.useState(null),[M,O]=m.useState(null),te=v4(n),[q,P]=m.useState(!1),X=m.useRef(!1);m.useEffect(()=>{if(S)return Bw(S)},[S]),Lw();const A=m.useCallback(he=>{const[ue,...re]=te().map(pe=>pe.ref.current),[ge]=re.slice(-1),$e=document.activeElement;for(const pe of he)if(pe===$e||(pe==null||pe.scrollIntoView({block:"nearest"}),pe===ue&&j&&(j.scrollTop=0),pe===ge&&j&&(j.scrollTop=j.scrollHeight),pe==null||pe.focus(),document.activeElement!==$e))return},[te,j]),Y=m.useCallback(()=>A([$,S]),[A,$,S]);m.useEffect(()=>{q&&Y()},[q,Y]);const{onOpenChange:F,triggerPointerDownPosRef:H}=_;m.useEffect(()=>{if(S){let he={x:0,y:0};const ue=ge=>{var $e,pe;he={x:Math.abs(Math.round(ge.pageX)-((($e=H.current)==null?void 0:$e.x)??0)),y:Math.abs(Math.round(ge.pageY)-(((pe=H.current)==null?void 0:pe.y)??0))}},re=ge=>{he.x<=10&&he.y<=10?ge.preventDefault():S.contains(ge.target)||F(!1),document.removeEventListener("pointermove",ue),H.current=null};return H.current!==null&&(document.addEventListener("pointermove",ue),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ue),document.removeEventListener("pointerup",re,{capture:!0})}}},[S,F,H]),m.useEffect(()=>{const he=()=>F(!1);return window.addEventListener("blur",he),window.addEventListener("resize",he),()=>{window.removeEventListener("blur",he),window.removeEventListener("resize",he)}},[F]);const[ee,ce]=LH(he=>{const ue=te().filter($e=>!$e.disabled),re=ue.find($e=>$e.ref.current===document.activeElement),ge=PH(ue,he,re);ge&&setTimeout(()=>ge.ref.current.focus())}),B=m.useCallback((he,ue,re)=>{const ge=!X.current&&!re;(_.value!==void 0&&_.value===ue||ge)&&(D(he),ge&&(X.current=!0))},[_.value]),ae=m.useCallback(()=>S==null?void 0:S.focus(),[S]),je=m.useCallback((he,ue,re)=>{const ge=!X.current&&!re;(_.value!==void 0&&_.value===ue||ge)&&O(he)},[_.value]),me=r==="popper"?b7:bH,ke=me===b7?{side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:x,hideWhenDetached:y,avoidCollisions:b}:{};return u.jsx(vH,{scope:n,content:S,viewport:j,onViewportChange:T,itemRefCallback:B,selectedItem:$,onItemLeave:ae,itemTextRefCallback:je,focusSelectedItem:Y,selectedItemText:M,position:r,isPositioned:q,searchRef:ee,children:u.jsx(iy,{as:p5e,allowPinchZoom:!0,children:u.jsx(ny,{asChild:!0,trapped:_.open,onMountAutoFocus:he=>{he.preventDefault()},onUnmountAutoFocus:Xe(i,he=>{var ue;(ue=_.trigger)==null||ue.focus({preventScroll:!0}),he.preventDefault()}),children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:he=>he.preventDefault(),onDismiss:()=>_.onOpenChange(!1),children:u.jsx(me,{role:"listbox",id:_.contentId,"data-state":_.open?"open":"closed",dir:_.dir,onContextMenu:he=>he.preventDefault(),...w,...ke,onPlaced:()=>P(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:Xe(w.onKeyDown,he=>{const ue=he.ctrlKey||he.altKey||he.metaKey;if(he.key==="Tab"&&he.preventDefault(),!ue&&he.key.length===1&&ce(he.key),["ArrowUp","ArrowDown","Home","End"].includes(he.key)){let re=te().filter(ge=>!ge.disabled).map(ge=>ge.ref.current);if(["ArrowUp","End"].includes(he.key)&&(re=re.slice().reverse()),["ArrowUp","ArrowDown"].includes(he.key)){const ge=he.target,$e=re.indexOf(ge);re=re.slice($e+1)}setTimeout(()=>A(re)),he.preventDefault()}})})})})})})});yH.displayName=h5e;var m5e="SelectItemAlignedPosition",bH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,o=jf(Jh,n),a=Tf(Jh,n),[s,l]=m.useState(null),[c,d]=m.useState(null),f=At(t,E=>d(E)),p=v4(n),v=m.useRef(!1),x=m.useRef(!0),{viewport:y,selectedItem:b,selectedItemText:w,focusSelectedItem:_}=a,S=m.useCallback(()=>{if(o.trigger&&o.valueNode&&s&&c&&y&&b&&w){const E=o.trigger.getBoundingClientRect(),$=c.getBoundingClientRect(),D=o.valueNode.getBoundingClientRect(),M=w.getBoundingClientRect();if(o.dir!=="rtl"){const ge=M.left-$.left,$e=D.left-ge,pe=E.left-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Ul,Ue=gy($e,[Ul,Math.max(Ul,Ce-Se)]);s.style.minWidth=ye+"px",s.style.left=Ue+"px"}else{const ge=$.right-M.right,$e=window.innerWidth-D.right-ge,pe=window.innerWidth-E.right-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Ul,Ue=gy($e,[Ul,Math.max(Ul,Ce-Se)]);s.style.minWidth=ye+"px",s.style.right=Ue+"px"}const O=p(),te=window.innerHeight-Ul*2,q=y.scrollHeight,P=window.getComputedStyle(c),X=parseInt(P.borderTopWidth,10),A=parseInt(P.paddingTop,10),Y=parseInt(P.borderBottomWidth,10),F=parseInt(P.paddingBottom,10),H=X+A+q+F+Y,ee=Math.min(b.offsetHeight*5,H),ce=window.getComputedStyle(y),B=parseInt(ce.paddingTop,10),ae=parseInt(ce.paddingBottom,10),je=E.top+E.height/2-Ul,me=te-je,ke=b.offsetHeight/2,he=b.offsetTop+ke,ue=X+A+he,re=H-ue;if(ue<=je){const ge=O.length>0&&b===O[O.length-1].ref.current;s.style.bottom="0px";const $e=c.clientHeight-y.offsetTop-y.offsetHeight,pe=Math.max(me,ke+(ge?ae:0)+$e+Y),ye=ue+pe;s.style.height=ye+"px"}else{const ge=O.length>0&&b===O[0].ref.current;s.style.top="0px";const $e=Math.max(je,X+y.offsetTop+(ge?B:0)+ke)+re;s.style.height=$e+"px",y.scrollTop=ue-je+y.offsetTop}s.style.margin=`${Ul}px 0`,s.style.minHeight=ee+"px",s.style.maxHeight=te+"px",r==null||r(),requestAnimationFrame(()=>v.current=!0)}},[p,o.trigger,o.valueNode,s,c,y,b,w,o.dir,r]);_o(()=>S(),[S]);const[C,j]=m.useState();_o(()=>{c&&j(window.getComputedStyle(c).zIndex)},[c]);const T=m.useCallback(E=>{E&&x.current===!0&&(S(),_==null||_(),x.current=!1)},[S,_]);return u.jsx(v5e,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:v,onScrollButtonChange:T,children:u.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:C},children:u.jsx(ds.div,{...i,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});bH.displayName=m5e;var g5e="SelectPopperPosition",b7=m.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=Ul,...o}=e,a=y4(n);return u.jsx(n4,{...a,...o,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});b7.displayName=g5e;var[v5e,x7]=F0(Jh,{}),_7="SelectViewport",xH=m.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,o=Tf(_7,n),a=x7(_7,n),s=At(t,o.onViewportChange),l=m.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),u.jsx(g4.Slot,{scope:n,children:u.jsx(ds.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:Xe(i.onScroll,c=>{const d=c.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:p}=a;if(p!=null&&p.current&&f){const v=Math.abs(l.current-d.scrollTop);if(v>0){const x=window.innerHeight-Ul*2,y=parseFloat(f.style.minHeight),b=parseFloat(f.style.height),w=Math.max(y,b);if(w0?C:0,f.style.justifyContent="flex-end")}}}l.current=d.scrollTop})})})]})});xH.displayName=_7;var _H="SelectGroup",[y5e,b5e]=F0(_H),wH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=wo();return u.jsx(y5e,{scope:n,id:i,children:u.jsx(ds.div,{role:"group","aria-labelledby":i,...r,ref:t})})});wH.displayName=_H;var kH="SelectLabel",SH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=b5e(kH,n);return u.jsx(ds.div,{id:i.id,...r,ref:t})});SH.displayName=kH;var b4="SelectItem",[x5e,CH]=F0(b4),jH=m.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:o,...a}=e,s=jf(b4,n),l=Tf(b4,n),c=s.value===r,[d,f]=m.useState(o??""),[p,v]=m.useState(!1),x=At(t,_=>{var S;return(S=l.itemRefCallback)==null?void 0:S.call(l,_,r,i)}),y=wo(),b=m.useRef("touch"),w=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(x5e,{scope:n,value:r,disabled:i,textId:y,isSelected:c,onItemTextChange:m.useCallback(_=>{f(S=>S||((_==null?void 0:_.textContent)??"").trim())},[]),children:u.jsx(g4.ItemSlot,{scope:n,value:r,disabled:i,textValue:d,children:u.jsx(ds.div,{role:"option","aria-labelledby":y,"data-highlighted":p?"":void 0,"aria-selected":c&&p,"data-state":c?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...a,ref:x,onFocus:Xe(a.onFocus,()=>v(!0)),onBlur:Xe(a.onBlur,()=>v(!1)),onClick:Xe(a.onClick,()=>{b.current!=="mouse"&&w()}),onPointerUp:Xe(a.onPointerUp,()=>{b.current==="mouse"&&w()}),onPointerDown:Xe(a.onPointerDown,_=>{b.current=_.pointerType}),onPointerMove:Xe(a.onPointerMove,_=>{var S;b.current=_.pointerType,i?(S=l.onItemLeave)==null||S.call(l):b.current==="mouse"&&_.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Xe(a.onPointerLeave,_=>{var S;_.currentTarget===document.activeElement&&((S=l.onItemLeave)==null||S.call(l))}),onKeyDown:Xe(a.onKeyDown,_=>{var S;((S=l.searchRef)==null?void 0:S.current)!==""&&_.key===" "||(a5e.includes(_.key)&&w(),_.key===" "&&_.preventDefault())})})})})});jH.displayName=b4;var by="SelectItemText",TH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...o}=e,a=jf(by,n),s=Tf(by,n),l=CH(by,n),c=c5e(by,n),[d,f]=m.useState(null),p=At(t,w=>f(w),l.onItemTextChange,w=>{var _;return(_=s.itemTextRefCallback)==null?void 0:_.call(s,w,l.value,l.disabled)}),v=d==null?void 0:d.textContent,x=m.useMemo(()=>u.jsx("option",{value:l.value,disabled:l.disabled,children:v},l.value),[l.disabled,l.value,v]),{onNativeOptionAdd:y,onNativeOptionRemove:b}=c;return _o(()=>(y(x),()=>b(x)),[y,b,x]),u.jsxs(u.Fragment,{children:[u.jsx(ds.span,{id:l.textId,...o,ref:p}),l.isSelected&&a.valueNode&&!a.valueNodeHasChildren?Kc.createPortal(o.children,a.valueNode):null]})});TH.displayName=by;var IH="SelectItemIndicator",EH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return CH(IH,n).isSelected?u.jsx(ds.span,{"aria-hidden":!0,...r,ref:t}):null});EH.displayName=IH;var w7="SelectScrollUpButton",_5e=m.forwardRef((e,t)=>{const n=Tf(w7,e.__scopeSelect),r=x7(w7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return _o(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollTop>0;o(c)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}}):null});_5e.displayName=w7;var k7="SelectScrollDownButton",w5e=m.forwardRef((e,t)=>{const n=Tf(k7,e.__scopeSelect),r=x7(k7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return _o(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollHeight-l.clientHeight,d=Math.ceil(l.scrollTop)l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}}):null});w5e.displayName=k7;var NH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,o=Tf("SelectScrollButton",n),a=m.useRef(null),s=v4(n),l=m.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return m.useEffect(()=>()=>l(),[l]),_o(()=>{var c,d;(d=(c=s().find(f=>f.ref.current===document.activeElement))==null?void 0:c.ref.current)==null||d.scrollIntoView({block:"nearest"})},[s]),u.jsx(ds.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:Xe(i.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(r,50))}),onPointerMove:Xe(i.onPointerMove,()=>{var c;(c=o.onItemLeave)==null||c.call(o),a.current===null&&(a.current=window.setInterval(r,50))}),onPointerLeave:Xe(i.onPointerLeave,()=>{l()})})}),k5e="SelectSeparator",$H=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return u.jsx(ds.div,{"aria-hidden":!0,...r,ref:t})});$H.displayName=k5e;var S7="SelectArrow",S5e=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=y4(n),o=jf(S7,n),a=Tf(S7,n);return o.open&&a.position==="popper"?u.jsx(r4,{...i,...r,ref:t}):null});S5e.displayName=S7;var C5e="SelectBubbleInput",MH=m.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(r,i),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("change",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(ds.select,{...n,style:{...GU,...n.style},ref:o,defaultValue:t})});MH.displayName=C5e;function RH(e){return e===""||e===void 0}function LH(e){const t=ko(e),n=m.useRef(""),r=m.useRef(0),i=m.useCallback(a=>{const s=n.current+a;t(s),function l(c){n.current=c,window.clearTimeout(r.current),c!==""&&(r.current=window.setTimeout(()=>l(""),1e3))}(s)},[t]),o=m.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,o]}function PH(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=j5e(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.textValue.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function j5e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var T5e=uH,I5e=dH,E5e=hH,N5e=pH,$5e=mH,M5e=gH,R5e=xH,L5e=wH,P5e=SH,O5e=jH,z5e=TH,D5e=EH,A5e=$H,F5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],xy=F5e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),OH=["PageUp","PageDown"],zH=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],DH={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},U0="Slider",[C7,U5e,B5e]=Mw(U0),[AH]=Pa(U0,[B5e]),[W5e,x4]=AH(U0),FH=m.forwardRef((e,t)=>{const{name:n,min:r=0,max:i=100,step:o=1,orientation:a="horizontal",disabled:s=!1,minStepsBetweenThumbs:l=0,defaultValue:c=[r],value:d,onValueChange:f=()=>{},onValueCommit:p=()=>{},inverted:v=!1,form:x,...y}=e,b=m.useRef(new Set),w=m.useRef(0),_=a==="horizontal"?V5e:H5e,[S=[],C]=Xs({prop:d,defaultProp:c,onChange:M=>{var O;(O=[...b.current][w.current])==null||O.focus(),f(M)}}),j=m.useRef(S);function T(M){const O=K5e(S,M);D(M,O)}function E(M){D(M,w.current)}function $(){const M=j.current[w.current];S[w.current]!==M&&p(S)}function D(M,O,{commit:te}={commit:!1}){const q=eSe(o),P=tSe(Math.round((M-r)/o)*o+r,q),X=gy(P,[r,i]);C((A=[])=>{const Y=G5e(A,X,O);if(Q5e(Y,l*o)){w.current=Y.indexOf(X);const F=String(Y)!==String(A);return F&&te&&p(Y),F?Y:A}else return A})}return u.jsx(W5e,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:w,thumbs:b.current,values:S,orientation:a,form:x,children:u.jsx(C7.Provider,{scope:e.__scopeSlider,children:u.jsx(C7.Slot,{scope:e.__scopeSlider,children:u.jsx(_,{"aria-disabled":s,"data-disabled":s?"":void 0,...y,ref:t,onPointerDown:Xe(y.onPointerDown,()=>{s||(j.current=S)}),min:r,max:i,inverted:v,onSlideStart:s?void 0:T,onSlideMove:s?void 0:E,onSlideEnd:s?void 0:$,onHomeKeyDown:()=>!s&&D(r,0,{commit:!0}),onEndKeyDown:()=>!s&&D(i,S.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:O})=>{if(!s){const te=OH.includes(M.key)||M.shiftKey&&zH.includes(M.key)?10:1,q=w.current,P=S[q],X=o*te*O;D(P+X,q,{commit:!0})}}})})})})});FH.displayName=U0;var[UH,BH]=AH(U0,{startEdge:"left",endEdge:"right",size:"width",direction:1}),V5e=m.forwardRef((e,t)=>{const{min:n,max:r,dir:i,inverted:o,onSlideStart:a,onSlideMove:s,onSlideEnd:l,onStepKeyDown:c,...d}=e,[f,p]=m.useState(null),v=At(t,S=>p(S)),x=m.useRef(void 0),y=T0(i),b=y==="ltr",w=b&&!o||!b&&o;function _(S){const C=x.current||f.getBoundingClientRect(),j=[0,C.width],T=I7(j,w?[n,r]:[r,n]);return x.current=C,T(S-C.left)}return u.jsx(UH,{scope:e.__scopeSlider,startEdge:w?"left":"right",endEdge:w?"right":"left",direction:w?1:-1,size:"width",children:u.jsx(WH,{dir:y,"data-orientation":"horizontal",...d,ref:v,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:S=>{const C=_(S.clientX);a==null||a(C)},onSlideMove:S=>{const C=_(S.clientX);s==null||s(C)},onSlideEnd:()=>{x.current=void 0,l==null||l()},onStepKeyDown:S=>{const C=DH[w?"from-left":"from-right"].includes(S.key);c==null||c({event:S,direction:C?-1:1})}})})}),H5e=m.forwardRef((e,t)=>{const{min:n,max:r,inverted:i,onSlideStart:o,onSlideMove:a,onSlideEnd:s,onStepKeyDown:l,...c}=e,d=m.useRef(null),f=At(t,d),p=m.useRef(void 0),v=!i;function x(y){const b=p.current||d.current.getBoundingClientRect(),w=[0,b.height],_=I7(w,v?[r,n]:[n,r]);return p.current=b,_(y-b.top)}return u.jsx(UH,{scope:e.__scopeSlider,startEdge:v?"bottom":"top",endEdge:v?"top":"bottom",size:"height",direction:v?1:-1,children:u.jsx(WH,{"data-orientation":"vertical",...c,ref:f,style:{...c.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:y=>{const b=x(y.clientY);o==null||o(b)},onSlideMove:y=>{const b=x(y.clientY);a==null||a(b)},onSlideEnd:()=>{p.current=void 0,s==null||s()},onStepKeyDown:y=>{const b=DH[v?"from-bottom":"from-top"].includes(y.key);l==null||l({event:y,direction:b?-1:1})}})})}),WH=m.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:o,onHomeKeyDown:a,onEndKeyDown:s,onStepKeyDown:l,...c}=e,d=x4(U0,n);return u.jsx(xy.span,{...c,ref:t,onKeyDown:Xe(e.onKeyDown,f=>{f.key==="Home"?(a(f),f.preventDefault()):f.key==="End"?(s(f),f.preventDefault()):OH.concat(zH).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Xe(e.onPointerDown,f=>{const p=f.target;p.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(p)?p.focus():r(f)}),onPointerMove:Xe(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&i(f)}),onPointerUp:Xe(e.onPointerUp,f=>{const p=f.target;p.hasPointerCapture(f.pointerId)&&(p.releasePointerCapture(f.pointerId),o(f))})})}),VH="SliderTrack",HH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=x4(VH,n);return u.jsx(xy.span,{"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation,...r,ref:t})});HH.displayName=VH;var j7="SliderRange",ZH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=x4(j7,n),o=BH(j7,n),a=m.useRef(null),s=At(t,a),l=i.values.length,c=i.values.map(p=>YH(p,i.min,i.max)),d=l>1?Math.min(...c):0,f=100-Math.max(...c);return u.jsx(xy.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,...r,ref:s,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});ZH.displayName=j7;var T7="SliderThumb",qH=m.forwardRef((e,t)=>{const n=U5e(e.__scopeSlider),[r,i]=m.useState(null),o=At(t,s=>i(s)),a=m.useMemo(()=>r?n().findIndex(s=>s.ref.current===r):-1,[n,r]);return u.jsx(Z5e,{...e,ref:o,index:a})}),Z5e=m.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:i,...o}=e,a=x4(T7,n),s=BH(T7,n),[l,c]=m.useState(null),d=At(t,_=>c(_)),f=l?a.form||!!l.closest("form"):!0,p=z9(l),v=a.values[r],x=v===void 0?0:YH(v,a.min,a.max),y=Y5e(r,a.values.length),b=p==null?void 0:p[s.size],w=b?X5e(b,x,s.direction):0;return m.useEffect(()=>{if(l)return a.thumbs.add(l),()=>{a.thumbs.delete(l)}},[l,a.thumbs]),u.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${x}% + ${w}px)`},children:[u.jsx(C7.ItemSlot,{scope:e.__scopeSlider,children:u.jsx(xy.span,{role:"slider","aria-label":e["aria-label"]||y,"aria-valuemin":a.min,"aria-valuenow":v,"aria-valuemax":a.max,"aria-orientation":a.orientation,"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,tabIndex:a.disabled?void 0:0,...o,ref:d,style:v===void 0?{display:"none"}:e.style,onFocus:Xe(e.onFocus,()=>{a.valueIndexToChangeRef.current=r})})}),f&&u.jsx(GH,{name:i??(a.name?a.name+(a.values.length>1?"[]":""):void 0),form:a.form,value:v},r)]})});qH.displayName=T7;var q5e="RadioBubbleInput",GH=m.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(i,r),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("input",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(xy.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});GH.displayName=q5e;function G5e(e=[],t,n){const r=[...e];return r[n]=t,r.sort((i,o)=>i-o)}function YH(e,t,n){const r=100/(n-t)*(e-t);return gy(r,[0,100])}function Y5e(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function K5e(e,t){if(e.length===1)return 0;const n=e.map(i=>Math.abs(i-t)),r=Math.min(...n);return n.indexOf(r)}function X5e(e,t,n){const r=e/2,i=I7([0,50],[0,r]);return(r-i(t)*n)*n}function J5e(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Q5e(e,t){if(t>0){const n=J5e(e);return Math.min(...n)>=t}return!0}function I7(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function eSe(e){return(String(e).split(".")[1]||"").length}function tSe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var KH=FH,XH=HH,nSe=ZH,JH=qH,rSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],QH=rSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),_4="Switch",[iSe]=Pa(_4),[oSe,aSe]=iSe(_4),eZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:i,defaultChecked:o,required:a,disabled:s,value:l="on",onCheckedChange:c,form:d,...f}=e,[p,v]=m.useState(null),x=At(t,S=>v(S)),y=m.useRef(!1),b=p?d||!!p.closest("form"):!0,[w,_]=Xs({prop:i,defaultProp:o??!1,onChange:c,caller:_4});return u.jsxs(oSe,{scope:n,checked:w,disabled:s,children:[u.jsx(QH.button,{type:"button",role:"switch","aria-checked":w,"aria-required":a,"data-state":iZ(w),"data-disabled":s?"":void 0,disabled:s,value:l,...f,ref:x,onClick:Xe(e.onClick,S=>{_(C=>!C),b&&(y.current=S.isPropagationStopped(),y.current||S.stopPropagation())})}),b&&u.jsx(rZ,{control:p,bubbles:!y.current,name:r,value:l,checked:w,required:a,disabled:s,form:d,style:{transform:"translateX(-100%)"}})]})});eZ.displayName=_4;var tZ="SwitchThumb",nZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,i=aSe(tZ,n);return u.jsx(QH.span,{"data-state":iZ(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t})});nZ.displayName=tZ;var sSe="SwitchBubbleInput",rZ=m.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},o)=>{const a=m.useRef(null),s=At(a,o),l=O9(n),c=z9(t);return m.useEffect(()=>{const d=a.current;if(!d)return;const f=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(f,"checked").set;if(l!==n&&p){const v=new Event("click",{bubbles:r});p.call(d,n),d.dispatchEvent(v)}},[l,n,r]),u.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});rZ.displayName=sSe;function iZ(e){return e?"checked":"unchecked"}var lSe=eZ,uSe=nZ,cSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],dSe=cSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),oZ="Toggle",E7=m.forwardRef((e,t)=>{const{pressed:n,defaultPressed:r,onPressedChange:i,...o}=e,[a,s]=Xs({prop:n,onChange:i,defaultProp:r??!1,caller:oZ});return u.jsx(dSe.button,{type:"button","aria-pressed":a,"data-state":a?"on":"off","data-disabled":e.disabled?"":void 0,...o,ref:t,onClick:Xe(e.onClick,()=>{e.disabled||s(!a)})})});E7.displayName=oZ;var N7=E7,fSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],aZ=fSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),If="ToggleGroup",[sZ]=Pa(If,[i4]),lZ=i4(),$7=Pe.forwardRef((e,t)=>{const{type:n,...r}=e;if(n==="single"){const i=r;return u.jsx(hSe,{...i,ref:t})}if(n==="multiple"){const i=r;return u.jsx(pSe,{...i,ref:t})}throw new Error(`Missing prop \`type\` expected on \`${If}\``)});$7.displayName=If;var[uZ,cZ]=sZ(If),hSe=Pe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??"",onChange:i,caller:If});return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"single",value:Pe.useMemo(()=>a?[a]:[],[a]),onItemActivate:s,onItemDeactivate:Pe.useCallback(()=>s(""),[s]),children:u.jsx(dZ,{...o,ref:t})})}),pSe=Pe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??[],onChange:i,caller:If}),l=Pe.useCallback(d=>s((f=[])=>[...f,d]),[s]),c=Pe.useCallback(d=>s((f=[])=>f.filter(p=>p!==d)),[s]);return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"multiple",value:a,onItemActivate:l,onItemDeactivate:c,children:u.jsx(dZ,{...o,ref:t})})});$7.displayName=If;var[mSe,gSe]=sZ(If),dZ=Pe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:o,dir:a,loop:s=!0,...l}=e,c=lZ(n),d=T0(a),f={role:"group",dir:d,...l};return u.jsx(mSe,{scope:n,rovingFocus:i,disabled:r,children:i?u.jsx(NW,{asChild:!0,...c,orientation:o,dir:d,loop:s,children:u.jsx(aZ.div,{...f,ref:t})}):u.jsx(aZ.div,{...f,ref:t})})}),w4="ToggleGroupItem",fZ=Pe.forwardRef((e,t)=>{const n=cZ(w4,e.__scopeToggleGroup),r=gSe(w4,e.__scopeToggleGroup),i=lZ(e.__scopeToggleGroup),o=n.value.includes(e.value),a=r.disabled||e.disabled,s={...e,pressed:o,disabled:a},l=Pe.useRef(null);return r.rovingFocus?u.jsx($W,{asChild:!0,...i,focusable:!a,active:o,ref:l,children:u.jsx(hZ,{...s,ref:t})}):u.jsx(hZ,{...s,ref:t})});fZ.displayName=w4;var hZ=Pe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,value:r,...i}=e,o=cZ(w4,n),a={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s=o.type==="single"?a:void 0;return u.jsx(E7,{...s,...i,ref:t,onPressedChange:l=>{l?o.onItemActivate(r):o.onItemDeactivate(r)}})}),M7=$7,B0=fZ,vSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ySe=vSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),[k4]=Pa("Tooltip",[Sf]),S4=Sf(),pZ="TooltipProvider",bSe=700,R7="tooltip.open",[xSe,L7]=k4(pZ),mZ=e=>{const{__scopeTooltip:t,delayDuration:n=bSe,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:o}=e,a=m.useRef(!0),s=m.useRef(!1),l=m.useRef(0);return m.useEffect(()=>{const c=l.current;return()=>window.clearTimeout(c)},[]),u.jsx(xSe,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:m.useCallback(()=>{window.clearTimeout(l.current),a.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:m.useCallback(c=>{s.current=c},[]),disableHoverableContent:i,children:o})};mZ.displayName=pZ;var _y="Tooltip",[_Se,wy]=k4(_y),gZ=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:o,disableHoverableContent:a,delayDuration:s}=e,l=L7(_y,e.__scopeTooltip),c=S4(t),[d,f]=m.useState(null),p=wo(),v=m.useRef(0),x=a??l.disableHoverableContent,y=s??l.delayDuration,b=m.useRef(!1),[w,_]=Xs({prop:r,defaultProp:i??!1,onChange:E=>{E?(l.onOpen(),document.dispatchEvent(new CustomEvent(R7))):l.onClose(),o==null||o(E)},caller:_y}),S=m.useMemo(()=>w?b.current?"delayed-open":"instant-open":"closed",[w]),C=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,b.current=!1,_(!0)},[_]),j=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,_(!1)},[_]),T=m.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{b.current=!0,_(!0),v.current=0},y)},[y,_]);return m.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),u.jsx(t4,{...c,children:u.jsx(_Se,{scope:t,contentId:p,open:w,stateAttribute:S,trigger:d,onTriggerChange:f,onTriggerEnter:m.useCallback(()=>{l.isOpenDelayedRef.current?T():C()},[l.isOpenDelayedRef,T,C]),onTriggerLeave:m.useCallback(()=>{x?j():(window.clearTimeout(v.current),v.current=0)},[j,x]),onOpen:C,onClose:j,disableHoverableContent:x,children:n})})};gZ.displayName=_y;var P7="TooltipTrigger",vZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=wy(P7,n),o=L7(P7,n),a=S4(n),s=m.useRef(null),l=At(t,s,i.onTriggerChange),c=m.useRef(!1),d=m.useRef(!1),f=m.useCallback(()=>c.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),u.jsx(ly,{asChild:!0,...a,children:u.jsx(ySe.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:l,onPointerMove:Xe(e.onPointerMove,p=>{p.pointerType!=="touch"&&!d.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),d.current=!0)}),onPointerLeave:Xe(e.onPointerLeave,()=>{i.onTriggerLeave(),d.current=!1}),onPointerDown:Xe(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:Xe(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:Xe(e.onBlur,i.onClose),onClick:Xe(e.onClick,i.onClose)})})});vZ.displayName=P7;var O7="TooltipPortal",[wSe,kSe]=k4(O7,{forceMount:void 0}),yZ=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,o=wy(O7,t);return u.jsx(wSe,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:r})})})};yZ.displayName=O7;var W0="TooltipContent",bZ=m.forwardRef((e,t)=>{const n=kSe(W0,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i="top",...o}=e,a=wy(W0,e.__scopeTooltip);return u.jsx(Ao,{present:r||a.open,children:a.disableHoverableContent?u.jsx(xZ,{side:i,...o,ref:t}):u.jsx(SSe,{side:i,...o,ref:t})})}),SSe=m.forwardRef((e,t)=>{const n=wy(W0,e.__scopeTooltip),r=L7(W0,e.__scopeTooltip),i=m.useRef(null),o=At(t,i),[a,s]=m.useState(null),{trigger:l,onClose:c}=n,d=i.current,{onPointerInTransitChange:f}=r,p=m.useCallback(()=>{s(null),f(!1)},[f]),v=m.useCallback((x,y)=>{const b=x.currentTarget,w={x:x.clientX,y:x.clientY},_=ISe(w,b.getBoundingClientRect()),S=ESe(w,_),C=NSe(y.getBoundingClientRect()),j=MSe([...S,...C]);s(j),f(!0)},[f]);return m.useEffect(()=>()=>p(),[p]),m.useEffect(()=>{if(l&&d){const x=b=>v(b,d),y=b=>v(b,l);return l.addEventListener("pointerleave",x),d.addEventListener("pointerleave",y),()=>{l.removeEventListener("pointerleave",x),d.removeEventListener("pointerleave",y)}}},[l,d,v,p]),m.useEffect(()=>{if(a){const x=y=>{const b=y.target,w={x:y.clientX,y:y.clientY},_=(l==null?void 0:l.contains(b))||(d==null?void 0:d.contains(b)),S=!$Se(w,a);_?p():S&&(p(),c())};return document.addEventListener("pointermove",x),()=>document.removeEventListener("pointermove",x)}},[l,d,a,c,p]),u.jsx(xZ,{...e,ref:o})}),[CSe,jSe]=k4(_y,{isInside:!1}),TSe=qU("TooltipContent"),xZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:o,onPointerDownOutside:a,...s}=e,l=wy(W0,n),c=S4(n),{onClose:d}=l;return m.useEffect(()=>(document.addEventListener(R7,d),()=>document.removeEventListener(R7,d)),[d]),m.useEffect(()=>{if(l.trigger){const f=p=>{var v;(v=p.target)!=null&&v.contains(l.trigger)&&d()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[l.trigger,d]),u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:d,children:u.jsxs(n4,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(TSe,{children:r}),u.jsx(CSe,{scope:n,isInside:!0,children:u.jsx(KU,{id:l.contentId,role:"tooltip",children:i||r})})]})})});bZ.displayName=W0;var _Z="TooltipArrow",wZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=S4(n);return jSe(_Z,n).isInside?null:u.jsx(r4,{...i,...r,ref:t})});wZ.displayName=_Z;function ISe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,i,o)){case o:return"left";case i:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function ESe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NSe(e){const{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function $Se(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function MSe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),RSe(t)}function RSe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const o=t[t.length-1],a=t[t.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const i=e[r];for(;n.length>=2;){const o=n[n.length-1],a=n[n.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var LSe=mZ,PSe=gZ,OSe=vZ,zSe=yZ,DSe=bZ,ASe=wZ,kZ={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var o="",a=0;az7.includes(t))}function Nf({className:e,customProperties:t,...n}){const r=Sy({allowArbitraryValues:!0,className:e,...n}),i=XSe({customProperties:t,...n});return[r,i]}function Sy({allowArbitraryValues:e,value:t,className:n,propValues:r,parseValue:i=o=>o}){const o=[];if(t){if(typeof t=="string"&&r.includes(t))return $Z(n,t,i);if(ky(t)){const a=t;for(const s in a){if(!NZ(a,s)||!z7.includes(s))continue;const l=a[s];if(l!==void 0){if(r.includes(l)){const c=$Z(n,l,i),d=s==="initial"?c:`${s}:${c}`;o.push(d)}else if(e){const c=s==="initial"?n:`${s}:${n}`;o.push(c)}}}return o.join(" ")}if(e)return n}}function $Z(e,t,n){const r=e?"-":"",i=n(t),o=i==null?void 0:i.startsWith("-"),a=o?"-":"",s=o?i==null?void 0:i.substring(1):i;return`${a}${e}${r}${s}`}function XSe({customProperties:e,value:t,propValues:n,parseValue:r=i=>i}){let i={};if(!(!t||typeof t=="string"&&n.includes(t))){if(typeof t=="string"&&(i=Object.fromEntries(e.map(o=>[o,t]))),ky(t)){const o=t;for(const a in o){if(!NZ(o,a)||!z7.includes(a))continue;const s=o[a];if(!n.includes(s))for(const l of e)i={[a==="initial"?l:`${l}-${a}`]:s,...i}}}for(const o in i){const a=i[o];a!==void 0&&(i[o]=r(a))}return i}}function Cy(...e){let t={};for(const n of e)n&&(t={...t,...n});return Object.keys(t).length?t:void 0}function JSe(...e){return Object.assign({},...e)}function er(e,...t){let n,r;const i={...e},o=JSe(...t);for(const a in o){let s=i[a];const l=o[a];if(l.default!==void 0&&s===void 0&&(s=l.default),l.type==="enum"&&![l.default,...l.values].includes(s)&&!ky(s)&&(s=l.default),i[a]=s,"className"in l&&l.className){delete i[a];const c="responsive"in l;if(!s||ky(s)&&!c)continue;if(ky(s)&&(l.default!==void 0&&s.initial===void 0&&(s.initial=l.default),l.type==="enum"&&([l.default,...l.values].includes(s.initial)||(s.initial=l.default))),l.type==="enum"){const d=Sy({allowArbitraryValues:!1,value:s,className:l.className,propValues:l.values,parseValue:l.parseValue});n=gt(n,d);continue}if(l.type==="string"||l.type==="enum | string"){const d=l.type==="string"?[]:l.values,[f,p]=Nf({className:l.className,customProperties:l.customProperties,propValues:d,parseValue:l.parseValue,value:s});r=Cy(r,p),n=gt(n,f);continue}if(l.type==="boolean"&&s){n=gt(n,l.className);continue}}}return i.className=gt(n,e.className),i.style=Cy(r,e.style),i}const Qh=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],So={m:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}},MZ=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="h1",color:a,...s}=er(e,KSe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Heading",r)},i?n:m.createElement(o,null,n))});MZ.displayName="Heading";const QSe=["span","div","label","p"],eCe=["1","2","3","4","5","6","7","8","9"],tCe={as:{type:"enum",values:QSe,default:"span"},...el,size:{type:"enum",className:"rt-r-size",values:eCe,responsive:!0},...EZ,...jZ,...CZ,...IZ,...TZ,...Oa,...Ef},Z=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="span",color:a,...s}=er(e,tCe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Text",r)},i?n:m.createElement(o,null,n))});Z.displayName="Text";function nCe(e){switch(e){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}const rCe=["none","small","medium","large","full"],ep={radius:{type:"enum",values:rCe,default:void 0}},fs={hasBackground:{default:!0},appearance:{default:"inherit"},accentColor:{default:"indigo"},grayColor:{default:"auto"},panelBackground:{default:"translucent"},radius:{default:"medium"},scaling:{default:"100%"}},V0=()=>{},j4=m.createContext(void 0);function RZ(){const e=m.useContext(j4);if(e===void 0)throw new Error("`useThemeContext` must be used within a `Theme`");return e}const $f=m.forwardRef((e,t)=>m.useContext(j4)===void 0?m.createElement(LSe,{delayDuration:200},m.createElement(K2e,{dir:"ltr"},m.createElement(LZ,{...e,ref:t}))):m.createElement(D7,{...e,ref:t}));$f.displayName="Theme";const LZ=m.forwardRef((e,t)=>{const{appearance:n=fs.appearance.default,accentColor:r=fs.accentColor.default,grayColor:i=fs.grayColor.default,panelBackground:o=fs.panelBackground.default,radius:a=fs.radius.default,scaling:s=fs.scaling.default,hasBackground:l=fs.hasBackground.default,...c}=e,[d,f]=m.useState(n);m.useEffect(()=>f(n),[n]);const[p,v]=m.useState(r);m.useEffect(()=>v(r),[r]);const[x,y]=m.useState(i);m.useEffect(()=>y(i),[i]);const[b,w]=m.useState(o);m.useEffect(()=>w(o),[o]);const[_,S]=m.useState(a);m.useEffect(()=>S(a),[a]);const[C,j]=m.useState(s);return m.useEffect(()=>j(s),[s]),m.createElement(D7,{...c,ref:t,isRoot:!0,hasBackground:l,appearance:d,accentColor:p,grayColor:x,panelBackground:b,radius:_,scaling:C,onAppearanceChange:f,onAccentColorChange:v,onGrayColorChange:y,onPanelBackgroundChange:w,onRadiusChange:S,onScalingChange:j})});LZ.displayName="ThemeRoot";const D7=m.forwardRef((e,t)=>{const n=m.useContext(j4),{asChild:r,isRoot:i,hasBackground:o,appearance:a=(n==null?void 0:n.appearance)??fs.appearance.default,accentColor:s=(n==null?void 0:n.accentColor)??fs.accentColor.default,grayColor:l=(n==null?void 0:n.resolvedGrayColor)??fs.grayColor.default,panelBackground:c=(n==null?void 0:n.panelBackground)??fs.panelBackground.default,radius:d=(n==null?void 0:n.radius)??fs.radius.default,scaling:f=(n==null?void 0:n.scaling)??fs.scaling.default,onAppearanceChange:p=V0,onAccentColorChange:v=V0,onGrayColorChange:x=V0,onPanelBackgroundChange:y=V0,onRadiusChange:b=V0,onScalingChange:w=V0,..._}=e,S=r?xf:"div",C=l==="auto"?nCe(s):l,j=e.appearance==="light"||e.appearance==="dark",T=o===void 0?i||j:o;return m.createElement(j4.Provider,{value:m.useMemo(()=>({appearance:a,accentColor:s,grayColor:l,resolvedGrayColor:C,panelBackground:c,radius:d,scaling:f,onAppearanceChange:p,onAccentColorChange:v,onGrayColorChange:x,onPanelBackgroundChange:y,onRadiusChange:b,onScalingChange:w}),[a,s,l,C,c,d,f,p,v,x,y,b,w])},m.createElement(S,{"data-is-root-theme":i?"true":"false","data-accent-color":s,"data-gray-color":C,"data-has-background":T?"true":"false","data-panel-background":c,"data-radius":d,"data-scaling":f,ref:t,..._,className:gt("radix-themes",{light:a==="light",dark:a==="dark"},_.className)}))});D7.displayName="ThemeImpl";const H0=e=>{if(!m.isValidElement(e))throw Error(`Expected a single React Element child, but got: ${m.Children.toArray(e).map(t=>typeof t=="object"&&"type"in t&&typeof t.type=="string"?t.type:typeof t).join(", ")}`);return e};function PZ(e,t){const{asChild:n,children:r}=e;if(!n)return typeof t=="function"?t(r):t;const i=m.Children.only(r);return m.cloneElement(i,{children:typeof t=="function"?t(i.props.children):t})}const A7=xf,iCe=["div","span"],oCe=["none","inline","inline-block","block","contents"],aCe={as:{type:"enum",values:iCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:oCe,responsive:!0}},tp=["0","1","2","3","4","5","6","7","8","9"],jy={p:{type:"enum | string",className:"rt-r-p",customProperties:["--p"],values:tp,responsive:!0},px:{type:"enum | string",className:"rt-r-px",customProperties:["--pl","--pr"],values:tp,responsive:!0},py:{type:"enum | string",className:"rt-r-py",customProperties:["--pt","--pb"],values:tp,responsive:!0},pt:{type:"enum | string",className:"rt-r-pt",customProperties:["--pt"],values:tp,responsive:!0},pr:{type:"enum | string",className:"rt-r-pr",customProperties:["--pr"],values:tp,responsive:!0},pb:{type:"enum | string",className:"rt-r-pb",customProperties:["--pb"],values:tp,responsive:!0},pl:{type:"enum | string",className:"rt-r-pl",customProperties:["--pl"],values:tp,responsive:!0}},F7=["visible","hidden","clip","scroll","auto"],sCe=["static","relative","absolute","fixed","sticky"],Ty=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],lCe=["0","1"],uCe=["0","1"],T4={...jy,...tl,...C4,position:{type:"enum",className:"rt-r-position",values:sCe,responsive:!0},inset:{type:"enum | string",className:"rt-r-inset",customProperties:["--inset"],values:Ty,responsive:!0},top:{type:"enum | string",className:"rt-r-top",customProperties:["--top"],values:Ty,responsive:!0},right:{type:"enum | string",className:"rt-r-right",customProperties:["--right"],values:Ty,responsive:!0},bottom:{type:"enum | string",className:"rt-r-bottom",customProperties:["--bottom"],values:Ty,responsive:!0},left:{type:"enum | string",className:"rt-r-left",customProperties:["--left"],values:Ty,responsive:!0},overflow:{type:"enum",className:"rt-r-overflow",values:F7,responsive:!0},overflowX:{type:"enum",className:"rt-r-ox",values:F7,responsive:!0},overflowY:{type:"enum",className:"rt-r-oy",values:F7,responsive:!0},flexBasis:{type:"string",className:"rt-r-fb",customProperties:["--flex-basis"],responsive:!0},flexShrink:{type:"enum | string",className:"rt-r-fs",customProperties:["--flex-shrink"],values:lCe,responsive:!0},flexGrow:{type:"enum | string",className:"rt-r-fg",customProperties:["--flex-grow"],values:uCe,responsive:!0},gridArea:{type:"string",className:"rt-r-ga",customProperties:["--grid-area"],responsive:!0},gridColumn:{type:"string",className:"rt-r-gc",customProperties:["--grid-column"],responsive:!0},gridColumnStart:{type:"string",className:"rt-r-gcs",customProperties:["--grid-column-start"],responsive:!0},gridColumnEnd:{type:"string",className:"rt-r-gce",customProperties:["--grid-column-end"],responsive:!0},gridRow:{type:"string",className:"rt-r-gr",customProperties:["--grid-row"],responsive:!0},gridRowStart:{type:"string",className:"rt-r-grs",customProperties:["--grid-row-start"],responsive:!0},gridRowEnd:{type:"string",className:"rt-r-gre",customProperties:["--grid-row-end"],responsive:!0}},Mt=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,aCe,T4,So);return m.createElement(r?A7:i,{...o,ref:t,className:gt("rt-Box",n)})});Mt.displayName="Box";const cCe=["1","2","3","4"],dCe=["classic","solid","soft","surface","outline","ghost"],OZ={...el,size:{type:"enum",className:"rt-r-size",values:cCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:dCe,default:"solid"},...WSe,...Ef,...ep,loading:{type:"boolean",className:"rt-loading",default:!1}},U7=["0","1","2","3","4","5","6","7","8","9"],zZ={gap:{type:"enum | string",className:"rt-r-gap",customProperties:["--gap"],values:U7,responsive:!0},gapX:{type:"enum | string",className:"rt-r-cg",customProperties:["--column-gap"],values:U7,responsive:!0},gapY:{type:"enum | string",className:"rt-r-rg",customProperties:["--row-gap"],values:U7,responsive:!0}},fCe=["div","span"],hCe=["none","inline-flex","flex"],pCe=["row","column","row-reverse","column-reverse"],mCe=["start","center","end","baseline","stretch"],gCe=["start","center","end","between"],vCe=["nowrap","wrap","wrap-reverse"],DZ={as:{type:"enum",values:fCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:hCe,responsive:!0},direction:{type:"enum",className:"rt-r-fd",values:pCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:mCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:gCe,parseValue:yCe,responsive:!0},wrap:{type:"enum",className:"rt-r-fw",values:vCe,responsive:!0},...zZ};function yCe(e){return e==="between"?"space-between":e}const W=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,DZ,T4,So);return m.createElement(r?A7:i,{...o,ref:t,className:gt("rt-Flex",n)})});W.displayName="Flex";const bCe=["1","2","3"],xCe={size:{type:"enum",className:"rt-r-size",values:bCe,default:"2",responsive:!0},loading:{type:"boolean",default:!0}},Iy=m.forwardRef((e,t)=>{const{className:n,children:r,loading:i,...o}=er(e,xCe,So);if(!i)return r;const a=m.createElement("span",{...o,ref:t,className:gt("rt-Spinner",n)},m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}));return r===void 0?a:m.createElement(W,{asChild:!0,position:"relative",align:"center",justify:"center"},m.createElement("span",null,m.createElement("span",{"aria-hidden":!0,style:{display:"contents",visibility:"hidden"},inert:void 0},r),m.createElement(W,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,a))))});Iy.displayName="Spinner";const _Ce=KU;function wCe(e,t){if(e!==void 0)return typeof e=="string"?t(e):Object.fromEntries(Object.entries(e).map(([n,r])=>[n,t(r)]))}function kCe(e){switch(e){case"1":return"1";case"2":case"3":return"2";case"4":return"3"}}const B7=m.forwardRef((e,t)=>{const{size:n=OZ.size.default}=e,{className:r,children:i,asChild:o,color:a,radius:s,disabled:l=e.loading,...c}=er(e,OZ,So),d=o?xf:"button";return m.createElement(d,{"data-disabled":l||void 0,"data-accent-color":a,"data-radius":s,...c,ref:t,className:gt("rt-reset","rt-BaseButton",r),disabled:l},e.loading?m.createElement(m.Fragment,null,m.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},i),m.createElement(_Ce,null,i),m.createElement(W,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,m.createElement(Iy,{size:wCe(n,kCe)})))):i)});B7.displayName="BaseButton";const hs=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-Button",e)}));hs.displayName="Button";const SCe=["1","2","3","4","5"],CCe=["surface","classic","ghost"],jCe={...el,size:{type:"enum",className:"rt-r-size",values:SCe,default:"1",responsive:!0},variant:{type:"enum",className:"rt-variant",values:CCe,default:"surface"}},Ey=m.forwardRef((e,t)=>{const{asChild:n,className:r,...i}=er(e,jCe,So),o=n?xf:"div";return m.createElement(o,{ref:t,...i,className:gt("rt-reset","rt-BaseCard","rt-Card",r)})});Ey.displayName="Card";const TCe=["div","span"],ICe=["none","inline-grid","grid"],ECe=["1","2","3","4","5","6","7","8","9"],NCe=["1","2","3","4","5","6","7","8","9"],$Ce=["row","column","dense","row-dense","column-dense"],MCe=["start","center","end","baseline","stretch"],RCe=["start","center","end","between"],AZ={as:{type:"enum",values:TCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:ICe,responsive:!0},areas:{type:"string",className:"rt-r-gta",customProperties:["--grid-template-areas"],responsive:!0},columns:{type:"enum | string",className:"rt-r-gtc",customProperties:["--grid-template-columns"],values:ECe,parseValue:FZ,responsive:!0},rows:{type:"enum | string",className:"rt-r-gtr",customProperties:["--grid-template-rows"],values:NCe,parseValue:FZ,responsive:!0},flow:{type:"enum",className:"rt-r-gaf",values:$Ce,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:MCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:RCe,parseValue:LCe,responsive:!0},...zZ};function FZ(e){return AZ.columns.values.includes(e)?e:e!=null&&e.match(/^\d+$/)?`repeat(${e}, minmax(0, 1fr))`:e}function LCe(e){return e==="between"?"space-between":e}const qr=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,AZ,T4,So);return m.createElement(r?A7:i,{...o,ref:t,className:gt("rt-Grid",n)})});qr.displayName="Grid";const PCe=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"})));PCe.displayName="ThickDividerHorizontalIcon";const I4=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"})));I4.displayName="ThickCheckIcon";const W7=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{d:"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z"})));W7.displayName="ChevronDownIcon";const UZ=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"})));UZ.displayName="ThickChevronRightIcon";const OCe=["1","2","3","4"],zCe=["none","initial"],DCe=["left","center","right"],ACe={...el,size:{type:"enum",className:"rt-r-size",values:OCe,default:"4",responsive:!0},display:{type:"enum",className:"rt-r-display",values:zCe,parseValue:FCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:DCe,parseValue:UCe,responsive:!0}};function FCe(e){return e==="initial"?"flex":e}function UCe(e){return e==="left"?"start":e==="right"?"end":e}const BZ=m.forwardRef(({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o,...a},s)=>{const{asChild:l,children:c,className:d,...f}=er(a,ACe,T4,So),{className:p,style:v}=er({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o},tl,C4),x=l?xf:"div";return m.createElement(x,{...f,ref:s,className:gt("rt-Container",d)},PZ({asChild:l,children:c},y=>m.createElement("div",{className:gt("rt-ContainerInner",p),style:v},y)))});BZ.displayName="Container";const BCe=["1","2","3"],Ny={...el,size:{values:BCe,default:"1"},...ep,scrollbars:{default:"both"}};function WCe(e){const{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,...l}=e;return{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,rest:l}}const np=So.m.values;function VCe(e){const[t,n]=Nf({className:"rt-r-m",customProperties:["--margin"],propValues:np,value:e.m}),[r,i]=Nf({className:"rt-r-mx",customProperties:["--margin-left","--margin-right"],propValues:np,value:e.mx}),[o,a]=Nf({className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"],propValues:np,value:e.my}),[s,l]=Nf({className:"rt-r-mt",customProperties:["--margin-top"],propValues:np,value:e.mt}),[c,d]=Nf({className:"rt-r-mr",customProperties:["--margin-right"],propValues:np,value:e.mr}),[f,p]=Nf({className:"rt-r-mb",customProperties:["--margin-bottom"],propValues:np,value:e.mb}),[v,x]=Nf({className:"rt-r-ml",customProperties:["--margin-left"],propValues:np,value:e.ml});return[gt(t,r,o,s,c,f,v),Cy(n,i,a,l,d,p,x)]}const E4=m.forwardRef((e,t)=>{const{rest:n,...r}=WCe(e),[i,o]=VCe(r),{asChild:a,children:s,className:l,style:c,type:d,scrollHideDelay:f=d!=="scroll"?0:void 0,dir:p,size:v=Ny.size.default,radius:x=Ny.radius.default,scrollbars:y=Ny.scrollbars.default,...b}=n;return m.createElement(sH,{type:d,scrollHideDelay:f,className:gt("rt-ScrollAreaRoot",i,l),style:Cy(o,c),asChild:a},PZ({asChild:a,children:s},w=>m.createElement(m.Fragment,null,m.createElement(lH,{...b,ref:t,className:"rt-ScrollAreaViewport"},w),m.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),y!=="vertical"?m.createElement(v7,{"data-radius":x,orientation:"horizontal",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(y7,{className:"rt-ScrollAreaThumb"})):null,y!=="horizontal"?m.createElement(v7,{"data-radius":x,orientation:"vertical",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(y7,{className:"rt-ScrollAreaThumb"})):null,y==="both"?m.createElement(r5e,{className:"rt-ScrollAreaCorner"}):null)))});E4.displayName="ScrollArea";const HCe=["1","2"],ZCe=["solid","soft"],$y={size:{type:"enum",className:"rt-r-size",values:HCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:ZCe,default:"solid"},...Oa,...Ef},qCe={...el,...Oa},GCe={...Oa},YCe={...Oa},WZ=e=>m.createElement(AB,{...e,modal:!0});WZ.displayName="Dialog.Root";const VZ=m.forwardRef(({children:e,...t},n)=>m.createElement(p4e,{...t,ref:n,asChild:!0},H0(e)));VZ.displayName="Dialog.Trigger";const HZ=m.forwardRef(({align:e,...t},n)=>{const{align:r,...i}=BSe,{className:o}=er({align:e},{align:r}),{className:a,forceMount:s,container:l,...c}=er(t,i);return m.createElement(FB,{container:l,forceMount:s},m.createElement($f,{asChild:!0},m.createElement(UB,{className:"rt-BaseDialogOverlay rt-DialogOverlay"},m.createElement("div",{className:"rt-BaseDialogScroll rt-DialogScroll"},m.createElement("div",{className:`rt-BaseDialogScrollPadding rt-DialogScrollPadding ${o}`},m.createElement(BB,{...c,ref:n,className:gt("rt-BaseDialogContent","rt-DialogContent",a)}))))))});HZ.displayName="Dialog.Content";const ZZ=m.forwardRef((e,t)=>m.createElement(m4e,{asChild:!0},m.createElement(MZ,{size:"5",mb:"3",trim:"start",...e,asChild:!1,ref:t})));ZZ.displayName="Dialog.Title";const KCe=m.forwardRef((e,t)=>m.createElement(g4e,{asChild:!0},m.createElement(Z,{as:"p",size:"3",...e,asChild:!1,ref:t})));KCe.displayName="Dialog.Description";const qZ=m.forwardRef(({children:e,...t},n)=>m.createElement(v4e,{...t,ref:n,asChild:!0},H0(e)));qZ.displayName="Dialog.Close";const GZ=e=>m.createElement(bV,{...e});GZ.displayName="DropdownMenu.Root";const YZ=m.forwardRef(({children:e,...t},n)=>m.createElement(xV,{...t,ref:n,asChild:!0},H0(e)));YZ.displayName="DropdownMenu.Trigger";const KZ=m.createContext({}),XZ=m.forwardRef((e,t)=>{const n=RZ(),{size:r=$y.size.default,variant:i=$y.variant.default,highContrast:o=$y.highContrast.default}=e,{className:a,children:s,color:l,container:c,forceMount:d,...f}=er(e,$y),p=l||n.accentColor;return m.createElement(s7,{container:c,forceMount:d},m.createElement($f,{asChild:!0},m.createElement(_V,{"data-accent-color":p,align:"start",sideOffset:4,collisionPadding:10,...f,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},m.createElement(KZ.Provider,{value:m.useMemo(()=>({size:r,variant:i,color:p,highContrast:o}),[r,i,p,o])},s))))))});XZ.displayName="DropdownMenu.Content";const XCe=m.forwardRef(({className:e,...t},n)=>m.createElement(m6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuLabel","rt-DropdownMenuLabel",e)}));XCe.displayName="DropdownMenu.Label";const JZ=m.forwardRef((e,t)=>{const{className:n,children:r,color:i=qCe.color.default,shortcut:o,...a}=e;return m.createElement(wV,{"data-accent-color":i,...a,ref:t,className:gt("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",n)},m.createElement(M2e,null,r),o&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},o))});JZ.displayName="DropdownMenu.Item";const JCe=m.forwardRef(({className:e,...t},n)=>m.createElement(p6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuGroup","rt-DropdownMenuGroup",e)}));JCe.displayName="DropdownMenu.Group";const QCe=m.forwardRef(({className:e,...t},n)=>m.createElement(v6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",e)}));QCe.displayName="DropdownMenu.RadioGroup";const eje=m.forwardRef((e,t)=>{const{children:n,className:r,color:i=YCe.color.default,...o}=e;return m.createElement(y6e,{...o,asChild:!1,ref:t,"data-accent-color":i,className:gt("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})))});eje.displayName="DropdownMenu.RadioItem";const tje=m.forwardRef((e,t)=>{const{children:n,className:r,shortcut:i,color:o=GCe.color.default,...a}=e;return m.createElement(g6e,{...a,asChild:!1,ref:t,"data-accent-color":o,className:gt("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon"})),i&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},i))});tje.displayName="DropdownMenu.CheckboxItem";const nje=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(x6e,{...i,asChild:!1,ref:t,className:gt("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",n)},r,m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},m.createElement(UZ,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"})))});nje.displayName="DropdownMenu.SubTrigger";const rje=m.forwardRef((e,t)=>{const{size:n,variant:r,color:i,highContrast:o}=m.useContext(KZ),{className:a,children:s,container:l,forceMount:c,...d}=er({size:n,variant:r,color:i,highContrast:o,...e},$y);return m.createElement(s7,{container:l,forceMount:c},m.createElement($f,{asChild:!0},m.createElement(_6e,{"data-accent-color":i,alignOffset:-Number(n)*4,sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},s)))))});rje.displayName="DropdownMenu.SubContent";const ije=m.forwardRef(({className:e,...t},n)=>m.createElement(b6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",e)}));ije.displayName="DropdownMenu.Separator";const nl=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-IconButton",e)}));nl.displayName="IconButton";const oje=["1","2","3","4"],aje={...el,size:{type:"enum",className:"rt-r-size",values:oje,default:"2",responsive:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"480px"},...C4},QZ=e=>m.createElement(u7,{...e});QZ.displayName="Popover.Root";const eq=m.forwardRef(({children:e,...t},n)=>m.createElement(AV,{...t,ref:n,asChild:!0},H0(e)));eq.displayName="Popover.Trigger";const tq=m.forwardRef((e,t)=>{const{className:n,forceMount:r,container:i,...o}=er(e,aje);return m.createElement(c7,{container:i,forceMount:r},m.createElement($f,{asChild:!0},m.createElement(d7,{align:"start",sideOffset:8,collisionPadding:10,...o,ref:t,className:gt("rt-PopperContent","rt-PopoverContent",n)})))});tq.displayName="Popover.Content";const sje=m.forwardRef(({children:e,...t},n)=>m.createElement(P6e,{...t,ref:n,asChild:!0},H0(e)));sje.displayName="Popover.Close";const lje=m.forwardRef(({children:e,...t},n)=>m.createElement(DV,{...t,ref:n}));lje.displayName="Popover.Anchor";const uje=["1","2","3"],cje=["classic","surface","soft"],dje={size:{type:"enum",className:"rt-r-size",values:uje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:cje,default:"surface"},...Oa,...Ef,...ep,duration:{type:"string"}},N4=m.forwardRef((e,t)=>{const{className:n,style:r,color:i,radius:o,duration:a,...s}=er(e,dje,So);return m.createElement(W6e,{"data-accent-color":i,"data-radius":o,ref:t,className:gt("rt-ProgressRoot",n),style:Cy({"--progress-duration":"value"in s?void 0:a,"--progress-value":"value"in s?s.value:void 0,"--progress-max":"max"in s?s.max:void 0},r),...s,asChild:!1},m.createElement(V6e,{className:"rt-ProgressIndicator"}))});N4.displayName="Progress";const Z0=m.forwardRef(({className:e,children:t,...n},r)=>m.createElement(xf,{...n,ref:r,className:gt("rt-reset",e)},H0(t)));Z0.displayName="Reset";const fje=["1","2","3"],V7={size:{type:"enum",className:"rt-r-size",values:fje,default:"2",responsive:!0}},hje=["classic","surface","soft","ghost"],pje={variant:{type:"enum",className:"rt-variant",values:hje,default:"surface"},...Oa,...ep,placeholder:{type:"string"}},mje=["solid","soft"],gje={variant:{type:"enum",className:"rt-variant",values:mje,default:"solid"},...Oa,...Ef},H7=m.createContext({}),Z7=e=>{const{children:t,size:n=V7.size.default,...r}=e;return m.createElement(T5e,{...r},m.createElement(H7.Provider,{value:m.useMemo(()=>({size:n}),[n])},t))};Z7.displayName="Select.Root";const q7=m.forwardRef((e,t)=>{const n=m.useContext(H7),{children:r,className:i,color:o,radius:a,placeholder:s,...l}=er({size:n==null?void 0:n.size,...e},{size:V7.size},pje,So);return m.createElement(I5e,{asChild:!0},m.createElement("button",{"data-accent-color":o,"data-radius":a,...l,ref:t,className:gt("rt-reset","rt-SelectTrigger",i)},m.createElement("span",{className:"rt-SelectTriggerInner"},m.createElement(E5e,{placeholder:s},r)),m.createElement(N5e,{asChild:!0},m.createElement(W7,{className:"rt-SelectIcon"}))))});q7.displayName="Select.Trigger";const G7=m.forwardRef((e,t)=>{const n=m.useContext(H7),{className:r,children:i,color:o,container:a,...s}=er({size:n==null?void 0:n.size,...e},{size:V7.size},gje),l=RZ(),c=o||l.accentColor;return m.createElement($5e,{container:a},m.createElement($f,{asChild:!0},m.createElement(M5e,{"data-accent-color":c,sideOffset:4,...s,asChild:!1,ref:t,className:gt({"rt-PopperContent":s.position==="popper"},"rt-SelectContent",r)},m.createElement(sH,{type:"auto",className:"rt-ScrollAreaRoot"},m.createElement(R5e,{asChild:!0,className:"rt-SelectViewport"},m.createElement(lH,{className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),m.createElement(v7,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},m.createElement(y7,{className:"rt-ScrollAreaThumb"}))))))});G7.displayName="Select.Content";const My=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(O5e,{...i,asChild:!1,ref:t,className:gt("rt-SelectItem",n)},m.createElement(D5e,{className:"rt-SelectItemIndicator"},m.createElement(I4,{className:"rt-SelectItemIndicatorIcon"})),m.createElement(z5e,null,r))});My.displayName="Select.Item";const Y7=m.forwardRef(({className:e,...t},n)=>m.createElement(L5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectGroup",e)}));Y7.displayName="Select.Group";const vje=m.forwardRef(({className:e,...t},n)=>m.createElement(P5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectLabel",e)}));vje.displayName="Select.Label";const yje=m.forwardRef(({className:e,...t},n)=>m.createElement(A5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectSeparator",e)}));yje.displayName="Select.Separator";const bje=["horizontal","vertical"],xje=["1","2","3","4"],_je={orientation:{type:"enum",className:"rt-r-orientation",values:bje,default:"horizontal",responsive:!0},size:{type:"enum",className:"rt-r-size",values:xje,default:"1",responsive:!0},color:{...Oa.color,default:"gray"},decorative:{type:"boolean",default:!0}},ps=m.forwardRef((e,t)=>{const{className:n,color:r,decorative:i,...o}=er(e,_je,So);return m.createElement("span",{"data-accent-color":r,role:i?void 0:"separator",...o,ref:t,className:gt("rt-Separator",n)})});ps.displayName="Separator";const wje=["1","2","3"],kje=["classic","surface","soft"],Sje={size:{type:"enum",className:"rt-r-size",values:wje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:kje,default:"surface"},...Oa,...Ef,...ep},nq=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,tabIndex:o,...a}=er(e,Sje,So);return m.createElement(KH,{"data-accent-color":r,"data-radius":i,ref:t,...a,asChild:!1,className:gt("rt-SliderRoot",n)},m.createElement(XH,{className:"rt-SliderTrack"},m.createElement(nSe,{className:gt("rt-SliderRange",{"rt-high-contrast":e.highContrast}),"data-inverted":a.inverted?"":void 0})),(a.value??a.defaultValue??[]).map((s,l)=>m.createElement(JH,{key:l,className:"rt-SliderThumb",...o!==void 0?{tabIndex:o}:void 0})))});nq.displayName="Slider";const Cje=["1","2","3"],jje=["classic","surface","soft"],Tje={size:{type:"enum",className:"rt-r-size",values:Cje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:jje,default:"surface"},...Oa,...Ef,...ep},K7=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,...o}=er(e,Tje,So);return m.createElement(lSe,{"data-accent-color":r,"data-radius":i,...o,asChild:!1,ref:t,className:gt("rt-reset","rt-SwitchRoot",n)},m.createElement(uSe,{className:gt("rt-SwitchThumb",{"rt-high-contrast":e.highContrast})}))});K7.displayName="Switch";const Ije=["1","2","3"],Eje=["surface","ghost"],Nje=["auto","fixed"],X7={size:{type:"enum",className:"rt-r-size",values:Ije,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:Eje,default:"ghost"},layout:{type:"enum",className:"rt-r-tl",values:Nje,responsive:!0}},$je=["start","center","end","baseline"],Mje={align:{type:"enum",className:"rt-r-va",values:$je,parseValue:Rje,responsive:!0}};function Rje(e){return{baseline:"baseline",start:"top",center:"middle",end:"bottom"}[e]}const Lje=["start","center","end"],J7={justify:{type:"enum",className:"rt-r-ta",values:Lje,parseValue:Pje,responsive:!0},...tl,...jy};function Pje(e){return{start:"left",center:"center",end:"right"}[e]}const q0=m.forwardRef((e,t)=>{const{layout:n,...r}=X7,{className:i,children:o,layout:a,...s}=er(e,r,So),l=Sy({value:a,className:X7.layout.className,propValues:X7.layout.values});return m.createElement("div",{ref:t,className:gt("rt-TableRoot",i),...s},m.createElement(E4,null,m.createElement("table",{className:gt("rt-TableRootTable",l)},o)))});q0.displayName="Table.Root";const rp=m.forwardRef(({className:e,...t},n)=>m.createElement("thead",{...t,ref:n,className:gt("rt-TableHeader",e)}));rp.displayName="Table.Header";const G0=m.forwardRef(({className:e,...t},n)=>m.createElement("tbody",{...t,ref:n,className:gt("rt-TableBody",e)}));G0.displayName="Table.Body";const la=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,Mje);return m.createElement("tr",{...r,ref:t,className:gt("rt-TableRow",n)})});la.displayName="Table.Row";const ni=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,J7);return m.createElement("td",{className:gt("rt-TableCell",n),ref:t,...r})});ni.displayName="Table.Cell";const Wi=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,J7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableColumnHeaderCell",n),scope:"col",ref:t,...r})});Wi.displayName="Table.ColumnHeaderCell";const $4=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,J7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableRowHeaderCell",n),scope:"row",ref:t,...r})});$4.displayName="Table.RowHeaderCell";const Oje=["1","2","3"],zje=["classic","surface","soft"],Dje={size:{type:"enum",className:"rt-r-size",values:Oje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:zje,default:"surface"},...Oa,...ep},Aje=["left","right"],Fje={side:{type:"enum",values:Aje},...Oa,gap:DZ.gap,px:jy.px,pl:jy.pl,pr:jy.pr},Q7=m.forwardRef((e,t)=>{const n=m.useRef(null),{children:r,className:i,color:o,radius:a,style:s,...l}=er(e,Dje,So);return m.createElement("div",{"data-accent-color":o,"data-radius":a,style:s,className:gt("rt-TextFieldRoot",i),onPointerDown:c=>{const d=c.target;if(d.closest("input, button, a"))return;const f=n.current;if(!f)return;const p=d.closest(` + .rt-TextFieldSlot[data-side='right'], + .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left']) + `)?f.value.length:0;requestAnimationFrame(()=>{try{f.setSelectionRange(p,p)}catch{}f.focus()})}},m.createElement("input",{spellCheck:"false",...l,ref:zl(n,t),className:"rt-reset rt-TextFieldInput"}),r)});Q7.displayName="TextField.Root";const M4=m.forwardRef((e,t)=>{const{className:n,color:r,side:i,...o}=er(e,Fje);return m.createElement("div",{"data-accent-color":r,"data-side":i,...o,ref:t,className:gt("rt-TextFieldSlot",n)})});M4.displayName="TextField.Slot";const Uje={content:{type:"ReactNode",required:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"360px"}},ci=m.forwardRef((e,t)=>{const{children:n,className:r,open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l,content:c,container:d,forceMount:f,...p}=er(e,Uje),v={open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l};return m.createElement(PSe,{...v},m.createElement(OSe,{asChild:!0},n),m.createElement(zSe,{container:d,forceMount:f},m.createElement($f,{asChild:!0},m.createElement(DSe,{sideOffset:4,collisionPadding:10,...p,asChild:!1,ref:t,className:gt("rt-TooltipContent",r)},m.createElement(Z,{as:"p",className:"rt-TooltipText",size:"1"},c),m.createElement(ASe,{className:"rt-TooltipArrow"})))))});ci.displayName="Tooltip";const eT=new WeakMap,Bje=new WeakMap,R4={current:[]};let tT=!1,Ry=0;const Ly=new Set,L4=new Map;function rq(e){for(const t of e){if(R4.current.includes(t))continue;R4.current.push(t),t.recompute();const n=Bje.get(t);if(n)for(const r of n){const i=eT.get(r);i!=null&&i.length&&rq(i)}}}function Wje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function Vje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function iq(e){if(Ry>0&&!L4.has(e)&&L4.set(e,e.prevState),Ly.add(e),!(Ry>0)&&!tT)try{for(tT=!0;Ly.size>0;){const t=Array.from(Ly);Ly.clear();for(const n of t){const r=L4.get(n)??n.prevState;n.prevState=r,Wje(n)}for(const n of t){const r=eT.get(n);r&&(R4.current.push(n),rq(r))}for(const n of t){const r=eT.get(n);if(r)for(const i of r)Vje(i)}}}finally{tT=!1,R4.current=[],L4.clear()}}function Py(e){Ry++;try{e()}finally{if(Ry--,Ry===0){const t=Ly.values().next().value;t&&iq(t)}}}function Hje(e){return typeof e=="function"}class Zje{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var i,o;this.listeners.add(r);const a=(o=(i=this.options)==null?void 0:i.onSubscribe)==null?void 0:o.call(i,r,this);return()=>{this.listeners.delete(r),a==null||a()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,i;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):Hje(t)?this.state=t(this.prevState):this.state=t,(i=(r=this.options)==null?void 0:r.onUpdate)==null||i.call(r),iq(this)}}const Mf="__TSR_index",oq="popstate",aq="beforeunload";function qje(e){let t=e.getLocation();const n=new Set,r=a=>{t=e.getLocation(),n.forEach(s=>s({location:t,action:a}))},i=a=>{e.notifyOnIndexChange??!0?r(a):t=e.getLocation()},o=async({task:a,navigateOpts:s,...l})=>{var f,p;if((s==null?void 0:s.ignoreBlocker)??!1){a();return}const c=((f=e.getBlockers)==null?void 0:f.call(e))??[],d=l.type==="PUSH"||l.type==="REPLACE";if(typeof document<"u"&&c.length&&d)for(const v of c){const x=P4(l.path,l.state);if(await v.blockerFn({currentLocation:t,nextLocation:x,action:l.type})){(p=e.onBlocked)==null||p.call(e);return}}a()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:a=>(n.add(a),()=>{n.delete(a)}),push:(a,s,l)=>{const c=t.state[Mf];s=sq(c+1,s),o({task:()=>{e.pushState(a,s),r({type:"PUSH"})},navigateOpts:l,type:"PUSH",path:a,state:s})},replace:(a,s,l)=>{const c=t.state[Mf];s=sq(c,s),o({task:()=>{e.replaceState(a,s),r({type:"REPLACE"})},navigateOpts:l,type:"REPLACE",path:a,state:s})},go:(a,s)=>{o({task:()=>{e.go(a),i({type:"GO",index:a})},navigateOpts:s,type:"GO"})},back:a=>{o({task:()=>{e.back((a==null?void 0:a.ignoreBlocker)??!1),i({type:"BACK"})},navigateOpts:a,type:"BACK"})},forward:a=>{o({task:()=>{e.forward((a==null?void 0:a.ignoreBlocker)??!1),i({type:"FORWARD"})},navigateOpts:a,type:"FORWARD"})},canGoBack:()=>t.state[Mf]!==0,createHref:a=>e.createHref(a),block:a=>{var l;if(!e.setBlockers)return()=>{};const s=((l=e.getBlockers)==null?void 0:l.call(e))??[];return e.setBlockers([...s,a]),()=>{var d,f;const c=((d=e.getBlockers)==null?void 0:d.call(e))??[];(f=e.setBlockers)==null||f.call(e,c.filter(p=>p!==a))}},flush:()=>{var a;return(a=e.flush)==null?void 0:a.call(e)},destroy:()=>{var a;return(a=e.destroy)==null?void 0:a.call(e)},notify:r}}function sq(e,t){t||(t={});const n=nT();return{...t,key:n,__TSR_key:n,[Mf]:e}}function Gje(e){var $,D;const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let i=[];const o=()=>i,a=M=>i=M,s=M=>M,l=()=>P4(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state);if(!(($=t.history.state)!=null&&$.__TSR_key)&&!((D=t.history.state)!=null&&D.key)){const M=nT();t.history.replaceState({[Mf]:0,key:M,__TSR_key:M},"")}let c=l(),d,f=!1,p=!1,v=!1,x=!1;const y=()=>c;let b,w;const _=()=>{b&&(E._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),E._ignoreSubscribers=!1,b=void 0,w=void 0,d=void 0)},S=(M,O,te)=>{const q=s(O);w||(d=c),c=P4(O,te),b={href:q,state:te,isPush:(b==null?void 0:b.isPush)||M==="push"},w||(w=Promise.resolve().then(()=>_()))},C=M=>{c=l(),E.notify({type:M})},j=async()=>{if(p){p=!1;return}const M=l(),O=M.state[Mf]-c.state[Mf],te=O===1,q=O===-1,P=!te&&!q||f;f=!1;const X=P?"GO":q?"BACK":"FORWARD",A=P?{type:"GO",index:O}:{type:q?"BACK":"FORWARD"};if(v)v=!1;else{const Y=o();if(typeof document<"u"&&Y.length){for(const F of Y)if(await F.blockerFn({currentLocation:c,nextLocation:M,action:X})){p=!0,t.history.go(1),E.notify(A);return}}}c=l(),E.notify(A)},T=M=>{if(x){x=!1;return}let O=!1;const te=o();if(typeof document<"u"&&te.length)for(const q of te){const P=q.enableBeforeUnload??!0;if(P===!0){O=!0;break}if(typeof P=="function"&&P()===!0){O=!0;break}}if(O)return M.preventDefault(),M.returnValue=""},E=qje({getLocation:y,getLength:()=>t.history.length,pushState:(M,O)=>S("push",M,O),replaceState:(M,O)=>S("replace",M,O),back:M=>(M&&(v=!0),x=!0,t.history.back()),forward:M=>{M&&(v=!0),x=!0,t.history.forward()},go:M=>{f=!0,t.history.go(M)},createHref:M=>s(M),flush:_,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aq,T,{capture:!0}),t.removeEventListener(oq,j)},onBlocked:()=>{d&&c!==d&&(c=d)},getBlockers:o,setBlockers:a,notifyOnIndexChange:!1});return t.addEventListener(aq,T,{capture:!0}),t.addEventListener(oq,j),t.history.pushState=function(...M){const O=n.apply(t.history,M);return E._ignoreSubscribers||C("PUSH"),O},t.history.replaceState=function(...M){const O=r.apply(t.history,M);return E._ignoreSubscribers||C("REPLACE"),O},E}function P4(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),i=nT();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Mf]:0,key:i,__TSR_key:i}}}function nT(){return(Math.random()+1).toString(36).substring(7)}function rT(e){return e[e.length-1]}function Yje(e){return typeof e=="function"}function ip(e,t){return Yje(e)?e(t):e}const Kje=Object.prototype.hasOwnProperty;function Bl(e,t){if(e===t)return e;const n=t,r=cq(e)&&cq(n);if(!r&&!(O4(e)&&O4(n)))return n;const i=r?e:lq(e);if(!i)return n;const o=r?n:lq(n);if(!o)return n;const a=i.length,s=o.length,l=r?new Array(s):{};let c=0;for(let d=0;d"u")return!0;const n=t.prototype;return!(!uq(n)||!n.hasOwnProperty("isPrototypeOf"))}function uq(e){return Object.prototype.toString.call(e)==="[object Object]"}function cq(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Rf(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,i=e.length;ri||!Rf(e[a],t[a],n)))return!1;return i===o}return!1}function Y0(e){let t,n;const r=new Promise((i,o)=>{t=i,n=o});return r.status="pending",r.resolve=i=>{r.status="resolved",r.value=i,t(i),e==null||e(i)},r.reject=i=>{r.status="rejected",n(i)},r}function Lf(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const Xje=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function dq(e,t=Xje){function n(i,o,a=0){for(let s=a;s{try{return decodeURI(s)}catch{return s}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,i=>i.toUpperCase());return n(r,t)}var Jje="Invariant failed";function Qc(e,t){if(!e)throw new Error(Jje)}const Wu=0,op=1,K0=2,X0=3;function ed(e){return iT(e.filter(t=>t!==void 0).join("/"))}function iT(e){return e.replace(/\/{2,}/g,"/")}function oT(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Pf(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function z4(e){return Pf(oT(e))}function D4(e,t){return e!=null&&e.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function Qje(e,t,n){return D4(e,n)===D4(t,n)}function e8e(e){const{type:t,value:n}=e;if(t===Wu)return n;const{prefixSegment:r,suffixSegment:i}=e;if(t===op){const o=n.substring(1);if(r&&i)return`${r}{$${o}}${i}`;if(r)return`${r}{$${o}}`;if(i)return`{$${o}}${i}`}if(t===X0){const o=n.substring(1);return r&&i?`${r}{-$${o}}${i}`:r?`${r}{-$${o}}`:i?`{-$${o}}${i}`:`{-$${o}}`}if(t===K0){if(r&&i)return`${r}{$}${i}`;if(r)return`${r}{$}`;if(i)return`{$}${i}`}return n}function t8e({base:e,to:t,trailingSlash:n="never",parseCache:r}){var s;let i=J0(e,r).slice();const o=J0(t,r);i.length>1&&((s=rT(i))==null?void 0:s.value)==="/"&&i.pop();for(let l=0,c=o.length;l1&&(rT(i).value==="/"?n==="never"&&i.pop():n==="always"&&i.push({type:Wu,value:"/"}));const a=i.map(e8e);return ed(a)}const J0=(e,t)=>{if(!e)return[];const n=t==null?void 0:t.get(e);if(n)return n;const r=s8e(e);return t==null||t.set(e,r),r},n8e=/^\$.{1,}$/,r8e=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,i8e=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,o8e=/^\$$/,a8e=/^(.*?)\{\$\}(.*)$/;function s8e(e){e=iT(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const i=r.match(a8e);if(i){const s=i[1],l=i[2];return{type:K0,value:"$",prefixSegment:s||void 0,suffixSegment:l||void 0}}const o=r.match(i8e);if(o){const s=o[1],l=o[2],c=o[3];return{type:X0,value:l,prefixSegment:s||void 0,suffixSegment:c||void 0}}const a=r.match(r8e);if(a){const s=a[1],l=a[2],c=a[3];return{type:op,value:""+l,prefixSegment:s||void 0,suffixSegment:c||void 0}}if(n8e.test(r)){const s=r.substring(1);return{type:op,value:"$"+s,prefixSegment:void 0,suffixSegment:void 0}}return o8e.test(r)?{type:K0,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:Wu,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),t}function aT({path:e,params:t,leaveParams:n,decodeCharMap:r,parseCache:i}){const o=J0(e,i);function a(d){const f=t[d],p=typeof f=="string";return d==="*"||d==="_splat"?p?encodeURI(f):f:p?l8e(f,r):f}let s=!1;const l={},c=ed(o.map(d=>{if(d.type===Wu)return d.value;if(d.type===K0){l._splat=t._splat,l["*"]=t._splat;const f=d.prefixSegment||"",p=d.suffixSegment||"";if(!t._splat)return s=!0,f||p?`${f}${p}`:void 0;const v=a("_splat");return`${f}${v}${p}`}if(d.type===op){const f=d.value.substring(1);!s&&!(f in t)&&(s=!0),l[f]=t[f];const p=d.prefixSegment||"",v=d.suffixSegment||"";if(n){const x=a(d.value);return`${p}${d.value}${x??""}${v}`}return`${p}${a(f)??"undefined"}${v}`}if(d.type===X0){const f=d.value.substring(1),p=d.prefixSegment||"",v=d.suffixSegment||"";if(!(f in t)||t[f]==null)return p||v?`${p}${v}`:void 0;if(l[f]=t[f],n){const x=a(d.value);return`${p}${d.value}${x??""}${v}`}return`${p}${a(f)??""}${v}`}return d.value}));return{usedParams:l,interpolatedPath:c,isMissingParams:s}}function l8e(e,t){let n=encodeURIComponent(e);if(t)for(const[r,i]of t)n=n.replaceAll(r,i);return n}function sT(e,t,n){const r=u8e(e,t,n);if(!(t.to&&!r))return r??{}}function u8e(e,{to:t,fuzzy:n,caseSensitive:r},i){const o=t,a=J0(e.startsWith("/")?e:`/${e}`,i),s=J0(o.startsWith("/")?o:`/${o}`,i),l={};return c8e(a,s,l,n,r)?l:void 0}function c8e(e,t,n,r,i){var s,l,c;let o=0,a=0;for(;o_.value)));x&&w.startsWith(x)&&(w=w.slice(x.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),v=w}else v=decodeURI(ed(p.map(x=>x.value)));return n["*"]=v,n._splat=v,!0}if(f.type===Wu){if(f.value==="/"&&!(d!=null&&d.value)){a++;continue}if(d){if(i){if(f.value!==d.value)return!1}else if(f.value.toLowerCase()!==d.value.toLowerCase())return!1;o++,a++;continue}else return!1}if(f.type===op){if(!d||d.value==="/")return!1;let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const x=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if(x&&!b.startsWith(x)||y&&!b.endsWith(y))return!1;let w=b;x&&w.startsWith(x)&&(w=w.slice(x.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}else p=decodeURIComponent(d.value),v=!0;v&&(n[f.value.substring(1)]=p,o++),a++;continue}if(f.type===X0){if(!d){a++;continue}if(d.value==="/"){a++;continue}let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const x=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if((!x||b.startsWith(x))&&(!y||b.endsWith(y))){let w=b;x&&w.startsWith(x)&&(w=w.slice(x.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}}else{let x=!0;for(let y=a+1;y=t.length)return n["**"]=ed(e.slice(o).map(p=>p.value)),!!r&&((l=t[t.length-1])==null?void 0:l.value)!=="/";if(a=e.length){for(let p=a;p{var d;if(n.isRoot||!n.path)return;const i=oT(n.fullPath);let o=J0(i),a=0;for(;o.length>a+1&&((d=o[a])==null?void 0:d.value)==="/";)a++;a>0&&(o=o.slice(a));let s=0,l=!1;const c=o.map((f,p)=>{if(f.value==="/")return d8e;if(f.type===Wu)return f8e;let v;f.type===op?v=h8e:f.type===X0?(v=p8e,s++):v=m8e;for(let x=p+1;x{const i=Math.min(n.scores.length,r.scores.length);for(let o=0;or.parsed[o].value?1:-1;return n.index-r.index}).map((n,r)=>(n.child.rank=r,n.child))}function _8e({routeTree:e,initRoute:t}){const n={},r={},i=a=>{a.forEach((s,l)=>{t==null||t(s,l);const c=n[s.id];if(Qc(!c,`Duplicate routes found with id: ${String(s.id)}`),n[s.id]=s,!s.isRoot&&s.path){const f=Pf(s.fullPath);(!r[f]||s.fullPath.endsWith("/"))&&(r[f]=s)}const d=s.children;d!=null&&d.length&&i(d)})};i([e]);const o=x8e(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:o}}function Wl(e){return!!(e!=null&&e.isNotFound)}function w8e(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const A4="tsr-scroll-restoration-v1_3",k8e=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function S8e(){const e=w8e();if(!e)return null;const t=e.getItem(A4);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=ip(r,n)||n,e.setItem(A4,JSON.stringify(n)))}}const F4=S8e(),lT=e=>e.state.__TSR_key||e.href;function C8e(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let U4=!1;function mq({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:i,location:o}){var c,d;let a;try{a=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const s=t||((c=window.history.state)==null?void 0:c.__TSR_key),l=a[s];U4=!0;e:{if(r&&l&&Object.keys(l).length>0){for(const v in l){const x=l[v];if(v==="window")window.scrollTo({top:x.scrollY,left:x.scrollX,behavior:n});else if(v){const y=document.querySelector(v);y&&(y.scrollLeft=x.scrollX,y.scrollTop=x.scrollY)}}break e}const f=(o??window.location).hash.split("#",2)[1];if(f){const v=((d=window.history.state)==null?void 0:d.__hashScrollIntoViewOptions)??!0;if(v){const x=document.getElementById(f);x&&x.scrollIntoView(v)}break e}const p={top:0,left:0,behavior:n};if(window.scrollTo(p),i)for(const v of i){if(v==="window")continue;const x=typeof v=="function"?v():document.querySelector(v);x&&x.scrollTo(p)}}U4=!1}function j8e(e,t){if(!F4&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!F4))return;e.isScrollRestorationSetup=!0,U4=!1;const n=e.options.getScrollRestorationKey||lT;window.history.scrollRestoration="manual";const r=i=>{if(U4||!e.isScrollRestoring)return;let o="";if(i.target===document||i.target===window)o="window";else{const s=i.target.getAttribute("data-scroll-restoration-id");s?o=`[data-scroll-restoration-id="${s}"]`:o=C8e(i.target)}const a=n(e.state.location);F4.set(s=>{const l=s[a]||(s[a]={}),c=l[o]||(l[o]={});if(o==="window")c.scrollX=window.scrollX||0,c.scrollY=window.scrollY||0;else if(o){const d=document.querySelector(o);d&&(c.scrollX=d.scrollLeft||0,c.scrollY=d.scrollTop||0)}return s})};typeof document<"u"&&document.addEventListener("scroll",k8e(r,100),!0),e.subscribe("onRendered",i=>{const o=n(i.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(mq({storageKey:A4,key:o,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&F4.set(a=>(a[o]||(a[o]={}),a)))})}function T8e(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function I8e(e,t=String){const n=new URLSearchParams;for(const r in e){const i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}function uT(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function E8e(e){const t=new URLSearchParams(e),n={};for(const[r,i]of t.entries()){const o=n[r];o==null?n[r]=uT(i):Array.isArray(o)?o.push(uT(i)):n[r]=[o,uT(i)]}return n}const N8e=M8e(JSON.parse),$8e=R8e(JSON.stringify,JSON.parse);function M8e(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=E8e(t);for(const r in n){const i=n[r];if(typeof i=="string")try{n[r]=e(i)}catch{}}return n}}function R8e(e,t){const n=typeof t=="function";function r(i){if(typeof i=="object"&&i!==null)try{return e(i)}catch{}else if(n&&typeof i=="string")try{return t(i),e(i)}catch{}return i}return i=>{const o=I8e(i,r);return o?`?${o}`:""}}const ms="__root__";function cT(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function Vu(e){return e instanceof Response&&!!e.options}function L8e(e){const t=new Map;let n,r;const i=o=>{o.next&&(o.prev?(o.prev.next=o.next,o.next.prev=o.prev,o.next=void 0,r&&(r.next=o,o.prev=r)):(o.next.prev=void 0,n=o.next,o.next=void 0,r&&(o.prev=r,r.next=o)),r=o)};return{get(o){const a=t.get(o);if(a)return i(a),a.value},set(o,a){if(t.size>=e&&n){const l=n;t.delete(l.key),l.next&&(n=l.next,l.next.prev=void 0),l===r&&(r=void 0)}const s=t.get(o);if(s)s.value=a,i(s);else{const l={key:o,value:a,prev:r};r&&(r.next=l),r=l,n||(n=l),t.set(o,l)}}}}const B4=e=>{var t;if(!e.rendered)return e.rendered=!0,(t=e.onReady)==null?void 0:t.call(e)},W4=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),gq=(e,t)=>{var i;const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&((i=e.router.options)!=null&&i.defaultNotFoundComponent)&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),Qc(n.options.notFoundComponent);const r=e.matches.find(o=>o.routeId===n.id);Qc(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,o=>({...o,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,gq(e,t))},Of=(e,t,n)=>{var r,i,o;if(!(!Vu(n)&&!Wl(n))){if(Vu(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){(r=t._nonReactive.beforeLoadPromise)==null||r.resolve(),(i=t._nonReactive.loaderPromise)==null||i.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const a=Vu(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,s=>({...s,status:a,isFetching:!1,error:n})),Wl(n)&&!n.routeId&&(n.routeId=t.routeId),(o=t._nonReactive.loadPromise)==null||o.resolve()}throw Vu(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(gq(e,n),n)}},vq=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Oy=(e,t,n,r)=>{var s,l;const{id:i,routeId:o}=e.matches[t],a=e.router.looseRoutesById[o];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??(e.firstBadMatchIndex=t),Of(e,e.router.getMatch(i),n);try{(l=(s=a.options).onError)==null||l.call(s,n)}catch(c){n=c,Of(e,e.router.getMatch(i),n)}e.updateMatch(i,c=>{var d,f;return(d=c._nonReactive.beforeLoadPromise)==null||d.resolve(),c._nonReactive.beforeLoadPromise=void 0,(f=c._nonReactive.loadPromise)==null||f.resolve(),{...c,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}})},P8e=(e,t,n,r)=>{var v;const i=e.router.getMatch(t),o=(v=e.matches[n-1])==null?void 0:v.id,a=o?e.router.getMatch(o):void 0;if(e.router.isShell()){i.ssr=r.id===ms;return}if((a==null?void 0:a.ssr)===!1){i.ssr=!1;return}const s=x=>x===!0&&(a==null?void 0:a.ssr)==="data-only"?"data-only":x,l=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){i.ssr=s(l);return}if(typeof r.options.ssr!="function"){i.ssr=s(r.options.ssr);return}const{search:c,params:d}=i,f={search:V4(c,i.searchError),params:V4(d,i.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:V4(x.search,x.searchError),params:V4(x.params,x.paramsError),ssr:x.ssr}))},p=r.options.ssr(f);if(Lf(p))return p.then(x=>{i.ssr=s(x??l)});i.ssr=s(p??l)},yq=(e,t,n,r)=>{var o;if(r._nonReactive.pendingTimeout!==void 0)return;const i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!e.router.isServer&&!W4(e,t)&&(n.options.loader||n.options.beforeLoad||kq(n))&&typeof i=="number"&&i!==1/0&&(n.options.pendingComponent??((o=e.router.options)==null?void 0:o.defaultPendingComponent))){const a=setTimeout(()=>{B4(e)},i);r._nonReactive.pendingTimeout=a}},O8e=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;yq(e,t,n,r);const i=()=>{const o=e.router.getMatch(t);o.preload&&(o.status==="redirected"||o.status==="notFound")&&Of(e,o,o.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},z8e=(e,t,n,r)=>{var j,T;const i=e.router.getMatch(t),o=i._nonReactive.loadPromise;i._nonReactive.loadPromise=Y0(()=>{o==null||o.resolve()});const{paramsError:a,searchError:s}=i;a&&Oy(e,n,a,"PARSE_PARAMS"),s&&Oy(e,n,s,"VALIDATE_SEARCH"),yq(e,t,r,i);const l=new AbortController,c=(j=e.matches[n-1])==null?void 0:j.id,d={...((T=c?e.router.getMatch(c):void 0)==null?void 0:T.context)??e.router.options.context??void 0,...i.__routeContext};let f=!1;const p=()=>{f||(f=!0,e.updateMatch(t,E=>({...E,isFetching:"beforeLoad",fetchCount:E.fetchCount+1,abortController:l,context:d})))},v=()=>{var E;(E=i._nonReactive.beforeLoadPromise)==null||E.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,$=>({...$,isFetching:!1}))};if(!r.options.beforeLoad){Py(()=>{p(),v()});return}i._nonReactive.beforeLoadPromise=Y0();const{search:x,params:y,cause:b}=i,w=W4(e,t),_={search:x,abortController:l,params:y,preload:w,context:d,location:e.location,navigate:E=>e.router.navigate({...E,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:w?"preload":b,matches:e.matches,...e.router.options.additionalContext},S=E=>{if(E===void 0){Py(()=>{p(),v()});return}(Vu(E)||Wl(E))&&(p(),Oy(e,n,E,"BEFORE_LOAD")),Py(()=>{p(),e.updateMatch(t,$=>({...$,__beforeLoadContext:E,context:{...$.context,...E}})),v()})};let C;try{if(C=r.options.beforeLoad(_),Lf(C))return p(),C.catch(E=>{Oy(e,n,E,"BEFORE_LOAD")}).then(S)}catch(E){p(),Oy(e,n,E,"BEFORE_LOAD")}S(C)},D8e=(e,t)=>{const{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],o=()=>{if(e.router.isServer){const l=P8e(e,n,t,i);if(Lf(l))return l.then(s)}return s()},a=()=>z8e(e,n,t,i),s=()=>{if(vq(e,n))return;const l=O8e(e,n,i);return Lf(l)?l.then(a):a()};return o()},zy=(e,t,n)=>{var o,a,s,l,c,d;const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const i={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([(a=(o=n.options).head)==null?void 0:a.call(o,i),(l=(s=n.options).scripts)==null?void 0:l.call(s,i),(d=(c=n.options).headers)==null?void 0:d.call(c,i)]).then(([f,p,v])=>{const x=f==null?void 0:f.meta,y=f==null?void 0:f.links,b=f==null?void 0:f.scripts,w=f==null?void 0:f.styles;return{meta:x,links:y,headScripts:b,headers:v,scripts:p,styles:w}})},bq=(e,t,n,r)=>{const i=e.matchPromises[n-1],{params:o,loaderDeps:a,abortController:s,cause:l}=e.router.getMatch(t);let c=e.router.options.context??{};for(let f=0;f<=n;f++){const p=e.matches[f];if(!p)continue;const v=e.router.getMatch(p.id);v&&(c={...c,...v.__routeContext??{},...v.__beforeLoadContext??{}})}const d=W4(e,t);return{params:o,deps:a,preload:!!d,parentMatchPromise:i,abortController:s,context:c,location:e.location,navigate:f=>e.router.navigate({...f,_fromLocation:e.location}),cause:d?"preload":l,route:r,...e.router.options.additionalContext}},xq=async(e,t,n,r)=>{var i,o,a,s,l,c;try{const d=e.router.getMatch(t);try{(!e.router.isServer||d.ssr===!0)&&wq(r);const f=(o=(i=r.options).loader)==null?void 0:o.call(i,bq(e,t,n,r)),p=r.options.loader&&Lf(f);if((p||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||d._nonReactive.minPendingPromise)&&e.updateMatch(t,b=>({...b,isFetching:"loader"})),r.options.loader){const b=p?await f:f;Of(e,e.router.getMatch(t),b),b!==void 0&&e.updateMatch(t,w=>({...w,loaderData:b}))}r._lazyPromise&&await r._lazyPromise;const v=zy(e,t,r),x=v?await v:void 0,y=d._nonReactive.minPendingPromise;y&&await y,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,b=>({...b,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...x}))}catch(f){let p=f;const v=d._nonReactive.minPendingPromise;v&&await v,Wl(f)&&await((s=(a=r.options.notFoundComponent)==null?void 0:a.preload)==null?void 0:s.call(a)),Of(e,e.router.getMatch(t),f);try{(c=(l=r.options).onError)==null||c.call(l,f)}catch(b){p=b,Of(e,e.router.getMatch(t),b)}const x=zy(e,t,r),y=x?await x:void 0;e.updateMatch(t,b=>({...b,error:p,status:"error",isFetching:!1,...y}))}}catch(d){const f=e.router.getMatch(t);if(f){const p=zy(e,t,r);if(p){const v=await p;e.updateMatch(t,x=>({...x,...v}))}f._nonReactive.loaderPromise=void 0}Of(e,f,d)}},A8e=async(e,t)=>{var c,d;const{id:n,routeId:r}=e.matches[t];let i=!1,o=!1;const a=e.router.looseRoutesById[r];if(vq(e,n)){if(e.router.isServer){const f=zy(e,n,a);if(f){const p=await f;e.updateMatch(n,v=>({...v,...p}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const p=e.router.getMatch(n),v=p._nonReactive.error||p.error;v&&Of(e,p,v)}else{const p=Date.now()-f.updatedAt,v=W4(e,n),x=v?a.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:a.options.staleTime??e.router.options.defaultStaleTime??0,y=a.options.shouldReload,b=typeof y=="function"?y(bq(e,n,t,a)):y,w=!!v&&!e.router.state.matches.some(j=>j.id===n),_=e.router.getMatch(n);_._nonReactive.loaderPromise=Y0(),w!==_.preload&&e.updateMatch(n,j=>({...j,preload:w}));const{status:S,invalid:C}=_;if(i=S==="success"&&(C||(b??p>x)),!(v&&a.options.preload===!1))if(i&&!e.sync)o=!0,(async()=>{var j,T;try{await xq(e,n,t,a);const E=e.router.getMatch(n);(j=E._nonReactive.loaderPromise)==null||j.resolve(),(T=E._nonReactive.loadPromise)==null||T.resolve(),E._nonReactive.loaderPromise=void 0}catch(E){Vu(E)&&await e.router.navigate(E.options)}})();else if(S!=="success"||i&&e.sync)await xq(e,n,t,a);else{const j=zy(e,n,a);if(j){const T=await j;e.updateMatch(n,E=>({...E,...T}))}}}}const s=e.router.getMatch(n);o||((c=s._nonReactive.loaderPromise)==null||c.resolve(),(d=s._nonReactive.loadPromise)==null||d.resolve()),clearTimeout(s._nonReactive.pendingTimeout),s._nonReactive.pendingTimeout=void 0,o||(s._nonReactive.loaderPromise=void 0),s._nonReactive.dehydrated=void 0;const l=o?s.isFetching:!1;return l!==s.isFetching||s.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:l,invalid:!1})),e.router.getMatch(n)):s};async function _q(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&B4(t);try{for(let i=0;i{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{var r;const n=[];for(const i of Sq){const o=(r=e.options[i])==null?void 0:r.preload;o&&n.push(o())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function V4(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function kq(e){var t;for(const n of Sq)if((t=e.options[n])!=null&&t.preload)return!0;return!1}const Sq=["component","errorComponent","pendingComponent","notFoundComponent"];function F8e(e){return{input:({url:t})=>{for(const n of e)t=Cq(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=jq(e[n],t);return t}}}function U8e(e){const t=z4(e.basepath),n=`/${t}`,r=`${n}/`,i=e.caseSensitive?n:n.toLowerCase(),o=e.caseSensitive?r:r.toLowerCase();return{input:({url:a})=>{const s=e.caseSensitive?a.pathname:a.pathname.toLowerCase();return s===i?a.pathname="/":s.startsWith(o)&&(a.pathname=a.pathname.slice(n.length)),a},output:({url:a})=>(a.pathname=ed(["/",t,a.pathname]),a)}}function Cq(e,t){var r;const n=(r=e==null?void 0:e.input)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function jq(e,t){var r;const n=(r=e==null?void 0:e.output)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function ap(e){const t=e.resolvedLocation,n=e.location,r=(t==null?void 0:t.pathname)!==n.pathname,i=(t==null?void 0:t.href)!==n.href,o=(t==null?void 0:t.hash)!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:i,hashChanged:o}}class B8e{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{var d;n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,i=this.basepath??(r==null?void 0:r.basepath)??"/",o=this.basepath===void 0,a=r==null?void 0:r.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(f=>[encodeURIComponent(f),f])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=Gje())),this.origin=this.options.origin,this.origin||(!this.isServer&&(window!=null&&window.origin)&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new Zje(V8e(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(f=>!["redirected"].includes(f.status))}}}),j8e(this));let s=!1;const l=this.options.basepath??"/",c=this.options.rewrite;if(o||i!==l||a!==c){this.basepath=l;const f=[];z4(l)!==""&&f.push(U8e({basepath:l})),c&&f.push(c),this.rewrite=f.length===0?void 0:f.length===1?f[0]:F8e(f),this.history&&this.updateLatestLocation(),s=!0}s&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof((d=window.CSS)==null?void 0:d.supports)=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:i}=_8e({routeTree:this.routeTree,initRoute:(a,s)=>{a.init({originalIndex:s})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=i;const o=this.options.notFoundRoute;o&&(o.init({originalIndex:99999999999}),this.routesById[o.id]=o)},this.subscribe=(n,r)=>{const i={eventType:n,fn:r};return this.subscribers.add(i),()=>{this.subscribers.delete(i)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const i=({href:l,state:c})=>{const d=new URL(l,this.origin),f=Cq(this.rewrite,d),p=this.options.parseSearch(f.search),v=this.options.stringifySearch(p);f.search=v;const x=f.href.replace(f.origin,""),{pathname:y,hash:b}=f;return{href:x,publicHref:l,url:f.href,pathname:dq(y),searchStr:v,search:Bl(r==null?void 0:r.search,p),hash:b.split("#").reverse()[0]??"",state:Bl(r==null?void 0:r.state,c)}},o=i(n),{__tempLocation:a,__tempKey:s}=o.state;if(a&&(!s||s===this.tempLocationKey)){const l=i(a);return l.state.key=o.state.key,l.state.__TSR_key=o.state.__TSR_key,delete l.state.__tempLocation,{...l,maskedLocation:o}}return o},this.resolvePathWithBase=(n,r)=>t8e({base:n,to:iT(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,i)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},i):this.matchRoutesInternal(n,r),this.parsePathnameCache=L8e(1e3),this.getMatchedRoutes=(n,r)=>H8e({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(i=>i.status==="pending"),r=this.state.matches.filter(i=>i.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(i=>{this.cancelMatch(i.id)})},this.buildLocation=n=>{const r=(o={})=>{var M,O;const a=o._fromLocation||this.pendingBuiltLocation||this.latestLocation,s=this.matchRoutes(a,{_buildLocation:!0}),l=rT(s);o.from;const c=o.unsafeRelative==="path"?a.pathname:o.from??l.fullPath,d=this.resolvePathWithBase(c,"."),f=l.search,p={...l.params},v=o.to?this.resolvePathWithBase(d,`${o.to}`):this.resolvePathWithBase(d,"."),x=o.params===!1||o.params===null?{}:(o.params??!0)===!0?p:Object.assign(p,ip(o.params,p)),y=aT({path:v,params:x,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(y,void 0,{_buildLocation:!0}).map(te=>this.looseRoutesById[te.routeId]);if(Object.keys(x).length>0)for(const te of b){const q=((M=te.options.params)==null?void 0:M.stringify)??te.options.stringifyParams;q&&Object.assign(x,q(x))}const w=dq(aT({path:v,params:x,leaveParams:n.leaveParams,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let _=f;if(n._includeValidateSearch&&((O=this.options.search)!=null&&O.strict)){const te={};b.forEach(q=>{if(q.options.validateSearch)try{Object.assign(te,dT(q.options.validateSearch,{...te,..._}))}catch{}}),_=te}_=Z8e({search:_,dest:o,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),_=Bl(f,_);const S=this.options.stringifySearch(_),C=o.hash===!0?a.hash:o.hash?ip(o.hash,a.hash):void 0,j=C?`#${C}`:"";let T=o.state===!0?a.state:o.state?ip(o.state,a.state):{};T=Bl(a.state,T);const E=`${w}${S}${j}`,$=new URL(E,this.origin),D=jq(this.rewrite,$);return{publicHref:D.pathname+D.search+D.hash,href:E,url:D.href,pathname:w,search:_,searchStr:S,state:T,hash:C??"",unmaskOnReload:o.unmaskOnReload}},i=(o={},a)=>{var c;const s=r(o);let l=a?r(a):void 0;if(!l){let d={};const f=(c=this.options.routeMasks)==null?void 0:c.find(p=>{const v=sT(s.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return v?(d=v,!0):!1});if(f){const{from:p,...v}=f;a={from:n.from,...v,params:d},l=r(a)}}return l&&(s.maskedLocation=l),s};return n.mask?i(n,{from:n.from,...n.mask}):i(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...i})=>{const o=()=>{const l=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];l.forEach(d=>{i.state[d]=this.latestLocation.state[d]});const c=Rf(i.state,this.latestLocation.state);return l.forEach(d=>{delete i.state[d]}),c},a=Pf(this.latestLocation.href)===Pf(i.href),s=this.commitLocationPromise;if(this.commitLocationPromise=Y0(()=>{s==null||s.resolve()}),a&&o())this.load();else{let{maskedLocation:l,hashScrollIntoView:c,...d}=i;l&&(d={...l,state:{...l.state,__tempKey:void 0,__tempLocation:{...d,search:d.searchStr,state:{...d.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(d.unmaskOnReload??this.options.unmaskOnReload??!1)&&(d.state.__tempKey=this.tempLocationKey)),d.state.__hashScrollIntoViewOptions=c??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[i.replace?"replace":"push"](d.publicHref,d.state,{ignoreBlocker:r})}return this.resetNextScroll=i.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:i,viewTransition:o,ignoreBlocker:a,href:s,...l}={})=>{if(s){const f=this.history.location.state.__TSR_index,p=P4(s,{__TSR_index:n?f:f+1});l.to=p.pathname,l.search=this.options.parseSearch(p.search),l.hash=p.hash.slice(1)}const c=this.buildLocation({...l,_includeValidateSearch:!0});this.pendingBuiltLocation=c;const d=this.commitLocation({...c,viewTransition:o,replace:n,resetScroll:r,hashScrollIntoView:i,ignoreBlocker:a});return Promise.resolve().then(()=>{this.pendingBuiltLocation===c&&(this.pendingBuiltLocation=void 0)}),d},this.navigate=({to:n,reloadDocument:r,href:i,...o})=>{if(!r&&i)try{new URL(`${i}`),r=!0}catch{}return r?(i||(i=this.buildLocation({to:n,...o}).url),o.replace?window.location.replace(i):window.location.href=i,Promise.resolve()):this.buildAndCommitLocation({...o,href:i,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),i=o=>{try{return encodeURI(decodeURI(o))}catch{return o}};if(z4(i(this.latestLocation.href))!==z4(i(r.href))){let o=r.url;throw this.origin&&o.startsWith(this.origin)&&(o=o.replace(this.origin,"")||"/"),cT({href:o})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(i=>!n.some(o=>o.id===i.id))}))},this.load=async n=>{let r,i,o;for(o=new Promise(s=>{this.startTransition(async()=>{var l;try{this.beforeLoad();const c=this.latestLocation,d=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...ap({resolvedLocation:d,location:c})}),this.emit({type:"onBeforeLoad",...ap({resolvedLocation:d,location:c})}),await _q({router:this,sync:n==null?void 0:n.sync,matches:this.state.pendingMatches,location:c,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let f=[],p=[],v=[];Py(()=>{this.__store.setState(x=>{const y=x.matches,b=x.pendingMatches||x.matches;return f=y.filter(w=>!b.some(_=>_.id===w.id)),p=b.filter(w=>!y.some(_=>_.id===w.id)),v=b.filter(w=>y.some(_=>_.id===w.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:b,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...f.filter(w=>w.status!=="error")]}}),this.clearExpiredCache()}),[[f,"onLeave"],[p,"onEnter"],[v,"onStay"]].forEach(([x,y])=>{x.forEach(b=>{var w,_;(_=(w=this.looseRoutesById[b.routeId].options)[y])==null||_.call(w,b)})})})})}})}catch(c){Vu(c)?(r=c,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wl(c)&&(i=c),this.__store.setState(d=>({...d,statusCode:r?r.status:i?404:d.matches.some(f=>f.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===o&&((l=this.commitLocationPromise)==null||l.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),s()})}),this.latestLoadPromise=o,await o;this.latestLoadPromise&&o!==this.latestLoadPromise;)await this.latestLoadPromise;let a;this.hasNotFoundMatch()?a=404:this.__store.state.matches.some(s=>s.status==="error")&&(a=500),a!==void 0&&this.__store.setState(s=>({...s,statusCode:a}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let i;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const o=this.latestLocation,a=this.state.resolvedLocation,s=typeof r.types=="function"?r.types(ap({resolvedLocation:a,location:o})):r.types;if(s===!1){n();return}i={update:n,types:s}}else i=n;document.startViewTransition(i)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{var o;const i=(o=this.state.pendingMatches)!=null&&o.some(a=>a.id===n)?"pendingMatches":this.state.matches.some(a=>a.id===n)?"matches":this.state.cachedMatches.some(a=>a.id===n)?"cachedMatches":"";i&&this.__store.setState(a=>{var s;return{...a,[i]:(s=a[i])==null?void 0:s.map(l=>l.id===n?r(l):l)}})})},this.getMatch=n=>{var i;const r=o=>o.id===n;return this.state.cachedMatches.find(r)??((i=this.state.pendingMatches)==null?void 0:i.find(r))??this.state.matches.find(r)},this.invalidate=n=>{const r=i=>{var o;return((o=n==null?void 0:n.filter)==null?void 0:o.call(n,i))??!0?{...i,invalid:!0,...n!=null&&n.forcePending||i.status==="error"?{status:"pending",error:void 0}:void 0}:i};return this.__store.setState(i=>{var o;return{...i,matches:i.matches.map(r),cachedMatches:i.cachedMatches.map(r),pendingMatches:(o=i.pendingMatches)==null?void 0:o.map(r)}}),this.shouldViewTransition=!1,this.load({sync:n==null?void 0:n.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let i=r.url;this.origin&&i.startsWith(this.origin)&&(i=i.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",i)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n==null?void 0:n.filter;r!==void 0?this.__store.setState(i=>({...i,cachedMatches:i.cachedMatches.filter(o=>!r(o))})):this.__store.setState(i=>({...i,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const i=this.looseRoutesById[r.routeId];if(!i.options.loader)return!0;const o=(r.preload?i.options.preloadGcTime??this.options.defaultPreloadGcTime:i.options.gcTime??this.options.defaultGcTime)??5*60*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=o};this.clearCache({filter:n})},this.loadRouteChunk=wq,this.preloadRoute=async n=>{const r=this.buildLocation(n);let i=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const o=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(s=>s.id)),a=new Set([...o,...this.state.cachedMatches.map(s=>s.id)]);Py(()=>{i.forEach(s=>{a.has(s.id)||this.__store.setState(l=>({...l,cachedMatches:[...l.cachedMatches,s]}))})});try{return i=await _q({router:this,matches:i,location:r,preload:!0,updateMatch:(s,l)=>{o.has(s)?i=i.map(c=>c.id===s?l(c):c):this.updateMatch(s,l)}}),i}catch(s){if(Vu(s))return s.options.reloadDocument?void 0:await this.preloadRoute({...s.options,_fromLocation:r});Wl(s)||console.error(s);return}},this.matchRoute=(n,r)=>{const i={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},o=this.buildLocation(i);if(r!=null&&r.pending&&this.state.status!=="pending")return!1;const a=((r==null?void 0:r.pending)===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,s=sT(a.pathname,{...r,to:o.pathname},this.parsePathnameCache);return!s||n.params&&!Rf(s,n.params,{partial:!0})?!1:s&&((r==null?void 0:r.includeSearch)??!0)?Rf(a.search,o.search,{partial:!0})?s:!1:s},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??$8e,parseSearch:t.parseSearch??N8e}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){var d;const{foundRoute:r,matchedRoutes:i,routeParams:o}=this.getMatchedRoutes(t.pathname,(d=n==null?void 0:n.dest)==null?void 0:d.to);let a=!1;(r?r.path!=="/"&&o["**"]:Pf(t.pathname))&&(this.options.notFoundRoute?i.push(this.options.notFoundRoute):a=!0);const s=(()=>{if(a){if(this.options.notFoundMode!=="root")for(let f=i.length-1;f>=0;f--){const p=i[f];if(p.children)return p.id}return ms}})(),l=[],c=f=>f!=null&&f.id?f.context??this.options.context??void 0:this.options.context??void 0;return i.forEach((f,p)=>{var q,P,X;const v=l[p-1],[x,y,b]=(()=>{const A=(v==null?void 0:v.search)??t.search,Y=(v==null?void 0:v._strictSearch)??void 0;try{const F=dT(f.options.validateSearch,{...A})??void 0;return[{...A,...F},{...Y,...F},void 0]}catch(F){let H=F;if(F instanceof H4||(H=new H4(F.message,{cause:F})),n==null?void 0:n.throwOnError)throw H;return[A,{},H]}})(),w=((P=(q=f.options).loaderDeps)==null?void 0:P.call(q,{search:x}))??"",_=w?JSON.stringify(w):"",{interpolatedPath:S,usedParams:C}=aT({path:f.fullPath,params:o,decodeCharMap:this.pathParamsDecodeCharMap}),j=f.id+S+_,T=this.getMatch(j),E=this.state.matches.find(A=>A.routeId===f.id),$=(T==null?void 0:T._strictParams)??C;let D;if(!T){const A=((X=f.options.params)==null?void 0:X.parse)??f.options.parseParams;if(A)try{Object.assign($,A($))}catch(Y){if(D=new W8e(Y.message,{cause:Y}),n==null?void 0:n.throwOnError)throw D}}Object.assign(o,$);const M=E?"stay":"enter";let O;if(T)O={...T,cause:M,params:E?Bl(E.params,o):o,_strictParams:$,search:Bl(E?E.search:T.search,x),_strictSearch:y};else{const A=f.options.loader||f.options.beforeLoad||f.lazyFn||kq(f)?"pending":"success";O={id:j,index:p,routeId:f.id,params:E?Bl(E.params,o):o,_strictParams:$,pathname:S,updatedAt:Date.now(),search:E?Bl(E.search,x):x,_strictSearch:y,searchError:void 0,status:A,isFetching:!1,error:void 0,paramsError:D,__routeContext:void 0,_nonReactive:{loadPromise:Y0()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:M,loaderDeps:E?Bl(E.loaderDeps,w):w,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:f.options.staticData||{},fullPath:f.fullPath}}n!=null&&n.preload||(O.globalNotFound=s===f.id),O.searchError=b;const te=c(v);O.context={...te,...O.__routeContext,...O.__beforeLoadContext},l.push(O)}),l.forEach((f,p)=>{const v=this.looseRoutesById[f.routeId];if(!this.getMatch(f.id)&&(n==null?void 0:n._buildLocation)!==!0){const x=l[p-1],y=c(x);if(v.options.context){const b={deps:f.loaderDeps,params:f.params,context:y??{},location:t,navigate:w=>this.navigate({...w,_fromLocation:t}),buildLocation:this.buildLocation,cause:f.cause,abortController:f.abortController,preload:!!f.preload,matches:l};f.__routeContext=v.options.context(b)??void 0}f.context={...y,...f.__routeContext,...f.__beforeLoadContext}}}),l}}class H4 extends Error{}class W8e extends Error{}function V8e(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function dT(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new H4("Async validation not supported");if(n.issues)throw new H4(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function H8e({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:i,flatRoutes:o,parseCache:a}){let s={};const l=Pf(e),c=v=>{var x;return sT(l,{to:v.fullPath,caseSensitive:((x=v.options)==null?void 0:x.caseSensitive)??n,fuzzy:!0},a)};let d=t!==void 0?r[t]:void 0;if(d)s=c(d);else{let v;for(const x of o){const y=c(x);if(y)if(x.path!=="/"&&y["**"])v||(v={foundRoute:x,routeParams:y});else{d=x,s=y;break}}!d&&v&&(d=v.foundRoute,s=v.routeParams)}let f=d||i[ms];const p=[f];for(;f.parentRoute;)f=f.parentRoute,p.push(f);return p.reverse(),{matchedRoutes:p,routeParams:s,foundRoute:d}}function Z8e({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const i=n.reduce((s,l)=>{var d;const c=[];if("search"in l.options)(d=l.options.search)!=null&&d.middlewares&&c.push(...l.options.search.middlewares);else if(l.options.preSearchFilters||l.options.postSearchFilters){const f=({search:p,next:v})=>{let x=p;"preSearchFilters"in l.options&&l.options.preSearchFilters&&(x=l.options.preSearchFilters.reduce((b,w)=>w(b),p));const y=v(x);return"postSearchFilters"in l.options&&l.options.postSearchFilters?l.options.postSearchFilters.reduce((b,w)=>w(b),y):y};c.push(f)}if(r&&l.options.validateSearch){const f=({search:p,next:v})=>{const x=v(p);try{return{...x,...dT(l.options.validateSearch,x)??void 0}}catch{return x}};c.push(f)}return s.concat(c)},[])??[],o=({search:s})=>t.search?t.search===!0?s:ip(t.search,s):{};i.push(o);const a=(s,l)=>{if(s>=i.length)return l;const c=i[s];return c({search:l,next:d=>a(s+1,d)})};return a(0,e)}const q8e="Error preloading route! \u261D\uFE0F";class Tq{constructor(t){if(this.init=n=>{var c,d;this.originalIndex=n.originalIndex;const r=this.options,i=!(r!=null&&r.path)&&!(r!=null&&r.id);this.parentRoute=(d=(c=this.options).getParentRoute)==null?void 0:d.call(c),i?this._path=ms:this.parentRoute||Qc(!1);let o=i?ms:r==null?void 0:r.path;o&&o!=="/"&&(o=oT(o));const a=(r==null?void 0:r.id)||o;let s=i?ms:ed([this.parentRoute.id===ms?"":this.parentRoute.id,a]);o===ms&&(o="/"),s!==ms&&(s=ed(["/",s]));const l=s===ms?"/":ed([this.parentRoute.fullPath,o]);this._path=o,this._id=s,this._fullPath=l,this._to=l},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!(t!=null&&t.getParentRoute),(t==null?void 0:t.id)&&(t==null?void 0:t.path))throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class G8e extends Tq{constructor(t){super(t)}}function Y8e(e){return({search:t,next:n})=>{const r=n(t);return e===!0?{...t,...r}:(e.forEach(i=>{i in r||(r[i]=t[i])}),r)}}function K8e(e){return({search:t,next:n})=>{if(e===!0)return{};const r=n(t);return Array.isArray(e)?e.forEach(i=>{delete r[i]}):Object.entries(e).forEach(([i,o])=>{Rf(r[i],o)&&delete r[i]}),r}}function fT(e){const t=e.errorComponent??Z4;return u.jsx(X8e,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?m.createElement(t,{error:n,reset:r}):e.children})}class X8e extends m.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Z4({error:e}){const[t,n]=m.useState(!1);return u.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[u.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),u.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),u.jsx("div",{style:{height:".25rem"}}),t?u.jsx("div",{children:u.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?u.jsx("code",{children:e.message}):null})}):null]})}function J8e({children:e,fallback:t=null}){return Q8e()?u.jsx(Pe.Fragment,{children:e}):u.jsx(Pe.Fragment,{children:t})}function Q8e(){return Pe.useSyncExternalStore(e9e,()=>!0,()=>!1)}function e9e(){return()=>{}}var Iq={exports:{}},Eq={};/** +* @license React +* use-sync-external-store-shim/with-selector.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var q4=m,t9e=T4e;function n9e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var r9e=typeof Object.is=="function"?Object.is:n9e,i9e=t9e.useSyncExternalStore,o9e=q4.useRef,a9e=q4.useEffect,s9e=q4.useMemo,l9e=q4.useDebugValue;Eq.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var o=o9e(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=s9e(function(){function l(v){if(!c){if(c=!0,d=v,v=r(v),i!==void 0&&a.hasValue){var x=a.value;if(i(x,v))return f=x}return f=v}if(x=f,r9e(d,v))return x;var y=r(v);return i!==void 0&&i(x,y)?(d=v,x):(d=v,f=y)}var c=!1,d,f,p=n===void 0?null:n;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,n,r,i]);var s=i9e(e,o[0],o[1]);return a9e(function(){a.hasValue=!0,a.value=s},[s]),l9e(s),s},Iq.exports=Eq;var u9e=Iq.exports;function c9e(e,t=r=>r,n={}){const r=n.equal??d9e;return u9e.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function d9e(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!t.has(r)||!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=Nq(e);if(n.length!==Nq(t).length)return!1;for(let r=0;r"u"?hT:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=hT,hT)}function gs(e){const t=m.useContext($q());return e==null||e.warn,t}function ua(e){const t=gs({warn:(e==null?void 0:e.router)===void 0}),n=(e==null?void 0:e.router)||t,r=m.useRef(void 0);return c9e(n.__store,i=>{if(e!=null&&e.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const o=Bl(r.current,e.select(i));return r.current=o,o}return e.select(i)}return i})}const G4=m.createContext(void 0),f9e=m.createContext(void 0);function Hu(e){const t=m.useContext(e.from?f9e:G4);return ua({select:n=>{const r=n.matches.find(i=>e.from?e.from===i.routeId:i.id===t);if(Qc(!((e.shouldThrow??!0)&&!r),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),r!==void 0)return e.select?e.select(r):r},structuralSharing:e.structuralSharing})}function pT(e){return Hu({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function mT(e){const{select:t,...n}=e;return Hu({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function gT(e){return Hu({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function vT(e){return Hu({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Q0(e){const t=gs();return m.useCallback(n=>t.navigate({...n,from:n.from??(e==null?void 0:e.from)}),[e==null?void 0:e.from,t])}const Y4=typeof window<"u"?m.useLayoutEffect:m.useEffect;function yT(e){const t=m.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function h9e(e,t,n={},r={}){m.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const i=new IntersectionObserver(([o])=>{t(o)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function p9e(e){const t=m.useRef(null);return m.useImperativeHandle(e,()=>t.current,[]),t}function m9e(e,t){const n=gs(),[r,i]=m.useState(!1),o=m.useRef(!1),a=p9e(t),{activeProps:s,inactiveProps:l,activeOptions:c,to:d,preload:f,preloadDelay:p,hashScrollIntoView:v,replace:x,startTransition:y,resetScroll:b,viewTransition:w,children:_,target:S,disabled:C,style:j,className:T,onClick:E,onFocus:$,onMouseEnter:D,onMouseLeave:M,onTouchStart:O,ignoreBlocker:te,params:q,search:P,hash:X,state:A,mask:Y,reloadDocument:F,unsafeRelative:H,from:ee,_fromLocation:ce,...B}=e,ae=ua({select:Qe=>Qe.location.search,structuralSharing:!0}),je=e.from,me=m.useMemo(()=>({...e,from:je}),[n,ae,je,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ke=m.useMemo(()=>n.buildLocation({...me}),[n,me]),he=m.useMemo(()=>{if(C)return;let Qe=ke.maskedLocation?ke.maskedLocation.url:ke.url,Ke=!1;return n.origin&&(Qe.startsWith(n.origin)?Qe=n.history.createHref(Qe.replace(n.origin,""))||"/":Ke=!0),{href:Qe,external:Ke}},[C,ke.maskedLocation,ke.url,n.origin,n.history]),ue=m.useMemo(()=>{if(he!=null&&he.external)return he.href;try{return new URL(d),d}catch{}},[d,he]),re=e.reloadDocument||ue?!1:f??n.options.defaultPreload,ge=p??n.options.defaultPreloadDelay??0,$e=ua({select:Qe=>{if(ue)return!1;if(c!=null&&c.exact){if(!Qje(Qe.location.pathname,ke.pathname,n.basepath))return!1}else{const Ke=D4(Qe.location.pathname,n.basepath),De=D4(ke.pathname,n.basepath);if(!(Ke.startsWith(De)&&(Ke.length===De.length||Ke[De.length]==="/")))return!1}return((c==null?void 0:c.includeSearch)??!0)&&!Rf(Qe.location.search,ke.search,{partial:!(c!=null&&c.exact),ignoreUndefined:!(c!=null&&c.explicitUndefined)})?!1:c!=null&&c.includeHash?Qe.location.hash===ke.hash:!0}}),pe=m.useCallback(()=>{n.preloadRoute({...me}).catch(Qe=>{console.warn(Qe),console.warn(q8e)})},[n,me]),ye=m.useCallback(Qe=>{Qe!=null&&Qe.isIntersecting&&pe()},[pe]);h9e(a,ye,x9e,{disabled:!!C||re!=="viewport"}),m.useEffect(()=>{o.current||!C&&re==="render"&&(pe(),o.current=!0)},[C,pe,re]);const Se=Qe=>{const Ke=Qe.currentTarget.getAttribute("target"),De=S!==void 0?S:Ke;if(!C&&!_9e(Qe)&&!Qe.defaultPrevented&&(!De||De==="_self")&&Qe.button===0){Qe.preventDefault(),Kc.flushSync(()=>{i(!0)});const Dt=n.subscribe("onResolved",()=>{Dt(),i(!1)});n.navigate({...me,replace:x,resetScroll:b,hashScrollIntoView:v,startTransition:y,viewTransition:w,ignoreBlocker:te})}};if(ue)return{...B,ref:a,href:ue,..._&&{children:_},...S&&{target:S},...C&&{disabled:C},...j&&{style:j},...T&&{className:T},...E&&{onClick:E},...$&&{onFocus:$},...D&&{onMouseEnter:D},...M&&{onMouseLeave:M},...O&&{onTouchStart:O}};const Ce=Qe=>{C||re&&pe()},Ue=Ce,Ge=Qe=>{if(!(C||!re))if(!ge)pe();else{const Ke=Qe.target;if(Dy.has(Ke))return;const De=setTimeout(()=>{Dy.delete(Ke),pe()},ge);Dy.set(Ke,De)}},_t=Qe=>{if(C||!re||!ge)return;const Ke=Qe.target,De=Dy.get(Ke);De&&(clearTimeout(De),Dy.delete(Ke))},St=$e?ip(s,{})??g9e:bT,ut=$e?bT:ip(l,{})??bT,ct=[T,St.className,ut.className].filter(Boolean).join(" "),bt=(j||St.style||ut.style)&&{...j,...St.style,...ut.style};return{...B,...St,...ut,href:he==null?void 0:he.href,ref:a,onClick:Ay([E,Se]),onFocus:Ay([$,Ce]),onMouseEnter:Ay([D,Ge]),onMouseLeave:Ay([M,_t]),onTouchStart:Ay([O,Ue]),disabled:!!C,target:S,...bt&&{style:bt},...ct&&{className:ct},...C&&v9e,...$e&&y9e,...r&&b9e}}const bT={},g9e={className:"active"},v9e={role:"link","aria-disabled":!0},y9e={"data-status":"active","aria-current":"page"},b9e={"data-transitioning":"transitioning"},Dy=new WeakMap,x9e={rootMargin:"100px"},Ay=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},sp=m.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:i,ref:o,...a}=m9e(r,t),s=typeof r.children=="function"?r.children({isActive:a["data-status"]==="active"}):r.children;return n===void 0&&delete a.disabled,m.createElement(n||"a",{...a,ref:o},s)});function _9e(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}let w9e=class extends Tq{constructor(e){super(e),this.useMatch=t=>Hu({select:t==null?void 0:t.select,from:this.id,structuralSharing:t==null?void 0:t.structuralSharing}),this.useRouteContext=t=>Hu({...t,from:this.id,select:n=>t!=null&&t.select?t.select(n.context):n.context}),this.useSearch=t=>vT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useParams=t=>gT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useLoaderDeps=t=>mT({...t,from:this.id}),this.useLoaderData=t=>pT({...t,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Pe.forwardRef((t,n)=>u.jsx(sp,{ref:n,from:this.fullPath,...t})),this.$$typeof=Symbol.for("react.memo")}};function k9e(e){return new w9e(e)}class S9e extends G8e{constructor(t){super(t),this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({...n,from:this.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>vT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useParams=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useLoaderDeps=n=>mT({...n,from:this.id}),this.useLoaderData=n=>pT({...n,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Pe.forwardRef((n,r)=>u.jsx(sp,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function C9e(e){return new S9e(e)}function lp(e){return typeof e=="object"?new Mq(e,{silent:!0}).createRoute(e):new Mq(e,{silent:!0}).createRoute}class Mq{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const i=k9e(r);return i.isRoot=!1,i},this.silent=n==null?void 0:n.silent}}class Rq{constructor(t){this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.options.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({from:this.options.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>vT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useParams=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>mT({...n,from:this.options.id}),this.useLoaderData=n=>pT({...n,from:this.options.id}),this.useNavigate=()=>{const n=gs();return Q0({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function Lq(e){return typeof e=="object"?new Rq(e):t=>new Rq({id:e,...t})}function j9e(){const e=gs(),t=m.useRef({router:e,mounted:!1}),[n,r]=m.useState(!1),{hasPendingMatches:i,isLoading:o}=ua({select:f=>({isLoading:f.isLoading,hasPendingMatches:f.matches.some(p=>p.status==="pending")}),structuralSharing:!0}),a=yT(o),s=o||n||i,l=yT(s),c=o||i,d=yT(c);return e.startTransition=f=>{r(!0),m.startTransition(()=>{f(),r(!1)})},m.useEffect(()=>{const f=e.history.subscribe(e.load),p=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Pf(e.latestLocation.href)!==Pf(p.href)&&e.commitLocation({...p,replace:!0}),()=>{f()}},[e,e.history]),Y4(()=>{typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(f){console.error(f)}})())},[e]),Y4(()=>{a&&!o&&e.emit({type:"onLoad",...ap(e.state)})},[a,e,o]),Y4(()=>{d&&!c&&e.emit({type:"onBeforeRouteMount",...ap(e.state)})},[c,d,e]),Y4(()=>{l&&!s&&(e.emit({type:"onResolved",...ap(e.state)}),e.__store.setState(f=>({...f,status:"idle",resolvedLocation:f.location})),T8e(e))},[s,l,e]),null}function T9e(e){const t=ua({select:n=>`not-found-${n.location.pathname}-${n.status}`});return u.jsx(fT,{getResetKey:()=>t,onCatch:(n,r)=>{var i;if(Wl(n))(i=e.onCatch)==null||i.call(e,n,r);else throw n},errorComponent:({error:n})=>{var r;if(Wl(n))return(r=e.fallback)==null?void 0:r.call(e,n);throw n},children:e.children})}function I9e(){return u.jsx("p",{children:"Not Found"})}function eg(e){return u.jsx(u.Fragment,{children:e.children})}function Pq(e,t,n){return t.options.notFoundComponent?u.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?u.jsx(e.options.defaultNotFoundComponent,{data:n}):u.jsx(I9e,{})}function E9e({children:e}){var n;const t=gs();return t.isServer?u.jsx("script",{nonce:(n=t.options.ssr)==null?void 0:n.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` +`)+";$_TSR.c()"}}):null}function N9e(){const e=gs();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const t=(e.options.getScrollRestorationKey||lT)(e.latestLocation),n=t!==lT(e.latestLocation)?t:void 0,r={storageKey:A4,shouldScrollRestoration:!0};return n&&(r.key=n),u.jsx(E9e,{children:`(${mq.toString()})(${JSON.stringify(r)})`})}const Oq=m.memo(function({matchId:e}){var b,w;const t=gs(),n=ua({select:_=>{const S=_.matches.find(C=>C.id===e);return Qc(S),{routeId:S.routeId,ssr:S.ssr,_displayPending:S._displayPending}},structuralSharing:!0}),r=t.routesById[n.routeId],i=r.options.pendingComponent??t.options.defaultPendingComponent,o=i?u.jsx(i,{}):null,a=r.options.errorComponent??t.options.defaultErrorComponent,s=r.options.onCatch??t.options.defaultOnCatch,l=r.isRoot?r.options.notFoundComponent??((b=t.options.notFoundRoute)==null?void 0:b.options.component):r.options.notFoundComponent,c=n.ssr===!1||n.ssr==="data-only",d=(!r.isRoot||r.options.wrapInSuspense||c)&&(r.options.wrapInSuspense??i??(((w=r.options.errorComponent)==null?void 0:w.preload)||c))?m.Suspense:eg,f=a?fT:eg,p=l?T9e:eg,v=ua({select:_=>_.loadedAt}),x=ua({select:_=>{var C;const S=_.matches.findIndex(j=>j.id===e);return(C=_.matches[S-1])==null?void 0:C.routeId}}),y=r.isRoot?r.options.shellComponent??eg:eg;return u.jsxs(y,{children:[u.jsx(G4.Provider,{value:e,children:u.jsx(d,{fallback:o,children:u.jsx(f,{getResetKey:()=>v,errorComponent:a||Z4,onCatch:(_,S)=>{if(Wl(_))throw _;s==null||s(_,S)},children:u.jsx(p,{fallback:_=>{if(!l||_.routeId&&_.routeId!==n.routeId||!_.routeId&&!r.isRoot)throw _;return m.createElement(l,_)},children:c||n._displayPending?u.jsx(J8e,{fallback:o,children:u.jsx(zq,{matchId:e})}):u.jsx(zq,{matchId:e})})})})}),x===ms&&t.options.scrollRestoration?u.jsxs(u.Fragment,{children:[u.jsx($9e,{}),u.jsx(N9e,{})]}):null]})});function $9e(){const e=gs(),t=m.useRef(void 0);return u.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...ap(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const zq=m.memo(function({matchId:e}){var s,l,c,d;const t=gs(),{match:n,key:r,routeId:i}=ua({select:f=>{var y;const p=f.matches.find(b=>b.id===e),v=p.routeId,x=(y=t.routesById[v].options.remountDeps??t.options.defaultRemountDeps)==null?void 0:y({routeId:v,loaderDeps:p.loaderDeps,params:p._strictParams,search:p._strictSearch});return{key:x?JSON.stringify(x):void 0,routeId:v,match:{id:p.id,status:p.status,error:p.error,_forcePending:p._forcePending,_displayPending:p._displayPending}}},structuralSharing:!0}),o=t.routesById[i],a=m.useMemo(()=>{const f=o.options.component??t.options.defaultComponent;return f?u.jsx(f,{},r):u.jsx(Dq,{})},[r,o.options.component,t.options.defaultComponent]);if(n._displayPending)throw(s=t.getMatch(n.id))==null?void 0:s._nonReactive.displayPendingPromise;if(n._forcePending)throw(l=t.getMatch(n.id))==null?void 0:l._nonReactive.minPendingPromise;if(n.status==="pending"){const f=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(f){const p=t.getMatch(n.id);if(p&&!p._nonReactive.minPendingPromise&&!t.isServer){const v=Y0();p._nonReactive.minPendingPromise=v,setTimeout(()=>{v.resolve(),p._nonReactive.minPendingPromise=void 0},f)}}throw(c=t.getMatch(n.id))==null?void 0:c._nonReactive.loadPromise}if(n.status==="notFound")return Qc(Wl(n.error)),Pq(t,o,n.error);if(n.status==="redirected")throw Qc(Vu(n.error)),(d=t.getMatch(n.id))==null?void 0:d._nonReactive.loadPromise;if(n.status==="error"){if(t.isServer){const f=(o.options.errorComponent??t.options.defaultErrorComponent)||Z4;return u.jsx(f,{error:n.error,reset:void 0,info:{componentStack:""}})}throw n.error}return a}),Dq=m.memo(function(){const e=gs(),t=m.useContext(G4),n=ua({select:l=>{var c;return(c=l.matches.find(d=>d.id===t))==null?void 0:c.routeId}}),r=e.routesById[n],i=ua({select:l=>{const c=l.matches.find(d=>d.id===t);return Qc(c),c.globalNotFound}}),o=ua({select:l=>{var f;const c=l.matches,d=c.findIndex(p=>p.id===t);return(f=c[d+1])==null?void 0:f.id}}),a=e.options.defaultPendingComponent?u.jsx(e.options.defaultPendingComponent,{}):null;if(i)return Pq(e,r,void 0);if(!o)return null;const s=u.jsx(Oq,{matchId:o});return n===ms?u.jsx(m.Suspense,{fallback:a,children:s}):s});function M9e(){const e=gs(),t=e.routesById[ms].options.pendingComponent??e.options.defaultPendingComponent,n=t?u.jsx(t,{}):null,r=e.isServer||typeof document<"u"&&e.ssr?eg:m.Suspense,i=u.jsxs(r,{fallback:n,children:[!e.isServer&&u.jsx(j9e,{}),u.jsx(R9e,{})]});return e.options.InnerWrap?u.jsx(e.options.InnerWrap,{children:i}):i}function R9e(){const e=gs(),t=ua({select:i=>{var o;return(o=i.matches[0])==null?void 0:o.id}}),n=ua({select:i=>i.loadedAt}),r=t?u.jsx(Oq,{matchId:t}):null;return u.jsx(G4.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:u.jsx(fT,{getResetKey:()=>n,errorComponent:Z4,onCatch:i=>{i.message||i.toString()},children:r})})}const L9e=e=>new P9e(e);class P9e extends B8e{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=lp,globalThis.createLazyFileRoute=Lq):typeof window<"u"&&(window.createFileRoute=lp,window.createLazyFileRoute=Lq);function O9e({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=$q(),i=u.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?u.jsx(e.options.Wrap,{children:i}):i}function z9e({router:e,...t}){return u.jsx(O9e,{router:e,...t,children:u.jsx(M9e,{})})}function D9e(e){return ua({select:t=>t.location})}const tg={};function Aq(e){return"init"in e}function xT(e){return!!e.write}function Fq(e){return"v"in e||"e"in e}function K4(e){if("e"in e)throw e.e;if((tg?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}const X4=new WeakMap;function Uq(e){var t;return J4(e)&&!!((t=X4.get(e))!=null&&t[0])}function A9e(e){const t=X4.get(e);t!=null&&t[0]&&(t[0]=!1,t[1].forEach(n=>n()))}function _T(e,t){let n=X4.get(e);if(!n){n=[!0,new Set],X4.set(e,n);const r=()=>{n[0]=!1};e.then(r,r)}n[1].add(t)}function J4(e){return typeof(e==null?void 0:e.then)=="function"}function Bq(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function Wq(e,t,n){var r;const i=new Set;for(const o of((r=n.get(e))==null?void 0:r.t)||[])n.has(o)&&i.add(o);for(const o of t.p)i.add(o);return i}const F9e=(e,t,...n)=>t.read(...n),U9e=(e,t,...n)=>t.write(...n),B9e=(e,t)=>{var n;return(n=t.unstable_onInit)==null?void 0:n.call(t,e)},W9e=(e,t,n)=>{var r;return(r=t.onMount)==null?void 0:r.call(t,n)},V9e=(e,t)=>{const n=Fo(e),r=n[0],i=n[9];if((tg?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let o=r.get(t);return o||(o={d:new Map,p:new Set,n:0},r.set(t,o),i==null||i(e,t)),o},H9e=e=>{const t=Fo(e),n=t[1],r=t[3],i=t[4],o=t[5],a=t[6],s=t[13],l=[],c=d=>{try{d()}catch(f){l.push(f)}};do{a.f&&c(a.f);const d=new Set,f=d.add.bind(d);r.forEach(p=>{var v;return(v=n.get(p))==null?void 0:v.l.forEach(f)}),r.clear(),o.forEach(f),o.clear(),i.forEach(f),i.clear(),d.forEach(c),r.size&&s(e)}while(r.size||o.size||i.size);if(l.length)throw new AggregateError(l)},Z9e=e=>{const t=Fo(e),n=t[1],r=t[2],i=t[3],o=t[11],a=t[14],s=t[17],l=[],c=new WeakSet,d=new WeakSet,f=Array.from(i);for(;f.length;){const p=f[f.length-1],v=o(e,p);if(d.has(p)){f.pop();continue}if(c.has(p)){if(r.get(p)===v.n)l.push([p,v]);else if((tg?"production":void 0)!=="production"&&r.has(p))throw new Error("[Bug] invalidated atom exists");d.add(p),f.pop();continue}c.add(p);for(const x of Wq(p,v,n))c.has(x)||f.push(x)}for(let p=l.length-1;p>=0;--p){const[v,x]=l[p];let y=!1;for(const b of x.d.keys())if(b!==v&&i.has(b)){y=!0;break}y&&(a(e,v),s(e,v)),r.delete(v)}},q9e=(e,t)=>{var n,r;const i=Fo(e),o=i[1],a=i[2],s=i[3],l=i[6],c=i[7],d=i[11],f=i[12],p=i[13],v=i[14],x=i[16],y=i[17],b=d(e,t);if(Fq(b)&&(o.has(t)&&a.get(t)!==b.n||Array.from(b.d).every(([$,D])=>v(e,$).n===D)))return b;b.d.clear();let w=!0;function _(){o.has(t)&&(y(e,t),p(e),f(e))}function S($){var D;if($===t){const O=d(e,$);if(!Fq(O))if(Aq($))Q4(e,$,$.init);else throw new Error("no atom init");return K4(O)}const M=v(e,$);try{return K4(M)}finally{b.d.set($,M.n),Uq(b.v)&&Bq(t,b.v,M),(D=o.get($))==null||D.t.add(t),w||_()}}let C,j;const T={get signal(){return C||(C=new AbortController),C.signal},get setSelf(){return(tg?"production":void 0)!=="production"&&!xT(t)&&console.warn("setSelf function cannot be used with read-only atom"),!j&&xT(t)&&(j=(...$)=>{if((tg?"production":void 0)!=="production"&&w&&console.warn("setSelf function cannot be called in sync"),!w)try{return x(e,t,...$)}finally{p(e),f(e)}}),j}},E=b.n;try{const $=c(e,t,S,T);return Q4(e,t,$),J4($)&&(_T($,()=>C==null?void 0:C.abort()),$.then(_,_)),(n=l.r)==null||n.call(l,t),b}catch($){return delete b.v,b.e=$,++b.n,b}finally{w=!1,E!==b.n&&a.get(t)===E&&(a.set(t,b.n),s.add(t),(r=l.c)==null||r.call(l,t))}},G9e=(e,t)=>{const n=Fo(e),r=n[1],i=n[2],o=n[11],a=[t];for(;a.length;){const s=a.pop(),l=o(e,s);for(const c of Wq(s,l,r)){const d=o(e,c);i.set(c,d.n),a.push(c)}}},Vq=(e,t,...n)=>{const r=Fo(e),i=r[3],o=r[6],a=r[8],s=r[11],l=r[12],c=r[13],d=r[14],f=r[15],p=r[17];let v=!0;const x=b=>K4(d(e,b)),y=(b,...w)=>{var _;const S=s(e,b);try{if(b===t){if(!Aq(b))throw new Error("atom not writable");const C=S.n,j=w[0];Q4(e,b,j),p(e,b),C!==S.n&&(i.add(b),(_=o.c)==null||_.call(o,b),f(e,b));return}else return Vq(e,b,...w)}finally{v||(c(e),l(e))}};try{return a(e,t,x,y,...n)}finally{v=!1}},Y9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[3],a=r[6],s=r[11],l=r[15],c=r[18],d=r[19],f=s(e,t),p=i.get(t);if(p&&!Uq(f.v)){for(const[v,x]of f.d)if(!p.d.has(v)){const y=s(e,v);c(e,v).t.add(t),p.d.add(v),x!==y.n&&(o.add(v),(n=a.c)==null||n.call(a,v),l(e,v))}for(const v of p.d||[])if(!f.d.has(v)){p.d.delete(v);const x=d(e,v);x==null||x.t.delete(t)}}},Hq=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[4],a=r[6],s=r[10],l=r[11],c=r[12],d=r[13],f=r[14],p=r[16],v=l(e,t);let x=i.get(t);if(!x){f(e,t);for(const y of v.d.keys())Hq(e,y).t.add(t);if(x={l:new Set,d:new Set(v.d.keys()),t:new Set},i.set(t,x),(n=a.m)==null||n.call(a,t),xT(t)){const y=()=>{let b=!0;const w=(..._)=>{try{return p(e,t,..._)}finally{b||(d(e),c(e))}};try{const _=s(e,t,w);_&&(x.u=()=>{b=!0;try{_()}finally{b=!1}})}finally{b=!1}};o.add(y)}}return x},K9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[5],a=r[6],s=r[11],l=r[19],c=s(e,t);let d=i.get(t);if(d&&!d.l.size&&!Array.from(d.t).some(f=>{var p;return(p=i.get(f))==null?void 0:p.d.has(t)})){d.u&&o.add(d.u),d=void 0,i.delete(t),(n=a.u)==null||n.call(a,t);for(const f of c.d.keys()){const p=l(e,f);p==null||p.t.delete(t)}return}return d},Q4=(e,t,n)=>{const r=Fo(e)[11],i=r(e,t),o="v"in i,a=i.v;if(J4(n))for(const s of i.d.keys())Bq(t,n,r(e,s));i.v=n,delete i.e,(!o||!Object.is(a,i.v))&&(++i.n,J4(a)&&A9e(a))},X9e=(e,t)=>{const n=Fo(e)[14];return K4(n(e,t))},J9e=(e,t,...n)=>{const r=Fo(e),i=r[12],o=r[13],a=r[16];try{return a(e,t,...n)}finally{o(e),i(e)}},Q9e=(e,t,n)=>{const r=Fo(e),i=r[12],o=r[18],a=r[19],s=o(e,t).l;return s.add(n),i(e),()=>{s.delete(n),a(e,t),i(e)}},Zq=new WeakMap,Fo=e=>{const t=Zq.get(e);if((tg?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function e7e(...e){const t={get(r){const i=Fo(t)[21];return i(t,r)},set(r,...i){const o=Fo(t)[22];return o(t,r,...i)},sub(r,i){const o=Fo(t)[23];return o(t,r,i)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},F9e,U9e,B9e,W9e,V9e,H9e,Z9e,q9e,G9e,Vq,Y9e,Hq,K9e,Q4,X9e,J9e,Q9e,void 0].map((r,i)=>e[i]||r);return Zq.set(t,Object.freeze(n)),t}const qq={};let t7e=0;function fe(e,t){const n=`atom${++t7e}`,r={toString(){return(qq?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=n7e,r.write=r7e),t&&(r.write=t),r}function n7e(e){return e(this)}function r7e(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function i7e(){return e7e()}let Fy;function ca(){return Fy||(Fy=i7e(),(qq?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Fy),globalThis.__JOTAI_DEFAULT_STORE__!==Fy&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Fy}const o7e={},a7e=m.createContext(void 0);function Gq(e){return m.useContext(a7e)||ca()}const wT=e=>typeof(e==null?void 0:e.then)=="function",kT=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},s7e=Pe.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(kT(e),e)}),ST=new WeakMap,Yq=(e,t)=>{let n=ST.get(e);return n||(n=new Promise((r,i)=>{let o=e;const a=c=>d=>{o===c&&r(d)},s=c=>d=>{o===c&&i(d)},l=()=>{try{const c=t();wT(c)?(ST.set(c,n),o=c,c.then(a(c),s(c)),_T(c,l)):r(c)}catch(c){i(c)}};e.then(a(e),s(e)),_T(e,l)}),ST.set(e,n)),n};function J(e,t){const{delay:n,unstable_promiseStatus:r=!Pe.use}={},i=Gq(),[[o,a,s],l]=m.useReducer(d=>{const f=i.get(e);return Object.is(d[0],f)&&d[1]===i&&d[2]===e?d:[f,i,e]},void 0,()=>[i.get(e),i,e]);let c=o;if((a!==i||s!==e)&&(l(),c=i.get(e)),m.useEffect(()=>{const d=i.sub(e,()=>{if(r)try{const f=i.get(e);wT(f)&&kT(Yq(f,()=>i.get(e)))}catch{}if(typeof n=="number"){setTimeout(l,n);return}l()});return l(),d},[i,e,n,r]),m.useDebugValue(c),wT(c)){const d=Yq(c,()=>i.get(e));return r&&kT(d),s7e(d)}return c}function Ee(e,t){const n=Gq();return m.useCallback((...r)=>{if((o7e?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return n.set(e,...r)},[n,e])}function Vl(e,t){return[J(e),Ee(e)]}var Kq=Symbol.for("immer-nothing"),Xq=Symbol.for("immer-draftable"),Vn=Symbol.for("immer-state");function rl(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Uy=Object.getPrototypeOf;function ng(e){return!!e&&!!e[Vn]}function td(e){var t;return e?Qq(e)||Array.isArray(e)||!!e[Xq]||!!((t=e.constructor)!=null&&t[Xq])||Wy(e)||t3(e):!1}var l7e=Object.prototype.constructor.toString(),Jq=new WeakMap;function Qq(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let r=Jq.get(n);return r===void 0&&(r=Function.toString.call(n),Jq.set(n,r)),r===l7e}function By(e,t,n=!0){e3(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,i)=>t(i,r,e))}function e3(e){const t=e[Vn];return t?t.type_:Array.isArray(e)?1:Wy(e)?2:t3(e)?3:0}function CT(e,t){return e3(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function eG(e,t,n){const r=e3(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function u7e(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Wy(e){return e instanceof Map}function t3(e){return e instanceof Set}function io(e){return e.copy_||e.base_}function jT(e,t){if(Wy(e))return new Map(e);if(t3(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=Qq(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[Vn];let i=Reflect.ownKeys(r);for(let o=0;o1&&Object.defineProperties(e,{set:n3,add:n3,clear:n3,delete:n3}),Object.freeze(e),t&&Object.values(e).forEach(n=>TT(n,!0))),e}function c7e(){rl(2)}var n3={value:c7e};function r3(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var IT={};function up(e){const t=IT[e];return t||rl(0,e),t}function d7e(e,t){IT[e]||(IT[e]=t)}var Vy;function i3(){return Vy}function f7e(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function tG(e,t){t&&(up("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function ET(e){NT(e),e.drafts_.forEach(h7e),e.drafts_=null}function NT(e){e===Vy&&(Vy=e.parent_)}function nG(e){return Vy=f7e(Vy,e)}function h7e(e){const t=e[Vn];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rG(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[Vn].modified_&&(ET(t),rl(4)),td(e)&&(e=o3(t,e),t.parent_||a3(t,e)),t.patches_&&up("Patches").generateReplacementPatches_(n[Vn].base_,e,t.patches_,t.inversePatches_)):e=o3(t,n,[]),ET(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Kq?e:void 0}function o3(e,t,n){if(r3(t))return t;const r=e.immer_.shouldUseStrictIteration(),i=t[Vn];if(!i)return By(t,(o,a)=>iG(e,i,t,o,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return a3(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const o=i.copy_;let a=o,s=!1;i.type_===3&&(a=new Set(o),o.clear(),s=!0),By(a,(l,c)=>iG(e,i,o,l,c,n,s),r),a3(e,o,!1),n&&e.patches_&&up("Patches").generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function iG(e,t,n,r,i,o,a){if(i==null||typeof i!="object"&&!a)return;const s=r3(i);if(!(s&&!a)){if(ng(i)){const l=o&&t&&t.type_!==3&&!CT(t.assigned_,r)?o.concat(r):void 0,c=o3(e,i,l);if(eG(n,r,c),ng(c))e.canAutoFreeze_=!1;else return}else a&&n.add(i);if(td(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;o3(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&(Wy(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&a3(e,i)}}}function a3(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&TT(t,n)}function p7e(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:i3(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,o=$T;n&&(i=[r],o=Hy);const{revoke:a,proxy:s}=Proxy.revocable(i,o);return r.draft_=s,r.revoke_=a,s}var $T={get(e,t){if(t===Vn)return e;const n=io(e);if(!CT(n,t))return m7e(e,n,t);const r=n[t];return e.finalized_||!td(r)?r:r===MT(e.base_,t)?(RT(e),e.copy_[t]=Zy(r,e)):r},has(e,t){return t in io(e)},ownKeys(e){return Reflect.ownKeys(io(e))},set(e,t,n){const r=oG(io(e),t);if(r!=null&&r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=MT(io(e),t),o=i==null?void 0:i[Vn];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(u7e(n,i)&&(n!==void 0||CT(e.base_,t)))return!0;RT(e),nd(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return MT(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,RT(e),nd(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=io(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){rl(11)},getPrototypeOf(e){return Uy(e.base_)},setPrototypeOf(){rl(12)}},Hy={};By($T,(e,t)=>{Hy[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),Hy.deleteProperty=function(e,t){return Hy.set.call(this,e,t,void 0)},Hy.set=function(e,t,n){return $T.set.call(this,e[0],t,n,e[0])};function MT(e,t){const n=e[Vn];return(n?io(n):e)[t]}function m7e(e,t,n){var i;const r=oG(t,n);return r?"value"in r?r.value:(i=r.get)==null?void 0:i.call(e.draft_):void 0}function oG(e,t){if(!(t in e))return;let n=Uy(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Uy(n)}}function nd(e){e.modified_||(e.modified_=!0,e.parent_&&nd(e.parent_))}function RT(e){e.copy_||(e.copy_=jT(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var g7e=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const o=n;n=t;const a=this;return function(s=o,...l){return a.produce(s,c=>n.call(this,c,...l))}}typeof n!="function"&&rl(6),r!==void 0&&typeof r!="function"&&rl(7);let i;if(td(t)){const o=nG(this),a=Zy(t,void 0);let s=!0;try{i=n(a),s=!1}finally{s?ET(o):NT(o)}return tG(o,r),rG(i,o)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===Kq&&(i=void 0),this.autoFreeze_&&TT(i,!0),r){const o=[],a=[];up("Patches").generateReplacementPatches_(t,i,o,a),r(o,a)}return i}else rl(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(o,...a)=>this.produceWithPatches(o,s=>t(s,...a));let r,i;return[this.produce(t,n,(o,a)=>{r=o,i=a}),r,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){td(e)||rl(8),ng(e)&&(e=v7e(e));const t=nG(this),n=Zy(e,void 0);return n[Vn].isManual_=!0,NT(t),n}finishDraft(e,t){const n=e&&e[Vn];(!n||!n.isManual_)&&rl(9);const{scope_:r}=n;return tG(r,t),rG(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const r=up("Patches").applyPatches_;return ng(e)?r(e,t):this.produce(e,i=>r(i,t))}};function Zy(e,t){const n=Wy(e)?up("MapSet").proxyMap_(e,t):t3(e)?up("MapSet").proxySet_(e,t):p7e(e,t);return(t?t.scope_:i3()).drafts_.push(n),n}function v7e(e){return ng(e)||rl(10,e),aG(e)}function aG(e){if(!td(e)||r3(e))return e;const t=e[Vn];let n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=jT(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=jT(e,!0);return By(n,(i,o)=>{eG(n,i,aG(o))},r),t&&(t.finalized_=!1),n}function y7e(){class e extends Map{constructor(l,c){super(),this[Vn]={type_:2,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:l,draft_:this,isManual_:!1,revoked_:!1}}get size(){return io(this[Vn]).size}has(l){return io(this[Vn]).has(l)}set(l,c){const d=this[Vn];return a(d),(!io(d).has(l)||io(d).get(l)!==c)&&(n(d),nd(d),d.assigned_.set(l,!0),d.copy_.set(l,c),d.assigned_.set(l,!0)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),n(c),nd(c),c.base_.has(l)?c.assigned_.set(l,!1):c.assigned_.delete(l),c.copy_.delete(l),!0}clear(){const l=this[Vn];a(l),io(l).size&&(n(l),nd(l),l.assigned_=new Map,By(l.base_,c=>{l.assigned_.set(c,!1)}),l.copy_.clear())}forEach(l,c){const d=this[Vn];io(d).forEach((f,p,v)=>{l.call(c,this.get(p),p,this)})}get(l){const c=this[Vn];a(c);const d=io(c).get(l);if(c.finalized_||!td(d)||d!==c.base_.get(l))return d;const f=Zy(d,c);return n(c),c.copy_.set(l,f),f}keys(){return io(this[Vn]).keys()}values(){const l=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{const c=l.next();return c.done?c:{done:!1,value:this.get(c.value)}}}}entries(){const l=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{const c=l.next();if(c.done)return c;const d=this.get(c.value);return{done:!1,value:[c.value,d]}}}}[Symbol.iterator](){return this.entries()}}function t(s,l){return new e(s,l)}function n(s){s.copy_||(s.assigned_=new Map,s.copy_=new Map(s.base_))}class r extends Set{constructor(l,c){super(),this[Vn]={type_:3,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,base_:l,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return io(this[Vn]).size}has(l){const c=this[Vn];return a(c),c.copy_?!!(c.copy_.has(l)||c.drafts_.has(l)&&c.copy_.has(c.drafts_.get(l))):c.base_.has(l)}add(l){const c=this[Vn];return a(c),this.has(l)||(o(c),nd(c),c.copy_.add(l)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),o(c),nd(c),c.copy_.delete(l)||(c.drafts_.has(l)?c.copy_.delete(c.drafts_.get(l)):!1)}clear(){const l=this[Vn];a(l),io(l).size&&(o(l),nd(l),l.copy_.clear())}values(){const l=this[Vn];return a(l),o(l),l.copy_.values()}entries(){const l=this[Vn];return a(l),o(l),l.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(l,c){const d=this.values();let f=d.next();for(;!f.done;)l.call(c,f.value,f.value,this),f=d.next()}}function i(s,l){return new r(s,l)}function o(s){s.copy_||(s.copy_=new Set,s.base_.forEach(l=>{if(td(l)){const c=Zy(l,s);s.drafts_.set(l,c),s.copy_.add(c)}else s.copy_.add(l)}))}function a(s){s.revoked_&&rl(3,JSON.stringify(io(s)))}d7e("MapSet",{proxyMap_:t,proxySet_:i})}var b7e=new g7e,sG=b7e.produce;function Co(e){const t=fe(e,(n,r,i)=>r(t,sG(n(t),typeof i=="function"?i:()=>i)));return t}function lG(e){const t=fe(e);let n;return fe(r=>r(t),(r,i,o)=>{n!==void 0&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{n=void 0,i(t,o)})})}function x7e(e=6e4){const t=Co({});return n=>fe(r=>n==null?!1:!!r(t)[n],(r,i)=>{if(n==null)return;const o=setTimeout(()=>{i(t,a=>{delete a[n]})},e);i(t,a=>{a[n]&&clearTimeout(a[n]),a[n]=o})})}const LT={values:[],history:[]},uG=fe(void 0),qy=fe(void 0),cG=fe(void 0),cp=fe(void 0),dG=fe(void 0),rg=fe(void 0),s3=fe(void 0),fG=fe(void 0),hG=fe(void 0),pG=fe(void 0),mG=fe(void 0),dp=fe(void 0),gG=fe(void 0);fe(void 0);const _7e=fe(void 0),vG=fe(void 0),PT=fe(void 0),yG=fe(void 0),Gy=fe(void 0),bG=fe(void 0),xG=fe(void 0),OT=fe(void 0),zT=fe(void 0),_G=fe(LT),wG=fe(LT),kG=lG(void 0),SG=fe(void 0),CG=fe(void 0),l3=fe(void 0),jG=fe(LT),Hl=fe(void 0),Zu=fe(void 0),TG=lG(void 0),w7e=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"],k7e=Object.fromEntries(w7e.map(e=>[e,0])),IG=fe({value:k7e,history:[]}),EG=fe(void 0),NG=fe(void 0),$G=fe(void 0),MG=fe(void 0),DT=fe(void 0),RG=fe(void 0),u3=fe(void 0),LG=fe(void 0),PG=fe(void 0),c3=fe(void 0),S7e="_outer-container_13cf2_1",C7e="_inner-container_13cf2_12",OG={outerContainer:S7e,innerContainer:C7e},zG=Object.freeze({status:"aborted"});function be(e,t,n){function r(s,l){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:l,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,l);const c=a.prototype,d=Object.keys(c);for(let f=0;f{var l,c;return n!=null&&n.Parent&&s instanceof n.Parent?!0:(c=(l=s==null?void 0:s._zod)==null?void 0:l.traits)==null?void 0:c.has(e)}}),Object.defineProperty(a,"name",{value:e}),a}const DG=Symbol("zod_brand");class fp extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class d3 extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const f3={};function da(e){return e&&Object.assign(f3,e),f3}function j7e(e){return e}function T7e(e){return e}function I7e(e){}function E7e(e){throw new Error}function N7e(e){}function AT(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,r])=>t.indexOf(+n)===-1).map(([n,r])=>r)}function qe(e,t="|"){return e.map(n=>Rt(n)).join(t)}function h3(e,t){return typeof t=="bigint"?t.toString():t}function Yy(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function hp(e){return e==null}function p3(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function AG(e,t){const n=(e.toString().split(".")[1]||"").length,r=t.toString();let i=(r.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(r)){const l=r.match(/\d?e-(\d?)/);l!=null&&l[1]&&(i=Number.parseInt(l[1]))}const o=n>i?n:i,a=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(t.toFixed(o).replace(".",""));return a%s/10**o}const FG=Symbol("evaluating");function vn(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==FG)return r===void 0&&(r=FG,r=n()),r},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function $7e(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function zf(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function rd(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function M7e(e){return rd(e._zod.def)}function R7e(e,t){return t?t.reduce((n,r)=>n==null?void 0:n[r],e):e}function L7e(e){const t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{const i={};for(let o=0;o{};function ig(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const BG=Yy(()=>{var e;if(typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function pp(e){if(ig(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(ig(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function m3(e){return pp(e)?{...e}:Array.isArray(e)?[...e]:e}function O7e(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}const z7e=e=>{const t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},g3=new Set(["string","number","symbol"]),WG=new Set(["string","number","bigint","boolean","symbol","undefined"]);function id(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function il(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n!=null&&n.parent)&&(r._zod.parent=e),r}function Oe(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function D7e(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,o){return t??(t=e()),Reflect.set(t,r,i,o)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function Rt(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function VG(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const HG={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ZG={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function qG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(i[o]=n.shape[o])}return zf(this,"shape",i),i},checks:[]});return il(e,r)}function GG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&delete i[o]}return zf(this,"shape",i),i},checks:[]});return il(e,r)}function YG(e,t){if(!pp(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");const r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return zf(this,"shape",i),i},checks:[]});return il(e,r)}function KG(e,t){if(!pp(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n={...e._zod.def,get shape(){const r={...e._zod.def.shape,...t};return zf(this,"shape",r),r},checks:e._zod.def.checks};return il(e,n)}function XG(e,t){const n=rd(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return zf(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return il(e,n)}function JG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=e?new e({type:"optional",innerType:i[a]}):i[a])}else for(const a in i)o[a]=e?new e({type:"optional",innerType:i[a]}):i[a];return zf(this,"shape",o),o},checks:[]});return il(t,r)}function QG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=new e({type:"nonoptional",innerType:i[a]}))}else for(const a in i)o[a]=new e({type:"nonoptional",innerType:i[a]});return zf(this,"shape",o),o},checks:[]});return il(t,r)}function mp(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Ky(e){return typeof e=="string"?e:e==null?void 0:e.message}function ql(e,t,n){var i,o,a,s,l,c;const r={...e,path:e.path??[]};if(!e.message){const d=Ky((a=(o=(i=e.inst)==null?void 0:i._zod.def)==null?void 0:o.error)==null?void 0:a.call(o,e))??Ky((s=t==null?void 0:t.error)==null?void 0:s.call(t,e))??Ky((l=n.customError)==null?void 0:l.call(n,e))??Ky((c=n.localeError)==null?void 0:c.call(n,e))??"Invalid input";r.message=d}return delete r.inst,delete r.continue,t!=null&&t.reportInput||delete r.input,r}function v3(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function y3(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function og(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function A7e(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function eY(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;rt.toString(16).padStart(2,"0")).join("")}class V7e{constructor(...t){}}const nY=Object.freeze(Object.defineProperty({__proto__:null,BIGINT_FORMAT_RANGES:ZG,Class:V7e,NUMBER_FORMAT_RANGES:HG,aborted:mp,allowsEval:BG,assert:N7e,assertEqual:j7e,assertIs:I7e,assertNever:E7e,assertNotEqual:T7e,assignProp:zf,base64ToUint8Array:eY,base64urlToUint8Array:F7e,cached:Yy,captureStackTrace:UT,cleanEnum:A7e,cleanRegex:p3,clone:il,cloneDef:M7e,createTransparentProxy:D7e,defineLazy:vn,esc:FT,escapeRegex:id,extend:YG,finalizeIssue:ql,floatSafeRemainder:AG,getElementAtPath:R7e,getEnumValues:AT,getLengthableOrigin:y3,getParsedType:z7e,getSizableOrigin:v3,hexToUint8Array:B7e,isObject:ig,isPlainObject:pp,issue:og,joinValues:qe,jsonStringifyReplacer:h3,merge:XG,mergeDefs:rd,normalizeParams:Oe,nullish:hp,numKeys:O7e,objectClone:$7e,omit:GG,optionalKeys:VG,partial:JG,pick:qG,prefixIssues:Zl,primitiveTypes:WG,promiseAllObject:L7e,propertyKeyTypes:g3,randomString:P7e,required:QG,safeExtend:KG,shallowClone:m3,slugify:UG,stringifyPrimitive:Rt,uint8ArrayToBase64:tY,uint8ArrayToBase64url:U7e,uint8ArrayToHex:W7e,unwrapMessage:Ky},Symbol.toStringTag,{value:"Module"})),rY=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,h3,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},BT=be("$ZodError",rY),vs=be("$ZodError",rY,{Parent:Error});function WT(e,t=n=>n.message){const n={},r=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function VT(e,t=n=>n.message){const n={_errors:[]},r=i=>{for(const o of i.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>r({issues:a}));else if(o.code==="invalid_key")r({issues:o.issues});else if(o.code==="invalid_element")r({issues:o.issues});else if(o.path.length===0)n._errors.push(t(o));else{let a=n,s=0;for(;sn.message){const n={errors:[]},r=(i,o=[])=>{var a,s;for(const l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(c=>r({issues:c},l.path));else if(l.code==="invalid_key")r({issues:l.issues},l.path);else if(l.code==="invalid_element")r({issues:l.issues},l.path);else{const c=[...o,...l.path];if(c.length===0){n.errors.push(t(l));continue}let d=n,f=0;for(;ftypeof r=="object"?r.key:r);for(const r of n)typeof r=="number"?t.push(`[${r}]`):typeof r=="symbol"?t.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?t.push(`[${JSON.stringify(r)}]`):(t.length&&t.push("."),t.push(r));return t.join("")}function aY(e){var r;const t=[],n=[...e.issues].sort((i,o)=>(i.path??[]).length-(o.path??[]).length);for(const i of n)t.push(`\u2716 ${i.message}`),(r=i.path)!=null&&r.length&&t.push(` \u2192 at ${oY(i.path)}`);return t.join(` +`)}const Xy=e=>(t,n,r,i)=>{const o=r?Object.assign(r,{async:!1}):{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new fp;if(a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw UT(s,i==null?void 0:i.callee),s}return a.value},HT=Xy(vs),Jy=e=>async(t,n,r,i)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw UT(s,i==null?void 0:i.callee),s}return a.value},ZT=Jy(vs),Qy=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new fp;return o.issues.length?{success:!1,error:new(e??BT)(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},sY=Qy(vs),eb=e=>async(t,n,r)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},lY=eb(vs),qT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Xy(e)(t,n,i)},H7e=qT(vs),GT=e=>(t,n,r)=>Xy(e)(t,n,r),Z7e=GT(vs),YT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Jy(e)(t,n,i)},q7e=YT(vs),KT=e=>async(t,n,r)=>Jy(e)(t,n,r),G7e=KT(vs),XT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Qy(e)(t,n,i)},Y7e=XT(vs),JT=e=>(t,n,r)=>Qy(e)(t,n,r),K7e=JT(vs),QT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return eb(e)(t,n,i)},X7e=QT(vs),eI=e=>async(t,n,r)=>eb(e)(t,n,r),J7e=eI(vs),uY=/^[cC][^\s-]{8,}$/,cY=/^[0-9a-z]+$/,dY=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fY=/^[0-9a-vA-V]{20}$/,hY=/^[A-Za-z0-9]{27}$/,pY=/^[a-zA-Z0-9_-]{21}$/,mY=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Q7e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,gY=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ag=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,eTe=ag(4),tTe=ag(6),nTe=ag(7),vY=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,rTe=/^[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])?)*$/,iTe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,yY=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,oTe=yY,aTe=/^[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])?)*$/,sTe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function bY(){return new RegExp(sTe,"u")}const xY=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_Y=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,wY=e=>{const t=id(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},kY=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,SY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,CY=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,tI=/^[A-Za-z0-9_-]*$/,jY=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,TY=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,IY=/^\+(?:[0-9]){6,14}[0-9]$/,EY="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",NY=new RegExp(`^${EY}$`);function $Y(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function MY(e){return new RegExp(`^${$Y(e)}$`)}function RY(e){const t=$Y({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${EY}T(?:${r})$`)}const LY=e=>{const t=e?`[\\s\\S]{${(e==null?void 0:e.minimum)??0},${(e==null?void 0:e.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},PY=/^-?\d+n?$/,OY=/^-?\d+$/,zY=/^-?\d+(?:\.\d+)?/,DY=/^(?:true|false)$/i,AY=/^null$/i,FY=/^undefined$/i,UY=/^[^A-Z]*$/,BY=/^[^a-z]*$/,WY=/^[0-9a-fA-F]*$/;function tb(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function nb(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}const lTe=/^[0-9a-fA-F]{32}$/,uTe=tb(22,"=="),cTe=nb(22),dTe=/^[0-9a-fA-F]{40}$/,fTe=tb(27,"="),hTe=nb(27),pTe=/^[0-9a-fA-F]{64}$/,mTe=tb(43,"="),gTe=nb(43),vTe=/^[0-9a-fA-F]{96}$/,yTe=tb(64,""),bTe=nb(64),xTe=/^[0-9a-fA-F]{128}$/,_Te=tb(86,"=="),wTe=nb(86),nI=Object.freeze(Object.defineProperty({__proto__:null,base64:CY,base64url:tI,bigint:PY,boolean:DY,browserEmail:aTe,cidrv4:kY,cidrv6:SY,cuid:uY,cuid2:cY,date:NY,datetime:RY,domain:TY,duration:mY,e164:IY,email:vY,emoji:bY,extendedDuration:Q7e,guid:gY,hex:WY,hostname:jY,html5Email:rTe,idnEmail:oTe,integer:OY,ipv4:xY,ipv6:_Y,ksuid:hY,lowercase:UY,mac:wY,md5_base64:uTe,md5_base64url:cTe,md5_hex:lTe,nanoid:pY,null:AY,number:zY,rfc5322Email:iTe,sha1_base64:fTe,sha1_base64url:hTe,sha1_hex:dTe,sha256_base64:mTe,sha256_base64url:gTe,sha256_hex:pTe,sha384_base64:yTe,sha384_base64url:bTe,sha384_hex:vTe,sha512_base64:_Te,sha512_base64url:wTe,sha512_hex:xTe,string:LY,time:MY,ulid:dY,undefined:FY,unicodeEmail:yY,uppercase:BY,uuid:ag,uuid4:eTe,uuid6:tTe,uuid7:nTe,xid:fY},Symbol.toStringTag,{value:"Module"})),Gr=be("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),VY={number:"number",bigint:"bigint",object:"date"},rI=be("$ZodCheckLessThan",(e,t)=>{Gr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{Gr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),HY=be("$ZodCheckMultipleOf",(e,t)=>{Gr.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):AG(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),ZY=be("$ZodCheckNumberFormat",(e,t)=>{var a;Gr.init(e,t),t.format=t.format||"float64";const n=(a=t.format)==null?void 0:a.includes("int"),r=n?"int":"number",[i,o]=HG[t.format];e._zod.onattach.push(s=>{const l=s._zod.bag;l.format=t.format,l.minimum=i,l.maximum=o,n&&(l.pattern=OY)}),e._zod.check=s=>{const l=s.value;if(n){if(!Number.isInteger(l)){s.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}lo&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:o,inst:e})}}),qY=be("$ZodCheckBigIntFormat",(e,t)=>{Gr.init(e,t);const[n,r]=ZG[t.format];e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,o.minimum=n,o.maximum=r}),e._zod.check=i=>{const o=i.value;or&&i.issues.push({origin:"bigint",input:o,code:"too_big",maximum:r,inst:e})}}),GY=be("$ZodCheckMaxSize",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;i.size<=t.maximum||r.issues.push({origin:v3(i),code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),YY=be("$ZodCheckMinSize",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;i.size>=t.minimum||r.issues.push({origin:v3(i),code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),KY=be("$ZodCheckSizeEquals",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.size,i.maximum=t.size,i.size=t.size}),e._zod.check=r=>{const i=r.value,o=i.size;if(o===t.size)return;const a=o>t.size;r.issues.push({origin:v3(i),...a?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),XY=be("$ZodCheckMaxLength",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;if(i.length<=t.maximum)return;const o=y3(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),JY=be("$ZodCheckMinLength",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;if(i.length>=t.minimum)return;const o=y3(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),QY=be("$ZodCheckLengthEquals",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{const i=r.value,o=i.length;if(o===t.length)return;const a=y3(i),s=o>t.length;r.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),rb=be("$ZodCheckStringFormat",(e,t)=>{var n,r;Gr.init(e,t),e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,t.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),eK=be("$ZodCheckRegex",(e,t)=>{rb.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tK=be("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=UY),rb.init(e,t)}),nK=be("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=BY),rb.init(e,t)}),rK=be("$ZodCheckIncludes",(e,t)=>{Gr.init(e,t);const n=id(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),iK=be("$ZodCheckStartsWith",(e,t)=>{Gr.init(e,t);const n=new RegExp(`^${id(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),oK=be("$ZodCheckEndsWith",(e,t)=>{Gr.init(e,t);const n=new RegExp(`.*${id(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});function aK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues))}const sK=be("$ZodCheckProperty",(e,t)=>{Gr.init(e,t),e._zod.check=n=>{const r=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(r instanceof Promise)return r.then(i=>aK(i,n,t.property));aK(r,n,t.property)}}),lK=be("$ZodCheckMimeType",(e,t)=>{Gr.init(e,t);const n=new Set(t.mime);e._zod.onattach.push(r=>{r._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),uK=be("$ZodCheckOverwrite",(e,t)=>{Gr.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class cK{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(` +`).filter(o=>o),r=Math.min(...n.map(o=>o.length-o.trimStart().length)),i=n.map(o=>o.slice(r)).map(o=>" ".repeat(this.indent*2)+o);for(const o of i)this.content.push(o)}compile(){const t=Function,n=this==null?void 0:this.args,r=[...((this==null?void 0:this.content)??[""]).map(i=>` ${i}`)];return new t(...n,r.join(` +`))}}const dK={major:4,minor:1,patch:13},Bt=be("$ZodType",(e,t)=>{var i;var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=dK;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const a of o._zod.onattach)a(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),(i=e._zod.deferred)==null||i.push(()=>{e._zod.run=e._zod.parse});else{const o=(s,l,c)=>{let d=mp(s),f;for(const p of l){if(p._zod.def.when){if(!p._zod.def.when(s))continue}else if(d)continue;const v=s.issues.length,x=p._zod.check(s);if(x instanceof Promise&&(c==null?void 0:c.async)===!1)throw new fp;if(f||x instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await x,s.issues.length!==v&&(d||(d=mp(s,v)))});else{if(s.issues.length===v)continue;d||(d=mp(s,v))}}return f?f.then(()=>s):s},a=(s,l,c)=>{if(mp(s))return s.aborted=!0,s;const d=o(l,r,c);if(d instanceof Promise){if(c.async===!1)throw new fp;return d.then(f=>e._zod.parse(f,c))}return e._zod.parse(d,c)};e._zod.run=(s,l)=>{if(l.skipChecks)return e._zod.parse(s,l);if(l.direction==="backward"){const d=e._zod.parse({value:s.value,issues:[]},{...l,skipChecks:!0});return d instanceof Promise?d.then(f=>a(f,s,l)):a(d,s,l)}const c=e._zod.parse(s,l);if(c instanceof Promise){if(l.async===!1)throw new fp;return c.then(d=>o(d,r,l))}return o(c,r,l)}}e["~standard"]={validate:o=>{var a;try{const s=sY(e,o);return s.success?{value:s.data}:{issues:(a=s.error)==null?void 0:a.issues}}catch{return lY(e,o).then(s=>{var l;return s.success?{value:s.data}:{issues:(l=s.error)==null?void 0:l.issues}})}},vendor:"zod",version:1}}),ib=be("$ZodString",(e,t)=>{var n;Bt.init(e,t),e._zod.pattern=[...((n=e==null?void 0:e._zod.bag)==null?void 0:n.patterns)??[]].pop()??LY(e._zod.bag),e._zod.parse=(r,i)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),yr=be("$ZodStringFormat",(e,t)=>{rb.init(e,t),ib.init(e,t)}),fK=be("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=gY),yr.init(e,t)}),hK=be("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ag(n))}else t.pattern??(t.pattern=ag());yr.init(e,t)}),pK=be("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=vY),yr.init(e,t)}),mK=be("$ZodURL",(e,t)=>{yr.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),gK=be("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=bY()),yr.init(e,t)}),vK=be("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=pY),yr.init(e,t)}),yK=be("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=uY),yr.init(e,t)}),bK=be("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=cY),yr.init(e,t)}),xK=be("$ZodULID",(e,t)=>{t.pattern??(t.pattern=dY),yr.init(e,t)}),_K=be("$ZodXID",(e,t)=>{t.pattern??(t.pattern=fY),yr.init(e,t)}),wK=be("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=hY),yr.init(e,t)}),kK=be("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=RY(t)),yr.init(e,t)}),SK=be("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=NY),yr.init(e,t)}),CK=be("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=MY(t)),yr.init(e,t)}),jK=be("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=mY),yr.init(e,t)}),TK=be("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=xY),yr.init(e,t),e._zod.bag.format="ipv4"}),IK=be("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=_Y),yr.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),EK=be("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=wY(t.delimiter)),yr.init(e,t),e._zod.bag.format="mac"}),NK=be("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=kY),yr.init(e,t)}),$K=be("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=SY),yr.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[i,o]=r;if(!o)throw new Error;const a=Number(o);if(`${a}`!==o)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${i}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function oI(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const MK=be("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=CY),yr.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{oI(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function RK(e){if(!tI.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return oI(n)}const LK=be("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=tI),yr.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{RK(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),PK=be("$ZodE164",(e,t)=>{t.pattern??(t.pattern=IY),yr.init(e,t)});function OK(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}const zK=be("$ZodJWT",(e,t)=>{yr.init(e,t),e._zod.check=n=>{OK(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),DK=be("$ZodCustomStringFormat",(e,t)=>{yr.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),aI=be("$ZodNumber",(e,t)=>{Bt.init(e,t),e._zod.pattern=e._zod.bag.pattern??zY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;const o=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),n}}),AK=be("$ZodNumberFormat",(e,t)=>{ZY.init(e,t),aI.init(e,t)}),sI=be("$ZodBoolean",(e,t)=>{Bt.init(e,t),e._zod.pattern=DY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),lI=be("$ZodBigInt",(e,t)=>{Bt.init(e,t),e._zod.pattern=PY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),FK=be("$ZodBigIntFormat",(e,t)=>{qY.init(e,t),lI.init(e,t)}),UK=be("$ZodSymbol",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:e}),n}}),BK=be("$ZodUndefined",(e,t)=>{Bt.init(e,t),e._zod.pattern=FY,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:e}),n}}),WK=be("$ZodNull",(e,t)=>{Bt.init(e,t),e._zod.pattern=AY,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{const i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),VK=be("$ZodAny",(e,t)=>{Bt.init(e,t),e._zod.parse=n=>n}),HK=be("$ZodUnknown",(e,t)=>{Bt.init(e,t),e._zod.parse=n=>n}),ZK=be("$ZodNever",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),qK=be("$ZodVoid",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"void",code:"invalid_type",input:i,inst:e}),n}}),GK=be("$ZodDate",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}const i=n.value,o=i instanceof Date;return o&&!Number.isNaN(i.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:i,...o?{received:"Invalid Date"}:{},inst:e}),n}});function YK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const KK=be("$ZodArray",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const o=[];for(let a=0;aYK(c,n,a))):YK(l,n,a)}return o.length?Promise.all(o).then(()=>n):n}});function b3(e,t,n,r){e.issues.length&&t.issues.push(...Zl(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function XK(e){var r,i,o,a;const t=Object.keys(e.shape);for(const s of t)if(!((a=(o=(i=(r=e.shape)==null?void 0:r[s])==null?void 0:i._zod)==null?void 0:o.traits)!=null&&a.has("$ZodType")))throw new Error(`Invalid element at key "${s}": expected a Zod schema`);const n=VG(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function JK(e,t,n,r,i,o){const a=[],s=i.keySet,l=i.catchall._zod,c=l.def.type;for(const d in t){if(s.has(d))continue;if(c==="never"){a.push(d);continue}const f=l.run({value:t[d],issues:[]},r);f instanceof Promise?e.push(f.then(p=>b3(p,n,d,t))):b3(f,n,d,t)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}const QK=be("$ZodObject",(e,t)=>{var a;if(Bt.init(e,t),!((a=Object.getOwnPropertyDescriptor(t,"shape"))!=null&&a.get)){const s=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...s};return Object.defineProperty(t,"shape",{value:l}),l}})}const n=Yy(()=>XK(t));vn(e._zod,"propValues",()=>{const s=t.shape,l={};for(const c in s){const d=s[c]._zod;if(d.values){l[c]??(l[c]=new Set);for(const f of d.values)l[c].add(f)}}return l});const r=ig,i=t.catchall;let o;e._zod.parse=(s,l)=>{o??(o=n.value);const c=s.value;if(!r(c))return s.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),s;s.value={};const d=[],f=o.shape;for(const p of o.keys){const v=f[p]._zod.run({value:c[p],issues:[]},l);v instanceof Promise?d.push(v.then(x=>b3(x,s,p,c))):b3(v,s,p,c)}return i?JK(d,c,s,l,n.value,e):d.length?Promise.all(d).then(()=>s):s}}),eX=be("$ZodObjectJIT",(e,t)=>{QK.init(e,t);const n=e._zod.parse,r=Yy(()=>XK(t)),i=f=>{const p=new cK(["shape","payload","ctx"]),v=r.value,x=_=>{const S=FT(_);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};p.write("const input = payload.value;");const y=Object.create(null);let b=0;for(const _ of v.keys)y[_]=`key_${b++}`;p.write("const newResult = {};");for(const _ of v.keys){const S=y[_],C=FT(_);p.write(`const ${S} = ${x(_)};`),p.write(` + if (${S}.issues.length) { + payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${C}, ...iss.path] : [${C}] + }))); + } + + + if (${S}.value === undefined) { + if (${C} in input) { + newResult[${C}] = undefined; + } + } else { + newResult[${C}] = ${S}.value; + } + + `)}p.write("payload.value = newResult;"),p.write("return payload;");const w=p.compile();return(_,S)=>w(f,_,S)};let o;const a=ig,s=!f3.jitless,l=s&&BG.value,c=t.catchall;let d;e._zod.parse=(f,p)=>{d??(d=r.value);const v=f.value;return a(v)?s&&l&&(p==null?void 0:p.async)===!1&&p.jitless!==!0?(o||(o=i(t.shape)),f=o(f,p),c?JK([],v,f,p,d,e):f):n(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),f)}});function tX(e,t,n,r){for(const o of e)if(o.issues.length===0)return t.value=o.value,t;const i=e.filter(o=>!mp(o));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(a=>ql(a,r,da())))}),t)}const uI=be("$ZodUnion",(e,t)=>{Bt.init(e,t),vn(e._zod,"optin",()=>t.options.some(i=>i._zod.optin==="optional")?"optional":void 0),vn(e._zod,"optout",()=>t.options.some(i=>i._zod.optout==="optional")?"optional":void 0),vn(e._zod,"values",()=>{if(t.options.every(i=>i._zod.values))return new Set(t.options.flatMap(i=>Array.from(i._zod.values)))}),vn(e._zod,"pattern",()=>{if(t.options.every(i=>i._zod.pattern)){const i=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${i.map(o=>p3(o.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,o)=>{if(n)return r(i,o);let a=!1;const s=[];for(const l of t.options){const c=l._zod.run({value:i.value,issues:[]},o);if(c instanceof Promise)s.push(c),a=!0;else{if(c.issues.length===0)return c;s.push(c)}}return a?Promise.all(s).then(l=>tX(l,i,e,o)):tX(s,i,e,o)}}),nX=be("$ZodDiscriminatedUnion",(e,t)=>{uI.init(e,t);const n=e._zod.parse;vn(e._zod,"propValues",()=>{const i={};for(const o of t.options){const a=o._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const[s,l]of Object.entries(a)){i[s]||(i[s]=new Set);for(const c of l)i[s].add(c)}}return i});const r=Yy(()=>{var a;const i=t.options,o=new Map;for(const s of i){const l=(a=s._zod.propValues)==null?void 0:a[t.discriminator];if(!l||l.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(const c of l){if(o.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);o.set(c,s)}}return o});e._zod.parse=(i,o)=>{const a=i.value;if(!ig(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=r.value.get(a==null?void 0:a[t.discriminator]);return s?s._zod.run(i,o):t.unionFallback?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:a,path:[t.discriminator],inst:e}),i)}}),rX=be("$ZodIntersection",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value,o=t.left._zod.run({value:i,issues:[]},r),a=t.right._zod.run({value:i,issues:[]},r);return o instanceof Promise||a instanceof Promise?Promise.all([o,a]).then(([s,l])=>iX(n,s,l)):iX(n,o,a)}});function cI(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(pp(e)&&pp(t)){const n=Object.keys(t),r=Object.keys(e).filter(o=>n.indexOf(o)!==-1),i={...e,...t};for(const o of r){const a=cI(e[o],t[o]);if(!a.valid)return{valid:!1,mergeErrorPath:[o,...a.mergeErrorPath]};i[o]=a.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r{Bt.init(e,t);const n=t.items;e._zod.parse=(r,i)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({input:o,inst:e,expected:"tuple",code:"invalid_type"}),r;r.value=[];const a=[],s=[...n].reverse().findIndex(d=>d._zod.optin!=="optional"),l=s===-1?0:n.length-s;if(!t.rest){const d=o.length>n.length,f=o.length=o.length&&c>=l)continue;const f=d._zod.run({value:o[c],issues:[]},i);f instanceof Promise?a.push(f.then(p=>x3(p,r,c))):x3(f,r,c)}if(t.rest){const d=o.slice(n.length);for(const f of d){c++;const p=t.rest._zod.run({value:f,issues:[]},i);p instanceof Promise?a.push(p.then(v=>x3(v,r,c))):x3(p,r,c)}}return a.length?Promise.all(a).then(()=>r):r}});function x3(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const oX=be("$ZodRecord",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!pp(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){s.add(typeof c=="number"?c.toString():c);const d=t.valueType._zod.run({value:i[c],issues:[]},r);d instanceof Promise?o.push(d.then(f=>{f.issues.length&&n.issues.push(...Zl(c,f.issues)),n.value[c]=f.value})):(d.issues.length&&n.issues.push(...Zl(c,d.issues)),n.value[c]=d.value)}let l;for(const c in i)s.has(c)||(l=l??[],l.push(c));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:l})}else{n.value={};for(const s of Reflect.ownKeys(i)){if(s==="__proto__")continue;const l=t.keyType._zod.run({value:s,issues:[]},r);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(l.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(d=>ql(d,r,da())),input:s,path:[s],inst:e}),n.value[l.value]=l.value;continue}const c=t.valueType._zod.run({value:i[s],issues:[]},r);c instanceof Promise?o.push(c.then(d=>{d.issues.length&&n.issues.push(...Zl(s,d.issues)),n.value[l.value]=d.value})):(c.issues.length&&n.issues.push(...Zl(s,c.issues)),n.value[l.value]=c.value)}}return o.length?Promise.all(o).then(()=>n):n}}),aX=be("$ZodMap",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:i,inst:e}),n;const o=[];n.value=new Map;for(const[a,s]of i){const l=t.keyType._zod.run({value:a,issues:[]},r),c=t.valueType._zod.run({value:s,issues:[]},r);l instanceof Promise||c instanceof Promise?o.push(Promise.all([l,c]).then(([d,f])=>{sX(d,f,n,a,i,e,r)})):sX(l,c,n,a,i,e,r)}return o.length?Promise.all(o).then(()=>n):n}});function sX(e,t,n,r,i,o,a){e.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,e.issues)):n.issues.push({code:"invalid_key",origin:"map",input:i,inst:o,issues:e.issues.map(s=>ql(s,a,da()))})),t.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:i,inst:o,key:r,issues:t.issues.map(s=>ql(s,a,da()))})),n.value.set(e.value,t.value)}const lX=be("$ZodSet",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:e,expected:"set",code:"invalid_type"}),n;const o=[];n.value=new Set;for(const a of i){const s=t.valueType._zod.run({value:a,issues:[]},r);s instanceof Promise?o.push(s.then(l=>uX(l,n))):uX(s,n)}return o.length?Promise.all(o).then(()=>n):n}});function uX(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}const cX=be("$ZodEnum",(e,t)=>{Bt.init(e,t);const n=AT(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(i=>g3.has(typeof i)).map(i=>typeof i=="string"?id(i):i.toString()).join("|")})$`),e._zod.parse=(i,o)=>{const a=i.value;return r.has(a)||i.issues.push({code:"invalid_value",values:n,input:a,inst:e}),i}}),dX=be("$ZodLiteral",(e,t)=>{if(Bt.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(r=>typeof r=="string"?id(r):r?id(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),fX=be("$ZodFile",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return i instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:i,inst:e}),n}}),hX=be("$ZodTransform",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new fp;return n.value=i,n}});function pX(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const mX=be("$ZodOptional",(e,t)=>{Bt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>pX(o,n.value)):pX(i,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),gX=be("$ZodNullable",(e,t)=>{Bt.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)}|null)$`):void 0}),vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),vX=be("$ZodDefault",(e,t)=>{Bt.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>yX(o,t)):yX(i,t)}});function yX(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const bX=be("$ZodPrefault",(e,t)=>{Bt.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),xX=be("$ZodNonOptional",(e,t)=>{Bt.init(e,t),vn(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>_X(o,e)):_X(i,e)}});function _X(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const wX=be("$ZodSuccess",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3("ZodSuccess");const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.issues.length===0,n)):(n.value=i.issues.length===0,n)}}),kX=be("$ZodCatch",(e,t)=>{Bt.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(a=>ql(a,r,da()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(o=>ql(o,r,da()))},input:n.value}),n.issues=[]),n)}}),SX=be("$ZodNaN",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n)}),CX=be("$ZodPipe",(e,t)=>{Bt.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const o=t.out._zod.run(n,r);return o instanceof Promise?o.then(a=>_3(a,t.in,r)):_3(o,t.in,r)}const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>_3(o,t.out,r)):_3(i,t.out,r)}});function _3(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const fI=be("$ZodCodec",(e,t)=>{Bt.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}else{const i=t.out._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}}});function w3(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){const r=t.transform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.out,n)):k3(e,r,t.out,n)}else{const r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.in,n)):k3(e,r,t.in,n)}}function k3(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}const jX=be("$ZodReadonly",(e,t)=>{Bt.init(e,t),vn(e._zod,"propValues",()=>t.innerType._zod.propValues),vn(e._zod,"values",()=>t.innerType._zod.values),vn(e._zod,"optin",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optin}),vn(e._zod,"optout",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optout}),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(TX):TX(i)}});function TX(e){return e.value=Object.freeze(e.value),e}const IX=be("$ZodTemplateLiteral",(e,t)=>{Bt.init(e,t);const n=[];for(const r of t.parts)if(typeof r=="object"&&r!==null){if(!r._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);const i=r._zod.pattern instanceof RegExp?r._zod.pattern.source:r._zod.pattern;if(!i)throw new Error(`Invalid template literal part: ${r._zod.traits}`);const o=i.startsWith("^")?1:0,a=i.endsWith("$")?i.length-1:i.length;n.push(i.slice(o,a))}else if(r===null||WG.has(typeof r))n.push(id(`${r}`));else throw new Error(`Invalid template literal part: ${r}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(r,i)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:e,expected:"template_literal",code:"invalid_type"}),r):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),r)}),EX=be("$ZodFunction",(e,t)=>(Bt.init(e,t),e._def=t,e._zod.def=t,e.implement=n=>{if(typeof n!="function")throw new Error("implement() must be called with a function");return function(...r){const i=e._def.input?HT(e._def.input,r):r,o=Reflect.apply(n,this,i);return e._def.output?HT(e._def.output,o):o}},e.implementAsync=n=>{if(typeof n!="function")throw new Error("implementAsync() must be called with a function");return async function(...r){const i=e._def.input?await ZT(e._def.input,r):r,o=await Reflect.apply(n,this,i);return e._def.output?await ZT(e._def.output,o):o}},e._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:e}),n):(e._def.output&&e._def.output._zod.def.type==="promise"?n.value=e.implementAsync(n.value):n.value=e.implement(n.value),n),e.input=(...n)=>{const r=e.constructor;return Array.isArray(n[0])?new r({type:"function",input:new dI({type:"tuple",items:n[0],rest:n[1]}),output:e._def.output}):new r({type:"function",input:n[0],output:e._def.output})},e.output=n=>{const r=e.constructor;return new r({type:"function",input:e._def.input,output:n})},e)),NX=be("$ZodPromise",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>Promise.resolve(n.value).then(i=>t.innerType._zod.run({value:i,issues:[]},r))}),$X=be("$ZodLazy",(e,t)=>{Bt.init(e,t),vn(e._zod,"innerType",()=>t.getter()),vn(e._zod,"pattern",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.pattern}),vn(e._zod,"propValues",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.propValues}),vn(e._zod,"optin",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optin)??void 0}),vn(e._zod,"optout",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optout)??void 0}),e._zod.parse=(n,r)=>e._zod.innerType._zod.run(n,r)}),MX=be("$ZodCustom",(e,t)=>{Gr.init(e,t),Bt.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(o=>RX(o,n,r,e));RX(i,n,r,e)}});function RX(e,t,n,r){if(!e){const i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),t.issues.push(og(i))}}const kTe=()=>{const e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return i=>{switch(i.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${i.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Rt(i.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${i.prefix}"`:o.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${o.suffix}"`:o.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${o.includes}"`:o.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${o.pattern}`:`${r[o.format]??i.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${i.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${i.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${i.keys.length>1?"\u0629":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function STe(){return{localeError:kTe()}}const CTe=()=>{const e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${i.expected}, daxil olan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Rt(i.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${o.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:o.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${o.suffix}" il\u0259 bitm\u0259lidir`:o.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${o.includes}" daxil olmal\u0131d\u0131r`:o.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${o.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[o.format]??i.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${i.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${i.keys.length>1?"lar":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${i.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function jTe(){return{localeError:CTe()}}function LX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const TTe=()=>{const e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0456\u045E";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${i.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Rt(i.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=LX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.maximum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=LX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.minimum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${i.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${i.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function ITe(){return{localeError:TTe()}}const ETe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(e))return"\u043C\u0430\u0441\u0438\u0432";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},NTe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function t(r){return e[r]??null}const n={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"};return r=>{switch(r.code){case"invalid_type":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${r.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${ETe(r.input)}`;case"invalid_value":return r.values.length===1?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${Rt(r.values[0])}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.maximum.toString()} ${o.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.minimum.toString()} ${o.unit}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;if(i.format==="starts_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${i.prefix}"`;if(i.format==="ends_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${i.suffix}"`;if(i.format==="includes")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${i.includes}"`;if(i.format==="regex")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${i.pattern}`;let o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";return i.format==="emoji"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="datetime"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="date"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),i.format==="time"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="duration"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),`${o} ${n[i.format]??r.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${r.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${r.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${r.keys.length>1?"\u043E\u0432\u0435":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${r.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case"invalid_element":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${r.origin}`;default:return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};function $Te(){return{localeError:NTe()}}const MTe=()=>{const e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${i.expected}, s'ha rebut ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Valor inv\xE0lid: s'esperava ${Rt(i.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${qe(i.values," o ")}`;case"too_big":{const o=i.inclusive?"com a m\xE0xim":"menys de",a=t(i.origin);return a?`Massa gran: s'esperava que ${i.origin??"el valor"} contingu\xE9s ${o} ${i.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${i.origin??"el valor"} fos ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"com a m\xEDnim":"m\xE9s de",a=t(i.origin);return a?`Massa petit: s'esperava que ${i.origin} contingu\xE9s ${o} ${i.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${i.origin} fos ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${o.prefix}"`:o.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${o.suffix}"`:o.format==="includes"?`Format inv\xE0lid: ha d'incloure "${o.includes}"`:o.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${o.pattern}`:`Format inv\xE0lid per a ${r[o.format]??i.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${i.divisor}`;case"unrecognized_keys":return`Clau${i.keys.length>1?"s":""} no reconeguda${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${i.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${i.origin}`;default:return"Entrada inv\xE0lida"}}};function RTe(){return{localeError:MTe()}}const LTe=()=>{const e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(i))return"pole";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return i=>{switch(i.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${i.expected}, obdr\u017Eeno ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Rt(i.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${o.prefix}"`:o.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${o.suffix}"`:o.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${o.includes}"`:o.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${o.pattern}`:`Neplatn\xFD form\xE1t ${r[o.format]??i.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${i.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${qe(i.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${i.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${i.origin}`;default:return"Neplatn\xFD vstup"}}};function PTe(){return{localeError:LTe()}}const OTe=()=>{const e={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}},t={string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"tal";case"object":return Array.isArray(a)?"liste":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype&&a.constructor?a.constructor.name:"objekt"}return s},o={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return a=>{switch(a.code){case"invalid_type":return`Ugyldigt input: forventede ${r(a.expected)}, fik ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Ugyldig v\xE6rdi: forventede ${Rt(a.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`For stor: forventede ${c??"value"} ${l.verb} ${s} ${a.maximum.toString()} ${l.unit??"elementer"}`:`For stor: forventede ${c??"value"} havde ${s} ${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`For lille: forventede ${c} ${l.verb} ${s} ${a.minimum.toString()} ${l.unit}`:`For lille: forventede ${c} havde ${s} ${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Ugyldig streng: skal starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: skal ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: skal indeholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: skal matche m\xF8nsteret ${s.pattern}`:`Ugyldig ${o[s.format]??a.format}`}case"not_multiple_of":return`Ugyldigt tal: skal v\xE6re deleligt med ${a.divisor}`;case"unrecognized_keys":return`${a.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${qe(a.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8gle i ${a.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig v\xE6rdi i ${a.origin}`;default:return"Ugyldigt input"}}};function zTe(){return{localeError:OTe()}}const DTe=()=>{const e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"Zahl";case"object":{if(Array.isArray(i))return"Array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return i=>{switch(i.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${i.expected}, erhalten ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Rt(i.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ist`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ist`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ung\xFCltiger String: muss mit "${o.prefix}" beginnen`:o.format==="ends_with"?`Ung\xFCltiger String: muss mit "${o.suffix}" enden`:o.format==="includes"?`Ung\xFCltiger String: muss "${o.includes}" enthalten`:o.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${o.pattern} entsprechen`:`Ung\xFCltig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${i.divisor} sein`;case"unrecognized_keys":return`${i.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${i.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${i.origin}`;default:return"Ung\xFCltige Eingabe"}}};function ATe(){return{localeError:DTe()}}const FTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},UTe=()=>{const e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function t(r){return e[r]??null}const n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${FTe(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${Rt(r.values[0])}`:`Invalid option: expected one of ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${o.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};function PX(){return{localeError:UTe()}}const BTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"nombro";case"object":{if(Array.isArray(e))return"tabelo";if(e===null)return"senvalora";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},WTe=()=>{const e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function t(r){return e[r]??null}const n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return r=>{switch(r.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${r.expected}, ricevi\u011Dis ${BTe(r.input)}`;case"invalid_value":return r.values.length===1?`Nevalida enigo: atendi\u011Dis ${Rt(r.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()} ${o.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Tro malgranda: atendi\u011Dis ke ${r.origin} havu ${i}${r.minimum.toString()} ${o.unit}`:`Tro malgranda: atendi\u011Dis ke ${r.origin} estu ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${i.prefix}"`:i.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${i.suffix}"`:i.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${i.includes}"`:i.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${i.pattern}`:`Nevalida ${n[i.format]??r.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${r.divisor}`;case"unrecognized_keys":return`Nekonata${r.keys.length>1?"j":""} \u015Dlosilo${r.keys.length>1?"j":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${r.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${r.origin}`;default:return"Nevalida enigo"}}};function VTe(){return{localeError:WTe()}}const HTe=()=>{const e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}},t={string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"number";case"object":return Array.isArray(a)?"array":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype?a.constructor.name:"object"}return s},o={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return a=>{switch(a.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${r(a.expected)}, recibido ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Entrada inv\xE1lida: se esperaba ${Rt(a.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${s}${a.maximum.toString()} ${l.unit??"elementos"}`:`Demasiado grande: se esperaba que ${c??"valor"} fuera ${s}${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${s}${a.minimum.toString()} ${l.unit}`:`Demasiado peque\xF1o: se esperaba que ${c} fuera ${s}${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${s.prefix}"`:s.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${s.suffix}"`:s.format==="includes"?`Cadena inv\xE1lida: debe incluir "${s.includes}"`:s.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${s.pattern}`:`Inv\xE1lido ${o[s.format]??a.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${a.divisor}`;case"unrecognized_keys":return`Llave${a.keys.length>1?"s":""} desconocida${a.keys.length>1?"s":""}: ${qe(a.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${r(a.origin)}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${r(a.origin)}`;default:return"Entrada inv\xE1lida"}}};function ZTe(){return{localeError:HTe()}}const qTe=()=>{const e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0622\u0631\u0627\u06CC\u0647";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return i=>{switch(i.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${i.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${n(i.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return i.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Rt(i.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${qe(i.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:o.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:o.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${o.includes}" \u0628\u0627\u0634\u062F`:o.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${o.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[o.format]??i.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${i.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${i.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${qe(i.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${i.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${i.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function GTe(){return{localeError:qTe()}}const YTe=()=>{const e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return i=>{switch(i.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${i.expected}, oli ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Rt(i.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${o}${i.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${o}${i.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${o.prefix}"`:o.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${o.suffix}"`:o.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${o.includes}"`:o.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${o.pattern}`:`Virheellinen ${r[o.format]??i.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${i.divisor} monikerta`;case"unrecognized_keys":return`${i.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${qe(i.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function KTe(){return{localeError:YTe()}}const XTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombre";case"object":{if(Array.isArray(i))return"tableau";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : ${i.expected} attendu, ${n(i.input)} re\xE7u`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : ${Rt(i.values[0])} attendu`:`Option invalide : une valeur parmi ${qe(i.values,"|")} attendue`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Trop grand : ${i.origin??"valeur"} doit ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${i.origin??"valeur"} doit \xEAtre ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Trop petit : ${i.origin} doit ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : ${i.origin} doit \xEAtre ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function JTe(){return{localeError:XTe()}}const QTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${i.expected}, re\xE7u ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : attendu ${Rt(i.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u2264":"<",a=t(i.origin);return a?`Trop grand : attendu que ${i.origin??"la valeur"} ait ${o}${i.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${i.origin??"la valeur"} soit ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u2265":">",a=t(i.origin);return a?`Trop petit : attendu que ${i.origin} ait ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${i.origin} soit ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function eIe(){return{localeError:QTe()}}const tIe=()=>{const e={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},t={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},n=c=>c?e[c]:void 0,r=c=>{const d=n(c);return d?d.label:c??e.unknown.label},i=c=>`\u05D4${r(c)}`,o=c=>{var d;return(((d=n(c))==null?void 0:d.gender)??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"},a=c=>c?t[c]??null:null,s=c=>{const d=typeof c;switch(d){case"number":return Number.isNaN(c)?"NaN":"number";case"object":return Array.isArray(c)?"array":c===null?"null":Object.getPrototypeOf(c)!==Object.prototype&&c.constructor?c.constructor.name:"object";default:return d}},l={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}};return c=>{var d;switch(c.code){case"invalid_type":{const f=c.expected,p=r(f),v=s(c.input),x=((d=e[v])==null?void 0:d.label)??v;return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${p}, \u05D4\u05EA\u05E7\u05D1\u05DC ${x}`}case"invalid_value":{if(c.values.length===1)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${Rt(c.values[0])}`;const f=c.values.map(v=>Rt(v));if(c.values.length===2)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f[0]} \u05D0\u05D5 ${f[1]}`;const p=f[f.length-1];return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f.slice(0,-1).join(", ")} \u05D0\u05D5 ${p}`}case"too_big":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.longLabel)??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.maximum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${c.maximum}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",b=c.inclusive?`${c.maximum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${c.maximum} ${(f==null?void 0:f.unit)??""}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?"<=":"<",x=o(c.origin??"value");return f!=null&&f.unit?`${f.longLabel} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.maximum.toString()} ${f.unit}`:`${(f==null?void 0:f.longLabel)??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.maximum.toString()}`}case"too_small":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.shortLabel)??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.minimum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${c.minimum}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(c.minimum===1&&c.inclusive){const w=(c.origin,"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3");return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${w}`}const b=c.inclusive?`${c.minimum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${c.minimum} ${(f==null?void 0:f.unit)??""}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?">=":">",x=o(c.origin??"value");return f!=null&&f.unit?`${f.shortLabel} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.minimum.toString()} ${f.unit}`:`${(f==null?void 0:f.shortLabel)??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.minimum.toString()}`}case"invalid_format":{const f=c;if(f.format==="starts_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${f.prefix}"`;if(f.format==="ends_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${f.suffix}"`;if(f.format==="includes")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${f.includes}"`;if(f.format==="regex")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${f.pattern}`;const p=l[f.format],v=(p==null?void 0:p.label)??f.format,x=((p==null?void 0:p.gender)??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return`${v} \u05DC\u05D0 ${x}`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${c.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${c.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${c.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${qe(c.keys,", ")}`;case"invalid_key":return"\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${i(c.origin??"array")}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function nIe(){return{localeError:tIe()}}const rIe=()=>{const e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(i))return"t\xF6mb";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return i=>{switch(i.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${i.expected}, a kapott \xE9rt\xE9k ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Rt(i.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xFAl nagy: ${i.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${o}${i.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${i.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} m\xE9rete t\xFAl kicsi ${o}${i.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} t\xFAl kicsi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\xC9rv\xE9nytelen string: "${o.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:o.format==="ends_with"?`\xC9rv\xE9nytelen string: "${o.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:o.format==="includes"?`\xC9rv\xE9nytelen string: "${o.includes}" \xE9rt\xE9ket kell tartalmaznia`:o.format==="regex"?`\xC9rv\xE9nytelen string: ${o.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[o.format]??i.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${i.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${i.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${i.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function iIe(){return{localeError:rIe()}}const oIe=()=>{const e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak valid: diharapkan ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak valid: diharapkan ${Rt(i.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: diharapkan ${i.origin??"value"} memiliki ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${i.origin??"value"} menjadi ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: diharapkan ${i.origin} memiliki ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${i.origin} menjadi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak valid: harus dimulai dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak valid: harus berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak valid: harus menyertakan "${o.includes}"`:o.format==="regex"?`String tidak valid: harus sesuai pola ${o.pattern}`:`${r[o.format]??i.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${i.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${i.origin}`;default:return"Input tidak valid"}}};function aIe(){return{localeError:oIe()}}const sIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"n\xFAmer";case"object":{if(Array.isArray(e))return"fylki";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},lIe=()=>{const e={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function t(r){return e[r]??null}const n={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"};return r=>{switch(r.code){case"invalid_type":return`Rangt gildi: \xDE\xFA sl\xF3st inn ${sIe(r.input)} \xFEar sem \xE1 a\xF0 vera ${r.expected}`;case"invalid_value":return r.values.length===1?`Rangt gildi: gert r\xE1\xF0 fyrir ${Rt(r.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} hafi ${i}${r.maximum.toString()} ${o.unit??"hluti"}`:`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} s\xE9 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} hafi ${i}${r.minimum.toString()} ${o.unit}`:`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} s\xE9 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${i.prefix}"`:i.format==="ends_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${i.suffix}"`:i.format==="includes"?`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${i.includes}"`:i.format==="regex"?`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${i.pattern}`:`Rangt ${n[i.format]??r.format}`}case"not_multiple_of":return`R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${r.divisor}`;case"unrecognized_keys":return`\xD3\xFEekkt ${r.keys.length>1?"ir lyklar":"ur lykill"}: ${qe(r.keys,", ")}`;case"invalid_key":return`Rangur lykill \xED ${r.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi \xED ${r.origin}`;default:return"Rangt gildi"}}};function uIe(){return{localeError:lIe()}}const cIe=()=>{const e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numero";case"object":{if(Array.isArray(i))return"vettore";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input non valido: atteso ${i.expected}, ricevuto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input non valido: atteso ${Rt(i.values[0])}`:`Opzione non valida: atteso uno tra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Troppo grande: ${i.origin??"valore"} deve avere ${o}${i.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${i.origin??"valore"} deve essere ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Troppo piccolo: ${i.origin} deve avere ${o}${i.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${i.origin} deve essere ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Stringa non valida: deve iniziare con "${o.prefix}"`:o.format==="ends_with"?`Stringa non valida: deve terminare con "${o.suffix}"`:o.format==="includes"?`Stringa non valida: deve includere "${o.includes}"`:o.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${i.divisor}`;case"unrecognized_keys":return`Chiav${i.keys.length>1?"i":"e"} non riconosciut${i.keys.length>1?"e":"a"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${i.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${i.origin}`;default:return"Input non valido"}}};function dIe(){return{localeError:cIe()}}const fIe=()=>{const e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(i))return"\u914D\u5217";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${i.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${n(i.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return i.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Rt(i.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${qe(i.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{const o=i.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=t(i.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${a.unit??"\u8981\u7D20"}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{const o=i.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=t(i.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${a.unit}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${o.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${i.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${i.keys.length>1?"\u7FA4":""}: ${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function hIe(){return{localeError:fIe()}}const pIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8";case"object":{if(Array.isArray(e))return"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return{string:"\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",undefined:"undefined",bigint:"bigint",symbol:"symbol",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0"}[t]??t},mIe=()=>{const e={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function t(r){return e[r]??null}const n={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",json_string:"JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"};return r=>{switch(r.code){case"invalid_type":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${pIe(r.input)}`;case"invalid_value":return r.values.length===1?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${Rt(r.values[0])}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${qe(r.values,"|")}-\u10D3\u10D0\u10DC`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${o.verb} ${i}${r.maximum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} ${o.verb} ${i}${r.minimum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} \u10D8\u10E7\u10DD\u10E1 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.prefix}"-\u10D8\u10D7`:i.format==="ends_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.suffix}"-\u10D8\u10D7`:i.format==="includes"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${i.includes}"-\u10E1`:i.format==="regex"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${i.pattern}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${n[i.format]??r.format}`}case"not_multiple_of":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${r.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case"unrecognized_keys":return`\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${r.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${r.origin}-\u10E8\u10D8`;case"invalid_union":return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case"invalid_element":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${r.origin}-\u10E8\u10D8`;default:return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};function gIe(){return{localeError:mIe()}}const vIe=()=>{const e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(i))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(i===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return i=>{switch(i.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Rt(i.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${o.prefix}"`:o.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${o.suffix}"`:o.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${o.includes}"`:o.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${o.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${i.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${qe(i.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function OX(){return{localeError:vIe()}}function yIe(){return OX()}const bIe=()=>{const e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return i=>{switch(i.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${i.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${n(i.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return i.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Rt(i.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${qe(i.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{const o=i.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=o==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()} ${o}${a}`}case"too_small":{const o=i.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=o==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()} ${o}${a}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:o.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${o.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${r[o.format]??i.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${i.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${qe(i.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${i.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${i.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function xIe(){return{localeError:bIe()}}const _Ie=e=>ob(typeof e,e),ob=(e,t=void 0)=>{switch(e){case"number":return Number.isNaN(t)?"NaN":"skai\u010Dius";case"bigint":return"sveikasis skai\u010Dius";case"string":return"eilut\u0117";case"boolean":return"login\u0117 reik\u0161m\u0117";case"undefined":case"void":return"neapibr\u0117\u017Eta reik\u0161m\u0117";case"function":return"funkcija";case"symbol":return"simbolis";case"object":return t===void 0?"ne\u017Einomas objektas":t===null?"nulin\u0117 reik\u0161m\u0117":Array.isArray(t)?"masyvas":Object.getPrototypeOf(t)!==Object.prototype&&t.constructor?t.constructor.name:"objektas";case"null":return"nulin\u0117 reik\u0161m\u0117"}return e},ab=e=>e.charAt(0).toUpperCase()+e.slice(1);function zX(e){const t=Math.abs(e),n=t%10,r=t%100;return r>=11&&r<=19||n===0?"many":n===1?"one":"few"}const wIe=()=>{const e={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function t(r,i,o,a){const s=e[r]??null;return s===null?s:{unit:s.unit[i],verb:s.verb[a][o?"inclusive":"notInclusive"]}}const n={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"};return r=>{switch(r.code){case"invalid_type":return`Gautas tipas ${_Ie(r.input)}, o tik\u0117tasi - ${ob(r.expected)}`;case"invalid_value":return r.values.length===1?`Privalo b\u016Bti ${Rt(r.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${qe(r.values,"|")} pasirinkim\u0173`;case"too_big":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.maximum)),r.inclusive??!1,"smaller");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.maximum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.maximum.toString()} ${o==null?void 0:o.unit}`}case"too_small":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.minimum)),r.inclusive??!1,"bigger");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.minimum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.minimum.toString()} ${o==null?void 0:o.unit}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Eilut\u0117 privalo prasid\u0117ti "${i.prefix}"`:i.format==="ends_with"?`Eilut\u0117 privalo pasibaigti "${i.suffix}"`:i.format==="includes"?`Eilut\u0117 privalo \u012Ftraukti "${i.includes}"`:i.format==="regex"?`Eilut\u0117 privalo atitikti ${i.pattern}`:`Neteisingas ${n[i.format]??r.format}`}case"not_multiple_of":return`Skai\u010Dius privalo b\u016Bti ${r.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpa\u017Eint${r.keys.length>1?"i":"as"} rakt${r.keys.length>1?"ai":"as"}: ${qe(r.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga \u012Fvestis";case"invalid_element":{const i=ob(r.origin);return`${ab(i??r.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return"Klaidinga \u012Fvestis"}}};function kIe(){return{localeError:wIe()}}const SIe=()=>{const e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(i))return"\u043D\u0438\u0437\u0430";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return i=>{switch(i.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Invalid input: expected ${Rt(i.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${i.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${i.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function CIe(){return{localeError:SIe()}}const jIe=()=>{const e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombor";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak sah: dijangka ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak sah: dijangka ${Rt(i.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: dijangka ${i.origin??"nilai"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${i.origin??"nilai"} adalah ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: dijangka ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${i.origin} adalah ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak sah: mesti bermula dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak sah: mesti mengandungi "${o.includes}"`:o.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${o.pattern}`:`${r[o.format]??i.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${i.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${i.origin}`;default:return"Input tidak sah"}}};function TIe(){return{localeError:jIe()}}const IIe=()=>{const e={string:{unit:"tekens",verb:"te hebben"},file:{unit:"bytes",verb:"te hebben"},array:{unit:"elementen",verb:"te hebben"},set:{unit:"elementen",verb:"te hebben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"getal";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return i=>{switch(i.code){case"invalid_type":return`Ongeldige invoer: verwacht ${i.expected}, ontving ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ongeldige invoer: verwacht ${Rt(i.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Te groot: verwacht dat ${i.origin??"waarde"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elementen"}`:`Te groot: verwacht dat ${i.origin??"waarde"} ${o}${i.maximum.toString()} is`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Te klein: verwacht dat ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Te klein: verwacht dat ${i.origin} ${o}${i.minimum.toString()} is`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ongeldige tekst: moet met "${o.prefix}" beginnen`:o.format==="ends_with"?`Ongeldige tekst: moet op "${o.suffix}" eindigen`:o.format==="includes"?`Ongeldige tekst: moet "${o.includes}" bevatten`:o.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${o.pattern}`:`Ongeldig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${i.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${i.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${i.origin}`;default:return"Ongeldige invoer"}}};function EIe(){return{localeError:IIe()}}const NIe=()=>{const e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"tall";case"object":{if(Array.isArray(i))return"liste";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Ugyldig input: forventet ${i.expected}, fikk ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ugyldig verdi: forventet ${Rt(i.values[0])}`:`Ugyldig valg: forventet en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${o.prefix}"`:o.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${o.suffix}"`:o.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${o.includes}"`:o.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${o.pattern}`:`Ugyldig ${r[o.format]??i.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${i.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${i.origin}`;default:return"Ugyldig input"}}};function $Ie(){return{localeError:NIe()}}const MIe=()=>{const e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numara";case"object":{if(Array.isArray(i))return"saf";if(i===null)return"gayb";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return i=>{switch(i.code){case"invalid_type":return`F\xE2sit giren: umulan ${i.expected}, al\u0131nan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`F\xE2sit giren: umulan ${Rt(i.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{const o=i;return o.format==="starts_with"?`F\xE2sit metin: "${o.prefix}" ile ba\u015Flamal\u0131.`:o.format==="ends_with"?`F\xE2sit metin: "${o.suffix}" ile bitmeli.`:o.format==="includes"?`F\xE2sit metin: "${o.includes}" ihtiv\xE2 etmeli.`:o.format==="regex"?`F\xE2sit metin: ${o.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[o.format]??i.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${i.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${i.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function RIe(){return{localeError:MIe()}}const LIe=()=>{const e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0627\u0631\u06D0";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return i=>{switch(i.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${i.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${n(i.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return i.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Rt(i.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${qe(i.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0648\u064A`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0648\u064A`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:o.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:o.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${o.includes}" \u0648\u0644\u0631\u064A`:o.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${o.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[o.format]??i.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${i.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${i.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${i.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${i.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function PIe(){return{localeError:LIe()}}const OIe=()=>{const e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"liczba";case"object":{if(Array.isArray(i))return"tablica";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return i=>{switch(i.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${i.expected}, otrzymano ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Rt(i.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${o.prefix}"`:o.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${o.suffix}"`:o.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${o.includes}"`:o.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${o.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[o.format]??i.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${i.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${i.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${i.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function zIe(){return{localeError:OIe()}}const DIe=()=>{const e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(i))return"array";if(i===null)return"nulo";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${i.expected}, recebido ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entrada inv\xE1lida: esperado ${Rt(i.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Muito grande: esperado que ${i.origin??"valor"} tivesse ${o}${i.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${i.origin??"valor"} fosse ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Muito pequeno: esperado que ${i.origin} tivesse ${o}${i.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${i.origin} fosse ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${o.prefix}"`:o.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${o.suffix}"`:o.format==="includes"?`Texto inv\xE1lido: deve incluir "${o.includes}"`:o.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${o.pattern}`:`${r[o.format]??i.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${i.divisor}`;case"unrecognized_keys":return`Chave${i.keys.length>1?"s":""} desconhecida${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${i.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${i.origin}`;default:return"Campo inv\xE1lido"}}};function AIe(){return{localeError:DIe()}}function DX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const FIe=()=>{const e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${i.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Rt(i.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.maximum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.minimum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${i.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0438":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${i.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function UIe(){return{localeError:FIe()}}const BIe=()=>{const e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(i))return"tabela";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return i=>{switch(i.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${i.expected}, prejeto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Rt(i.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} imelo ${o}${i.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${i.origin} imelo ${o}${i.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${o.prefix}"`:o.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${o.suffix}"`:o.format==="includes"?`Neveljaven niz: mora vsebovati "${o.includes}"`:o.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${o.pattern}`:`Neveljaven ${r[o.format]??i.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${i.divisor}`;case"unrecognized_keys":return`Neprepoznan${i.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${i.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${i.origin}`;default:return"Neveljaven vnos"}}};function WIe(){return{localeError:BIe()}}const VIe=()=>{const e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"antal";case"object":{if(Array.isArray(i))return"lista";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return i=>{switch(i.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${i.expected}, fick ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Rt(i.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${o.prefix}"`:o.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${o.suffix}"`:o.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${o.includes}"`:o.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${o.pattern}"`:`Ogiltig(t) ${r[o.format]??i.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${i.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${i.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function HIe(){return{localeError:VIe()}}const ZIe=()=>{const e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(i))return"\u0B85\u0BA3\u0BBF";if(i===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Rt(i.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${qe(i.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${o.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${i.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${i.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function qIe(){return{localeError:ZIe()}}const GIe=()=>{const e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(i))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(i===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return i=>{switch(i.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${i.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Rt(i.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${o.prefix}"`:o.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${o.suffix}"`:o.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${o.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:o.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${o.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${i.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function YIe(){return{localeError:GIe()}}const KIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},XIe=()=>{const e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function t(r){return e[r]??null}const n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return r=>{switch(r.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${r.expected}, al\u0131nan ${KIe(r.input)}`;case"invalid_value":return r.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Rt(r.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()} ${o.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()} ${o.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Ge\xE7ersiz metin: "${i.prefix}" ile ba\u015Flamal\u0131`:i.format==="ends_with"?`Ge\xE7ersiz metin: "${i.suffix}" ile bitmeli`:i.format==="includes"?`Ge\xE7ersiz metin: "${i.includes}" i\xE7ermeli`:i.format==="regex"?`Ge\xE7ersiz metin: ${i.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${n[i.format]??r.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${r.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${r.keys.length>1?"lar":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`${r.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${r.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function JIe(){return{localeError:XIe()}}const QIe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${i.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Rt(i.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} \u0431\u0443\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0456":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${i.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function AX(){return{localeError:QIe()}}function eEe(){return AX()}const tEe=()=>{const e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(i))return"\u0622\u0631\u06D2";if(i===null)return"\u0646\u0644";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return i=>{switch(i.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${i.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${n(i.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return i.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Rt(i.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${qe(i.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${o}${i.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u06D2 ${o}${i.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u0627 ${o}${i.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${o.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${i.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${i.keys.length>1?"\u0632":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function nEe(){return{localeError:tEe()}}const rEe=()=>{const e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(i))return"m\u1EA3ng";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return i=>{switch(i.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${i.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Rt(i.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${o.prefix}"`:o.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${o.suffix}"`:o.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${o.includes}"`:o.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${o.pattern}`:`${r[o.format]??i.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${i.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${qe(i.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function iEe(){return{localeError:rEe()}}const oEe=()=>{const e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(i))return"\u6570\u7EC4";if(i===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${i.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Rt(i.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.prefix}" \u5F00\u5934`:o.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.suffix}" \u7ED3\u5C3E`:o.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${o.pattern}`:`\u65E0\u6548${r[o.format]??i.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${i.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${i.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function aEe(){return{localeError:oEe()}}const sEe=()=>{const e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${i.expected}\uFF0C\u4F46\u6536\u5230 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Rt(i.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.prefix}" \u958B\u982D`:o.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.suffix}" \u7D50\u5C3E`:o.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${o.pattern}`:`\u7121\u6548\u7684 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${i.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${i.keys.length>1?"\u5011":""}\uFF1A${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function lEe(){return{localeError:sEe()}}const uEe=()=>{const e={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\u1ECD\u0301mb\xE0";case"object":{if(Array.isArray(i))return"akop\u1ECD";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"};return i=>{switch(i.code){case"invalid_type":return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${i.expected}, \xE0m\u1ECD\u0300 a r\xED ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${Rt(i.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin??"iye"} ${a.verb} ${o}${i.maximum} ${a.unit}`:`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.maximum}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin} ${a.verb} ${o}${i.minimum} ${a.unit}`:`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.minimum}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${o.prefix}"`:o.format==="ends_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${o.suffix}"`:o.format==="includes"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${o.includes}"`:o.format==="regex"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${o.pattern}`:`A\u1E63\xEC\u1E63e: ${r[o.format]??i.format}`}case"not_multiple_of":return`N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${i.divisor}`;case"unrecognized_keys":return`B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${qe(i.keys,", ")}`;case"invalid_key":return`B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;case"invalid_union":return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case"invalid_element":return`Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;default:return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};function cEe(){return{localeError:uEe()}}const FX=Object.freeze(Object.defineProperty({__proto__:null,ar:STe,az:jTe,be:ITe,bg:$Te,ca:RTe,cs:PTe,da:zTe,de:ATe,en:PX,eo:VTe,es:ZTe,fa:GTe,fi:KTe,fr:JTe,frCA:eIe,he:nIe,hu:iIe,id:aIe,is:uIe,it:dIe,ja:hIe,ka:gIe,kh:yIe,km:OX,ko:xIe,lt:kIe,mk:CIe,ms:TIe,nl:EIe,no:$Ie,ota:RIe,pl:zIe,ps:PIe,pt:AIe,ru:UIe,sl:WIe,sv:HIe,ta:qIe,th:YIe,tr:JIe,ua:eEe,uk:AX,ur:nEe,vi:iEe,yo:cEe,zhCN:aEe,zhTW:lEe},Symbol.toStringTag,{value:"Module"}));var UX;const BX=Symbol("ZodOutput"),WX=Symbol("ZodInput");class hI{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const i={...r,...this._map.get(t)};return Object.keys(i).length?i:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function pI(){return new hI}(UX=globalThis).__zod_globalRegistry??(UX.__zod_globalRegistry=pI());const Gl=globalThis.__zod_globalRegistry;function VX(e,t){return new e({type:"string",...Oe(t)})}function HX(e,t){return new e({type:"string",coerce:!0,...Oe(t)})}function mI(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Oe(t)})}function S3(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Oe(t)})}function gI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Oe(t)})}function vI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Oe(t)})}function yI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Oe(t)})}function bI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Oe(t)})}function C3(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Oe(t)})}function xI(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Oe(t)})}function _I(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Oe(t)})}function wI(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Oe(t)})}function kI(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Oe(t)})}function SI(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Oe(t)})}function CI(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Oe(t)})}function jI(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Oe(t)})}function TI(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Oe(t)})}function II(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Oe(t)})}function ZX(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...Oe(t)})}function EI(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Oe(t)})}function NI(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Oe(t)})}function $I(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Oe(t)})}function MI(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Oe(t)})}function RI(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Oe(t)})}function LI(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Oe(t)})}const qX={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function GX(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Oe(t)})}function YX(e,t){return new e({type:"string",format:"date",check:"string_format",...Oe(t)})}function KX(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Oe(t)})}function XX(e,t){return new e({type:"string",format:"duration",check:"string_format",...Oe(t)})}function JX(e,t){return new e({type:"number",checks:[],...Oe(t)})}function QX(e,t){return new e({type:"number",coerce:!0,checks:[],...Oe(t)})}function eJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Oe(t)})}function tJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...Oe(t)})}function nJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...Oe(t)})}function rJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...Oe(t)})}function iJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...Oe(t)})}function oJ(e,t){return new e({type:"boolean",...Oe(t)})}function aJ(e,t){return new e({type:"boolean",coerce:!0,...Oe(t)})}function sJ(e,t){return new e({type:"bigint",...Oe(t)})}function lJ(e,t){return new e({type:"bigint",coerce:!0,...Oe(t)})}function uJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Oe(t)})}function cJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Oe(t)})}function dJ(e,t){return new e({type:"symbol",...Oe(t)})}function fJ(e,t){return new e({type:"undefined",...Oe(t)})}function hJ(e,t){return new e({type:"null",...Oe(t)})}function pJ(e){return new e({type:"any"})}function mJ(e){return new e({type:"unknown"})}function gJ(e,t){return new e({type:"never",...Oe(t)})}function vJ(e,t){return new e({type:"void",...Oe(t)})}function yJ(e,t){return new e({type:"date",...Oe(t)})}function bJ(e,t){return new e({type:"date",coerce:!0,...Oe(t)})}function xJ(e,t){return new e({type:"nan",...Oe(t)})}function gp(e,t){return new rI({check:"less_than",...Oe(t),value:e,inclusive:!1})}function Yl(e,t){return new rI({check:"less_than",...Oe(t),value:e,inclusive:!0})}function vp(e,t){return new iI({check:"greater_than",...Oe(t),value:e,inclusive:!1})}function ys(e,t){return new iI({check:"greater_than",...Oe(t),value:e,inclusive:!0})}function _J(e){return vp(0,e)}function wJ(e){return gp(0,e)}function kJ(e){return Yl(0,e)}function SJ(e){return ys(0,e)}function sb(e,t){return new HY({check:"multiple_of",...Oe(t),value:e})}function j3(e,t){return new GY({check:"max_size",...Oe(t),maximum:e})}function lb(e,t){return new YY({check:"min_size",...Oe(t),minimum:e})}function PI(e,t){return new KY({check:"size_equals",...Oe(t),size:e})}function T3(e,t){return new XY({check:"max_length",...Oe(t),maximum:e})}function sg(e,t){return new JY({check:"min_length",...Oe(t),minimum:e})}function I3(e,t){return new QY({check:"length_equals",...Oe(t),length:e})}function OI(e,t){return new eK({check:"string_format",format:"regex",...Oe(t),pattern:e})}function zI(e){return new tK({check:"string_format",format:"lowercase",...Oe(e)})}function DI(e){return new nK({check:"string_format",format:"uppercase",...Oe(e)})}function AI(e,t){return new rK({check:"string_format",format:"includes",...Oe(t),includes:e})}function FI(e,t){return new iK({check:"string_format",format:"starts_with",...Oe(t),prefix:e})}function UI(e,t){return new oK({check:"string_format",format:"ends_with",...Oe(t),suffix:e})}function CJ(e,t,n){return new sK({check:"property",property:e,schema:t,...Oe(n)})}function BI(e,t){return new lK({check:"mime_type",mime:e,...Oe(t)})}function Df(e){return new uK({check:"overwrite",tx:e})}function WI(e){return Df(t=>t.normalize(e))}function VI(){return Df(e=>e.trim())}function HI(){return Df(e=>e.toLowerCase())}function ZI(){return Df(e=>e.toUpperCase())}function qI(){return Df(e=>UG(e))}function jJ(e,t,n){return new e({type:"array",element:t,...Oe(n)})}function dEe(e,t,n){return new e({type:"union",options:t,...Oe(n)})}function fEe(e,t,n,r){return new e({type:"union",options:n,discriminator:t,...Oe(r)})}function hEe(e,t,n){return new e({type:"intersection",left:t,right:n})}function pEe(e,t,n,r){const i=n instanceof Bt,o=i?r:n,a=i?n:null;return new e({type:"tuple",items:t,rest:a,...Oe(o)})}function mEe(e,t,n,r){return new e({type:"record",keyType:t,valueType:n,...Oe(r)})}function gEe(e,t,n,r){return new e({type:"map",keyType:t,valueType:n,...Oe(r)})}function vEe(e,t,n){return new e({type:"set",valueType:t,...Oe(n)})}function yEe(e,t,n){const r=Array.isArray(t)?Object.fromEntries(t.map(i=>[i,i])):t;return new e({type:"enum",entries:r,...Oe(n)})}function bEe(e,t,n){return new e({type:"enum",entries:t,...Oe(n)})}function xEe(e,t,n){return new e({type:"literal",values:Array.isArray(t)?t:[t],...Oe(n)})}function TJ(e,t){return new e({type:"file",...Oe(t)})}function _Ee(e,t){return new e({type:"transform",transform:t})}function wEe(e,t){return new e({type:"optional",innerType:t})}function kEe(e,t){return new e({type:"nullable",innerType:t})}function SEe(e,t,n){return new e({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():m3(n)}})}function CEe(e,t,n){return new e({type:"nonoptional",innerType:t,...Oe(n)})}function jEe(e,t){return new e({type:"success",innerType:t})}function TEe(e,t,n){return new e({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}function IEe(e,t,n){return new e({type:"pipe",in:t,out:n})}function EEe(e,t){return new e({type:"readonly",innerType:t})}function NEe(e,t,n){return new e({type:"template_literal",parts:t,...Oe(n)})}function $Ee(e,t){return new e({type:"lazy",getter:t})}function MEe(e,t){return new e({type:"promise",innerType:t})}function IJ(e,t,n){const r=Oe(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function EJ(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Oe(n)})}function NJ(e){const t=$J(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(og(r,n.value,t._zod.def));else{const i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(og(i))}},e(n.value,n)));return t}function $J(e,t){const n=new Gr({check:"custom",...Oe(t)});return n._zod.check=e,n}function MJ(e){const t=new Gr({check:"describe"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,description:e})}],t._zod.check=()=>{},t}function RJ(e){const t=new Gr({check:"meta"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,...e})}],t._zod.check=()=>{},t}function LJ(e,t){const n=Oe(t);let r=n.truthy??["true","1","yes","on","y","enabled"],i=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(v=>typeof v=="string"?v.toLowerCase():v),i=i.map(v=>typeof v=="string"?v.toLowerCase():v));const o=new Set(r),a=new Set(i),s=e.Codec??fI,l=e.Boolean??sI,c=e.String??ib,d=new c({type:"string",error:n.error}),f=new l({type:"boolean",error:n.error}),p=new s({type:"pipe",in:d,out:f,transform:(v,x)=>{let y=v;return n.case!=="sensitive"&&(y=y.toLowerCase()),o.has(y)?!0:a.has(y)?!1:(x.issues.push({code:"invalid_value",expected:"stringbool",values:[...o,...a],input:x.value,inst:p,continue:!1}),{})},reverseTransform:(v,x)=>v===!0?r[0]||"true":i[0]||"false",error:n.error});return p}function ub(e,t,n,r={}){const i=Oe(r),o={...Oe(r),check:"string_format",type:"string",format:t,fn:typeof n=="function"?n:a=>n.test(a),...i};return n instanceof RegExp&&(o.pattern=n),new e(o)}class GI{constructor(t){this.counter=0,this.metadataRegistry=(t==null?void 0:t.metadata)??Gl,this.target=(t==null?void 0:t.target)??"draft-2020-12",this.unrepresentable=(t==null?void 0:t.unrepresentable)??"throw",this.override=(t==null?void 0:t.override)??(()=>{}),this.io=(t==null?void 0:t.io)??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var d,f,p;var r;const i=t._zod.def,o={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(t);if(a)return a.count++,n.schemaPath.includes(t)&&(a.cycle=n.path),a.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,s);const l=(f=(d=t._zod).toJSONSchema)==null?void 0:f.call(d);if(l)s.schema=l;else{const v={...n,schemaPath:[...n.schemaPath,t],path:n.path},x=t._zod.parent;if(x)s.ref=x,this.process(x,v),this.seen.get(x).isParent=!0;else{const y=s.schema;switch(i.type){case"string":{const b=y;b.type="string";const{minimum:w,maximum:_,format:S,patterns:C,contentEncoding:j}=t._zod.bag;if(typeof w=="number"&&(b.minLength=w),typeof _=="number"&&(b.maxLength=_),S&&(b.format=o[S]??S,b.format===""&&delete b.format),j&&(b.contentEncoding=j),C&&C.size>0){const T=[...C];T.length===1?b.pattern=T[0].source:T.length>1&&(s.schema.allOf=[...T.map(E=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:E.source}))])}break}case"number":{const b=y,{minimum:w,maximum:_,format:S,multipleOf:C,exclusiveMaximum:j,exclusiveMinimum:T}=t._zod.bag;typeof S=="string"&&S.includes("int")?b.type="integer":b.type="number",typeof T=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.minimum=T,b.exclusiveMinimum=!0):b.exclusiveMinimum=T),typeof w=="number"&&(b.minimum=w,typeof T=="number"&&this.target!=="draft-4"&&(T>=w?delete b.minimum:delete b.exclusiveMinimum)),typeof j=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.maximum=j,b.exclusiveMaximum=!0):b.exclusiveMaximum=j),typeof _=="number"&&(b.maximum=_,typeof j=="number"&&this.target!=="draft-4"&&(j<=_?delete b.maximum:delete b.exclusiveMaximum)),typeof C=="number"&&(b.multipleOf=C);break}case"boolean":{const b=y;b.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{this.target==="openapi-3.0"?(y.type="string",y.nullable=!0,y.enum=[null]):y.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{y.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const b=y,{minimum:w,maximum:_}=t._zod.bag;typeof w=="number"&&(b.minItems=w),typeof _=="number"&&(b.maxItems=_),b.type="array",b.items=this.process(i.element,{...v,path:[...v.path,"items"]});break}case"object":{const b=y;b.type="object",b.properties={};const w=i.shape;for(const C in w)b.properties[C]=this.process(w[C],{...v,path:[...v.path,"properties",C]});const _=new Set(Object.keys(w)),S=new Set([..._].filter(C=>{const j=i.shape[C]._zod;return this.io==="input"?j.optin===void 0:j.optout===void 0}));S.size>0&&(b.required=Array.from(S)),((p=i.catchall)==null?void 0:p._zod.def.type)==="never"?b.additionalProperties=!1:i.catchall?i.catchall&&(b.additionalProperties=this.process(i.catchall,{...v,path:[...v.path,"additionalProperties"]})):this.io==="output"&&(b.additionalProperties=!1);break}case"union":{const b=y,w=i.discriminator!==void 0,_=i.options.map((S,C)=>this.process(S,{...v,path:[...v.path,w?"oneOf":"anyOf",C]}));w?b.oneOf=_:b.anyOf=_;break}case"intersection":{const b=y,w=this.process(i.left,{...v,path:[...v.path,"allOf",0]}),_=this.process(i.right,{...v,path:[...v.path,"allOf",1]}),S=j=>"allOf"in j&&Object.keys(j).length===1,C=[...S(w)?w.allOf:[w],...S(_)?_.allOf:[_]];b.allOf=C;break}case"tuple":{const b=y;b.type="array";const w=this.target==="draft-2020-12"?"prefixItems":"items",_=this.target==="draft-2020-12"||this.target==="openapi-3.0"?"items":"additionalItems",S=i.items.map((E,$)=>this.process(E,{...v,path:[...v.path,w,$]})),C=i.rest?this.process(i.rest,{...v,path:[...v.path,_,...this.target==="openapi-3.0"?[i.items.length]:[]]}):null;this.target==="draft-2020-12"?(b.prefixItems=S,C&&(b.items=C)):this.target==="openapi-3.0"?(b.items={anyOf:S},C&&b.items.anyOf.push(C),b.minItems=S.length,C||(b.maxItems=S.length)):(b.items=S,C&&(b.additionalItems=C));const{minimum:j,maximum:T}=t._zod.bag;typeof j=="number"&&(b.minItems=j),typeof T=="number"&&(b.maxItems=T);break}case"record":{const b=y;b.type="object",(this.target==="draft-7"||this.target==="draft-2020-12")&&(b.propertyNames=this.process(i.keyType,{...v,path:[...v.path,"propertyNames"]})),b.additionalProperties=this.process(i.valueType,{...v,path:[...v.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const b=y,w=AT(i.entries);w.every(_=>typeof _=="number")&&(b.type="number"),w.every(_=>typeof _=="string")&&(b.type="string"),b.enum=w;break}case"literal":{const b=y,w=[];for(const _ of i.values)if(_===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof _=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");w.push(Number(_))}else w.push(_);if(w.length!==0)if(w.length===1){const _=w[0];b.type=_===null?"null":typeof _,this.target==="draft-4"||this.target==="openapi-3.0"?b.enum=[_]:b.const=_}else w.every(_=>typeof _=="number")&&(b.type="number"),w.every(_=>typeof _=="string")&&(b.type="string"),w.every(_=>typeof _=="boolean")&&(b.type="string"),w.every(_=>_===null)&&(b.type="null"),b.enum=w;break}case"file":{const b=y,w={type:"string",format:"binary",contentEncoding:"binary"},{minimum:_,maximum:S,mime:C}=t._zod.bag;_!==void 0&&(w.minLength=_),S!==void 0&&(w.maxLength=S),C?C.length===1?(w.contentMediaType=C[0],Object.assign(b,w)):b.anyOf=C.map(j=>({...w,contentMediaType:j})):Object.assign(b,w);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const b=this.process(i.innerType,v);this.target==="openapi-3.0"?(s.ref=i.innerType,y.nullable=!0):y.anyOf=[b,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"success":{const b=y;b.type="boolean";break}case"default":{this.process(i.innerType,v),s.ref=i.innerType,y.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,v),s.ref=i.innerType,this.io==="input"&&(y._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,v),s.ref=i.innerType;let b;try{b=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}y.default=b;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const b=y,w=t._zod.pattern;if(!w)throw new Error("Pattern not found in template literal");b.type="string",b.pattern=w.source;break}case"pipe":{const b=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(b,v),s.ref=b;break}case"readonly":{this.process(i.innerType,v),s.ref=i.innerType,y.readOnly=!0;break}case"promise":{this.process(i.innerType,v),s.ref=i.innerType;break}case"optional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"lazy":{const b=t._zod.innerType;this.process(b,v),s.ref=b;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema");break}}}}const c=this.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),this.io==="input"&&fa(t)&&(delete s.schema.examples,delete s.schema.default),this.io==="input"&&s.schema._prefault&&((r=s.schema).default??(r.default=s.schema._prefault)),delete s.schema._prefault,this.seen.get(t).schema}emit(t,n){var d,f,p,v,x,y;const r={cycles:(n==null?void 0:n.cycles)??"ref",reused:(n==null?void 0:n.reused)??"inline",external:(n==null?void 0:n.external)??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=b=>{var C;const w=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){const j=(C=r.external.registry.get(b[0]))==null?void 0:C.id,T=r.external.uri??($=>$);if(j)return{ref:T(j)};const E=b[1].defId??b[1].schema.id??`schema${this.counter++}`;return b[1].defId=E,{defId:E,ref:`${T("__shared")}#/${w}/${E}`}}if(b[1]===i)return{ref:"#"};const _=`#/${w}/`,S=b[1].schema.id??`__schema${this.counter++}`;return{defId:S,ref:_+S}},a=b=>{if(b[1].schema.$ref)return;const w=b[1],{ref:_,defId:S}=o(b);w.def={...w.schema},S&&(w.defId=S);const C=w.schema;for(const j in C)delete C[j];C.$ref=_};if(r.cycles==="throw")for(const b of this.seen.entries()){const w=b[1];if(w.cycle)throw new Error(`Cycle detected: #/${(d=w.cycle)==null?void 0:d.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const b of this.seen.entries()){const w=b[1];if(t===b[0]){a(b);continue}if(r.external){const _=(f=r.external.registry.get(b[0]))==null?void 0:f.id;if(t!==b[0]&&_){a(b);continue}}if((p=this.metadataRegistry.get(b[0]))!=null&&p.id){a(b);continue}if(w.cycle){a(b);continue}if(w.count>1&&r.reused==="ref"){a(b);continue}}const s=(b,w)=>{const _=this.seen.get(b),S=_.def??_.schema,C={...S};if(_.ref===null)return;const j=_.ref;if(_.ref=null,j){s(j,w);const T=this.seen.get(j).schema;T.$ref&&(w.target==="draft-7"||w.target==="draft-4"||w.target==="openapi-3.0")?(S.allOf=S.allOf??[],S.allOf.push(T)):(Object.assign(S,T),Object.assign(S,C))}_.isParent||this.override({zodSchema:b,jsonSchema:S,path:_.path??[]})};for(const b of[...this.seen.entries()].reverse())s(b[0],{target:this.target});const l={};if(this.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?l.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?l.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),(v=r.external)==null?void 0:v.uri){const b=(x=r.external.registry.get(t))==null?void 0:x.id;if(!b)throw new Error("Schema is missing an `id` property");l.$id=r.external.uri(b)}Object.assign(l,i.def);const c=((y=r.external)==null?void 0:y.defs)??{};for(const b of this.seen.entries()){const w=b[1];w.def&&w.defId&&(c[w.defId]=w.def)}r.external||Object.keys(c).length>0&&(this.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{return JSON.parse(JSON.stringify(l))}catch{throw new Error("Error converting schema to JSON.")}}}function PJ(e,t){if(e instanceof hI){const r=new GI(t),i={};for(const s of e._idmap.entries()){const[l,c]=s;r.process(c)}const o={},a={registry:e,uri:t==null?void 0:t.uri,defs:i};for(const s of e._idmap.entries()){const[l,c]=s;o[l]=r.emit(c,{...t,external:a})}if(Object.keys(i).length>0){const s=r.target==="draft-2020-12"?"$defs":"definitions";o.__shared={[s]:i}}return{schemas:o}}const n=new GI(t);return n.process(e),n.emit(e,t)}function fa(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return fa(r.element,n);if(r.type==="set")return fa(r.valueType,n);if(r.type==="lazy")return fa(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return fa(r.innerType,n);if(r.type==="intersection")return fa(r.left,n)||fa(r.right,n);if(r.type==="record"||r.type==="map")return fa(r.keyType,n)||fa(r.valueType,n);if(r.type==="pipe")return fa(r.in,n)||fa(r.out,n);if(r.type==="object"){for(const i in r.shape)if(fa(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(const i of r.options)if(fa(i,n))return!0;return!1}if(r.type==="tuple"){for(const i of r.items)if(fa(i,n))return!0;return!!(r.rest&&fa(r.rest,n))}return!1}const REe=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),LEe=Object.freeze(Object.defineProperty({__proto__:null,$ZodAny:VK,$ZodArray:KK,$ZodAsyncError:fp,$ZodBase64:MK,$ZodBase64URL:LK,$ZodBigInt:lI,$ZodBigIntFormat:FK,$ZodBoolean:sI,$ZodCIDRv4:NK,$ZodCIDRv6:$K,$ZodCUID:yK,$ZodCUID2:bK,$ZodCatch:kX,$ZodCheck:Gr,$ZodCheckBigIntFormat:qY,$ZodCheckEndsWith:oK,$ZodCheckGreaterThan:iI,$ZodCheckIncludes:rK,$ZodCheckLengthEquals:QY,$ZodCheckLessThan:rI,$ZodCheckLowerCase:tK,$ZodCheckMaxLength:XY,$ZodCheckMaxSize:GY,$ZodCheckMimeType:lK,$ZodCheckMinLength:JY,$ZodCheckMinSize:YY,$ZodCheckMultipleOf:HY,$ZodCheckNumberFormat:ZY,$ZodCheckOverwrite:uK,$ZodCheckProperty:sK,$ZodCheckRegex:eK,$ZodCheckSizeEquals:KY,$ZodCheckStartsWith:iK,$ZodCheckStringFormat:rb,$ZodCheckUpperCase:nK,$ZodCodec:fI,$ZodCustom:MX,$ZodCustomStringFormat:DK,$ZodDate:GK,$ZodDefault:vX,$ZodDiscriminatedUnion:nX,$ZodE164:PK,$ZodEmail:pK,$ZodEmoji:gK,$ZodEncodeError:d3,$ZodEnum:cX,$ZodError:BT,$ZodFile:fX,$ZodFunction:EX,$ZodGUID:fK,$ZodIPv4:TK,$ZodIPv6:IK,$ZodISODate:SK,$ZodISODateTime:kK,$ZodISODuration:jK,$ZodISOTime:CK,$ZodIntersection:rX,$ZodJWT:zK,$ZodKSUID:wK,$ZodLazy:$X,$ZodLiteral:dX,$ZodMAC:EK,$ZodMap:aX,$ZodNaN:SX,$ZodNanoID:vK,$ZodNever:ZK,$ZodNonOptional:xX,$ZodNull:WK,$ZodNullable:gX,$ZodNumber:aI,$ZodNumberFormat:AK,$ZodObject:QK,$ZodObjectJIT:eX,$ZodOptional:mX,$ZodPipe:CX,$ZodPrefault:bX,$ZodPromise:NX,$ZodReadonly:jX,$ZodRealError:vs,$ZodRecord:oX,$ZodRegistry:hI,$ZodSet:lX,$ZodString:ib,$ZodStringFormat:yr,$ZodSuccess:wX,$ZodSymbol:UK,$ZodTemplateLiteral:IX,$ZodTransform:hX,$ZodTuple:dI,$ZodType:Bt,$ZodULID:xK,$ZodURL:mK,$ZodUUID:hK,$ZodUndefined:BK,$ZodUnion:uI,$ZodUnknown:HK,$ZodVoid:qK,$ZodXID:_K,$brand:DG,$constructor:be,$input:WX,$output:BX,Doc:cK,JSONSchema:REe,JSONSchemaGenerator:GI,NEVER:zG,TimePrecision:qX,_any:pJ,_array:jJ,_base64:$I,_base64url:MI,_bigint:sJ,_boolean:oJ,_catch:TEe,_check:$J,_cidrv4:EI,_cidrv6:NI,_coercedBigint:lJ,_coercedBoolean:aJ,_coercedDate:bJ,_coercedNumber:QX,_coercedString:HX,_cuid:wI,_cuid2:kI,_custom:IJ,_date:yJ,_decode:GT,_decodeAsync:KT,_default:SEe,_discriminatedUnion:fEe,_e164:RI,_email:mI,_emoji:xI,_encode:qT,_encodeAsync:YT,_endsWith:UI,_enum:yEe,_file:TJ,_float32:tJ,_float64:nJ,_gt:vp,_gte:ys,_guid:S3,_includes:AI,_int:eJ,_int32:rJ,_int64:uJ,_intersection:hEe,_ipv4:TI,_ipv6:II,_isoDate:YX,_isoDateTime:GX,_isoDuration:XX,_isoTime:KX,_jwt:LI,_ksuid:jI,_lazy:$Ee,_length:I3,_literal:xEe,_lowercase:zI,_lt:gp,_lte:Yl,_mac:ZX,_map:gEe,_max:Yl,_maxLength:T3,_maxSize:j3,_mime:BI,_min:ys,_minLength:sg,_minSize:lb,_multipleOf:sb,_nan:xJ,_nanoid:_I,_nativeEnum:bEe,_negative:wJ,_never:gJ,_nonnegative:SJ,_nonoptional:CEe,_nonpositive:kJ,_normalize:WI,_null:hJ,_nullable:kEe,_number:JX,_optional:wEe,_overwrite:Df,_parse:Xy,_parseAsync:Jy,_pipe:IEe,_positive:_J,_promise:MEe,_property:CJ,_readonly:EEe,_record:mEe,_refine:EJ,_regex:OI,_safeDecode:JT,_safeDecodeAsync:eI,_safeEncode:XT,_safeEncodeAsync:QT,_safeParse:Qy,_safeParseAsync:eb,_set:vEe,_size:PI,_slugify:qI,_startsWith:FI,_string:VX,_stringFormat:ub,_stringbool:LJ,_success:jEe,_superRefine:NJ,_symbol:dJ,_templateLiteral:NEe,_toLowerCase:HI,_toUpperCase:ZI,_transform:_Ee,_trim:VI,_tuple:pEe,_uint32:iJ,_uint64:cJ,_ulid:SI,_undefined:fJ,_union:dEe,_unknown:mJ,_uppercase:DI,_url:C3,_uuid:gI,_uuidv4:vI,_uuidv6:yI,_uuidv7:bI,_void:vJ,_xid:CI,clone:il,config:da,decode:Z7e,decodeAsync:G7e,describe:MJ,encode:H7e,encodeAsync:q7e,flattenError:WT,formatError:VT,globalConfig:f3,globalRegistry:Gl,isValidBase64:oI,isValidBase64URL:RK,isValidJWT:OK,locales:FX,meta:RJ,parse:HT,parseAsync:ZT,prettifyError:aY,regexes:nI,registry:pI,safeDecode:K7e,safeDecodeAsync:J7e,safeEncode:Y7e,safeEncodeAsync:X7e,safeParse:sY,safeParseAsync:lY,toDotPath:oY,toJSONSchema:PJ,treeifyError:iY,util:nY,version:dK},Symbol.toStringTag,{value:"Module"})),YI=be("ZodISODateTime",(e,t)=>{kK.init(e,t),Ir.init(e,t)});function OJ(e){return GX(YI,e)}const KI=be("ZodISODate",(e,t)=>{SK.init(e,t),Ir.init(e,t)});function zJ(e){return YX(KI,e)}const XI=be("ZodISOTime",(e,t)=>{CK.init(e,t),Ir.init(e,t)});function DJ(e){return KX(XI,e)}const JI=be("ZodISODuration",(e,t)=>{jK.init(e,t),Ir.init(e,t)});function AJ(e){return XX(JI,e)}const PEe=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:KI,ZodISODateTime:YI,ZodISODuration:JI,ZodISOTime:XI,date:zJ,datetime:OJ,duration:AJ,time:DJ},Symbol.toStringTag,{value:"Module"})),FJ=(e,t)=>{BT.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>VT(e,n)},flatten:{value:n=>WT(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,h3,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,h3,2)}},isEmpty:{get(){return e.issues.length===0}}})},OEe=be("ZodError",FJ),bs=be("ZodError",FJ,{Parent:Error}),UJ=Xy(bs),BJ=Jy(bs),WJ=Qy(bs),VJ=eb(bs),HJ=qT(bs),ZJ=GT(bs),qJ=YT(bs),GJ=KT(bs),YJ=XT(bs),KJ=JT(bs),XJ=QT(bs),JJ=eI(bs),rn=be("ZodType",(e,t)=>(Bt.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(rd(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]})),e.clone=(n,r)=>il(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>UJ(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>WJ(e,n,r),e.parseAsync=async(n,r)=>BJ(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>VJ(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>HJ(e,n,r),e.decode=(n,r)=>ZJ(e,n,r),e.encodeAsync=async(n,r)=>qJ(e,n,r),e.decodeAsync=async(n,r)=>GJ(e,n,r),e.safeEncode=(n,r)=>YJ(e,n,r),e.safeDecode=(n,r)=>KJ(e,n,r),e.safeEncodeAsync=async(n,r)=>XJ(e,n,r),e.safeDecodeAsync=async(n,r)=>JJ(e,n,r),e.refine=(n,r)=>e.check(PQ(n,r)),e.superRefine=n=>e.check(OQ(n)),e.overwrite=n=>e.check(Df(n)),e.optional=()=>z3(e),e.nullable=()=>_s(e),e.nullish=()=>z3(_s(e)),e.nonoptional=n=>wQ(e,n),e.array=()=>zr(e),e.or=n=>O3([e,n]),e.and=n=>cQ(e,n),e.transform=n=>D3(e,SE(n)),e.default=n=>bQ(e,n),e.prefault=n=>_Q(e,n),e.catch=n=>CQ(e,n),e.pipe=n=>D3(e,n),e.readonly=()=>IQ(e),e.describe=n=>{const r=e.clone();return Gl.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){var n;return(n=Gl.get(e))==null?void 0:n.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Gl.get(e);const r=e.clone();return Gl.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),QI=be("_ZodString",(e,t)=>{ib.init(e,t),rn.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(OI(...r)),e.includes=(...r)=>e.check(AI(...r)),e.startsWith=(...r)=>e.check(FI(...r)),e.endsWith=(...r)=>e.check(UI(...r)),e.min=(...r)=>e.check(sg(...r)),e.max=(...r)=>e.check(T3(...r)),e.length=(...r)=>e.check(I3(...r)),e.nonempty=(...r)=>e.check(sg(1,...r)),e.lowercase=r=>e.check(zI(r)),e.uppercase=r=>e.check(DI(r)),e.trim=()=>e.check(VI()),e.normalize=(...r)=>e.check(WI(...r)),e.toLowerCase=()=>e.check(HI()),e.toUpperCase=()=>e.check(ZI()),e.slugify=()=>e.check(qI())}),E3=be("ZodString",(e,t)=>{ib.init(e,t),QI.init(e,t),e.email=n=>e.check(mI(eE,n)),e.url=n=>e.check(C3($3,n)),e.jwt=n=>e.check(LI(mE,n)),e.emoji=n=>e.check(xI(tE,n)),e.guid=n=>e.check(S3(N3,n)),e.uuid=n=>e.check(gI(od,n)),e.uuidv4=n=>e.check(vI(od,n)),e.uuidv6=n=>e.check(yI(od,n)),e.uuidv7=n=>e.check(bI(od,n)),e.nanoid=n=>e.check(_I(nE,n)),e.guid=n=>e.check(S3(N3,n)),e.cuid=n=>e.check(wI(rE,n)),e.cuid2=n=>e.check(kI(iE,n)),e.ulid=n=>e.check(SI(oE,n)),e.base64=n=>e.check($I(fE,n)),e.base64url=n=>e.check(MI(hE,n)),e.xid=n=>e.check(CI(aE,n)),e.ksuid=n=>e.check(jI(sE,n)),e.ipv4=n=>e.check(TI(lE,n)),e.ipv6=n=>e.check(II(uE,n)),e.cidrv4=n=>e.check(EI(cE,n)),e.cidrv6=n=>e.check(NI(dE,n)),e.e164=n=>e.check(RI(pE,n)),e.datetime=n=>e.check(OJ(n)),e.date=n=>e.check(zJ(n)),e.time=n=>e.check(DJ(n)),e.duration=n=>e.check(AJ(n))});function Et(e){return VX(E3,e)}const Ir=be("ZodStringFormat",(e,t)=>{yr.init(e,t),QI.init(e,t)}),eE=be("ZodEmail",(e,t)=>{pK.init(e,t),Ir.init(e,t)});function zEe(e){return mI(eE,e)}const N3=be("ZodGUID",(e,t)=>{fK.init(e,t),Ir.init(e,t)});function DEe(e){return S3(N3,e)}const od=be("ZodUUID",(e,t)=>{hK.init(e,t),Ir.init(e,t)});function AEe(e){return gI(od,e)}function FEe(e){return vI(od,e)}function UEe(e){return yI(od,e)}function BEe(e){return bI(od,e)}const $3=be("ZodURL",(e,t)=>{mK.init(e,t),Ir.init(e,t)});function WEe(e){return C3($3,e)}function VEe(e){return C3($3,{protocol:/^https?$/,hostname:TY,...Oe(e)})}const tE=be("ZodEmoji",(e,t)=>{gK.init(e,t),Ir.init(e,t)});function HEe(e){return xI(tE,e)}const nE=be("ZodNanoID",(e,t)=>{vK.init(e,t),Ir.init(e,t)});function ZEe(e){return _I(nE,e)}const rE=be("ZodCUID",(e,t)=>{yK.init(e,t),Ir.init(e,t)});function qEe(e){return wI(rE,e)}const iE=be("ZodCUID2",(e,t)=>{bK.init(e,t),Ir.init(e,t)});function GEe(e){return kI(iE,e)}const oE=be("ZodULID",(e,t)=>{xK.init(e,t),Ir.init(e,t)});function YEe(e){return SI(oE,e)}const aE=be("ZodXID",(e,t)=>{_K.init(e,t),Ir.init(e,t)});function KEe(e){return CI(aE,e)}const sE=be("ZodKSUID",(e,t)=>{wK.init(e,t),Ir.init(e,t)});function XEe(e){return jI(sE,e)}const lE=be("ZodIPv4",(e,t)=>{TK.init(e,t),Ir.init(e,t)});function JEe(e){return TI(lE,e)}const QJ=be("ZodMAC",(e,t)=>{EK.init(e,t),Ir.init(e,t)});function QEe(e){return ZX(QJ,e)}const uE=be("ZodIPv6",(e,t)=>{IK.init(e,t),Ir.init(e,t)});function eNe(e){return II(uE,e)}const cE=be("ZodCIDRv4",(e,t)=>{NK.init(e,t),Ir.init(e,t)});function tNe(e){return EI(cE,e)}const dE=be("ZodCIDRv6",(e,t)=>{$K.init(e,t),Ir.init(e,t)});function nNe(e){return NI(dE,e)}const fE=be("ZodBase64",(e,t)=>{MK.init(e,t),Ir.init(e,t)});function rNe(e){return $I(fE,e)}const hE=be("ZodBase64URL",(e,t)=>{LK.init(e,t),Ir.init(e,t)});function iNe(e){return MI(hE,e)}const pE=be("ZodE164",(e,t)=>{PK.init(e,t),Ir.init(e,t)});function oNe(e){return RI(pE,e)}const mE=be("ZodJWT",(e,t)=>{zK.init(e,t),Ir.init(e,t)});function aNe(e){return LI(mE,e)}const cb=be("ZodCustomStringFormat",(e,t)=>{DK.init(e,t),Ir.init(e,t)});function sNe(e,t,n={}){return ub(cb,e,t,n)}function lNe(e){return ub(cb,"hostname",jY,e)}function uNe(e){return ub(cb,"hex",WY,e)}function cNe(e,t){const n=(t==null?void 0:t.enc)??"hex",r=`${e}_${n}`,i=nI[r];if(!i)throw new Error(`Unrecognized hash format: ${r}`);return ub(cb,r,i,t)}const M3=be("ZodNumber",(e,t)=>{aI.init(e,t),rn.init(e,t),e.gt=(r,i)=>e.check(vp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(gp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.int=r=>e.check(gE(r)),e.safe=r=>e.check(gE(r)),e.positive=r=>e.check(vp(0,r)),e.nonnegative=r=>e.check(ys(0,r)),e.negative=r=>e.check(gp(0,r)),e.nonpositive=r=>e.check(Yl(0,r)),e.multipleOf=(r,i)=>e.check(sb(r,i)),e.step=(r,i)=>e.check(sb(r,i)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function oe(e){return JX(M3,e)}const lg=be("ZodNumberFormat",(e,t)=>{AK.init(e,t),M3.init(e,t)});function gE(e){return eJ(lg,e)}function dNe(e){return tJ(lg,e)}function fNe(e){return nJ(lg,e)}function hNe(e){return rJ(lg,e)}function pNe(e){return iJ(lg,e)}const R3=be("ZodBoolean",(e,t)=>{sI.init(e,t),rn.init(e,t)});function ad(e){return oJ(R3,e)}const L3=be("ZodBigInt",(e,t)=>{lI.init(e,t),rn.init(e,t),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.gt=(r,i)=>e.check(vp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(gp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.positive=r=>e.check(vp(BigInt(0),r)),e.negative=r=>e.check(gp(BigInt(0),r)),e.nonpositive=r=>e.check(Yl(BigInt(0),r)),e.nonnegative=r=>e.check(ys(BigInt(0),r)),e.multipleOf=(r,i)=>e.check(sb(r,i));const n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function mNe(e){return sJ(L3,e)}const vE=be("ZodBigIntFormat",(e,t)=>{FK.init(e,t),L3.init(e,t)});function gNe(e){return uJ(vE,e)}function vNe(e){return cJ(vE,e)}const eQ=be("ZodSymbol",(e,t)=>{UK.init(e,t),rn.init(e,t)});function yNe(e){return dJ(eQ,e)}const tQ=be("ZodUndefined",(e,t)=>{BK.init(e,t),rn.init(e,t)});function bNe(e){return fJ(tQ,e)}const nQ=be("ZodNull",(e,t)=>{WK.init(e,t),rn.init(e,t)});function yE(e){return hJ(nQ,e)}const rQ=be("ZodAny",(e,t)=>{VK.init(e,t),rn.init(e,t)});function xNe(){return pJ(rQ)}const iQ=be("ZodUnknown",(e,t)=>{HK.init(e,t),rn.init(e,t)});function ug(){return mJ(iQ)}const oQ=be("ZodNever",(e,t)=>{ZK.init(e,t),rn.init(e,t)});function bE(e){return gJ(oQ,e)}const aQ=be("ZodVoid",(e,t)=>{qK.init(e,t),rn.init(e,t)});function _Ne(e){return vJ(aQ,e)}const xE=be("ZodDate",(e,t)=>{GK.init(e,t),rn.init(e,t),e.min=(r,i)=>e.check(ys(r,i)),e.max=(r,i)=>e.check(Yl(r,i));const n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function wNe(e){return yJ(xE,e)}const sQ=be("ZodArray",(e,t)=>{KK.init(e,t),rn.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(sg(n,r)),e.nonempty=n=>e.check(sg(1,n)),e.max=(n,r)=>e.check(T3(n,r)),e.length=(n,r)=>e.check(I3(n,r)),e.unwrap=()=>e.element});function zr(e,t){return jJ(sQ,e,t)}function kNe(e){const t=e._zod.def.shape;return xs(Object.keys(t))}const P3=be("ZodObject",(e,t)=>{eX.init(e,t),rn.init(e,t),vn(e,"shape",()=>t.shape),e.keyof=()=>xs(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ug()}),e.loose=()=>e.clone({...e._zod.def,catchall:ug()}),e.strict=()=>e.clone({...e._zod.def,catchall:bE()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>YG(e,n),e.safeExtend=n=>KG(e,n),e.merge=n=>XG(e,n),e.pick=n=>qG(e,n),e.omit=n=>GG(e,n),e.partial=(...n)=>JG(CE,e,n[0]),e.required=(...n)=>QG(jE,e,n[0])});function kt(e,t){const n={type:"object",shape:e??{},...Oe(t)};return new P3(n)}function SNe(e,t){return new P3({type:"object",shape:e,catchall:bE(),...Oe(t)})}function CNe(e,t){return new P3({type:"object",shape:e,catchall:ug(),...Oe(t)})}const _E=be("ZodUnion",(e,t)=>{uI.init(e,t),rn.init(e,t),e.options=t.options});function O3(e,t){return new _E({type:"union",options:e,...Oe(t)})}const lQ=be("ZodDiscriminatedUnion",(e,t)=>{_E.init(e,t),nX.init(e,t)});function sd(e,t,n){return new lQ({type:"union",options:t,discriminator:e,...Oe(n)})}const uQ=be("ZodIntersection",(e,t)=>{rX.init(e,t),rn.init(e,t)});function cQ(e,t){return new uQ({type:"intersection",left:e,right:t})}const dQ=be("ZodTuple",(e,t)=>{dI.init(e,t),rn.init(e,t),e.rest=n=>e.clone({...e._zod.def,rest:n})});function wE(e,t,n){const r=t instanceof Bt,i=r?n:t,o=r?t:null;return new dQ({type:"tuple",items:e,rest:o,...Oe(i)})}const kE=be("ZodRecord",(e,t)=>{oX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function db(e,t,n){return new kE({type:"record",keyType:e,valueType:t,...Oe(n)})}function jNe(e,t,n){const r=il(e);return r._zod.values=void 0,new kE({type:"record",keyType:r,valueType:t,...Oe(n)})}const fQ=be("ZodMap",(e,t)=>{aX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function TNe(e,t,n){return new fQ({type:"map",keyType:e,valueType:t,...Oe(n)})}const hQ=be("ZodSet",(e,t)=>{lX.init(e,t),rn.init(e,t),e.min=(...n)=>e.check(lb(...n)),e.nonempty=n=>e.check(lb(1,n)),e.max=(...n)=>e.check(j3(...n)),e.size=(...n)=>e.check(PI(...n))});function INe(e,t){return new hQ({type:"set",valueType:e,...Oe(t)})}const fb=be("ZodEnum",(e,t)=>{cX.init(e,t),rn.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{const o={};for(const a of r)if(n.has(a))o[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Oe(i),entries:o})},e.exclude=(r,i)=>{const o={...t.entries};for(const a of r)if(n.has(a))delete o[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Oe(i),entries:o})}});function xs(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new fb({type:"enum",entries:n,...Oe(t)})}function ENe(e,t){return new fb({type:"enum",entries:e,...Oe(t)})}const pQ=be("ZodLiteral",(e,t)=>{dX.init(e,t),rn.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ft(e,t){return new pQ({type:"literal",values:Array.isArray(e)?e:[e],...Oe(t)})}const mQ=be("ZodFile",(e,t)=>{fX.init(e,t),rn.init(e,t),e.min=(n,r)=>e.check(lb(n,r)),e.max=(n,r)=>e.check(j3(n,r)),e.mime=(n,r)=>e.check(BI(Array.isArray(n)?n:[n],r))});function NNe(e){return TJ(mQ,e)}const gQ=be("ZodTransform",(e,t)=>{hX.init(e,t),rn.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);n.addIssue=o=>{if(typeof o=="string")n.issues.push(og(o,n.value,t));else{const a=o;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=e),n.issues.push(og(a))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(o=>(n.value=o,n)):(n.value=i,n)}});function SE(e){return new gQ({type:"transform",transform:e})}const CE=be("ZodOptional",(e,t)=>{mX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function z3(e){return new CE({type:"optional",innerType:e})}const vQ=be("ZodNullable",(e,t)=>{gX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _s(e){return new vQ({type:"nullable",innerType:e})}function $Ne(e){return z3(_s(e))}const yQ=be("ZodDefault",(e,t)=>{vX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function bQ(e,t){return new yQ({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const xQ=be("ZodPrefault",(e,t)=>{bX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _Q(e,t){return new xQ({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const jE=be("ZodNonOptional",(e,t)=>{xX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function wQ(e,t){return new jE({type:"nonoptional",innerType:e,...Oe(t)})}const kQ=be("ZodSuccess",(e,t)=>{wX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function MNe(e){return new kQ({type:"success",innerType:e})}const SQ=be("ZodCatch",(e,t)=>{kX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function CQ(e,t){return new SQ({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const jQ=be("ZodNaN",(e,t)=>{SX.init(e,t),rn.init(e,t)});function RNe(e){return xJ(jQ,e)}const TE=be("ZodPipe",(e,t)=>{CX.init(e,t),rn.init(e,t),e.in=t.in,e.out=t.out});function D3(e,t){return new TE({type:"pipe",in:e,out:t})}const IE=be("ZodCodec",(e,t)=>{TE.init(e,t),fI.init(e,t)});function LNe(e,t,n){return new IE({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}const TQ=be("ZodReadonly",(e,t)=>{jX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IQ(e){return new TQ({type:"readonly",innerType:e})}const EQ=be("ZodTemplateLiteral",(e,t)=>{IX.init(e,t),rn.init(e,t)});function PNe(e,t){return new EQ({type:"template_literal",parts:e,...Oe(t)})}const NQ=be("ZodLazy",(e,t)=>{$X.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.getter()});function $Q(e){return new NQ({type:"lazy",getter:e})}const MQ=be("ZodPromise",(e,t)=>{NX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function ONe(e){return new MQ({type:"promise",innerType:e})}const RQ=be("ZodFunction",(e,t)=>{EX.init(e,t),rn.init(e,t)});function LQ(e){return new RQ({type:"function",input:Array.isArray(e==null?void 0:e.input)?wE(e==null?void 0:e.input):(e==null?void 0:e.input)??zr(ug()),output:(e==null?void 0:e.output)??ug()})}const A3=be("ZodCustom",(e,t)=>{MX.init(e,t),rn.init(e,t)});function zNe(e){const t=new Gr({check:"custom"});return t._zod.check=e,t}function DNe(e,t){return IJ(A3,e??(()=>!0),t)}function PQ(e,t={}){return EJ(A3,e,t)}function OQ(e){return NJ(e)}const ANe=MJ,FNe=RJ;function UNe(e,t={error:`Input not instance of ${e.name}`}){const n=new A3({type:"custom",check:"custom",fn:r=>r instanceof e,abort:!0,...Oe(t)});return n._zod.bag.Class=e,n}const BNe=(...e)=>LJ({Codec:IE,Boolean:R3,String:E3},...e);function WNe(e){const t=$Q(()=>O3([Et(e),oe(),ad(),yE(),zr(t),db(Et(),t)]));return t}function zQ(e,t){return D3(SE(e),t)}const VNe={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function HNe(e){da({customError:e})}function ZNe(){return da().customError}var EE;EE||(EE={});function qNe(e){return HX(E3,e)}function jo(e){return QX(M3,e)}function GNe(e){return aJ(R3,e)}function Zt(e){return lJ(L3,e)}function YNe(e){return bJ(xE,e)}const KNe=Object.freeze(Object.defineProperty({__proto__:null,bigint:Zt,boolean:GNe,date:YNe,number:jo,string:qNe},Symbol.toStringTag,{value:"Module"}));da(PX());const XNe=Object.freeze(Object.defineProperty({__proto__:null,$brand:DG,$input:WX,$output:BX,NEVER:zG,TimePrecision:qX,ZodAny:rQ,ZodArray:sQ,ZodBase64:fE,ZodBase64URL:hE,ZodBigInt:L3,ZodBigIntFormat:vE,ZodBoolean:R3,ZodCIDRv4:cE,ZodCIDRv6:dE,ZodCUID:rE,ZodCUID2:iE,ZodCatch:SQ,ZodCodec:IE,ZodCustom:A3,ZodCustomStringFormat:cb,ZodDate:xE,ZodDefault:yQ,ZodDiscriminatedUnion:lQ,ZodE164:pE,ZodEmail:eE,ZodEmoji:tE,ZodEnum:fb,ZodError:OEe,ZodFile:mQ,get ZodFirstPartyTypeKind(){return EE},ZodFunction:RQ,ZodGUID:N3,ZodIPv4:lE,ZodIPv6:uE,ZodISODate:KI,ZodISODateTime:YI,ZodISODuration:JI,ZodISOTime:XI,ZodIntersection:uQ,ZodIssueCode:VNe,ZodJWT:mE,ZodKSUID:sE,ZodLazy:NQ,ZodLiteral:pQ,ZodMAC:QJ,ZodMap:fQ,ZodNaN:jQ,ZodNanoID:nE,ZodNever:oQ,ZodNonOptional:jE,ZodNull:nQ,ZodNullable:vQ,ZodNumber:M3,ZodNumberFormat:lg,ZodObject:P3,ZodOptional:CE,ZodPipe:TE,ZodPrefault:xQ,ZodPromise:MQ,ZodReadonly:TQ,ZodRealError:bs,ZodRecord:kE,ZodSet:hQ,ZodString:E3,ZodStringFormat:Ir,ZodSuccess:kQ,ZodSymbol:eQ,ZodTemplateLiteral:EQ,ZodTransform:gQ,ZodTuple:dQ,ZodType:rn,ZodULID:oE,ZodURL:$3,ZodUUID:od,ZodUndefined:tQ,ZodUnion:_E,ZodUnknown:iQ,ZodVoid:aQ,ZodXID:aE,_ZodString:QI,_default:bQ,_function:LQ,any:xNe,array:zr,base64:rNe,base64url:iNe,bigint:mNe,boolean:ad,catch:CQ,check:zNe,cidrv4:tNe,cidrv6:nNe,clone:il,codec:LNe,coerce:KNe,config:da,core:LEe,cuid:qEe,cuid2:GEe,custom:DNe,date:wNe,decode:ZJ,decodeAsync:GJ,describe:ANe,discriminatedUnion:sd,e164:oNe,email:zEe,emoji:HEe,encode:HJ,encodeAsync:qJ,endsWith:UI,enum:xs,file:NNe,flattenError:WT,float32:dNe,float64:fNe,formatError:VT,function:LQ,getErrorMap:ZNe,globalRegistry:Gl,gt:vp,gte:ys,guid:DEe,hash:cNe,hex:uNe,hostname:lNe,httpUrl:VEe,includes:AI,instanceof:UNe,int:gE,int32:hNe,int64:gNe,intersection:cQ,ipv4:JEe,ipv6:eNe,iso:PEe,json:WNe,jwt:aNe,keyof:kNe,ksuid:XEe,lazy:$Q,length:I3,literal:ft,locales:FX,looseObject:CNe,lowercase:zI,lt:gp,lte:Yl,mac:QEe,map:TNe,maxLength:T3,maxSize:j3,meta:FNe,mime:BI,minLength:sg,minSize:lb,multipleOf:sb,nan:RNe,nanoid:ZEe,nativeEnum:ENe,negative:wJ,never:bE,nonnegative:SJ,nonoptional:wQ,nonpositive:kJ,normalize:WI,null:yE,nullable:_s,nullish:$Ne,number:oe,object:kt,optional:z3,overwrite:Df,parse:UJ,parseAsync:BJ,partialRecord:jNe,pipe:D3,positive:_J,prefault:_Q,preprocess:zQ,prettifyError:aY,promise:ONe,property:CJ,readonly:IQ,record:db,refine:PQ,regex:OI,regexes:nI,registry:pI,safeDecode:KJ,safeDecodeAsync:JJ,safeEncode:YJ,safeEncodeAsync:XJ,safeParse:WJ,safeParseAsync:VJ,set:INe,setErrorMap:HNe,size:PI,slugify:qI,startsWith:FI,strictObject:SNe,string:Et,stringFormat:sNe,stringbool:BNe,success:MNe,superRefine:OQ,symbol:yNe,templateLiteral:PNe,toJSONSchema:PJ,toLowerCase:HI,toUpperCase:ZI,transform:SE,treeifyError:iY,trim:VI,tuple:wE,uint32:pNe,uint64:vNe,ulid:YEe,undefined:bNe,union:O3,unknown:ug,uppercase:DI,url:WEe,util:nY,uuid:AEe,uuidv4:FEe,uuidv6:UEe,uuidv7:BEe,void:_Ne,xid:KEe},Symbol.toStringTag,{value:"Module"})),DQ=xs(["Frankendancer","Firedancer"]),NE=DQ.enum,ln=kt({topic:ft("summary")}),AQ=kt({topic:ft("epoch")}),cg=kt({topic:ft("gossip")}),FQ=kt({topic:ft("peers")}),qu=kt({topic:ft("slot")}),UQ=kt({topic:ft("block_engine")}),F3=kt({topic:ft("wait_for_supermajority")});sd("topic",[ln,AQ,cg,FQ,qu,UQ,F3]);const JNe=Et(),QNe=xs(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),e$e=Et(),t$e=Et(),n$e=Et(),r$e=Zt(),BQ=xs(["perf","balanced","revenue"]),ld=BQ.enum,$E=xs(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","genesi","diag","event"]),i$e=kt({kind:Et(),kind_id:oe()}),WQ=Zt();Zt();const o$e=oe(),a$e=oe(),s$e=oe(),l$e=oe().nullable(),u$e=oe().nullable(),c$e=kt({repair:oe().array(),turbine:oe().array()}),d$e=jo(),f$e=oe(),h$e=oe().nullable(),p$e=oe().nullable(),m$e=oe(),g$e=oe().nullable(),v$e=oe(),y$e=oe(),b$e=kt({total:oe(),vote:oe(),nonvote_success:oe(),nonvote_failed:oe()}),x$e=kt({ingress:zr(oe()),egress:zr(oe())}),_$e=kt({pack_cranked:oe(),pack_retained:oe(),resolv_retained:oe(),quic:oe(),udp:oe(),gossip:oe(),block_engine:oe()}),w$e=kt({net_overrun:oe(),quic_overrun:oe(),quic_frag_drop:oe(),quic_abandoned:oe(),tpu_quic_invalid:oe(),tpu_udp_invalid:oe(),verify_overrun:oe(),verify_parse:oe(),verify_failed:oe(),verify_duplicate:oe(),dedup_duplicate:oe(),resolv_lut_failed:oe(),resolv_expired:oe(),resolv_no_ledger:oe(),resolv_ancient:oe(),resolv_retained:oe(),pack_invalid:oe(),pack_already_executed:oe(),pack_invalid_bundle:oe(),pack_retained:oe(),pack_leader_slow:oe(),pack_wait_full:oe(),pack_expired:oe(),bank_invalid:oe(),bank_nonce_already_advanced:oe(),bank_nonce_advance_failed:oe(),bank_nonce_wrong_blockhash:oe(),block_success:oe(),block_fail:oe()}),VQ=kt({in:_$e,out:w$e}),k$e=kt({next_leader_slot:oe().nullable(),waterfall:VQ}),HQ=kt({net_in:oe(),quic:oe(),verify:oe(),bundle_rtt_smoothed_millis:oe(),bundle_rx_delay_millis_p90:oe(),dedup:oe(),pack:oe(),bank:oe(),poh:oe(),shred:oe(),store:oe(),net_out:oe()}),S$e=kt({next_leader_slot:oe().nullable(),tile_primary_metric:HQ}),C$e=kt({timers:zr(zr(oe()).nullable()),sched_timers:zr(zr(oe()).nullable()),in_backp:zr(ad().nullable()),backp_msgs:zr(oe().nullable()),alive:zr(oe().nullable()),nvcsw:zr(oe().nullable()),nivcsw:zr(oe().nullable()),last_cpu:zr(oe().nullable()),minflt:zr(oe().nullable()),majflt:zr(oe().nullable())});kt({tile:Et(),kind_id:oe(),idle:oe()});const j$e=xs(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),T$e=kt({phase:j$e,downloading_full_snapshot_slot:oe().nullable(),downloading_full_snapshot_peer:Et().nullable(),downloading_full_snapshot_elapsed_secs:oe().nullable(),downloading_full_snapshot_remaining_secs:oe().nullable(),downloading_full_snapshot_throughput:oe().nullable(),downloading_full_snapshot_total_bytes:jo().nullable(),downloading_full_snapshot_current_bytes:jo().nullable(),downloading_incremental_snapshot_slot:oe().nullable(),downloading_incremental_snapshot_peer:Et().nullable(),downloading_incremental_snapshot_elapsed_secs:oe().nullable(),downloading_incremental_snapshot_remaining_secs:oe().nullable(),downloading_incremental_snapshot_throughput:oe().nullable(),downloading_incremental_snapshot_total_bytes:jo().nullable(),downloading_incremental_snapshot_current_bytes:jo().nullable(),ledger_slot:oe().nullable(),ledger_max_slot:oe().nullable(),waiting_for_supermajority_slot:oe().nullable(),waiting_for_supermajority_stake_percent:oe().nullable()}),ZQ=xs(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]),wn=ZQ.enum,I$e=kt({phase:ZQ,joining_gossip_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_reset_count:oe().nullable().optional(),loading_full_snapshot_slot:oe().nullable().optional(),loading_full_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_path:Et().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_insert_accounts:oe().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:oe().nullable().optional(),loading_incremental_snapshot_reset_count:oe().nullable().optional(),loading_incremental_snapshot_slot:oe().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_path:Et().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_insert_accounts:oe().nullable().optional(),wait_for_supermajority_bank_hash:Et().nullable().optional(),wait_for_supermajority_shred_version:Et().nullable().optional(),wait_for_supermajority_attempt:oe().nullable().optional(),wait_for_supermajority_total_stake:Zt().nullable().optional(),wait_for_supermajority_connected_stake:Zt().nullable().optional(),wait_for_supermajority_total_peers:oe().nullable().optional(),wait_for_supermajority_connected_peers:oe().nullable().optional(),catching_up_elapsed_seconds:oe().nullable().optional(),catching_up_first_replay_slot:oe().nullable().optional()}),E$e=zQ(e=>{if(!e||typeof e!="object"||Array.isArray(e))return e;const t=e;return{...t,txn_preload_end_timestamps_nanos:t.txn_preload_end_timestamps_nanos??t.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:t.txn_start_timestamps_nanos??t.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:t.txn_load_end_timestamps_nanos??t.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:t.txn_end_timestamps_nanos??t.txn_commit_start_timestamps_nanos}},kt({start_timestamp_nanos:Zt(),target_end_timestamp_nanos:Zt(),txn_mb_start_timestamps_nanos:Zt().array(),txn_mb_end_timestamps_nanos:Zt().array(),txn_compute_units_requested:oe().array(),txn_compute_units_consumed:oe().array(),txn_transaction_fee:Zt().array(),txn_priority_fee:Zt().array(),txn_tips:Zt().array(),txn_error_code:oe().array(),txn_from_bundle:ad().array(),txn_is_simple_vote:ad().array(),txn_bank_idx:oe().array(),txn_preload_end_timestamps_nanos:Zt().array(),txn_start_timestamps_nanos:Zt().array(),txn_load_end_timestamps_nanos:Zt().array(),txn_end_timestamps_nanos:Zt().array(),txn_commit_end_timestamps_nanos:Zt().array().optional(),txn_arrival_timestamps_nanos:Zt().array(),txn_microblock_id:oe().array(),txn_landed:ad().array(),txn_signature:Et().array(),txn_source_ipv4:Et().array(),txn_source_tpu:Et().array()})),N$e=xs(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),$$e=kt({slot:oe(),mine:ad(),skipped:ad(),level:N$e,success_nonvote_transaction_cnt:oe().nullable(),failed_nonvote_transaction_cnt:oe().nullable(),success_vote_transaction_cnt:oe().nullable(),failed_vote_transaction_cnt:oe().nullable(),priority_fee:Zt().nullable(),transaction_fee:Zt().nullable(),tips:Zt().nullable(),max_compute_units:oe().nullable(),compute_units:oe().nullable(),duration_nanos:oe().nullable(),completed_time_nanos:Zt().nullable(),vote_latency:oe().nullable()}),M$e=zr(wE([oe(),oe(),oe(),oe()])),R$e=xs(["voting","non-voting","delinquent"]),L$e=oe(),P$e=kt({epoch:oe(),skip_rate:oe()}),O$e=kt({hits:oe(),lookups:oe(),insertions:oe(),insertion_bytes:oe(),evictions:oe(),eviction_bytes:oe(),spills:oe(),spill_bytes:oe(),free_bytes:oe(),size_bytes:oe()}),z$e=sd("key",[ln.extend({key:ft("ping"),value:yE(),id:oe()}),ln.extend({key:ft("version"),value:JNe}),ln.extend({key:ft("cluster"),value:QNe}),ln.extend({key:ft("commit_hash"),value:e$e}),ln.extend({key:ft("identity_key"),value:t$e}),ln.extend({key:ft("vote_key"),value:n$e}),ln.extend({key:ft("startup_time_nanos"),value:r$e}),ln.extend({key:ft("schedule_strategy"),value:BQ}),ln.extend({key:ft("tiles"),value:i$e.array()}),ln.extend({key:ft("identity_balance"),value:WQ}),ln.extend({key:ft("vote_balance"),value:WQ}),ln.extend({key:ft("root_slot"),value:o$e}),ln.extend({key:ft("optimistically_confirmed_slot"),value:a$e}),ln.extend({key:ft("completed_slot"),value:s$e}),ln.extend({key:ft("estimated_slot"),value:f$e}),ln.extend({key:ft("reset_slot"),value:h$e}),ln.extend({key:ft("storage_slot"),value:p$e}),ln.extend({key:ft("vote_slot"),value:m$e}),ln.extend({key:ft("slot_caught_up"),value:g$e}),ln.extend({key:ft("active_fork_count"),value:v$e}),ln.extend({key:ft("estimated_slot_duration_nanos"),value:y$e}),ln.extend({key:ft("estimated_tps"),value:b$e}),ln.extend({key:ft("live_network_metrics"),value:x$e}),ln.extend({key:ft("live_txn_waterfall"),value:k$e}),ln.extend({key:ft("live_tile_primary_metric"),value:S$e}),ln.extend({key:ft("live_tile_metrics"),value:C$e}),ln.extend({key:ft("live_tile_timers"),value:oe().array()}),ln.extend({key:ft("startup_progress"),value:T$e}),ln.extend({key:ft("boot_progress"),value:I$e}),ln.extend({key:ft("tps_history"),value:M$e}),ln.extend({key:ft("vote_state"),value:R$e}),ln.extend({key:ft("vote_distance"),value:L$e}),ln.extend({key:ft("skip_rate"),value:P$e}),ln.extend({key:ft("turbine_slot"),value:l$e}),ln.extend({key:ft("repair_slot"),value:u$e}),ln.extend({key:ft("catch_up_history"),value:c$e}),ln.extend({key:ft("server_time_nanos"),value:d$e}),ln.extend({key:ft("live_program_cache"),value:O$e})]),D$e=kt({epoch:oe(),start_time_nanos:Et().nullable(),end_time_nanos:Et().nullable(),start_slot:oe(),end_slot:oe(),excluded_stake_lamports:Zt(),staked_pubkeys:Et().array(),staked_lamports:Zt().array(),leader_slots:oe().array()}),A$e=sd("key",[AQ.extend({key:ft("new"),value:D$e})]),F$e=kt({num_push_messages_rx_success:oe(),num_push_messages_rx_failure:oe(),num_push_entries_rx_success:oe(),num_push_entries_rx_failure:oe(),num_push_entries_rx_duplicate:oe(),num_pull_response_messages_rx_success:oe(),num_pull_response_messages_rx_failure:oe(),num_pull_response_entries_rx_success:oe(),num_pull_response_entries_rx_failure:oe(),num_pull_response_entries_rx_duplicate:oe(),total_peers:oe(),total_stake:Zt(),connected_stake:Zt(),connected_staked_peers:oe(),connected_unstaked_peers:oe()}),qQ=kt({total_throughput:oe(),peer_names:Et().array(),peer_identities:Et().array(),peer_throughput:oe().array()}),U$e=kt({capacity:oe(),expired_count:oe(),evicted_count:oe(),count:oe().array(),count_tx:oe().array(),bytes_tx:oe().array()}),B$e=kt({num_bytes_rx:oe().array(),num_bytes_tx:oe().array(),num_messages_rx:oe().array(),num_messages_tx:oe().array()}),W$e=kt({health:F$e,ingress:qQ,egress:qQ,storage:U$e,messages:B$e}),V$e=oe(),GQ=O3([Et(),oe()]),YQ=db(Et(),db(Et(),GQ)).nullable(),H$e=kt({changes:zr(kt({row_index:oe(),column_name:Et(),new_value:GQ}))}),Z$e=sd("key",[cg.extend({key:ft("network_stats"),value:W$e}),cg.extend({key:ft("peers_size_update"),value:V$e}),cg.extend({key:ft("query_scroll"),value:YQ}),cg.extend({key:ft("query_sort"),value:YQ}),cg.extend({key:ft("view_update"),value:H$e})]),q$e=kt({client_id:oe().nullable().optional(),wallclock:oe(),shred_version:oe(),version:Et().nullable(),feature_set:oe().nullable(),sockets:db(Et(),Et()),country_code:Et().nullable().optional(),city_name:Et().nullable().optional()}),G$e=kt({vote_account:Et(),activated_stake:Zt(),last_vote:_s(oe()),root_slot:_s(oe()),epoch_credits:oe(),commission:oe(),delinquent:ad()}),KQ=kt({name:_s(Et()),details:_s(Et()),website:_s(Et()),icon_url:_s(Et()),keybase_username:_s(Et())}),XQ=kt({identity_pubkey:Et(),gossip:_s(q$e),vote:zr(G$e),info:_s(KQ)}),Y$e=kt({identity_pubkey:Et()}),K$e=kt({add:zr(XQ).optional(),update:zr(XQ).optional(),remove:zr(Y$e).optional()}),X$e=sd("key",[FQ.extend({key:ft("update"),value:K$e})]),J$e=kt({timestamp_nanos:Et(),tile_timers:oe().array()}),Q$e=kt({timestamp_nanos:Zt(),regular:oe(),votes:oe(),conflicting:oe(),bundles:oe()}),eMe=kt({account:Et(),cost:oe()}),tMe=kt({used_total_block_cost:oe(),used_total_vote_cost:oe(),used_account_write_costs:eMe.array(),used_total_bytes:oe(),used_total_microblocks:oe(),max_total_block_cost:oe(),max_total_vote_cost:oe(),max_account_write_cost:oe(),max_total_bytes:oe(),max_total_microblocks:oe()}),nMe=kt({block_hash:Et().optional(),end_slot_reason:Et().optional(),slot_schedule_counts:oe().array(),end_slot_schedule_counts:oe().array(),pending_smallest_cost:oe().nullable(),pending_smallest_bytes:oe().nullable(),pending_vote_smallest_cost:oe().nullable(),pending_vote_smallest_bytes:oe().nullable()}),U3=kt({publish:$$e,waterfall:VQ.nullable().optional(),tile_primary_metric:HQ.nullable().optional(),tile_timers:J$e.array().nullable().optional(),scheduler_counts:Q$e.array().nullable().optional(),transactions:E$e.nullable().optional(),limits:tMe.nullable().optional(),scheduler_stats:nMe.nullable().optional()}),rMe=oe().array(),iMe=oe().array(),oMe=kt({slots_largest_tips:oe().array(),vals_largest_tips:Zt().array(),slots_smallest_tips:oe().array(),vals_smallest_tips:Zt().array(),slots_largest_fees:oe().array(),vals_largest_fees:Zt().array(),slots_smallest_fees:oe().array(),vals_smallest_fees:Zt().array(),slots_largest_rewards:oe().array(),vals_largest_rewards:Zt().array(),slots_smallest_rewards:oe().array(),vals_smallest_rewards:Zt().array(),slots_largest_duration:oe().array(),vals_largest_duration:Zt().array(),slots_smallest_duration:oe().array(),vals_smallest_duration:Zt().array(),slots_largest_compute_units:oe().array(),vals_largest_compute_units:Zt().array(),slots_smallest_compute_units:oe().array(),vals_smallest_compute_units:Zt().array(),slots_largest_skipped:oe().array(),vals_largest_skipped:Zt().array(),slots_smallest_skipped:oe().array(),vals_smallest_skipped:Zt().array()});var Er=(e=>(e[e.shred_repair_request=0]="shred_repair_request",e[e.shred_received_turbine=1]="shred_received_turbine",e[e.shred_received_repair=2]="shred_received_repair",e[e.shred_replayed=3]="shred_replayed",e[e.slot_complete=4]="slot_complete",e[e.shred_published=6]="shred_published",e))(Er||{});const aMe=kt({reference_slot:oe(),reference_ts:Zt(),slot_delta:oe().array(),shred_idx:oe().nullable().array(),event:oe().array(),event_ts_delta:jo().array()}),sMe=sd("key",[qu.extend({key:ft("skipped_history"),value:rMe}),qu.extend({key:ft("skipped_history_cluster"),value:iMe}),qu.extend({key:ft("update"),value:U3}),qu.extend({key:ft("query"),value:U3.nullable()}),qu.extend({key:ft("query_detailed"),value:U3.nullable()}),qu.extend({key:ft("query_transactions"),value:U3.nullable()}),qu.extend({key:ft("query_rankings"),value:oMe}),qu.extend({key:ft("live_shreds"),value:aMe}),qu.extend({key:ft("late_votes_history"),value:kt({slot:oe().array(),latency:oe().nullable().array()})})]),lMe=xs(["disconnected","connecting","connected","sleeping"]),uMe=kt({name:Et(),url:Et(),ip:Et().optional(),status:lMe}),cMe=sd("key",[UQ.extend({key:ft("update"),value:uMe})]),dMe=kt({staked_pubkeys:Et().array(),staked_lamports:Zt().array(),infos:zr(KQ.nullable())}),fMe=Et().array(),hMe=Et().array(),pMe=sd("key",[F3.extend({key:ft("stakes"),value:dMe}),F3.extend({key:ft("peer_add"),value:fMe}),F3.extend({key:ft("peer_remove"),value:hMe})]),JQ=DQ.safeParse("Firedancer".trim()),hb=JQ.error?NE.Frankendancer:JQ.data,xi=hb===NE.Frankendancer,Vi=hb===NE.Firedancer,Gu=fe(e=>{var t;return(t=e(Hl))==null?void 0:t.phase}),QQ=fe(e=>{const t=e(B3),n=e(Gu);return t.find(({phase:r})=>r===n)}),mMe=fe(e=>{const t=e(Hl);return!!(t!=null&&t.wait_for_supermajority_bank_hash)&&!!(t!=null&&t.wait_for_supermajority_shred_version)}),B3=fe(e=>e(mMe)?[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.waiting_for_supermajority,completionFraction:.25},{phase:wn.running,completionFraction:0}]:[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.catching_up,completionFraction:.25},{phase:wn.running,completionFraction:0}]),eee=fe(e=>{const t=e(B3),n=e(Gu),r=new Set;for(const i of t){if(i.phase===n)break;r.add(i.phase)}return r}),ol=fe(!0),W3=fe(!0),tee=fe(null),V3=fe(e=>{const t=e(ol);return t?xi?t:t&&e(W3):!1}),nee=fe(e=>{var t,n;return((t=e(Hl))==null?void 0:t.loading_incremental_snapshot_slot)??((n=e(Hl))==null?void 0:n.loading_full_snapshot_slot)}),ree="/assets/firedancer-D_J0EzUc.svg",gMe="/assets/frankendancer-0Top5G94.svg",vMe="_text_o41r7_1",yMe="_container_o41r7_6",iee={text:vMe,container:yMe};function bMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsx(W,{gap:"2",align:"center",style:n,className:iee.container,children:u.jsx(Z,{className:iee.text,children:e})})}const xMe="_container_1tszc_1",_Me="_text_1tszc_11",oee={container:xMe,text:_Me};function wMe({label:e,hide:t,rightChildren:n,bottomChildren:r}){const i=t?{visibility:"hidden"}:{};return u.jsxs("div",{className:oee.container,style:i,children:[u.jsx(W,{justify:"center",align:"center",children:u.jsx(Iy,{})}),u.jsxs(W,{gap:"2",align:"center",children:[u.jsxs(Z,{className:oee.text,children:[e,"..."]}),u.jsx(Mt,{flexGrow:"1"}),n]}),r&&u.jsxs(u.Fragment,{children:[u.jsx("div",{}),r]})]})}const kMe="data:image/svg+xml,%3csvg%20width='14'%20height='11'%20viewBox='0%200%2014%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.75%208.6748L12.6953%200.729492L13.75%201.78418L4.75%2010.7842L0.566406%206.60059L1.62109%205.5459L4.75%208.6748Z'%20fill='%231D863B'/%3e%3c/svg%3e",SMe="_text_1ont6_1",CMe="_container_1ont6_7",aee={text:SMe,container:CMe};function jMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsxs(W,{gap:"2",align:"center",style:n,className:aee.container,children:[u.jsx("img",{src:kMe,alt:"complete"}),u.jsx(Z,{className:aee.text,children:e})]})}const TMe="_label_1ojid_1",IMe="_value_1ojid_6",see={label:TMe,value:IMe};function ud({label:e,value:t}){return u.jsxs(W,{gap:"1",flexGrow:"1",children:[u.jsx(Z,{className:see.label,children:e}),u.jsx(Z,{className:see.value,children:t??"-"})]})}function EMe(){const e=J(Zu);return e?u.jsxs(W,{children:[u.jsx(ud,{label:"Current Slot",value:e.ledger_slot}),u.jsx(ud,{label:"Max Slot",value:e.ledger_max_slot})]}):null}const NMe="_progress_gtr5g_1",$Me="_text_gtr5g_11",H3={progress:NMe,text:$Me};class yp extends Error{}class MMe extends yp{constructor(t){super(`Invalid DateTime: ${t.toMessage()}`)}}class RMe extends yp{constructor(t){super(`Invalid Interval: ${t.toMessage()}`)}}class LMe extends yp{constructor(t){super(`Invalid Duration: ${t.toMessage()}`)}}class dg extends yp{}class lee extends yp{constructor(t){super(`Invalid unit ${t}`)}}class Uo extends yp{}class Af extends yp{constructor(){super("Zone is an abstract class")}}const nt="numeric",Kl="short",ws="long",Z3={year:nt,month:nt,day:nt},uee={year:nt,month:Kl,day:nt},PMe={year:nt,month:Kl,day:nt,weekday:Kl},cee={year:nt,month:ws,day:nt},dee={year:nt,month:ws,day:nt,weekday:ws},fee={hour:nt,minute:nt},hee={hour:nt,minute:nt,second:nt},pee={hour:nt,minute:nt,second:nt,timeZoneName:Kl},mee={hour:nt,minute:nt,second:nt,timeZoneName:ws},gee={hour:nt,minute:nt,hourCycle:"h23"},vee={hour:nt,minute:nt,second:nt,hourCycle:"h23"},yee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:Kl},bee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:ws},xee={year:nt,month:nt,day:nt,hour:nt,minute:nt},_ee={year:nt,month:nt,day:nt,hour:nt,minute:nt,second:nt},wee={year:nt,month:Kl,day:nt,hour:nt,minute:nt},kee={year:nt,month:Kl,day:nt,hour:nt,minute:nt,second:nt},OMe={year:nt,month:Kl,day:nt,weekday:Kl,hour:nt,minute:nt},See={year:nt,month:ws,day:nt,hour:nt,minute:nt,timeZoneName:Kl},Cee={year:nt,month:ws,day:nt,hour:nt,minute:nt,second:nt,timeZoneName:Kl},jee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,timeZoneName:ws},Tee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,second:nt,timeZoneName:ws};class pb{get type(){throw new Af}get name(){throw new Af}get ianaName(){return this.name}get isUniversal(){throw new Af}offsetName(t,n){throw new Af}formatOffset(t,n){throw new Af}offset(t){throw new Af}equals(t){throw new Af}get isValid(){throw new Af}}let ME=null;class pC extends pb{static get instance(){return ME===null&&(ME=new pC),ME}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(t,{format:n,locale:r}){return Qee(t,n,r)}formatOffset(t,n){return vb(this.offset(t),n)}offset(t){return-new Date(t).getTimezoneOffset()}equals(t){return t.type==="system"}get isValid(){return!0}}const RE=new Map;function zMe(e){let t=RE.get(e);return t===void 0&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),RE.set(e,t)),t}const DMe={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function AMe(e,t){const n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,i,o,a,s,l,c,d]=r;return[a,i,o,s,l,c,d]}function FMe(e,t){const n=e.formatToParts(t),r=[];for(let i=0;i=0?v:1e3+v,(f-p)/(60*1e3)}equals(t){return t.type==="iana"&&t.name===this.name}get isValid(){return this.valid}}let Iee={};function UMe(e,t={}){const n=JSON.stringify([e,t]);let r=Iee[n];return r||(r=new Intl.ListFormat(e,t),Iee[n]=r),r}const PE=new Map;function OE(e,t={}){const n=JSON.stringify([e,t]);let r=PE.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),PE.set(n,r)),r}const zE=new Map;function BMe(e,t={}){const n=JSON.stringify([e,t]);let r=zE.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),zE.set(n,r)),r}const DE=new Map;function WMe(e,t={}){const{base:n,...r}=t,i=JSON.stringify([e,r]);let o=DE.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(e,t),DE.set(i,o)),o}let q3=null;function VMe(){return q3||(q3=new Intl.DateTimeFormat().resolvedOptions().locale,q3)}const AE=new Map;function Eee(e){let t=AE.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),AE.set(e,t)),t}const FE=new Map;function HMe(e){let t=FE.get(e);if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in t||(t={...Nee,...t}),FE.set(e,t)}return t}function ZMe(e){const t=e.indexOf("-x-");t!==-1&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(n===-1)return[e];{let r,i;try{r=OE(e).resolvedOptions(),i=e}catch{const s=e.substring(0,n);r=OE(s).resolvedOptions(),i=s}const{numberingSystem:o,calendar:a}=r;return[i,o,a]}}function qMe(e,t,n){return(n||t)&&(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`)),e}function GMe(e){const t=[];for(let n=1;n<=12;n++){const r=jt.utc(2009,n,1);t.push(e(r))}return t}function YMe(e){const t=[];for(let n=1;n<=7;n++){const r=jt.utc(2016,11,13+n);t.push(e(r))}return t}function G3(e,t,n,r){const i=e.listingMode();return i==="error"?null:i==="en"?n(t):r(t)}function KMe(e){return e.numberingSystem&&e.numberingSystem!=="latn"?!1:e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||Eee(e.locale).numberingSystem==="latn"}class XMe{constructor(t,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;const{padTo:i,floor:o,...a}=r;if(!n||Object.keys(a).length>0){const s={useGrouping:!1,...r};r.padTo>0&&(s.minimumIntegerDigits=r.padTo),this.inf=BMe(t,s)}}format(t){if(this.inf){const n=this.floor?Math.floor(t):t;return this.inf.format(n)}else{const n=this.floor?Math.floor(t):YE(t,3);return Ri(n,this.padTo)}}}class JMe{constructor(t,n,r){this.opts=r,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=t;else if(t.zone.type==="fixed"){const a=-1*(t.offset/60),s=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;t.offset!==0&&Ld.create(s).valid?(i=s,this.dt=t):(i="UTC",this.dt=t.offset===0?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)}else t.zone.type==="system"?this.dt=t:t.zone.type==="iana"?(this.dt=t,i=t.zone.name):(i="UTC",this.dt=t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone);const o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=OE(n,o)}format(){return this.originalZone?this.formatToParts().map(({value:t})=>t).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(n=>{if(n.type==="timeZoneName"){const r=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:r}}else return n}):t}resolvedOptions(){return this.dtf.resolvedOptions()}}class QMe{constructor(t,n,r){this.opts={style:"long",...r},!n&&Yee()&&(this.rtf=WMe(t,r))}format(t,n){return this.rtf?this.rtf.format(t,n):_Re(n,t,this.opts.numeric,this.opts.style!=="long")}formatToParts(t,n){return this.rtf?this.rtf.formatToParts(t,n):[]}}const Nee={firstDay:1,minimalDays:4,weekend:[6,7]};class Gn{static fromOpts(t){return Gn.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,o=!1){const a=t||di.defaultLocale,s=a||(o?"en-US":VMe()),l=n||di.defaultNumberingSystem,c=r||di.defaultOutputCalendar,d=qE(i)||di.defaultWeekSettings;return new Gn(s,l,c,d,a)}static resetCache(){q3=null,PE.clear(),zE.clear(),DE.clear(),AE.clear(),FE.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return Gn.create(t,n,r,i)}constructor(t,n,r,i,o){const[a,s,l]=ZMe(t);this.locale=a,this.numberingSystem=n||s||null,this.outputCalendar=r||l||null,this.weekSettings=i,this.intl=qMe(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=KMe(this)),this.fastNumbersCached}listingMode(){const t=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return t&&n?"en":"intl"}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:Gn.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,qE(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(t={}){return this.clone({...t,defaultToEN:!0})}redefaultToSystem(t={}){return this.clone({...t,defaultToEN:!1})}months(t,n=!1){return G3(this,t,nte,()=>{const r=this.intl==="ja"||this.intl.startsWith("ja-");n&=!r;const i=n?{month:t,day:"numeric"}:{month:t},o=n?"format":"standalone";if(!this.monthsCache[o][t]){const a=r?s=>this.dtFormatter(s,i).format():s=>this.extract(s,i,"month");this.monthsCache[o][t]=GMe(a)}return this.monthsCache[o][t]})}weekdays(t,n=!1){return G3(this,t,ote,()=>{const r=n?{weekday:t,year:"numeric",month:"long",day:"numeric"}:{weekday:t},i=n?"format":"standalone";return this.weekdaysCache[i][t]||(this.weekdaysCache[i][t]=YMe(o=>this.extract(o,r,"weekday"))),this.weekdaysCache[i][t]})}meridiems(){return G3(this,void 0,()=>ate,()=>{if(!this.meridiemCache){const t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[jt.utc(2016,11,13,9),jt.utc(2016,11,13,19)].map(n=>this.extract(n,t,"dayperiod"))}return this.meridiemCache})}eras(t){return G3(this,t,ste,()=>{const n={era:t};return this.eraCache[t]||(this.eraCache[t]=[jt.utc(-40,1,1),jt.utc(2017,1,1)].map(r=>this.extract(r,n,"era"))),this.eraCache[t]})}extract(t,n,r){const i=this.dtFormatter(t,n),o=i.formatToParts(),a=o.find(s=>s.type.toLowerCase()===r);return a?a.value:null}numberFormatter(t={}){return new XMe(this.intl,t.forceSimple||this.fastNumbers,t)}dtFormatter(t,n={}){return new JMe(t,this.intl,n)}relFormatter(t={}){return new QMe(this.intl,this.isEnglish(),t)}listFormatter(t={}){return UMe(this.intl,t)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Eee(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Kee()?HMe(this.locale):Nee}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let UE=null;class ba extends pb{static get utcInstance(){return UE===null&&(UE=new ba(0)),UE}static instance(t){return t===0?ba.utcInstance:new ba(t)}static parseSpecifier(t){if(t){const n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new ba(Q3(n[1],n[2]))}return null}constructor(t){super(),this.fixed=t}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${vb(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${vb(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(t,n){return vb(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(t){return t.type==="fixed"&&t.fixed===this.fixed}get isValid(){return!0}}class eRe extends pb{constructor(t){super(),this.zoneName=t}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Ff(e,t){if(Ot(e)||e===null)return t;if(e instanceof pb)return e;if(aRe(e)){const n=e.toLowerCase();return n==="default"?t:n==="local"||n==="system"?pC.instance:n==="utc"||n==="gmt"?ba.utcInstance:ba.parseSpecifier(n)||Ld.create(e)}else return Uf(e)?ba.instance(e):typeof e=="object"&&"offset"in e&&typeof e.offset=="function"?e:new eRe(e)}const BE={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},$ee={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},tRe=BE.hanidec.replace(/[\[|\]]/g,"").split("");function nRe(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n=o&&r<=a&&(t+=r-o)}}return parseInt(t,10)}else return t}const WE=new Map;function rRe(){WE.clear()}function Xl({numberingSystem:e},t=""){const n=e||"latn";let r=WE.get(n);r===void 0&&(r=new Map,WE.set(n,r));let i=r.get(t);return i===void 0&&(i=new RegExp(`${BE[n]}${t}`),r.set(t,i)),i}let Mee=()=>Date.now(),Ree="system",Lee=null,Pee=null,Oee=null,zee=60,Dee,Aee=null;class di{static get now(){return Mee}static set now(t){Mee=t}static set defaultZone(t){Ree=t}static get defaultZone(){return Ff(Ree,pC.instance)}static get defaultLocale(){return Lee}static set defaultLocale(t){Lee=t}static get defaultNumberingSystem(){return Pee}static set defaultNumberingSystem(t){Pee=t}static get defaultOutputCalendar(){return Oee}static set defaultOutputCalendar(t){Oee=t}static get defaultWeekSettings(){return Aee}static set defaultWeekSettings(t){Aee=qE(t)}static get twoDigitCutoffYear(){return zee}static set twoDigitCutoffYear(t){zee=t%100}static get throwOnInvalid(){return Dee}static set throwOnInvalid(t){Dee=t}static resetCaches(){Gn.resetCache(),Ld.resetCache(),jt.resetCache(),rRe()}}class Jl{constructor(t,n){this.reason=t,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Fee=[0,31,59,90,120,151,181,212,243,273,304,334],Uee=[0,31,60,91,121,152,182,213,244,274,305,335];function al(e,t){return new Jl("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function VE(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return i===0?7:i}function Bee(e,t,n){return n+(mb(e)?Uee:Fee)[t-1]}function Wee(e,t){const n=mb(e)?Uee:Fee,r=n.findIndex(o=>ogb(r,t,n)?(c=r+1,l=1):c=r,{weekYear:c,weekNumber:l,weekday:s,...tk(e)}}function Vee(e,t=4,n=1){const{weekYear:r,weekNumber:i,weekday:o}=e,a=HE(VE(r,1,t),n),s=hg(r);let l=i*7+o-a-7+t,c;l<1?(c=r-1,l+=hg(c)):l>s?(c=r+1,l-=hg(r)):c=r;const{month:d,day:f}=Wee(c,l);return{year:c,month:d,day:f,...tk(e)}}function ZE(e){const{year:t,month:n,day:r}=e,i=Bee(t,n,r);return{year:t,ordinal:i,...tk(e)}}function Hee(e){const{year:t,ordinal:n}=e,{month:r,day:i}=Wee(t,n);return{year:t,month:r,day:i,...tk(e)}}function Zee(e,t){if(!Ot(e.localWeekday)||!Ot(e.localWeekNumber)||!Ot(e.localWeekYear)){if(!Ot(e.weekday)||!Ot(e.weekNumber)||!Ot(e.weekYear))throw new dg("Cannot mix locale-based week fields with ISO-based week fields");return Ot(e.localWeekday)||(e.weekday=e.localWeekday),Ot(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),Ot(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function iRe(e,t=4,n=1){const r=K3(e.weekYear),i=sl(e.weekNumber,1,gb(e.weekYear,t,n)),o=sl(e.weekday,1,7);return r?i?o?!1:al("weekday",e.weekday):al("week",e.weekNumber):al("weekYear",e.weekYear)}function oRe(e){const t=K3(e.year),n=sl(e.ordinal,1,hg(e.year));return t?n?!1:al("ordinal",e.ordinal):al("year",e.year)}function qee(e){const t=K3(e.year),n=sl(e.month,1,12),r=sl(e.day,1,X3(e.year,e.month));return t?n?r?!1:al("day",e.day):al("month",e.month):al("year",e.year)}function Gee(e){const{hour:t,minute:n,second:r,millisecond:i}=e,o=sl(t,0,23)||t===24&&n===0&&r===0&&i===0,a=sl(n,0,59),s=sl(r,0,59),l=sl(i,0,999);return o?a?s?l?!1:al("millisecond",i):al("second",r):al("minute",n):al("hour",t)}function Ot(e){return typeof e>"u"}function Uf(e){return typeof e=="number"}function K3(e){return typeof e=="number"&&e%1===0}function aRe(e){return typeof e=="string"}function sRe(e){return Object.prototype.toString.call(e)==="[object Date]"}function Yee(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Kee(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function lRe(e){return Array.isArray(e)?e:[e]}function Xee(e,t,n){if(e.length!==0)return e.reduce((r,i)=>{const o=[t(i),i];return r&&n(r[0],o[0])===r[0]?r:o},null)[1]}function uRe(e,t){return t.reduce((n,r)=>(n[r]=e[r],n),{})}function fg(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function qE(e){if(e==null)return null;if(typeof e!="object")throw new Uo("Week settings must be an object");if(!sl(e.firstDay,1,7)||!sl(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(t=>!sl(t,1,7)))throw new Uo("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function sl(e,t,n){return K3(e)&&e>=t&&e<=n}function cRe(e,t){return e-t*Math.floor(e/t)}function Ri(e,t=2){const n=e<0;let r;return n?r="-"+(""+-e).padStart(t,"0"):r=(""+e).padStart(t,"0"),r}function Bf(e){if(!(Ot(e)||e===null||e===""))return parseInt(e,10)}function bp(e){if(!(Ot(e)||e===null||e===""))return parseFloat(e)}function GE(e){if(!(Ot(e)||e===null||e==="")){const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function YE(e,t,n="round"){const r=10**t;switch(n){case"expand":return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case"trunc":return Math.trunc(e*r)/r;case"round":return Math.round(e*r)/r;case"floor":return Math.floor(e*r)/r;case"ceil":return Math.ceil(e*r)/r;default:throw new RangeError(`Value rounding ${n} is out of range`)}}function mb(e){return e%4===0&&(e%100!==0||e%400===0)}function hg(e){return mb(e)?366:365}function X3(e,t){const n=cRe(t-1,12)+1,r=e+(t-n)/12;return n===2?mb(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function J3(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Jee(e,t,n){return-HE(VE(e,1,t),n)+t-1}function gb(e,t=4,n=1){const r=Jee(e,t,n),i=Jee(e+1,t,n);return(hg(e)-r+i)/7}function KE(e){return e>99?e:e>di.twoDigitCutoffYear?1900+e:2e3+e}function Qee(e,t,n,r=null){const i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);const a={timeZoneName:t,...o},s=new Intl.DateTimeFormat(n,a).formatToParts(i).find(l=>l.type.toLowerCase()==="timezonename");return s?s.value:null}function Q3(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function ete(e){const t=Number(e);if(typeof e=="boolean"||e===""||!Number.isFinite(t))throw new Uo(`Invalid unit value ${e}`);return t}function ek(e,t){const n={};for(const r in e)if(fg(e,r)){const i=e[r];if(i==null)continue;n[t(r)]=ete(i)}return n}function vb(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return`${i}${Ri(n,2)}:${Ri(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${Ri(n,2)}${Ri(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function tk(e){return uRe(e,["hour","minute","second","millisecond"])}const dRe=["January","February","March","April","May","June","July","August","September","October","November","December"],tte=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],fRe=["J","F","M","A","M","J","J","A","S","O","N","D"];function nte(e){switch(e){case"narrow":return[...fRe];case"short":return[...tte];case"long":return[...dRe];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const rte=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ite=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],hRe=["M","T","W","T","F","S","S"];function ote(e){switch(e){case"narrow":return[...hRe];case"short":return[...ite];case"long":return[...rte];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const ate=["AM","PM"],pRe=["Before Christ","Anno Domini"],mRe=["BC","AD"],gRe=["B","A"];function ste(e){switch(e){case"narrow":return[...gRe];case"short":return[...mRe];case"long":return[...pRe];default:return null}}function vRe(e){return ate[e.hour<12?0:1]}function yRe(e,t){return ote(t)[e.weekday-1]}function bRe(e,t){return nte(t)[e.month-1]}function xRe(e,t){return ste(t)[e.year<0?0:1]}function _Re(e,t,n="always",r=!1){const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(e)===-1;if(n==="auto"&&o){const f=e==="days";switch(t){case 1:return f?"tomorrow":`next ${i[e][0]}`;case-1:return f?"yesterday":`last ${i[e][0]}`;case 0:return f?"today":`this ${i[e][0]}`}}const a=Object.is(t,-0)||t<0,s=Math.abs(t),l=s===1,c=i[e],d=r?l?c[1]:c[2]||c[1]:l?i[e][0]:e;return a?`${s} ${d} ago`:`in ${s} ${d}`}function lte(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const wRe={D:Z3,DD:uee,DDD:cee,DDDD:dee,t:fee,tt:hee,ttt:pee,tttt:mee,T:gee,TT:vee,TTT:yee,TTTT:bee,f:xee,ff:wee,fff:See,ffff:jee,F:_ee,FF:kee,FFF:Cee,FFFF:Tee};class Yo{static create(t,n={}){return new Yo(t,n)}static parseFormat(t){let n=null,r="",i=!1;const o=[];for(let a=0;a0||i)&&o.push({literal:i||/^\s+$/.test(r),val:r===""?"'":r}),n=null,r="",i=!i):i||s===n?r+=s:(r.length>0&&o.push({literal:/^\s+$/.test(r),val:r}),r=s,n=s)}return r.length>0&&o.push({literal:i||/^\s+$/.test(r),val:r}),o}static macroTokenToFormatOpts(t){return wRe[t]}constructor(t,n){this.opts=n,this.loc=t,this.systemLoc=null}formatWithSystemDefault(t,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,{...this.opts,...n}).format()}dtFormatter(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n})}formatDateTime(t,n){return this.dtFormatter(t,n).format()}formatDateTimeParts(t,n){return this.dtFormatter(t,n).formatToParts()}formatInterval(t,n){return this.dtFormatter(t.start,n).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())}resolvedOptions(t,n){return this.dtFormatter(t,n).resolvedOptions()}num(t,n=0,r=void 0){if(this.opts.forceSimple)return Ri(t,n);const i={...this.opts};return n>0&&(i.padTo=n),r&&(i.signDisplay=r),this.loc.numberFormatter(i).format(t)}formatDateTimeFromString(t,n){const r=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=(v,x)=>this.loc.extract(t,v,x),a=v=>t.isOffsetFixed&&t.offset===0&&v.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,v.format):"",s=()=>r?vRe(t):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(v,x)=>r?bRe(t,v):o(x?{month:v}:{month:v,day:"numeric"},"month"),c=(v,x)=>r?yRe(t,v):o(x?{weekday:v}:{weekday:v,month:"long",day:"numeric"},"weekday"),d=v=>{const x=Yo.macroTokenToFormatOpts(v);return x?this.formatWithSystemDefault(t,x):v},f=v=>r?xRe(t,v):o({era:v},"era"),p=v=>{switch(v){case"S":return this.num(t.millisecond);case"u":case"SSS":return this.num(t.millisecond,3);case"s":return this.num(t.second);case"ss":return this.num(t.second,2);case"uu":return this.num(Math.floor(t.millisecond/10),2);case"uuu":return this.num(Math.floor(t.millisecond/100));case"m":return this.num(t.minute);case"mm":return this.num(t.minute,2);case"h":return this.num(t.hour%12===0?12:t.hour%12);case"hh":return this.num(t.hour%12===0?12:t.hour%12,2);case"H":return this.num(t.hour);case"HH":return this.num(t.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:this.loc.locale});case"z":return t.zoneName;case"a":return s();case"d":return i?o({day:"numeric"},"day"):this.num(t.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(t.day,2);case"c":return this.num(t.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(t.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(t.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(t.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(t.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(t.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(t.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(t.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(t.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(t.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(t.weekYear.toString().slice(-2),2);case"kkkk":return this.num(t.weekYear,4);case"W":return this.num(t.weekNumber);case"WW":return this.num(t.weekNumber,2);case"n":return this.num(t.localWeekNumber);case"nn":return this.num(t.localWeekNumber,2);case"ii":return this.num(t.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(t.localWeekYear,4);case"o":return this.num(t.ordinal);case"ooo":return this.num(t.ordinal,3);case"q":return this.num(t.quarter);case"qq":return this.num(t.quarter,2);case"X":return this.num(Math.floor(t.ts/1e3));case"x":return this.num(t.ts);default:return d(v)}};return lte(Yo.parseFormat(n),p)}formatDurationFromString(t,n){const r=this.opts.signMode==="negativeLargestOnly"?-1:1,i=d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},o=(d,f)=>p=>{const v=i(p);if(v){const x=f.isNegativeDuration&&v!==f.largestUnit?r:1;let y;return this.opts.signMode==="negativeLargestOnly"&&v!==f.largestUnit?y="never":this.opts.signMode==="all"?y="always":y="auto",this.num(d.get(v)*x,p.length,y)}else return p},a=Yo.parseFormat(n),s=a.reduce((d,{literal:f,val:p})=>f?d:d.concat(p),[]),l=t.shiftTo(...s.map(i).filter(d=>d)),c={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return lte(a,o(l,c))}}const ute=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function pg(...e){const t=e.reduce((n,r)=>n+r.source,"");return RegExp(`^${t}$`)}function mg(...e){return t=>e.reduce(([n,r,i],o)=>{const[a,s,l]=o(t,i);return[{...n,...a},s||r,l]},[{},null,1]).slice(0,2)}function gg(e,...t){if(e==null)return[null,null];for(const[n,r]of t){const i=n.exec(e);if(i)return r(i)}return[null,null]}function cte(...e){return(t,n)=>{const r={};let i;for(i=0;iv!==void 0&&(x||v&&d)?-v:v;return[{years:p(bp(n)),months:p(bp(r)),weeks:p(bp(i)),days:p(bp(o)),hours:p(bp(a)),minutes:p(bp(s)),seconds:p(bp(l),l==="-0"),milliseconds:p(GE(c),f)}]}const PRe={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function QE(e,t,n,r,i,o,a){const s={year:t.length===2?KE(Bf(t)):Bf(t),month:tte.indexOf(n)+1,day:Bf(r),hour:Bf(i),minute:Bf(o)};return a&&(s.second=Bf(a)),e&&(s.weekday=e.length>3?rte.indexOf(e)+1:ite.indexOf(e)+1),s}const ORe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function zRe(e){const[,t,n,r,i,o,a,s,l,c,d,f]=e,p=QE(t,i,r,n,o,a,s);let v;return l?v=PRe[l]:c?v=0:v=Q3(d,f),[p,new ba(v)]}function DRe(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const ARe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,FRe=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,URe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function pte(e){const[,t,n,r,i,o,a,s]=e;return[QE(t,i,r,n,o,a,s),ba.utcInstance]}function BRe(e){const[,t,n,r,i,o,a,s]=e;return[QE(t,s,n,r,i,o,a),ba.utcInstance]}const WRe=pg(SRe,JE),VRe=pg(CRe,JE),HRe=pg(jRe,JE),ZRe=pg(fte),mte=mg($Re,yg,yb,bb),qRe=mg(TRe,yg,yb,bb),GRe=mg(IRe,yg,yb,bb),YRe=mg(yg,yb,bb);function KRe(e){return gg(e,[WRe,mte],[VRe,qRe],[HRe,GRe],[ZRe,YRe])}function XRe(e){return gg(DRe(e),[ORe,zRe])}function JRe(e){return gg(e,[ARe,pte],[FRe,pte],[URe,BRe])}function QRe(e){return gg(e,[RRe,LRe])}const eLe=mg(yg);function tLe(e){return gg(e,[MRe,eLe])}const nLe=pg(ERe,NRe),rLe=pg(hte),iLe=mg(yg,yb,bb);function oLe(e){return gg(e,[nLe,mte],[rLe,iLe])}const gte="Invalid Duration",vte={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},aLe={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...vte},ll=146097/400,bg=146097/4800,sLe={years:{quarters:4,months:12,weeks:ll/7,days:ll,hours:ll*24,minutes:ll*24*60,seconds:ll*24*60*60,milliseconds:ll*24*60*60*1e3},quarters:{months:3,weeks:ll/28,days:ll/4,hours:ll*24/4,minutes:ll*24*60/4,seconds:ll*24*60*60/4,milliseconds:ll*24*60*60*1e3/4},months:{weeks:bg/7,days:bg,hours:bg*24,minutes:bg*24*60,seconds:bg*24*60*60,milliseconds:bg*24*60*60*1e3},...vte},xp=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],lLe=xp.slice(0).reverse();function cd(e,t,n=!1){const r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new fn(r)}function yte(e,t){let n=t.milliseconds??0;for(const r of lLe.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function bte(e,t){const n=yte(e,t)<0?-1:1;xp.reduceRight((r,i)=>{if(Ot(t[i]))return r;if(r){const o=t[r]*n,a=e[i][r],s=Math.floor(o/a);t[i]+=s*n,t[r]-=s*a*n}return i},null),xp.reduce((r,i)=>{if(Ot(t[i]))return r;if(r){const o=t[r]%1;t[r]-=o,t[i]+=o*e[r][i]}return i},null)}function xte(e){const t={};for(const[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}class fn{constructor(t){const n=t.conversionAccuracy==="longterm"||!1;let r=n?sLe:aLe;t.matrix&&(r=t.matrix),this.values=t.values,this.loc=t.loc||Gn.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=r,this.isLuxonDuration=!0}static fromMillis(t,n){return fn.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(t==null||typeof t!="object")throw new Uo(`Duration.fromObject: argument expected to be an object, got ${t===null?"null":typeof t}`);return new fn({values:ek(t,fn.normalizeUnit),loc:Gn.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(Uf(t))return fn.fromMillis(t);if(fn.isDuration(t))return t;if(typeof t=="object")return fn.fromObject(t);throw new Uo(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){const[r]=QRe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){const[r]=tLe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new Uo("need to specify a reason the Duration is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(di.throwOnInvalid)throw new LMe(r);return new fn({invalid:r})}static normalizeUnit(t){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(!n)throw new lee(t);return n}static isDuration(t){return t&&t.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(t,n={}){const r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Yo.create(this.loc,r).formatDurationFromString(this,t):gte}toHuman(t={}){if(!this.isValid)return gte;const n=t.showZeros!==!1,r=xp.map(i=>{const o=this.values[i];return Ot(o)||o===0&&!n?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...t,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:t.listStyle||"narrow",...t}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let t="P";return this.years!==0&&(t+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(t+=this.months+this.quarters*3+"M"),this.weeks!==0&&(t+=this.weeks+"W"),this.days!==0&&(t+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(t+="T"),this.hours!==0&&(t+=this.hours+"H"),this.minutes!==0&&(t+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(t+=YE(this.seconds+this.milliseconds/1e3,3)+"S"),t==="P"&&(t+="T0S"),t}toISOTime(t={}){if(!this.isValid)return null;const n=this.toMillis();return n<0||n>=864e5?null:(t={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...t,includeOffset:!1},jt.fromMillis(n,{zone:"UTC"}).toISOTime(t))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?yte(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t),r={};for(const i of xp)(fg(n.values,i)||fg(this.values,i))&&(r[i]=n.get(i)+this.get(i));return cd(this,{values:r},!0)}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return this.plus(n.negate())}mapUnits(t){if(!this.isValid)return this;const n={};for(const r of Object.keys(this.values))n[r]=ete(t(this.values[r],r));return cd(this,{values:n},!0)}get(t){return this[fn.normalizeUnit(t)]}set(t){if(!this.isValid)return this;const n={...this.values,...ek(t,fn.normalizeUnit)};return cd(this,{values:n})}reconfigure({locale:t,numberingSystem:n,conversionAccuracy:r,matrix:i}={}){const o={loc:this.loc.clone({locale:t,numberingSystem:n}),matrix:i,conversionAccuracy:r};return cd(this,o)}as(t){return this.isValid?this.shiftTo(t).get(t):NaN}normalize(){if(!this.isValid)return this;const t=this.toObject();return bte(this.matrix,t),cd(this,{values:t},!0)}rescale(){if(!this.isValid)return this;const t=xte(this.normalize().shiftToAll().toObject());return cd(this,{values:t},!0)}shiftTo(...t){if(!this.isValid)return this;if(t.length===0)return this;t=t.map(a=>fn.normalizeUnit(a));const n={},r={},i=this.toObject();let o;for(const a of xp)if(t.indexOf(a)>=0){o=a;let s=0;for(const c in r)s+=this.matrix[c][a]*r[c],r[c]=0;Uf(i[a])&&(s+=i[a]);const l=Math.trunc(s);n[a]=l,r[a]=(s*1e3-l*1e3)/1e3}else Uf(i[a])&&(r[a]=i[a]);for(const a in r)r[a]!==0&&(n[o]+=a===o?r[a]:r[a]/this.matrix[o][a]);return bte(this.matrix,n),cd(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=this.values[n]===0?0:-this.values[n];return cd(this,{values:t},!0)}removeZeros(){if(!this.isValid)return this;const t=xte(this.values);return cd(this,{values:t},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(t){if(!this.isValid||!t.isValid||!this.loc.equals(t.loc))return!1;function n(r,i){return r===void 0||r===0?i===void 0||i===0:r===i}for(const r of xp)if(!n(this.values[r],t.values[r]))return!1;return!0}}const xg="Invalid Interval";function uLe(e,t){return!e||!e.isValid?hi.invalid("missing or invalid start"):!t||!t.isValid?hi.invalid("missing or invalid end"):tt:!1}isBefore(t){return this.isValid?this.e<=t:!1}contains(t){return this.isValid?this.s<=t&&this.e>t:!1}set({start:t,end:n}={}){return this.isValid?hi.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];const n=t.map(wb).filter(a=>this.contains(a)).sort((a,s)=>a.toMillis()-s.toMillis()),r=[];let{s:i}=this,o=0;for(;i+this.e?this.e:a;r.push(hi.fromDateTimes(i,s)),i=s,o+=1}return r}splitBy(t){const n=fn.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,i=1,o;const a=[];for(;rl*i));o=+s>+this.e?this.e:s,a.push(hi.fromDateTimes(r,o)),r=o,i+=1}return a}divideEqually(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]}overlaps(t){return this.e>t.s&&this.s=t.e:!1}equals(t){return!this.isValid||!t.isValid?!1:this.s.equals(t.s)&&this.e.equals(t.e)}intersection(t){if(!this.isValid)return this;const n=this.s>t.s?this.s:t.s,r=this.e=r?null:hi.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;const n=this.st.e?this.e:t.e;return hi.fromDateTimes(n,r)}static merge(t){const[n,r]=t.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return r&&n.push(r),n}static xor(t){let n=null,r=0;const i=[],o=t.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...o),s=a.sort((l,c)=>l.time-c.time);for(const l of s)r+=l.type==="s"?1:-1,r===1?n=l.time:(n&&+n!=+l.time&&i.push(hi.fromDateTimes(n,l.time)),n=null);return hi.merge(i)}difference(...t){return hi.xor([this].concat(t)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:xg}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(t=Z3,n={}){return this.isValid?Yo.create(this.s.loc.clone(n),t).formatInterval(this):xg}toISO(t){return this.isValid?`${this.s.toISO(t)}/${this.e.toISO(t)}`:xg}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:xg}toISOTime(t){return this.isValid?`${this.s.toISOTime(t)}/${this.e.toISOTime(t)}`:xg}toFormat(t,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(t)}${n}${this.e.toFormat(t)}`:xg}toDuration(t,n){return this.isValid?this.e.diff(this.s,t,n):fn.invalid(this.invalidReason)}mapEndpoints(t){return hi.fromDateTimes(t(this.s),t(this.e))}}class nk{static hasDST(t=di.defaultZone){const n=jt.now().setZone(t).set({month:12});return!t.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(t){return Ld.isValidZone(t)}static normalizeZone(t){return Ff(t,di.defaultZone)}static getStartOfWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getWeekendDays().slice()}static months(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t)}static monthsFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t,!0)}static weekdays(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t)}static weekdaysFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t,!0)}static meridiems({locale:t=null}={}){return Gn.create(t).meridiems()}static eras(t="short",{locale:n=null}={}){return Gn.create(n,null,"gregory").eras(t)}static features(){return{relative:Yee(),localeWeek:Kee()}}}function _te(e,t){const n=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(fn.fromMillis(r).as("days"))}function cLe(e,t,n){const r=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{const d=_te(l,c);return(d-d%7)/7}],["days",_te]],i={},o=e;let a,s;for(const[l,c]of r)n.indexOf(l)>=0&&(a=l,i[l]=c(e,t),s=o.plus(i),s>t?(i[l]--,e=o.plus(i),e>t&&(s=e,i[l]--,e=o.plus(i))):e=s);return[e,i,s,a]}function dLe(e,t,n,r){let[i,o,a,s]=cLe(e,t,n);const l=t-i,c=n.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);c.length===0&&(a0?fn.fromMillis(l,r).shiftTo(...c).plus(d):d}const fLe="missing Intl.DateTimeFormat.formatToParts support";function Dn(e,t=n=>n){return{regex:e,deser:([n])=>t(nRe(n))}}const hLe="\xA0",wte=`[ ${hLe}]`,kte=new RegExp(wte,"g");function pLe(e){return e.replace(/\./g,"\\.?").replace(kte,wte)}function Ste(e){return e.replace(/\./g,"").replace(kte," ").toLowerCase()}function Ql(e,t){return e===null?null:{regex:RegExp(e.map(pLe).join("|")),deser:([n])=>e.findIndex(r=>Ste(n)===Ste(r))+t}}function Cte(e,t){return{regex:e,deser:([,n,r])=>Q3(n,r),groups:t}}function rk(e){return{regex:e,deser:([t])=>t}}function mLe(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gLe(e,t){const n=Xl(t),r=Xl(t,"{2}"),i=Xl(t,"{3}"),o=Xl(t,"{4}"),a=Xl(t,"{6}"),s=Xl(t,"{1,2}"),l=Xl(t,"{1,3}"),c=Xl(t,"{1,6}"),d=Xl(t,"{1,9}"),f=Xl(t,"{2,4}"),p=Xl(t,"{4,6}"),v=y=>({regex:RegExp(mLe(y.val)),deser:([b])=>b,literal:!0}),x=(y=>{if(e.literal)return v(y);switch(y.val){case"G":return Ql(t.eras("short"),0);case"GG":return Ql(t.eras("long"),0);case"y":return Dn(c);case"yy":return Dn(f,KE);case"yyyy":return Dn(o);case"yyyyy":return Dn(p);case"yyyyyy":return Dn(a);case"M":return Dn(s);case"MM":return Dn(r);case"MMM":return Ql(t.months("short",!0),1);case"MMMM":return Ql(t.months("long",!0),1);case"L":return Dn(s);case"LL":return Dn(r);case"LLL":return Ql(t.months("short",!1),1);case"LLLL":return Ql(t.months("long",!1),1);case"d":return Dn(s);case"dd":return Dn(r);case"o":return Dn(l);case"ooo":return Dn(i);case"HH":return Dn(r);case"H":return Dn(s);case"hh":return Dn(r);case"h":return Dn(s);case"mm":return Dn(r);case"m":return Dn(s);case"q":return Dn(s);case"qq":return Dn(r);case"s":return Dn(s);case"ss":return Dn(r);case"S":return Dn(l);case"SSS":return Dn(i);case"u":return rk(d);case"uu":return rk(s);case"uuu":return Dn(n);case"a":return Ql(t.meridiems(),0);case"kkkk":return Dn(o);case"kk":return Dn(f,KE);case"W":return Dn(s);case"WW":return Dn(r);case"E":case"c":return Dn(n);case"EEE":return Ql(t.weekdays("short",!1),1);case"EEEE":return Ql(t.weekdays("long",!1),1);case"ccc":return Ql(t.weekdays("short",!0),1);case"cccc":return Ql(t.weekdays("long",!0),1);case"Z":case"ZZ":return Cte(new RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case"ZZZ":return Cte(new RegExp(`([+-]${s.source})(${r.source})?`),2);case"z":return rk(/[a-z_+-/]{1,256}?/i);case" ":return rk(/[^\S\n\r]/);default:return v(y)}})(e)||{invalidReason:fLe};return x.token=e,x}const vLe={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function yLe(e,t,n){const{type:r,value:i}=e;if(r==="literal"){const l=/^\s+$/.test(i);return{literal:!l,val:l?" ":i}}const o=t[r];let a=r;r==="hour"&&(t.hour12!=null?a=t.hour12?"hour12":"hour24":t.hourCycle!=null?t.hourCycle==="h11"||t.hourCycle==="h12"?a="hour12":a="hour24":a=n.hour12?"hour12":"hour24");let s=vLe[a];if(typeof s=="object"&&(s=s[o]),s)return{literal:!1,val:s}}function bLe(e){return[`^${e.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,e]}function xLe(e,t,n){const r=e.match(t);if(r){const i={};let o=1;for(const a in n)if(fg(n,a)){const s=n[a],l=s.groups?s.groups+1:1;!s.literal&&s.token&&(i[s.token.val[0]]=s.deser(r.slice(o,o+l))),o+=l}return[r,i]}else return[r,{}]}function _Le(e){const t=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,r;return Ot(e.z)||(n=Ld.create(e.z)),Ot(e.Z)||(n||(n=new ba(e.Z)),r=e.Z),Ot(e.q)||(e.M=(e.q-1)*3+1),Ot(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),Ot(e.u)||(e.S=GE(e.u)),[Object.keys(e).reduce((i,o)=>{const a=t(o);return a&&(i[a]=e[o]),i},{}),n,r]}let eN=null;function wLe(){return eN||(eN=jt.fromMillis(1555555555555)),eN}function kLe(e,t){if(e.literal)return e;const n=Yo.macroTokenToFormatOpts(e.val),r=Ete(n,t);return r==null||r.includes(void 0)?e:r}function jte(e,t){return Array.prototype.concat(...e.map(n=>kLe(n,t)))}class Tte{constructor(t,n){if(this.locale=t,this.format=n,this.tokens=jte(Yo.parseFormat(n),t),this.units=this.tokens.map(r=>gLe(r,t)),this.disqualifyingUnit=this.units.find(r=>r.invalidReason),!this.disqualifyingUnit){const[r,i]=bLe(this.units);this.regex=RegExp(r,"i"),this.handlers=i}}explainFromTokens(t){if(this.isValid){const[n,r]=xLe(t,this.regex,this.handlers),[i,o,a]=r?_Le(r):[null,null,void 0];if(fg(r,"a")&&fg(r,"H"))throw new dg("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:this.tokens,regex:this.regex,rawMatches:n,matches:r,result:i,zone:o,specificOffset:a}}else return{input:t,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Ite(e,t,n){return new Tte(e,n).explainFromTokens(t)}function SLe(e,t,n){const{result:r,zone:i,specificOffset:o,invalidReason:a}=Ite(e,t,n);return[r,i,o,a]}function Ete(e,t){if(!e)return null;const n=Yo.create(t,e).dtFormatter(wLe()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(o=>yLe(o,e,i))}const tN="Invalid DateTime",Nte=864e13;function xb(e){return new Jl("unsupported zone",`the zone "${e.name}" is not supported`)}function nN(e){return e.weekData===null&&(e.weekData=Y3(e.c)),e.weekData}function rN(e){return e.localWeekData===null&&(e.localWeekData=Y3(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function _p(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new jt({...n,...t,old:n})}function $te(e,t,n){let r=e-t*60*1e3;const i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;const o=n.offset(r);return i===o?[r,i]:[e-Math.min(i,o)*60*1e3,Math.max(i,o)]}function ik(e,t){e+=t*60*1e3;const n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function ok(e,t,n){return $te(J3(e),t,n)}function Mte(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,o={...e.c,year:r,month:i,day:Math.min(e.c.day,X3(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},a=fn.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=J3(o);let[l,c]=$te(s,n,e.zone);return a!==0&&(l+=a,c=e.zone.offset(l)),{ts:l,o:c}}function _g(e,t,n,r,i,o){const{setZone:a,zone:s}=n;if(e&&Object.keys(e).length!==0||t){const l=t||s,c=jt.fromObject(e,{...n,zone:l,specificOffset:o});return a?c:c.setZone(s)}else return jt.invalid(new Jl("unparsable",`the input "${i}" can't be parsed as ${r}`))}function ak(e,t,n=!0){return e.isValid?Yo.create(Gn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function iN(e,t,n){const r=e.c.year>9999||e.c.year<0;let i="";if(r&&e.c.year>=0&&(i+="+"),i+=Ri(e.c.year,r?6:4),n==="year")return i;if(t){if(i+="-",i+=Ri(e.c.month),n==="month")return i;i+="-"}else if(i+=Ri(e.c.month),n==="month")return i;return i+=Ri(e.c.day),i}function Rte(e,t,n,r,i,o,a){let s=!n||e.c.millisecond!==0||e.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=Ri(e.c.hour),a==="hour")break;if(t){if(l+=":",l+=Ri(e.c.minute),a==="minute")break;s&&(l+=":",l+=Ri(e.c.second))}else{if(l+=Ri(e.c.minute),a==="minute")break;s&&(l+=Ri(e.c.second))}if(a==="second")break;s&&(!r||e.c.millisecond!==0)&&(l+=".",l+=Ri(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!o?l+="Z":e.o<0?(l+="-",l+=Ri(Math.trunc(-e.o/60)),l+=":",l+=Ri(Math.trunc(-e.o%60))):(l+="+",l+=Ri(Math.trunc(e.o/60)),l+=":",l+=Ri(Math.trunc(e.o%60)))),o&&(l+="["+e.zone.ianaName+"]"),l}const Lte={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},CLe={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jLe={ordinal:1,hour:0,minute:0,second:0,millisecond:0},sk=["year","month","day","hour","minute","second","millisecond"],TLe=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ILe=["year","ordinal","hour","minute","second","millisecond"];function lk(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new lee(e);return t}function Pte(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return lk(e)}}function ELe(e){if(_b===void 0&&(_b=di.now()),e.type!=="iana")return e.offset(_b);const t=e.name;let n=oN.get(t);return n===void 0&&(n=e.offset(_b),oN.set(t,n)),n}function Ote(e,t){const n=Ff(t.zone,di.defaultZone);if(!n.isValid)return jt.invalid(xb(n));const r=Gn.fromObject(t);let i,o;if(Ot(e.year))i=di.now();else{for(const l of sk)Ot(e[l])&&(e[l]=Lte[l]);const a=qee(e)||Gee(e);if(a)return jt.invalid(a);const s=ELe(n);[i,o]=ok(e,s,n)}return new jt({ts:i,zone:n,loc:r,o})}function zte(e,t,n){const r=Ot(n.round)?!0:n.round,i=Ot(n.rounding)?"trunc":n.rounding,o=(s,l)=>(s=YE(s,r||n.calendary?0:2,n.calendary?"round":i),t.loc.clone(n).relFormatter(n).format(s,l)),a=s=>n.calendary?t.hasSame(e,s)?0:t.startOf(s).diff(e.startOf(s),s).get(s):t.diff(e,s).get(s);if(n.unit)return o(a(n.unit),n.unit);for(const s of n.units){const l=a(s);if(Math.abs(l)>=1)return o(l,s)}return o(e>t?-0:0,n.units[n.units.length-1])}function Dte(e){let t={},n;return e.length>0&&typeof e[e.length-1]=="object"?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}let _b;const oN=new Map;class jt{constructor(t){const n=t.zone||di.defaultZone;let r=t.invalid||(Number.isNaN(t.ts)?new Jl("invalid input"):null)||(n.isValid?null:xb(n));this.ts=Ot(t.ts)?di.now():t.ts;let i=null,o=null;if(!r)if(t.old&&t.old.ts===this.ts&&t.old.zone.equals(n))[i,o]=[t.old.c,t.old.o];else{const a=Uf(t.o)&&!t.old?t.o:n.offset(this.ts);i=ik(this.ts,a),r=Number.isNaN(i.year)?new Jl("invalid input"):null,i=r?null:i,o=r?null:a}this._zone=n,this.loc=t.loc||Gn.create(),this.invalid=r,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new jt({})}static local(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return Ote({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static utc(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return t.zone=ba.utcInstance,Ote({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static fromJSDate(t,n={}){const r=sRe(t)?t.valueOf():NaN;if(Number.isNaN(r))return jt.invalid("invalid input");const i=Ff(n.zone,di.defaultZone);return i.isValid?new jt({ts:r,zone:i,loc:Gn.fromObject(n)}):jt.invalid(xb(i))}static fromMillis(t,n={}){if(Uf(t))return t<-Nte||t>Nte?jt.invalid("Timestamp out of range"):new jt({ts:t,zone:Ff(n.zone,di.defaultZone),loc:Gn.fromObject(n)});throw new Uo(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(Uf(t))return new jt({ts:t*1e3,zone:Ff(n.zone,di.defaultZone),loc:Gn.fromObject(n)});throw new Uo("fromSeconds requires a numerical input")}static fromObject(t,n={}){t=t||{};const r=Ff(n.zone,di.defaultZone);if(!r.isValid)return jt.invalid(xb(r));const i=Gn.fromObject(n),o=ek(t,Pte),{minDaysInFirstWeek:a,startOfWeek:s}=Zee(o,i),l=di.now(),c=Ot(n.specificOffset)?r.offset(l):n.specificOffset,d=!Ot(o.ordinal),f=!Ot(o.year),p=!Ot(o.month)||!Ot(o.day),v=f||p,x=o.weekYear||o.weekNumber;if((v||d)&&x)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&d)throw new dg("Can't mix ordinal dates with month/day");const y=x||o.weekday&&!v;let b,w,_=ik(l,c);y?(b=TLe,w=CLe,_=Y3(_,a,s)):d?(b=ILe,w=jLe,_=ZE(_)):(b=sk,w=Lte);let S=!1;for(const M of b){const O=o[M];Ot(O)?S?o[M]=w[M]:o[M]=_[M]:S=!0}const C=y?iRe(o,a,s):d?oRe(o):qee(o),j=C||Gee(o);if(j)return jt.invalid(j);const T=y?Vee(o,a,s):d?Hee(o):o,[E,$]=ok(T,c,r),D=new jt({ts:E,zone:r,o:$,loc:i});return o.weekday&&v&&t.weekday!==D.weekday?jt.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${D.toISO()}`):D.isValid?D:jt.invalid(D.invalid)}static fromISO(t,n={}){const[r,i]=KRe(t);return _g(r,i,n,"ISO 8601",t)}static fromRFC2822(t,n={}){const[r,i]=XRe(t);return _g(r,i,n,"RFC 2822",t)}static fromHTTP(t,n={}){const[r,i]=JRe(t);return _g(r,i,n,"HTTP",n)}static fromFormat(t,n,r={}){if(Ot(t)||Ot(n))throw new Uo("fromFormat requires an input string and a format");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[s,l,c,d]=SLe(a,t,n);return d?jt.invalid(d):_g(s,l,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return jt.fromFormat(t,n,r)}static fromSQL(t,n={}){const[r,i]=oLe(t);return _g(r,i,n,"SQL",t)}static invalid(t,n=null){if(!t)throw new Uo("need to specify a reason the DateTime is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(di.throwOnInvalid)throw new MMe(r);return new jt({invalid:r})}static isDateTime(t){return t&&t.isLuxonDateTime||!1}static parseFormatForOpts(t,n={}){const r=Ete(t,Gn.fromObject(n));return r?r.map(i=>i?i.val:null).join(""):null}static expandFormat(t,n={}){return jte(Yo.parseFormat(t),Gn.fromObject(n)).map(r=>r.val).join("")}static resetCache(){_b=void 0,oN.clear()}get(t){return this[t]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?nN(this).weekYear:NaN}get weekNumber(){return this.isValid?nN(this).weekNumber:NaN}get weekday(){return this.isValid?nN(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?rN(this).weekday:NaN}get localWeekNumber(){return this.isValid?rN(this).weekNumber:NaN}get localWeekYear(){return this.isValid?rN(this).weekYear:NaN}get ordinal(){return this.isValid?ZE(this.c).ordinal:NaN}get monthShort(){return this.isValid?nk.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?nk.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?nk.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?nk.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const t=864e5,n=6e4,r=J3(this.c),i=this.zone.offset(r-t),o=this.zone.offset(r+t),a=this.zone.offset(r-i*n),s=this.zone.offset(r-o*n);if(a===s)return[this];const l=r-a*n,c=r-s*n,d=ik(l,a),f=ik(c,s);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[_p(this,{ts:l}),_p(this,{ts:c})]:[this]}get isInLeapYear(){return mb(this.year)}get daysInMonth(){return X3(this.year,this.month)}get daysInYear(){return this.isValid?hg(this.year):NaN}get weeksInWeekYear(){return this.isValid?gb(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?gb(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(t={}){const{locale:n,numberingSystem:r,calendar:i}=Yo.create(this.loc.clone(t),t).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(t=0,n={}){return this.setZone(ba.instance(t),n)}toLocal(){return this.setZone(di.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Ff(t,di.defaultZone),t.equals(this.zone))return this;if(t.isValid){let i=this.ts;if(n||r){const o=t.offset(this.ts),a=this.toObject();[i]=ok(a,o,t)}return _p(this,{ts:i,zone:t})}else return jt.invalid(xb(t))}reconfigure({locale:t,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:t,numberingSystem:n,outputCalendar:r});return _p(this,{loc:i})}setLocale(t){return this.reconfigure({locale:t})}set(t){if(!this.isValid)return this;const n=ek(t,Pte),{minDaysInFirstWeek:r,startOfWeek:i}=Zee(n,this.loc),o=!Ot(n.weekYear)||!Ot(n.weekNumber)||!Ot(n.weekday),a=!Ot(n.ordinal),s=!Ot(n.year),l=!Ot(n.month)||!Ot(n.day),c=s||l,d=n.weekYear||n.weekNumber;if((c||a)&&d)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new dg("Can't mix ordinal dates with month/day");let f;o?f=Vee({...Y3(this.c,r,i),...n},r,i):Ot(n.ordinal)?(f={...this.toObject(),...n},Ot(n.day)&&(f.day=Math.min(X3(f.year,f.month),f.day))):f=Hee({...ZE(this.c),...n});const[p,v]=ok(f,this.o,this.zone);return _p(this,{ts:p,o:v})}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return _p(this,Mte(this,n))}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t).negate();return _p(this,Mte(this,n))}startOf(t,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;const r={},i=fn.normalizeUnit(t);switch(i){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(i==="weeks")if(n){const o=this.loc.getStartOfWeek(),{weekday:a}=this;a=3&&(l+="T"),l+=Rte(this,s,n,r,i,o,a),l}toISODate({format:t="extended",precision:n="day"}={}){return this.isValid?iN(this,t==="extended",lk(n)):null}toISOWeekDate(){return ak(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:t=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:s="milliseconds"}={}){return this.isValid?(s=lk(s),(i&&sk.indexOf(s)>=3?"T":"")+Rte(this,a==="extended",n,t,r,o,s)):null}toRFC2822(){return ak(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ak(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?iN(this,!0):null}toSQLTime({includeOffset:t=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let i="HH:mm:ss.SSS";return(n||t)&&(r&&(i+=" "),n?i+="z":t&&(i+="ZZ")),ak(this,i,!0)}toSQL(t={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(t)}`:null}toString(){return this.isValid?this.toISO():tN}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(t={}){if(!this.isValid)return{};const n={...this.c};return t.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(t,n="milliseconds",r={}){if(!this.isValid||!t.isValid)return fn.invalid("created by diffing an invalid DateTime");const i={locale:this.locale,numberingSystem:this.numberingSystem,...r},o=lRe(n).map(fn.normalizeUnit),a=t.valueOf()>this.valueOf(),s=a?this:t,l=a?t:this,c=dLe(s,l,o,i);return a?c.negate():c}diffNow(t="milliseconds",n={}){return this.diff(jt.now(),t,n)}until(t){return this.isValid?hi.fromDateTimes(this,t):this}hasSame(t,n,r){if(!this.isValid)return!1;const i=t.valueOf(),o=this.setZone(t.zone,{keepLocalTime:!0});return o.startOf(n,r)<=i&&i<=o.endOf(n,r)}equals(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)}toRelative(t={}){if(!this.isValid)return null;const n=t.base||jt.fromObject({},{zone:this.zone}),r=t.padding?thisn.valueOf(),Math.min)}static max(...t){if(!t.every(jt.isDateTime))throw new Uo("max requires all arguments be DateTimes");return Xee(t,n=>n.valueOf(),Math.max)}static fromFormatExplain(t,n,r={}){const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Ite(a,t,n)}static fromStringExplain(t,n,r={}){return jt.fromFormatExplain(t,n,r)}static buildFormatParser(t,n={}){const{locale:r=null,numberingSystem:i=null}=n,o=Gn.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0});return new Tte(o,t)}static fromFormatParser(t,n,r={}){if(Ot(t)||Ot(n))throw new Uo("fromFormatParser requires an input string and a format parser");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(n.locale))throw new Uo(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${n.locale}`);const{result:s,zone:l,specificOffset:c,invalidReason:d}=n.explainFromTokens(t);return d?jt.invalid(d):_g(s,l,r,`format ${n.format}`,t,c)}static get DATE_SHORT(){return Z3}static get DATE_MED(){return uee}static get DATE_MED_WITH_WEEKDAY(){return PMe}static get DATE_FULL(){return cee}static get DATE_HUGE(){return dee}static get TIME_SIMPLE(){return fee}static get TIME_WITH_SECONDS(){return hee}static get TIME_WITH_SHORT_OFFSET(){return pee}static get TIME_WITH_LONG_OFFSET(){return mee}static get TIME_24_SIMPLE(){return gee}static get TIME_24_WITH_SECONDS(){return vee}static get TIME_24_WITH_SHORT_OFFSET(){return yee}static get TIME_24_WITH_LONG_OFFSET(){return bee}static get DATETIME_SHORT(){return xee}static get DATETIME_SHORT_WITH_SECONDS(){return _ee}static get DATETIME_MED(){return wee}static get DATETIME_MED_WITH_SECONDS(){return kee}static get DATETIME_MED_WITH_WEEKDAY(){return OMe}static get DATETIME_FULL(){return See}static get DATETIME_FULL_WITH_SECONDS(){return Cee}static get DATETIME_HUGE(){return jee}static get DATETIME_HUGE_WITH_SECONDS(){return Tee}}function wb(e){if(jt.isDateTime(e))return e;if(e&&e.valueOf&&Uf(e.valueOf()))return jt.fromJSDate(e);if(e&&typeof e=="object")return jt.fromObject(e);throw new Uo(`Unknown datetime argument: ${e}, of type ${typeof e}`)}const $n=4,aN=5,Ate=3,Bo=4,Fte=9,dd=1e9,sN=1e6,Ute=6e7,lN={0:"Success",1:"Account In Use",2:"Account Loaded Twice",3:"Account Not Found",4:"Program Account Not Found",5:"Insufficient Funds For Fee",6:"Invalid Account For Fee",7:"Already Processed",8:"Blockhash Not Found",9:"Instruction Error",10:"Call Chain Too Deep",11:"Missing Signature For Fee",12:"Invalid Account Index",13:"Signature Failure",14:"Invalid Program For Execution",15:"Sanitize Failure",16:"Cluster Maintenance",17:"Account Borrow Outstanding",18:"Would Exceed Max Block Cost Limit",19:"Unsupported Version",20:"Invalid Writable Account",21:"Would Exceed Max Account Cost Limit",22:"Would Exceed Account Data Block Limit",23:"Too Many Account Locks",24:"Address Lookup Table Not Found",25:"Invalid Address Lookup Table Owner",26:"Invalid Address Lookup Table Data",27:"Invalid Address Lookup Table Index",28:"Invalid Rent Paying Account",29:"Would Exceed Max Vote Cost Limit",30:"Would Exceed Account Data Total Limit",31:"Duplicate Instruction",32:"Insufficient Funds For Rent",33:"Max Loaded Accounts Data Size Exceeded",34:"Invalid Loaded Accounts Data Size Limit",35:"Resanitization Needed",36:"Program Execution Temporarily Restricted",37:"Unbalanced Transaction",38:"Program Cache Hit Max Limit",39:"Commit Cancelled",40:"Bundle Peer",50:"Blockhash Nonce Already Advanced",51:"Blockhash Advanced Failed",52:"Blockhash Wrong Nonce"},uk="\xA0",kb=5,Bte=30,Sb=48,uN=13,cN=21,NLe=28,Wf=5,dN=21,ck=8,fN=ck,hN=122,Wte=dN+ck,$Le=Wte+hN+Wf,Vte="(max-width: 768px)",Hte="564px",Vf=110,Zte="1920px";var za=(e=>(e.AgaveJito="Agave Jito",e.Frankendancer="Frankendancer",e.Agave="Agave",e.AgavePaladin="Agave Paladin",e.Firedancer="Firedancer",e.AgaveBam="Agave BAM",e.Sig="Sig",e.AgaveRakurai="Agave Rakurai",e.FiredancerHarmonic="Firedancer Harmonic",e.AgaveHarmonic="Agave Harmonic",e.FrankendancerHarmonic="Frankendancer Harmonic",e))(za||{});const qte={1:"Agave Jito",2:"Frankendancer",3:"Agave",4:"Agave Paladin",5:"Firedancer",6:"Agave BAM",7:"Sig",8:"Agave Rakurai",9:"Firedancer Harmonic",10:"Agave Harmonic",11:"Frankendancer Harmonic"};function MLe(){if(typeof window>"u")return!1;const e=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(e)||"ontouchstart"in window&&!!(matchMedia!=null&&matchMedia("(hover: none)").matches)}const RLe=MLe(),fd="#E5484D",pN="#67B873",Gte="#C567EA",Yte="#2A7EDF",dk="#1CE7C2",LLe="#CBCBCB",Kte="#8A8A8A",mN="#B2BCC9",wg="#67696A",gN="#8E909D",Xte="#B4B4B4",Jte="#949494",PLe="rgba(250, 250, 250, 0.12)",OLe="rgba(250, 250, 250, 0.05)",zLe="#24262B",DLe="#F7F8F8",ALe="var(--gray-1, #111)",FLe="var(--gray-12, #eee)",ULe="var(--gray-10, #7b7b7b)",BLe="#333333",WLe="#F7F7F7",Qte=Jte,hd="#557AE0",Hf=pN,VLe="#9982f0",HLe="#303134",ZLe="#37a4bc",qLe="#00205F",GLe="#010102",YLe="#03030C",KLe="#A7A7A7",XLe="#121213",JLe=dk,QLe="#3BA158",ePe="#030312",tPe="#020C12",nPe="#020912",rPe="#060E0E",iPe="#120602",oPe="#252D2C",aPe="#175E51",sPe="#2D2B25",lPe="#6A510C",uPe="#E6B11E",cPe="#2D2525",dPe="#5E1717",fPe="#CE3636",hPe="#A2A2A2",pPe="#666",mPe="#C8B3B3",gPe="#686868",vPe="#171765ff",yPe="linear-gradient(270deg, #1414B8 0%, #090952 100%)",bPe="#8F8FED",xPe="#0E0E8E",_Pe="#0C171D",wPe="linear-gradient(270deg, #1481B8 0%, #093952 100%)",kPe="#47B4EB",SPe="#0F3F57",CPe="#041225",jPe="linear-gradient(270deg, #0E448B 0%, #090E15 100%)",TPe="#83B3F2",IPe="#0E448B",EPe="#091515",NPe=`linear-gradient(270deg, ${dk} 0%, #0C6B5A 100%)`,$Pe="#2EC9C9",MPe="#0C6B5A",RPe="#231511",LPe="linear-gradient(270deg, #8B2B0E 0%, #150C09 100%)",PPe="#F29D83",OPe="#250C04",zPe="rgba(16, 129, 108, 0.53)",DPe="#ffffff1a",APe="rgba(250, 250, 250, 0.12)",FPe="#cac4c4",UPe="#231f1f",BPe="var(--gray-11)",WPe="var(--gray-10)",VPe="var(--gray-9)",HPe="var(--gray-7)",ene="#3972C9",tne="#74AFEA",nne="#0F1313",rne="#118B74",ine="#871616",one="#163454",ane="#89603E",ZPe="#EF5F00",qPe="#F76B15",GPe="#0D9B8A",YPe="#53B9AB",KPe="#0588F0",XPe="#0090FF",sne=dk,lne="#E7B81C",une="#1C96E7",cne="#E7601C",dne="#9D1CE7",fne="#E71C88",hne="#898989",JPe="#FF7878",QPe="#FF9D0A",eOe="#FFC267",pne="#141720",fk="var(--gray-11)",hk="var(--gray-9)",mne="#56BF8C",gne="#4A7661",vne="#C27B45",yne="#714C32",bne="#DC6869",xne="#7A3B40",Yu="#BDF3FF",pk="#6F77C0",_ne="#363A63",vN="#20788C",tOe="#b1b1b1",wne="#7b837c",kne="#eee",Sne="#006851",Cne="#19307C",jne="#743F4D",nOe="#919191",rOe="#E5B319",iOe="#E55A19",oOe="#E5484D",yN="#55BA83",bN="#D94343",Tne="#232A38",aOe="#676767",sOe="#E13131",lOe="#5F6FA9",uOe="#A2A2A2",cOe="#DB8F38",dOe="#CACACA",xN="#858585",_N="#312D42",wN="#A66759",kN="#597FA6",SN="#A67F59",CN="#366357",jN="#B2904D",TN="#2F3842",IN="#B23232",EN="#82738C",fOe="#FAFAFA",hOe="#3CB4FF",pOe="#142D53",mOe="#FF5353",Ine="#525463",Ene="#23639E",Nne="#5C5555",$ne="#452909",Zf="#C6C6C6",NN="#183A5A",Mne="#10273D",gOe="#7CE198",vOe="#A4A3A3",yOe="#1B659933",sr="#777b84",$N="#2C3235",pd="#D19DFF",kg="#4CCCE6",qf="#1FD8A4",bOe="#6A6A6E",Rne=wg,Lne="rgba(250, 250, 250, 0.05)",MN="#30A46C",RN="#E5484D",mk="#FF8DCC",wp="#9EB1FF",xOe="#292929",_Oe="#9e9e9e",wOe="#1d6fba",kOe="#84858a",LN="rgba(0, 0, 0, .5)",Pne="rgba(125, 94, 84, .5)",One="#A18072",PN="#6C4E62",zne="rgba(158, 108, 0, .5)",Dne="#836A21",Ane="rgba(96, 100, 108, .5)",Fne="#B5B2BC",Une="rgba(17, 50, 100, .5)",Bne="#0090FF",SOe="var(--gray-11)",COe="var(--gray-10)",jOe="#41B9D3",TOe="#C46BF0",IOe="#6BEFD7",EOe="#C6F06A",NOe="#71EF9B",$Oe="#6AC4F0",MOe="#DDD",ROe="#8FB6FC",LOe="linear-gradient(83.85deg, #024eff 0.22%, #3ce844 102.21%)",POe="#F5F2EC",ON="#AFB2C2",OOe="rgba(178, 178, 178, 0.12)",zOe="#424242",DOe="rgba(114, 114, 114, 0.15)",AOe="#646464",zN="#676767",FOe="var(--gray-11)",UOe="var(--gray-10)",BOe="#cbcbcb",WOe="#1190CF",VOe="#6CB1D3",HOe="#967DC8",gk="#871616",DN="#1d863b",AN="#1d6286",Wne="#1CE7C2",Vne="#076B59",ZOe="#313131",Hne="#666666",Zne=AN,qOe="#19457A",GOe="#FFF",YOe="var(--gray-10)",qne="var(--teal-9)",Gne="var(--cyan-9)",Yne="var(--red-8)",Kne="var(--sky-8)",Xne="var(--green-9)",Jne="var(--indigo-10)",KOe="var(--blue-9)",XOe="#15181e",JOe="#9aabc3",QOe="#250f0f",eze="#283551",tze="#3b0c0c",nze="#e3efff",rze="#484D53B2",ize="var(--gray-11)",oze="var(--gray-10)",aze="var(--gray-12)",sze="#70B8FF",lze="#070A13",uze="#070B14 ",cze="rgba(42, 126, 223, 0.5)",dze="rgba(125, 125, 125, 0.50)",fze="#2A7EDF",hze="#070a13",pze="#0D0D0D",mze="#250f0f",gze="#002163",vze="#3b0c0c",yze="#848484",bze="#A0A0A0",xze="#ccc",_ze="#878787",wze="rgba(191, 135, 253, 0.13)",kze="#283551",vk="#0000001F",Sze=Object.freeze(Object.defineProperty({__proto__:null,appTeal:dk,averageChangedColor:vne,averageUnchangedColor:yne,badChangedColor:bne,badUnchangedColor:xne,bootProgressCatchupBackgroundColor:rPe,bootProgressFullSnapshotBackgroundColor:tPe,bootProgressGossipBackgroundColor:ePe,bootProgressGossipBarsColor:oPe,bootProgressGossipFilledBarColor:aPe,bootProgressGossipHighBarColor:cPe,bootProgressGossipHighFilledBarColor:dPe,bootProgressGossipHighThresholdBarColor:fPe,bootProgressGossipMidBarColor:sPe,bootProgressGossipMidFilledBarColor:lPe,bootProgressGossipMidThresholdBarColor:uPe,bootProgressIncrSnapshotBackgroundColor:nPe,bootProgressPrimaryTextColor:hPe,bootProgressSecondaryTextColor:pPe,bootProgressSnapshotUnitsColor:gPe,bootProgressSupermajorityBackgroundColor:iPe,bootProgressTertiaryColor:mPe,cardBackgroundColor:pne,chartAxisColor:sr,chartGridColor:$N,chartGridStrokeColor:Lne,circularProgressPathColor:Zne,circularProgressTrailColor:Hne,clusterDevelopmentColor:une,clusterDevnetColor:cne,clusterMainnetBetaColor:sne,clusterPythnetColor:dne,clusterPythtestColor:fne,clusterTestnetColor:lne,clusterUnknownColor:hne,computeUnitsColor:pd,containerBackgroundColor:OLe,containerBorderColor:PLe,dropdownBackgroundColor:zLe,dropdownButtonTextColor:DLe,elapsedTimeColor:bOe,epochNotLiveColor:hOe,epochSkippedSlotColor:mOe,epochSliderProgressColor:pOe,epochTextColor:fOe,errorToggleColor:RN,fadedText:kOe,failureColor:fd,feesColor:kg,firstTurbineSlotColor:ene,focusedBorderColor:wOe,goodChangedColor:mne,goodUnchangedColor:gne,gridLineColor:_N,gridTicksColor:xN,headerColor:Yu,headerLabelTextColor:Jte,highIncrementTextColor:oOe,iconButtonColor:Xte,incomePerCuToggleControlColor:wp,latestTurbineSlotColor:tne,lowIncrementTextColor:rOe,midIncrementTextColor:iOe,missingSlotColor:nne,mySlotsColor:Yte,navButtonInactiveTextColor:Qte,navButtonTextColor:WLe,needsReplaySlotColor:one,nextColor:Gte,nextSlotValueColor:dOe,nonDelinquentChartColor:_ne,nonDelinquentColor:pk,nonVoteColor:Hf,popoverBackgroundColor:ALe,popoverPrimaryColor:FLe,popoverSecondaryColor:ULe,primaryTextColor:mN,programCacheColor:kne,progressBackgroundColor:ZLe,progressBarCompleteCatchupColor:MPe,progressBarCompleteFullSnapshotColor:SPe,progressBarCompleteGossipColor:xPe,progressBarCompleteIncSnapshotColor:IPe,progressBarCompleteSupermajorityColor:OPe,progressBarInProgressCatchupBackground:NPe,progressBarInProgressCatchupBorder:$Pe,progressBarInProgressFullSnapshotBackground:wPe,progressBarInProgressFullSnapshotBorder:kPe,progressBarInProgressGossipBackground:yPe,progressBarInProgressGossipBorder:bPe,progressBarInProgressIncSnapshotBackground:jPe,progressBarInProgressIncSnapshotBorder:TPe,progressBarInProgressSupermajorityBackground:LPe,progressBarInProgressSupermajorityBorder:PPe,progressBarIncompleteCatchupColor:EPe,progressBarIncompleteFullSnapshotColor:_Pe,progressBarIncompleteGossipColor:vPe,progressBarIncompleteIncSnapshotColor:CPe,progressBarIncompleteSupermajorityColor:RPe,progressGutterBackgroundColor:HLe,regularTextColor:gN,repairedNeedsReplaySlotColor:ane,repairedSlotsBoldTextColor:qPe,repairedSlotsTextColor:ZPe,replayedMissingSlotColor:ine,replayedSlotColor:rne,replayedSlotsBoldTextColor:YPe,replayedSlotsTextColor:GPe,requestedToggleControlColor:mk,rowSeparatorBackgroundColor:BLe,sankeyBaseLabelColor:Zf,sankeyDroppedLinkColor:Nne,sankeyIncomingLinkColor:Ene,sankeyLinkGradientEndColor:NN,sankeyLinkGradientMiddleColor:Mne,sankeyRetainedLinkColor:$ne,sankeyStartEndNodeColor:Ine,sankeySuccessRateColor:gOe,searchDisabledBackgroundColor:DOe,searchDisabledBorderColor:OOe,searchDisabledTextColor:zOe,searchIconColor:ON,secondaryTextColor:wg,shredPublishedColor:EN,shredReceivedRepairColor:SN,shredReceivedTurbineColor:kN,shredRepairRequestedColor:wN,shredReplayedNothingColor:TN,shredReplayedRepairColor:jN,shredReplayedTurbineColor:CN,shredSkippedColor:IN,skipRateLabelColor:AOe,slotCardHeaderTextColor:BOe,slotCardSectionBackgroundColor:zN,slotCardSectionPrimaryColor:FOe,slotCardSectionSecondaryColor:UOe,slotDetailsBackgroundColor:XOe,slotDetailsChartControlsTriggered:sze,slotDetailsClickableSlotColor:KOe,slotDetailsColor:JOe,slotDetailsDisabledSlotBorderColor:rze,slotDetailsEarliestSlotColor:qne,slotDetailsFeesSlotColor:Kne,slotDetailsMySlotsNotSelectedColor:qOe,slotDetailsQuickSearchTextColor:YOe,slotDetailsRecentSlotColor:Gne,slotDetailsRewardsSlotColor:Jne,slotDetailsSearchLabelColor:GOe,slotDetailsSelectedBackgroundColor:eze,slotDetailsSelectedColor:nze,slotDetailsSkippedBackgroundColor:QOe,slotDetailsSkippedSelectedBackgroundColor:tze,slotDetailsSkippedSlotColor:Yne,slotDetailsStatsPrimary:ize,slotDetailsStatsSecondary:oze,slotDetailsStatsTertiary:aze,slotDetailsTipsSlotColor:Xne,slotNavBackgroundColor:GLe,slotNavFilterBackgroundColor:qLe,slotSelectorItemBackgroundColor:yOe,slotSelectorTextColor:vOe,slotStatusBlue:AN,slotStatusDullTeal:Vne,slotStatusGray:ZOe,slotStatusGreen:DN,slotStatusRed:gk,slotStatusTeal:Wne,slotTextActiveLinkColor:VOe,slotTextLinkColor:WOe,slotTextVisitedLinkColor:HOe,slotTimelineTextColor:tOe,slotsListBackgroundColor:hze,slotsListCurrentSlotBoxShadowColor:wze,slotsListCurrentSlotNumberBackgroundColor:kze,slotsListFutureSlotBackgroundColor:pze,slotsListFutureSlotColor:_ze,slotsListMySlotBackgroundColor:uze,slotsListMySlotsBorderColor:cze,slotsListMySlotsSelectedBorderColor:fze,slotsListNotProcessedMySlotsBorderColor:dze,slotsListPastSlotColor:bze,slotsListPastSlotNumberColor:yze,slotsListSelectedBackgroundColor:gze,slotsListSkippedBackgroundColor:mze,slotsListSkippedSelectedBackgroundColor:vze,slotsListSlotBackgroundColor:lze,slotsListSlotColor:xze,snapshotAreaChartDark:zPe,snapshotAreaChartGridLineColor:DPe,startLineColor:Rne,startupBackgroundColor:YLe,startupCompleteStepColor:QLe,startupProgressBackgroundColor:XLe,startupProgressTealColor:JLe,startupTextColor:KLe,successColor:pN,successToggleColor:MN,summaryAgaveTextColor:EOe,summaryBamTextColor:MOe,summaryFiredancerTextColor:IOe,summaryFrankendancerTextColor:TOe,summaryHarmonicTextColor:POe,summaryJitoTextColor:NOe,summaryMySlotsColor:jOe,summaryPaladinTextColor:$Oe,summaryPrimaryTextColor:SOe,summaryRakuraiTextColor:LOe,summarySecondaryTextColor:COe,summarySigTextColor:ROe,supermajorityPieChartTextColor:FPe,supermajorityPieChartUnfilledColor:UPe,supermajorityTableBorderColor:APe,supermajorityTableOfflinePrimaryColor:BPe,supermajorityTableOfflineSecondaryColor:WPe,supermajorityTableOnlinePrimaryColor:VPe,supermajorityTableOnlineSecondaryColor:HPe,tableBodyColor:Kte,tableHeaderColor:LLe,tileBackgroundBlueColor:lOe,tileBackgroundRedColor:sOe,tileBusyGreenColor:yN,tileBusyRedColor:bN,tileChartDarkBackground:vk,tilePrimaryStatValueColor:cOe,tileSparklineBackgroundColor:Tne,tileSparklineRangeTextColor:aOe,tileSubHeaderColor:uOe,tipsColor:qf,toastConnectingEndColor:eOe,toastConnectingStartColor:QPe,toastDisconnectedColor:JPe,toggleItemBackgroundColor:xOe,toggleItemTextColor:_Oe,totalValidatorsColor:vN,transactionAxisTextColor:nOe,transactionDefaultColor:LN,transactionExecuteColor:Ane,transactionExecuteTextColor:Fne,transactionFailedPathColor:jne,transactionLoadingColor:zne,transactionLoadingTextColor:Dne,transactionNonVotePathColor:Sne,transactionPostExecuteColor:Une,transactionPostExecuteTextColor:Bne,transactionPreloadingColor:Pne,transactionPreloadingTextColor:One,transactionValidateColor:PN,transactionVotePathColor:Cne,turbineSlotsBoldTextColor:XPe,turbineSlotsTextColor:KPe,unknownChangedColor:fk,unknownUnchangedColor:hk,voteDistanceColor:wne,voteLatencyColor:VLe,votesColor:hd},Symbol.toStringTag,{value:"Module"}));var Cze={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},jze=Array.prototype.slice;function yk(e){var t=e.length;return t?t===1?[e[0]]:t===2?[e[0],e[1]]:t===3?[e[0],e[1],e[2]]:jze.call(e,0):[]}function Tze(e){var t={};for(var n in e)Cze[n]||(t[n]=e[n]);return t}function Ize(e){return typeof e=="function"&&e.isMemoized}function Eze(e,t){return e===t||e!==e&&t!==t}function Qne(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}var Nze=function(){function e(t){this.keys=[],this.values=[],this.options=t;var n=typeof t.isMatchingKey=="function";n?this.getKeyIndex=this._getKeyIndexFromMatchingKey:t.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof t.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||n,this.shouldUpdateOnAdd=typeof t.onCacheAdd=="function",this.shouldUpdateOnChange=typeof t.onCacheChange=="function",this.shouldUpdateOnHit=typeof t.onCacheHit=="function"}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:yk(this.keys),size:this.size,values:yk(this.values)}},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(t){var n=this.options,r=n.isMatchingKey,i=n.maxSize,o=this.keys,a=o.length;if(!a)return-1;if(r(o[0],t))return 0;if(i>1){for(var s=1;s1){for(var l=0;l1){for(var a=0;a=l&&(i.length=o.length=l)},e.prototype.updateAsyncCache=function(t){var n=this,r=this.options,i=r.onCacheChange,o=r.onCacheHit,a=this.keys[0],s=this.values[0];this.values[0]=s.then(function(l){return n.shouldUpdateOnHit&&o(n,n.options,t),n.shouldUpdateOnChange&&i(n,n.options,t),l},function(l){var c=n.getKeyIndex(a);throw c!==-1&&(n.keys.splice(c,1),n.values.splice(c,1)),l})},e}();function Gf(e,t){if(t===void 0&&(t={}),Ize(e))return Gf(e.fn,Qne(e.options,t));if(typeof e!="function")throw new TypeError("You must pass a function to `memoize`.");var n=t.isEqual,r=n===void 0?Eze:n,i=t.isMatchingKey,o=t.isPromise,a=o===void 0?!1:o,s=t.maxSize,l=s===void 0?1:s,c=t.onCacheAdd,d=t.onCacheChange,f=t.onCacheHit,p=t.transformKey,v=Qne({isEqual:r,isMatchingKey:i,isPromise:a,maxSize:l,onCacheAdd:c,onCacheChange:d,onCacheHit:f,transformKey:p},Tze(t)),x=new Nze(v),y=x.keys,b=x.values,w=x.canTransformKey,_=x.shouldCloneArguments,S=x.shouldUpdateOnAdd,C=x.shouldUpdateOnChange,j=x.shouldUpdateOnHit,T=function(){var E=_?yk(arguments):arguments;w&&(E=p(E));var $=y.length?x.getKeyIndex(E):-1;if($!==-1)j&&f(x,v,T),$&&(x.orderByLru(y[$],b[$],$),C&&d(x,v,T));else{var D=e.apply(this,arguments),M=_?E:yk(arguments);x.orderByLru(M,D,y.length),a&&x.updateAsyncCache(T),S&&c(x,v,T),C&&d(x,v,T)}return b[0]};return T.cache=x,T.fn=e,T.isMemoized=!0,T.options=v,T}function FN(e,t){return e.leader_slots.reduce((n,r,i)=>(e.staked_pubkeys[r]===t&&n.push(i*$n+e.start_slot),n),[])}function _i(e){return e-e%$n}const UN=[{unit:"years",suffix:"y"},{unit:"months",suffix:"m"},{unit:"weeks",suffix:"w"},{unit:"days",suffix:"d"},{unit:"hours",suffix:"h"},{unit:"minutes",suffix:"m"},{unit:"seconds",suffix:"s"}];function $ze(e,t){if(t!=null&&t.showOnlyTwoSignificantUnits){const n=UN.findIndex(({unit:r})=>!!e[r]);return UN.slice(n,n+2).map(({unit:r,suffix:i})=>[e[r],i])}return UN.filter(({unit:n})=>t!=null&&t.omitSeconds&&n==="seconds"?!1:!!e[n]).map(({unit:n,suffix:r})=>[e[n],r])}function ere(e,t){if(!e)return;if(e.toMillis()<1e3)return[[0,"s"]];const n=$ze(e,t);return n.length?n:[[0,"s"]]}function kp(e,t){const n=ere(e,t);return n?n.map(([r,i])=>`${r}${i}`).join(" "):"Never"}function Mze(e,t={showSeconds:!0}){if(!e)return"Never";if(e.toMillis()<0)return"0s";let n="";return e.years&&(n&&(n+=" "),n+=`${e.years}y`),e.months&&(n&&(n+=" "),n+=`${e.months}m`),e.weeks&&(n&&(n+=" "),n+=`${e.weeks}w`),e.days&&(n&&(n+=" "),n+=`${e.days}d`),e.hours&&(n&&(n+=" "),n+=`${e.hours}h`),e.minutes&&(n&&(n+=" "),n+=`${e.minutes}m`),e.seconds&&t.showSeconds&&(n&&(n+=" "),n+=`${e.seconds}s`),n||(n="0s"),n}let Yf=jt.now();setInterval(()=>{Yf=jt.now()},1e3);function tre(e){return jt.fromMillis(Math.trunc(Number(e/1000000n)))}function Cb(e){return e!==void 0}const jb=e=>e>=18446744073709552e3?0:e;function nre(e){return e.vote.reduce((t,{activated_stake:n})=>t+n,0n)}function Tb(e,t){if(e===void 0)return;const n=Number(e)/dd;return n<1?n.toLocaleString(void 0,{maximumFractionDigits:t}):n<100?n.toLocaleString(void 0,{maximumFractionDigits:2}):n.toLocaleString(void 0,{maximumFractionDigits:0})}function BN(e,t){const n=Tb(e,t);if(n!==void 0)return`${n}\xA0SOL`}const Rze=e=>Array.isArray(e);function WN(e){if(navigator.clipboard){navigator.clipboard.writeText(e);return}const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.left="-999999px",document.body.appendChild(t),t.select();try{document.execCommand("copy")||console.error("Failed to copy text",e)}catch(n){console.error("Failed to copy text",e,n)}finally{document.body.removeChild(t)}}function Lze(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function VN(e,t){return e.txn_landed[t]&&![5,6].includes(e.txn_error_code[t])?e.txn_priority_fee[t]+e.txn_transaction_fee[t]:0n}function HN(e,t){return e.txn_landed[t]&&e.txn_error_code[t]===0?e.txn_tips[t]:0n}function md(e,t){return VN(e,t)+HN(e,t)}function ZN(e){return e.split(":")[0]}function bk(e){switch(e){case"mainnet-beta":return sne;case"testnet":return lne;case"development":return une;case"devnet":return cne;case"pythnet":return dne;case"pythtest":return fne;case"unknown":case void 0:return hne}}function Ib(e){const t=e*8;return t<1e3?{value:xk(t),unit:"b"}:t<1e6?{value:xk(t/1e3),unit:"Kb"}:t<1e9?{value:xk(t/1e6),unit:"Mb"}:{value:xk(t/1e9),unit:"Gb"}}const Sg=[{unit:"B",divisor:1,threshold:1e3},{unit:"kB",divisor:1e3,threshold:1e6},{unit:"MB",divisor:1e6,threshold:1e9},{unit:"GB",divisor:1e9,threshold:1/0}];function Da(e,t=1,n,r=!0){if(e===0&&r)return{value:"0",unit:n??"B"};const i=Sg.find(o=>o.unit===n)??Sg.find(o=>e=9.5?Math.round(e):Math.round(e*10)/10}function Eb(e){let t=-1/0;for(let n=0;nt&&(t=r)}return t}function Pze(e){let t=1/0;for(let n=0;n{if(e)return e.toUpperCase().split("").map(t=>String.fromCodePoint(t.charCodeAt(0)-65+127462)).join("")},{maxSize:100}),_k={month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3},wk={local:new Intl.DateTimeFormat(void 0,{..._k,timeZoneName:"short"}),localNoTz:new Intl.DateTimeFormat(void 0,_k),utc:new Intl.DateTimeFormat(void 0,{..._k,timeZone:"UTC",timeZoneName:"short"}),utcNoTz:new Intl.DateTimeFormat(void 0,{..._k,timeZone:"UTC"})};function kk(e,t){const n=Number(e/1000000n),r=Number(e%1000000n),i=new Date(n),o=(t==null?void 0:t.timezone)??"local",a=(t==null?void 0:t.showTimezoneName)??!0,s=(o==="utc"?a?wk.utc:wk.utcNoTz:a?wk.local:wk.localNoTz).formatToParts(i),l=r.toString().padStart(6,"0");let c="",d="";for(const f of s)c+=f.value,d+=f.value,f.type==="fractionalSecond"&&(d+=l);return{inMillis:c,inNanos:d}}function zze(e){return e.level==="rooted"&&(e.vote_latency&&e.vote_latency>1||e.vote_latency===null&&!e.skipped)}function rre(e,t,n){let r=0;for(let i=e;it>=a.from&&t{if(!t)return"";const a=Sp(t,{units:"iec"}),s=e?e/t:0,l=Number(a.value);return`${isNaN(l)?"0":(l*s).toFixed(1)} / ${a.toString()}`};return u.jsx(W,{children:u.jsxs(W,{direction:"column",children:[u.jsx(Mt,{minHeight:"10px"}),u.jsx(N4,{value:r,className:H3.progress}),u.jsxs(W,{minHeight:"10px",children:[u.jsx(Z,{className:H3.text,children:o()}),u.jsx(Mt,{flexGrow:"1"}),u.jsxs(Z,{className:H3.text,children:["~",kp(i)]})]})]})})}function Aze(){const e=J(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_full_snapshot_current_bytes,totalBytes:e.downloading_full_snapshot_total_bytes,remainingSecs:e.downloading_full_snapshot_remaining_secs})}var Sk={exports:{}};/** +* @license +* Lodash +* Copyright OpenJS Foundation and other contributors +* Released under MIT license +* Based on Underscore.js 1.8.3 +* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +*/Sk.exports,function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",f=1,p=2,v=4,x=1,y=2,b=1,w=2,_=4,S=8,C=16,j=32,T=64,E=128,$=256,D=512,M=30,O="...",te=800,q=16,P=1,X=2,A=3,Y=1/0,F=9007199254740991,H=17976931348623157e292,ee=NaN,ce=4294967295,B=ce-1,ae=ce>>>1,je=[["ary",E],["bind",b],["bindKey",w],["curry",S],["curryRight",C],["flip",D],["partial",j],["partialRight",T],["rearg",$]],me="[object Arguments]",ke="[object Array]",he="[object AsyncFunction]",ue="[object Boolean]",re="[object Date]",ge="[object DOMException]",$e="[object Error]",pe="[object Function]",ye="[object GeneratorFunction]",Se="[object Map]",Ce="[object Number]",Ue="[object Null]",Ge="[object Object]",_t="[object Promise]",St="[object Proxy]",ut="[object RegExp]",ct="[object Set]",bt="[object String]",Qe="[object Symbol]",Ke="[object Undefined]",De="[object WeakMap]",Dt="[object WeakSet]",pn="[object ArrayBuffer]",Yn="[object DataView]",hr="[object Float32Array]",Kn="[object Float64Array]",kr="[object Int8Array]",On="[object Int16Array]",Mr="[object Int32Array]",tr="[object Uint8Array]",Sr="[object Uint8ClampedArray]",ri="[object Uint16Array]",uo="[object Uint32Array]",Ki=/\b__p \+= '';/g,No=/\b(__p \+=) '' \+/g,Ps=/(__e\(.*?\)|\b__t\)) \+\n'';/g,zn=/&(?:amp|lt|gt|quot|#39);/g,co=/[&<>"']/g,xa=RegExp(zn.source),yc=RegExp(co.source),bc=/<%-([\s\S]+?)%>/g,xc=/<%([\s\S]+?)%>/g,qa=/<%=([\s\S]+?)%>/g,kl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pi=/^\w*$/,Un=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rr=/[\\^$.*+?()[\]{}|]/g,$o=RegExp(Rr.source),fo=/^\s+/,Lr=/\s/,ho=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,_a=/\{\n\/\* \[wrapped with (.+)\] \*/,it=/,? & /,Yt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,ii=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ga=/\w*$/,Ya=/^[-+]0x[0-9a-f]+$/i,Ko=/^0b[01]+$/i,mi=/^\[object .+?Constructor\]$/,Bn=/^0o[0-7]+$/i,pr=/^(?:0|[1-9]\d*)$/,Cr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ka=/($^)/,po=/['\n\r\u2028\u2029\\]/g,mo="\\ud800-\\udfff",Vr="\\u0300-\\u036f",wa="\\ufe20-\\ufe2f",ji="\\u20d0-\\u20ff",gi=Vr+wa+ji,Os="\\u2700-\\u27bf",go="a-z\\xdf-\\xf6\\xf8-\\xff",Xo="\\xac\\xb1\\xd7\\xf7",Pd="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Od="\\u2000-\\u206f",bu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xi="A-Z\\xc0-\\xd6\\xd8-\\xde",oi="\\ufe0e\\ufe0f",_c=Xo+Pd+Od+bu,xu="['\u2019]",wc="["+mo+"]",kc="["+_c+"]",Sl="["+gi+"]",Xa="\\d+",z1="["+Os+"]",zd="["+go+"]",Sc="[^"+mo+_c+Xa+Os+go+Xi+"]",Dd="\\ud83c[\\udffb-\\udfff]",Fm="(?:"+Sl+"|"+Dd+")",Ad="[^"+mo+"]",L="(?:\\ud83c[\\udde6-\\uddff]){2}",G="[\\ud800-\\udbff][\\udc00-\\udfff]",ie="["+Xi+"]",Ie="\\u200d",ze="(?:"+zd+"|"+Sc+")",vt="(?:"+ie+"|"+Sc+")",Kt="(?:"+xu+"(?:d|ll|m|re|s|t|ve))?",In="(?:"+xu+"(?:D|LL|M|RE|S|T|VE))?",Di=Fm+"?",Ti="["+oi+"]?",Ji="(?:"+Ie+"(?:"+[Ad,L,G].join("|")+")"+Ti+Di+")*",mC="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fd="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",j_=Ti+Di+Ji,T_="(?:"+[z1,L,G].join("|")+")"+j_,D1="(?:"+[Ad+Sl+"?",Sl,L,G,wc].join("|")+")",A1=RegExp(xu,"g"),F1=RegExp(Sl,"g"),_u=RegExp(Dd+"(?="+Dd+")|"+D1+j_,"g"),Ud=RegExp([ie+"?"+zd+"+"+Kt+"(?="+[kc,ie,"$"].join("|")+")",vt+"+"+In+"(?="+[kc,ie+ze,"$"].join("|")+")",ie+"?"+ze+"+"+Kt,ie+"+"+In,Fd,mC,Xa,T_].join("|"),"g"),I_=RegExp("["+Ie+mo+gi+oi+"]"),E_=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Bd=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Wd=-1,rr={};rr[hr]=rr[Kn]=rr[kr]=rr[On]=rr[Mr]=rr[tr]=rr[Sr]=rr[ri]=rr[uo]=!0,rr[me]=rr[ke]=rr[pn]=rr[ue]=rr[Yn]=rr[re]=rr[$e]=rr[pe]=rr[Se]=rr[Ce]=rr[Ge]=rr[ut]=rr[ct]=rr[bt]=rr[De]=!1;var Xn={};Xn[me]=Xn[ke]=Xn[pn]=Xn[Yn]=Xn[ue]=Xn[re]=Xn[hr]=Xn[Kn]=Xn[kr]=Xn[On]=Xn[Mr]=Xn[Se]=Xn[Ce]=Xn[Ge]=Xn[ut]=Xn[ct]=Xn[bt]=Xn[Qe]=Xn[tr]=Xn[Sr]=Xn[ri]=Xn[uo]=!0,Xn[$e]=Xn[pe]=Xn[De]=!1;var mr={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},jr={"&":"&","<":"<",">":">",'"':""","'":"'"},wu={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ai={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ii=parseFloat,Ei=parseInt,ir=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Vd=typeof self=="object"&&self&&self.Object===Object&&self,ai=ir||Vd||Function("return this")(),U1=t&&!t.nodeType&&t,Mo=U1&&!0&&e&&!e.nodeType&&e,Ja=Mo&&Mo.exports===U1,B1=Ja&&ir.process,ka=function(){try{var le=Mo&&Mo.require&&Mo.require("util").types;return le||B1&&B1.binding&&B1.binding("util")}catch{}}(),N_=ka&&ka.isArrayBuffer,$_=ka&&ka.isDate,zs=ka&&ka.isMap,Cl=ka&&ka.isRegExp,ku=ka&&ka.isSet,Cc=ka&&ka.isTypedArray;function Jo(le,Ne,we){switch(we.length){case 0:return le.call(Ne);case 1:return le.call(Ne,we[0]);case 2:return le.call(Ne,we[0],we[1]);case 3:return le.call(Ne,we[0],we[1],we[2])}return le.apply(Ne,we)}function Ds(le,Ne,we,Je){for(var xt=-1,Gt=le==null?0:le.length;++xt-1}function V1(le,Ne,we){for(var Je=-1,xt=le==null?0:le.length;++Je-1;);return we}function O_(le,Ne){for(var we=le.length;we--&&Tc(Ne,le[we],0)>-1;);return we}function gC(le,Ne){for(var we=le.length,Je=0;we--;)le[we]===Ne&&++Je;return Je}var J1=Y1(mr),N=Y1(jr);function z(le){return"\\"+Ai[le]}function K(le,Ne){return le==null?n:le[Ne]}function Q(le){return I_.test(le)}function de(le){return E_.test(le)}function _e(le){for(var Ne,we=[];!(Ne=le.next()).done;)we.push(Ne.value);return we}function Me(le){var Ne=-1,we=Array(le.size);return le.forEach(function(Je,xt){we[++Ne]=[xt,Je]}),we}function Fe(le,Ne){return function(we){return le(Ne(we))}}function Ve(le,Ne){for(var we=-1,Je=le.length,xt=0,Gt=[];++we-1}function I0e(h,g){var k=this.__data__,I=Y_(k,h);return I<0?(++this.size,k.push([h,g])):k[I][1]=g,this}Nc.prototype.clear=S0e,Nc.prototype.delete=C0e,Nc.prototype.get=j0e,Nc.prototype.has=T0e,Nc.prototype.set=I0e;function $c(h){var g=-1,k=h==null?0:h.length;for(this.clear();++g=g?h:g)),h}function Us(h,g,k,I,R,V){var ne,se=g&f,ve=g&p,Re=g&v;if(k&&(ne=R?k(h,I,R,V):k(h)),ne!==n)return ne;if(!Jr(h))return h;var Le=Ht(h);if(Le){if(ne=Mge(h),!se)return ja(h,ne)}else{var Ae=Lo(h),tt=Ae==pe||Ae==ye;if(Jd(h))return hz(h,se);if(Ae==Ge||Ae==me||tt&&!R){if(ne=ve||tt?{}:Mz(h),!se)return ve?_ge(h,V0e(ne,h)):xge(h,WO(ne,h))}else{if(!Xn[Ae])return R?h:{};ne=Rge(h,Ae,se)}}V||(V=new Tl);var pt=V.get(h);if(pt)return pt;V.set(h,ne),sD(h)?h.forEach(function($t){ne.add(Us($t,g,k,$t,h,V))}):oD(h)&&h.forEach(function($t,mn){ne.set(mn,Us($t,g,k,mn,h,V))});var Nt=Re?ve?UC:FC:ve?Ia:eo,nn=Le?n:Nt(h);return Sa(nn||h,function($t,mn){nn&&(mn=$t,$t=h[mn]),iv(ne,mn,Us($t,g,k,mn,h,V))}),ne}function H0e(h){var g=eo(h);return function(k){return VO(k,h,g)}}function VO(h,g,k){var I=k.length;if(h==null)return!I;for(h=tn(h);I--;){var R=k[I],V=g[R],ne=h[R];if(ne===n&&!(R in h)||!V(ne))return!1}return!0}function HO(h,g,k){if(typeof h!="function")throw new ar(a);return dv(function(){h.apply(n,k)},g)}function ov(h,g,k,I){var R=-1,V=Su,ne=!0,se=h.length,ve=[],Re=g.length;if(!se)return ve;k&&(g=or(g,Sn(k))),I?(V=V1,ne=!1):g.length>=i&&(V=Ic,ne=!1,g=new jh(g));e:for(;++RR?0:R+k),I=I===n||I>R?R:Xt(I),I<0&&(I+=R),I=k>I?0:uD(I);k0&&k(se)?g>1?vo(se,g-1,k,I,R):Cu(R,se):I||(R[R.length]=se)}return R}var wC=bz(),GO=bz(!0);function Iu(h,g){return h&&wC(h,g,eo)}function kC(h,g){return h&&GO(h,g,eo)}function X_(h,g){return Ca(g,function(k){return Oc(h[k])})}function Ih(h,g){g=Kd(g,h);for(var k=0,I=g.length;h!=null&&kg}function G0e(h,g){return h!=null&&Jn.call(h,g)}function Y0e(h,g){return h!=null&&g in tn(h)}function K0e(h,g,k){return h>=Ro(g,k)&&h=120&&Le.length>=120)?new jh(ne&&Le):n}Le=h[0];var Ae=-1,tt=se[0];e:for(;++Ae-1;)se!==h&&B_.call(se,ve,1),B_.call(h,ve,1);return h}function oz(h,g){for(var k=h?g.length:0,I=k-1;k--;){var R=g[k];if(k==I||R!==V){var V=R;Pc(R)?B_.call(h,R,1):RC(h,R)}}return h}function NC(h,g){return h+H_(AO()*(g-h+1))}function uge(h,g,k,I){for(var R=-1,V=Fi(V_((g-h)/(k||1)),0),ne=we(V);V--;)ne[I?V:++R]=h,h+=k;return ne}function $C(h,g){var k="";if(!h||g<1||g>F)return k;do g%2&&(k+=h),g=H_(g/2),g&&(h+=h);while(g);return k}function sn(h,g){return GC(Pz(h,g,Ea),h+"")}function cge(h){return BO(Xm(h))}function dge(h,g){var k=Xm(h);return l2(k,Th(g,0,k.length))}function lv(h,g,k,I){if(!Jr(h))return h;g=Kd(g,h);for(var R=-1,V=g.length,ne=V-1,se=h;se!=null&&++RR?0:R+g),k=k>R?R:k,k<0&&(k+=R),R=g>k?0:k-g>>>0,g>>>=0;for(var V=we(R);++I>>1,ne=h[V];ne!==null&&!es(ne)&&(k?ne<=g:ne=i){var Re=g?null:Cge(h);if(Re)return et(Re);ne=!1,R=Ic,ve=new jh}else ve=g?[]:se;e:for(;++I=I?h:Bs(h,g,k)}var fz=n0e||function(h){return ai.clearTimeout(h)};function hz(h,g){if(g)return h.slice();var k=h.length,I=LO?LO(k):new h.constructor(k);return h.copy(I),I}function zC(h){var g=new h.constructor(h.byteLength);return new F_(g).set(new F_(h)),g}function gge(h,g){var k=g?zC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.byteLength)}function vge(h){var g=new h.constructor(h.source,Ga.exec(h));return g.lastIndex=h.lastIndex,g}function yge(h){return rv?tn(rv.call(h)):{}}function pz(h,g){var k=g?zC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.length)}function mz(h,g){if(h!==g){var k=h!==n,I=h===null,R=h===h,V=es(h),ne=g!==n,se=g===null,ve=g===g,Re=es(g);if(!se&&!Re&&!V&&h>g||V&&ne&&ve&&!se&&!Re||I&&ne&&ve||!k&&ve||!R)return 1;if(!I&&!V&&!Re&&h=se)return ve;var Re=k[I];return ve*(Re=="desc"?-1:1)}}return h.index-g.index}function gz(h,g,k,I){for(var R=-1,V=h.length,ne=k.length,se=-1,ve=g.length,Re=Fi(V-ne,0),Le=we(ve+Re),Ae=!I;++se1?k[R-1]:n,ne=R>2?k[2]:n;for(V=h.length>3&&typeof V=="function"?(R--,V):n,ne&&ta(k[0],k[1],ne)&&(V=R<3?n:V,R=1),g=tn(g);++I-1?R[V?g[ne]:ne]:n}}function wz(h){return Lc(function(g){var k=g.length,I=k,R=Fs.prototype.thru;for(h&&g.reverse();I--;){var V=g[I];if(typeof V!="function")throw new ar(a);if(R&&!ne&&a2(V)=="wrapper")var ne=new Fs([],!0)}for(I=ne?I:k;++I1&&_n.reverse(),Le&&vese))return!1;var Re=V.get(h),Le=V.get(g);if(Re&&Le)return Re==g&&Le==h;var Ae=-1,tt=!0,pt=k&y?new jh:n;for(V.set(h,g),V.set(g,h);++Ae1?"& ":"")+g[I],g=g.join(k>2?", ":" "),h.replace(ho,`{ +/* [wrapped with `+g+`] */ +`)}function Pge(h){return Ht(h)||$h(h)||!!(zO&&h&&h[zO])}function Pc(h,g){var k=typeof h;return g=g??F,!!g&&(k=="number"||k!="symbol"&&pr.test(h))&&h>-1&&h%1==0&&h0){if(++g>=te)return arguments[0]}else g=0;return h.apply(n,arguments)}}function l2(h,g){var k=-1,I=h.length,R=I-1;for(g=g===n?I:g;++k1?h[g-1]:n;return k=typeof k=="function"?(h.pop(),k):n,qz(h,k)});function Gz(h){var g=U(h);return g.__chain__=!0,g}function Z1e(h,g){return g(h),h}function u2(h,g){return g(h)}var q1e=Lc(function(h){var g=h.length,k=g?h[0]:0,I=this.__wrapped__,R=function(V){return _C(V,h)};return g>1||this.__actions__.length||!(I instanceof yn)||!Pc(k)?this.thru(R):(I=I.slice(k,+k+(g?1:0)),I.__actions__.push({func:u2,args:[R],thisArg:n}),new Fs(I,this.__chain__).thru(function(V){return g&&!V.length&&V.push(n),V}))});function G1e(){return Gz(this)}function Y1e(){return new Fs(this.value(),this.__chain__)}function K1e(){this.__values__===n&&(this.__values__=lD(this.value()));var h=this.__index__>=this.__values__.length,g=h?n:this.__values__[this.__index__++];return{done:h,value:g}}function X1e(){return this}function J1e(h){for(var g,k=this;k instanceof G_;){var I=Uz(k);I.__index__=0,I.__values__=n,g?R.__wrapped__=I:g=I;var R=I;k=k.__wrapped__}return R.__wrapped__=h,g}function Q1e(){var h=this.__wrapped__;if(h instanceof yn){var g=h;return this.__actions__.length&&(g=new yn(this)),g=g.reverse(),g.__actions__.push({func:u2,args:[YC],thisArg:n}),new Fs(g,this.__chain__)}return this.thru(YC)}function eve(){return cz(this.__wrapped__,this.__actions__)}var tve=t2(function(h,g,k){Jn.call(h,k)?++h[k]:Mc(h,k,1)});function nve(h,g,k){var I=Ht(h)?W1:Z0e;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}function rve(h,g){var k=Ht(h)?Ca:qO;return k(h,It(g,3))}var ive=_z(Bz),ove=_z(Wz);function ave(h,g){return vo(c2(h,g),1)}function sve(h,g){return vo(c2(h,g),Y)}function lve(h,g,k){return k=k===n?1:Xt(k),vo(c2(h,g),k)}function Yz(h,g){var k=Ht(h)?Sa:Gd;return k(h,It(g,3))}function Kz(h,g){var k=Ht(h)?M_:ZO;return k(h,It(g,3))}var uve=t2(function(h,g,k){Jn.call(h,k)?h[k].push(g):Mc(h,k,[g])});function cve(h,g,k,I){h=Ta(h)?h:Xm(h),k=k&&!I?Xt(k):0;var R=h.length;return k<0&&(k=Fi(R+k,0)),m2(h)?k<=R&&h.indexOf(g,k)>-1:!!R&&Tc(h,g,k)>-1}var dve=sn(function(h,g,k){var I=-1,R=typeof g=="function",V=Ta(h)?we(h.length):[];return Gd(h,function(ne){V[++I]=R?Jo(g,ne,k):av(ne,g,k)}),V}),fve=t2(function(h,g,k){Mc(h,k,g)});function c2(h,g){var k=Ht(h)?or:QO;return k(h,It(g,3))}function hve(h,g,k,I){return h==null?[]:(Ht(g)||(g=g==null?[]:[g]),k=I?n:k,Ht(k)||(k=k==null?[]:[k]),rz(h,g,k))}var pve=t2(function(h,g,k){h[k?0:1].push(g)},function(){return[[],[]]});function mve(h,g,k){var I=Ht(h)?jl:K1,R=arguments.length<3;return I(h,It(g,4),k,R,Gd)}function gve(h,g,k){var I=Ht(h)?ju:K1,R=arguments.length<3;return I(h,It(g,4),k,R,ZO)}function vve(h,g){var k=Ht(h)?Ca:qO;return k(h,h2(It(g,3)))}function yve(h){var g=Ht(h)?BO:cge;return g(h)}function bve(h,g,k){(k?ta(h,g,k):g===n)?g=1:g=Xt(g);var I=Ht(h)?U0e:dge;return I(h,g)}function xve(h){var g=Ht(h)?B0e:hge;return g(h)}function _ve(h){if(h==null)return 0;if(Ta(h))return m2(h)?hn(h):h.length;var g=Lo(h);return g==Se||g==ct?h.size:TC(h).length}function wve(h,g,k){var I=Ht(h)?jc:pge;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}var kve=sn(function(h,g){if(h==null)return[];var k=g.length;return k>1&&ta(h,g[0],g[1])?g=[]:k>2&&ta(g[0],g[1],g[2])&&(g=[g[0]]),rz(h,vo(g,1),[])}),d2=r0e||function(){return ai.Date.now()};function Sve(h,g){if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){if(--h<1)return g.apply(this,arguments)}}function Xz(h,g,k){return g=k?n:g,g=h&&g==null?h.length:g,Rc(h,E,n,n,n,n,g)}function Jz(h,g){var k;if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){return--h>0&&(k=g.apply(this,arguments)),h<=1&&(g=n),k}}var XC=sn(function(h,g,k){var I=b;if(k.length){var R=Ve(k,Ym(XC));I|=j}return Rc(h,I,g,k,R)}),Qz=sn(function(h,g,k){var I=b|w;if(k.length){var R=Ve(k,Ym(Qz));I|=j}return Rc(g,I,h,k,R)});function eD(h,g,k){g=k?n:g;var I=Rc(h,S,n,n,n,n,n,g);return I.placeholder=eD.placeholder,I}function tD(h,g,k){g=k?n:g;var I=Rc(h,C,n,n,n,n,n,g);return I.placeholder=tD.placeholder,I}function nD(h,g,k){var I,R,V,ne,se,ve,Re=0,Le=!1,Ae=!1,tt=!0;if(typeof h!="function")throw new ar(a);g=Vs(g)||0,Jr(k)&&(Le=!!k.leading,Ae="maxWait"in k,V=Ae?Fi(Vs(k.maxWait)||0,g):V,tt="trailing"in k?!!k.trailing:tt);function pt(yi){var El=I,Dc=R;return I=R=n,Re=yi,ne=h.apply(Dc,El),ne}function Nt(yi){return Re=yi,se=dv(mn,g),Le?pt(yi):ne}function nn(yi){var El=yi-ve,Dc=yi-Re,_D=g-El;return Ae?Ro(_D,V-Dc):_D}function $t(yi){var El=yi-ve,Dc=yi-Re;return ve===n||El>=g||El<0||Ae&&Dc>=V}function mn(){var yi=d2();if($t(yi))return _n(yi);se=dv(mn,nn(yi))}function _n(yi){return se=n,tt&&I?pt(yi):(I=R=n,ne)}function ts(){se!==n&&fz(se),Re=0,I=ve=R=se=n}function na(){return se===n?ne:_n(d2())}function ns(){var yi=d2(),El=$t(yi);if(I=arguments,R=this,ve=yi,El){if(se===n)return Nt(ve);if(Ae)return fz(se),se=dv(mn,g),pt(ve)}return se===n&&(se=dv(mn,g)),ne}return ns.cancel=ts,ns.flush=na,ns}var Cve=sn(function(h,g){return HO(h,1,g)}),jve=sn(function(h,g,k){return HO(h,Vs(g)||0,k)});function Tve(h){return Rc(h,D)}function f2(h,g){if(typeof h!="function"||g!=null&&typeof g!="function")throw new ar(a);var k=function(){var I=arguments,R=g?g.apply(this,I):I[0],V=k.cache;if(V.has(R))return V.get(R);var ne=h.apply(this,I);return k.cache=V.set(R,ne)||V,ne};return k.cache=new(f2.Cache||$c),k}f2.Cache=$c;function h2(h){if(typeof h!="function")throw new ar(a);return function(){var g=arguments;switch(g.length){case 0:return!h.call(this);case 1:return!h.call(this,g[0]);case 2:return!h.call(this,g[0],g[1]);case 3:return!h.call(this,g[0],g[1],g[2])}return!h.apply(this,g)}}function Ive(h){return Jz(2,h)}var Eve=mge(function(h,g){g=g.length==1&&Ht(g[0])?or(g[0],Sn(It())):or(vo(g,1),Sn(It()));var k=g.length;return sn(function(I){for(var R=-1,V=Ro(I.length,k);++R=g}),$h=KO(function(){return arguments}())?KO:function(h){return li(h)&&Jn.call(h,"callee")&&!OO.call(h,"callee")},Ht=we.isArray,Vve=N_?Sn(N_):J0e;function Ta(h){return h!=null&&p2(h.length)&&!Oc(h)}function vi(h){return li(h)&&Ta(h)}function Hve(h){return h===!0||h===!1||li(h)&&ea(h)==ue}var Jd=o0e||uj,Zve=$_?Sn($_):Q0e;function qve(h){return li(h)&&h.nodeType===1&&!fv(h)}function Gve(h){if(h==null)return!0;if(Ta(h)&&(Ht(h)||typeof h=="string"||typeof h.splice=="function"||Jd(h)||Km(h)||$h(h)))return!h.length;var g=Lo(h);if(g==Se||g==ct)return!h.size;if(cv(h))return!TC(h).length;for(var k in h)if(Jn.call(h,k))return!1;return!0}function Yve(h,g){return sv(h,g)}function Kve(h,g,k){k=typeof k=="function"?k:n;var I=k?k(h,g):n;return I===n?sv(h,g,n,k):!!I}function QC(h){if(!li(h))return!1;var g=ea(h);return g==$e||g==ge||typeof h.message=="string"&&typeof h.name=="string"&&!fv(h)}function Xve(h){return typeof h=="number"&&DO(h)}function Oc(h){if(!Jr(h))return!1;var g=ea(h);return g==pe||g==ye||g==he||g==St}function iD(h){return typeof h=="number"&&h==Xt(h)}function p2(h){return typeof h=="number"&&h>-1&&h%1==0&&h<=F}function Jr(h){var g=typeof h;return h!=null&&(g=="object"||g=="function")}function li(h){return h!=null&&typeof h=="object"}var oD=zs?Sn(zs):tge;function Jve(h,g){return h===g||jC(h,g,WC(g))}function Qve(h,g,k){return k=typeof k=="function"?k:n,jC(h,g,WC(g),k)}function eye(h){return aD(h)&&h!=+h}function tye(h){if(Dge(h))throw new xt(o);return XO(h)}function nye(h){return h===null}function rye(h){return h==null}function aD(h){return typeof h=="number"||li(h)&&ea(h)==Ce}function fv(h){if(!li(h)||ea(h)!=Ge)return!1;var g=U_(h);if(g===null)return!0;var k=Jn.call(g,"constructor")&&g.constructor;return typeof k=="function"&&k instanceof k&&z_.call(k)==Qme}var ej=Cl?Sn(Cl):nge;function iye(h){return iD(h)&&h>=-F&&h<=F}var sD=ku?Sn(ku):rge;function m2(h){return typeof h=="string"||!Ht(h)&&li(h)&&ea(h)==bt}function es(h){return typeof h=="symbol"||li(h)&&ea(h)==Qe}var Km=Cc?Sn(Cc):ige;function oye(h){return h===n}function aye(h){return li(h)&&Lo(h)==De}function sye(h){return li(h)&&ea(h)==Dt}var lye=o2(IC),uye=o2(function(h,g){return h<=g});function lD(h){if(!h)return[];if(Ta(h))return m2(h)?Ut(h):ja(h);if(Q1&&h[Q1])return _e(h[Q1]());var g=Lo(h),k=g==Se?Me:g==ct?et:Xm;return k(h)}function zc(h){if(!h)return h===0?h:0;if(h=Vs(h),h===Y||h===-Y){var g=h<0?-1:1;return g*H}return h===h?h:0}function Xt(h){var g=zc(h),k=g%1;return g===g?k?g-k:g:0}function uD(h){return h?Th(Xt(h),0,ce):0}function Vs(h){if(typeof h=="number")return h;if(es(h))return ee;if(Jr(h)){var g=typeof h.valueOf=="function"?h.valueOf():h;h=Jr(g)?g+"":g}if(typeof h!="string")return h===0?h:+h;h=X1(h);var k=Ko.test(h);return k||Bn.test(h)?Ei(h.slice(2),k?2:8):Ya.test(h)?ee:+h}function cD(h){return Eu(h,Ia(h))}function cye(h){return h?Th(Xt(h),-F,F):h===0?h:0}function Wn(h){return h==null?"":Qa(h)}var dye=qm(function(h,g){if(cv(g)||Ta(g)){Eu(g,eo(g),h);return}for(var k in g)Jn.call(g,k)&&iv(h,k,g[k])}),dD=qm(function(h,g){Eu(g,Ia(g),h)}),g2=qm(function(h,g,k,I){Eu(g,Ia(g),h,I)}),fye=qm(function(h,g,k,I){Eu(g,eo(g),h,I)}),hye=Lc(_C);function pye(h,g){var k=Zm(h);return g==null?k:WO(k,g)}var mye=sn(function(h,g){h=tn(h);var k=-1,I=g.length,R=I>2?g[2]:n;for(R&&ta(g[0],g[1],R)&&(I=1);++k1),V}),Eu(h,UC(h),k),I&&(k=Us(k,f|p|v,jge));for(var R=g.length;R--;)RC(k,g[R]);return k});function Rye(h,g){return hD(h,h2(It(g)))}var Lye=Lc(function(h,g){return h==null?{}:sge(h,g)});function hD(h,g){if(h==null)return{};var k=or(UC(h),function(I){return[I]});return g=It(g),iz(h,k,function(I,R){return g(I,R[0])})}function Pye(h,g,k){g=Kd(g,h);var I=-1,R=g.length;for(R||(R=1,h=n);++Ig){var I=h;h=g,g=I}if(k||h%1||g%1){var R=AO();return Ro(h+R*(g-h+Ii("1e-"+((R+"").length-1))),g)}return NC(h,g)}var Zye=Gm(function(h,g,k){return g=g.toLowerCase(),h+(k?gD(g):g)});function gD(h){return rj(Wn(h).toLowerCase())}function vD(h){return h=Wn(h),h&&h.replace(Cr,J1).replace(F1,"")}function qye(h,g,k){h=Wn(h),g=Qa(g);var I=h.length;k=k===n?I:Th(Xt(k),0,I);var R=k;return k-=g.length,k>=0&&h.slice(k,R)==g}function Gye(h){return h=Wn(h),h&&yc.test(h)?h.replace(co,N):h}function Yye(h){return h=Wn(h),h&&$o.test(h)?h.replace(Rr,"\\$&"):h}var Kye=Gm(function(h,g,k){return h+(k?"-":"")+g.toLowerCase()}),Xye=Gm(function(h,g,k){return h+(k?" ":"")+g.toLowerCase()}),Jye=xz("toLowerCase");function Qye(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;if(!g||I>=g)return h;var R=(g-I)/2;return i2(H_(R),k)+h+i2(V_(R),k)}function ebe(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;return g&&I>>0,k?(h=Wn(h),h&&(typeof g=="string"||g!=null&&!ej(g))&&(g=Qa(g),!g&&Q(h))?Xd(Ut(h),0,k):h.split(g,k)):[]}var sbe=Gm(function(h,g,k){return h+(k?" ":"")+rj(g)});function lbe(h,g,k){return h=Wn(h),k=k==null?0:Th(Xt(k),0,h.length),g=Qa(g),h.slice(k,k+g.length)==g}function ube(h,g,k){var I=U.templateSettings;k&&ta(h,g,k)&&(g=n),h=Wn(h),g=g2({},g,I,Tz);var R=g2({},g.imports,I.imports,Tz),V=eo(R),ne=Wm(R,V),se,ve,Re=0,Le=g.interpolate||Ka,Ae="__p += '",tt=Qo((g.escape||Ka).source+"|"+Le.source+"|"+(Le===qa?ii:Ka).source+"|"+(g.evaluate||Ka).source+"|$","g"),pt="//# sourceURL="+(Jn.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Wd+"]")+` +`;h.replace(tt,function($t,mn,_n,ts,na,ns){return _n||(_n=ts),Ae+=h.slice(Re,ns).replace(po,z),mn&&(se=!0,Ae+=`' + +__e(`+mn+`) + +'`),na&&(ve=!0,Ae+=`'; +`+na+`; +__p += '`),_n&&(Ae+=`' + +((__t = (`+_n+`)) == null ? '' : __t) + +'`),Re=ns+$t.length,$t}),Ae+=`'; +`;var Nt=Jn.call(g,"variable")&&g.variable;if(!Nt)Ae=`with (obj) { +`+Ae+` +} +`;else if(nr.test(Nt))throw new xt(s);Ae=(ve?Ae.replace(Ki,""):Ae).replace(No,"$1").replace(Ps,"$1;"),Ae="function("+(Nt||"obj")+`) { +`+(Nt?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(se?", __e = _.escape":"")+(ve?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Ae+`return __p +}`;var nn=bD(function(){return Gt(V,pt+"return "+Ae).apply(n,ne)});if(nn.source=Ae,QC(nn))throw nn;return nn}function cbe(h){return Wn(h).toLowerCase()}function dbe(h){return Wn(h).toUpperCase()}function fbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return X1(h);if(!h||!(g=Qa(g)))return h;var I=Ut(h),R=Ut(g),V=Zd(I,R),ne=O_(I,R)+1;return Xd(I,V,ne).join("")}function hbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.slice(0,an(h)+1);if(!h||!(g=Qa(g)))return h;var I=Ut(h),R=O_(I,Ut(g))+1;return Xd(I,0,R).join("")}function pbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.replace(fo,"");if(!h||!(g=Qa(g)))return h;var I=Ut(h),R=Zd(I,Ut(g));return Xd(I,R).join("")}function mbe(h,g){var k=M,I=O;if(Jr(g)){var R="separator"in g?g.separator:R;k="length"in g?Xt(g.length):k,I="omission"in g?Qa(g.omission):I}h=Wn(h);var V=h.length;if(Q(h)){var ne=Ut(h);V=ne.length}if(k>=V)return h;var se=k-hn(I);if(se<1)return I;var ve=ne?Xd(ne,0,se).join(""):h.slice(0,se);if(R===n)return ve+I;if(ne&&(se+=ve.length-se),ej(R)){if(h.slice(se).search(R)){var Re,Le=ve;for(R.global||(R=Qo(R.source,Wn(Ga.exec(R))+"g")),R.lastIndex=0;Re=R.exec(Le);)var Ae=Re.index;ve=ve.slice(0,Ae===n?se:Ae)}}else if(h.indexOf(Qa(R),se)!=se){var tt=ve.lastIndexOf(R);tt>-1&&(ve=ve.slice(0,tt))}return ve+I}function gbe(h){return h=Wn(h),h&&xa.test(h)?h.replace(zn,Tt):h}var vbe=Gm(function(h,g,k){return h+(k?" ":"")+g.toUpperCase()}),rj=xz("toUpperCase");function yD(h,g,k){return h=Wn(h),g=k?n:g,g===n?de(h)?Hr(h):Z1(h):h.match(g)||[]}var bD=sn(function(h,g){try{return Jo(h,n,g)}catch(k){return QC(k)?k:new xt(k)}}),ybe=Lc(function(h,g){return Sa(g,function(k){k=Nu(k),Mc(h,k,XC(h[k],h))}),h});function bbe(h){var g=h==null?0:h.length,k=It();return h=g?or(h,function(I){if(typeof I[1]!="function")throw new ar(a);return[k(I[0]),I[1]]}):[],sn(function(I){for(var R=-1;++RF)return[];var k=ce,I=Ro(h,ce);g=It(g),h-=ce;for(var R=Hd(I,g);++k0||g<0)?new yn(k):(h<0?k=k.takeRight(-h):h&&(k=k.drop(h)),g!==n&&(g=Xt(g),k=g<0?k.dropRight(-g):k.take(g-h)),k)},yn.prototype.takeRightWhile=function(h){return this.reverse().takeWhile(h).reverse()},yn.prototype.toArray=function(){return this.take(ce)},Iu(yn.prototype,function(h,g){var k=/^(?:filter|find|map|reject)|While$/.test(g),I=/^(?:head|last)$/.test(g),R=U[I?"take"+(g=="last"?"Right":""):g],V=I||/^find/.test(g);R&&(U.prototype[g]=function(){var ne=this.__wrapped__,se=I?[1]:arguments,ve=ne instanceof yn,Re=se[0],Le=ve||Ht(ne),Ae=function(mn){var _n=R.apply(U,Cu([mn],se));return I&&tt?_n[0]:_n};Le&&k&&typeof Re=="function"&&Re.length!=1&&(ve=Le=!1);var tt=this.__chain__,pt=!!this.__actions__.length,Nt=V&&!tt,nn=ve&&!pt;if(!V&&Le){ne=nn?ne:new yn(this);var $t=h.apply(ne,se);return $t.__actions__.push({func:u2,args:[Ae],thisArg:n}),new Fs($t,tt)}return Nt&&nn?h.apply(this,se):($t=this.thru(Ae),Nt?I?$t.value()[0]:$t.value():$t)})}),Sa(["pop","push","shift","sort","splice","unshift"],function(h){var g=Qi[h],k=/^(?:push|sort|unshift)$/.test(h)?"tap":"thru",I=/^(?:pop|shift)$/.test(h);U.prototype[h]=function(){var R=arguments;if(I&&!this.__chain__){var V=this.value();return g.apply(Ht(V)?V:[],R)}return this[k](function(ne){return g.apply(Ht(ne)?ne:[],R)})}}),Iu(yn.prototype,function(h,g){var k=U[g];if(k){var I=k.name+"";Jn.call(Hm,I)||(Hm[I]=[]),Hm[I].push({name:g,func:k})}}),Hm[n2(n,w).name]=[{name:"wrapper",func:n}],yn.prototype.clone=g0e,yn.prototype.reverse=v0e,yn.prototype.value=y0e,U.prototype.at=q1e,U.prototype.chain=G1e,U.prototype.commit=Y1e,U.prototype.next=K1e,U.prototype.plant=J1e,U.prototype.reverse=Q1e,U.prototype.toJSON=U.prototype.valueOf=U.prototype.value=eve,U.prototype.first=U.prototype.head,Q1&&(U.prototype[Q1]=X1e),U},xn=$i();Mo?((Mo.exports=xn)._=xn,U1._=xn):ai._=xn}).call(Ac)}(Sk,Sk.exports);var rt=Sk.exports;const Aa=fe(void 0),Fze=fe(null,(e,t,n)=>{var c;const r=e(fi);if(!r)return;if(n=n.trim(),!n){t(Aa,void 0),t(An,void 0);return}const i=parseInt(n,10);if(!isNaN(i)&&i>=r.start_slot&&i<=r.end_slot){t(Aa,void 0),t(An,i);return}if(n.length<3){t(Aa,[]),t(An,void 0);return}const o=n.split(",").map(d=>d.trim().toLowerCase()).filter(d=>!!d),a=Object.entries(qte).reduce((d,[f,p])=>(o.some(v=>p.toLowerCase().includes(v))&&d.add(parseInt(f)),d),new Set),s=(c=e(gDe))==null?void 0:c.filter(({name:d,pubkey:f,clientId:p})=>p!=null&&a.has(p)||o.some(v=>(d==null?void 0:d.includes(v))||f.toLowerCase().includes(v))).map(({pubkey:d})=>d);if(!(s!=null&&s.length)){t(Aa,[]),t(An,void 0);return}const l=s.flatMap(d=>FN(r,d)).sort();t(Aa,l)}),Uze=fe(null,(e,t)=>{const n=e(Aa);if(!n)return;const r=e(An),i=e(eu),o=n.map(l=>Math.abs(l-(r??i??0))),a=Math.min(...o),s=Math.max(o.indexOf(a),0);t(An,n[s])}),Bze=fe(null,(e,t,n)=>{const r=e(An),i=e(Aa),o=e(eu);if(o!==void 0)if(i!=null&&i.length)if(r!==void 0){const a=i.map(c=>Math.abs(c-r)),s=Math.min(...a),l=Math.max(a.indexOf(s),0);if(l>=0){const c=Math.min(Math.max(l+Math.trunc(n/4),0),i.length-1);t(An,i[c])}}else t(Uze);else r!==void 0?t(An,r+n):t(An,n+o+$n*3)});var Kf=(e=>(e.Valid="valid",e.NotReady="invalid",e.OutsideEpoch="outside-epoch",e.BeforeFirstProcessed="before-first-processed",e.Future="future",e.NotYou="not-you",e))(Kf||{});function Wze(e,t,n,r,i){return e===void 0?"valid":!t||!n||r===void 0||i===void 0?"invalid":e=i?"future":"valid":"not-you"}const gd=function(){const e=fe(),t=fe(n=>{const r=n(fi),i=n(e),o=n(ao),a=n(Xf),s=n(oo);return Wze(i,r,o,a,s)});return{slot:e,state:t,isValid:fe(n=>n(t)==="valid")}}(),Cn=fe(e=>e(gd.isValid)?e(gd.slot):void 0);var Io=(e=>(e.Count="Count",e.Pct="Pct %",e.Rate="Rate",e))(Io||{});const Cg=fe("Count"),Vze=fe(e=>{if(!e(Cn))return e(l3)}),Hze=fe(e=>{const t=e(Vze),n=e(rg);return t==null?void 0:t.reduce((r,i,o)=>{var l;const a=n==null?void 0:n[o];if(!a)return r;const s=$E.safeParse(a.kind);return s.error||(r[l=s.data]??(r[l]=[]),r[s.data].push(i)),r},{})}),Zze=fe(e=>{const t=e(rg),n=["snapld","snapdc","snapin"];if(!t)return;const r=t.reduce((i,o,a)=>{const s=$E.safeParse(o.kind);if(s.error||!n.includes(s.data))return i;const l=i.get(s.data)??[];return l.push(a),i.set(s.data,l),i},new Map);return Array.from(r.entries()).map(([i,o])=>[i,o])}),qze=fe(e=>{const t=e(l3),n=e(Zze);if(!(!t||!n))return n.reduce((r,[i,o])=>(r[i]=o.map(a=>t[a]),r),{})}),Gze=fe(e=>{var t;return e(Cn)?void 0:e(Cg)==="Rate"?e(cre):(t=e(kG))==null?void 0:t.waterfall}),ure=Co([]),cre=fe(e=>{var o;if(e(Cg)!=="Rate")return;const t=e(ure);if(t.length<2)return(o=t[0])==null?void 0:o.waterfall;const n=t[t.length-1],r=t[0],i=(n.ts-r.ts)/1e3;return sG(n.waterfall,a=>{for(const s in a.in)if(Object.prototype.hasOwnProperty.call(a.in,s)){const l=a.in[s]-r.waterfall.in[s];a.in[s]=Math.trunc(l/i)}for(const s in a.out)if(Object.prototype.hasOwnProperty.call(a.out,s)){const l=a.out[s]-r.waterfall.out[s];a.out[s]=Math.trunc(l/i)}})},(e,t,n)=>{t(ure,r=>{const i=performance.now();for(n&&r.push({waterfall:n,ts:i});r.length&&i-r[0].ts>1e3;)r.shift();const o=Object.values(r[r.length-1].waterfall.in);for(;r.length>1&&Object.values(r[0].waterfall.in).some((a,s)=>o[s]-a<0);)r.shift()})}),Nb=fe(e=>{const t=e(rg),n=rt.countBy(t,r=>r.kind);return Object.fromEntries($E.options.map(r=>[r,n[r]??0]))}),Yze={};function qN(e,t){let n=null;const r=new Map,i=new Set,o=s=>{let l;if(l=r.get(s),l!==void 0)if(n!=null&&n(l[1],s))o.remove(s);else return l[0];const c=e(s);return r.set(s,[c,Date.now()]),a("CREATE",s,c),c},a=(s,l,c)=>{for(const d of i)d({type:s,param:l,atom:c})};return o.unstable_listen=s=>(i.add(s),()=>{i.delete(s)}),o.getParams=()=>r.keys(),o.remove=s=>{{if(!r.has(s))return;const[l]=r.get(s);r.delete(s),a("REMOVE",s,l)}},o.setShouldRemove=s=>{if(n=s,!!n)for(const[l,[c,d]]of r)n(d,l)&&(r.delete(l),a("REMOVE",l,c))},o}const Kze=e=>typeof(e==null?void 0:e.then)=="function";function Xze(e=()=>{try{return window.localStorage}catch(n){(Yze?"production":void 0)!=="production"&&typeof window<"u"&&console.warn(n);return}},t){var n;let r,i;const o={getItem:(l,c)=>{var d,f;const p=x=>{if(x=x||"",r!==x){try{i=JSON.parse(x,t==null?void 0:t.reviver)}catch{return c}r=x}return i},v=(f=(d=e())==null?void 0:d.getItem(l))!=null?f:null;return Kze(v)?v.then(p):p(v)},setItem:(l,c)=>{var d;return(d=e())==null?void 0:d.setItem(l,JSON.stringify(c,void 0))},removeItem:l=>{var c;return(c=e())==null?void 0:c.removeItem(l)}},a=l=>(c,d,f)=>l(c,p=>{let v;try{v=JSON.parse(p||"")}catch{v=f}d(v)});let s;try{s=(n=e())==null?void 0:n.subscribe}catch{}return!s&&typeof window<"u"&&typeof window.addEventListener=="function"&&window.Storage&&(s=(l,c)=>{if(!(e()instanceof window.Storage))return()=>{};const d=f=>{f.storageArea===e()&&f.key===l&&c(f.newValue)};return window.addEventListener("storage",d),()=>{window.removeEventListener("storage",d)}}),s&&(o.subscribe=a(s)),o}Xze();const GN=3,jg=fe();fe();const Jze=fe(!1),dre=fe(),Ck=Co([]),fi=fe(e=>{const t=e(oo),n=e(Ck);if(!n.length||t===void 0)return;const r=n.find(({start_slot:i,end_slot:o})=>t>=i&&t<=o);if(r)return r},(e,t,n)=>{t(Ck,r=>{r.findIndex(i=>i.epoch===n.epoch)===-1&&r.push(n)})}),Qze=fe(null,(e,t,n)=>{t(Ck,r=>r.filter(({epoch:i})=>i>=n))}),eDe=fe(e=>{const t=e(fi);return t?e(Ck).find(n=>n.epoch===(t==null?void 0:t.epoch)+1):void 0}),[An,tDe]=function(){const e=fe();return[fe(t=>t(e),(t,n,r)=>{const i=t(fi);if(!i)return;const o=r===void 0?void 0:rt.clamp(_i(r),i.start_slot,i.end_slot);n(e,o)}),fe(t=>t(e)===void 0)]}(),YN=Co({}),nDe=Gf(e=>fe(t=>e!==void 0&&t(YN)[e]||"incomplete"),{maxSize:1e3});var $b=(e=>(e.AllSlots="All Slots",e.MySlots="My Slots",e))($b||{});const Tg=function(){const e=fe();return fe(t=>t(e)??"All Slots",(t,n,r)=>{n(e,r);const i=t(Cn);n(An,i??void 0)})}(),rDe=fe(null,(e,t,n,r)=>{(r==="completed"||r==="optimistically_confirmed"||r==="rooted")&&t(oo,n+1),t(YN,i=>{i[n]=r})}),fre=10,iDe=fe(e=>{const t=e(ao),n=e(Cn);if(t===void 0||n===void 0)return;const r=t.indexOf(_i(n));if(r!==-1)return t.slice(Math.max(r-fre,0),r+fre)}),jk=1e3,oDe=fe(null,(e,t)=>{const n=e(An),r=e(iDe),i=e(oo),o=e(Aa),a=e(ao),s=e(Tg),l=n??i;l!==void 0&&t(YN,c=>{const d=l-jk/2,f=l+jk/2,p=Object.keys(c);for(const v of p){const x=Number(v),y=_i(x);o!=null&&o.includes(y)||r!=null&&r.includes(y)||s==="My Slots"&&(a!=null&&a.includes(y))||!isNaN(x)&&(xf)&&delete c[x]}})}),Tk=Co({}),KN=qN(e=>fe(t=>{var n;return e!==void 0?(n=t(Tk)[e])==null?void 0:n.publish:void 0})),hre=qN(e=>fe(t=>e!==void 0?t(Tk)[e]:void 0)),aDe=fe(null,(e,t,n)=>{const r=n.publish.slot;t(Tk,i=>{var o,a,s,l,c,d,f;n.transactions??(n.transactions=(o=i[r])==null?void 0:o.transactions),n.tile_primary_metric??(n.tile_primary_metric=(a=i[r])==null?void 0:a.tile_primary_metric),n.tile_timers??(n.tile_timers=(s=i[r])==null?void 0:s.tile_timers),n.waterfall??(n.waterfall=(l=i[r])==null?void 0:l.waterfall),n.scheduler_counts??(n.scheduler_counts=(c=i[r])==null?void 0:c.scheduler_counts),n.limits??(n.limits=(d=i[r])==null?void 0:d.limits),n.scheduler_stats??(n.scheduler_stats=(f=i[r])==null?void 0:f.scheduler_stats),i[r]=n})}),sDe=fe(null,(e,t)=>{const n=e(An),r=e(Cn),i=e(oo),o=e(Aa),a=n??i,s=e(Tg),l=e(ao),{earliestQuickSlots:c,mostRecentQuickSlots:d}=e(Tre);a!==void 0&&t(Tk,f=>{const p=a-jk/2,v=a+jk/2,x=Object.keys(f);for(const y of x){const b=Number(y),w=_i(b);o!=null&&o.length&&o.includes(w)||r!==void 0&&w===_i(r)||s==="My Slots"&&(l!=null&&l.includes(w))||c&&c.includes(b)||d&&d.includes(b)||!isNaN(b)&&(bv)&&(delete f[b],KN.remove(b))}})}),Xf=fe(e=>{var t;if(xi){const n=e(Zu);return(n==null?void 0:n.ledger_max_slot)==null?void 0:n.ledger_max_slot+1}return((t=e(Hl))==null?void 0:t.catching_up_first_replay_slot)??void 0}),pre=fe(e=>{const t=e(ao),n=e(Xf);if(!t||n===void 0)return;const r=t.findIndex(i=>i>=n);return r!==-1?r:void 0});fe(e=>{const t=e(ao),n=e(pre);return n?t==null?void 0:t[n]:void 0});const XN=fe(e=>{const t=e(ao),n=e(Mb);return n?t==null?void 0:t[n-1]:void 0}),mre=fe(void 0),oo=fe(e=>e(mre),(e,t,n)=>{const r=e(Rb);(r===void 0||n>=r)&&t(Rb,n),t(mre,i=>Math.max(n,i??0))}),ao=fe(e=>{const t=e(fi),n=e(cp);if(!(!t||!n))return FN(t,n)}),lDe=fe(e=>{const t=e(eDe),n=e(cp);if(!(!t||!n))return FN(t,n)}),Mb=fe(void 0),Rb=fe(e=>{const t=e(ao),n=e(Mb);if(!(!t||n===void 0))return t[n]},(e,t,n)=>{const r=e(ao);r!=null&&t(Mb,i=>{let o=i??0;for((r[o-1]??0)>n&&(o=0);o=r.length))return o})}),uDe=fe(e=>{const t=e(lDe);if(t)return t[0]}),gre=fe(e=>{const t=e(ao),n=e(Mb);if(t)return n===void 0?t[t.length-1]:t[n-1]}),cDe=fe(e=>{const t=e(oo),n=e(gre);return t===void 0||n===void 0?!1:t>=n&&t<=n+$n}),eu=fe(e=>{const t=e(oo);if(t!=null)return _i(t)}),Ku=Co({}),JN=fe(e=>Object.values(e(Ku))),dDe=fe(e=>e(JN).length),vre=qN(e=>fe(t=>e!==void 0?t(Ku)[e]:void 0)),fDe=fe(null,(e,t,n)=>{n!=null&&n.length&&t(Ku,r=>{for(const i of n)r[i.identity_pubkey]?r[i.identity_pubkey]=rt.merge(r[i.identity_pubkey],i):r[i.identity_pubkey]=i})}),hDe=6e4*5,pDe=fe(null,(e,t,n)=>{n!=null&&n.length&&(t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&(r[i.identity_pubkey].removed=!0,vre.remove(i.identity_pubkey))}),setTimeout(()=>{t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&delete r[i.identity_pubkey]})},hDe))}),Ig=fe(e=>{const t=e(Ku);if(!t)return;const n=Object.values(t).filter(s=>!s.removed),r=n.filter(s=>s.vote.every(l=>!l.activated_stake)&&!!s.gossip),i=n.filter(s=>s.vote.some(l=>l.activated_stake)),o=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c:c+d.activated_stake,0n)+s,0n),a=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c+d.activated_stake:c,0n)+s,0n);return{rpcCount:r.length,validatorCount:i.length,activeStake:o,delinquentStake:a}}),yre=fe(e=>{const t=e(Ig);if(t&&t.activeStake+t.delinquentStake)return t.activeStake+t.delinquentStake}),bre=fe(e=>{const t=e(Ku),n=e(cp),r=e(Ig);if(!t||!n||!r)return;const i=t[n];if(i)return nre(i)}),mDe=fe(e=>{const t=e(yre),n=e(bre);if(!(n===void 0||!t))return Number(n)/Number(t)*100}),xre=fe(e=>{const t=e(fi),n=e(Ku),r=e(dDe);if(!(!t||r===0))return{epoch:t,peers:n}}),gDe=fe(e=>{const t=e(xre);if(!t)return;const{epoch:n,peers:r}=t;return[...new Set(n.leader_slots.map(i=>n.staked_pubkeys[i]))].map(i=>{var o,a,s,l,c;return{pubkey:i,name:(s=(a=(o=r[i])==null?void 0:o.info)==null?void 0:a.name)==null?void 0:s.toLowerCase(),clientId:(c=(l=r[i])==null?void 0:l.gossip)==null?void 0:c.client_id}})}),QN=function(){const e=Co(void 0);return fe(t=>t(e),(t,n,r)=>{const i=new Map;for(let o=0;oi(e)),fe(null,(i,o,a,s)=>{if(o(e,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)}),!i(t))o(t,!0),o(n,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)});else if(a.length>0||s.length>0){const l=Date.now(),c={addPeers:a,removePeers:s,timestamp:l};o(r,d=>{d.push(c)})}}),fe(i=>{const o=i(n),a=i(e);let s=0;for(const l of o)a.has(l)||s++;return{online:a.size+s-o.size,offline:s}}),fe(null,(i,o)=>{const a=i(r);if(a.length===0)return;const s=Date.now()-_re,l=a.findIndex(d=>d.timestamp>=s);if(l===0)return;const c=l===-1?a.length:l;o(n,d=>{for(let f=0;fl===-1?[]:d.slice(l))}),fe(null,(i,o)=>{o(e,new Set),o(t,!1),o(n,new Set),o(r,[])})]}(),_De=fe(e=>{var i;const t=new Set,n=(i=e(QN))==null?void 0:i.keys();if(!n)return t;const r=e(wre);for(const o of n)r.has(o)||t.add(o);return t}),wDe=Gf(e=>fe(t=>{if(e===void 0)return!0;const n=t(oo);return n===void 0||e>=n}),{maxSize:1e3}),Eg=fe(e=>{const t=e(xG);if(!t)return 300;const n=Math.trunc(t/1e6);return Math.max(50,Math.min(n,1e3*10))}),kre=Co({}),Sre=fe(e=>{const t=e(fi);if(t)return e(kre)[t.epoch]},(e,t,n)=>{t(kre,r=>{r[n.epoch]=n})}),kDe=fe(e=>{const t=e(oo);if(t===void 0)return null;const n=e(An);return n===void 0?"Live":_i(n)===_i(t)?"Current":n>t?"Future":"Past"}),[Ik,SDe,CDe,jDe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{n(e,i=>{for(const o of r)i.add(o)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r,i)=>{n(e,o=>{const a=new Set;for(const s of o)si||a.add(s);return a})})]}(),Cre=fe(e=>{const t=e(gG);if(t!=null)return Math.round(t/sN)}),[jre,TDe,IDe,EDe,NDe]=function(){const e=Co(new Map);return[fe(t=>{const n=t(e),r=t(Ik),i=new Set;for(const[o,a]of n){if(a===null){i.add(o);continue}rre(o,a,r)>1&&i.add(o)}return i}),fe(null,(t,n,r,i)=>{n(e,o=>{o.set(r,i)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r)=>{n(e,i=>{if(!r){i.clear();return}const o=[];i.forEach((a,s)=>{(si.delete(a))})}),fe(null,(t,n,r)=>{const i=new Map;let o=0;for(let a=0;a{const t=e(ao),n=e(pre),r=e(Mb);if(!t||n===void 0)return{};const i=t.slice(n,r);return{earliestQuickSlots:i.slice(0,GN),mostRecentQuickSlots:i.slice(-GN).toReversed()}});function $De(){const e=J(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_incremental_snapshot_current_bytes,totalBytes:e.downloading_incremental_snapshot_total_bytes,remainingSecs:e.downloading_incremental_snapshot_remaining_secs})}var e$=Pb(),qt=e=>Lb(e,e$),t$=Pb();qt.write=e=>Lb(e,t$);var Ek=Pb();qt.onStart=e=>Lb(e,Ek);var n$=Pb();qt.onFrame=e=>Lb(e,n$);var r$=Pb();qt.onFinish=e=>Lb(e,r$);var Ng=[];qt.setTimeout=(e,t)=>{const n=qt.now()+t,r=()=>{const o=Ng.findIndex(a=>a.cancel==r);~o&&Ng.splice(o,1),Qf-=~o?1:0},i={time:n,handler:e,cancel:r};return Ng.splice(Ire(n),0,i),Qf+=1,Ere(),i};var Ire=e=>~(~Ng.findIndex(t=>t.time>e)||~Ng.length);qt.cancel=e=>{Ek.delete(e),n$.delete(e),r$.delete(e),e$.delete(e),t$.delete(e)},qt.sync=e=>{o$=!0,qt.batchedUpdates(e),o$=!1},qt.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function r(...i){t=i,qt.onStart(n)}return r.handler=e,r.cancel=()=>{Ek.delete(n),t=null},r};var i$=typeof window<"u"?window.requestAnimationFrame:()=>{};qt.use=e=>i$=e,qt.now=typeof performance<"u"?()=>performance.now():Date.now,qt.batchedUpdates=e=>e(),qt.catch=console.error,qt.frameLoop="always",qt.advance=()=>{qt.frameLoop!=="demand"?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):$re()};var Jf=-1,Qf=0,o$=!1;function Lb(e,t){o$?(t.delete(e),e(0)):(t.add(e),Ere())}function Ere(){Jf<0&&(Jf=0,qt.frameLoop!=="demand"&&i$(Nre))}function MDe(){Jf=-1}function Nre(){~Jf&&(i$(Nre),qt.batchedUpdates($re))}function $re(){const e=Jf;Jf=qt.now();const t=Ire(Jf);if(t&&(Mre(Ng.splice(0,t),n=>n.handler()),Qf-=t),!Qf){MDe();return}Ek.flush(),e$.flush(e?Math.min(64,Jf-e):16.667),n$.flush(),t$.flush(),r$.flush()}function Pb(){let e=new Set,t=e;return{add(n){Qf+=t==e&&!e.has(n)?1:0,e.add(n)},delete(n){return Qf-=t==e&&e.has(n)?1:0,e.delete(n)},flush(n){t.size&&(e=new Set,Qf-=t.size,Mre(t,r=>r(n)&&e.add(r)),Qf+=e.size,t=e)}}}function Mre(e,t){e.forEach(n=>{try{t(n)}catch(r){qt.catch(r)}})}var RDe=Object.defineProperty,LDe=(e,t)=>{for(var n in t)RDe(e,n,{get:t[n],enumerable:!0})},tu={};LDe(tu,{assign:()=>ODe,colors:()=>eh,createStringInterpolator:()=>l$,skipAnimation:()=>Lre,to:()=>Rre,willAdvance:()=>u$});function a$(){}var PDe=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),He={arr:Array.isArray,obj:e=>!!e&&e.constructor.name==="Object",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",und:e=>e===void 0};function vd(e,t){if(He.arr(e)){if(!He.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function Xu(e,t,n){if(He.arr(e)){for(let r=0;rHe.und(e)?[]:He.arr(e)?e:[e];function Ob(e,t){if(e.size){const n=Array.from(e);e.clear(),Ft(n,t)}}var zb=(e,...t)=>Ob(e,n=>n(...t)),s$=()=>typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),l$,Rre,eh=null,Lre=!1,u$=a$,ODe=e=>{e.to&&(Rre=e.to),e.now&&(qt.now=e.now),e.colors!==void 0&&(eh=e.colors),e.skipAnimation!=null&&(Lre=e.skipAnimation),e.createStringInterpolator&&(l$=e.createStringInterpolator),e.requestAnimationFrame&&qt.use(e.requestAnimationFrame),e.batchedUpdates&&(qt.batchedUpdates=e.batchedUpdates),e.willAdvance&&(u$=e.willAdvance),e.frameLoop&&(qt.frameLoop=e.frameLoop)},Db=new Set,ul=[],c$=[],Nk=0,$k={get idle(){return!Db.size&&!ul.length},start(e){Nk>e.priority?(Db.add(e),qt.onStart(zDe)):(Pre(e),qt(d$))},advance:d$,sort(e){if(Nk)qt.onFrame(()=>$k.sort(e));else{const t=ul.indexOf(e);~t&&(ul.splice(t,1),Ore(e))}},clear(){ul=[],Db.clear()}};function zDe(){Db.forEach(Pre),Db.clear(),qt(d$)}function Pre(e){ul.includes(e)||Ore(e)}function Ore(e){ul.splice(DDe(ul,t=>t.priority>e.priority),0,e)}function d$(e){const t=c$;for(let n=0;n0}function DDe(e,t){const n=e.findIndex(t);return n<0?e.length:n}var ADe={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},nu="[-+]?\\d*\\.?\\d+",Mk=nu+"%";function Rk(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var FDe=new RegExp("rgb"+Rk(nu,nu,nu)),UDe=new RegExp("rgba"+Rk(nu,nu,nu,nu)),BDe=new RegExp("hsl"+Rk(nu,Mk,Mk)),WDe=new RegExp("hsla"+Rk(nu,Mk,Mk,nu)),VDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,HDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,ZDe=/^#([0-9a-fA-F]{6})$/,qDe=/^#([0-9a-fA-F]{8})$/;function GDe(e){let t;return typeof e=="number"?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=ZDe.exec(e))?parseInt(t[1]+"ff",16)>>>0:eh&&eh[e]!==void 0?eh[e]:(t=FDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|255)>>>0:(t=UDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|Are(t[4]))>>>0:(t=VDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=qDe.exec(e))?parseInt(t[1],16)>>>0:(t=HDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=BDe.exec(e))?(zre(Dre(t[1]),Lk(t[2]),Lk(t[3]))|255)>>>0:(t=WDe.exec(e))?(zre(Dre(t[1]),Lk(t[2]),Lk(t[3]))|Are(t[4]))>>>0:null}function f$(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function zre(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,o=f$(i,r,e+1/3),a=f$(i,r,e),s=f$(i,r,e-1/3);return Math.round(o*255)<<24|Math.round(a*255)<<16|Math.round(s*255)<<8}function $g(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function Dre(e){return(parseFloat(e)%360+360)%360/360}function Are(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(t*255)}function Lk(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Fre(e){let t=GDe(e);if(t===null)return e;t=t||0;const n=(t&4278190080)>>>24,r=(t&16711680)>>>16,i=(t&65280)>>>8,o=(t&255)/255;return`rgba(${n}, ${r}, ${i}, ${o})`}var Ab=(e,t,n)=>{if(He.fun(e))return e;if(He.arr(e))return Ab({range:e,output:t,extrapolate:n});if(He.str(e.output[0]))return l$(e);const r=e,i=r.output,o=r.range||[0,1],a=r.extrapolateLeft||r.extrapolate||"extend",s=r.extrapolateRight||r.extrapolate||"extend",l=r.easing||(c=>c);return c=>{const d=KDe(c,o);return YDe(c,o[d],o[d+1],i[d],i[d+1],l,a,s,r.map)}};function YDe(e,t,n,r,i,o,a,s,l){let c=l?l(e):e;if(cn){if(s==="identity")return c;s==="clamp"&&(c=n)}return r===i?r:t===n?e<=t?r:i:(t===-1/0?c=-c:n===1/0?c=c-t:c=(c-t)/(n-t),c=o(c),r===-1/0?c=-c:i===1/0?c=c+r:c=c*(i-r)+r,c)}function KDe(e,t){for(var n=1;n=e);++n);return n-1}var XDe={linear:e=>e},Fb=Symbol.for("FluidValue.get"),Mg=Symbol.for("FluidValue.observers"),cl=e=>!!(e&&e[Fb]),Fa=e=>e&&e[Fb]?e[Fb]():e,Ure=e=>e[Mg]||null;function JDe(e,t){e.eventObserved?e.eventObserved(t):e(t)}function Ub(e,t){const n=e[Mg];n&&n.forEach(r=>{JDe(r,t)})}var Bre=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");QDe(this,e)}},QDe=(e,t)=>Wre(e,Fb,t);function Rg(e,t){if(e[Fb]){let n=e[Mg];n||Wre(e,Mg,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function Bb(e,t){const n=e[Mg];if(n&&n.has(t)){const r=n.size-1;r?n.delete(t):e[Mg]=null,e.observerRemoved&&e.observerRemoved(r,t)}}var Wre=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),Pk=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,eAe=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,Vre=new RegExp(`(${Pk.source})(%|[a-z]+)`,"i"),tAe=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,Ok=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,Hre=e=>{const[t,n]=nAe(e);if(!t||s$())return e;const r=window.getComputedStyle(document.documentElement).getPropertyValue(t);return r?r.trim():n&&n.startsWith("--")?window.getComputedStyle(document.documentElement).getPropertyValue(n)||e:n&&Ok.test(n)?Hre(n):n||e},nAe=e=>{const t=Ok.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]},h$,rAe=(e,t,n,r,i)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(r)}, ${i})`,Zre=e=>{h$||(h$=eh?new RegExp(`(${Object.keys(eh).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map(i=>Fa(i).replace(Ok,Hre).replace(eAe,Fre).replace(h$,Fre)),n=t.map(i=>i.match(Pk).map(Number)),r=n[0].map((i,o)=>n.map(a=>{if(!(o in a))throw Error('The arity of each "output" value must be equal');return a[o]})).map(i=>Ab({...e,output:i}));return i=>{var s;const o=!Vre.test(t[0])&&((s=t.find(l=>Vre.test(l)))==null?void 0:s.replace(Pk,""));let a=0;return t[0].replace(Pk,()=>`${r[a++](i)}${o||""}`).replace(tAe,rAe)}},p$="react-spring: ",qre=e=>{const t=e;let n=!1;if(typeof t!="function")throw new TypeError(`${p$}once requires a function parameter`);return(...r)=>{n||(t(...r),n=!0)}},iAe=qre(console.warn);function oAe(){iAe(`${p$}The "interpolate" function is deprecated in v9 (use "to" instead)`)}var aAe=qre(console.warn);function sAe(){aAe(`${p$}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`)}function zk(e){return He.str(e)&&(e[0]=="#"||/\d/.test(e)||!s$()&&Ok.test(e)||e in(eh||{}))}var Cp=s$()?m.useEffect:m.useLayoutEffect,lAe=()=>{const e=m.useRef(!1);return Cp(()=>(e.current=!0,()=>{e.current=!1}),[]),e};function m$(){const e=m.useState()[1],t=lAe();return()=>{t.current&&e(Math.random())}}function uAe(e,t){const[n]=m.useState(()=>({inputs:t,result:e()})),r=m.useRef(),i=r.current;let o=i;return o?t&&o.inputs&&cAe(t,o.inputs)||(o={inputs:t,result:e()}):o=n,m.useEffect(()=>{r.current=o,i==n&&(n.inputs=n.result=void 0)},[o]),o.result}function cAe(e,t){if(e.length!==t.length)return!1;for(let n=0;nm.useEffect(e,dAe),dAe=[];function v$(e){const t=m.useRef();return m.useEffect(()=>{t.current=e}),t.current}var Wb=Symbol.for("Animated:node"),fAe=e=>!!e&&e[Wb]===e,Ju=e=>e&&e[Wb],y$=(e,t)=>PDe(e,Wb,t),Dk=e=>e&&e[Wb]&&e[Wb].getPayload(),Gre=class{constructor(){y$(this,this)}getPayload(){return this.payload||[]}},Vb=class extends Gre{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,He.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Vb(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return He.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value===e?!1:(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,He.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},Hb=class extends Vb{constructor(e){super(0),this._string=null,this._toString=Ab({output:[e,e]})}static create(e){return new Hb(e)}getValue(){return this._string??(this._string=this._toString(this._value))}setValue(e){if(He.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else if(super.setValue(e))this._string=null;else return!1;return!0}reset(e){e&&(this._toString=Ab({output:[this.getValue(),e]})),this._value=0,super.reset()}},Ak={dependencies:null},Fk=class extends Gre{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return Xu(this.source,(n,r)=>{fAe(n)?t[r]=n.getValue(e):cl(n)?t[r]=Fa(n):e||(t[r]=n)}),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&Ft(this.payload,e=>e.reset())}_makePayload(e){if(e){const t=new Set;return Xu(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){Ak.dependencies&&cl(e)&&Ak.dependencies.add(e);const t=Dk(e);t&&Ft(t,n=>this.add(n))}},Yre=class extends Fk{constructor(e){super(e)}static create(e){return new Yre(e)}getValue(){return this.source.map(e=>e.getValue())}setValue(e){const t=this.getPayload();return e.length==t.length?t.map((n,r)=>n.setValue(e[r])).some(Boolean):(super.setValue(e.map(hAe)),!0)}};function hAe(e){return(zk(e)?Hb:Vb).create(e)}function b$(e){const t=Ju(e);return t?t.constructor:He.arr(e)?Yre:zk(e)?Hb:Vb}var Kre=(e,t)=>{const n=!He.fun(e)||e.prototype&&e.prototype.isReactComponent;return m.forwardRef((r,i)=>{const o=m.useRef(null),a=n&&m.useCallback(x=>{o.current=gAe(i,x)},[i]),[s,l]=mAe(r,t),c=m$(),d=()=>{const x=o.current;n&&!x||(x?t.applyAnimatedValues(x,s.getValue(!0)):!1)===!1&&c()},f=new pAe(d,l),p=m.useRef();Cp(()=>(p.current=f,Ft(l,x=>Rg(x,f)),()=>{p.current&&(Ft(p.current.deps,x=>Bb(x,p.current)),qt.cancel(p.current.update))})),m.useEffect(d,[]),g$(()=>()=>{const x=p.current;Ft(x.deps,y=>Bb(y,x))});const v=t.getComponentProps(s.getValue());return m.createElement(e,{...v,ref:a})})},pAe=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){e.type=="change"&&qt.write(this.update)}};function mAe(e,t){const n=new Set;return Ak.dependencies=n,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)}),e=new Fk(e),Ak.dependencies=null,[e,n]}function gAe(e,t){return e&&(He.fun(e)?e(t):e.current=t),t}var Xre=Symbol.for("AnimatedComponent"),vAe=(e,{applyAnimatedValues:t=()=>!1,createAnimatedStyle:n=i=>new Fk(i),getComponentProps:r=i=>i}={})=>{const i={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:r},o=a=>{const s=Jre(a)||"Anonymous";return He.str(a)?a=o[a]||(o[a]=Kre(a,i)):a=a[Xre]||(a[Xre]=Kre(a,i)),a.displayName=`Animated(${s})`,a};return Xu(e,(a,s)=>{He.arr(e)&&(s=Jre(a)),o[s]=o(a)}),{animated:o}},Jre=e=>He.str(e)?e:e&&He.str(e.displayName)?e.displayName:He.fun(e)&&e.name||null;function Ua(e,...t){return He.fun(e)?e(...t):e}var Zb=(e,t)=>e===!0||!!(t&&e&&(He.fun(e)?e(t):ha(e).includes(t))),Qre=(e,t)=>He.obj(e)?t&&e[t]:e,eie=(e,t)=>e.default===!0?e[t]:e.default?e.default[t]:void 0,yAe=e=>e,Uk=(e,t=yAe)=>{let n=bAe;e.default&&e.default!==!0&&(e=e.default,n=Object.keys(e));const r={};for(const i of n){const o=t(e[i],i);He.und(o)||(r[i]=o)}return r},bAe=["config","onProps","onStart","onChange","onPause","onResume","onRest"],xAe={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function _Ae(e){const t={};let n=0;if(Xu(e,(r,i)=>{xAe[i]||(t[i]=r,n++)}),n)return t}function x$(e){const t=_Ae(e);if(t){const n={to:t};return Xu(e,(r,i)=>i in t||(n[i]=r)),n}return{...e}}function qb(e){return e=Fa(e),He.arr(e)?e.map(qb):zk(e)?tu.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function tie(e){for(const t in e)return!0;return!1}function _$(e){return He.fun(e)||He.arr(e)&&He.obj(e[0])}function w$(e,t){var n;(n=e.ref)==null||n.delete(e),t==null||t.delete(e)}function nie(e,t){var n;t&&e.ref!==t&&((n=e.ref)==null||n.delete(e),t.add(e),e.ref=t)}var k$={default:{tension:170,friction:26},gentle:{tension:120,friction:14},wobbly:{tension:180,friction:12},stiff:{tension:210,friction:20},slow:{tension:280,friction:60},molasses:{tension:280,friction:120}},S$={...k$.default,mass:1,damping:1,easing:XDe.linear,clamp:!1},wAe=class{constructor(){this.velocity=0,Object.assign(this,S$)}};function kAe(e,t,n){n&&(n={...n},rie(n,t),t={...n,...t}),rie(e,t),Object.assign(e,t);for(const a in S$)e[a]==null&&(e[a]=S$[a]);let{frequency:r,damping:i}=e;const{mass:o}=e;return He.und(r)||(r<.01&&(r=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/r,2)*o,e.friction=4*Math.PI*i*o/r),e}function rie(e,t){if(!He.und(t.decay))e.duration=void 0;else{const n=!He.und(t.tension)||!He.und(t.friction);(n||!He.und(t.frequency)||!He.und(t.damping)||!He.und(t.mass))&&(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}}var iie=[],SAe=class{constructor(){this.changed=!1,this.values=iie,this.toValues=null,this.fromValues=iie,this.config=new wAe,this.immediate=!1}};function oie(e,{key:t,props:n,defaultProps:r,state:i,actions:o}){return new Promise((a,s)=>{let l,c,d=Zb(n.cancel??(r==null?void 0:r.cancel),t);if(d)v();else{He.und(n.pause)||(i.paused=Zb(n.pause,t));let x=r==null?void 0:r.pause;x!==!0&&(x=i.paused||Zb(x,t)),l=Ua(n.delay||0,t),x?(i.resumeQueue.add(p),o.pause()):(o.resume(),p())}function f(){i.resumeQueue.add(p),i.timeouts.delete(c),c.cancel(),l=c.time-qt.now()}function p(){l>0&&!tu.skipAnimation?(i.delayed=!0,c=qt.setTimeout(v,l),i.pauseQueue.add(f),i.timeouts.add(c)):v()}function v(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(f),i.timeouts.delete(c),e<=(i.cancelId||0)&&(d=!0);try{o.start({...n,callId:e,cancel:d},a)}catch(x){s(x)}}})}var C$=(e,t)=>t.length==1?t[0]:t.some(n=>n.cancelled)?Lg(e.get()):t.every(n=>n.noop)?aie(e.get()):ru(e.get(),t.every(n=>n.finished)),aie=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),ru=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),Lg=e=>({value:e,cancelled:!0,finished:!1});function sie(e,t,n,r){const{callId:i,parentId:o,onRest:a}=t,{asyncTo:s,promise:l}=n;return!o&&e===s&&!t.reset?l:n.promise=(async()=>{n.asyncId=i,n.asyncTo=e;const c=Uk(t,(b,w)=>w==="onRest"?void 0:b);let d,f;const p=new Promise((b,w)=>(d=b,f=w)),v=b=>{const w=i<=(n.cancelId||0)&&Lg(r)||i!==n.asyncId&&ru(r,!1);if(w)throw b.result=w,f(b),b},x=(b,w)=>{const _=new lie,S=new uie;return(async()=>{if(tu.skipAnimation)throw Gb(n),S.result=ru(r,!1),f(S),S;v(_);const C=He.obj(b)?{...b}:{...w,to:b};C.parentId=i,Xu(c,(T,E)=>{He.und(C[E])&&(C[E]=T)});const j=await r.start(C);return v(_),n.paused&&await new Promise(T=>{n.resumeQueue.add(T)}),j})()};let y;if(tu.skipAnimation)return Gb(n),ru(r,!1);try{let b;He.arr(e)?b=(async w=>{for(const _ of w)await x(_)})(e):b=Promise.resolve(e(x,r.stop.bind(r))),await Promise.all([b.then(d),p]),y=ru(r.get(),!0,!1)}catch(b){if(b instanceof lie)y=b.result;else if(b instanceof uie)y=b.result;else throw b}finally{i==n.asyncId&&(n.asyncId=o,n.asyncTo=o?s:void 0,n.promise=o?l:void 0)}return He.fun(a)&&qt.batchedUpdates(()=>{a(y,r,r.item)}),y})()}function Gb(e,t){Ob(e.timeouts,n=>n.cancel()),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var lie=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},uie=class extends Error{constructor(){super("SkipAnimationSignal")}},j$=e=>e instanceof T$,CAe=1,T$=class extends Bre{constructor(){super(...arguments),this.id=CAe++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=Ju(this);return e&&e.getValue()}to(...e){return tu.to(this,e)}interpolate(...e){return oAe(),tu.to(this,e)}toJSON(){return this.get()}observerAdded(e){e==1&&this._attach()}observerRemoved(e){e==0&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){Ub(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||$k.sort(this),Ub(this,{type:"priority",parent:this,priority:e})}},jp=Symbol.for("SpringPhase"),cie=1,I$=2,E$=4,N$=e=>(e[jp]&cie)>0,th=e=>(e[jp]&I$)>0,Yb=e=>(e[jp]&E$)>0,die=(e,t)=>t?e[jp]|=I$|cie:e[jp]&=~I$,fie=(e,t)=>t?e[jp]|=E$:e[jp]&=~E$,jAe=class extends T${constructor(e,t){if(super(),this.animation=new SAe,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!He.und(e)||!He.und(t)){const n=He.obj(e)?{...e}:{...t,from:e};He.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(th(this)||this._state.asyncTo)||Yb(this)}get goal(){return Fa(this.animation.to)}get velocity(){const e=Ju(this);return e instanceof Vb?e.lastVelocity||0:e.getPayload().map(t=>t.lastVelocity||0)}get hasAnimated(){return N$(this)}get isAnimating(){return th(this)}get isPaused(){return Yb(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const r=this.animation;let{toValues:i}=r;const{config:o}=r,a=Dk(r.to);!a&&cl(r.to)&&(i=ha(Fa(r.to))),r.values.forEach((c,d)=>{if(c.done)return;const f=c.constructor==Hb?1:a?a[d].lastPosition:i[d];let p=r.immediate,v=f;if(!p){if(v=c.lastPosition,o.tension<=0){c.done=!0;return}let x=c.elapsedTime+=e;const y=r.fromValues[d],b=c.v0!=null?c.v0:c.v0=He.arr(o.velocity)?o.velocity[d]:o.velocity;let w;const _=o.precision||(y==f?.005:Math.min(1,Math.abs(f-y)*.001));if(He.und(o.duration))if(o.decay){const S=o.decay===!0?.998:o.decay,C=Math.exp(-(1-S)*x);v=y+b/(1-S)*(1-C),p=Math.abs(c.lastPosition-v)<=_,w=b*C}else{w=c.lastVelocity==null?b:c.lastVelocity;const S=o.restVelocity||_/10,C=o.clamp?0:o.bounce,j=!He.und(C),T=y==f?c.v0>0:yS,!(!E&&(p=Math.abs(f-v)<=_,p)));++O){j&&($=v==f||v>f==T,$&&(w=-w*C,v=f));const te=-o.tension*1e-6*(v-f),q=-o.friction*.001*w,P=(te+q)/o.mass;w=w+P*D,v=v+w*D}}else{let S=1;o.duration>0&&(this._memoizedDuration!==o.duration&&(this._memoizedDuration=o.duration,c.durationProgress>0&&(c.elapsedTime=o.duration*c.durationProgress,x=c.elapsedTime+=e)),S=(o.progress||0)+x/this._memoizedDuration,S=S>1?1:S<0?0:S,c.durationProgress=S),v=y+o.easing(S)*(f-y),w=(v-c.lastPosition)/e,p=S==1}c.lastVelocity=w,Number.isNaN(v)&&(console.warn("Got NaN while animating:",this),p=!0)}a&&!a[d].done&&(p=!1),p?c.done=!0:t=!1,c.setValue(v,o.round)&&(n=!0)});const s=Ju(this),l=s.getValue();if(t){const c=Fa(r.to);(l!==c||n)&&!o.decay?(s.setValue(c),this._onChange(c)):n&&o.decay&&this._onChange(l),this._stop()}else n&&this._onChange(l)}set(e){return qt.batchedUpdates(()=>{this._stop(),this._focus(e),this._set(e)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(th(this)){const{to:e,config:t}=this.animation;qt.batchedUpdates(()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()})}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return He.und(e)?(n=this.queue||[],this.queue=[]):n=[He.obj(e)?e:{...t,to:e}],Promise.all(n.map(r=>this._update(r))).then(r=>C$(this,r))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),Gb(this._state,e&&this._lastCallId),qt.batchedUpdates(()=>this._stop(t,e)),this}reset(){this._update({reset:!0})}eventObserved(e){e.type=="change"?this._start():e.type=="priority"&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:n,from:r}=e;n=He.obj(n)?n[t]:n,(n==null||_$(n))&&(n=void 0),r=He.obj(r)?r[t]:r,r==null&&(r=void 0);const i={to:n,from:r};return N$(this)||(e.reverse&&([n,r]=[r,n]),r=Fa(r),He.und(r)?Ju(this)||this._set(n):this._set(r)),i}_update({...e},t){const{key:n,defaultProps:r}=this;e.default&&Object.assign(r,Uk(e,(a,s)=>/^on/.test(s)?Qre(a,n):a)),mie(this,e,"onProps"),Jb(this,"onProps",e,this);const i=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const o=this._state;return oie(++this._lastCallId,{key:n,props:e,defaultProps:r,state:o,actions:{pause:()=>{Yb(this)||(fie(this,!0),zb(o.pauseQueue),Jb(this,"onPause",ru(this,Kb(this,this.animation.to)),this))},resume:()=>{Yb(this)&&(fie(this,!1),th(this)&&this._resume(),zb(o.resumeQueue),Jb(this,"onResume",ru(this,Kb(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then(a=>{if(e.loop&&a.finished&&!(t&&a.noop)){const s=hie(e);if(s)return this._update(s,!0)}return a})}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(Lg(this));const r=!He.und(e.to),i=!He.und(e.from);if(r||i)if(t.callId>this._lastToId)this._lastToId=t.callId;else return n(Lg(this));const{key:o,defaultProps:a,animation:s}=this,{to:l,from:c}=s;let{to:d=l,from:f=c}=e;i&&!r&&(!t.default||He.und(d))&&(d=f),t.reverse&&([d,f]=[f,d]);const p=!vd(f,c);p&&(s.from=f),f=Fa(f);const v=!vd(d,l);v&&this._focus(d);const x=_$(t.to),{config:y}=s,{decay:b,velocity:w}=y;(r||i)&&(y.velocity=0),t.config&&!x&&kAe(y,Ua(t.config,o),t.config!==a.config?Ua(a.config,o):void 0);let _=Ju(this);if(!_||He.und(d))return n(ru(this,!0));const S=He.und(t.reset)?i&&!t.default:!He.und(f)&&Zb(t.reset,o),C=S?f:this.get(),j=qb(d),T=He.num(j)||He.arr(j)||zk(j),E=!x&&(!T||Zb(a.immediate||t.immediate,o));if(v){const O=b$(d);if(O!==_.constructor)if(E)_=this._set(j);else throw Error(`Cannot animate between ${_.constructor.name} and ${O.name}, as the "to" prop suggests`)}const $=_.constructor;let D=cl(d),M=!1;if(!D){const O=S||!N$(this)&&p;(v||O)&&(M=vd(qb(C),j),D=!M),(!vd(s.immediate,E)&&!E||!vd(y.decay,b)||!vd(y.velocity,w))&&(D=!0)}if(M&&th(this)&&(s.changed&&!S?D=!0:D||this._stop(l)),!x&&((D||cl(l))&&(s.values=_.getPayload(),s.toValues=cl(d)?null:$==Hb?[1]:ha(j)),s.immediate!=E&&(s.immediate=E,!E&&!S&&this._set(l)),D)){const{onRest:O}=s;Ft(IAe,q=>mie(this,t,q));const te=ru(this,Kb(this,l));zb(this._pendingCalls,te),this._pendingCalls.add(n),s.changed&&qt.batchedUpdates(()=>{var q;s.changed=!S,O==null||O(te,this),S?Ua(a.onRest,te):(q=s.onStart)==null||q.call(s,te,this)})}S&&this._set(C),x?n(sie(t.to,t,this._state,this)):D?this._start():th(this)&&!v?this._pendingCalls.add(n):n(aie(C))}_focus(e){const t=this.animation;e!==t.to&&(Ure(this)&&this._detach(),t.to=e,Ure(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;cl(t)&&(Rg(t,this),j$(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;cl(e)&&Bb(e,this)}_set(e,t=!0){const n=Fa(e);if(!He.und(n)){const r=Ju(this);if(!r||!vd(n,r.getValue())){const i=b$(n);!r||r.constructor!=i?y$(this,i.create(n)):r.setValue(n),r&&qt.batchedUpdates(()=>{this._onChange(n,t)})}}return Ju(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,Jb(this,"onStart",ru(this,Kb(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),Ua(this.animation.onChange,e,this)),Ua(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;Ju(this).reset(Fa(e.to)),e.immediate||(e.fromValues=e.values.map(t=>t.lastPosition)),th(this)||(die(this,!0),Yb(this)||this._resume())}_resume(){tu.skipAnimation?this.finish():$k.start(this)}_stop(e,t){if(th(this)){die(this,!1);const n=this.animation;Ft(n.values,i=>{i.done=!0}),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),Ub(this,{type:"idle",parent:this});const r=t?Lg(this.get()):ru(this.get(),Kb(this,e??n.to));zb(this._pendingCalls,r),n.changed&&(n.changed=!1,Jb(this,"onRest",r,this))}}};function Kb(e,t){const n=qb(t),r=qb(e.get());return vd(r,n)}function hie(e,t=e.loop,n=e.to){const r=Ua(t);if(r){const i=r!==!0&&x$(r),o=(i||e).reverse,a=!i||i.reset;return Xb({...e,loop:t,default:!1,pause:void 0,to:!o||_$(n)?n:void 0,from:a?e.from:void 0,reset:a,...i})}}function Xb(e){const{to:t,from:n}=e=x$(e),r=new Set;return He.obj(t)&&pie(t,r),He.obj(n)&&pie(n,r),e.keys=r.size?Array.from(r):null,e}function TAe(e){const t=Xb(e);return He.und(t.default)&&(t.default=Uk(t)),t}function pie(e,t){Xu(e,(n,r)=>n!=null&&t.add(r))}var IAe=["onStart","onRest","onChange","onPause","onResume"];function mie(e,t,n){e.animation[n]=t[n]!==eie(t,n)?Qre(t[n],e.key):void 0}function Jb(e,t,...n){var r,i,o,a;(i=(r=e.animation)[t])==null||i.call(r,...n),(a=(o=e.defaultProps)[t])==null||a.call(o,...n)}var EAe=["onStart","onChange","onRest"],NAe=1,gie=class{constructor(e,t){this.id=NAe++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(e=>e.idle&&!e.isDelayed&&!e.isPaused)}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each((t,n)=>e[n]=t.get()),e}set(e){for(const t in e){const n=e[t];He.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(Xb(e)),this}start(e){let{queue:t}=this;return e?t=ha(e).map(Xb):this.queue=[],this._flush?this._flush(this,t):(_ie(this,t),$$(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;Ft(ha(t),r=>n[r].stop(!!e))}else Gb(this._state,this._lastAsyncId),this.each(n=>n.stop(!!e));return this}pause(e){if(He.und(e))this.start({pause:!0});else{const t=this.springs;Ft(ha(e),n=>t[n].pause())}return this}resume(e){if(He.und(e))this.start({pause:!1});else{const t=this.springs;Ft(ha(e),n=>t[n].resume())}return this}each(e){Xu(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,r=this._active.size>0,i=this._changed.size>0;(r&&!this._started||i&&!this._started)&&(this._started=!0,Ob(e,([s,l])=>{l.value=this.get(),s(l,this,this._item)}));const o=!r&&this._started,a=i||o&&n.size?this.get():null;i&&t.size&&Ob(t,([s,l])=>{l.value=a,s(l,this,this._item)}),o&&(this._started=!1,Ob(n,([s,l])=>{l.value=a,s(l,this,this._item)}))}eventObserved(e){if(e.type=="change")this._changed.add(e.parent),e.idle||this._active.add(e.parent);else if(e.type=="idle")this._active.delete(e.parent);else return;qt.onFrame(this._onFrame)}};function $$(e,t){return Promise.all(t.map(n=>vie(e,n))).then(n=>C$(e,n))}async function vie(e,t,n){const{keys:r,to:i,from:o,loop:a,onRest:s,onResolve:l}=t,c=He.obj(t.default)&&t.default;a&&(t.loop=!1),i===!1&&(t.to=null),o===!1&&(t.from=null);const d=He.arr(i)||He.fun(i)?i:void 0;d?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):Ft(EAe,y=>{const b=t[y];if(He.fun(b)){const w=e._events[y];t[y]=({finished:_,cancelled:S})=>{const C=w.get(b);C?(_||(C.finished=!1),S&&(C.cancelled=!0)):w.set(b,{value:null,finished:_||!1,cancelled:S||!1})},c&&(c[y]=t[y])}});const f=e._state;t.pause===!f.paused?(f.paused=t.pause,zb(t.pause?f.pauseQueue:f.resumeQueue)):f.paused&&(t.pause=!0);const p=(r||Object.keys(e.springs)).map(y=>e.springs[y].start(t)),v=t.cancel===!0||eie(t,"cancel")===!0;(d||v&&f.asyncId)&&p.push(oie(++e._lastAsyncId,{props:t,state:f,actions:{pause:a$,resume:a$,start(y,b){v?(Gb(f,e._lastAsyncId),b(Lg(e))):(y.onRest=s,b(sie(d,y,f,e)))}}})),f.paused&&await new Promise(y=>{f.resumeQueue.add(y)});const x=C$(e,await Promise.all(p));if(a&&x.finished&&!(n&&x.noop)){const y=hie(t,a,i);if(y)return _ie(e,[y]),vie(e,y,!0)}return l&&qt.batchedUpdates(()=>l(x,e,e.item)),x}function M$(e,t){const n={...e.springs};return t&&Ft(ha(t),r=>{He.und(r.keys)&&(r=Xb(r)),He.obj(r.to)||(r={...r,to:void 0}),xie(n,r,i=>bie(i))}),yie(e,n),n}function yie(e,t){Xu(t,(n,r)=>{e.springs[r]||(e.springs[r]=n,Rg(n,e))})}function bie(e,t){const n=new jAe;return n.key=e,t&&Rg(n,t),n}function xie(e,t,n){t.keys&&Ft(t.keys,r=>{(e[r]||(e[r]=n(r)))._prepareNode(t)})}function _ie(e,t){Ft(t,n=>{xie(e.springs,n,r=>bie(r,e))})}var Qb=({children:e,...t})=>{const n=m.useContext(Bk),r=t.pause||!!n.pause,i=t.immediate||!!n.immediate;t=uAe(()=>({pause:r,immediate:i}),[r,i]);const{Provider:o}=Bk;return m.createElement(o,{value:t},e)},Bk=$Ae(Qb,{});Qb.Provider=Bk.Provider,Qb.Consumer=Bk.Consumer;function $Ae(e,t){return Object.assign(e,m.createContext(t)),e.Provider._context=e,e.Consumer._context=e,e}var wie=()=>{const e=[],t=function(r){sAe();const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=n(r,o,a);s&&i.push(o.start(s))}}),i};t.current=e,t.add=function(r){e.includes(r)||e.push(r)},t.delete=function(r){const i=e.indexOf(r);~i&&e.splice(i,1)},t.pause=function(){return Ft(e,r=>r.pause(...arguments)),this},t.resume=function(){return Ft(e,r=>r.resume(...arguments)),this},t.set=function(r){Ft(e,(i,o)=>{const a=He.fun(r)?r(o,i):r;a&&i.set(a)})},t.start=function(r){const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=this._getProps(r,o,a);s&&i.push(o.start(s))}}),i},t.stop=function(){return Ft(e,r=>r.stop(...arguments)),this},t.update=function(r){return Ft(e,(i,o)=>i.update(this._getProps(r,i,o))),this};const n=function(r,i,o){return He.fun(r)?r(o,i):r};return t._getProps=n,t};function MAe(e,t,n){const r=He.fun(t)&&t;r&&!n&&(n=[]);const i=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),o=m.useRef(0),a=m$(),s=m.useMemo(()=>({ctrls:[],queue:[],flush(w,_){const S=M$(w,_);return o.current>0&&!s.queue.length&&!Object.keys(S).some(C=>!w.springs[C])?$$(w,_):new Promise(C=>{yie(w,S),s.queue.push(()=>{C($$(w,_))}),a()})}}),[]),l=m.useRef([...s.ctrls]),c=[],d=v$(e)||0;m.useMemo(()=>{Ft(l.current.slice(e,d),w=>{w$(w,i),w.stop(!0)}),l.current.length=e,f(d,e)},[e]),m.useMemo(()=>{f(0,Math.min(d,e))},n);function f(w,_){for(let S=w;S<_;S++){const C=l.current[S]||(l.current[S]=new gie(null,s.flush)),j=r?r(S,C):t[S];j&&(c[S]=TAe(j))}}const p=l.current.map((w,_)=>M$(w,c[_])),v=m.useContext(Qb),x=v$(v),y=v!==x&&tie(v);Cp(()=>{o.current++,s.ctrls=l.current;const{queue:w}=s;w.length&&(s.queue=[],Ft(w,_=>_())),Ft(l.current,(_,S)=>{i==null||i.add(_),y&&_.start({default:v});const C=c[S];C&&(nie(_,C.ref),_.ref?_.queue.push(C):_.start(C))})}),g$(()=>()=>{Ft(s.ctrls,w=>w.stop(!0))});const b=p.map(w=>({...w}));return i?[b,i]:b}function ex(e,t){const n=He.fun(e),[[r],i]=MAe(1,n?e:[e],n?[]:t);return n||arguments.length==2?[r,i]:r}function R$(e,t,n){const r=He.fun(t)&&t,{reset:i,sort:o,trail:a=0,expires:s=!0,exitBeforeEnter:l=!1,onDestroyed:c,ref:d,config:f}=r?r():t,p=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),v=ha(e),x=[],y=m.useRef(null),b=i?null:y.current;Cp(()=>{y.current=x}),g$(()=>(Ft(x,P=>{p==null||p.add(P.ctrl),P.ctrl.ref=p}),()=>{Ft(y.current,P=>{P.expired&&clearTimeout(P.expirationId),w$(P.ctrl,p),P.ctrl.stop(!0)})}));const w=LAe(v,r?r():t,b),_=i&&y.current||[];Cp(()=>Ft(_,({ctrl:P,item:X,key:A})=>{w$(P,p),Ua(c,X,A)}));const S=[];if(b&&Ft(b,(P,X)=>{P.expired?(clearTimeout(P.expirationId),_.push(P)):(X=S[X]=w.indexOf(P.key),~X&&(x[X]=P))}),Ft(v,(P,X)=>{x[X]||(x[X]={key:w[X],item:P,phase:"mount",ctrl:new gie},x[X].ctrl.item=P)}),S.length){let P=-1;const{leave:X}=r?r():t;Ft(S,(A,Y)=>{const F=b[Y];~A?(P=x.indexOf(F),x[P]={...F,item:v[A]}):X&&x.splice(++P,0,F)})}He.fun(o)&&x.sort((P,X)=>o(P.item,X.item));let C=-a;const j=m$(),T=Uk(t),E=new Map,$=m.useRef(new Map),D=m.useRef(!1);Ft(x,(P,X)=>{const A=P.key,Y=P.phase,F=r?r():t;let H,ee;const ce=Ua(F.delay||0,A);if(Y=="mount")H=F.enter,ee="enter";else{const me=w.indexOf(A)<0;if(Y!="leave")if(me)H=F.leave,ee="leave";else if(H=F.update)ee="update";else return;else if(!me)H=F.enter,ee="enter";else return}if(H=Ua(H,P.item,X),H=He.obj(H)?x$(H):{to:H},!H.config){const me=f||T.config;H.config=Ua(me,P.item,X,ee)}C+=a;const B={...T,delay:ce+C,ref:d,immediate:F.immediate,reset:!1,...H};if(ee=="enter"&&He.und(B.from)){const me=r?r():t,ke=He.und(me.initial)||b?me.from:me.initial;B.from=Ua(ke,P.item,X)}const{onResolve:ae}=B;B.onResolve=me=>{Ua(ae,me);const ke=y.current,he=ke.find(ue=>ue.key===A);if(he&&!(me.cancelled&&he.phase!="update")&&he.ctrl.idle){const ue=ke.every(re=>re.ctrl.idle);if(he.phase=="leave"){const re=Ua(s,he.item);if(re!==!1){const ge=re===!0?0:re;if(he.expired=!0,!ue&&ge>0){ge<=2147483647&&(he.expirationId=setTimeout(j,ge));return}}}ue&&ke.some(re=>re.expired)&&($.current.delete(he),l&&(D.current=!0),j())}};const je=M$(P.ctrl,B);ee==="leave"&&l?$.current.set(P,{phase:ee,springs:je,payload:B}):E.set(P,{phase:ee,springs:je,payload:B})});const M=m.useContext(Qb),O=v$(M),te=M!==O&&tie(M);Cp(()=>{te&&Ft(x,P=>{P.ctrl.start({default:M})})},[M]),Ft(E,(P,X)=>{if($.current.size){const A=x.findIndex(Y=>Y.key===X.key);x.splice(A,1)}}),Cp(()=>{Ft($.current.size?$.current:E,({phase:P,payload:X},A)=>{const{ctrl:Y}=A;A.phase=P,p==null||p.add(Y),te&&P=="enter"&&Y.start({default:M}),X&&(nie(Y,X.ref),(Y.ref||p)&&!D.current?Y.update(X):(Y.start(X),D.current&&(D.current=!1)))})},i?void 0:n);const q=P=>m.createElement(m.Fragment,null,x.map((X,A)=>{const{springs:Y}=E.get(X)||X.ctrl,F=P({...Y},X.item,X,A);return F&&F.type?m.createElement(F.type,{...F.props,key:He.str(X.key)||He.num(X.key)?X.key:X.ctrl.id,ref:F.ref}):F}));return p?[q,p]:q}var RAe=1;function LAe(e,{key:t,keys:n=t},r){if(n===null){const i=new Set;return e.map(o=>{const a=r&&r.find(s=>s.item===o&&s.phase!=="leave"&&!i.has(s));return a?(i.add(a),a.key):RAe++})}return He.und(n)?e:He.fun(n)?e.map(n):ha(n)}var kie=class extends T${constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=Ab(...t);const n=this._get(),r=b$(n);y$(this,r.create(n))}advance(e){const t=this._get(),n=this.get();vd(t,n)||(Ju(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Sie(this._active)&&L$(this)}_get(){const e=He.arr(this.source)?this.source.map(Fa):ha(Fa(this.source));return this.calc(...e)}_start(){this.idle&&!Sie(this._active)&&(this.idle=!1,Ft(Dk(this),e=>{e.done=!1}),tu.skipAnimation?(qt.batchedUpdates(()=>this.advance()),L$(this)):$k.start(this))}_attach(){let e=1;Ft(ha(this.source),t=>{cl(t)&&Rg(t,this),j$(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))}),this.priority=e,this._start()}_detach(){Ft(ha(this.source),e=>{cl(e)&&Bb(e,this)}),this._active.clear(),L$(this)}eventObserved(e){e.type=="change"?e.idle?this.advance():(this._active.add(e.parent),this._start()):e.type=="idle"?this._active.delete(e.parent):e.type=="priority"&&(this.priority=ha(this.source).reduce((t,n)=>Math.max(t,(j$(n)?n.priority:0)+1),0))}};function PAe(e){return e.idle!==!1}function Sie(e){return!e.size||Array.from(e).every(PAe)}function L$(e){e.idle||(e.idle=!0,Ft(Dk(e),t=>{t.done=!0}),Ub(e,{type:"idle",parent:e}))}var tx=(e,...t)=>new kie(e,t);tu.assign({createStringInterpolator:Zre,to:(e,t)=>new kie(e,t)});var Cie=/^--/;function OAe(e,t){return t==null||typeof t=="boolean"||t===""?"":typeof t=="number"&&t!==0&&!Cie.test(e)&&!(nx.hasOwnProperty(e)&&nx[e])?t+"px":(""+t).trim()}var jie={};function zAe(e,t){if(!e.nodeType||!e.setAttribute)return!1;const n=e.nodeName==="filter"||e.parentNode&&e.parentNode.nodeName==="filter",{className:r,style:i,children:o,scrollTop:a,scrollLeft:s,viewBox:l,...c}=t,d=Object.values(c),f=Object.keys(c).map(p=>n||e.hasAttribute(p)?p:jie[p]||(jie[p]=p.replace(/([A-Z])/g,v=>"-"+v.toLowerCase())));o!==void 0&&(e.textContent=o);for(const p in i)if(i.hasOwnProperty(p)){const v=OAe(p,i[p]);Cie.test(p)?e.style.setProperty(p,v):e.style[p]=v}f.forEach((p,v)=>{e.setAttribute(p,d[v])}),r!==void 0&&(e.className=r),a!==void 0&&(e.scrollTop=a),s!==void 0&&(e.scrollLeft=s),l!==void 0&&e.setAttribute("viewBox",l)}var nx={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},DAe=(e,t)=>e+t.charAt(0).toUpperCase()+t.substring(1),AAe=["Webkit","Ms","Moz","O"];nx=Object.keys(nx).reduce((e,t)=>(AAe.forEach(n=>e[DAe(n,t)]=e[t]),e),nx);var FAe=/^(matrix|translate|scale|rotate|skew)/,UAe=/^(translate)/,BAe=/^(rotate|skew)/,P$=(e,t)=>He.num(e)&&e!==0?e+t:e,Wk=(e,t)=>He.arr(e)?e.every(n=>Wk(n,t)):He.num(e)?e===t:parseFloat(e)===t,WAe=class extends Fk{constructor({x:e,y:t,z:n,...r}){const i=[],o=[];(e||t||n)&&(i.push([e||0,t||0,n||0]),o.push(a=>[`translate3d(${a.map(s=>P$(s,"px")).join(",")})`,Wk(a,0)])),Xu(r,(a,s)=>{if(s==="transform")i.push([a||""]),o.push(l=>[l,l===""]);else if(FAe.test(s)){if(delete r[s],He.und(a))return;const l=UAe.test(s)?"px":BAe.test(s)?"deg":"";i.push(ha(a)),o.push(s==="rotate3d"?([c,d,f,p])=>[`rotate3d(${c},${d},${f},${P$(p,l)})`,Wk(p,0)]:c=>[`${s}(${c.map(d=>P$(d,l)).join(",")})`,Wk(c,s.startsWith("scale")?1:0)])}}),i.length&&(r.transform=new VAe(i,o)),super(r)}},VAe=class extends Bre{constructor(e,t){super(),this.inputs=e,this.transforms=t,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let e="",t=!0;return Ft(this.inputs,(n,r)=>{const i=Fa(n[0]),[o,a]=this.transforms[r](He.arr(i)?i:n.map(Fa));e+=" "+o,t=t&&a}),t?"none":e}observerAdded(e){e==1&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Rg(n,this)))}observerRemoved(e){e==0&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Bb(n,this)))}eventObserved(e){e.type=="change"&&(this._value=null),Ub(this,e)}},HAe=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"];tu.assign({batchedUpdates:Kc.unstable_batchedUpdates,createStringInterpolator:Zre,colors:ADe});var ZAe=vAe(HAe,{applyAnimatedValues:zAe,createAnimatedStyle:e=>new WAe(e),getComponentProps:({scrollTop:e,scrollLeft:t,...n})=>n}),iu=ZAe.animated;function qAe(){const e=J(Zu);if(!e)return;const t=e.downloading_full_snapshot_throughput?`${Sp(e.downloading_full_snapshot_throughput).toString()}/s`:"-";return u.jsxs(W,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_full_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_full_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}function GAe(){const e=J(Zu);return e?u.jsx(ud,{label:"Slot",value:e.waiting_for_supermajority_slot}):null}function YAe(){const e=J(Zu);return e?u.jsx(N4,{value:e.waiting_for_supermajority_stake_percent||0,className:H3.progress}):null}function KAe(){const e=J(Zu);if(!e)return;const t=e.downloading_incremental_snapshot_throughput?`${Sp(e.downloading_incremental_snapshot_throughput).toString()}/s`:"-";return u.jsxs(W,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_incremental_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_incremental_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}const Tie=[{step:"initializing"},{step:"searching_for_full_snapshot"},{step:"downloading_full_snapshot",rightChildren:u.jsx(Aze,{}),bottomChildren:u.jsx(qAe,{})},{step:"searching_for_incremental_snapshot"},{step:"downloading_incremental_snapshot",rightChildren:u.jsx($De,{}),bottomChildren:u.jsx(KAe,{})},{step:"cleaning_blockstore"},{step:"cleaning_accounts"},{step:"loading_ledger"},{step:"processing_ledger",bottomChildren:u.jsx(EMe,{})},{step:"starting_services"},{step:"waiting_for_supermajority",rightChildren:u.jsx(YAe,{}),bottomChildren:u.jsx(GAe,{}),optional:!0},{step:"running"}];function XAe(){const e=J(Zu),[t,n]=Vl(ol),r=J(Ku),i=!!Object.values(r).length,[o,a]=m.useState();m.useEffect(()=>{(e==null?void 0:e.phase)!=="running"&&n(!0),a(f=>e?e.phase==="running":f)},[n,e]);const s=o===!0||o===void 0;m.useEffect(()=>{i&&(e==null?void 0:e.phase)==="running"&&n(!1)},[i,n,t,e==null?void 0:e.phase]);const l=Math.max(0,Tie.findIndex(({step:f})=>f===(e==null?void 0:e.phase))),[c,d]=ex(()=>({from:{opacity:t?1:0,zIndex:t?1:-1}}));return m.useEffect(()=>{d.stop(),t?d.start({from:{opacity:1,zIndex:1}}):d.start({from:{opacity:1,zIndex:1},to:{opacity:0,zIndex:-1}})},[d,t]),u.jsx(iu.div,{className:OG.outerContainer,style:c,children:u.jsxs(W,{direction:"column",gap:"4",className:OG.innerContainer,children:[u.jsx(Mt,{flexGrow:"1"}),u.jsx("img",{src:Vi?ree:gMe,alt:"fd",height:"50px",style:{marginBottom:"28px"}}),Tie.map(({step:f,rightChildren:p,bottomChildren:v,optional:x},y)=>{if(x&&f!==(e==null?void 0:e.phase))return null;const b=JAe(f);return y===l?u.jsx(wMe,{label:b,hide:s,rightChildren:p,bottomChildren:v},f):yt!==void 0).map((t,n)=>t==="for"?t:t==="rpc"?"RPC":(n===0?t[0].toUpperCase():t[0])+t.slice(1)).join(" ")}const QAe="_container_e8h4h_1",eFe="_blur_e8h4h_4",Iie={container:QAe,blur:eFe};function Eie(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;tvFe(e||null),{maxSize:1e3}),yFe="_hide_1etvv_1",Mie={hide:yFe};function ks({url:e,size:t,hideFallback:n,hideTooltip:r=!1,isYou:i}){const[o,a]=Vl($ie(e)),[s,l]=m.useState(o),[c,d]=m.useState(!1),f=`${t}px`,p={width:f,height:f,minWidth:f,minHeight:f};if(!e||s){if(n)return u.jsx("div",{style:p});if(i){const x=u.jsx("img",{src:gFe,style:p});return r?x:u.jsx(ci,{content:"Your current validator",children:x})}return u.jsx("img",{src:Nie,alt:"private",style:p})}const v=()=>{a(),l(!0)};return u.jsxs(u.Fragment,{children:[u.jsx("img",{className:Te({[Mie.hide]:!c}),style:p,onError:v,onLoad:()=>d(!0),src:e}),u.jsx("img",{className:Te({[Mie.hide]:c}),style:p,src:Nie,alt:"private"})]})}const O$=Gf((e,t,n)=>new Intl.NumberFormat(void 0,{minimumFractionDigits:n?e:0,maximumFractionDigits:e,minimumSignificantDigits:!n&&t?1:t,maximumSignificantDigits:t}),{maxSize:100});function z$(e,t){const{trailingZeroes:n=!0,decimalsOnZero:r=!1}=t;if(e===0&&!r)return"0";let i;if("decimals"in t){const s=typeof t.decimals=="function"?t.decimals(e):t.decimals;i=O$(s,void 0,n)}else{const{significantDigits:s,exactIntegers:l}=t;l&&Math.abs(e)>Math.pow(10,s)?i=O$(0,void 0,n):i=O$(void 0,s||1,n)}let o="";t.useSuffix&&([e,o]=bFe(e));const a=i.format(e);return a==="-0"?"0":a+o}function bFe(e){if(isFinite(e)){const t=Math.abs(e);if(t>=1e12)return[e/1e12,"T"];if(t>=1e9)return[e/1e9,"B"];if(t>=1e6)return[e/1e6,"M"];if(t>=1e3)return[e/1e3,"K"]}return[e,""]}const Rie=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",maximumFractionDigits:0}),D$=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumFractionDigits:1,maximumFractionDigits:1});function xFe(e){switch(e){case 1:return"Once";case 2:return"Twice";default:return`${e} times`}}function _Fe(){var e=m.useRef(!0);return e.current?(e.current=!1,!0):e.current}var Lie=function(){};function wFe(e){for(var t=[],n=1;ns.preventDefault(),children:t})})]})}function Uie(e){const t=J(dG),n=Pie();if(Qu(n,e),!!t)return Yf.diff(jt.fromMillis(Math.trunc(Number(t.startupTimeNanos)/1e6))).rescale()}function Tp(e,t,n,r){var i=this,o=m.useRef(null),a=m.useRef(0),s=m.useRef(0),l=m.useRef(null),c=m.useRef([]),d=m.useRef(),f=m.useRef(),p=m.useRef(e),v=m.useRef(!0);p.current=e;var x=typeof window<"u",y=!t&&t!==0&&x;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var b=!!(n=n||{}).leading,w=!("trailing"in n)||!!n.trailing,_="maxWait"in n,S="debounceOnServer"in n&&!!n.debounceOnServer,C=_?Math.max(+n.maxWait||0,t):null;m.useEffect(function(){return v.current=!0,function(){v.current=!1}},[]);var j=m.useMemo(function(){var T=function(q){var P=c.current,X=d.current;return c.current=d.current=null,a.current=q,s.current=s.current||q,f.current=p.current.apply(X,P)},E=function(q,P){y&&cancelAnimationFrame(l.current),l.current=y?requestAnimationFrame(q):setTimeout(q,P)},$=function(q){if(!v.current)return!1;var P=q-o.current;return!o.current||P>=t||P<0||_&&q-a.current>=C},D=function(q){return l.current=null,w&&c.current?T(q):(c.current=d.current=null,f.current)},M=function q(){var P=Date.now();if(b&&s.current===a.current&&O(),$(P))return D(P);if(v.current){var X=t-(P-o.current),A=_?Math.min(X,C-(P-a.current)):X;E(q,A)}},O=function(){r&&r({})},te=function(){if(x||S){var q=Date.now(),P=$(q);if(c.current=[].slice.call(arguments),d.current=i,o.current=q,P){if(!l.current&&v.current)return a.current=o.current,E(M,t),b?T(o.current):f.current;if(_)return E(M,t),T(o.current)}return l.current||E(M,t),f.current}};return te.cancel=function(){var q=l.current;q&&(y?cancelAnimationFrame(l.current):clearTimeout(l.current)),a.current=0,c.current=o.current=d.current=l.current=null,q&&r&&r({})},te.isPending=function(){return!!l.current},te.flush=function(){return l.current?D(Date.now()):f.current},te},[b,_,t,C,w,y,x,S,r]);return j}function DFe(e,t){return e===t}function Bie(e,t,n){var r=n&&n.equalityFn||DFe,i=m.useRef(e),o=m.useState({})[1],a=Tp(m.useCallback(function(l){i.current=l,o({})},[o]),t,n,o),s=m.useRef(e);return r(s.current,e)||(a(e),s.current=e),[i.current,a]}function Ba(e,t,n){var r=n===void 0?{}:n,i=r.leading,o=r.trailing;return Tp(e,t,{maxWait:t,leading:i===void 0||i,trailing:o===void 0||o})}function Yr(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var AFe=["color"],Wie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,AFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.5 2C7.77614 2 8 2.22386 8 2.5L8 11.2929L11.1464 8.14645C11.3417 7.95118 11.6583 7.95118 11.8536 8.14645C12.0488 8.34171 12.0488 8.65829 11.8536 8.85355L7.85355 12.8536C7.75979 12.9473 7.63261 13 7.5 13C7.36739 13 7.24021 12.9473 7.14645 12.8536L3.14645 8.85355C2.95118 8.65829 2.95118 8.34171 3.14645 8.14645C3.34171 7.95118 3.65829 7.95118 3.85355 8.14645L7 11.2929L7 2.5C7 2.22386 7.22386 2 7.5 2Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),FFe=["color"],Vie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,FFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.14645 2.14645C7.34171 1.95118 7.65829 1.95118 7.85355 2.14645L11.8536 6.14645C12.0488 6.34171 12.0488 6.65829 11.8536 6.85355C11.6583 7.04882 11.3417 7.04882 11.1464 6.85355L8 3.70711L8 12.5C8 12.7761 7.77614 13 7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.70711L3.85355 6.85355C3.65829 7.04882 3.34171 7.04882 3.14645 6.85355C2.95118 6.65829 2.95118 6.34171 3.14645 6.14645L7.14645 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),UFe=["color"],F$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,UFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),BFe=["color"],U$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,BFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),WFe=["color"],VFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,WFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),HFe=["color"],Hie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,HFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),ZFe=["color"],qFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,ZFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),GFe=["color"],YFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,GFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),KFe=["color"],XFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,KFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1 9.50006C1 10.3285 1.67157 11.0001 2.5 11.0001H4L4 10.0001H2.5C2.22386 10.0001 2 9.7762 2 9.50006L2 2.50006C2 2.22392 2.22386 2.00006 2.5 2.00006L9.5 2.00006C9.77614 2.00006 10 2.22392 10 2.50006V4.00002H5.5C4.67158 4.00002 4 4.67159 4 5.50002V12.5C4 13.3284 4.67158 14 5.5 14H12.5C13.3284 14 14 13.3284 14 12.5V5.50002C14 4.67159 13.3284 4.00002 12.5 4.00002H11V2.50006C11 1.67163 10.3284 1.00006 9.5 1.00006H2.5C1.67157 1.00006 1 1.67163 1 2.50006V9.50006ZM5 5.50002C5 5.22388 5.22386 5.00002 5.5 5.00002H12.5C12.7761 5.00002 13 5.22388 13 5.50002V12.5C13 12.7762 12.7761 13 12.5 13H5.5C5.22386 13 5 12.7762 5 12.5V5.50002Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),JFe=["color"],QFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,JFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M13.15 7.49998C13.15 4.66458 10.9402 1.84998 7.50002 1.84998C4.72167 1.84998 3.34849 3.9064 2.76335 5H4.5C4.77614 5 5 5.22386 5 5.5C5 5.77614 4.77614 6 4.5 6H1.5C1.22386 6 1 5.77614 1 5.5V2.5C1 2.22386 1.22386 2 1.5 2C1.77614 2 2 2.22386 2 2.5V4.31318C2.70453 3.07126 4.33406 0.849976 7.50002 0.849976C11.5628 0.849976 14.15 4.18537 14.15 7.49998C14.15 10.8146 11.5628 14.15 7.50002 14.15C5.55618 14.15 3.93778 13.3808 2.78548 12.2084C2.16852 11.5806 1.68668 10.839 1.35816 10.0407C1.25306 9.78536 1.37488 9.49315 1.63024 9.38806C1.8856 9.28296 2.17781 9.40478 2.2829 9.66014C2.56374 10.3425 2.97495 10.9745 3.4987 11.5074C4.47052 12.4963 5.83496 13.15 7.50002 13.15C10.9402 13.15 13.15 10.3354 13.15 7.49998ZM7.5 4.00001C7.77614 4.00001 8 4.22387 8 4.50001V7.29291L9.85355 9.14646C10.0488 9.34172 10.0488 9.65831 9.85355 9.85357C9.65829 10.0488 9.34171 10.0488 9.14645 9.85357L7.14645 7.85357C7.05268 7.7598 7 7.63262 7 7.50001V4.50001C7 4.22387 7.22386 4.00001 7.5 4.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),eUe=["color"],B$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,eUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),tUe=["color"],nUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,tUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),rUe=["color"],iUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,rUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.1464 6.85355C11.3417 7.04882 11.6583 7.04882 11.8536 6.85355C12.0488 6.65829 12.0488 6.34171 11.8536 6.14645L7.85355 2.14645C7.65829 1.95118 7.34171 1.95118 7.14645 2.14645L3.14645 6.14645C2.95118 6.34171 2.95118 6.65829 3.14645 6.85355C3.34171 7.04882 3.65829 7.04882 3.85355 6.85355L7.5 3.20711L11.1464 6.85355ZM11.1464 12.8536C11.3417 13.0488 11.6583 13.0488 11.8536 12.8536C12.0488 12.6583 12.0488 12.3417 11.8536 12.1464L7.85355 8.14645C7.65829 7.95118 7.34171 7.95118 7.14645 8.14645L3.14645 12.1464C2.95118 12.3417 2.95118 12.6583 3.14645 12.8536C3.34171 13.0488 3.65829 13.0488 3.85355 12.8536L7.5 9.20711L11.1464 12.8536Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),oUe=["color"],aUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,oUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M2 2.5C2 2.22386 2.22386 2 2.5 2H5.5C5.77614 2 6 2.22386 6 2.5C6 2.77614 5.77614 3 5.5 3H3V5.5C3 5.77614 2.77614 6 2.5 6C2.22386 6 2 5.77614 2 5.5V2.5ZM9 2.5C9 2.22386 9.22386 2 9.5 2H12.5C12.7761 2 13 2.22386 13 2.5V5.5C13 5.77614 12.7761 6 12.5 6C12.2239 6 12 5.77614 12 5.5V3H9.5C9.22386 3 9 2.77614 9 2.5ZM2.5 9C2.77614 9 3 9.22386 3 9.5V12H5.5C5.77614 12 6 12.2239 6 12.5C6 12.7761 5.77614 13 5.5 13H2.5C2.22386 13 2 12.7761 2 12.5V9.5C2 9.22386 2.22386 9 2.5 9ZM12.5 9C12.7761 9 13 9.22386 13 9.5V12.5C13 12.7761 12.7761 13 12.5 13H9.5C9.22386 13 9 12.7761 9 12.5C9 12.2239 9.22386 12 9.5 12H12V9.5C12 9.22386 12.2239 9 12.5 9Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),sUe=["color"],lUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,sUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M5.5 2C5.77614 2 6 2.22386 6 2.5V5.5C6 5.77614 5.77614 6 5.5 6H2.5C2.22386 6 2 5.77614 2 5.5C2 5.22386 2.22386 5 2.5 5H5V2.5C5 2.22386 5.22386 2 5.5 2ZM9.5 2C9.77614 2 10 2.22386 10 2.5V5H12.5C12.7761 5 13 5.22386 13 5.5C13 5.77614 12.7761 6 12.5 6H9.5C9.22386 6 9 5.77614 9 5.5V2.5C9 2.22386 9.22386 2 9.5 2ZM2 9.5C2 9.22386 2.22386 9 2.5 9H5.5C5.77614 9 6 9.22386 6 9.5V12.5C6 12.7761 5.77614 13 5.5 13C5.22386 13 5 12.7761 5 12.5V10H2.5C2.22386 10 2 9.77614 2 9.5ZM9 9.5C9 9.22386 9.22386 9 9.5 9H12.5C12.7761 9 13 9.22386 13 9.5C13 9.77614 12.7761 10 12.5 10H10V12.5C10 12.7761 9.77614 13 9.5 13C9.22386 13 9 12.7761 9 12.5V9.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),uUe=["color"],Zie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,uUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM8.24992 4.49999C8.24992 4.9142 7.91413 5.24999 7.49992 5.24999C7.08571 5.24999 6.74992 4.9142 6.74992 4.49999C6.74992 4.08577 7.08571 3.74999 7.49992 3.74999C7.91413 3.74999 8.24992 4.08577 8.24992 4.49999ZM6.00003 5.99999H6.50003H7.50003C7.77618 5.99999 8.00003 6.22384 8.00003 6.49999V9.99999H8.50003H9.00003V11H8.50003H7.50003H6.50003H6.00003V9.99999H6.50003H7.00003V6.99999H6.50003H6.00003V5.99999Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),cUe=["color"],qie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,cUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),dUe=["color"],fUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,dUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1.85001 7.50043C1.85001 4.37975 4.37963 1.85001 7.50001 1.85001C10.6204 1.85001 13.15 4.37975 13.15 7.50043C13.15 10.6211 10.6204 13.1509 7.50001 13.1509C4.37963 13.1509 1.85001 10.6211 1.85001 7.50043ZM7.50001 0.850006C3.82728 0.850006 0.850006 3.82753 0.850006 7.50043C0.850006 11.1733 3.82728 14.1509 7.50001 14.1509C11.1727 14.1509 14.15 11.1733 14.15 7.50043C14.15 3.82753 11.1727 0.850006 7.50001 0.850006ZM7.00001 8.00001V3.12811C7.16411 3.10954 7.33094 3.10001 7.50001 3.10001C9.93006 3.10001 11.9 5.07014 11.9 7.50043C11.9 7.66935 11.8905 7.83604 11.872 8.00001H7.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),hUe=["color"],pUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,hUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM7.50003 4C7.77617 4 8.00003 4.22386 8.00003 4.5V7H10.5C10.7762 7 11 7.22386 11 7.5C11 7.77614 10.7762 8 10.5 8H8.00003V10.5C8.00003 10.7761 7.77617 11 7.50003 11C7.22389 11 7.00003 10.7761 7.00003 10.5V8H4.50003C4.22389 8 4.00003 7.77614 4.00003 7.5C4.00003 7.22386 4.22389 7 4.50003 7H7.00003V4.5C7.00003 4.22386 7.22389 4 7.50003 4Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),mUe=["color"],gUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,mUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.85355 2.14645C5.04882 2.34171 5.04882 2.65829 4.85355 2.85355L3.70711 4H9C11.4853 4 13.5 6.01472 13.5 8.5C13.5 10.9853 11.4853 13 9 13H5C4.72386 13 4.5 12.7761 4.5 12.5C4.5 12.2239 4.72386 12 5 12H9C10.933 12 12.5 10.433 12.5 8.5C12.5 6.567 10.933 5 9 5H3.70711L4.85355 6.14645C5.04882 6.34171 5.04882 6.65829 4.85355 6.85355C4.65829 7.04882 4.34171 7.04882 4.14645 6.85355L2.14645 4.85355C1.95118 4.65829 1.95118 4.34171 2.14645 4.14645L4.14645 2.14645C4.34171 1.95118 4.65829 1.95118 4.85355 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),vUe=["color"],yUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,vUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.89949 9.49998C3.89949 9.72089 3.7204 9.89997 3.49949 9.89997C3.27857 9.89997 3.09949 9.72089 3.09949 9.49998L3.09949 2.46566L1.78233 3.78282C1.62612 3.93903 1.37285 3.93903 1.21664 3.78282C1.06043 3.62661 1.06043 3.37334 1.21664 3.21713L3.21664 1.21713C3.29166 1.14212 3.3934 1.09998 3.49949 1.09998C3.60557 1.09998 3.70732 1.14212 3.78233 1.21713L5.78233 3.21713C5.93854 3.37334 5.93854 3.62661 5.78233 3.78282C5.62612 3.93903 5.37285 3.93903 5.21664 3.78282L3.89949 2.46566L3.89949 9.49998ZM8.49998 1.99998C8.22383 1.99998 7.99998 2.22383 7.99998 2.49998C7.99998 2.77612 8.22383 2.99998 8.49998 2.99998H14.5C14.7761 2.99998 15 2.77612 15 2.49998C15 2.22383 14.7761 1.99998 14.5 1.99998H8.49998ZM8.49998 4.99998C8.22383 4.99998 7.99998 5.22383 7.99998 5.49998C7.99998 5.77612 8.22383 5.99998 8.49998 5.99998H14.5C14.7761 5.99998 15 5.77612 15 5.49998C15 5.22383 14.7761 4.99998 14.5 4.99998H8.49998ZM7.99998 8.49998C7.99998 8.22383 8.22383 7.99998 8.49998 7.99998H14.5C14.7761 7.99998 15 8.22383 15 8.49998C15 8.77612 14.7761 8.99998 14.5 8.99998H8.49998C8.22383 8.99998 7.99998 8.77612 7.99998 8.49998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),bUe=["color"],Gie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,bUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49998 0.849976C7.22383 0.849976 6.99998 1.07383 6.99998 1.34998V3.52234C6.99998 3.79848 7.22383 4.02234 7.49998 4.02234C7.77612 4.02234 7.99998 3.79848 7.99998 3.52234V1.8718C10.8862 2.12488 13.15 4.54806 13.15 7.49998C13.15 10.6204 10.6204 13.15 7.49998 13.15C4.37957 13.15 1.84998 10.6204 1.84998 7.49998C1.84998 6.10612 2.35407 4.83128 3.19049 3.8459C3.36919 3.63538 3.34339 3.31985 3.13286 3.14115C2.92234 2.96245 2.60681 2.98825 2.42811 3.19877C1.44405 4.35808 0.849976 5.86029 0.849976 7.49998C0.849976 11.1727 3.82728 14.15 7.49998 14.15C11.1727 14.15 14.15 11.1727 14.15 7.49998C14.15 3.82728 11.1727 0.849976 7.49998 0.849976ZM6.74049 8.08072L4.22363 4.57237C4.15231 4.47295 4.16346 4.33652 4.24998 4.25C4.33649 4.16348 4.47293 4.15233 4.57234 4.22365L8.08069 6.74051C8.56227 7.08599 8.61906 7.78091 8.19998 8.2C7.78089 8.61909 7.08597 8.56229 6.74049 8.08072Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),xUe=["color"],_Ue=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,xUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159ZM4.25 6.5C4.25 6.22386 4.47386 6 4.75 6H6V4.75C6 4.47386 6.22386 4.25 6.5 4.25C6.77614 4.25 7 4.47386 7 4.75V6H8.25C8.52614 6 8.75 6.22386 8.75 6.5C8.75 6.77614 8.52614 7 8.25 7H7V8.25C7 8.52614 6.77614 8.75 6.5 8.75C6.22386 8.75 6 8.52614 6 8.25V7H4.75C4.47386 7 4.25 6.77614 4.25 6.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),wUe=["color"],kUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,wUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.5 10C8.433 10 10 8.433 10 6.5C10 4.567 8.433 3 6.5 3C4.567 3 3 4.567 3 6.5C3 8.433 4.567 10 6.5 10ZM6.5 11C7.56251 11 8.53901 10.6318 9.30884 10.0159L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L10.0159 9.30884C10.6318 8.53901 11 7.56251 11 6.5C11 4.01472 8.98528 2 6.5 2C4.01472 2 2 4.01472 2 6.5C2 8.98528 4.01472 11 6.5 11ZM4.75 6C4.47386 6 4.25 6.22386 4.25 6.5C4.25 6.77614 4.47386 7 4.75 7H8.25C8.52614 7 8.75 6.77614 8.75 6.5C8.75 6.22386 8.52614 6 8.25 6H4.75Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const SUe="_copy-button_1km2g_1",CUe="_icon_1km2g_8",jUe="_hide-icon-until-hover_1km2g_12",Zk={copyButton:SUe,icon:CUe,hideIconUntilHover:jUe};function Dg({value:e,color:t,size:n,hideIconUntilHover:r,className:i,children:o}){const[a,s]=m.useState(!1),l=Tp(()=>s(!1),1e3);return e===void 0?o:u.jsxs(hs,{className:Te(i,Zk.copyButton,r&&Zk.hideIconUntilHover),variant:"ghost",size:"1",onClick:c=>{WN(e),s(!0),l(),c.stopPropagation()},children:[o,a?u.jsx(VFe,{className:Zk.icon,color:"green",height:n}):u.jsx(XFe,{className:Zk.icon,color:t,height:n})]})}function qk({children:e,...t}){return t.content?u.jsx(ci,{...t,children:e}):u.jsx(u.Fragment,{children:e})}function TUe(){var o;const{peer:e,identityKey:t}=ax(),n=Hn(`(min-width: ${Hte})`),r=Hn("(min-width: 798px)"),i=Hn("(min-width: 914px)");return m.useEffect(()=>{var s;const a=((s=e==null?void 0:e.info)==null?void 0:s.name)??t;document.title=a?`${hb} | ${a}`:hb},[t,e]),u.jsx(IUe,{showDropdown:!0,children:u.jsxs("div",{className:Te(nh.container,nh.horizontal,nh.pointer),children:[u.jsx(ks,{url:(o=e==null?void 0:e.info)==null?void 0:o.icon_url,size:28,isYou:!0}),n&&u.jsx(Yie,{shouldShrink:!0}),r&&u.jsxs(u.Fragment,{children:[u.jsx(Jie,{showTooltip:!0}),u.jsx(Xie,{showTooltip:!0})]}),i&&u.jsxs(u.Fragment,{children:[u.jsx(Qie,{}),u.jsx(Kie,{showTooltip:!0}),u.jsx(eoe,{})]})]})})}function IUe({showDropdown:e,children:t}){return e?u.jsx(zg,{content:u.jsx(EUe,{}),align:"end",children:t}):t}function EUe(){var t;const{peer:e}=ax();return u.jsxs(W,{direction:"column",wrap:"wrap",gap:"2",className:Te(nh.container,nh.dropdownMenu),style:{zIndex:Vf},children:[u.jsxs(W,{gap:"2",children:[u.jsx(ks,{url:(t=e==null?void 0:e.info)==null?void 0:t.icon_url,size:24,isYou:!0}),u.jsx(Yie,{})]}),u.jsx(Jie,{}),u.jsx(Xie,{}),u.jsx(Qie,{}),u.jsx(Kie,{}),u.jsx(NUe,{}),u.jsx($Ue,{}),u.jsx(eoe,{})]})}function Yie({shouldShrink:e}){const{identityKey:t}=ax();return u.jsx(rh,{label:"Validator Name",copyValue:t,shouldShrink:e,children:t})}function NUe(){var t;const{peer:e}=ax();return u.jsx(rh,{label:"Vote Pubkey",children:(t=e==null?void 0:e.vote[0])==null?void 0:t.vote_account})}function $Ue(){const e=J(hG),t=Tb(e);return u.jsx(rh,{label:"Vote Balance",children:u.jsx(Ag,{value:t,suffix:"SOL"})})}function Kie({showTooltip:e}){const t=J(fG),n=Tb(t);return u.jsx(rh,{label:"Identity Balance",tooltip:e?"Account balance of this validators identity account. The balance is on the highest slot of the currently active fork of the validator.":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Xie({showTooltip:e}){const t=J(mDe),n=t===void 0?void 0:z$(t,{significantDigits:4,trailingZeroes:!1});return u.jsx(rh,{label:"Stake %",tooltip:e?"What percentage of total stake is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"%"})})}function Jie({showTooltip:e}){const t=J(bre),n=Tb(t);return u.jsx(rh,{label:"Stake Amount",tooltip:e?"Amount of total stake that is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Qie(){var n;const{peer:e}=ax(),t=e==null?void 0:e.vote.reduce((r,i)=>i.activated_stake>r.maxStake?{maxStake:i.activated_stake,commission:i.commission}:r,{maxStake:0n,commission:void 0});return u.jsx(rh,{label:"Commission",children:u.jsx(Ag,{value:(n=t==null?void 0:t.commission)==null?void 0:n.toLocaleString(),suffix:"%"})})}function eoe(){const e=Uie(6e4),t=e?ere(e,{omitSeconds:!0}):void 0;return u.jsx(rh,{label:"Uptime",children:t==null?void 0:t.map(([n,r],i)=>u.jsxs(m.Fragment,{children:[i!==0&&"\xA0",u.jsx(Ag,{value:n,suffix:r,excludeSpace:!0})]},`${n}${r}`))})}function rh({label:e,tooltip:t,shouldShrink:n=!1,children:r,copyValue:i}){return r?u.jsx(qk,{content:t,children:u.jsxs(W,{direction:"column",minWidth:"0",flexShrink:n?"1":"0",children:[u.jsx(Z,{truncate:!0,className:nh.label,children:e}),u.jsx(Dg,{value:i,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(Z,{truncate:!0,className:nh.value,children:r})})]})}):null}function Ag({value:e,suffix:t,valueColor:n,excludeSpace:r}){return u.jsxs(u.Fragment,{children:[u.jsxs("span",{style:{color:n},children:[e,!r&&"\xA0"]}),u.jsx("span",{className:nh.valueSuffix,children:t})]})}const MUe="_nav-link_tb1ax_1",RUe="_icon_tb1ax_14",LUe="_dropdown-icon_tb1ax_19",PUe="_active_tb1ax_29",OUe="_nav-dropdown-content_tb1ax_41",sx={navLink:MUe,icon:RUe,dropdownIcon:LUe,active:PUe,navDropdownContent:OUe},zUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M21 5.47 12 12 7.62 7.62 3 11V8.52L7.83 5l4.38 4.38L21 3v2.47zM21 15h-4.7l-4.17 3.34L6 12.41l-3 2.13V17l2.8-2 6.2 6 5-4h4v-2z"})),DUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"})),AUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z"})),FUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"})),UUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"})),Gk={Overview:"/","Slot Details":"/slotDetails",Schedule:"/leaderSchedule",Gossip:"/gossip"};function Yk(){const e=D9e();return m.useMemo(()=>{const t=Object.entries(Gk).find(([n,r])=>e.pathname===r);return t?t[0]:"Overview"},[e.pathname])}function BUe(){const e=J(ao),t=J(eu),n=J(An),r=Ee(An),[i,o]=m.useMemo(()=>{if(e===void 0)return[-1,-1];const a=e.findIndex(l=>l>(n??t??0));let s=a-1;return s===e.findIndex(l=>l===(n??t??0))&&s--,[s,a]},[t,e,n]);return m.useMemo(()=>({navPrevLeaderSlot:(a=1)=>{if(i>-1&&a>0){const s=e==null?void 0:e[i-a+1];s!==void 0&&r(s)}},navNextLeaderSlot:(a=1)=>{if(o>-1&&a>0){const s=e==null?void 0:e[o+a-1];s!==void 0&&r(s)}}}),[e,o,i,r])}const WUe={Overview:zUe,Schedule:AUe,Gossip:FUe,"Slot Details":DUe},Kk=m.forwardRef(({label:e,isActive:t,showDropdownIcon:n=!1,isLink:r,...i},o)=>{const a=J(qy),s=bk(a),l=WUe[e],c=Gk[e],d=m.useMemo(()=>{const f=t?s:Qte;return u.jsxs(u.Fragment,{children:[u.jsx(l,{className:sx.icon,fill:f}),u.jsx(Z,{truncate:!0,children:e}),n&&u.jsx(UUe,{className:sx.dropdownIcon,fill:f})]})},[l,s,t,e,n]);return u.jsx(hs,{ref:o,...i,size:"2",variant:"soft",color:"gray",className:Te(sx.navLink,{[sx.active]:t}),style:{color:t?s:void 0},asChild:r,children:r?u.jsx(sp,{to:c,children:d}):d})});Kk.displayName="NavButton";function VUe(){const e=Yk();return u.jsx(W,{gap:`${Wf}px`,children:Object.keys(Gk).map(t=>{const n=t;if(!(n==="Gossip"&&xi))return u.jsx(Kk,{label:n,isActive:e===n,isLink:!0},n)})})}function HUe(){const e=J(jg),t=Yk();return u.jsxs(bV,{children:[u.jsx(xV,{asChild:!0,children:u.jsx(Kk,{label:t,isActive:!0,showDropdownIcon:!0,isLink:!1},t)}),u.jsx(s7,{container:e,children:u.jsx(_V,{side:"bottom",sideOffset:5,className:sx.navDropdownContent,style:{zIndex:Vf},children:Object.keys(Gk).map(n=>{const r=n;if(!(r==="Gossip"&&xi))return u.jsx(wV,{asChild:!0,children:u.jsx(Kk,{label:r,isActive:r===t,isLink:!0},r)},r)})})})]})}function ZUe(){const e=BUe();return m.useEffect(()=>{const t=n=>{n.code==="ArrowLeft"?e.navPrevLeaderSlot():n.code==="ArrowRight"&&e.navNextLeaderSlot()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),null}const toe="/assets/firedancer_logo-CrgwxzPk.svg",noe="/assets/frankendancer_logo-CHyfJ772.svg",qUe="_logo_1ml9x_1",GUe={logo:qUe};function YUe(){return u.jsx(Z0,{children:u.jsx(sp,{to:"/",children:u.jsx("img",{className:GUe.logo,width:dN,src:Vi?toe:noe,alt:hb})})})}const KUe="_cluster-container_7aa6c_1",XUe="_cluster_7aa6c_1",JUe="_cluster-name_7aa6c_19",W$={clusterContainer:KUe,cluster:XUe,clusterName:JUe},QUe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M6.39844 3.39062V9.89844H11.6484V11.0742H0V9.89844H5.25V3.39062C4.72135 3.20833 4.36589 2.85286 4.18359 2.32422H2.32422L4.07422 6.39844C4.07422 6.72656 3.98307 7.02734 3.80078 7.30078C3.61849 7.55599 3.3724 7.76562 3.0625 7.92969C2.7526 8.07552 2.40625 8.14844 2.02344 8.14844C1.65885 8.14844 1.32161 8.07552 1.01172 7.92969C0.701823 7.76562 0.455729 7.55599 0.273438 7.30078C0.0911458 7.02734 0 6.72656 0 6.39844L1.75 2.32422H0.574219V1.14844H4.18359C4.29297 0.820312 4.49349 0.546875 4.78516 0.328125C5.09505 0.109375 5.44141 0 5.82422 0C6.20703 0 6.54427 0.109375 6.83594 0.328125C7.14583 0.546875 7.35547 0.820312 7.46484 1.14844H11.0742V2.32422H9.89844L11.6484 6.39844C11.6484 6.72656 11.5573 7.02734 11.375 7.30078C11.1927 7.55599 10.9466 7.76562 10.6367 7.92969C10.3268 8.07552 9.98958 8.14844 9.625 8.14844C9.24219 8.14844 8.89583 8.07552 8.58594 7.92969C8.27604 7.76562 8.02995 7.55599 7.84766 7.30078C7.66536 7.02734 7.57422 6.72656 7.57422 6.39844L9.32422 2.32422H7.46484C7.28255 2.85286 6.92708 3.20833 6.39844 3.39062ZM10.7188 6.39844L9.625 3.85547L8.53125 6.39844H10.7188ZM3.11719 6.39844L2.02344 3.85547L0.929688 6.39844H3.11719ZM5.82422 2.32422C5.98828 2.32422 6.125 2.26953 6.23438 2.16016C6.34375 2.03255 6.39844 1.89583 6.39844 1.75C6.39844 1.58594 6.34375 1.44922 6.23438 1.33984C6.125 1.21224 5.98828 1.14844 5.82422 1.14844C5.66016 1.14844 5.52344 1.21224 5.41406 1.33984C5.30469 1.44922 5.25 1.58594 5.25 1.75C5.25 1.89583 5.30469 2.03255 5.41406 2.16016C5.52344 2.26953 5.66016 2.32422 5.82422 2.32422Z"})),eBe=e=>m.createElement("svg",{width:7,height:11,viewBox:"0 0 7 11",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M2.48828 10.5H1.88672L2.48828 6.42578H0.4375C0.145833 6.42578 0.0729167 6.29818 0.21875 6.04297C0.273438 5.95182 0.282552 5.92448 0.246094 5.96094C1.17578 4.33854 2.30599 2.35156 3.63672 0H4.23828L3.63672 4.07422H5.6875C5.94271 4.07422 6.02474 4.20182 5.93359 4.45703L2.48828 10.5Z"})),tBe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M4.18359 2.26953L3.41797 2.13281C2.9987 2.04167 2.64323 2.15104 2.35156 2.46094L0 4.8125L2.10547 5.71484C2.1237 5.67839 2.1875 5.54167 2.29688 5.30469C2.40625 5.06771 2.55208 4.77604 2.73438 4.42969C2.91667 4.08333 3.1263 3.72786 3.36328 3.36328C3.61849 2.98047 3.89193 2.61589 4.18359 2.26953ZM5.33203 8.50391L2.89844 6.07031C2.89844 6.07031 2.95312 5.95182 3.0625 5.71484C3.17188 5.47786 3.31771 5.17708 3.5 4.8125C3.70052 4.44792 3.92839 4.07422 4.18359 3.69141C4.45703 3.29036 4.7487 2.9349 5.05859 2.625C5.69661 1.98698 6.29818 1.49479 6.86328 1.14844C7.42839 0.783854 7.94792 0.519531 8.42188 0.355469C8.91406 0.191406 9.35156 0.0911458 9.73438 0.0546875C10.1172 0.0182292 10.4362 0.0182292 10.6914 0.0546875C10.9466 0.0911458 11.1289 0.127604 11.2383 0.164062C11.2747 0.273438 11.3112 0.455729 11.3477 0.710938C11.3841 0.966146 11.3841 1.28516 11.3477 1.66797C11.3112 2.05078 11.2109 2.48828 11.0469 2.98047C10.8828 3.45443 10.6185 3.97396 10.2539 4.53906C9.90755 5.10417 9.41536 5.70573 8.77734 6.34375C8.46745 6.65365 8.11198 6.94531 7.71094 7.21875C7.32812 7.47396 6.95443 7.70182 6.58984 7.90234C6.22526 8.08464 5.92448 8.23047 5.6875 8.33984C5.45052 8.44922 5.33203 8.50391 5.33203 8.50391ZM9.13281 7.21875L9.26953 7.98438C9.36068 8.40365 9.2513 8.75911 8.94141 9.05078L6.58984 11.4023L5.6875 9.29688C5.72396 9.27865 5.86068 9.21484 6.09766 9.10547C6.33464 8.99609 6.6263 8.85026 6.97266 8.66797C7.31901 8.48568 7.67448 8.27604 8.03906 8.03906C8.42188 7.78385 8.78646 7.51042 9.13281 7.21875ZM4.07422 9.07812C4.07422 8.75 3.99219 8.45833 3.82812 8.20312C3.68229 7.92969 3.47266 7.72005 3.19922 7.57422C2.94401 7.41016 2.65234 7.32812 2.32422 7.32812C2.08724 7.32812 1.85938 7.3737 1.64062 7.46484C1.42188 7.55599 1.23958 7.68359 1.09375 7.84766C0.947917 7.97526 0.820312 8.1849 0.710938 8.47656C0.601562 8.75 0.501302 9.0599 0.410156 9.40625C0.31901 9.73438 0.236979 10.0534 0.164062 10.3633C0.109375 10.6732 0.0638021 10.9284 0.0273438 11.1289C0.00911458 11.3112 0 11.4023 0 11.4023C0 11.4023 0.0911458 11.3932 0.273438 11.375C0.473958 11.3385 0.729167 11.293 1.03906 11.2383C1.34896 11.1654 1.66797 11.0833 1.99609 10.9922C2.34245 10.901 2.65234 10.8008 2.92578 10.6914C3.21745 10.582 3.42708 10.4544 3.55469 10.3086C3.71875 10.1628 3.84635 9.98047 3.9375 9.76172C4.02865 9.54297 4.07422 9.3151 4.07422 9.07812ZM6.39844 3.82812C6.39844 4.15625 6.50781 4.4388 6.72656 4.67578C6.96354 4.89453 7.24609 5.00391 7.57422 5.00391C7.90234 5.00391 8.17578 4.89453 8.39453 4.67578C8.63151 4.4388 8.75 4.15625 8.75 3.82812C8.75 3.5 8.63151 3.22656 8.39453 3.00781C8.17578 2.77083 7.90234 2.65234 7.57422 2.65234C7.24609 2.65234 6.96354 2.77083 6.72656 3.00781C6.50781 3.22656 6.39844 3.5 6.39844 3.82812Z"}));function roe({strategy:e,iconSize:t,tooltipContent:n}){const r=J(qy),i=m.useMemo(()=>({width:`${t}px`,height:`${t}px`,color:bk(r)}),[r,t]),o=m.useMemo(()=>{if(e===ld.balanced)return u.jsx(QUe,{...i});if(e===ld.perf)return u.jsx(eBe,{...i});if(e===ld.revenue)return u.jsx(tBe,{...i})},[e,i]);return n?u.jsx(ci,{content:n,children:u.jsx("div",{style:{lineHeight:0},children:o})}):o}const lx=2;function nBe(){const e=J(qy),t=J(uG),n=J(cG);if(!e&&!t)return null;let r=e;return e==="mainnet-beta"&&(r="mainnet"),u.jsxs(W,{width:`${hN+lx}px`,className:W$.clusterContainer,gap:"5px",ml:`-${lx}px`,p:`${lx}px 5px ${lx}px ${lx}px`,children:[u.jsxs(W,{className:W$.cluster,flexGrow:"1",direction:"column",align:"center",style:{background:bk(e)},children:[u.jsx(ci,{content:"Cluster the validator is joined to",children:u.jsx(Z,{className:W$.clusterName,children:r})}),u.jsx(ci,{content:`Current validator software version. Commit Hash: ${n||"unknown"}`,children:u.jsxs(Z,{children:["v",t]})})]}),u.jsx(iBe,{})]})}function rBe(){const e=J(qy),t=bk(e);return u.jsx("div",{style:{background:t,height:kb,width:"100%"}})}function iBe(){const e=J(s3),t=m.useMemo(()=>{if(e===ld.balanced)return"Transaction scheduler strategy: balanced";if(e===ld.perf)return"Transaction scheduler strategy: performance";if(e===ld.revenue)return"Transaction scheduler strategy: revenue"},[e]);if(e)return u.jsx(roe,{strategy:e,iconSize:12,tooltipContent:t})}const oBe="_nav-filter-toggle-group_148xa_1",aBe="_lg_148xa_47",sBe="_toggle-button_148xa_43",lBe="_floating_148xa_61",uBe="_mirror_148xa_75",cBe="_slot-nav-container_148xa_81",dBe="_nav-background_148xa_85",Ip={navFilterToggleGroup:oBe,lg:aBe,toggleButton:sBe,floating:lBe,mirror:uBe,slotNavContainer:cBe,navBackground:dBe},fBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M13 7h9v2h-9zm0 8h9v2h-9zm3-4h6v2h-6zm-3 1L8 7v4H2v2h6v4z"}));function Fg(){const e=Hn(Vte),[t,n]=Vl(Jze),r=Yk()==="Schedule",i=r||!t,o=r;return{isNarrowScreen:e,showNav:i,setIsNavCollapsed:n,showOnlyEpochBar:o,blurBackground:e&&!t&&!o,occupyRowWidth:o||!e&&!t}}function V$({isFloating:e,isLarge:t}){const{showNav:n,setIsNavCollapsed:r,showOnlyEpochBar:i}=Fg(),o=`${t?NLe:cN}px`;return i?u.jsx("div",{style:{height:o,width:o}}):u.jsx(nl,{size:"1",onClick:()=>r(a=>!a),className:Te(Ip.toggleButton,{[Ip.floating]:e}),style:{height:o,width:o},children:u.jsx(fBe,{className:Te({[Ip.lg]:t,[Ip.mirror]:n})})})}function ioe(){const{setIsNavCollapsed:e}=Fg();return u.jsx("div",{onClick:()=>e(!0),className:"blur",style:{zIndex:Vf-2}})}const hBe="_nav-background_1sjct_1",pBe={navBackground:hBe},mBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 0 0 2-2v-4l-3-3zm-1-5.05-4.95 4.95-3.54-3.54 4.95-4.95L17 7.95zm-4.24-5.66L6.39 8.66a.996.996 0 0 0 0 1.41l4.95 4.95c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 0 0 0-1.41L14.16 2.3a.975.975 0 0 0-1.4-.01z"})),gBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"m11.99 18.54-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z"})),vBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),m.createElement("path",{d:"M22 7.47V5.35C20.05 4.77 16.56 4 12 4c-2.15 0-4.11.86-5.54 2.24.13-.85.4-2.4 1.01-4.24H5.35C4.77 3.95 4 7.44 4 12c0 2.15.86 4.11 2.24 5.54-.85-.14-2.4-.4-4.24-1.01v2.12C3.95 19.23 7.44 20 12 20c2.15 0 4.11-.86 5.54-2.24-.14.85-.4 2.4-1.01 4.24h2.12c.58-1.95 1.35-5.44 1.35-10 0-2.15-.86-4.11-2.24-5.54.85.13 2.4.4 4.24 1.01zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"})),yBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{fillRule:"evenodd",d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 10c0 3.31-2.69 6-6 6s-6-2.69-6-6h2c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4v3L8 7l4-4v3c3.31 0 6 2.69 6 6z"})),bBe="_health-pane_hbx15_1",xBe="_vertical_hbx15_14",_Be="_narrow_hbx15_18",wBe="_health-box_hbx15_22",kBe="_stacked_hbx15_36",SBe="_alerting_hbx15_44",CBe="_popover_hbx15_58",jBe="_title_hbx15_62",TBe="_status_hbx15_67",IBe="_content_hbx15_77",dl={healthPane:bBe,vertical:xBe,narrow:_Be,healthBox:wBe,stacked:kBe,alerting:SBe,popover:CBe,title:jBe,status:TBe,content:IBe},ooe={forceUpdateIntervalMs:1500,halfLifeMs:5e3,initMinSamples:5};function Ug(e,t){const{forceUpdateIntervalMs:n,halfLifeMs:r,initMinSamples:i}={...ooe,...t},o=m.useMemo(()=>r/Math.log(2),[r]),[a,s]=m.useState(),l=m.useRef(),c=m.useRef(e);c.current=e;const d=m.useRef(),f=m.useRef(0),p=m.useRef(!1);p.current=a!==void 0;const v=m.useCallback(()=>{s(void 0),l.current=void 0,d.current=void 0,f.current=0,y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)},[]),x=m.useCallback(b=>{b??(b=c.current);const w=performance.now();if(l.current===void 0){b!=null&&(l.current={value:b,tsMs:w});return}b??(b=l.current.value);const{value:_,tsMs:S}=l.current,C=w-S;if(!isFinite(C)||C<=0)return;const j=b-_;if(!isFinite(j)||j<0){v();return}if(l.current={value:b,tsMs:w},!p.current&&j>0){if(f.current+=1,!d.current){d.current={value:b,tsMs:w};return}if(f.current{const E=j/C*1e3;if(T===void 0)return E>0?E:T;const $=-Math.expm1(-C/o);return T*(1-$)+E*$})},[i,v,o]),y=m.useRef();return m.useEffect(()=>{if(y.current!==void 0&&(clearTimeout(y.current),y.current=void 0),x(e),n!==void 0){let b=function(){y.current=setTimeout(()=>{x(),b()},n)};b()}return()=>{y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)}},[n,x,e]),{ema:a,reset:v}}function Bg(e,t=ooe){return Ug(e,t).ema??0}const H$=["turbine","gossip","tpu","repair","metrics"],aoe={Ingress:{turbine:64e6/8,gossip:1e9/8,tpu:1e8/8,repair:1e6/8,metrics:1e4/8,Total:118901e4/8},Egress:{turbine:1e9/8,gossip:1e9/8,tpu:1e6/8,repair:1e6/8,metrics:1e4/8,Total:205001e4/8}};function soe(e){return e?"Unhealthy":"Healthy"}function EBe(){const e=Hn("(max-width: 450px)"),t=Hn("(max-width: 390px)"),n=ABe(),r="Health Pane",i=Te(dl.healthPane,{[dl.narrow]:t});return e&&n.length>1?u.jsx(zg,{className:dl.popover,content:u.jsx(W,{direction:"column",gap:"8px",children:n.map(o=>u.jsx(loe,{...o},o.title))}),children:u.jsx("button",{"aria-label":r,className:Te(i,dl.vertical),children:n.map(o=>u.jsx(uoe,{...o,isStacked:!0},o.title))})}):u.jsx("div",{"aria-label":r,className:i,children:n.map(o=>u.jsx(uoe,{...o},o.title))})}function loe({title:e,description:t,isAlerting:n}){return u.jsxs(W,{direction:"column",gap:"4px",children:[u.jsxs(W,{gap:"5px",children:[u.jsx(Z,{className:dl.title,children:e}),u.jsx(Z,{className:Te(dl.status,{[dl.alerting]:n}),children:soe(n)})]}),u.jsx("div",{className:dl.content,children:u.jsx(Z,{children:t})})]})}function uoe({title:e,description:t,Icon:n,isAlerting:r,isStacked:i=!1}){const o=`${e}: ${soe(r)}`,a=Te(dl.healthBox,{[dl.alerting]:r});return i?u.jsx("div",{"aria-label":o,className:Te(a,dl.stacked)}):u.jsx(zg,{className:dl.popover,content:u.jsx(loe,{title:e,description:t,isAlerting:r}),children:u.jsx("button",{"aria-label":o,className:a,children:u.jsx(n,{width:"75%"})})})}function NBe(){const e=J(DT),t=J(PT),n=J(Gy),r=e==="delinquent";return m.useMemo(()=>({title:"Vote Health",Icon:mBe,isAlerting:r,description:r?t==null||n==null?"Missing vote slot or turbine slot data.":`We haven't landed a vote since slot ${t} (${t-n}).`:"Our consensus votes are being received by other nodes normally."}),[r,t,n])}function $Be(){const e=J(LG);return m.useMemo(()=>{if(!e)return null;const t=e.status==="sleeping"?"sleeping and disconnected from":e.status==="disconnected"?`${e.status} from`:`${e.status} to`;return{title:"Bundle Health",Icon:gBe,isAlerting:e.status!=="connected"&&e.status!=="sleeping",description:`Currently ${t} ${e.name} - ${e.url} (${e.ip})`}},[e])}const coe={forceUpdateIntervalMs:void 0},MBe=xi?coe:{forceUpdateIntervalMs:1e3,initMinSamples:2,halfLifeMs:1e3},RBe=.5,doe=xi?coe:{halfLifeMs:1e3};function LBe(){const e=J(Gy),t=e==null,{ema:n}=Ug(xi?null:e,MBe),r=t||n!=null&&nxi?null:{title:"Turbine Health",Icon:vBe,isAlerting:l,description:l?t?"Missing turbine slot data.":"We are receiving little to no block data from other nodes over Turbine.":"Block data is arriving normally over Turbine."},[l,t])}const PBe=H$.indexOf("turbine"),OBe=H$.indexOf("repair"),zBe=12;function DBe(){const e=J(Gy),t=J(dp);return m.useMemo(()=>{if(xi)return null;const n=e==null||t==null||e-t>zBe;return{title:"Replay Health",Icon:yBe,isAlerting:n,description:n?e==null||t==null?"Missing turbine slot or processed slot data.":`Replay is ${e-t} behind the rest of the cluster.`:"Replay is keeping up with the cluster."}},[e,t])}function ABe(){const e=NBe(),t=$Be(),n=LBe(),r=DBe();return[e,t,n,r].filter(i=>i!=null)}function foe({isStartup:e}){const t=Hn("(max-width: 1218px)"),n=Hn("(max-width: 401px)"),r=Hn(`(max-width: ${Hte})`),{isNarrowScreen:i,blurBackground:o,showNav:a,showOnlyEpochBar:s}=Fg(),l=!a&&n,c="3px";return u.jsxs("div",{className:"sticky",style:{top:0,backgroundColor:"var(--color-background)",zIndex:Vf},children:[u.jsx(rBe,{}),u.jsxs(Mt,{px:"2",className:"app-width-container",children:[u.jsxs(W,{height:`${Sb}px`,align:"center",children:[u.jsxs(W,{className:Te({[pBe.navBackground]:a&&!s}),height:"100%",align:"center",gapX:l?c:`${ck}px`,pr:l?c:`${Wf}px`,ml:`${-fN}px`,pl:`${fN}px`,children:[!e&&i&&!a&&u.jsx(V$,{isLarge:!0}),u.jsx(YUe,{}),u.jsx(nBe,{})]}),u.jsxs(W,{position:"relative",gapX:l?c:`${uN}px`,height:"100%",flexGrow:"1",align:"center",justify:"between",pl:l?c:`${uN-Wf}px`,minWidth:"0",flexShrink:"100",children:[!e&&u.jsxs(W,{flexShrink:r?"1":"0",minWidth:"100px",children:[u.jsx(ZUe,{}),t?u.jsx(HUe,{}):u.jsx(VUe,{})]}),u.jsxs(W,{gap:i?"1":"3",justify:"end",align:"center",minWidth:"50px",flexGrow:"1",children:[u.jsx(TUe,{}),u.jsx(EBe,{}),u.jsxs(W,{gap:"1",direction:i?"column":"row",children:[u.jsx(FBe,{}),e?u.jsx(BBe,{}):u.jsx(UBe,{})]})]}),o&&u.jsx(ioe,{})]})]}),!e&&!i&&u.jsx("div",{style:{position:"relative"},children:u.jsx("div",{style:{position:"absolute",top:0,left:0},children:u.jsx(V$,{isFloating:!a})})})]})]})}function FBe(){return u.jsx(zg,{content:u.jsx(Z,{size:"2",wrap:"wrap",children:u.jsx("a",{href:"https://db-ip.com",children:"IP Geolocation by DB-IP"})}),children:u.jsx(Zie,{color:"var(--gray-11)"})})}function UBe(){const e=J(ol),t=Ee(W3),n=Ee(tee);return e?u.jsx(nl,{ref:n,variant:"ghost",color:"gray",onClick:()=>t(!0),children:u.jsx(Gie,{})}):null}function BBe(){const e=J(ol),t=Ee(W3),n=J(tee),r=J(dre),i=m.useCallback(()=>{if(!n||!r)return;const{bottom:o,left:a,width:s,height:l}=n.getBoundingClientRect();r.style.setProperty("--transform-origin",`${Math.round(a+s/2)}px ${Math.round(o-l/2)}px`),t(!1)},[r,n,t]);return e?u.jsx(nl,{variant:"ghost",color:"gray",onClick:i,children:u.jsx(B$,{color:"white"})}):null}const WBe="_logo-container_1po46_1",VBe="_hidden_1po46_30",hoe={logoContainer:WBe,hidden:VBe};function HBe(){const e=J(Gu),[t,n]=m.useState(!0);return e&&t&&n(!1),u.jsx(W,{className:Te(hoe.logoContainer,{[hoe.hidden]:!t}),children:u.jsx("img",{src:ree,alt:"fd"})})}const ZBe="_secondary-color_2x9jp_1",qBe="_ellipsis_2x9jp_5",GBe="_card_2x9jp_11",YBe="_sparkline-card_2x9jp_19",KBe="_snapshot-tile-title_2x9jp_25",XBe="_snapshot-tile-busy_2x9jp_31",JBe="_sparkline-container_2x9jp_36",QBe="_bars-card_2x9jp_54",eWe="_card-header_2x9jp_62",tWe="_title_2x9jp_68",nWe="_accounts-rate_2x9jp_74",rWe="_total_2x9jp_79",iWe="_throughput_2x9jp_84",oWe="_with-prefix_2x9jp_87",aWe="_reading-card_2x9jp_95",sWe="_read-path-container_2x9jp_96",lWe="_read-path_2x9jp_96",uWe="_decompressing-card_2x9jp_124",cWe="_decompressing-card-left_2x9jp_127",dWe="_decompressing-card-right_2x9jp_137",fWe="_inserting-card_2x9jp_146",lr={secondaryColor:ZBe,ellipsis:qBe,card:GBe,sparklineCard:YBe,snapshotTileTitle:KBe,snapshotTileBusy:XBe,sparklineContainer:JBe,barsCard:QBe,cardHeader:eWe,title:tWe,accountsRate:nWe,total:rWe,throughput:iWe,withPrefix:oWe,readingCard:aWe,readPathContainer:sWe,readPath:lWe,decompressingCard:uWe,decompressingCardLeft:cWe,decompressingCardRight:dWe,insertingCard:fWe},hWe="_busy_1fw9w_1",pWe={busy:hWe};function Xk({busy:e,className:t}){const n=e!==void 0?Math.trunc(e*100):void 0;return u.jsx(W,{gap:"1",align:"end",children:u.jsxs(Z,{className:t??pWe.busy,style:{color:`color-mix(in srgb, ${yN}, ${bN} ${n}%)`},children:[n??"-","%"]})})}function mWe(e){const t=new Set;let n=null,r=performance.now();function i(){const s=()=>{const l=performance.now();if(l-r>=e){const c=l-r;r=l,t.forEach(d=>d(l,c))}n=requestAnimationFrame(s)};n=requestAnimationFrame(s)}function o(){n!=null&&cancelAnimationFrame(n),n=null}function a(s){return t.add(s),n==null&&i(),()=>{t.delete(s),t.size||o()}}return{subscribeClock:a}}const Jk=2;function poe({isLive:e,tileCount:t,liveIdlePerTile:n,queryIdlePerTile:r}){var c;const i=m.useMemo(()=>new Array(t).fill(0),[t]),o=n==null?void 0:n.map(d=>d===-1?void 0:1-d),a=r==null?void 0:r.map(d=>{const f=d.filter(p=>p!==-1);if(f.length)return 1-rt.mean(f)}).filter(d=>d!==void 0),s=i.map((d,f)=>{const p=r==null?void 0:r.map(v=>1-v[f]).filter(v=>v!==void 0&&v<=1);if(p!=null&&p.length)return rt.mean(p)}),l=(c=e?o:s)==null?void 0:c.filter(d=>d!==void 0&&d<=1);return{avgBusy:l!=null&&l.length?rt.mean(l):void 0,aggQueryBusyPerTs:a,tileCountArr:i,liveBusyPerTile:o,busy:l}}function Z$(e){const t=m.useRef();return e!==void 0&&(t.current=e),e??t.current}const moe=[0,1],gWe=150,goe=3,q$=new Map;function voe(e,t,n){var i;const r=performance.now();for(e.push({value:n,ts:r});(((i=e[1])==null?void 0:i.ts)??0)+t{if(!(t!=null&&t.length))return;if(!vWe(t))return t;const w=performance.now(),_=n/(t.length-1),S=w-n;return t.map((C,j)=>({value:C,ts:S+j*_}))},[n,t]),{pxPerTick:p,width:v,windowMs:x}=m.useMemo(()=>{let w=n,_=i;const S=_/(w/s);return d||(w+=s*goe,_+=S*goe),{pxPerTick:S,width:_,windowMs:w}},[i,n,d,s]),y=m.useRef([{value:void 0,ts:performance.now()-x},{value:void 0,ts:performance.now()}]),b=m.useRef(!1);return m.useEffect(()=>{if(b.current||!(f!=null&&f.length))return;b.current=!0;const w=performance.now(),_=f[f.length-1].ts;y.current=f.map(({ts:S,value:C})=>({value:C,ts:w-(_-S)}))},[f]),m.useEffect(()=>{a||d||voe(y.current,x,e)},[d,x,a,e]),Qu(()=>{var _;if(a||d)return;const w=(_=y.current[y.current.length-1])==null?void 0:_.ts;w!==void 0&&performance.now()-w{function w(_,S){var $,D;const C=_.length;if(C===0){c([]);return}const j=S-x,T=v/x,E=new Array(C);for(let M=0;M({value:T,ts:_-(S-j)}));w(C,_)}else{q$.has(s)||q$.set(s,mWe(s));const _=q$.get(s);if(_)return _.subscribeClock(S=>{w(y.current,S)})}},[r,f,d,s,v,x]),{scaledDataPoints:l,range:moe,pxPerTick:p,chartTickMs:s,isLive:!d}}const yWe="_range-label_14i5c_1",bWe="_top_14i5c_9",xWe="_bottom_14i5c_13",_We="_g-transform_14i5c_17",ux={rangeLabel:yWe,top:bWe,bottom:xWe,gTransform:_We},wWe=400*4,kWe=80;function cx({value:e,history:t,height:n=24,background:r,windowMs:i=wWe,strokeWidth:o=Jk,updateIntervalMs:a=kWe,tickMs:s}){const[l,{width:c}]=Ss(),{scaledDataPoints:d,range:f,pxPerTick:p,chartTickMs:v,isLive:x}=yoe({value:e,history:t,windowMs:i,height:n,width:c,updateIntervalMs:a,tickMs:s});return u.jsx(boe,{svgRef:l,scaledDataPoints:d,range:f,height:n,background:r,pxPerTick:p,tickMs:v,isLive:x,strokeWidth:o})}function boe({svgRef:e,scaledDataPoints:t,range:n=moe,showRange:r=!1,height:i,background:o=Tne,pxPerTick:a,tickMs:s,isLive:l,strokeWidth:c=Jk}){const d=m.useRef(null),f=m.useRef(null),p=m.useRef(null),v=m.useMemo(()=>{const y=n[1]-n[0],b=(i-c*2)/y,w=b*(n[1]-1);return[w+b,w]},[i,n,c]),x=m.useMemo(()=>t.map(({x:y,y:b})=>`${y},${b}`).join(" "),[t]);return m.useLayoutEffect(()=>{var b,w,_;const y=d.current;if(y)if(l){p.current||(p.current=y.animate([{transform:"translate3d(0px, 0, 0)"},{transform:"translate3d(0px, 0, 0)"}],{duration:s,easing:"linear",fill:"forwards"}),p.current.cancel()),p.current.finish(),(b=f.current)==null||b.setAttribute("points",x);const S=p.current.effect;S.setKeyframes([{transform:"translate3d(0px, 0, 0)"},{transform:`translate3d(${-a}px, 0, 0)`}]),S.updateTiming({duration:s,easing:"linear",fill:"forwards"}),p.current.currentTime=0,p.current.play()}else(w=f.current)==null||w.setAttribute("points",x),(_=p.current)==null||_.cancel()},[l,x,a,s]),u.jsxs(u.Fragment,{children:[u.jsxs("svg",{ref:e,xmlns:"http://www.w3.org/2000/svg",width:"100%",height:`${i}px`,fill:"none",style:{background:o},shapeRendering:"optimizeSpeed",children:[u.jsx("g",{ref:d,className:ux.gTransform,children:u.jsx("polyline",{ref:f,stroke:"url(#paint0_linear_2971_11300)",strokeWidth:c,strokeLinecap:"butt",vectorEffect:"non-scaling-stroke",pointerEvents:"none"})}),u.jsx("defs",{children:u.jsxs("linearGradient",{id:"paint0_linear_2971_11300",x1:"59.5",y1:v[0],x2:"59.5",y2:v[1],gradientUnits:"userSpaceOnUse",children:[u.jsx("stop",{stopColor:yN}),u.jsx("stop",{offset:"1",stopColor:bN})]})})]}),r&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:Te(ux.rangeLabel,ux.top),children:[Math.round(n[1]*100),"%"]}),u.jsxs("div",{className:Te(ux.rangeLabel,ux.bottom),children:[Math.round(n[0]*100),"%"]})]})]})}const Qk=15,xoe=Qk*6+1,_oe=Qk*15+1,SWe=6e3,CWe=50;function G$({title:e,tileType:t,isComplete:n}){const r=J(Nb),i=J(qze),{avgBusy:o}=poe({isLive:!0,tileCount:r[t],liveIdlePerTile:i==null?void 0:i[t]}),a=Z$(o),{scaledDataPoints:s,range:l,pxPerTick:c,chartTickMs:d,isLive:f}=yoe({value:a,windowMs:SWe,height:xoe,width:_oe,updateIntervalMs:CWe,stopShifting:n});return u.jsxs(Ey,{className:Te(lr.card,lr.sparklineCard),children:[u.jsxs(W,{justify:"between",align:"center",children:[u.jsx(Z,{className:lr.snapshotTileTitle,children:e}),u.jsx(Xk,{busy:a,className:lr.snapshotTileBusy})]}),u.jsx(W,{className:lr.sparklineContainer,style:{alignSelf:"center",width:`${_oe}px`,backgroundSize:`${Qk}px ${Qk}px`},children:u.jsx(boe,{scaledDataPoints:s,range:l,showRange:!0,height:xoe,background:"transparent",tickMs:d,pxPerTick:c,isLive:f})})]})}const jWe="_bars_1d34t_1",TWe={bars:jWe},IWe=2;function Y$({value:e,max:t,barWidth:n=IWe}){const r=!t||!e?0:rt.clamp(e/t,0,1);return u.jsx("div",{className:TWe.bars,style:{"--bar-width":`${n}px`,"--bar-gap":`${n*1.5}px`,"--pct":r}})}function woe(e,t,n){const r=performance.now(),i=[...e,[t,r]];for(;i.length>2&&i[0]&&i[0][1]<=r-n;)i.shift();return i}function koe(e,t=500){const[n,r]=m.useState([]);m.useEffect(()=>{e!=null&&r(o=>woe(o,e,t))},[e,t]),Qu(()=>{r(o=>{const a=performance.now(),s=o[o.length-1];return s&&s[1]{r([])},[]);return{valuePerSecond:m.useMemo(()=>{if(!(n.length<=1))return 1e3*(n[n.length-1][0]-n[0][0])/(n[n.length-1][1]-n[0][1])},[n]),reset:i}}const EWe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"}));function K$({headerContent:e,footer:t,throughput:n,containerClassName:r,maxThroughput:i}){return u.jsxs(Ey,{className:Te(lr.card,lr.barsCard,r),children:[u.jsx(W,{justify:"between",align:"center",wrap:"wrap",gapX:"4",className:lr.cardHeader,children:e}),u.jsx(Y$,{value:n??0,max:i}),t]})}function e6({value:e,unit:t}){return u.jsxs(u.Fragment,{children:[u.jsx(Z,{children:e??"--"}),t&&u.jsxs(u.Fragment,{children:[" ",u.jsx(Z,{className:lr.secondaryColor,children:t})]})]})}function X$({text:e}){return u.jsx(Z,{className:Te(lr.title,lr.ellipsis),children:e})}function NWe({cumulativeAccounts:e}){const t=J(Gu),{valuePerSecond:n,reset:r}=koe(e,1e3);m.useEffect(()=>{r()},[t,r]);const i=m.useMemo(()=>{if(e!=null&&n==null)return"0";if(n!=null)return D$.format(n)},[n,e]);return u.jsx("div",{className:lr.accountsRate,children:u.jsx(e6,{value:i,unit:"Accounts / sec"})})}function J$({completed:e,total:t}){return u.jsxs("div",{className:lr.total,children:[u.jsx(e6,{value:e==null?void 0:e.value,unit:e==null?void 0:e.unit}),u.jsx(Z,{children:" / "}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit})]})}function t6({prefix:e,throughput:t}){return u.jsxs("div",{className:Te(lr.throughput,{[lr.withPrefix]:!!e}),children:[e&&u.jsxs(Z,{className:lr.secondaryColor,children:[e," "]}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit}),u.jsx(Z,{className:lr.secondaryColor,children:"/sec"})]})}function $We({readPath:e}){return u.jsxs(W,{align:"center",gap:"10px",wrap:"nowrap",className:lr.readPathContainer,children:[u.jsx(EWe,{}),u.jsx(Z,{className:Te(lr.readPath,lr.ellipsis),children:e})]})}function MWe({compressedCompleted:e,compressedTotal:t,readPath:n}){const r=J(Gu),{ema:i,reset:o}=Ug(e);m.useEffect(()=>{o()},[r,o]);const a=i==null?void 0:Da(i),s=e==null?void 0:Da(e),l=t==null?void 0:Da(t),c=m.useMemo(()=>u.jsx($We,{readPath:n}),[n]);return u.jsx(K$,{containerClassName:lr.readingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(X$,{text:"Reading"}),u.jsx(J$,{completed:s,total:l}),u.jsx(t6,{throughput:a})]}),footer:c,throughput:i,maxThroughput:8e8})}function RWe({compressedCompleted:e,decompressedCompleted:t,compressedTotal:n}){const r=J(Gu),{ema:i,reset:o}=Ug(e),{ema:a,reset:s}=Ug(t);m.useEffect(()=>{o(),s()},[r,o,s]);const l=i==null?void 0:Da(i),c=a==null?void 0:Da(a),d=e==null?void 0:Da(e),f=n==null?void 0:Da(n);return u.jsx(K$,{containerClassName:lr.decompressingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsxs(W,{flexGrow:"1",justify:"between",align:"center",className:lr.decompressingCardLeft,children:[u.jsx(X$,{text:"Decompressing"}),u.jsx(J$,{completed:d,total:f})]}),u.jsxs(W,{gapX:"30px",justify:"end",flexGrow:"1",className:lr.decompressingCardRight,children:[u.jsx(t6,{prefix:"Input",throughput:l}),u.jsx(t6,{prefix:"Output",throughput:c})]})]}),throughput:i,maxThroughput:8e8})}function LWe({decompressedThroughput:e,decompressedCompleted:t,decompressedTotal:n,cumulativeAccounts:r}){const i=e==null?void 0:Da(e),o=t==null?void 0:Da(t),a=n==null?void 0:Da(n);return u.jsx(K$,{containerClassName:lr.insertingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(X$,{text:"Inserting"}),u.jsx(NWe,{cumulativeAccounts:r}),u.jsx(J$,{completed:o,total:a}),u.jsx(t6,{throughput:i})]}),throughput:e,maxThroughput:35e8})}const PWe="_secondary-text_1iskf_1",OWe="_phase-header-container_1iskf_5",zWe="_phase-name_1iskf_11",DWe="_no-wrap_1iskf_15",AWe="_complete-pct-container_1iskf_19",ih={secondaryText:PWe,phaseHeaderContainer:OWe,phaseName:zWe,noWrap:DWe,completePctContainer:AWe},FWe="_progress-bar_drgbz_1",UWe="_current_drgbz_14",BWe="_progressing-bar_drgbz_21",WWe="_gossip_drgbz_33",VWe="_complete_drgbz_35",HWe="_full-snapshot_drgbz_46",ZWe="_incr-snapshot_drgbz_59",qWe="_catching-up_drgbz_72",GWe="_supermajority_drgbz_85",bd={progressBar:FWe,current:UWe,progressingBar:BWe,gossip:WWe,complete:VWe,fullSnapshot:HWe,incrSnapshot:ZWe,catchingUp:qWe,supermajority:GWe},YWe={[wn.joining_gossip]:bd.gossip,[wn.loading_full_snapshot]:bd.fullSnapshot,[wn.loading_incremental_snapshot]:bd.incrSnapshot,[wn.catching_up]:bd.catchingUp,[wn.waiting_for_supermajority]:bd.supermajority,[wn.running]:""};function KWe({phaseCompleteFraction:e}){const[t,n]=m.useState(0);m.useEffect(()=>{n(rt.clamp(e,0,1))},[e]);const r=J(Gu),i=J(B3),o=J(eee);return u.jsx(W,{className:bd.progressBar,children:i.map(({phase:a,completionFraction:s})=>{if(a===wn.running)return;const l=a===r,c=`${s*100}%`;return u.jsx("div",{className:Te(YWe[a],{[bd.current]:l,[bd.complete]:o.has(a)}),style:{width:c},children:l&&u.jsx("div",{className:bd.progressingBar,style:{transform:`scaleX(${t})`}})},a)})})}const XWe={[wn.joining_gossip]:"Joining Gossip",[wn.loading_full_snapshot]:"Loading Full Snapshot",[wn.loading_incremental_snapshot]:"Loading Incremental Snapshot",[wn.catching_up]:"Catching Up",[wn.waiting_for_supermajority]:"Waiting for Supermajority",[wn.running]:"Running"};function JWe(){const e=Uie(1e3);return u.jsx(Z,{children:e==null?"--":Mze(e)})}function Q$({phaseCompleteFraction:e,overallCompleteFraction:t,remainingSeconds:n,showLoadingIcon:r=!1}){const i=J(Gu),[o,a]=m.useState(),s=Ba(d=>{const f=d==null?void 0:Math.max(Math.round(d),0);a(f)},1e3);m.useEffect(()=>{s(n)},[s,n]);const l=m.useMemo(()=>{if(o!=null)return kp(fn.fromObject({seconds:o}).rescale(),{showOnlyTwoSignificantUnits:!0})},[o]),c=rt.clamp(Math.round(t*100),0,100);return i?u.jsxs(Mt,{flexShrink:"0",className:ih.phaseHeaderContainer,children:[u.jsxs(W,{justify:"between",mt:"7",mb:"2",gapX:"8px",wrap:"wrap",children:[u.jsxs("span",{className:ih.noWrap,children:[u.jsx(Z,{className:ih.secondaryText,children:"Elapsed "}),u.jsx(JWe,{})]}),u.jsxs("span",{children:[u.jsxs(Z,{className:ih.phaseName,children:[XWe[i],"... "]}),l&&u.jsxs("span",{className:ih.noWrap,children:[u.jsx(Z,{className:ih.secondaryText,children:"Remaining "}),u.jsxs(Z,{style:{display:"inline-block",minWidth:"120px"},children:["~",l]})]})]}),u.jsxs(Z,{className:ih.completePctContainer,children:[u.jsx(Z,{className:ih.secondaryText,children:"Complete "}),c,"%",r&&u.jsx(Iy,{size:"3",ml:"8px"})]})]}),u.jsx(KWe,{phaseCompleteFraction:e})]}):null}function Soe(e){const t=J(QQ),n=J(B3),r=J(eee);return m.useMemo(()=>t?rt.sum(n.map(i=>i===t?i.completionFraction*rt.clamp(e,0,1):r.has(i.phase)?i.completionFraction:0)):0,[r,e,t,n])}const QWe="5",Coe="26px";function eVe(e){const{loading_full_snapshot_total_bytes_compressed:t,loading_full_snapshot_read_bytes_compressed:n,loading_full_snapshot_decompress_bytes_compressed:r,loading_full_snapshot_decompress_bytes_decompressed:i,loading_full_snapshot_insert_bytes_decompressed:o,loading_full_snapshot_read_path:a,loading_full_snapshot_insert_accounts:s,loading_incremental_snapshot_total_bytes_compressed:l,loading_incremental_snapshot_read_bytes_compressed:c,loading_incremental_snapshot_decompress_bytes_compressed:d,loading_incremental_snapshot_decompress_bytes_decompressed:f,loading_incremental_snapshot_insert_bytes_decompressed:p,loading_incremental_snapshot_read_path:v,loading_incremental_snapshot_insert_accounts:x}=e,y=e.phase===wn.loading_full_snapshot||!l?{totalCompressedBytes:t,readCompressedBytes:n,readPath:a,decompressCompressedBytes:r,decompressDecompressedBytes:i,insertDecompressedBytes:o,insertAccounts:s}:{totalCompressedBytes:l,readCompressedBytes:c,readPath:v,decompressCompressedBytes:d,decompressDecompressedBytes:f,insertDecompressedBytes:p,insertAccounts:x},b=y.insertDecompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.insertDecompressedBytes*(y.decompressCompressedBytes/y.decompressDecompressedBytes):0,w=y.totalCompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.totalCompressedBytes*y.decompressDecompressedBytes/y.decompressCompressedBytes:0;return{...y,insertCompressedBytes:b,totalDecompressedBytes:w}}function tVe(){const e=J(Hl),t=(e==null?void 0:e.phase)===wn.loading_incremental_snapshot,n=Hn("(max-width: 560px)"),r=n?"wrap":"nowrap",i=n?Coe:QWe,o=e?eVe(e):void 0,{ema:a,reset:s}=Ug(o==null?void 0:o.insertDecompressedBytes);m.useEffect(()=>{s()},[e==null?void 0:e.phase,s]);const{totalCompressedBytes:l,readCompressedBytes:c,readPath:d,decompressCompressedBytes:f,decompressDecompressedBytes:p,insertDecompressedBytes:v,insertAccounts:x,insertCompressedBytes:y,totalDecompressedBytes:b}=o??{},w=a==null||b==null||v==null?void 0:Math.round((b-v)/a),_=Math.min(l&&y?y/l:0,1),S=Soe(_);if(!(!e||!o))return u.jsxs(u.Fragment,{children:[u.jsx(Q$,{phaseCompleteFraction:_,overallCompleteFraction:S,remainingSeconds:w}),u.jsxs(W,{mt:"52px",direction:"column",gap:Coe,className:yd.startupContentIndentation,children:[u.jsxs(W,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(MWe,{compressedCompleted:c,compressedTotal:l,readPath:d}),u.jsx(G$,{title:"CPU Utilization",tileType:"snapld",isComplete:t&&!!c&&c===l})]}),u.jsxs(W,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(RWe,{compressedCompleted:f,decompressedCompleted:p,compressedTotal:l}),u.jsx(G$,{title:"CPU Utilization",tileType:"snapdc",isComplete:t&&!!f&&f===l})]}),u.jsxs(W,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(LWe,{decompressedThroughput:a,decompressedCompleted:v,decompressedTotal:b,cumulativeAccounts:x}),u.jsx(G$,{title:"CPU Utilization",tileType:"snapin",isComplete:t&&!!y&&y===l})]})]})]})}const nVe=!0,Hi="u-",rVe="uplot",iVe=Hi+"hz",oVe=Hi+"vt",aVe=Hi+"title",sVe=Hi+"wrap",lVe=Hi+"under",uVe=Hi+"over",cVe=Hi+"axis",Ep=Hi+"off",dVe=Hi+"select",fVe=Hi+"cursor-x",hVe=Hi+"cursor-y",pVe=Hi+"cursor-pt",mVe=Hi+"legend",gVe=Hi+"live",vVe=Hi+"inline",yVe=Hi+"series",bVe=Hi+"marker",joe=Hi+"label",xVe=Hi+"value",dx="width",fx="height",hx="top",Toe="bottom",Wg="left",eM="right",tM="#000",Ioe=tM+"0",nM="mousemove",Eoe="mousedown",rM="mouseup",Noe="mouseenter",$oe="mouseleave",Moe="dblclick",_Ve="resize",wVe="scroll",Roe="change",n6="dppxchange",iM="--",Vg=typeof window<"u",oM=Vg?document:null,Hg=Vg?window:null,kVe=Vg?navigator:null;let Fn,r6;function aM(){let e=devicePixelRatio;Fn!=e&&(Fn=e,r6&&uM(Roe,r6,aM),r6=matchMedia(`(min-resolution: ${Fn-.001}dppx) and (max-resolution: ${Fn+.001}dppx)`),Np(Roe,r6,aM),Hg.dispatchEvent(new CustomEvent(n6)))}function Cs(e,t){if(t!=null){let n=e.classList;!n.contains(t)&&n.add(t)}}function sM(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function Dr(e,t,n){e.style[t]=n+"px"}function ou(e,t,n,r){let i=oM.createElement(e);return t!=null&&Cs(i,t),n==null||n.insertBefore(i,r),i}function fl(e,t){return ou("div",e,t)}const Loe=new WeakMap;function ec(e,t,n,r,i){let o="translate("+t+"px,"+n+"px)",a=Loe.get(e);o!=a&&(e.style.transform=o,Loe.set(e,o),t<0||n<0||t>r||n>i?Cs(e,Ep):sM(e,Ep))}const Poe=new WeakMap;function Ooe(e,t,n){let r=t+n,i=Poe.get(e);r!=i&&(Poe.set(e,r),e.style.background=t,e.style.borderColor=n)}const zoe=new WeakMap;function Doe(e,t,n,r){let i=t+""+n,o=zoe.get(e);i!=o&&(zoe.set(e,i),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=r?-t/2+"px":0,e.style.marginTop=r?-n/2+"px":0)}const lM={passive:!0},SVe={...lM,capture:!0};function Np(e,t,n,r){t.addEventListener(e,n,r?SVe:lM)}function uM(e,t,n,r){t.removeEventListener(e,n,lM)}Vg&&aM();function au(e,t,n,r){let i;n=n||0,r=r||t.length-1;let o=r<=2147483647;for(;r-n>1;)i=o?n+r>>1:Ts((n+r)/2),t[i]{let i=-1,o=-1;for(let a=n;a<=r;a++)if(e(t[a])){i=a;break}for(let a=r;a>=n;a--)if(e(t[a])){o=a;break}return[i,o]}}const Foe=e=>e!=null,Uoe=e=>e!=null&&e>0,i6=Aoe(Foe),CVe=Aoe(Uoe);function jVe(e,t,n,r=0,i=!1){let o=i?CVe:i6,a=i?Uoe:Foe;[t,n]=o(e,t,n);let s=e[t],l=e[t];if(t>-1)if(r==1)s=e[t],l=e[n];else if(r==-1)s=e[n],l=e[t];else for(let c=t;c<=n;c++){let d=e[c];a(d)&&(dl&&(l=d))}return[s??br,l??-br]}function o6(e,t,n,r){let i=Voe(e),o=Voe(t);e==t&&(i==-1?(e*=n,t/=n):(e/=n,t*=n));let a=n==10?xd:Hoe,s=i==1?Ts:hl,l=o==1?hl:Ts,c=s(a(Zi(e))),d=l(a(Zi(t))),f=Zg(n,c),p=Zg(n,d);return n==10&&(c<0&&(f=xr(f,-c)),d<0&&(p=xr(p,-d))),r||n==2?(e=f*i,t=p*o):(e=Joe(e,f),t=l6(t,p)),[e,t]}function cM(e,t,n,r){let i=o6(e,t,n,r);return e==0&&(i[0]=0),t==0&&(i[1]=0),i}const dM=.1,Boe={mode:3,pad:dM},px={pad:0,soft:null,mode:0},TVe={min:px,max:px};function a6(e,t,n,r){return u6(n)?Woe(e,t,n):(px.pad=n,px.soft=r?0:null,px.mode=r?3:0,Woe(e,t,TVe))}function Rn(e,t){return e??t}function IVe(e,t,n){for(t=Rn(t,0),n=Rn(n,e.length-1);t<=n;){if(e[t]!=null)return!0;t++}return!1}function Woe(e,t,n){let r=n.min,i=n.max,o=Rn(r.pad,0),a=Rn(i.pad,0),s=Rn(r.hard,-br),l=Rn(i.hard,br),c=Rn(r.soft,br),d=Rn(i.soft,-br),f=Rn(r.mode,0),p=Rn(i.mode,0),v=t-e,x=xd(v),y=pa(Zi(e),Zi(t)),b=xd(y),w=Zi(b-x);(v<1e-24||w>10)&&(v=0,(e==0||t==0)&&(v=1e-24,f==2&&c!=br&&(o=0),p==2&&d!=-br&&(a=0)));let _=v||y||1e3,S=xd(_),C=Zg(10,Ts(S)),j=_*(v==0?e==0?.1:1:o),T=xr(Joe(e-j,C/10),24),E=e>=c&&(f==1||f==3&&T<=c||f==2&&T>=c)?c:br,$=pa(s,T=E?E:su(E,T)),D=_*(v==0?t==0?.1:1:a),M=xr(l6(t+D,C/10),24),O=t<=d&&(p==1||p==3&&M>=d||p==2&&M<=d)?d:-br,te=su(l,M>O&&t<=O?O:pa(O,M));return $==te&&$==0&&(te=100),[$,te]}const EVe=new Intl.NumberFormat(Vg?kVe.language:"en-US"),fM=e=>EVe.format(e),js=Math,s6=js.PI,Zi=js.abs,Ts=js.floor,qi=js.round,hl=js.ceil,su=js.min,pa=js.max,Zg=js.pow,Voe=js.sign,xd=js.log10,Hoe=js.log2,NVe=(e,t=1)=>js.sinh(e)*t,hM=(e,t=1)=>js.asinh(e/t),br=1/0;function Zoe(e){return(xd((e^e>>31)-(e>>31))|0)+1}function pM(e,t,n){return su(pa(e,t),n)}function qoe(e){return typeof e=="function"}function bn(e){return qoe(e)?e:()=>e}const $Ve=()=>{},Goe=e=>e,Yoe=(e,t)=>t,MVe=e=>null,Koe=e=>!0,Xoe=(e,t)=>e==t,RVe=/\.\d*?(?=9{6,}|0{6,})/gm,$p=e=>{if(eae(e)||oh.has(e))return e;const t=`${e}`,n=t.match(RVe);if(n==null)return e;let r=n[0].length-1;if(t.indexOf("e-")!=-1){let[i,o]=t.split("e");return+`${$p(i)}e${o}`}return xr(e,r)};function Mp(e,t){return $p(xr($p(e/t))*t)}function l6(e,t){return $p(hl($p(e/t))*t)}function Joe(e,t){return $p(Ts($p(e/t))*t)}function xr(e,t=0){if(eae(e))return e;let n=10**t,r=e*n*(1+Number.EPSILON);return qi(r)/n}const oh=new Map;function Qoe(e){return((""+e).split(".")[1]||"").length}function mx(e,t,n,r){let i=[],o=r.map(Qoe);for(let a=t;a=0?0:s)+(a>=o[c]?0:o[c]),p=e==10?d:xr(d,f);i.push(p),oh.set(p,f)}}return i}const gx={},mM=[],qg=[null,null],ah=Array.isArray,eae=Number.isInteger,LVe=e=>e===void 0;function tae(e){return typeof e=="string"}function u6(e){let t=!1;if(e!=null){let n=e.constructor;t=n==null||n==Object}return t}function PVe(e){return e!=null&&typeof e=="object"}const OVe=Object.getPrototypeOf(Uint8Array),nae="__proto__";function Gg(e,t=u6){let n;if(ah(e)){let r=e.find(i=>i!=null);if(ah(r)||t(r)){n=Array(e.length);for(let i=0;io){for(i=a-1;i>=0&&e[i]==null;)e[i--]=null;for(i=a+1;ia-s)],i=r[0].length,o=new Map;for(let a=0;a"u"?e=>Promise.resolve().then(e):queueMicrotask;function WVe(e){let t=e[0],n=t.length,r=Array(n);for(let o=0;ot[o]-t[a]);let i=[];for(let o=0;o=r&&e[i]==null;)i--;if(i<=r)return!0;const o=pa(1,Ts((i-r+1)/t));for(let a=e[r],s=r+o;s<=i;s+=o){const l=e[s];if(l!=null){if(l<=a)return!1;a=l}}return!0}const rae=["January","February","March","April","May","June","July","August","September","October","November","December"],iae=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function oae(e){return e.slice(0,3)}const ZVe=iae.map(oae),qVe=rae.map(oae),GVe={MMMM:rae,MMM:qVe,WWWW:iae,WWW:ZVe};function vx(e){return(e<10?"0":"")+e}function YVe(e){return(e<10?"00":e<100?"0":"")+e}const KVe={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>vx(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>vx(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>vx(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return t==0?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>vx(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>vx(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>YVe(e.getMilliseconds())};function gM(e,t){t=t||GVe;let n=[],r=/\{([a-z]+)\}|[^{]+/gi,i;for(;i=r.exec(e);)n.push(i[0][0]=="{"?KVe[i[1]]:i[0]);return o=>{let a="";for(let s=0;se%1==0,c6=[1,2,2.5,5],QVe=mx(10,-32,0,c6),sae=mx(10,0,32,c6),eHe=sae.filter(aae),Rp=QVe.concat(sae),vM=` +`,lae="{YYYY}",uae=vM+lae,cae="{M}/{D}",yx=vM+cae,d6=yx+"/{YY}",dae="{aa}",tHe="{h}:{mm}",Yg=tHe+dae,fae=vM+Yg,hae=":{ss}",Zn=null;function pae(e){let t=e*1e3,n=t*60,r=n*60,i=r*24,o=i*30,a=i*365,s=(e==1?mx(10,0,3,c6).filter(aae):mx(10,-3,0,c6)).concat([t,t*5,t*10,t*15,t*30,n,n*5,n*10,n*15,n*30,r,r*2,r*3,r*4,r*6,r*8,r*12,i,i*2,i*3,i*4,i*5,i*6,i*7,i*8,i*9,i*10,i*15,o,o*2,o*3,o*4,o*6,a,a*2,a*5,a*10,a*25,a*50,a*100]);const l=[[a,lae,Zn,Zn,Zn,Zn,Zn,Zn,1],[i*28,"{MMM}",uae,Zn,Zn,Zn,Zn,Zn,1],[i,cae,uae,Zn,Zn,Zn,Zn,Zn,1],[r,"{h}"+dae,d6,Zn,yx,Zn,Zn,Zn,1],[n,Yg,d6,Zn,yx,Zn,Zn,Zn,1],[t,hae,d6+" "+Yg,Zn,yx+" "+Yg,Zn,fae,Zn,1],[e,hae+".{fff}",d6+" "+Yg,Zn,yx+" "+Yg,Zn,fae,Zn,1]];function c(d){return(f,p,v,x,y,b)=>{let w=[],_=y>=a,S=y>=o&&y=i?i:y,D=Ts(v)-Ts(j),M=E+D+l6(j-E,$);w.push(M);let O=d(M),te=O.getHours()+O.getMinutes()/n+O.getSeconds()/r,q=y/r,P=f.axes[p]._space,X=b/P;for(;M=xr(M+y,e==1?0:3),!(M>x);)if(q>1){let A=Ts(xr(te+q,6))%24,Y=d(M).getHours()-A;Y>1&&(Y=-1),M-=Y*r,te=(te+q)%24;let F=w[w.length-1];xr((M-F)/y,3)*X>=.7&&w.push(M)}else w.push(M)}return w}}return[s,l,c]}const[nHe,rHe,iHe]=pae(1),[oHe,aHe,sHe]=pae(.001);mx(2,-53,53,[1]);function mae(e,t){return e.map(n=>n.map((r,i)=>i==0||i==8||r==null?r:t(i==1||n[8]==0?r:n[1]+r)))}function gae(e,t){return(n,r,i,o,a)=>{let s=t.find(x=>a>=x[0])||t[t.length-1],l,c,d,f,p,v;return r.map(x=>{let y=e(x),b=y.getFullYear(),w=y.getMonth(),_=y.getDate(),S=y.getHours(),C=y.getMinutes(),j=y.getSeconds(),T=b!=l&&s[2]||w!=c&&s[3]||_!=d&&s[4]||S!=f&&s[5]||C!=p&&s[6]||j!=v&&s[7]||s[1];return l=b,c=w,d=_,f=S,p=C,v=j,T(y)})}}function lHe(e,t){let n=gM(t);return(r,i,o,a,s)=>i.map(l=>n(e(l)))}function yM(e,t,n){return new Date(e,t,n)}function vae(e,t){return t(e)}const uHe="{YYYY}-{MM}-{DD} {h}:{mm}{aa}";function yae(e,t){return(n,r,i,o)=>o==null?iM:t(e(r))}function cHe(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null}function dHe(e,t){return e.series[t].fill(e,t)}const fHe={show:!0,live:!0,isolate:!1,mount:$Ve,markers:{show:!0,width:2,stroke:cHe,fill:dHe,dash:"solid"},idx:null,idxs:null,values:[]};function hHe(e,t){let n=e.cursor.points,r=fl(),i=n.size(e,t);Dr(r,dx,i),Dr(r,fx,i);let o=i/-2;Dr(r,"marginLeft",o),Dr(r,"marginTop",o);let a=n.width(e,t,i);return a&&Dr(r,"borderWidth",a),r}function pHe(e,t){let n=e.series[t].points;return n._fill||n._stroke}function mHe(e,t){let n=e.series[t].points;return n._stroke||n._fill}function gHe(e,t){return e.series[t].points.size}const bM=[0,0];function vHe(e,t,n){return bM[0]=t,bM[1]=n,bM}function f6(e,t,n,r=!0){return i=>{i.button==0&&(!r||i.target==t)&&n(i)}}function xM(e,t,n,r=!0){return i=>{(!r||i.target==t)&&n(i)}}const yHe={show:!0,x:!0,y:!0,lock:!1,move:vHe,points:{one:!1,show:hHe,size:gHe,width:0,stroke:mHe,fill:pHe},bind:{mousedown:f6,mouseup:f6,click:f6,dblclick:f6,mousemove:xM,mouseleave:xM,mouseenter:xM},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(e,t,n,r,i)=>r-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},bae={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},_M=Li({},bae,{filter:Yoe}),xae=Li({},_M,{size:10}),_ae=Li({},bae,{show:!1}),wM='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',wae="bold "+wM,kae=1.5,Sae={show:!0,scale:"x",stroke:tM,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:wae,side:2,grid:_M,ticks:xae,border:_ae,font:wM,lineGap:kae,rotate:0},bHe="Value",xHe="Time",Cae={show:!0,scale:"x",auto:!1,sorted:1,min:br,max:-br,idxs:[]};function _He(e,t,n,r,i){return t.map(o=>o==null?"":fM(o))}function wHe(e,t,n,r,i,o,a){let s=[],l=oh.get(i)||0;n=a?n:xr(l6(n,i),l);for(let c=n;c<=r;c=xr(c+i,l))s.push(Object.is(c,-0)?0:c);return s}function kM(e,t,n,r,i,o,a){const s=[],l=e.scales[e.axes[t].scale].log,c=l==10?xd:Hoe,d=Ts(c(n));i=Zg(l,d),l==10&&(i=Rp[au(i,Rp)]);let f=n,p=i*l;l==10&&(p=Rp[au(p,Rp)]);do s.push(f),f=f+i,l==10&&!oh.has(f)&&(f=xr(f,oh.get(i))),f>=p&&(i=f,p=i*l,l==10&&(p=Rp[au(p,Rp)]));while(f<=r);return s}function kHe(e,t,n,r,i,o,a){let s=e.scales[e.axes[t].scale].asinh,l=r>s?kM(e,t,pa(s,n),r,i):[s],c=r>=0&&n<=0?[0]:[];return(n<-s?kM(e,t,pa(s,-r),-n,i):[s]).reverse().map(d=>-d).concat(c,l)}const jae=/./,SHe=/[12357]/,CHe=/[125]/,Tae=/1/,SM=(e,t,n,r)=>e.map((i,o)=>t==4&&i==0||o%r==0&&n.test(i.toExponential()[i<0?1:0])?i:null);function jHe(e,t,n,r,i){let o=e.axes[n],a=o.scale,s=e.scales[a],l=e.valToPos,c=o._space,d=l(10,a),f=l(9,a)-d>=c?jae:l(7,a)-d>=c?SHe:l(5,a)-d>=c?CHe:Tae;if(f==Tae){let p=Zi(l(1,a)-d);if(pi,$ae={show:!0,auto:!0,sorted:0,gaps:Nae,alpha:1,facets:[Li({},Eae,{scale:"x"}),Li({},Eae,{scale:"y"})]},Mae={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:Nae,alpha:1,points:{show:NHe,filter:null},values:null,min:br,max:-br,idxs:[],path:null,clip:null};function $He(e,t,n,r,i){return n/10}const Rae={time:nVe,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},MHe=Li({},Rae,{time:!1,ori:1}),Lae={};function Pae(e,t){let n=Lae[e];return n||(n={key:e,plots:[],sub(r){n.plots.push(r)},unsub(r){n.plots=n.plots.filter(i=>i!=r)},pub(r,i,o,a,s,l,c){for(let d=0;d{let w=a.pxRound;const _=c.dir*(c.ori==0?1:-1),S=c.ori==0?Xg:Jg;let C,j;_==1?(C=n,j=r):(C=r,j=n);let T=w(f(s[C],c,y,v)),E=w(p(l[C],d,b,x)),$=w(f(s[j],c,y,v)),D=w(p(o==1?d.max:d.min,d,b,x)),M=new Path2D(i);return S(M,$,D),S(M,T,D),S(M,T,E),M})}function h6(e,t,n,r,i,o){let a=null;if(e.length>0){a=new Path2D;const s=t==0?g6:IM;let l=n;for(let f=0;fp[0]){let v=p[0]-l;v>0&&s(a,l,r,v,r+o),l=p[1]}}let c=n+i-l,d=10;c>0&&s(a,l,r-d/2,c,r+o+d)}return a}function LHe(e,t,n){let r=e[e.length-1];r&&r[0]==t?r[1]=n:e.push([t,n])}function TM(e,t,n,r,i,o,a){let s=[],l=e.length;for(let c=i==1?n:r;c>=n&&c<=r;c+=i)if(t[c]===null){let d=c,f=c;if(i==1)for(;++c<=r&&t[c]===null;)f=c;else for(;--c>=n&&t[c]===null;)f=c;let p=o(e[d]),v=f==d?p:o(e[f]),x=d-i;p=a<=0&&x>=0&&x=0&&y>=0&&y=p&&s.push([p,v])}return s}function Oae(e){return e==0?Goe:e==1?qi:t=>Mp(t,e)}function zae(e){let t=e==0?p6:m6,n=e==0?(i,o,a,s,l,c)=>{i.arcTo(o,a,s,l,c)}:(i,o,a,s,l,c)=>{i.arcTo(a,o,l,s,c)},r=e==0?(i,o,a,s,l)=>{i.rect(o,a,s,l)}:(i,o,a,s,l)=>{i.rect(a,o,l,s)};return(i,o,a,s,l,c=0,d=0)=>{c==0&&d==0?r(i,o,a,s,l):(c=su(c,s/2,l/2),d=su(d,s/2,l/2),t(i,o+c,a),n(i,o+s,a,o+s,a+l,c),n(i,o+s,a+l,o,a+l,d),n(i,o,a+l,o,a,d),n(i,o,a,o+s,a,c),i.closePath())}}const p6=(e,t,n)=>{e.moveTo(t,n)},m6=(e,t,n)=>{e.moveTo(n,t)},Xg=(e,t,n)=>{e.lineTo(t,n)},Jg=(e,t,n)=>{e.lineTo(n,t)},g6=zae(0),IM=zae(1),Dae=(e,t,n,r,i,o)=>{e.arc(t,n,r,i,o)},Aae=(e,t,n,r,i,o)=>{e.arc(n,t,r,i,o)},Fae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(t,n,r,i,o,a)},Uae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(n,t,i,r,a,o)};function Bae(e){return(t,n,r,i,o)=>Lp(t,n,(a,s,l,c,d,f,p,v,x,y,b)=>{let{pxRound:w,points:_}=a,S,C;c.ori==0?(S=p6,C=Dae):(S=m6,C=Aae);const j=xr(_.width*Fn,3);let T=(_.size-_.width)/2*Fn,E=xr(T*2,3),$=new Path2D,D=new Path2D,{left:M,top:O,width:te,height:q}=t.bbox;g6(D,M-E,O-E,te+E*2,q+E*2);const P=X=>{if(l[X]!=null){let A=w(f(s[X],c,y,v)),Y=w(p(l[X],d,b,x));S($,A+T,Y),C($,A,Y,T,0,s6*2)}};if(o)o.forEach(P);else for(let X=r;X<=i;X++)P(X);return{stroke:j>0?$:null,fill:$,clip:D,flags:Kg|CM}})}function Wae(e){return(t,n,r,i,o,a)=>{r!=i&&(o!=r&&a!=r&&e(t,n,r),o!=i&&a!=i&&e(t,n,i),e(t,n,a))}}const PHe=Wae(Xg),OHe=Wae(Jg);function Vae(e){const t=Rn(e==null?void 0:e.alignGaps,0);return(n,r,i,o)=>Lp(n,r,(a,s,l,c,d,f,p,v,x,y,b)=>{[i,o]=i6(l,i,o);let w=a.pxRound,_=te=>w(f(te,c,y,v)),S=te=>w(p(te,d,b,x)),C,j;c.ori==0?(C=Xg,j=PHe):(C=Jg,j=OHe);const T=c.dir*(c.ori==0?1:-1),E={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},$=E.stroke;let D=!1;if(o-i>=y*4){let te=B=>n.posToVal(B,c.key,!0),q=null,P=null,X,A,Y,F=_(s[T==1?i:o]),H=_(s[i]),ee=_(s[o]),ce=te(T==1?H+1:ee-1);for(let B=T==1?i:o;B>=i&&B<=o;B+=T){let ae=s[B],je=(T==1?aece)?F:_(ae),me=l[B];je==F?me!=null?(A=me,q==null?(C($,je,S(A)),X=q=P=A):AP&&(P=A)):me===null&&(D=!0):(q!=null&&j($,F,S(q),S(P),S(X),S(A)),me!=null?(A=me,C($,je,S(A)),q=P=X=A):(q=P=null,me===null&&(D=!0)),F=je,ce=te(F+T))}q!=null&&q!=P&&Y!=F&&j($,F,S(q),S(P),S(X),S(A))}else for(let te=T==1?i:o;te>=i&&te<=o;te+=T){let q=l[te];q===null?D=!0:q!=null&&C($,_(s[te]),S(q))}let[M,O]=jM(n,r);if(a.fill!=null||M!=0){let te=E.fill=new Path2D($),q=a.fillTo(n,r,a.min,a.max,M),P=S(q),X=_(s[i]),A=_(s[o]);T==-1&&([A,X]=[X,A]),C(te,A,P),C(te,X,P)}if(!a.spanGaps){let te=[];D&&te.push(...TM(s,l,i,o,T,_,t)),E.gaps=te=a.gaps(n,r,i,o,te),E.clip=h6(te,c.ori,v,x,y,b)}return O!=0&&(E.band=O==2?[_d(n,r,i,o,$,-1),_d(n,r,i,o,$,1)]:_d(n,r,i,o,$,O)),E})}function zHe(e){const t=Rn(e.align,1),n=Rn(e.ascDesc,!1),r=Rn(e.alignGaps,0),i=Rn(e.extend,!1);return(o,a,s,l)=>Lp(o,a,(c,d,f,p,v,x,y,b,w,_,S)=>{[s,l]=i6(f,s,l);let C=c.pxRound,{left:j,width:T}=o.bbox,E=ee=>C(x(ee,p,_,b)),$=ee=>C(y(ee,v,S,w)),D=p.ori==0?Xg:Jg;const M={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},O=M.stroke,te=p.dir*(p.ori==0?1:-1);let q=$(f[te==1?s:l]),P=E(d[te==1?s:l]),X=P,A=P;i&&t==-1&&(A=j,D(O,A,q)),D(O,P,q);for(let ee=te==1?s:l;ee>=s&&ee<=l;ee+=te){let ce=f[ee];if(ce==null)continue;let B=E(d[ee]),ae=$(ce);t==1?D(O,B,q):D(O,X,ae),D(O,B,ae),q=ae,X=B}let Y=X;i&&t==1&&(Y=j+T,D(O,Y,q));let[F,H]=jM(o,a);if(c.fill!=null||F!=0){let ee=M.fill=new Path2D(O),ce=c.fillTo(o,a,c.min,c.max,F),B=$(ce);D(ee,Y,B),D(ee,A,B)}if(!c.spanGaps){let ee=[];ee.push(...TM(d,f,s,l,te,E,r));let ce=c.width*Fn/2,B=n||t==1?ce:-ce,ae=n||t==-1?-ce:ce;ee.forEach(je=>{je[0]+=B,je[1]+=ae}),M.gaps=ee=c.gaps(o,a,s,l,ee),M.clip=h6(ee,p.ori,b,w,_,S)}return H!=0&&(M.band=H==2?[_d(o,a,s,l,O,-1),_d(o,a,s,l,O,1)]:_d(o,a,s,l,O,H)),M})}function Hae(e,t,n,r,i,o,a=br){if(e.length>1){let s=null;for(let l=0,c=1/0;l{}),{fill:f,stroke:p}=c;return(v,x,y,b)=>Lp(v,x,(w,_,S,C,j,T,E,$,D,M,O)=>{let te=w.pxRound,q=n,P=r*Fn,X=s*Fn,A=l*Fn,Y,F;C.ori==0?[Y,F]=o(v,x):[F,Y]=o(v,x);const H=C.dir*(C.ori==0?1:-1);let ee=C.ori==0?g6:IM,ce=C.ori==0?d:(De,Dt,pn,Yn,hr,Kn,kr)=>{d(De,Dt,pn,hr,Yn,kr,Kn)},B=Rn(v.bands,mM).find(De=>De.series[0]==x),ae=B!=null?B.dir:0,je=w.fillTo(v,x,w.min,w.max,ae),me=te(E(je,j,O,D)),ke,he,ue,re=M,ge=te(w.width*Fn),$e=!1,pe=null,ye=null,Se=null,Ce=null;f!=null&&(ge==0||p!=null)&&($e=!0,pe=f.values(v,x,y,b),ye=new Map,new Set(pe).forEach(De=>{De!=null&&ye.set(De,new Path2D)}),ge>0&&(Se=p.values(v,x,y,b),Ce=new Map,new Set(Se).forEach(De=>{De!=null&&Ce.set(De,new Path2D)})));let{x0:Ue,size:Ge}=c;if(Ue!=null&&Ge!=null){q=1,_=Ue.values(v,x,y,b),Ue.unit==2&&(_=_.map(Dt=>v.posToVal($+Dt*M,C.key,!0)));let De=Ge.values(v,x,y,b);Ge.unit==2?he=De[0]*M:he=T(De[0],C,M,$)-T(0,C,M,$),re=Hae(_,S,T,C,M,$,re),ue=re-he+P}else re=Hae(_,S,T,C,M,$,re),ue=re*a+P,he=re-ue;ue<1&&(ue=0),ge>=he/2&&(ge=0),ue<5&&(te=Goe);let _t=ue>0,St=re-ue-(_t?ge:0);he=te(pM(St,A,X)),ke=(q==0?he/2:q==H?0:he)-q*H*((q==0?P/2:0)+(_t?ge/2:0));const ut={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},ct=$e?null:new Path2D;let bt=null;if(B!=null)bt=v.data[B.series[1]];else{let{y0:De,y1:Dt}=c;De!=null&&Dt!=null&&(S=Dt.values(v,x,y,b),bt=De.values(v,x,y,b))}let Qe=Y*he,Ke=F*he;for(let De=H==1?y:b;De>=y&&De<=b;De+=H){let Dt=S[De];if(Dt==null)continue;if(bt!=null){let tr=bt[De]??0;if(Dt-tr==0)continue;me=E(tr,j,O,D)}let pn=C.distr!=2||c!=null?_[De]:De,Yn=T(pn,C,M,$),hr=E(Rn(Dt,je),j,O,D),Kn=te(Yn-ke),kr=te(pa(hr,me)),On=te(su(hr,me)),Mr=kr-On;if(Dt!=null){let tr=Dt<0?Ke:Qe,Sr=Dt<0?Qe:Ke;$e?(ge>0&&Se[De]!=null&&ee(Ce.get(Se[De]),Kn,On+Ts(ge/2),he,pa(0,Mr-ge),tr,Sr),pe[De]!=null&&ee(ye.get(pe[De]),Kn,On+Ts(ge/2),he,pa(0,Mr-ge),tr,Sr)):ee(ct,Kn,On+Ts(ge/2),he,pa(0,Mr-ge),tr,Sr),ce(v,x,De,Kn-ge/2,On,he+ge,Mr)}}return ge>0?ut.stroke=$e?Ce:ct:$e||(ut._fill=w.width==0?w._fill:w._stroke??w._fill,ut.width=0),ut.fill=$e?ye:ct,ut})}function AHe(e,t){const n=Rn(t==null?void 0:t.alignGaps,0);return(r,i,o,a)=>Lp(r,i,(s,l,c,d,f,p,v,x,y,b,w)=>{[o,a]=i6(c,o,a);let _=s.pxRound,S=Y=>_(p(Y,d,b,x)),C=Y=>_(v(Y,f,w,y)),j,T,E;d.ori==0?(j=p6,E=Xg,T=Fae):(j=m6,E=Jg,T=Uae);const $=d.dir*(d.ori==0?1:-1);let D=S(l[$==1?o:a]),M=D,O=[],te=[];for(let Y=$==1?o:a;Y>=o&&Y<=a;Y+=$)if(c[Y]!=null){let F=l[Y],H=S(F);O.push(M=H),te.push(C(c[Y]))}const q={stroke:e(O,te,j,E,T,_),fill:null,clip:null,band:null,gaps:null,flags:Kg},P=q.stroke;let[X,A]=jM(r,i);if(s.fill!=null||X!=0){let Y=q.fill=new Path2D(P),F=s.fillTo(r,i,s.min,s.max,X),H=C(F);E(Y,M,H),E(Y,D,H)}if(!s.spanGaps){let Y=[];Y.push(...TM(l,c,o,a,$,S,n)),q.gaps=Y=s.gaps(r,i,o,a,Y),q.clip=h6(Y,d.ori,x,y,b,w)}return A!=0&&(q.band=A==2?[_d(r,i,o,a,P,-1),_d(r,i,o,a,P,1)]:_d(r,i,o,a,P,A)),q})}function FHe(e){return AHe(UHe,e)}function UHe(e,t,n,r,i,o){const a=e.length;if(a<2)return null;const s=new Path2D;if(n(s,e[0],t[0]),a==2)r(s,e[1],t[1]);else{let l=Array(a),c=Array(a-1),d=Array(a-1),f=Array(a-1);for(let p=0;p0!=c[p]>0?l[p]=0:(l[p]=3*(f[p-1]+f[p])/((2*f[p]+f[p-1])/c[p-1]+(f[p]+2*f[p-1])/c[p]),isFinite(l[p])||(l[p]=0));l[a-1]=c[a-2];for(let p=0;p{jn.pxRatio=Fn}));const BHe=Vae(),WHe=Bae();function qae(e,t,n,r){return(r?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map((i,o)=>NM(i,o,t,n))}function VHe(e,t){return e.map((n,r)=>r==0?{}:Li({},t,n))}function NM(e,t,n,r){return Li({},t==0?n:r,e)}function Gae(e,t,n){return t==null?qg:[t,n]}const HHe=Gae;function ZHe(e,t,n){return t==null?qg:a6(t,n,dM,!0)}function Yae(e,t,n,r){return t==null?qg:o6(t,n,e.scales[r].log,!1)}const qHe=Yae;function Kae(e,t,n,r){return t==null?qg:cM(t,n,e.scales[r].log,!1)}const GHe=Kae;function YHe(e,t,n,r,i){let o=pa(Zoe(e),Zoe(t)),a=t-e,s=au(i/r*a,n);do{let l=n[s],c=r*l/a;if(c>=i&&o+(l<5?oh.get(l):0)<=17)return[l,c]}while(++s(t=qi((n=+i)*Fn))+"px"),[e,t,n]}function KHe(e){e.show&&[e.font,e.labelFont].forEach(t=>{let n=xr(t[2]*Fn,1);t[0]=t[0].replace(/[0-9.]+px/,n+"px"),t[1]=n})}function jn(e,t,n){const r={mode:Rn(e.mode,1)},i=r.mode;function o(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?1-de:de)}function a(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?de:1-de)}function s(N,z,K,Q){return z.ori==0?o(N,z,K,Q):a(N,z,K,Q)}r.valToPosH=o,r.valToPosV=a;let l=!1;r.status=0;const c=r.root=fl(rVe);if(e.id!=null&&(c.id=e.id),Cs(c,e.class),e.title){let N=fl(aVe,c);N.textContent=e.title}const d=ou("canvas"),f=r.ctx=d.getContext("2d"),p=fl(sVe,c);Np("click",p,N=>{N.target===x&&(mr!=Bd||jr!=Wd)&&Ai.click(r,N)},!0);const v=r.under=fl(lVe,p);p.appendChild(d);const x=r.over=fl(uVe,p);e=Gg(e);const y=+Rn(e.pxAlign,1),b=Oae(y);(e.plugins||[]).forEach(N=>{N.opts&&(e=N.opts(r,e)||e)});const w=e.ms||.001,_=r.series=i==1?qae(e.series||[],Cae,Mae,!1):VHe(e.series||[null],$ae),S=r.axes=qae(e.axes||[],Sae,Iae,!0),C=r.scales={},j=r.bands=e.bands||[];j.forEach(N=>{N.fill=bn(N.fill||null),N.dir=Rn(N.dir,-1)});const T=i==2?_[1].facets[0].scale:_[0].scale,E={axes:Kt,series:z1},$=(e.drawOrder||["axes","series"]).map(N=>E[N]);function D(N){const z=N.distr==3?K=>xd(K>0?K:N.clamp(r,K,N.min,N.max,N.key)):N.distr==4?K=>hM(K,N.asinh):N.distr==100?K=>N.fwd(K):K=>K;return K=>{let Q=z(K),{_min:de,_max:_e}=N,Me=_e-de;return(Q-de)/Me}}function M(N){let z=C[N];if(z==null){let K=(e.scales||gx)[N]||gx;if(K.from!=null){M(K.from);let Q=Li({},C[K.from],K,{key:N});Q.valToPct=D(Q),C[N]=Q}else{z=C[N]=Li({},N==T?Rae:MHe,K),z.key=N;let Q=z.time,de=z.range,_e=ah(de);if((N!=T||i==2&&!Q)&&(_e&&(de[0]==null||de[1]==null)&&(de={min:de[0]==null?Boe:{mode:1,hard:de[0],soft:de[0]},max:de[1]==null?Boe:{mode:1,hard:de[1],soft:de[1]}},_e=!1),!_e&&u6(de))){let Me=de;de=(Fe,Ve,et)=>Ve==null?qg:a6(Ve,et,Me)}z.range=bn(de||(Q?HHe:N==T?z.distr==3?qHe:z.distr==4?GHe:Gae:z.distr==3?Yae:z.distr==4?Kae:ZHe)),z.auto=bn(_e?!1:z.auto),z.clamp=bn(z.clamp||$He),z._min=z._max=null,z.valToPct=D(z)}}}M("x"),M("y"),i==1&&_.forEach(N=>{M(N.scale)}),S.forEach(N=>{M(N.scale)});for(let N in e.scales)M(N);const O=C[T],te=O.distr;let q,P;O.ori==0?(Cs(c,iVe),q=o,P=a):(Cs(c,oVe),q=a,P=o);const X={};for(let N in C){let z=C[N];(z.min!=null||z.max!=null)&&(X[N]={min:z.min,max:z.max},z.min=z.max=null)}const A=e.tzDate||(N=>new Date(qi(N/w))),Y=e.fmtDate||gM,F=w==1?iHe(A):sHe(A),H=gae(A,mae(w==1?rHe:aHe,Y)),ee=yae(A,vae(uHe,Y)),ce=[],B=r.legend=Li({},fHe,e.legend),ae=r.cursor=Li({},yHe,{drag:{y:i==2}},e.cursor),je=B.show,me=ae.show,ke=B.markers;B.idxs=ce,ke.width=bn(ke.width),ke.dash=bn(ke.dash),ke.stroke=bn(ke.stroke),ke.fill=bn(ke.fill);let he,ue,re,ge=[],$e=[],pe,ye=!1,Se={};if(B.live){const N=_[1]?_[1].values:null;ye=N!=null,pe=ye?N(r,1,0):{_:0};for(let z in pe)Se[z]=iM}if(je)if(he=ou("table",mVe,c),re=ou("tbody",null,he),B.mount(r,he),ye){ue=ou("thead",null,he,re);let N=ou("tr",null,ue);ou("th",null,N);for(var Ce in pe)ou("th",joe,N).textContent=Ce}else Cs(he,vVe),B.live&&Cs(he,gVe);const Ue={show:!0},Ge={show:!1};function _t(N,z){if(z==0&&(ye||!B.live||i==2))return qg;let K=[],Q=ou("tr",yVe,re,re.childNodes[z]);Cs(Q,N.class),N.show||Cs(Q,Ep);let de=ou("th",null,Q);if(ke.show){let Fe=fl(bVe,de);if(z>0){let Ve=ke.width(r,z);Ve&&(Fe.style.border=Ve+"px "+ke.dash(r,z)+" "+ke.stroke(r,z)),Fe.style.background=ke.fill(r,z)}}let _e=fl(joe,de);N.label instanceof HTMLElement?_e.appendChild(N.label):_e.textContent=N.label,z>0&&(ke.show||(_e.style.color=N.width>0?ke.stroke(r,z):ke.fill(r,z)),ut("click",de,Fe=>{if(ae._lock)return;pi(Fe);let Ve=_.indexOf(N);if((Fe.ctrlKey||Fe.metaKey)!=B.isolate){let et=_.some((ot,st)=>st>0&&st!=Ve&&ot.show);_.forEach((ot,st)=>{st>0&&Ja(st,et?st==Ve?Ue:Ge:Ue,!0,Sn.setSeries)})}else Ja(Ve,{show:!N.show},!0,Sn.setSeries)},!1),$o&&ut(Noe,de,Fe=>{ae._lock||(pi(Fe),Ja(_.indexOf(N),Cc,!0,Sn.setSeries))},!1));for(var Me in pe){let Fe=ou("td",xVe,Q);Fe.textContent="--",K.push(Fe)}return[Q,K]}const St=new Map;function ut(N,z,K,Q=!0){const de=St.get(z)||{},_e=ae.bind[N](r,z,K,Q);_e&&(Np(N,z,de[N]=_e),St.set(z,de))}function ct(N,z,K){const Q=St.get(z)||{};for(let de in Q)(N==null||de==N)&&(uM(de,z,Q[de]),delete Q[de]);N==null&&St.delete(z)}let bt=0,Qe=0,Ke=0,De=0,Dt=0,pn=0,Yn=Dt,hr=pn,Kn=Ke,kr=De,On=0,Mr=0,tr=0,Sr=0;r.bbox={};let ri=!1,uo=!1,Ki=!1,No=!1,Ps=!1,zn=!1;function co(N,z,K){(K||N!=r.width||z!=r.height)&&xa(N,z),In(!1),Ki=!0,uo=!0,Fd()}function xa(N,z){r.width=bt=Ke=N,r.height=Qe=De=z,Dt=pn=0,qa(),kl();let K=r.bbox;On=K.left=Mp(Dt*Fn,.5),Mr=K.top=Mp(pn*Fn,.5),tr=K.width=Mp(Ke*Fn,.5),Sr=K.height=Mp(De*Fn,.5)}const yc=3;function bc(){let N=!1,z=0;for(;!N;){z++;let K=ze(z),Q=vt(z);N=z==yc||K&&Q,N||(xa(r.width,r.height),uo=!0)}}function xc({width:N,height:z}){co(N,z)}r.setSize=xc;function qa(){let N=!1,z=!1,K=!1,Q=!1;S.forEach((de,_e)=>{if(de.show&&de._show){let{side:Me,_size:Fe}=de,Ve=Me%2,et=de.label!=null?de.labelSize:0,ot=Fe+et;ot>0&&(Ve?(Ke-=ot,Me==3?(Dt+=ot,Q=!0):K=!0):(De-=ot,Me==0?(pn+=ot,N=!0):z=!0))}}),ii[0]=N,ii[1]=K,ii[2]=z,ii[3]=Q,Ke-=mi[1]+mi[3],Dt+=mi[3],De-=mi[2]+mi[0],pn+=mi[0]}function kl(){let N=Dt+Ke,z=pn+De,K=Dt,Q=pn;function de(_e,Me){switch(_e){case 1:return N+=Me,N-Me;case 2:return z+=Me,z-Me;case 3:return K-=Me,K+Me;case 0:return Q-=Me,Q+Me}}S.forEach((_e,Me)=>{if(_e.show&&_e._show){let Fe=_e.side;_e._pos=de(Fe,_e._size),_e.label!=null&&(_e._lpos=de(Fe,_e.labelSize))}})}if(ae.dataIdx==null){let N=ae.hover,z=N.skip=new Set(N.skip??[]);z.add(void 0);let K=N.prox=bn(N.prox),Q=N.bias??(N.bias=0);ae.dataIdx=(de,_e,Me,Fe)=>{if(_e==0)return Me;let Ve=Me,et=K(de,_e,Me,Fe)??br,ot=et>=0&&et0;)z.has(Ut[mt])||(an=mt);if(Q==0||Q==1)for(mt=Me;Tt==null&&mt++et&&(Ve=null);return Ve}}const pi=N=>{ae.event=N};ae.idxs=ce,ae._lock=!1;let Un=ae.points;Un.show=bn(Un.show),Un.size=bn(Un.size),Un.stroke=bn(Un.stroke),Un.width=bn(Un.width),Un.fill=bn(Un.fill);const Rr=r.focus=Li({},e.focus||{alpha:.3},ae.focus),$o=Rr.prox>=0,fo=$o&&Un.one;let Lr=[],ho=[],_a=[];function it(N,z){let K=Un.show(r,z);if(K instanceof HTMLElement)return Cs(K,pVe),Cs(K,N.class),ec(K,-10,-10,Ke,De),x.insertBefore(K,Lr[z]),K}function Yt(N,z){if(i==1||z>0){let K=i==1&&C[N.scale].time,Q=N.value;N.value=K?tae(Q)?yae(A,vae(Q,Y)):Q||ee:Q||IHe,N.label=N.label||(K?xHe:bHe)}if(fo||z>0){N.width=N.width==null?1:N.width,N.paths=N.paths||BHe||MVe,N.fillTo=bn(N.fillTo||RHe),N.pxAlign=+Rn(N.pxAlign,y),N.pxRound=Oae(N.pxAlign),N.stroke=bn(N.stroke||null),N.fill=bn(N.fill||null),N._stroke=N._fill=N._paths=N._focus=null;let K=EHe(pa(1,N.width),1),Q=N.points=Li({},{size:K,width:pa(1,K*.2),stroke:N.stroke,space:K*2,paths:WHe,_stroke:null,_fill:null},N.points);Q.show=bn(Q.show),Q.filter=bn(Q.filter),Q.fill=bn(Q.fill),Q.stroke=bn(Q.stroke),Q.paths=bn(Q.paths),Q.pxAlign=N.pxAlign}if(je){let K=_t(N,z);ge.splice(z,0,K[0]),$e.splice(z,0,K[1]),B.values.push(null)}if(me){ce.splice(z,0,null);let K=null;fo?z==0&&(K=it(N,z)):z>0&&(K=it(N,z)),Lr.splice(z,0,K),ho.splice(z,0,0),_a.splice(z,0,0)}Ni("addSeries",z)}function nr(N,z){z=z??_.length,N=i==1?NM(N,z,Cae,Mae):NM(N,z,{},$ae),_.splice(z,0,N),Yt(_[z],z)}r.addSeries=nr;function ht(N){if(_.splice(N,1),je){B.values.splice(N,1),$e.splice(N,1);let z=ge.splice(N,1)[0];ct(null,z.firstChild),z.remove()}me&&(ce.splice(N,1),Lr.splice(N,1)[0].remove(),ho.splice(N,1),_a.splice(N,1)),Ni("delSeries",N)}r.delSeries=ht;const ii=[!1,!1,!1,!1];function Ga(N,z){if(N._show=N.show,N.show){let K=N.side%2,Q=C[N.scale];Q==null&&(N.scale=K?_[1].scale:T,Q=C[N.scale]);let de=Q.time;N.size=bn(N.size),N.space=bn(N.space),N.rotate=bn(N.rotate),ah(N.incrs)&&N.incrs.forEach(Me=>{!oh.has(Me)&&oh.set(Me,Qoe(Me))}),N.incrs=bn(N.incrs||(Q.distr==2?eHe:de?w==1?nHe:oHe:Rp)),N.splits=bn(N.splits||(de&&Q.distr==1?F:Q.distr==3?kM:Q.distr==4?kHe:wHe)),N.stroke=bn(N.stroke),N.grid.stroke=bn(N.grid.stroke),N.ticks.stroke=bn(N.ticks.stroke),N.border.stroke=bn(N.border.stroke);let _e=N.values;N.values=ah(_e)&&!ah(_e[0])?bn(_e):de?ah(_e)?gae(A,mae(_e,Y)):tae(_e)?lHe(A,_e):_e||H:_e||_He,N.filter=bn(N.filter||(Q.distr>=3&&Q.log==10?jHe:Q.distr==3&&Q.log==2?THe:Yoe)),N.font=Xae(N.font),N.labelFont=Xae(N.labelFont),N._size=N.size(r,null,z,0),N._space=N._rotate=N._incrs=N._found=N._splits=N._values=null,N._size>0&&(ii[z]=!0,N._el=fl(cVe,p))}}function Ya(N,z,K,Q){let[de,_e,Me,Fe]=K,Ve=z%2,et=0;return Ve==0&&(Fe||_e)&&(et=z==0&&!de||z==2&&!Me?qi(Sae.size/3):0),Ve==1&&(de||Me)&&(et=z==1&&!_e||z==3&&!Fe?qi(Iae.size/2):0),et}const Ko=r.padding=(e.padding||[Ya,Ya,Ya,Ya]).map(N=>bn(Rn(N,Ya))),mi=r._padding=Ko.map((N,z)=>N(r,z,ii,0));let Bn,pr=null,Cr=null;const Ka=i==1?_[0].idxs:null;let po=null,mo=!1;function Vr(N,z){if(t=N??[],r.data=r._data=t,i==2){Bn=0;for(let K=1;K<_.length;K++)Bn+=t[K][0].length}else{t.length==0&&(r.data=r._data=t=[[]]),po=t[0],Bn=po.length;let K=t;if(te==2){K=t.slice();let Q=K[0]=Array(Bn);for(let de=0;de=0,zn=!0,Fd()}}r.setData=Vr;function wa(){mo=!0;let N,z;i==1&&(Bn>0?(pr=Ka[0]=0,Cr=Ka[1]=Bn-1,N=t[0][pr],z=t[0][Cr],te==2?(N=pr,z=Cr):N==z&&(te==3?[N,z]=o6(N,N,O.log,!1):te==4?[N,z]=cM(N,N,O.log,!1):O.time?z=N+qi(86400/w):[N,z]=a6(N,z,dM,!0))):(pr=Ka[0]=N=null,Cr=Ka[1]=z=null)),Mo(T,N,z)}let ji,gi,Os,go,Xo,Pd,Od,bu,Xi,oi;function _c(N,z,K,Q,de,_e){N??(N=Ioe),K??(K=mM),Q??(Q="butt"),de??(de=Ioe),_e??(_e="round"),N!=ji&&(f.strokeStyle=ji=N),de!=gi&&(f.fillStyle=gi=de),z!=Os&&(f.lineWidth=Os=z),_e!=Xo&&(f.lineJoin=Xo=_e),Q!=Pd&&(f.lineCap=Pd=Q),K!=go&&f.setLineDash(go=K)}function xu(N,z,K,Q){z!=gi&&(f.fillStyle=gi=z),N!=Od&&(f.font=Od=N),K!=bu&&(f.textAlign=bu=K),Q!=Xi&&(f.textBaseline=Xi=Q)}function wc(N,z,K,Q,de=0){if(Q.length>0&&N.auto(r,mo)&&(z==null||z.min==null)){let _e=Rn(pr,0),Me=Rn(Cr,Q.length-1),Fe=K.min==null?jVe(Q,_e,Me,de,N.distr==3):[K.min,K.max];N.min=su(N.min,K.min=Fe[0]),N.max=pa(N.max,K.max=Fe[1])}}const kc={min:null,max:null};function Sl(){for(let Q in C){let de=C[Q];X[Q]==null&&(de.min==null||X[T]!=null&&de.auto(r,mo))&&(X[Q]=kc)}for(let Q in C){let de=C[Q];X[Q]==null&&de.from!=null&&X[de.from]!=null&&(X[Q]=kc)}X[T]!=null&&In(!0);let N={};for(let Q in X){let de=X[Q];if(de!=null){let _e=N[Q]=Gg(C[Q],PVe);if(de.min!=null)Li(_e,de);else if(Q!=T||i==2)if(Bn==0&&_e.from==null){let Me=_e.range(r,null,null,Q);_e.min=Me[0],_e.max=Me[1]}else _e.min=br,_e.max=-br}}if(Bn>0){_.forEach((Q,de)=>{if(i==1){let _e=Q.scale,Me=X[_e];if(Me==null)return;let Fe=N[_e];if(de==0){let Ve=Fe.range(r,Fe.min,Fe.max,_e);Fe.min=Ve[0],Fe.max=Ve[1],pr=au(Fe.min,t[0]),Cr=au(Fe.max,t[0]),Cr-pr>1&&(t[0][pr]Fe.max&&Cr--),Q.min=po[pr],Q.max=po[Cr]}else Q.show&&Q.auto&&wc(Fe,Me,Q,t[de],Q.sorted);Q.idxs[0]=pr,Q.idxs[1]=Cr}else if(de>0&&Q.show&&Q.auto){let[_e,Me]=Q.facets,Fe=_e.scale,Ve=Me.scale,[et,ot]=t[de],st=N[Fe],Pt=N[Ve];st!=null&&wc(st,X[Fe],_e,et,_e.sorted),Pt!=null&&wc(Pt,X[Ve],Me,ot,Me.sorted),Q.min=Me.min,Q.max=Me.max}});for(let Q in N){let de=N[Q],_e=X[Q];if(de.from==null&&(_e==null||_e.min==null)){let Me=de.range(r,de.min==br?null:de.min,de.max==-br?null:de.max,Q);de.min=Me[0],de.max=Me[1]}}}for(let Q in N){let de=N[Q];if(de.from!=null){let _e=N[de.from];if(_e.min==null)de.min=de.max=null;else{let Me=de.range(r,_e.min,_e.max,Q);de.min=Me[0],de.max=Me[1]}}}let z={},K=!1;for(let Q in N){let de=N[Q],_e=C[Q];if(_e.min!=de.min||_e.max!=de.max){_e.min=de.min,_e.max=de.max;let Me=_e.distr;_e._min=Me==3?xd(_e.min):Me==4?hM(_e.min,_e.asinh):Me==100?_e.fwd(_e.min):_e.min,_e._max=Me==3?xd(_e.max):Me==4?hM(_e.max,_e.asinh):Me==100?_e.fwd(_e.max):_e.max,z[Q]=K=!0}}if(K){_.forEach((Q,de)=>{i==2?de>0&&z.y&&(Q._paths=null):z[Q.scale]&&(Q._paths=null)});for(let Q in z)Ki=!0,Ni("setScale",Q);me&&ae.left>=0&&(No=zn=!0)}for(let Q in X)X[Q]=null}function Xa(N){let z=pM(pr-1,0,Bn-1),K=pM(Cr+1,0,Bn-1);for(;N[z]==null&&z>0;)z--;for(;N[K]==null&&K0){let N=_.some(z=>z._focus)&&oi!=Rr.alpha;N&&(f.globalAlpha=oi=Rr.alpha),_.forEach((z,K)=>{if(K>0&&z.show&&(zd(K,!1),zd(K,!0),z._paths==null)){let Q=oi;oi!=z.alpha&&(f.globalAlpha=oi=z.alpha);let de=i==2?[0,t[K][0].length-1]:Xa(t[K]);z._paths=z.paths(r,K,de[0],de[1]),oi!=Q&&(f.globalAlpha=oi=Q)}}),_.forEach((z,K)=>{if(K>0&&z.show){let Q=oi;oi!=z.alpha&&(f.globalAlpha=oi=z.alpha),z._paths!=null&&Sc(K,!1);{let de=z._paths!=null?z._paths.gaps:null,_e=z.points.show(r,K,pr,Cr,de),Me=z.points.filter(r,K,_e,de);(_e||Me)&&(z.points._paths=z.points.paths(r,K,pr,Cr,Me),Sc(K,!0))}oi!=Q&&(f.globalAlpha=oi=Q),Ni("drawSeries",K)}}),N&&(f.globalAlpha=oi=1)}}function zd(N,z){let K=z?_[N].points:_[N];K._stroke=K.stroke(r,N),K._fill=K.fill(r,N)}function Sc(N,z){let K=z?_[N].points:_[N],{stroke:Q,fill:de,clip:_e,flags:Me,_stroke:Fe=K._stroke,_fill:Ve=K._fill,_width:et=K.width}=K._paths;et=xr(et*Fn,3);let ot=null,st=et%2/2;z&&Ve==null&&(Ve=et>0?"#fff":Fe);let Pt=K.pxAlign==1&&st>0;if(Pt&&f.translate(st,st),!z){let hn=On-et/2,Ut=Mr-et/2,an=tr+et,Tt=Sr+et;ot=new Path2D,ot.rect(hn,Ut,an,Tt)}z?Ad(Fe,et,K.dash,K.cap,Ve,Q,de,Me,_e):Dd(N,Fe,et,K.dash,K.cap,Ve,Q,de,Me,ot,_e),Pt&&f.translate(-st,-st)}function Dd(N,z,K,Q,de,_e,Me,Fe,Ve,et,ot){let st=!1;Ve!=0&&j.forEach((Pt,hn)=>{if(Pt.series[0]==N){let Ut=_[Pt.series[1]],an=t[Pt.series[1]],Tt=(Ut._paths||gx).band;ah(Tt)&&(Tt=Pt.dir==1?Tt[0]:Tt[1]);let mt,gr=null;Ut.show&&Tt&&IVe(an,pr,Cr)?(gr=Pt.fill(r,hn)||_e,mt=Ut._paths.clip):Tt=null,Ad(z,K,Q,de,gr,Me,Fe,Ve,et,ot,mt,Tt),st=!0}}),st||Ad(z,K,Q,de,_e,Me,Fe,Ve,et,ot)}const Fm=Kg|CM;function Ad(N,z,K,Q,de,_e,Me,Fe,Ve,et,ot,st){_c(N,z,K,Q,de),(Ve||et||st)&&(f.save(),Ve&&f.clip(Ve),et&&f.clip(et)),st?(Fe&Fm)==Fm?(f.clip(st),ot&&f.clip(ot),G(de,Me),L(N,_e,z)):Fe&CM?(G(de,Me),f.clip(st),L(N,_e,z)):Fe&Kg&&(f.save(),f.clip(st),ot&&f.clip(ot),G(de,Me),f.restore(),L(N,_e,z)):(G(de,Me),L(N,_e,z)),(Ve||et||st)&&f.restore()}function L(N,z,K){K>0&&(z instanceof Map?z.forEach((Q,de)=>{f.strokeStyle=ji=de,f.stroke(Q)}):z!=null&&N&&f.stroke(z))}function G(N,z){z instanceof Map?z.forEach((K,Q)=>{f.fillStyle=gi=Q,f.fill(K)}):z!=null&&N&&f.fill(z)}function ie(N,z,K,Q){let de=S[N],_e;if(Q<=0)_e=[0,0];else{let Me=de._space=de.space(r,N,z,K,Q),Fe=de._incrs=de.incrs(r,N,z,K,Q,Me);_e=YHe(z,K,Fe,Q,Me)}return de._found=_e}function Ie(N,z,K,Q,de,_e,Me,Fe,Ve,et){let ot=Me%2/2;y==1&&f.translate(ot,ot),_c(Fe,Me,Ve,et,Fe),f.beginPath();let st,Pt,hn,Ut,an=de+(Q==0||Q==3?-_e:_e);K==0?(Pt=de,Ut=an):(st=de,hn=an);for(let Tt=0;Tt{if(!K.show)return;let de=C[K.scale];if(de.min==null){K._show&&(z=!1,K._show=!1,In(!1));return}else K._show||(z=!1,K._show=!0,In(!1));let _e=K.side,Me=_e%2,{min:Fe,max:Ve}=de,[et,ot]=ie(Q,Fe,Ve,Me==0?Ke:De);if(ot==0)return;let st=de.distr==2,Pt=K._splits=K.splits(r,Q,Fe,Ve,et,ot,st),hn=de.distr==2?Pt.map(mt=>po[mt]):Pt,Ut=de.distr==2?po[Pt[1]]-po[Pt[0]]:et,an=K._values=K.values(r,K.filter(r,hn,Q,ot,Ut),Q,ot,Ut);K._rotate=_e==2?K.rotate(r,an,Q,ot):0;let Tt=K._size;K._size=hl(K.size(r,an,Q,N)),Tt!=null&&K._size!=Tt&&(z=!1)}),z}function vt(N){let z=!0;return Ko.forEach((K,Q)=>{let de=K(r,Q,ii,N);de!=mi[Q]&&(z=!1),mi[Q]=de}),z}function Kt(){for(let N=0;Npo[ar]):hn,an=ot.distr==2?po[hn[1]]-po[hn[0]]:Ve,Tt=z.ticks,mt=z.border,gr=Tt.show?Tt.size:0,Hr=qi(gr*Fn),$i=qi((z.alignTo==2?z._size-gr-z.gap:z.gap)*Fn),xn=z._rotate*-s6/180,le=b(z._pos*Fn),Ne=(Hr+$i)*Fe,we=le+Ne;_e=Q==0?we:0,de=Q==1?we:0;let Je=z.font[0],xt=z.align==1?Wg:z.align==2?eM:xn>0?Wg:xn<0?eM:Q==0?"center":K==3?eM:Wg,Gt=xn||Q==1?"middle":K==2?hx:Toe;xu(Je,Me,xt,Gt);let En=z.font[1]*z.lineGap,tn=hn.map(ar=>b(s(ar,ot,st,Pt))),Qo=z._values;for(let ar=0;ar{K>0&&(z._paths=null,N&&(i==1?(z.min=null,z.max=null):z.facets.forEach(Q=>{Q.min=null,Q.max=null})))})}let Di=!1,Ti=!1,Ji=[];function mC(){Ti=!1;for(let N=0;N0&&queueMicrotask(mC)}r.batch=j_;function T_(){if(ri&&(Sl(),ri=!1),Ki&&(bc(),Ki=!1),uo){if(Dr(v,Wg,Dt),Dr(v,hx,pn),Dr(v,dx,Ke),Dr(v,fx,De),Dr(x,Wg,Dt),Dr(x,hx,pn),Dr(x,dx,Ke),Dr(x,fx,De),Dr(p,dx,bt),Dr(p,fx,Qe),d.width=qi(bt*Fn),d.height=qi(Qe*Fn),S.forEach(({_el:N,_show:z,_size:K,_pos:Q,side:de})=>{if(N!=null)if(z){let _e=de===3||de===0?K:0,Me=de%2==1;Dr(N,Me?"left":"top",Q-_e),Dr(N,Me?"width":"height",K),Dr(N,Me?"top":"left",Me?pn:Dt),Dr(N,Me?"height":"width",Me?De:Ke),sM(N,Ep)}else Cs(N,Ep)}),ji=gi=Os=Xo=Pd=Od=bu=Xi=go=null,oi=1,jc(!0),Dt!=Yn||pn!=hr||Ke!=Kn||De!=kr){In(!1);let N=Ke/Kn,z=De/kr;if(me&&!No&&ae.left>=0){ae.left*=N,ae.top*=z,_u&&ec(_u,qi(ae.left),0,Ke,De),Ud&&ec(Ud,0,qi(ae.top),Ke,De);for(let K=0;K=0&&ir.width>0){ir.left*=N,ir.width*=N,ir.top*=z,ir.height*=z;for(let K in Z1)Dr(Vd,K,ir[K])}Yn=Dt,hr=pn,Kn=Ke,kr=De}Ni("setSize"),uo=!1}bt>0&&Qe>0&&(f.clearRect(0,0,d.width,d.height),Ni("drawClear"),$.forEach(N=>N()),Ni("draw")),ir.show&&Ps&&(ai(ir),Ps=!1),me&&No&&(jl(null,!0,!1),No=!1),B.show&&B.live&&zn&&(or(),zn=!1),l||(l=!0,r.status=1,Ni("ready")),mo=!1,Di=!1}r.redraw=(N,z)=>{Ki=z||!1,N!==!1?Mo(T,O.min,O.max):Fd()};function D1(N,z){let K=C[N];if(K.from==null){if(Bn==0){let Q=K.range(r,z.min,z.max,N);z.min=Q[0],z.max=Q[1]}if(z.min>z.max){let Q=z.min;z.min=z.max,z.max=Q}if(Bn>1&&z.min!=null&&z.max!=null&&z.max-z.min<1e-16)return;N==T&&K.distr==2&&Bn>0&&(z.min=au(z.min,t[0]),z.max=au(z.max,t[0]),z.min==z.max&&z.max++),X[N]=z,ri=!0,Fd()}}r.setScale=D1;let A1,F1,_u,Ud,I_,E_,Bd,Wd,rr,Xn,mr,jr,wu=!1;const Ai=ae.drag;let Ii=Ai.x,Ei=Ai.y;me&&(ae.x&&(A1=fl(fVe,x)),ae.y&&(F1=fl(hVe,x)),O.ori==0?(_u=A1,Ud=F1):(_u=F1,Ud=A1),mr=ae.left,jr=ae.top);const ir=r.select=Li({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),Vd=ir.show?fl(dVe,ir.over?x:v):null;function ai(N,z){if(ir.show){for(let K in N)ir[K]=N[K],K in Z1&&Dr(Vd,K,N[K]);z!==!1&&Ni("setSelect")}}r.setSelect=ai;function U1(N){if(_[N].show)je&&sM(ge[N],Ep);else if(je&&Cs(ge[N],Ep),me){let z=fo?Lr[0]:Lr[N];z!=null&&ec(z,-10,-10,Ke,De)}}function Mo(N,z,K){D1(N,{min:z,max:K})}function Ja(N,z,K,Q){z.focus!=null&&Jo(N),z.show!=null&&_.forEach((de,_e)=>{_e>0&&(N==_e||N==null)&&(de.show=z.show,U1(_e),i==2?(Mo(de.facets[0].scale,null,null),Mo(de.facets[1].scale,null,null)):Mo(de.scale,null,null),Fd())}),K!==!1&&Ni("setSeries",N,z),Q&&Zd("setSeries",r,N,z)}r.setSeries=Ja;function B1(N,z){Li(j[N],z)}function ka(N,z){N.fill=bn(N.fill||null),N.dir=Rn(N.dir,-1),z=z??j.length,j.splice(z,0,N)}function N_(N){N==null?j.length=0:j.splice(N,1)}r.addBand=ka,r.setBand=B1,r.delBand=N_;function $_(N,z){_[N].alpha=z,me&&Lr[N]!=null&&(Lr[N].style.opacity=z),je&&ge[N]&&(ge[N].style.opacity=z)}let zs,Cl,ku;const Cc={focus:!0};function Jo(N){if(N!=ku){let z=N==null,K=Rr.alpha!=1;_.forEach((Q,de)=>{if(i==1||de>0){let _e=z||de==0||de==N;Q._focus=z?null:_e,K&&$_(de,_e?1:Rr.alpha)}}),ku=N,K&&Fd()}}je&&$o&&ut($oe,he,N=>{ae._lock||(pi(N),ku!=null&&Ja(null,Cc,!0,Sn.setSeries))});function Ds(N,z,K){let Q=C[z];K&&(N=N/Fn-(Q.ori==1?pn:Dt));let de=Ke;Q.ori==1&&(de=De,N=de-N),Q.dir==-1&&(N=de-N);let _e=Q._min,Me=Q._max,Fe=N/de,Ve=_e+(Me-_e)*Fe,et=Q.distr;return et==3?Zg(10,Ve):et==4?NVe(Ve,Q.asinh):et==100?Q.bwd(Ve):Ve}function Sa(N,z){let K=Ds(N,T,z);return au(K,t[0],pr,Cr)}r.valToIdx=N=>au(N,t[0]),r.posToIdx=Sa,r.posToVal=Ds,r.valToPos=(N,z,K)=>C[z].ori==0?o(N,C[z],K?tr:Ke,K?On:0):a(N,C[z],K?Sr:De,K?Mr:0),r.setCursor=(N,z,K)=>{mr=N.left,jr=N.top,jl(null,z,K)};function M_(N,z){Dr(Vd,Wg,ir.left=N),Dr(Vd,dx,ir.width=z)}function W1(N,z){Dr(Vd,hx,ir.top=N),Dr(Vd,fx,ir.height=z)}let Ca=O.ori==0?M_:W1,Su=O.ori==1?M_:W1;function V1(){if(je&&B.live)for(let N=i==2?1:0;N<_.length;N++){if(N==0&&ye)continue;let z=B.values[N],K=0;for(let Q in z)$e[N][K++].firstChild.nodeValue=z[Q]}}function or(N,z){if(N!=null&&(N.idxs?N.idxs.forEach((K,Q)=>{ce[Q]=K}):LVe(N.idx)||ce.fill(N.idx),B.idx=ce[0]),je&&B.live){for(let K=0;K<_.length;K++)(K>0||i==1&&!ye)&&Cu(K,ce[K]);V1()}zn=!1,z!==!1&&Ni("setLegend")}r.setLegend=or;function Cu(N,z){let K=_[N],Q=N==0&&te==2?po:t[N],de;ye?de=K.values(r,N,z)??Se:(de=K.value(r,z==null?null:Q[z],N,z),de=de==null?Se:{_:de}),B.values[N]=de}function jl(N,z,K){rr=mr,Xn=jr,[mr,jr]=ae.move(r,mr,jr),ae.left=mr,ae.top=jr,me&&(_u&&ec(_u,qi(mr),0,Ke,De),Ud&&ec(Ud,0,qi(jr),Ke,De));let Q,de=pr>Cr;zs=br,Cl=null;let _e=O.ori==0?Ke:De,Me=O.ori==1?Ke:De;if(mr<0||Bn==0||de){Q=ae.idx=null;for(let Fe=0;Fe<_.length;Fe++){let Ve=Lr[Fe];Ve!=null&&ec(Ve,-10,-10,Ke,De)}$o&&Ja(null,Cc,!0,N==null&&Sn.setSeries),B.live&&(ce.fill(Q),zn=!0)}else{let Fe,Ve,et;i==1&&(Fe=O.ori==0?mr:jr,Ve=Ds(Fe,T),Q=ae.idx=au(Ve,t[0],pr,Cr),et=q(t[0][Q],O,_e,0));let ot=-10,st=-10,Pt=0,hn=0,Ut=!0,an="",Tt="";for(let mt=i==2?1:0;mt<_.length;mt++){let gr=_[mt],Hr=ce[mt],$i=Hr==null?null:i==1?t[mt][Hr]:t[mt][1][Hr],xn=ae.dataIdx(r,mt,Q,Ve),le=xn==null?null:i==1?t[mt][xn]:t[mt][1][xn];if(zn=zn||le!=$i||xn!=Hr,ce[mt]=xn,mt>0&&gr.show){let Ne=xn==null?-10:xn==Q?et:q(i==1?t[0][xn]:t[mt][0][xn],O,_e,0),we=le==null?-10:P(le,i==1?C[gr.scale]:C[gr.facets[1].scale],Me,0);if($o&&le!=null){let Je=O.ori==1?mr:jr,xt=Zi(Rr.dist(r,mt,xn,we,Je));if(xt=0?1:-1,Qo=En>=0?1:-1;Qo==tn&&(Qo==1?Gt==1?le>=En:le<=En:Gt==1?le<=En:le>=En)&&(zs=xt,Cl=mt)}else zs=xt,Cl=mt}}if(zn||fo){let Je,xt;O.ori==0?(Je=Ne,xt=we):(Je=we,xt=Ne);let Gt,En,tn,Qo,As,ar,Qi=!0,Ec=Un.bbox;if(Ec!=null){Qi=!1;let si=Ec(r,mt);tn=si.left,Qo=si.top,Gt=si.width,En=si.height}else tn=Je,Qo=xt,Gt=En=Un.size(r,mt);if(ar=Un.fill(r,mt),As=Un.stroke(r,mt),fo)mt==Cl&&zs<=Rr.prox&&(ot=tn,st=Qo,Pt=Gt,hn=En,Ut=Qi,an=ar,Tt=As);else{let si=Lr[mt];si!=null&&(ho[mt]=tn,_a[mt]=Qo,Doe(si,Gt,En,Qi),Ooe(si,ar,As),ec(si,hl(tn),hl(Qo),Ke,De))}}}}if(fo){let mt=Rr.prox,gr=ku==null?zs<=mt:zs>mt||Cl!=ku;if(zn||gr){let Hr=Lr[0];Hr!=null&&(ho[0]=ot,_a[0]=st,Doe(Hr,Pt,hn,Ut),Ooe(Hr,an,Tt),ec(Hr,hl(ot),hl(st),Ke,De))}}}if(ir.show&&wu)if(N!=null){let[Fe,Ve]=Sn.scales,[et,ot]=Sn.match,[st,Pt]=N.cursor.sync.scales,hn=N.cursor.drag;if(Ii=hn._x,Ei=hn._y,Ii||Ei){let{left:Ut,top:an,width:Tt,height:mt}=N.select,gr=N.scales[st].ori,Hr=N.posToVal,$i,xn,le,Ne,we,Je=Fe!=null&&et(Fe,st),xt=Ve!=null&&ot(Ve,Pt);Je&&Ii?(gr==0?($i=Ut,xn=Tt):($i=an,xn=mt),le=C[Fe],Ne=q(Hr($i,st),le,_e,0),we=q(Hr($i+xn,st),le,_e,0),Ca(su(Ne,we),Zi(we-Ne))):Ca(0,_e),xt&&Ei?(gr==1?($i=Ut,xn=Tt):($i=an,xn=mt),le=C[Ve],Ne=P(Hr($i,Pt),le,Me,0),we=P(Hr($i+xn,Pt),le,Me,0),Su(su(Ne,we),Zi(we-Ne))):Su(0,Me)}else Um()}else{let Fe=Zi(rr-I_),Ve=Zi(Xn-E_);if(O.ori==1){let Pt=Fe;Fe=Ve,Ve=Pt}Ii=Ai.x&&Fe>=Ai.dist,Ei=Ai.y&&Ve>=Ai.dist;let et=Ai.uni;et!=null?Ii&&Ei&&(Ii=Fe>=et,Ei=Ve>=et,!Ii&&!Ei&&(Ve>Fe?Ei=!0:Ii=!0)):Ai.x&&Ai.y&&(Ii||Ei)&&(Ii=Ei=!0);let ot,st;Ii&&(O.ori==0?(ot=Bd,st=mr):(ot=Wd,st=jr),Ca(su(ot,st),Zi(st-ot)),Ei||Su(0,Me)),Ei&&(O.ori==1?(ot=Bd,st=mr):(ot=Wd,st=jr),Su(su(ot,st),Zi(st-ot)),Ii||Ca(0,_e)),!Ii&&!Ei&&(Ca(0,0),Su(0,0))}if(Ai._x=Ii,Ai._y=Ei,N==null){if(K){if(Wm!=null){let[Fe,Ve]=Sn.scales;Sn.values[0]=Fe!=null?Ds(O.ori==0?mr:jr,Fe):null,Sn.values[1]=Ve!=null?Ds(O.ori==1?mr:jr,Ve):null}Zd(nM,r,mr,jr,Ke,De,Q)}if($o){let Fe=K&&Sn.setSeries,Ve=Rr.prox;ku==null?zs<=Ve&&Ja(Cl,Cc,!0,Fe):zs>Ve?Ja(null,Cc,!0,Fe):Cl!=ku&&Ja(Cl,Cc,!0,Fe)}}zn&&(B.idx=Q,or()),z!==!1&&Ni("setCursor")}let ju=null;Object.defineProperty(r,"rect",{get(){return ju==null&&jc(!1),ju}});function jc(N=!1){N?ju=null:(ju=x.getBoundingClientRect(),Ni("syncRect",ju))}function R_(N,z,K,Q,de,_e,Me){ae._lock||wu&&N!=null&&N.movementX==0&&N.movementY==0||(H1(N,z,K,Q,de,_e,Me,!1,N!=null),N!=null?jl(null,!0,!0):jl(z,!0,!1))}function H1(N,z,K,Q,de,_e,Me,Fe,Ve){if(ju==null&&jc(!1),pi(N),N!=null)K=N.clientX-ju.left,Q=N.clientY-ju.top;else{if(K<0||Q<0){mr=-10,jr=-10;return}let[et,ot]=Sn.scales,st=z.cursor.sync,[Pt,hn]=st.values,[Ut,an]=st.scales,[Tt,mt]=Sn.match,gr=z.axes[0].side%2==1,Hr=O.ori==0?Ke:De,$i=O.ori==1?Ke:De,xn=gr?_e:de,le=gr?de:_e,Ne=gr?Q:K,we=gr?K:Q;if(Ut!=null?K=Tt(et,Ut)?s(Pt,C[et],Hr,0):-10:K=Hr*(Ne/xn),an!=null?Q=mt(ot,an)?s(hn,C[ot],$i,0):-10:Q=$i*(we/le),O.ori==1){let Je=K;K=Q,Q=Je}}Ve&&(z==null||z.cursor.event.type==nM)&&((K<=1||K>=Ke-1)&&(K=Mp(K,Ke)),(Q<=1||Q>=De-1)&&(Q=Mp(Q,De))),Fe?(I_=K,E_=Q,[Bd,Wd]=ae.move(r,K,Q)):(mr=K,jr=Q)}const Z1={width:0,height:0,left:0,top:0};function Um(){ai(Z1,!1)}let wh,Tc,L_,q1;function G1(N,z,K,Q,de,_e,Me){wu=!0,Ii=Ei=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,_e,Me,!0,!1),N!=null&&(ut(rM,oM,Bm,!1),Zd(Eoe,r,Bd,Wd,Ke,De,null));let{left:Fe,top:Ve,width:et,height:ot}=ir;wh=Fe,Tc=Ve,L_=et,q1=ot}function Bm(N,z,K,Q,de,_e,Me){wu=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,_e,Me,!1,!0);let{left:Fe,top:Ve,width:et,height:ot}=ir,st=et>0||ot>0,Pt=wh!=Fe||Tc!=Ve||L_!=et||q1!=ot;if(st&&Pt&&ai(ir),Ai.setScale&&st&&Pt){let hn=Fe,Ut=et,an=Ve,Tt=ot;if(O.ori==1&&(hn=Ve,Ut=ot,an=Fe,Tt=et),Ii&&Mo(T,Ds(hn,T),Ds(hn+Ut,T)),Ei)for(let mt in C){let gr=C[mt];mt!=T&&gr.from==null&&gr.min!=br&&Mo(mt,Ds(an+Tt,mt),Ds(an,mt))}Um()}else ae.lock&&(ae._lock=!ae._lock,jl(z,!0,N!=null));N!=null&&(ct(rM,oM),Zd(rM,r,mr,jr,Ke,De,null))}function Y1(N,z,K,Q,de,_e,Me){if(ae._lock)return;pi(N);let Fe=wu;if(wu){let Ve=!0,et=!0,ot=10,st,Pt;O.ori==0?(st=Ii,Pt=Ei):(st=Ei,Pt=Ii),st&&Pt&&(Ve=mr<=ot||mr>=Ke-ot,et=jr<=ot||jr>=De-ot),st&&Ve&&(mr=mr{let de=Sn.match[2];K=de(r,z,K),K!=-1&&Ja(K,Q,!0,!1)},me&&(ut(Eoe,x,G1),ut(nM,x,R_),ut(Noe,x,N=>{pi(N),jc(!1)}),ut($oe,x,Y1),ut(Moe,x,K1),EM.add(r),r.syncRect=jc);const Hd=r.hooks=e.hooks||{};function Ni(N,z,K){Ti?Ji.push([N,z,K]):N in Hd&&Hd[N].forEach(Q=>{Q.call(null,r,z,K)})}(e.plugins||[]).forEach(N=>{for(let z in N.hooks)Hd[z]=(Hd[z]||[]).concat(N.hooks[z])});const X1=(N,z,K)=>K,Sn=Li({key:null,setSeries:!1,filters:{pub:Koe,sub:Koe},scales:[T,_[1]?_[1].scale:null],match:[Xoe,Xoe,X1],values:[null,null]},ae.sync);Sn.match.length==2&&Sn.match.push(X1),ae.sync=Sn;const Wm=Sn.key,Ic=Pae(Wm);function Zd(N,z,K,Q,de,_e,Me){Sn.filters.pub(N,z,K,Q,de,_e,Me)&&Ic.pub(N,z,K,Q,de,_e,Me)}Ic.sub(r);function O_(N,z,K,Q,de,_e,Me){Sn.filters.sub(N,z,K,Q,de,_e,Me)&&Tu[N](null,z,K,Q,de,_e,Me)}r.pub=O_;function gC(){Ic.unsub(r),EM.delete(r),St.clear(),uM(n6,Hg,P_),c.remove(),he==null||he.remove(),Ni("destroy")}r.destroy=gC;function J1(){Ni("init",e,t),Vr(t||e.data,!1),X[T]?D1(T,X[T]):wa(),Ps=ir.show&&(ir.width>0||ir.height>0),No=zn=!0,co(e.width,e.height)}return _.forEach(Yt),S.forEach(Ga),n?n instanceof HTMLElement?(n.appendChild(c),J1()):n(r,J1):J1(),r}jn.assign=Li,jn.fmtNum=fM,jn.rangeNum=a6,jn.rangeLog=o6,jn.rangeAsinh=cM,jn.orient=Lp,jn.pxRatio=Fn,jn.join=UVe,jn.fmtDate=gM,jn.tzDate=JVe,jn.sync=Pae;{jn.addGap=LHe,jn.clipGaps=h6;let e=jn.paths={points:Bae};e.linear=Vae,e.stepped=zHe,e.bars=DHe,e.spline=FHe}Object.is||Object.defineProperty(Object,"is",{value:(e,t)=>e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t});const XHe=(e,t)=>{const{width:n,height:r,...i}=e,{width:o,height:a,...s}=t;let l="keep";if((r!==a||n!==o)&&(l="update"),Object.keys(i).length!==Object.keys(s).length)return"create";for(const c of Object.keys(i))if(!Object.is(i[c],s[c])){l="create";break}return l},JHe=(e,t)=>e.length!==t.length?!1:e.every((n,r)=>{const i=t[r];if(n.length!==i.length)return!1;if(Array.isArray(n))return n.every((o,a)=>o===i[a])});function v6(e,t,n,r,i,o){return e>r?(t=i,n=o):to&&(n=o,t=o-e),[t,n]}const Jae=e=>e._size??0,Qae=fe({}),y6=fe(null,(e,t,n,r)=>{const{chartId:i,isMatchingChartId:o}=r||{},a=e(Qae);if(i&&a[i])n(a[i],i);else for(const[s,l]of Object.entries(a))o&&!o(s)||n(l,s)}),QHe="_uplot_1swaw_1",eZe={uplot:QHe};function Pp({id:e,options:t,data:n,target:r,onDelete:i,onCreate:o,resetScales:a=!0,className:s}){var S,C;const l=m.useRef(null),c=m.useRef(null),d=m.useRef(t),f=m.useRef(r),p=m.useRef(n),v=m.useRef(o),x=m.useRef(i),y=Ee(Qae);m.useEffect(()=>{v.current=o,x.current=i});const b=m.useCallback(j=>{var T;j&&((T=x.current)==null||T.call(x,j),j.destroy(),l.current=null,y(E=>{const $={...E};return delete $[e],$}))},[e,y]),w=m.useCallback(()=>{var T;const j=new jn(d.current,p.current,f.current||c.current);l.current=j,y(E=>({...E,[e]:j})),(T=v.current)==null||T.call(v,j)},[e,y]);m.useEffect(()=>(w(),()=>{b(l.current)}),[w,b]),m.useEffect(()=>{if(d.current!==t){const j=XHe(d.current,t);d.current=t,!l.current||j==="create"?(b(l.current),w()):j==="update"&&l.current.setSize({width:t.width,height:t.height})}},[t,w,b]),m.useEffect(()=>{p.current!==n&&(l.current?JHe(p.current,n)||(a?l.current.setData(n,!0):(l.current.setData(n,!1),l.current.redraw())):(p.current=n,w()),p.current=n)},[n,a,w]),m.useEffect(()=>(f.current!==r&&(f.current=r,w()),()=>b(l.current)),[r,w,b]);const _=Ba(()=>{requestAnimationFrame(()=>{var j;return(j=l.current)==null?void 0:j.setSize({width:d.current.width,height:d.current.height})})},500,{leading:!0,trailing:!0});return(t.height!==((S=l.current)==null?void 0:S.height)||t.width!==((C=l.current)==null?void 0:C.width))&&_(),r?null:u.jsx("div",{id:e,ref:c,className:Te(eZe.uplot,s)})}const $M=fe(null),Op=fe(e=>{const t=e(nee);return t==null?void 0:t+1}),tZe=fe(e=>{const t=e(Op),n=e(ese);return t!=null&&!!n.size}),[ese,nZe,tse,bx,rZe]=function(){const e=Co(new Set),t=fe(),n=fe();return[fe(r=>r(e)),fe(null,(r,i,o)=>{r(ol)&&i(e,a=>{o.forEach(s=>{a.add(s),i(t,l=>l?Math.min(l,s):s),i(n,l=>l?Math.max(l,s):s)})})}),fe(r=>r(t)),fe(r=>r(n)),fe(null,(r,i)=>{i(t,void 0),i(n,void 0),i(e,new Set)})]}(),[iZe,oZe,aZe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{t(ol)&&n(e,i=>{r.forEach(o=>{i.add(o)})})}),fe(null,(t,n)=>{n(e,new Set)})]}();function nse(e,t,n,r){if(!n)return 0;const i=Math.ceil((e-t+1)/n);return Math.min(i-1,r)}function MM(e,t){return t==null?!1:e<=t}function RM(e,t){return t.has(e)}function LM(e,t){return t.has(e)}function b6(e,t,n){for(let r=t;r>=e;r--)if(n(r))return!0;return!1}function sZe(e,t,n,r,i,o,a){return o?tne:i?ene:b6(e,t,s=>!MM(s,n)&&!RM(s,r)&&!LM(s,a))?nne:b6(e,t,s=>!MM(s,n)&&RM(s,r))?ane:b6(e,t,s=>!MM(s,n)&&LM(s,a))?one:b6(e,t,s=>!RM(s,r)&&!LM(s,a))?ine:rne}const lZe=ca(),rse=4,uZe=rse;function cZe(e,t){return{hooks:{drawSeries:[n=>{const r=e.current.totalSlotsEstimate;if(r==null||!t.current)return;const i=n.ctx;i.save();const o=n.bbox.top,a=n.bbox.height,s=rse*window.devicePixelRatio,l=uZe*window.devicePixelRatio,c=s/2,d=Math.trunc((n.bbox.width+l)/(s+l)),f=r/d,{startSlot:p,repairSlots:v,latestReplaySlot:x,firstTurbineSlot:y,latestTurbineSlot:b,turbineSlots:w}=t.current,_=nse(b,p,f,d-1),S=nse(y,p,f,d-1),C=lZe.get($M);C==null||C.style.setProperty("--turbine-start-x",`${PM(S,s,l)/window.devicePixelRatio}px`),C==null||C.style.setProperty("--turbine-head-x",`${PM(_,s,l)/window.devicePixelRatio}px`);const j=new Map;for(let T=0;T<=_;T++){const E=T*f,$=p+Math.trunc(E),D=(T+1)*f,M=Math.min(b,p+Math.ceil(D)-1),O=PM(T,s,l),te=sZe($,M,x,v,T===S,T===_,w),q=j.get(te)??[];q.push(O),j.set(te,q)}for(const[T,E]of j.entries()){i.fillStyle=T,i.beginPath();for(const $ of E)i.roundRect($,o,s,a,c);i.fill()}i.restore()}]}}}function PM(e,t,n){return e*(t+n)}const dZe=[[0],[null]];function fZe({catchingUpRatesRef:e}){const[t,n]=Ss(),r=J(Op),i=J(iZe),o=J(ese),a=J(tse),s=J(bx),l=J(dp),c=m.useRef(),d=m.useRef(),f=m.useMemo(()=>({width:0,height:0,scales:{x:{time:!1}},axes:[{show:!1},{show:!1}],series:[{},{points:{show:!1}}],cursor:{x:!1,y:!1},legend:{show:!1},plugins:[cZe(e,c)]}),[c,e]);f.width=n.width,f.height=n.height;const p=m.useCallback(y=>{d.current=y},[]),v=m.useCallback(y=>{var b;c.current=y,(b=d.current)==null||b.redraw()},[]),x=Ba(v,100,{trailing:!0});if(m.useEffect(()=>{r==null||!o.size||a==null||s==null||x({startSlot:r,repairSlots:i,turbineSlots:o,firstTurbineSlot:a,latestTurbineSlot:s,latestReplaySlot:l})},[a,l,s,i,r,x,o]),!(r==null||!o.size||a==null||s==null))return u.jsx(Mt,{height:"77px",ref:t,children:u.jsx(Pp,{id:"catching-up-slot-bars",options:f,data:dZe,onCreate:p})})}const hZe="_card_1yavk_1",pZe="_secondary-color_1yavk_13",mZe="_bold_1yavk_17",gZe="_ellipsis_1yavk_21",vZe="_labels-row_1yavk_27",yZe="_labels-left_1yavk_39",bZe="_turbine-label_1yavk_46",xZe="_start_1yavk_54",_Ze="_head_1yavk_58",wZe="_footer-row_1yavk_64",kZe="_left-footer_1yavk_76",SZe="_footer-title_1yavk_83",CZe="_footer-value_1yavk_88",jZe="_bars-stats-container_1yavk_95",TZe="_bars-stats-row_1yavk_99",IZe="_replayed_1yavk_104",EZe="_speed_1yavk_111",NZe="_to-replay_1yavk_118",ur={card:hZe,secondaryColor:pZe,bold:mZe,ellipsis:gZe,labelsRow:vZe,labelsLeft:yZe,turbineLabel:bZe,start:xZe,head:_Ze,footerRow:wZe,leftFooter:kZe,footerTitle:SZe,footerValue:CZe,barsStatsContainer:jZe,barsStatsRow:TZe,replayed:IZe,speed:EZe,toReplay:NZe};function $Ze(){const e=J(Op);if(e)return u.jsxs(W,{className:ur.footerRow,children:[u.jsxs(W,{className:ur.leftFooter,children:[u.jsxs(Z,{className:Te(ur.footerValue,ur.ellipsis),children:[u.jsx(Z,{className:ur.secondaryColor,children:"Slot "}),e]}),u.jsx(Z,{className:Te(ur.footerTitle,ur.ellipsis),children:"Repair"})]}),u.jsx(Z,{className:Te(ur.rightFooter,ur.footerTitle,ur.ellipsis),children:"Turbine"})]})}function MZe(){const e=J(Op),t=J(tse),n=J(bx);if(!(e==null||t==null||n==null))return u.jsxs(W,{className:ur.labelsRow,children:[u.jsx(W,{justify:"end",flexShrink:"0",className:ur.labelsLeft,children:u.jsx(ise,{slot:t})}),u.jsx(W,{justify:"end",flexGrow:"1",minWidth:"0",className:ur.labelsRight,children:u.jsx(ise,{slot:n,isHead:!0})})]})}function ise({isHead:e=!1,slot:t}){const n=J($M),[r,{width:i}]=Ss();return m.useEffect(()=>{n==null||n.style.setProperty(e?"--turbine-head-label-width":"--turbine-start-label-width",`${i}px`)},[n,e,i]),u.jsxs(W,{ref:r,direction:"column",className:Te(ur.turbineLabel,e?ur.head:ur.start),children:[u.jsx(Z,{className:ur.bold,children:e?"Turbine Head":"Turbine Start"}),u.jsx(Z,{children:t})]})}const x6=1e4,ose=50,RZe=[Er.shred_published,Er.shred_replayed,Er.shred_received_repair,Er.shred_received_turbine,Er.shred_repair_request],LZe=[Er.shred_received_repair,Er.shred_published,Er.shred_replayed,Er.shred_received_turbine,Er.shred_repair_request],PZe={"Repair Requested":wN,"Received Turbine":kN,"Received Repair":SN,"Replayed Turbine":CN,"Replayed Repair":jN,"Replayed Nothing":TN,Skipped:IN,Published:EN};function OZe(){const e=fe(),t=fe(),n=fe(),r=fe(i=>{const o=i(n),a=i(bG);if(!(!o||a==null)&&!(a+1>o.max))return{min:Math.max(a+1,o.min),max:o.max}});return{minCompletedSlot:fe(i=>i(e)),range:fe(i=>i(n)),rangeAfterStartup:r,groupLeaderSlots:fe(i=>{const o=i(r);if(!o)return[];const a=[_i(o.min)];for(;a[a.length-1]+$n-1i(t)),addShredEvents:fe(null,(i,o,{reference_slot:a,reference_ts:s,slot_delta:l,shred_idx:c,event:d,event_ts_delta:f})=>{let p=i(n),v=i(e);o(t,x=>{const y=x??{referenceTs:Math.round(Number(s)/sN),slots:new Map};for(let b=0;b{if(a){o(n,void 0),o(e,void 0),o(t,void 0);return}o(t,l=>{const c=i(n),d=i(Cre)??Date.now();if(!l||!c)return l;if(s)for(let p=c.min;p<=c.max;p++){const v=l.slots.get(p);v&&(v.maxEventTsDelta==null||ase(v.maxEventTsDelta,d,l.referenceTs))&&l.slots.delete(p)}else{let p=c.min;if(c.max-c.min>50){for(let x=p;x<=c.max-50;x++)l.slots.get(x)&&l.slots.delete(x);p=c.max-50}let v=!1;for(let x=c.max;x>=p;x--){const y=l.slots.get(x);if((y==null?void 0:y.maxEventTsDelta)!=null){if(!v&&y.completionTsDelta!=null&&ase(y.completionTsDelta,d,l.referenceTs)){v=!0;continue}v&&l.slots.delete(x)}}}const f=l.slots.keys();return o(n,p=>{if(!(!p||!l.slots.size))return{min:Math.min(...f),max:p.max}}),l})})}}function ase(e,t,n){const r=t-n,i=x6+ose;return r-e>i}const xx=OZe();function zZe(e,t,n){const r=n??new Array;return r[e]=Math.min(t,r[e]??t),r}function DZe(e,t,n,r){const i=r??{shreds:[]};return i.minEventTsDelta=Math.min(n,i.minEventTsDelta??n),i.maxEventTsDelta=Math.max(n,i.maxEventTsDelta??n),t===Er.slot_complete?(i.completionTsDelta=Math.min(n,i.completionTsDelta??n),i):e==null?(console.error("Missing shred ID"),i):(i.shreds[e]=zZe(t,n,i.shreds[e]),i)}function sse(e){return`slot-group-label-${_i(e)}`}function lse(e){return`slot-label-${e}`}const sh=ca(),zp="shredsXScaleKey";function AZe(e){const t=[];function n(){const r=Date.now(),i=sh.get(Cre);if(i){const a=r-i;for(t.push(a);t.length>20;)t.shift()}const o=t.length?rt.sum(t)/t.length:void 0;return(o==null?i??r:r-o)-ose}return{hooks:{draw:[r=>{e&&FZe(r);const i=xx,o=sh.get(i.slotsShreds),a=sh.get(i.range),s=sh.get(i.minCompletedSlot),l=sh.get(Ik),c=sh.get(i.rangeAfterStartup),{min:d,max:f}=r.scales[zp];if(!o||!a||d==null||f==null||!e&&(sh.get(ol)||s==null||!c))return;const p=n()-o.referenceTs,v=f-d,x={minDeltaTs:p-v,maxDeltaTs:p,minCanvasPos:r.bbox.left,maxCanvasPos:r.bbox.left+r.bbox.width,minCssPos:r.valToPos(d,zp,!1),maxCssPos:r.valToPos(f,zp,!1)},y=e?a.min:Math.max(a.min,s??a.min),b=a.max,{maxShreds:w,orderedSlotNumbers:_}=UZe(y,b,o,x),S=e?Math.trunc(r.bbox.height/3):r.bbox.height,C=e?M=>{switch(M){case Er.shred_received_turbine:case Er.shred_published:return 0;case Er.shred_repair_request:case Er.shred_received_repair:return S;case Er.shred_replayed:return S*2}}:void 0,j=rt.clamp(S/w,1,10),T=1,E=Math.max(j,3),$=Math.trunc((S+T)/(j+T)),D=w/$;r.ctx.save(),r.ctx.rect(r.bbox.left,r.bbox.top,r.bbox.width,r.bbox.height),r.ctx.clip();for(const M of _){const O={},te=(X,A)=>{O[X]??(O[X]=[]),O[X].push(A)},q=o.slots.get(M);if(!q)continue;const P=l.has(M);for(let X=0;X<$;X++){const A=X*D,Y=Math.trunc(A),F=(X+1)*D,H=Math.min(w,Math.ceil(F)-1);BZe({addEventPosition:te,firstShredIdx:Y,lastShredIdx:H,shreds:q.shreds,slotCompletionTsDelta:q.completionTsDelta,isSlotSkipped:P,drawOnlyDots:e,y:(j+T)*X+r.bbox.top,getYOffset:C,xRange:x})}for(const X of Object.keys(O)){r.ctx.beginPath(),r.ctx.fillStyle=X;for(const[A,Y,F]of O[X])F==null?r.ctx.rect(A,Y,E,E):r.ctx.rect(A,Y,F,j);r.ctx.fill()}}r.ctx.restore(),!e&&c&&HZe(c,o.slots,l,r,x)}]}}}function FZe(e){e.ctx.save(),e.ctx.strokeStyle=_N,e.ctx.lineWidth=1,e.ctx.beginPath();const t=e.bbox.left,n=e.bbox.left+e.bbox.width;for(let r=0;r<3;r++)e.ctx.moveTo(t,e.bbox.top+e.bbox.height*r/3),e.ctx.lineTo(n,e.bbox.top+e.bbox.height*r/3);e.ctx.stroke(),e.ctx.restore()}function UZe(e,t,n,r){const i=[];let o=0;for(let a=e;a<=t;a++){const s=n.slots.get(a);!(s!=null&&s.shreds.length)||s.minEventTsDelta==null||s.minEventTsDelta>r.maxDeltaTs||s.completionTsDelta!=null&&s.completionTsDelta=p)continue;const w=(l==null?void 0:l(x))??0;v.set(x,o||a?[b,s+w]:[b,s+w,p-b]),p=b}for(const[x,y]of v.entries()){if(a){e(IN,y);continue}switch(x){case Er.shred_repair_request:{e(wN,y);break}case Er.shred_received_turbine:{e(kN,y);break}case Er.shred_received_repair:{e(SN,y);break}case Er.shred_replayed:{v.has(Er.shred_received_repair)?e(jN,y):v.has(Er.shred_received_turbine)?e(CN,y):e(TN,y);break}case Er.shred_published:e(EN,y)}}}function WZe(e,t,n){for(const r of LZe){const i=VZe(e,t,n,o=>(o==null?void 0:o[r])!=null);if(i!==-1)return i}return e}function VZe(e,t,n,r){for(let i=e;is+r).reduce((a,s)=>(a.length===0&&!(s in e)||s in e&&e[s]===void 0||a.push(s),a),[]);if(i.length===0)continue;const o=i.reduce((a,s)=>{var d,f;const l=(d=e[s])==null?void 0:d[0],c=(f=e[s])==null?void 0:f[1];return l!=null&&(a[0]=Math.min(a[0],l)),a[1]=a[1]===void 0||c===void 0?void 0:Math.max(c,a[1]),a},[1/0,-1/0]);n[r]=o}return n}function dse(e,t){if(!e)return;const n=_6(e[0],t,!1),r=e[1];if(r==null)return[n,void 0];const i=_6(r,t,!1);return[n,i-n]}function fse(e,t,n,r){const i=e?"--group-x":"--slot-x";if(!t){r.style.setProperty(i,"-100000px");return}const[o,a]=t;r.style.setProperty(i,`${o-(e?1:0)}px`);const s=a??n-o+1;r.style.width=`${s+(e?1*2:0)}px`;const l=a==null;e&&r.style.setProperty("--group-name-opacity",l?"0":"1")}const YZe="_slot-group-label_mfowj_1",KZe="_you_mfowj_13",XZe="_slot-group-top-container_mfowj_17",JZe="_skipped_mfowj_21",QZe="_slot-group-name-container_mfowj_25",eqe="_name_mfowj_30",tqe="_slot-bars-container_mfowj_41",nqe="_slot-bar_mfowj_41",rqe="_legend-color-box_mfowj_72",iqe="_legend-label_mfowj_78",lu={slotGroupLabel:YZe,you:KZe,slotGroupTopContainer:XZe,skipped:JZe,slotGroupNameContainer:QZe,name:eqe,slotBarsContainer:tqe,slotBar:nqe,legendColorBox:rqe,legendLabel:iqe};function OM(e){const t=J(fi);if(!t)return;const n=e-t.start_slot,r=Math.trunc(n/4);return t.staked_pubkeys[t.leader_slots[r]]}function zM(e){var s,l,c,d;const t=(s=e==null?void 0:e.gossip)==null?void 0:s.version,n=(l=e==null?void 0:e.gossip)==null?void 0:l.client_id,r=(n?qte[n]:void 0)??(t?t[0]==="0"?za.Frankendancer:za.Agave:void 0),i=(c=e==null?void 0:e.gossip)==null?void 0:c.country_code,o=Oze(i),a=(d=e==null?void 0:e.gossip)==null?void 0:d.city_name;return m.useMemo(()=>({client:r,version:t,countryCode:i,countryFlag:o,cityName:a}),[a,r,i,o,t])}function ma(e){var f;const t=J(cp),n=OM(e),r=Hk(n??""),i=t===n,o=((f=r==null?void 0:r.info)==null?void 0:f.name)??"Private",{version:a,client:s,countryCode:l,countryFlag:c,cityName:d}=zM(r);return{pubkey:n,peer:r,isLeader:i,name:o,client:s,version:a,countryCode:l,countryFlag:c,cityName:d}}function oqe(){const e=J(V3),t=J(xx.groupLeaderSlots);if(!e)return u.jsx(W,{flexShrink:"0",overflowX:"hidden",position:"relative",height:"15px",children:t.map(n=>u.jsx(aqe,{firstSlot:n},n))})}function aqe({firstSlot:e}){var s;const{peer:t,name:n,isLeader:r}=ma(e),i=m.useMemo(()=>Array.from({length:$n},(l,c)=>e+c),[e]),o=J(Ik),a=m.useMemo(()=>{const l=new Set;for(const c of i)o.has(c)&&l.add(c);return l},[i,o]);return u.jsxs(W,{height:"100%",minHeight:"0",direction:"column",gap:"2px",position:"absolute",id:sse(e),className:Te(lu.slotGroupLabel,{[lu.you]:r}),children:[u.jsx(W,{justify:"center",flexGrow:"1",minHeight:"0",minWidth:"0",px:"2px",className:Te(lu.slotGroupTopContainer,{[lu.skipped]:a.size>0}),children:u.jsxs(W,{align:"center",gap:"4px",minWidth:"0",className:lu.slotGroupNameContainer,children:[u.jsx(ks,{url:(s=t==null?void 0:t.info)==null?void 0:s.icon_url,size:10,isYou:r,hideTooltip:!0}),u.jsx(Z,{className:lu.name,children:n})]})}),u.jsx(W,{height:"2px",position:"relative",className:lu.slotBarsContainer,children:i.map(l=>u.jsx("div",{className:Te(lu.slotBar,{[lu.skipped]:a.has(l)}),id:lse(l)},l))})]})}const sqe=40,DM=15,AM={min:200,max:1600},lqe=e=>{const t=e*AM.max,n=[Math.trunc(t/AM.min)*AM.min];for(;n[n.length-1]{c.current=w},[]),[x,y]=m.useMemo(()=>[[[Math.trunc(l*-x6),0],new Array(2)],lqe(l)],[l]);m.useEffect(()=>{c.current&&(c.current.axes[0].incrs=()=>y,c.current.setData(x,!0))},[x,y]);const b=m.useMemo(()=>({padding:[0,DM,0,DM],width:0,height:0,scales:{[zp]:{time:!1},y:{time:!1,range:[0,1]}},series:[{scale:zp},{}],cursor:{show:!1,drag:{[zp]:!1,y:!1}},legend:{show:!1},axes:[{scale:zp,incrs:y,size:30,ticks:{opacity:.2,stroke:sr,size:5,width:1/devicePixelRatio},values:(w,_)=>_.map(S=>S===0?"now":`${(S/1e3).toFixed(1)}s`),grid:{stroke:_N,width:1/devicePixelRatio},stroke:xN},{size:0,grid:{filter:()=>[0],stroke:xN,width:1}}],plugins:[AZe(t)]}),[t,y]);return b.width=p.width,b.height=p.height,Aie(w=>{var _;c&&(d.current==null||w-d.current>=sqe)&&(d.current=w,(_=c.current)==null||_.redraw(!0,!1))}),u.jsxs(W,{direction:"column",gap:"2px",...n,children:[!t&&u.jsx(oqe,{}),u.jsx(Mt,{flexGrow:"1",minHeight:"0",mx:`-${DM}px`,ref:f,children:u.jsx(Pp,{id:e,options:b,data:x,onCreate:v})})]})}const uqe="_card_1vnw5_1",cqe="_narrow_1vnw5_7",pse={card:uqe,narrow:cqe};function so({children:e,hideChildren:t,isNarrow:n=!1,...r}){return u.jsx("div",{...r,className:Te(pse.card,n&&pse.narrow,r.className),children:!t&&e})}const dqe="_header_10qjn_1",fqe="_full-width_10qjn_5",hqe="_dark_10qjn_9",pqe="_subHeader_10qjn_14",mqe="_tile-container_10qjn_20",gqe="_tile_10qjn_20",Dp={header:dqe,fullWidth:fqe,dark:hqe,subHeader:pqe,tileContainer:mqe,tile:gqe},vqe="_stat-container_1hzk8_1",yqe="_label_1hzk8_10",bqe="_value-container_1hzk8_15",xqe="_value_1hzk8_15",w6={statContainer:vqe,label:yqe,valueContainer:bqe,value:xqe};var FM={exports:{}},Qg=typeof Reflect=="object"?Reflect:null,mse=Qg&&typeof Qg.apply=="function"?Qg.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},k6;Qg&&typeof Qg.ownKeys=="function"?k6=Qg.ownKeys:Object.getOwnPropertySymbols?k6=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:k6=function(e){return Object.getOwnPropertyNames(e)};function _qe(e){console&&console.warn&&console.warn(e)}var gse=Number.isNaN||function(e){return e!==e};function cr(){cr.init.call(this)}FM.exports=cr,FM.exports.once=Cqe,cr.EventEmitter=cr,cr.prototype._events=void 0,cr.prototype._eventsCount=0,cr.prototype._maxListeners=void 0;var vse=10;function S6(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(cr,"defaultMaxListeners",{enumerable:!0,get:function(){return vse},set:function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");vse=e}}),cr.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},cr.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function yse(e){return e._maxListeners===void 0?cr.defaultMaxListeners:e._maxListeners}cr.prototype.getMaxListeners=function(){return yse(this)},cr.prototype.emit=function(e){for(var t=[],n=1;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var s=i[e];if(s===void 0)return!1;if(typeof s=="function")mse(s,this,t);else for(var l=s.length,c=kse(s,l),n=0;n0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,_qe(s)}return e}cr.prototype.addListener=function(e,t){return bse(this,e,t,!1)},cr.prototype.on=cr.prototype.addListener,cr.prototype.prependListener=function(e,t){return bse(this,e,t,!0)};function wqe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function xse(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=wqe.bind(r);return i.listener=n,r.wrapFn=i,i}cr.prototype.once=function(e,t){return S6(t),this.on(e,xse(this,e,t)),this},cr.prototype.prependOnceListener=function(e,t){return S6(t),this.prependListener(e,xse(this,e,t)),this},cr.prototype.removeListener=function(e,t){var n,r,i,o,a;if(S6(t),r=this._events,r===void 0)return this;if(n=r[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;i===0?n.shift():kqe(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit("removeListener",e,a||t)}return this},cr.prototype.off=cr.prototype.removeListener,cr.prototype.removeAllListeners=function(e){var t,n,r;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),o;for(r=0;r=0;r--)this.removeListener(e,t[r]);return this};function _se(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?Sqe(i):kse(i,i.length)}cr.prototype.listeners=function(e){return _se(this,e,!0)},cr.prototype.rawListeners=function(e){return _se(this,e,!1)},cr.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):wse.call(e,t)},cr.prototype.listenerCount=wse;function wse(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}cr.prototype.eventNames=function(){return this._eventsCount>0?k6(this._events):[]};function kse(e,t){for(var n=new Array(t),r=0;r{const r=i=>n.current(i);return t.addListener(UM,r),()=>{t.removeListener(UM,r)}},[t])}const Eqe=Gf((e,t,n)=>rt.throttle(()=>{switch(n){case"publish":{e({topic:"slot",key:"query",id:1,params:{slot:t}});break}case"detailed":{e({topic:"slot",key:"query_detailed",id:2,params:{slot:t}});break}case"transactions":{e({topic:"slot",key:"query_transactions",id:3,params:{slot:t}});break}}},5e3,{trailing:!1}),{maxSize:250});function WM(e,t,n){const r=C6(),i=J(wDe(e)),o=m.useCallback(()=>{!e||i||n||Eqe(r,e,t)()},[t,i,e,n,r]);m.useEffect(()=>{const l=setTimeout(()=>o(),250);return()=>{clearTimeout(l)}},[o]);const[a,s]=m.useState(!0);return ix(()=>{setTimeout(()=>s(!1),3e3)}),{hasWaitedForData:!a}}function Is(e){const t=J(KN(e)),n=!!t,{hasWaitedForData:r}=WM(e,"publish",n);return{publish:t,hasWaitedForData:r}}function tc(e){const t=J(hre(e)),n=!!(t!=null&&t.waterfall)&&!!(t!=null&&t.tile_timers)&&!!(t!=null&&t.tile_primary_metric)&&!!t.scheduler_counts&&!!t.scheduler_stats&&!!t.limits,{hasWaitedForData:r}=WM(e,"detailed",n);return{response:t,hasWaitedForData:r}}function pl(e){const t=J(hre(e)),n=!!(t!=null&&t.transactions),{hasWaitedForData:r}=WM(e,"transactions",n);return{response:t,hasWaitedForData:r}}function Nqe({type:e,label:t}){var l,c,d;const n=J(Cn),r=!n,i=J(SG),o=tc(r?void 0:n),a=r?(l=i==null?void 0:i.tile_primary_metric)==null?void 0:l[e]:(d=(c=o.response)==null?void 0:c.tile_primary_metric)==null?void 0:d[e],s=e==="net_in"||e==="net_out"?{minWidth:"55px"}:void 0;return u.jsxs("div",{className:w6.statContainer,children:[u.jsx(Z,{className:w6.label,children:t}),u.jsx("div",{className:w6.valueContainer,style:s,children:u.jsx(Z,{className:w6.value,children:$qe(e,a)})})]})}function $qe(e,t){if(t===void 0||t===-1)return"-";if(e==="net_in"||e==="net_out"){const n=t*8,r=Sp(t*8,{precision:n>1e9?2:0}),i=Number(r.value);if(!t)return"0";const o=r.unit.replace("B","b");return`${i} ${o}/s`}if(e==="bundle_rx_delay_millis_p90"||e==="bundle_rtt_smoothed_millis")return`${Math.max(1,Math.round(t))} ms`;if(e==="verify"||e==="dedup"||e==="pack"){if(t<.01&&t>0)return`${(t*100).toFixed(2)}%`;{const n=t*100;return`${Math.trunc(n)}%`}}return t.toLocaleString()}const Mqe="_btn_1lb0v_1",Rqe={btn:Mqe};let VM=!1;function Lqe({children:e,tileCountArr:t,liveBusyPerTile:n,queryIdlePerTile:r,width:i,header:o,isExpanded:a,setIsExpanded:s}){return t.length>1?u.jsxs(QZ,{open:a,onOpenChange:l=>{VM||(s(l),VM=!0,setTimeout(()=>VM=!1,10))},defaultOpen:!1,children:[u.jsx(eq,{children:a?u.jsx("div",{}):u.jsx(hs,{className:Rqe.btn,children:e})}),u.jsx(tq,{width:`${i}px`,size:"1",side:"top",sideOffset:-17,align:"center",children:u.jsxs(W,{gap:"3",direction:"column",children:[o,n?n.map((l,c)=>u.jsx(Pqe,{busy:l},c)):t==null?void 0:t.map((l,c)=>{const d=r==null?void 0:r.map(f=>f[c]!==void 0&&f[c]!==-1?1-f[c]:void 0).filter(Cb);if(d!=null&&d.length)return u.jsxs(W,{children:[u.jsx(cx,{history:d}),u.jsx(Xk,{busy:rt.mean(d)})]},c)})]})})]}):u.jsx(W,{gap:"1",children:e})}function Pqe({busy:e}){const t=Z$(e);return u.jsxs(W,{children:[u.jsx(cx,{value:t}),u.jsx(Xk,{busy:t})]})}function Wa({header:e,subHeader:t,tileCount:n,statLabel:r,liveIdlePerTile:i,queryIdlePerTile:o,metricType:a,sparklineHeight:s,isExpanded:l=!1,setIsExpanded:c=()=>{},isDark:d=!1,isNarrow:f}){const[p,{width:v}]=Ss(),x=J(Cn)===void 0,{avgBusy:y,aggQueryBusyPerTs:b,tileCountArr:w,liveBusyPerTile:_,busy:S}=poe({isLive:x,tileCount:n,liveIdlePerTile:i,queryIdlePerTile:o}),C=Z$(y);return u.jsx(W,{ref:p,children:u.jsx(so,{className:Te(Dp.fullWidth,d&&Dp.dark),isNarrow:f,children:u.jsxs(W,{direction:"column",justify:"between",height:"100%",gap:"1",children:[u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(cx,{value:b===void 0?C:void 0,history:b,height:s,background:d?vk:void 0}),u.jsxs(Lqe,{tileCountArr:w,liveBusyPerTile:_,queryIdlePerTile:o,width:v,header:u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),isExpanded:l,setIsExpanded:c,children:[u.jsx("div",{className:Dp.tileContainer,children:w.map((j,T)=>{const E=S==null?void 0:S[T];return E===void 0?u.jsx("div",{className:Dp.tile,style:{background:d?"#232A38":"gray"}},T):u.jsx("div",{className:Dp.tile,style:{"--busy":`${E*100}%`}},T)})}),u.jsx(Xk,{busy:C})]})]})})})}function Tse({header:e,subHeader:t,metricType:n,statLabel:r}){return u.jsxs(W,{justify:"between",gap:"1",children:[u.jsxs(W,{direction:"column",gap:"0",children:[u.jsx(Z,{className:Dp.header,children:e}),t&&u.jsx(Z,{className:Dp.subHeader,children:t})]}),n&&u.jsx(Nqe,{type:n,label:r})]})}function HM(){var s;const e=J(Cn),t=!e,n=J(rg),r=J(Nb),i=J(Hze),o=tc(e),a=m.useMemo(()=>{var l,c;if(!(!((c=(l=o.response)==null?void 0:l.tile_timers)!=null&&c.length)||t||!n))return o.response.tile_timers.reduce((d,f)=>{var v;if(!f.tile_timers.length)return d;const p={};f.tile_timers.length!==n.length&&console.warn("Length mismatch between tiles and time timers",f.tile_timers,n);for(let x=0;xu.jsx(Wa,{header:s,tileCount:r[s],liveIdlePerTile:i==null?void 0:i[s],queryIdlePerTile:o||a==null?void 0:a[s],statLabel:"",sparklineHeight:Oqe,isExpanded:n,setIsExpanded:t},s))})}function Aqe(){const e=m.useRef({}),t=J(Op),n=J(bx),r=J(dp),i=r??(t==null?void 0:t-1),o=Bg(i),a=Bg(n);return e.current.replaySlotsPerSecond=o,e.current.turbineSlotsPerSecond=a,m.useEffect(()=>{if(t==null||n==null||e.current.totalSlotsEstimate!=null)return;const s=Ise(400,100,t,r,n);e.current={totalSlotsEstimate:s}},[r,n,t,e]),Qu(()=>{const s=e.current.totalSlotsEstimate;if(t==null||n==null||s==null||o==null||a==null)return;const l=Ise(o,a,t,r,n),c=r==null||l==null?void 0:l+t-1-r,d=o===0||c==null?void 0:c/o;if(e.current.remainingSeconds=d,!l||l>=s)return;const f=Math.min(.15*s,s-l),p=s-f;e.current.totalSlotsEstimate=p},500),e}function Ise(e,t,n,r,i){const o=r??n-1;if(o===i)return i-n;if(e<=t)return;const a=o-n+1,s=e*(i-o)/(e-t);return a+s}function Fqe({catchingUpRates:e}){const t=J(Op),n=J(bx),r=J(dp),i=e.replaySlotsPerSecond,o=e.turbineSlotsPerSecond,a=i==null||o==null?void 0:Math.round(i-o);return u.jsxs(Mt,{mt:"3px",className:ur.barsStatsContainer,children:[u.jsxs(W,{justify:"between",className:ur.barsStatsRow,children:[u.jsx(j6,{className:ur.replayed,value:r==null||t==null?void 0:r-t+1,label:"Slots Replayed"}),u.jsx(j6,{className:ur.toReplay,value:r==null||n==null?void 0:n-r,label:"Slots Remaining"})]}),u.jsxs(W,{justify:"between",className:ur.barsStatsColumn,children:[u.jsx(j6,{className:ur.speed,value:i,label:"Slots/s Replay Speed"}),u.jsx(j6,{className:ur.speed,value:a,label:"Slots/s Catchup Speed"})]})]})}function j6({value:e,label:t,className:n}){const r=e===void 0?"--":e.toLocaleString(void 0,{maximumFractionDigits:0});return u.jsxs(Z,{truncate:!0,className:n,children:[u.jsxs(Z,{className:ur.bold,children:[r," "]}),t]})}function Ese(){return u.jsx(W,{gapX:"15px",gapY:"5px",wrap:"wrap",children:Object.entries(PZe).map(([e,t])=>u.jsxs(W,{gap:"5px",flexShrink:"0",children:[u.jsx("div",{className:lu.legendColorBox,style:{backgroundColor:t}}),u.jsx(Z,{className:lu.legendLabel,children:e})]},e))})}function Uqe(){const e=Ee($M),t=J(tZe),n=Aqe(),r=J(Op),i=J(bx),o=J(dp),a=m.useMemo(()=>{if(r==null||i==null||o==null)return 0;const l=i-r+1;if(!l)return 0;const c=o-r+1;return rt.clamp(c/l,0,1)},[o,i,r]),s=Soe(a);return u.jsxs(u.Fragment,{children:[u.jsx(Q$,{phaseCompleteFraction:a,overallCompleteFraction:s,remainingSeconds:n.current.remainingSeconds}),u.jsxs(W,{direction:"column",mt:"8px",gap:"8px",className:yd.startupContentIndentation,children:[t&&u.jsxs(W,{ref:e,direction:"column",gap:"5px",children:[u.jsx(MZe,{}),u.jsx(fZe,{catchingUpRatesRef:n}),u.jsx($Ze,{}),u.jsx(Fqe,{catchingUpRates:n.current})]}),u.jsxs(W,{direction:"column",className:ur.card,mb:"14px",children:[u.jsxs(W,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(Z,{className:ur.title,children:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{flexGrow:"1",minHeight:"280px",chartId:"catching-up-shreds",isOnStartupScreen:!0})]}),u.jsx(Dqe,{})]})]})}const Bqe="_secondary-color_1cuvx_1",Wqe="_card_1cuvx_5",Vqe="_pie-chart-title_1cuvx_18",Hqe="_pie-chart-container_1cuvx_24",Zqe="_pie-chart_1cuvx_18",qqe="_shimmer_1cuvx_58",Gqe="_threshold-marker_1cuvx_43",Yqe="_marker-line_1cuvx_47",Kqe="_marker-icon_1cuvx_51",Xqe="_overlay_1cuvx_74",Jqe="_pie-chart-content_1cuvx_86",Qqe="_lg_1cuvx_93",eGe="_eighty_1cuvx_97",tGe="_details-box_1cuvx_103",nGe="_copyButton_1cuvx_105",rGe="_label_1cuvx_111",iGe="_snapshot-source_1cuvx_116",wi={secondaryColor:Bqe,card:Wqe,pieChartTitle:Vqe,pieChartContainer:Hqe,pieChart:Zqe,shimmer:qqe,thresholdMarker:Gqe,markerLine:Yqe,markerIcon:Kqe,overlay:Xqe,pieChartContent:Jqe,lg:Qqe,eighty:eGe,detailsBox:tGe,copyButton:nGe,label:rGe,snapshotSource:iGe},oGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("circle",{cx:12,cy:12,r:8})),aGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6m0-2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8z"})),sGe="_container_1vhtf_1",lGe="_horizontal_1vhtf_4",uGe="_vertical_1vhtf_9",cGe="_table-card_1vhtf_15",dGe="_narrow_1vhtf_21",fGe="_rows-container_1vhtf_26",hGe="_row_1vhtf_26",pGe="_xnarrow_1vhtf_44",mGe="_online_1vhtf_48",gGe="_pubkey-text_1vhtf_51",vGe="_peer_1vhtf_56",yGe="_status_1vhtf_62",bGe="_version_1vhtf_66",xGe="_client-icon_1vhtf_66",_Ge="_client-icon-placeholder_1vhtf_66",wGe="_suffix_1vhtf_70",kGe="_offline_1vhtf_75",SGe="_header-row_1vhtf_92",CGe="_toggle-row_1vhtf_97",jGe="_cell_1vhtf_116",TGe="_header_1vhtf_92",IGe="_pubkey_1vhtf_51",EGe="_stake_1vhtf_174",NGe="_stake-pct_1vhtf_187",un={container:sGe,horizontal:lGe,vertical:uGe,tableCard:cGe,narrow:dGe,rowsContainer:fGe,row:hGe,xnarrow:pGe,online:mGe,pubkeyText:gGe,peer:vGe,status:yGe,version:bGe,clientIcon:xGe,clientIconPlaceholder:_Ge,suffix:wGe,offline:kGe,headerRow:SGe,toggleRow:CGe,cell:jGe,header:TGe,pubkey:IGe,stake:EGe,stakePct:NGe},$Ge="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3c/svg%3e",MGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_474_23049)'%3e%3cpath%20d='M39.3846%2011.9422C39.3846%207.91449%2036.1195%204.64941%2032.0918%204.64941C28.0641%204.64941%2024.7991%207.91449%2024.7991%2011.9422C24.7991%2015.9698%2028.0641%2019.2349%2032.0918%2019.2349C36.1195%2019.2349%2039.3846%2015.9698%2039.3846%2011.9422Z'%20fill='white'/%3e%3cpath%20d='M32.0907%2017.6901C35.3062%2017.6901%2037.9129%2015.0834%2037.9129%2011.8678C37.9129%208.65226%2035.3062%206.04553%2032.0907%206.04553C28.8751%206.04553%2026.2684%208.65226%2026.2684%2011.8678C26.2684%2015.0834%2028.8751%2017.6901%2032.0907%2017.6901Z'%20fill='white'%20stroke='%23000000F2'%20stroke-width='0.540037'/%3e%3cpath%20d='M32.6719%2010.4479C32.2543%2010.7361%2031.8053%2010.8349%2031.3257%2010.7436C30.8452%2010.6529%2030.4636%2010.4018%2030.1799%209.99083L29.7579%209.3793L30.3633%208.96143L30.7854%209.57296C30.9533%209.81627%2031.1774%209.96374%2031.4585%2010.0148C31.7388%2010.0665%2032.0029%2010.0068%2032.249%209.83693L33.3171%209.09511C33.6566%208.85936%2034.123%208.94414%2034.3578%209.2843L32.6719%2010.4479Z'%20fill='%23000000F2'/%3e%3cpath%20d='M33.4893%2012.4798C33.2006%2012.0614%2033.1011%2011.6119%2033.1914%2011.1321C33.2812%2010.6515%2033.5315%2010.27%2033.9417%209.98692L34.552%209.56567L34.9707%2010.1723L34.3603%2010.5935C34.1175%2010.7611%2033.9705%2010.9851%2033.92%2011.2664C33.8688%2011.5468%2033.9289%2011.8111%2034.0991%2012.0577L34.8439%2013.1301C35.0793%2013.469%2034.9946%2013.9345%2034.6551%2014.1689L33.4893%2012.4798Z'%20fill='%23000000F2'/%3e%3cpath%20d='M31.4498%2013.3013C31.8674%2013.013%2032.3164%2012.9143%2032.796%2013.0055C33.2764%2013.0962%2033.6581%2013.3473%2033.9417%2013.7583L34.3638%2014.3698L33.7584%2014.7877L33.3363%2014.1762C33.1684%2013.9329%2032.9442%2013.7854%2032.6631%2013.7343C32.3828%2013.6827%2032.1188%2013.7423%2031.8726%2013.9122L30.8045%2014.654C30.4651%2014.8898%2029.9986%2014.805%2029.7639%2014.4648L31.4498%2013.3013Z'%20fill='%23000000F2'/%3e%3cpath%20d='M30.6689%2011.3224C30.9576%2011.7408%2031.0571%2012.1903%2030.9668%2012.6701C30.877%2013.1507%2030.6267%2013.5321%2030.2165%2013.8152L29.6062%2014.2365L29.1875%2013.6299L29.7979%2013.2086C30.0407%2013.041%2030.1877%2012.817%2030.2383%2012.5358C30.2894%2012.2554%2030.2293%2011.9911%2030.0591%2011.7445L29.3143%2010.672C29.0789%2010.3332%2029.1636%209.86764%2029.5031%209.6333L30.6689%2011.3224Z'%20fill='%23000000F2'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_474_23049'%3e%3crect%20width='15'%20height='15'%20fill='white'%20transform='translate(24.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",RGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_bam)'%3e%3cg%20transform='translate(25.5%204.5)%20scale(0.1%200.10204)'%3e%3cpath%20d='M124.208%2034.2304C125.338%2034.8826%20125.338%2035.939%20124.208%2036.5912L100.697%2050.1653C99.5673%2050.8175%2097.7375%2050.8175%2096.6079%2050.1653L85.4912%2043.7471C83.8097%2042.7763%2081.0548%2042.6789%2079.3221%2043.6202C77.5894%2044.5616%2077.5025%2046.217%2079.2301%2047.2144L90.4746%2053.7064C91.6041%2054.3586%2091.6041%2055.415%2090.4746%2056.0672L66.9634%2069.6413C65.8338%2070.2935%2064.0041%2070.2935%2062.8745%2069.6413L5.62989%2036.5912C4.50034%2035.939%204.50033%2034.8826%205.62989%2034.2304L62.8694%201.18319C63.9989%200.531042%2065.8338%200.528091%2066.9634%201.18024L124.208%2034.2304ZM58.7805%2037.7745C57.0887%2036.7977%2054.3389%2036.7977%2052.6471%2037.7745L49.5805%2039.545C47.8887%2040.5218%2047.8887%2042.1094%2049.5805%2043.0861C51.2722%2044.0629%2054.022%2044.0629%2055.7138%2043.0861L58.7805%2041.3156C60.4723%2040.3388%2060.4723%2038.7512%2058.7805%2037.7745ZM78.2028%2026.561C76.511%2025.5843%2073.7612%2025.5843%2072.0694%2026.561L69.0027%2028.3316C67.311%2029.3083%2067.3109%2030.8959%2069.0027%2031.8727C70.6945%2032.8494%2073.4443%2032.8494%2075.1361%2031.8727L78.2028%2030.1021C79.8945%2029.1254%2079.8945%2027.5378%2078.2028%2026.561Z'%20fill='white'/%3e%3cpath%20d='M59.2891%2076.1449L2.04445%2043.0947C0.914891%2042.4425%200%2042.9707%200%2044.275V110.375C0%20111.674%200.914891%20113.264%202.04445%20113.916L24.5334%20126.9C25.663%20127.553%2026.5779%20127.024%2026.5779%20125.72V108.162C26.5779%20106.226%2027.871%20105.285%2029.5423%20106.185C31.2136%20107.085%2032.7112%20109.555%2032.7112%20111.556V129.261C32.7112%20130.566%2033.6261%20132.15%2034.7557%20132.802L59.2891%20146.967C60.4135%20147.616%2061.3335%20147.085%2061.3335%20145.786V79.6859C61.3335%2078.3816%2060.4135%2076.7941%2059.2891%2076.1449ZM32.7112%2086.7681C32.7112%2088.7216%2031.3363%2089.5154%2029.6445%2088.5387C27.9527%2087.5619%2026.5779%2085.1805%2026.5779%2083.227V79.6859C26.5779%2077.7265%2027.9476%2076.9357%2029.6445%2077.9154C31.3414%2078.8951%2032.7112%2081.2676%2032.7112%2083.227V86.7681Z'%20fill='white'/%3e%3cpath%20d='M129.768%2044.2782L129.758%20110.384C129.758%20111.683%20128.838%20113.276%20127.714%20113.926L115.447%20121.008C114.318%20121.66%20113.403%20121.126%20113.403%20119.821V102.116C113.403%20100.115%20111.977%2099.3333%20110.239%20100.402C108.501%20101.47%20107.269%20103.869%20107.269%20105.805V123.363C107.269%20124.667%20106.349%20126.254%20105.22%20126.907L92.9531%20133.989C91.8235%20134.641%2090.9086%20134.107%2090.9086%20132.803V115.097C90.9086%20113.096%2089.4826%20112.314%2087.7448%20113.383C86.007%20114.451%2084.7753%20116.85%2084.7753%20118.786V136.344C84.7753%20137.648%2083.8553%20139.235%2082.7257%20139.888L70.459%20146.97C69.3294%20147.622%2068.4146%20147.082%2068.4146%20145.784L68.4248%2079.6773C68.435%2078.373%2069.3499%2076.7884%2070.4794%2076.1362L93.9906%2062.562C95.1202%2061.9099%2096.0351%2062.444%2096.0351%2063.7483V76.7323C96.0351%2078.7212%2097.4508%2079.5091%2099.1835%2078.4556C100.916%2077.4021%20102.163%2074.9883%20102.163%2073.0466V60.2101C102.163%2058.9058%20103.083%2057.3183%20104.213%2056.6661L127.724%2043.0919C128.848%2042.4427%20129.768%2042.9739%20129.768%2044.2782Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_bam'%3e%3crect%20width='13'%20height='15'%20fill='white'%20transform='translate(25.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",LGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.9666%2013.9482L32%204.5V15.7351H30.4462L29.7889%2016.2729L29.3705%2016.0637V15.6963L30.3462%2014.9648H31.1439L30.9666%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M33.0334%2013.9482L32%204.5V15.7351H33.5538L34.2112%2016.2729L34.6295%2016.0637V15.6963L33.6539%2014.9648H32.8562L33.0334%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M32.7769%2016.0338H31.2231L31.5278%2018.1254C31.9083%2017.9732%2032.1222%2017.9697%2032.5027%2018.1254L32.7769%2016.0338Z'%20fill='white'/%3e%3ccircle%20cx='32'%20cy='18.9024'%20r='0.597609'%20fill='white'/%3e%3c/svg%3e",PGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.3732%2012.8333L28.5766%2017.4999H26.5V12.8333H30.3732Z'%20fill='white'/%3e%3cpath%20d='M32.2294%207.25712L26.5%2012.8333V6.5H33.007L32.2294%207.25712Z'%20fill='white'/%3e%3cpath%20d='M37.5001%2017.4997H28.5142L29.2508%2016.7805L35.0308%2011.1317L31.1466%2011.1272L32.9948%206.5H33.7908C36.6966%206.5%2038.0893%2010.2843%2035.9518%2012.3714L34.1024%2014.1786L34.1002%2014.181L37.5001%2017.5V17.4997Z'%20fill='white'/%3e%3c/svg%3e",OGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M16.1566%209.23523L18.3627%2017.4735H12.9886L11.3783%2014.6581L9.93787%2017.2225H6.92126L6.00037%2013.9823L7.64783%2011.9999L10.9594%2013.9257L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M26.0904%2015.5H24.5V8.5H26.0904V15.5Z'%20fill='white'/%3e%3cpath%20d='M39.5%2015.5H37.9096V8.5H39.5V15.5Z'%20fill='white'/%3e%3cpath%20d='M36.0011%2013.9841H32.8203V12.6465H36.0011V13.9841Z'%20fill='white'/%3e%3cpath%20d='M27.9989%2012.6465H26.3583V11.2049H27.9989V12.6465Z'%20fill='white'/%3e%3cpath%20d='M32.8203%2012.6465H31.1797V11.2049H32.8203V12.6465Z'%20fill='white'/%3e%3cpath%20d='M37.6417%2012.6465H36.0011V11.2049H37.6417V12.6465Z'%20fill='white'/%3e%3cpath%20d='M31.1797%2011.2049H27.9989V9.8673H31.1797V11.2049Z'%20fill='white'/%3e%3c/svg%3e",zGe="/assets/firedancer_circle_logo-D9jlxCje.svg",DGe="/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg",AGe="/assets/frankendancer_circle_logo-D5z79vwQ.svg",FGe="/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg",UGe="data:image/svg+xml,%3csvg%20width='35'%20height='20'%20viewBox='0%200%2035%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='25'%20cy='10'%20r='9.5'%20stroke='%233E332E'/%3e%3cmask%20id='path-2-inside-1_10887_28103'%20fill='white'%3e%3cpath%20d='M10%200C13.2712%200%2016.1755%201.57069%2018%203.99902C16.7442%205.67051%2016%207.74835%2016%2010C16%2012.2514%2016.7445%2014.3286%2018%2016C16.1756%2018.4287%2013.2715%2020%2010%2020C4.47715%2020%200%2015.5228%200%2010C0%204.47715%204.47715%200%2010%200Z'/%3e%3c/mask%3e%3cpath%20d='M18%203.99902L18.7995%204.5997L19.2508%203.99902L18.7995%203.39835L18%203.99902ZM18%2016L18.7995%2016.6006L19.2507%2016L18.7995%2015.3994L18%2016ZM10%200V1C12.9434%201%2015.5568%202.41194%2017.2005%204.5997L18%203.99902L18.7995%203.39835C16.7943%200.729431%2013.599%20-1%2010%20-1V0ZM18%203.99902L17.2005%203.39835C15.819%205.23708%2015%207.52433%2015%2010H16H17C17%207.97237%2017.6693%206.10394%2018.7995%204.5997L18%203.99902ZM16%2010H15C15%2012.4755%2015.8194%2014.7621%2017.2005%2016.6006L18%2016L18.7995%2015.3994C17.6695%2013.8951%2017%2012.0272%2017%2010H16ZM18%2016L17.2005%2015.3994C15.5567%2017.5876%2012.9436%2019%2010%2019V20V21C13.5994%2021%2016.7944%2019.2698%2018.7995%2016.6006L18%2016ZM10%2020V19C5.02944%2019%201%2014.9706%201%2010H0H-1C-1%2016.0751%203.92487%2021%2010%2021V20ZM0%2010H1C1%205.02944%205.02944%201%2010%201V0V-1C3.92487%20-1%20-1%203.92487%20-1%2010H0Z'%20fill='%233E332E'%20mask='url(%23path-2-inside-1_10887_28103)'/%3e%3c/svg%3e",BGe="_small-icon_imn4j_1",WGe="_medium-icon_imn4j_5",VGe="_large-icon_imn4j_9",HGe="_xlarge-icon_imn4j_13",ZGe={smallIcon:BGe,mediumIcon:WGe,largeIcon:VGe,xlargeIcon:HGe},qGe={[za.Frankendancer]:{src:AGe,alt:"Frankendancer Logo"},[za.Firedancer]:{src:zGe,alt:"Firedancer Logo"},[za.Agave]:{src:$Ge,alt:"Anza Logo"},[za.AgaveJito]:{src:MGe,alt:"Anza Jito Logo"},[za.AgavePaladin]:{src:LGe,alt:"Anza Paladin Logo"},[za.AgaveBam]:{src:RGe,alt:"Anza Bam Logo"},[za.AgaveRakurai]:{src:PGe,alt:"Anza Rakurai Logo"},[za.Sig]:null,[za.FiredancerHarmonic]:{src:DGe,alt:"Firedancer Harmonic Logo"},[za.AgaveHarmonic]:{src:OGe,alt:"Anza Harmonic Logo"},[za.FrankendancerHarmonic]:{src:FGe,alt:"Frankendancer Harmonic Logo"}},Nse=m.memo(function({client:e,size:t,showPlaceholder:n,className:r,placeholderClassName:i}){const o=Te(ZGe[`${t}Icon`],r),a=e?qGe[e]:void 0;return a?u.jsx("img",{src:a.src,alt:a.alt,className:o}):n?u.jsx("img",{src:UGe,alt:"Empty clients logo",className:Te(o,i)}):null}),GGe=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumSignificantDigits:3,maximumSignificantDigits:3});function ZM(e){if(e==null)return;const t=GGe.formatToParts(Number(e)/dd);let n="",r;for(const{value:i,type:o}of t)o==="compact"?r=i:n+=i;return{formatted:n,suffix:r}}function YGe(e,t,n){if(e==null||!t)return;const r=10**n,i=100n*BigInt(r)*e/t;return Number(i)/r}const T6=0,lh=1,e1=2,$se=4;function Mse(e){return()=>e}function KGe(e){e()}function _x(e,t){return n=>e(t(n))}function Rse(e,t){return()=>e(t)}function XGe(e,t){return n=>e(t,n)}function qM(e){return e!==void 0}function JGe(...e){return()=>{e.map(KGe)}}function t1(){}function I6(e,t){return t(e),e}function QGe(e,t){return t(e)}function Ar(...e){return e}function qn(e,t){return e(lh,t)}function Jt(e,t){e(T6,t)}function GM(e){e(e1)}function ki(e){return e($se)}function yt(e,t){return qn(e,XGe(t,T6))}function uu(e,t){const n=e(lh,r=>{n(),t(r)});return n}function Lse(e){let t,n;return r=>i=>{t=i,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function Pse(e,t){return e===t}function Fr(e=Pse){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function zt(e){return t=>n=>{e(n)&&t(n)}}function lt(e){return t=>_x(t,e)}function nc(e){return t=>()=>{t(e)}}function Be(e,...t){const n=eYe(...t);return(r,i)=>{switch(r){case e1:GM(e);return;case lh:return qn(e,n(i))}}}function rc(e,t){return n=>r=>{n(t=e(t,r))}}function Ap(e){return t=>n=>{e>0?e--:t(n)}}function wd(e){let t=null,n;return r=>i=>{t=i,!n&&(n=setTimeout(()=>{n=void 0,r(t)},e))}}function cn(...e){const t=new Array(e.length);let n=0,r=null;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{const c=n;n=n|s,t[a]=l,c!==i&&n===i&&r&&(r(),r=null)})}),o=>a=>{const s=()=>{o([a].concat(t))};n===i?s():r=s}}function eYe(...e){return t=>e.reduceRight(QGe,t)}function tYe(e){let t,n;const r=()=>t==null?void 0:t();return function(i,o){switch(i){case lh:return o?n===o?void 0:(r(),n=o,t=qn(e,o),t):(r(),t1);case e1:r(),n=null;return}}}function Ye(e){let t=e;const n=kn();return(r,i)=>{switch(r){case T6:t=i;break;case lh:{i(t);break}case $se:return t}return n(r,i)}}function Wo(e,t){return I6(Ye(t),n=>yt(e,n))}function kn(){const e=[];return(t,n)=>{switch(t){case T6:e.slice().forEach(r=>{r(n)});return;case e1:e.splice(0,e.length);return;case lh:return e.push(n),()=>{const r=e.indexOf(n);r>-1&&e.splice(r,1)}}}}function Es(e){return I6(kn(),t=>yt(e,t))}function Ln(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:nYe(),singleton:n}}const nYe=()=>Symbol();function rYe(e){const t=new Map,n=({constructor:r,dependencies:i,id:o,singleton:a})=>{if(a&&t.has(o))return t.get(o);const s=r(i.map(l=>n(l)));return a&&t.set(o,s),s};return n(e)}function Pi(...e){const t=kn(),n=new Array(e.length);let r=0;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{n[a]=l,r=r|s,r===i&&Jt(t,n)})}),function(o,a){switch(o){case e1:{GM(t);return}case lh:return r===i&&a(n),qn(t,a)}}}function Lt(e,t=Pse){return Be(e,Fr(t))}function YM(...e){return function(t,n){switch(t){case e1:return;case lh:return JGe(...e.map(r=>qn(r,n)))}}}var Va=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(Va||{});const iYe={0:"debug",3:"error",1:"log",2:"warn"},oYe=()=>typeof globalThis>"u"?window:globalThis,uh=Ln(()=>{const e=Ye(3);return{log:Ye((t,n,r=1)=>{var i;const o=(i=oYe().VIRTUOSO_LOG_LEVEL)!=null?i:ki(e);r>=o&&console[iYe[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function ic(e,t,n){return KM(e,t,n).callbackRef}function KM(e,t,n){const r=Pe.useRef(null);let i=a=>{};const o=Pe.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(a=>{const s=()=>{const l=a[0].target;l.offsetParent!==null&&e(l)};n?s():requestAnimationFrame(s)}):null,[e,n]);return i=a=>{a&&t?(o==null||o.observe(a),r.current=a):(r.current&&(o==null||o.unobserve(r.current)),r.current=null)},{callbackRef:i,ref:r}}function Ose(e,t,n,r,i,o,a,s,l){const c=Pe.useCallback(d=>{const f=aYe(d.children,t,s?"offsetWidth":"offsetHeight",i);let p=d.parentElement;for(;!p.dataset.virtuosoScroller;)p=p.parentElement;const v=p.lastElementChild.dataset.viewportType==="window";let x;v&&(x=p.ownerDocument.defaultView);const y=a?s?a.scrollLeft:a.scrollTop:v?s?x.scrollX||x.document.documentElement.scrollLeft:x.scrollY||x.document.documentElement.scrollTop:s?p.scrollLeft:p.scrollTop,b=a?s?a.scrollWidth:a.scrollHeight:v?s?x.document.documentElement.scrollWidth:x.document.documentElement.scrollHeight:s?p.scrollWidth:p.scrollHeight,w=a?s?a.offsetWidth:a.offsetHeight:v?s?x.innerWidth:x.innerHeight:s?p.offsetWidth:p.offsetHeight;r({scrollHeight:b,scrollTop:Math.max(y,0),viewportHeight:w}),o==null||o(s?zse("column-gap",getComputedStyle(d).columnGap,i):zse("row-gap",getComputedStyle(d).rowGap,i)),f!==null&&e(f)},[e,t,i,o,a,r,s]);return KM(c,n,l)}function aYe(e,t,n,r){const i=e.length;if(i===0)return null;const o=[];for(let a=0;a{if(!(l!=null&&l.offsetParent))return;const c=l.getBoundingClientRect(),d=c.width;let f,p;if(t){const v=t.getBoundingClientRect(),x=c.top-v.top;p=v.height-Math.max(0,x),f=x+t.scrollTop}else{const v=a.current.ownerDocument.defaultView;p=v.innerHeight-Math.max(0,c.top),f=c.top+v.scrollY}r.current={offsetTop:f,visibleHeight:p,visibleWidth:d},e(r.current)},[e,t]),{callbackRef:o,ref:a}=KM(i,!0,n),s=Pe.useCallback(()=>{i(a.current)},[i,a]);return Pe.useEffect(()=>{var l;if(t){t.addEventListener("scroll",s);const c=new ResizeObserver(()=>{requestAnimationFrame(s)});return c.observe(t),()=>{t.removeEventListener("scroll",s),c.unobserve(t)}}else{const c=(l=a.current)==null?void 0:l.ownerDocument.defaultView;return c==null||c.addEventListener("scroll",s),c==null||c.addEventListener("resize",s),()=>{c==null||c.removeEventListener("scroll",s),c==null||c.removeEventListener("resize",s)}}},[s,t,a]),o}const ga=Ln(()=>{const e=kn(),t=kn(),n=Ye(0),r=kn(),i=Ye(0),o=kn(),a=kn(),s=Ye(0),l=Ye(0),c=Ye(0),d=Ye(0),f=kn(),p=kn(),v=Ye(!1),x=Ye(!1),y=Ye(!1);return yt(Be(e,lt(({scrollTop:b})=>b)),t),yt(Be(e,lt(({scrollHeight:b})=>b)),a),yt(t,i),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:l,footerHeight:d,headerHeight:s,horizontalDirection:x,scrollBy:p,scrollContainerState:e,scrollHeight:a,scrollingInProgress:v,scrollTo:f,scrollTop:t,skipAnimationFrameInResizeObserver:y,smoothScrollTargetReached:r,statefulScrollTop:i,viewportHeight:o}},[],{singleton:!0}),wx={lvl:0};function Dse(e,t){const n=e.length;if(n===0)return[];let{index:r,value:i}=t(e[0]);const o=[];for(let a=1;at&&(s=s.concat(QM(i,t,n))),r>=t&&r<=n&&s.push({k:r,v:a}),r<=n&&(s=s.concat(QM(o,t,n))),s}function N6(e){const{l:t,lvl:n,r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(eR(t))return Wse(Gi(e,{lvl:n-1}));if(!_r(t)&&!_r(t.r))return Gi(t.r,{l:Gi(t,{r:t.r.l}),lvl:n,r:Gi(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(eR(e))return tR(Gi(e,{lvl:n-1}));if(!_r(r)&&!_r(r.l)){const i=r.l,o=eR(i)?r.lvl-1:r.lvl;return Gi(i,{l:Gi(e,{lvl:n-1,r:i.l}),lvl:i.lvl+1,r:tR(Gi(r,{l:i.r,lvl:o}))})}else throw new Error("Unexpected empty nodes")}}function Gi(e,t){return Use(t.k!==void 0?t.k:e.k,t.v!==void 0?t.v:e.v,t.lvl!==void 0?t.lvl:e.lvl,t.l!==void 0?t.l:e.l,t.r!==void 0?t.r:e.r)}function Ase(e){return _r(e.r)?e.l:N6(Gi(e,{r:Ase(e.r)}))}function eR(e){return _r(e)||e.lvl>e.r.lvl}function Fse(e){return _r(e.r)?[e.k,e.v]:Fse(e.r)}function Use(e,t,n,r=wx,i=wx){return{k:e,l:r,lvl:n,r:i,v:t}}function Bse(e){return tR(Wse(e))}function Wse(e){const{l:t}=e;return!_r(t)&&t.lvl===e.lvl?Gi(t,{r:Gi(e,{l:t.r})}):e}function tR(e){const{lvl:t,r:n}=e;return!_r(n)&&!_r(n.r)&&n.lvl===t&&n.r.lvl===t?Gi(n,{l:Gi(e,{r:n.l}),lvl:t+1}):e}function sYe(e){return Dse(e,({k:t,v:n})=>({index:t,value:n}))}function Vse(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function Sx(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}const nR=Ln(()=>({recalcInProgress:Ye(!1)}),[],{singleton:!0});function Hse(e,t,n){return e[$6(e,t,n)]}function $6(e,t,n,r=0){let i=e.length-1;for(;r<=i;){const o=Math.floor((r+i)/2),a=e[o],s=n(a,t);if(s===0)return o;if(s===-1){if(i-r<2)return o-1;i=o-1}else{if(i===r)return o;r=o+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function lYe(e,t,n,r){const i=$6(e,t,r),o=$6(e,n,r,i);return e.slice(i,o+1)}function du(e,t){return Math.round(e.getBoundingClientRect()[t])}function M6(e){return!_r(e.groupOffsetTree)}function rR({index:e},t){return t===e?0:t=f||o===p)&&(e=JM(e,f)):(c=p!==o,l=!0),d>i&&i>=f&&p!==o&&(e=Ns(e,i+1,p));c&&(e=Ns(e,a,o))}return[e,n]}function dYe(e){return typeof e.groupIndex<"u"}function fYe({offset:e},t){return t===e?0:t0?s+n:s}function Zse(e,t){if(!M6(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function qse(e,t,n){if(dYe(e))return t.groupIndices[e.groupIndex]+1;{const r=e.index==="LAST"?n:e.index;let i=Zse(r,t);return i=Math.max(0,i,Math.min(n,i)),i}}function hYe(e,t,n,r=0){return r>0&&(t=Math.max(t,Hse(e,r,rR).offset)),Dse(lYe(e,t,n,fYe),gYe)}function pYe(e,[t,n,r,i]){t.length>0&&r("received item sizes",t,Va.DEBUG);const o=e.sizeTree;let a=o,s=0;if(n.length>0&&_r(o)&&t.length===2){const p=t[0].size,v=t[1].size;a=n.reduce((x,y)=>Ns(Ns(x,y,p),y+1,v),a)}else[a,s]=cYe(a,t);if(a===o)return e;const{lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f}=iR(e.offsetTree,s,a,i);return{groupIndices:n,groupOffsetTree:n.reduce((p,v)=>Ns(p,v,Cx(v,f,i)),n1()),lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f,sizeTree:a}}function mYe(e){return Fp(e).map(({k:t,v:n},r,i)=>{const o=i[r+1];return{endIndex:o?o.k-1:1/0,size:n,startIndex:t}})}function Gse(e,t){let n=0,r=0;for(;ni.start===r&&(i.end===t||i.end===1/0)&&i.value===n}const yYe={offsetHeight:"height",offsetWidth:"width"},oc=Ln(([{log:e},{recalcInProgress:t}])=>{const n=kn(),r=kn(),i=Wo(r,0),o=kn(),a=kn(),s=Ye(0),l=Ye([]),c=Ye(void 0),d=Ye(void 0),f=Ye((j,T)=>du(j,yYe[T])),p=Ye(void 0),v=Ye(0),x=uYe(),y=Wo(Be(n,cn(l,e,v),rc(pYe,x),Fr()),x),b=Wo(Be(l,Fr(),rc((j,T)=>({current:T,prev:j.current}),{current:[],prev:[]}),lt(({prev:j})=>j)),[]);yt(Be(l,zt(j=>j.length>0),cn(y,v),lt(([j,T,E])=>{const $=j.reduce((D,M,O)=>Ns(D,M,Cx(M,T.offsetTree,E)||O),n1());return{...T,groupIndices:j,groupOffsetTree:$}})),y),yt(Be(r,cn(y),zt(([j,{lastIndex:T}])=>j[{endIndex:T,size:E,startIndex:j}])),n),yt(c,d);const w=Wo(Be(c,lt(j=>j===void 0)),!0);yt(Be(d,zt(j=>j!==void 0&&_r(ki(y).sizeTree)),lt(j=>[{endIndex:0,size:j,startIndex:0}])),n);const _=Es(Be(n,cn(y),rc(({sizes:j},[T,E])=>({changed:E!==j,sizes:E}),{changed:!1,sizes:x}),lt(j=>j.changed)));qn(Be(s,rc((j,T)=>({diff:j.prev-T,prev:T}),{diff:0,prev:0}),lt(j=>j.diff)),j=>{const{groupIndices:T}=ki(y);if(j>0)Jt(t,!0),Jt(o,j+Gse(j,T));else if(j<0){const E=ki(b);E.length>0&&(j-=Gse(-j,E)),Jt(a,j)}}),qn(Be(s,cn(e)),([j,T])=>{j<0&&T("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},Va.ERROR)});const S=Es(o);yt(Be(o,cn(y),lt(([j,T])=>{const E=T.groupIndices.length>0,$=[],D=T.lastSize;if(E){const M=kx(T.sizeTree,0);let O=0,te=0;for(;O{let Y=P.ranges;return P.prevSize!==0&&(Y=[...P.ranges,{endIndex:X+j-1,size:P.prevSize,startIndex:P.prevIndex}]),{prevIndex:X+j,prevSize:A,ranges:Y}},{prevIndex:j,prevSize:0,ranges:$}).ranges}return Fp(T.sizeTree).reduce((M,{k:O,v:te})=>({prevIndex:O+j,prevSize:te,ranges:[...M.ranges,{endIndex:O+j-1,size:M.prevSize,startIndex:M.prevIndex}]}),{prevIndex:0,prevSize:D,ranges:[]}).ranges})),n);const C=Es(Be(a,cn(y,v),lt(([j,{offsetTree:T},E])=>{const $=-j;return Cx($,T,E)})));return yt(Be(a,cn(y,v),lt(([j,T,E])=>{if(T.groupIndices.length>0){if(_r(T.sizeTree))return T;let $=n1();const D=ki(b);let M=0,O=0,te=0;for(;M<-j;){te=D[O];const q=D[O+1]-te-1;O++,M+=q+1}if($=Fp(T.sizeTree).reduce((q,{k:P,v:X})=>Ns(q,Math.max(0,P+j),X),$),M!==-j){const q=kx(T.sizeTree,te);$=Ns($,0,q);const P=cu(T.sizeTree,-j+1)[1];$=Ns($,1,P)}return{...T,sizeTree:$,...iR(T.offsetTree,0,$,E)}}else{const $=Fp(T.sizeTree).reduce((D,{k:M,v:O})=>Ns(D,Math.max(0,M+j),O),n1());return{...T,sizeTree:$,...iR(T.offsetTree,0,$,E)}}})),y),{beforeUnshiftWith:S,data:p,defaultItemSize:d,firstItemIndex:s,fixedItemSize:c,gap:v,groupIndices:l,itemSize:f,listRefresh:_,shiftWith:a,shiftWithOffset:C,sizeRanges:n,sizes:y,statefulTotalCount:i,totalCount:r,trackItemSizes:w,unshiftWith:o}},Ar(uh,nR),{singleton:!0});function bYe(e){return e.reduce((t,n)=>(t.groupIndices.push(t.totalCount),t.totalCount+=n+1,t),{groupIndices:[],totalCount:0})}const Yse=Ln(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:i}])=>{const o=kn(),a=kn(),s=Es(Be(o,lt(bYe)));return yt(Be(s,lt(l=>l.totalCount)),n),yt(Be(s,lt(l=>l.groupIndices)),e),yt(Be(Pi(i,t,r),zt(([l,c])=>M6(c)),lt(([l,c,d])=>cu(c.groupOffsetTree,Math.max(l-d,0),"v")[0]),Fr(),lt(l=>[l])),a),{groupCounts:o,topItemsIndexes:a}},Ar(oc,ga)),ch=Ln(([{log:e}])=>{const t=Ye(!1),n=Es(Be(t,zt(r=>r),Fr()));return qn(t,r=>{r&&ki(e)("props updated",{},Va.DEBUG)}),{didMount:n,propsReady:t}},Ar(uh),{singleton:!0}),xYe=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Kse(e){const t=typeof e=="number"?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!xYe)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const jx=Ln(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:i,fixedHeaderHeight:o,footerHeight:a,headerHeight:s,scrollingInProgress:l,scrollTo:c,smoothScrollTargetReached:d,viewportHeight:f},{log:p}])=>{const v=kn(),x=kn(),y=Ye(0);let b=null,w=null,_=null;function S(){b&&(b(),b=null),_&&(_(),_=null),w&&(clearTimeout(w),w=null),Jt(l,!1)}return yt(Be(v,cn(n,f,r,y,s,a,p),cn(e,o,i),lt(([[C,j,T,E,$,D,M,O],te,q,P])=>{const X=Kse(C),{align:A,behavior:Y,offset:F}=X,H=E-1,ee=qse(X,j,H);let ce=Cx(ee,j.offsetTree,te)+D;A==="end"?(ce+=q+cu(j.sizeTree,ee)[1]-T+P,ee===H&&(ce+=M)):A==="center"?ce+=(q+cu(j.sizeTree,ee)[1]-T+P)/2:ce-=$,F&&(ce+=F);const B=ae=>{S(),ae?(O("retrying to scroll to",{location:C},Va.DEBUG),Jt(v,C)):(Jt(x,!0),O("list did not change, scroll successful",{},Va.DEBUG))};if(S(),Y==="smooth"){let ae=!1;_=qn(t,je=>{ae=ae||je}),b=uu(d,()=>{B(ae)})}else b=uu(Be(t,_Ye(150)),B);return w=setTimeout(()=>{S()},1200),Jt(l,!0),O("scrolling from index to",{behavior:Y,index:ee,top:ce},Va.DEBUG),{behavior:Y,top:ce}})),c),{scrollTargetReached:x,scrollToIndex:v,topListHeight:y}},Ar(oc,ga,uh),{singleton:!0});function _Ye(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return r=>{r&&(t(!0),clearTimeout(n))}}}function oR(e,t){e==0?t():requestAnimationFrame(()=>{oR(e-1,t)})}function aR(e,t){const n=t-1;return typeof e=="number"?e:e.index==="LAST"?n:e.index}const Tx=Ln(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:i,scrollToIndex:o},{didMount:a}])=>{const s=Ye(!0),l=Ye(0),c=Ye(!0);return yt(Be(a,cn(l),zt(([d,f])=>!!f),nc(!1)),s),yt(Be(a,cn(l),zt(([d,f])=>!!f),nc(!1)),c),qn(Be(Pi(t,a),cn(s,n,e,c),zt(([[,d],f,{sizeTree:p},v,x])=>d&&(!_r(p)||qM(v))&&!f&&!x),cn(l)),([,d])=>{uu(i,()=>{Jt(c,!0)}),oR(4,()=>{uu(r,()=>{Jt(s,!0)}),Jt(o,d)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:l,scrolledToInitialItem:s}},Ar(oc,ga,jx,ch),{singleton:!0});function Xse(e,t){return Math.abs(e-t)<1.01}const Ix="up",Ex="down",wYe="none",kYe={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},SYe=0,Nx=Ln(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:i,viewportHeight:o}])=>{const a=Ye(!1),s=Ye(!0),l=kn(),c=kn(),d=Ye(4),f=Ye(SYe),p=Wo(Be(YM(Be(Lt(i),Ap(1),nc(!0)),Be(Lt(i),Ap(1),nc(!1),Lse(100))),Fr()),!1),v=Wo(Be(YM(Be(n,nc(!0)),Be(n,nc(!1),Lse(200))),Fr()),!1);yt(Be(Pi(Lt(i),Lt(f)),lt(([_,S])=>_<=S),Fr()),s),yt(Be(s,wd(50)),c);const x=Es(Be(Pi(r,Lt(o),Lt(t),Lt(e),Lt(d)),rc((_,[{scrollHeight:S,scrollTop:C},j,T,E,$])=>{const D=C+j-S>-$,M={scrollHeight:S,scrollTop:C,viewportHeight:j};if(D){let te,q;return C>_.state.scrollTop?(te="SCROLLED_DOWN",q=_.state.scrollTop-C):(te="SIZE_DECREASED",q=_.state.scrollTop-C||_.scrollTopDelta),{atBottom:!0,atBottomBecause:te,scrollTopDelta:q,state:M}}let O;return M.scrollHeight>_.state.scrollHeight?O="SIZE_INCREASED":j<_.state.viewportHeight?O="VIEWPORT_HEIGHT_DECREASING":C<_.state.scrollTop?O="SCROLLING_UPWARDS":O="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:O,state:M}},kYe),Fr((_,S)=>_&&_.atBottom===S.atBottom))),y=Wo(Be(r,rc((_,{scrollHeight:S,scrollTop:C,viewportHeight:j})=>{if(Xse(_.scrollHeight,S))return{changed:!1,jump:0,scrollHeight:S,scrollTop:C};{const T=S-(C+j)<1;return _.scrollTop!==C&&T?{changed:!0,jump:_.scrollTop-C,scrollHeight:S,scrollTop:C}:{changed:!0,jump:0,scrollHeight:S,scrollTop:C}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),zt(_=>_.changed),lt(_=>_.jump)),0);yt(Be(x,lt(_=>_.atBottom)),a),yt(Be(a,wd(50)),l);const b=Ye(Ex);yt(Be(r,lt(({scrollTop:_})=>_),Fr(),rc((_,S)=>ki(v)?{direction:_.direction,prevScrollTop:S}:{direction:S<_.prevScrollTop?Ix:Ex,prevScrollTop:S},{direction:Ex,prevScrollTop:0}),lt(_=>_.direction)),b),yt(Be(r,wd(50),nc(wYe)),b);const w=Ye(0);return yt(Be(p,zt(_=>!_),nc(0)),w),yt(Be(i,wd(100),cn(p),zt(([_,S])=>!!S),rc(([_,S],[C])=>[S,C],[0,0]),lt(([_,S])=>S-_)),w),{atBottomState:x,atBottomStateChange:l,atBottomThreshold:d,atTopStateChange:c,atTopThreshold:f,isAtBottom:a,isAtTop:s,isScrolling:p,lastJumpDueToItemResize:y,scrollDirection:b,scrollVelocity:w}},Ar(ga)),R6="top",L6="bottom",Jse="none";function Qse(e,t,n){return typeof e=="number"?n===Ix&&t===R6||n===Ex&&t===L6?e:0:n===Ix?t===R6?e.main:e.reverse:t===L6?e.main:e.reverse}function ele(e,t){var n;return typeof e=="number"?e:(n=e[t])!=null?n:0}const sR=Ln(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:i}])=>{const o=kn(),a=Ye(0),s=Ye(0),l=Ye(0),c=Wo(Be(Pi(Lt(r),Lt(i),Lt(n),Lt(o,Sx),Lt(l),Lt(a),Lt(t),Lt(e),Lt(s)),lt(([d,f,p,[v,x],y,b,w,_,S])=>{const C=d-_,j=b+w,T=Math.max(p-C,0);let E=Jse;const $=ele(S,R6),D=ele(S,L6);return v-=_,v+=p+w,x+=p+w,x-=_,v>d+j-$&&(E=Ix),xd!=null),Fr(Sx)),[0,0]);return{increaseViewportBy:s,listBoundary:o,overscan:l,topListHeight:a,visibleRange:c}},Ar(ga),{singleton:!0});function CYe(e,t,n){if(M6(t)){const r=Zse(e,t);return[{index:cu(t.groupOffsetTree,r)[0],offset:0,size:0},{data:n==null?void 0:n[0],index:r,offset:0,size:0}]}return[{data:n==null?void 0:n[0],index:e,offset:0,size:0}]}const lR={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function P6(e,t,n,r,i,o){const{lastIndex:a,lastOffset:s,lastSize:l}=i;let c=0,d=0;if(e.length>0){c=e[0].offset;const y=e[e.length-1];d=y.offset+y.size}const f=n-a,p=s+f*l+(f-1)*r,v=c,x=p-d;return{bottom:d,firstItemIndex:o,items:nle(e,i,o),offsetBottom:x,offsetTop:c,top:v,topItems:nle(t,i,o),topListHeight:t.reduce((y,b)=>b.size+y,0),totalCount:n}}function tle(e,t,n,r,i,o){let a=0;if(n.groupIndices.length>0)for(const d of n.groupIndices){if(d-a>=e)break;a++}const s=e+a,l=aR(t,s),c=Array.from({length:s}).map((d,f)=>({data:o[f+l],index:f+l,offset:0,size:0}));return P6(c,[],s,i,n,r)}function nle(e,t,n){if(e.length===0)return[];if(!M6(t))return e.map(c=>({...c,index:c.index+n,originalIndex:c.index}));const r=e[0].index,i=e[e.length-1].index,o=[],a=E6(t.groupOffsetTree,r,i);let s,l=0;for(const c of e){(!s||s.end{const y=Ye([]),b=Ye(0),w=kn();yt(o.topItemsIndexes,y);const _=Wo(Be(Pi(v,x,Lt(l,Sx),Lt(i),Lt(r),Lt(c),d,Lt(y),Lt(t),Lt(n),e),zt(([T,E,,$,,,,,,,D])=>{const M=D&&D.length!==$;return T&&!E&&!M}),lt(([,,[T,E],$,D,M,O,te,q,P,X])=>{const A=D,{offsetTree:Y,sizeTree:F}=A,H=ki(b);if($===0)return{...lR,totalCount:$};if(T===0&&E===0)return H===0?{...lR,totalCount:$}:tle(H,M,D,q,P,X||[]);if(_r(F))return H>0?null:P6(CYe(aR(M,$),A,X),[],$,P,A,q);const ee=[];if(te.length>0){const me=te[0],ke=te[te.length-1];let he=0;for(const ue of E6(F,me,ke)){const re=ue.value,ge=Math.max(ue.start,me),$e=Math.min(ue.end,ke);for(let pe=ge;pe<=$e;pe++)ee.push({data:X==null?void 0:X[pe],index:pe,offset:he,size:re}),he+=re}}if(!O)return P6([],ee,$,P,A,q);const ce=te.length>0?te[te.length-1]+1:0,B=hYe(Y,T,E,ce);if(B.length===0)return null;const ae=$-1,je=I6([],me=>{for(const ke of B){const he=ke.value;let ue=he.offset,re=ke.start;const ge=he.size;if(he.offset=E);pe++)me.push({data:X==null?void 0:X[pe],index:pe,offset:ue,size:ge}),ue+=ge+P}});return P6(je,ee,$,P,A,q)}),zt(T=>T!==null),Fr()),lR);yt(Be(e,zt(qM),lt(T=>T==null?void 0:T.length)),i),yt(Be(_,lt(T=>T.topListHeight)),f),yt(f,s),yt(Be(_,lt(T=>[T.top,T.bottom])),a),yt(Be(_,lt(T=>T.items)),w);const S=Es(Be(_,zt(({items:T})=>T.length>0),cn(i,e),zt(([{items:T},E])=>T[T.length-1].originalIndex===E-1),lt(([,T,E])=>[T-1,E]),Fr(Sx),lt(([T])=>T))),C=Es(Be(_,wd(200),zt(({items:T,topItems:E})=>T.length>0&&T[0].originalIndex===E.length),lt(({items:T})=>T[0].index),Fr())),j=Es(Be(_,zt(({items:T})=>T.length>0),lt(({items:T})=>{let E=0,$=T.length-1;for(;T[E].type==="group"&&E<$;)E++;for(;T[$].type==="group"&&$>E;)$--;return{endIndex:T[$].index,startIndex:T[E].index}}),Fr(Vse)));return{endReached:S,initialItemCount:b,itemsRendered:w,listState:_,rangeChanged:j,startReached:C,topItemsIndexes:y,...p}},Ar(oc,Yse,sR,Tx,jx,Nx,ch,nR),{singleton:!0}),rle=Ln(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:i}])=>{const o=kn(),a=Wo(Be(Pi(n,e,r,t,i),lt(([s,l,c,d,f])=>s+l+c+d+f.offsetBottom+f.bottom)),0);return yt(Lt(a),o),{totalListHeight:a,totalListHeightChanged:o}},Ar(ga,Up),{singleton:!0}),jYe=Ln(([{viewportHeight:e},{totalListHeight:t}])=>{const n=Ye(!1),r=Wo(Be(Pi(n,e,t),zt(([i])=>i),lt(([,i,o])=>Math.max(0,i-o)),wd(0),Fr()),0);return{alignToBottom:n,paddingTopAddition:r}},Ar(ga,rle),{singleton:!0}),ile=Ln(()=>({context:Ye(null)})),TYe=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...i},viewportBottom:o,viewportTop:a})=>to?{...i,align:n??"end",behavior:r}:null,ole=Ln(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:i,headerHeight:o,scrollingInProgress:a,scrollTop:s,viewportHeight:l},{scrollToIndex:c}])=>{const d=kn();return yt(Be(d,cn(t,l,n,o,i,r,s),cn(e),lt(([[f,p,v,x,y,b,w,_],S])=>{const{align:C,behavior:j,calculateViewLocation:T=TYe,done:E,...$}=f,D=qse(f,p,x-1),M=Cx(D,p.offsetTree,S)+y+b,O=M+cu(p.sizeTree,D)[1],te=_+b,q=_+v-w,P=T({itemBottom:O,itemTop:M,locationParams:{align:C,behavior:j,...$},viewportBottom:q,viewportTop:te});return P?E&&uu(Be(a,zt(X=>!X),Ap(ki(a)?1:2)),E):E&&E(),P}),zt(f=>f!==null)),c),{scrollIntoView:d}},Ar(oc,ga,jx,Up,uh),{singleton:!0});function ale(e){return e?e==="smooth"?"smooth":"auto":!1}const IYe=(e,t)=>typeof e=="function"?ale(e(t)):t&&ale(e),EYe=Ln(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:i,isAtBottom:o},{scrollToIndex:a},{scrolledToInitialItem:s},{didMount:l,propsReady:c},{log:d},{scrollingInProgress:f},{context:p},{scrollIntoView:v}])=>{const x=Ye(!1),y=kn();let b=null;function w(j){Jt(a,{align:"end",behavior:j,index:"LAST"})}qn(Be(Pi(Be(Lt(t),Ap(1)),l),cn(Lt(x),o,s,f),lt(([[j,T],E,$,D,M])=>{let O=T&&D,te="auto";return O&&(te=IYe(E,$||M),O=O&&!!te),{followOutputBehavior:te,shouldFollow:O,totalCount:j}}),zt(({shouldFollow:j})=>j)),({followOutputBehavior:j,totalCount:T})=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j)}):b=uu(e,()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j),b=null})});function _(j){const T=uu(i,E=>{j&&!E.atBottom&&E.notAtBottomBecause==="SIZE_INCREASED"&&!b&&(ki(d)("scrolling to bottom due to increased size",{},Va.DEBUG),w("auto"))});setTimeout(T,100)}qn(Be(Pi(Lt(x),t,c),zt(([j,,T])=>j&&T),rc(({value:j},[,T])=>({refreshed:j===T,value:T}),{refreshed:!1,value:0}),zt(({refreshed:j})=>j),cn(x,t)),([,j])=>{ki(s)&&_(j!==!1)}),qn(y,()=>{_(ki(x)!==!1)}),qn(Pi(Lt(x),i),([j,T])=>{j&&!T.atBottom&&T.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&w("auto")});const S=Ye(null),C=kn();return yt(YM(Be(Lt(r),lt(j=>{var T;return(T=j==null?void 0:j.length)!=null?T:0})),Be(Lt(t))),C),qn(Be(Pi(Be(C,Ap(1)),l),cn(Lt(S),s,f,p),lt(([[j,T],E,$,D,M])=>T&&$&&(E==null?void 0:E({context:M,totalCount:j,scrollingInProgress:D}))),zt(j=>!!j),wd(0)),j=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("scrolling into view",{}),Jt(v,j)}):b=uu(e,()=>{ki(d)("scrolling into view",{}),Jt(v,j),b=null})}),{autoscrollToBottom:y,followOutput:x,scrollIntoViewOnChange:S}},Ar(oc,Nx,jx,Tx,ch,uh,ga,ile,ole)),NYe=Ln(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:i},{initialItemCount:o,listState:a},{didMount:s}])=>(yt(Be(s,cn(o),zt(([,l])=>l!==0),cn(i,r,t,n,e),lt(([[,l],c,d,f,p,v=[]])=>tle(l,c,d,f,p,v))),a),{}),Ar(oc,Tx,Up,ch),{singleton:!0}),$Ye=Ln(([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=Ye(0);return qn(Be(e,cn(r),zt(([,i])=>i!==0),lt(([,i])=>({top:i}))),i=>{uu(Be(n,Ap(1),zt(o=>o.items.length>1)),()=>{requestAnimationFrame(()=>{Jt(t,i)})})}),{initialScrollTop:r}},Ar(ch,ga,Up),{singleton:!0}),sle=Ln(([{scrollVelocity:e}])=>{const t=Ye(!1),n=kn(),r=Ye(!1);return yt(Be(e,cn(r,t,n),zt(([i,o])=>!!o),lt(([i,o,a,s])=>{const{enter:l,exit:c}=o;if(a){if(c(i,s))return!1}else if(l(i,s))return!0;return a}),Fr()),t),qn(Be(Pi(t,e,n),cn(r)),([[i,o,a],s])=>{i&&s&&s.change&&s.change(o,a)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},Ar(Nx),{singleton:!0}),uR=Ln(([{scrollContainerState:e,scrollTo:t}])=>{const n=kn(),r=kn(),i=kn(),o=Ye(!1),a=Ye(void 0);return yt(Be(Pi(n,r),lt(([{scrollHeight:s,scrollTop:l,viewportHeight:c},{offsetTop:d}])=>({scrollHeight:s,scrollTop:Math.max(0,l-d),viewportHeight:c}))),e),yt(Be(t,cn(r),lt(([s,{offsetTop:l}])=>({...s,top:s.top+l}))),i),{customScrollParent:a,useWindowScroll:o,windowScrollContainerState:n,windowScrollTo:i,windowViewportRect:r}},Ar(ga)),MYe=Ln(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:i},{didMount:o},{useWindowScroll:a,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=kn(),d=Ye(void 0),f=Ye(null),p=Ye(null);return yt(s,f),yt(l,p),qn(Be(c,cn(t,r,a,f,p,n)),([v,x,y,b,w,_,S])=>{const C=mYe(x.sizeTree);b&&w!==null&&_!==null&&(y=w.scrollTop-_.offsetTop),y-=S,v({ranges:C,scrollTop:y})}),yt(Be(d,zt(qM),lt(RYe)),i),yt(Be(o,cn(d),zt(([,v])=>v!==void 0),Fr(),lt(([,v])=>v.ranges)),e),{getState:c,restoreStateFrom:d}},Ar(oc,ga,Tx,ch,uR));function RYe(e){return{align:"start",index:0,offset:e.scrollTop}}const LYe=Ln(([{topItemsIndexes:e}])=>{const t=Ye(0);return yt(Be(t,zt(n=>n>=0),lt(n=>Array.from({length:n}).map((r,i)=>i))),e),{topItemCount:t}},Ar(Up));function lle(e){let t=!1,n;return()=>(t||(t=!0,n=e()),n)}const PYe=lle(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),OYe=Ln(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:i,isScrolling:o,lastJumpDueToItemResize:a,scrollDirection:s},{listState:l},{beforeUnshiftWith:c,gap:d,shiftWithOffset:f,sizes:p},{log:v},{recalcInProgress:x}])=>{const y=Es(Be(l,cn(a),rc(([,w,_,S],[{bottom:C,items:j,offsetBottom:T,totalCount:E},$])=>{const D=C+T;let M=0;return _===E&&w.length>0&&j.length>0&&(j[0].originalIndex===0&&w[0].originalIndex===0||(M=D-S,M!==0&&(M+=$))),[M,j,E,D]},[0,[],0,0]),zt(([w])=>w!==0),cn(r,s,n,i,v,x),zt(([,w,_,S,,,C])=>!C&&!S&&w!==0&&_===Ix),lt(([[w],,,,,_])=>(_("Upward scrolling compensation",{amount:w},Va.DEBUG),w))));function b(w){w>0?(Jt(t,{behavior:"auto",top:-w}),Jt(e,0)):(Jt(e,0),Jt(t,{behavior:"auto",top:-w}))}return qn(Be(y,cn(e,o)),([w,_,S])=>{S&&PYe()?Jt(e,_-w):b(-w)}),qn(Be(Pi(Wo(o,!1),e,x),zt(([w,_,S])=>!w&&!S&&_!==0),lt(([w,_])=>_),wd(1)),b),yt(Be(f,lt(w=>({top:-w}))),t),qn(Be(c,cn(p,d),lt(([w,{groupIndices:_,lastSize:S,sizeTree:C},j])=>{function T(E){return E*(S+j)}if(_.length===0)return T(w);{let E=0;const $=kx(C,0);let D=0,M=0;for(;Dw&&(E-=$,O=w-D+1),D+=O,E+=T(O),M++}return E}})),w=>{Jt(e,w),requestAnimationFrame(()=>{Jt(t,{top:w}),requestAnimationFrame(()=>{Jt(e,0),Jt(x,!1)})})}),{deviation:e}},Ar(ga,Nx,Up,oc,uh,nR)),zYe=Ln(([e,t,n,r,i,o,a,s,l,c,d])=>({...e,...t,...n,...r,...i,...o,...a,...s,...l,...c,...d}),Ar(sR,NYe,ch,sle,rle,$Ye,jYe,uR,ole,uh,ile)),ule=Ln(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,gap:i,groupIndices:o,itemSize:a,sizeRanges:s,sizes:l,statefulTotalCount:c,totalCount:d,trackItemSizes:f},{initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:x},y,b,w,{listState:_,topItemsIndexes:S,...C},{scrollToIndex:j},T,{topItemCount:E},{groupCounts:$},D])=>(yt(C.rangeChanged,D.scrollSeekRangeChanged),yt(Be(D.windowViewportRect,lt(M=>M.visibleHeight)),y.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,gap:i,groupCounts:$,initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:x,sizeRanges:s,topItemCount:E,topItemsIndexes:S,totalCount:d,...w,groupIndices:o,itemSize:a,listState:_,scrollToIndex:j,statefulTotalCount:c,trackItemSizes:f,...C,...D,...y,sizes:l,...b}),Ar(oc,Tx,ga,MYe,EYe,Up,jx,OYe,LYe,Yse,zYe));function DYe(e,t){const n={},r={};let i=0;const o=e.length;for(;i(w[_]=S=>{const C=b[t.methods[_]];Jt(C,S)},w),{})}function d(b){return a.reduce((w,_)=>(w[_]=tYe(b[t.events[_]]),w),{})}const f=Pe.forwardRef((b,w)=>{const{children:_,...S}=b,[C]=Pe.useState(()=>I6(rYe(e),E=>{l(E,S)})),[j]=Pe.useState(Rse(d,C));O6(()=>{for(const E of a)E in S&&qn(j[E],S[E]);return()=>{Object.values(j).map(GM)}},[S,j,C]),O6(()=>{l(C,S)}),Pe.useImperativeHandle(w,Mse(c(C)));const T=n;return u.jsx(s.Provider,{value:C,children:n?u.jsx(T,{...DYe([...r,...i,...a],S),children:_}):_})}),p=b=>{const w=Pe.useContext(s);return Pe.useCallback(_=>{Jt(w[b],_)},[w,b])},v=b=>{const w=Pe.useContext(s)[b],_=Pe.useCallback(S=>qn(w,S),[w]);return Pe.useSyncExternalStore(_,()=>ki(w),()=>ki(w))},x=b=>{const w=Pe.useContext(s)[b],[_,S]=Pe.useState(Rse(ki,w));return O6(()=>qn(w,C=>{C!==_&&S(Mse(C))}),[w,_]),_},y=Pe.version.startsWith("18")?v:x;return{Component:f,useEmitter:(b,w)=>{const _=Pe.useContext(s)[b];O6(()=>qn(_,w),[w,_])},useEmitterValue:y,usePublisher:p}}const z6=Pe.createContext(void 0),cle=Pe.createContext(void 0),dle=typeof document<"u"?Pe.useLayoutEffect:Pe.useEffect;function dR(e){return"self"in e}function AYe(e){return"body"in e}function fle(e,t,n,r=t1,i,o){const a=Pe.useRef(null),s=Pe.useRef(null),l=Pe.useRef(null),c=Pe.useCallback(p=>{let v,x,y;const b=p.target;if(AYe(b)||dR(b)){const _=dR(b)?b:b.defaultView;y=o?_.scrollX:_.scrollY,v=o?_.document.documentElement.scrollWidth:_.document.documentElement.scrollHeight,x=o?_.innerWidth:_.innerHeight}else y=o?b.scrollLeft:b.scrollTop,v=o?b.scrollWidth:b.scrollHeight,x=o?b.offsetWidth:b.offsetHeight;const w=()=>{e({scrollHeight:v,scrollTop:Math.max(y,0),viewportHeight:x})};p.suppressFlushSync?w():WU.flushSync(w),s.current!==null&&(y===s.current||y<=0||y===v-x)&&(s.current=null,t(!0),l.current&&(clearTimeout(l.current),l.current=null))},[e,t,o]);Pe.useEffect(()=>{const p=i||a.current;return r(i||a.current),c({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",c,{passive:!0}),()=>{r(null),p.removeEventListener("scroll",c)}},[a,c,n,r,i]);function d(p){const v=a.current;if(!v||(o?"offsetWidth"in v&&v.offsetWidth===0:"offsetHeight"in v&&v.offsetHeight===0))return;const x=p.behavior==="smooth";let y,b,w;dR(v)?(b=Math.max(du(v.document.documentElement,o?"width":"height"),o?v.document.documentElement.scrollWidth:v.document.documentElement.scrollHeight),y=o?v.innerWidth:v.innerHeight,w=o?window.scrollX:window.scrollY):(b=v[o?"scrollWidth":"scrollHeight"],y=du(v,o?"width":"height"),w=v[o?"scrollLeft":"scrollTop"]);const _=b-y;if(p.top=Math.ceil(Math.max(Math.min(_,p.top),0)),Xse(y,b)||p.top===w){e({scrollHeight:b,scrollTop:w,viewportHeight:y}),x&&t(!0);return}x?(s.current=p.top,l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,s.current=null,t(!0)},1e3)):s.current=null,o&&(p={behavior:p.behavior,left:p.top}),v.scrollTo(p)}function f(p){o&&(p={behavior:p.behavior,left:p.top}),a.current.scrollBy(p)}return{scrollByCallback:f,scrollerRef:a,scrollToCallback:d}}const fR="-webkit-sticky",hle="sticky",hR=lle(()=>{if(typeof document>"u")return hle;const e=document.createElement("div");return e.style.position=fR,e.style.position===fR?fR:hle});function pR(e){return e}const FYe=Ln(()=>{const e=Ye(s=>`Item ${s}`),t=Ye(s=>`Group ${s}`),n=Ye({}),r=Ye(pR),i=Ye("div"),o=Ye(t1),a=(s,l=null)=>Wo(Be(n,lt(c=>c[s]),Fr()),l);return{components:n,computeItemKey:r,EmptyPlaceholder:a("EmptyPlaceholder"),FooterComponent:a("Footer"),GroupComponent:a("Group","div"),groupContent:t,HeaderComponent:a("Header"),HeaderFooterTag:i,ItemComponent:a("Item","div"),itemContent:e,ListComponent:a("List","div"),ScrollerComponent:a("Scroller","div"),scrollerRef:o,ScrollSeekPlaceholder:a("ScrollSeekPlaceholder"),TopItemListComponent:a("TopItemList")}}),UYe=Ln(([e,t])=>({...e,...t}),Ar(ule,FYe)),BYe=({height:e})=>u.jsx("div",{style:{height:e}}),WYe={overflowAnchor:"none",position:hR(),zIndex:1},ple={overflowAnchor:"none"},VYe={...ple,display:"inline-block",height:"100%"},mle=Pe.memo(function({showTopList:e=!1}){const t=Wt("listState"),n=ml("sizeRanges"),r=Wt("useWindowScroll"),i=Wt("customScrollParent"),o=ml("windowScrollContainerState"),a=ml("scrollContainerState"),s=i||r?o:a,l=Wt("itemContent"),c=Wt("context"),d=Wt("groupContent"),f=Wt("trackItemSizes"),p=Wt("itemSize"),v=Wt("log"),x=ml("gap"),y=Wt("horizontalDirection"),{callbackRef:b}=Ose(n,p,f,e?t1:s,v,x,i,y,Wt("skipAnimationFrameInResizeObserver")),[w,_]=Pe.useState(0);vR("deviation",P=>{w!==P&&_(P)});const S=Wt("EmptyPlaceholder"),C=Wt("ScrollSeekPlaceholder")||BYe,j=Wt("ListComponent"),T=Wt("ItemComponent"),E=Wt("GroupComponent"),$=Wt("computeItemKey"),D=Wt("isSeeking"),M=Wt("groupIndices").length>0,O=Wt("alignToBottom"),te=Wt("initialItemFinalLocationReached"),q=e?{}:{boxSizing:"border-box",...y?{display:"inline-block",height:"100%",marginLeft:w!==0?w:O?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:w!==0?w:O?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...te?{}:{visibility:"hidden"}};return!e&&t.totalCount===0&&S?u.jsx(S,{...Ur(S,c)}):u.jsx(j,{...Ur(j,c),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:b,style:q,children:(e?t.topItems:t.items).map(P=>{const X=P.originalIndex,A=$(X+t.firstItemIndex,P.data,c);return D?m.createElement(C,{...Ur(C,c),height:P.size,index:P.index,key:A,type:P.type||"item",...P.type==="group"?{}:{groupIndex:P.groupIndex}}):P.type==="group"?m.createElement(E,{...Ur(E,c),"data-index":X,"data-item-index":P.index,"data-known-size":P.size,key:A,style:WYe},d(P.index,c)):m.createElement(T,{...Ur(T,c),...gle(T,P.data),"data-index":X,"data-item-group-index":P.groupIndex,"data-item-index":P.index,"data-known-size":P.size,key:A,style:y?VYe:ple},M?l(P.index,P.groupIndex,P.data,c):l(P.index,P.data,c))})})}),HYe={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},ZYe={outline:"none",overflowX:"auto",position:"relative"},r1=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),qYe={position:hR(),top:0,width:"100%",zIndex:1};function Ur(e,t){if(typeof e!="string")return{context:t}}function gle(e,t){return{item:typeof e=="string"?void 0:t}}const GYe=Pe.memo(function(){const e=Wt("HeaderComponent"),t=ml("headerHeight"),n=Wt("HeaderFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null}),YYe=Pe.memo(function(){const e=Wt("FooterComponent"),t=ml("footerHeight"),n=Wt("HeaderFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null});function mR({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Pe.memo(function({children:r,style:i,context:o,...a}){const s=n("scrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("scrollerRef"),f=t("horizontalDirection")||!1,{scrollByCallback:p,scrollerRef:v,scrollToCallback:x}=fle(s,c,l,d,void 0,f);return e("scrollTo",x),e("scrollBy",p),u.jsx(l,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:v,style:{...f?ZYe:HYe,...i},tabIndex:0,...a,...Ur(l,o),children:r})})}function gR({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Pe.memo(function({children:r,style:i,context:o,...a}){const s=n("windowScrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("totalListHeight"),f=t("deviation"),p=t("customScrollParent"),v=Pe.useRef(null),x=t("scrollerRef"),{scrollByCallback:y,scrollerRef:b,scrollToCallback:w}=fle(s,c,l,x,p);return dle(()=>{var _;return b.current=p||((_=v.current)==null?void 0:_.ownerDocument.defaultView),()=>{b.current=null}},[b,p]),e("windowScrollTo",w),e("scrollBy",y),u.jsx(l,{ref:v,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...d!==0?{height:d+f}:{}},...a,...Ur(l,o),children:r})})}const KYe=({children:e})=>{const t=Pe.useContext(z6),n=ml("viewportHeight"),r=ml("fixedItemHeight"),i=Wt("alignToBottom"),o=Wt("horizontalDirection"),a=Pe.useMemo(()=>_x(n,l=>du(l,o?"width":"height")),[n,o]),s=ic(a,!0,Wt("skipAnimationFrameInResizeObserver"));return Pe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:s,style:r1(i),children:e})},XYe=({children:e})=>{const t=Pe.useContext(z6),n=ml("windowViewportRect"),r=ml("fixedItemHeight"),i=Wt("customScrollParent"),o=XM(n,i,Wt("skipAnimationFrameInResizeObserver")),a=Wt("alignToBottom");return Pe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(a),children:e})},JYe=({children:e})=>{const t=Wt("TopItemListComponent")||"div",n=Wt("headerHeight"),r={...qYe,marginTop:`${n}px`},i=Wt("context");return u.jsx(t,{style:r,...Ur(t,i),children:e})},QYe=Pe.memo(function(e){const t=Wt("useWindowScroll"),n=Wt("topItemsIndexes").length>0,r=Wt("customScrollParent"),i=Wt("context");return u.jsxs(r||t?nKe:tKe,{...e,context:i,children:[n&&u.jsx(JYe,{children:u.jsx(mle,{showTopList:!0})}),u.jsxs(r||t?XYe:KYe,{children:[u.jsx(GYe,{}),u.jsx(mle,{}),u.jsx(YYe,{})]})]})}),{Component:eKe,useEmitter:vR,useEmitterValue:Wt,usePublisher:ml}=cR(UYe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},QYe),tKe=mR({useEmitter:vR,useEmitterValue:Wt,usePublisher:ml}),nKe=gR({useEmitter:vR,useEmitterValue:Wt,usePublisher:ml}),yR=eKe,rKe=Ln(()=>{const e=Ye(c=>u.jsxs("td",{children:["Item $",c]})),t=Ye(null),n=Ye(c=>u.jsxs("td",{colSpan:1e3,children:["Group ",c]})),r=Ye(null),i=Ye(null),o=Ye({}),a=Ye(pR),s=Ye(t1),l=(c,d=null)=>Wo(Be(o,lt(f=>f[c]),Fr()),d);return{components:o,computeItemKey:a,context:t,EmptyPlaceholder:l("EmptyPlaceholder"),FillerRow:l("FillerRow"),fixedFooterContent:i,fixedHeaderContent:r,itemContent:e,groupContent:n,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder"),TableBodyComponent:l("TableBody","tbody"),TableComponent:l("Table","table"),TableFooterComponent:l("TableFoot","tfoot"),TableHeadComponent:l("TableHead","thead"),TableRowComponent:l("TableRow","tr"),GroupComponent:l("Group","tr")}}),iKe=Ln(([e,t])=>({...e,...t}),Ar(ule,rKe)),oKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{height:e}})}),aKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{border:0,height:e,padding:0}})}),sKe={overflowAnchor:"none"},vle={position:hR(),zIndex:2,overflowAnchor:"none"},yle=Pe.memo(function({showTopList:e=!1}){const t=Qt("listState"),n=Qt("computeItemKey"),r=Qt("firstItemIndex"),i=Qt("context"),o=Qt("isSeeking"),a=Qt("fixedHeaderHeight"),s=Qt("groupIndices").length>0,l=Qt("itemContent"),c=Qt("groupContent"),d=Qt("ScrollSeekPlaceholder")||oKe,f=Qt("GroupComponent"),p=Qt("TableRowComponent"),v=(e?t.topItems:[]).reduce((y,b,w)=>(w===0?y.push(b.size):y.push(y[w-1]+b.size),y),[]),x=(e?t.topItems:t.items).map(y=>{const b=y.originalIndex,w=n(b+r,y.data,i),_=e?b===0?0:v[b-1]:0;return o?m.createElement(d,{...Ur(d,i),height:y.size,index:y.index,key:w,type:y.type||"item"}):y.type==="group"?m.createElement(f,{...Ur(f,i),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,key:w,style:{...vle,top:a}},c(y.index,i)):m.createElement(p,{...Ur(p,i),...gle(p,y.data),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,"data-item-group-index":y.groupIndex,key:w,style:e?{...vle,top:a+_}:sKe},s?l(y.index,y.groupIndex,y.data,i):l(y.index,y.data,i))});return u.jsx(u.Fragment,{children:x})}),lKe=Pe.memo(function(){const e=Qt("listState"),t=Qt("topItemsIndexes").length>0,n=fu("sizeRanges"),r=Qt("useWindowScroll"),i=Qt("customScrollParent"),o=fu("windowScrollContainerState"),a=fu("scrollContainerState"),s=i||r?o:a,l=Qt("trackItemSizes"),c=Qt("itemSize"),d=Qt("log"),{callbackRef:f,ref:p}=Ose(n,c,l,s,d,void 0,i,!1,Qt("skipAnimationFrameInResizeObserver")),[v,x]=Pe.useState(0);bR("deviation",M=>{v!==M&&(p.current.style.marginTop=`${M}px`,x(M))});const y=Qt("EmptyPlaceholder"),b=Qt("FillerRow")||aKe,w=Qt("TableBodyComponent"),_=Qt("paddingTopAddition"),S=Qt("statefulTotalCount"),C=Qt("context");if(S===0&&y)return u.jsx(y,{...Ur(y,C)});const j=(t?e.topItems:[]).reduce((M,O)=>M+O.size,0),T=e.offsetTop+_+v-j,E=e.offsetBottom,$=T>0?u.jsx(b,{context:C,height:T},"padding-top"):null,D=E>0?u.jsx(b,{context:C,height:E},"padding-bottom"):null;return u.jsxs(w,{"data-testid":"virtuoso-item-list",ref:f,...Ur(w,C),children:[$,t&&u.jsx(yle,{showTopList:!0}),u.jsx(yle,{}),D]})}),uKe=({children:e})=>{const t=Pe.useContext(z6),n=fu("viewportHeight"),r=fu("fixedItemHeight"),i=ic(Pe.useMemo(()=>_x(n,o=>du(o,"height")),[n]),!0,Qt("skipAnimationFrameInResizeObserver"));return Pe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:i,style:r1(!1),children:e})},cKe=({children:e})=>{const t=Pe.useContext(z6),n=fu("windowViewportRect"),r=fu("fixedItemHeight"),i=Qt("customScrollParent"),o=XM(n,i,Qt("skipAnimationFrameInResizeObserver"));return Pe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(!1),children:e})},dKe=Pe.memo(function(e){const t=Qt("useWindowScroll"),n=Qt("customScrollParent"),r=fu("fixedHeaderHeight"),i=fu("fixedFooterHeight"),o=Qt("fixedHeaderContent"),a=Qt("fixedFooterContent"),s=Qt("context"),l=ic(Pe.useMemo(()=>_x(r,w=>du(w,"height")),[r]),!0,Qt("skipAnimationFrameInResizeObserver")),c=ic(Pe.useMemo(()=>_x(i,w=>du(w,"height")),[i]),!0,Qt("skipAnimationFrameInResizeObserver")),d=n||t?pKe:hKe,f=n||t?cKe:uKe,p=Qt("TableComponent"),v=Qt("TableHeadComponent"),x=Qt("TableFooterComponent"),y=o?u.jsx(v,{ref:l,style:{position:"sticky",top:0,zIndex:2},...Ur(v,s),children:o()},"TableHead"):null,b=a?u.jsx(x,{ref:c,style:{bottom:0,position:"sticky",zIndex:1},...Ur(x,s),children:a()},"TableFoot"):null;return u.jsx(d,{...e,...Ur(d,s),children:u.jsx(f,{children:u.jsxs(p,{style:{borderSpacing:0,overflowAnchor:"none"},...Ur(p,s),children:[y,u.jsx(lKe,{},"TableBody"),b]})})})}),{Component:fKe,useEmitter:bR,useEmitterValue:Qt,usePublisher:fu}=cR(iKe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},dKe),hKe=mR({useEmitter:bR,useEmitterValue:Qt,usePublisher:fu}),pKe=gR({useEmitter:bR,useEmitterValue:Qt,usePublisher:fu}),mKe=fKe,ble={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},gKe={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:xle,floor:D6,max:$x,min:xR,round:_le}=Math;function wle(e,t,n){return Array.from({length:t-e+1}).map((r,i)=>({data:n===null?null:n[i+e],index:i+e}))}function vKe(e){return{...gKe,items:e}}function A6(e,t){return e&&e.width===t.width&&e.height===t.height}function yKe(e,t){return e&&e.column===t.column&&e.row===t.row}const bKe=Ln(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:i,headerHeight:o,scrollBy:a,scrollContainerState:s,scrollTo:l,scrollTop:c,smoothScrollTargetReached:d,viewportHeight:f},p,v,{didMount:x,propsReady:y},{customScrollParent:b,useWindowScroll:w,windowScrollContainerState:_,windowScrollTo:S,windowViewportRect:C},j])=>{const T=Ye(0),E=Ye(0),$=Ye(ble),D=Ye({height:0,width:0}),M=Ye({height:0,width:0}),O=kn(),te=kn(),q=Ye(0),P=Ye(null),X=Ye({column:0,row:0}),A=kn(),Y=kn(),F=Ye(!1),H=Ye(0),ee=Ye(!0),ce=Ye(!1),B=Ye(!1);qn(Be(x,cn(H),zt(([ue,re])=>!!re)),()=>{Jt(ee,!1)}),qn(Be(Pi(x,ee,M,D,H,ce),zt(([ue,re,ge,$e,,pe])=>ue&&!re&&ge.height!==0&&$e.height!==0&&!pe)),([,,,,ue])=>{Jt(ce,!0),oR(1,()=>{Jt(O,ue)}),uu(Be(c),()=>{Jt(t,[0,0]),Jt(ee,!0)})}),yt(Be(Y,zt(ue=>ue!=null&&ue.scrollTop>0),nc(0)),E),qn(Be(x,cn(Y),zt(([,ue])=>ue!=null)),([,ue])=>{ue&&(Jt(D,ue.viewport),Jt(M,ue.item),Jt(X,ue.gap),ue.scrollTop>0&&(Jt(F,!0),uu(Be(c,Ap(1)),re=>{Jt(F,!1)}),Jt(l,{top:ue.scrollTop})))}),yt(Be(D,lt(({height:ue})=>ue)),f),yt(Be(Pi(Lt(D,A6),Lt(M,A6),Lt(X,(ue,re)=>ue&&ue.column===re.column&&ue.row===re.row),Lt(c)),lt(([ue,re,ge,$e])=>({gap:ge,item:re,scrollTop:$e,viewport:ue}))),A),yt(Be(Pi(Lt(T),r,Lt(X,yKe),Lt(M,A6),Lt(D,A6),Lt(P),Lt(E),Lt(F),Lt(ee),Lt(H)),zt(([,,,,,,,ue])=>!ue),lt(([ue,[re,ge],$e,pe,ye,Se,Ce,,Ue,Ge])=>{const{column:_t,row:St}=$e,{height:ut,width:ct}=pe,{width:bt}=ye;if(Ce===0&&(ue===0||bt===0))return ble;if(ct===0){const kr=aR(Ge,ue),On=kr+Math.max(Ce-1,0);return vKe(wle(kr,On,Se))}const Qe=kle(bt,ct,_t);let Ke,De;Ue?re===0&&ge===0&&Ce>0?(Ke=0,De=Ce-1):(Ke=Qe*D6((re+St)/(ut+St)),De=Qe*xle((ge+St)/(ut+St))-1,De=xR(ue-1,$x(De,Qe-1)),Ke=xR(De,$x(0,Ke))):(Ke=0,De=-1);const Dt=wle(Ke,De,Se),{bottom:pn,top:Yn}=Sle(ye,$e,pe,Dt),hr=xle(ue/Qe),Kn=hr*ut+(hr-1)*St-pn;return{bottom:pn,itemHeight:ut,items:Dt,itemWidth:ct,offsetBottom:Kn,offsetTop:Yn,top:Yn}})),$),yt(Be(P,zt(ue=>ue!==null),lt(ue=>ue.length)),T),yt(Be(Pi(D,M,$,X),zt(([ue,re,{items:ge}])=>ge.length>0&&re.height!==0&&ue.height!==0),lt(([ue,re,{items:ge},$e])=>{const{bottom:pe,top:ye}=Sle(ue,$e,re,ge);return[ye,pe]}),Fr(Sx)),t);const ae=Ye(!1);yt(Be(c,cn(ae),lt(([ue,re])=>re||ue!==0)),ae);const je=Es(Be(Pi($,T),zt(([{items:ue}])=>ue.length>0),cn(ae),zt(([[ue,re],ge])=>{const $e=ue.items[ue.items.length-1].index===re-1;return(ge||ue.bottom>0&&ue.itemHeight>0&&ue.offsetBottom===0&&ue.items.length===re)&&$e}),lt(([[,ue]])=>ue-1),Fr())),me=Es(Be(Lt($),zt(({items:ue})=>ue.length>0&&ue[0].index===0),nc(0),Fr())),ke=Es(Be(Lt($),cn(F),zt(([{items:ue},re])=>ue.length>0&&!re),lt(([{items:ue}])=>({endIndex:ue[ue.length-1].index,startIndex:ue[0].index})),Fr(Vse),wd(0)));yt(ke,v.scrollSeekRangeChanged),yt(Be(O,cn(D,M,T,X),lt(([ue,re,ge,$e,pe])=>{const ye=Kse(ue),{align:Se,behavior:Ce,offset:Ue}=ye;let Ge=ye.index;Ge==="LAST"&&(Ge=$e-1),Ge=$x(0,Ge,xR($e-1,Ge));let _t=_R(re,pe,ge,Ge);return Se==="end"?_t=_le(_t-re.height+ge.height):Se==="center"&&(_t=_le(_t-re.height/2+ge.height/2)),Ue&&(_t+=Ue),{behavior:Ce,top:_t}})),l);const he=Wo(Be($,lt(ue=>ue.offsetBottom+ue.bottom)),0);return yt(Be(C,lt(ue=>({height:ue.visibleHeight,width:ue.visibleWidth}))),D),{customScrollParent:b,data:P,deviation:q,footerHeight:i,gap:X,headerHeight:o,increaseViewportBy:e,initialItemCount:E,itemDimensions:M,overscan:n,restoreStateFrom:Y,scrollBy:a,scrollContainerState:s,scrollHeight:te,scrollTo:l,scrollToIndex:O,scrollTop:c,smoothScrollTargetReached:d,totalCount:T,useWindowScroll:w,viewportDimensions:D,windowScrollContainerState:_,windowScrollTo:S,windowViewportRect:C,...v,gridState:$,horizontalDirection:B,initialTopMostItemIndex:H,totalListHeight:he,...p,endReached:je,propsReady:y,rangeChanged:ke,startReached:me,stateChanged:A,stateRestoreInProgress:F,...j}},Ar(sR,ga,Nx,sle,ch,uR,uh));function kle(e,t,n){return $x(1,D6((e+n)/(D6(t)+n)))}function Sle(e,t,n,r){const{height:i}=n;if(i===void 0||r.length===0)return{bottom:0,top:0};const o=_R(e,t,n,r[0].index);return{bottom:_R(e,t,n,r[r.length-1].index)+i,top:o}}function _R(e,t,n,r){const i=kle(e.width,n.width,t.column),o=D6(r/i),a=o*n.height+$x(0,o-1)*t.row;return a>0?a+t.row:a}const xKe=Ln(()=>{const e=Ye(f=>`Item ${f}`),t=Ye({}),n=Ye(null),r=Ye("virtuoso-grid-item"),i=Ye("virtuoso-grid-list"),o=Ye(pR),a=Ye("div"),s=Ye(t1),l=(f,p=null)=>Wo(Be(t,lt(v=>v[f]),Fr()),p),c=Ye(!1),d=Ye(!1);return yt(Lt(d),c),{components:t,computeItemKey:o,context:n,FooterComponent:l("Footer"),HeaderComponent:l("Header"),headerFooterTag:a,itemClassName:r,ItemComponent:l("Item","div"),itemContent:e,listClassName:i,ListComponent:l("List","div"),readyStateChanged:c,reportReadyState:d,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}}),_Ke=Ln(([e,t])=>({...e,...t}),Ar(bKe,xKe)),wKe=Pe.memo(function(){const e=Kr("gridState"),t=Kr("listClassName"),n=Kr("itemClassName"),r=Kr("itemContent"),i=Kr("computeItemKey"),o=Kr("isSeeking"),a=gl("scrollHeight"),s=Kr("ItemComponent"),l=Kr("ListComponent"),c=Kr("ScrollSeekPlaceholder"),d=Kr("context"),f=gl("itemDimensions"),p=gl("gap"),v=Kr("log"),x=Kr("stateRestoreInProgress"),y=gl("reportReadyState"),b=ic(Pe.useMemo(()=>w=>{const _=w.parentElement.parentElement.scrollHeight;a(_);const S=w.firstChild;if(S){const{height:C,width:j}=S.getBoundingClientRect();f({height:C,width:j})}p({column:jle("column-gap",getComputedStyle(w).columnGap,v),row:jle("row-gap",getComputedStyle(w).rowGap,v)})},[a,f,p,v]),!0,!1);return dle(()=>{e.itemHeight>0&&e.itemWidth>0&&y(!0)},[e]),x?null:u.jsx(l,{className:t,ref:b,...Ur(l,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(w=>{const _=i(w.index,w.data,d);return o?u.jsx(c,{...Ur(c,d),height:e.itemHeight,index:w.index,width:e.itemWidth},_):m.createElement(s,{...Ur(s,d),className:n,"data-index":w.index,key:_},r(w.index,w.data,d))})})}),kKe=Pe.memo(function(){const e=Kr("HeaderComponent"),t=gl("headerHeight"),n=Kr("headerFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Kr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null}),SKe=Pe.memo(function(){const e=Kr("FooterComponent"),t=gl("footerHeight"),n=Kr("headerFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Kr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null}),CKe=({children:e})=>{const t=Pe.useContext(cle),n=gl("itemDimensions"),r=gl("viewportDimensions"),i=ic(Pe.useMemo(()=>o=>{r(o.getBoundingClientRect())},[r]),!0,!1);return Pe.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),u.jsx("div",{ref:i,style:r1(!1),children:e})},jKe=({children:e})=>{const t=Pe.useContext(cle),n=gl("windowViewportRect"),r=gl("itemDimensions"),i=Kr("customScrollParent"),o=XM(n,i,!1);return Pe.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),u.jsx("div",{ref:o,style:r1(!1),children:e})},TKe=Pe.memo(function({...e}){const t=Kr("useWindowScroll"),n=Kr("customScrollParent"),r=n||t?EKe:IKe,i=n||t?jKe:CKe,o=Kr("context");return u.jsx(r,{...e,...Ur(r,o),children:u.jsxs(i,{children:[u.jsx(kKe,{}),u.jsx(wKe,{}),u.jsx(SKe,{})]})})}),{useEmitter:Cle,useEmitterValue:Kr,usePublisher:gl}=cR(_Ke,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},TKe),IKe=mR({useEmitter:Cle,useEmitterValue:Kr,usePublisher:gl}),EKe=gR({useEmitter:Cle,useEmitterValue:Kr,usePublisher:gl});function jle(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Va.WARN),t==="normal"?0:parseInt(t??"0",10)}const NKe="_digit_1rfzd_1",$Ke="_hidden_1rfzd_5",MKe="_selection-text_1rfzd_10",wR={digit:NKe,hidden:$Ke,selectionText:MKe};function RKe(){const[e,t]=m.useState(()=>document.visibilityState==="visible");return m.useEffect(()=>{const n=()=>{t(document.visibilityState==="visible")};return document.addEventListener("visibilitychange",n),()=>document.removeEventListener("visibilitychange",n)},[]),e}const LKe=20;function Mx(e){return RKe()?u.jsx(OKe,{...e}):null}function PKe(e,t){const{start:n,target:r}=t;return{start:n,target:r,maxDigitsSeen:Math.max(e.maxDigitsSeen,kR(n),kR(r))}}function OKe({value:e,animationDurationMs:t=150,height:n,className:r,containerRowJustify:i}){const[o,a]=m.useReducer(PKe,{start:e,target:e,maxDigitsSeen:kR(e)}),{start:s,target:l,maxDigitsSeen:c}=o,[d,f]=m.useState(e),[p,v]=m.useState(()=>{const T=Ile(e).reverse(),E=Array.from({length:T.length});return{digits:T,animations:E}}),x=l>s?"incr":"decr",{stepDurationMs:y,shouldJumpToTarget:b}=m.useMemo(()=>{const T=Math.abs(l-s),E=Math.trunc(t/T);return E{const T=d===l||b?l:x==="incr"?d+1:d-1;return{number:T,paddedDigits:Ile(T,c)}},[d,x,c,b,l]),_=m.useCallback((T,E)=>{v($=>{const D=[...$.animations];return D[E]=T,{...$,animations:D}})},[]),S=m.useCallback((T,E)=>{v($=>{const D=[...$.digits],M=[...$.animations];D[E]=T,M[E]=void 0;const O={digits:D,animations:M};return parseInt([...O.digits].reverse().join(""),10)===Math.abs(w.number)&&f(w.number),O})},[w.number]),C=m.useMemo(()=>p.animations.some(T=>!!T),[p.animations]);m.useLayoutEffect(()=>{e===l||C||a({start:d,target:e})},[d,C,w.number,l,e]);const j=m.useMemo(()=>{if(n!=null)return{height:`${n}px`}},[n]);return u.jsxs(W,{position:"relative",justify:i,children:[u.jsx(Z,{className:Te(r,wR.selectionText),style:j,children:d}),u.jsxs(W,{height:"100%",position:"absolute",inert:"true",children:[w.number<0&&u.jsx(Z,{className:r,children:"-"}),w.paddedDigits.map((T,E)=>{const $=w.paddedDigits.length-1-E;return u.jsx(zKe,{idxFromBack:$,currentDigit:p.digits[$],nextDigit:T,direction:x,animation:p.animations[$],pauseNextAnimation:l!==e,animationDurationMs:y,onAnimationStart:_,onAnimationCompleted:S,className:r},$)})]})]})}function zKe({idxFromBack:e,currentDigit:t,nextDigit:n,direction:r,animation:i,pauseNextAnimation:o,onAnimationStart:a,onAnimationCompleted:s,animationDurationMs:l,className:c}){const d=m.useRef(null),f=m.useRef(null);return m.useLayoutEffect(()=>{if(i||o||t===n)return;const p=d.current;if(!p)return;const v=p.animate(r==="incr"?[{transform:"translateY(-50%)"},{transform:"translateY(0px)"}]:[{transform:"translateY(0px)"},{transform:"translateY(-50%)"}],{duration:l,easing:"ease-in-out",fill:"forwards"});f.current=v,a(v,e),v.finished.catch(()=>{}).finally(()=>{f.current=null,s(n,e)})},[l,t,n,r,e,o,s,i,a]),Og(()=>{var p;(p=f.current)==null||p.cancel()}),u.jsx(Mt,{height:"100%",overflowY:"hidden",children:u.jsxs(W,{ref:d,height:"200%",direction:"column",children:[u.jsx(Tle,{className:c,digit:r==="incr"?n:t}),u.jsx(Tle,{className:c,digit:r==="incr"?t:n})]})})}function Tle({digit:e,className:t}){return u.jsx(Z,{className:Te(t,wR.digit,{[wR.hidden]:e==null}),children:e})}function Ile(e,t){const n=Math.abs(e).toString().split("").map(i=>parseInt(i,10));if(t==null)return n;const r=Math.max(0,t-n.length);return[...Array(r).fill(null),...n]}function kR(e){return Math.abs(e).toString().length}const DKe="_container_zkl3s_1",AKe="_added_zkl3s_6",FKe="_removed_zkl3s_10",SR={container:DKe,added:AKe,removed:FKe},UKe=`Last ${_re/6e4}m`;function Ele({isOffline:e}){const t=J(yDe);return u.jsxs(W,{className:SR.container,align:"center",gap:"5px",children:[u.jsx(Z,{children:UKe}),u.jsxs(Z,{className:SR.added,children:["+",e?t.offline:t.online]}),u.jsxs(Z,{className:SR.removed,children:["-",e?t.online:t.offline]})]})}const Nle="16px",CR=33,$le="15px";function BKe({isStacked:e}){var j;const[t,{width:n}]=Ss(),r=n<496,i=!r&&n<642,o=r?"xnarrow":i?"narrow":"wide",[a,s]=m.useState(!0),[l,c]=m.useState(!0),d=J(QN),f=J(wre),p=J(_De),v=m.useCallback((T,E)=>{var M,O;const $=(M=d==null?void 0:d.get(T))==null?void 0:M[0],D=(O=d==null?void 0:d.get(E))==null?void 0:O[0];return $==null&&D==null?0:$==null?1:D==null?-1:$===D?0:$[...p].sort(v),[p,v]),y=m.useMemo(()=>[...f].sort(v),[f,v]),b=(j=J(Hl))==null?void 0:j.wait_for_supermajority_total_stake,w=m.useCallback(T=>x[T],[x]),_=m.useCallback(T=>{const E=w(T),[$,D]=(d==null?void 0:d.get(E))??[];return u.jsx(Rle,{pubkey:E,lamportsStake:$,info:D,totalStake:b,isOffline:!0,size:o})},[w,o,d,b]),S=m.useCallback(T=>y[T],[y]),C=m.useCallback(T=>{const E=S(T),[$,D]=(d==null?void 0:d.get(E))??[];return u.jsx(Rle,{pubkey:E,lamportsStake:$,info:D,totalStake:b,size:o})},[S,o,d,b]);return u.jsx(W,{ref:t,className:Te(un.container,e?un.vertical:un.horizontal),style:{"--row-height":`${CR}px`},children:u.jsxs(so,{className:Te(wi.card,un.tableCard,{[un.narrow]:i,[un.xnarrow]:r}),children:[u.jsxs(F6,{size:o,flexShrink:"0",className:un.headerRow,children:[u.jsx(o1,{size:o,className:un.peer,children:"Peer"}),u.jsx(o1,{size:o,className:un.status,children:"Status"}),u.jsx(o1,{size:o,className:un.pubkey,children:"Pubkey"}),u.jsx(o1,{size:o,className:un.version,children:"Version"}),u.jsx(o1,{size:o,className:un.stake,children:"Stake (SOL)"}),u.jsx(o1,{size:o,className:un.stakePct,children:"Stake %"})]}),u.jsx(F6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.offline),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":a,"aria-controls":"supermajority-offline-rows",onClick:()=>s(T=>!T),children:[u.jsx(Mle,{isExpanded:a}),u.jsxs(W,{align:"center",gap:$le,children:[u.jsxs(W,{align:"center",gap:"1",children:[u.jsx(Mx,{value:p.size}),u.jsx(Z,{children:"Nodes Offline"})]}),u.jsx(Ele,{isOffline:!0})]})]})}),u.jsx(Mt,{display:a?void 0:"none",className:un.rowsContainer,id:"supermajority-offline-rows",children:u.jsx(yR,{totalCount:x.length,fixedItemHeight:CR,computeItemKey:w,itemContent:_})}),u.jsx(F6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.online),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":l,"aria-controls":"supermajority-online-rows",onClick:()=>c(T=>!T),children:[u.jsx(Mle,{isExpanded:l}),u.jsxs(W,{align:"center",gap:$le,children:[u.jsxs(W,{align:"center",gap:"1",children:[u.jsx(Mx,{value:f.size}),u.jsx(Z,{children:"Nodes Online"})]}),u.jsx(Ele,{})]})]})}),u.jsx(Mt,{id:"supermajority-online-rows",display:l?void 0:"none",className:un.rowsContainer,children:u.jsx(yR,{totalCount:y.length,fixedItemHeight:CR,computeItemKey:S,itemContent:C})})]})})}function Mle({isExpanded:e}){const t=e?Hie:qFe;return u.jsx(t,{height:Nle,width:Nle,color:"white"})}const F6=m.forwardRef(function({size:e,className:t,...n},r){return u.jsx(W,{ref:r,className:Te(un.row,un[e],t),...n})});function Rle({pubkey:e,lamportsStake:t,info:n,totalStake:r,isOffline:i=!1,size:o}){return u.jsxs(F6,{size:o,className:i?un.offline:un.online,children:[u.jsx(WKe,{name:n==null?void 0:n.name,iconUrl:ire(n),size:o}),u.jsx(VKe,{isOffline:i,size:o}),u.jsx(HKe,{pubkey:e,size:o}),u.jsx(ZKe,{pubkey:e,size:o}),u.jsx(qKe,{lamportsStake:t,size:o}),u.jsx(GKe,{lamportsStake:t,totalStake:r,size:o})]})}function i1({children:e,className:t,size:n}){return u.jsx(W,{align:"center",className:Te(un.cell,un[n],t),children:e})}function o1({children:e,className:t,size:n}){return u.jsx(W,{align:"center",className:Te(un.cell,un.header,un[n],t),children:u.jsx(Z,{truncate:!0,children:e})})}function WKe({name:e,iconUrl:t,size:n}){return u.jsxs(i1,{size:n,className:un.peer,children:[u.jsx(ks,{url:t,size:16}),u.jsx(Z,{truncate:!0,children:e??"-"})]})}function VKe({isOffline:e=!1,size:t}){const n=e?aGe:oGe;return u.jsxs(i1,{size:t,className:Te(un.status),children:[u.jsx(n,{height:12,width:12,fill:"currentColor"}),t==="wide"&&u.jsx(Z,{truncate:!0,children:e?"Offline":"Online"})]})}function HKe({pubkey:e,size:t}){return u.jsx(i1,{size:t,className:un.pubkey,children:u.jsx(Dg,{value:e,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(Z,{truncate:!0,className:un.pubkeyText,children:e})})})}function ZKe({pubkey:e,size:t}){const n=Hk(e),{version:r,client:i}=zM(n);return u.jsxs(i1,{size:t,className:Te(un.version),children:[u.jsx(W,{width:"37px",flexShrink:"0",children:u.jsx(Nse,{client:i,size:"xlarge",showPlaceholder:!0,className:un.clientIcon,placeholderClassName:un.clientIconPlaceholder})}),t!=="xnarrow"&&u.jsx(Z,{truncate:!0,children:r?`v${r}`:"-"})]})}function qKe({lamportsStake:e,size:t}){const n=ZM(e);return u.jsx(i1,{size:t,className:un.stake,children:u.jsxs(Z,{children:[u.jsx(Z,{children:(n==null?void 0:n.formatted)??"-"}),(n==null?void 0:n.suffix)&&u.jsxs(Z,{className:un.suffix,children:[" ",n.suffix]})]})})}const Lle=2;function GKe({lamportsStake:e,totalStake:t,size:n}){const r=YGe(e,t,Lle);return u.jsx(i1,{size:n,className:un.stakePct,children:u.jsxs(Z,{children:[u.jsx(Z,{children:r===void 0?"-":r.toFixed(Lle)}),r!==void 0&&u.jsx(Z,{className:un.suffix,children:" %"})]})})}const YKe="data:image/svg+xml,%3csvg%20width='12'%20height='11'%20viewBox='0%200%2012%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2011H12L6.0482%200L0%2011Z'%20fill='%23F29D83'/%3e%3c/svg%3e";function KKe(){const e=J(Hl),t=e==null?void 0:e.wait_for_supermajority_total_stake,n=e==null?void 0:e.wait_for_supermajority_connected_stake,r=t&&n?rt.clamp(Number(n)/Number(t),0,1):0,i=m.useMemo(()=>ZM(t),[t]),o=ZM(n);return e?u.jsxs(W,{height:"100%",maxWidth:"100%",position:"relative",align:"center",justify:"center",className:wi.pieChart,children:[u.jsx("div",{className:wi.shimmer}),u.jsx("div",{className:wi.overlay,style:{"--progress-pct":`${Math.round(r*100)}%`}}),u.jsxs(W,{direction:"column",position:"absolute",height:"50%",width:"0px",bottom:"0",left:"50%",align:"center",className:wi.thresholdMarker,gap:"1px",children:[u.jsx(Mt,{className:wi.markerLine,height:"100%",flexShrink:"0"}),u.jsx("img",{className:wi.markerIcon,src:YKe,alt:"80% supermajority pointer"})]}),u.jsxs(W,{direction:"column",position:"relative",height:"70%",width:"70%",align:"center",justify:"center",gapY:"4%",className:wi.pieChartContent,children:[u.jsxs(Z,{children:[u.jsx(Z,{weight:"bold",className:wi.lg,children:(r*100).toFixed(2)}),u.jsx(Z,{weight:"bold",className:wi.secondaryColor,children:" %"}),u.jsx(Z,{className:wi.lg,children:" / "}),u.jsx(Z,{weight:"bold",className:Te(wi.lg,wi.eighty),children:"80"}),u.jsx(Z,{weight:"bold",color:"bronze",children:" %"})]}),u.jsxs(Z,{children:[(o==null?void 0:o.formatted)??"--",(o==null?void 0:o.suffix)&&u.jsxs(Z,{className:wi.secondaryColor,children:[" ",o.suffix]})," / ",u.jsx(Z,{children:(i==null?void 0:i.formatted)??"--"}),(i==null?void 0:i.suffix)&&u.jsxs(Z,{className:wi.secondaryColor,children:[" ",i.suffix]})]})]})]}):null}function XKe(){const e=J(Hl),t=J(nee);if(!e)return null;const n=e.wait_for_supermajority_attempt,r=e.loading_incremental_snapshot_read_path??e.loading_full_snapshot_read_path;return u.jsxs(W,{flexShrink:"0",direction:"column",width:"100%",className:wi.detailsBox,gapY:"10px",children:[u.jsxs(W,{gapX:"8px",justify:"between",children:[u.jsx(Rx,{label:"Slot",value:t==null?void 0:t.toString()}),u.jsx(Rx,{label:"Shred Version",value:e.wait_for_supermajority_shred_version}),u.jsx(Rx,{label:"Forked",value:n==null?void 0:xFe(n)})]}),u.jsx(Rx,{label:"Bank Hash",value:e.wait_for_supermajority_bank_hash,allowCopy:!0}),u.jsx(Rx,{label:"Snapshot Source",value:r,wrap:!0,valueClassName:wi.snapshotSource,allowCopy:!0})]})}function Rx({label:e,value:t,wrap:n=!1,valueClassName:r,allowCopy:i=!1}){return u.jsxs(W,{direction:"column",gap:"3px",children:[u.jsx(Z,{className:wi.label,children:e}),u.jsx(Dg,{className:wi.copyButton,value:i&&t?t:void 0,color:"white",size:"12px",hideIconUntilHover:!0,children:u.jsx(Z,{className:r,truncate:!n,children:t??"--"})})]})}const Ple="400px",jR="24px",Ole="50px";function JKe(){var i;const e=Hn("(max-width: 1025px)"),t=J(Hl),n=(i=J(QQ))==null?void 0:i.completionFraction;if(!t||!n)return null;const r=1-.01/n;return u.jsxs(u.Fragment,{children:[u.jsx(Q$,{phaseCompleteFraction:r,overallCompleteFraction:.99,showLoadingIcon:!0}),u.jsxs(W,{flexGrow:"1",mt:e?"18px":"36px",direction:e?"column-reverse":"row",justify:e?"end":"center",align:"stretch",gap:e?jR:Ole,minHeight:"0",children:[u.jsx(BKe,{isStacked:e}),u.jsxs(W,{direction:"column",align:"center",width:e?"100%":void 0,minWidth:"300px",maxWidth:e?void 0:Ple,flexBasis:"30%",flexGrow:e?"0":"1",flexShrink:"1",children:[u.jsx(Z,{className:wi.pieChartTitle,children:"Stake Online"}),u.jsx(W,{className:wi.pieChartContainer,mt:e?"4px":"8px",maxHeight:Ple,justify:"center",children:u.jsx(KKe,{})}),u.jsx(Mt,{height:e?jR:void 0,minHeight:jR,maxHeight:Ole,flexGrow:"1"}),u.jsx(XKe,{})]})]})]})}const QKe={[wn.joining_gossip]:yd.gossip,[wn.loading_full_snapshot]:yd.fullSnapshot,[wn.loading_incremental_snapshot]:yd.incrSnapshot,[wn.catching_up]:yd.catchingUp,[wn.waiting_for_supermajority]:yd.supermajority};function eXe(){const e=Ee(ol),t=J(Gu);return m.useEffect(()=>{e(t!=="running")},[e,t]),u.jsxs(u.Fragment,{children:[t&&u.jsx(tXe,{phase:t}),u.jsx(HBe,{})]})}function tXe({phase:e}){const t=Ee(dre),n=J(ol),r=J(W3),i=e?QKe[e]:"",o=Hn("(max-width: 750px)");return u.jsxs(W,{direction:"column",ref:a=>t(a),overflowY:"auto",className:Te(yd.container,i,{[yd.collapsed]:!n||!r}),children:[u.jsx(foe,{isStartup:!0}),u.jsxs(W,{flexGrow:"1",direction:"column",width:"100%",maxWidth:Zte,minHeight:"0",mx:"auto",px:o?"20px":"89px",children:[(e===wn.loading_full_snapshot||e===wn.loading_incremental_snapshot)&&u.jsx(tVe,{}),e===wn.catching_up&&u.jsx(Uqe,{}),e===wn.waiting_for_supermajority&&u.jsx(JKe,{}),u.jsx(Mt,{pb:"20px"})]})]})}function nXe({children:e}){const t=J(ol);return Vi?u.jsxs(u.Fragment,{children:[u.jsx(eXe,{}),u.jsx("div",{children:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(XAe,{}),u.jsx("div",{className:Te(Iie.container,{[Iie.blur]:t}),children:e})]})}const rXe="_container_1i8oq_1",iXe="_toast_1i8oq_10",oXe="_disconnected_1i8oq_19",aXe="_connecting_1i8oq_29",sXe="_text_1i8oq_39",Lx={container:rXe,toast:iXe,disconnected:oXe,connecting:aXe,text:sXe};var ac=(e=>(e.Disconnected="disconnected",e.Connecting="connecting",e.Connected="connected",e))(ac||{});const TR=fe(ac.Disconnected),zle={opacity:0,top:-100},lXe={opacity:1,top:18};function Dle(e,t){if(e)return e===ac.Disconnected?{className:Lx.disconnected,text:"validator disconnected."}:e===ac.Connecting?{className:Lx.connecting,text:"validator connecting..."}:Dle(t)}function uXe(){const e=J(TR),t=ox(e),[n,r]=m.useState(!0);ix(()=>{setTimeout(()=>r(!1),3e3)});const[i,o]=ex(()=>({from:zle}));m.useEffect(()=>{n||(e===ac.Connecting||e===ac.Disconnected?o.start({to:lXe}):o.start({to:zle}))},[o,n,e]);const a=Dle(e,t);if(a)return u.jsx(iu.div,{className:Lx.container,style:i,children:u.jsx("div",{className:`${Lx.toast} ${a.className}`,children:u.jsx(Z,{className:Lx.text,children:a.text})})})}const cXe="_slots-list_1sk8v_1",dXe="_hidden_1sk8v_3",fXe="_no-slots-text_1sk8v_8",IR={slotsList:cXe,hidden:dXe,noSlotsText:fXe},hXe="_slot-group-container_1sejw_1",pXe="_slot-group_1sejw_1",mXe="_left-column_1sejw_14",gXe="_future_1sejw_20",vXe="_you_1sejw_28",yXe="_current_1sejw_36",bXe="_slot-name_1sejw_43",xXe="_skipped_1sejw_47",_Xe="_current-slot-row_1sejw_57",wXe="_past_1sejw_63",kXe="_processed_1sejw_74",SXe="_selected_1sejw_87",CXe="_ellipsis_1sejw_105",jXe="_slot-item-content_1sejw_111",TXe="_placeholder_1sejw_119",IXe="_slot-statuses_1sejw_123",EXe="_slot-status_1sejw_123",NXe="_slot-status-progress_1sejw_132",$Xe="_tall_1sejw_142",MXe="_short_1sejw_149",RXe="_scroll-slots-placeholder_1sejw_173",LXe="_shimmer_1sejw_184",PXe="_absolute-full-size_1sejw_176",OXe="_scroll-placeholder-item_1sejw_197",on={slotGroupContainer:hXe,slotGroup:pXe,leftColumn:mXe,future:gXe,you:vXe,current:yXe,slotName:bXe,skipped:xXe,currentSlotRow:_Xe,past:wXe,processed:kXe,selected:SXe,ellipsis:CXe,slotItemContent:jXe,placeholder:TXe,slotStatuses:IXe,slotStatus:EXe,slotStatusProgress:NXe,tall:$Xe,short:MXe,scrollSlotsPlaceholder:RXe,shimmer:LXe,absoluteFullSize:PXe,scrollPlaceholderItem:OXe},Px=m.memo(function({slot:e,size:t}){const{client:n}=ma(e);return u.jsx(Nse,{client:n,size:t})}),zXe=Gf(e=>fe(t=>{var r;const n=_i(e);for(let i=0;i<$n;i++)if((r=t(KN(n+i)))!=null&&r.skipped)return!0;return!1}),{maxSize:500});function ER(e){return J(zXe(e))}const Ale=fe(!1);function Ox({showNowIfCurrent:e,durationOptions:t}){const n=J(gre),r=J(Rb),i=J(uDe),o=r??i,a=J(oo),s=J(cDe),l=J(Eg),[c,d]=m.useState(a);rx(()=>{d(v=>{if(!a)return v;if(!v)return a;const x=v-a;return x>10?v-Math.trunc(x/2):x>4?v:x<-4?v-Math.trunc(x/2):v+1})},l);const f=m.useMemo(()=>{if(!(o==null||c==null))return fn.fromMillis(l*(o-c)).rescale()},[c,o,l]),p=m.useMemo(()=>{if(n==null||o==null||c==null)return;const v=o-n,x=(c-n)/v*100;return x<0||x>100?0:x},[c,o,n]);return e&&s?{progressSinceLastLeader:100,nextSlotText:"Now",nextLeaderSlot:a}:{progressSinceLastLeader:p??0,nextSlotText:kp(f,t),nextLeaderSlot:o}}const DXe="_progress_51hag_1",AXe={progress:DXe};function a1({width:e="100%",height:t="3px",style:n,className:r,variant:i="soft",...o}){return u.jsx(N4,{className:Te(AXe.progress,r),style:{width:e,height:t,...n},variant:i,...o})}function FXe(e){return J(Ale)?u.jsx("div",{className:on.placeholder}):u.jsx(UXe,{...e})}const Fle=fe(e=>{const t=e(eu),n=e(Xf);if(!e(ao)||t===void 0||n===void 0)return;const r=e(Rb);return function(i){return{isCurrentSlotGroup:t<=i&&iMath.ceil(t/46),[t]);return u.jsxs(Mt,{position:"absolute",width:`${e-1}px`,height:`${t}px`,overflow:"hidden",className:on.scrollSlotsPlaceholder,children:[u.jsx("div",{className:Te(on.absoluteFullSize,on.shimmer)}),u.jsx("div",{className:on.absoluteFullSize,children:Array.from({length:n},(r,i)=>u.jsx("div",{className:on.scrollPlaceholderItem},i))})]})});function U6({slot:e,iconSize:t=15}){var o;const{peer:n,isLeader:r,name:i}=ma(e);return u.jsxs(W,{gap:"4px",minWidth:"0",children:[u.jsx(ks,{url:(o=n==null?void 0:n.info)==null?void 0:o.icon_url,size:t,isYou:r,hideTooltip:!0}),u.jsx(Z,{className:Te(on.slotName,on.ellipsis),children:i})]})}function Ble({flag:e,width:t}){return u.jsx(W,{width:t,children:e&&u.jsx(Z,{children:e})})}function zx({firstSlot:e,isCurrentSlot:t=!1,isPastSlot:n=!1}){return u.jsx(W,{className:Te(on.slotStatuses,{[on.tall]:t,[on.short]:!t&&!n}),direction:"column",justify:"between",children:Array.from({length:$n}).map((r,i)=>{const o=e+($n-1)-i;return t?u.jsx(GXe,{slot:o},i):n?u.jsx(YXe,{slot:o},i):u.jsx(NR,{},i)})})}function NR({borderColor:e,backgroundColor:t,slotDuration:n}){return u.jsx(W,{className:on.slotStatus,style:{borderColor:e,backgroundColor:t},children:n&&u.jsx("div",{style:{"--slot-duration":`${n}ms`},className:on.slotStatusProgress})})}function Wle(e){if(!e)return{};if(e.skipped)return{backgroundColor:gk};switch(e.level){case"incomplete":return{};case"completed":return{borderColor:DN};case"optimistically_confirmed":return{backgroundColor:DN};case"finalized":case"rooted":return{backgroundColor:Wne}}}function GXe({slot:e}){const t=J(oo),n=Is(e),r=J(Eg),i=m.useMemo(()=>e===t,[e,t]),o=m.useMemo(()=>i?{borderColor:AN}:Wle(n.publish),[i,n.publish]);return u.jsx(NR,{borderColor:o.borderColor,backgroundColor:o.backgroundColor,slotDuration:i?r:void 0})}function YXe({slot:e}){const t=Is(e),n=J(Cn),r=m.useMemo(()=>{var o,a;const i=Wle(t.publish);return((o=t==null?void 0:t.publish)==null?void 0:o.level)==="rooted"&&!((a=t.publish)!=null&&a.skipped)&&(n===void 0||_i(e)!==_i(n))&&(i.backgroundColor=Vne),i},[t.publish,n,e]);return u.jsx(NR,{borderColor:r.borderColor,backgroundColor:r.backgroundColor})}const KXe="_container_1l1zm_1",XXe="_button_1l1zm_5",Vle={container:KXe,button:XXe};function JXe(){const e=Ee(An),t=J(kDe);return t==="Live"?null:u.jsx("div",{className:Vle.container,children:u.jsxs(hs,{className:Vle.button,style:{zIndex:3},onClick:()=>{e(void 0)},children:[u.jsx(Z,{children:"Skip to RT"}),t==="Past"?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const QXe=m.memo(JXe);function eJe(e){if(!e)return;const t=e.end_slot-e.start_slot+1,n=Math.ceil(t/$n);return{getSlotAtIndex:r=>{if(!(r<0||r>=n))return _i(e.end_slot-r*$n)},getIndexForSlot:r=>{if(!(re.end_slot))return Math.trunc((e.end_slot-r)/$n)},itemsCount:n}}function tJe(e){if(e==null)return;const t=e.reduce((n,r,i)=>(n[r]=e.length-i-1,n),{});return{getSlotAtIndex:n=>e[e.length-n-1],getIndexForSlot:n=>n>=e[e.length-1]?0:t[_i(n)]??e.length-rt.sortedIndex(e,n)-1,itemsCount:e.length}}const nJe=e=>e,rJe={top:24,bottom:0};function iJe({width:e,height:t}){const n=J(Tg),r=J(fi);return r?n===$b.MySlots?u.jsx(uJe,{width:e,height:t},r.epoch):u.jsx(lJe,{width:e,height:t},r.epoch):null}function Hle({width:e,height:t,itemsCount:n,getSlotAtIndex:r,getIndexForSlot:i}){const o=m.useRef(null),a=m.useRef(null),s=m.useRef(null),[l,c]=m.useState(!0),[d,f]=m.useState(!0);m.useEffect(()=>{const _=setTimeout(()=>{c(!1)},100);return()=>clearTimeout(_)},[]);const p=Ee(An),v=Tp(()=>{},100),{rangeChanged:x,scrollSeekConfiguration:y}=m.useMemo(()=>{const _=({startIndex:S})=>{s.current=S+1};return{rangeChanged:_,scrollSeekConfiguration:{enter:S=>Math.abs(S)>1500,exit:S=>Math.abs(S)<500,change:(S,C)=>_(C)}}},[s]);m.useEffect(()=>{if(!o.current)return;const _=o.current,S=rt.throttle(()=>{if(s.current===null)return;v();const j=Math.min(s.current+aN,n-1),T=r(j);p(T)},50,{leading:!0,trailing:!0}),C=()=>{S()};return _.addEventListener("wheel",C),_.addEventListener("touchmove",C),()=>{_.removeEventListener("wheel",C),_.removeEventListener("touchmove",C)}},[r,v,p,n,s]);const b=m.useCallback(_=>{const S=r(_);return S==null?null:u.jsx(FXe,{leaderSlotForGroup:S})},[r]),w=m.useCallback(_=>f(_>=t),[t]);return u.jsxs(Mt,{ref:o,position:"relative",width:`${e}px`,height:`${t}px`,children:[u.jsx(aJe,{listRef:a,getIndexForSlot:i}),u.jsx(sJe,{listRef:a,getIndexForSlot:i,debouncedScroll:v}),d&&u.jsx(qXe,{width:e,height:t}),u.jsx(QXe,{}),u.jsx(yR,{ref:a,className:Te(IR.slotsList,{[IR.hidden]:l}),width:e,height:t,totalCount:n,increaseViewportBy:rJe,defaultItemHeight:42,skipAnimationFrameInResizeObserver:!0,computeItemKey:nJe,itemContent:b,rangeChanged:x,components:{ScrollSeekPlaceholder:oJe},scrollSeekConfiguration:y,totalListHeightChanged:w})]})}const oJe=m.memo(function(){return null}),aJe=m.memo(function({listRef:e,getIndexForSlot:t}){const n=J(eu),r=J(tDe);return m.useEffect(()=>{if(!r||n===void 0||!e.current)return;const i=t(n),o=i?Math.max(0,i-aN):0;e.current.scrollToIndex({index:o,align:"start"})},[r,n,t,e]),null}),sJe=m.memo(function({listRef:e,getIndexForSlot:t,debouncedScroll:n}){const r=m.useRef(null),i=J(An);return m.useEffect(()=>{if(i===void 0||!e.current||n.isPending())return;const o=t(i),a=o?Math.max(0,o-aN):0,s=r.current;return r.current=requestAnimationFrame(()=>{var l;s!==null&&cancelAnimationFrame(s),(l=e.current)==null||l.scrollToIndex({index:a,align:"start"})}),()=>{r.current!==null&&(cancelAnimationFrame(r.current),r.current=null)}},[t,i,e,n]),null});function lJe({width:e,height:t}){const n=J(fi),r=m.useMemo(()=>eJe(n),[n]);return r?u.jsx(Hle,{width:e,height:t,...r}):null}function uJe({width:e,height:t}){const n=J(ao),r=m.useMemo(()=>tJe(n),[n]);return r?r.itemsCount===0?u.jsx(W,{width:`${e}px`,height:`${t}px`,justify:"center",align:"center",children:u.jsxs(Z,{className:IR.noSlotsText,children:["No Slots",u.jsx("br",{}),"Available"]})}):u.jsx(Hle,{width:e,height:t,...r}):null}let vl;typeof window<"u"?vl=window:typeof self<"u"?vl=self:vl=global;let $R=null,MR=null;const Zle=20,RR=vl.clearTimeout,qle=vl.setTimeout,LR=vl.cancelAnimationFrame||vl.mozCancelAnimationFrame||vl.webkitCancelAnimationFrame,Gle=vl.requestAnimationFrame||vl.mozRequestAnimationFrame||vl.webkitRequestAnimationFrame;LR==null||Gle==null?($R=RR,MR=function(e){return qle(e,Zle)}):($R=function([e,t]){LR(e),RR(t)},MR=function(e){const t=Gle(function(){RR(n),e()}),n=qle(function(){LR(t),e()},Zle);return[t,n]});function cJe(e){let t,n,r,i,o,a,s;const l=typeof document<"u"&&document.attachEvent;if(!l){a=function(y){const b=y.__resizeTriggers__,w=b.firstElementChild,_=b.lastElementChild,S=w.firstElementChild;_.scrollLeft=_.scrollWidth,_.scrollTop=_.scrollHeight,S.style.width=w.offsetWidth+1+"px",S.style.height=w.offsetHeight+1+"px",w.scrollLeft=w.scrollWidth,w.scrollTop=w.scrollHeight},o=function(y){return y.offsetWidth!==y.__resizeLast__.width||y.offsetHeight!==y.__resizeLast__.height},s=function(y){if(y.target.className&&typeof y.target.className.indexOf=="function"&&y.target.className.indexOf("contract-trigger")<0&&y.target.className.indexOf("expand-trigger")<0)return;const b=this;a(this),this.__resizeRAF__&&$R(this.__resizeRAF__),this.__resizeRAF__=MR(function(){o(b)&&(b.__resizeLast__.width=b.offsetWidth,b.__resizeLast__.height=b.offsetHeight,b.__resizeListeners__.forEach(function(w){w.call(b,y)}))})};let d=!1,f="";r="animationstart";const p="Webkit Moz O ms".split(" ");let v="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),x="";{const y=document.createElement("fakeelement");if(y.style.animationName!==void 0&&(d=!0),d===!1){for(let b=0;b div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',p=d.head||d.getElementsByTagName("head")[0],v=d.createElement("style");v.id="detectElementResize",v.type="text/css",e!=null&&v.setAttribute("nonce",e),v.styleSheet?v.styleSheet.cssText=f:v.appendChild(d.createTextNode(f)),p.appendChild(v)}};return{addResizeListener:function(d,f){if(l)d.attachEvent("onresize",f);else{if(!d.__resizeTriggers__){const p=d.ownerDocument,v=vl.getComputedStyle(d);v&&v.position==="static"&&(d.style.position="relative"),c(p),d.__resizeLast__={},d.__resizeListeners__=[],(d.__resizeTriggers__=p.createElement("div")).className="resize-triggers";const x=p.createElement("div");x.className="expand-trigger",x.appendChild(p.createElement("div"));const y=p.createElement("div");y.className="contract-trigger",d.__resizeTriggers__.appendChild(x),d.__resizeTriggers__.appendChild(y),d.appendChild(d.__resizeTriggers__),a(d),d.addEventListener("scroll",s,!0),r&&(d.__resizeTriggers__.__animationListener__=function(b){b.animationName===n&&a(d)},d.__resizeTriggers__.addEventListener(r,d.__resizeTriggers__.__animationListener__))}d.__resizeListeners__.push(f)}},removeResizeListener:function(d,f){if(l)d.detachEvent("onresize",f);else if(d.__resizeListeners__.splice(d.__resizeListeners__.indexOf(f),1),!d.__resizeListeners__.length){d.removeEventListener("scroll",s,!0),d.__resizeTriggers__.__animationListener__&&(d.__resizeTriggers__.removeEventListener(r,d.__resizeTriggers__.__animationListener__),d.__resizeTriggers__.__animationListener__=null);try{d.__resizeTriggers__=!d.removeChild(d.__resizeTriggers__)}catch{}}}}}class $s extends m.Component{constructor(...t){super(...t),this.state={height:this.props.defaultHeight||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._didLogDeprecationWarning=!1,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:n,disableWidth:r,onResize:i}=this.props;if(this._parentNode){const o=window.getComputedStyle(this._parentNode)||{},a=parseFloat(o.paddingLeft||"0"),s=parseFloat(o.paddingRight||"0"),l=parseFloat(o.paddingTop||"0"),c=parseFloat(o.paddingBottom||"0"),d=this._parentNode.getBoundingClientRect(),f=d.height-l-c,p=d.width-a-s;if(!n&&this.state.height!==f||!r&&this.state.width!==p){this.setState({height:f,width:p});const v=()=>{this._didLogDeprecationWarning||(this._didLogDeprecationWarning=!0,console.warn("scaledWidth and scaledHeight parameters have been deprecated; use width and height instead"))};typeof i=="function"&&i({height:f,width:p,get scaledHeight(){return v(),f},get scaledWidth(){return v(),p}})}}},this._setRef=n=>{this._autoSizer=n}}componentDidMount(){const{nonce:t}=this.props,n=this._autoSizer?this._autoSizer.parentNode:null;if(n!=null&&n.ownerDocument&&n.ownerDocument.defaultView&&n instanceof n.ownerDocument.defaultView.HTMLElement){this._parentNode=n;const r=n.ownerDocument.defaultView.ResizeObserver;r!=null?(this._resizeObserver=new r(()=>{this._timeoutId=setTimeout(this._onResize,0)}),this._resizeObserver.observe(n)):(this._detectElementResize=cJe(t),this._detectElementResize.addResizeListener(n,this._onResize)),this._onResize()}}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),this._timeoutId!==null&&clearTimeout(this._timeoutId),this._resizeObserver&&this._resizeObserver.disconnect())}render(){const{children:t,defaultHeight:n,defaultWidth:r,disableHeight:i=!1,disableWidth:o=!1,doNotBailOutOnEmptyChildren:a=!1,nonce:s,onResize:l,style:c={},tagName:d="div",...f}=this.props,{height:p,width:v}=this.state,x={overflow:"visible"},y={};let b=!1;return i||(p===0&&(b=!0),x.height=0,y.height=p,y.scaledHeight=p),o||(v===0&&(b=!0),x.width=0,y.width=v,y.scaledWidth=v),a&&(b=!1),m.createElement(d,{ref:this._setRef,style:{...x,...c},...f},!b&&t(y))}}function dJe(){const[e,t]=Vl(Tg),n=m.useCallback(r=>{r&&t(r)},[t]);return u.jsx(W,{height:`${cN}px`,width:"100%",children:u.jsxs(M7,{type:"single",value:e,"aria-label":"Slots List Toggle",onValueChange:n,className:Ip.navFilterToggleGroup,children:[u.jsx(B0,{value:$b.AllSlots,"aria-label":"All Slots toggle",tabIndex:0,children:u.jsx(Z,{children:"All Slots"})}),u.jsx(B0,{value:$b.MySlots,"aria-label":"My Slots toggle",tabIndex:0,children:u.jsx(Z,{children:"My Slots"})})]})})}const fJe="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%23FF5353'%3e%3cpath%20d='m48-144%20432-720%20432%20720H48Zm431.79-120q15.21%200%2025.71-10.29t10.5-25.5q0-15.21-10.29-25.71t-25.5-10.5q-15.21%200-25.71%2010.29t-10.5%2025.5q0%2015.21%2010.29%2025.71t25.5%2010.5ZM444-384h72v-192h-72v192Z'/%3e%3c/svg%3e",hJe="data:image/svg+xml,%3csvg%20width='10'%20height='11'%20viewBox='0%200%2010%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.39453%201.5H9.67578V7.32422H5.57422L5.35547%206.17578H2.07422V10.25H0.925781V0.324219H6.17578L6.39453%201.5Z'%20fill='%231DB247'/%3e%3c/svg%3e",pJe="_epoch-progress_niwu5_1",mJe="_clickable_niwu5_8",gJe="_leader-slot_niwu5_12",vJe="_before-start_niwu5_21",yJe="_skipped-slot_niwu5_26",bJe="_skipped-slot-icon_niwu5_36",xJe="_first-processed-slot_niwu5_45",_Je="_first-processed-slot-icon_niwu5_56",wJe="_slider-root_niwu5_65",kJe="_slider-track_niwu5_76",SJe="_slider-thumb_niwu5_82",CJe="_collapsed_niwu5_92",jJe="_tooltip_niwu5_106",TJe="_hide_niwu5_114",IJe="_show_niwu5_123",Yi={epochProgress:pJe,clickable:mJe,leaderSlot:gJe,beforeStart:vJe,skippedSlot:yJe,skippedSlotIcon:bJe,firstProcessedSlot:xJe,firstProcessedSlotIcon:_Je,sliderRoot:wJe,sliderTrack:kJe,sliderThumb:SJe,collapsed:CJe,tooltip:jJe,hide:TJe,show:IJe};function EJe(e,t,n=window){const r=m.useRef(t);m.useEffect(()=>{r.current=t});const i=Rze(e)?e:[e];m.useEffect(()=>{if(!r.current||!n||!n.addEventListener||i.length===0)return;const o=a=>{var s;return(s=r.current)==null?void 0:s.call(r,a)};return i.forEach(a=>n.addEventListener(a,o,{passive:!1})),()=>{i.forEach(a=>n.removeEventListener(a,o,!1))}},[...i,n])}const PR=10800;function Bp({slot:e,epochStartSlot:t,epochEndSlot:n}){if(!e||t===void 0||n===void 0||t===n)return 0;e=Math.min(Math.max(e,t),n);const r=n-t;return(e-t)/r}function NJe(e){return Math.trunc(e*PR)}function $Je(e,t,n){if(e===void 0||t===void 0||n===void 0)return;const r=e/PR,i=n-t;return Math.trunc(i*r)+t}function MJe(e,t){return Bp(t)}function RJe(e,t){if(!e||!t)return 3e3;const n=e.end_slot-e.start_slot;return n<1e4?300:n<5e4?1e3:n<1e5?3e3:n<2e5?5e3:n<3e5?1e4:n<4e5?15e3:3e4}function Yle(e,t){return e.length?e.reduce((n,r,i)=>{if(i===0)return n;const o=n[n.length-1];return Math.abs(r.pct-o.pct)clearTimeout(f.current));const p=m.useCallback(y=>{t(y),d(!0),clearTimeout(f.current),f.current=setTimeout(()=>d(!1),100)},[t]),v=m.useCallback(y=>{const b=$Je(y[0],e==null?void 0:e.start_slot,e==null?void 0:e.end_slot);b!==void 0&&p(b)},[e==null?void 0:e.end_slot,e==null?void 0:e.start_slot,p]),x=Ba(v,100,{trailing:!0});return EJe("pointerup",()=>{i.current=!1,o(!1)}),u.jsx(W,{direction:"column",width:"100%",flexGrow:"1",align:"center",ref:a,children:u.jsxs(KH,{orientation:"vertical",className:Yi.sliderRoot,style:{zIndex:Vf},value:n,onValueChange:y=>{i.current=!0,r(y),x(y),o(!0)},onValueCommit:()=>{i.current=!1,x.flush(),o(!1)},max:PR,children:[u.jsxs(XH,{className:Yi.sliderTrack,children:[u.jsx(zJe,{isSliderChangingValueRef:i,setSliderValue:r},e==null?void 0:e.epoch),u.jsx(WJe,{updateSlot:p,slotHeight:l}),u.jsx(ZJe,{updateSlot:p}),u.jsx(YJe,{updateSlot:p})]}),u.jsx(DJe,{isOpen:c})]})})}function OJe({isSliderChangingValueRef:e,setSliderValue:t}){const n=J(fi),r=J(XN),i=J(eu),o=J(An),a=J(Tg),[s,l]=m.useReducer(MJe,{slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot},Bp),c=m.useMemo(()=>RJe(n,s),[n,s]);return Qu(()=>{m.startTransition(()=>{l({slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot})})},c),m.useEffect(()=>{if(e.current)return;const d=o?Bp({slot:o,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):a===$b.MySlots?Bp({slot:r,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):s,f=NJe(d);t(p=>p[0]===f?p:[f])},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,s,e,t,o,a,r]),u.jsx(Mt,{className:Yi.epochProgress,height:`${s*100}%`})}const zJe=m.memo(OJe);function DJe({isOpen:e}){const t=J(An),{showNav:n}=Fg();return u.jsx(JH,{className:Te(Yi.sliderThumb,{[Yi.collapsed]:!n}),children:u.jsx(Z,{size:"1",className:Te("rt-TooltipContent","rt-TooltipText",Yi.tooltip,e?Yi.show:Yi.hide),children:t})})}const AJe=e=>fe(t=>{const n=t(eu);return e>(n??0)});function FJe({slot:e,pct:t,height:n,updateSlot:r}){const i=J(Xf),o=J(m.useMemo(()=>AJe(e),[e])),a=l=>c=>{c.stopPropagation(),c.preventDefault(),r(l)},s=i?e{if(!n||!(r!=null&&r.length))return;const o=r.map(a=>({slot:a,pct:Bp({slot:a,epochStartSlot:n.start_slot,epochEndSlot:n.end_slot})}));return Yle(o,.005)},[n,r]);return u.jsx(u.Fragment,{children:i==null?void 0:i.map(({slot:o,pct:a})=>u.jsx(UJe,{slot:o,pct:a,height:t,updateSlot:e},o))})}const WJe=m.memo(BJe);function VJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsx(u.Fragment,{children:u.jsx("div",{className:Te(Yi.skippedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e),children:u.jsx("img",{src:fJe,alt:"skipped slot",className:Te(Yi.skippedSlotIcon,Yi.clickable),style:{bottom:"-3px"},onPointerDown:r(e)})})})}function HJe({updateSlot:e}){const t=J(fi),n=J(u3),r=m.useMemo(()=>{if(!t||!(n!=null&&n.length))return;const i=n.map(o=>({slot:o,pct:Bp({slot:o,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})}));return Yle(i,.005)},[t,n]);return u.jsx(u.Fragment,{children:r==null?void 0:r.map(({slot:i,pct:o})=>u.jsx(VJe,{slot:i,pct:o,updateSlot:e},i))})}const ZJe=m.memo(HJe);function qJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{className:Te(Yi.firstProcessedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e)}),u.jsx("img",{src:hJe,alt:"first processed slot",className:Te(Yi.firstProcessedSlotIcon,Yi.clickable),style:{bottom:`calc(${t*100}%)`},onPointerDown:r(e)})]})}function GJe({updateSlot:e}){const t=J(fi),n=J(Xf),r=m.useMemo(()=>{if(!(!n||!t))return Bp({slot:n,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})},[t,n]);return!r||!n?null:u.jsx(qJe,{slot:n,pct:r,updateSlot:e})}const YJe=m.memo(GJe),Kle=kb+Sb;function KJe(){const e=Hn(Vte),{showNav:t,occupyRowWidth:n,showOnlyEpochBar:r}=Fg(),i=t?fN:0,o=m.useMemo(()=>r?Wte:$Le,[r]);return u.jsxs(u.Fragment,{children:[u.jsx(XJe,{}),u.jsx("div",{style:{flexShrink:0,width:n?`${o}px`:"0"},children:u.jsxs(W,{width:t?`${o+i}px`:"0",overflow:t?"visible":"hidden",className:Te("sticky",Ip.slotNavContainer,{[Ip.navBackground]:!r}),style:{zIndex:Vf-1},top:`${Kle}px`,height:`calc(100vh - ${Kle}px)`,ml:`${-i}px`,pl:`${i}px`,pb:"2",children:[u.jsxs(W,{flexShrink:"0",direction:"column",width:`${dN}px`,pt:e?"0":`${cN+Wf}px`,children:[e&&u.jsx("div",{style:{marginBottom:`${Wf}px`},children:u.jsx(V$,{})}),u.jsx(LJe,{})]}),!r&&u.jsxs(W,{ml:`${ck}px`,direction:"column",width:`${hN}px`,flexShrink:"0",gap:`${Wf}px`,children:[u.jsx(dJe,{}),u.jsx(W,{flexGrow:"1",children:u.jsx($s,{children:({height:a,width:s})=>u.jsx(iJe,{width:s,height:a})})})]})]})})]})}function XJe(){const e=Ee(An),t=J(Cn);return m.useEffect(()=>{t!==void 0&&e(t)},[t,e]),null}const JJe=ca(),s1=C9e({component:QJe,beforeLoad:()=>JJe.set(gd.slot,void 0)});function QJe(){const e=J(V3);return u.jsxs(u.Fragment,{children:[u.jsx(uXe,{}),u.jsx(nXe,{children:u.jsxs("div",{id:"scroll-container",style:{position:"relative",height:"100dvh",maxHeight:e?"100vh":"unset",overflowY:e?"hidden":"auto",willChange:"scroll-position",contain:"paint",isolation:"isolate"},children:[u.jsx(foe,{}),u.jsxs(W,{className:"app-width-container",px:"2",position:"relative",children:[u.jsx(KJe,{}),u.jsx(eQe,{})]})]})})]})}function eQe(){const e=Yk()==="Schedule",{setIsNavCollapsed:t,isNarrowScreen:n,occupyRowWidth:r,blurBackground:i}=Fg();return m.useEffect(()=>{t(n)},[n,t]),u.jsxs(Mt,{position:"relative",flexGrow:"1",minWidth:"0",pb:"2",pl:e||!r?"0px":`${uN-Wf}px`,children:[u.jsx(Dq,{}),i&&u.jsx(ioe,{})]})}const tQe="_text_nk1yn_1",nQe={text:tQe};function kd({text:e}){return u.jsx(Z,{className:nQe.text,children:e})}var rQe=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Xle=rQe,iQe=Xle,oQe=typeof self=="object"&&self&&self.Object===Object&&self,aQe=iQe||oQe||Function("return this")(),sc=aQe,sQe=sc,lQe=sQe.Symbol,l1=lQe,Jle=l1,Qle=Object.prototype,uQe=Qle.hasOwnProperty,cQe=Qle.toString,Dx=Jle?Jle.toStringTag:void 0;function dQe(e){var t=uQe.call(e,Dx),n=e[Dx];try{e[Dx]=void 0;var r=!0}catch{}var i=cQe.call(e);return r&&(t?e[Dx]=n:delete e[Dx]),i}var fQe=dQe,hQe=Object.prototype,pQe=hQe.toString;function mQe(e){return pQe.call(e)}var gQe=mQe,eue=l1,vQe=fQe,yQe=gQe,bQe="[object Null]",xQe="[object Undefined]",tue=eue?eue.toStringTag:void 0;function _Qe(e){return e==null?e===void 0?xQe:bQe:tue&&tue in Object(e)?vQe(e):yQe(e)}var Wp=_Qe;function wQe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Sd=wQe,kQe=Wp,SQe=Sd,CQe="[object AsyncFunction]",jQe="[object Function]",TQe="[object GeneratorFunction]",IQe="[object Proxy]";function EQe(e){if(!SQe(e))return!1;var t=kQe(e);return t==jQe||t==TQe||t==CQe||t==IQe}var B6=EQe;const nue=to(B6);var NQe=sc,$Qe=NQe["__core-js_shared__"],MQe=$Qe,OR=MQe,rue=function(){var e=/[^.]+$/.exec(OR&&OR.keys&&OR.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function RQe(e){return!!rue&&rue in e}var LQe=RQe,PQe=Function.prototype,OQe=PQe.toString;function zQe(e){if(e!=null){try{return OQe.call(e)}catch{}try{return e+""}catch{}}return""}var iue=zQe,DQe=B6,AQe=LQe,FQe=Sd,UQe=iue,BQe=/[\\^$.*+?()[\]{}|]/g,WQe=/^\[object .+?Constructor\]$/,VQe=Function.prototype,HQe=Object.prototype,ZQe=VQe.toString,qQe=HQe.hasOwnProperty,GQe=RegExp("^"+ZQe.call(qQe).replace(BQe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function YQe(e){if(!FQe(e)||AQe(e))return!1;var t=DQe(e)?GQe:WQe;return t.test(UQe(e))}var KQe=YQe;function XQe(e,t){return e==null?void 0:e[t]}var JQe=XQe,QQe=KQe,eet=JQe;function tet(e,t){var n=eet(e,t);return QQe(n)?n:void 0}var Vp=tet,net=Vp,ret=net(Object,"create"),W6=ret,oue=W6;function iet(){this.__data__=oue?oue(null):{},this.size=0}var oet=iet;function aet(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var set=aet,uet=W6,cet="__lodash_hash_undefined__",det=Object.prototype,fet=det.hasOwnProperty;function het(e){var t=this.__data__;if(uet){var n=t[e];return n===cet?void 0:n}return fet.call(t,e)?t[e]:void 0}var pet=het,met=W6,get=Object.prototype,vet=get.hasOwnProperty;function yet(e){var t=this.__data__;return met?t[e]!==void 0:vet.call(t,e)}var bet=yet,xet=W6,_et="__lodash_hash_undefined__";function wet(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=xet&&t===void 0?_et:t,this}var ket=wet,Cet=oet,jet=set,Tet=pet,Iet=bet,Eet=ket;function u1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var Zet=Het,qet=V6;function Get(e,t){var n=this.__data__,r=qet(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Yet=Get,Ket=Met,Xet=Fet,Jet=Wet,Qet=Zet,ett=Yet;function c1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var sue=Ytt;function Ktt(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=mnt){var c=t?null:hnt(e);if(c)return pnt(c);a=!1,i=fnt,l=new unt}else l=t?[]:s;e:for(;++r0&&f.height>0,b=Math.round(n[0]),w=Math.round(n[1]);y&&(r==="top"?(b-=f.width/2,w-=f.height+14):r==="right"?(b+=14,w-=f.height/2):r==="bottom"?(b-=f.width/2,w+=14):r==="left"?(b-=f.width+14,w-=f.height/2):r==="center"&&(b-=f.width/2,w-=f.height/2),v={transform:hue(b,w)},p.current||(x=!0),p.current=[b,w]);var _=ex({to:v,config:l,immediate:!s||x}),S=Hp({},Tnt,o.tooltip.wrapper,{transform:(t=_.transform)!=null?t:hue(b,w),opacity:_.transform?1:0});return u.jsx(iu.div,{ref:d,style:S,children:i})});pue.displayName="TooltipWrapper";var WR=m.memo(function(e){var t=e.size,n=t===void 0?12:t,r=e.color,i=e.style;return u.jsx("span",{style:Hp({display:"block",width:n,height:n,background:r},i===void 0?{}:i)})}),VR=m.memo(function(e){var t,n=e.id,r=e.value,i=e.format,o=e.enableChip,a=o!==void 0&&o,s=e.color,l=e.renderContent,c=Ms(),d=VL(i);if(typeof l=="function")t=l();else{var f=r;d!==void 0&&f!==void 0&&(f=d(f)),t=u.jsxs("div",{style:c.tooltip.basic,children:[a&&u.jsx(WR,{color:s,style:c.tooltip.chip}),f!==void 0?u.jsxs("span",{children:[n,": ",u.jsx("strong",{children:""+f})]}):n]})}return u.jsx("div",{style:c.tooltip.container,children:t})}),Int={width:"100%",borderCollapse:"collapse"},Ent=m.memo(function(e){var t,n=e.title,r=e.rows,i=r===void 0?[]:r,o=e.renderContent,a=Ms();return i.length?(t=typeof o=="function"?o():u.jsxs("div",{children:[n&&n,u.jsx("table",{style:Hp({},Int,a.tooltip.table),children:u.jsx("tbody",{children:i.map(function(s,l){return u.jsx("tr",{children:s.map(function(c,d){return u.jsx("td",{style:a.tooltip.tableCell,children:c},d)})},l)})})})]}),u.jsx("div",{style:a.tooltip.container,children:t})):null});Ent.displayName="TableTooltip";var HR=m.memo(function(e){var t=e.x0,n=e.x1,r=e.y0,i=e.y1,o=Ms(),a=w1(),s=a.animate,l=a.config,c=m.useMemo(function(){return Hp({},o.crosshair.line,{pointerEvents:"none"})},[o.crosshair.line]),d=ex({x1:t,x2:n,y1:r,y2:i,config:l,immediate:!s});return u.jsx(iu.line,Hp({},d,{fill:"none",style:c}))});HR.displayName="CrosshairLine";var Nnt=m.memo(function(e){var t,n,r=e.width,i=e.height,o=e.type,a=e.x,s=e.y;return o==="cross"?(t={x0:a,x1:a,y0:0,y1:i},n={x0:0,x1:r,y0:s,y1:s}):o==="top-left"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:0,x1:a,y0:s,y1:s}):o==="top"?t={x0:a,x1:a,y0:0,y1:s}:o==="top-right"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:a,x1:r,y0:s,y1:s}):o==="right"?n={x0:a,x1:r,y0:s,y1:s}:o==="bottom-right"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:a,x1:r,y0:s,y1:s}):o==="bottom"?t={x0:a,x1:a,y0:s,y1:i}:o==="bottom-left"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:0,x1:a,y0:s,y1:s}):o==="left"?n={x0:0,x1:a,y0:s,y1:s}:o==="x"?t={x0:a,x1:a,y0:0,y1:i}:o==="y"&&(n={x0:0,x1:r,y0:s,y1:s}),u.jsxs(u.Fragment,{children:[t&&u.jsx(HR,{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}),n&&u.jsx(HR,{x0:n.x0,x1:n.x1,y0:n.y0,y1:n.y1})]})});Nnt.displayName="Crosshair";var mue=m.createContext({showTooltipAt:function(){},showTooltipFromEvent:function(){},hideTooltip:function(){}}),ZR={isVisible:!1,position:[null,null],content:null,anchor:null},gue=m.createContext(ZR),$nt=function(e){var t=m.useState(ZR),n=t[0],r=t[1],i=m.useCallback(function(s,l,c){var d=l[0],f=l[1];c===void 0&&(c="top"),r({isVisible:!0,position:[d,f],anchor:c,content:s})},[r]),o=m.useCallback(function(s,l,c){c===void 0&&(c="top");var d=e.current.getBoundingClientRect(),f=e.current.offsetWidth,p=f===d.width?1:f/d.width,v="touches"in l?l.touches[0]:l,x=v.clientX,y=v.clientY,b=(x-d.left)*p,w=(y-d.top)*p;c!=="left"&&c!=="right"||(c=b-1&&e%1==0&&e<=Vrt}var JR=Hrt,Zrt=B6,qrt=JR;function Grt(e){return e!=null&&qrt(e.length)&&!Zrt(e)}var K6=Grt,Yrt=K6,Krt=lc;function Xrt(e){return Krt(e)&&Yrt(e)}var Nue=Xrt,X6={exports:{}};function Jrt(){return!1}var Qrt=Jrt;X6.exports,function(e,t){var n=sc,r=Qrt,i=t&&!t.nodeType&&t,o=i&&!0&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a?n.Buffer:void 0,l=s?s.isBuffer:void 0,c=l||r;e.exports=c}(X6,X6.exports);var J6=X6.exports,eit=Wp,tit=KR,nit=lc,rit="[object Object]",iit=Function.prototype,oit=Object.prototype,$ue=iit.toString,ait=oit.hasOwnProperty,sit=$ue.call(Object);function lit(e){if(!nit(e)||eit(e)!=rit)return!1;var t=tit(e);if(t===null)return!0;var n=ait.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&$ue.call(n)==sit}var Mue=lit;const Fx=to(Mue);var uit=Wp,cit=JR,dit=lc,fit="[object Arguments]",hit="[object Array]",pit="[object Boolean]",mit="[object Date]",git="[object Error]",vit="[object Function]",yit="[object Map]",bit="[object Number]",xit="[object Object]",_it="[object RegExp]",wit="[object Set]",kit="[object String]",Sit="[object WeakMap]",Cit="[object ArrayBuffer]",jit="[object DataView]",Tit="[object Float32Array]",Iit="[object Float64Array]",Eit="[object Int8Array]",Nit="[object Int16Array]",$it="[object Int32Array]",Mit="[object Uint8Array]",Rit="[object Uint8ClampedArray]",Lit="[object Uint16Array]",Pit="[object Uint32Array]",Br={};Br[Tit]=Br[Iit]=Br[Eit]=Br[Nit]=Br[$it]=Br[Mit]=Br[Rit]=Br[Lit]=Br[Pit]=!0,Br[fit]=Br[hit]=Br[Cit]=Br[pit]=Br[jit]=Br[mit]=Br[git]=Br[vit]=Br[yit]=Br[bit]=Br[xit]=Br[_it]=Br[wit]=Br[kit]=Br[Sit]=!1;function Oit(e){return dit(e)&&cit(e.length)&&!!Br[uit(e)]}var zit=Oit;function Dit(e){return function(t){return e(t)}}var Q6=Dit,e5={exports:{}};e5.exports,function(e,t){var n=Xle,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,a=o&&n.process,s=function(){try{var l=i&&i.require&&i.require("util").types;return l||a&&a.binding&&a.binding("util")}catch{}}();e.exports=s}(e5,e5.exports);var QR=e5.exports,Ait=zit,Fit=Q6,Rue=QR,Lue=Rue&&Rue.isTypedArray,Uit=Lue?Fit(Lue):Ait,eL=Uit;function Bit(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Pue=Bit,Wit=GR,Vit=Ax,Hit=Object.prototype,Zit=Hit.hasOwnProperty;function qit(e,t,n){var r=e[t];(!(Zit.call(e,t)&&Vit(r,n))||n===void 0&&!(t in e))&&Wit(e,t,n)}var tL=qit,Git=tL,Yit=GR;function Kit(e,t,n,r){var i=!n;n||(n={});for(var o=-1,a=t.length;++o-1&&e%1==0&&e0){if(++t>=aat)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var cat=uat,dat=oat,fat=cat,hat=fat(dat),Zue=hat,pat=Bue,mat=Vue,gat=Zue;function vat(e,t){return gat(mat(e,t,pat),e+"")}var que=vat,yat=Ax,bat=K6,xat=t5,_at=Sd;function wat(e,t,n){if(!_at(n))return!1;var r=typeof t;return(r=="number"?bat(n)&&xat(t,n.length):r=="string"&&t in n)?yat(n[t],e):!1}var kat=wat,Sat=que,Cat=kat;function jat(e){return Sat(function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&typeof o=="function"?(i--,o):void 0,a&&Cat(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=Object(t);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?i5(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?i5(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Nst.exec(e))?new Vo(t[1],t[2],t[3],1):(t=$st.exec(e))?new Vo(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Mst.exec(e))?i5(t[1],t[2],t[3],t[4]):(t=Rst.exec(e))?i5(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Lst.exec(e))?cce(t[1],t[2]/100,t[3]/100,1):(t=Pst.exec(e))?cce(t[1],t[2]/100,t[3]/100,t[4]):rce.hasOwnProperty(e)?ace(rce[e]):e==="transparent"?new Vo(NaN,NaN,NaN,0):null}function ace(e){return new Vo(e>>16&255,e>>8&255,e&255,1)}function i5(e,t,n,r){return r<=0&&(e=t=n=NaN),new Vo(e,t,n,r)}function sce(e){return e instanceof h1||(e=aL(e)),e?(e=e.rgb(),new Vo(e.r,e.g,e.b,e.opacity)):new Vo}function qp(e,t,n,r){return arguments.length===1?sce(e):new Vo(e,t,n,r??1)}function Vo(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}r5(Vo,qp,oL(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Vo(Gp(this.r),Gp(this.g),Gp(this.b),o5(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:lce,formatHex:lce,formatHex8:Dst,formatRgb:uce,toString:uce}));function lce(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}`}function Dst(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}${Yp((isNaN(this.opacity)?1:this.opacity)*255)}`}function uce(){const e=o5(this.opacity);return`${e===1?"rgb(":"rgba("}${Gp(this.r)}, ${Gp(this.g)}, ${Gp(this.b)}${e===1?")":`, ${e})`}`}function o5(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Gp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yp(e){return e=Gp(e),(e<16?"0":"")+e.toString(16)}function cce(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new pu(e,t,n,r)}function dce(e){if(e instanceof pu)return new pu(e.h,e.s,e.l,e.opacity);if(e instanceof h1||(e=aL(e)),!e)return new pu;if(e instanceof pu)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(t===o?a=(n-r)/s+(n0&&l<1?0:a,new pu(a,s,l,e.opacity)}function Ast(e,t,n,r){return arguments.length===1?dce(e):new pu(e,t,n,r??1)}function pu(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}r5(pu,Ast,oL(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new pu(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new pu(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Vo(sL(e>=240?e-240:e+120,i,r),sL(e,i,r),sL(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new pu(fce(this.h),a5(this.s),a5(this.l),o5(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=o5(this.opacity);return`${e===1?"hsl(":"hsla("}${fce(this.h)}, ${a5(this.s)*100}%, ${a5(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fce(e){return e=(e||0)%360,e<0?e+360:e}function a5(e){return Math.max(0,Math.min(1,e||0))}function sL(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Fst=Math.PI/180,Ust=180/Math.PI;var hce=-.14861,lL=1.78277,uL=-.29227,s5=-.90649,Hx=1.97294,pce=Hx*s5,mce=Hx*lL,gce=lL*uL-s5*hce;function Bst(e){if(e instanceof Kp)return new Kp(e.h,e.s,e.l,e.opacity);e instanceof Vo||(e=sce(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(gce*r+pce*t-mce*n)/(gce+pce-mce),o=r-i,a=(Hx*(n-i)-uL*o)/s5,s=Math.sqrt(a*a+o*o)/(Hx*i*(1-i)),l=s?Math.atan2(a,o)*Ust-120:NaN;return new Kp(l<0?l+360:l,s,i,e.opacity)}function cc(e,t,n,r){return arguments.length===1?Bst(e):new Kp(e,t,n,r??1)}function Kp(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}r5(Kp,cc,oL(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Kp(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Kp(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Fst,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Vo(255*(t+n*(hce*r+lL*i)),255*(t+n*(uL*r+s5*i)),255*(t+n*(Hx*r)),this.opacity)}}));function Wst(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function Vst(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r()=>e;function vce(e,t){return function(n){return e+n*t}}function Hst(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Zst(e,t){var n=t-e;return n?vce(e,n>180||n<-180?n-360*Math.round(n/360):n):cL(isNaN(e)?t:e)}function qst(e){return(e=+e)==1?g1:function(t,n){return n-t?Hst(t,n,e):cL(isNaN(t)?n:t)}}function g1(e,t){var n=t-e;return n?vce(e,n):cL(isNaN(e)?t:e)}(function e(t){var n=qst(t);function r(i,o){var a=n((i=qp(i)).r,(o=qp(o)).r),s=n(i.g,o.g),l=n(i.b,o.b),c=g1(i.opacity,o.opacity);return function(d){return i.r=a(d),i.g=s(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r})(1);function Gst(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function wce(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function fL(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function llt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}const kce=Symbol("implicit");function dc(){var e=new bce,t=[],n=[],r=kce;function i(o){let a=e.get(o);if(a===void 0){if(r!==kce)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new bce;for(const a of o)e.has(a)||e.set(a,t.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return dc(t,n).unknown(r)},llt.apply(i,arguments),i}function ult(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function l5(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function clt(e){return e=l5(Math.abs(e)),e?e[1]:NaN}function dlt(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function flt(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var hlt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function hL(e){if(!(t=hlt.exec(e)))throw new Error("invalid format: "+e);var t;return new pL({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}hL.prototype=pL.prototype;function pL(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}pL.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function plt(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Sce;function mlt(e,t){var n=l5(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(Sce=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+l5(e,Math.max(0,t+o-1))[0]}function Cce(e,t){var n=l5(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const jce={"%":function(e,t){return(e*100).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:ult,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return Cce(e*100,t)},r:Cce,s:mlt,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function Tce(e){return e}var Ice=Array.prototype.map,Ece=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function glt(e){var t=e.grouping===void 0||e.thousands===void 0?Tce:dlt(Ice.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal+"",o=e.numerals===void 0?Tce:flt(Ice.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(f){f=hL(f);var p=f.fill,v=f.align,x=f.sign,y=f.symbol,b=f.zero,w=f.width,_=f.comma,S=f.precision,C=f.trim,j=f.type;j==="n"?(_=!0,j="g"):jce[j]||(S===void 0&&(S=12),C=!0,j="g"),(b||p==="0"&&v==="=")&&(b=!0,p="0",v="=");var T=y==="$"?n:y==="#"&&/[boxX]/.test(j)?"0"+j.toLowerCase():"",E=y==="$"?r:/[%p]/.test(j)?a:"",$=jce[j],D=/[defgprs%]/.test(j);S=S===void 0?6:/[gprs]/.test(j)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function M(O){var te=T,q=E,P,X,A;if(j==="c")q=$(O)+q,O="";else{O=+O;var Y=O<0||1/O<0;if(O=isNaN(O)?l:$(Math.abs(O),S),C&&(O=plt(O)),Y&&+O==0&&x!=="+"&&(Y=!1),te=(Y?x==="("?x:s:x==="-"||x==="("?"":x)+te,q=(j==="s"?Ece[8+Sce/3]:"")+q+(Y&&x==="("?")":""),D){for(P=-1,X=O.length;++PA||A>57){q=(A===46?i+O.slice(P+1):O.slice(P))+q,O=O.slice(0,P);break}}}_&&!b&&(O=t(O,1/0));var F=te.length+O.length+q.length,H=F>1)+te+O+q+H.slice(F);break;default:O=H+te+O+q;break}return o(O)}return M.toString=function(){return f+""},M}function d(f,p){var v=c((f=hL(f),f.type="f",f)),x=Math.max(-8,Math.min(8,Math.floor(clt(p)/3)))*3,y=Math.pow(10,-x),b=Ece[8+x/3];return function(w){return v(y*w)+b}}return{format:c,formatPrefix:d}}var u5,Nce;vlt({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function vlt(e){return u5=glt(e),Nce=u5.format,u5.formatPrefix,u5}var mL=new Date,gL=new Date;function Cd(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a0))return l;do l.push(c=new Date(+o)),t(o,s),e(o);while(c=a)for(;e(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););})},n&&(i.count=function(o,a){return mL.setTime(+o),gL.setTime(+a),e(mL),e(gL),Math.floor(n(mL,gL))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}const ylt=1e3,vL=ylt*60,blt=vL*60,yL=blt*24,$ce=yL*7;var bL=Cd(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*vL)/yL,e=>e.getDate()-1);bL.range;function Xp(e){return Cd(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*vL)/$ce})}var Mce=Xp(0),c5=Xp(1),xlt=Xp(2),_lt=Xp(3),v1=Xp(4),wlt=Xp(5),klt=Xp(6);Mce.range,c5.range,xlt.range,_lt.range,v1.range,wlt.range,klt.range;var Jp=Cd(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Jp.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:Cd(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})},Jp.range;var xL=Cd(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/yL},function(e){return e.getUTCDate()-1});xL.range;function Qp(e){return Cd(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/$ce})}var Rce=Qp(0),d5=Qp(1),Slt=Qp(2),Clt=Qp(3),y1=Qp(4),jlt=Qp(5),Tlt=Qp(6);Rce.range,d5.range,Slt.range,Clt.range,y1.range,jlt.range,Tlt.range;var em=Cd(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});em.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:Cd(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})},em.range;function _L(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function wL(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Zx(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Ilt(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,l=e.shortMonths,c=qx(i),d=Gx(i),f=qx(o),p=Gx(o),v=qx(a),x=Gx(a),y=qx(s),b=Gx(s),w=qx(l),_=Gx(l),S={a:Y,A:F,b:H,B:ee,c:null,d:Ace,e:Ace,f:Xlt,g:sut,G:uut,H:Glt,I:Ylt,j:Klt,L:Fce,m:Jlt,M:Qlt,p:ce,q:B,Q:Zce,s:qce,S:eut,u:tut,U:nut,V:rut,w:iut,W:out,x:null,X:null,y:aut,Y:lut,Z:cut,"%":Hce},C={a:ae,A:je,b:me,B:ke,c:null,d:Bce,e:Bce,f:put,g:Sut,G:jut,H:dut,I:fut,j:hut,L:Wce,m:mut,M:gut,p:he,q:ue,Q:Zce,s:qce,S:vut,u:yut,U:but,V:xut,w:_ut,W:wut,x:null,X:null,y:kut,Y:Cut,Z:Tut,"%":Hce},j={a:M,A:O,b:te,B:q,c:P,d:zce,e:zce,f:Vlt,g:Oce,G:Pce,H:Dce,I:Dce,j:Flt,L:Wlt,m:Alt,M:Ult,p:D,q:Dlt,Q:Zlt,s:qlt,S:Blt,u:Rlt,U:Llt,V:Plt,w:Mlt,W:Olt,x:X,X:A,y:Oce,Y:Pce,Z:zlt,"%":Hlt};S.x=T(n,S),S.X=T(r,S),S.c=T(t,S),C.x=T(n,C),C.X=T(r,C),C.c=T(t,C);function T(re,ge){return function($e){var pe=[],ye=-1,Se=0,Ce=re.length,Ue,Ge,_t;for($e instanceof Date||($e=new Date(+$e));++ye53)return null;"w"in pe||(pe.w=1),"Z"in pe?(Se=wL(Zx(pe.y,0,1)),Ce=Se.getUTCDay(),Se=Ce>4||Ce===0?d5.ceil(Se):d5(Se),Se=xL.offset(Se,(pe.V-1)*7),pe.y=Se.getUTCFullYear(),pe.m=Se.getUTCMonth(),pe.d=Se.getUTCDate()+(pe.w+6)%7):(Se=_L(Zx(pe.y,0,1)),Ce=Se.getDay(),Se=Ce>4||Ce===0?c5.ceil(Se):c5(Se),Se=bL.offset(Se,(pe.V-1)*7),pe.y=Se.getFullYear(),pe.m=Se.getMonth(),pe.d=Se.getDate()+(pe.w+6)%7)}else("W"in pe||"U"in pe)&&("w"in pe||(pe.w="u"in pe?pe.u%7:"W"in pe?1:0),Ce="Z"in pe?wL(Zx(pe.y,0,1)).getUTCDay():_L(Zx(pe.y,0,1)).getDay(),pe.m=0,pe.d="W"in pe?(pe.w+6)%7+pe.W*7-(Ce+5)%7:pe.w+pe.U*7-(Ce+6)%7);return"Z"in pe?(pe.H+=pe.Z/100|0,pe.M+=pe.Z%100,wL(pe)):_L(pe)}}function $(re,ge,$e,pe){for(var ye=0,Se=ge.length,Ce=$e.length,Ue,Ge;ye=Ce)return-1;if(Ue=ge.charCodeAt(ye++),Ue===37){if(Ue=ge.charAt(ye++),Ge=j[Ue in Lce?ge.charAt(ye++):Ue],!Ge||(pe=Ge(re,$e,pe))<0)return-1}else if(Ue!=$e.charCodeAt(pe++))return-1}return pe}function D(re,ge,$e){var pe=c.exec(ge.slice($e));return pe?(re.p=d.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function M(re,ge,$e){var pe=v.exec(ge.slice($e));return pe?(re.w=x.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function O(re,ge,$e){var pe=f.exec(ge.slice($e));return pe?(re.w=p.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function te(re,ge,$e){var pe=w.exec(ge.slice($e));return pe?(re.m=_.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function q(re,ge,$e){var pe=y.exec(ge.slice($e));return pe?(re.m=b.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function P(re,ge,$e){return $(re,t,ge,$e)}function X(re,ge,$e){return $(re,n,ge,$e)}function A(re,ge,$e){return $(re,r,ge,$e)}function Y(re){return a[re.getDay()]}function F(re){return o[re.getDay()]}function H(re){return l[re.getMonth()]}function ee(re){return s[re.getMonth()]}function ce(re){return i[+(re.getHours()>=12)]}function B(re){return 1+~~(re.getMonth()/3)}function ae(re){return a[re.getUTCDay()]}function je(re){return o[re.getUTCDay()]}function me(re){return l[re.getUTCMonth()]}function ke(re){return s[re.getUTCMonth()]}function he(re){return i[+(re.getUTCHours()>=12)]}function ue(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var ge=T(re+="",S);return ge.toString=function(){return re},ge},parse:function(re){var ge=E(re+="",!1);return ge.toString=function(){return re},ge},utcFormat:function(re){var ge=T(re+="",C);return ge.toString=function(){return re},ge},utcParse:function(re){var ge=E(re+="",!0);return ge.toString=function(){return re},ge}}}var Lce={"-":"",_:" ",0:"0"},lo=/^\s*\d+/,Elt=/^%/,Nlt=/[\\^$*+?|[\]().{}]/g;function Pn(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o[t.toLowerCase(),n]))}function Mlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Rlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Llt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Plt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Olt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Pce(e,t,n){var r=lo.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Oce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function zlt(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Dlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Alt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function zce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Flt(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Dce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Ult(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Blt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Wlt(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Vlt(e,t,n){var r=lo.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Hlt(e,t,n){var r=Elt.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Zlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function qlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Ace(e,t){return Pn(e.getDate(),t,2)}function Glt(e,t){return Pn(e.getHours(),t,2)}function Ylt(e,t){return Pn(e.getHours()%12||12,t,2)}function Klt(e,t){return Pn(1+bL.count(Jp(e),e),t,3)}function Fce(e,t){return Pn(e.getMilliseconds(),t,3)}function Xlt(e,t){return Fce(e,t)+"000"}function Jlt(e,t){return Pn(e.getMonth()+1,t,2)}function Qlt(e,t){return Pn(e.getMinutes(),t,2)}function eut(e,t){return Pn(e.getSeconds(),t,2)}function tut(e){var t=e.getDay();return t===0?7:t}function nut(e,t){return Pn(Mce.count(Jp(e)-1,e),t,2)}function Uce(e){var t=e.getDay();return t>=4||t===0?v1(e):v1.ceil(e)}function rut(e,t){return e=Uce(e),Pn(v1.count(Jp(e),e)+(Jp(e).getDay()===4),t,2)}function iut(e){return e.getDay()}function out(e,t){return Pn(c5.count(Jp(e)-1,e),t,2)}function aut(e,t){return Pn(e.getFullYear()%100,t,2)}function sut(e,t){return e=Uce(e),Pn(e.getFullYear()%100,t,2)}function lut(e,t){return Pn(e.getFullYear()%1e4,t,4)}function uut(e,t){var n=e.getDay();return e=n>=4||n===0?v1(e):v1.ceil(e),Pn(e.getFullYear()%1e4,t,4)}function cut(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Pn(t/60|0,"0",2)+Pn(t%60,"0",2)}function Bce(e,t){return Pn(e.getUTCDate(),t,2)}function dut(e,t){return Pn(e.getUTCHours(),t,2)}function fut(e,t){return Pn(e.getUTCHours()%12||12,t,2)}function hut(e,t){return Pn(1+xL.count(em(e),e),t,3)}function Wce(e,t){return Pn(e.getUTCMilliseconds(),t,3)}function put(e,t){return Wce(e,t)+"000"}function mut(e,t){return Pn(e.getUTCMonth()+1,t,2)}function gut(e,t){return Pn(e.getUTCMinutes(),t,2)}function vut(e,t){return Pn(e.getUTCSeconds(),t,2)}function yut(e){var t=e.getUTCDay();return t===0?7:t}function but(e,t){return Pn(Rce.count(em(e)-1,e),t,2)}function Vce(e){var t=e.getUTCDay();return t>=4||t===0?y1(e):y1.ceil(e)}function xut(e,t){return e=Vce(e),Pn(y1.count(em(e),e)+(em(e).getUTCDay()===4),t,2)}function _ut(e){return e.getUTCDay()}function wut(e,t){return Pn(d5.count(em(e)-1,e),t,2)}function kut(e,t){return Pn(e.getUTCFullYear()%100,t,2)}function Sut(e,t){return e=Vce(e),Pn(e.getUTCFullYear()%100,t,2)}function Cut(e,t){return Pn(e.getUTCFullYear()%1e4,t,4)}function jut(e,t){var n=e.getUTCDay();return e=n>=4||n===0?y1(e):y1.ceil(e),Pn(e.getUTCFullYear()%1e4,t,4)}function Tut(){return"+0000"}function Hce(){return"%"}function Zce(e){return+e}function qce(e){return Math.floor(+e/1e3)}var b1,Gce;Iut({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Iut(e){return b1=Ilt(e),Gce=b1.format,b1.parse,b1.utcFormat,b1.utcParse,b1}function en(e){for(var t=e.length/6|0,n=new Array(t),r=0;rYst(e[e.length-1]);var tm=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(en);const _5=wr(tm);var nm=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(en);const w5=wr(nm);var rm=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(en);const k5=wr(rm);var im=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(en);const S5=wr(im);var om=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(en);const C5=wr(om);var am=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(en);const j5=wr(am);var sm=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(en);const T5=wr(sm);var lm=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(en);const I5=wr(lm);var um=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(en);const E5=wr(um);var cm=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(en);const N5=wr(cm);var dm=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(en);const $5=wr(dm);var fm=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(en);const M5=wr(fm);var hm=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(en);const R5=wr(hm);var pm=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(en);const L5=wr(pm);var mm=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(en);const P5=wr(mm);var gm=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(en);const O5=wr(gm);var vm=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(en);const z5=wr(vm);var ym=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(en);const D5=wr(ym);var bm=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(en);const A5=wr(bm);var xm=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(en);const F5=wr(xm);var _m=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(en);const U5=wr(_m);var wm=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(en);const B5=wr(wm);var km=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(en);const W5=wr(km);var Sm=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(en);const V5=wr(Sm);var Cm=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(en);const H5=wr(Cm);var jm=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(en);const Z5=wr(jm);var Tm=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(en);const q5=wr(Tm);function G5(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-e*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-e*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-e*2475.67)))))))+")"}const Y5=dL(cc(300,.5,0),cc(-240,.5,1));var K5=dL(cc(-100,.75,.35),cc(80,1.5,.8)),X5=dL(cc(260,.75,.35),cc(80,1.5,.8)),J5=cc();function Q5(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return J5.h=360*e-100,J5.s=1.5-1.5*t,J5.l=.8-.9*t,J5+""}var eS=qp(),Eut=Math.PI/3,Nut=Math.PI*2/3;function tS(e){var t;return e=(.5-e)*Math.PI,eS.r=255*(t=Math.sin(e))*t,eS.g=255*(t=Math.sin(e+Eut))*t,eS.b=255*(t=Math.sin(e+Nut))*t,eS+""}function nS(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-e*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+e*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-e*6838.66)))))))+")"}function rS(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}const iS=rS(en("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var oS=rS(en("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),aS=rS(en("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),sS=rS(en("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),$ut=AR,Mut=sue,Rut=lue,Lut=Yue,Put=Q6,Out=FR,zut=200;function Dut(e,t,n,r){var i=-1,o=Mut,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=Lut(t,Put(n))),r?(o=Rut,a=!1):t.length>=zut&&(o=Out,a=!1,t=new $ut(t));e:for(;++i1?0:e<-1?Kx:Math.acos(e)}function Xce(e){return e>=1?lS:e<=-1?-lS:Math.asin(e)}const SL=Math.PI,CL=2*SL,Em=1e-6,qut=CL-Em;function Jce(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Jce;const n=10**t;return function(r){this._+=r[0];for(let i=1,o=r.length;iEm)if(!(Math.abs(d*s-l*c)>Em)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=n-o,v=r-a,x=s*s+l*l,y=p*p+v*v,b=Math.sqrt(x),w=Math.sqrt(f),_=i*Math.tan((SL-Math.acos((x+f-y)/(2*b*w)))/2),S=_/w,C=_/b;Math.abs(S-1)>Em&&this._append`L${e+S*c},${t+S*d}`,this._append`A${i},${i},0,0,${+(d*p>c*v)},${this._x1=e+C*s},${this._y1=t+C*l}`}}arc(e,t,n,r,i,o){if(e=+e,t=+t,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),l=e+a,c=t+s,d=1^o,f=o?r-i:i-r;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Em||Math.abs(this._y1-c)>Em)&&this._append`L${l},${c}`,n&&(f<0&&(f=f%CL+CL),f>qut?this._append`A${n},${n},0,1,${d},${e-a},${t-s}A${n},${n},0,1,${d},${this._x1=l},${this._y1=c}`:f>Em&&this._append`A${n},${n},0,${+(f>=SL)},${d},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function Qce(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new Yut(t)}function Kut(e){return e.innerRadius}function Xut(e){return e.outerRadius}function Jut(e){return e.startAngle}function Qut(e){return e.endAngle}function ect(e){return e&&e.padAngle}function tct(e,t,n,r,i,o,a,s){var l=n-e,c=r-t,d=a-i,f=s-o,p=f*l-d*c;if(!(p*pP*P+X*X&&($=M,D=O),{cx:$,cy:D,x01:-d,y01:-f,x11:$*(i/j-1),y11:D*(i/j-1)}}function nct(){var e=Kut,t=Xut,n=Si(0),r=null,i=Jut,o=Qut,a=ect,s=null,l=Qce(c);function c(){var d,f,p=+e.apply(this,arguments),v=+t.apply(this,arguments),x=i.apply(this,arguments)-lS,y=o.apply(this,arguments)-lS,b=Kce(y-x),w=y>x;if(s||(s=d=l()),vZo))s.moveTo(0,0);else if(b>uS-Zo)s.moveTo(v*Im(x),v*fc(x)),s.arc(0,0,v,x,y,!w),p>Zo&&(s.moveTo(p*Im(y),p*fc(y)),s.arc(0,0,p,y,x,w));else{var _=x,S=y,C=x,j=y,T=b,E=b,$=a.apply(this,arguments)/2,D=$>Zo&&(r?+r.apply(this,arguments):x1(p*p+v*v)),M=kL(Kce(v-p)/2,+n.apply(this,arguments)),O=M,te=M,q,P;if(D>Zo){var X=Xce(D/p*fc($)),A=Xce(D/v*fc($));(T-=X*2)>Zo?(X*=w?1:-1,C+=X,j-=X):(T=0,C=j=(x+y)/2),(E-=A*2)>Zo?(A*=w?1:-1,_+=A,S-=A):(E=0,_=S=(x+y)/2)}var Y=v*Im(_),F=v*fc(_),H=p*Im(j),ee=p*fc(j);if(M>Zo){var ce=v*Im(S),B=v*fc(S),ae=p*Im(C),je=p*fc(C),me;if(bZo?te>Zo?(q=cS(ae,je,Y,F,v,te,w),P=cS(ce,B,H,ee,v,te,w),s.moveTo(q.cx+q.x01,q.cy+q.y01),teZo)||!(T>Zo)?s.lineTo(H,ee):O>Zo?(q=cS(H,ee,ce,B,p,-O,w),P=cS(Y,F,ae,je,p,-O,w),s.lineTo(q.cx+q.x01,q.cy+q.y01),Oe?1:t>=e?0:NaN}function act(e){return e}function sct(){var e=act,t=oct,n=null,r=Si(0),i=Si(uS),o=Si(0);function a(s){var l,c=(s=ede(s)).length,d,f,p=0,v=new Array(c),x=new Array(c),y=+r.apply(this,arguments),b=Math.min(uS,Math.max(-uS,i.apply(this,arguments)-y)),w,_=Math.min(Math.abs(b)/c,o.apply(this,arguments)),S=_*(b<0?-1:1),C;for(l=0;l0&&(p+=C);for(t!=null?v.sort(function(j,T){return t(x[j],x[T])}):n!=null&&v.sort(function(j,T){return n(s[j],s[T])}),l=0,f=p?(b-c*S)/p:0;l0?C*f:0)+S,x[d]={data:s[d],index:l,value:C,startAngle:y,endAngle:w,padAngle:_};return x}return a.value=function(s){return arguments.length?(e=typeof s=="function"?s:Si(+s),a):e},a.sortValues=function(s){return arguments.length?(t=s,n=null,a):t},a.sort=function(s){return arguments.length?(n=s,t=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:Si(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:Si(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:Si(+s),a):o},a}function dh(){}function dS(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function fS(e){this._context=e}fS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:dS(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:dS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lct(e){return new fS(e)}function rde(e){this._context=e}rde.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:dS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function uct(e){return new rde(e)}function ide(e){this._context=e}ide.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:dS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function cct(e){return new ide(e)}function ode(e,t){this._basis=new fS(e),this._beta=t}ode.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r=e[0],i=t[0],o=e[n]-r,a=t[n]-i,s=-1,l;++s<=n;)l=s/n,this._basis.point(this._beta*e[s]+(1-this._beta)*(r+l*o),this._beta*t[s]+(1-this._beta)*(i+l*a));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const dct=function e(t){function n(r){return t===1?new fS(r):new ode(r,t)}return n.beta=function(r){return e(+r)},n}(.85);function hS(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function TL(e,t){this._context=e,this._k=(1-t)/6}TL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:hS(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:hS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const fct=function e(t){function n(r){return new TL(r,t)}return n.tension=function(r){return e(+r)},n}(0);function IL(e,t){this._context=e,this._k=(1-t)/6}IL.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:hS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const hct=function e(t){function n(r){return new IL(r,t)}return n.tension=function(r){return e(+r)},n}(0);function EL(e,t){this._context=e,this._k=(1-t)/6}EL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:hS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const pct=function e(t){function n(r){return new EL(r,t)}return n.tension=function(r){return e(+r)},n}(0);function NL(e,t,n){var r=e._x1,i=e._y1,o=e._x2,a=e._y2;if(e._l01_a>Zo){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>Zo){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,d=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*c+e._x1*e._l23_2a-t*e._l12_2a)/d,a=(a*c+e._y1*e._l23_2a-n*e._l12_2a)/d}e._context.bezierCurveTo(r,i,o,a,e._x2,e._y2)}function ade(e,t){this._context=e,this._alpha=t}ade.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:NL(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const mct=function e(t){function n(r){return t?new ade(r,t):new TL(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function sde(e,t){this._context=e,this._alpha=t}sde.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:NL(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const gct=function e(t){function n(r){return t?new sde(r,t):new IL(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function lde(e,t){this._context=e,this._alpha=t}lde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:NL(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const vct=function e(t){function n(r){return t?new lde(r,t):new EL(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function ude(e){this._context=e}ude.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function yct(e){return new ude(e)}function cde(e){return e<0?-1:1}function dde(e,t,n){var r=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(r||i<0&&-0),a=(n-e._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(cde(o)+cde(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function fde(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function $L(e,t,n){var r=e._x0,i=e._y0,o=e._x1,a=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,i+s*t,o-s,a-s*n,o,a)}function pS(e){this._context=e}pS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:$L(this,this._t0,fde(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,$L(this,fde(this,n=dde(this,e,t)),n);break;default:$L(this,this._t0,n=dde(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function hde(e){this._context=new pde(e)}(hde.prototype=Object.create(pS.prototype)).point=function(e,t){pS.prototype.point.call(this,t,e)};function pde(e){this._context=e}pde.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,o){this._context.bezierCurveTo(t,e,r,n,o,i)}};function mde(e){return new pS(e)}function gde(e){return new hde(e)}function vde(e){this._context=e}vde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=yde(e),i=yde(t),o=0,a=1;a=0;--t)i[t]=(a[t]-i[t+1])/o[t];for(o[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function xct(e){return new mS(e,.5)}function _ct(e){return new mS(e,0)}function wct(e){return new mS(e,1)}var kct=ece,Sct=nce,Cct=n5;function jct(e,t,n){for(var r=-1,i=t.length,o={};++r0&&n(s)?t>1?_de(s,t-1,n,r,i):Xct(i,s):r||(i[i.length]=s)}return i}var Qct=_de,edt=Qct;function tdt(e){var t=e==null?0:e.length;return t?edt(e,1):[]}var ndt=tdt,rdt=ndt,idt=Vue,odt=Zue;function adt(e){return odt(idt(e,void 0,rdt),e+"")}var sdt=adt,ldt=Hct,udt=sdt,cdt=udt(function(e,t){return e==null?{}:ldt(e,t)}),ddt=cdt;const fdt=to(ddt);function hdt(e,t){for(var n=-1,r=e==null?0:e.length;++ns))return!1;var c=o.get(e),d=o.get(t);if(c&&d)return c==t&&d==e;var f=-1,p=!0,v=n&bdt?new mdt:void 0;for(o.set(e,t),o.set(t,e);++f=0||(i[n]=e[n]);return i}var eht=["axis.ticks.text","axis.legend.text","legends.title.text","legends.text","legends.ticks.text","legends.title.text","labels.text","dots.text","markers.text","annotations.text"],tht=function(e,t){return mu({},t,e)},nht=function(e,t){var n=Mat({},e,t);return eht.forEach(function(r){Wx(n,r,tht(yl(n,r),n.text))}),n},Hde=m.createContext(),Zde=function(e){var t=e.children,n=e.animate,r=n===void 0||n,i=e.config,o=i===void 0?"default":i,a=m.useMemo(function(){var s=nlt(o)?k$[o]:o;return{animate:r,config:s}},[r,o]);return u.jsx(Hde.Provider,{value:a,children:t})},yS={animate:xe.bool,motionConfig:xe.oneOfType([xe.oneOf(Object.keys(k$)),xe.shape({mass:xe.number,tension:xe.number,friction:xe.number,clamp:xe.bool,precision:xe.number,velocity:xe.number,duration:xe.number,easing:xe.func})])};Zde.propTypes={children:xe.node.isRequired,animate:yS.animate,config:yS.motionConfig};var w1=function(){return m.useContext(Hde)},rht={nivo:["#d76445","#f47560","#e8c1a0","#97e3d5","#61cdbb","#00b0a7"],BrBG:wt(tm),PRGn:wt(nm),PiYG:wt(rm),PuOr:wt(im),RdBu:wt(om),RdGy:wt(am),RdYlBu:wt(sm),RdYlGn:wt(lm),spectral:wt(um),blues:wt(wm),greens:wt(km),greys:wt(Sm),oranges:wt(Tm),purples:wt(Cm),reds:wt(jm),BuGn:wt(cm),BuPu:wt(dm),GnBu:wt(fm),OrRd:wt(hm),PuBuGn:wt(pm),PuBu:wt(mm),PuRd:wt(gm),RdPu:wt(vm),YlGnBu:wt(ym),YlGn:wt(bm),YlOrBr:wt(xm),YlOrRd:wt(_m)},iht=Object.keys(rht);wt(tm),wt(nm),wt(rm),wt(im),wt(om),wt(am),wt(sm),wt(lm),wt(um),wt(wm),wt(km),wt(Sm),wt(Tm),wt(Cm),wt(jm),wt(cm),wt(dm),wt(fm),wt(hm),wt(pm),wt(mm),wt(gm),wt(vm),wt(ym),wt(bm),wt(xm),wt(_m),xe.oneOfType([xe.oneOf(iht),xe.func,xe.arrayOf(xe.string)]);var oht={basis:lct,basisClosed:uct,basisOpen:cct,bundle:dct,cardinal:fct,cardinalClosed:hct,cardinalOpen:pct,catmullRom:mct,catmullRomClosed:gct,catmullRomOpen:vct,linear:nde,linearClosed:yct,monotoneX:mde,monotoneY:gde,natural:bct,step:xct,stepAfter:wct,stepBefore:_ct},WL=Object.keys(oht);WL.filter(function(e){return e.endsWith("Closed")}),Yce(WL,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),Yce(WL,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),xe.shape({top:xe.number,right:xe.number,bottom:xe.number,left:xe.number}).isRequired;var aht=["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"];xe.oneOf(aht),dc(Yx);var sht={top:0,right:0,bottom:0,left:0},qde=function(e,t,n){return n===void 0&&(n={}),m.useMemo(function(){var r=mu({},sht,n);return{margin:r,innerWidth:e-r.left-r.right,innerHeight:t-r.top-r.bottom,outerWidth:e,outerHeight:t}},[e,t,n.top,n.right,n.bottom,n.left])},lht=function(){var e=m.useRef(null),t=m.useState({left:0,top:0,width:0,height:0}),n=t[0],r=t[1],i=m.useState(function(){return typeof ResizeObserver>"u"?null:new ResizeObserver(function(o){var a=o[0];return r(a.contentRect)})})[0];return m.useEffect(function(){return e.current&&i!==null&&i.observe(e.current),function(){i!==null&&i.disconnect()}},[]),[e,n]},uht=function(e){return m.useMemo(function(){return nht(Qft,e)},[e])},cht=function(e){return typeof e=="function"?e:typeof e=="string"?e.indexOf("time:")===0?Gce(e.slice("5")):Nce(e):function(t){return""+t}},VL=function(e){return m.useMemo(function(){return cht(e)},[e])},Gde=m.createContext(),dht={},Yde=function(e){var t=e.theme,n=t===void 0?dht:t,r=e.children,i=uht(n);return u.jsx(Gde.Provider,{value:i,children:r})};Yde.propTypes={children:xe.node.isRequired,theme:xe.object};var Ms=function(){return m.useContext(Gde)},fht=["outlineWidth","outlineColor","outlineOpacity"],Kde=function(e){return e.outlineWidth,e.outlineColor,e.outlineOpacity,BL(e,fht)},Xde=function(e){var t=e.children,n=e.condition,r=e.wrapper;return n?m.cloneElement(r,{},t):t};Xde.propTypes={children:xe.node.isRequired,condition:xe.bool.isRequired,wrapper:xe.element.isRequired};var hht={position:"relative"},HL=function(e){var t=e.children,n=e.theme,r=e.renderWrapper,i=r===void 0||r,o=e.isInteractive,a=o===void 0||o,s=e.animate,l=e.motionConfig,c=m.useRef(null);return u.jsx(Yde,{theme:n,children:u.jsx(Zde,{animate:s,config:l,children:u.jsx(Ont,{container:c,children:u.jsxs(Xde,{condition:i,wrapper:u.jsx("div",{style:hht,ref:c}),children:[t,a&&u.jsx(Pnt,{})]})})})})};HL.propTypes={children:xe.element.isRequired,isInteractive:xe.bool,renderWrapper:xe.bool,theme:xe.object,animate:xe.bool,motionConfig:xe.oneOfType([xe.string,yS.motionConfig])},xe.func.isRequired,xe.bool,xe.bool,xe.object.isRequired,xe.bool.isRequired,xe.oneOfType([xe.string,yS.motionConfig]),xe.func.isRequired;var pht=["id","colors"],Jde=function(e){var t=e.id,n=e.colors,r=BL(e,pht);return u.jsx("linearGradient",mu({id:t,x1:0,x2:0,y1:0,y2:1},r,{children:n.map(function(i){var o=i.offset,a=i.color,s=i.opacity;return u.jsx("stop",{offset:o+"%",stopColor:a,stopOpacity:s!==void 0?s:1},o)})}))};Jde.propTypes={id:xe.string.isRequired,colors:xe.arrayOf(xe.shape({offset:xe.number.isRequired,color:xe.string.isRequired,opacity:xe.number})).isRequired,gradientTransform:xe.string};var Qde={linearGradient:Jde},Xx={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},ZL=m.memo(function(e){var t=e.id,n=e.background,r=n===void 0?Xx.background:n,i=e.color,o=i===void 0?Xx.color:i,a=e.size,s=a===void 0?Xx.size:a,l=e.padding,c=l===void 0?Xx.padding:l,d=e.stagger,f=d===void 0?Xx.stagger:d,p=s+c,v=s/2,x=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:r}),u.jsx("circle",{cx:x+v,cy:x+v,r:v,fill:o}),f&&u.jsx("circle",{cx:1.5*c+s+v,cy:1.5*c+s+v,r:v,fill:o})]})});ZL.displayName="PatternDots",ZL.propTypes={id:xe.string.isRequired,color:xe.string.isRequired,background:xe.string.isRequired,size:xe.number.isRequired,padding:xe.number.isRequired,stagger:xe.bool.isRequired};var jd=function(e){return e*Math.PI/180},qL=function(e){return 180*e/Math.PI},mht=function(e){return e.startAngle+(e.endAngle-e.startAngle)/2},k1=function(e,t){return{x:Math.cos(e)*t,y:Math.sin(e)*t}},Jx={spacing:5,rotation:0,background:"#000000",color:"#ffffff",lineWidth:2},GL=m.memo(function(e){var t=e.id,n=e.spacing,r=n===void 0?Jx.spacing:n,i=e.rotation,o=i===void 0?Jx.rotation:i,a=e.background,s=a===void 0?Jx.background:a,l=e.color,c=l===void 0?Jx.color:l,d=e.lineWidth,f=d===void 0?Jx.lineWidth:d,p=Math.round(o)%360,v=Math.abs(r);p>180?p-=360:p>90?p-=180:p<-180?p+=360:p<-90&&(p+=180);var x,y=v,b=v;return p===0?x=` + M 0 0 L `+y+` 0 + M 0 `+b+" L "+y+" "+b+` + `:p===90?x=` + M 0 0 L 0 `+b+` + M `+y+" 0 L "+y+" "+b+` + `:(y=Math.abs(v/Math.sin(jd(p))),b=v/Math.sin(jd(90-p)),x=p>0?` + M 0 `+-b+" L "+2*y+" "+b+` + M `+-y+" "+-b+" L "+y+" "+b+` + M `+-y+" 0 L "+y+" "+2*b+` + `:` + M `+-y+" "+b+" L "+y+" "+-b+` + M `+-y+" "+2*b+" L "+2*y+" "+-b+` + M 0 `+2*b+" L "+2*y+` 0 + `),u.jsxs("pattern",{id:t,width:y,height:b,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:y,height:b,fill:s,stroke:"rgba(255, 0, 0, 0.1)",strokeWidth:0}),u.jsx("path",{d:x,strokeWidth:f,stroke:c,strokeLinecap:"square"})]})});GL.displayName="PatternLines",GL.propTypes={id:xe.string.isRequired,spacing:xe.number.isRequired,rotation:xe.number.isRequired,background:xe.string.isRequired,color:xe.string.isRequired,lineWidth:xe.number.isRequired};var Qx={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},YL=m.memo(function(e){var t=e.id,n=e.color,r=n===void 0?Qx.color:n,i=e.background,o=i===void 0?Qx.background:i,a=e.size,s=a===void 0?Qx.size:a,l=e.padding,c=l===void 0?Qx.padding:l,d=e.stagger,f=d===void 0?Qx.stagger:d,p=s+c,v=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:o}),u.jsx("rect",{x:v,y:v,width:s,height:s,fill:r}),f&&u.jsx("rect",{x:1.5*c+s,y:1.5*c+s,width:s,height:s,fill:r})]})});YL.displayName="PatternSquares",YL.propTypes={id:xe.string.isRequired,color:xe.string.isRequired,background:xe.string.isRequired,size:xe.number.isRequired,padding:xe.number.isRequired,stagger:xe.bool.isRequired};var efe={patternDots:ZL,patternLines:GL,patternSquares:YL},ght=["type"],KL=mu({},Qde,efe),tfe=function(e){var t=e.defs;return!t||t.length<1?null:u.jsx("defs",{"aria-hidden":!0,children:t.map(function(n){var r=n.type,i=BL(n,ght);return KL[r]?m.createElement(KL[r],mu({key:i.id},i)):null})})};tfe.propTypes={defs:xe.arrayOf(xe.shape({type:xe.oneOf(Object.keys(KL)).isRequired,id:xe.string.isRequired}))};var vht=m.memo(tfe),XL=function(e){var t=e.width,n=e.height,r=e.margin,i=e.defs,o=e.children,a=e.role,s=e.ariaLabel,l=e.ariaLabelledBy,c=e.ariaDescribedBy,d=e.isFocusable,f=Ms();return u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,role:a,"aria-label":s,"aria-labelledby":l,"aria-describedby":c,focusable:d,tabIndex:d?0:void 0,children:[u.jsx(vht,{defs:i}),u.jsx("rect",{width:t,height:n,fill:f.background}),u.jsx("g",{transform:"translate("+r.left+","+r.top+")",children:o})]})};XL.propTypes={width:xe.number.isRequired,height:xe.number.isRequired,margin:xe.shape({top:xe.number.isRequired,left:xe.number.isRequired}).isRequired,defs:xe.array,children:xe.oneOfType([xe.arrayOf(xe.node),xe.node]).isRequired,role:xe.string,isFocusable:xe.bool,ariaLabel:xe.string,ariaLabelledBy:xe.string,ariaDescribedBy:xe.string};var nfe=function(e){var t=e.size,n=e.color,r=e.borderWidth,i=e.borderColor;return u.jsx("circle",{r:t/2,fill:n,stroke:i,strokeWidth:r,style:{pointerEvents:"none"}})};nfe.propTypes={size:xe.number.isRequired,color:xe.string.isRequired,borderWidth:xe.number.isRequired,borderColor:xe.string.isRequired};var yht=m.memo(nfe),rfe=function(e){var t=e.x,n=e.y,r=e.symbol,i=r===void 0?yht:r,o=e.size,a=e.datum,s=e.color,l=e.borderWidth,c=e.borderColor,d=e.label,f=e.labelTextAnchor,p=f===void 0?"middle":f,v=e.labelYOffset,x=v===void 0?-12:v,y=Ms(),b=w1(),w=b.animate,_=b.config,S=ex({transform:"translate("+t+", "+n+")",config:_,immediate:!w});return u.jsxs(iu.g,{transform:S.transform,style:{pointerEvents:"none"},children:[m.createElement(i,{size:o,color:s,datum:a,borderWidth:l,borderColor:c}),d&&u.jsx("text",{textAnchor:p,y:x,style:Kde(y.dots.text),children:d})]})};rfe.propTypes={x:xe.number.isRequired,y:xe.number.isRequired,datum:xe.object.isRequired,size:xe.number.isRequired,color:xe.string.isRequired,borderWidth:xe.number.isRequired,borderColor:xe.string.isRequired,symbol:xe.oneOfType([xe.func,xe.object]),label:xe.oneOfType([xe.string,xe.number]),labelTextAnchor:xe.oneOf(["start","middle","end"]),labelYOffset:xe.number},m.memo(rfe);var ife=function(e){var t=e.width,n=e.height,r=e.axis,i=e.scale,o=e.value,a=e.lineStyle,s=e.textStyle,l=e.legend,c=e.legendNode,d=e.legendPosition,f=d===void 0?"top-right":d,p=e.legendOffsetX,v=p===void 0?14:p,x=e.legendOffsetY,y=x===void 0?14:x,b=e.legendOrientation,w=b===void 0?"horizontal":b,_=Ms(),S=0,C=0,j=0,T=0;if(r==="y"?(j=i(o),C=t):(S=i(o),T=n),l&&!c){var E=function($){var D=$.axis,M=$.width,O=$.height,te=$.position,q=$.offsetX,P=$.offsetY,X=$.orientation,A=0,Y=0,F=X==="vertical"?-90:0,H="start";if(D==="x")switch(te){case"top-left":A=-q,Y=P,H="end";break;case"top":Y=-P,H=X==="horizontal"?"middle":"start";break;case"top-right":A=q,Y=P,H=X==="horizontal"?"start":"end";break;case"right":A=q,Y=O/2,H=X==="horizontal"?"start":"middle";break;case"bottom-right":A=q,Y=O-P,H="start";break;case"bottom":Y=O+P,H=X==="horizontal"?"middle":"end";break;case"bottom-left":Y=O-P,A=-q,H=X==="horizontal"?"end":"start";break;case"left":A=-q,Y=O/2,H=X==="horizontal"?"end":"middle"}else switch(te){case"top-left":A=q,Y=-P,H="start";break;case"top":A=M/2,Y=-P,H=X==="horizontal"?"middle":"start";break;case"top-right":A=M-q,Y=-P,H=X==="horizontal"?"end":"start";break;case"right":A=M+q,H=X==="horizontal"?"start":"middle";break;case"bottom-right":A=M-q,Y=P,H="end";break;case"bottom":A=M/2,Y=P,H=X==="horizontal"?"middle":"end";break;case"bottom-left":A=q,Y=P,H=X==="horizontal"?"start":"end";break;case"left":A=-q,H=X==="horizontal"?"end":"middle"}return{x:A,y:Y,rotation:F,textAnchor:H}}({axis:r,width:t,height:n,position:f,offsetX:v,offsetY:y,orientation:w});c=u.jsx("text",{transform:"translate("+E.x+", "+E.y+") rotate("+E.rotation+")",textAnchor:E.textAnchor,dominantBaseline:"central",style:s,children:l})}return u.jsxs("g",{transform:"translate("+S+", "+j+")",children:[u.jsx("line",{x1:0,x2:C,y1:0,y2:T,stroke:_.markers.lineColor,strokeWidth:_.markers.lineStrokeWidth,style:a}),c]})};ife.propTypes={width:xe.number.isRequired,height:xe.number.isRequired,axis:xe.oneOf(["x","y"]).isRequired,scale:xe.func.isRequired,value:xe.oneOfType([xe.number,xe.string,xe.instanceOf(Date)]).isRequired,lineStyle:xe.object,textStyle:xe.object,legend:xe.string,legendPosition:xe.oneOf(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]),legendOffsetX:xe.number.isRequired,legendOffsetY:xe.number.isRequired,legendOrientation:xe.oneOf(["horizontal","vertical"]).isRequired};var bht=m.memo(ife),ofe=function(e){var t=e.markers,n=e.width,r=e.height,i=e.xScale,o=e.yScale;return t&&t.length!==0?t.map(function(a,s){return u.jsx(bht,mu({},a,{width:n,height:r,scale:a.axis==="y"?o:i}),s)}):null};ofe.propTypes={width:xe.number.isRequired,height:xe.number.isRequired,xScale:xe.func.isRequired,yScale:xe.func.isRequired,markers:xe.arrayOf(xe.shape({axis:xe.oneOf(["x","y"]).isRequired,value:xe.oneOfType([xe.number,xe.string,xe.instanceOf(Date)]).isRequired,lineStyle:xe.object,textStyle:xe.object}))},m.memo(ofe);var xht=function(e){return nue(e)?e:function(t){return yl(t,e)}},e_=function(e){return m.useMemo(function(){return xht(e)},[e])},_ht=Object.keys(Qde),wht=Object.keys(efe),kht=function(e,t,n){if(e==="*")return!0;if(nue(e))return e(t);if(Fx(e)){var r=n?yl(t,n):t;return Jft(fdt(r,Object.keys(e)),e)}return!1},Sht=function(e,t,n,r){var i={},o=i.dataKey,a=i.colorKey,s=a===void 0?"color":a,l=i.targetKey,c=l===void 0?"fill":l,d=[],f={};return e.length&&t.length&&(d=[].concat(e),t.forEach(function(p){for(var v=function(){var y=n[x],b=y.id,w=y.match;if(kht(w,p,o)){var _=e.find(function(M){return M.id===b});if(_){if(wht.includes(_.type))if(_.background==="inherit"||_.color==="inherit"){var S=yl(p,s),C=_.background,j=_.color,T=b;_.background==="inherit"&&(T=T+".bg."+S,C=S),_.color==="inherit"&&(T=T+".fg."+S,j=S),Wx(p,c,"url(#"+T+")"),f[T]||(d.push(mu({},_,{id:T,background:C,color:j})),f[T]=1)}else Wx(p,c,"url(#"+b+")");else if(_ht.includes(_.type))if(_.colors.map(function(M){return M.color}).includes("inherit")){var E=yl(p,s),$=b,D=mu({},_,{colors:_.colors.map(function(M,O){return M.color!=="inherit"?M:($=$+"."+O+"."+E,mu({},M,{color:M.color==="inherit"?E:M.color}))})});D.id=$,Wx(p,c,"url(#"+$+")"),f[$]||(d.push(D),f[$]=1)}else Wx(p,c,"url(#"+b+")")}return"break"}},x=0;xu.jsx(VR,{id:e.label,enableChip:!0,color:e.color}),JL={container:{display:"flex",alignItems:"center"},sourceChip:{marginRight:7},targetChip:{marginLeft:7,marginRight:7}},Bht=({link:e})=>u.jsx(VR,{id:u.jsxs("span",{style:JL.container,children:[u.jsx(WR,{color:e.source.color,style:JL.sourceChip}),u.jsx("strong",{children:e.source.label})," > ",u.jsx("strong",{children:e.target.label}),u.jsx(WR,{color:e.target.color,style:JL.targetChip}),u.jsx("strong",{children:e.formattedValue})]})});function Wht(e){return e.target.depth}function Vht(e){return e.depth}function Hht(e,t){return t-1-e.height}function lfe(e,t){return e.sourceLinks.length?e.depth:t-1}function Zht(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?wce(e.sourceLinks,Wht)-1:0}function xS(e){return function(){return e}}var We=(e=>(e.IncPackCranked="Crank:inc",e.IncPackRetained="Buffered:inc",e.IncResolvRetained="Unresolved:inc",e.IncQuic="QUIC",e.IncUdp="UDP",e.IncGossip="Gossip",e.IncBlockEngine="Jito",e.SlotStart="Received",e.SlotEnd="Packed",e.End="End",e.Networking="networking:tile",e.QUIC="QUIC:tile",e.Verification="verify:tile",e.Dedup="dedup:tile",e.Resolv="resolv:tile",e.Pack="pack:tile",e.Execle="execle:tile",e.NetOverrun="Too slow:net",e.QUICOverrun="Too slow:quic",e.QUICInvalid="Malformed:quic",e.QUICTooManyFrags="Out of buffers:quic",e.QUICAbandoned="Abandoned:quic",e.VerifyOverrun="Too slow:verify",e.VerifyParse="Unparseable",e.VerifyFailed="Bad signature",e.VerifyDuplicate="Duplicate:verify",e.DedupDeuplicate="Duplicate:dedup",e.ResolvFailed="Bad LUT",e.ResolvExpired="Expired:resolv",e.ResolvNoLedger="No ledger",e.ResolvRetained="Unresolved:resolv",e.PackInvalid="Unpackable",e.PackInvalidBundle="Bad Bundle",e.PackExpired="Expired:pack",e.PackAlreadyExecuted="AlreadyExecuted:pack",e.PackRetained="Buffered:pack",e.PackLeaderSlow="Buffer full",e.PackWaitFull="Storage full",e.BankInvalid="Unexecutable",e.BankNonceAlreadyAdvanced="NonceAlreadyAdvanced",e.BankNonceAdvanceFailed="NonceAdvanceFailed",e.BankNonceWrongBlockhash="NonceWrongBlockhash",e.BlockSuccess="Success",e.BlockFailure="Failure",e.Votes="Votes",e.NonVoteSuccess="Non-vote Success",e.NonVoteFailure="Non-vote Failure",e))(We||{});const qht=["Received","Packed"],ufe=["networking:tile","QUIC:tile","verify:tile","dedup:tile","resolv:tile","pack:tile","execle:tile"],cfe=["Too slow:net","Too slow:quic","Malformed:quic","Out of buffers:quic","Abandoned:quic","Too slow:verify","Unparseable","Bad signature","Duplicate:verify","Duplicate:dedup","Bad LUT","Expired:resolv","No ledger","Unresolved:resolv","Unpackable","Bad Bundle","Expired:pack","AlreadyExecuted:pack","Buffered:pack","Buffer full","Storage full","Unexecutable","NonceAlreadyAdvanced","NonceAdvanceFailed","NonceWrongBlockhash"],dfe=["QUIC","UDP"],QL=["Buffered:inc","Buffered:pack","Unresolved:inc","Unresolved:resolv"],ffe=["Success","Non-vote Success"],hfe=["Failure","Non-vote Failure"],Ght=[{id:"QUIC"},{id:"UDP"},{id:"Buffered:pack",labelPositionOverride:"right"},{id:"Unresolved:resolv",labelPositionOverride:"right"},{id:"Too slow:net",labelPositionOverride:"right"},{id:"Too slow:quic",labelPositionOverride:"right"},{id:"Malformed:quic",labelPositionOverride:"right"},{id:"Out of buffers:quic",labelPositionOverride:"right"},{id:"Abandoned:quic",labelPositionOverride:"right"},{id:"Too slow:verify",labelPositionOverride:"right"},{id:"Unparseable",labelPositionOverride:"right"},{id:"Bad signature",labelPositionOverride:"right"},{id:"Duplicate:verify",labelPositionOverride:"right"},{id:"Duplicate:dedup",labelPositionOverride:"right"},{id:"Bad LUT",labelPositionOverride:"right"},{id:"Expired:resolv",labelPositionOverride:"right"},{id:"No ledger",labelPositionOverride:"right"},{id:"Unpackable",labelPositionOverride:"right"},{id:"Bad Bundle",labelPositionOverride:"right"},{id:"Expired:pack",labelPositionOverride:"right"},{id:"AlreadyExecuted:pack",labelPositionOverride:"right"},{id:"Buffer full",labelPositionOverride:"right"},{id:"Storage full",labelPositionOverride:"right"},{id:"Unexecutable",labelPositionOverride:"right"},{id:"NonceAlreadyAdvanced",labelPositionOverride:"right"},{id:"NonceAdvanceFailed",labelPositionOverride:"right"},{id:"NonceWrongBlockhash",labelPositionOverride:"right"},{id:"Received",alignLabelBottom:!0,labelPositionOverride:"right"},{id:"QUIC:tile",alignLabelBottom:!0},{id:"verify:tile",alignLabelBottom:!0},{id:"dedup:tile",alignLabelBottom:!0},{id:"resolv:tile",alignLabelBottom:!0},{id:"Gossip"},{id:"Jito"},{id:"Unresolved:inc",labelPositionOverride:"left"},{id:"Crank:inc",labelPositionOverride:"left"},{id:"Buffered:inc",labelPositionOverride:"left"},{id:"pack:tile",alignLabelBottom:!0},{id:"execle:tile",alignLabelBottom:!0},{id:"End",hideLabel:!0},{id:"Packed",alignLabelBottom:!0,labelPositionOverride:"left"},{id:"Failure"},{id:"Success"},{id:"Votes"},{id:"Non-vote Failure"},{id:"Non-vote Success"}],Yht=ca(),Kht=1,pfe=-1e3,mfe=12,Xht=30,Jht=3e3,Qht=2;function gfe(e,t){return _S(e.source,t.source)||e.index-t.index}function vfe(e,t){return _S(e.target,t.target)||e.index-t.index}function _S(e,t){return e.y0-t.y0}function yfe(e){return e.value}function ept(e){return e.index}function tpt(e){return e.nodes}function npt(e){return e.links}function bfe(e,t){const n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function xfe({nodes:e}){for(const t of e){let n=t.y0,r=n;for(const i of t.sourceLinks)i.y0=n+i.width/2,n+=i.width;for(const i of t.targetLinks)i.y1=r+i.width/2,r+=i.width}}function rpt(){let e=0,t=0,n=1,r=1,i=24,o=8,a,s=ept,l=lfe,c,d,f=tpt,p=npt,v=6;function x(){const A={nodes:f.apply(null,arguments),links:p.apply(null,arguments)};return y(A),b(A),w(A),_(A),j(A),xfe(A),X(A),A}x.update=function(A){return xfe(A),A},x.nodeId=function(A){return arguments.length?(s=typeof A=="function"?A:xS(A),x):s},x.nodeAlign=function(A){return arguments.length?(l=typeof A=="function"?A:xS(A),x):l},x.nodeSort=function(A){return arguments.length?(c=A,x):c},x.nodeWidth=function(A){return arguments.length?(i=+A,x):i},x.nodePadding=function(A){return arguments.length?(o=a=+A,x):o},x.nodes=function(A){return arguments.length?(f=typeof A=="function"?A:xS(A),x):f},x.links=function(A){return arguments.length?(p=typeof A=="function"?A:xS(A),x):p},x.linkSort=function(A){return arguments.length?(d=A,x):d},x.size=function(A){return arguments.length?(e=t=0,n=+A[0],r=+A[1],x):[n-e,r-t]},x.extent=function(A){return arguments.length?(e=+A[0][0],n=+A[1][0],t=+A[0][1],r=+A[1][1],x):[[e,t],[n,r]]},x.iterations=function(A){return arguments.length?(v=+A,x):v};function y({nodes:A,links:Y}){for(const[H,ee]of A.entries())ee.index=H,ee.sourceLinks=[],ee.targetLinks=[];const F=new Map(A.map((H,ee)=>[s(H,ee,A),H]));for(const[H,ee]of Y.entries()){ee.index=H;let{source:ce,target:B}=ee;typeof ce!="object"&&(ce=ee.source=bfe(F,ce)),typeof B!="object"&&(B=ee.target=bfe(F,B)),ce.sourceLinks.push(ee),B.targetLinks.push(ee)}if(d!=null)for(const{sourceLinks:H,targetLinks:ee}of A)H.sort(d),ee.sort(d)}function b({nodes:A}){for(const Y of A)if(Y.fixedValue===void 0){let F=-1/0;Y.sourceLinks.length&&(F=Math.max(fL(Y.sourceLinks,yfe))),Y.targetLinks.length&&(F=Math.max(fL(Y.targetLinks,yfe))),F===-1/0&&(F=0),Y.value=F}else Y.value=Y.fixedValue}function w({nodes:A}){const Y=A.length;let F=new Set(A),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.depth=ee;for(const{target:B}of ce.sourceLinks)H.add(B)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function _({nodes:A}){const Y=A.length;let F=new Set(A),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.height=ee;for(const{source:B}of ce.targetLinks)H.add(B)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function S({nodes:A}){const Y=_ce(A,ae=>ae.depth)+1;let F=(n-e-i)/(Y-1);const H=F/Qht,ee=new Array(Y),ce=e+H,B=n-H;F=(B-ce-i)/(Y-1-2);for(const ae of A){let je=l.call(null,ae,Y);const me=Math.max(0,Math.min(Y-1,Math.floor(je)));ae.layer=me,me===1?ae.x0=e+H:me<1?ae.x0=e+me*H:me===Y-1?ae.x0=B+H:ae.x0=ce+(me-1)*F,ae.x1=ae.x0+Kht,ee[me]?ee[me].push(ae):ee[me]=[ae]}if(c)for(const ae of ee)ae.sort(c);return ee}function C(A){const Y=Yht.get(Cg)===Io.Pct,F=wce(A,H=>(r-t-(H.length-1)*a)/fL(H,ee=>Math.max(ee.value,Y?1:Jht)));for(let H=0;HF.length)-1)),C(Y);for(let F=0;F0))continue;let me=(ae/je-B.y0)*Y+mfe;B.y0+=me,B.y1+=me,B.id===We.SlotStart&&(B.y0=t+(r-t)/6,B.y1=B.y0+B.height),B.id===We.SlotEnd&&(B.y1=r-(r-t)/6,B.y0=B.y1-B.height),O(B)}c===void 0&&ce.sort(_S),$(ce,F)}}function E(A,Y,F){for(let H=A.length,ee=H-2;ee>=0;--ee){const ce=A[ee];for(const B of ce){let ae=0,je=0;for(const{target:ke,value:he}of B.sourceLinks){let ue=(he?Math.abs(he):1)*(ke.layer-B.layer);ae+=P(B,ke)*ue,je+=ue}if(!(je>0))continue;let me=(ae/je-B.y0)*Y-mfe;B.y0+=me,B.y1+=me,B.id===We.SlotStart&&(B.y0=t+(r-t)/6,B.y1=B.y0+B.height),B.id===We.SlotEnd&&(B.y1=r-(r-t)/6,B.y0=B.y1-B.height),O(B)}c===void 0&&ce.sort(_S),$(ce,F)}}function $(A,Y){const F=A.length>>1,H=A[F];M(A,H.y0-a,F-1,Y),D(A,H.y1+a,F+1,Y),M(A,r,A.length-1,Y),D(A,t,0,Y)}function D(A,Y,F,H){for(;F1e-6&&(ee.y0+=ce,ee.y1+=ce),Y=ee.y1+a}}function M(A,Y,F,H){for(;F>=0;--F){const ee=A[F],ce=(ee.y1-Y)*H;ce>1e-6&&(ee.y0-=ce,ee.y1-=ce),Y=ee.y0-a}}function O({sourceLinks:A,targetLinks:Y}){if(d===void 0){for(const{source:{sourceLinks:F}}of Y)F.sort(vfe);for(const{target:{targetLinks:F}}of A)F.sort(gfe)}}function te(A){if(d===void 0)for(const{sourceLinks:Y,targetLinks:F}of A)Y.sort(vfe),F.sort(gfe)}function q(A,Y){let F=A.y0-(A.sourceLinks.length-1)*a/2;for(const{target:H,width:ee}of A.sourceLinks){if(H===Y)break;F+=ee+a}for(const{source:H,width:ee,target:{id:ce}}of Y.targetLinks){if(ce.includes("Dropped")&&(F-=Xht),H===A)break;F-=ee}return F}function P(A,Y){let F=Y.y0-(Y.targetLinks.length-1)*a/2;for(const{source:H,width:ee}of Y.targetLinks){if(H===A)break;F+=ee+a}for(const{target:H,width:ee}of A.sourceLinks){if(H===Y)break;F-=ee}return F}function X(A){const Y=A.nodes.reduce((F,H)=>Math.max(F,H.y1),0);A.nodes.forEach(F=>{qht.includes(F.id)&&(F.y0=0,F.y1=Y,F.height=Y)})}return x}const ipt={center:Zht,justify:lfe,start:Vht,end:Hht},opt=e=>ipt[e],Tn={layout:"horizontal",align:"center",sort:"auto",colors:{scheme:"nivo"},nodeOpacity:.75,nodeHoverOpacity:1,nodeHoverOthersOpacity:.15,nodeThickness:12,nodeInnerPadding:0,nodeBorderWidth:1,nodeBorderColor:{from:"color",modifiers:[["darker",.5]]},nodeBorderRadius:0,linkOpacity:.25,linkHoverOpacity:.6,linkHoverOthersOpacity:.15,linkContract:0,linkBlendMode:"multiply",enableLinkGradient:!1,enableLabels:!0,label:"id",labelPosition:"inside",labelPadding:9,labelOrientation:"horizontal",labelTextColor:{from:"color",modifiers:[["darker",.8]]},isInteractive:!1,nodeTooltip:Uht,linkTooltip:Bht,legends:[],layers:["links","nodes","labels"],role:"img",animate:!1,motionConfig:"gentle"};function apt(e,t){for(var n=-1,r=e==null?0:e.length;++ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kS(){return kS=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(eP[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(Z0t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(eP[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},J0t=function(e,t){return m.useMemo(function(){return X0t(e,t)},[e,t])};const Q0t=e=>e.id,egt=({data:e,formatValue:t,layout:n,alignFunction:r,sortFunction:i,linkSortMode:o,nodeThickness:a,nodeSpacing:s,nodeInnerPadding:l,width:c,height:d,getColor:f,getLabel:p})=>{const v=rpt().nodeAlign(r).nodeSort(i).linkSort(o).nodeWidth(a).nodePadding(s).size(n==="horizontal"?[c,d]:[d,c]).nodeId(Q0t),x=z0t(e);return v(x),x.nodes.forEach(y=>{if(y.color=f(y),y.label=p(y),y.formattedValue=t(y.value),n==="horizontal")y.x=y.x0+l,y.y=y.y0,y.width=Math.max(y.x1-y.x0-l*2,0),y.height=Math.max(y.y1-y.y0,0);else{y.x=y.y0,y.y=y.x0+l,y.width=Math.max(y.y1-y.y0,0),y.height=Math.max(y.x1-y.x0-l*2,0);const b=y.x0,w=y.x1;y.x0=y.y0,y.x1=y.y1,y.y0=b,y.y1=w}}),x.links.forEach(y=>{y.formattedValue=t(y.value),y.color=y.source.color,y.pos0=y.y0,y.pos1=y.y1,y.thickness=y.width,delete y.y0,delete y.y1,delete y.width}),x},tgt=({data:e,valueFormat:t,layout:n,width:r,height:i,sort:o,align:a,colors:s,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,nodeBorderColor:f,label:p,labelTextColor:v})=>{const[x,y]=m.useState(null),[b,w]=m.useState(null),_=m.useMemo(()=>{if(o!=="auto")return o==="input"?null:o==="ascending"?(q,P)=>q.value-P.value:o==="descending"?(q,P)=>P.value-q.value:o},[o]),S=o==="input"?null:void 0,C=m.useMemo(()=>typeof a=="function"?a:opt(a),[a]),j=J0t(s,"id"),T=Ofe(f),E=e_(p),$=Ofe(v),D=VL(t),{nodes:M,links:O}=m.useMemo(()=>egt({data:e,formatValue:D,layout:n,alignFunction:C,sortFunction:_,linkSortMode:S,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,width:r,height:i,getColor:j,getLabel:E}),[e,D,n,C,_,S,l,c,d,r,i,j,E]),te=m.useMemo(()=>M.map(q=>({id:q.id,label:q.label,color:q.color})),[M]);return{nodes:M,links:O,legendData:te,getNodeBorderColor:T,currentNode:x,setCurrentNode:y,currentLink:b,setCurrentLink:w,getLabelTextColor:$}},ngt=({node:e,x:t,y:n,width:r,height:i,color:o,opacity:a,borderWidth:s,borderRadius:l,setCurrent:c,isInteractive:d,onClick:f,tooltip:p})=>u.jsx("rect",{x:t,y:n,width:r,height:i,fill:Ine}),rgt=({nodes:e,nodeOpacity:t,nodeHoverOpacity:n,nodeHoverOthersOpacity:r,borderWidth:i,getBorderColor:o,borderRadius:a,setCurrentNode:s,currentNode:l,currentLink:c,isCurrentNode:d,isInteractive:f,onClick:p,tooltip:v})=>u.jsx(u.Fragment,{children:e.map(x=>u.jsx(ngt,{node:x,x:x.x,y:x.y,width:x.width,height:x.height,color:x.color,opacity:1,borderWidth:i,borderColor:o(x),borderRadius:a,setCurrent:s,isInteractive:f,onClick:p,tooltip:v},x.id))}),igt=()=>{const e=jL().curve(mde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2),i=Math.max(1,r/2),o=(t.target.x0-t.source.x1)*.12,a=[[t.source.x1,t.pos0-i],[t.source.x1+o,t.pos0-i],[t.target.x0-o,t.pos1-i],[t.target.x0,t.pos1-i],[t.target.x0,t.pos1+i],[t.target.x0-o,t.pos1+i],[t.source.x1+o,t.pos0+i],[t.source.x1,t.pos0+i],[t.source.x1,t.pos0-i]];return e(a)+"Z"}},ogt=()=>{const e=jL().curve(gde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2)/2,i=(t.target.y0-t.source.y1)*.12,o=[[t.pos0+r,t.source.y1],[t.pos0+r,t.source.y1+i],[t.pos1+r,t.target.y0-i],[t.pos1+r,t.target.y0],[t.pos1-r,t.target.y0],[t.pos1-r,t.target.y0-i],[t.pos0-r,t.source.y1+i],[t.pos0-r,t.source.y1],[t.pos0+r,t.source.y1]];return e(o)+"Z"}},agt=({id:e,layout:t})=>{let n;return t==="horizontal"?n={x1:"0%",x2:"100%",y1:"0%",y2:"0%"}:n={x1:"0%",x2:"0%",y1:"0%",y2:"100%"},u.jsxs("linearGradient",{id:e,spreadMethod:"pad",...n,children:[u.jsx("stop",{stopColor:NN}),u.jsx("stop",{offset:"0.24",stopColor:Mne}),u.jsx("stop",{offset:"1",stopColor:NN})]})};function zfe(e,t){const[n,r]=m.useState(!1),i=m.useRef();return m.useEffect(()=>{[...dfe,We.SlotStart].includes(e)||(t?(i.current&&(clearTimeout(i.current),i.current=void 0),r(!0)):i.current||(i.current=setTimeout(()=>{r(!1),i.current=void 0},3e3)))},[e,r,t]),!!t||n}const sgt=({link:e,layout:t,path:n,color:r,opacity:i,enableGradient:o,setCurrent:a,tooltip:s,isInteractive:l,onClick:c})=>{const d=`${e.source.id}.${e.target.id}.${e.index}`;let f;return dfe.includes(e.source.id)?f=Ene:QL.includes(e.source.id)||QL.includes(e.target.id)?f=$ne:ffe.includes(e.target.id)?f=Hf:hfe.includes(e.target.id)?f=fd:e.target.id===We.Votes?f=hd:cfe.includes(e.target.id)&&(f=Nne),zfe(e.target.id,e.value)?u.jsxs(u.Fragment,{children:[o&&u.jsx(agt,{id:d,layout:t,startColor:e.startColor||e.source.color,endColor:e.endColor||e.target.color}),u.jsx("path",{fill:f??(o?`url("#${encodeURI(d)}")`:r),d:n})]}):null},lgt=({links:e,layout:t,linkOpacity:n,linkHoverOpacity:r,linkHoverOthersOpacity:i,linkContract:o,linkBlendMode:a,enableLinkGradient:s,setCurrentLink:l,currentLink:c,currentNode:d,isCurrentLink:f,isInteractive:p,onClick:v,tooltip:x})=>{const y=m.useMemo(()=>t==="horizontal"?igt():ogt(),[t]);return u.jsx(u.Fragment,{children:e.map(b=>u.jsx(sgt,{link:b,layout:t,path:y(b,o),color:b.color,opacity:1,blendMode:a,enableGradient:s,setCurrent:l,isInteractive:p,onClick:v,tooltip:x},`${b.source.id}.${b.target.id}.${b.index}`))})};function ugt({children:e,node:t,value:n}){return zfe(t,n)?e:null}const cgt=ca();function dgt(){switch(cgt.get(Cg)){case Io.Pct:return"%";case Io.Rate:return"/s";case Io.Count:return""}}const fgt=({nodes:e,layout:t,width:n,height:r,labelPosition:i,labelPadding:o,labelOrientation:a})=>{const s=a==="vertical"?-90:0,l=e.filter(c=>!c.hideLabel).map(c=>{let d,f,p;return t==="horizontal"?(f=c.y+c.height/2-5,c.alignLabelBottom&&(f=c.y1),ufe.includes(c.id)?(d=c.x0+(c.x1-c.x0)/2,f=f+10,p="middle"):c.labelPositionOverride==="right"?(d=c.x1+o,p=a==="vertical"?"middle":"start"):c.labelPositionOverride==="left"?(d=c.x-o,p=a==="vertical"?"middle":"end"):c.x{var v,x;const[d,f]=hgt(c.label,c.value),p=(v=c.label.split(":")[0])==null?void 0:v.trim();return u.jsx(ugt,{node:c.label,value:c.value,children:u.jsxs("text",{dominantBaseline:"central",textAnchor:c.textAnchor,transform:`translate(${c.x}, ${c.y}) rotate(${s})`,className:"sankey-label",children:[pgt(p).map((y,b)=>u.jsx("tspan",{x:"0",dy:b===0?"0em":"1em",style:{fill:d},children:y},y)),u.jsxs("tspan",{x:"0",dy:"1em",style:{fill:f},children:[(x=c.value)==null?void 0:x.toLocaleString(),dgt()]})]},c.id)},c.id)})})};function hgt(e,t){return t?QL.includes(e)?[Zf,Zf]:ffe.includes(e)?[Zf,Hf]:ufe.includes(e)?[wg,wg]:cfe.includes(e)||hfe.includes(e)?[Zf,fd]:e===We.Votes?[Zf,hd]:[Zf,Zf]:[wg,wg]}function pgt(e){if(e.length<17||!e.includes(" "))return[e];const t=Math.trunc(e.length/2),n=e.lastIndexOf(" ",t),r=e.indexOf(" ",t+1),i=t-n{const{margin:je,innerWidth:me,innerHeight:ke,outerWidth:he,outerHeight:ue}=qde(o,a,s),{nodes:re,links:ge,legendData:$e,getNodeBorderColor:pe,currentNode:ye,setCurrentNode:Se,currentLink:Ce,setCurrentLink:Ue,getLabelTextColor:Ge}=tgt({data:e,valueFormat:t,layout:n,width:me,height:ke,sort:r,align:i,colors:l,nodeThickness:c,nodeSpacing:d,nodeInnerPadding:f,nodeBorderColor:p,label:te,labelTextColor:q});let _t=()=>!1,St=()=>!1;if(Ce&&(_t=({id:bt})=>bt===Ce.source.id||bt===Ce.target.id,St=({source:bt,target:Qe})=>bt.id===Ce.source.id&&Qe.id===Ce.target.id),ye){let bt=[ye.id];ge.filter(({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id).forEach(({source:Qe,target:Ke})=>{bt.push(Qe.id),bt.push(Ke.id)}),bt=_nt(bt),_t=({id:Qe})=>bt.includes(Qe),St=({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id}const ut={links:ge,nodes:re,margin:je,width:o,height:a,outerWidth:he,outerHeight:ue},ct={links:null,nodes:null,labels:null,legends:null};return H.includes("links")&&(ct.links=u.jsx(lgt,{links:ge,layout:n,linkContract:j,linkOpacity:_,linkHoverOpacity:S,linkHoverOthersOpacity:C,linkBlendMode:T,enableLinkGradient:E,setCurrentLink:Ue,currentNode:ye,currentLink:Ce,isCurrentLink:St,isInteractive:A,onClick:Y,tooltip:X},"links")),H.includes("nodes")&&(ct.nodes=u.jsx(rgt,{nodes:re,nodeOpacity:v,nodeHoverOpacity:x,nodeHoverOthersOpacity:y,borderWidth:b,borderRadius:w,getBorderColor:pe,setCurrentNode:Se,currentNode:ye,currentLink:Ce,isCurrentNode:_t,isInteractive:A,onClick:Y,tooltip:P},"nodes")),H.includes("labels")&&$&&(ct.labels=u.jsx(fgt,{nodes:re,layout:n,width:me,height:ke,labelPosition:D,labelPadding:M,labelOrientation:O,getLabelTextColor:Ge},"labels")),H.includes("legends")&&(ct.legends=u.jsx(m.Fragment,{children:F.map((bt,Qe)=>u.jsx(sfe,{...bt,containerWidth:me,containerHeight:ke,data:$e},`legend${Qe}`))},"legends")),u.jsx(XL,{width:he,height:ue,margin:je,role:ee,ariaLabel:ce,ariaLabelledBy:B,ariaDescribedBy:ae,children:H.map((bt,Qe)=>typeof bt=="function"?u.jsx(m.Fragment,{children:m.createElement(bt,ut)},Qe):(ct==null?void 0:ct[bt])??null)})},ggt=({isInteractive:e=Tn.isInteractive,animate:t=Tn.animate,motionConfig:n=Tn.motionConfig,theme:r,renderWrapper:i,...o})=>u.jsx(HL,{animate:t,isInteractive:e,motionConfig:n,renderWrapper:i,theme:r,children:u.jsx(mgt,{isInteractive:e,...o})});function Dfe({displayType:e,durationNanos:t,totalIncoming:n}){return function(r){switch(e){case Io.Count:return r;case Io.Pct:{let i=Math.max(0,Math.round(r/n*1e4)/100);return!i&&r&&(i=.01),i}case Io.Rate:{if(!t)return r;const i=t/1e9;return Math.trunc(r/i)}}}}function vgt(e){return e.net_overrun}function ygt(e){return e.quic_overrun+e.quic_frag_drop+e.quic_abandoned+e.tpu_quic_invalid+e.tpu_udp_invalid}function bgt(e){return e.verify_overrun+e.verify_parse+e.verify_failed+e.verify_duplicate}function xgt(e){return e.dedup_duplicate}function _gt(e,t){return e.resolv_expired+e.resolv_lut_failed+e.resolv_no_ledger+e.resolv_ancient+t}function wgt(e){return e.pack_invalid+e.pack_already_executed+e.pack_invalid_bundle+e.pack_expired+e.pack_leader_slow+e.pack_retained+e.pack_wait_full}function Afe(e,t){const n=Math.min(e.in.resolv_retained,e.out.resolv_retained),r=e.in.resolv_retained-n,i=e.out.resolv_retained-n,o=e.in.quic+e.in.udp-vgt(e.out),a=o-ygt(e.out),s=e.in.block_engine+e.in.gossip+a-bgt(e.out),l=s-xgt(e.out),c=r+l-_gt(e.out,i),d=e.in.pack_retained+e.in.pack_cranked+c-wgt(e.out),f=d-e.out.bank_invalid-e.out.bank_nonce_already_advanced-e.out.bank_nonce_advance_failed-e.out.bank_nonce_wrong_blockhash;return[{source:We.IncQuic,target:We.SlotStart,value:t(e.in.quic)},{source:We.IncUdp,target:We.SlotStart,value:t(e.in.udp)},{source:We.SlotStart,target:We.NetOverrun,value:t(e.out.net_overrun)},{source:We.SlotStart,target:We.QUIC,value:t(o)},{source:We.QUIC,target:We.QUICOverrun,value:t(e.out.quic_overrun)},{source:We.QUIC,target:We.QUICInvalid,value:t(e.out.tpu_quic_invalid+e.out.tpu_udp_invalid)},{source:We.QUIC,target:We.QUICTooManyFrags,value:t(e.out.quic_frag_drop)},{source:We.QUIC,target:We.QUICAbandoned,value:t(e.out.quic_abandoned)},{source:We.QUIC,target:We.Verification,value:t(a)},{source:We.IncGossip,target:We.Verification,value:t(e.in.gossip)},{source:We.IncBlockEngine,target:We.Verification,value:t(e.in.block_engine)},{source:We.Verification,target:We.VerifyOverrun,value:t(e.out.verify_overrun)},{source:We.Verification,target:We.VerifyParse,value:t(e.out.verify_parse)},{source:We.Verification,target:We.VerifyFailed,value:t(e.out.verify_failed)},{source:We.Verification,target:We.VerifyDuplicate,value:t(e.out.verify_duplicate)},{source:We.Verification,target:We.Dedup,value:t(s)},{source:We.Dedup,target:We.DedupDeuplicate,value:t(e.out.dedup_duplicate)},{source:We.Dedup,target:We.Resolv,value:t(l)},{source:We.IncResolvRetained,target:We.Resolv,value:t(r)},{source:We.Resolv,target:We.ResolvRetained,value:t(i)},{source:We.Resolv,target:We.ResolvFailed,value:t(e.out.resolv_lut_failed)},{source:We.Resolv,target:We.ResolvExpired,value:t(e.out.resolv_expired+e.out.resolv_ancient)},{source:We.Resolv,target:We.ResolvNoLedger,value:t(e.out.resolv_no_ledger)},{source:We.Resolv,target:We.Pack,value:t(c)},{source:We.IncPackCranked,target:We.Pack,value:t(e.in.pack_cranked)},{source:We.IncPackRetained,target:We.Pack,value:t(e.in.pack_retained)},{source:We.Pack,target:We.PackRetained,value:t(e.out.pack_retained)},{source:We.Pack,target:We.PackInvalid,value:t(e.out.pack_invalid)},{source:We.Pack,target:We.PackInvalidBundle,value:t(e.out.pack_invalid_bundle)},{source:We.Pack,target:We.PackExpired,value:t(e.out.pack_expired)},{source:We.Pack,target:We.PackAlreadyExecuted,value:t(e.out.pack_already_executed)},{source:We.Pack,target:We.PackLeaderSlow,value:t(e.out.pack_leader_slow)},{source:We.Pack,target:We.PackWaitFull,value:t(e.out.pack_wait_full)},{source:We.Pack,target:We.Execle,value:t(d)},{source:We.Execle,target:We.BankInvalid,value:t(e.out.bank_invalid)},{source:We.Execle,target:We.BankNonceAlreadyAdvanced,value:t(e.out.bank_nonce_already_advanced)},{source:We.Execle,target:We.BankNonceAdvanceFailed,value:t(e.out.bank_nonce_advance_failed)},{source:We.Execle,target:We.BankNonceWrongBlockhash,value:t(e.out.bank_nonce_wrong_blockhash)},{source:We.Execle,target:We.End,value:t(f)},{source:We.End,target:We.SlotEnd,value:t(f)}]}function kgt(e,t){const n=rt.sum(Object.values(e.in)),r=Dfe({displayType:t,durationNanos:void 0,totalIncoming:n});return[...Afe(e,r),{source:We.SlotEnd,target:We.BlockFailure,value:r(e.out.block_fail)},{source:We.SlotEnd,target:We.BlockSuccess,value:r(e.out.block_success)}]}function Sgt(e,t,n,r,i,o,a){const s=rt.sum(Object.values(e.in)),l=Dfe({displayType:t,durationNanos:n,totalIncoming:s}),c=(r??0)+(i??0);return[...Afe(e,l),{source:We.SlotEnd,target:We.Votes,value:l(c)},{source:We.SlotEnd,target:We.NonVoteFailure,value:l(a??0)},{source:We.SlotEnd,target:We.NonVoteSuccess,value:l(o??0)}]}function Cgt(){const e=J(Cn);return u.jsx(jgt,{slot:e},e)}function jgt({slot:e}){var o,a,s,l,c,d;const t=J(Cg),n=J(Gze),r=tc(e),i=m.useMemo(()=>{var x,y,b,w,_,S;const f=n??((x=r.response)==null?void 0:x.waterfall);if(!f)return;const p=n?kgt(f,t):Sgt(f,t,(y=r.response)==null?void 0:y.publish.duration_nanos,(b=r.response)==null?void 0:b.publish.success_vote_transaction_cnt,(w=r.response)==null?void 0:w.publish.failed_vote_transaction_cnt,(_=r.response)==null?void 0:_.publish.success_nonvote_transaction_cnt,(S=r.response)==null?void 0:S.publish.failed_nonvote_transaction_cnt),v=p.flatMap(C=>[C.source,C.target]);return{nodes:Ght.filter(C=>v.includes(C.id)),links:p}},[t,n,(o=r.response)==null?void 0:o.publish.duration_nanos,(a=r.response)==null?void 0:a.publish.failed_nonvote_transaction_cnt,(s=r.response)==null?void 0:s.publish.failed_vote_transaction_cnt,(l=r.response)==null?void 0:l.publish.success_nonvote_transaction_cnt,(c=r.response)==null?void 0:c.publish.success_vote_transaction_cnt,(d=r.response)==null?void 0:d.waterfall]);return!i||!i.links.length?r.hasWaitedForData?u.jsx(W,{justify:"center",align:"center",height:"100%",children:u.jsx(Z,{children:"No waterfall avaliable for this slot"})}):u.jsx(W,{justify:"center",align:"center",height:"100%",children:u.jsx(Iy,{style:{height:50,width:50}})}):u.jsx($s,{children:({height:f,width:p})=>{const v=p<600;if(v){const x=f;f=p,p=x}return u.jsx(ggt,{height:f,width:p,data:i,margin:{top:10,right:n?100:v?145:130,bottom:35,left:85},align:"center",isInteractive:!1,nodeThickness:0,nodeSpacing:Tgt(f),nodeBorderWidth:0,sort:"input",nodeBorderRadius:0,linkOpacity:1,enableLinkGradient:!0,labelPosition:"outside",labelPadding:16,animate:!1,nodeTooltip:Ffe,linkTooltip:Ffe})}})}function Ffe(){return null}function Tgt(e){return e<275?32:e<300?36:e<325?40:e<350?48:52}const Igt="_container_k3j09_1",Egt={container:Igt};function Ngt(){const[e,t]=m.useState(!1),n=J(V3),r=e&&!n,{tileCounts:i,groupedLiveIdlePerTile:o,showLive:a,queryIdleData:s}=HM(),l=i.net?"net":"sock";return u.jsxs("div",{className:Egt.container,children:[u.jsx(Wa,{header:l,subHeader:"(in)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Ingress",metricType:"net_in",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"QUIC",tileCount:i.quic,liveIdlePerTile:o==null?void 0:o.quic,queryIdlePerTile:a||s==null?void 0:s.quic,statLabel:"Conns",metricType:"quic",isExpanded:r,setIsExpanded:t}),"bundle"in i&&u.jsx(Wa,{header:"bundle",tileCount:i.bundle,liveIdlePerTile:o==null?void 0:o.bundle,queryIdlePerTile:a||s==null?void 0:s.bundle,...a?{statLabel:"RTT",metricType:"bundle_rtt_smoothed_millis"}:{statLabel:"Lat p90",metricType:"bundle_rx_delay_millis_p90"},isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"verify",tileCount:i.verify,liveIdlePerTile:o==null?void 0:o.verify,queryIdlePerTile:a||s==null?void 0:s.verify,statLabel:"Failed",metricType:"verify",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"dedup",tileCount:i.dedup,liveIdlePerTile:o==null?void 0:o.dedup,queryIdlePerTile:a||s==null?void 0:s.dedup,statLabel:"Dupes",metricType:"dedup",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.resolv,tileCount:i[To.resolv],liveIdlePerTile:o==null?void 0:o[To.resolv],queryIdlePerTile:a||s==null?void 0:s[To.resolv],statLabel:"Resolv",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"pack",tileCount:i.pack,liveIdlePerTile:o==null?void 0:o.pack,queryIdlePerTile:a||s==null?void 0:s.pack,statLabel:"Full",metricType:"pack",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.bank,tileCount:i[To.bank],liveIdlePerTile:o==null?void 0:o[To.bank],queryIdlePerTile:a||s==null?void 0:s[To.bank],statLabel:"TPS",metricType:"bank",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.poh,tileCount:i[To.poh],liveIdlePerTile:o==null?void 0:o[To.poh],queryIdlePerTile:a||s==null?void 0:s[To.poh],statLabel:"Hash",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"shred",tileCount:i.shred,liveIdlePerTile:o==null?void 0:o.shred,queryIdlePerTile:a||s==null?void 0:s.shred,statLabel:"Shreds",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:l,subHeader:"(out)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Egress",metricType:"net_out",isExpanded:r,setIsExpanded:t})]})}const $gt="_container_k6h1w_1",Mgt="_toggle-group_k6h1w_46",Rgt="_toggle-group-item_k6h1w_53",t_={container:$gt,toggleGroup:Mgt,toggleGroupItem:Rgt};function Lgt(){const[e,t]=Vl(Cg);return u.jsx("div",{className:t_.container,children:u.jsxs(M7,{className:t_.toggleGroup,type:"single","aria-label":"Dropped Type",value:e,children:[u.jsx(B0,{className:t_.toggleGroupItem,value:Io.Count,"aria-label":Io.Count,onClick:()=>t(Io.Count),children:"Count"}),u.jsx(B0,{className:t_.toggleGroupItem,value:Io.Pct,"aria-label":Io.Pct,onClick:()=>t(Io.Pct),children:"Pct %"}),u.jsx(B0,{className:t_.toggleGroupItem,value:Io.Rate,"aria-label":Io.Rate,onClick:()=>t(Io.Rate),children:"Rate"})]})})}const Pgt="_slot-performance-container_6u4bp_1",Ogt="_sankey-container_6u4bp_5",zgt="_slot-sankey-container_6u4bp_11",tP={slotPerformanceContainer:Pgt,sankeyContainer:Ogt,slotSankeyContainer:zgt};function Ufe(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",gap:"1",className:tP.slotPerformanceContainer,children:[u.jsx(W,{gap:"3",children:u.jsx(kd,{text:"TPU Waterfall"})}),u.jsx(Dgt,{}),u.jsx(Ngt,{})]})})}function Dgt(){return u.jsxs("div",{className:tP.sankeyContainer,children:[u.jsx(Lgt,{}),u.jsx("div",{className:tP.slotSankeyContainer,children:u.jsx(Cgt,{})})]})}const Agt="_chart_102uq_43",Fgt={chart:Agt},Ugt="_chart_1hpd4_1",Bgt="_focused_1hpd4_32",nP={chart:Ugt,focused:Bgt};function rP(){return{hooks:{init:[e=>{const t=e.root.querySelectorAll(".u-axis")[0];t&&t.addEventListener("mousedown",n=>{const r=n.clientX,i=e.axes[0].scale;if(i===void 0)return;const o=e.scales[i],{min:a,max:s}=o,l=((s??0)-(a??0))/(e.bbox.width/jn.pxRatio),c=f=>{const p=(f.clientX-r)*l;if(!e.data[0].length)return;const v=e.data[0][0]??0,x=e.data[0][e.data[0].length-1]??0;e.setScale(i,{min:Math.max(v,f.shiftKey?(a??0)-p:(a??0)+p),max:Math.min(x,(s??0)+p)})},d=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mousemove",d)};document.addEventListener("mousemove",c),document.addEventListener("mouseup",d)})}]}}}const Bfe="banks",Td="lamports",fh="computeUnits",Vt="banksXScale",Wgt="txnExecutionDuration",Wfe="txnExecutionDurationTooltip",Vfe=fe(),Hfe=fe(0),Zfe=fe(0),qfe=fe(!0),Gfe=fe(void 0),Yfe=fe(e=>{const t=e(Gfe);return t===void 0?e(s3)===ld.balanced:t},(e,t,n)=>{t(Gfe,n)}),Vgt=ca(),iP=1/9,oP=[{color:"42 126 223"},{color:"30 156 80"},{color:"30 156 80",opacity:.05},{color:"174 85 17",opacity:.05},{color:"244 5 5",opacity:.05},{color:"244 5 5",opacity:.1}],aP=e=>oP[e]??oP[oP.length-1];function Kfe({computeUnits:e,bankCount:t,tEnd:n,maxComputeUnits:r}){return Math.round((e-r)/t/iP+n)}function Hgt(e,t,n){const r=[];function i(o,a,s,l){const c=(o.x-a.x)*(s.y-l.y)-(o.y-a.y)*(s.x-l.x);if(c===0)return;const d=((o.x-s.x)*(s.y-l.y)-(o.y-s.y)*(s.x-l.x))/c,f=((o.x-s.x)*(o.y-a.y)-(o.y-s.y)*(o.x-a.x))/c;if(!(d<0||d>1||f<0||f>1))return{x:o.x+d*(a.x-o.x),y:o.y+d*(a.y-o.y)}}for(const o of e){const a=i(t,n,o[0],o[1]);a&&r.push(a)}if(r.length)return r.length!==2&&console.debug(r),r.sort((o,a)=>o.x-a.x)}function Zgt(e,t,n,r,i){const o=Number(n.target_end_timestamp_nanos-n.start_timestamp_nanos),a=e.min??0,s=e.max??o,l=t.max??r,c=t.min??0,d=[[{x:a,y:l},{x:s,y:l}],[{x:a,y:l},{x:a,y:c}],[{x:a,y:c},{x:s,y:c}],[{x:s,y:l},{x:s,y:c}]],f=[];for(let p=1;p<=i;p++){const v=Kfe({computeUnits:0,tEnd:o,maxComputeUnits:r,bankCount:p}),x=Kfe({computeUnits:r,tEnd:o,maxComputeUnits:r,bankCount:p}),y=Hgt(d,{x:v,y:0},{x,y:r});y&&f.push({line:y,bankCount:p})}return f}function Xfe(e){return[{x:e.left,y:e.top+e.height},{x:e.left+e.width,y:e.top+e.height},{x:e.left+e.width,y:e.top},{x:e.left,y:e.top}]}function bl(e,t){return Math.abs(e-t)<2}function qgt(e,t,n){const r=Xfe(e),i=[...t,...n];for(const a of r)((a.x>=t[0].x||bl(a.x,t[0].x))&&(a.x<=n[0].x||bl(a.x,n[0].x))&&(a.y>=t[0].y||bl(a.y,t[0].y))&&(a.y<=n[0].y||bl(a.y,n[0].y))||(a.x>=t[1].x||bl(a.x,t[1].x))&&(a.x<=n[1].x||bl(a.x,n[1].x))&&(a.y>=t[1].y||bl(a.y,t[1].y))&&(a.y<=n[1].y||bl(a.y,n[1].y)))&&i.push(a);const o={x:i.reduce((a,s)=>a+s.x,0)/i.length,y:i.reduce((a,s)=>a+s.y,0)/i.length};return i.sort((a,s)=>{const l=Math.atan2(a.y-o.y,a.x-o.x),c=Math.atan2(s.y-o.y,s.x-o.x);return l-c}),i}function Ggt(e,t,n,r,i){if(!i.opacity)return;const o=qgt(t,n,r);if(o.length>1){e.beginPath(),e.moveTo(o[0].x,o[0].y);for(let a=1;a{window.addEventListener("dppxchange",sP)},destroy:()=>{window.removeEventListener("dppxchange",sP)},drawSeries:[(r,i)=>{if(r.series[i].label!=="Active Bank")return;const o=e.current,a=t.current,s=n.current;if(o===null||a===null||s===null)return;const l=r.ctx;l.save();const c=!Vgt.get(Yfe),d=Number(o.target_end_timestamp_nanos-o.start_timestamp_nanos),f=Math.trunc(a+.05*d*iP),p=c?[]:Zgt(r.scales[Vt],r.scales[fh],o,f,s);p.unshift({line:[{x:r.scales[Vt].min??0,y:a},{x:r.scales[Vt].max??45e7,y:a}],bankCount:0});const v=[];sP(),l.font=Jfe;const x={x:-100,y:30};for(let y=0;yjn.pxRatio*50||bl(_,r.bbox.left)&&Math.abs(S-x.y)>jn.pxRatio*20){l.save();const E=Math.atan2(j-S,C-_);l.translate(_,S),l.rotate(E),l.fillStyle=l.strokeStyle;const $=`${w-1} Bank${w===2?"":"s"} Active`;l.measureText($).width<=r.bbox.left+r.bbox.width-_&&l.fillText($,4*jn.pxRatio,-8*jn.pxRatio),l.restore()}x.x=_,x.y=S}}if(v.length>0){v.unshift({line:[{x:r.bbox.left,y:bl(v[0].line[0].x,r.bbox.left)?v[0].line[0].y:r.bbox.top+r.bbox.height},{x:r.bbox.left,y:r.bbox.top}],bankCount:v[0].bankCount-1}),v.push({line:[{x:r.bbox.left+r.bbox.width,y:r.bbox.top+r.bbox.height},{x:r.bbox.left+r.bbox.width,y:bl(v[v.length-1].line[1].x,r.bbox.left+r.bbox.width)?v[v.length-1].line[1].y:r.bbox.top}],bankCount:v[v.length-1].bankCount+1});for(let y=1;yS||i===d.after&&n[d.offsetSize]>C)&&(i=S>C?d.before:d.after);var j=i===d.before?S:C,T=parseInt(c[d.maxSize]);(!T||j{const n=document.getElementById(Qfe);n&&(n_=n)},drawSeries:[(t,n)=>{if(t.series[n].label!=="Active Bank"||(n_.style.display="none",e!==ld.revenue))return;const r=t.scales[Vt],i=Math.round(t.valToPos(SS,Vt,!0));if(r.min!==void 0&&SSr.max)return;const o=t.ctx;if(o.save(),o.beginPath(),o.strokeStyle=Rne,o.lineWidth=3,o.setLineDash([5,5]),o.moveTo(i,t.bbox.top),o.lineTo(i,t.bbox.top+t.bbox.height),o.stroke(),o.restore(),n_){const a={left:Math.round(t.valToPos(SS,Vt,!1))+t.over.offsetLeft-lP/2,top:t.over.offsetTop-lP};ehe(n_,a,"center","bottom"),n_.style.display="block"}}]}}}const the=1;let r_=!1;function nhe(){return document.getElementById("scroll-container")??document.body}function i_({elId:e,showOnCursor:t,showPointer:n,closeTooltipElId:r,getClosestIdx:i}){let o,a,s,l,c=!1;function d(){const _=o.getBoundingClientRect();s=_.left,l=_.top}function f(){r_=!0,w.style.pointerEvents="auto",y(),setTimeout(()=>{var _;document.addEventListener("click",b),r&&((_=document.getElementById(r))==null||_.addEventListener("click",p))},0)}function p(){var _;r_=!1,w.style.pointerEvents="none",w.style.display="none",document.removeEventListener("click",b),r&&((_=document.getElementById(r))==null||_.removeEventListener("click",p))}const v=rt.throttle(p,100,{leading:!0,trailing:!0});function x(){n&&(document.body.style.cursor="pointer",document.body.addEventListener("click",f))}function y(){n&&(document.body.style.cursor="unset",document.body.removeEventListener("click",f))}function b(_){const S=document.getElementById(e);_.target&&(S!=null&&S.contains(_.target))||(p(),y())}let w;return{opts:(_,S)=>{i&&(S.cursor??(S.cursor={}),S.cursor.dataIdx=(C,j,T)=>j===the?i(C):T)},hooks:{init:_=>{const S=document.getElementById(e);S?w=S:(w=document.createElement("div"),w.id=e,document.body.appendChild(w)),w&&(w.style.display="none",w.style.pointerEvents="none",o=_.over,a=document.body,o.onmouseenter=()=>{c=!0},o.onmouseleave=()=>{c=!1,!r_&&(w.style.display="none",y(),r_=!1)},nhe().addEventListener("scroll",v))},destroy:()=>{o.onmouseenter=null,o.onmouseleave=null,y(),p(),nhe().removeEventListener("scroll",v)},setSize:()=>{d()},syncRect:()=>{d()},setCursor:_=>{var E;if(!c||r_)return;const{left:S,top:C}=_.cursor,j=(E=_.cursor.idxs)==null?void 0:E[i?the:0];if(S===void 0||C===void 0||j===void 0)return;const T=_.posToVal(S,_.series[0].scale??"x");if(j!==null&&t(_,T,j)){const $={left:S+s+5,top:C+l};w.style.display="block",w.style.pointerEvents="none",x(),ehe(w,$,"right","start",{bound:a})}else w.style.display="none",y()},setScale:()=>{y(),p()}}}}function n1t(e){function t(n,r,i){const o=r>=n.data[0][i]?i:i-1;return e({elapsedTime:r,activeBanks:n.data[1][o],computeUnits:n.data[2][o],fees:n.data[3][o],tips:n.data[4][o]}),!0}return i_({elId:"cu-chart-tooltip",showOnCursor:t})}function uP(e){const t=e.factor||.75,n=.1;let r,i,o,a,s,l,c;return{hooks:{ready(d){var y;const f=d.series[0].scale??"x",p=((y=d.series.find((b,w)=>w>0&&b.show!==!1))==null?void 0:y.scale)??"y";r=d.scales[f].min??0,i=d.scales[f].max??0,o=d.scales[p].min??0,a=d.scales[p].max??0,s=i-r,l=a-o;const v=d.over;let x=v.getBoundingClientRect();c=new ResizeObserver(()=>{x=v.getBoundingClientRect()}),c.observe(v),v.addEventListener("wheel",b=>{if(b.ctrlKey||b.metaKey||b.shiftKey){if(b.preventDefault(),b.ctrlKey||b.metaKey){let{left:w,top:_}=d.cursor;w??(w=0),_??(_=0);const S=w/x.width,C=1-_/x.height,j=d.posToVal(w,Vt),T=d.posToVal(_,"y"),E=(d.scales[f].max??0)-(d.scales[f].min??0),$=(d.scales[p].max??0)-(d.scales[p].min??0),D=b.deltaY<0?E*t:E/t;let M=j-S*D,O=M+D;[M,O]=v6(D,M,O,s,r??0,i??0);const te=b.deltaY<0?$*t:$/t;let q=T-C*te,P=q+te;[q,P]=v6(te,q,P,l,o??0,a??0),requestAnimationFrame(()=>d.batch(()=>{d.setScale(Vt,{min:M,max:O})}))}else if(b.shiftKey){const w=(d.scales[f].max??0)-(d.scales[f].min??0);let _=w*n;b.deltaY>=0&&(_*=-1);const[S,C]=v6(w,(d.scales[f].min??0)+_,(d.scales[f].max??0)+_,w,r??0,i??0);requestAnimationFrame(()=>d.setScale(Vt,{min:S,max:C}))}}})},destroy(d){c==null||c.disconnect()}}}}const r1t=ca();let cP=!1;function dP(e){const t=(e==null?void 0:e.minRange)??0;return{hooks:{setScale:(n,r)=>{const i=n.series[0].scale??"x";if(cP||r!==i)return;const o=n.scales[i];cP=!0;let a=o.min??0,s=o.max??0;if(s-a{i===(l.series[0].scale??"x")&&l.setScale(i,{min:a,max:s})}),cP=!1}}}}var dn=(e=>(e.DEFAULT="All",e.PRELOADING="Pre-Loading",e.VALIDATE="Validate",e.LOADING="Loading",e.EXECUTE="Execute",e.POST_EXECUTE="Post-Execute",e))(dn||{});const i1t={All:LN,"Pre-Loading":Pne,Validate:PN,Loading:zne,Execute:Ane,"Post-Execute":Une},va={All:LN,"Pre-Loading":One,Validate:PN,Loading:Dne,Execute:Fne,"Post-Execute":Bne};var Ci=(e=>(e[e.ERROR=0]="ERROR",e[e.MICROBLOCK=1]="MICROBLOCK",e[e.BUNDLE=2]="BUNDLE",e[e.LANDED=3]="LANDED",e[e.SIMPLE=4]="SIMPLE",e[e.FEES=5]="FEES",e[e.TIPS=6]="TIPS",e[e.CUS_CONSUMED=7]="CUS_CONSUMED",e[e.CUS_REQUESTED=8]="CUS_REQUESTED",e[e.INCOME_CUS=9]="INCOME_CUS",e))(Ci||{});const rhe="bank-",fP=2e6;function hP(e,t=!1){if(!e)return 0;const n=e.txn_mb_end_timestamps_nanos.map(i=>Number(i-e.start_timestamp_nanos));n.push(Number(e.target_end_timestamp_nanos-e.start_timestamp_nanos));const r=rt.max(n)??0;return t?r+fP:r}function pP(e,t,n){if(t<0)return{preLoading:0n,validating:0n,loading:0n,execute:0n,postExecute:0n};let r=e.txn_mb_start_timestamps_nanos[t],i=e.txn_mb_end_timestamps_nanos[t];const o=Vi?e.txn_start_timestamps_nanos:e.txn_preload_end_timestamps_nanos;if(e.txn_from_bundle[t]&&(n!=null&&n.length)){const x=n.indexOf(t)??-1;n[x-1]>0&&(r=o[t]);const y=x!==-1?n[x+1]:-1;y>0&&(i=o[y])}const a=e.txn_preload_end_timestamps_nanos[t],s=e.txn_start_timestamps_nanos[t],l=e.txn_load_end_timestamps_nanos[t];let c,d,f;Vi?(c=s-r,d=a-s,f=l-a):(c=a-r,f=s-a,d=l-s);let p,v;if(xi||!e.txn_from_bundle[t]||!(n!=null&&n.length))p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t];else{const x=n.indexOf(t)??-1,y=x!==-1?n[x+1]:-1;y>0?(p=o[y]-e.txn_load_end_timestamps_nanos[t],v=e.txn_end_timestamps_nanos[y]-e.txn_end_timestamps_nanos[t]):(p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t])}return{preLoading:c,validating:f,loading:d,execute:p,postExecute:v}}function CS(e,t){const n=e.txn_microblock_id[t],r=[];for(let i=0;iNumber(o-t.start_timestamp_nanos);if(Vi){if(e0){if(e{const d=c.series[0].scale??"x";r=c.scales[d].min??0,i=c.scales[d].max??0,n=i-r;function f(){const v=a.dx/s.dx,x=s.x/e.width,y=t*v;let b=o-x*y,w=b+y;[b,w]=v6(y,b,w,n,r,i),c.batch(()=>{c.setScale(d,{min:b,max:w})}),l=!1}function p(v){ohe(v,s,e),l||(l=!0,requestAnimationFrame(f))}c.over.addEventListener("touchstart",function(v){c.scales[d].max===void 0||c.scales[d].min===void 0||(e=c.over.getBoundingClientRect(),t=c.scales[d].max-c.scales[d].min,o=c.posToVal(a.x,d),ohe(v,a,e),document.addEventListener("touchmove",p,{passive:!0}))}),c.over.addEventListener("touchend",function(v){document.removeEventListener("touchmove",p)})}}}}function s1t(e){const t=[...e.txn_mb_start_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!0})),...e.txn_mb_end_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!1}))].sort((l,c)=>l.timestampNanos-c.timestampNanos),n=[];let r=0,i=0,o=0;const a=t.reduce((l,c,d)=>{const f=c.txn_idx,p=e.txn_landed[f]?c.isTxnStart?e.txn_compute_units_requested[f]:-e.txn_compute_units_requested[f]+e.txn_compute_units_consumed[f]:0,v=c.isTxnStart?0:Number(VN(e,f)),x=c.isTxnStart?0:Number(HN(e,f));n[e.txn_bank_idx[f]]=c.isTxnStart;const y=n.filter(C=>C).length,b=l[0].length-1,w=(l[2][b]||0)+p,_=(l[3][b]||0)+v,S=(l[4][b]||0)+x;return y>o&&(o=y),w>i&&(i=w),_>r&&(r=_),S>r&&(r=S),d>0&&t[d-1].timestampNanos===c.timestampNanos?(l[1][b]=y,l[2][b]=w,l[3][b]=_,l[4][b]=S):(l[0].push(c.timestampNanos),l[1].push(y),l[2].push(w),l[3].push(_),l[4].push(S)),l},[[-fP],[0],[0],[0],[0]]),s=hP(e,!0);return a.forEach(l=>{l.push(null)}),a[0][a[0].length-1]=s,{chartData:a,maxBankCount:o,maxComputeUnits:i,maxLamports:r}}const{stepped:gP}=jn.paths,vP=gP==null?void 0:gP({align:1}),jS=(e,t,n,r)=>(vP==null?void 0:vP(e,t,n,r))??null,l1t="cu-chart";function u1t({slotTransactions:e,maxComputeUnits:t,bankTileCount:n,onCreate:r}){const i=Ee(Vfe),o=Ee(Hfe),a=Ee(Zfe),s=m.useRef(e);s.current=e;const l=m.useRef(t);l.current=t;const c=m.useRef(n);c.current=n;const{chartData:d,maxBankCount:f,maxComputeUnits:p,maxLamports:v}=m.useMemo(()=>s1t(e),[e]),x=m.useCallback((b,w)=>!(b>0||w({width:0,height:0,class:nP.chart,drawOrder:["axes","series"],cursor:{sync:{key:Vt},points:{show:!1}},scales:{[Vt]:{time:!1},[fh]:{range:(b,w,_)=>{if(x(w,_))return[0,t+1e6];const S=Math.max(_-w,5e4);return[Math.max(w-S,0),Math.min(_+S,t+1e6)]}},[Bfe]:{range:[0,f+1]},[Td]:{range:[0,v*1.1]}},axes:[{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:$N},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},size:30,values:(b,w)=>w.map(_=>_/1e6+"ms"),space:100,scale:Vt},{scale:fh,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:$N},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(_=>_/1e6+"M"),space:50,size(b,w,_,S){var $,D;const C=b.axes[_];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,O)=>O.length>M.length?O:M,"");T!==""&&(b.ctx.font=((D=C.font)==null?void 0:D[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return o(E),E}},{scale:Td,stroke:sr,border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(_=>_/dd+" SOL"),side:1,space:50,size(b,w,_,S){var $,D;const C=b.axes[_];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,O)=>O.length>M.length?O:M,"");T!==""&&(b.ctx.font=((D=C.font)==null?void 0:D[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return a(E),E}}],series:[{scale:Vt},{label:"Active Bank",stroke:"rgba(117, 77, 18, 1)",paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:Bfe},{label:"Compute Units",stroke:pd,paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:fh},{label:"Fees",stroke:kg,paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:Td},{label:"Tips",stroke:qf,paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:Td}],legend:{show:!1},plugins:[t1t(),Kgt({slotTransactionsRef:s,maxComputeUnitsRef:l,bankTileCountRef:c}),rP(),uP({factor:.75}),n1t(i),dP(),a1t(),mP()]}),[f,v,i,x,t,o,a]);return u.jsx("div",{style:{height:"100%"},children:u.jsx($s,{children:({height:b,width:w})=>(y.width=w,y.height=b,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:l1t,options:y,data:d,onCreate:r})}))})})}const c1t="_tooltip_h8khk_1",d1t={tooltip:c1t};function o_({elId:e,children:t}){const n=J(jg);return u.jsx(lB,{container:n,id:e,className:d1t.tooltip,children:t})}const f1t="_tooltip_11ays_1",h1t="_active-banks_11ays_14",p1t="_compute-units_11ays_18",m1t="_elapsed-time_11ays_22",g1t="_fees_11ays_26",v1t="_tips_11ays_30",y1t="_label_11ays_34",qo={tooltip:f1t,activeBanks:h1t,computeUnits:p1t,elapsedTime:m1t,fees:g1t,tips:v1t,label:y1t};function b1t(){var t;const e=J(Vfe);return u.jsx(o_,{elId:"cu-chart-tooltip",children:e&&u.jsxs("div",{className:qo.tooltip,children:[u.jsx(Z,{className:Te(qo.activeBanks,qo.label),children:"Active\xA0banks"}),u.jsx(Z,{className:qo.activeBanks,children:e.activeBanks??"-"}),u.jsx(Z,{className:Te(qo.computeUnits,qo.label),children:"Compute\xA0units"}),u.jsxs(Z,{className:qo.computeUnits,children:[((t=e.computeUnits)==null?void 0:t.toLocaleString())??"-","\xA0CUs"]}),u.jsx(Z,{className:Te(qo.elapsedTime,qo.label),children:"Time\xA0elapsed"}),u.jsx(Z,{className:qo.elapsedTime,children:e.elapsedTime!=null?`${(e.elapsedTime/1e6).toLocaleString(void 0,{maximumFractionDigits:6})} ms`:"-"}),u.jsx(Z,{className:Te(qo.tips,qo.label),children:"Tips"}),u.jsx(Z,{className:qo.tips,children:BN(BigInt(e.tips||0),Bo)}),u.jsx(Z,{className:Te(qo.fees,qo.label),children:"Fees"}),u.jsx(Z,{className:qo.fees,children:BN(BigInt(e.fees||0),Bo)})]})})}const x1t="_button_1b3a4_1",yP={button:x1t};function _1t({onUplot:e}){const t=J(qfe);return u.jsxs(W,{gap:"3",align:"center",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsxs(W,{gap:"1px",children:[u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.scales[Vt].min??0,i=n.scales[Vt].max??0,o=i-r;if(o<=0)return;const a=o*.2;n.setScale(Vt,{min:r+a,max:i-a})}),className:yP.button,children:u.jsx(_Ue,{width:"18",height:"18"})}),u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.data[0][0],i=n.data[0].at(-1)??r,o=n.scales[Vt].min??0,a=n.scales[Vt].max??0,s=a-o;if(s<=0)return;const l=s*.2;n.setScale(Vt,{min:Math.max(o-l,r),max:Math.min(a+l,i)})}),disabled:t,className:yP.button,children:u.jsx(kUe,{width:"18",height:"18"})}),u.jsx(hs,{variant:"soft",onClick:()=>e(n=>n.setScale(Vt,{min:n.data[0][0],max:n.data[0].at(-1)??0})),disabled:t,className:yP.button,children:u.jsx(gUe,{width:"18",height:"18"})})]})]})}const w1t="_label_1q3ew_1",k1t={label:w1t};function S1t({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(W,{align:"center",gap:"2",children:u.jsx(Z,{as:"label",className:k1t.label,style:{color:r},children:u.jsxs(W,{gap:"2",children:[u.jsx(K7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}function C1t({onUplot:e}){const[t,n]=Vl(Yfe),r=i=>{n(i),e(o=>{o.redraw(!1,!1)})};return u.jsx(S1t,{label:"Show Projections",checked:t,onCheckedChange:r,color:mN})}const ahe="500px";function j1t(){var a;const e=J(Cn),t=pl(e),n=m.useRef(),r=J(Nb)[To.bank],i=m.useCallback(s=>{n.current=s},[]),o=m.useCallback(s=>n.current&&s(n.current),[]);return!e||!((a=t.response)!=null&&a.transactions)?u.jsx(T1t,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{children:u.jsxs(W,{direction:"column",height:ahe,gap:"2",children:[u.jsxs(W,{gap:"3",children:[u.jsx(kd,{text:"Slot Progression"}),u.jsx(_1t,{onUplot:o}),u.jsx(C1t,{onUplot:o})]}),u.jsxs("div",{className:Fgt.chart,children:[u.jsx(u1t,{slotTransactions:t.response.transactions,maxComputeUnits:t.response.publish.max_compute_units??Ute,bankTileCount:r,onCreate:i}),u.jsx(Qgt,{})]})]})}),u.jsx(b1t,{})]})}function T1t(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:ahe,justifyContent:"center",alignItems:"center"},children:u.jsx(Z,{children:"Loading Slot Progress..."})})}function she(e,t){return Math.round(e*(t=10**t))/t}const I1t=1,lhe=(e,t,n,r,i)=>she(t+e*(n+i),6);function E1t(e,t,n,r,i){let o=(1-t)/(e-1);(isNaN(o)||o===1/0)&&(o=0);const a=0,s=t/e,l=she(s,6),c=l,d=l;if(r==null)for(let f=0;f=n&&e<=i&&t>=r&&t<=o}const vc=class vc{constructor(t,n,r,i,o=0){$u(this,"x");$u(this,"y");$u(this,"w");$u(this,"h");$u(this,"l");$u(this,"o");$u(this,"q");this.x=t,this.y=n,this.w=r,this.h=i,this.l=o,this.o=[],this.q=null}split(){const t=this.w/2,n=this.h/2,r=this.l+1;this.q=[new vc(this.x+t,this.y,t,n,r),new vc(this.x,this.y,t,n,r),new vc(this.x,this.y+n,t,n,r),new vc(this.x+t,this.y+n,t,n,r)]}quads(t,n,r,i,o){if(!this.q)return;const a=this.x+this.w/2,s=this.y+this.h/2,l=na,f=n+i>s;l&&d&&o(this.q[0]),c&&l&&o(this.q[1]),c&&f&&o(this.q[2]),d&&f&&o(this.q[3])}add(t){if(this.q)this.quads(t.x,t.y,t.w,t.h,n=>n.add(t));else if(this.o.push(t),this.o.length>vc.MAX_OBJECTS&&this.lr.add(n));this.o.length=0}}get(t,n,r,i,o){for(const a of this.o)o(a);this.q&&this.quads(t,n,r,i,a=>a.get(t,n,r,i,o))}clear(){this.o.length=0,this.q=null}};$u(vc,"MAX_OBJECTS",10),$u(vc,"MAX_LEVELS",4);let bP=vc;function uhe(e,t,n=Math.E){return e===0||t===0?0:((e<=0||t<=0)&&(console.error(e,t),console.error("Logarithms are only defined for positive numbers.")),n===Math.E?Math.log(e)-Math.log(t):Math.log(e)/Math.log(n)-Math.log(t)/Math.log(n))}function $1t(e,t){if(Math.trunc(e)!==e){let n=0;for(;Math.trunc(e)!==e;)e*=10,n++;return e/(Math.pow(10,n)*t)}else return e/t}function xP(e){return`${rhe}${e}`}function M1t(e,t){if(t<0||e.txn_mb_start_timestamps_nanos[t]===void 0)return;const n=e.start_timestamp_nanos,r=Number(e.txn_mb_start_timestamps_nanos[t]-n),i=Number(e.txn_preload_end_timestamps_nanos[t]-n),o=Number(e.txn_start_timestamps_nanos[t]-n),a=Number(e.txn_load_end_timestamps_nanos[t]-n),s=Number(e.txn_end_timestamps_nanos[t]-n),l=Number(e.txn_mb_end_timestamps_nanos[t]-n);return{mbStartTs:r,preloadTs:i,txnStartTs:o,loadEndTs:a,txnEndTs:s,mbEndTs:l}}function TS(e,t,n,r){const i={};for(let s=0;s+s).sort((s,l)=>s-l),a=[[-fP],[null],[null]];for(let s=0;s!d(e,c)))a[1].push(null),a[2].push(null);else if(a[1].push(c),c===null)a[2].push(null);else{const d=e.txn_microblock_id[c];a[2][a[2].length-1]===d||a[2][a[2].length-1]===void 0?a[2].push(void 0):a[2].push(d)}}a[0].push(n);for(let s=1;srt.round(o,n);let i=Number(e);return t||(i=Math.abs(i)),Math.abs(i)<1e3?{value:r(i),unit:"ns"}:(i/=1e3,Math.abs(i)<1e3?{value:r(i),unit:"\xB5s"}:(i/=1e3,Math.abs(i)<1e5?{value:r(i),unit:"ms"}:(i/=1e3,Math.abs(i)<120?{value:r(i),unit:"s"}:(i/=60,Math.abs(i)<120?{value:r(i),unit:"m"}:(i/=60,{value:r(i),unit:"h"})))))}const Rs=fe(null,(e,t,n)=>{function r(o){return o.startsWith("bank-")}function i(o,a){const s=Number(a.replace(rhe,""));isNaN(s)||n(o,s)}t(y6,i,{isMatchingChartId:r})}),R1t="landed";function L1t(e,t){return e.txn_landed[t]}const che=fe([]),dhe={},[a_,_P]=function(){const e=fe({...dhe}),t=fe();return[fe(n=>n(e),(n,r,i)=>{if(r(e,i),Object.keys(i).length){const o=new Set;r(Rs,a=>{var s;if((s=a.data[1])!=null&&s.length)for(let l=0;ln(t))]}();function P1t({baseChartData:e,transactions:t,value:n,filterEnum:r,filterFunc:i,mergeMatchingPoints:o}){const a=[null];let s=null;for(let l=1;l{const c={...n(a_)};l===void 0?delete c[e]:c[e]=(f,p)=>t(f,p,l);const d=TS(o,a,s,Object.values(c));i.data.splice(1,1,d[1]),i.data.splice(2,1,d[2]),i.setData(i.data,!1),r(a_,c),i.redraw(!0,!0)})}function IS(e,t){function n(r,i,o){switch(o){case"All":return!0;case"Yes":return t(r,i);case"No":return!t(r,i)}}return fhe(e,n)}const O1t=IS("error",(e,t)=>e.txn_error_code[t]!==0),z1t=IS("bundle",(e,t)=>e.txn_from_bundle[t]),D1t=IS(R1t,L1t),A1t=IS("simple",(e,t)=>e.txn_is_simple_vote[t]),F1t=fhe("arrival",(e,t,{min:n,max:r})=>{const i=Number(e.txn_arrival_timestamps_nanos[t]-e.start_timestamp_nanos);return(n===void 0||i>=n)&&i<=r});let ES={};function U1t(e,t){Object.values(ES).forEach(n=>n(e,t))}function B1t(){ES={}}function s_(e,t,n){return fe(null,(r,i,o,a,s,l)=>{function c(d,f){const p=d.data.length,v=r(che),x=P1t({filterEnum:e,filterFunc:t,transactions:a,baseChartData:v[f],value:l,mergeMatchingPoints:n});d.data.splice(p,0,x),d.addSeries({...d.series[1],label:`${e}`},p),whe(d.series.filter(y=>y.show).length-1),d.setData(d.data,!1),r(NS)===void 0&&d.redraw(!0,!0)}ES[e]=c,c(o,s)})}const W1t=s_(Ci.FEES,(e,t)=>!!Number(e.txn_priority_fee[t]+e.txn_transaction_fee[t])),V1t=s_(Ci.TIPS,(e,t)=>!!Number(e.txn_tips[t])),H1t=s_(Ci.CUS_CONSUMED,(e,t)=>!!e.txn_compute_units_consumed[t]),Z1t=s_(Ci.CUS_REQUESTED,(e,t,n)=>!!e.txn_compute_units_requested[t]),q1t=s_(Ci.INCOME_CUS,(e,t)=>e.txn_compute_units_consumed[t]>0&&Number(md(e,t))/e.txn_compute_units_consumed[t]>0),l_=fe(null,(e,t,n,r)=>{const i=n.series.findIndex(o=>o.label===`${r}`);i!==-1&&(n.delSeries(i),n.data.splice(i,1),whe(n.data.length-1),n.setData(n.data,!1),e(NS)===void 0&&n.redraw(!0,!0),delete ES[r])}),wP=fe(1),NS=fe(),G1t=0,Id=1,hhe=2;function u_(e){return e===G1t}function $S(e){return e===Id}function MS(e){return e===hhe}function phe(e){return e>hhe}function mhe(e,t,n=2){const r=10n**BigInt(n),i=e*r/t;return Number(i)/Number(r)}function RS(e,t){return function(n){return n.current?e(n.current).reduce((r,i,o)=>i>r?i:r,t):t}}const Y1t=RS(e=>e.txn_priority_fee.map((t,n)=>t+e.txn_transaction_fee[n]),0n),K1t=RS(e=>e.txn_tips,0n),X1t=RS(e=>e.txn_compute_units_consumed,0),J1t=RS(e=>e.txn_compute_units_requested,0);function ghe(e,t){if(!e.txn_landed[t])return 0;const n=e.txn_compute_units_consumed[t];return n?Number(md(e,t))/n:0}function vhe(e){const t=e.txn_priority_fee.reduce((r,i,o)=>{if(!e)return r;const a=ghe(e,o);return r[a]??(r[a]=[]),r[a].push(o),r},{}),n=Object.keys(t).sort((r,i)=>Number(i)-Number(r));return{rankings:n.reduce((r,i,o)=>{const a=t[i];for(const s of a)r.set(s,o+1);return r},new Map),totalRanks:n.length}}function Q1t(e){if(!e.current)return new Map;const{rankings:t,totalRanks:n}=vhe(e.current);for(const[r,i]of t)t.set(r,(n-i+1)/n);return t}const evt=1,tvt=I1t;let yhe=0;const bhe=.5,nvt=1.3;let S1;function kP(e){S1=e}let C1="";function xhe(e){C1=e}let SP;function _he(e){SP=e}let Ed=0;const whe=e=>{Ed=e-1,ca().set(wP,Ed)};function rvt(e,t){let n=0n,r=0n,i=0,o=0,a=new Map;function s(){n=Y1t(e)}function l(){r=K1t(e)}function c(){i=X1t(e)}function d(){o=J1t(e)}function f(){a=Q1t(e)}Ed=1;const p={mode:1,fill:(P,X,A,Y)=>{var F,H,ee,ce;if(!e.current)return{fill:""};if(u_(X))return{fill:""};if($S(X))return{fill:i1t[!P||!e.current?dn.DEFAULT:ihe(P[0][A],e.current,Y,(F=t[Y])==null?void 0:F.bundleTxnIdx)],brightness:SP===P[Id][A]?nvt:void 0};if(MS(X))return{fill:""};if(Y===Ci.FEES){const B=P[Id][A]??-1,ae=e.current.txn_priority_fee[B]+e.current.txn_transaction_fee[B];if(!ae)return{fill:""};const je=mhe(ae,n,4);return{fill:`rgba(76, 204, 230, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.TIPS){const B=P[Id][A]??-1,ae=(H=e.current)==null?void 0:H.txn_tips[B];if(!ae)return{fill:""};const je=mhe(ae,r,4);return{fill:`rgba(31, 216, 164, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.CUS_REQUESTED){const B=P[Id][A]??-1,ae=(ee=e.current)==null?void 0:ee.txn_compute_units_requested[B];if(!ae)return{fill:""};const je=ae/o;return{fill:`rgba(255, 141, 204, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.CUS_CONSUMED){const B=P[Id][A]??-1,ae=(ce=e.current)==null?void 0:ce.txn_compute_units_consumed[B];if(!ae)return{fill:""};const je=ae/i;return{fill:`rgba(209, 157, 255, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.INCOME_CUS){const B=P[Id][A]??-1,ae=a.get(B)??0;return{fill:`rgba(158, 177, 255, ${Math.max(Math.min(.8,ae),.3)})`}}return{fill:""}},stroke:(P,X,A,Y)=>{var F,H,ee;if(u_(X)||$S(X))return"";if(MS(X)){const ce=P[Id][A]??-1,B=(F=e.current)==null?void 0:F.txn_error_code[ce];return S1?B===S1&&(!C1||((H=e.current)==null?void 0:H.txn_source_tpu[ce])===C1)?"rgba(162,5,8, .8)":B?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":C1?((ee=e.current)==null?void 0:ee.txn_source_tpu[ce])===C1&&(!S1||B===S1)?B?"rgba(162,5,8, .8)":"rgba(19,173,79, .8)":B?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":B?"rgba(162,5,8, .5)":"rgba(19,173,79, .5)"}return""}},{mode:v,fill:x,stroke:y}=p;function b(P,X,A,Y){E1t(X,evt,tvt,P,(F,H,ee)=>{const ce=A*H,B=A*ee;Y(F,ce,B)})}const w=[.6,1/0];1-w[0];function _(){(w[1]??1/0)*jn.pxRatio}_();const S=new Map,C=new Map;function j(P){let X;const A=SP!==void 0;A&&(P.filter=`brightness(${bhe})`),S.forEach(({path:Y,brightness:F,fill:H})=>{H&&(A&&F!==X&&(P.filter=`brightness(${F??bhe})`,X=F),P.fillStyle=H,P.fill(Y))}),P.filter="",C.forEach((Y,F)=>{F&&(P.strokeStyle=F,P.stroke(Y))}),S.clear(),C.clear()}function T(P,X,A,Y,F,H,ee,ce,B,ae,je,me,ke){var $e,pe,ye;if(!e.current)return;const he=je+1,ue=x(P,he,me,ke);let re=S.get(ue.fill+ue.brightness);const ge=P[Id][me];if(ge!=null){if(phe(he)){if(ke===Ci.FEES){const Se=e.current.txn_priority_fee[ge]+e.current.txn_transaction_fee[ge];if(Se!==void 0){let Ce=1/uhe(Number(n),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.TIPS){const Se=($e=e.current)==null?void 0:$e.txn_tips[ge];if(Se!==void 0){let Ce=1/uhe(Number(r),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.CUS_CONSUMED){const Se=(pe=e.current)==null?void 0:pe.txn_compute_units_consumed[ge];if(Se!==void 0){let Ce=Se/i;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.CUS_REQUESTED){const Se=(ye=e.current)==null?void 0:ye.txn_compute_units_requested[ge];if(Se!==void 0){let Ce=Se/o;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.INCOME_CUS){let Se=a.get(ge)??0;Se>.9&&(Se=.95),Se<.1&&(Se=.1);const Ce=B*Se,Ue=B-Ce;B-=Ue,ee+=Ue}}if(re==null&&S.set(ue.fill+ue.brightness,re={path:new Path2D,fill:ue.fill,brightness:ue.brightness}),A(re.path,H,ee,ce,B),ae){const Se=y(P,he,me,ke);let Ce=C.get(Se);Ce==null&&C.set(Se,Ce=new Path2D),A(Ce,H+ae/2,ee+ae/2,ce-ae,B-ae)}MS(he)||$.add({x:rt.round(H-Y),y:rt.round(ee-F),w:ce,h:B,sidx:je+(je>1?2:1),didx:me})}}function E(P,X,A,Y){return jn.orient(P,X,(F,H,ee,ce,B,ae,je,me,ke,he,ue,re,ge,$e)=>{const pe=rt.round((F.width||0)*jn.pxRatio);P.ctx.save(),$e(P.ctx,P.bbox.left,P.bbox.top,P.bbox.width,P.bbox.height),P.ctx.clip(),b(X-1,Ed,ue,(ye,Se,Ce)=>{(u_(X)||$S(X))&&Ce&&(yhe=Ce),u_(X)||$S(X)||(Se-=yhe);for(let Ue=0;Ue=P.bbox.left&&Ge<=P.bbox.left+P.bbox.width){const ut=P.scales[Vt].min!=null&&P.scales[Vt].max!=null?4e8/(P.scales[Vt].max-P.scales[Vt].min):void 0;T(P.data,P.ctx,$e,me,ke,Ge,rt.round(ke+Se)+10,phe(X)?Math.max(3,Math.min(St-Ge,ut??1)):St-Ge,rt.round(Ce)-20,pe,ye,Ue,ee[Ue]??0)}Ue=_t-1}}),P.ctx.lineWidth=pe,j(P.ctx),P.ctx.restore()}),null}let $;const D=Array(Ed).fill(null),M=Array(Ed).fill(0),O=Array(Ed).fill(0),te=jn.fmtDate("{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}");let q=null;return{hooks:{init:P=>{q=P.root.querySelector(".u-series:first-child .u-value"),window.addEventListener("dppxchange",_),s(),l(),c(),d(),f()},destroy:P=>{window.removeEventListener("dppxchange",_)},drawClear:P=>{$=$||new bP(0,0,P.bbox.width,P.bbox.height),$.clear(),P.series.forEach(X=>{X._paths=null})},setCursor:P=>{{const X=P.posToVal(P.cursor.left??0,Vt);q&&(q.textContent=P.scales[Vt].time?te(new Date(X*1e3)):X.toFixed(2))}}},opts:(P,X)=>{jn.assign(X,{cursor:{sync:{key:Vt},y:!1,dataIdx:(A,Y,F,H)=>{var ce;if(u_(Y)||MS(Y))return F;const ee=rt.round(A.cursor.left*jn.pxRatio);if(ee>=0){const B=M[Y-1];D[Y-1]=null,$.get(ee,B,1,1,ae=>{N1t(ee,B,ae.x,ae.y,ae.x+ae.w,ae.y+ae.h)&&(D[Y-1]=ae)})}return(ce=D[Y-1])==null?void 0:ce.didx},points:{fill:"rgba(255,255,255,0.2)",bbox:(A,Y)=>{const F=D[Y-1],H={left:F?rt.round(F.x/devicePixelRatio):-10,top:F?rt.round(F.y/devicePixelRatio):-10,width:F?rt.round(F.w/devicePixelRatio):0,height:F?rt.round(F.h/devicePixelRatio):0},ee=rt.round((A.bbox.left+A.bbox.width)/devicePixelRatio)-H.left-10;return H.width>ee&&(H.width=ee),H}}},scales:{[Vt]:{range(A,Y,F){return[Y,F]}},y:{range:[0,1]}}}),X.axes&&jn.assign(X.axes[0],{splits:null,grid:{show:v!==2}}),X.axes&&jn.assign(X.axes[1],{splits:(A,Y)=>(b(null,Ed,A.bbox.height,(F,H,ee)=>{M[F]=rt.round(H+ee/2),O[F]=A.posToVal(M[F]/jn.pxRatio,"y")}),O),values:()=>Array(Ed).fill(null).map((A,Y)=>P.series[Y+1].label),gap:5,size:0,grid:{show:!1},ticks:{show:!1},side:3}),X.series.forEach((A,Y)=>{Y>0&&jn.assign(A,{paths:E,points:{show:!1}})})}}}const ivt="_group-label_1cg9k_1",ovt="_min-text-width_1cg9k_4",avt="_group_1cg9k_1",svt="_tooltip-open_1cg9k_15",lvt="_item_1cg9k_18",uvt="_item-color_1cg9k_65",j1={groupLabel:ivt,minTextWidth:ovt,group:avt,tooltipOpen:svt,item:lvt,itemColor:uvt},cvt="_slider_zs58s_1",dvt="_arrival-label_zs58s_68",fvt="_minimize-button_zs58s_77",hvt="_chart-control-tooltip_zs58s_83",c_={slider:cvt,arrivalLabel:dvt,minimizeButton:fvt,chartControlTooltip:hvt},LS=m.forwardRef(pvt);function pvt({label:e,options:t,value:n,onChange:r,isTooltipOpen:i,closeTooltip:o,optionColors:a,hasMinTextWidth:s},l){const c=m.useRef(new Map);return m.useImperativeHandle(l,()=>({focus:d=>{var f;(f=c.current.get(d))==null||f.focus()}}),[]),u.jsxs(W,{align:"center",children:[e&&u.jsx(Z,{className:Te(j1.groupLabel,{[j1.minTextWidth]:s}),children:e}),u.jsx(ci,{className:c_.chartControlTooltip,content:`Applied "${n}"`,open:!!i,side:"bottom",children:u.jsx(M7,{className:Te(j1.group,i&&j1.tooltipOpen),type:"single",value:n,"aria-label":e,onValueChange:d=>d&&r(d),children:t.map(d=>u.jsxs(B0,{ref:f=>{f?c.current.set(d,f):c.current.delete(d)},className:j1.item,value:d,"aria-label":d,onBlur:o,children:[(a==null?void 0:a[d])&&u.jsx("div",{className:j1.itemColor,style:{background:a[d]}}),d]},d))})})]})}const mvt="_label_1q3ew_1",CP={label:mvt};function d_({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(W,{align:"center",gap:"2",children:u.jsx(Z,{as:"label",className:CP.label,style:{color:r},children:u.jsxs(W,{gap:"2",children:[u.jsx(K7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}const jP=fe(-1),TP=fe(dn.DEFAULT);var khe=1,gvt=.9,vvt=.8,yvt=.17,IP=.1,EP=.999,bvt=.9999,xvt=.99,_vt=/[\\\/_+.#"@\[\(\{&]/,wvt=/[\\\/_+.#"@\[\(\{&]/g,kvt=/[\s-]/,She=/[\s-]/g;function NP(e,t,n,r,i,o,a){if(o===t.length)return i===e.length?khe:xvt;var s=`${i},${o}`;if(a[s]!==void 0)return a[s];for(var l=r.charAt(o),c=n.indexOf(l,i),d=0,f,p,v,x;c>=0;)f=NP(e,t,n,r,c+1,o+1,a),f>d&&(c===i?f*=khe:_vt.test(e.charAt(c-1))?(f*=vvt,v=e.slice(i,c-1).match(wvt),v&&i>0&&(f*=Math.pow(EP,v.length))):kvt.test(e.charAt(c-1))?(f*=gvt,x=e.slice(i,c-1).match(She),x&&i>0&&(f*=Math.pow(EP,x.length))):(f*=yvt,i>0&&(f*=Math.pow(EP,c-i))),e.charAt(c)!==t.charAt(o)&&(f*=bvt)),(ff&&(f=p*IP)),f>d&&(d=f),c=n.indexOf(l,c+1);return a[s]=d,d}function Che(e){return e.toLowerCase().replace(She," ")}function Svt(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,NP(e,t,Che(e),Che(t),0,0,{})}var Cvt=Symbol.for("react.lazy"),PS=mj[" use ".trim().toString()];function jvt(e){return typeof e=="object"&&e!==null&&"then"in e}function jhe(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Cvt&&"_payload"in e&&jvt(e._payload)}function Tvt(e){const t=Ivt(e),n=m.forwardRef((r,i)=>{let{children:o,...a}=r;jhe(o)&&typeof PS=="function"&&(o=PS(o._payload));const s=m.Children.toArray(o),l=s.find(Nvt);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}function Ivt(e){const t=m.forwardRef((n,r)=>{let{children:i,...o}=n;if(jhe(i)&&typeof PS=="function"&&(i=PS(i._payload)),m.isValidElement(i)){const a=Mvt(i),s=$vt(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Evt=Symbol("radix.slottable");function Nvt(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Evt}function $vt(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function Mvt(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Rvt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],hh=Rvt.reduce((e,t)=>{const n=Tvt(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),f_='[cmdk-group=""]',$P='[cmdk-group-items=""]',Lvt='[cmdk-group-heading=""]',The='[cmdk-item=""]',Ihe=`${The}:not([aria-disabled="true"])`,MP="cmdk-item-select",T1="data-value",Pvt=(e,t,n)=>Svt(e,t,n),Ehe=m.createContext(void 0),h_=()=>m.useContext(Ehe),Nhe=m.createContext(void 0),RP=()=>m.useContext(Nhe),$he=m.createContext(void 0),Mhe=m.forwardRef((e,t)=>{let n=I1(()=>{var B,ae;return{search:"",value:(ae=(B=e.value)!=null?B:e.defaultValue)!=null?ae:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=I1(()=>new Set),i=I1(()=>new Map),o=I1(()=>new Map),a=I1(()=>new Set),s=Rhe(e),{label:l,children:c,value:d,onValueChange:f,filter:p,shouldFilter:v,loop:x,disablePointerSelection:y=!1,vimBindings:b=!0,...w}=e,_=wo(),S=wo(),C=wo(),j=m.useRef(null),T=Zvt();Mm(()=>{if(d!==void 0){let B=d.trim();n.current.value=B,E.emit()}},[d]),Mm(()=>{T(6,q)},[]);let E=m.useMemo(()=>({subscribe:B=>(a.current.add(B),()=>a.current.delete(B)),snapshot:()=>n.current,setState:(B,ae,je)=>{var me,ke,he,ue;if(!Object.is(n.current[B],ae)){if(n.current[B]=ae,B==="search")te(),M(),T(1,O);else if(B==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(C);re?re.focus():(me=document.getElementById(_))==null||me.focus()}if(T(7,()=>{var re;n.current.selectedItemId=(re=P())==null?void 0:re.id,E.emit()}),je||T(5,q),((ke=s.current)==null?void 0:ke.value)!==void 0){let re=ae??"";(ue=(he=s.current).onValueChange)==null||ue.call(he,re);return}}E.emit()}},emit:()=>{a.current.forEach(B=>B())}}),[]),$=m.useMemo(()=>({value:(B,ae,je)=>{var me;ae!==((me=o.current.get(B))==null?void 0:me.value)&&(o.current.set(B,{value:ae,keywords:je}),n.current.filtered.items.set(B,D(ae,je)),T(2,()=>{M(),E.emit()}))},item:(B,ae)=>(r.current.add(B),ae&&(i.current.has(ae)?i.current.get(ae).add(B):i.current.set(ae,new Set([B]))),T(3,()=>{te(),M(),n.current.value||O(),E.emit()}),()=>{o.current.delete(B),r.current.delete(B),n.current.filtered.items.delete(B);let je=P();T(4,()=>{te(),(je==null?void 0:je.getAttribute("id"))===B&&O(),E.emit()})}),group:B=>(i.current.has(B)||i.current.set(B,new Set),()=>{o.current.delete(B),i.current.delete(B)}),filter:()=>s.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:_,inputId:C,labelId:S,listInnerRef:j}),[]);function D(B,ae){var je,me;let ke=(me=(je=s.current)==null?void 0:je.filter)!=null?me:Pvt;return B?ke(B,n.current.search,ae):0}function M(){if(!n.current.search||s.current.shouldFilter===!1)return;let B=n.current.filtered.items,ae=[];n.current.filtered.groups.forEach(me=>{let ke=i.current.get(me),he=0;ke.forEach(ue=>{let re=B.get(ue);he=Math.max(re,he)}),ae.push([me,he])});let je=j.current;X().sort((me,ke)=>{var he,ue;let re=me.getAttribute("id"),ge=ke.getAttribute("id");return((he=B.get(ge))!=null?he:0)-((ue=B.get(re))!=null?ue:0)}).forEach(me=>{let ke=me.closest($P);ke?ke.appendChild(me.parentElement===ke?me:me.closest(`${$P} > *`)):je.appendChild(me.parentElement===je?me:me.closest(`${$P} > *`))}),ae.sort((me,ke)=>ke[1]-me[1]).forEach(me=>{var ke;let he=(ke=j.current)==null?void 0:ke.querySelector(`${f_}[${T1}="${encodeURIComponent(me[0])}"]`);he==null||he.parentElement.appendChild(he)})}function O(){let B=X().find(je=>je.getAttribute("aria-disabled")!=="true"),ae=B==null?void 0:B.getAttribute(T1);E.setState("value",ae||void 0)}function te(){var B,ae,je,me;if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ke=0;for(let he of r.current){let ue=(ae=(B=o.current.get(he))==null?void 0:B.value)!=null?ae:"",re=(me=(je=o.current.get(he))==null?void 0:je.keywords)!=null?me:[],ge=D(ue,re);n.current.filtered.items.set(he,ge),ge>0&&ke++}for(let[he,ue]of i.current)for(let re of ue)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(he);break}n.current.filtered.count=ke}function q(){var B,ae,je;let me=P();me&&(((B=me.parentElement)==null?void 0:B.firstChild)===me&&((je=(ae=me.closest(f_))==null?void 0:ae.querySelector(Lvt))==null||je.scrollIntoView({block:"nearest"})),me.scrollIntoView({block:"nearest"}))}function P(){var B;return(B=j.current)==null?void 0:B.querySelector(`${The}[aria-selected="true"]`)}function X(){var B;return Array.from(((B=j.current)==null?void 0:B.querySelectorAll(Ihe))||[])}function A(B){let ae=X()[B];ae&&E.setState("value",ae.getAttribute(T1))}function Y(B){var ae;let je=P(),me=X(),ke=me.findIndex(ue=>ue===je),he=me[ke+B];(ae=s.current)!=null&&ae.loop&&(he=ke+B<0?me[me.length-1]:ke+B===me.length?me[0]:me[ke+B]),he&&E.setState("value",he.getAttribute(T1))}function F(B){let ae=P(),je=ae==null?void 0:ae.closest(f_),me;for(;je&&!me;)je=B>0?Vvt(je,f_):Hvt(je,f_),me=je==null?void 0:je.querySelector(Ihe);me?E.setState("value",me.getAttribute(T1)):Y(B)}let H=()=>A(X().length-1),ee=B=>{B.preventDefault(),B.metaKey?H():B.altKey?F(1):Y(1)},ce=B=>{B.preventDefault(),B.metaKey?A(0):B.altKey?F(-1):Y(-1)};return m.createElement(hh.div,{ref:t,tabIndex:-1,...w,"cmdk-root":"",onKeyDown:B=>{var ae;(ae=w.onKeyDown)==null||ae.call(w,B);let je=B.nativeEvent.isComposing||B.keyCode===229;if(!(B.defaultPrevented||je))switch(B.key){case"n":case"j":{b&&B.ctrlKey&&ee(B);break}case"ArrowDown":{ee(B);break}case"p":case"k":{b&&B.ctrlKey&&ce(B);break}case"ArrowUp":{ce(B);break}case"Home":{B.preventDefault(),A(0);break}case"End":{B.preventDefault(),H();break}case"Enter":{B.preventDefault();let me=P();if(me){let ke=new Event(MP);me.dispatchEvent(ke)}}}}},m.createElement("label",{"cmdk-label":"",htmlFor:$.inputId,id:$.labelId,style:Gvt},l),OS(e,B=>m.createElement(Nhe.Provider,{value:E},m.createElement(Ehe.Provider,{value:$},B))))}),Ovt=m.forwardRef((e,t)=>{var n,r;let i=wo(),o=m.useRef(null),a=m.useContext($he),s=h_(),l=Rhe(e),c=(r=(n=l.current)==null?void 0:n.forceMount)!=null?r:a==null?void 0:a.forceMount;Mm(()=>{if(!c)return s.item(i,a==null?void 0:a.id)},[c]);let d=Lhe(i,o,[e.value,e.children,o],e.keywords),f=RP(),p=ph(T=>T.value&&T.value===d.current),v=ph(T=>c||s.filter()===!1?!0:T.search?T.filtered.items.get(i)>0:!0);m.useEffect(()=>{let T=o.current;if(!(!T||e.disabled))return T.addEventListener(MP,x),()=>T.removeEventListener(MP,x)},[v,e.onSelect,e.disabled]);function x(){var T,E;y(),(E=(T=l.current).onSelect)==null||E.call(T,d.current)}function y(){f.setState("value",d.current,!0)}if(!v)return null;let{disabled:b,value:w,onSelect:_,forceMount:S,keywords:C,...j}=e;return m.createElement(hh.div,{ref:zl(o,t),...j,id:i,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!p,"data-disabled":!!b,"data-selected":!!p,onPointerMove:b||s.getDisablePointerSelection()?void 0:y,onClick:b?void 0:x},e.children)}),zvt=m.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...o}=e,a=wo(),s=m.useRef(null),l=m.useRef(null),c=wo(),d=h_(),f=ph(v=>i||d.filter()===!1?!0:v.search?v.filtered.groups.has(a):!0);Mm(()=>d.group(a),[]),Lhe(a,s,[e.value,e.heading,l]);let p=m.useMemo(()=>({id:a,forceMount:i}),[i]);return m.createElement(hh.div,{ref:zl(s,t),...o,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&m.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),OS(e,v=>m.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},m.createElement($he.Provider,{value:p},v))))}),Dvt=m.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=m.useRef(null),o=ph(a=>!a.search);return!n&&!o?null:m.createElement(hh.div,{ref:zl(i,t),...r,"cmdk-separator":"",role:"separator"})}),Avt=m.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,o=RP(),a=ph(c=>c.search),s=ph(c=>c.selectedItemId),l=h_();return m.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),m.createElement(hh.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":s,id:l.inputId,type:"text",value:i?e.value:a,onChange:c=>{i||o.setState("search",c.target.value),n==null||n(c.target.value)}})}),Fvt=m.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...i}=e,o=m.useRef(null),a=m.useRef(null),s=ph(c=>c.selectedItemId),l=h_();return m.useEffect(()=>{if(a.current&&o.current){let c=a.current,d=o.current,f,p=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let v=c.offsetHeight;d.style.setProperty("--cmdk-list-height",v.toFixed(1)+"px")})});return p.observe(c),()=>{cancelAnimationFrame(f),p.unobserve(c)}}},[]),m.createElement(hh.div,{ref:zl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:l.listId},OS(e,c=>m.createElement("div",{ref:zl(a,l.listInnerRef),"cmdk-list-sizer":""},c)))}),Uvt=m.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:o,container:a,...s}=e;return m.createElement(AB,{open:n,onOpenChange:r},m.createElement(FB,{container:a},m.createElement(UB,{"cmdk-overlay":"",className:i}),m.createElement(BB,{"aria-label":e.label,"cmdk-dialog":"",className:o},m.createElement(Mhe,{ref:t,...s}))))}),Bvt=m.forwardRef((e,t)=>ph(n=>n.filtered.count===0)?m.createElement(hh.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Wvt=m.forwardRef((e,t)=>{let{progress:n,children:r,label:i="Loading...",...o}=e;return m.createElement(hh.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},OS(e,a=>m.createElement("div",{"aria-hidden":!0},a)))}),gu=Object.assign(Mhe,{List:Fvt,Item:Ovt,Input:Avt,Group:zvt,Separator:Dvt,Dialog:Uvt,Empty:Bvt,Loading:Wvt});function Vvt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Hvt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Rhe(e){let t=m.useRef(e);return Mm(()=>{t.current=e}),t}var Mm=typeof window>"u"?m.useEffect:m.useLayoutEffect;function I1(e){let t=m.useRef();return t.current===void 0&&(t.current=e()),t}function ph(e){let t=RP(),n=()=>e(t.snapshot());return m.useSyncExternalStore(t.subscribe,n,n)}function Lhe(e,t,n,r=[]){let i=m.useRef(),o=h_();return Mm(()=>{var a;let s=(()=>{var c;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(c=d.current.textContent)==null?void 0:c.trim():i.current}})(),l=r.map(c=>c.trim());o.value(e,s,l),(a=t.current)==null||a.setAttribute(T1,s),i.current=s}),i}var Zvt=()=>{let[e,t]=m.useState(),n=I1(()=>new Map);return Mm(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,i)=>{n.current.set(r,i),t({})}};function qvt(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function OS({asChild:e,children:t},n){return e&&m.isValidElement(t)?m.cloneElement(qvt(t),{ref:t.ref},n(t.props.children)):n(t)}var Gvt={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const Yvt="_dropdownButton_1yasw_1",Kvt="_input-container_1yasw_6",Xvt="_sm_1yasw_20",Jvt="_content_1yasw_68",Qvt="_tooltip-open_1yasw_135",E1={dropdownButton:Yvt,inputContainer:Kvt,sm:Xvt,content:Jvt,tooltipOpen:Qvt},eyt="_text_1k6sv_1",tyt="_faded_1k6sv_7",nyt="_ellipsis_1k6sv_11",LP={text:eyt,faded:tyt,ellipsis:nyt};function Phe({textSegments:e,truncateLastSegment:t}){return u.jsx(W,{flexGrow:"1",minWidth:"0",maxWidth:"100%",wrap:"nowrap",className:LP.text,"aria-label":e.map(({text:n})=>n).join(""),children:e.map(({text:n,faded:r},i)=>n?u.jsx(Z,{className:Te({[LP.faded]:r,[LP.ellipsis]:i===e.length-1&&t}),children:n},i):null)})}const p_=8,ryt=2,Ohe=2;function iyt(e,{signature:t,optionValue:n,txnIdxCount:r}){const i=r>1,o=e.trim().toLowerCase(),a=n.toLowerCase(),s=v=>{i&&v.push({text:`${uk}(${r})`,faded:!0})};if(o.length===a.length||o.length>p_){const v=[{text:`${t.substring(0,p_)}...${t.substring(t.length-p_)}`}];return s(v),v}const l=a.indexOf(o),c=l+o.length,d=[{start:0,end:Math.min(p_,t.length)},{start:Math.max(0,Math.min(l-Ohe,t.length)),end:Math.min(t.length,Math.min(c+Ohe,t.length))},{start:Math.max(0,t.length-p_),end:t.length}].filter(v=>v.end>v.start).sort((v,x)=>v.start-x.start),f=[];for(const v of d){if(!f.length){f.push({...v});continue}const x=f[f.length-1],y=v.start-x.end;y<=0||y<=ryt?x.end=Math.max(x.end,v.end):f.push({...v})}const p=[];for(let v=0;v0&&p.push({text:"...",faded:!0});const y=Math.max(x.start,Math.min(l,x.end)),b=Math.max(x.start,Math.min(c,x.end));b>y?(x.startv)}function oyt(e){return function(t){return u.jsx(Phe,{textSegments:iyt(t,e)})}}function zhe(e,t){if(t=t.trim(),!t)return;if(t.includes(".")){const s=e.indexOf(t);return s<0?void 0:{startIdx:s,endIdx:s+t.length}}const n=[];let r="";for(let s=0;s="0"&&l<="9"&&(r+=l,n.push(s))}const i=r.indexOf(t);if(i<0)return;const o=n[i],a=n[i+t.length-1]+1;return{startIdx:o,endIdx:a}}function ayt(e,t,n){return function(r){const i=zhe(e,r),o=t>1,a=(i==null?void 0:i.startIdx)??-1,s=(i==null?void 0:i.endIdx)??-1,l=[{text:e.substring(0,a),faded:!0},{text:e.substring(a,s)},{text:e.substring(s),faded:!0},{text:o?`${uk}(${t})`:"",faded:!0},{text:n?`${uk}${n}`:""}];return u.jsx(Phe,{textSegments:l,truncateLastSegment:!0})}}const syt=["All","Success","Errors"],PP=["All","Yes","No"];var Mn=(e=>(e.TxnSignature="Txn Sig",e.Error="Error",e.Income="Income",e.Ip="IPv4",e.Tpu="TPU",e))(Mn||{});const lyt="errorState",OP="bundle",uyt="landed",cyt="vote",zP="focusBank",m_="search",Dhe="arrival",dyt={triggerControl:()=>{},registerControl:()=>()=>{},resetControl:()=>{},resetAllControls:()=>{}},N1=m.createContext(dyt);function zS(e,t,n){const{registerControl:r}=m.useContext(N1),i=m.useRef(t);i.current=t;const o=m.useRef(n);o.current=n;const[a,s]=m.useState(!1),l=m.useCallback(()=>s(!1),[]);return m.useEffect(()=>r(e,c=>{i.current(c),s(!0)},()=>{o.current(),s(!1)}),[e,r]),{isTooltipOpen:a,closeTooltip:l}}const fyt=30,hyt=20,Ahe=[Mn.TxnSignature,Mn.Ip],Fhe=[Mn.Income],Uhe=[Mn.TxnSignature,Mn.Error,Mn.Income,Mn.Ip,Mn.Tpu],pyt={[Mn.TxnSignature]:"2ZwHLf3Qw7ZE8s3PWW81ELCmGiVhaDS9LWMK4McGL9ySmqvTZSZf3S9EWks4TFbyJt7U6i5RPuLk7PgWVBdy9HY5",[Mn.Error]:"",[Mn.Income]:"Rank #",[Mn.Ip]:"192.0.2.1",[Mn.Tpu]:"udp"};function Bhe({transactions:e,size:t="lg"}){const n=m.useRef(null),[r,i]=m.useState(!1),[o,a]=m.useState(!1),[s,l]=m.useState(""),[c,d]=Bie(s,500),[f,p]=m.useState(),[v,x]=m.useState(Mn.TxnSignature),y=J(_P),b=J(JN),w=J(jg),_=Ee(Rs),S=m.useRef(null),C=m.useRef(null),j=m.useRef(!1),{triggerControl:T,resetControl:E}=m.useContext(N1),$=m.useCallback(ye=>{const Se=ye.mode===Mn.TxnSignature?e.txn_signature:ye.mode===Mn.Ip?e.txn_source_ipv4:void 0;return Se?Se.reduce((Ce,Ue,Ge)=>(Ue===ye.text&&Ce.push(Ge),Ce),[]):[]},[e.txn_signature,e.txn_source_ipv4]),D=m.useCallback(ye=>{var Ge,_t,St;const Se=e.txn_bank_idx[ye],Ce=document.getElementById(xP(Se)),Ue=(Ge=Ce==null?void 0:Ce.getElementsByTagName("canvas"))==null?void 0:Ge[0];if(Ce&&Ue){if(!Lze(Ue)){Ue.scrollIntoView({block:"nearest"});const ut=Ue.getBoundingClientRect(),ct=(_t=document.getElementById("transaction-bars-controls"))==null?void 0:_t.getBoundingClientRect();ct&&ct.top-epe<=0&&ut.top{if(Se!==ct){ut.redraw();return}const bt=ut.scales[Vt],Qe=bt.min??-1/0,Ke=bt.max??1/0,De=Ke-Qe,Dt=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye-1]!==e.txn_microblock_id[ye],pn=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye+1]!==e.txn_microblock_id[ye],Yn=Number((Dt||!e.txn_from_bundle[ye]?e.txn_mb_start_timestamps_nanos[ye]:e.txn_preload_end_timestamps_nanos[ye])-e.start_timestamp_nanos),hr=Number((pn||!e.txn_from_bundle[ye]?e.txn_mb_end_timestamps_nanos[ye]:e.txn_end_timestamps_nanos[ye])-e.start_timestamp_nanos),Kn=(hr-Yn)*fyt,kr=(hr-Yn)*hyt,On=hrKe,Mr=De>Kn,tr=De{if(On||Mr||tr){let Sr=Math.max(ut.data[0][0],Yn-Kn/2);const ri=Sr+Kn;ri>ut.data[0][ut.data[0].length-1]&&(Sr=ri-Kn),ut.setScale(Vt,{min:Sr,max:ri})}_he(ye)})})},[e,T,_]),M=m.useCallback(ye=>{const Se={current:0,total:ye.length-1,txnIdxs:ye};p(Se);const Ce=ye[Se.current];D(Ce)},[D]),O=m.useCallback(ye=>{var Ce;const Se=$(ye);Se.length&&(l(ye.text),x(ye.mode),M(Se),j.current=!0,(Ce=n.current)==null||Ce.focus())},[$,M]),te=m.useCallback(()=>{E(zP),E(Dhe),_he(void 0),p(void 0),a(!1)},[E]),q=m.useCallback(()=>{te(),l(""),d(""),_((ye,Se)=>{ye.setScale(Vt,{min:ye.data[0][0],max:ye.data[0][ye.data[0].length-1]})})},[te,d,_]),{isTooltipOpen:P,closeTooltip:X}=zS(m_,O,q);m.useEffect(()=>{y&&(f!=null&&f.txnIdxs.some(ye=>!y.has(ye)))&&q()},[y,q,f==null?void 0:f.txnIdxs]),m.useEffect(()=>{f===void 0&&Fhe.includes(v)&&x(Uhe[0])},[f,v]);const A=m.useCallback((ye,Se,Ce)=>ye.reduce((Ue,Ge,_t)=>{var ct;if(y&&!y.has(_t)||Ce!=null&&Ce(Ge))return Ue;const St=((ct=Ue[Ge])==null?void 0:ct.txnIdxs)??[];St.push(_t);const ut=Se(Ge,St);return Ue[Ge]=ut,Ue},{}),[y]),Y=m.useMemo(()=>A(e.txn_signature,(ye,Se)=>{const Ce=ye.toLowerCase();return{getLabelEl:oyt({signature:ye,optionValue:Ce,txnIdxCount:Se.length}),txnIdxs:Se,signatureLower:Ce,signature:ye}}),[A,e.txn_signature]),F=m.useMemo(()=>A(e.txn_error_code,(ye,Se)=>({txnIdxs:Se,label:lN[ye]}),ye=>ye===0),[A,e.txn_error_code]),H=m.useMemo(()=>{const ye=b.reduce((Se,Ce)=>{var Ge,_t;if(!Ce.gossip||!((Ge=Ce.info)!=null&&Ge.name))return Se;const Ue=Object.values(Ce.gossip.sockets);for(const St of Ue)Se.set(ZN(St),(_t=Ce.info)==null?void 0:_t.name);return Se},new Map);return A(e.txn_source_ipv4,(Se,Ce)=>{var Ue;return{getLabelEl:ayt(Se,Ce.length,ye.get(Se)),txnIdxs:Ce,label:`${Se} ${ye.get(Se)??""}`,queryValue:`${Se}${(Ue=ye.get(Se)??"")==null?void 0:Ue.toLowerCase()}`}})},[A,b,e.txn_source_ipv4]),ee=m.useMemo(()=>A(e.txn_source_tpu,(ye,Se)=>({txnIdxs:Se,label:ye})),[A,e.txn_source_tpu]),ce=m.useMemo(()=>e.txn_transaction_fee.reduce((ye,Se,Ce)=>(y&&!y.has(Ce)||ye.push({txnIdx:Ce,income:Number(md(e,Ce))}),ye),[]).sort(({income:ye},{income:Se})=>Se-ye),[y,e]),B=m.useCallback((ye,Se)=>{switch(l(ye),d(ye),i(!1),a(!0),v){case Mn.TxnSignature:{const Ce=Y[ye].txnIdxs;M(Ce);break}case Mn.Error:{if(Se!==void 0){const Ce=F[Number(Se)].txnIdxs;M(Ce)}break}case Mn.Ip:{const Ce=H[Se??ye];if(Ce){const Ue=Ce.txnIdxs;M(Ue)}break}case Mn.Tpu:{if(Se!==void 0){const Ce=ee[Se].txnIdxs;M(Ce)}break}case Mn.Income:break}},[d,v,Y,M,F,H,ee]),ae=ye=>()=>{p(Se=>{if(!Se)return;let{current:Ce,total:Ue,txnIdxs:Ge}=Se;ye==="prev"?Ce--:ye==="next"&&Ce++,Ce>Ue&&(Ce=0),Ce<0&&(Ce=Ue);const _t=Ge[Ce];return D(_t),{current:Ce,total:Ue,txnIdxs:Ge}})},je=ye=>()=>{switch(x(ye),q(),ye){case Mn.TxnSignature:case Mn.Ip:case Mn.Error:case Mn.Tpu:{pe.current=!0,i(!0),setTimeout(()=>{var Se;(Se=n.current)==null||Se.focus()},250);break}case Mn.Income:{const Se=ce.map(({txnIdx:Ue})=>Ue);p({current:0,total:Se.length,txnIdxs:Se});const Ce=Se[0];D(Ce);break}}},me=Ahe.includes(v),ke=me&&s!==c,he=r&&!me||!ke,ue=f&&f.total>0,re=s||Fhe.includes(v),ge=!Ahe.includes(v),$e=m.useRef(ge);$e.current=ge;const pe=m.useRef(!1);return u.jsxs(W,{children:[u.jsxs(GZ,{children:[u.jsx(YZ,{children:u.jsxs(hs,{variant:"surface",className:E1.dropdownButton,onFocusCapture:ye=>ye.preventDefault(),onFocus:ye=>{ye.preventDefault()},children:[v,u.jsx(W7,{})]})}),u.jsx(XZ,{onCloseAutoFocus:ye=>ye.preventDefault(),children:Uhe.map(ye=>u.jsx(JZ,{onSelect:je(ye),children:ye},ye))})]}),u.jsx(gu,{loop:!0,className:E1.root,shouldFilter:!1,ref:S,children:u.jsxs(u7,{open:r,onOpenChange:ye=>i(ye),children:[u.jsx(DV,{asChild:!0,children:u.jsx(W,{children:u.jsx(ci,{className:c_.chartControlTooltip,content:`Applied: ${v}`,open:P,side:"bottom",children:u.jsxs(W,{align:"center",className:Te(E1.inputContainer,"rt-TextFieldRoot","rt-variant-surface",{[E1.sm]:t==="sm",[E1.tooltipOpen]:P}),children:[u.jsx(gu.Input,{placeholder:pyt[v],onFocus:()=>{j.current?j.current=!1:i(!0)},onKeyDown:ye=>{ye.key==="Enter"&&i(!0)},value:s,onValueChange:ye=>{l(ye),te(),i(!0)},onBlur:X,readOnly:ge,ref:n}),(ue||re)&&u.jsxs(W,{align:"center",children:[ue&&u.jsxs(u.Fragment,{children:[u.jsxs(Z,{style:{paddingRight:"var(--space-2)",cursor:"default"},children:[f.current+1,"\xA0of\xA0",f.total+1]}),u.jsx(nl,{onClick:ae("prev"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("prev")()},children:u.jsx(YFe,{})}),u.jsx(nl,{onClick:ae("next"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("next")()},children:u.jsx(Hie,{})})]}),re&&u.jsx(nl,{onClick:q,variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&q()},children:u.jsx(B$,{})})]})]})})})}),u.jsx(c7,{container:w,children:u.jsx(d7,{className:E1.content,onOpenAutoFocus:ye=>{pe.current?setTimeout(()=>{pe.current=!1},250):ye.preventDefault()},onInteractOutside:ye=>{(ye.target===n.current||pe.current)&&ye.preventDefault()},style:{outline:"unset"},children:u.jsxs(gu.List,{ref:C,style:{maxHeight:"min(300px, var(--radix-popover-content-available-height))"},children:[s.length>1&&ke&&u.jsx(gu.Loading,{children:u.jsx(Z,{children:"Loading..."})}),he&&u.jsxs(u.Fragment,{children:[v===Mn.TxnSignature&&u.jsx(myt,{optionMap:Y,inputValue:c,onSelect:B,showAllOptions:o}),v===Mn.Error&&u.jsx(Whe,{onSelect:B,optionMap:F}),v===Mn.Ip&&u.jsx(gyt,{onSelect:B,optionMap:H,inputValue:c,showAllOptions:o}),v===Mn.Tpu&&u.jsx(Whe,{onSelect:B,optionMap:ee})]})]})})})]})})]})}const myt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.toLowerCase();function a([,{signatureLower:c}]){return r||c.includes(o)}function s([,{signatureLower:c}]){return c===o?3:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([,{getLabelEl:c,signatureLower:d,signature:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:d,onSelect:()=>{n(f)},children:c(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),gyt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.trim().toLowerCase();function a([,{label:c,queryValue:d}]){return r||!!zhe(c,o)||d.includes(o)}function s([,{label:c,txnIdxs:d}]){return c===o?1/0:d.length>1?3+d.length:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([c,{getLabelEl:d,label:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:f,onSelect:()=>{n(f,c)},children:d(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),Whe=m.memo(function({onSelect:e,optionMap:t}){return m.useMemo(()=>Object.entries(t),[t]).map(([n,{label:r,txnIdxs:i}],o)=>u.jsx(gu.Item,{onSelect:()=>{e(r,n)},children:u.jsxs(Z,{children:[r," (",i.length,")"]})},n))});function DS(e,t,n){const r=m.useRef(null),i=m.useCallback(s=>{var l,c;t(s),(l=r.current)==null||l.focus(s),(c=document.getElementById(xP(0)))==null||c.scrollIntoView({behavior:"smooth",block:"nearest"})},[t]),{isTooltipOpen:o,closeTooltip:a}=zS(e,i,n);return{isTooltipOpen:o,closeTooltip:a,toggleGroupRef:r}}function vyt(e){const[t,n]=m.useState(!1);return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:c_.minimizeButton,children:u.jsx(nl,{variant:"ghost",onClick:()=>n(r=>!r),children:t?u.jsx(F$,{}):u.jsx(U$,{})})}),!t&&u.jsx(yyt,{...e})]})}function yyt(e){const{transactions:t,maxTs:n}=e,r=Ee(a_),i=Ee(wP),o=Ee(NS),a=Ee(jP),s=Ee(TP);return Og(()=>{r(dhe),B1t(),i(1),o(void 0),kP(0),a(-1),s(dn.DEFAULT)}),Hn("(max-width: 500px)")?u.jsx(byt,{...e}):u.jsxs(W,{gap:"2",align:"center",wrap:"wrap",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Vhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Zhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(qhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Ghe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Yhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Khe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Jhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Hhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Bhe,{transactions:t})]})}function byt({transactions:e,maxTs:t}){return u.jsxs(W,{direction:"column",gap:"3",children:[u.jsx(Vhe,{transactions:e,maxTs:t}),u.jsx(Zhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(qhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Ghe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Yhe,{transactions:e}),u.jsx(Khe,{transactions:e}),u.jsx("div",{style:{marginBottom:"8px"},children:u.jsx(Jhe,{transactions:e})}),u.jsx(Hhe,{transactions:e,maxTs:t}),u.jsx(Bhe,{transactions:e,size:"sm"})]})}function Vhe({transactions:e,maxTs:t}){const n=Ee(Rs),r=Ee(O1t),[i,o]=m.useState("All"),a=m.useCallback(d=>{if(!e)return;o(d);const f=d==="Success"?"No":d==="Errors"?"Yes":"All";n((p,v)=>r(p,e,v,t,f))},[r,t,e,n]),{isTooltipOpen:s,closeTooltip:l,toggleGroupRef:c}=DS(lyt,a,()=>a("All"));return u.jsxs(W,{gap:"2",children:[u.jsx(LS,{ref:c,options:syt,optionColors:{Success:MN,Errors:RN},value:i,onChange:d=>d&&a(d),isTooltipOpen:s,closeTooltip:l}),u.jsx(xyt,{transactions:e,isDisabled:i==="Success"})]})}function xyt({transactions:e,isDisabled:t}){const n=Ee(y6),r=J(_P),[i,o]=m.useState("0"),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_error_code.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_error_code)},[r,e.txn_error_code]);return m.useEffect(()=>{a[S1]||(o("0"),kP(0))},[a]),u.jsxs(Z7,{onValueChange:s=>{o(s),kP(Number(s)),n(l=>l.redraw())},size:"1",value:i,disabled:t,children:[u.jsx(q7,{placeholder:"Txn State",style:{height:"22px",width:"90px"}}),u.jsx(G7,{children:u.jsxs(Y7,{children:[u.jsx(My,{value:"0",children:"None"}),Object.keys(a).map(s=>s==="0"?null:u.jsxs(My,{value:`${s}`,children:[lN[s]," (",a[s].length,")"]},s))]})})]})}const DP="none";function Hhe({transactions:e,maxTs:t}){const n=Ee(y6),r=J(_P),[i,o]=m.useState(DP),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_source_tpu.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_source_tpu)},[r,e.txn_source_tpu]);return m.useEffect(()=>{a[C1]||(o(""),xhe(""))},[a]),u.jsxs(W,{gap:"2",align:"center",children:[u.jsx(Z,{className:CP.label,children:"TPU"}),u.jsxs(Z7,{onValueChange:s=>{o(s),xhe(s===DP?"":s),n(l=>l.redraw())},size:"1",value:i,children:[u.jsx(q7,{placeholder:"TPU",style:{height:"22px",width:"90px"}}),u.jsx(G7,{children:u.jsxs(Y7,{children:[u.jsx(My,{value:DP,children:"None"}),Object.keys(a).map(s=>u.jsxs(My,{value:s,children:[s," (",a[s].length,")"]},s))]})})]})]})}function Zhe({transactions:e,maxTs:t,isMobileView:n}){const[r,i]=m.useState("All"),o=Ee(Rs),a=Ee(z1t),s=m.useCallback(f=>{e&&(i(f),o((p,v)=>a(p,e,v,t,f)))},[a,t,e,o]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=DS(OP,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Bundle",options:PP,value:r,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function qhe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Rs),i=Ee(D1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=DS(uyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Landed",options:PP,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Ghe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Rs),i=Ee(A1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=DS(cyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Vote",options:PP,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Yhe({transactions:e}){return u.jsxs(W,{gap:"2",children:[u.jsx(_yt,{transactions:e}),u.jsx(wyt,{transactions:e}),u.jsx(Cyt,{transactions:e})]})}function _yt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(W1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.FEES)})};return u.jsx(d_,{label:"Fees",checked:t,onCheckedChange:a,color:kg})}function wyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(V1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.TIPS)})};return u.jsx(d_,{label:"Tips",checked:t,onCheckedChange:a,color:qf})}function Khe({transactions:e}){return u.jsxs(W,{gap:"2",children:[u.jsx(Z,{className:CP.label,children:"CU"}),u.jsx(kyt,{transactions:e}),u.jsx(Syt,{transactions:e})]})}function kyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(H1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_CONSUMED)})};return u.jsx(d_,{label:"Consumed",checked:t,onCheckedChange:a,color:pd})}function Syt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(Z1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_REQUESTED)})};return u.jsx(d_,{label:"Requested",checked:t,onCheckedChange:a,color:mk})}function Cyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(q1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.INCOME_CUS)})};return u.jsx(d_,{label:"Income per CU",checked:t,onCheckedChange:a,color:wp})}const Rm=12,Xhe=100;function jyt({transactions:e,sliderMin:t,sliderMax:n,beforeZeroMulti:r,bboxWidth:i}){const o=m.useMemo(()=>{if(t>=n||!e.txn_arrival_timestamps_nanos.length)return;const a=n-t;function s(f){return f>=0?f:f/r}const l=e.txn_arrival_timestamps_nanos.reduce((f,p)=>{const v=(s(Number(p-e.start_timestamp_nanos))-t)/a,x=Math.trunc(v*Xhe);return f[x]+=1,f},new Array(Xhe).fill(0)),c=rt.max(l)??1,d=l.reduce((f,p,v)=>{const x=i*((v+1)/l.length),y=Rm-Rm*(p/c);return f+`${x},${y} `},"");return`0,${Rm}, ${d}, ${i},${Rm}`},[i,r,n,t,e.start_timestamp_nanos,e.txn_arrival_timestamps_nanos]);return u.jsx("svg",{height:`${Rm}px`,width:"100%",viewBox:`0 0 ${i} ${Rm}`,xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"-5px",borderRadius:"4px"},children:u.jsx("polyline",{points:o,fill:"rgba(186, 167, 255, 0.5)",stroke:"rgb(186, 167, 255)",strokeWidth:".5"})})}const AP=.3,Tyt=.025;function Jhe({transactions:e}){const t=m.useMemo(()=>hP(e),[e]),n=m.useMemo(()=>-Math.ceil(t*AP),[t]),[r,i]=m.useState([n,t]),o=Ee(Rs),a=Ee(F1t),[s,{width:l}]=Ss(),c=`${Math.ceil(AP/(1+AP)*100)}%`,d=m.useMemo(()=>{if(!e.txn_arrival_timestamps_nanos.length)return 0;const j=e.txn_arrival_timestamps_nanos.reduce((T,E)=>Ej<0?p*j:j,[p]),x=m.useCallback(j=>{if(!(j.length<2))return{min:v(j[0]),max:v(j[1])}},[v]),y=m.useCallback(j=>`${Math.round(v(j)/1e6).toLocaleString()} ms`,[v]),b=y(r[0]),w=y(r[1]),_=m.useCallback(j=>{o((T,E)=>a(T,e,E,t,x(j)))},[a,x,e,t,o]),S=Ba(j=>{requestAnimationFrame(()=>_(j))},100,{leading:!1,trailing:!0}),C=m.useCallback(j=>{i(j),_(j)},[_]);return m.useEffect(()=>{C([n,t])},[n,t,C]),zS(Dhe,C,()=>C([n,t])),u.jsxs(W,{align:"center",gap:"2",children:[u.jsx(Z,{className:c_.arrivalLabel,children:"Arrival"}),u.jsxs("div",{className:c_.slider,ref:s,style:{"--slot-start-pct":c,marginTop:`-${Rm+6}px`,"--min-value-label":`"${b}"`,"--max-value-label":`"${w}"`},children:[u.jsx(jyt,{transactions:e,sliderMin:n,sliderMax:t,beforeZeroMulti:p,bboxWidth:l}),u.jsx(nq,{style:{"--slider-track-size":"4px"},value:r,min:n,max:t,onValueChange:j=>{const T=j[0]!==r[0]?0:1;Math.abs(j[T]){const $=E.valToPos(j[T],Vt);E.setCursor({left:$,top:0})}),S(j)}})]})]})}function Iyt({transactionsRef:e,setTxnIdx:t,setTxnState:n,transactionsBundleStats:r}){function i(o,a,s){var d,f;let l=o.data[1][s];o.data[0][s]>a&&(l=o.data[1][s-1]),l==null&&o.data[1][s-1]!=null&&(l=o.data[1][s-1]);const c=((d=o.cursor.idxs)==null?void 0:d.length)&&o.cursor.idxs[1]===void 0;if(l==null||!e.current||c)return!1;{const p=ihe(a,e.current,l,(f=r[l])==null?void 0:f.bundleTxnIdx);return n(p),t(l),!0}}return i_({elId:"txn-bars-tooltip",closeTooltipElId:"txn-bars-tooltip-close",showOnCursor:i,showPointer:!0})}const AS=20;function Eyt({bankIdx:e,transactions:t,maxTs:n,isFirstChart:r,isLastChart:i,hide:o,isSelected:a,isFocused:s}){const l=r||i,c=J(Hfe)-AS,d=J(Zfe)-AS,f=Ee(jP),p=Ee(TP),v=m.useRef(null),x=m.useRef(t);x.current=t;const y=m.useMemo(()=>TS(t,e,n,Object.values(ca().get(a_))),[e,n,t]),b=m.useCallback(C=>{C.setData(TS(t,e,n,Object.values(ca().get(a_))),!1)},[e,n,t]),w=m.useMemo(()=>t.txn_from_bundle.map((C,j)=>{if(C)return CS(t,j)}),[t]),_=m.useMemo(()=>{if(y!=null&&y.length)return{width:0,height:0,class:nP.chart,drawOrder:["series","axes"],scales:{[Vt]:{time:!1}},axes:[{scale:Vt,stroke:sr,values:(C,j)=>l?j.map(T=>$1t(T,1e6)+"ms"):[],size:l?40:0,space:100,grid:{stroke:Lne},border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},side:r?0:2},{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:"rgba(0,0,0,0)"}],legend:{markers:{width:0},show:!1},padding:[0,AS,0,AS],series:[{scale:Vt},{label:`Bank ${e}`},{}],plugins:[rvt(x,w),Iyt({transactionsRef:x,setTxnIdx:f,setTxnState:p,transactionsBundleStats:w}),rP(),uP({factor:.75}),dP(),mP()],hooks:{ready:[C=>{requestAnimationFrame(()=>{U1t(C,e)})}]}}},[e,y==null?void 0:y.length,r,l,f,p,w]),S=J(wP);return!y||!_||o?null:u.jsx("div",{style:{flex:1,marginLeft:`${c}px`,marginRight:`${d}px`,display:o?"none":"block",height:a?`${Math.max(2,S)*90+40}px`:l?"170px":"130px"},ref:v,children:u.jsx($s,{children:({height:C,width:j})=>(_.width=j,_.height=C,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:xP(e),className:Te(s&&nP.focused),options:_,data:y,onCreate:b})}))})})}const Nyt="_container_14qh6_1",$yt="_label_14qh6_10",Qhe={container:Nyt,label:$yt};function Myt({setSelected:e,bankIdx:t,isSelected:n}){return u.jsxs("div",{className:Qhe.container,children:[u.jsxs(Z,{className:Qhe.label,children:["Bank ",t]}),u.jsx(hs,{variant:"ghost",size:"1",onClick:()=>e(),children:n?u.jsx(lUe,{color:"grey"}):u.jsx(aUe,{color:"grey"})})]})}const Ryt=kb+Sb,epe=Ryt+Bte;function Lyt(){var d,f,p,v,x;const[e,t]=m.useState();zS(zP,y=>t(y),()=>t(void 0));const n=J(Cn),r=pl(n),i=m.useRef((d=r.response)==null?void 0:d.transactions);i.current=(f=r.response)==null?void 0:f.transactions;const o=J(Nb)[To.bank],a=Ee(che),s=m.useMemo(()=>{var y;return(y=r.response)!=null&&y.transactions?hP(r.response.transactions,!0):0},[(p=r.response)==null?void 0:p.transactions]);m.useMemo(()=>{var b;if(!((b=r.response)!=null&&b.transactions))return;const y=[];for(let w=0;w{var w;if((w=r.response)!=null&&w.transactions&&!(l!==void 0&&l!==b))return u.jsxs("div",{style:{position:"relative"},children:[(l===void 0||l===b)&&u.jsx(Myt,{bankIdx:b,setSelected:()=>c(_=>_===void 0?b:void 0),isSelected:l===b}),u.jsx(Eyt,{bankIdx:b,transactions:r.response.transactions,maxTs:s,isFirstChart:b===0&&o>1,isLastChart:b===o-1||l!==void 0,isSelected:l===b,hide:l!==void 0&&l!==b,isFocused:e===b},`${b}`)]},b)})]}):null}const Pyt="_state_1bdpv_11",Oyt="_cu-bars_1bdpv_24",zyt="_duration-container_1bdpv_30",Dyt="_value-text_1bdpv_38",Ayt="_unit_1bdpv_42",g_={state:Pyt,cuBars:Oyt,durationContainer:zyt,valueText:Dyt,unit:Ayt},Fyt="_separator_1pgc5_1",Uyt={separator:Fyt};function Lm({my:e,mb:t}){return u.jsx(ps,{size:"4",my:e??"1",mb:t,className:Uyt.separator})}function Byt(){var s,l;const e=J(Cn),t=pl(e),n=J(jP),r=J(TP),i=(s=t.response)==null?void 0:s.transactions,o=m.useMemo(()=>{if(i&&!(n<0)&&i.txn_from_bundle[n])return CS(i,n)},[i,n]),a=i!=null&&i.txn_arrival_timestamps_nanos[n]?kk(i.txn_arrival_timestamps_nanos[n]):void 0;return u.jsx(o_,{elId:"txn-bars-tooltip",children:(i==null?void 0:i.txn_bank_idx[n])!=null&&u.jsxs(W,{direction:"column",children:[u.jsxs(W,{justify:"between",children:[u.jsx(Z,{className:g_.state,style:{color:va[r]},children:r}),u.jsx(hs,{variant:"ghost",size:"1",id:"txn-bars-tooltip-close",children:u.jsx(nUe,{color:sr})})]}),u.jsx(Lm,{}),u.jsxs(W,{direction:"column",children:[u.jsx(qyt,{txnIdx:n,transactions:i}),u.jsx(FP,{label:"Bundle",value:i.txn_from_bundle[n],append:o?`(${o.order} of ${o.totalCount})`:void 0}),u.jsx(FP,{label:"Vote",value:i.txn_is_simple_vote[n]}),u.jsx(FP,{label:"Landed",value:i.txn_landed[n]}),u.jsx(Lm,{}),u.jsx(Wr,{label:"Fees",value:`${(i.txn_priority_fee[n]+i.txn_transaction_fee[n]).toLocaleString()}`,color:kg}),u.jsx(Wr,{label:"Tips",value:`${(l=i.txn_tips[n])==null?void 0:l.toLocaleString()}`,color:qf}),u.jsx(Lm,{}),u.jsx(Hyt,{transactions:i,txnIdx:n}),u.jsx(Lm,{}),u.jsx(Wr,{label:"Txn Index",value:`${n}`}),u.jsx(Wr,{label:"Microblock ID",value:`${i.txn_microblock_id[n]}`}),u.jsx(Wr,{label:"Bank ID",value:`${i.txn_bank_idx[n]}`}),u.jsx(Wr,{label:"Slot to Arrival",value:(Number(i.txn_arrival_timestamps_nanos[n]-i.start_timestamp_nanos)/1e6).toLocaleString(),unit:"ms"}),u.jsx(Wr,{label:"Arrival to Scheduled",value:(Number(i.txn_start_timestamps_nanos[n]-i.txn_arrival_timestamps_nanos[n])/1e6).toLocaleString(),unit:"ms"}),a&&u.jsx(Wr,{label:"Arrival Time",value:a.inNanos}),u.jsx(Wyt,{transactions:i,txnIdx:n}),u.jsx(Zyt,{transactions:i,txnIdx:n,bundleTxnIdx:o==null?void 0:o.bundleTxnIdx}),u.jsx(Lm,{}),u.jsx(Wr,{label:"Txn Sig",value:i.txn_signature[n],copyValue:i.txn_signature[n],truncateValue:!0})]})]})})}function Wyt({transactions:e,txnIdx:t}){const n=J(JN),r=e.txn_source_ipv4[t],i=m.useMemo(()=>{var a;const o=n.find(s=>s.gossip?Object.values(s.gossip.sockets).some(l=>ZN(l)===r):!1);return o?(a=o.info)!=null&&a.name?o.info.name:o.identity_pubkey:void 0},[r,n]);return u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:"IPv4 (tpu)",value:`${r} (${e.txn_source_tpu[t]})`}),i&&u.jsx(Wr,{label:"Validator",value:i,truncateValue:!0})]})}function Vyt({transactions:e,txnIdx:t}){var o;const{rankings:n,totalRanks:r}=m.useMemo(()=>vhe(e),[e]),i=n.has(t)?` (${n.get(t)} of ${r})`:"";return u.jsx(Wr,{label:"CU Income",value:`${(o=ghe(e,t))==null?void 0:o.toLocaleString(void 0,{maximumFractionDigits:Bo})}${i}`,color:wp})}function Hyt({transactions:e,txnIdx:t}){var r,i;const n=e.txn_compute_units_requested[t]?Math.trunc(e.txn_compute_units_consumed[t]/e.txn_compute_units_requested[t]*100):100;return u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:"CU Consumed",value:`${(r=e.txn_compute_units_consumed[t])==null?void 0:r.toLocaleString()}`,color:pd}),u.jsx(Wr,{label:"CU Requested",value:`${(i=e.txn_compute_units_requested[t])==null?void 0:i.toLocaleString()}`,color:mk}),u.jsx(Vyt,{transactions:e,txnIdx:t}),u.jsx(W,{children:u.jsxs("svg",{height:"8",fill:"none",className:g_.cuBars,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${n}%`,opacity:.6,fill:pd}),u.jsx("rect",{height:"8",width:`${100-n}%`,x:`${n}%`,opacity:.2,fill:mk})]})})]})}function Zyt({transactions:e,txnIdx:t,bundleTxnIdx:n}){const r=m.useMemo(()=>pP(e,t,n),[n,e,t]),i=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(p=>Number(p))),s=Math.max(0,Number(r.preLoading)/a*100),l=Math.max(0,Number(r.validating)/a*100),c=Math.max(0,Number(r.loading)/a*100),d=Math.max(0,Number(r.execute)/a*100),f=Math.max(0,Number(r.postExecute)/a*100);return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f}},[r]),o=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(b=>Number(b))),s=Ha(r.preLoading),l=Ha(r.validating),c=Ha(r.loading),d=Ha(r.execute),f=Ha(r.postExecute),p=Ha(a),v=e.txn_mb_start_timestamps_nanos[t],x=e.txn_mb_end_timestamps_nanos[t],y=n!=null&&n.length&&e.txn_from_bundle[t]?Ha(x-v):null;return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f,total:p,bundleTotal:y}},[e,r,t,n]);if(!(!r||!i||!o))return u.jsxs(u.Fragment,{children:[u.jsx(Lm,{}),u.jsx(W,{children:u.jsxs("svg",{height:"36",className:g_.durationContainer,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${i.preLoading}%`,fill:va[dn.PRELOADING]}),Vi?u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading+i.loading}%`,y:"40%"})]}):u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading+i.validating}%`,y:"40%"})]}),u.jsx("rect",{height:"8",width:`${i.execute}%`,fill:va[dn.EXECUTE],x:`${i.preLoading+i.validating+i.loading}%`,y:"60%"}),u.jsx("rect",{height:"8",width:`${i.postExecute}%`,fill:va[dn.POST_EXECUTE],x:`${i.preLoading+i.validating+i.loading+i.execute}%`,y:"80%"})]})}),u.jsx(Wr,{label:dn.PRELOADING,color:va[dn.PRELOADING],value:o.preLoading.value,unit:o.preLoading.unit}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit}),u.jsx(Wr,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit})]}):u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit}),u.jsx(Wr,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit})]}),u.jsx(Wr,{label:dn.EXECUTE,color:va[dn.EXECUTE],value:o.execute.value,unit:o.execute.unit}),u.jsx(Wr,{label:dn.POST_EXECUTE,color:va[dn.POST_EXECUTE],value:o.postExecute.value,unit:o.postExecute.unit}),u.jsx(Wr,{label:"Total",value:o.total.value,unit:o.total.unit}),o.bundleTotal&&u.jsx(Wr,{label:"Total (Bundle)",value:o.bundleTotal.value,unit:o.bundleTotal.unit})]})}function qyt({txnIdx:e,transactions:t}){const n=t.txn_error_code[e],r=n!==0;return u.jsx(Wr,{label:r?"Error":"Success",value:r?`${lN[n]}`:"Yes",color:r?RN:MN})}function Wr({label:e,value:t,color:n,unit:r,copyValue:i,truncateValue:o}){const a=typeof t=="number"?t.toLocaleString():t;return u.jsxs(W,{justify:"between",gap:"4",style:{"--color-override":n},children:[u.jsx(W,{minWidth:"105px",children:u.jsx(Z,{wrap:"nowrap",children:e})}),u.jsx(W,{minWidth:"0",maxWidth:"210px",align:"center",children:u.jsxs(Dg,{value:i,color:Xte,size:"14px",children:[u.jsx(Z,{className:g_.valueText,align:"right",truncate:o,children:a}),r&&u.jsx(Z,{className:g_.unit,children:r})]})})]})}function FP({value:e,append:t,...n}){let r=e?"Yes":"No";return t&&(r+=` ${t}`),u.jsx(Wr,{...n,value:r})}function Gyt(){var n;const e=J(Cn),t=pl(e);return!e||!((n=t.response)!=null&&n.transactions)?u.jsx(Yyt,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{id:"txn-bars-card",children:u.jsx(Lyt,{},e)}),u.jsx(Byt,{})]})}function Yyt(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"400px",justifyContent:"center",alignItems:"center"},children:u.jsx(Z,{children:"Loading Banks..."})})}const Kyt="_search-grid_gudx6_1",Xyt="_search-label_gudx6_5",Jyt="_search-field_gudx6_11",Qyt="_error-text_gudx6_15",ebt="_quick-search-card_gudx6_19",tbt="_quick-search-header_gudx6_26",nbt="_quick-search-slot_gudx6_37",rbt="_clickable_gudx6_40",ibt="_quick-search-metric_gudx6_51",hc={searchGrid:Kyt,searchLabel:Xyt,searchField:Jyt,errorText:Qyt,quickSearchCard:ebt,quickSearchHeader:tbt,quickSearchSlot:nbt,clickable:rbt,quickSearchMetric:ibt},obt=e=>m.createElement("svg",{width:18,height:18,viewBox:"0 0 18 18",fill:"#D86363",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.01469 6.00051C5.58562 6.03619 3 7.94365 3 12C3 12.5523 2.55228 13 2 13C1.44772 13 1 12.5523 1 12C1 6.90007 4.41438 4.05318 7.98531 4.00073C9.74494 3.97489 11.5153 4.63461 12.8432 6.00502C13.8812 7.07635 14.6101 8.5405 14.8821 10.3602L15.8896 8.9389C16.209 8.48833 16.8331 8.38198 17.2837 8.70137C17.7343 9.02075 17.8406 9.64492 17.5213 10.0955L15.0678 13.5568C14.7484 14.0073 14.1242 14.1137 13.6737 13.7943L10.2124 11.3408C9.76181 11.0214 9.65546 10.3973 9.97484 9.9467C10.2942 9.49613 10.9184 9.38978 11.369 9.70916L12.9263 10.8131C12.7275 9.27771 12.1449 8.15845 11.4068 7.39676C10.4847 6.44507 9.25506 5.9823 8.01469 6.00051ZM6.5 13C7.32843 13 8 12.3284 8 11.5C8 10.6716 7.32843 10 6.5 10C5.67157 10 5 10.6716 5 11.5C5 12.3284 5.67157 13 6.5 13Z"}));function abt(e=!1){const t=C6(),n=m.useCallback(()=>t({topic:"slot",key:"query_rankings",id:32,params:{mine:e}}),[e,t]);m.useEffect(()=>{n();const r=setInterval(n,5e3);return()=>clearInterval(r)},[n])}function tpe(e,t){const n=Pie();if(rx(n,1e3),!e)return;const r=Yf>=e,i=(r?Yf.diff(e):e.diff(Yf)).rescale(),o=kp(i,t);return r?`${o} ago`:o}function npe(e,t){var a;const n=Is(e),r=m.useMemo(()=>{var s;return((s=n.publish)==null?void 0:s.completed_time_nanos)??void 0},[(a=n.publish)==null?void 0:a.completed_time_nanos]),i=m.useMemo(()=>{if(r!==void 0)return tre(r)},[r]),o=tpe(i,t);return{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}}function rpe(){const e=Q0({from:$pe.fullPath});return m.useCallback(t=>{e({search:{slot:t},replace:!0})},[e])}const ipe=3,ope=226,ape=40,spe=20,sbt=2*spe+ipe*ope+(ipe-1)*ape;function lbt(){const e=J(gd.slot),t=rpe(),[n,r]=m.useState(e===void 0?"":String(e)),i=J(fi),o=J(gd.isValid),a=m.useCallback(()=>{t(n===""?void 0:Number(n))},[n,t]);return u.jsxs(qr,{height:"100%",maxWidth:`${sbt}px`,justify:"center",m:"auto",gap:`${ape}px`,p:`${spe}px`,columns:`repeat(auto-fit, ${ope}px)`,className:hc.searchGrid,children:[u.jsx(W,{direction:"column",gap:"8px",gridColumn:"1 / -1",asChild:!0,children:u.jsxs("form",{onSubmit:s=>{s.preventDefault(),a()},children:[u.jsx(C6e,{htmlFor:"searchSlotId",className:hc.searchLabel,children:"Search Slot ID"}),u.jsx(Q7,{id:"searchSlotId",className:hc.searchField,placeholder:`e.g. ${(i==null?void 0:i.start_slot)??0}`,type:"number",step:"1",value:n,onChange:s=>r(s.target.value),size:"3",color:o?"teal":"red",autoFocus:!0,children:u.jsx(M4,{side:"right",children:u.jsx(nl,{variant:"ghost",color:"gray",onClick:a,children:u.jsx(qie,{height:"16",width:"16"})})})}),!o&&u.jsx(hbt,{})]})}),u.jsx(ubt,{})]})}function UP(e){return`${Tb(e,4)} SOL`}function ubt(){abt(!0);const e=J(PG),{earliestQuickSlots:t,mostRecentQuickSlots:n}=J(Tre);return u.jsxs(u.Fragment,{children:[u.jsx($1,{icon:u.jsx(QFe,{}),label:"Earliest Slots",color:qne,slots:t}),u.jsx($1,{icon:u.jsx(Gie,{}),label:"Most Recent Slots",color:Gne,slots:n}),u.jsx($1,{icon:u.jsx(obt,{}),label:"Last Skipped Slots",color:Yne,slots:e==null?void 0:e.slots_largest_skipped}),u.jsx($1,{icon:u.jsx(iUe,{}),label:"Highest Fees",color:Kne,slots:e==null?void 0:e.slots_largest_fees,metricOptions:{metrics:e==null?void 0:e.vals_largest_fees,metricsFmt:UP}}),u.jsx($1,{icon:u.jsx(pUe,{}),label:"Highest Tips",color:Xne,slots:e==null?void 0:e.slots_largest_tips,metricOptions:{metrics:e==null?void 0:e.vals_largest_tips,metricsFmt:UP}}),u.jsx($1,{icon:u.jsx(yUe,{}),label:"Highest Rewards",color:Jne,slots:e==null?void 0:e.slots_largest_rewards,metricOptions:{metrics:e==null?void 0:e.vals_largest_rewards,metricsFmt:UP}})]})}function $1({icon:e,label:t,color:n,slots:r,metricOptions:i}){return u.jsxs(W,{direction:"column",className:hc.quickSearchCard,p:"20px",gap:"20px",children:[u.jsxs(W,{direction:"column",gap:"10px",className:hc.quickSearchHeader,style:{"--quick-search-color":n},children:[e,u.jsx(Z,{align:"left",children:t})]}),u.jsx(cbt,{slots:r,metricOptions:i})]})}function cbt({slots:e,metricOptions:t}){const n=rpe();return u.jsx(W,{direction:"column",gap:"5px",children:Array.from({length:GN}).map((r,i)=>{var a;const o=e==null?void 0:e[i];return u.jsxs(W,{justify:"between",children:[o===void 0?u.jsx(Z,{className:hc.quickSearchSlot,children:"--"}):u.jsx(Z,{className:Te(hc.quickSearchSlot,hc.clickable),onClick:()=>n(o),children:o}),u.jsx(Z,{className:hc.quickSearchMetric,children:u.jsx(dbt,{slot:o,metric:(a=t==null?void 0:t.metrics)==null?void 0:a[i],metricsFmt:t==null?void 0:t.metricsFmt})})]},i)})})}function dbt({slot:e,metric:t,metricsFmt:n}){return e===void 0?"--":n?t===void 0?"--":n(t)??"--":u.jsx(fbt,{slot:e})}function fbt({slot:e}){const{timeAgoText:t}=npe(e,{showOnlyTwoSignificantUnits:!0});return t}function hbt(){const e=J(gd.slot),t=J(gd.state),n=J(fi),r=m.useMemo(()=>{switch(t){case Kf.NotReady:return`Slot ${e} validity cannot be determined because epoch and leader slot data is not available yet.`;case Kf.OutsideEpoch:return`Slot ${e} is outside this epoch. Please try again with a different ID between ${n==null?void 0:n.start_slot} - ${n==null?void 0:n.end_slot}.`;case Kf.NotYou:return`Slot ${e} belongs to another validator. Please try again with a slot number processed by you.`;case Kf.BeforeFirstProcessed:return`Slot ${e} is in this epoch but its details are unavailable because it was processed before the restart.`;case Kf.Future:return`Slot ${e} is valid but in the future. To view details, check again after it has been processed.`;case Kf.Valid:return""}},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,e,t]);return u.jsx(Z,{size:"3",className:hc.errorText,children:r})}const pbt="_slot-item-group_p1cnp_1",mbt="_disabled_p1cnp_8",gbt="_is-selected_p1cnp_13",vbt="_slot-item_p1cnp_1",ybt="_selected-slot_p1cnp_35",bbt="_skipped-slot_p1cnp_41",xbt="_fade_p1cnp_50",_bt="_fade-left_p1cnp_57",wbt="_fade-right_p1cnp_62",pc={slotItemGroup:pbt,disabled:mbt,isSelected:gbt,slotItem:vbt,selectedSlot:ybt,skippedSlot:bbt,fade:xbt,fadeLeft:_bt,fadeRight:wbt};function lpe({onMeasured:e,children:t}){const n=J(jg),[r,i]=Ss();return m.useEffect(()=>e(i),[i,e]),u.jsx(lB,{container:n,style:{position:"fixed",left:"-100000px",top:"-100000px",visibility:"hidden"},ref:r,"aria-hidden":"true",children:t})}/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */var BP=function(e,t){return BP=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},BP(e,t)};function kbt(e,t){BP(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Sbt=100,Cbt=100,upe=50,WP=50,VP=50;function cpe(e){var t=e.className,n=e.counterClockwise,r=e.dashRatio,i=e.pathRadius,o=e.strokeWidth,a=e.style;return m.createElement("path",{className:t,style:Object.assign({},a,Tbt({pathRadius:i,dashRatio:r,counterClockwise:n})),d:jbt({pathRadius:i,counterClockwise:n}),strokeWidth:o,fillOpacity:0})}function jbt(e){var t=e.pathRadius,n=e.counterClockwise,r=t,i=n?1:0;return` + M `+WP+","+VP+` + m 0,-`+r+` + a `+r+","+r+" "+i+" 1 1 0,"+2*r+` + a `+r+","+r+" "+i+" 1 1 0,-"+2*r+` + `}function Tbt(e){var t=e.counterClockwise,n=e.dashRatio,r=e.pathRadius,i=Math.PI*2*r,o=(1-n)*i;return{strokeDasharray:i+"px "+i+"px",strokeDashoffset:(t?-o:o)+"px"}}var Ibt=function(e){kbt(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getBackgroundPadding=function(){return this.props.background?this.props.backgroundPadding:0},t.prototype.getPathRadius=function(){return upe-this.props.strokeWidth/2-this.getBackgroundPadding()},t.prototype.getPathRatio=function(){var n=this.props,r=n.value,i=n.minValue,o=n.maxValue,a=Math.min(Math.max(r,i),o);return(a-i)/(o-i)},t.prototype.render=function(){var n=this.props,r=n.circleRatio,i=n.className,o=n.classes,a=n.counterClockwise,s=n.styles,l=n.strokeWidth,c=n.text,d=this.getPathRadius(),f=this.getPathRatio();return m.createElement("svg",{className:o.root+" "+i,style:s.root,viewBox:"0 0 "+Sbt+" "+Cbt,"data-test-id":"CircularProgressbar"},this.props.background?m.createElement("circle",{className:o.background,style:s.background,cx:WP,cy:VP,r:upe}):null,m.createElement(cpe,{className:o.trail,counterClockwise:a,dashRatio:r,pathRadius:d,strokeWidth:l,style:s.trail}),m.createElement(cpe,{className:o.path,counterClockwise:a,dashRatio:f*r,pathRadius:d,strokeWidth:l,style:s.path}),c?m.createElement("text",{className:o.text,style:s.text,x:WP,y:VP},c):null)},t.defaultProps={background:!1,backgroundPadding:0,circleRatio:1,classes:{root:"CircularProgressbar",trail:"CircularProgressbar-trail",path:"CircularProgressbar-path",text:"CircularProgressbar-text",background:"CircularProgressbar-background"},counterClockwise:!1,className:"",maxValue:100,minValue:0,strokeWidth:8,styles:{root:{},trail:{},path:{},text:{},background:{}},text:""},t}(m.Component);function Ebt(e){var t=e.rotation,n=e.strokeLinecap,r=e.textColor,i=e.textSize,o=e.pathColor,a=e.pathTransition,s=e.pathTransitionDuration,l=e.trailColor,c=e.backgroundColor,d=t==null?void 0:"rotate("+t+"turn)",f=t==null?void 0:"center center";return{root:{},path:FS({stroke:o,strokeLinecap:n,transform:d,transformOrigin:f,transition:a,transitionDuration:s==null?void 0:s+"s"}),trail:FS({stroke:l,strokeLinecap:n,transform:d,transformOrigin:f}),text:FS({fill:r,fontSize:i}),background:FS({fill:c})}}function FS(e){return Object.keys(e).forEach(function(t){e[t]==null&&delete e[t]}),e}const Nbt="data:image/svg+xml,%3csvg%20width='12'%20height='13'%20viewBox='0%200%2012%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6%200.675781C9.22656%200.675781%2011.8242%203.27344%2011.8242%206.5C11.8242%209.72656%209.22656%2012.3242%206%2012.3242C2.77344%2012.3242%200.175781%209.72656%200.175781%206.5C0.175781%203.27344%202.77344%200.675781%206%200.675781ZM6%2011.1758C8.57031%2011.1758%2010.6758%209.07031%2010.6758%206.5C10.6758%203.92969%208.57031%201.82422%206%201.82422C3.42969%201.82422%201.32422%203.92969%201.32422%206.5C1.32422%209.07031%203.42969%2011.1758%206%2011.1758ZM8.67969%203.92969L9.5%204.75L4.82422%209.42578L2.5%207.07422L3.32031%206.25391L4.82422%207.75781L8.67969%203.92969Z'%20fill='%231D863B'/%3e%3c/svg%3e",$bt="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='%231D863B'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.82422%208.92578L10.0742%203.67578L9.25391%202.82812L4.82422%207.25781L2.74609%205.17969L1.92578%206L4.82422%208.92578ZM1.87109%201.89844C3.01953%200.75%204.39583%200.175781%206%200.175781C7.60417%200.175781%208.97135%200.75%2010.1016%201.89844C11.25%203.02865%2011.8242%204.39583%2011.8242%206C11.8242%207.60417%2011.25%208.98047%2010.1016%2010.1289C8.97135%2011.2591%207.60417%2011.8242%206%2011.8242C4.39583%2011.8242%203.01953%2011.2591%201.87109%2010.1289C0.740885%208.98047%200.175781%207.60417%200.175781%206C0.175781%204.39583%200.740885%203.02865%201.87109%201.89844Z'/%3e%3c/svg%3e",Mbt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='8.5'%20cy='2.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='4.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='12.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3cline%20x1='8.35355'%20y1='1.64645'%20x2='13.3536'%20y2='6.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='3.64645'%20y1='6.64645'%20x2='8.64645'%20y2='1.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='12.4642'%20y1='6.8143'%20x2='14.4642'%20y2='11.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5358'%20y1='11.8143'%20x2='12.5356'%20y2='6.81427'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.53576'%20y1='11.8143'%20x2='4.53576'%20y2='6.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='4.46424'%20y1='6.81432'%20x2='6.46412'%20y2='11.8144'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.5'%20y1='11'%20x2='2.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='6.5'%20y1='11'%20x2='6.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5'%20y1='11'%20x2='10.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='14.5'%20y1='11'%20x2='14.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3c/svg%3e",Rbt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='%23D86363'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.01469%206.00051C5.58562%206.03619%203%207.94365%203%2012C3%2012.5523%202.55228%2013%202%2013C1.44772%2013%201%2012.5523%201%2012C1%206.90007%204.41438%204.05318%207.98531%204.00073C9.74494%203.97489%2011.5153%204.63461%2012.8432%206.00502C13.8812%207.07635%2014.6101%208.5405%2014.8821%2010.3602L15.8896%208.9389C16.209%208.48833%2016.8331%208.38198%2017.2837%208.70137C17.7343%209.02075%2017.8406%209.64492%2017.5213%2010.0955L15.0678%2013.5568C14.7484%2014.0073%2014.1242%2014.1137%2013.6737%2013.7943L10.2124%2011.3408C9.76181%2011.0214%209.65546%2010.3973%209.97484%209.9467C10.2942%209.49613%2010.9184%209.38978%2011.369%209.70916L12.9263%2010.8131C12.7275%209.27771%2012.1449%208.15845%2011.4068%207.39676C10.4847%206.44507%209.25506%205.9823%208.01469%206.00051ZM6.5%2013C7.32843%2013%208%2012.3284%208%2011.5C8%2010.6716%207.32843%2010%206.5%2010C5.67157%2010%205%2010.6716%205%2011.5C5%2012.3284%205.67157%2013%206.5%2013Z'/%3e%3c/svg%3e",Lbt="_small-icon_1vpxu_1",Pbt="_large-icon_1vpxu_6",US={smallIcon:Lbt,largeIcon:Pbt};function dpe({slot:e,isCurrent:t,size:n}){const r=J(nDe(e)),i=Te(US[`${n}Icon`]);return t?u.jsx(Obt,{size:n}):r==="incomplete"?u.jsx(fpe,{size:n}):r==="optimistically_confirmed"?u.jsx(ci,{content:"Slot was optimistically confirmed",children:u.jsx("img",{src:$bt,alt:"optimistically_confirmed",className:i})}):r==="rooted"||r==="finalized"?u.jsx(ci,{content:"Slot was rooted",children:u.jsx("img",{src:Mbt,alt:"rooted",className:i})}):u.jsx(ci,{content:"Slot was processed",children:u.jsx("img",{src:Nbt,alt:"processed",className:i})})}function fpe({size:e}){return u.jsx("div",{className:Te(US[`${e}Icon`])})}function Obt({size:e}){const t=m.useRef(performance.now()),n=J(Eg),[r,i]=m.useState(0);return Aie(()=>{if(r>=100)return;const o=performance.now()-t.current,a=Math.min(Math.floor(o/n*100),100);i(a)}),u.jsx(W,{className:Te(US[`${e}Icon`]),children:u.jsx(Ibt,{value:r,styles:Ebt({trailColor:Hne,pathColor:Zne,pathTransition:"none"}),strokeWidth:25,maxValue:100})})}function hpe({size:e}){return u.jsx(ci,{content:"Slot was skipped",children:u.jsx("img",{src:Rbt,alt:"skipped",className:Te(US[`${e}Icon`])})})}const zbt=kb+Sb,ppe=4;function mpe(e,t){return e*t+Math.max(0,e-1)*ppe}function Dbt(){const e=J(Cn),t=J(ao),[n,r]=m.useState(0),[i,o]=m.useState(0),[a,{width:s}]=Ss(),l=m.useRef(null),[c,d]=m.useState(0),f=m.useCallback(w=>{w&&requestAnimationFrame(()=>{var S;const _=s/2-(w.offsetLeft+w.offsetWidth/2);(S=l.current)==null||S.style.setProperty("--offset",`${_}px`),d(_)})},[s]),p=m.useMemo(()=>e===void 0||!t?-1:t.indexOf(_i(e)),[t,e]),v=m.useMemo(()=>{if(p<0||!t)return;const w=Math.max(1,Math.ceil(s/2/i)),_=rt.clamp(w,1,10),S=w+_,C=t.length,j=Math.max(0,p-S),T=Math.min(C-1,p+S),E=C-1-T;return{leftSpacerWidth:mpe(j,i),rightSpacerWidth:mpe(E,i),startItemGroupIdx:j,endItemGroupIdx:T}},[s,i,t,p]),{showFadeLeft:x,showFadeRight:y}=m.useMemo(()=>{var S;const w=c<0,_=(((S=l.current)==null?void 0:S.offsetWidth)??0)-s+c>0;return{showFadeLeft:w,showFadeRight:_}},[s,c]);if(!t||!v||e===void 0)return;const b=[];if(i&&n)for(let w=v.startItemGroupIdx;w<=v.endItemGroupIdx;w++){const _=[],S=t[w];for(let j=0;j<$n;j++){const T=S+j,E=T===e;_.push(u.jsx(HP,{slot:T,isSelected:E,onSelectedSlotRef:E?f:void 0},T))}const C=S<=e&&et(i.width),children:u.jsx(HP,{slot:e[e.length-1],isSelected:!0})}),u.jsx(lpe,{onMeasured:i=>n(i.width),children:u.jsx(gpe,{slot:r,children:new Array($n).fill(0).map((i,o)=>u.jsx(HP,{slot:r-o,isSelected:!0},o))})})]})}function gpe({slot:e,isSelected:t,children:n}){const r=e<(J(Xf)??-1),i=e>(J(XN)??1/0),o=r||i;return u.jsx(W,{className:Te(pc.slotItemGroup,{[pc.disabled]:o,[pc.isSelected]:t}),children:n})}function HP({slot:e,isSelected:t,onSelectedSlotRef:n}){var s;Is(e);const r=(s=J(u3))==null?void 0:s.includes(e),i=e<(J(Xf)??-1),o=e>=(J(XN)??1/0)+$n,a=i||o;return u.jsxs(sp,{to:"/slotDetails",search:{slot:e},className:Te(pc.slotItem,{[pc.selectedSlot]:t,[pc.skippedSlot]:r}),ref:n,disabled:a,children:[u.jsx(Z,{children:e}),r?u.jsx(hpe,{size:"large"}):u.jsx(dpe,{isCurrent:!1,slot:e,size:"large"})]},e)}const Fbt="_header_1s5d9_1",Ubt="_subheader_1s5d9_7",Bbt="_label_1s5d9_12",Wbt="_value_1s5d9_18",Vbt="_table-header_1s5d9_26",Hbt="_table-row-label_1s5d9_32",Zbt="_total_1s5d9_37",qbt="_table-cell-value_1s5d9_42",Gbt="_grid_1s5d9_52",Ybt="_name_1s5d9_67",Kbt="_lg_1s5d9_70",Xbt="_copy-button_1s5d9_79",Jbt="_time-popover_1s5d9_85",at={header:Fbt,subheader:Ubt,label:Bbt,value:Wbt,tableHeader:Vbt,tableRowLabel:Hbt,total:Zbt,tableCellValue:qbt,grid:Gbt,name:Ybt,lg:Kbt,copyButton:Xbt,timePopover:Jbt},vpe="20px",BS="15px",Qbt="15px",xl="5px",Nd="1",ype=2.5;function ZP({title:e,children:t,...n}){return u.jsxs(W,{direction:"column",flexBasis:"0",flexGrow:"1",gap:BS,...n,children:[u.jsxs(Mt,{children:[u.jsx(Z,{className:at.header,children:e}),u.jsx(Lm,{my:"0"})]}),t]})}function Oi({title:e,children:t,...n}){return u.jsxs(W,{direction:"column",...n,children:[u.jsx(Z,{className:at.subheader,mb:"5px",children:e}),t]})}const ext=Yu;function txt(){const e=J(Cn),t=pl(e),n=m.useMemo(()=>{var o;if((o=t==null?void 0:t.response)!=null&&o.transactions)return t.response.transactions.txn_compute_units_consumed.reduce((a,s,l)=>{var f,p,v,x;const c=!!((p=(f=t.response)==null?void 0:f.transactions)!=null&&p.txn_is_simple_vote[l]),d=(x=(v=t.response)==null?void 0:v.transactions)==null?void 0:x.txn_from_bundle[l];return c?a.vote+=s:d?a.bundle+=s:a.other+=s,a},{vote:0,bundle:0,other:0})},[t]);if(!n)return;const r=n.vote+n.bundle+n.other,i=Math.max(n.vote,n.bundle,n.other);return u.jsx(Oi,{title:"Consumed Compute Units",children:u.jsxs(qr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:xl,gapY:Nd,children:[u.jsx(qP,{label:"Vote",cus:n.vote,totalCus:r,maxCus:i,pctColor:hd}),u.jsx(qP,{label:"Bundle",cus:n.bundle,totalCus:r,maxCus:i,pctColor:ext}),u.jsx(qP,{label:"Other",cus:n.other,totalCus:r,maxCus:i,pctColor:Hf})]})})}function qP({label:e,cus:t,totalCus:n,maxCus:r,pctColor:i}){const o=Math.round(n?t/n*100:0),a=Math.round(r?t/r*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:i},align:"right",children:t.toLocaleString()}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,style:{color:pd},align:"right",children:n.toLocaleString()}),u.jsxs(Z,{className:at.value,align:"right",children:[o,"%"]}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${a}%`,opacity:.6,fill:i})})]})}function WS({value:e,total:t,valueColor:n,showBackground:r}){const i=Math.round(t?e/t*100:0);return u.jsx(u.Fragment,{children:u.jsxs("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:n}),r&&u.jsx("rect",{height:"8",width:`${100-i}%`,x:`${i}%`,opacity:.2,fill:n})]})})}function v_({label:e,value:t,total:n,valueColor:r,labelWidth:i,numeratorColor:o=!0,pctColor:a=!1}){const s=Math.round(n?t/n*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(qk,{content:i?e:void 0,children:u.jsx(Z,{className:at.label,truncate:!0,style:{width:i},children:e})}),u.jsx(Z,{className:at.value,style:{color:o?r:void 0},align:"right",children:t.toLocaleString()}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,align:"right",children:n.toLocaleString()}),u.jsxs(Z,{className:at.value,style:{color:a?r:void 0},align:"right",children:[s,"%"]}),u.jsx(WS,{value:t,total:n,valueColor:r,showBackground:!0})]})}function nxt(){const e=J(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Oi,{title:"Protocol Limit Utilization",children:u.jsxs(qr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:xl,gapY:Nd,children:[u.jsx(v_,{label:"Block cost",value:n.used_total_block_cost??0,total:n.max_total_block_cost??0,valueColor:pd}),u.jsx(v_,{label:"Vote cost",value:n.used_total_vote_cost??0,total:n.max_total_vote_cost??0,valueColor:hd}),u.jsx(v_,{label:"Bytes",value:n.used_total_bytes??0,total:n.max_total_bytes??0,valueColor:"#A35829"}),u.jsx(v_,{label:"Microblocks",value:n.used_total_microblocks??0,total:n.max_total_microblocks??0,valueColor:"#9EB1FF"})]})})}function rxt(){const e=J(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Oi,{title:"Top 5 Busy Accounts",children:u.jsx(qr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:xl,gapY:Nd,children:n.used_account_write_costs.map(({account:r,cost:i})=>u.jsx(v_,{label:r,labelWidth:"80px",value:i,total:n.max_account_write_cost,valueColor:"#30A46C",numeratorColor:!1,pctColor:!0},r))})})}function Za({children:e,...t}){return u.jsx(Z,{...t,className:Te("mono-text",t.className),children:e})}const GP={preLoading:0,validating:0,loading:0,execute:0,postExecute:0,total:0};function YP(e){return Object.values(e).reduce((t,n)=>t+n,0)}function ixt(){var s;const e=J(Cn),t=(s=pl(e).response)==null?void 0:s.transactions,n=m.useMemo(()=>{if(!t)return;const l={...GP},c={...GP},d={...GP};for(let f=0;f{y.preLoading+=Number(b.preLoading),y.validating+=Number(b.validating),y.loading+=Number(b.loading),y.execute+=Number(b.execute),y.postExecute+=Number(b.postExecute)};t.txn_landed[f]?t.txn_error_code[f]===0?x(c,v):x(d,v):x(l,v)}return l.total=YP(l),c.total=YP(c),d.total=YP(d),{unlanded:l,landedSuccess:c,landedFailed:d,max:Math.max(l.total,c.total,d.total)}},[t]);if(!n)return;const{unlanded:r,landedSuccess:i,landedFailed:o,max:a}=n;return u.jsx(Oi,{title:"Cumulative Execution Time",children:u.jsxs(qr,{columns:"repeat(7, auto)",gapX:xl,gapY:Nd,children:[u.jsx("div",{}),u.jsx(Z,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Success+Landed"}),u.jsx(Z,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Failed+Landed"}),u.jsx(Z,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Unlanded"}),u.jsx(mh,{label:"Preloading",landedSuccess:i.preLoading,landedFailed:o.preLoading,unlanded:r.preLoading,max:a}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(mh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a}),u.jsx(mh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a})]}):u.jsxs(u.Fragment,{children:[u.jsx(mh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a}),u.jsx(mh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a})]}),u.jsx(mh,{label:"Execute",landedSuccess:i.execute,landedFailed:o.execute,unlanded:r.execute,max:a}),u.jsx(mh,{label:"Post-Execute",landedSuccess:i.postExecute,landedFailed:o.postExecute,unlanded:r.postExecute,max:a}),u.jsx(mh,{label:"Total",landedSuccess:i.total,landedFailed:o.total,unlanded:r.total,max:a,isTotal:!0})]})})}function mh({label:e,landedSuccess:t,landedFailed:n,unlanded:r,max:i,isTotal:o}){const a=o?"#28684A":"#174933",s=o?"#8C333A":"#611623",l=o?"#12677E":"#004558",c=Ha(t),d=Ha(n),f=Ha(r);return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:Te(at.tableRowLabel,o&&at.total),children:e}),u.jsxs(Z,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[c.value,u.jsx(Za,{children:c.unit})]}),u.jsx(WS,{value:t,total:i,valueColor:a}),u.jsxs(Z,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[d.value,u.jsx(Za,{children:d.unit})]}),u.jsx(WS,{value:n,total:i,valueColor:s}),u.jsxs(Z,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[f.value,u.jsx(Za,{children:f.unit})]}),u.jsx(WS,{value:r,total:i,valueColor:l})]})}function oxt(){var i;const e=J(Cn),t=(i=pl(e).response)==null?void 0:i.transactions,n=m.useMemo(()=>{if(!t)return;const{vote:o,nonVote:a,bundle:s}={vote:{count:0,total:0,min:1/0,max:-1/0},nonVote:{count:0,total:0,min:1/0,max:-1/0},bundle:{count:0,total:0,min:1/0,max:-1/0}};for(let l=0;lNumber(p)));t.txn_is_simple_vote[l]?(o.total+=f,o.count++,o.min=Math.min(o.min,f),o.max=Math.max(o.max,f)):(a.total+=f,a.count++,a.min=Math.min(a.min,f),a.max=Math.max(a.max,f)),t.txn_from_bundle[l]&&(s.total+=f,s.count++,s.min=Math.min(s.min,f),s.max=Math.max(s.max,f))}return{vote:o.total/o.count,nonVote:a.total/a.count,bundle:s.total/s.count,voteMin:o.min,voteMax:o.max,nonVoteMin:a.min,nonVoteMax:a.max,bundleMin:s.min,bundleMax:s.max}},[t]);if(!n)return;const r=Math.max(n.voteMax,n.nonVoteMax,n.bundleMax);return u.jsx(Oi,{title:"Execution Time (min / avg / max)",children:u.jsxs(qr,{columns:"repeat(7, auto)",gapX:xl,gapY:Nd,children:[u.jsx(XP,{label:"Vote",value:n.vote,color:hd,max:r,minValue:n.voteMin,maxValue:n.voteMax}),u.jsx(XP,{label:"Non-vote",value:n.nonVote,color:Hf,max:r,minValue:n.nonVoteMin,maxValue:n.nonVoteMax}),u.jsx(XP,{label:"Bundle",value:n.bundle,color:"var(--purple-9)",max:r,minValue:n.bundleMin,maxValue:n.bundleMax})]})})}const bpe=4,VS=`${bpe}px`;function KP(e){return`clamp(0px, calc(${e}% - ${bpe/2}px), calc(100% - ${VS}))`}function XP({label:e,value:t,max:n,minValue:r,maxValue:i}){const o=isFinite(t)&&isFinite(r)&&isFinite(i),a=o?t/n*100:0,s=o?r/n*100:0,l=o?i/n*100:0,c=o?Ha(t):null,d=o?Ha(r):null,f=o?Ha(i):null;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:"#6E56CF"},align:"right",children:d?u.jsxs(u.Fragment,{children:[d.value,u.jsx(Za,{children:d.unit})]}):"-"}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,style:{color:"#BAA7FF"},align:"right",children:c?u.jsxs(u.Fragment,{children:[c.value,u.jsx(Za,{children:c.unit})]}):"-"}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,style:{color:"#6E56CF"},align:"right",children:f?u.jsxs(u.Fragment,{children:[f.value,u.jsx(Za,{children:f.unit})]}):"-"}),u.jsxs("svg",{height:"13",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center",width:"100%"},children:[u.jsx("rect",{height:"10%",y:"45%",width:"100%",opacity:.6,fill:"#313131"}),u.jsx("rect",{height:"80%",y:"10%",x:KP(s),width:VS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:KP(l),width:VS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:KP(a),width:VS,fill:"#BAA7FF"})]})]})}function axt(){return u.jsxs(ZP,{title:"Compute",flexGrow:"2",children:[u.jsx(nxt,{}),u.jsx(txt,{}),u.jsx(rxt,{}),u.jsx(ixt,{}),u.jsx(oxt,{})]})}function Ls(e,t=Bo,n){if(!e)return"0";const r=Number(e)/dd;return r<1?r.toFixed(t):z$(r,n??{useSuffix:!0,significantDigits:4,trailingZeroes:!1,decimalsOnZero:!1})}const JP=1e8;function sxt(){const e=J(Cn),t=pl(e),n=m.useMemo(()=>{var f;const a=(f=t==null?void 0:t.response)==null?void 0:f.transactions;if(!a)return;const{tips:s,fees:l}=a.txn_transaction_fee.reduce((p,v,x)=>(p.fees+=Number(VN(a,x)),p.tips+=Number(HN(a,x)),p),{tips:0,fees:0}),c=s+l,d=s*.06;return{tips:s,fees:l,maxValue:c>JP?c+d:JP}},[t]);if(!n)return;const{tips:r,fees:i,maxValue:o}=n;return u.jsx(Oi,{title:"Fee Breakdown",children:u.jsxs(qr,{columns:"repeat(3, auto)",gapX:xl,gapY:Nd,children:[u.jsx(lxt,{label:"Tips",value:r,total:o,color:qf}),u.jsx(uxt,{label:"Fees",value:i,total:o,color:kg}),u.jsx(cxt,{tips:r,fees:i})]})})}function lxt({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0,o=t*.06,a=n>0?o/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:r},align:"right",children:`${Ls(t??0n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`}),u.jsxs(W,{children:[u.jsxs("svg",{height:"8",width:`${i+a}%`,fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${100/106*100}%`,opacity:.6,fill:r}),u.jsx("rect",{height:"8",x:`${100/106*100}%`,width:`${6/106*100}%`,opacity:.6,fill:"#FFC53D"})]}),u.jsx(Z,{className:at.label,style:{marginLeft:xl},children:"Commission\xA0"}),u.jsxs(Z,{className:at.value,style:{color:"#FFC53D"},children:["-",`${Ls(o??0n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`]})]})]})}function uxt({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:r},align:"right",children:`${Ls(t??0n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:r})})]})}function cxt({tips:e,fees:t}){const n=e+t,r=Math.max(JP,n),i=n/r*100,o=e/r*100,a=t/r*100;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:"Income"}),u.jsx(Z,{className:at.value,style:{color:wp},align:"right",children:`${Ls(n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`}),u.jsxs("svg",{height:"10",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"100%",width:`${o}%`,opacity:.6,fill:qf}),u.jsx("rect",{height:"100%",x:`${o}%`,width:`${a}%`,opacity:.6,fill:kg}),u.jsx("rect",{height:"100%",x:`${o}%`,width:1,opacity:.6,fill:"black"}),u.jsx("rect",{height:"9",width:`${i}%`,x:.5,y:.5,opacity:1,stroke:wp,strokeWidth:1})]})]})}const dxt="_container_1w2fb_1",fxt="_label_1w2fb_5",hxt="_clickable_1w2fb_12",QP={container:dxt,label:fxt,clickable:hxt},xpe=["#003362","#113B29","#3F2700","#202248","#33255B"],eO=5e3;function HS({data:e,showPct:t,sort:n,onItemClick:r}){const i=e.reduce((s,{value:l})=>s+l,0);let o=n?e.toSorted((s,l)=>l.value-s.value):e,a=0;if(o.length>eO){for(let s=eO;su.jsx(W,{width:`${l}px`,height:`${s}px`,children:o.map(({value:c,label:d},f)=>{const p=xpe[f%xpe.length],v=c/i,x=v*100,y=x>1?`${Math.round(x)}%`:`${x.toFixed(2)}%`,b=v*l>30;return u.jsx(ci,{content:u.jsxs(u.Fragment,{children:[u.jsx(Z,{weight:"bold",children:d}),u.jsx("br",{}),u.jsx(Z,{children:`Income: ${Ls(c,Fte)} SOL (${y})`})]}),side:"bottom",disableHoverableContent:!0,children:r?u.jsx(W,{asChild:!0,className:QP.clickable,minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:u.jsx("button",{"aria-label":`Filter by ${d} (${y})`,onClick:()=>r({label:d,value:c}),children:b&&u.jsx(_pe,{label:d,showPct:t,formattedPct:y})})}):u.jsx(W,{minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:b&&u.jsx(_pe,{label:d,showPct:t,formattedPct:y})})},d)})})})})}function _pe({label:e,showPct:t,formattedPct:n}){return u.jsxs(Z,{mx:"2",className:QP.label,truncate:!0,children:[e,t&&` ${n}`]})}function pxt({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_signature.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([m_]),t(m_,{mode:Mn.TxnSignature,text:o})},[n,t]);return u.jsx(Oi,{title:"Income Distribution by Txn",children:u.jsx(HS,{data:r,sort:!0,onItemClick:i})})}function mxt({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_source_ipv4.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([m_]),t(m_,{mode:Mn.Ip,text:o})},[n,t]);return u.jsx(Oi,{title:"Income Distribution by IP Address",children:u.jsx(HS,{data:r,sort:!0,onItemClick:i})})}const tO="Bundle";function gxt({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=Ee(Rs),i=m.useMemo(()=>{const a=e.txn_from_bundle.map((s,l)=>({value:Number(md(e,l)),label:s?tO:"Other"}));return Object.values(rt.groupBy(a,({label:s})=>s)).map(s=>({label:s[0].label,value:rt.sum(s.map(({value:l})=>l))})).sort((s,l)=>s.label===tO?-1:1)},[e]),o=m.useCallback(({label:a})=>{n([OP]),t(OP,a===tO?"Yes":"No"),r(s=>{s.setScale(Vt,{min:s.data[0][0],max:s.data[0][s.data[0].length-1]})})},[n,t,r]);return u.jsx(Oi,{title:"Income Distribution by Bundle",children:u.jsx(HS,{data:i,showPct:!0,onItemClick:o})})}function vxt(e,t=[1,10]){const n=e.length;if(n===0)return;e=e.toSorted((c,d)=>d-c);const r=new Array(n+1);r[0]=0;for(let c=0;crt.clamp(c,0,100)))).sort((c,d)=>c-d),a=c=>c<=0?0:c>=100?n:rt.clamp(Math.ceil(c/100*n),0,n),s={},l=[0,...o,100];for(let c=1;cNumber(md(e,i)),[]),n=vxt(t);if(n!==void 0)return Object.entries(n).map(([r,i])=>({value:i,label:r}))}function bxt({transactions:e}){const t=m.useMemo(()=>yxt(e),[e]);if(t)return u.jsx(Oi,{title:"Income Distribution by Percent Txns",children:u.jsx(HS,{data:t})})}function xxt(){var n;const e=J(Cn),t=(n=pl(e).response)==null?void 0:n.transactions;if(t)return u.jsxs(u.Fragment,{children:[u.jsx(bxt,{transactions:t}),u.jsx(gxt,{transactions:t}),u.jsx(pxt,{transactions:t}),u.jsx(mxt,{transactions:t})]})}function _xt(e,t){const n=parseInt(e.substring(1,3),16),r=parseInt(e.substring(3,5),16),i=parseInt(e.substring(5,7),16);return`rgba(${n}, ${r}, ${i}, ${t})`}const wxt=(ype+2)**2;function kxt(e,t,n,r){function i(a){const{left:s,top:l}=a.cursor;if(s==null||l==null)return null;const c=a.data[0],d=a.data[1];let f=null,p=1/0;for(let v=0;v({width:0,height:0,padding:[10,15,0,15],scales:{[ZS]:{time:!1,distr:n?3:void 0},[Td]:{time:!1,distr:3}},axes:[{scale:ZS,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{show:!1},values:(f,p)=>p.map(v=>{if(r){const{scaledToX:x,negMin:y,posMax:b}=r;return Math.round(x(v,y,b)).toLocaleString()}return v&&Rie.format(v)}),size:20,gap:0,font:"8px Inter Tight"},{scale:Td,stroke:sr,grid:{show:!1},border:{show:!0,width:1/devicePixelRatio,stroke:sr},show:!1}],series:[{scale:ZS},{scale:Td,stroke:void 0,points:{show:!0,size:ype*2,fill:_xt(wp,.3),space:0}}],legend:{show:!1},hooks:{draw:[f=>{var p;f.ctx.save(),f.ctx.fillStyle=sr,f.ctx.font="18px Inter Tight",f.ctx.textAlign="left",f.ctx.fillText(`${(((p=f.scales[Td])==null?void 0:p.max)??0)/dd} SOL`,0,0),f.ctx.restore()}]},plugins:[kxt(s,ZS,Td,c)]}),[s,n,r]);return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:f,width:p})=>(d.width=p,d.height=f,u.jsx(Pp,{id:t,options:d,data:e}))})}),u.jsx(Sxt,{elId:s,data:l,xLabel:i,xColor:o,tooltipFormatX:a})]})}function Cxt(e){return e==null?void 0:e.txn_compute_units_consumed.map((t,n)=>({cu:t,i:n})).sort((t,n)=>t.cu-n.cu).reduce((t,{cu:n,i:r})=>{const i=Number(md(e,r));return!i||!n||(t[0].push(n),t[1].push(i)),t},[[],[]])}function jxt(e,t,n){return e<=0?.5*(e-t)/-t:.5+.5*(e/n)}function kpe(e,t,n){return e<=.5?t+e/.5*-t:(e-.5)/.5*n}function Txt(e){if(!e)return;const t=e.txn_arrival_timestamps_nanos.map((i,o)=>({tsNanos:i,i:o})).sort((i,o)=>Number(i.tsNanos-o.tsNanos)).reduce((i,{tsNanos:o,i:a})=>{const s=Number(o-e.start_timestamp_nanos)/1e6,l=Number(md(e,a));return l&&(i[0].push(s),i[1].push(l??0)),i},[[],[]]),n=t[0][0],r=t[0][t[0].length-1];return t[0]=t[0].map(i=>jxt(i,n,r)),{min:n,max:r,chartData:t}}function Ixt(){var a,s;const e=J(Cn),t=(a=pl(e).response)==null?void 0:a.transactions,n=pl(e),r=m.useMemo(()=>Cxt(t),[t]),i=m.useMemo(()=>Txt(t),[t]),o=m.useMemo(()=>{if(i)return{scaledToX:kpe,negMin:i.min,posMax:i.max}},[i]);if(!(!((s=n.response)!=null&&s.transactions)||!r||!i))return u.jsxs(W,{flexGrow:"1",minWidth:"300px",minHeight:"150px",gap:Qbt,children:[u.jsx(Oi,{title:"Compute Units vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"cuIncomeScatterChart",data:r,xLogScale:!0,xLabel:"CU",xColor:pd,formatX:l=>Rie.format(l)})}),u.jsx(Oi,{title:"Arrival Time vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"arrivalIncomeScatterChart",data:i.chartData,xScaleOptions:o,xLabel:"Arrival",formatX:l=>`${Math.round(kpe(l,i.min,i.max)).toLocaleString()}ms`})})]})}function Ext(){return u.jsxs(ZP,{title:"Fees",flexGrow:"2",children:[u.jsx(sxt,{}),u.jsx(xxt,{}),u.jsx(Ixt,{})]})}function Nxt(e){function t(n,r,i){return e(i),!0}return i_({elId:Wfe,showOnCursor:t})}const M1=new Map,Spe=e=>{const t=M1.get(e);if(!t||t.pendingSync!==null)return;const n=Math.max(0,...t.naturalSizes.values());n!==t.maxSize&&(t.maxSize=n,t.pendingSync=requestAnimationFrame(()=>{for(const r of t.charts.values())r.redraw(!1,!0);t.pendingSync=null}))};function $xt(e,t,n=1){return{opts:(r,i)=>{var s;const o=(s=i.axes)==null?void 0:s[n];if(!o)return;const a=o.size;o.size=(l,c,d,f)=>{const p=typeof a=="function"?a(l,c,d,f):a??Jae(l.axes[d]),v=M1.get(t);return v?(v.naturalSizes.set(e,p),Math.max(p,v.maxSize)):p}},hooks:{ready:r=>{const i=M1.get(t);i?i.charts.set(e,r):M1.set(t,{charts:new Map([[e,r]]),naturalSizes:new Map,maxSize:0,pendingSync:null})},destroy:r=>{const i=M1.get(t);i&&i.charts.get(e)===r&&(i.charts.delete(e),i.naturalSizes.delete(e),i.charts.size===0?(i.pendingSync!==null&&cancelAnimationFrame(i.pendingSync),M1.delete(t)):Spe(t))},draw:r=>Spe(t)}}}function Mxt({data:e,formatBucketRange:t}){return u.jsx(o_,{elId:Wfe,children:e&&u.jsxs(qr,{columns:"auto auto",gapX:"2",children:[u.jsx($d,{label:"Duration",value:t(e.bucketIdx)}),u.jsx($d,{label:"Avg CUs",value:e.cuYVal?Math.round(e.cuYVal).toLocaleString():"0",color:pd}),u.jsx($d,{label:"Count",value:e.countYVal?e.countYVal.toLocaleString():"0"})]})})}const qS=20,Cpe=Array.from({length:qS},(e,t)=>t),Rxt=(e,t)=>Math.trunc(e/t*qS),nO=(e,t)=>e/qS*t,GS="8px Inter Tight",Lxt="#3C2E69",rO=1,Pxt=((Yme=(hC=jn.paths)==null?void 0:hC.bars)==null?void 0:Yme.call(hC,{size:[.8]}))??(()=>({stroke:new Path2D,fill:new Path2D})),jpe={cuData:[[],[]],countData:[[],[]],maxDuration:0},iO=(e,t)=>{const{value:n,unit:r}=Ha(e,!1,t);return`${n} ${r}`};function Oxt(){var c;const e=J(Cn),t=(c=pl(e).response)==null?void 0:c.transactions,[n,r]=m.useState(),{cuData:i,countData:o,maxDuration:a}=m.useMemo(()=>{if(!t)return jpe;const d=t.txn_landed.map((y,b)=>({duration:Number(t.txn_mb_end_timestamps_nanos[b]-t.txn_mb_start_timestamps_nanos[b]),cu:t.txn_compute_units_consumed[b]})).filter(({duration:y})=>y>0);if(d.length===0)return jpe;const f=Eb(d.map(({duration:y})=>y))+1,p=Array.from({length:qS},()=>({count:0,cus:0}));for(const{duration:y,cu:b}of d){const w=Rxt(y,f);p[w].count++,p[w].cus+=b}const v=p.map(({count:y})=>y),x=p.map(({count:y,cus:b})=>y?b/y:0);return{countData:[Cpe,v],cuData:[Cpe,x],maxDuration:f}},[t]),s=m.useCallback(d=>`${iO(nO(d,a),2)} - ${iO(nO(d+1,a),2)}`,[a]),l=m.useMemo(()=>n!==void 0?{bucketIdx:n,cuYVal:i[rO][n],countYVal:o[rO][n]}:void 0,[o,i,n]);if(t)return u.jsxs(u.Fragment,{children:[u.jsx(Oi,{title:"CUs vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:i,id:"txnExecutionDurationCu",maxDuration:a,setTooltipDataIdx:r})}),u.jsx(Oi,{title:"Transaction Count vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:o,id:"txnExecutionDurationCount",log:!0,maxDuration:a,setTooltipDataIdx:r})}),u.jsx(Mxt,{data:l,formatBucketRange:s})]})}function Tpe({data:e,log:t,id:n,maxDuration:r,setTooltipDataIdx:i}){const o=m.useMemo(()=>t?[e[0],e[rO].map(l=>Math.log((l??0)+1))]:e,[e,t]),a=Math.max(0,e[0].length-1),s=m.useMemo(()=>({width:0,height:0,cursor:{sync:{key:Wgt}},scales:{duration:{time:!1},y:{auto:!0,range:(l,c,d)=>t?[0,Math.max(d,Math.log(3))]:[0,Math.max(d,2)]}},series:[{scale:"duration"},{label:"Count",points:{show:!1},fill:Lxt,paths:Pxt}],axes:[{scale:"duration",splits:[0,a],values:(l,c)=>c.map(d=>iO(nO(d,r))),label:"Txn Execution Duration",stroke:sr,grid:{show:!1},size:10,gap:0,font:GS,labelFont:GS,labelGap:0,labelSize:10},{stroke:sr,splits:(l,c,d,f)=>[d,(d+f)/2,f],values:(l,c)=>(t?c.map(d=>Math.round(Math.exp(d)-1)):c.map(Math.round)).map(d=>d.toLocaleString()),gap:0,font:GS,size(l,c,d,f){var b,w;const p=l.axes[d];if(f>1)return Jae(p);const v=(((b=p.ticks)==null?void 0:b.size)??0)+(p.gap??0),x=(c??[]).reduce((_,S)=>S.length>_.length?S:_,"");if(x==="")return Math.ceil(v);l.ctx.font=((w=p.font)==null?void 0:w[0])??GS;const y=l.ctx.measureText(x).width/devicePixelRatio;return Math.ceil(v+y)}}],legend:{show:!1},plugins:[Nxt(i),dP({minRange:0}),$xt(n,"txnExecutionDurationYAxis")]}),[a,i,n,t,r]);return u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:l,width:c})=>(s.width=c,s.height=l,u.jsx(Pp,{id:n,options:s,data:o}))})})}function zxt(){var a;const e=J(Eg),t=J(Cn),n=J(ao),r=(a=tc(t).response)==null?void 0:a.scheduler_stats,i=m.useMemo(()=>{if(t===void 0||!n)return;const s=_i(t),l=n.indexOf(s)-1;if(!(l<0))return n[l]+$n-1},[n,t]);if(t===void 0)return;const o=i?fn.fromMillis(e*(t-i)).rescale():void 0;return u.jsx(Oi,{title:"Scheduler",children:u.jsxs(W,{direction:"column",gap:Nd,children:[u.jsxs(W,{gap:xl,children:[u.jsx(Z,{className:at.label,children:"Time Since Last Leader Group"}),u.jsx(Z,{className:at.value,children:kp(o)})]}),Vi&&u.jsxs(W,{gap:xl,children:[u.jsx(Z,{className:at.label,children:"End slot reason"}),u.jsx(Z,{className:at.value,children:r==null?void 0:r.end_slot_reason})]})]})})}function Dxt(){const e=J(Nb),{queryIdleData:t}=HM();return u.jsx(Oi,{title:"CPU Utilization",children:u.jsxs(W,{direction:"column",gap:"5px",children:[u.jsx(Wa,{header:"pack",tileCount:e.pack,queryIdlePerTile:t==null?void 0:t.pack,statLabel:"Full",metricType:"pack",isDark:!0,isNarrow:!0}),u.jsx(Wa,{header:To.bank,tileCount:e[To.bank],queryIdlePerTile:t==null?void 0:t[To.bank],statLabel:"TPS",metricType:"bank",isDark:!0,isNarrow:!0})]})})}function Axt(e){function t(n,r,i){return e(i),!0}return i_({elId:"pack-buffer-chart-tooltip",showOnCursor:t})}function Fxt({data:e}){return u.jsx(o_,{elId:"pack-buffer-chart-tooltip",children:e&&u.jsxs(qr,{columns:"auto auto",gapX:"2",children:[u.jsx($d,{label:"Regular",value:e.regular.toLocaleString(),color:Hf}),u.jsx($d,{label:"Votes",value:e.votes.toLocaleString(),color:hd}),u.jsx($d,{label:"Conflicting",value:e.conflicting.toLocaleString(),color:gk}),u.jsx($d,{label:"Bundles",value:e.bundles.toLocaleString(),color:qf})]})})}const oO="packX",R1="packTxnsY";function Uxt(){var l;const e=J(Cn),t=tc(e).response,[n,r]=m.useState(),i=t==null?void 0:t.scheduler_counts,o=m.useMemo(()=>{var f;const c=(f=t==null?void 0:t.transactions)==null?void 0:f.start_timestamp_nanos;if(!i||!c)return;const d=[[],[],[],[],[]];for(let p=0;p({width:0,height:0,padding:[0,0,0,0],drawOrder:["axes","series"],cursor:{},scales:{[oO]:{time:!1},[R1]:{}},axes:[{scale:oO,border:{show:!0,width:1/devicePixelRatio},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(c,d)=>d.map(f=>f/1e6+"ms"),space:100,size:20,font:"8px Inter Tight"},{scale:R1,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},space:50,font:"8px Inter Tight",size(c,d,f,p){var b,w;const v=c.axes[f];if(p>1)return v._size;let x=((b=v.ticks)==null?void 0:b.size)??0+(v.gap??0);x+=5;const y=(d??[]).reduce((_,S)=>S.length>_.length?S:_,"");return y!==""&&(c.ctx.font=((w=v.font)==null?void 0:w[0])??"Inter Tight",x+=c.ctx.measureText(y).width/devicePixelRatio),Math.ceil(x)}}],series:[{scale:oO},{label:"Regular",stroke:Hf,points:{show:!1},width:2/devicePixelRatio,scale:R1},{label:"Votes",stroke:hd,points:{show:!1},width:2/devicePixelRatio,scale:R1},{label:"Conflicting",stroke:gk,points:{show:!1},width:2/devicePixelRatio,scale:R1},{label:"Bundles",stroke:qf,points:{show:!1},width:2/devicePixelRatio,scale:R1}],legend:{show:!1},plugins:[rP(),uP({factor:.75}),Axt(r),mP()]}),[]);if(!o)return;const s=n!==void 0?i==null?void 0:i[n]:void 0;return u.jsxs(Oi,{title:"Pack Txns Buffer Utilization",flexGrow:"1",minWidth:"150px",minHeight:"150px",children:[u.jsx(Mt,{height:"100%",children:u.jsx($s,{children:({height:c,width:d})=>(a.width=d,a.height=c,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:"packBufferChart",options:a,data:o})}))})}),u.jsx(Fxt,{data:s})]})}function Bxt(){var n;const e=J(Cn),t=(n=Is(e).publish)==null?void 0:n.duration_nanos;return u.jsx(Oi,{title:"Slot Duration",children:u.jsxs(W,{gap:xl,children:[u.jsx(Z,{className:at.label,children:"Actual"}),t!=null&&u.jsx(Z,{className:at.value,children:`${(t/1e6).toFixed(2)}ms`})]})})}const Wxt=["success","fail_cu_limit","fail_fast_path","fail_byte_limit","fail_alloc_limit","fail_write_cost","fail_slow_path","fail_defer_skip"];function Vxt(){var l,c,d;const e=J(Cn),t=(l=tc(e).response)==null?void 0:l.scheduler_stats;if(!t)return;const{slot_schedule_counts:n,end_slot_schedule_counts:r,pending_smallest_bytes:i,pending_smallest_cost:o,pending_vote_smallest_bytes:a,pending_vote_smallest_cost:s}=t;return u.jsxs(u.Fragment,{children:[u.jsx(Oi,{title:"Txn Schedule Outcomes",children:u.jsxs(qr,{columns:"repeat(3, 1fr)",gapX:xl,gapY:Nd,children:[u.jsx(Z,{className:at.label,children:"Outcome"}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"Txn Count"}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"Txn Count (End)"}),n.map((f,p)=>{const v=Wxt[p];return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:v}),u.jsx(Z,{className:at.value,align:"right",children:f.toLocaleString()}),u.jsx(Z,{className:at.value,align:"right",children:r[p].toLocaleString()})]},v)})]})}),u.jsx(Oi,{title:"Smallest Pending Txn",children:u.jsxs(qr,{columns:"repeat(3, 1fr)",gapX:xl,gapY:Nd,children:[u.jsx("div",{}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"CU Cost"}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"Size"}),u.jsx(Z,{className:at.label,children:"Non-vote"}),u.jsx(Z,{className:at.value,align:"right",children:(o==null?void 0:o.toLocaleString())??0}),u.jsx(Z,{className:at.value,align:"right",children:i!=null?(c=Sp(i))==null?void 0:c.toString():0}),u.jsx(Z,{className:at.label,children:"Vote"}),u.jsx(Z,{className:at.value,align:"right",children:(s==null?void 0:s.toLocaleString())??0}),u.jsx(Z,{className:at.value,align:"right",children:a!=null?(d=Sp(a))==null?void 0:d.toString():0})]})})]})}function Hxt(){return u.jsx(ZP,{title:"Performance",flexGrow:"3",children:u.jsxs(W,{direction:{sm:"row",initial:"column"},gapX:vpe,gapY:BS,flexGrow:"1",children:[u.jsxs(W,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(zxt,{}),u.jsx(Vxt,{}),u.jsx(Uxt,{})]}),u.jsxs(W,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(Bxt,{}),u.jsx(Oxt,{}),u.jsx(Dxt,{})]})]})})}const Zxt="_container_id19r_1",qxt="_label_id19r_6",Gxt="_value_id19r_10",Yxt="_popover-trigger_id19r_15",Kxt="_popover-underline-overlay_id19r_23",Xxt="_popover-text-underline_id19r_27",_l={container:Zxt,label:qxt,value:Gxt,popoverTrigger:Yxt,popoverUnderlineOverlay:Kxt,popoverTextUnderline:Xxt},Jxt=Intl.DateTimeFormat().resolvedOptions().timeZone;function aO({nanoTs:e,lines:t,textClassName:n,triggerClassName:r}){const i=m.useMemo(()=>tre(e),[e]),o=tpe(i),a=m.useMemo(()=>{const s=kk(e,{timezone:"local",showTimezoneName:!1}),l=kk(e,{timezone:"utc",showTimezoneName:!1});return{local:s.inNanos,utc:l.inNanos,ts:e.toString()}},[e]);return u.jsx(zg,{content:u.jsxs(qr,{columns:"max-content max-content",gapX:"10px",gapY:"5px",rows:"4",className:_l.container,children:[u.jsx(Z,{className:_l.label,children:Jxt}),u.jsx(Za,{className:_l.value,children:a.local}),u.jsx(Z,{className:_l.label,children:"UTC"}),u.jsx(Za,{className:_l.value,children:a.utc}),u.jsx(Z,{className:_l.label,children:"Relative"}),u.jsx(Za,{className:_l.value,children:o}),u.jsx(Z,{className:_l.label,children:"Timestamp"}),u.jsx(Za,{className:_l.value,children:a.ts})]}),align:"start",children:u.jsx(hs,{variant:"ghost",className:Te(_l.popoverTrigger,r),children:u.jsxs(W,{minWidth:"0",position:"relative",children:[u.jsx(W,{direction:"column",minWidth:"0",width:"100%",children:t.map((s,l)=>u.jsx(Z,{truncate:!0,className:n,children:s},l))}),u.jsx(W,{direction:"column","aria-hidden":"true",className:_l.popoverUnderlineOverlay,children:t.map((s,l)=>u.jsx(Z,{truncate:!0,className:Te(n,_l.popoverTextUnderline),children:s},l))})]})})})}const gh="5px";function Qxt(){var c,d,f,p;const e=J(Cn),{countryCode:t,countryFlag:n,cityName:r}=ma(e??0),i=J(fi),o=Is(e).publish,a=Hn("(min-width: 1420px)"),s=Hn("(min-width: 600px)"),l=m.useMemo(()=>a?"minmax(300px, max-content) minmax(228px, max-content) minmax(200px, max-content) minmax(150px, max-content) minmax(160px, max-content)":s?"minmax(0px, max-content) 1fr":"1",[a,s]);return e===void 0?null:u.jsxs(qr,{className:at.grid,align:a?"center":"start",justify:"between",columns:l,gapX:a?"12px":"30px",gapY:gh,children:[u.jsx(e_t,{slot:e,isLgScreen:a}),u.jsxs(W,{direction:"column",gap:gh,children:[u.jsx(vh,{label:"City",value:r&&t?`${r}, ${t}`:"Unknown",icon:n,vertical:!a}),u.jsx(vh,{label:"Epoch",value:i==null?void 0:i.epoch,vertical:!a})]}),a?u.jsxs(W,{direction:"column",gapX:gh,gapY:gh,children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos}),u.jsx(Npe,{slot:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos,vertical:!0}),u.jsx(Npe,{slot:e,vertical:!0})]}),u.jsxs(W,{direction:"column",gap:gh,children:[u.jsx(vh,{label:"Votes",value:(c=o==null?void 0:o.success_vote_transaction_cnt)==null?void 0:c.toLocaleString()}),u.jsx(vh,{label:"Vote Failures",value:(d=o==null?void 0:o.failed_vote_transaction_cnt)==null?void 0:d.toLocaleString()})]}),u.jsxs(W,{direction:"column",gap:gh,children:[u.jsx(vh,{label:"Non-votes",value:(f=o==null?void 0:o.success_nonvote_transaction_cnt)==null?void 0:f.toLocaleString()}),u.jsx(vh,{label:"Non-vote Failures",value:(p=o==null?void 0:o.failed_nonvote_transaction_cnt)==null?void 0:p.toLocaleString()})]})]})}function vh({label:e,value:t,popoverDropdown:n,icon:r,vertical:i=!1,allowCopy:o=!1}){return u.jsxs(W,{gapX:"2",direction:i?"column":"row",children:[u.jsx(Za,{className:at.label,children:e}),n===void 0?u.jsx(Dg,{className:at.copyButton,size:14,value:o?t==null?void 0:t.toString():void 0,hideIconUntilHover:!0,children:u.jsxs(Za,{truncate:!0,className:at.value,children:[t,r&&` ${r}`]})}):n]})}function e_t({slot:e,isLgScreen:t}){var a,s;const{peer:n,isLeader:r,name:i,pubkey:o}=ma(e??0);return t?u.jsxs(W,{gapX:"10px",align:"center",children:[u.jsx(ks,{url:(a=n==null?void 0:n.info)==null?void 0:a.icon_url,size:42,isYou:r}),u.jsxs(W,{direction:"column",gapY:"1px",minWidth:"0",children:[u.jsx(qk,{content:i,children:u.jsx(Z,{truncate:!0,className:Te(at.name,at.lg),children:i})}),u.jsx(Ipe,{slot:e,pubkey:o})]})]}):u.jsxs(W,{direction:"column",children:[u.jsxs(W,{gapX:gh,align:"center",children:[u.jsx(ks,{url:(s=n==null?void 0:n.info)==null?void 0:s.icon_url,size:15,isYou:r}),u.jsx(qk,{content:i,children:u.jsx(Z,{truncate:!0,className:at.name,children:i})})]}),u.jsx(Ipe,{slot:e,pubkey:o})]})}function Ipe({slot:e,pubkey:t}){return u.jsxs(W,{gapX:gh,align:"center",children:[u.jsx(Dg,{className:at.copyButton,size:14,value:t,hideIconUntilHover:!0,children:u.jsx(Za,{truncate:!0,className:at.value,children:t})}),u.jsx(Px,{slot:e,size:"large"})]})}function Epe({vertical:e=!1,slotCompletedTimeNanos:t}){const n=m.useMemo(()=>{if(t!=null)return kk(t)},[t]);return u.jsx(vh,{label:"Slot Time",popoverDropdown:t&&n?u.jsx(aO,{nanoTs:t,lines:[n.inMillis],textClassName:Te("mono-text",at.value),triggerClassName:at.timePopover}):void 0,vertical:e})}function Npe({slot:e,vertical:t=!1}){var r;const n=(r=tc(e).response)==null?void 0:r.scheduler_stats;return u.jsx(vh,{label:"Block Hash",value:xi?"Not available for Frankendancer":n==null?void 0:n.block_hash,vertical:t,allowCopy:!xi&&(n==null?void 0:n.block_hash)!=null})}function t_t(){var t;const e=J(Cn);return(t=tc(e).response)!=null&&t.limits?u.jsxs(u.Fragment,{children:[u.jsx(Qxt,{}),u.jsx(so,{children:u.jsxs(W,{gap:vpe,wrap:"wrap",flexBasis:"0",children:[u.jsx(axt,{}),u.jsx(Ext,{}),u.jsx(Hxt,{})]})})]}):u.jsx(n_t,{})}function n_t(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"550px",justifyContent:"center",alignItems:"center"},children:u.jsx(Z,{children:"Loading Slot Statistics..."})})}function r_t({children:e}){const t=m.useRef(new Map),n=m.useRef(new Map),r=m.useMemo(()=>({registerControl:(i,o,a)=>(t.current.set(i,o),n.current.set(i,a),()=>{t.current.delete(i),n.current.delete(i)}),triggerControl:(i,o)=>{var a;(a=t.current.get(i))==null||a(o)},resetControl:i=>{var o;(o=n.current.get(i))==null||o()},resetAllControls:i=>{for(const[o,a]of n.current)i!=null&&i.includes(o)||a()}}),[]);return u.jsx(N1.Provider,{value:r,children:e})}function i_t(){const e=J(Cn),[t,n]=m.useState(!1),r=J(gd.state)===Kf.NotReady;return m.useEffect(()=>{if(r&&!t){const i=setTimeout(()=>n(!0),2500);return()=>clearTimeout(i)}},[r,n,t]),r&&!t?null:e===void 0?u.jsx(lbt,{}):u.jsx(o_t,{})}function o_t(){if(J(Cn)!==void 0)return u.jsxs(W,{direction:"column",gap:"2",flexGrow:"1",children:[u.jsx(Dbt,{}),u.jsxs(r_t,{children:[u.jsx(t_t,{}),u.jsx(Ufe,{}),u.jsx(j1t,{}),u.jsx(Gyt,{})]})]})}const a_t=ca(),s_t=kt({slot:oe().optional().catch(void 0)}),$pe=lp("/slotDetails")({validateSearch:s_t,component:i_t,beforeLoad:({search:{slot:e}})=>a_t.set(gd.slot,e)}),l_t="_card_ybszl_1",u_t="_name-text_ybszl_8",c_t="_pubkey-text_ybszl_14",d_t="_narrow-screen_ybszl_21",f_t="_two-away_ybszl_27",h_t="_one-away_ybszl_33",p_t="_time-till_ybszl_38",mc={card:l_t,nameText:u_t,pubkeyText:c_t,narrowScreen:d_t,twoAway:f_t,oneAway:h_t,timeTill:p_t},m_t="_my-slots_kxi8u_1",g_t="_scroll_kxi8u_7",YS={mySlots:m_t,scroll:g_t};var Pm=(e=>(e.Past="Past",e.Now="Now",e.Upcoming="Upcoming",e))(Pm||{});function v_t(e,t){return et?Pm.Upcoming:Pm.Now}function y_t({currentLeaderSlot:e,searchLeaderSlots:t,slotOverride:n,curCardCount:r=0,cardCount:i=1}){const o=t.toReversed();if(n===void 0){if(o.length<=i)return o[r];{const a=o.findIndex(l=>lMath.abs(c-n)),s=Math.min(...a),l=Math.max(a.indexOf(s)-3,0);return o[r+l]}}function b_t({cardCount:e,currentLeaderSlot:t,epoch:n,searchLeaderSlots:r,slotOverride:i,topSlot:o}){const a=[],s=[],l=[];if(t===void 0)return{upcoming:a,now:s,past:l};for(let c=0;cn.end_slot))continue;const f=v_t(d,t);f===Pm.Upcoming&&a.push(d),f===Pm.Now&&s.push(d),f===Pm.Past&&l.push(d)}return{upcoming:a,now:s,past:l}}function Mpe(e){const{year:t,...n}=jt.DATETIME_MED_WITH_SECONDS;return e.toLocaleString({...n,timeZoneName:"short"})}function x_t({slot:e}){var c,d;const t=J(eu),{pubkey:n,peer:r,isLeader:i,name:o}=ma(e),a=t!==void 0&&e===t+$n,s=t!==void 0&&e===t+$n*2,l=Hn("(min-width: 1250px)");return u.jsx("div",{className:Te(mc.card,{[mc.oneAway]:a,[mc.twoAway]:s,[YS.mySlots]:i}),children:l?u.jsx(__t,{iconUrl:(c=r==null?void 0:r.info)==null?void 0:c.icon_url,isLeader:i,name:o,pubkey:n,slot:e}):u.jsx(w_t,{iconUrl:(d=r==null?void 0:r.info)==null?void 0:d.icon_url,isLeader:i,name:o,pubkey:n,slot:e})})}function __t({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(W,{gap:"2",align:"center",children:[u.jsxs(W,{gap:"2",minWidth:"300px",width:"505px",align:"center",pr:"20px",children:[u.jsx(ks,{url:e,size:24,isYou:t}),u.jsx(Z,{className:mc.nameText,children:n})]}),u.jsx(Z,{className:mc.pubkeyText,children:r}),u.jsx(W,{justify:"center",minWidth:"190px",children:u.jsx(Z,{children:i})}),u.jsx(Rpe,{slot:i})]})}function w_t({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(W,{direction:"column",children:[u.jsxs(W,{gap:"2",align:"center",children:[u.jsx(ks,{url:e,size:16,isYou:t}),u.jsx(Z,{className:mc.nameText,children:n}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(Z,{className:Te(mc.pubkeyText,mc.narrowScreen),children:r})]}),u.jsxs(W,{justify:"between",children:[u.jsx(Z,{children:i}),u.jsx(Rpe,{slot:i,isNarrowScreen:!0})]})]})}function Rpe({slot:e,isNarrowScreen:t}){const n=J(oo),r=J(Eg),i=n?fn.fromMillis(r*(e-n)).rescale():void 0,[o,a]=m.useReducer(Lpe,i,s=>Lpe(void 0,s));if(rx(()=>a(i),1e3),o!==void 0)return u.jsx(W,{className:Te(mc.timeTill,{[mc.narrowScreen]:t}),children:u.jsx(aO,{nanoTs:o.predictedTsNanos,lines:[`${o.dtText} (${o.timeTillText})`]})})}function Lpe(e,t){if(t!==void 0)return{timeTillText:kp(t),dtText:S_t(t),predictedTsNanos:k_t(t)}}function k_t(e){const t=Yf.plus(e);return BigInt(Math.trunc(t.toSeconds()))*1000000000n}function S_t(e){const t=Yf.plus(e);return Mpe(t)}const C_t="_card_zlaiw_1",j_t="_late-vote_zlaiw_7",T_t="_skipped_zlaiw_12",sO={card:C_t,lateVote:j_t,skipped:T_t},I_t="_grid_1feao_1",E_t="_firedancer-grid_1feao_16",N_t="_header-text_1feao_24",$_t="_vote-latency-header_1feao_30",M_t="_votes-header_1feao_33",R_t="_non-votes-header_1feao_36",L_t="_fees-header_1feao_39",P_t="_tips-header_1feao_42",O_t="_compute-units-header_1feao_45",z_t="_compute-units-pct_1feao_50",D_t="_row-text_1feao_55",A_t="_active_1feao_62",F_t="_slot-text_1feao_68",Xr={grid:I_t,firedancerGrid:E_t,headerText:N_t,voteLatencyHeader:$_t,votesHeader:M_t,nonVotesHeader:R_t,feesHeader:L_t,tipsHeader:P_t,computeUnitsHeader:O_t,computeUnitsPct:z_t,rowText:D_t,active:A_t,slotText:F_t},[U_t,B_t,W_t,V_t]=function(){const e=Co({}),t=fe(0);return[fe(null,(n,r,i,o)=>{const a=n(t);a&&o(a),r(e,s=>{s[i]=o})}),fe(null,(n,r,i)=>{r(e,o=>{delete o[i]})}),fe(null,(n,r,i,o)=>{for(const[a,s]of Object.entries(n(e)))Number(a)!==i&&s(o);r(t,o)}),fe(null,(n,r)=>{r(e,{}),r(t,0)})]}(),H_t="_slot-text_j49it_1",Z_t={slotText:H_t};function q_t({slot:e,isLeader:t,className:n}){const r=Te(n,Z_t.slotText);return t?u.jsx(Z,{className:r,children:u.jsx(sp,{to:"/slotDetails",search:{slot:e},children:e})}):u.jsx(Z,{className:r,children:e})}function L1({slot:e,currentSlot:t}){const n=m.useRef(null),r=Ee(U_t),i=Ee(B_t),o=Ee(W_t);return m.useEffect(()=>(r(e,a=>{var s;(s=n.current)==null||s.scrollTo(a,0)}),()=>i(e)),[i,r,e]),u.jsxs(W,{minWidth:"0",flexGrow:"1",children:[u.jsx(G_t,{slot:e,currentSlot:t}),u.jsxs("div",{className:Te(Xr.grid,{[Xr.firedancerGrid]:Vi}),ref:n,onScroll:a=>{o(e,a.currentTarget.scrollLeft)},children:[Vi&&u.jsx(Z,{className:Te(Xr.headerText,Xr.voteLatencyHeader),align:"right",children:"Vote\xA0Latency"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.votesHeader),align:"right",children:"Votes"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.nonVotesHeader),align:"right",children:"Non-votes"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.feesHeader),align:"right",children:"Fees"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.tipsHeader),align:"right",children:"Tips"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.durationHeader),align:"right",children:"Duration"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.computeUnitsHeader),align:"right",children:"Compute\xA0Units"}),new Array(4).fill(0).map((a,s)=>{const l=e+3-s;return u.jsx(K_t,{slot:l,active:l===t},l)})]})]})}function G_t({slot:e,currentSlot:t}){return u.jsxs(W,{direction:"column",children:[u.jsx(Z,{className:Te(Xr.headerText,Xr.slotText),children:"Slot"}),new Array(4).fill(0).map((n,r)=>{const i=e+3-r,o=i===t;return u.jsx(Y_t,{slot:i,isCurrent:o},i)})]})}function Y_t({slot:e,isCurrent:t}){var o;const n=Is(e),r=OM(e),i=J(cp)===r;return u.jsxs(W,{className:Te(Xr.rowText,Xr.slotText,t&&Xr.active),align:"center",gap:"2",children:[u.jsx(q_t,{slot:e,isLeader:i}),u.jsx(dpe,{slot:e,isCurrent:t,size:"small"}),(o=n.publish)!=null&&o.skipped?u.jsx(hpe,{size:"small"}):u.jsx(fpe,{size:"small"})]})}function Ppe(e,t){const n=jb(e.success_vote_transaction_cnt??0),r=jb(e.success_nonvote_transaction_cnt??0),i=jb(e.failed_vote_transaction_cnt??0),o=jb(e.failed_nonvote_transaction_cnt??0),a=Ls((e.transaction_fee??0n)+(e.priority_fee??0n),Bo,{decimals:Bo,trailingZeroes:!0}),s=e.transaction_fee!=null?(Number(e.transaction_fee)/dd).toString():"0",l=e.priority_fee!=null?(Number(e.priority_fee)/dd).toString():"0",c=Ls(e.tips??0n,Bo,{decimals:Bo,trailingZeroes:!0}),d=e.tips!=null?(Number(e.tips)/dd).toString():"0",f=e.duration_nanos!==null?`${Math.trunc(e.duration_nanos/1e6)} ms`:"-",p=jb((e==null?void 0:e.compute_units)??0),v=e.compute_units!=null?e.compute_units/(e.max_compute_units??Ute)*100:0,x=e.vote_latency!=null?{text:rre(e.slot,e.vote_latency,t).toLocaleString()}:e.skipped?{text:""}:e.level==="rooted"?{text:"\u2715",color:"#FF3C3C"}:{text:"-"};return{voteTxns:(n+i).toLocaleString(),nonVoteTxns:(r+o).toLocaleString(),totalFees:a,transactionFeeFull:s,priorityFeeFull:l,tips:c,tipsFull:d,durationText:f,computeUnits:p,computeUnitsPct:v,voteLatency:x}}function K_t({slot:e,active:t}){var b;const n=J(Xf),r=J(oo),i=J(Ik),o=Is(e),[a,s]=m.useState(()=>{if(o.publish)return Ppe(o.publish,i)});m.useEffect(()=>{o.publish&&s(Ppe(o.publish,i))},[o.publish,i,e]);const l=e>(r??1/0),c=e===r,d=m.useRef(),[f,p]=m.useState(!1);ox(c)&&!c&&!f&&(clearTimeout(d.current),d.current=setTimeout(()=>{p(!1)},50),p(!0)),Og(()=>{clearTimeout(d.current)});const v=e<(n??0),x=(w,_)=>l||c||v?"-":!a&&!o.hasWaitedForData&&!f?"Loading...":a?(typeof w=="number"&&(w=Math.round(w)),`${w}`):"-",y=Te(Xr.rowText,{[Xr.active]:t});return u.jsxs(u.Fragment,{children:[Vi&&u.jsx(Z,{className:y,align:"right",style:{color:(b=a==null?void 0:a.voteLatency)==null?void 0:b.color},children:x(a==null?void 0:a.voteLatency.text)}),u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.voteTxns)}),u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.nonVoteTxns)}),u.jsx(ci,{content:u.jsxs(qr,{columns:"auto auto",rows:"2",gapX:"3",children:[u.jsx(Z,{children:"Transaction"}),u.jsx(Z,{children:"Priority"}),u.jsxs(Z,{children:[a==null?void 0:a.transactionFeeFull," SOL"]}),u.jsxs(Z,{children:[a==null?void 0:a.priorityFeeFull," SOL"]})]}),children:u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.totalFees)})}),u.jsx(ci,{content:`${a==null?void 0:a.tipsFull} SOL`,children:u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.tips)})}),u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.durationText)}),(a==null?void 0:a.computeUnits)!==void 0?u.jsx(Z,{className:y,align:"right",style:{padding:0},children:u.jsxs(u.Fragment,{children:[x(a==null?void 0:a.computeUnits.toLocaleString()),u.jsx("span",{className:Xr.computeUnitsPct,children:(a==null?void 0:a.computeUnitsPct)!==void 0?`${uk}(${x(a==null?void 0:a.computeUnitsPct)}%)`:null})]})}):u.jsx(Z,{className:y,align:"right",children:x()})]})}const X_t="_my-slots_476vd_1",J_t="_summary-container_476vd_8",Q_t="_name_476vd_13",e2t="_you_476vd_22",t2t="_mobile_476vd_26",n2t="_primary-text_476vd_32",r2t="_secondary-text_476vd_40",i2t="_divider_476vd_47",o2t="_firedancer_476vd_55",a2t="_frankendancer_476vd_59",s2t="_agave_476vd_63",l2t="_jito_476vd_67",u2t="_paladin_476vd_71",c2t="_bam_476vd_75",d2t="_sig_476vd_79",f2t="_rakurai_476vd_83",h2t="_harmonic_476vd_89",p2t="_major-minor-version-text_476vd_93",m2t="_remaining-version-text_476vd_97",g2t="_time-ago_476vd_102",v2t="_right-aligned_476vd_105",Go={mySlots:X_t,summaryContainer:J_t,name:Q_t,you:e2t,mobile:t2t,primaryText:n2t,secondaryText:r2t,divider:i2t,firedancer:o2t,frankendancer:a2t,agave:s2t,jito:l2t,paladin:u2t,bam:c2t,sig:d2t,rakurai:f2t,harmonic:h2t,majorMinorVersionText:p2t,remainingVersionText:m2t,timeAgo:g2t,rightAligned:v2t},y2t="_arrow-dropdown_mvcj2_1",b2t={arrowDropdown:y2t};function x2t({align:e,children:t}){const[n,r]=m.useState(!1);return u.jsx(zg,{align:e,content:t,isOpen:n,onOpenChange:r,children:u.jsx(hs,{variant:"ghost",size:"1",className:b2t.arrowDropdown,children:n?u.jsx(U$,{}):u.jsx(F$,{})})})}function Ope({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(W,{direction:"column",className:Go.summaryContainer,gap:"2",mr:"2",children:[u.jsxs(W,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:30,isYou:i}),u.jsx(Z,{className:Te(Go.name,{[Go.you]:i}),children:o})]}),u.jsx(Z,{className:Go.primaryText,children:n}),u.jsx(Fpe,{slot:e,peer:r,showTime:t})]})}function zpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(W,{direction:"column",gap:"1",children:[u.jsxs(W,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(Z,{className:Te(Go.name,Go.mobile),children:o}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(Z,{className:Go.primaryText,children:n})]}),u.jsx(Fpe,{slot:e,peer:r,showTime:t,full:!0})]})}function Dpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(W,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(Z,{className:Go.primaryText,children:o}),u.jsx(x2t,{align:"start",children:u.jsxs(W,{p:"1",direction:"column",gap:"2",className:Go.mobile,children:[u.jsx(Z,{children:n}),u.jsx(_2t,{slot:e,peer:r,showTime:t})]})})]})}function Ape(e){var p;const t=J(Ig),{client:n,version:r,countryCode:i,countryFlag:o,cityName:a}=zM(e),s=e?nre(e):void 0,l=t?t.activeStake+t.delinquentStake:0n,c=l>0n?Number(s)/Number(l)*100:void 0,d=s!==void 0?`${BN(s)}${c!==void 0?` \u2022 ${z$(c,{significantDigits:4,trailingZeroes:!1})}%`:""}`:void 0,f=ZN(((p=e==null?void 0:e.gossip)==null?void 0:p.sockets.tvu)??"");return!Cb(n)&&!Cb(d)&&!f?null:{client:n,version:r,countryCode:i,countryFlag:o,cityName:a,stakeText:d??"",ipText:f||"Offline"}}function Fpe({slot:e,peer:t,showTime:n,full:r}){const i=Ape(t);if(!i)return null;const{client:o,version:a,countryCode:s,countryFlag:l,cityName:c,stakeText:d,ipText:f}=i;return u.jsxs(W,{gap:"4",minWidth:"0",justify:"between",className:Go.secondaryText,children:[u.jsxs(W,{direction:"column",minWidth:"0",children:[u.jsx(ci,{content:`${o??"Unknown"}${a!=null?` v${a}`:""}`,children:u.jsxs(W,{gap:"1",children:[u.jsx(W,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(Px,{slot:e,size:"medium"})}),u.jsx(Bpe,{client:o,version:a})]})}),c&&s&&u.jsx(ci,{content:`${c}, ${s}`,children:u.jsxs(W,{gap:"1",children:[u.jsx(W,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(Z,{children:l})}),u.jsx(Upe,{cityName:c,countryCode:s})]})})]}),u.jsxs(W,{gap:"4",children:[u.jsxs(W,{direction:"column",width:"180px",align:r?"end":"start",children:[u.jsx(Z,{children:d}),u.jsx(Z,{children:f})]}),u.jsx(W,{width:"165px",justify:r?"end":"start",children:n&&u.jsx(Wpe,{slot:e,align:r?"right":"left",multiline:!0})})]})]})}function _2t({slot:e,peer:t,showTime:n}){const r=Ape(t);if(!r)return null;const{client:i,version:o,countryCode:a,countryFlag:s,cityName:l,stakeText:c,ipText:d}=r;return u.jsxs(W,{gap:"2",minWidth:"0",justify:"between",direction:"column",children:[u.jsxs(W,{gap:"1",children:[u.jsx(Px,{slot:e,size:"small"}),u.jsx(Bpe,{client:i,version:o})]}),l&&a&&u.jsxs(W,{gap:"1",children:[u.jsx(Z,{children:s}),u.jsx(Upe,{cityName:l,countryCode:a})]}),u.jsx(Z,{children:c}),u.jsx(Z,{children:d}),n&&u.jsx(Mt,{children:u.jsx(Wpe,{slot:e,align:"left"})})]})}function Upe({cityName:e,countryCode:t}){return u.jsxs(W,{minWidth:"0",children:[u.jsx(Z,{truncate:!0,children:e}),u.jsxs(Z,{children:["\xA0",t]})]})}function Bpe({client:e,version:t}){const n=(e??"Unknown").split(" "),r=n[0],i=n[1],o=Go[r.toLowerCase()],a=t==null?void 0:t.match(/^(\d+\.\d+)(\..+)$/),s=a?a[1]:t??"",l=a?a[2]:"";return u.jsxs(W,{minWidth:"0",children:[u.jsxs(Z,{truncate:!0,children:[u.jsx(Z,{className:o,children:r}),i&&u.jsxs(Z,{className:Go[i.toLowerCase()],children:["\xA0",i]}),t&&u.jsx(Z,{children:"\xA0"})]}),t&&u.jsxs(Z,{className:Te(Go.majorMinorVersionText,o),children:["v",s]}),l&&u.jsx(Z,{truncate:!0,className:Te(Go.remainingVersionText,o),children:l})]})}function Wpe({slot:e,align:t,multiline:n=!1}){const{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}=npe(e);if(r===void 0)return;const a=i?Mpe(i):"",s=o?n?[a,o]:[`${a} (${o})`]:[a];return u.jsx(aO,{nanoTs:r,lines:s,textClassName:Te(Go.timeAgo,{[Go.rightAligned]:t==="right"})})}const Vpe="(min-width: 900px)",lO="(min-width: 600px)";function w2t({slot:e}){var f,p,v,x;const{isLeader:t}=ma(e),n=J(jre),r=Is(e),i=Is(e+1),o=Is(e+2),a=Is(e+3),s=[0,1,2,3].some(y=>n.has(e+y)),l=((f=r.publish)==null?void 0:f.skipped)||((p=i.publish)==null?void 0:p.skipped)||((v=o.publish)==null?void 0:v.skipped)||((x=a.publish)==null?void 0:x.skipped),c=Hn(Vpe),d=Hn(lO);return u.jsx("div",{className:Te(sO.card,{[YS.mySlots]:t,[sO.lateVote]:s,[sO.skipped]:l}),children:c?u.jsxs(W,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ope,{slot:e,showTime:!0}),u.jsx(L1,{slot:e})]}):d?u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e,showTime:!0}),u.jsx(L1,{slot:e})]}):u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e,showTime:!0}),u.jsx(L1,{slot:e})]})})}const k2t="_card_wweyx_1",S2t={card:k2t};function C2t({slot:e}){const t=J(oo),{isLeader:n}=ma(e),r=Hn(Vpe),i=Hn(lO);return u.jsx("div",{className:Te(S2t.card,{[YS.mySlots]:n}),children:r?u.jsxs(W,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ope,{slot:e}),u.jsx(L1,{slot:e,currentSlot:t})]}):i?u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e}),u.jsx(L1,{slot:e,currentSlot:t})]}):u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e}),u.jsx(L1,{slot:e,currentSlot:t})]})})}var j2t=Object.defineProperty,T2t=(e,t,n)=>t in e?j2t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,KS=(e,t,n)=>T2t(e,typeof t!="symbol"?t+"":t,n),uO=new Map,cO=new WeakMap,Hpe=0,I2t=void 0;function E2t(e){return e?(cO.has(e)||(Hpe+=1,cO.set(e,Hpe.toString())),cO.get(e)):"0"}function N2t(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?E2t(e.root):e[t]}`).toString()}function $2t(e){const t=N2t(e);let n=uO.get(t);if(!n){const r=new Map;let i;const o=new IntersectionObserver(a=>{a.forEach(s=>{var l;const c=s.isIntersecting&&i.some(d=>s.intersectionRatio>=d);e.trackVisibility&&typeof s.isVisible>"u"&&(s.isVisible=c),(l=r.get(s.target))==null||l.forEach(d=>{d(c,s)})})},e);i=o.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:o,elements:r},uO.set(t,n)}return n}function M2t(e,t,n={},r=I2t){if(typeof window.IntersectionObserver>"u"&&r!==void 0){const l=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:i,observer:o,elements:a}=$2t(n),s=a.get(e)||[];return a.has(e)||a.set(e,s),s.push(t),o.observe(e),function(){s.splice(s.indexOf(t),1),s.length===0&&(a.delete(e),o.unobserve(e)),a.size===0&&(o.disconnect(),uO.delete(i))}}function R2t(e){return typeof e.children!="function"}var Zpe=class extends m.Component{constructor(e){super(e),KS(this,"node",null),KS(this,"_unobserveCb",null),KS(this,"handleNode",t=>{this.node&&(this.unobserve(),!t&&!this.props.triggerOnce&&!this.props.skip&&this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=t||null,this.observeNode()}),KS(this,"handleChange",(t,n)=>{t&&this.props.triggerOnce&&this.unobserve(),R2t(this.props)||this.setState({inView:t,entry:n}),this.props.onChange&&this.props.onChange(t,n)}),this.state={inView:!!e.initialInView,entry:void 0}}componentDidMount(){this.unobserve(),this.observeNode()}componentDidUpdate(e){(e.rootMargin!==this.props.rootMargin||e.root!==this.props.root||e.threshold!==this.props.threshold||e.skip!==this.props.skip||e.trackVisibility!==this.props.trackVisibility||e.delay!==this.props.delay)&&(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i,fallbackInView:o}=this.props;this._unobserveCb=M2t(this.node,this.handleChange,{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i},o)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:e}=this.props;if(typeof e=="function"){const{inView:v,entry:x}=this.state;return e({inView:v,entry:x,ref:this.handleNode})}const{as:t,triggerOnce:n,threshold:r,root:i,rootMargin:o,onChange:a,skip:s,trackVisibility:l,delay:c,initialInView:d,fallbackInView:f,...p}=this.props;return m.createElement(t||"div",{ref:this.handleNode,...p},e)}};function dO({slot:e,lastCardSlot:t,setCardCount:n,children:r}){return e!==t?r:u.jsxs(u.Fragment,{children:[u.jsx(Zpe,{onChange:i=>{i||n("decrease")},children:r}),u.jsx(Zpe,{onChange:i=>{i&&n("increase")}})]})}const L2t="_preload_1uziq_1",P2t={preload:L2t};function O2t({slot:e}){var a,s;Is(e);const t=OM(e),n=Hk(t),[r,i]=Vl($ie((a=n==null?void 0:n.info)==null?void 0:a.icon_url)),o=!r&&((s=n==null?void 0:n.info)!=null&&s.icon_url)?n.info.icon_url:void 0;return u.jsx("div",{className:P2t.preload,children:u.jsx("img",{src:o,onError:()=>i()})})}const XS=$n*5;function z2t({topCardSlotLeader:e,bottomCardSlotLeader:t,searchLeaderSlots:n}){if(n){const r=[],i=n.indexOf(t),o=n.indexOf(e);if(i>0)for(let a=1;a<=XS&&i-a>=0;a++){const s=n[i-a];for(let l=0;l<$n;l++)r.push(s+l)}if(o>0)for(let a=1;a<=XS&&o+a0)for(let a=r;a>r-XS;a--)o.push(a);if(i>0)for(let a=i;au.jsx(O2t,{slot:i},i))})}const A2t=10,F2t=2,U2t=1;function B2t(e,t){switch(t){case"increase":return e+F2t;case"decrease":return Math.max(1,e-U2t)}}function W2t(){const e=J(eu),t=J(An),n=J(Aa),r=J(fi),[i,o]=m.useReducer(B2t,A2t),a=t??(e??0)+Ate*$n,{upcoming:s,now:l,past:c}=m.useMemo(()=>b_t({cardCount:i,currentLeaderSlot:e,epoch:r,searchLeaderSlots:n,slotOverride:t,topSlot:a}),[i,e,r,n,t,a]);if(e===void 0)return;if((n==null?void 0:n.length)===0)return u.jsx(W,{justify:"center",align:"center",style:{color:mN,fontSize:"24px",letterSpacing:"-0.96px",minHeight:"300px"},children:u.jsx(Z,{children:"No slots found."})});const d=s[0]??l[0]??c[0]??-1,f=c[c.length-1]??l[l.length-1]??s[s.length-1]??-1;return u.jsxs(u.Fragment,{children:[!!s.length&&u.jsx(fO,{sectionName:"Upcoming",children:s.map(p=>u.jsx(dO,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(x_t,{slot:p},p)},p))}),!!l.length&&u.jsx(fO,{sectionName:"Now",children:l.map(p=>u.jsx(dO,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(C2t,{slot:p},p)},p))}),!!c.length&&u.jsx(fO,{sectionName:"Past",children:c.map(p=>u.jsx(dO,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(w2t,{slot:p})},p))}),u.jsx(D2t,{topCardSlotLeader:d,bottomCardSlotLeader:f})]})}function fO({children:e,sectionName:t}){const n=Hn(lO);return u.jsxs(W,{gap:"2",align:"stretch",children:[n&&u.jsxs(W,{direction:"column",gap:"2",align:"center",children:[u.jsx("div",{style:{width:"1px",flex:1,background:zN,height:"10px"}}),u.jsx(Z,{style:{transform:"rotate(180deg)",writingMode:"vertical-rl",color:Kte},size:"2",children:t}),u.jsx("div",{style:{width:"1px",flex:1,background:zN,height:"10px"}})]}),u.jsx(W,{direction:"column",flexGrow:"1",gap:"2",minWidth:"0",children:e})]})}const V2t="_container_1hof6_1",H2t="_button_1hof6_5",qpe={container:V2t,button:H2t};function Z2t(){const[e,t]=Vl(An),n=J(eu);if(e===void 0||n===void 0)return null;const r=e<=n+Ate*$n;return u.jsx("div",{className:qpe.container,children:u.jsxs(hs,{className:qpe.button,style:{bottom:r?void 0:"8px"},onClick:()=>t(void 0),children:[u.jsx(Z,{children:"Skip to Realtime"}),r?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const q2t="_label_14v9a_1",G2t="_value_14v9a_5",Gpe={label:q2t,value:G2t};function Y2t(){const{progressSinceLastLeader:e,nextSlotText:t,nextLeaderSlot:n}=Ox({showNowIfCurrent:!0}),r=n!==void 0?` (${n})`:"";return u.jsxs(W,{align:"center",gap:"2",children:[u.jsxs(Z,{className:Gpe.label,children:["Next leader slot",r]}),u.jsx(a1,{width:"60px",height:"8px",value:e}),u.jsx(Z,{className:Gpe.value,children:t})]})}const K2t="_container_bc437_1",X2t="_search-box_bc437_18",J2t="_label_bc437_29",Q2t="_search-button_bc437_33",ewt="_disabled_bc437_56",twt="_my-slots_bc437_64",nwt="_late-vote-slots_bc437_84",rwt="_skipped-slots_bc437_102",iwt="_skip-rate-label_bc437_130",owt="_skip-rate-value_bc437_135",Eo={container:K2t,searchBox:X2t,label:J2t,searchButton:Q2t,disabled:ewt,mySlots:twt,lateVoteSlots:nwt,skippedSlots:rwt,skipRateLabel:iwt,skipRateValue:owt};function JS(){const{searchType:e}=y_.useSearch(),t=Q0({from:y_.fullPath}),n=m.useCallback(r=>{t({search:{searchType:r},replace:!0})},[t]);return{searchType:e,setSearchType:n}}function awt(){const{searchText:e}=y_.useSearch(),t=Q0({from:y_.fullPath}),n=m.useCallback(r=>{t({search:{searchText:r,searchType:zi.text},replace:!0})},[t]);return{searchText:e,setSearchText:n}}function swt(){const e=Ee(Fze),t=Ee(An),{searchType:n}=JS(),{searchText:r,setSearchText:i}=awt(),[o,a]=m.useState(r),s=Tp(c=>{e(c),i(c)},1e3);m.useEffect(()=>{!s.isPending()&&o!==r&&a(r)},[s,o,r]);const l=()=>{i(""),t(void 0),e("")};return ix(()=>{n===zi.text&&e(r)}),u.jsxs(W,{className:Eo.container,gap:"2",wrap:"wrap",children:[u.jsx(Mt,{className:Eo.searchBox,children:u.jsxs(Q7,{placeholder:"Name, Client Id, Pubkey, or Slot (use , for multiple)",variant:"soft",color:"gray",onChange:c=>{a(c.currentTarget.value),s(c.currentTarget.value)},value:o,children:[u.jsx(M4,{children:u.jsx(qie,{height:"16",width:"16",style:{color:ON}})}),o&&u.jsx(M4,{children:u.jsx(nl,{size:"1",variant:"ghost",children:u.jsx(B$,{height:"14",width:"14",style:{color:ON},onClick:l})})})]})}),u.jsx(uwt,{resetSearchText:l}),Vi&&u.jsx(dwt,{resetSearchText:l}),u.jsx(cwt,{resetSearchText:l}),u.jsx(lwt,{}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(Y2t,{})]})}function lwt(){const e=J(Sre),t=m.useMemo(()=>e?`${(e.skip_rate*100).toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:2})}%`:"-",[e]);return u.jsxs(W,{justify:"center",align:"center",gap:"1",children:[u.jsx(Z,{className:Eo.skipRateLabel,children:"Skip Rate"}),u.jsx(Z,{className:e!=null&&e.skip_rate?Eo.skipRateValue:Eo.skipRateLabel,children:t})]})}function uwt({resetSearchText:e}){const t=J(ao),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=JS(),a=((t==null?void 0:t.length)??0)*4,s=m.useCallback(()=>{n(t)},[n,t]);m.useEffect(()=>{i===zi.mySlots&&n(t)},[t,n]);const l=()=>{e(),r(void 0),i===zi.mySlots?o(zi.text):(o(zi.mySlots),s())},c=i===zi.mySlots,d=!(t!=null&&t.length);return u.jsx(ci,{content:"Number of slots this validator is leader in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(N7,{className:Te(Eo.searchButton,Eo.mySlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle my slots",pressed:c,disabled:d,children:[u.jsx(Z,{className:Eo.label,children:"My Slots"}),u.jsx(Z,{children:a})]})})})})}function cwt({resetSearchText:e}){const t=J(u3),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=JS(),a=(t==null?void 0:t.length)??0,s=m.useCallback(()=>{const f=t==null?void 0:t.map(p=>p-p%4);n([...new Set(f)])},[n,t]);m.useEffect(()=>{i===zi.skippedSlots&&s()},[s]);const l=()=>{e(),r(void 0),i===zi.skippedSlots?o(zi.text):t!=null&&t.length&&(o(zi.skippedSlots),s())},c=i===zi.skippedSlots,d=!(t!=null&&t.length);return u.jsx(ci,{content:"Number of slots this validator has skipped in the current epoch since it was last restarted. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(N7,{className:Te(Eo.searchButton,Eo.skippedSlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle skipped slots",pressed:c,disabled:!c&&d,children:[u.jsx(Z,{className:Eo.label,children:"My Skipped Slots"}),u.jsx(Z,{children:a})]})})})})}function dwt({resetSearchText:e}){const t=J(jre),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=JS(),a=t.size,s=m.useMemo(()=>Array.from(new Set([...t].map(p=>_i(p)))),[t]),l=m.useCallback(()=>{n(s)},[n,s]);m.useEffect(()=>{i===zi.lateVoteSlots&&n(s)},[s,n]);const c=()=>{e(),r(void 0),i===zi.lateVoteSlots?o(zi.text):(o(zi.lateVoteSlots),l())},d=i===zi.lateVoteSlots,f=!t.size;return u.jsx(ci,{content:"Number of slots this validator has voted late in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(N7,{className:Te(Eo.searchButton,Eo.lateVoteSlots,f&&Eo.disabled),onClick:c,"aria-label":"Toggle late vote slots",pressed:d,disabled:f,children:[u.jsx(Z,{className:Eo.label,children:"My Late Votes"}),u.jsx(Z,{children:a})]})})})})}var Ype={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 +* http://hammerjs.github.io/ +* +* Copyright (c) 2016 Jorik Tangelder; +* Licensed under the MIT license */(function(e){(function(t,n,r,i){var o=["","webkit","Moz","MS","ms","o"],a=n.createElement("div"),s="function",l=Math.round,c=Math.abs,d=Date.now;function f(L,G,ie){return setTimeout(S(L,ie),G)}function p(L,G,ie){return Array.isArray(L)?(v(L,ie[G],ie),!0):!1}function v(L,G,ie){var Ie;if(L)if(L.forEach)L.forEach(G,ie);else if(L.length!==i)for(Ie=0;Ie\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Kt=t.console&&(t.console.warn||t.console.log);return Kt&&Kt.call(t.console,Ie,vt),L.apply(this,arguments)}}var y;typeof Object.assign!="function"?y=function(L){if(L===i||L===null)throw new TypeError("Cannot convert undefined or null to object");for(var G=Object(L),ie=1;ie-1}function M(L){return L.trim().split(/\s+/g)}function O(L,G,ie){if(L.indexOf&&!ie)return L.indexOf(G);for(var Ie=0;IeDi[G]}),Ie}function P(L,G){for(var ie,Ie,ze=G[0].toUpperCase()+G.slice(1),vt=0;vt1&&!ie.firstMultiple?ie.firstMultiple=pn(G):ze===1&&(ie.firstMultiple=!1);var vt=ie.firstInput,Kt=ie.firstMultiple,In=Kt?Kt.center:vt.center,Di=G.center=Yn(Ie);G.timeStamp=d(),G.deltaTime=G.timeStamp-vt.timeStamp,G.angle=On(In,Di),G.distance=kr(In,Di),De(ie,G),G.offsetDirection=Kn(G.deltaX,G.deltaY);var Ti=hr(G.deltaTime,G.deltaX,G.deltaY);G.overallVelocityX=Ti.x,G.overallVelocityY=Ti.y,G.overallVelocity=c(Ti.x)>c(Ti.y)?Ti.x:Ti.y,G.scale=Kt?tr(Kt.pointers,Ie):1,G.rotation=Kt?Mr(Kt.pointers,Ie):0,G.maxPointers=ie.prevInput?G.pointers.length>ie.prevInput.maxPointers?G.pointers.length:ie.prevInput.maxPointers:G.pointers.length,Dt(ie,G);var Ji=L.element;$(G.srcEvent.target,Ji)&&(Ji=G.srcEvent.target),G.target=Ji}function De(L,G){var ie=G.center,Ie=L.offsetDelta||{},ze=L.prevDelta||{},vt=L.prevInput||{};(G.eventType===he||vt.eventType===re)&&(ze=L.prevDelta={x:vt.deltaX||0,y:vt.deltaY||0},Ie=L.offsetDelta={x:ie.x,y:ie.y}),G.deltaX=ze.x+(ie.x-Ie.x),G.deltaY=ze.y+(ie.y-Ie.y)}function Dt(L,G){var ie=L.lastInterval||G,Ie=G.timeStamp-ie.timeStamp,ze,vt,Kt,In;if(G.eventType!=ge&&(Ie>ke||ie.velocity===i)){var Di=G.deltaX-ie.deltaX,Ti=G.deltaY-ie.deltaY,Ji=hr(Ie,Di,Ti);vt=Ji.x,Kt=Ji.y,ze=c(Ji.x)>c(Ji.y)?Ji.x:Ji.y,In=Kn(Di,Ti),L.lastInterval=G}else ze=ie.velocity,vt=ie.velocityX,Kt=ie.velocityY,In=ie.direction;G.velocity=ze,G.velocityX=vt,G.velocityY=Kt,G.direction=In}function pn(L){for(var G=[],ie=0;ie=c(G)?L<0?pe:ye:G<0?Se:Ce}function kr(L,G,ie){ie||(ie=St);var Ie=G[ie[0]]-L[ie[0]],ze=G[ie[1]]-L[ie[1]];return Math.sqrt(Ie*Ie+ze*ze)}function On(L,G,ie){ie||(ie=St);var Ie=G[ie[0]]-L[ie[0]],ze=G[ie[1]]-L[ie[1]];return Math.atan2(ze,Ie)*180/Math.PI}function Mr(L,G){return On(G[1],G[0],ut)+On(L[1],L[0],ut)}function tr(L,G){return kr(G[0],G[1],ut)/kr(L[0],L[1],ut)}var Sr={mousedown:he,mousemove:ue,mouseup:re},ri="mousedown",uo="mousemove mouseup";function Ki(){this.evEl=ri,this.evWin=uo,this.pressed=!1,ct.apply(this,arguments)}_(Ki,ct,{handler:function(L){var G=Sr[L.type];G&he&&L.button===0&&(this.pressed=!0),G&ue&&L.which!==1&&(G=re),this.pressed&&(G&re&&(this.pressed=!1),this.callback(this.manager,G,{pointers:[L],changedPointers:[L],pointerType:je,srcEvent:L}))}});var No={pointerdown:he,pointermove:ue,pointerup:re,pointercancel:ge,pointerout:ge},Ps={2:B,3:ae,4:je,5:me},zn="pointerdown",co="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(zn="MSPointerDown",co="MSPointerMove MSPointerUp MSPointerCancel");function xa(){this.evEl=zn,this.evWin=co,ct.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}_(xa,ct,{handler:function(L){var G=this.store,ie=!1,Ie=L.type.toLowerCase().replace("ms",""),ze=No[Ie],vt=Ps[L.pointerType]||L.pointerType,Kt=vt==B,In=O(G,L.pointerId,"pointerId");ze&he&&(L.button===0||Kt)?In<0&&(G.push(L),In=G.length-1):ze&(re|ge)&&(ie=!0),!(In<0)&&(G[In]=L,this.callback(this.manager,ze,{pointers:G,changedPointers:[L],pointerType:vt,srcEvent:L}),ie&&G.splice(In,1))}});var yc={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},bc="touchstart",xc="touchstart touchmove touchend touchcancel";function qa(){this.evTarget=bc,this.evWin=xc,this.started=!1,ct.apply(this,arguments)}_(qa,ct,{handler:function(L){var G=yc[L.type];if(G===he&&(this.started=!0),!!this.started){var ie=kl.call(this,L,G);G&(re|ge)&&ie[0].length-ie[1].length===0&&(this.started=!1),this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:B,srcEvent:L})}}});function kl(L,G){var ie=te(L.touches),Ie=te(L.changedTouches);return G&(re|ge)&&(ie=q(ie.concat(Ie),"identifier")),[ie,Ie]}var pi={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},Un="touchstart touchmove touchend touchcancel";function Rr(){this.evTarget=Un,this.targetIds={},ct.apply(this,arguments)}_(Rr,ct,{handler:function(L){var G=pi[L.type],ie=$o.call(this,L,G);ie&&this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:B,srcEvent:L})}});function $o(L,G){var ie=te(L.touches),Ie=this.targetIds;if(G&(he|ue)&&ie.length===1)return Ie[ie[0].identifier]=!0,[ie,ie];var ze,vt,Kt=te(L.changedTouches),In=[],Di=this.target;if(vt=ie.filter(function(Ti){return $(Ti.target,Di)}),G===he)for(ze=0;ze-1&&Ie.splice(vt,1)};setTimeout(ze,fo)}}function Yt(L){for(var G=L.srcEvent.clientX,ie=L.srcEvent.clientY,Ie=0;Ie-1&&this.requireFail.splice(G,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(L){return!!this.simultaneous[L.id]},emit:function(L){var G=this,ie=this.state;function Ie(ze){G.manager.emit(ze,L)}ie=ji&&Ie(G.options.event+Pd(ie))},tryEmit:function(L){if(this.canEmit())return this.emit(L);this.state=go},canEmit:function(){for(var L=0;LG.threshold&&ze&G.direction},attrTest:function(L){return Xi.prototype.attrTest.call(this,L)&&(this.state&Vr||!(this.state&Vr)&&this.directionTest(L))},emit:function(L){this.pX=L.deltaX,this.pY=L.deltaY;var G=Od(L.direction);G&&(L.additionalEvent=this.options.event+G),this._super.emit.call(this,L)}});function _c(){Xi.apply(this,arguments)}_(_c,Xi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(L){return this._super.attrTest.call(this,L)&&(Math.abs(L.scale-1)>this.options.threshold||this.state&Vr)},emit:function(L){if(L.scale!==1){var G=L.scale<1?"in":"out";L.additionalEvent=this.options.event+G}this._super.emit.call(this,L)}});function xu(){Xo.apply(this,arguments),this._timer=null,this._input=null}_(xu,Xo,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Ga]},process:function(L){var G=this.options,ie=L.pointers.length===G.pointers,Ie=L.distanceG.time;if(this._input=L,!Ie||!ie||L.eventType&(re|ge)&&!ze)this.reset();else if(L.eventType&he)this.reset(),this._timer=f(function(){this.state=gi,this.tryEmit()},G.time,this);else if(L.eventType&re)return gi;return go},reset:function(){clearTimeout(this._timer)},emit:function(L){this.state===gi&&(L&&L.eventType&re?this.manager.emit(this.options.event+"up",L):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}});function wc(){Xi.apply(this,arguments)}_(wc,Xi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(L){return this._super.attrTest.call(this,L)&&(Math.abs(L.rotation)>this.options.threshold||this.state&Vr)}});function kc(){Xi.apply(this,arguments)}_(kc,Xi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ue|Ge,pointers:1},getTouchAction:function(){return oi.prototype.getTouchAction.call(this)},attrTest:function(L){var G=this.options.direction,ie;return G&(Ue|Ge)?ie=L.overallVelocity:G&Ue?ie=L.overallVelocityX:G&Ge&&(ie=L.overallVelocityY),this._super.attrTest.call(this,L)&&G&L.offsetDirection&&L.distance>this.options.threshold&&L.maxPointers==this.options.pointers&&c(ie)>this.options.velocity&&L.eventType&re},emit:function(L){var G=Od(L.offsetDirection);G&&this.manager.emit(this.options.event+G,L),this.manager.emit(this.options.event,L)}});function Sl(){Xo.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}_(Sl,Xo,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ya]},process:function(L){var G=this.options,ie=L.pointers.length===G.pointers,Ie=L.distance0?-1:1)}const pwt=function(){let e=0,t=null;return fe(null,(n,r,i)=>{t&&clearTimeout(t),i*e<0&&(e=0);const o=n(oo);if(o===void 0)return;const a=n(An),s=a&&a=s){const l=e%100;r(Bze,hwt(e/s)),e=l}t=setTimeout(()=>e=0,100)})}();function mwt(){const e=Ee(pwt),t=Ee(V_t),n=m.useRef(null),r=i=>{i.altKey||i.ctrlKey||i.metaKey||i.shiftKey||!i.deltaY||e(i.deltaY)};return Og(()=>t()),m.useEffect(()=>{if(!n.current)return;const i=new Kpe(n.current);return i.get("pan").set({direction:Kpe.DIRECTION_VERTICAL}),i.on("panup pandown",o=>{var a;o.pointerType.includes("touch")&&e(-(((a=o.changedPointers[0])==null?void 0:a.movementY)??0)*5)}),()=>{i.destroy()}},[e]),u.jsxs(BZ,{overflow:"hidden",flexShrink:"1",onWheel:r,maxWidth:"100%",className:YS.scroll,ref:n,children:[u.jsx(swt,{}),u.jsx(Z2t,{}),u.jsx(W,{direction:"column",gap:"4",children:u.jsx(W2t,{})})]})}const gwt=fe(e=>e(eu)!=null&&!!e(xre));function vwt(){const e=J(gwt),t=Ee(An),n=Ee(Tg);ix(()=>{t(void 0),n(void 0)});const r=i=>{i.button===1&&t(void 0)};if(e)return u.jsx(W,{direction:"column",gap:"4",width:"100%",maxHeight:`calc(100vh - ${kb+Sb+12}px)`,onMouseDown:r,children:u.jsx(mwt,{})})}const Xpe=xs(["mySlots","skippedSlots","lateVoteSlots","text"]),zi=Xpe.enum,ywt={searchType:zi.text,searchText:""},bwt=kt({searchType:Xpe.default(zi.text).catch(zi.text),searchText:Et().default("").catch("")}),y_=lp("/leaderSchedule")({component:vwt,validateSearch:bwt,search:{middlewares:[K8e(ywt),Y8e(["searchType","searchText"])]},beforeLoad:({search:e})=>{if(e.searchText.includes(";"))throw cT({to:"/leaderSchedule",search:{...e,searchText:e.searchText.replaceAll(";",",")}})}});function P1({inBytes:e,value:t}){const n=Bg(t)??0;let r="-";if(n!==void 0)if(e){const{value:i,unit:o}=Ib(n);r=`${i.toLocaleString()} ${o}`}else r=Math.trunc(n).toLocaleString();return u.jsx(ni,{align:"right",children:r})}const QS=["ContactInfoV1","Vote","LowestSlot","SnapshotHashes","AccountsHashes","EpochSlots","VersionV1","VersionV2","NodeInstance","DuplicateShred","IncrementalSnapshotHashes","ContactInfoV2","RestartLastVotedForkSlots","RestartHeaviestFork"],xwt=["pull_request","pull_response","push","ping","pong","prune"],hO="30px",gc="10px",pO="160px",Jpe="10px",Qpe=`repeat(auto-fill, minmax(${pO}, 1fr)`,eme="44px",eC="200px",tC="320px",_wt="_header-text_n52ov_1",wwt="_storage-stats-container_n52ov_6",kwt="_root_n52ov_11",Md={headerText:_wt,storageStatsContainer:wwt,root:kwt};function Swt({storage:e}){const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((n,r)=>{var i,o,a;return{type:QS[r],activeEntries:(i=e.count)==null?void 0:i[r],egressCount:(o=e.count_tx)==null?void 0:o[r],egressBytes:(a=e.bytes_tx)==null?void 0:a[r]}}).sort((n,r)=>r.activeEntries-n.activeEntries)},[e]);if(t)return u.jsxs(W,{className:Md.storageStatsContainer,direction:"column",gap:gc,minWidth:tC,height:"100%",minHeight:"250px",children:[u.jsx(Z,{className:Md.headerText,children:"Storage Stats"}),u.jsxs(q0,{variant:"surface",className:Md.root,size:"1",children:[u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Entry Type"}),u.jsx(Wi,{align:"right",children:"Total Entries"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map(n=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(ni,{align:"right",children:n.activeEntries.toLocaleString()}),u.jsx(P1,{value:n.egressCount??0}),u.jsx(P1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}function nC(){return nC=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var jwt={nivo:["#e8c1a0","#f47560","#f1e15b","#e8a838","#61cdbb","#97e3d5"],category10:f5,accent:h5,dark2:p5,paired:m5,pastel1:g5,pastel2:v5,set1:y5,set2:b5,set3:Yx,tableau10:x5},Twt={brown_blueGreen:tm,purpleRed_green:nm,pink_yellowGreen:rm,purple_orange:im,red_blue:om,red_grey:am,red_yellow_blue:sm,red_yellow_green:lm,spectral:um},Iwt={brown_blueGreen:_5,purpleRed_green:w5,pink_yellowGreen:k5,purple_orange:S5,red_blue:C5,red_grey:j5,red_yellow_blue:T5,red_yellow_green:I5,spectral:E5},Ewt={blues:wm,greens:km,greys:Sm,oranges:Tm,purples:Cm,reds:jm,blue_green:cm,blue_purple:dm,green_blue:fm,orange_red:hm,purple_blue_green:pm,purple_blue:mm,purple_red:gm,red_purple:vm,yellow_green_blue:ym,yellow_green:bm,yellow_orange_brown:xm,yellow_orange_red:_m},Nwt={blues:B5,greens:W5,greys:V5,oranges:q5,purples:H5,reds:Z5,turbo:nS,viridis:iS,inferno:aS,magma:oS,plasma:sS,cividis:G5,warm:K5,cool:X5,cubehelixDefault:Y5,blue_green:N5,blue_purple:$5,green_blue:M5,orange_red:R5,purple_blue_green:L5,purple_blue:P5,purple_red:O5,red_purple:z5,yellow_green_blue:D5,yellow_green:A5,yellow_orange_brown:F5,yellow_orange_red:U5};nC({},jwt,Twt,Ewt);var $wt={rainbow:Q5,sinebow:tS};nC({},Iwt,Nwt,$wt);var Mwt=function(e,t){if(typeof e=="function")return e;if(Fx(e)){if(function(l){return l.theme!==void 0}(e)){if(t===void 0)throw new Error("Unable to use color from theme as no theme was provided");var n=yl(t,e.theme);if(n===void 0)throw new Error("Color from theme is undefined at path: '"+e.theme+"'");return function(){return n}}if(function(l){return l.from!==void 0}(e)){var r=function(l){return yl(l,e.from)};if(Array.isArray(e.modifiers)){for(var i,o=[],a=function(){var l=i.value,c=l[0],d=l[1];if(c==="brighter")o.push(function(f){return f.brighter(d)});else if(c==="darker")o.push(function(f){return f.darker(d)});else{if(c!=="opacity")throw new Error("Invalid color modifier: '"+c+"', must be one of: 'brighter', 'darker', 'opacity'");o.push(function(f){return f.opacity=d,f})}},s=Cwt(e.modifiers);!(i=s()).done;)a();return o.length===0?r:function(l){return o.reduce(function(c,d){return d(c)},qp(r(l))).toString()}}return r}throw new Error("Invalid color spec, you should either specify 'theme' or 'from' when using a config object")}return function(){return e}},rC=function(e,t){return m.useMemo(function(){return Mwt(e,t)},[e,t])};xe.oneOfType([xe.string,xe.func,xe.shape({theme:xe.string.isRequired}),xe.shape({from:xe.string.isRequired,modifiers:xe.arrayOf(xe.array)})]);function $r(){return $r=Object.assign?Object.assign.bind():function(e){for(var t=1;t=t})},Owt={startAngle:{enter:function(e){return $r({},e,{endAngle:e.startAngle})},update:function(e){return e},leave:function(e){return $r({},e,{startAngle:e.endAngle})}},middleAngle:{enter:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return $r({},e,{startAngle:t,endAngle:t})},update:function(e){return e},leave:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return $r({},e,{startAngle:t,endAngle:t})}},endAngle:{enter:function(e){return $r({},e,{startAngle:e.endAngle})},update:function(e){return e},leave:function(e){return $r({},e,{endAngle:e.startAngle})}},innerRadius:{enter:function(e){return $r({},e,{outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{innerRadius:e.outerRadius})}},centerRadius:{enter:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return $r({},e,{innerRadius:t,outerRadius:t})},update:function(e){return e},leave:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return $r({},e,{innerRadius:t,outerRadius:t})}},outerRadius:{enter:function(e){return $r({},e,{innerRadius:e.outerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{outerRadius:e.innerRadius})}},pushIn:{enter:function(e){return $r({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})}},pushOut:{enter:function(e){return $r({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})}}},rme=function(e,t){return m.useMemo(function(){var n=Owt[e];return{enter:function(r){return $r({progress:0},n.enter(r.arc),t?t.enter(r):{})},update:function(r){return $r({progress:1},n.update(r.arc),t?t.update(r):{})},leave:function(r){return $r({progress:0},n.leave(r.arc),t?t.leave(r):{})}}},[e,t])},zwt=function(e,t){var n=mht(e)-Math.PI/2,r=e.innerRadius+(e.outerRadius-e.innerRadius)*t;return k1(n,r)},Dwt=function(e){return function(t,n,r,i){return tx([t,n,r,i],function(o,a,s,l){var c=zwt({startAngle:o,endAngle:a,innerRadius:s,outerRadius:l},e);return"translate("+c.x+","+c.y+")"})}},Awt=function(e,t,n,r){t===void 0&&(t=.5),n===void 0&&(n="innerRadius");var i=w1(),o=i.animate,a=i.config,s=rme(n,r);return{transition:R$(e,{keys:function(l){return l.id},initial:s.update,from:s.enter,enter:s.update,update:s.update,leave:s.leave,config:a,immediate:!o}),interpolate:Dwt(t)}},Fwt=function(e){var t=e.center,n=e.data,r=e.transitionMode,i=e.label,o=e.radiusOffset,a=e.skipAngle,s=e.textColor,l=e.component,c=l===void 0?Lwt:l,d=e_(i),f=Ms(),p=rC(s,f),v=m.useMemo(function(){return n.filter(function(_){return Math.abs(qL(_.arc.endAngle-_.arc.startAngle))>=a})},[n,a]),x=Awt(v,o,r),y=x.transition,b=x.interpolate,w=c;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:y(function(_,S){return m.createElement(w,{key:S.id,datum:S,label:d(S),style:$r({},_,{transform:b(_.startAngle,_.endAngle,_.innerRadius,_.outerRadius),textColor:p(S)})})})})},Uwt=function(e){var t=e.label,n=e.style,r=Ms();return u.jsxs(iu.g,{opacity:n.opacity,children:[u.jsx(iu.path,{fill:"none",stroke:n.linkColor,strokeWidth:n.thickness,d:n.path}),u.jsx(iu.text,{transform:n.textPosition,textAnchor:n.textAnchor,dominantBaseline:"central",style:$r({},r.labels.text,{fill:n.textColor}),children:t})]})},Bwt=function(e){var t=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2);return t1.5*Math.PI?"start":"end"},ime=function(e,t,n,r){var i,o,a=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2),s=k1(a,e.outerRadius+t),l=k1(a,e.outerRadius+t+n);return a1.5*Math.PI?(i="after",o={x:l.x+r,y:l.y}):(i="before",o={x:l.x-r,y:l.y}),{side:i,points:[s,l,o]}},Wwt=jL().x(function(e){return e.x}).y(function(e){return e.y}),Vwt=function(e,t,n,r,i,o,a){return tx([e,t,n,r,i,o,a],function(s,l,c,d,f,p,v){var x=ime({startAngle:s,endAngle:l,outerRadius:d},f,p,v).points;return Wwt(x)})},Hwt=function(e,t,n,r){return tx([e,t,n,r],function(i,o,a,s){return Bwt({startAngle:i,endAngle:o})})},Zwt=function(e,t,n,r,i,o,a,s){return tx([e,t,n,r,i,o,a,s],function(l,c,d,f,p,v,x,y){var b=ime({startAngle:l,endAngle:c,outerRadius:f},p,v,x),w=b.points,_=b.side,S=w[2];return _==="before"?S.x-=y:S.x+=y,"translate("+S.x+","+S.y+")"})},qwt=function(e){var t=e.data,n=e.offset,r=n===void 0?0:n,i=e.diagonalLength,o=e.straightLength,a=e.skipAngle,s=a===void 0?0:a,l=e.textOffset,c=e.linkColor,d=e.textColor,f=w1(),p=f.animate,v=f.config,x=Ms(),y=rC(c,x),b=rC(d,x),w=function(S,C){return m.useMemo(function(){return Pwt(S,C)},[S,C])}(t,s),_=function(S){var C=S.offset,j=S.diagonalLength,T=S.straightLength,E=S.textOffset,$=S.getLinkColor,D=S.getTextColor;return m.useMemo(function(){return{enter:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:D(M),opacity:0}},update:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:j,straightLength:T,textOffset:E,linkColor:$(M),textColor:D(M),opacity:1}},leave:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:D(M),opacity:0}}}},[j,T,E,$,D,C])}({offset:r,diagonalLength:i,straightLength:o,textOffset:l,getLinkColor:y,getTextColor:b});return{transition:R$(w,{keys:function(S){return S.id},initial:_.update,from:_.enter,enter:_.update,update:_.update,leave:_.leave,config:v,immediate:!p}),interpolateLink:Vwt,interpolateTextAnchor:Hwt,interpolateTextPosition:Zwt}},Gwt=function(e){var t=e.center,n=e.data,r=e.label,i=e.skipAngle,o=e.offset,a=e.diagonalLength,s=e.straightLength,l=e.strokeWidth,c=e.textOffset,d=e.textColor,f=e.linkColor,p=e.component,v=p===void 0?Uwt:p,x=e_(r),y=qwt({data:n,skipAngle:i,offset:o,diagonalLength:a,straightLength:s,textOffset:c,linkColor:f,textColor:d}),b=y.transition,w=y.interpolateLink,_=y.interpolateTextAnchor,S=y.interpolateTextPosition,C=v;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(j,T){return m.createElement(C,{key:T.id,datum:T,label:x(T),style:$r({},j,{thickness:l,path:w(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength),textAnchor:_(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius),textPosition:S(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength,j.textOffset)})})})})},Ywt=function(e){var t=e.datum,n=e.style,r=e.onClick,i=e.onMouseEnter,o=e.onMouseMove,a=e.onMouseLeave,s=m.useCallback(function(f){return r==null?void 0:r(t,f)},[r,t]),l=m.useCallback(function(f){return i==null?void 0:i(t,f)},[i,t]),c=m.useCallback(function(f){return o==null?void 0:o(t,f)},[o,t]),d=m.useCallback(function(f){return a==null?void 0:a(t,f)},[a,t]);return u.jsx(iu.path,{d:n.path,opacity:n.opacity,fill:t.fill||n.color,stroke:n.borderColor,strokeWidth:n.borderWidth,onClick:r?s:void 0,onMouseEnter:i?l:void 0,onMouseMove:o?c:void 0,onMouseLeave:a?d:void 0})},Kwt=function(e,t,n,r,i){return tx([e,t,n,r],function(o,a,s,l){return i({startAngle:o,endAngle:a,innerRadius:Math.max(0,s),outerRadius:Math.max(0,l)})})},Xwt=function(e,t,n){t===void 0&&(t="innerRadius");var r=w1(),i=r.animate,o=r.config,a=rme(t,n);return{transition:R$(e,{keys:function(s){return s.id},initial:a.update,from:a.enter,enter:a.update,update:a.update,leave:a.leave,config:o,immediate:!i}),interpolate:Kwt}},Jwt=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.onClick,s=e.onMouseEnter,l=e.onMouseMove,c=e.onMouseLeave,d=e.transitionMode,f=e.component,p=f===void 0?Ywt:f,v=Ms(),x=rC(o,v),y=Xwt(n,d,{enter:function(S){return{opacity:0,color:S.color,borderColor:x(S)}},update:function(S){return{opacity:1,color:S.color,borderColor:x(S)}},leave:function(S){return{opacity:0,color:S.color,borderColor:x(S)}}}),b=y.transition,w=y.interpolate,_=p;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(S,C){return m.createElement(_,{key:C.id,datum:C,style:$r({},S,{borderWidth:i,path:w(S.startAngle,S.endAngle,S.innerRadius,S.outerRadius,r)}),onClick:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:c})})})},Qwt=function(e,t,n,r,i,o){o===void 0&&(o=!0);var a=[],s=k1(jd(r),n);a.push([s.x,s.y]);var l=k1(jd(i),n);a.push([l.x,l.y]);for(var c=Math.round(Math.min(r,i));c<=Math.round(Math.max(r,i));c++)if(c%90==0){var d=k1(jd(c),n);a.push([d.x,d.y])}a=a.map(function(b){var w=b[0],_=b[1];return[e+w,t+_]}),o&&a.push([e,t]);var f=a.map(function(b){return b[0]}),p=a.map(function(b){return b[1]}),v=Math.min.apply(Math,f),x=Math.max.apply(Math,f),y=Math.min.apply(Math,p);return{points:a,x:v,y,width:x-v,height:Math.max.apply(Math,p)-y}},e4t=function(e){var t=e===void 0?{}:e,n=t.cornerRadius,r=n===void 0?0:n,i=t.padAngle,o=i===void 0?0:i;return m.useMemo(function(){return nct().innerRadius(function(a){return a.innerRadius}).outerRadius(function(a){return a.outerRadius}).cornerRadius(r).padAngle(o)},[r,o])};function iC(){return iC=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(mO[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(l4t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(mO[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},d4t=function(e,t){return m.useMemo(function(){return c4t(e,t)},[e,t])};function Om(){return Om=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}var f4t=function(e){var t=e.width,n=e.height,r=e.legends,i=e.data,o=e.toggleSerie;return u.jsx(u.Fragment,{children:r.map(function(a,s){var l;return u.jsx(sfe,Om({},a,{containerWidth:t,containerHeight:n,data:(l=a.data)!=null?l:i,toggleSerie:a.toggleSerie?o:void 0}),s)})})},Ct={id:"id",value:"value",sortByValue:!1,innerRadius:0,padAngle:0,cornerRadius:0,layers:["arcs","arcLinkLabels","arcLabels","legends"],startAngle:0,endAngle:360,fit:!0,activeInnerRadiusOffset:0,activeOuterRadiusOffset:0,borderWidth:0,borderColor:{from:"color",modifiers:[["darker",1]]},enableArcLabels:!0,arcLabel:"formattedValue",arcLabelsSkipAngle:0,arcLabelsRadiusOffset:.5,arcLabelsTextColor:{theme:"labels.text.fill"},enableArcLinkLabels:!0,arcLinkLabel:"id",arcLinkLabelsSkipAngle:0,arcLinkLabelsOffset:0,arcLinkLabelsDiagonalLength:16,arcLinkLabelsStraightLength:24,arcLinkLabelsThickness:1,arcLinkLabelsTextOffset:6,arcLinkLabelsTextColor:{theme:"labels.text.fill"},arcLinkLabelsColor:{theme:"axis.ticks.line.stroke"},colors:{scheme:"nivo"},defs:[],fill:[],isInteractive:!0,animate:!0,motionConfig:"gentle",transitionMode:"innerRadius",tooltip:function(e){var t=e.datum;return u.jsx(VR,{id:t.id,value:t.formattedValue,enableChip:!0,color:t.color})},legends:[],role:"img"},h4t=["points"],p4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.colors,l=s===void 0?Ct.colors:s,c=e_(r),d=e_(o),f=VL(a),p=d4t(l,"id");return m.useMemo(function(){return t.map(function(v){var x,y=c(v),b=d(v),w={id:y,label:(x=v.label)!=null?x:y,hidden:!1,value:b,formattedValue:f(b),data:v};return Om({},w,{color:p(w)})})},[t,c,d,f,p])},m4t=function(e){var t=e.data,n=e.startAngle,r=e.endAngle,i=e.innerRadius,o=e.outerRadius,a=e.padAngle,s=e.sortByValue,l=e.activeId,c=e.activeInnerRadiusOffset,d=e.activeOuterRadiusOffset,f=e.hiddenIds,p=e.forwardLegendData,v=m.useMemo(function(){var w=sct().value(function(_){return _.value}).startAngle(jd(n)).endAngle(jd(r)).padAngle(jd(a));return s||w.sortValues(null),w},[n,r,a,s]),x=m.useMemo(function(){var w=t.filter(function(_){return!f.includes(_.id)});return{dataWithArc:v(w).map(function(_){var S=Math.abs(_.endAngle-_.startAngle);return Om({},_.data,{arc:{index:_.index,startAngle:_.startAngle,endAngle:_.endAngle,innerRadius:l===_.data.id?i-c:i,outerRadius:l===_.data.id?o+d:o,thickness:o-i,padAngle:_.padAngle,angle:S,angleDeg:qL(S)}})}),legendData:t.map(function(_){return{id:_.id,label:_.label,color:_.color,hidden:f.includes(_.id),data:_}})}},[v,t,f,l,i,c,o,d]),y=x.legendData,b=m.useRef(p);return m.useEffect(function(){typeof b.current=="function"&&b.current(y)},[b,y]),x},g4t=function(e){var t=e.activeId,n=e.onActiveIdChange,r=e.defaultActiveId,i=t!==void 0,o=m.useState(i||r===void 0?null:r),a=o[0],s=o[1];return{activeId:i?t:a,setActiveId:m.useCallback(function(l){n&&n(l),i||s(l)},[i,n,s])}},v4t=function(e){var t=e.data,n=e.width,r=e.height,i=e.innerRadius,o=i===void 0?Ct.innerRadius:i,a=e.startAngle,s=a===void 0?Ct.startAngle:a,l=e.endAngle,c=l===void 0?Ct.endAngle:l,d=e.padAngle,f=d===void 0?Ct.padAngle:d,p=e.sortByValue,v=p===void 0?Ct.sortByValue:p,x=e.cornerRadius,y=x===void 0?Ct.cornerRadius:x,b=e.fit,w=b===void 0?Ct.fit:b,_=e.activeInnerRadiusOffset,S=_===void 0?Ct.activeInnerRadiusOffset:_,C=e.activeOuterRadiusOffset,j=C===void 0?Ct.activeOuterRadiusOffset:C,T=e.activeId,E=e.onActiveIdChange,$=e.defaultActiveId,D=e.forwardLegendData,M=g4t({activeId:T,onActiveIdChange:E,defaultActiveId:$}),O=M.activeId,te=M.setActiveId,q=m.useState([]),P=q[0],X=q[1],A=m.useMemo(function(){var H,ee=Math.min(n,r)/2,ce=ee*Math.min(o,1),B=n/2,ae=r/2;if(w){var je=Qwt(B,ae,ee,s-90,c-90),me=je.points,ke=lme(je,h4t),he=Math.min(n/ke.width,r/ke.height),ue={width:ke.width*he,height:ke.height*he};ue.x=(n-ue.width)/2,ue.y=(r-ue.height)/2,B=(B-ke.x)/ke.width*ke.width*he+ue.x,ae=(ae-ke.y)/ke.height*ke.height*he+ue.y,H={box:ke,ratio:he,points:me},ee*=he,ce*=he}return{centerX:B,centerY:ae,radius:ee,innerRadius:ce,debug:H}},[n,r,o,s,c,w]),Y=m4t({data:t,startAngle:s,endAngle:c,innerRadius:A.innerRadius,outerRadius:A.radius,padAngle:f,sortByValue:v,activeId:O,activeInnerRadiusOffset:S,activeOuterRadiusOffset:j,hiddenIds:P,forwardLegendData:D}),F=m.useCallback(function(H){X(function(ee){return ee.indexOf(H)>-1?ee.filter(function(ce){return ce!==H}):[].concat(ee,[H])})},[]);return Om({arcGenerator:e4t({cornerRadius:y,padAngle:jd(f)}),activeId:O,setActiveId:te,toggleSerie:F},Y,A)},y4t=function(e){var t=e.dataWithArc,n=e.arcGenerator,r=e.centerX,i=e.centerY,o=e.radius,a=e.innerRadius;return m.useMemo(function(){return{dataWithArc:t,arcGenerator:n,centerX:r,centerY:i,radius:o,innerRadius:a}},[t,n,r,i,o,a])},b4t=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.isInteractive,s=e.onClick,l=e.onMouseEnter,c=e.onMouseMove,d=e.onMouseLeave,f=e.setActiveId,p=e.tooltip,v=e.transitionMode,x=Mnt(),y=x.showTooltipFromEvent,b=x.hideTooltip,w=m.useMemo(function(){if(a)return function(j,T){s==null||s(j,T)}},[a,s]),_=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),f(j.id),l==null||l(j,T)}},[a,y,f,l,p]),S=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),c==null||c(j,T)}},[a,y,c,p]),C=m.useMemo(function(){if(a)return function(j,T){b(),f(null),d==null||d(j,T)}},[a,b,f,d]);return u.jsx(Jwt,{center:t,data:n,arcGenerator:r,borderWidth:i,borderColor:o,transitionMode:v,onClick:w,onMouseEnter:_,onMouseMove:S,onMouseLeave:C})},x4t=["isInteractive","animate","motionConfig","theme","renderWrapper"],_4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.sortByValue,l=s===void 0?Ct.sortByValue:s,c=e.layers,d=c===void 0?Ct.layers:c,f=e.startAngle,p=f===void 0?Ct.startAngle:f,v=e.endAngle,x=v===void 0?Ct.endAngle:v,y=e.padAngle,b=y===void 0?Ct.padAngle:y,w=e.fit,_=w===void 0?Ct.fit:w,S=e.innerRadius,C=S===void 0?Ct.innerRadius:S,j=e.cornerRadius,T=j===void 0?Ct.cornerRadius:j,E=e.activeInnerRadiusOffset,$=E===void 0?Ct.activeInnerRadiusOffset:E,D=e.activeOuterRadiusOffset,M=D===void 0?Ct.activeOuterRadiusOffset:D,O=e.width,te=e.height,q=e.margin,P=e.colors,X=P===void 0?Ct.colors:P,A=e.borderWidth,Y=A===void 0?Ct.borderWidth:A,F=e.borderColor,H=F===void 0?Ct.borderColor:F,ee=e.enableArcLabels,ce=ee===void 0?Ct.enableArcLabels:ee,B=e.arcLabel,ae=B===void 0?Ct.arcLabel:B,je=e.arcLabelsSkipAngle,me=je===void 0?Ct.arcLabelsSkipAngle:je,ke=e.arcLabelsTextColor,he=ke===void 0?Ct.arcLabelsTextColor:ke,ue=e.arcLabelsRadiusOffset,re=ue===void 0?Ct.arcLabelsRadiusOffset:ue,ge=e.arcLabelsComponent,$e=e.enableArcLinkLabels,pe=$e===void 0?Ct.enableArcLinkLabels:$e,ye=e.arcLinkLabel,Se=ye===void 0?Ct.arcLinkLabel:ye,Ce=e.arcLinkLabelsSkipAngle,Ue=Ce===void 0?Ct.arcLinkLabelsSkipAngle:Ce,Ge=e.arcLinkLabelsOffset,_t=Ge===void 0?Ct.arcLinkLabelsOffset:Ge,St=e.arcLinkLabelsDiagonalLength,ut=St===void 0?Ct.arcLinkLabelsDiagonalLength:St,ct=e.arcLinkLabelsStraightLength,bt=ct===void 0?Ct.arcLinkLabelsStraightLength:ct,Qe=e.arcLinkLabelsThickness,Ke=Qe===void 0?Ct.arcLinkLabelsThickness:Qe,De=e.arcLinkLabelsTextOffset,Dt=De===void 0?Ct.arcLinkLabelsTextOffset:De,pn=e.arcLinkLabelsTextColor,Yn=pn===void 0?Ct.arcLinkLabelsTextColor:pn,hr=e.arcLinkLabelsColor,Kn=hr===void 0?Ct.arcLinkLabelsColor:hr,kr=e.arcLinkLabelComponent,On=e.defs,Mr=On===void 0?Ct.defs:On,tr=e.fill,Sr=tr===void 0?Ct.fill:tr,ri=e.isInteractive,uo=ri===void 0?Ct.isInteractive:ri,Ki=e.onClick,No=e.onMouseEnter,Ps=e.onMouseMove,zn=e.onMouseLeave,co=e.tooltip,xa=co===void 0?Ct.tooltip:co,yc=e.activeId,bc=e.onActiveIdChange,xc=e.defaultActiveId,qa=e.transitionMode,kl=qa===void 0?Ct.transitionMode:qa,pi=e.legends,Un=pi===void 0?Ct.legends:pi,Rr=e.forwardLegendData,$o=e.role,fo=$o===void 0?Ct.role:$o,Lr=qde(O,te,q),ho=Lr.outerWidth,_a=Lr.outerHeight,it=Lr.margin,Yt=Lr.innerWidth,nr=Lr.innerHeight,ht=p4t({data:t,id:r,value:o,valueFormat:a,colors:X}),ii=v4t({data:ht,width:Yt,height:nr,fit:_,innerRadius:C,startAngle:p,endAngle:x,padAngle:b,sortByValue:l,cornerRadius:T,activeInnerRadiusOffset:$,activeOuterRadiusOffset:M,activeId:yc,onActiveIdChange:bc,defaultActiveId:xc,forwardLegendData:Rr}),Ga=ii.dataWithArc,Ya=ii.legendData,Ko=ii.arcGenerator,mi=ii.centerX,Bn=ii.centerY,pr=ii.radius,Cr=ii.innerRadius,Ka=ii.setActiveId,po=ii.toggleSerie,mo=Sht(Mr,Ga,Sr),Vr={arcs:null,arcLinkLabels:null,arcLabels:null,legends:null};d.includes("arcs")&&(Vr.arcs=u.jsx(b4t,{center:[mi,Bn],data:Ga,arcGenerator:Ko,borderWidth:Y,borderColor:H,isInteractive:uo,onClick:Ki,onMouseEnter:No,onMouseMove:Ps,onMouseLeave:zn,setActiveId:Ka,tooltip:xa,transitionMode:kl},"arcs")),pe&&d.includes("arcLinkLabels")&&(Vr.arcLinkLabels=u.jsx(Gwt,{center:[mi,Bn],data:Ga,label:Se,skipAngle:Ue,offset:_t,diagonalLength:ut,straightLength:bt,strokeWidth:Ke,textOffset:Dt,textColor:Yn,linkColor:Kn,component:kr},"arcLinkLabels")),ce&&d.includes("arcLabels")&&(Vr.arcLabels=u.jsx(Fwt,{center:[mi,Bn],data:Ga,label:ae,radiusOffset:re,skipAngle:me,textColor:he,transitionMode:kl,component:ge},"arcLabels")),Un.length>0&&d.includes("legends")&&(Vr.legends=u.jsx(f4t,{width:Yt,height:nr,data:Ya,legends:Un,toggleSerie:po},"legends"));var wa=y4t({dataWithArc:Ga,arcGenerator:Ko,centerX:mi,centerY:Bn,radius:pr,innerRadius:Cr});return u.jsx(XL,{width:ho,height:_a,margin:it,defs:mo,role:fo,children:d.map(function(ji,gi){return Vr[ji]!==void 0?Vr[ji]:typeof ji=="function"?u.jsx(m.Fragment,{children:m.createElement(ji,wa)},gi):null})})},ume=function(e){var t=e.isInteractive,n=t===void 0?Ct.isInteractive:t,r=e.animate,i=r===void 0?Ct.animate:r,o=e.motionConfig,a=o===void 0?Ct.motionConfig:o,s=e.theme,l=e.renderWrapper,c=lme(e,x4t);return u.jsx(HL,{animate:i,isInteractive:n,motionConfig:a,renderWrapper:l,theme:s,children:u.jsx(_4t,Om({isInteractive:n},c))})};const w4t="_label_1nl74_1",k4t="_value_1nl74_6",cme={label:w4t,value:k4t};function yh(e){return u.jsx(Ey,{children:u.jsx(S4t,{...e})})}function S4t({value:e,label:t,valueColor:n}){const r=typeof e=="string"?e:e.toLocaleString();return u.jsxs(W,{direction:"column",minWidth:"0",gap:"10px",children:[u.jsx(Z,{className:cme.label,children:t}),u.jsx(Z,{className:cme.value,style:n?{color:n}:void 0,children:r})]})}const C4t="_header-text_uidb2_1",j4t="_tooltip_uidb2_8",oC={headerText:C4t,tooltip:j4t};function T4t({storage:e}){var a;const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((s,l)=>{var c,d,f;return{type:QS[l],activeEntries:(c=e.count)==null?void 0:c[l],egressCount:(d=e.count_tx)==null?void 0:d[l],egressBytes:(f=e.bytes_tx)==null?void 0:f[l]}})},[e]),n=m.useMemo(()=>{const s=rt.sum(e.count),l=e.capacity-s;return`${Math.round(s/l*100)}%`},[e.capacity,e.count]),r=koe(e.expired_count,1e4),i=m.useRef([]);m.useMemo(()=>{i.current.push({ts:performance.now(),value:e.expired_count})},[e.expired_count]),rx(()=>{const s=performance.now();for(;i.current.length>1&&s-i.current[0].ts>6e4;)i.current.shift()},1e3);const o=e.expired_count-(((a=i.current[0])==null?void 0:a.value)??0);if(t)return u.jsxs(W,{direction:"column",gap:gc,children:[u.jsx(Z,{className:oC.headerText,children:"Storage Stats"}),u.jsxs(W,{gap:eme,wrap:"wrap",children:[u.jsxs(qr,{columns:Qpe,minWidth:pO,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(yh,{label:"Expired (/s)",value:`${Math.trunc(r.valuePerSecond??0)}`}),u.jsx(yh,{label:"Expired (Last Min)",value:`${o.toLocaleString()}`}),u.jsx(yh,{label:"Total Evicted",value:e.evicted_count}),u.jsx(yh,{label:"Capacity Used",value:n})]}),u.jsx(Mt,{minWidth:eC,minHeight:eC,flexGrow:"1",flexBasis:"0",children:u.jsx(E4t,{storage:e,usedCapacity:n})})]})]})}const dme=["#48295C","#562800","#132D21"],I4t=e=>dme[e%dme.length];function E4t({storage:e,usedCapacity:t}){const n=m.useMemo(()=>{const r=rt.sum(e.count);return[{id:"unused",label:"Unused",value:e.capacity-r,color:"#222"},...e.count.map((i,o)=>({id:QS[o]+o,label:QS[o],value:i})).sort((i,o)=>o.value-i.value).map((i,o)=>({...i,color:I4t(o)}))]},[e]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:o=>o.data.color,arcLabelsSkipAngle:10,arcLinkLabelsSkipAngle:10,arcLabelsTextColor:"#9F9F9F",enableArcLinkLabels:!1,layers:["arcs","arcLabels",N4t(t)],tooltip:$4t,animate:!1,innerRadius:.7,arcLabel:o=>o.data.label})})}function N4t(e){return function({dataWithArc:t,centerX:n,centerY:r}){return u.jsx("text",{y:r-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"28px",fill:"#9F9F9F"},children:u.jsx("tspan",{x:n,dy:5,children:e})})}}function $4t(e){const t=e.datum.value;return u.jsx("div",{className:oC.tooltip,children:u.jsxs(Z,{style:{whiteSpace:"nowrap"},children:[e.datum.label,":\xA0",t]})})}function M4t({messages:e}){const t=m.useMemo(()=>e.num_bytes_rx.map((n,r)=>{var i,o,a,s;return{type:xwt[r],ingressBytes:(i=e.num_bytes_rx)==null?void 0:i[r],egressBytes:(o=e.num_bytes_tx)==null?void 0:o[r],ingressMessages:(a=e.num_messages_rx)==null?void 0:a[r],egressMessages:(s=e.num_messages_tx)==null?void 0:s[r]}}),[e]);if(t)return u.jsxs(W,{direction:"column",gap:gc,minWidth:tC,children:[u.jsx(Z,{className:Md.headerText,children:"Message Stats"}),u.jsxs(q0,{variant:"surface",className:Md.root,size:"1",children:[u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Message Type"}),u.jsx(Wi,{align:"right",children:"Ingress /s"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Ingress Throughput /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map((n,r)=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(P1,{value:n.ingressMessages??0}),u.jsx(P1,{value:n.egressMessages??0}),u.jsx(P1,{value:n.ingressBytes??0,inBytes:!0}),u.jsx(P1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}const fme={id:"Stake",direction:-1};function R4t(){const e=C6(),t=J(NG),n=J($G),r=m.useRef(new Map),[i,o]=m.useState([]),[a,s]=m.useState(fme);m.useEffect(()=>{var f;if(!t)return;const d=Object.entries(t);if(!i.length&&((f=d[0])!=null&&f[1])){const p=Object.keys(d[0][1]);o(p),s(fme)}for(const[p,v]of d)r.current.set(p,v)},[i,t]),m.useEffect(()=>{if(n)for(const d of n.changes){const f=r.current.get(d.row_index.toString());f&&(f[d.column_name]=d.new_value)}},[n]);const l=m.useCallback((d,f)=>{if(f{(i==null?void 0:i.indexOf(d))!==void 0&&s(f=>{let p=-1;f.id===d&&(p=-f.direction);const v=i.filter(b=>b!==d),x=new Array(v.length).fill(0),y={col:[d,...v],dir:[p,...x]};return e({topic:"gossip",key:"query_sort",id:32,params:y}),{id:d,direction:p}})},[i,e]);return{query:l,sort:c,colIds:i,rowsCacheRef:r,colSorting:a}}const L4t="_header-text_1ozln_1",P4t="_peer-table_1ozln_6",O4t="_header-cell_1ozln_22",z4t="_header-separator_1ozln_26",aC={headerText:L4t,peerTable:P4t,headerCell:O4t,headerSeparator:z4t},D4t=1e3,gO=0,sC=e=>{if(typeof e=="number"){const t=Ib(e);return`${t.value} ${t.unit}`}return e},A4t={Stake:{width:80,align:"right",format:e=>typeof e=="number"?Math.abs(Math.trunc(e/dd)).toLocaleString():e},Pubkey:{width:200},Name:{width:160},Country:{width:80},"IP Addr":{width:80},"Ingress Pull":{width:80,align:"right",format:sC},"Ingress Push":{width:80,align:"right",format:sC},"Egress Pull":{width:80,align:"right",format:sC},"Egress Push":{width:80,align:"right",format:sC}},lC={width:150};function b_(e){return A4t[e]??lC}function F4t(){const e=J(EG)??D4t,{query:t,sort:n,colIds:r,rowsCacheRef:i,colSorting:o}=R4t(),[a,s]=m.useState(()=>({row:-1,colId:""})),[l,c]=m.useState(!1),[d,f]=m.useState(Object.fromEntries(r.map(b=>[b,b_(b).width??lC.width])));m.useEffect(()=>{f(Object.fromEntries(r.map(b=>[b,b_(b).width??lC.width])))},[r]);const p=m.useCallback(({startIndex:b,endIndex:w})=>{const _=Math.max(0,b-gO),S=Math.min(w+gO,e>0?e-1:w+gO);t(_,S)},[t,e]),v=m.useMemo(()=>U4t(r,d),[r,d]),x=m.useRef(a);x.current=a,MFe("c",b=>{var w,_;if(b.ctrlKey){const S=(_=(w=i.current)==null?void 0:w.get(x.current.row.toString()))==null?void 0:_[x.current.colId];S&&(WN(S.toString()),c(!0),setTimeout(()=>{c(!1)},500))}});const y=m.useCallback((b,w)=>{f(_=>({..._,[b]:Math.max(w,b_(b).width??lC.width)}))},[]);return u.jsxs(W,{direction:"column",gap:gc,flexGrow:"1",children:[u.jsx(Z,{className:aC.headerText,children:"Peers"}),u.jsx(Mt,{flexGrow:"1",minHeight:"300px",asChild:!0,children:u.jsx(mKe,{className:Te("rt-TableRoot","rt-r-size-1","rt-variant-surface",aC.peerTable),totalCount:e,increaseViewportBy:200,rangeChanged:p,components:v,itemContent:b=>{var _;const w=(_=i.current)==null?void 0:_.get(b.toString());return w?r.map(S=>{const C=b_(S),j=C.align,T=C.format,E=w==null?void 0:w[S],$=a.row===b&&a.colId===S;return u.jsx(ni,{align:j,onClick:()=>s({row:b,colId:S}),style:{outline:$?`1px dashed var(--gray-${l?11:10})`:"none",outlineOffset:-2},children:u.jsx(Z,{truncate:!0,as:"div",children:T?T(E):E})},S)}):r!=null&&r.length?u.jsx(u.Fragment,{children:r.map(S=>u.jsx(ni,{children:"\xA0"},S))}):u.jsx(u.Fragment,{children:u.jsx(ni,{children:"&nsbsp;"})})},fixedHeaderContent:()=>u.jsx(la,{children:r.map(b=>{const{align:w}=b_(b),_=o.id===b?o.direction:void 0,S=C=>{C.preventDefault();const j=C.clientX,T=d[b],E=D=>y(b,T+(D.clientX-j)),$=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",$)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",$)};return u.jsx(Wi,{align:w,p:"0",children:u.jsxs(W,{align:"center",height:"100%",children:[u.jsx(Z0,{children:u.jsx(Mt,{flexGrow:"1",className:aC.headerCell,asChild:!0,children:u.jsx("button",{onClick:()=>n(b),children:u.jsxs(W,{align:"center",gap:"1",justify:w==="right"?"end":"start",children:[w==="right"&&u.jsx(hme,{direction:_}),u.jsx(Z,{truncate:!0,title:b,as:"div",children:b}),w!=="right"&&u.jsx(hme,{direction:_})]})})})}),u.jsx("div",{style:{paddingLeft:"8px",paddingRight:"2px",cursor:"col-resize"},onPointerDown:S,children:u.jsx(ps,{orientation:"vertical",size:"2",className:aC.headerSeparator})})]})},b)})})})})]})}function hme({direction:e}){return u.jsxs(u.Fragment,{children:[e===-1&&u.jsx(F$,{height:12,width:12}),e===1&&u.jsx(U$,{height:12,width:12})]})}function U4t(e,t){return{Table:n=>u.jsxs("table",{...n,className:"rt-TableRootTable",style:{...n.style,overflow:"inherit",tableLayout:"fixed"},children:[u.jsx("colgroup",{children:e.map(r=>u.jsx("col",{style:{width:t[r]}},r))}),n.children]}),TableHead:n=>u.jsx(rp,{...n,style:{...n.style,background:"#0e131c"}}),TableRow:n=>u.jsx(la,{...n})}}function pme({activeStake:e,delinquentStake:t}){const n=m.useMemo(()=>[{id:"non-delinquent",label:"Non-delinquent",value:Number(e),color:_ne,textColor:pk},{id:"delinquent",label:"Delinquent",value:Number(t),color:fd,textColor:fd}],[e,t]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:{datum:"data.color"},enableArcLabels:!1,enableArcLinkLabels:!1,layers:["arcs",B4t],tooltip:W4t,animate:!1,innerRadius:.7})})}const B4t=({dataWithArc:e,centerX:t,centerY:n})=>{const r=rt.sum(e.map(({value:i})=>i));return u.jsx("text",{y:n-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"12px",fill:"red"},children:e.map(({value:i,data:o,id:a},s)=>u.jsxs("tspan",{x:t,dy:`${s}em`,style:{fill:o.textColor},children:[(i/r*100).toFixed(2),"%"]},a))})};function W4t(e){const t=e.datum.value,n=Ls(BigInt(t));return u.jsx("div",{className:oC.tooltip,children:u.jsxs(Z,{children:[e.datum.label,":\xA0",n]})})}function V4t(){{const e=J(Ig);if(!e)return null;const t=Ls(e.activeStake),n=Ls(e.delinquentStake);return u.jsxs(W,{direction:"column",gap:gc,children:[u.jsx(Z,{className:oC.headerText,children:"Validator Stats"}),u.jsxs(W,{gap:eme,wrap:"wrap",children:[u.jsxs(qr,{columns:Qpe,minWidth:pO,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(yh,{label:"Total Validators",value:e.validatorCount.toLocaleString(),valueColor:vN}),u.jsx(yh,{label:"Non-delinquent Stake",value:t,valueColor:pk}),u.jsx(yh,{label:"RPC Nodes",value:e.rpcCount.toLocaleString(),valueColor:Yu}),u.jsx(yh,{label:"Delinquent Stake",value:n,valueColor:fd})]}),u.jsx(Mt,{minWidth:eC,minHeight:eC,flexGrow:"1",flexBasis:"0",children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})]})}}const vO=2;function mme({colors:e,maxValue:t,history:n,capacity:r}){const i=m.useRef(),o=m.useRef(t);o.current=t;const a=m.useMemo(()=>{var y;if(!i.current||!n.length)return;const{height:s,width:l}=i.current;if(s<0||l<0)return;const c=r??n.length,d=c>1?l/(c-1):0,f=c-n.length,p=Math.max(o.current,Math.max(...n.flatMap(b=>b.filter(Cb))),1),v=n[n.length-1].length,x=Array.from({length:v}).map(()=>new Array);for(let b=0;bb.map(({x:w,y:_})=>`${w},${_}`).join(" "))},[n,r]);return u.jsx(Mt,{flexGrow:"1",minHeight:"80px",children:u.jsx($s,{children:({height:s,width:l})=>{if(i.current={height:s,width:l},!!a&&(a==null?void 0:a.length)===e.length)return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:s,style:{background:"#222222"},children:a.map((c,d)=>u.jsx("polyline",{points:c,stroke:e[d],strokeWidth:vO,fill:"none",strokeLinecap:"round",strokeOpacity:.8},e[d]))})}})})}const H4t=100,Z4t=3e4,yO="#197CAE",bO="var(--amber-8)",gme="#CBD4D6",vme=[yO,bO],yme=Math.ceil(Z4t/H4t);function q4t(){const{value:e,history:t}=J(IG);return u.jsxs(qr,{columns:{initial:"1",sm:"2",lg:"4"},gapY:"3",gapX:"7",children:[u.jsx(Y4t,{health:e,history:t}),u.jsx(G4t,{health:e,history:t}),u.jsx(K4t,{health:e,history:t}),u.jsx(X4t,{health:e,history:t})]})}function bme({title:e,children:t}){return u.jsxs(W,{direction:"column",gap:gc,children:[u.jsx(Z,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:e}),u.jsx(Ey,{style:{flex:1},children:t})]})}function xme({value:e,label:t,valueColor:n,pct:r}){return u.jsxs(W,{direction:"column",children:[u.jsxs(W,{gap:"2",children:[u.jsx(Z,{style:{color:"var(--gray-11)"},children:t}),u.jsxs(Z,{style:{color:"var(--gray-10)"},children:[D$.format(r*100),"%"]})]}),u.jsx(Z,{style:{color:n},size:"8",children:Math.round(e).toLocaleString()})]})}function xO({value:e,label:t,valueColor:n,pct:r,size:i}){return u.jsxs(W,{direction:"column",children:[u.jsx(Z,{style:{color:"var(--gray-11)"},children:t}),u.jsx(Z,{style:{color:n},size:i==="lg"?"8":"6",children:Math.round(e).toLocaleString()}),r!==void 0&&u.jsxs(Z,{style:{color:"var(--gray-10)"},size:"2",children:[D$.format(r*100),"%"]})]})}function uC(e,t){const n=m.useRef(t);return n.current=t,m.useMemo(()=>e.map(r=>n.current(r.value)),[e])}function G4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_success,o=e.num_pull_response_entries_rx_success,a=i+o,s=Math.max(n,r,a),l=rt.clamp(i/n,0,1),c=rt.clamp(o/r,0,1),d=[gme,...vme],f=uC(t,p=>[p.num_push_entries_rx_success+p.num_pull_response_entries_rx_success,p.num_push_entries_rx_success,p.num_pull_response_entries_rx_success]);return u.jsx(bme,{title:"Entries Success /s",children:u.jsxs(W,{gap:"6",children:[u.jsxs(W,{direction:"column",gap:"3",children:[u.jsx(xO,{label:"Total",value:a,valueColor:gme,size:"lg"}),u.jsxs(W,{gap:"3",children:[u.jsx(xO,{label:"Push",value:i,valueColor:yO,pct:l}),u.jsx(xO,{label:"Pull",value:o,valueColor:bO,pct:c})]})]}),u.jsx(mme,{colors:d,maxValue:s,history:f,capacity:yme})]})})}function _O({title:e,valueA:t,valueB:n,totalA:r,totalB:i,labelA:o,labelB:a,history:s}){const l=t/r,c=n/i,d=Math.max(r,i);return u.jsx(bme,{title:e,children:u.jsxs(W,{gap:"6",height:"100%",children:[u.jsxs(W,{direction:"column",gap:"3",minWidth:"120px",children:[u.jsx(xme,{label:o,value:t,valueColor:yO,pct:rt.clamp(l,0,1)}),u.jsx(xme,{label:a,value:n,valueColor:bO,pct:rt.clamp(c,0,1)})]}),u.jsx(mme,{colors:vme,maxValue:d,history:s,capacity:yme})]})})}function Y4t({health:e,history:t}){const n=e.num_push_messages_rx_success+e.num_push_messages_rx_failure,r=e.num_pull_response_messages_rx_success+e.num_pull_response_messages_rx_failure,i=e.num_push_messages_rx_failure,o=e.num_pull_response_messages_rx_failure,a=uC(t,s=>[s.num_push_messages_rx_failure,s.num_pull_response_messages_rx_failure]);return u.jsx(_O,{title:"Message Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function K4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_duplicate,a=uC(t,s=>[s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_duplicate]);return u.jsx(_O,{title:"Entry Duplicates /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function X4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_failure-e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_failure-e.num_pull_response_entries_rx_duplicate,a=uC(t,s=>[s.num_push_entries_rx_failure-s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_failure-s.num_pull_response_entries_rx_duplicate]);return u.jsx(_O,{title:"Entry Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function J4t(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function Q4t(){return this.eachAfter(J4t)}function e3t(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this}function t3t(e,t){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(e.call(t,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function n3t(e,t){for(var n=this,r=[n],i=[],o,a,s,l=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a=0;)n+=r[i].value;t.value=n})}function o3t(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function a3t(e){for(var t=this,n=s3t(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function s3t(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function l3t(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function u3t(){return Array.from(this)}function c3t(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function d3t(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*f3t(){var e=this,t,n=[e],r,i,o;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,o=r.length;i=0;--s)i.push(o=a[s]=new cC(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(v3t)}function h3t(){return wO(this).eachBefore(g3t)}function p3t(e){return e.children}function m3t(e){return Array.isArray(e)?e[1]:null}function g3t(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function v3t(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function cC(e){this.data=e,this.depth=this.height=0,this.parent=null}cC.prototype=wO.prototype={constructor:cC,count:Q4t,each:e3t,eachAfter:n3t,eachBefore:t3t,find:r3t,sum:i3t,sort:o3t,path:a3t,ancestors:l3t,descendants:u3t,leaves:c3t,links:d3t,copy:h3t,[Symbol.iterator]:f3t};function y3t(e){if(typeof e!="function")throw new Error;return e}function x_(){return 0}function __(e){return function(){return e}}function b3t(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function x3t(e,t,n,r,i){for(var o=e.children,a,s=-1,l=o.length,c=e.value&&(r-t)/e.value;++s_&&(_=c),T=b*b*j,S=Math.max(_/T,T/w),S>C){b-=c;break}C=S}a.push(l={value:b,dice:v1?r:1)},n}(w3t);function S3t(){var e=_me,t=!1,n=1,r=1,i=[0],o=x_,a=x_,s=x_,l=x_,c=x_;function d(p){return p.x0=p.y0=0,p.x1=n,p.y1=r,p.eachBefore(f),i=[0],t&&p.eachBefore(b3t),p}function f(p){var v=i[p.depth],x=p.x0+v,y=p.y0+v,b=p.x1-v,w=p.y1-v;b{let s=0,l=0;const c=[];for(;l{var p;const l=n[s];if(!l)return;const c=rt.sum(l.vote.map(v=>v.delinquent?0:Number(v.activated_stake))),d=ire(l.info),f=((p=l.info)==null?void 0:p.name)??void 0;return{stake:c,iconUrl:d,name:f}},[n]),o=J(yre);if(!r)return;const a=Ib(e.total_throughput);return u.jsxs(W,{direction:"column",gap:gc,minHeight:"300px",minWidth:"300px",flexGrow:"1",children:[u.jsxs(W,{justify:"between",children:[u.jsx(Z,{className:Rd.headerText,children:t}),u.jsxs("span",{children:[u.jsx(Z,{className:Rd.totalText,children:"Total"}),u.jsxs(Z,{className:Rd.throughputText,children:["\xA0",`${a.value} ${a.unit}`,"/s"]})]})]}),u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:s,width:l})=>u.jsx(P3t,{sortedData:r,width:l,height:s,getPeerValues:i,totalActivePeersStake:o})})})]})}function P3t({sortedData:e,width:t,height:n,totalActivePeersStake:r,getPeerValues:i}){const[o,a]=m.useState(),[s,l]=m.useState(!1),c=m.useRef(),d=m.useCallback(y=>{a(b=>(y!==b&&l(!1),y))},[]),f=m.useCallback(y=>{WN(y),l(!0),clearTimeout(c.current),c.current=setTimeout(()=>l(!1),1e3)},[l]);Og(()=>{clearTimeout(c.current)});const p=m.useMemo(()=>RLe||s?"ID copied to clipboard":"Click to copy ID",[s]),v=m.useMemo(()=>{const y=wO(e).sum(w=>w.value??0),b=S3t();return b.tile(L3t),b.size([t,n]),b.round(!0),b.paddingInner(2),b(y).leaves()},[t,n,e]),x=m.useMemo(()=>{let y=[];const b=Math.ceil(e.children.length/wme.length);for(let w=0;wd(void 0),children:v.map((y,b)=>{const w=`${y.data.id}-${y.x0}-${y.x1}-${y.y0}-${y.y1}`,_=o===w;return u.jsx(O3t,{leaf:y,color:x[b],totalActivePeersStake:r,getPeerValues:i,tooltipText:_?p:void 0,openTooltip:()=>d(w),copyId:()=>f(y.data.id)},y.data.id)})})}function O3t({leaf:e,color:t,totalActivePeersStake:n,getPeerValues:r,tooltipText:i,openTooltip:o,copyId:a}){const s=e.x1-e.x0,l=e.y1-e.y0;return u.jsx(ci,{open:!!i,className:Rd.tooltip,content:i,disableHoverableContent:!0,side:"bottom",onOpenChange:c=>{c&&o()},children:u.jsx(Mt,{onClick:a,onMouseEnter:()=>{o()},className:Rd.leaf,position:"absolute",width:`${s}px`,height:`${l}px`,style:{transform:`translate(${e.x0}px, ${e.y0}px)`,"--leaf-color":t},children:u.jsx(z3t,{width:s,height:l,leaf:e,totalActivePeersStake:n,getPeerValues:r})})})}function z3t({width:e,height:t,leaf:n,totalActivePeersStake:r,getPeerValues:i}){const o=n.data.id,a=i(o),s=(a==null?void 0:a.name)||"Private",l=e>=20&&t>=20,c=e>=100&&t>=100?14:e>=55&&t>=55?12:e>=32&&t>=32?8:4,d=e>=30&&t>=38,f=t>=150,p=t>=60,v=e>=82;return u.jsxs(W,{className:Rd.leafContent,height:"100%",direction:"column",align:"center",justify:"center",overflow:"hidden",p:l?"8px":"0",gap:"4px",children:[l&&u.jsx(ks,{url:a==null?void 0:a.iconUrl,size:c}),d&&u.jsx(Z,{className:Te(Rd.name,{[Rd.large]:f}),truncate:!0,align:"center",children:s}),p&&u.jsxs(W,{className:Rd.stats,align:"center",justify:"center",gap:"5px",children:[u.jsx(D3t,{value:n.value}),v&&(a==null?void 0:a.stake)!==void 0&&u.jsx(A3t,{stake:a.stake,totalActivePeersStake:r})]})]})}function D3t({value:e}){const t=Ib(e??0);return u.jsxs(Z,{truncate:!0,children:[t.value," ",t.unit]})}function A3t({stake:e,totalActivePeersStake:t}){const n=m.useMemo(()=>{if(e===0)return"0";const r=100*e/Number(t);return r<.01?"<.01":r.toFixed(2)},[e,t]);return u.jsxs(W,{align:"center",justify:"center",gap:"3px",children:[u.jsx(fUe,{width:8,height:8}),u.jsxs(Z,{truncate:!0,children:[n,"%"]})]})}function F3t(){const e=J(TG),[t]=Bie(e,5e3,{leading:!0,maxWait:5e3}),n=e==null?void 0:e.storage;if(!xi&&!(!n||!t))return u.jsxs(W,{gap:"30px",direction:"column",align:"stretch",justify:"center",height:"100%",children:[u.jsxs(W,{gapX:"30px",gapY:hO,wrap:"wrap",children:[u.jsx(kme,{networkTraffic:t.ingress,label:"Ingress"}),u.jsx(kme,{networkTraffic:t.egress,label:"Egress"})]}),u.jsxs(W,{gap:"30px",wrap:"wrap",children:[u.jsxs(W,{direction:"column",flexGrow:"1",flexBasis:"0",gap:hO,minWidth:tC,children:[u.jsx(T4t,{storage:n}),u.jsx(Swt,{storage:n})]}),u.jsxs(W,{direction:"column",flexGrow:"1",flexBasis:"0",gap:hO,minWidth:tC,children:[u.jsx(V4t,{}),u.jsx(M4t,{messages:e.messages})]})]}),u.jsx(q4t,{}),u.jsx(F4t,{})]})}const U3t=lp("/gossip")({component:F3t,beforeLoad:({context:e,location:t})=>{if(xi)throw cT({to:"/"})}}),B3t=lp("/about")({component:W3t});function W3t(){return u.jsx("div",{className:"p-2",children:u.jsx("h3",{children:"About"})})}const dC=600,Sme=Co(new Array(dC).fill(void 0)),kO=(e,t)=>e.length?"M"+e.map(({x:n,y:r})=>`L ${n} ${t-r}`).join(" ").slice(1)+`L ${e[e.length-1].x} ${t} L ${e[0].x} ${t}, L ${e[0].x} ${e[0].y}`:"";function V3t(){const e=J(Sme),t=m.useRef(),n=Math.max(...e.map(i=>(i==null?void 0:i.total)??0)),r=m.useMemo(()=>{if(!t.current||!e.length)return;const{height:i,width:o}=t.current,a=e.length,s=(o+2)/a,l=(i-10)/(n||1),c=e.map((f,p)=>{if(f!==void 0)return{x:p*s,voteY:f.vote*l,nonvoteFailedY:(f.nonvote_failed+f.vote)*l,nonvoteY:(f.nonvote_success+f.nonvote_failed+f.vote)*l}}).filter(Cb),d=i-n*l;return{votePath:kO(c.map(f=>({x:f.x,y:f.voteY})),i),failedPath:kO(c.map(f=>({x:f.x,y:f.nonvoteFailedY})),i),nonvotePath:kO(c.map(f=>({x:f.x,y:f.nonvoteY})),i),totalTpsY:isNaN(d)?void 0:d}},[n,e]);return u.jsx(u.Fragment,{children:u.jsx($s,{children:({height:i,width:o})=>(t.current={height:i,width:o},r?u.jsx(u.Fragment,{children:u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:o,height:i,fill:"none",children:[u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:r.nonvotePath,fill:Sne}),u.jsx("path",{d:r.failedPath,fill:jne}),u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",fill:Cne,d:r.votePath}),r.totalTpsY&&u.jsxs(u.Fragment,{children:[u.jsx("line",{x1:"0",y1:r.totalTpsY,x2:o,y2:r.totalTpsY,strokeDasharray:"4",stroke:"rgba(255, 255, 255, 0.30)"}),u.jsx("text",{x:"0",y:r.totalTpsY-3,fill:gN,fontSize:"8",fontFamily:"Inter Tight",children:n.toLocaleString()})]})]})}):null)})})}const H3t="_axis-text_juf3d_1",Cme={axisText:H3t},Z3t="_container_muoex_1",q3t="_label_muoex_6",G3t="_value_muoex_12",Y3t="_small_muoex_17",K3t="_medium_muoex_21",X3t="_large_muoex_25",J3t="_append-value_muoex_31",dr={container:Z3t,label:q3t,value:G3t,small:Y3t,medium:K3t,large:X3t,appendValue:J3t};function ya({label:e,value:t,valueColor:n,valueSize:r,animateInteger:i=!1,appendValue:o,appendValueColor:a,className:s}){const l=m.useMemo(()=>Te(dr.value,{[dr.small]:r==="small",[dr.medium]:r==="medium",[dr.large]:r==="large"}),[r]);return u.jsxs(W,{direction:"column",align:"start",className:Te(dr.container,s),style:{"--value-color":n},children:[u.jsx(Z,{className:dr.label,children:e}),u.jsxs(W,{align:"baseline",gap:"1",width:"100%",children:[typeof t=="number"&&i?u.jsx(Mx,{value:t,className:l}):u.jsx(Z,{className:l,children:t}),o&&u.jsx(Z,{className:dr.appendValue,style:{"--append-value-color":a},children:o})]})]})}const Q3t="_vote-tps_kqvrt_1",ekt={voteTps:Q3t};function tkt(){const e=J(OT);return u.jsxs(W,{direction:"column",gap:"2",minWidth:"100px",children:[u.jsx(ya,{label:"Total TPS",value:(e==null?void 0:e.total.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Yu,valueSize:"medium"}),u.jsxs(W,{gap:"4",wrap:"wrap",children:[u.jsx(ya,{label:"Non-vote TPS Success",value:(e==null?void 0:e.nonvote_success.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Hf,valueSize:"small"}),u.jsx(ya,{label:"Non-vote TPS Fail",value:(e==null?void 0:e.nonvote_failed.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:fd,valueSize:"small"}),u.jsx(ya,{label:"Vote TPS",value:(e==null?void 0:e.vote.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:hd,valueSize:"small",className:ekt.voteTps})]})]})}function nkt({className:e}){return u.jsx(so,{className:e,children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",children:[u.jsx(kd,{text:"Transactions"}),u.jsxs(W,{gap:"4",flexGrow:"1",children:[u.jsx(tkt,{}),u.jsxs(W,{direction:"column",flexGrow:"1",children:[u.jsx(Mt,{flexGrow:"1",minWidth:"180px",overflow:"hidden",children:u.jsx(V3t,{})}),u.jsxs(W,{justify:"between",children:[u.jsx(Z,{className:Cme.axisText,children:"~ 1min ago"}),u.jsx(Z,{className:Cme.axisText,children:"Now"})]})]})]})]})})}const rkt="_stat-row_1ia1g_1",jme={statRow:rkt};function ikt(){const e=J(Ig);if(!e)return null;const t=Ls(e.activeStake),n=Ls(e.delinquentStake);return u.jsxs(W,{gap:"2",flexGrow:"1",children:[u.jsxs(W,{direction:"column",gap:"2",minWidth:"0",children:[u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"Total Validators",value:e.validatorCount.toString(),valueColor:vN,valueSize:"medium"}),u.jsx(ya,{label:"Non-delinquent Stake",value:t,valueColor:pk,appendValue:"SOL",valueSize:"medium"})]}),u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"RPC Nodes",value:e.rpcCount.toString(),valueColor:Yu,valueSize:"small"}),u.jsx(ya,{label:"Delinquent Stake",value:n,valueColor:fd,appendValue:"SOL",valueSize:"small"})]})]}),u.jsx(Mt,{style:{minWidth:"200px"},children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})}function okt(){return J(Ig)?u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",children:[u.jsx(kd,{text:"Validators"}),u.jsx(ikt,{})]})}):null}const akt="_stat-row_11bim_1",Tme={statRow:akt};function skt(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(kd,{text:"Status"}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(lkt,{}),u.jsx(ckt,{})]}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(dkt,{}),u.jsx(ukt,{})]})]})})}function lkt(){const e=J(oo);return u.jsx(Mt,{children:u.jsx(ya,{label:"Slot",value:e??"",valueColor:Yu,valueSize:"medium",animateInteger:!0})})}function ukt(){const{nextLeaderSlot:e}=Ox({showNowIfCurrent:!0});return u.jsx(ya,{label:"Next leader slot",value:(e==null?void 0:e.toString())??"\u221E",valueColor:Gte,valueSize:e===void 0?"large":"small"})}function ckt(){const{progressSinceLastLeader:e,nextSlotText:t}=Ox({showNowIfCurrent:!0});return u.jsxs(W,{direction:"column",children:[u.jsx(ya,{label:"Time until leader",value:t,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{value:e})]})}function dkt(){const e=J(DT),t=J(RG),n=m.useMemo(()=>e==="voting"?pN:e==="non-voting"?Yte:e==="delinquent"?fd:gN,[e]),r=m.useMemo(()=>t==null||e==="delinquent"?void 0:`${t>150?"> 150":t} behind`,[t,e]);return u.jsx(ya,{label:"Vote Status",value:e??"Unknown",valueColor:n,valueSize:"small",appendValue:r,appendValueColor:wne})}const fkt="_stat-row_kmlhn_1",hkt="_progress_kmlhn_13",SO={statRow:fkt,progress:hkt};function pkt(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(kd,{text:"Epoch"}),u.jsx("div",{className:SO.statRow,children:u.jsx(mkt,{})}),u.jsx("div",{className:SO.statRow,children:u.jsx(gkt,{})})]})})}function mkt(){var t;const e=J(fi);return u.jsx(Mt,{children:u.jsx(ya,{label:"Current Epoch",value:((t=e==null?void 0:e.epoch)==null?void 0:t.toString())??"",valueColor:Yu,valueSize:"medium"})})}function gkt(){const e=J(oo),t=J(fi),n=J(Eg),r=m.useMemo(()=>{if(t===void 0||e===void 0)return"";const o=(t.end_slot-e)*n,a=fn.fromMillis(o).rescale();return kp(a)},[t,e,n]),i=m.useMemo(()=>{if(t===void 0||e===void 0)return 0;const o=e-t.start_slot,a=t.end_slot-t.start_slot,s=o/a*100;return s<0||s>100?0:s},[t,e]);return u.jsxs(W,{direction:"column",children:[u.jsx(ya,{label:"Time to Next Epoch",value:r,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{className:SO.progress,value:i})]})}function vkt(){if(!xi)return u.jsx(so,{style:{padding:"10px 13px 10px 10px"},children:u.jsxs(W,{direction:"column",gap:"4",children:[u.jsxs(W,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(kd,{text:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{height:"400px",chartId:"overview-shreds-chart",isOnStartupScreen:!1})]})})}const ykt="_chart_7b67t_1",bkt="_table_7b67t_7",xkt="_row_7b67t_7",_kt="_total-row_7b67t_8",w_={chart:ykt,table:bkt,row:xkt,totalRow:_kt},Ime=18;function wkt(){const e=J(zT),t=J(_G),n=J(wG);if(e)return u.jsxs(W,{wrap:"wrap",gap:"4",children:[u.jsx(Eme,{metrics:e.ingress,history:t.history,type:"Ingress"}),u.jsx(Eme,{metrics:e.egress,history:n.history,type:"Egress"})]})}function Eme({metrics:e,history:t,type:n}){return u.jsx(so,{style:{flexGrow:1},children:u.jsxs(W,{direction:"column",height:"100%",gap:gc,children:[u.jsxs(Z,{className:Md.headerText,children:["Network ",n]}),u.jsxs(q0,{variant:"ghost",className:Te(Md.root,w_.table),size:"1",style:{"--bar-height":`${Ime}px`},children:[u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{width:"60px",children:"Protocol"}),u.jsx(Wi,{align:"right",width:"80px",children:"Current"}),u.jsx(Wi,{minWidth:{xl:"250px",lg:"160px",md:"100px",initial:"60px"},children:"Utilization"}),u.jsx(Wi,{align:"right",width:{xl:"240px",lg:"200px",md:"100px",initial:"200px"},children:"History (1m)"})]})}),u.jsxs(G0,{children:[e.map((r,i)=>{const o=H$[i];if(!(xi&&(o==="gossip"||o==="repair")))return u.jsx($me,{label:o,value:r,maxValue:aoe[n][o],history:t,mapHistory:a=>a[i]??0},i)}),u.jsx($me,{label:"Total",value:rt.sum(e),maxValue:aoe[n].Total,history:t,mapHistory:rt.sum,className:w_.totalRow})]})]})]})})}const kkt=1e8;function Nme(e,t){return Math.min(1,e/t)}const Skt={halfLifeMs:1e3};function $me({label:e,value:t,maxValue:n=kkt,history:r,mapHistory:i,className:o}){const a=Bg(t,Skt),s=Ib(a),l=Nme(a,n),c=m.useRef(i);c.current=i;const d=m.useMemo(()=>r.map(f=>({ts:f.ts,value:Nme(c.current(f.values),n)})),[r,n]);return u.jsxs(la,{className:Te(w_.row,o),children:[u.jsx($4,{children:e}),u.jsxs(ni,{align:"right",children:[s.value," ",s.unit]}),u.jsx(ni,{className:w_.chart,children:u.jsx(W,{align:"center",children:u.jsx(Y$,{value:a,max:n,barWidth:2})})}),u.jsx(ni,{className:w_.chart,children:u.jsx(cx,{value:l,history:d,background:vk,windowMs:6e4,height:Ime,updateIntervalMs:500,tickMs:1e3})})]})}const Ckt="_group-header_1lbrc_1",jkt="_header_1lbrc_6",Tkt="_wrap_1lbrc_9",Ikt="_table_1lbrc_15",Ekt="_data-row_1lbrc_19",Nkt="_green_1lbrc_20",$kt="_red_1lbrc_24",Mkt="_pct-gradient_1lbrc_43",Rkt="_no-padding_1lbrc_51",Lkt="_increment-text_1lbrc_56",Pkt="_low-increment_1lbrc_61",Okt="_mid-increment_1lbrc_64",zkt="_high-increment_1lbrc_67",Dkt="_light-border-bottom_1lbrc_79",Akt="_right-border_1lbrc_83",fr={groupHeader:Ckt,header:jkt,wrap:Tkt,table:Ikt,dataRow:Ekt,green:Nkt,red:$kt,pctGradient:Mkt,noPadding:Rkt,incrementText:Lkt,lowIncrement:Pkt,midIncrement:Okt,highIncrement:zkt,lightBorderBottom:Dkt,rightBorder:Akt},Fkt="_table-description-dialog_1shm8_1",Ukt="_table_1shm8_1",Bkt="_th_1shm8_8",Wkt="_tr_1shm8_14",Vkt="_name_1shm8_22",Hkt="_close-button_1shm8_28",bh={tableDescriptionDialog:Fkt,table:Ukt,th:Bkt,tr:Wkt,name:Vkt,closeButton:Hkt},CO=[{name:"",pinned:!0,metrics:[{uniqueName:"Name",description:"The name and index of each tile. A tile represents a sandboxed process or individual thread that communicates with other tiles using message passing queues.",headerColWidth:70}]},{name:"Liveness",metrics:[{uniqueName:"CPU",description:"The CPU index on which the tile was last recorded executing.",headerColWidth:50,headerColAlign:"right"},{uniqueName:"Heartbeat",description:"Liveness indicator based on a periodic heartbeat timestamp written by tiles to a chunk of shared memory.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"Backp",description:"If a tile is backpressured, at least one outgoing message queue is at-capacity which can prevent the tile from moving forward with useful work.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Backp Count",description:"The number of cumulative | immediate (10ms) times a CPU transitioned into a backpressured state.",headerColWidth:120,headerColAlign:"right"}]},{name:"Utilization",metrics:[{uniqueName:"Utilization",description:"Visualized the percentage of the tile's CPU time spent doing useful work. Time spent in a context switch is not included.",headerColWidth:150},{uniqueName:"History (1m)",description:"A historical, low-pass-filtered view of CPU utilization.",headerColWidth:150}]},{name:"System",metrics:[{uniqueName:"% Hkeep",description:"The percentage of CPU time spent on housekeeping tasks, which are meant to be infrequent and generally more expensive than tasks on the critical path.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Wait",description:"The percentage of CPU time spent waiting for useful work to do.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Backp",description:"The percentage of CPU time during which the tile was backpressured, excluding housekeeping time.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Work",description:"The percentage of CPU time spent performing useful work, excluding housekeeping and backpressured time.",headerColWidth:70,headerColAlign:"right"}]},{name:"Scheduler",metrics:[{uniqueName:"% Wait (scheduler)",columnName:"% Wait",description:"The percentage of CPU time spent waiting in the runqueue before being dispatched.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% User (scheduler)",columnName:"% User",description:"The percentage of CPU time spent executing in user mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% System (scheduler)",columnName:"% System",description:"The percentage of CPU time spent executing in kernel mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% Idle (scheduler)",columnName:"% Idle",description:"The percentage of CPU time unaccounted for by the other 3 regimes.",headerColWidth:70,headerColAlign:"right",wrap:!0}]},{name:"Exceptions",metrics:[{uniqueName:"Minflt",description:"The number of cumulative minor page faults. Minor page faults occur for pages in RAM not indexed by the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Majflt",description:"The number of cumulative major page faults. Major page faults occur for pages that are neither in RAM nor the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Nivcsw",description:"The number of cumulative | immediate (10ms) involuntary context switches.",headerColWidth:150,headerColAlign:"right"},{uniqueName:"Nvcsw",description:"The number of cumulative | immediate (10ms) voluntary context switches.",headerColWidth:150,headerColAlign:"right"}]}],Mme=CO.filter(({pinned:e})=>e),Zkt=CO.filter(({pinned:e})=>!e),Rme=Mme.reduce((e,t)=>{for(const n of t.metrics)e+=n.headerColWidth;return e},1);function qkt(){return u.jsxs(WZ,{children:[u.jsx(VZ,{children:u.jsx(W,{children:u.jsx(ci,{content:"Click to view column definitions.",children:u.jsx(Zie,{color:"var(--gray-11)",cursor:"pointer"})})})}),u.jsxs(HZ,{maxHeight:"85dvh",maxWidth:`min(80dvw, calc(0.8 * ${Zte}))`,size:"1",className:bh.tableDescriptionDialog,children:[u.jsx(ZZ,{size:"2",className:bh.title,mb:"0px",children:"Column Definitions"}),u.jsxs(q0,{size:"1",className:bh.table,children:[u.jsx("colgroup",{children:u.jsx("col",{style:{width:"110px"}})}),u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{className:bh.th,children:"Column"}),u.jsx(Wi,{className:bh.th,children:"Definition"})]})}),u.jsx(G0,{children:CO.map(e=>e.metrics.map(t=>u.jsxs(la,{className:bh.tr,children:[u.jsx(ni,{className:bh.name,children:t.uniqueName}),u.jsx(ni,{children:t.description})]},t.uniqueName)))})]}),u.jsx(W,{justify:"end",children:u.jsx(qZ,{children:u.jsx(hs,{className:bh.closeButton,children:"Close"})})})]})]})}const Lme=18,Gkt=m.memo(function(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",gap:gc,width:"100%",children:[u.jsxs(W,{align:"center",gap:"2",children:[u.jsx(Z,{className:Md.headerText,children:"Tiles"}),u.jsx(qkt,{})]}),u.jsx(Ykt,{})]})})});function Ykt(){return u.jsxs(W,{children:[u.jsx(Pme,{isPinned:!0}),u.jsx(Pme,{isPinned:!1})]})}function Pme({isPinned:e}){const t=J(rg),n=J(CG),r=e?Mme:Zkt,i=m.useMemo(()=>({"--bar-height":`${Lme}px`,minWidth:e?`${Rme}px`:"0px",flexBasis:e?`${Rme}px`:void 0}),[e]);if(!(!t||!n))return u.jsxs(q0,{variant:"ghost",className:Te(Md.root,fr.table),size:"1",style:i,children:[u.jsx("colgroup",{children:r.map(o=>o.metrics.map(a=>u.jsx("col",{style:{width:a.headerColWidth}},a.uniqueName)))}),u.jsxs(rp,{className:fr.header,children:[u.jsx(la,{children:r.map((o,a)=>u.jsx(Wi,{colSpan:o.metrics.length,className:Te(fr.groupHeader,{[fr.rightBorder]:e||a!==r.length-1}),children:o.name},o.name))}),u.jsx(la,{className:fr.lightBorderBottom,children:r.map((o,a)=>o.metrics.map((s,l)=>u.jsx(Wi,{align:s.headerColAlign,className:Te({[fr.wrap]:!!s.wrap,[fr.rightBorder]:e||a!==r.length-1&&l===o.metrics.length-1}),children:s.columnName??s.uniqueName},s.uniqueName)))})]}),u.jsx(G0,{children:t.map((o,a)=>u.jsx(Kkt,{tile:o,liveTileMetrics:n,idx:a,isPinned:e},`${o.kind}${o.kind_id}`))})]})}function Kkt({tile:e,liveTileMetrics:t,idx:n,isPinned:r}){const i=A$(t,(s,l)=>s?l?Object.keys(l).every(c=>{var d,f;return rt.isEqual((d=s[c])==null?void 0:d[n],(f=l[c])==null?void 0:f[n])}):!0:!1),o=t.alive[n]??(i==null?void 0:i.alive[n]);if(o===2)return;const a=t.timers[n]||(i==null?void 0:i.timers[n]);if(a)return r?u.jsx(la,{className:fr.dataRow,children:u.jsxs(ni,{className:fr.rightBorder,children:[e.kind,":",e.kind_id]})}):u.jsx(Xkt,{alive:o,timers:a,liveTileMetrics:t,prevLiveTileMetricsIdx:i,idx:n})}function Xkt({alive:e,timers:t,liveTileMetrics:n,prevLiveTileMetricsIdx:r,idx:i}){const o=A$(n.sched_timers[i]),a=n.sched_timers[i]||o||[],[s,l,c,d]=a.map(D=>D===-1?0:D),f=n.nivcsw[i]??(r==null?void 0:r.nivcsw[i]),p=n.nvcsw[i]??(r==null?void 0:r.nvcsw[i]),v=n.in_backp[i]??(r==null?void 0:r.in_backp[i]),x=n.backp_msgs[i]??(r==null?void 0:r.backp_msgs[i]),y=n.last_cpu[i]??(r==null?void 0:r.last_cpu[i]),b=n.minflt[i]??(r==null?void 0:r.minflt[i]),w=n.majflt[i]??(r==null?void 0:r.majflt[i]),_=ox(f),S=ox(p),C=ox(x);for(let D=0;D1})}),u.jsx(xh,{pct:T}),u.jsx(xh,{pct:E,className:Te({[fr.red]:E>0})}),u.jsx(xh,{pct:$,className:Te(fr.pctGradient,fr.rightBorder),style:{"--pct":`${$}%`}}),u.jsx(xh,{pct:s}),u.jsx(xh,{pct:c}),u.jsx(xh,{pct:d}),u.jsx(xh,{pct:l,className:fr.rightBorder}),u.jsx(ni,{align:"right",children:(b==null?void 0:b.toLocaleString())??"-"}),u.jsx(ni,{align:"right",children:(w==null?void 0:w.toLocaleString())??"-"}),u.jsxs(ni,{align:"right",children:[(f==null?void 0:f.toLocaleString())??"-"," |",u.jsx(Ome,{value:f!=null&&_!=null?f-_:0})]}),u.jsxs(ni,{align:"right",children:[(p==null?void 0:p.toLocaleString())??"-"," |",u.jsx(Ome,{value:p!=null&&S!=null?p-S:0})]})]})}function Ome({value:e}){const t=e.toLocaleString();return u.jsxs(Z,{className:Te(fr.incrementText,{[fr.lowIncrement]:1<=e&&e<=10,[fr.midIncrement]:11<=e&&e<=100,[fr.highIncrement]:e>=101}),children:["+",t]})}function xh({pct:e,...t}){return u.jsx(ni,{align:"right",...t,children:e==null?"--":`${e.toFixed(2)}%`})}const zme=300,Jkt=m.memo(function({idx:e}){const t=J(l3),n=J(jG),r=t!=null&&t[e]&&t[e]>=0?1-Math.max(0,t[e]):-1,i=A$(r,(c,d)=>!(d!=null&&c!=null&&d>=0&&c>=0&&d!==c)),o=m.useRef({count:0,sum:0}),[a,s]=m.useState(r);m.useEffect(()=>{r>=0&&(o.current.count++,o.current.sum+=r)},[r]),rx(()=>{o.current.count!==0&&(s(o.current.sum/o.current.count),o.current={count:0,sum:0})},zme);const l=m.useMemo(()=>n.history.map(c=>{const d=c.values[e]??0;return{ts:c.ts,value:d>=0?1-Math.max(0,d):0}}),[n.history,e]);return u.jsxs(u.Fragment,{children:[u.jsx(ni,{className:fr.noPadding,children:u.jsx(W,{align:"center",children:u.jsx(Y$,{value:r>=0?r:i??0,max:1,barWidth:2})})}),u.jsx(ni,{className:Te(fr.noPadding,fr.rightBorder),children:u.jsx(cx,{value:a,history:l,background:vk,windowMs:6e4,height:Lme,updateIntervalMs:zme,tickMs:1e3})})]})}),Qkt="_slot-label-card_1pson_1",e6t="_slot-label-name_1pson_13",t6t="_slot-label-dt_1pson_16",n6t="_dt-sign_1pson_19",r6t="_slot-bar_1pson_24",i6t="_dim_1pson_29",o6t="_slot-bar-track_1pson_34",a6t="_next-leader-container_1pson_38",s6t="_next-leader-timer-label_1pson_44",l6t="_next-leader-timer-container_1pson_50",wl={slotLabelCard:Qkt,slotLabelName:e6t,slotLabelDt:t6t,dtSign:n6t,slotBar:r6t,dim:i6t,slotBarTrack:o6t,nextLeaderContainer:a6t,nextLeaderTimerLabel:s6t,nextLeaderTimerContainer:l6t};function Dme(e){return m.useMemo(()=>{const t=new Map,n=r=>{var i;r.slot!=null&&(t.has(r.slot)?(i=t.get(r.slot))==null||i.push(r):t.set(r.slot,[r]))};for(const r of e)n(r);return t},[e])}const jO=2,O1=`${jO}px`,zm="5px",Ame=2,Fme=34,k_=Fme-Fme%2,u6t="#A09000",c6t="#0ABF9E",d6t="#4AA7C1",f6t="#08A24D",h6t="#AC4902",p6t="#3F7BF4",m6t="#AF49F2",g6t="#2497EE",v6t="#A09000",y6t="#0ABF9E",b6t="#4AA7C1",x6t="#08A24D",_6t="#AC4902",w6t="#3F7BF4",k6t="#AF49F2",S6t="#2497EE";function C6t(){if(!J(ol))return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:gc,children:[u.jsx(Z,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:"Slots"}),u.jsx(T6t,{})]})})}function j6t(e,t){if(!(t==null||e==null))return e-t}function _h(e,t,n,r,i){return{label:e,slot:t,slotDt:j6t(t,n),labelColor:r,barColor:i}}const Ume=14,S_=m.createContext({barWidth:Ume,shrinkSlotsLabel:!1,useLabelGrid:!1});function T6t(){const[e,t]=m.useState(Ume),n=J(vG),r=J(pG),i=J(PT),o=J(yG),a=J(Gy),s=J(dp),l=J(mG),c=J(Rb),d=Hn("(max-width: 1300px)"),f=Hn("(max-width: 1000px)"),{storageSlotBar:p,rootSlotBar:v,voteSlotBar:x,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,optimisticallyConfirmedBar:_,nextLeaderSlotBar:S}=m.useMemo(()=>{const $=_h("Storage",n,s,u6t,v6t),D=_h("Root",r,s,c6t,y6t),M=_h("Voted",i,s,d6t,b6t),O=_h("Repair",o,s,h6t,_6t),te=_h("Turbine",a,s,p6t,w6t),q=_h("Processed",s,s,f6t,x6t),P=_h("Confirmed",l,s,m6t,k6t),X=_h("Next Leader",c,s,g6t,S6t);return{storageSlotBar:$,rootSlotBar:D,voteSlotBar:M,repairSlotBar:O,turbineSlotBar:te,replaySlotBar:q,optimisticallyConfirmedBar:P,nextLeaderSlotBar:X}},[c,l,o,s,r,n,a,i]),C=m.useMemo(()=>({barWidth:e,shrinkSlotsLabel:d,useLabelGrid:f}),[e,d,f]);if(!s)return;const j=Eb([x.slot,y.slot,b.slot,w.slot,_.slot]),T=r!=null||n!=null?Math.max(k_,Eb([s,a])-Eb([r,n])):k_,E=Math.max(T/8,k_/2+(k_-T));return u.jsxs(S_.Provider,{value:C,children:[f&&u.jsx($6t,{storageSlotBar:p,rootSlotBar:v,voteSlotBar:x,repairSlotBar:y,turbineSlotBar:b,confirmedSlotBar:_,replaySlotBar:w,nextLeaderSlotBar:S}),u.jsxs(W,{gap:O1,children:[u.jsx(I6t,{storageSlotBar:p,rootSlotBar:v,repairSlotBar:y}),u.jsxs(qr,{columns:`${T}fr ${E}fr`,gapX:O1,flexGrow:"1",children:[u.jsx(E6t,{voteSlotBar:x,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,confirmedSlotBar:_,minSlot:r??s-32,maxSlot:j,setBarWidth:t}),u.jsx(N6t,{nextLeaderSlotBar:S,minSlot:j})]})]})]})}const Bme=20;function I6t({storageSlotBar:e,rootSlotBar:t,repairSlotBar:n}){const{barWidth:r,useLabelGrid:i}=m.useContext(S_),[o,a]=Ss(),s=m.useMemo(()=>[e,t],[t,e]),l=m.useMemo(()=>[...s,n],[n,s]),c=Dme(l),d=m.useMemo(()=>{if(!r)return 0;const _=a.width-(r*3-jO*2),S=Math.max(Ame,r/2);return Math.min(20,Math.trunc(_/S))},[r,a.width]),f=Eb([e.slot,t.slot]),p=Pze([e.slot,t.slot,n.slot])-1,v=f-p,x=v<7?r:void 0,y=v>Bme,b=y?Bme:v,w=f-b;return u.jsxs(W,{direction:"column",gap:zm,minWidth:i?"30px":void 0,children:[!i&&u.jsx(W,{gap:zm,justify:"end",children:s.map(_=>u.jsx(vu,{slotBarInfo:_},_.label))}),u.jsxs(W,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:O1,ref:o,children:[u.jsx(Vme,{count:d}),Array.from({length:b}).map((_,S)=>{const C=w+S+1,j=y&&S===0?c.get(n.slot??0):c.get(C);return j?u.jsx(TO,{colors:j.map(({barColor:T})=>T),barWidth:x},C):u.jsx(fC,{barWidth:x},C)})]})]})}function E6t({voteSlotBar:e,repairSlotBar:t,turbineSlotBar:n,replaySlotBar:r,confirmedSlotBar:i,maxSlot:o,minSlot:a,setBarWidth:s}){const[l,{width:c}]=Ss(),{useLabelGrid:d}=m.useContext(S_),f=m.useMemo(()=>[e,i,r,t,n],[i,t,r,n,e]),p=Dme(f),v=rt.clamp(o-a,k_,100),x=m.useRef(v);return x.current=v,m.useEffect(()=>{if(c){const y=Math.trunc((c-jO*(v-1))/v);s(y)}},[v,s,c]),u.jsxs(W,{direction:"column",gap:zm,ref:l,minWidth:"100px",children:[!d&&u.jsx(W,{gap:zm,justify:"end",children:f.map(y=>u.jsx(vu,{slotBarInfo:y},y.label))}),u.jsx(W,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:O1,children:Array.from({length:v}).map((y,b)=>{const w=a+b+1,_=p.get(w);return _?u.jsx(TO,{colors:_.map(({barColor:S})=>S)},w):u.jsx(fC,{},w)})})]})}function N6t({nextLeaderSlotBar:e,minSlot:t}){const{barWidth:n,useLabelGrid:r}=m.useContext(S_),[i,o]=Ss(),a=m.useMemo(()=>{if(!n)return 0;const l=o.width-n,c=Math.max(Ame,n/2);return Math.trunc(l/c)},[n,o.width]),s=e.slot!=null?Math.min(a,e.slot-t):a;return u.jsxs(W,{direction:"column",gap:zm,minWidth:"0",className:wl.nextLeaderContainer,justify:"between",children:[!r&&u.jsxs(W,{justify:"end",gap:zm,children:[u.jsx(Wme,{}),u.jsx(vu,{slotBarInfo:e},e.label)]}),u.jsxs(W,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:O1,ref:i,children:[u.jsx(Vme,{count:s}),e.slot&&u.jsx(TO,{colors:[e.barColor],barWidth:n/2})]})]})}function Wme(){const{progressSinceLastLeader:e,nextSlotText:t}=Ox({showNowIfCurrent:!1});return u.jsxs(W,{direction:"column",flexGrow:"1",p:"5px",align:"stretch",justify:"between",minWidth:"70px",className:wl.nextLeaderTimerContainer,children:[u.jsxs(Z,{align:"center",wrap:"nowrap",children:[u.jsx(Z,{style:{color:"#919191"},className:wl.nextLeaderTimerLabel,children:"Time Until Leader"}),u.jsxs(Z,{style:{color:"#BCBCBC"},children:["\xA0",t]})]}),u.jsx("div",{children:u.jsx(a1,{value:e,height:"2px",duration:"500ms"})})]})}const vu=m.memo(function({slotBarInfo:e}){const{shrinkSlotsLabel:t}=m.useContext(S_),{slot:n,slotDt:r,labelColor:i,label:o}=e;if(n==null||r==null)return;const a=`${o}${t?"":" Slot"}`,s=`${Math.abs(r)}`;return u.jsxs(W,{direction:"column",align:"stretch",className:wl.slotLabelCard,minWidth:"50px",children:[u.jsxs(W,{gap:"5px",justify:"between",align:"stretch",style:{color:i},children:[u.jsx(Z,{className:wl.slotLabelName,weight:"bold",wrap:"nowrap",truncate:!0,dir:"rtl",children:a}),e.label==="Processed"?u.jsx(Z,{style:{fontSize:"10px",lineHeight:"14px"},children:"\u{1F4CD}"}):u.jsxs(Z,{truncate:!0,className:wl.slotLabelDt,weight:"bold",children:[e.label!=="Next Leader"&&u.jsx(Za,{className:wl.dtSign,children:r===0?" ":r>0?"+":"-"}),u.jsx(Z,{truncate:!0,children:s})]})]}),u.jsx(Mx,{value:n,containerRowJustify:"center"})]})});function TO({colors:e,barWidth:t}){const n=t?void 0:"1";return u.jsx(qr,{rows:"repeat(auto-fill, 1fr)",gap:O1,flexGrow:n,children:e.map(r=>u.jsx(fC,{barWidth:t,color:r},r))})}const fC=m.memo(function({isDim:e,color:t,barWidth:n}){const r=n?void 0:"1";return u.jsx(Mt,{width:`${n}px`,flexGrow:r,className:Te(wl.slotBar,{[wl.dim]:e}),style:{"--bar-color":t}})}),Vme=function({count:e}){return Array.from({length:e}).map((t,n)=>u.jsx(fC,{isDim:!0},n))};function $6t({storageSlotBar:e,rootSlotBar:t,voteSlotBar:n,repairSlotBar:r,turbineSlotBar:i,replaySlotBar:o,confirmedSlotBar:a,nextLeaderSlotBar:s}){return u.jsxs(qr,{columns:{xs:"4",initial:"2"},gap:zm,children:[u.jsx(vu,{slotBarInfo:e}),u.jsx(vu,{slotBarInfo:t}),u.jsx(vu,{slotBarInfo:n}),u.jsx(vu,{slotBarInfo:a}),u.jsx(vu,{slotBarInfo:o}),u.jsx(vu,{slotBarInfo:r}),u.jsx(vu,{slotBarInfo:i}),u.jsx(vu,{slotBarInfo:s}),u.jsx(Mt,{gridColumn:{xs:"span 4",initial:"span 2"},children:u.jsx(Wme,{})})]})}const M6t="_stat-row_1xsdi_1",R6t="_storage-stat-container_1xsdi_10",IO={statRow:M6t,storageStatContainer:R6t},L6t="_trailing_10pox_1",P6t={trailing:L6t};function O6t(e,t,n){const r=t.indexOf("."),i=n.indexOf("."),o=r!==-1?r:t.length,a=i!==-1?i:n.length,s=e-o,l=a+s;return l<0||l>=n.length||t[e]!==n[l]}function EO({value:e,changedColor:t,unchangedColor:n,className:r}){const i=m.useRef(void 0);m.useEffect(()=>{i.current=e},[e]);const o=i.current,a=e.split(""),s=o===void 0?0:a.findIndex((l,c)=>O6t(c,e,o));return u.jsx(Z,{className:r,children:a.map((l,c)=>{const d=s!==-1&&c>=s;return u.jsx("span",{style:{color:d?t:n},children:l},c)})})}const NO={Unknown:{changed:fk,unchanged:hk},Good:{changed:mne,unchanged:gne},Average:{changed:vne,unchanged:yne},Bad:{changed:bne,unchanged:xne}};function z6t(){const e=J(c3),{percentage:t,hits:n,misses:r,status:i}=m.useMemo(()=>{if(!e)return{percentage:"-",hits:"-",misses:"-",status:"Unknown"};const{hits:o,lookups:a}=e,s=a===0?0:o/a*100,l=a===0?"Unknown":s<99.95?"Bad":s<99.999?"Average":"Good";return{percentage:(Math.trunc(s*100)/100).toFixed(2),hits:o.toLocaleString(),misses:(a-o).toLocaleString(),status:l}},[e]);return u.jsxs(W,{className:Te(dr.container),direction:"column",align:"start",gap:"1",children:[u.jsxs(Z,{className:dr.label,children:[u.jsx(Z,{children:"Hit Rate"})," ",u.jsx(Z,{className:P6t.trailing,children:"Trailing 1m"})," ",u.jsx(Z,{style:{color:NO[i].unchanged},children:i})]}),u.jsxs(W,{gap:"2",align:"center",children:[u.jsxs(W,{align:"baseline",gap:"1",minWidth:"70px",children:[u.jsx(EO,{value:t,changedColor:NO[i].changed,unchangedColor:NO[i].unchanged,className:Te(dr.value,dr.small)}),u.jsx(Z,{className:dr.appendValue,children:"%"})]}),u.jsxs(W,{align:"baseline",gap:"1",children:[u.jsx(EO,{value:n,changedColor:fk,unchangedColor:hk,className:Te(dr.value,dr.small)}),u.jsx(Z,{className:dr.appendValue,children:"Hits"})]}),u.jsxs(W,{align:"baseline",gap:"1",children:[u.jsx(EO,{value:r,changedColor:fk,unchangedColor:hk,className:Te(dr.value,dr.small)}),u.jsx(Z,{className:dr.appendValue,children:"Misses"})]})]})]})}function D6t(){const e=J(c3),{progress:t,numerator:n,denominator:r}=m.useMemo(()=>{if(!e)return{progress:0,numerator:{value:"-",unit:"B"},denominator:{value:"-",unit:"B"}};const{size_bytes:i,free_bytes:o}=e,a=i-o,s=Da(a,2),l=Da(i,2),c=i?rt.clamp(a/i*100,0,100):0,d=Sg.findIndex(f=>f.unit===s.unit);return Sg.findIndex(f=>f.unit===l.unit)===d+1?{numerator:Da(a,3,l.unit),denominator:l,progress:c}:{numerator:s,denominator:l,progress:c}},[e]);return u.jsxs(W,{direction:"column",className:IO.storageStatContainer,children:[u.jsxs(W,{className:dr.container,direction:"column",align:"start",children:[u.jsx(Z,{className:dr.label,children:"Storage"}),u.jsxs(W,{align:"baseline",gap:"1",children:[u.jsx(Z,{className:Te(dr.value,dr.small),style:{color:Yu},children:n.value}),n.unit!==r.unit&&u.jsx(Z,{className:dr.appendValue,children:n.unit}),u.jsx(Z,{className:Te(dr.value,dr.small),children:"/"}),u.jsx(Z,{className:Te(dr.value,dr.small),children:r.value}),u.jsx(Z,{className:dr.appendValue,children:r.unit})]})]}),u.jsx(a1,{value:t})]})}function A6t(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(kd,{text:"Program Cache"}),u.jsxs("div",{className:IO.statRow,children:[u.jsx(z6t,{}),u.jsx(D6t,{})]}),u.jsx("div",{className:IO.statRow,children:u.jsx(F6t,{})})]})})}function F6t(){const e=J(c3);return u.jsxs(u.Fragment,{children:[u.jsx($O,{label:"Insertions",numTimes:e==null?void 0:e.insertions,bytes:e==null?void 0:e.insertion_bytes}),u.jsx($O,{label:"Evictions",numTimes:e==null?void 0:e.evictions,bytes:e==null?void 0:e.eviction_bytes}),u.jsx($O,{label:"Spills",numTimes:e==null?void 0:e.spills,bytes:e==null?void 0:e.spill_bytes})]})}function $O({label:e,numTimes:t,bytes:n}){const{value:r,appendValue:i}=m.useMemo(()=>{const o=n!==void 0?Da(n):void 0;return{value:t!==void 0?t.toLocaleString():"-",appendValue:o?` (${o.value} ${o.unit})`:void 0}},[n,t]);return u.jsx(ya,{label:e,value:r,valueColor:kne,valueSize:"small",appendValue:i})}const U6t="_cards_hn4o1_1",B6t="_txns-card_hn4o1_5",W6t="_frankendancer_hn4o1_18",MO={cards:U6t,txnsCard:B6t,frankendancer:W6t};function V6t(){return u.jsxs(W,{direction:"column",gap:"4",flexGrow:"1",children:[u.jsx(C6t,{}),u.jsxs(qr,{className:Te(MO.cards,{[MO.frankendancer]:xi}),gap:"4",children:[u.jsx(pkt,{}),u.jsx(skt,{}),u.jsx(okt,{}),!xi&&u.jsx(A6t,{}),u.jsx(nkt,{className:MO.txnsCard})]}),u.jsx(vkt,{}),u.jsx(Ufe,{}),u.jsx(wkt,{}),u.jsx(Gkt,{})]})}const H6t=lp("/")({component:V6t}),Z6t=$pe.update({id:"/slotDetails",path:"/slotDetails",getParentRoute:()=>s1}),q6t=y_.update({id:"/leaderSchedule",path:"/leaderSchedule",getParentRoute:()=>s1}),G6t=U3t.update({id:"/gossip",path:"/gossip",getParentRoute:()=>s1}),Y6t=B3t.update({id:"/about",path:"/about",getParentRoute:()=>s1}),K6t=H6t.update({id:"/",path:"/",getParentRoute:()=>s1}),X6t={IndexRoute:K6t,AboutRoute:Y6t,GossipRoute:G6t,LeaderScheduleRoute:q6t,SlotDetailsRoute:Z6t},J6t=s1._addFileChildren(X6t)._addFileTypes(),Q6t=ca();function e5t(){const e=J(MG),t=Ee(Sme);m.useEffect(()=>{if(!e)return;const i=[...new Array(dC).fill(void 0),...e.flatMap(([o,a,s,l])=>[{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l}])];t(i.slice(i.length-dC))},[t,e]);const n=()=>{if(!e)return;const i=Q6t.get(OT);i!==void 0&&t(o=>{o.push(i),o.length>dC&&o.shift()})},r=m.useRef(n);r.current=n,m.useEffect(()=>{let i;function o(){r.current(),i=setTimeout(o,100)}return o(),()=>clearTimeout(i)},[])}function t5t(){const e=C6();Qu(()=>{e({topic:"summary",key:"ping",id:1})},2e3)}XNe.discriminatedUnion("topic",[z$e,A$e,Z$e,X$e,sMe,cMe,pMe]);function n5t(e,t){return e.key===t}const r5t=400,i5t=100,o5t=130,a5t=100,s5t=100,l5t=25,u5t=300,c5t=1e3,d5t=`${window.location.protocol.startsWith("https")?"wss":"ws"}://${window.location.hostname}:${window.location.port}/websocket`,f5t=!0;function h5t(){const e=Ee(TR),t=p5t(),n=Ee(_G),r=Ee(wG),i=Ee(jG),o=Ee(IG),a=m.useCallback(d=>{n5t(d,"gossipHealth")&&o({value:d.value,history:d.history})},[o]),s=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"ingress":n({values:f,history:p});break;case"egress":r({values:f,history:p});break}},[n,r]),l=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"tileTimers":i({values:f,history:p});break}},[i]),c=m.useCallback(d=>{switch(d.type){case"connected":e(ac.Connected);break;case"connecting":e(ac.Connecting);break;case"disconnected":e(ac.Disconnected);break;case"kvb":for(const f of d.items)t(f);break;case"kv":t(d);break;case"ema":break;case"emaHistoryArray":for(const f of d.items)s(f);break;case"historyArray":for(const f of d.items)l(f);break;case"emaHistoryObject":for(const f of d.items)a(f);break}},[e,t,s,l,a]);Iqe(c)}function p5t(){const e=Ee(uG),t=Ee(qy),n=Ee(cG),r=Ee(cp),i=Ee(rg),o=Ee(fG),a=Ee(hG),s=Ee(s3),[l,c]=Vl(dG),[d,f]=m.useReducer(()=>{const it=l!==void 0?Yf.diff(jt.fromMillis(Math.floor(Number(l.startupTimeNanos)/1e6))):void 0,Yt=it!==void 0?it.as("minutes"):void 0;return Yt!==void 0&&Yt>5?1e3*60:1e3},1e3);Qu(f,1e3);const p=Ee(xG),v=Ba(it=>p(it),d),x=Ee(OT),y=Ba(it=>{x(it)},r5t),b=Ee(zT),w=Ba(it=>{b(it)},a5t),_=Ee(CG),S=Ba(it=>{_(it)},o5t),C=Ee(SG),j=Ba(it=>{C(it)},i5t),T=Ee(cre),E=Ee(kG),$=Ba(it=>{E(it),T(it==null?void 0:it.waterfall)},s5t),D=Ee(l3),M=Ba(it=>{D(it)},l5t),O=Ee(Hl),te=Ee(Zu),q=Ee(QN),P=Ee(MG),X=Ee(DT),A=Ee(RG),Y=Ee(Sre),F=Ee(u3),H=Ee(aDe),ee=Ee(PG),[ce,B]=Vl(fi),ae=Ee(rDe),je=Ee(TG),me=Ba(it=>{je(it)},u5t),ke=Ee(EG),he=Ba(it=>{ke(it)},c5t),ue=Ee(NG),re=Ee($G),ge=Ee(fDe),$e=Ee(pDe),pe=Ee(LG),ye=Ee(dp),Se=Ee(gG),Ce=Ee(SDe),Ue=Ee(CDe),Ge=Ee(TDe),_t=Ee(IDe),St=Ee(EDe),ut=Ee(NDe),ct=m.useCallback(it=>{ae(it.publish.slot,it.publish.level),it.publish.skipped?Ce([it.publish.slot]):Ue(it.publish.slot),it.publish.level==="rooted"&&(zze(it.publish)?Ge(it.publish.slot,it.publish.vote_latency):_t(it.publish.slot)),it.publish.mine&&(it.publish.skipped?F(Yt=>[...(Yt??[]).filter(nr=>nr!==it.publish.slot),it.publish.slot].sort()):F(Yt=>Yt!=null&&Yt.some(nr=>nr===it.publish.slot)?Yt==null?void 0:Yt.filter(nr=>nr!==it.publish.slot):Yt))},[Ge,Ce,_t,Ue,F,ae]),bt=Ee(Gy),Qe=Ee(nZe),Ke=m.useCallback(it=>{bt(it),it!=null&&Qe([it])},[Qe,bt]),De=Ee(yG),Dt=Ee(oZe),pn=m.useCallback(it=>{De(it),it!=null&&Dt([it])},[Dt,De]),Yn=Ee(_7e),hr=Ee(vG),Kn=Ee(PT),kr=Ee(pG),On=Ee(mG),Mr=Ee(bG),tr=Ee(xx.addShredEvents),Sr=Ee(c3),ri=m.useRef(new Map),uo=m.useRef(new Map),Ki=Tp(()=>{ge([...ri.current.values()]),$e([...uo.current.values()]),ri.current.clear(),uo.current.clear()},1e3,{maxWait:1e3}),No=m.useCallback(it=>{if(it.add)for(const Yt of it.add)ri.current.set(Yt.identity_pubkey,Yt),uo.current.delete(Yt.identity_pubkey);if(it.update)for(const Yt of it.update)ri.current.set(Yt.identity_pubkey,Yt);if(it.remove)for(const Yt of it.remove)ri.current.delete(Yt.identity_pubkey),uo.current.set(Yt.identity_pubkey,Yt);Ki()},[Ki]),Ps=Ee(vDe),zn=m.useRef({toAdd:new Set,toRemove:new Set}),co=Tp(()=>{Ps([...zn.current.toAdd],[...zn.current.toRemove]),zn.current.toAdd.clear(),zn.current.toRemove.clear()},1e3,{maxWait:1e3}),xa=m.useCallback((it,Yt)=>{if(it)for(const nr of Yt)zn.current.toAdd.add(nr),zn.current.toRemove.delete(nr);else for(const nr of Yt)zn.current.toAdd.delete(nr),zn.current.toRemove.add(nr);co()},[co]),yc=m.useCallback(it=>{const{topic:Yt,key:nr,value:ht}=it;switch(Yt){case"summary":switch(nr){case"version":{e(ht);break}case"cluster":{t(ht);break}case"commit_hash":{n(ht);break}case"identity_key":{r(ht);break}case"vote_balance":{a(ht);break}case"startup_time_nanos":{c({startupTimeNanos:ht});break}case"tiles":{i(ht);break}case"schedule_strategy":{s(ht);break}case"identity_balance":{o(ht);break}case"estimated_slot_duration_nanos":{v(ht);break}case"estimated_tps":{y(ht);break}case"live_tile_primary_metric":{j(ht);break}case"live_txn_waterfall":{$(ht);break}case"live_tile_timers":{M(ht);break}case"boot_progress":{O(ht);break}case"startup_progress":{te(ht);break}case"tps_history":{P(ht);break}case"vote_state":{X(ht);break}case"vote_distance":{A(ht);break}case"skip_rate":{Y(ht);break}case"completed_slot":{ye(ht);break}case"turbine_slot":{Ke(ht);break}case"repair_slot":{pn(ht);break}case"reset_slot":{Yn(ht);break}case"storage_slot":{hr(ht);break}case"vote_slot":{Kn(ht);break}case"root_slot":{kr(ht);break}case"optimistically_confirmed_slot":{On(ht);break}case"slot_caught_up":Mr(ht);break;case"catch_up_history":{Qe(ht.turbine),Dt(ht.repair);break}case"server_time_nanos":{Se(ht);break}case"live_network_metrics":{w(ht);break}case"live_tile_metrics":S(ht);break;case"live_program_cache":Sr(ht);break}break;case"epoch":switch(nr){case"new":B(ht);break}break;case"gossip":switch(nr){case"network_stats":{me(ht);break}case"peers_size_update":{he(ht);break}case"query_scroll":case"query_sort":{ue(ht);break}case"view_update":{re(ht);break}}break;case"peers":No(ht);break;case"slot":switch(nr){case"skipped_history":{F(ht.sort());break}case"skipped_history_cluster":{Ce(ht);break}case"update":case"query":case"query_detailed":case"query_transactions":{ht&&(H(ht),ct(ht));break}case"query_rankings":{ee(ht);break}case"live_shreds":{tr(ht);break}case"late_votes_history":{ut(ht);break}}break;case"block_engine":{switch(nr){case"update":{pe(ht);break}}break}case"wait_for_supermajority":{switch(nr){case"stakes":{q(ht);break}case"peer_add":{xa(!0,ht);break}case"peer_remove":{xa(!1,ht);break}}break}}},[tr,pn,Dt,Ce,No,xa,Ke,Qe,ct,pe,O,t,n,ye,v,y,me,he,w,j,S,$,M,B,re,ue,o,r,ut,Sr,On,Yn,kr,s,Se,Y,F,Mr,ee,H,te,c,hr,q,i,P,e,a,A,Kn,X]),bc=Ee(oDe),xc=Ee(sDe),qa=Ee(jDe),kl=Ee(Qze);Qu(()=>{bc(),xc(),ce&&F(it=>it==null?void 0:it.filter(Yt=>Yt>=ce.start_slot&&Yt<=ce.end_slot))},5e3),m.useEffect(()=>{ce&&(qa(ce.start_slot,ce.end_slot),kl(ce.epoch))},[qa,kl,ce]),m.useEffect(()=>{ce&&St({startSlot:ce.start_slot,endSlot:ce.end_slot})},[St,ce]);const pi=J(ol),Un=J(TR)===ac.Disconnected,Rr=Ee(xx.deleteSlots);m.useEffect(()=>{Un&&Rr(Un,pi)},[Rr,Un,pi]);const $o=Ee(rZe),fo=Ee(aZe);m.useEffect(()=>{pi||($o(),fo())},[pi,fo,$o]),Qu(()=>{Rr(Un,pi)},pi?1e3:x6/4);const Lr=Ee(bDe),ho=Ee(xDe),_a=J(Gu);return m.useEffect(()=>{Un&&(co.cancel(),zn.current.toAdd.clear(),zn.current.toRemove.clear(),ho())},[co,Un,ho]),Qu(Lr,_a===wn.waiting_for_supermajority?1e3:null),yc}function m5t(){return h5t(),e5t(),t5t(),null}function g5t(e){return new e}function v5t(e){return new Worker("/assets/wsWorker-CiLy8ipA.js",{name:e==null?void 0:e.name})}function y5t(e){return(t,...n)=>{console[e](`(${jt.now().toISO({includeOffset:!1})??""}) [${t}]`,...n)}}const b5t=y5t("error");let yu=null;const Hme=new Cse().setMaxListeners(1e3);let C_=[],Dm=null,Am=null;function Zme(){Dm=null,Am=null;const e=C_;C_=[];for(const t of e)try{Hme.emit(UM,t)}catch(n){b5t("useWsWorker","Error processing worker message:",t.type,n)}}function qme(){Dm!==null&&(cancelAnimationFrame(Dm),Dm=null),Am!==null&&(clearTimeout(Am),Am=null)}function Gme(){Dm!==null||Am!==null||C_.length&&(document.visibilityState==="visible"?Dm=requestAnimationFrame(Zme):Am=window.setTimeout(Zme,0))}function x5t(){(Dm!==null||Am!==null)&&(qme(),Gme())}document.addEventListener("visibilitychange",x5t);function _5t(e){C_.push(e.data),Gme()}function w5t(e,t){yu||e.trim()&&(yu=g5t(v5t),yu.onmessage=_5t,yu.postMessage({type:"connect",websocketUrl:e,compress:t}))}function k5t(){qme(),C_=[],yu&&(yu.postMessage({type:"disconnect"}),yu.terminate(),yu=null)}function S5t({websocketUrl:e,compress:t}){return m.useEffect(()=>(w5t(e,t),()=>k5t()),[e,t]),{sendMessage:m.useCallback(n=>{yu==null||yu.postMessage({type:"send",value:n})},[]),emitter:Hme}}function C5t({children:e}){const{sendMessage:t,emitter:n}=S5t({websocketUrl:d5t,compress:f5t}),r=m.useMemo(()=>({...jse,sendMessage:t,emitter:n}),[t,n]);return u.jsxs(BM.Provider,{value:r,children:[u.jsx(m5t,{}),e]})}const j5t=L9e({routeTree:J6t});y7e(),Vi?(Kme=document.getElementById("favicon"))==null||Kme.setAttribute("href",toe):(Xme=document.getElementById("favicon"))==null||Xme.setAttribute("href",noe);function T5t(){const e=Ee(jg),t=m.useCallback(n=>{e(n),Object.entries(Sze).forEach(([r,i])=>{n.style.setProperty(`--${rt.kebabCase(r)}`,i)})},[e]);return ix(()=>{"fonts"in document&&new FontFace("NotoFlagsOnly","url(assets/NotoFlagsOnly.woff2)",{weight:"normal",style:"normal",display:"swap"}).load().then(n=>{document.fonts.add(n)}).catch(console.error)}),u.jsx($f,{id:"app",appearance:"dark",ref:t,scaling:"90%",children:u.jsx(C5t,{children:u.jsx(z9e,{router:j5t})})})}gj.createRoot(document.getElementById("root")).render(u.jsx(Pe.StrictMode,{children:u.jsx(T5t,{})})); diff --git a/src/disco/gui/dist_dev/assets/index-CKTbDeLd.js b/src/disco/gui/dist_dev/assets/index-CKTbDeLd.js deleted file mode 100644 index 0b563c0f603..00000000000 --- a/src/disco/gui/dist_dev/assets/index-CKTbDeLd.js +++ /dev/null @@ -1,214 +0,0 @@ -var r_e=Object.defineProperty;var i_e=(e,t,n)=>t in e?r_e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $u=(e,t,n)=>i_e(e,typeof t!="symbol"?t+"":t,n);var fC,Yme,Kme,Xme;function o_e(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=t(r);fetch(r.href,i)}})();var Ac=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function to(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wD={exports:{}},v2={},kD={exports:{}},gn={};/** -* @license React -* react.production.min.js -* -* Copyright (c) Facebook, Inc. and its affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var hv=Symbol.for("react.element"),a_e=Symbol.for("react.portal"),s_e=Symbol.for("react.fragment"),l_e=Symbol.for("react.strict_mode"),u_e=Symbol.for("react.profiler"),c_e=Symbol.for("react.provider"),d_e=Symbol.for("react.context"),f_e=Symbol.for("react.forward_ref"),h_e=Symbol.for("react.suspense"),p_e=Symbol.for("react.memo"),m_e=Symbol.for("react.lazy"),SD=Symbol.iterator;function g_e(e){return e===null||typeof e!="object"?null:(e=SD&&e[SD]||e["@@iterator"],typeof e=="function"?e:null)}var CD={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jD=Object.assign,TD={};function Jm(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}Jm.prototype.isReactComponent={},Jm.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},Jm.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ID(){}ID.prototype=Jm.prototype;function uj(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}var cj=uj.prototype=new ID;cj.constructor=uj,jD(cj,Jm.prototype),cj.isPureReactComponent=!0;var ED=Array.isArray,ND=Object.prototype.hasOwnProperty,dj={current:null},$D={key:!0,ref:!0,__self:!0,__source:!0};function MD(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)ND.call(t,r)&&!$D.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1>>1,U=F[ce];if(0>>1;cei(me,ee))kei(he,me)?(F[ce]=he,F[ke]=ee,ce=ke):(F[ce]=me,F[je]=ee,ce=je);else if(kei(he,ee))F[ce]=he,F[ke]=ee,ce=ke;else break e}}return H}function i(F,H){var ee=F.sortIndex-H.sortIndex;return ee!==0?ee:F.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],d=1,f=null,p=3,v=!1,_=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(F){for(var H=n(c);H!==null;){if(H.callback===null)r(c);else if(H.startTime<=F)r(c),H.sortIndex=H.expirationTime,t(l,H);else break;H=n(c)}}function C(F){if(y=!1,S(F),!_)if(n(l)!==null)_=!0,D(j);else{var H=n(c);H!==null&&Y(C,H.startTime-F)}}function j(F,H){_=!1,y&&(y=!1,w($),$=-1),v=!0;var ee=p;try{for(S(H),f=n(l);f!==null&&(!(f.expirationTime>H)||F&&!P());){var ce=f.callback;if(typeof ce=="function"){f.callback=null,p=f.priorityLevel;var U=ce(f.expirationTime<=H);H=e.unstable_now(),typeof U=="function"?f.callback=U:f===n(l)&&r(l),S(H)}else r(l);f=n(l)}if(f!==null)var ae=!0;else{var je=n(c);je!==null&&Y(C,je.startTime-H),ae=!1}return ae}finally{f=null,p=ee,v=!1}}var T=!1,E=null,$=-1,A=5,M=-1;function P(){return!(e.unstable_now()-MF||125ce?(F.sortIndex=ee,t(c,F),n(l)===null&&F===n(c)&&(y?(w($),$=-1):y=!0,Y(C,ee-ce))):(F.sortIndex=U,t(l,F),_||v||(_=!0,D(j))),F},e.unstable_shouldYield=P,e.unstable_wrapCallback=function(F){var H=p;return function(){var ee=p;p=H;try{return F.apply(this,arguments)}finally{p=ee}}}})(DD),zD.exports=DD;var T_e=zD.exports;/** -* @license React -* react-dom.production.min.js -* -* Copyright (c) Facebook, Inc. and its affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var I_e=m,is=T_e;function Ze(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),gj=Object.prototype.hasOwnProperty,E_e=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,FD={},BD={};function N_e(e){return gj.call(BD,e)?!0:gj.call(FD,e)?!1:E_e.test(e)?BD[e]=!0:(FD[e]=!0,!1)}function $_e(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function M_e(e,t,n,r){if(t===null||typeof t>"u"||$_e(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ia(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var yo={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yo[e]=new ia(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yo[t]=new ia(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){yo[e]=new ia(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yo[e]=new ia(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){yo[e]=new ia(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){yo[e]=new ia(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){yo[e]=new ia(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){yo[e]=new ia(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){yo[e]=new ia(e,5,!1,e.toLowerCase(),null,!1,!1)});var vj=/[\-:]([a-z])/g;function yj(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(vj,yj);yo[t]=new ia(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(vj,yj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(vj,yj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!1,!1)}),yo.xlinkHref=new ia("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!0,!0)});function bj(e,t,n,r){var i=yo.hasOwnProperty(t)?yo[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var l=` -`+i[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Tj=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?gv(e):""}function L_e(e){switch(e.tag){case 5:return gv(e.type);case 16:return gv("Lazy");case 13:return gv("Suspense");case 19:return gv("SuspenseList");case 0:case 2:case 15:return e=Ij(e.type,!1),e;case 11:return e=Ij(e.type.render,!1),e;case 1:return e=Ij(e.type,!0),e;default:return""}}function Ej(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case t0:return"Fragment";case e0:return"Portal";case xj:return"Profiler";case _j:return"StrictMode";case kj:return"Suspense";case Sj:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case WD:return(e.displayName||"Context")+".Consumer";case UD:return(e._context.displayName||"Context")+".Provider";case wj:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Cj:return t=e.displayName||null,t!==null?t:Ej(e.type)||"Memo";case ef:t=e._payload,e=e._init;try{return Ej(e(t))}catch{}}return null}function R_e(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ej(t);case 8:return t===_j?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function tf(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ZD(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function O_e(e){var t=ZD(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function w2(e){e._valueTracker||(e._valueTracker=O_e(e))}function qD(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ZD(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function k2(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Nj(e,t){var n=t.checked;return Jr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function GD(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=tf(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function YD(e,t){t=t.checked,t!=null&&bj(e,"checked",t,!1)}function $j(e,t){YD(e,t);var n=tf(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Mj(e,t.type,n):t.hasOwnProperty("defaultValue")&&Mj(e,t.type,tf(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function KD(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Mj(e,t,n){(t!=="number"||k2(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var vv=Array.isArray;function n0(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=S2.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function yv(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var bv={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},P_e=["Webkit","ms","Moz","O"];Object.keys(bv).forEach(function(e){P_e.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),bv[t]=bv[e]})});function nA(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||bv.hasOwnProperty(e)&&bv[e]?(""+t).trim():t+"px"}function rA(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=nA(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var z_e=Jr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Oj(e,t){if(t){if(z_e[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ze(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ze(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Ze(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Ze(62))}}function Pj(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var zj=null;function Dj(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Aj=null,r0=null,i0=null;function iA(e){if(e=Bv(e)){if(typeof Aj!="function")throw Error(Ze(280));var t=e.stateNode;t&&(t=q2(t),Aj(e.stateNode,e.type,t))}}function oA(e){r0?i0?i0.push(e):i0=[e]:r0=e}function aA(){if(r0){var e=r0,t=i0;if(i0=r0=null,iA(e),t)for(e=0;e>>=0,e===0?32:31-(G_e(e)/Y_e|0)|0}var E2=64,N2=4194304;function kv(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $2(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=kv(s):(o&=a,o!==0&&(r=kv(o)))}else a=n&~i,a!==0?r=kv(a):o!==0&&(r=kv(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Sv(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Nl(t),e[t]=n}function Q_e(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Mv),RA=" ",OA=!1;function PA(e,t){switch(e){case"keyup":return Txe.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zA(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var s0=!1;function Exe(e,t){switch(e){case"compositionend":return zA(t);case"keypress":return t.which!==32?null:(OA=!0,RA);case"textInput":return e=t.data,e===RA&&OA?null:e;default:return null}}function Nxe(e,t){if(s0)return e==="compositionend"||!r8&&PA(e,t)?(e=IA(),P2=Xj=sf=null,s0=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=VA(n)}}function ZA(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ZA(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function qA(){for(var e=window,t=k2();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=k2(e.document)}return t}function a8(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Axe(e){var t=qA(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ZA(n.ownerDocument.documentElement,n)){if(r!==null&&a8(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=HA(n,o);var a=HA(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,l0=null,s8=null,Pv=null,l8=!1;function GA(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;l8||l0==null||l0!==k2(r)||(r=l0,"selectionStart"in r&&a8(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Pv&&Ov(Pv,r)||(Pv=r,r=V2(s8,"onSelect"),0h0||(e.current=_8[h0],_8[h0]=null,h0--)}function jr(e,t){h0++,_8[h0]=e.current,e.current=t}var df={},Oo=cf(df),Na=cf(!1),Ph=df;function p0(e,t){var n=e.type.contextTypes;if(!n)return df;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function $a(e){return e=e.childContextTypes,e!=null}function G2(){Or(Na),Or(Oo)}function uF(e,t,n){if(Oo.current!==df)throw Error(Ze(168));jr(Oo,t),jr(Na,n)}function cF(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(Ze(108,R_e(e)||"Unknown",i));return Jr({},n,r)}function Y2(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||df,Ph=Oo.current,jr(Oo,e),jr(Na,Na.current),!0}function dF(e,t,n){var r=e.stateNode;if(!r)throw Error(Ze(169));n?(e=cF(e,t,Ph),r.__reactInternalMemoizedMergedChildContext=e,Or(Na),Or(Oo),jr(Oo,e)):Or(Na),jr(Na,n)}var Wc=null,K2=!1,x8=!1;function fF(e){Wc===null?Wc=[e]:Wc.push(e)}function Xxe(e){K2=!0,fF(e)}function ff(){if(!x8&&Wc!==null){x8=!0;var e=0,t=Qn;try{var n=Wc;for(Qn=1;e>=a,i-=a,Vc=1<<32-Nl(t)+i|n<$?(A=E,E=null):A=E.sibling;var M=p(w,E,S[$],C);if(M===null){E===null&&(E=A);break}e&&E&&M.alternate===null&&t(w,E),x=o(M,x,$),T===null?j=M:T.sibling=M,T=M,E=A}if($===S.length)return n(w,E),Hr&&Dh(w,$),j;if(E===null){for(;$$?(A=E,E=null):A=E.sibling;var P=p(w,E,M.value,C);if(P===null){E===null&&(E=A);break}e&&E&&P.alternate===null&&t(w,E),x=o(P,x,$),T===null?j=P:T.sibling=P,T=P,E=A}if(M.done)return n(w,E),Hr&&Dh(w,$),j;if(E===null){for(;!M.done;$++,M=S.next())M=f(w,M.value,C),M!==null&&(x=o(M,x,$),T===null?j=M:T.sibling=M,T=M);return Hr&&Dh(w,$),j}for(E=r(w,E);!M.done;$++,M=S.next())M=v(E,w,$,M.value,C),M!==null&&(e&&M.alternate!==null&&E.delete(M.key===null?$:M.key),x=o(M,x,$),T===null?j=M:T.sibling=M,T=M);return e&&E.forEach(function(te){return t(w,te)}),Hr&&Dh(w,$),j}function b(w,x,S,C){if(typeof S=="object"&&S!==null&&S.type===t0&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case x2:e:{for(var j=S.key,T=x;T!==null;){if(T.key===j){if(j=S.type,j===t0){if(T.tag===7){n(w,T.sibling),x=i(T,S.props.children),x.return=w,w=x;break e}}else if(T.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===ef&&yF(j)===T.type){n(w,T.sibling),x=i(T,S.props),x.ref=Uv(w,T,S),x.return=w,w=x;break e}n(w,T);break}else t(w,T);T=T.sibling}S.type===t0?(x=Zh(S.props.children,w.mode,C,S.key),x.return=w,w=x):(C=Sw(S.type,S.key,S.props,null,w.mode,C),C.ref=Uv(w,x,S),C.return=w,w=C)}return a(w);case e0:e:{for(T=S.key;x!==null;){if(x.key===T)if(x.tag===4&&x.stateNode.containerInfo===S.containerInfo&&x.stateNode.implementation===S.implementation){n(w,x.sibling),x=i(x,S.children||[]),x.return=w,w=x;break e}else{n(w,x);break}else t(w,x);x=x.sibling}x=v9(S,w.mode,C),x.return=w,w=x}return a(w);case ef:return T=S._init,b(w,x,T(S._payload),C)}if(vv(S))return _(w,x,S,C);if(mv(S))return y(w,x,S,C);ew(w,S)}return typeof S=="string"&&S!==""||typeof S=="number"?(S=""+S,x!==null&&x.tag===6?(n(w,x.sibling),x=i(x,S),x.return=w,w=x):(n(w,x),x=g9(S,w.mode,C),x.return=w,w=x),a(w)):n(w,x)}return b}var y0=bF(!0),_F=bF(!1),tw=cf(null),nw=null,b0=null,T8=null;function I8(){T8=b0=nw=null}function E8(e){var t=tw.current;Or(tw),e._currentValue=t}function N8(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _0(e,t){nw=e,T8=b0=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ma=!0),e.firstContext=null)}function qs(e){var t=e._currentValue;if(T8!==e)if(e={context:e,memoizedValue:t,next:null},b0===null){if(nw===null)throw Error(Ze(308));b0=e,nw.dependencies={lanes:0,firstContext:e}}else b0=b0.next=e;return t}var Ah=null;function $8(e){Ah===null?Ah=[e]:Ah.push(e)}function xF(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,$8(t)):(n.next=i.next,i.next=n),t.interleaved=n,Zc(e,r)}function Zc(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var hf=!1;function M8(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wF(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function qc(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pf(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Nn&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Zc(e,n)}return i=r.interleaved,i===null?(t.next=t,$8(r)):(t.next=i.next,i.next=t),r.interleaved=t,Zc(e,n)}function rw(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zj(e,n)}}function kF(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?i=o=a:o=o.next=a,n=n.next}while(n!==null);o===null?i=o=t:o=o.next=t}else i=o=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function iw(e,t,n,r){var i=e.updateQueue;hf=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?o=c:a.next=c,a=l;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==a&&(s===null?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l))}if(o!==null){var f=i.baseState;a=0,d=c=l=null,s=o;do{var p=s.lane,v=s.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:v,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var _=e,y=s;switch(p=t,v=n,y.tag){case 1:if(_=y.payload,typeof _=="function"){f=_.call(v,f,p);break e}f=_;break e;case 3:_.flags=_.flags&-65537|128;case 0:if(_=y.payload,p=typeof _=="function"?_.call(v,f,p):_,p==null)break e;f=Jr({},f,p);break e;case 2:hf=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[s]:p.push(s))}else v={eventTime:v,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(c=d=v,l=f):d=d.next=v,a|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(!0);if(d===null&&(l=f),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do a|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);Uh|=a,e.lanes=a,e.memoizedState=f}}function SF(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=z8.transition;z8.transition={};try{e(!1),t()}finally{Qn=n,z8.transition=r}}function WF(){return Gs().memoizedState}function t2e(e,t,n){var r=yf(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},VF(e))HF(t,n);else if(n=xF(e,t,n,r),n!==null){var i=aa();Pl(n,e,r,i),ZF(n,t,r)}}function n2e(e,t,n){var r=yf(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(VF(e))HF(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,$l(s,a)){var l=t.interleaved;l===null?(i.next=i,$8(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=xF(e,t,i,r),n!==null&&(i=aa(),Pl(n,e,r,i),ZF(n,t,r))}}function VF(e){var t=e.alternate;return e===ei||t!==null&&t===ei}function HF(e,t){Zv=sw=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ZF(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zj(e,n)}}var cw={readContext:qs,useCallback:Po,useContext:Po,useEffect:Po,useImperativeHandle:Po,useInsertionEffect:Po,useLayoutEffect:Po,useMemo:Po,useReducer:Po,useRef:Po,useState:Po,useDebugValue:Po,useDeferredValue:Po,useTransition:Po,useMutableSource:Po,useSyncExternalStore:Po,useId:Po,unstable_isNewReconciler:!1},r2e={readContext:qs,useCallback:function(e,t){return Ou().memoizedState=[e,t===void 0?null:t],e},useContext:qs,useEffect:OF,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lw(4194308,4,DF.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lw(4194308,4,e,t)},useInsertionEffect:function(e,t){return lw(4,2,e,t)},useMemo:function(e,t){var n=Ou();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ou();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=t2e.bind(null,ei,e),[r.memoizedState,e]},useRef:function(e){var t=Ou();return e={current:e},t.memoizedState=e},useState:LF,useDebugValue:V8,useDeferredValue:function(e){return Ou().memoizedState=e},useTransition:function(){var e=LF(!1),t=e[0];return e=e2e.bind(null,e[1]),Ou().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ei,i=Ou();if(Hr){if(n===void 0)throw Error(Ze(407));n=n()}else{if(n=t(),ro===null)throw Error(Ze(349));Bh&30||IF(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,OF(NF.bind(null,r,o,e),[e]),r.flags|=2048,Yv(9,EF.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Ou(),t=ro.identifierPrefix;if(Hr){var n=Hc,r=Vc;n=(r&~(1<<32-Nl(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=qv++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Lu]=t,e[Fv]=r,fB(e,t,!1,!1),t.stateNode=e;e:{switch(a=Pj(n,r),n){case"dialog":Rr("cancel",e),Rr("close",e),i=r;break;case"iframe":case"object":case"embed":Rr("load",e),i=r;break;case"video":case"audio":for(i=0;iC0&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304)}else{if(!r)if(e=ow(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Kv(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!Hr)return zo(t),null}else 2*bi()-o.renderingStartTime>C0&&n!==1073741824&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=bi(),t.sibling=null,n=Qr.current,jr(Qr,r?n&1|2:n&1),t):(zo(t),null);case 22:case 23:return h9(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ls&1073741824&&(zo(t),t.subtreeFlags&6&&(t.flags|=8192)):zo(t),null;case 24:return null;case 25:return null}throw Error(Ze(156,t.tag))}function d2e(e,t){switch(k8(t),t.tag){case 1:return $a(t.type)&&G2(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return x0(),Or(Na),Or(Oo),P8(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return R8(t),null;case 13:if(Or(Qr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ze(340));v0()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Or(Qr),null;case 4:return x0(),null;case 10:return E8(t.type._context),null;case 22:case 23:return h9(),null;case 24:return null;default:return null}}var pw=!1,Do=!1,f2e=typeof WeakSet=="function"?WeakSet:Set,dt=null;function k0(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){li(e,t,r)}else n.current=null}function mB(e,t,n){try{n()}catch(r){li(e,t,r)}}var gB=!1;function h2e(e,t){if(p8=R2,e=qA(),a8(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,d=0,f=e,p=null;t:for(;;){for(var v;f!==n||i!==0&&f.nodeType!==3||(s=a+i),f!==o||r!==0&&f.nodeType!==3||(l=a+r),f.nodeType===3&&(a+=f.nodeValue.length),(v=f.firstChild)!==null;)p=f,f=v;for(;;){if(f===e)break t;if(p===n&&++c===i&&(s=a),p===o&&++d===r&&(l=a),(v=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=v}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(m8={focusedElem:e,selectionRange:n},R2=!1,dt=t;dt!==null;)if(t=dt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dt=e;else for(;dt!==null;){t=dt;try{var _=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(_!==null){var y=_.memoizedProps,b=_.memoizedState,w=t.stateNode,x=w.getSnapshotBeforeUpdate(t.elementType===t.type?y:Ll(t.type,y),b);w.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var S=t.stateNode.containerInfo;S.nodeType===1?S.textContent="":S.nodeType===9&&S.documentElement&&S.removeChild(S.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ze(163))}}catch(C){li(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,dt=e;break}dt=t.return}return _=gB,gB=!1,_}function Xv(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&mB(t,n,o)}i=i.next}while(i!==r)}}function mw(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function n9(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function vB(e){var t=e.alternate;t!==null&&(e.alternate=null,vB(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Lu],delete t[Fv],delete t[b8],delete t[Yxe],delete t[Kxe])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function yB(e){return e.tag===5||e.tag===3||e.tag===4}function bB(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||yB(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function r9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Z2));else if(r!==4&&(e=e.child,e!==null))for(r9(e,t,n),e=e.sibling;e!==null;)r9(e,t,n),e=e.sibling}function i9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(i9(e,t,n),e=e.sibling;e!==null;)i9(e,t,n),e=e.sibling}var bo=null,Rl=!1;function mf(e,t,n){for(n=n.child;n!==null;)_B(e,t,n),n=n.sibling}function _B(e,t,n){if(Mu&&typeof Mu.onCommitFiberUnmount=="function")try{Mu.onCommitFiberUnmount(I2,n)}catch{}switch(n.tag){case 5:Do||k0(n,t);case 6:var r=bo,i=Rl;bo=null,mf(e,t,n),bo=r,Rl=i,bo!==null&&(Rl?(e=bo,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):bo.removeChild(n.stateNode));break;case 18:bo!==null&&(Rl?(e=bo,n=n.stateNode,e.nodeType===8?y8(e.parentNode,n):e.nodeType===1&&y8(e,n),Ev(e)):y8(bo,n.stateNode));break;case 4:r=bo,i=Rl,bo=n.stateNode.containerInfo,Rl=!0,mf(e,t,n),bo=r,Rl=i;break;case 0:case 11:case 14:case 15:if(!Do&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&mB(n,t,a),i=i.next}while(i!==r)}mf(e,t,n);break;case 1:if(!Do&&(k0(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){li(n,t,s)}mf(e,t,n);break;case 21:mf(e,t,n);break;case 22:n.mode&1?(Do=(r=Do)||n.memoizedState!==null,mf(e,t,n),Do=r):mf(e,t,n);break;default:mf(e,t,n)}}function xB(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new f2e),t.forEach(function(r){var i=w2e.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Ol(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=bi()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*m2e(r/1960))-r,10e?16:e,vf===null)var r=!1;else{if(e=vf,vf=null,_w=0,Nn&6)throw Error(Ze(331));var i=Nn;for(Nn|=4,dt=e.current;dt!==null;){var o=dt,a=o.child;if(dt.flags&16){var s=o.deletions;if(s!==null){for(var l=0;lbi()-s9?Vh(e,0):a9|=n),Ra(e,t)}function RB(e,t){t===0&&(e.mode&1?(t=N2,N2<<=1,!(N2&130023424)&&(N2=4194304)):t=1);var n=aa();e=Zc(e,t),e!==null&&(Sv(e,t,n),Ra(e,n))}function x2e(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),RB(e,n)}function w2e(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(Ze(314))}r!==null&&r.delete(t),RB(e,n)}var OB;OB=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Na.current)Ma=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ma=!1,u2e(e,t,n);Ma=!!(e.flags&131072)}else Ma=!1,Hr&&t.flags&1048576&&hF(t,J2,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;hw(e,t),e=t.pendingProps;var i=p0(t,Oo.current);_0(t,n),i=A8(null,t,r,e,i,n);var o=F8();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,$a(r)?(o=!0,Y2(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,M8(t),i.updater=dw,t.stateNode=i,i._reactInternals=t,Z8(t,r,e,n),t=K8(null,t,r,!0,o,n)):(t.tag=0,Hr&&o&&w8(t),oa(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(hw(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=S2e(r),e=Ll(r,e),i){case 0:t=Y8(null,t,r,e,n);break e;case 1:t=aB(null,t,r,e,n);break e;case 11:t=tB(null,t,r,e,n);break e;case 14:t=nB(null,t,r,Ll(r.type,e),n);break e}throw Error(Ze(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),Y8(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),aB(e,t,r,i,n);case 3:e:{if(sB(t),e===null)throw Error(Ze(387));r=t.pendingProps,o=t.memoizedState,i=o.element,wF(e,t),iw(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=w0(Error(Ze(423)),t),t=lB(e,t,r,n,i);break e}else if(r!==i){i=w0(Error(Ze(424)),t),t=lB(e,t,r,n,i);break e}else for(ss=uf(t.stateNode.containerInfo.firstChild),as=t,Hr=!0,Ml=null,n=_F(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(v0(),r===i){t=Gc(e,t,n);break e}oa(e,t,r,n)}t=t.child}return t;case 5:return CF(t),e===null&&C8(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,g8(r,i)?a=null:o!==null&&g8(r,o)&&(t.flags|=32),oB(e,t),oa(e,t,a,n),t.child;case 6:return e===null&&C8(t),null;case 13:return uB(e,t,n);case 4:return L8(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=y0(t,null,r,n):oa(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),tB(e,t,r,i,n);case 7:return oa(e,t,t.pendingProps,n),t.child;case 8:return oa(e,t,t.pendingProps.children,n),t.child;case 12:return oa(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,jr(tw,r._currentValue),r._currentValue=a,o!==null)if($l(o.value,a)){if(o.children===i.children&&!Na.current){t=Gc(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=qc(-1,n&-n),l.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),N8(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(Ze(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),N8(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}oa(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,_0(t,n),i=qs(i),r=r(i),t.flags|=1,oa(e,t,r,n),t.child;case 14:return r=t.type,i=Ll(r,t.pendingProps),i=Ll(r.type,i),nB(e,t,r,i,n);case 15:return rB(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),hw(e,t),t.tag=1,$a(r)?(e=!0,Y2(t)):e=!1,_0(t,n),GF(t,r,i),Z8(t,r,i,n),K8(null,t,r,!0,e,n);case 19:return dB(e,t,n);case 22:return iB(e,t,n)}throw Error(Ze(156,t.tag))};function PB(e,t){return pA(e,t)}function k2e(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ks(e,t,n,r){return new k2e(e,t,n,r)}function m9(e){return e=e.prototype,!(!e||!e.isReactComponent)}function S2e(e){if(typeof e=="function")return m9(e)?1:0;if(e!=null){if(e=e.$$typeof,e===wj)return 11;if(e===Cj)return 14}return 2}function _f(e,t){var n=e.alternate;return n===null?(n=Ks(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Sw(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")m9(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case t0:return Zh(n.children,i,o,t);case _j:a=8,i|=8;break;case xj:return e=Ks(12,n,t,i|2),e.elementType=xj,e.lanes=o,e;case kj:return e=Ks(13,n,t,i),e.elementType=kj,e.lanes=o,e;case Sj:return e=Ks(19,n,t,i),e.elementType=Sj,e.lanes=o,e;case VD:return Cw(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case UD:a=10;break e;case WD:a=9;break e;case wj:a=11;break e;case Cj:a=14;break e;case ef:a=16,r=null;break e}throw Error(Ze(130,e==null?e:typeof e,""))}return t=Ks(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function Zh(e,t,n,r){return e=Ks(7,e,r,t),e.lanes=n,e}function Cw(e,t,n,r){return e=Ks(22,e,r,t),e.elementType=VD,e.lanes=n,e.stateNode={isHidden:!1},e}function g9(e,t,n){return e=Ks(6,e,null,t),e.lanes=n,e}function v9(e,t,n){return t=Ks(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function C2e(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Hj(0),this.expirationTimes=Hj(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Hj(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function y9(e,t,n,r,i,o,a,s,l){return e=new C2e(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ks(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},M8(o),e}function j2e(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(UB)}catch(e){console.error(e)}}UB(),PD.exports=rs;var Kc=PD.exports;const WB=to(Kc);var VB=Kc;mj.createRoot=VB.createRoot,mj.hydrateRoot=VB.hydrateRoot;function HB(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zl(...e){return t=>{let n=!1;const r=e.map(i=>{const o=HB(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{children:o,...a}=r,s=m.Children.toArray(o),l=s.find(L2e);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}var xf=gr("Slot");function $2e(e){const t=m.forwardRef((n,r)=>{const{children:i,...o}=n;if(m.isValidElement(i)){const a=O2e(i),s=R2e(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ZB=Symbol("radix.slottable");function qB(e){const t=({children:n})=>u.jsx(u.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=ZB,t}var M2e=qB("Slottable");function L2e(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ZB}function R2e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function O2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var P2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],z2e=P2e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),GB=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),D2e="VisuallyHidden",YB=m.forwardRef((e,t)=>u.jsx(z2e.span,{...e,ref:t,style:{...GB,...e.style}}));YB.displayName=D2e;var KB=YB;function A2e(e,t){const n=m.createContext(t),r=o=>{const{children:a,...s}=o,l=m.useMemo(()=>s,Object.values(s));return u.jsx(n.Provider,{value:l,children:a})};r.displayName=e+"Provider";function i(o){const a=m.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[r,i]}function Oa(e,t=[]){let n=[];function r(o,a){const s=m.createContext(a),l=n.length;n=[...n,a];const c=f=>{var w;const{scope:p,children:v,..._}=f,y=((w=p==null?void 0:p[e])==null?void 0:w[l])||s,b=m.useMemo(()=>_,Object.values(_));return u.jsx(y.Provider,{value:b,children:v})};c.displayName=o+"Provider";function d(f,p){var y;const v=((y=p==null?void 0:p[e])==null?void 0:y[l])||s,_=m.useContext(v);if(_)return _;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[c,d]}const i=()=>{const o=n.map(a=>m.createContext(a));return function(a){const s=(a==null?void 0:a[e])||o;return m.useMemo(()=>({[`__scope${e}`]:{...a,[e]:s}}),[a,s])}};return i.scopeName=e,[r,F2e(i,...t)]}function F2e(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(i){const o=r.reduce((a,{useScope:s,scopeName:l})=>{const c=s(i)[`__scope${l}`];return{...a,...c}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function Mw(e){const t=e+"CollectionProvider",[n,r]=Oa(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=y=>{const{scope:b,children:w}=y,x=Oe.useRef(null),S=Oe.useRef(new Map).current;return u.jsx(i,{scope:b,itemMap:S,collectionRef:x,children:w})};a.displayName=t;const s=e+"CollectionSlot",l=gr(s),c=Oe.forwardRef((y,b)=>{const{scope:w,children:x}=y,S=o(s,w),C=At(b,S.collectionRef);return u.jsx(l,{ref:C,children:x})});c.displayName=s;const d=e+"CollectionItemSlot",f="data-radix-collection-item",p=gr(d),v=Oe.forwardRef((y,b)=>{const{scope:w,children:x,...S}=y,C=Oe.useRef(null),j=At(b,C),T=o(d,w);return Oe.useEffect(()=>(T.itemMap.set(C,{ref:C,...S}),()=>void T.itemMap.delete(C))),u.jsx(p,{[f]:"",ref:j,children:x})});v.displayName=d;function _(y){const b=o(e+"CollectionConsumer",y);return Oe.useCallback(()=>{const w=b.collectionRef.current;if(!w)return[];const x=Array.from(w.querySelectorAll(`[${f}]`));return Array.from(b.itemMap.values()).sort((S,C)=>x.indexOf(S.ref.current)-x.indexOf(C.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:c,ItemSlot:v},_,r]}function Xe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}var xo=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},B2e=pj[" useInsertionEffect ".trim().toString()]||xo;function Xs({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,o,a]=U2e({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:i;{const d=m.useRef(e!==void 0);m.useEffect(()=>{const f=d.current;f!==s&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,r])}const c=m.useCallback(d=>{var f;if(s){const p=W2e(d)?d(e):d;p!==e&&((f=a.current)==null||f.call(a,p))}else o(d)},[s,e,o,a]);return[l,c]}function U2e({defaultProp:e,onChange:t}){const[n,r]=m.useState(e),i=m.useRef(n),o=m.useRef(t);return B2e(()=>{o.current=t},[t]),m.useEffect(()=>{var a;i.current!==n&&((a=o.current)==null||a.call(o,n),i.current=n)},[n,i]),[n,r,o]}function W2e(e){return typeof e=="function"}function V2e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var Ao=e=>{const{present:t,children:n}=e,r=H2e(t),i=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),o=At(r.ref,Z2e(i));return typeof n=="function"||r.isPresent?m.cloneElement(i,{ref:o}):null};Ao.displayName="Presence";function H2e(e){const[t,n]=m.useState(),r=m.useRef(null),i=m.useRef(e),o=m.useRef("none"),a=e?"mounted":"unmounted",[s,l]=V2e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const c=Lw(r.current);o.current=s==="mounted"?c:"none"},[s]),xo(()=>{const c=r.current,d=i.current;if(d!==e){const f=o.current,p=Lw(c);e?l("MOUNT"):p==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(d&&f!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),xo(()=>{if(t){let c;const d=t.ownerDocument.defaultView??window,f=v=>{const _=Lw(r.current).includes(CSS.escape(v.animationName));if(v.target===t&&_&&(l("ANIMATION_END"),!i.current)){const y=t.style.animationFillMode;t.style.animationFillMode="forwards",c=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=y)})}},p=v=>{v.target===t&&(o.current=Lw(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(c),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:m.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function Lw(e){return(e==null?void 0:e.animationName)||"none"}function Z2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var q2e=pj[" useId ".trim().toString()]||(()=>{}),G2e=0;function wo(e){const[t,n]=m.useState(q2e());return xo(()=>{n(r=>r??String(G2e++))},[e]),t?`radix-${t}`:""}var XB=m.createContext(void 0),Y2e=e=>{const{dir:t,children:n}=e;return u.jsx(XB.Provider,{value:t,children:n})};function T0(e){const t=m.useContext(XB);return e||t||"ltr"}var K2e=Y2e,X2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],JB=X2e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function J2e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}function ko(e){const t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function Q2e(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e);m.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ewe="DismissableLayer",w9="dismissableLayer.update",twe="dismissableLayer.pointerDownOutside",nwe="dismissableLayer.focusOutside",QB,eU=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),I0=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:a,onDismiss:s,...l}=e,c=m.useContext(eU),[d,f]=m.useState(null),p=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=m.useState({}),_=At(t,E=>f(E)),y=Array.from(c.layers),[b]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),w=y.indexOf(b),x=d?y.indexOf(d):-1,S=c.layersWithOutsidePointerEventsDisabled.size>0,C=x>=w,j=owe(E=>{const $=E.target,A=[...c.branches].some(M=>M.contains($));!C||A||(i==null||i(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p),T=awe(E=>{const $=E.target;[...c.branches].some(A=>A.contains($))||(o==null||o(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p);return Q2e(E=>{x===c.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&s&&(E.preventDefault(),s()))},p),m.useEffect(()=>{if(d)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(QB=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(d)),c.layers.add(d),tU(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=QB)}},[d,p,n,c]),m.useEffect(()=>()=>{d&&(c.layers.delete(d),c.layersWithOutsidePointerEventsDisabled.delete(d),tU())},[d,c]),m.useEffect(()=>{const E=()=>v({});return document.addEventListener(w9,E),()=>document.removeEventListener(w9,E)},[]),u.jsx(JB.div,{...l,ref:_,style:{pointerEvents:S?C?"auto":"none":void 0,...e.style},onFocusCapture:Xe(e.onFocusCapture,T.onFocusCapture),onBlurCapture:Xe(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:Xe(e.onPointerDownCapture,j.onPointerDownCapture)})});I0.displayName=ewe;var rwe="DismissableLayerBranch",iwe=m.forwardRef((e,t)=>{const n=m.useContext(eU),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),u.jsx(JB.div,{...e,ref:i})});iwe.displayName=rwe;function owe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1),i=m.useRef(()=>{});return m.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let l=function(){nU(twe,n,c,{discrete:!0})};const c={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=l,t.addEventListener("click",i.current,{once:!0})):l()}else t.removeEventListener("click",i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function awe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1);return m.useEffect(()=>{const i=o=>{o.target&&!r.current&&nU(nwe,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function tU(){const e=new CustomEvent(w9);document.dispatchEvent(e)}function nU(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?J2e(i,o):i.dispatchEvent(o)}var swe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lwe=swe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),k9="focusScope.autoFocusOnMount",S9="focusScope.autoFocusOnUnmount",rU={bubbles:!1,cancelable:!0},uwe="FocusScope",ny=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,l]=m.useState(null),c=ko(i),d=ko(o),f=m.useRef(null),p=At(t,y=>l(y)),v=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let y=function(S){if(v.paused||!s)return;const C=S.target;s.contains(C)?f.current=C:wf(f.current,{select:!0})},b=function(S){if(v.paused||!s)return;const C=S.relatedTarget;C!==null&&(s.contains(C)||wf(f.current,{select:!0}))},w=function(S){if(document.activeElement===document.body)for(const C of S)C.removedNodes.length>0&&wf(s)};document.addEventListener("focusin",y),document.addEventListener("focusout",b);const x=new MutationObserver(w);return s&&x.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",b),x.disconnect()}}},[r,s,v.paused]),m.useEffect(()=>{if(s){aU.add(v);const y=document.activeElement;if(!s.contains(y)){const b=new CustomEvent(k9,rU);s.addEventListener(k9,c),s.dispatchEvent(b),b.defaultPrevented||(cwe(mwe(iU(s)),{select:!0}),document.activeElement===y&&wf(s))}return()=>{s.removeEventListener(k9,c),setTimeout(()=>{const b=new CustomEvent(S9,rU);s.addEventListener(S9,d),s.dispatchEvent(b),b.defaultPrevented||wf(y??document.body,{select:!0}),s.removeEventListener(S9,d),aU.remove(v)},0)}}},[s,c,d,v]);const _=m.useCallback(y=>{if(!n&&!r||v.paused)return;const b=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,w=document.activeElement;if(b&&w){const x=y.currentTarget,[S,C]=dwe(x);S&&C?!y.shiftKey&&w===C?(y.preventDefault(),n&&wf(S,{select:!0})):y.shiftKey&&w===S&&(y.preventDefault(),n&&wf(C,{select:!0})):w===x&&y.preventDefault()}},[n,r,v.paused]);return u.jsx(lwe.div,{tabIndex:-1,...a,ref:p,onKeyDown:_})});ny.displayName=uwe;function cwe(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(wf(r,{select:t}),document.activeElement!==n)return}function dwe(e){const t=iU(e),n=oU(t,e),r=oU(t.reverse(),e);return[n,r]}function iU(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function oU(e,t){for(const n of e)if(!fwe(n,{upTo:t}))return n}function fwe(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function hwe(e){return e instanceof HTMLInputElement&&"select"in e}function wf(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&hwe(e)&&t&&e.select()}}var aU=pwe();function pwe(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=sU(e,t),e.unshift(t)},remove(t){var n;e=sU(e,t),(n=e[0])==null||n.resume()}}}function sU(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function mwe(e){return e.filter(t=>t.tagName!=="A")}var gwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],vwe=gwe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ywe="Portal",qh=m.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[i,o]=m.useState(!1);xo(()=>o(!0),[]);const a=n||i&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return a?WB.createPortal(u.jsx(vwe.div,{...r,ref:t}),a):null});qh.displayName=ywe;var lU=qh,bwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ry=bwe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),C9=0;function Rw(){m.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??uU()),document.body.insertAdjacentElement("beforeend",e[1]??uU()),C9++,()=>{C9===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),C9--}},[])}function uU(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var zu=function(){return zu=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u")return Pwe;var t=zwe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Awe=pU(),E0="data-scroll-locked",Fwe=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` - .`.concat(xwe,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(s,"px ").concat(r,`; - } - body[`).concat(E0,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(i,`px; - padding-top: `).concat(o,`px; - padding-right: `).concat(a,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(s,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(Ow,` { - right: `).concat(s,"px ").concat(r,`; - } - - .`).concat(Pw,` { - margin-right: `).concat(s,"px ").concat(r,`; - } - - .`).concat(Ow," .").concat(Ow,` { - right: 0 `).concat(r,`; - } - - .`).concat(Pw," .").concat(Pw,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(E0,`] { - `).concat(wwe,": ").concat(s,`px; - } -`)},mU=function(){var e=parseInt(document.body.getAttribute(E0)||"0",10);return isFinite(e)?e:0},Bwe=function(){m.useEffect(function(){return document.body.setAttribute(E0,(mU()+1).toString()),function(){var e=mU()-1;e<=0?document.body.removeAttribute(E0):document.body.setAttribute(E0,e.toString())}},[])},Uwe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r;Bwe();var o=m.useMemo(function(){return Dwe(i)},[i]);return m.createElement(Awe,{styles:Fwe(o,!t,i,n?"":"!important")})},E9=!1;if(typeof window<"u")try{var Dw=Object.defineProperty({},"passive",{get:function(){return E9=!0,!0}});window.addEventListener("test",Dw,Dw),window.removeEventListener("test",Dw,Dw)}catch{E9=!1}var N0=E9?{passive:!1}:!1,Wwe=function(e){return e.tagName==="TEXTAREA"},gU=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Wwe(e)&&n[t]==="visible")},Vwe=function(e){return gU(e,"overflowY")},Hwe=function(e){return gU(e,"overflowX")},vU=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var i=yU(e,r);if(i){var o=bU(e,r),a=o[1],s=o[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Zwe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},qwe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},yU=function(e,t){return e==="v"?Vwe(t):Hwe(t)},bU=function(e,t){return e==="v"?Zwe(t):qwe(t)},Gwe=function(e,t){return e==="h"&&t==="rtl"?-1:1},Ywe=function(e,t,n,r,i){var o=Gwe(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,l=t.contains(s),c=!1,d=a>0,f=0,p=0;do{if(!s)break;var v=bU(e,s),_=v[0],y=v[1],b=v[2],w=y-b-o*_;(_||w)&&yU(e,s)&&(f+=w,p+=_);var x=s.parentNode;s=x&&x.nodeType===Node.DOCUMENT_FRAGMENT_NODE?x.host:x}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&Math.abs(f)<1||!d&&Math.abs(p)<1)&&(c=!0),c},Aw=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},_U=function(e){return[e.deltaX,e.deltaY]},xU=function(e){return e&&"current"in e?e.current:e},Kwe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Xwe=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},Jwe=0,$0=[];function Qwe(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),i=m.useState(Jwe++)[0],o=m.useState(pU)[0],a=m.useRef(e);m.useEffect(function(){a.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var y=_we([e.lockRef.current],(e.shards||[]).map(xU),!0).filter(Boolean);return y.forEach(function(b){return b.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),y.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=m.useCallback(function(y,b){if("touches"in y&&y.touches.length===2||y.type==="wheel"&&y.ctrlKey)return!a.current.allowPinchZoom;var w=Aw(y),x=n.current,S="deltaX"in y?y.deltaX:x[0]-w[0],C="deltaY"in y?y.deltaY:x[1]-w[1],j,T=y.target,E=Math.abs(S)>Math.abs(C)?"h":"v";if("touches"in y&&E==="h"&&T.type==="range")return!1;var $=vU(E,T);if(!$)return!0;if($?j=E:(j=E==="v"?"h":"v",$=vU(E,T)),!$)return!1;if(!r.current&&"changedTouches"in y&&(S||C)&&(r.current=j),!j)return!0;var A=r.current||j;return Ywe(A,b,y,A==="h"?S:C)},[]),l=m.useCallback(function(y){var b=y;if(!(!$0.length||$0[$0.length-1]!==o)){var w="deltaY"in b?_U(b):Aw(b),x=t.current.filter(function(j){return j.name===b.type&&(j.target===b.target||b.target===j.shadowParent)&&Kwe(j.delta,w)})[0];if(x&&x.should){b.cancelable&&b.preventDefault();return}if(!x){var S=(a.current.shards||[]).map(xU).filter(Boolean).filter(function(j){return j.contains(b.target)}),C=S.length>0?s(b,S[0]):!a.current.noIsolation;C&&b.cancelable&&b.preventDefault()}}},[]),c=m.useCallback(function(y,b,w,x){var S={name:y,delta:b,target:w,should:x,shadowParent:e4e(w)};t.current.push(S),setTimeout(function(){t.current=t.current.filter(function(C){return C!==S})},1)},[]),d=m.useCallback(function(y){n.current=Aw(y),r.current=void 0},[]),f=m.useCallback(function(y){c(y.type,_U(y),y.target,s(y,e.lockRef.current))},[]),p=m.useCallback(function(y){c(y.type,Aw(y),y.target,s(y,e.lockRef.current))},[]);m.useEffect(function(){return $0.push(o),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",l,N0),document.addEventListener("touchmove",l,N0),document.addEventListener("touchstart",d,N0),function(){$0=$0.filter(function(y){return y!==o}),document.removeEventListener("wheel",l,N0),document.removeEventListener("touchmove",l,N0),document.removeEventListener("touchstart",d,N0)}},[]);var v=e.removeScrollBar,_=e.inert;return m.createElement(m.Fragment,null,_?m.createElement(o,{styles:Xwe(i)}):null,v?m.createElement(Uwe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function e4e(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const t4e=Ewe(hU,Qwe);var iy=m.forwardRef(function(e,t){return m.createElement(zw,zu({},e,{ref:t,sideCar:t4e}))});iy.classNames=zw.classNames;var n4e=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},M0=new WeakMap,Fw=new WeakMap,Bw={},N9=0,wU=function(e){return e&&(e.host||wU(e.parentNode))},r4e=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=wU(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},i4e=function(e,t,n,r){var i=r4e(t,Array.isArray(e)?e:[e]);Bw[n]||(Bw[n]=new WeakMap);var o=Bw[n],a=[],s=new Set,l=new Set(i),c=function(f){!f||s.has(f)||(s.add(f),c(f.parentNode))};i.forEach(c);var d=function(f){!f||l.has(f)||Array.prototype.forEach.call(f.children,function(p){if(s.has(p))d(p);else try{var v=p.getAttribute(r),_=v!==null&&v!=="false",y=(M0.get(p)||0)+1,b=(o.get(p)||0)+1;M0.set(p,y),o.set(p,b),a.push(p),y===1&&_&&Fw.set(p,!0),b===1&&p.setAttribute(n,"true"),_||p.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",p,w)}})};return d(t),s.clear(),N9++,function(){a.forEach(function(f){var p=M0.get(f)-1,v=o.get(f)-1;M0.set(f,p),o.set(f,v),p||(Fw.has(f)||f.removeAttribute(r),Fw.delete(f)),v||f.removeAttribute(n)}),N9--,N9||(M0=new WeakMap,M0=new WeakMap,Fw=new WeakMap,Bw={})}},Uw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=n4e(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live], script"))),i4e(r,i,n,"aria-hidden")):function(){return null}},Ww="Dialog",[kU]=Oa(Ww),[o4e,Dl]=kU(Ww),SU=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!0}=e,s=m.useRef(null),l=m.useRef(null),[c,d]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Ww});return u.jsx(o4e,{scope:t,triggerRef:s,contentRef:l,contentId:wo(),titleId:wo(),descriptionId:wo(),open:c,onOpenChange:d,onOpenToggle:m.useCallback(()=>d(f=>!f),[d]),modal:a,children:n})};SU.displayName=Ww;var CU="DialogTrigger",jU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(CU,n),o=At(t,i.triggerRef);return u.jsx(ry.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":L9(i.open),...r,ref:o,onClick:Xe(e.onClick,i.onOpenToggle)})});jU.displayName=CU;var $9="DialogPortal",[a4e,TU]=kU($9,{forceMount:void 0}),IU=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=Dl($9,t);return u.jsx(a4e,{scope:t,forceMount:n,children:m.Children.map(r,a=>u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:a})}))})};IU.displayName=$9;var Vw="DialogOverlay",EU=m.forwardRef((e,t)=>{const n=TU(Vw,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(Vw,e.__scopeDialog);return o.modal?u.jsx(Ao,{present:r||o.open,children:u.jsx(l4e,{...i,ref:t})}):null});EU.displayName=Vw;var s4e=gr("DialogOverlay.RemoveScroll"),l4e=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(Vw,n);return u.jsx(iy,{as:s4e,allowPinchZoom:!0,shards:[i.contentRef],children:u.jsx(ry.div,{"data-state":L9(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),Gh="DialogContent",NU=m.forwardRef((e,t)=>{const n=TU(Gh,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(Gh,e.__scopeDialog);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx(u4e,{...i,ref:t}):u.jsx(c4e,{...i,ref:t})})});NU.displayName=Gh;var u4e=m.forwardRef((e,t)=>{const n=Dl(Gh,e.__scopeDialog),r=m.useRef(null),i=At(t,n.contentRef,r);return m.useEffect(()=>{const o=r.current;if(o)return Uw(o)},[]),u.jsx($U,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,o=>{var a;o.preventDefault(),(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:Xe(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,s=a.button===0&&a.ctrlKey===!0;(a.button===2||s)&&o.preventDefault()}),onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault())})}),c4e=m.forwardRef((e,t)=>{const n=Dl(Gh,e.__scopeDialog),r=m.useRef(!1),i=m.useRef(!1);return u.jsx($U,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),$U=m.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...a}=e,s=Dl(Gh,n),l=m.useRef(null),c=At(t,l);return Rw(),u.jsxs(u.Fragment,{children:[u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":L9(s.open),...a,ref:c,onDismiss:()=>s.onOpenChange(!1)})}),u.jsxs(u.Fragment,{children:[u.jsx(d4e,{titleId:s.titleId}),u.jsx(h4e,{contentRef:l,descriptionId:s.descriptionId})]})]})}),M9="DialogTitle",MU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(M9,n);return u.jsx(ry.h2,{id:i.titleId,...r,ref:t})});MU.displayName=M9;var LU="DialogDescription",RU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(LU,n);return u.jsx(ry.p,{id:i.descriptionId,...r,ref:t})});RU.displayName=LU;var OU="DialogClose",PU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(OU,n);return u.jsx(ry.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});PU.displayName=OU;function L9(e){return e?"open":"closed"}var zU="DialogTitleWarning",[E5t,DU]=A2e(zU,{contentName:Gh,titleName:M9,docsSlug:"dialog"}),d4e=({titleId:e})=>{const t=DU(zU),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return m.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},f4e="DialogDescriptionWarning",h4e=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${DU(f4e).contentName}}.`;return m.useEffect(()=>{var i;const r=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},AU=SU,p4e=jU,FU=IU,BU=EU,UU=NU,m4e=MU,g4e=RU,v4e=PU,WU={exports:{}},VU={};/** -* @license React -* use-sync-external-store-shim.production.js -* -* Copyright (c) Meta Platforms, Inc. and affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var L0=m;function y4e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var b4e=typeof Object.is=="function"?Object.is:y4e,_4e=L0.useState,x4e=L0.useEffect,w4e=L0.useLayoutEffect,k4e=L0.useDebugValue;function S4e(e,t){var n=t(),r=_4e({inst:{value:n,getSnapshot:t}}),i=r[0].inst,o=r[1];return w4e(function(){i.value=n,i.getSnapshot=t,R9(i)&&o({inst:i})},[e,n,t]),x4e(function(){return R9(i)&&o({inst:i}),e(function(){R9(i)&&o({inst:i})})},[e]),k4e(n),n}function R9(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!b4e(e,n)}catch{return!0}}function C4e(e,t){return t()}var j4e=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?C4e:S4e;VU.useSyncExternalStore=L0.useSyncExternalStore!==void 0?L0.useSyncExternalStore:j4e,WU.exports=VU;var T4e=WU.exports;function O9(e){const t=m.useRef({value:e,previous:e});return m.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function P9(e){const[t,n]=m.useState(void 0);return xo(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const o=i[0];let a,s;if("borderBoxSize"in o){const l=o.borderBoxSize,c=Array.isArray(l)?l[0]:l;a=c.inlineSize,s=c.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const I4e=["top","right","bottom","left"],kf=Math.min,us=Math.max,Hw=Math.round,Zw=Math.floor,Du=e=>({x:e,y:e}),E4e={left:"right",right:"left",bottom:"top",top:"bottom"},N4e={start:"end",end:"start"};function z9(e,t,n){return us(e,kf(t,n))}function Xc(e,t){return typeof e=="function"?e(t):e}function Jc(e){return e.split("-")[0]}function R0(e){return e.split("-")[1]}function D9(e){return e==="x"?"y":"x"}function A9(e){return e==="y"?"height":"width"}const $4e=new Set(["top","bottom"]);function Au(e){return $4e.has(Jc(e))?"y":"x"}function F9(e){return D9(Au(e))}function M4e(e,t,n){n===void 0&&(n=!1);const r=R0(e),i=F9(e),o=A9(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=qw(a)),[a,qw(a)]}function L4e(e){const t=qw(e);return[B9(e),t,B9(t)]}function B9(e){return e.replace(/start|end/g,t=>N4e[t])}const HU=["left","right"],ZU=["right","left"],R4e=["top","bottom"],O4e=["bottom","top"];function P4e(e,t,n){switch(e){case"top":case"bottom":return n?t?ZU:HU:t?HU:ZU;case"left":case"right":return t?R4e:O4e;default:return[]}}function z4e(e,t,n,r){const i=R0(e);let o=P4e(Jc(e),n==="start",r);return i&&(o=o.map(a=>a+"-"+i),t&&(o=o.concat(o.map(B9)))),o}function qw(e){return e.replace(/left|right|bottom|top/g,t=>E4e[t])}function D4e(e){return{top:0,right:0,bottom:0,left:0,...e}}function qU(e){return typeof e!="number"?D4e(e):{top:e,right:e,bottom:e,left:e}}function Gw(e){const{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function GU(e,t,n){let{reference:r,floating:i}=e;const o=Au(t),a=F9(t),s=A9(a),l=Jc(t),c=o==="y",d=r.x+r.width/2-i.width/2,f=r.y+r.height/2-i.height/2,p=r[s]/2-i[s]/2;let v;switch(l){case"top":v={x:d,y:r.y-i.height};break;case"bottom":v={x:d,y:r.y+r.height};break;case"right":v={x:r.x+r.width,y:f};break;case"left":v={x:r.x-i.width,y:f};break;default:v={x:r.x,y:r.y}}switch(R0(t)){case"start":v[a]-=p*(n&&c?-1:1);break;case"end":v[a]+=p*(n&&c?-1:1);break}return v}const A4e=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=o.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:f}=GU(c,r,l),p=r,v={},_=0;for(let y=0;y({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:o,platform:a,elements:s,middlewareData:l}=t,{element:c,padding:d=0}=Xc(e,t)||{};if(c==null)return{};const f=qU(d),p={x:n,y:r},v=F9(i),_=A9(v),y=await a.getDimensions(c),b=v==="y",w=b?"top":"left",x=b?"bottom":"right",S=b?"clientHeight":"clientWidth",C=o.reference[_]+o.reference[v]-p[v]-o.floating[_],j=p[v]-o.reference[v],T=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c));let E=T?T[S]:0;(!E||!await(a.isElement==null?void 0:a.isElement(T)))&&(E=s.floating[S]||o.floating[_]);const $=C/2-j/2,A=E/2-y[_]/2-1,M=kf(f[w],A),P=kf(f[x],A),te=M,Z=E-y[_]-P,O=E/2-y[_]/2+$,J=z9(te,O,Z),D=!l.arrow&&R0(i)!=null&&O!==J&&o.reference[_]/2-(OO<=0)){var P,te;const O=(((P=o.flip)==null?void 0:P.index)||0)+1,J=E[O];if(J&&(!(f==="alignment"&&x!==Au(J))||M.every(Y=>Au(Y.placement)===x?Y.overflows[0]>0:!0)))return{data:{index:O,overflows:M},reset:{placement:J}};let D=(te=M.filter(Y=>Y.overflows[0]<=0).sort((Y,F)=>Y.overflows[1]-F.overflows[1])[0])==null?void 0:te.placement;if(!D)switch(v){case"bestFit":{var Z;const Y=(Z=M.filter(F=>{if(T){const H=Au(F.placement);return H===x||H==="y"}return!0}).map(F=>[F.placement,F.overflows.filter(H=>H>0).reduce((H,ee)=>H+ee,0)]).sort((F,H)=>F[1]-H[1])[0])==null?void 0:Z[0];Y&&(D=Y);break}case"initialPlacement":D=s;break}if(i!==D)return{reset:{placement:D}}}return{}}}};function YU(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function KU(e){return I4e.some(t=>e[t]>=0)}const U4e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...i}=Xc(e,t);switch(r){case"referenceHidden":{const o=await oy(t,{...i,elementContext:"reference"}),a=YU(o,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:KU(a)}}}case"escaped":{const o=await oy(t,{...i,altBoundary:!0}),a=YU(o,n.floating);return{data:{escapedOffsets:a,escaped:KU(a)}}}default:return{}}}}},XU=new Set(["left","top"]);async function W4e(e,t){const{placement:n,platform:r,elements:i}=e,o=await(r.isRTL==null?void 0:r.isRTL(i.floating)),a=Jc(n),s=R0(n),l=Au(n)==="y",c=XU.has(a)?-1:1,d=o&&l?-1:1,f=Xc(t,e);let{mainAxis:p,crossAxis:v,alignmentAxis:_}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return s&&typeof _=="number"&&(v=s==="end"?_*-1:_),l?{x:v*d,y:p*c}:{x:p*c,y:v*d}}const V4e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:o,placement:a,middlewareData:s}=t,l=await W4e(t,e);return a===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:i+l.x,y:o+l.y,data:{...l,placement:a}}}}},H4e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:b=>{let{x:w,y:x}=b;return{x:w,y:x}}},...l}=Xc(e,t),c={x:n,y:r},d=await oy(t,l),f=Au(Jc(i)),p=D9(f);let v=c[p],_=c[f];if(o){const b=p==="y"?"top":"left",w=p==="y"?"bottom":"right",x=v+d[b],S=v-d[w];v=z9(x,v,S)}if(a){const b=f==="y"?"top":"left",w=f==="y"?"bottom":"right",x=_+d[b],S=_-d[w];_=z9(x,_,S)}const y=s.fn({...t,[p]:v,[f]:_});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[p]:o,[f]:a}}}}}},Z4e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:o,middlewareData:a}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=Xc(e,t),d={x:n,y:r},f=Au(i),p=D9(f);let v=d[p],_=d[f];const y=Xc(s,t),b=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(l){const S=p==="y"?"height":"width",C=o.reference[p]-o.floating[S]+b.mainAxis,j=o.reference[p]+o.reference[S]-b.mainAxis;vj&&(v=j)}if(c){var w,x;const S=p==="y"?"width":"height",C=XU.has(Jc(i)),j=o.reference[f]-o.floating[S]+(C&&((w=a.offset)==null?void 0:w[f])||0)+(C?0:b.crossAxis),T=o.reference[f]+o.reference[S]+(C?0:((x=a.offset)==null?void 0:x[f])||0)-(C?b.crossAxis:0);_T&&(_=T)}return{[p]:v,[f]:_}}}},q4e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:i,rects:o,platform:a,elements:s}=t,{apply:l=()=>{},...c}=Xc(e,t),d=await oy(t,c),f=Jc(i),p=R0(i),v=Au(i)==="y",{width:_,height:y}=o.floating;let b,w;f==="top"||f==="bottom"?(b=f,w=p===(await(a.isRTL==null?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(w=f,b=p==="end"?"top":"bottom");const x=y-d.top-d.bottom,S=_-d.left-d.right,C=kf(y-d[b],x),j=kf(_-d[w],S),T=!t.middlewareData.shift;let E=C,$=j;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&($=S),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(E=x),T&&!p){const M=us(d.left,0),P=us(d.right,0),te=us(d.top,0),Z=us(d.bottom,0);v?$=_-2*(M!==0||P!==0?M+P:us(d.left,d.right)):E=y-2*(te!==0||Z!==0?te+Z:us(d.top,d.bottom))}await l({...t,availableWidth:$,availableHeight:E});const A=await a.getDimensions(s.floating);return _!==A.width||y!==A.height?{reset:{rects:!0}}:{}}}};function Yw(){return typeof window<"u"}function O0(e){return JU(e)?(e.nodeName||"").toLowerCase():"#document"}function cs(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Fu(e){var t;return(t=(JU(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function JU(e){return Yw()?e instanceof Node||e instanceof cs(e).Node:!1}function Al(e){return Yw()?e instanceof Element||e instanceof cs(e).Element:!1}function Bu(e){return Yw()?e instanceof HTMLElement||e instanceof cs(e).HTMLElement:!1}function QU(e){return!Yw()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof cs(e).ShadowRoot}const G4e=new Set(["inline","contents"]);function ay(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=Fl(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!G4e.has(i)}const Y4e=new Set(["table","td","th"]);function K4e(e){return Y4e.has(O0(e))}const X4e=[":popover-open",":modal"];function Kw(e){return X4e.some(t=>{try{return e.matches(t)}catch{return!1}})}const J4e=["transform","translate","scale","rotate","perspective"],Q4e=["transform","translate","scale","rotate","perspective","filter"],e3e=["paint","layout","strict","content"];function U9(e){const t=W9(),n=Al(e)?Fl(e):e;return J4e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||Q4e.some(r=>(n.willChange||"").includes(r))||e3e.some(r=>(n.contain||"").includes(r))}function t3e(e){let t=Sf(e);for(;Bu(t)&&!P0(t);){if(U9(t))return t;if(Kw(t))return null;t=Sf(t)}return null}function W9(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const n3e=new Set(["html","body","#document"]);function P0(e){return n3e.has(O0(e))}function Fl(e){return cs(e).getComputedStyle(e)}function Xw(e){return Al(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Sf(e){if(O0(e)==="html")return e;const t=e.assignedSlot||e.parentNode||QU(e)&&e.host||Fu(e);return QU(t)?t.host:t}function eW(e){const t=Sf(e);return P0(t)?e.ownerDocument?e.ownerDocument.body:e.body:Bu(t)&&ay(t)?t:eW(t)}function sy(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=eW(e),o=i===((r=e.ownerDocument)==null?void 0:r.body),a=cs(i);if(o){const s=V9(a);return t.concat(a,a.visualViewport||[],ay(i)?i:[],s&&n?sy(s):[])}return t.concat(i,sy(i,[],n))}function V9(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function tW(e){const t=Fl(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=Bu(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:r,s=Hw(n)!==o||Hw(r)!==a;return s&&(n=o,r=a),{width:n,height:r,$:s}}function H9(e){return Al(e)?e:e.contextElement}function z0(e){const t=H9(e);if(!Bu(t))return Du(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:o}=tW(t);let a=(o?Hw(n.width):n.width)/r,s=(o?Hw(n.height):n.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}const r3e=Du(0);function nW(e){const t=cs(e);return!W9()||!t.visualViewport?r3e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function i3e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==cs(e)?!1:t}function Yh(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),o=H9(e);let a=Du(1);t&&(r?Al(r)&&(a=z0(r)):a=z0(e));const s=i3e(o,n,r)?nW(o):Du(0);let l=(i.left+s.x)/a.x,c=(i.top+s.y)/a.y,d=i.width/a.x,f=i.height/a.y;if(o){const p=cs(o),v=r&&Al(r)?cs(r):r;let _=p,y=V9(_);for(;y&&r&&v!==_;){const b=z0(y),w=y.getBoundingClientRect(),x=Fl(y),S=w.left+(y.clientLeft+parseFloat(x.paddingLeft))*b.x,C=w.top+(y.clientTop+parseFloat(x.paddingTop))*b.y;l*=b.x,c*=b.y,d*=b.x,f*=b.y,l+=S,c+=C,_=cs(y),y=V9(_)}}return Gw({width:d,height:f,x:l,y:c})}function Jw(e,t){const n=Xw(e).scrollLeft;return t?t.left+n:Yh(Fu(e)).left+n}function rW(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Jw(e,n),i=n.top+t.scrollTop;return{x:r,y:i}}function o3e(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const o=i==="fixed",a=Fu(r),s=t?Kw(t.floating):!1;if(r===a||s&&o)return n;let l={scrollLeft:0,scrollTop:0},c=Du(1);const d=Du(0),f=Bu(r);if((f||!f&&!o)&&((O0(r)!=="body"||ay(a))&&(l=Xw(r)),Bu(r))){const v=Yh(r);c=z0(r),d.x=v.x+r.clientLeft,d.y=v.y+r.clientTop}const p=a&&!f&&!o?rW(a,l):Du(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+p.x,y:n.y*c.y-l.scrollTop*c.y+d.y+p.y}}function a3e(e){return Array.from(e.getClientRects())}function s3e(e){const t=Fu(e),n=Xw(e),r=e.ownerDocument.body,i=us(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=us(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Jw(e);const s=-n.scrollTop;return Fl(r).direction==="rtl"&&(a+=us(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:a,y:s}}const iW=25;function l3e(e,t){const n=cs(e),r=Fu(e),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;const d=W9();(!d||d&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}const c=Jw(r);if(c<=0){const d=r.ownerDocument,f=d.body,p=getComputedStyle(f),v=d.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,_=Math.abs(r.clientWidth-f.clientWidth-v);_<=iW&&(o-=_)}else c<=iW&&(o+=c);return{width:o,height:a,x:s,y:l}}const u3e=new Set(["absolute","fixed"]);function c3e(e,t){const n=Yh(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=Bu(e)?z0(e):Du(1),a=e.clientWidth*o.x,s=e.clientHeight*o.y,l=i*o.x,c=r*o.y;return{width:a,height:s,x:l,y:c}}function oW(e,t,n){let r;if(t==="viewport")r=l3e(e,n);else if(t==="document")r=s3e(Fu(e));else if(Al(t))r=c3e(t,n);else{const i=nW(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return Gw(r)}function aW(e,t){const n=Sf(e);return n===t||!Al(n)||P0(n)?!1:Fl(n).position==="fixed"||aW(n,t)}function d3e(e,t){const n=t.get(e);if(n)return n;let r=sy(e,[],!1).filter(s=>Al(s)&&O0(s)!=="body"),i=null;const o=Fl(e).position==="fixed";let a=o?Sf(e):e;for(;Al(a)&&!P0(a);){const s=Fl(a),l=U9(a);!l&&s.position==="fixed"&&(i=null),(o?!l&&!i:!l&&s.position==="static"&&i&&u3e.has(i.position)||ay(a)&&!l&&aW(e,a))?r=r.filter(c=>c!==a):i=s,a=Sf(a)}return t.set(e,r),r}function f3e(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?Kw(t)?[]:d3e(t,this._c):[].concat(n),r],a=o[0],s=o.reduce((l,c)=>{const d=oW(t,c,i);return l.top=us(d.top,l.top),l.right=kf(d.right,l.right),l.bottom=kf(d.bottom,l.bottom),l.left=us(d.left,l.left),l},oW(t,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function h3e(e){const{width:t,height:n}=tW(e);return{width:t,height:n}}function p3e(e,t,n){const r=Bu(t),i=Fu(t),o=n==="fixed",a=Yh(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const l=Du(0);function c(){l.x=Jw(i)}if(r||!r&&!o)if((O0(t)!=="body"||ay(i))&&(s=Xw(t)),r){const v=Yh(t,!0,o,t);l.x=v.x+t.clientLeft,l.y=v.y+t.clientTop}else i&&c();o&&!r&&i&&c();const d=i&&!r&&!o?rW(i,s):Du(0),f=a.left+s.scrollLeft-l.x-d.x,p=a.top+s.scrollTop-l.y-d.y;return{x:f,y:p,width:a.width,height:a.height}}function Z9(e){return Fl(e).position==="static"}function sW(e,t){if(!Bu(e)||Fl(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Fu(e)===n&&(n=n.ownerDocument.body),n}function lW(e,t){const n=cs(e);if(Kw(e))return n;if(!Bu(e)){let i=Sf(e);for(;i&&!P0(i);){if(Al(i)&&!Z9(i))return i;i=Sf(i)}return n}let r=sW(e,t);for(;r&&K4e(r)&&Z9(r);)r=sW(r,t);return r&&P0(r)&&Z9(r)&&!U9(r)?n:r||t3e(e)||n}const m3e=async function(e){const t=this.getOffsetParent||lW,n=this.getDimensions,r=await n(e.floating);return{reference:p3e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function g3e(e){return Fl(e).direction==="rtl"}const v3e={convertOffsetParentRelativeRectToViewportRelativeRect:o3e,getDocumentElement:Fu,getClippingRect:f3e,getOffsetParent:lW,getElementRects:m3e,getClientRects:a3e,getDimensions:h3e,getScale:z0,isElement:Al,isRTL:g3e};function uW(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function y3e(e,t){let n=null,r;const i=Fu(e);function o(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function a(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();const c=e.getBoundingClientRect(),{left:d,top:f,width:p,height:v}=c;if(s||t(),!p||!v)return;const _=Zw(f),y=Zw(i.clientWidth-(d+p)),b=Zw(i.clientHeight-(f+v)),w=Zw(d),x={rootMargin:-_+"px "+-y+"px "+-b+"px "+-w+"px",threshold:us(0,kf(1,l))||1};let S=!0;function C(j){const T=j[0].intersectionRatio;if(T!==l){if(!S)return a();T?a(!1,T):r=setTimeout(()=>{a(!1,1e-7)},1e3)}T===1&&!uW(c,e.getBoundingClientRect())&&a(),S=!1}try{n=new IntersectionObserver(C,{...x,root:i.ownerDocument})}catch{n=new IntersectionObserver(C,x)}n.observe(e)}return a(!0),o}function b3e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=H9(e),d=i||o?[...c?sy(c):[],...sy(t)]:[];d.forEach(w=>{i&&w.addEventListener("scroll",n,{passive:!0}),o&&w.addEventListener("resize",n)});const f=c&&s?y3e(c,n):null;let p=-1,v=null;a&&(v=new ResizeObserver(w=>{let[x]=w;x&&x.target===c&&v&&(v.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var S;(S=v)==null||S.observe(t)})),n()}),c&&!l&&v.observe(c),v.observe(t));let _,y=l?Yh(e):null;l&&b();function b(){const w=Yh(e);y&&!uW(y,w)&&n(),y=w,_=requestAnimationFrame(b)}return n(),()=>{var w;d.forEach(x=>{i&&x.removeEventListener("scroll",n),o&&x.removeEventListener("resize",n)}),f==null||f(),(w=v)==null||w.disconnect(),v=null,l&&cancelAnimationFrame(_)}}const _3e=V4e,x3e=H4e,w3e=B4e,k3e=q4e,S3e=U4e,cW=F4e,C3e=Z4e,j3e=(e,t,n)=>{const r=new Map,i={platform:v3e,...n},o={...i.platform,_c:r};return A4e(e,t,{...i,platform:o})};var T3e=typeof document<"u",I3e=function(){},Qw=T3e?m.useLayoutEffect:I3e;function e4(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!e4(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!(o==="_owner"&&e.$$typeof)&&!e4(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function dW(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function fW(e,t){const n=dW(e);return Math.round(t*n)/n}function q9(e){const t=m.useRef(e);return Qw(()=>{t.current=e}),t}function E3e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:o,floating:a}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[d,f]=m.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,v]=m.useState(r);e4(p,r)||v(r);const[_,y]=m.useState(null),[b,w]=m.useState(null),x=m.useCallback(F=>{F!==T.current&&(T.current=F,y(F))},[]),S=m.useCallback(F=>{F!==E.current&&(E.current=F,w(F))},[]),C=o||_,j=a||b,T=m.useRef(null),E=m.useRef(null),$=m.useRef(d),A=l!=null,M=q9(l),P=q9(i),te=q9(c),Z=m.useCallback(()=>{if(!T.current||!E.current)return;const F={placement:t,strategy:n,middleware:p};P.current&&(F.platform=P.current),j3e(T.current,E.current,F).then(H=>{const ee={...H,isPositioned:te.current!==!1};O.current&&!e4($.current,ee)&&($.current=ee,Kc.flushSync(()=>{f(ee)}))})},[p,t,n,P,te]);Qw(()=>{c===!1&&$.current.isPositioned&&($.current.isPositioned=!1,f(F=>({...F,isPositioned:!1})))},[c]);const O=m.useRef(!1);Qw(()=>(O.current=!0,()=>{O.current=!1}),[]),Qw(()=>{if(C&&(T.current=C),j&&(E.current=j),C&&j){if(M.current)return M.current(C,j,Z);Z()}},[C,j,Z,M,A]);const J=m.useMemo(()=>({reference:T,floating:E,setReference:x,setFloating:S}),[x,S]),D=m.useMemo(()=>({reference:C,floating:j}),[C,j]),Y=m.useMemo(()=>{const F={position:n,left:0,top:0};if(!D.floating)return F;const H=fW(D.floating,d.x),ee=fW(D.floating,d.y);return s?{...F,transform:"translate("+H+"px, "+ee+"px)",...dW(D.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:H,top:ee}},[n,s,D.floating,d.x,d.y]);return m.useMemo(()=>({...d,update:Z,refs:J,elements:D,floatingStyles:Y}),[d,Z,J,D,Y])}const N3e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:i}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?cW({element:r.current,padding:i}).fn(n):{}:r?cW({element:r,padding:i}).fn(n):{}}}},$3e=(e,t)=>({..._3e(e),options:[e,t]}),M3e=(e,t)=>({...x3e(e),options:[e,t]}),L3e=(e,t)=>({...C3e(e),options:[e,t]}),R3e=(e,t)=>({...w3e(e),options:[e,t]}),O3e=(e,t)=>({...k3e(e),options:[e,t]}),P3e=(e,t)=>({...S3e(e),options:[e,t]}),z3e=(e,t)=>({...N3e(e),options:[e,t]});var D3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],A3e=D3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),F3e="Arrow",hW=m.forwardRef((e,t)=>{const{children:n,width:r=10,height:i=5,...o}=e;return u.jsx(A3e.svg,{...o,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:u.jsx("polygon",{points:"0,0 30,0 15,10"})})});hW.displayName=F3e;var B3e=hW,U3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pW=U3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),G9="Popper",[mW,Cf]=Oa(G9),[W3e,gW]=mW(G9),vW=e=>{const{__scopePopper:t,children:n}=e,[r,i]=m.useState(null);return u.jsx(W3e,{scope:t,anchor:r,onAnchorChange:i,children:n})};vW.displayName=G9;var yW="PopperAnchor",bW=m.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,o=gW(yW,n),a=m.useRef(null),s=At(t,a),l=m.useRef(null);return m.useEffect(()=>{const c=l.current;l.current=(r==null?void 0:r.current)||a.current,c!==l.current&&o.onAnchorChange(l.current)}),r?null:u.jsx(pW.div,{...i,ref:s})});bW.displayName=yW;var Y9="PopperContent",[V3e,H3e]=mW(Y9),_W=m.forwardRef((e,t)=>{var he,ue,re,ge,$e,pe;const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:o="center",alignOffset:a=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:p=!1,updatePositionStrategy:v="optimized",onPlaced:_,...y}=e,b=gW(Y9,n),[w,x]=m.useState(null),S=At(t,ye=>x(ye)),[C,j]=m.useState(null),T=P9(C),E=(T==null?void 0:T.width)??0,$=(T==null?void 0:T.height)??0,A=r+(o!=="center"?"-"+o:""),M=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},P=Array.isArray(c)?c:[c],te=P.length>0,Z={padding:M,boundary:P.filter(q3e),altBoundary:te},{refs:O,floatingStyles:J,placement:D,isPositioned:Y,middlewareData:F}=E3e({strategy:"fixed",placement:A,whileElementsMounted:(...ye)=>b3e(...ye,{animationFrame:v==="always"}),elements:{reference:b.anchor},middleware:[$3e({mainAxis:i+$,alignmentAxis:a}),l&&M3e({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?L3e():void 0,...Z}),l&&R3e({...Z}),O3e({...Z,apply:({elements:ye,rects:Se,availableWidth:Ce,availableHeight:Be})=>{const{width:Ge,height:xt}=Se.reference,St=ye.floating.style;St.setProperty("--radix-popper-available-width",`${Ce}px`),St.setProperty("--radix-popper-available-height",`${Be}px`),St.setProperty("--radix-popper-anchor-width",`${Ge}px`),St.setProperty("--radix-popper-anchor-height",`${xt}px`)}}),C&&z3e({element:C,padding:s}),G3e({arrowWidth:E,arrowHeight:$}),p&&P3e({strategy:"referenceHidden",...Z})]}),[H,ee]=kW(D),ce=ko(_);xo(()=>{Y&&(ce==null||ce())},[Y,ce]);const U=(he=F.arrow)==null?void 0:he.x,ae=(ue=F.arrow)==null?void 0:ue.y,je=((re=F.arrow)==null?void 0:re.centerOffset)!==0,[me,ke]=m.useState();return xo(()=>{w&&ke(window.getComputedStyle(w).zIndex)},[w]),u.jsx("div",{ref:O.setFloating,"data-radix-popper-content-wrapper":"",style:{...J,transform:Y?J.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:me,"--radix-popper-transform-origin":[(ge=F.transformOrigin)==null?void 0:ge.x,($e=F.transformOrigin)==null?void 0:$e.y].join(" "),...((pe=F.hide)==null?void 0:pe.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:u.jsx(V3e,{scope:n,placedSide:H,onArrowChange:j,arrowX:U,arrowY:ae,shouldHideArrow:je,children:u.jsx(pW.div,{"data-side":H,"data-align":ee,...y,ref:S,style:{...y.style,animation:Y?void 0:"none"}})})})});_W.displayName=Y9;var xW="PopperArrow",Z3e={top:"bottom",right:"left",bottom:"top",left:"right"},wW=m.forwardRef(function(e,t){const{__scopePopper:n,...r}=e,i=H3e(xW,n),o=Z3e[i.placedSide];return u.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:u.jsx(B3e,{...r,ref:t,style:{...r.style,display:"block"}})})});wW.displayName=xW;function q3e(e){return e!==null}var G3e=e=>({name:"transformOrigin",options:e,fn(t){var y,b,w;const{placement:n,rects:r,middlewareData:i}=t,o=((y=i.arrow)==null?void 0:y.centerOffset)!==0,a=o?0:e.arrowWidth,s=o?0:e.arrowHeight,[l,c]=kW(n),d={start:"0%",center:"50%",end:"100%"}[c],f=(((b=i.arrow)==null?void 0:b.x)??0)+a/2,p=(((w=i.arrow)==null?void 0:w.y)??0)+s/2;let v="",_="";return l==="bottom"?(v=o?d:`${f}px`,_=`${-s}px`):l==="top"?(v=o?d:`${f}px`,_=`${r.floating.height+s}px`):l==="right"?(v=`${-s}px`,_=o?d:`${p}px`):l==="left"&&(v=`${r.floating.width+s}px`,_=o?d:`${p}px`),{data:{x:v,y:_}}}});function kW(e){const[t,n="center"]=e.split("-");return[t,n]}var t4=vW,ly=bW,n4=_W,r4=wW,Y3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],uy=Y3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function K3e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}var X3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],SW=X3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),K9="rovingFocusGroup.onEntryFocus",J3e={bubbles:!1,cancelable:!0},cy="RovingFocusGroup",[X9,CW,Q3e]=Mw(cy),[eke,i4]=Oa(cy,[Q3e]),[tke,nke]=eke(cy),jW=m.forwardRef((e,t)=>u.jsx(X9.Provider,{scope:e.__scopeRovingFocusGroup,children:u.jsx(X9.Slot,{scope:e.__scopeRovingFocusGroup,children:u.jsx(rke,{...e,ref:t})})}));jW.displayName=cy;var rke=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:d=!1,...f}=e,p=m.useRef(null),v=At(t,p),_=T0(o),[y,b]=Xs({prop:a,defaultProp:s??null,onChange:l,caller:cy}),[w,x]=m.useState(!1),S=ko(c),C=CW(n),j=m.useRef(!1),[T,E]=m.useState(0);return m.useEffect(()=>{const $=p.current;if($)return $.addEventListener(K9,S),()=>$.removeEventListener(K9,S)},[S]),u.jsx(tke,{scope:n,orientation:r,dir:_,loop:i,currentTabStopId:y,onItemFocus:m.useCallback($=>b($),[b]),onItemShiftTab:m.useCallback(()=>x(!0),[]),onFocusableItemAdd:m.useCallback(()=>E($=>$+1),[]),onFocusableItemRemove:m.useCallback(()=>E($=>$-1),[]),children:u.jsx(SW.div,{tabIndex:w||T===0?-1:0,"data-orientation":r,...f,ref:v,style:{outline:"none",...e.style},onMouseDown:Xe(e.onMouseDown,()=>{j.current=!0}),onFocus:Xe(e.onFocus,$=>{const A=!j.current;if($.target===$.currentTarget&&A&&!w){const M=new CustomEvent(K9,J3e);if($.currentTarget.dispatchEvent(M),!M.defaultPrevented){const P=C().filter(J=>J.focusable),te=P.find(J=>J.active),Z=P.find(J=>J.id===y),O=[te,Z,...P].filter(Boolean).map(J=>J.ref.current);EW(O,d)}}j.current=!1}),onBlur:Xe(e.onBlur,()=>x(!1))})})}),TW="RovingFocusGroupItem",IW=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,children:a,...s}=e,l=wo(),c=o||l,d=nke(TW,n),f=d.currentTabStopId===c,p=CW(n),{onFocusableItemAdd:v,onFocusableItemRemove:_,currentTabStopId:y}=d;return m.useEffect(()=>{if(r)return v(),()=>_()},[r,v,_]),u.jsx(X9.ItemSlot,{scope:n,id:c,focusable:r,active:i,children:u.jsx(SW.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:Xe(e.onMouseDown,b=>{r?d.onItemFocus(c):b.preventDefault()}),onFocus:Xe(e.onFocus,()=>d.onItemFocus(c)),onKeyDown:Xe(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const w=ake(b,d.orientation,d.dir);if(w!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let x=p().filter(S=>S.focusable).map(S=>S.ref.current);if(w==="last")x.reverse();else if(w==="prev"||w==="next"){w==="prev"&&x.reverse();const S=x.indexOf(b.currentTarget);x=d.loop?ske(x,S+1):x.slice(S+1)}setTimeout(()=>EW(x))}}),children:typeof a=="function"?a({isCurrentTabStop:f,hasTabStop:y!=null}):a})})});IW.displayName=TW;var ike={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function oke(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function ake(e,t,n){const r=oke(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return ike[r]}function EW(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function ske(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var NW=jW,$W=IW,J9=["Enter"," "],lke=["ArrowDown","PageUp","Home"],MW=["ArrowUp","PageDown","End"],uke=[...lke,...MW],cke={ltr:[...J9,"ArrowRight"],rtl:[...J9,"ArrowLeft"]},dke={ltr:["ArrowLeft"],rtl:["ArrowRight"]},dy="Menu",[fy,fke,hke]=Mw(dy),[Kh,LW]=Oa(dy,[hke,Cf,i4]),o4=Cf(),RW=i4(),[pke,Xh]=Kh(dy),[mke,hy]=Kh(dy),OW=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:a=!0}=e,s=o4(t),[l,c]=m.useState(null),d=m.useRef(!1),f=ko(o),p=T0(i);return m.useEffect(()=>{const v=()=>{d.current=!0,document.addEventListener("pointerdown",_,{capture:!0,once:!0}),document.addEventListener("pointermove",_,{capture:!0,once:!0})},_=()=>d.current=!1;return document.addEventListener("keydown",v,{capture:!0}),()=>{document.removeEventListener("keydown",v,{capture:!0}),document.removeEventListener("pointerdown",_,{capture:!0}),document.removeEventListener("pointermove",_,{capture:!0})}},[]),u.jsx(t4,{...s,children:u.jsx(pke,{scope:t,open:n,onOpenChange:f,content:l,onContentChange:c,children:u.jsx(mke,{scope:t,onClose:m.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:p,modal:a,children:r})})})};OW.displayName=dy;var gke="MenuAnchor",Q9=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(ly,{...i,...r,ref:t})});Q9.displayName=gke;var e7="MenuPortal",[vke,PW]=Kh(e7,{forceMount:void 0}),zW=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,o=Xh(e7,t);return u.jsx(vke,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:r})})})};zW.displayName=e7;var Js="MenuContent",[yke,t7]=Kh(Js),DW=m.forwardRef((e,t)=>{const n=PW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Xh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:a.modal?u.jsx(bke,{...i,ref:t}):u.jsx(_ke,{...i,ref:t})})})})}),bke=m.forwardRef((e,t)=>{const n=Xh(Js,e.__scopeMenu),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return Uw(o)},[]),u.jsx(n7,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),_ke=m.forwardRef((e,t)=>{const n=Xh(Js,e.__scopeMenu);return u.jsx(n7,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),xke=gr("MenuContent.ScrollLock"),n7=m.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,disableOutsideScroll:_,...y}=e,b=Xh(Js,n),w=hy(Js,n),x=o4(n),S=RW(n),C=fke(n),[j,T]=m.useState(null),E=m.useRef(null),$=At(t,E,b.onContentChange),A=m.useRef(0),M=m.useRef(""),P=m.useRef(0),te=m.useRef(null),Z=m.useRef("right"),O=m.useRef(0),J=_?iy:m.Fragment,D=_?{as:xke,allowPinchZoom:!0}:void 0,Y=H=>{var he,ue;const ee=M.current+H,ce=C().filter(re=>!re.disabled),U=document.activeElement,ae=(he=ce.find(re=>re.ref.current===U))==null?void 0:he.textValue,je=ce.map(re=>re.textValue),me=Lke(je,ee,ae),ke=(ue=ce.find(re=>re.textValue===me))==null?void 0:ue.ref.current;(function re(ge){M.current=ge,window.clearTimeout(A.current),ge!==""&&(A.current=window.setTimeout(()=>re(""),1e3))})(ee),ke&&setTimeout(()=>ke.focus())};m.useEffect(()=>()=>window.clearTimeout(A.current),[]),Rw();const F=m.useCallback(H=>{var ee,ce;return Z.current===((ee=te.current)==null?void 0:ee.side)&&Oke(H,(ce=te.current)==null?void 0:ce.area)},[]);return u.jsx(yke,{scope:n,searchRef:M,onItemEnter:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),onItemLeave:m.useCallback(H=>{var ee;F(H)||((ee=E.current)==null||ee.focus(),T(null))},[F]),onTriggerLeave:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),pointerGraceTimerRef:P,onPointerGraceIntentChange:m.useCallback(H=>{te.current=H},[]),children:u.jsx(J,{...D,children:u.jsx(ny,{asChild:!0,trapped:i,onMountAutoFocus:Xe(o,H=>{var ee;H.preventDefault(),(ee=E.current)==null||ee.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,children:u.jsx(NW,{asChild:!0,...S,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:j,onCurrentTabStopIdChange:T,onEntryFocus:Xe(l,H=>{w.isUsingKeyboardRef.current||H.preventDefault()}),preventScrollOnEntryFocus:!0,children:u.jsx(n4,{role:"menu","aria-orientation":"vertical","data-state":tV(b.open),"data-radix-menu-content":"",dir:w.dir,...x,...y,ref:$,style:{outline:"none",...y.style},onKeyDown:Xe(y.onKeyDown,H=>{const ee=H.target.closest("[data-radix-menu-content]")===H.currentTarget,ce=H.ctrlKey||H.altKey||H.metaKey,U=H.key.length===1;ee&&(H.key==="Tab"&&H.preventDefault(),!ce&&U&&Y(H.key));const ae=E.current;if(H.target!==ae||!uke.includes(H.key))return;H.preventDefault();const je=C().filter(me=>!me.disabled).map(me=>me.ref.current);MW.includes(H.key)&&je.reverse(),$ke(je)}),onBlur:Xe(e.onBlur,H=>{H.currentTarget.contains(H.target)||(window.clearTimeout(A.current),M.current="")}),onPointerMove:Xe(e.onPointerMove,my(H=>{const ee=H.target,ce=O.current!==H.clientX;if(H.currentTarget.contains(ee)&&ce){const U=H.clientX>O.current?"right":"left";Z.current=U,O.current=H.clientX}}))})})})})})})});DW.displayName=Js;var wke="MenuGroup",r7=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"group",...r,ref:t})});r7.displayName=wke;var kke="MenuLabel",AW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{...r,ref:t})});AW.displayName=kke;var a4="MenuItem",FW="menu.itemSelect",s4=m.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,o=m.useRef(null),a=hy(a4,e.__scopeMenu),s=t7(a4,e.__scopeMenu),l=At(t,o),c=m.useRef(!1),d=()=>{const f=o.current;if(!n&&f){const p=new CustomEvent(FW,{bubbles:!0,cancelable:!0});f.addEventListener(FW,v=>r==null?void 0:r(v),{once:!0}),K3e(f,p),p.defaultPrevented?c.current=!1:a.onClose()}};return u.jsx(BW,{...i,ref:l,disabled:n,onClick:Xe(e.onClick,d),onPointerDown:f=>{var p;(p=e.onPointerDown)==null||p.call(e,f),c.current=!0},onPointerUp:Xe(e.onPointerUp,f=>{var p;c.current||((p=f.currentTarget)==null||p.click())}),onKeyDown:Xe(e.onKeyDown,f=>{const p=s.searchRef.current!=="";n||p&&f.key===" "||J9.includes(f.key)&&(f.currentTarget.click(),f.preventDefault())})})});s4.displayName=a4;var BW=m.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,a=t7(a4,n),s=RW(n),l=m.useRef(null),c=At(t,l),[d,f]=m.useState(!1),[p,v]=m.useState("");return m.useEffect(()=>{const _=l.current;_&&v((_.textContent??"").trim())},[o.children]),u.jsx(fy.ItemSlot,{scope:n,disabled:r,textValue:i??p,children:u.jsx($W,{asChild:!0,...s,focusable:!r,children:u.jsx(uy.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...o,ref:c,onPointerMove:Xe(e.onPointerMove,my(_=>{r?a.onItemLeave(_):(a.onItemEnter(_),_.defaultPrevented||_.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Xe(e.onPointerLeave,my(_=>a.onItemLeave(_))),onFocus:Xe(e.onFocus,()=>f(!0)),onBlur:Xe(e.onBlur,()=>f(!1))})})})}),Ske="MenuCheckboxItem",UW=m.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return u.jsx(qW,{scope:e.__scopeMenu,checked:n,children:u.jsx(s4,{role:"menuitemcheckbox","aria-checked":l4(n)?"mixed":n,...i,ref:t,"data-state":o7(n),onSelect:Xe(i.onSelect,()=>r==null?void 0:r(l4(n)?!0:!n),{checkForDefaultPrevented:!1})})})});UW.displayName=Ske;var WW="MenuRadioGroup",[Cke,jke]=Kh(WW,{value:void 0,onValueChange:()=>{}}),VW=m.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,o=ko(r);return u.jsx(Cke,{scope:e.__scopeMenu,value:n,onValueChange:o,children:u.jsx(r7,{...i,ref:t})})});VW.displayName=WW;var HW="MenuRadioItem",ZW=m.forwardRef((e,t)=>{const{value:n,...r}=e,i=jke(HW,e.__scopeMenu),o=n===i.value;return u.jsx(qW,{scope:e.__scopeMenu,checked:o,children:u.jsx(s4,{role:"menuitemradio","aria-checked":o,...r,ref:t,"data-state":o7(o),onSelect:Xe(r.onSelect,()=>{var a;return(a=i.onValueChange)==null?void 0:a.call(i,n)},{checkForDefaultPrevented:!1})})})});ZW.displayName=HW;var i7="MenuItemIndicator",[qW,Tke]=Kh(i7,{checked:!1}),GW=m.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,o=Tke(i7,n);return u.jsx(Ao,{present:r||l4(o.checked)||o.checked===!0,children:u.jsx(uy.span,{...i,ref:t,"data-state":o7(o.checked)})})});GW.displayName=i7;var Ike="MenuSeparator",YW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});YW.displayName=Ike;var Eke="MenuArrow",KW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(r4,{...i,...r,ref:t})});KW.displayName=Eke;var Nke="MenuSub",[N5t,XW]=Kh(Nke),py="MenuSubTrigger",JW=m.forwardRef((e,t)=>{const n=Xh(py,e.__scopeMenu),r=hy(py,e.__scopeMenu),i=XW(py,e.__scopeMenu),o=t7(py,e.__scopeMenu),a=m.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=o,c={__scopeMenu:e.__scopeMenu},d=m.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return m.useEffect(()=>d,[d]),m.useEffect(()=>{const f=s.current;return()=>{window.clearTimeout(f),l(null)}},[s,l]),u.jsx(Q9,{asChild:!0,...c,children:u.jsx(BW,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":tV(n.open),...e,ref:zl(t,i.onTriggerChange),onClick:f=>{var p;(p=e.onClick)==null||p.call(e,f),!(e.disabled||f.defaultPrevented)&&(f.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Xe(e.onPointerMove,my(f=>{o.onItemEnter(f),!f.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(o.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:Xe(e.onPointerLeave,my(f=>{var v,_;d();const p=(v=n.content)==null?void 0:v.getBoundingClientRect();if(p){const y=(_=n.content)==null?void 0:_.dataset.side,b=y==="right",w=b?-5:5,x=p[b?"left":"right"],S=p[b?"right":"left"];o.onPointerGraceIntentChange({area:[{x:f.clientX+w,y:f.clientY},{x,y:p.top},{x:S,y:p.top},{x:S,y:p.bottom},{x,y:p.bottom}],side:y}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(f),f.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Xe(e.onKeyDown,f=>{var v;const p=o.searchRef.current!=="";e.disabled||p&&f.key===" "||cke[r.dir].includes(f.key)&&(n.onOpenChange(!0),(v=n.content)==null||v.focus(),f.preventDefault())})})})});JW.displayName=py;var QW="MenuSubContent",eV=m.forwardRef((e,t)=>{const n=PW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Xh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu),s=XW(QW,e.__scopeMenu),l=m.useRef(null),c=At(t,l);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:u.jsx(n7,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:c,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{var f;a.isUsingKeyboardRef.current&&((f=l.current)==null||f.focus()),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:Xe(e.onFocusOutside,d=>{d.target!==s.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Xe(e.onEscapeKeyDown,d=>{a.onClose(),d.preventDefault()}),onKeyDown:Xe(e.onKeyDown,d=>{var v;const f=d.currentTarget.contains(d.target),p=dke[a.dir].includes(d.key);f&&p&&(o.onOpenChange(!1),(v=s.trigger)==null||v.focus(),d.preventDefault())})})})})})});eV.displayName=QW;function tV(e){return e?"open":"closed"}function l4(e){return e==="indeterminate"}function o7(e){return l4(e)?"indeterminate":e?"checked":"unchecked"}function $ke(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Mke(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Lke(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=Mke(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function Rke(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function Oke(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Rke(n,t)}function my(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Pke=OW,zke=Q9,Dke=zW,Ake=DW,Fke=r7,Bke=AW,Uke=s4,Wke=UW,Vke=VW,Hke=ZW,Zke=GW,qke=YW,Gke=KW,Yke=JW,Kke=eV,Xke=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Jke=Xke.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),u4="DropdownMenu",[Qke]=Oa(u4,[LW]),sa=LW(),[e6e,nV]=Qke(u4),rV=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:o,onOpenChange:a,modal:s=!0}=e,l=sa(t),c=m.useRef(null),[d,f]=Xs({prop:i,defaultProp:o??!1,onChange:a,caller:u4});return u.jsx(e6e,{scope:t,triggerId:wo(),triggerRef:c,contentId:wo(),open:d,onOpenChange:f,onOpenToggle:m.useCallback(()=>f(p=>!p),[f]),modal:s,children:u.jsx(Pke,{...l,open:d,onOpenChange:f,dir:r,modal:s,children:n})})};rV.displayName=u4;var iV="DropdownMenuTrigger",oV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,o=nV(iV,n),a=sa(n);return u.jsx(zke,{asChild:!0,...a,children:u.jsx(Jke.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...i,ref:zl(t,o.triggerRef),onPointerDown:Xe(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(o.onOpenToggle(),o.open||s.preventDefault())}),onKeyDown:Xe(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&o.onOpenToggle(),s.key==="ArrowDown"&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});oV.displayName=iV;var t6e="DropdownMenuPortal",aV=e=>{const{__scopeDropdownMenu:t,...n}=e,r=sa(t);return u.jsx(Dke,{...r,...n})};aV.displayName=t6e;var sV="DropdownMenuContent",lV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=nV(sV,n),o=sa(n),a=m.useRef(!1);return u.jsx(Ake,{id:i.contentId,"aria-labelledby":i.triggerId,...o,...r,ref:t,onCloseAutoFocus:Xe(e.onCloseAutoFocus,s=>{var l;a.current||((l=i.triggerRef.current)==null||l.focus()),a.current=!1,s.preventDefault()}),onInteractOutside:Xe(e.onInteractOutside,s=>{const l=s.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0,d=l.button===2||c;(!i.modal||d)&&(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});lV.displayName=sV;var n6e="DropdownMenuGroup",uV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Fke,{...i,...r,ref:t})});uV.displayName=n6e;var r6e="DropdownMenuLabel",cV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Bke,{...i,...r,ref:t})});cV.displayName=r6e;var i6e="DropdownMenuItem",dV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Uke,{...i,...r,ref:t})});dV.displayName=i6e;var o6e="DropdownMenuCheckboxItem",fV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Wke,{...i,...r,ref:t})});fV.displayName=o6e;var a6e="DropdownMenuRadioGroup",hV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Vke,{...i,...r,ref:t})});hV.displayName=a6e;var s6e="DropdownMenuRadioItem",pV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Hke,{...i,...r,ref:t})});pV.displayName=s6e;var l6e="DropdownMenuItemIndicator",mV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Zke,{...i,...r,ref:t})});mV.displayName=l6e;var u6e="DropdownMenuSeparator",gV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(qke,{...i,...r,ref:t})});gV.displayName=u6e;var c6e="DropdownMenuArrow",d6e=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Gke,{...i,...r,ref:t})});d6e.displayName=c6e;var f6e="DropdownMenuSubTrigger",vV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Yke,{...i,...r,ref:t})});vV.displayName=f6e;var h6e="DropdownMenuSubContent",yV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Kke,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yV.displayName=h6e;var bV=rV,_V=oV,a7=aV,xV=lV,p6e=uV,m6e=cV,wV=dV,g6e=fV,v6e=hV,y6e=pV,kV=mV,b6e=gV,_6e=vV,x6e=yV,w6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],k6e=w6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),S6e="Label",SV=m.forwardRef((e,t)=>u.jsx(k6e.label,{...e,ref:t,onMouseDown:n=>{var r;n.target.closest("button, input, select, textarea")||((r=e.onMouseDown)==null||r.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));SV.displayName=S6e;var C6e=SV;function gy(e,[t,n]){return Math.min(n,Math.max(t,e))}var j6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],CV=j6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),c4="Popover",[jV]=Oa(c4,[Cf]),vy=Cf(),[T6e,jf]=jV(c4),TV=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!1}=e,s=vy(t),l=m.useRef(null),[c,d]=m.useState(!1),[f,p]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:c4});return u.jsx(t4,{...s,children:u.jsx(T6e,{scope:t,contentId:wo(),triggerRef:l,open:f,onOpenChange:p,onOpenToggle:m.useCallback(()=>p(v=>!v),[p]),hasCustomAnchor:c,onCustomAnchorAdd:m.useCallback(()=>d(!0),[]),onCustomAnchorRemove:m.useCallback(()=>d(!1),[]),modal:a,children:n})})};TV.displayName=c4;var IV="PopoverAnchor",EV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=jf(IV,n),o=vy(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:s}=i;return m.useEffect(()=>(a(),()=>s()),[a,s]),u.jsx(ly,{...o,...r,ref:t})});EV.displayName=IV;var NV="PopoverTrigger",$V=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=jf(NV,n),o=vy(n),a=At(t,i.triggerRef),s=u.jsx(CV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":zV(i.open),...r,ref:a,onClick:Xe(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:u.jsx(ly,{asChild:!0,...o,children:s})});$V.displayName=NV;var s7="PopoverPortal",[I6e,E6e]=jV(s7,{forceMount:void 0}),MV=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=jf(s7,t);return u.jsx(I6e,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:r})})})};MV.displayName=s7;var D0="PopoverContent",LV=m.forwardRef((e,t)=>{const n=E6e(D0,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,o=jf(D0,e.__scopePopover);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx($6e,{...i,ref:t}):u.jsx(M6e,{...i,ref:t})})});LV.displayName=D0;var N6e=gr("PopoverContent.RemoveScroll"),$6e=m.forwardRef((e,t)=>{const n=jf(D0,e.__scopePopover),r=m.useRef(null),i=At(t,r),o=m.useRef(!1);return m.useEffect(()=>{const a=r.current;if(a)return Uw(a)},[]),u.jsx(iy,{as:N6e,allowPinchZoom:!0,children:u.jsx(RV,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,a=>{var s;a.preventDefault(),o.current||((s=n.triggerRef.current)==null||s.focus())}),onPointerDownOutside:Xe(e.onPointerDownOutside,a=>{const s=a.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0,c=s.button===2||l;o.current=c},{checkForDefaultPrevented:!1}),onFocusOutside:Xe(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),M6e=m.forwardRef((e,t)=>{const n=jf(D0,e.__scopePopover),r=m.useRef(!1),i=m.useRef(!1);return u.jsx(RV,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),RV=m.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:a,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:d,...f}=e,p=jf(D0,n),v=vy(n);return Rw(),u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>p.onOpenChange(!1),children:u.jsx(n4,{"data-state":zV(p.open),role:"dialog",id:p.contentId,...v,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),OV="PopoverClose",PV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=jf(OV,n);return u.jsx(CV.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});PV.displayName=OV;var L6e="PopoverArrow",R6e=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=vy(n);return u.jsx(r4,{...i,...r,ref:t})});R6e.displayName=L6e;function zV(e){return e?"open":"closed"}var l7=TV,DV=EV,AV=$V,u7=MV,c7=LV,O6e=PV,P6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],FV=P6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),d7="Progress",f7=100,[z6e]=Oa(d7),[D6e,A6e]=z6e(d7),BV=m.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:i,getValueLabel:o=F6e,...a}=e;(i||i===0)&&!HV(i)&&console.error(B6e(`${i}`,"Progress"));const s=HV(i)?i:f7;r!==null&&!ZV(r,s)&&console.error(U6e(`${r}`,"Progress"));const l=ZV(r,s)?r:null,c=d4(l)?o(l,s):void 0;return u.jsx(D6e,{scope:n,value:l,max:s,children:u.jsx(FV.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":d4(l)?l:void 0,"aria-valuetext":c,role:"progressbar","data-state":VV(l,s),"data-value":l??void 0,"data-max":s,...a,ref:t})})});BV.displayName=d7;var UV="ProgressIndicator",WV=m.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,i=A6e(UV,n);return u.jsx(FV.div,{"data-state":VV(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});WV.displayName=UV;function F6e(e,t){return`${Math.round(e/t*100)}%`}function VV(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function d4(e){return typeof e=="number"}function HV(e){return d4(e)&&!isNaN(e)&&e>0}function ZV(e,t){return d4(e)&&!isNaN(e)&&e<=t&&e>=0}function B6e(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${f7}\`.`}function U6e(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${f7} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var W6e=BV,V6e=WV,H6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yy=H6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Z6e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var h7="ScrollArea",[qV]=Oa(h7),[q6e,Qs]=qV(h7),GV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:i,scrollHideDelay:o=600,...a}=e,[s,l]=m.useState(null),[c,d]=m.useState(null),[f,p]=m.useState(null),[v,_]=m.useState(null),[y,b]=m.useState(null),[w,x]=m.useState(0),[S,C]=m.useState(0),[j,T]=m.useState(!1),[E,$]=m.useState(!1),A=At(t,P=>l(P)),M=T0(i);return u.jsx(q6e,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:s,viewport:c,onViewportChange:d,content:f,onContentChange:p,scrollbarX:v,onScrollbarXChange:_,scrollbarXEnabled:j,onScrollbarXEnabledChange:T,scrollbarY:y,onScrollbarYChange:b,scrollbarYEnabled:E,onScrollbarYEnabledChange:$,onCornerWidthChange:x,onCornerHeightChange:C,children:u.jsx(yy.div,{dir:M,...a,ref:A,style:{position:"relative","--radix-scroll-area-corner-width":w+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});GV.displayName=h7;var YV="ScrollAreaViewport",KV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:i,...o}=e,a=Qs(YV,n),s=m.useRef(null),l=At(t,s,a.onViewportChange);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),u.jsx(yy.div,{"data-radix-scroll-area-viewport":"",...o,ref:l,style:{overflowX:a.scrollbarXEnabled?"scroll":"hidden",overflowY:a.scrollbarYEnabled?"scroll":"hidden",...e.style},children:u.jsx("div",{ref:a.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});KV.displayName=YV;var Uu="ScrollAreaScrollbar",XV=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Uu,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:a}=i,s=e.orientation==="horizontal";return m.useEffect(()=>(s?o(!0):a(!0),()=>{s?o(!1):a(!1)}),[s,o,a]),i.type==="hover"?u.jsx(G6e,{...r,ref:t,forceMount:n}):i.type==="scroll"?u.jsx(Y6e,{...r,ref:t,forceMount:n}):i.type==="auto"?u.jsx(JV,{...r,ref:t,forceMount:n}):i.type==="always"?u.jsx(p7,{...r,ref:t}):null});XV.displayName=Uu;var G6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Uu,e.__scopeScrollArea),[o,a]=m.useState(!1);return m.useEffect(()=>{const s=i.scrollArea;let l=0;if(s){const c=()=>{window.clearTimeout(l),a(!0)},d=()=>{l=window.setTimeout(()=>a(!1),i.scrollHideDelay)};return s.addEventListener("pointerenter",c),s.addEventListener("pointerleave",d),()=>{window.clearTimeout(l),s.removeEventListener("pointerenter",c),s.removeEventListener("pointerleave",d)}}},[i.scrollArea,i.scrollHideDelay]),u.jsx(Ao,{present:n||o,children:u.jsx(JV,{"data-state":o?"visible":"hidden",...r,ref:t})})}),Y6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Uu,e.__scopeScrollArea),o=e.orientation==="horizontal",a=m4(()=>l("SCROLL_END"),100),[s,l]=Z6e("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return m.useEffect(()=>{if(s==="idle"){const c=window.setTimeout(()=>l("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(c)}},[s,i.scrollHideDelay,l]),m.useEffect(()=>{const c=i.viewport,d=o?"scrollLeft":"scrollTop";if(c){let f=c[d];const p=()=>{const v=c[d];f!==v&&(l("SCROLL"),a()),f=v};return c.addEventListener("scroll",p),()=>c.removeEventListener("scroll",p)}},[i.viewport,o,l,a]),u.jsx(Ao,{present:n||s!=="hidden",children:u.jsx(p7,{"data-state":s==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Xe(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:Xe(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),JV=m.forwardRef((e,t)=>{const n=Qs(Uu,e.__scopeScrollArea),{forceMount:r,...i}=e,[o,a]=m.useState(!1),s=e.orientation==="horizontal",l=m4(()=>{if(n.viewport){const c=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,i=Qs(Uu,e.__scopeScrollArea),o=m.useRef(null),a=m.useRef(0),[s,l]=m.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=rH(s.viewport,s.content),d={...r,sizes:s,onSizesChange:l,hasThumb:c>0&&c<1,onThumbChange:p=>o.current=p,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:p=>a.current=p};function f(p,v){return t5e(p,a.current,s,v)}return n==="horizontal"?u.jsx(K6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollLeft,v=iH(p,s,i.dir);o.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollLeft=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollLeft=f(p,i.dir))}}):n==="vertical"?u.jsx(X6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollTop,v=iH(p,s);o.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollTop=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollTop=f(p))}}):null}),K6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Uu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarXChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"horizontal",...i,ref:c,sizes:n,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollLeft+d.deltaX;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:h4(a.paddingLeft),paddingEnd:h4(a.paddingRight)}})}})}),X6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Uu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarYChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"vertical",...i,ref:c,sizes:n,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollTop+d.deltaY;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:h4(a.paddingTop),paddingEnd:h4(a.paddingBottom)}})}})}),[J6e,QV]=qV(Uu),eH=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:a,onThumbPointerDown:s,onThumbPositionChange:l,onDragScroll:c,onWheelScroll:d,onResize:f,...p}=e,v=Qs(Uu,n),[_,y]=m.useState(null),b=At(t,A=>y(A)),w=m.useRef(null),x=m.useRef(""),S=v.viewport,C=r.content-r.viewport,j=ko(d),T=ko(l),E=m4(f,10);function $(A){if(w.current){const M=A.clientX-w.current.left,P=A.clientY-w.current.top;c({x:M,y:P})}}return m.useEffect(()=>{const A=M=>{const P=M.target;_!=null&&_.contains(P)&&j(M,C)};return document.addEventListener("wheel",A,{passive:!1}),()=>document.removeEventListener("wheel",A,{passive:!1})},[S,_,C,j]),m.useEffect(T,[r,T]),A0(_,E),A0(v.content,E),u.jsx(J6e,{scope:n,scrollbar:_,hasThumb:i,onThumbChange:ko(o),onThumbPointerUp:ko(a),onThumbPositionChange:T,onThumbPointerDown:ko(s),children:u.jsx(yy.div,{...p,ref:b,style:{position:"absolute",...p.style},onPointerDown:Xe(e.onPointerDown,A=>{A.button===0&&(A.target.setPointerCapture(A.pointerId),w.current=_.getBoundingClientRect(),x.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),$(A))}),onPointerMove:Xe(e.onPointerMove,$),onPointerUp:Xe(e.onPointerUp,A=>{const M=A.target;M.hasPointerCapture(A.pointerId)&&M.releasePointerCapture(A.pointerId),document.body.style.webkitUserSelect=x.current,v.viewport&&(v.viewport.style.scrollBehavior=""),w.current=null})})})}),f4="ScrollAreaThumb",tH=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=QV(f4,e.__scopeScrollArea);return u.jsx(Ao,{present:n||i.hasThumb,children:u.jsx(Q6e,{ref:t,...r})})}),Q6e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...i}=e,o=Qs(f4,n),a=QV(f4,n),{onThumbPositionChange:s}=a,l=At(t,f=>a.onThumbChange(f)),c=m.useRef(void 0),d=m4(()=>{c.current&&(c.current(),c.current=void 0)},100);return m.useEffect(()=>{const f=o.viewport;if(f){const p=()=>{if(d(),!c.current){const v=n5e(f,s);c.current=v,s()}};return s(),f.addEventListener("scroll",p),()=>f.removeEventListener("scroll",p)}},[o.viewport,d,s]),u.jsx(yy.div,{"data-state":a.hasThumb?"visible":"hidden",...i,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Xe(e.onPointerDownCapture,f=>{const p=f.target.getBoundingClientRect(),v=f.clientX-p.left,_=f.clientY-p.top;a.onThumbPointerDown({x:v,y:_})}),onPointerUp:Xe(e.onPointerUp,a.onThumbPointerUp)})});tH.displayName=f4;var m7="ScrollAreaCorner",nH=m.forwardRef((e,t)=>{const n=Qs(m7,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?u.jsx(e5e,{...e,ref:t}):null});nH.displayName=m7;var e5e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,i=Qs(m7,n),[o,a]=m.useState(0),[s,l]=m.useState(0),c=!!(o&&s);return A0(i.scrollbarX,()=>{var f;const d=((f=i.scrollbarX)==null?void 0:f.offsetHeight)||0;i.onCornerHeightChange(d),l(d)}),A0(i.scrollbarY,()=>{var f;const d=((f=i.scrollbarY)==null?void 0:f.offsetWidth)||0;i.onCornerWidthChange(d),a(d)}),c?u.jsx(yy.div,{...r,ref:t,style:{width:o,height:s,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function h4(e){return e?parseInt(e,10):0}function rH(e,t){const n=e/t;return isNaN(n)?0:n}function p4(e){const t=rH(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function t5e(e,t,n,r="ltr"){const i=p4(n),o=i/2,a=t||o,s=i-a,l=n.scrollbar.paddingStart+a,c=n.scrollbar.size-n.scrollbar.paddingEnd-s,d=n.content-n.viewport,f=r==="ltr"?[0,d]:[d*-1,0];return oH([l,c],f)(e)}function iH(e,t,n="ltr"){const r=p4(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,a=t.content-t.viewport,s=o-r,l=n==="ltr"?[0,a]:[a*-1,0],c=gy(e,l);return oH([0,a],[0,s])(c)}function oH(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function aH(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function i(){const o={left:e.scrollLeft,top:e.scrollTop},a=n.left!==o.left,s=n.top!==o.top;(a||s)&&t(),n=o,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function m4(e,t){const n=ko(e),r=m.useRef(0);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),m.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function A0(e,t){const n=ko(t);xo(()=>{let r=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return i.observe(e),()=>{window.cancelAnimationFrame(r),i.unobserve(e)}}},[e,n])}var sH=GV,lH=KV,g7=XV,v7=tH,r5e=nH,i5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ds=i5e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),o5e=[" ","Enter","ArrowUp","ArrowDown"],a5e=[" ","Enter"],Jh="Select",[g4,v4,s5e]=Mw(Jh),[F0]=Oa(Jh,[s5e,Cf]),y4=Cf(),[l5e,Tf]=F0(Jh),[u5e,c5e]=F0(Jh),uH=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:o,value:a,defaultValue:s,onValueChange:l,dir:c,name:d,autoComplete:f,disabled:p,required:v,form:_}=e,y=y4(t),[b,w]=m.useState(null),[x,S]=m.useState(null),[C,j]=m.useState(!1),T=T0(c),[E,$]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Jh}),[A,M]=Xs({prop:a,defaultProp:s,onChange:l,caller:Jh}),P=m.useRef(null),te=b?_||!!b.closest("form"):!0,[Z,O]=m.useState(new Set),J=Array.from(Z).map(D=>D.props.value).join(";");return u.jsx(t4,{...y,children:u.jsxs(l5e,{required:v,scope:t,trigger:b,onTriggerChange:w,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:j,contentId:wo(),value:A,onValueChange:M,open:E,onOpenChange:$,dir:T,triggerPointerDownPosRef:P,disabled:p,children:[u.jsx(g4.Provider,{scope:t,children:u.jsx(u5e,{scope:e.__scopeSelect,onNativeOptionAdd:m.useCallback(D=>{O(Y=>new Set(Y).add(D))},[]),onNativeOptionRemove:m.useCallback(D=>{O(Y=>{const F=new Set(Y);return F.delete(D),F})},[]),children:n})}),te?u.jsxs(MH,{"aria-hidden":!0,required:v,tabIndex:-1,name:d,autoComplete:f,value:A,onChange:D=>M(D.target.value),disabled:p,form:_,children:[A===void 0?u.jsx("option",{value:""}):null,Array.from(Z)]},J):null]})})};uH.displayName=Jh;var cH="SelectTrigger",dH=m.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,o=y4(n),a=Tf(cH,n),s=a.disabled||r,l=At(t,a.onTriggerChange),c=v4(n),d=m.useRef("touch"),[f,p,v]=RH(y=>{const b=c().filter(S=>!S.disabled),w=b.find(S=>S.value===a.value),x=OH(b,y,w);x!==void 0&&a.onValueChange(x.value)}),_=y=>{s||(a.onOpenChange(!0),v()),y&&(a.triggerPointerDownPosRef.current={x:Math.round(y.pageX),y:Math.round(y.pageY)})};return u.jsx(ly,{asChild:!0,...o,children:u.jsx(ds.button,{type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":LH(a.value)?"":void 0,...i,ref:l,onClick:Xe(i.onClick,y=>{y.currentTarget.focus(),d.current!=="mouse"&&_(y)}),onPointerDown:Xe(i.onPointerDown,y=>{d.current=y.pointerType;const b=y.target;b.hasPointerCapture(y.pointerId)&&b.releasePointerCapture(y.pointerId),y.button===0&&y.ctrlKey===!1&&y.pointerType==="mouse"&&(_(y),y.preventDefault())}),onKeyDown:Xe(i.onKeyDown,y=>{const b=f.current!=="";!(y.ctrlKey||y.altKey||y.metaKey)&&y.key.length===1&&p(y.key),!(b&&y.key===" ")&&o5e.includes(y.key)&&(_(),y.preventDefault())})})})});dH.displayName=cH;var fH="SelectValue",hH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:o,placeholder:a="",...s}=e,l=Tf(fH,n),{onValueNodeHasChildrenChange:c}=l,d=o!==void 0,f=At(t,l.onValueNodeChange);return xo(()=>{c(d)},[c,d]),u.jsx(ds.span,{...s,ref:f,style:{pointerEvents:"none"},children:LH(l.value)?u.jsx(u.Fragment,{children:a}):o})});hH.displayName=fH;var d5e="SelectIcon",pH=m.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return u.jsx(ds.span,{"aria-hidden":!0,...i,ref:t,children:r||"\u25BC"})});pH.displayName=d5e;var f5e="SelectPortal",mH=e=>u.jsx(qh,{asChild:!0,...e});mH.displayName=f5e;var Qh="SelectContent",gH=m.forwardRef((e,t)=>{const n=Tf(Qh,e.__scopeSelect),[r,i]=m.useState();if(xo(()=>{i(new DocumentFragment)},[]),!n.open){const o=r;return o?Kc.createPortal(u.jsx(vH,{scope:e.__scopeSelect,children:u.jsx(g4.Slot,{scope:e.__scopeSelect,children:u.jsx("div",{children:e.children})})}),o):null}return u.jsx(yH,{...e,ref:t})});gH.displayName=Qh;var Bl=10,[vH,If]=F0(Qh),h5e="SelectContentImpl",p5e=gr("SelectContent.RemoveScroll"),yH=m.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:a,side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:_,hideWhenDetached:y,avoidCollisions:b,...w}=e,x=Tf(Qh,n),[S,C]=m.useState(null),[j,T]=m.useState(null),E=At(t,he=>C(he)),[$,A]=m.useState(null),[M,P]=m.useState(null),te=v4(n),[Z,O]=m.useState(!1),J=m.useRef(!1);m.useEffect(()=>{if(S)return Uw(S)},[S]),Rw();const D=m.useCallback(he=>{const[ue,...re]=te().map(pe=>pe.ref.current),[ge]=re.slice(-1),$e=document.activeElement;for(const pe of he)if(pe===$e||(pe==null||pe.scrollIntoView({block:"nearest"}),pe===ue&&j&&(j.scrollTop=0),pe===ge&&j&&(j.scrollTop=j.scrollHeight),pe==null||pe.focus(),document.activeElement!==$e))return},[te,j]),Y=m.useCallback(()=>D([$,S]),[D,$,S]);m.useEffect(()=>{Z&&Y()},[Z,Y]);const{onOpenChange:F,triggerPointerDownPosRef:H}=x;m.useEffect(()=>{if(S){let he={x:0,y:0};const ue=ge=>{var $e,pe;he={x:Math.abs(Math.round(ge.pageX)-((($e=H.current)==null?void 0:$e.x)??0)),y:Math.abs(Math.round(ge.pageY)-(((pe=H.current)==null?void 0:pe.y)??0))}},re=ge=>{he.x<=10&&he.y<=10?ge.preventDefault():S.contains(ge.target)||F(!1),document.removeEventListener("pointermove",ue),H.current=null};return H.current!==null&&(document.addEventListener("pointermove",ue),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ue),document.removeEventListener("pointerup",re,{capture:!0})}}},[S,F,H]),m.useEffect(()=>{const he=()=>F(!1);return window.addEventListener("blur",he),window.addEventListener("resize",he),()=>{window.removeEventListener("blur",he),window.removeEventListener("resize",he)}},[F]);const[ee,ce]=RH(he=>{const ue=te().filter($e=>!$e.disabled),re=ue.find($e=>$e.ref.current===document.activeElement),ge=OH(ue,he,re);ge&&setTimeout(()=>ge.ref.current.focus())}),U=m.useCallback((he,ue,re)=>{const ge=!J.current&&!re;(x.value!==void 0&&x.value===ue||ge)&&(A(he),ge&&(J.current=!0))},[x.value]),ae=m.useCallback(()=>S==null?void 0:S.focus(),[S]),je=m.useCallback((he,ue,re)=>{const ge=!J.current&&!re;(x.value!==void 0&&x.value===ue||ge)&&P(he)},[x.value]),me=r==="popper"?y7:bH,ke=me===y7?{side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:_,hideWhenDetached:y,avoidCollisions:b}:{};return u.jsx(vH,{scope:n,content:S,viewport:j,onViewportChange:T,itemRefCallback:U,selectedItem:$,onItemLeave:ae,itemTextRefCallback:je,focusSelectedItem:Y,selectedItemText:M,position:r,isPositioned:Z,searchRef:ee,children:u.jsx(iy,{as:p5e,allowPinchZoom:!0,children:u.jsx(ny,{asChild:!0,trapped:x.open,onMountAutoFocus:he=>{he.preventDefault()},onUnmountAutoFocus:Xe(i,he=>{var ue;(ue=x.trigger)==null||ue.focus({preventScroll:!0}),he.preventDefault()}),children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:he=>he.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:u.jsx(me,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed",dir:x.dir,onContextMenu:he=>he.preventDefault(),...w,...ke,onPlaced:()=>O(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:Xe(w.onKeyDown,he=>{const ue=he.ctrlKey||he.altKey||he.metaKey;if(he.key==="Tab"&&he.preventDefault(),!ue&&he.key.length===1&&ce(he.key),["ArrowUp","ArrowDown","Home","End"].includes(he.key)){let re=te().filter(ge=>!ge.disabled).map(ge=>ge.ref.current);if(["ArrowUp","End"].includes(he.key)&&(re=re.slice().reverse()),["ArrowUp","ArrowDown"].includes(he.key)){const ge=he.target,$e=re.indexOf(ge);re=re.slice($e+1)}setTimeout(()=>D(re)),he.preventDefault()}})})})})})})});yH.displayName=h5e;var m5e="SelectItemAlignedPosition",bH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,o=Tf(Qh,n),a=If(Qh,n),[s,l]=m.useState(null),[c,d]=m.useState(null),f=At(t,E=>d(E)),p=v4(n),v=m.useRef(!1),_=m.useRef(!0),{viewport:y,selectedItem:b,selectedItemText:w,focusSelectedItem:x}=a,S=m.useCallback(()=>{if(o.trigger&&o.valueNode&&s&&c&&y&&b&&w){const E=o.trigger.getBoundingClientRect(),$=c.getBoundingClientRect(),A=o.valueNode.getBoundingClientRect(),M=w.getBoundingClientRect();if(o.dir!=="rtl"){const ge=M.left-$.left,$e=A.left-ge,pe=E.left-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Bl,Be=gy($e,[Bl,Math.max(Bl,Ce-Se)]);s.style.minWidth=ye+"px",s.style.left=Be+"px"}else{const ge=$.right-M.right,$e=window.innerWidth-A.right-ge,pe=window.innerWidth-E.right-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Bl,Be=gy($e,[Bl,Math.max(Bl,Ce-Se)]);s.style.minWidth=ye+"px",s.style.right=Be+"px"}const P=p(),te=window.innerHeight-Bl*2,Z=y.scrollHeight,O=window.getComputedStyle(c),J=parseInt(O.borderTopWidth,10),D=parseInt(O.paddingTop,10),Y=parseInt(O.borderBottomWidth,10),F=parseInt(O.paddingBottom,10),H=J+D+Z+F+Y,ee=Math.min(b.offsetHeight*5,H),ce=window.getComputedStyle(y),U=parseInt(ce.paddingTop,10),ae=parseInt(ce.paddingBottom,10),je=E.top+E.height/2-Bl,me=te-je,ke=b.offsetHeight/2,he=b.offsetTop+ke,ue=J+D+he,re=H-ue;if(ue<=je){const ge=P.length>0&&b===P[P.length-1].ref.current;s.style.bottom="0px";const $e=c.clientHeight-y.offsetTop-y.offsetHeight,pe=Math.max(me,ke+(ge?ae:0)+$e+Y),ye=ue+pe;s.style.height=ye+"px"}else{const ge=P.length>0&&b===P[0].ref.current;s.style.top="0px";const $e=Math.max(je,J+y.offsetTop+(ge?U:0)+ke)+re;s.style.height=$e+"px",y.scrollTop=ue-je+y.offsetTop}s.style.margin=`${Bl}px 0`,s.style.minHeight=ee+"px",s.style.maxHeight=te+"px",r==null||r(),requestAnimationFrame(()=>v.current=!0)}},[p,o.trigger,o.valueNode,s,c,y,b,w,o.dir,r]);xo(()=>S(),[S]);const[C,j]=m.useState();xo(()=>{c&&j(window.getComputedStyle(c).zIndex)},[c]);const T=m.useCallback(E=>{E&&_.current===!0&&(S(),x==null||x(),_.current=!1)},[S,x]);return u.jsx(v5e,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:v,onScrollButtonChange:T,children:u.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:C},children:u.jsx(ds.div,{...i,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});bH.displayName=m5e;var g5e="SelectPopperPosition",y7=m.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=Bl,...o}=e,a=y4(n);return u.jsx(n4,{...a,...o,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});y7.displayName=g5e;var[v5e,b7]=F0(Qh,{}),_7="SelectViewport",_H=m.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,o=If(_7,n),a=b7(_7,n),s=At(t,o.onViewportChange),l=m.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),u.jsx(g4.Slot,{scope:n,children:u.jsx(ds.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:Xe(i.onScroll,c=>{const d=c.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:p}=a;if(p!=null&&p.current&&f){const v=Math.abs(l.current-d.scrollTop);if(v>0){const _=window.innerHeight-Bl*2,y=parseFloat(f.style.minHeight),b=parseFloat(f.style.height),w=Math.max(y,b);if(w<_){const x=w+v,S=Math.min(_,x),C=x-S;f.style.height=S+"px",f.style.bottom==="0px"&&(d.scrollTop=C>0?C:0,f.style.justifyContent="flex-end")}}}l.current=d.scrollTop})})})]})});_H.displayName=_7;var xH="SelectGroup",[y5e,b5e]=F0(xH),wH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=wo();return u.jsx(y5e,{scope:n,id:i,children:u.jsx(ds.div,{role:"group","aria-labelledby":i,...r,ref:t})})});wH.displayName=xH;var kH="SelectLabel",SH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=b5e(kH,n);return u.jsx(ds.div,{id:i.id,...r,ref:t})});SH.displayName=kH;var b4="SelectItem",[_5e,CH]=F0(b4),jH=m.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:o,...a}=e,s=Tf(b4,n),l=If(b4,n),c=s.value===r,[d,f]=m.useState(o??""),[p,v]=m.useState(!1),_=At(t,x=>{var S;return(S=l.itemRefCallback)==null?void 0:S.call(l,x,r,i)}),y=wo(),b=m.useRef("touch"),w=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(_5e,{scope:n,value:r,disabled:i,textId:y,isSelected:c,onItemTextChange:m.useCallback(x=>{f(S=>S||((x==null?void 0:x.textContent)??"").trim())},[]),children:u.jsx(g4.ItemSlot,{scope:n,value:r,disabled:i,textValue:d,children:u.jsx(ds.div,{role:"option","aria-labelledby":y,"data-highlighted":p?"":void 0,"aria-selected":c&&p,"data-state":c?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...a,ref:_,onFocus:Xe(a.onFocus,()=>v(!0)),onBlur:Xe(a.onBlur,()=>v(!1)),onClick:Xe(a.onClick,()=>{b.current!=="mouse"&&w()}),onPointerUp:Xe(a.onPointerUp,()=>{b.current==="mouse"&&w()}),onPointerDown:Xe(a.onPointerDown,x=>{b.current=x.pointerType}),onPointerMove:Xe(a.onPointerMove,x=>{var S;b.current=x.pointerType,i?(S=l.onItemLeave)==null||S.call(l):b.current==="mouse"&&x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Xe(a.onPointerLeave,x=>{var S;x.currentTarget===document.activeElement&&((S=l.onItemLeave)==null||S.call(l))}),onKeyDown:Xe(a.onKeyDown,x=>{var S;((S=l.searchRef)==null?void 0:S.current)!==""&&x.key===" "||(a5e.includes(x.key)&&w(),x.key===" "&&x.preventDefault())})})})})});jH.displayName=b4;var by="SelectItemText",TH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...o}=e,a=Tf(by,n),s=If(by,n),l=CH(by,n),c=c5e(by,n),[d,f]=m.useState(null),p=At(t,w=>f(w),l.onItemTextChange,w=>{var x;return(x=s.itemTextRefCallback)==null?void 0:x.call(s,w,l.value,l.disabled)}),v=d==null?void 0:d.textContent,_=m.useMemo(()=>u.jsx("option",{value:l.value,disabled:l.disabled,children:v},l.value),[l.disabled,l.value,v]),{onNativeOptionAdd:y,onNativeOptionRemove:b}=c;return xo(()=>(y(_),()=>b(_)),[y,b,_]),u.jsxs(u.Fragment,{children:[u.jsx(ds.span,{id:l.textId,...o,ref:p}),l.isSelected&&a.valueNode&&!a.valueNodeHasChildren?Kc.createPortal(o.children,a.valueNode):null]})});TH.displayName=by;var IH="SelectItemIndicator",EH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return CH(IH,n).isSelected?u.jsx(ds.span,{"aria-hidden":!0,...r,ref:t}):null});EH.displayName=IH;var x7="SelectScrollUpButton",x5e=m.forwardRef((e,t)=>{const n=If(x7,e.__scopeSelect),r=b7(x7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return xo(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollTop>0;o(c)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}}):null});x5e.displayName=x7;var w7="SelectScrollDownButton",w5e=m.forwardRef((e,t)=>{const n=If(w7,e.__scopeSelect),r=b7(w7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return xo(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollHeight-l.clientHeight,d=Math.ceil(l.scrollTop)l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}}):null});w5e.displayName=w7;var NH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,o=If("SelectScrollButton",n),a=m.useRef(null),s=v4(n),l=m.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return m.useEffect(()=>()=>l(),[l]),xo(()=>{var c,d;(d=(c=s().find(f=>f.ref.current===document.activeElement))==null?void 0:c.ref.current)==null||d.scrollIntoView({block:"nearest"})},[s]),u.jsx(ds.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:Xe(i.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(r,50))}),onPointerMove:Xe(i.onPointerMove,()=>{var c;(c=o.onItemLeave)==null||c.call(o),a.current===null&&(a.current=window.setInterval(r,50))}),onPointerLeave:Xe(i.onPointerLeave,()=>{l()})})}),k5e="SelectSeparator",$H=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return u.jsx(ds.div,{"aria-hidden":!0,...r,ref:t})});$H.displayName=k5e;var k7="SelectArrow",S5e=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=y4(n),o=Tf(k7,n),a=If(k7,n);return o.open&&a.position==="popper"?u.jsx(r4,{...i,...r,ref:t}):null});S5e.displayName=k7;var C5e="SelectBubbleInput",MH=m.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(r,i),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("change",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(ds.select,{...n,style:{...GB,...n.style},ref:o,defaultValue:t})});MH.displayName=C5e;function LH(e){return e===""||e===void 0}function RH(e){const t=ko(e),n=m.useRef(""),r=m.useRef(0),i=m.useCallback(a=>{const s=n.current+a;t(s),function l(c){n.current=c,window.clearTimeout(r.current),c!==""&&(r.current=window.setTimeout(()=>l(""),1e3))}(s)},[t]),o=m.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,o]}function OH(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=j5e(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.textValue.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function j5e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var T5e=uH,I5e=dH,E5e=hH,N5e=pH,$5e=mH,M5e=gH,L5e=_H,R5e=wH,O5e=SH,P5e=jH,z5e=TH,D5e=EH,A5e=$H,F5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],_y=F5e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),PH=["PageUp","PageDown"],zH=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],DH={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},B0="Slider",[S7,B5e,U5e]=Mw(B0),[AH]=Oa(B0,[U5e]),[W5e,_4]=AH(B0),FH=m.forwardRef((e,t)=>{const{name:n,min:r=0,max:i=100,step:o=1,orientation:a="horizontal",disabled:s=!1,minStepsBetweenThumbs:l=0,defaultValue:c=[r],value:d,onValueChange:f=()=>{},onValueCommit:p=()=>{},inverted:v=!1,form:_,...y}=e,b=m.useRef(new Set),w=m.useRef(0),x=a==="horizontal"?V5e:H5e,[S=[],C]=Xs({prop:d,defaultProp:c,onChange:M=>{var P;(P=[...b.current][w.current])==null||P.focus(),f(M)}}),j=m.useRef(S);function T(M){const P=K5e(S,M);A(M,P)}function E(M){A(M,w.current)}function $(){const M=j.current[w.current];S[w.current]!==M&&p(S)}function A(M,P,{commit:te}={commit:!1}){const Z=eSe(o),O=tSe(Math.round((M-r)/o)*o+r,Z),J=gy(O,[r,i]);C((D=[])=>{const Y=G5e(D,J,P);if(Q5e(Y,l*o)){w.current=Y.indexOf(J);const F=String(Y)!==String(D);return F&&te&&p(Y),F?Y:D}else return D})}return u.jsx(W5e,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:w,thumbs:b.current,values:S,orientation:a,form:_,children:u.jsx(S7.Provider,{scope:e.__scopeSlider,children:u.jsx(S7.Slot,{scope:e.__scopeSlider,children:u.jsx(x,{"aria-disabled":s,"data-disabled":s?"":void 0,...y,ref:t,onPointerDown:Xe(y.onPointerDown,()=>{s||(j.current=S)}),min:r,max:i,inverted:v,onSlideStart:s?void 0:T,onSlideMove:s?void 0:E,onSlideEnd:s?void 0:$,onHomeKeyDown:()=>!s&&A(r,0,{commit:!0}),onEndKeyDown:()=>!s&&A(i,S.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:P})=>{if(!s){const te=PH.includes(M.key)||M.shiftKey&&zH.includes(M.key)?10:1,Z=w.current,O=S[Z],J=o*te*P;A(O+J,Z,{commit:!0})}}})})})})});FH.displayName=B0;var[BH,UH]=AH(B0,{startEdge:"left",endEdge:"right",size:"width",direction:1}),V5e=m.forwardRef((e,t)=>{const{min:n,max:r,dir:i,inverted:o,onSlideStart:a,onSlideMove:s,onSlideEnd:l,onStepKeyDown:c,...d}=e,[f,p]=m.useState(null),v=At(t,S=>p(S)),_=m.useRef(void 0),y=T0(i),b=y==="ltr",w=b&&!o||!b&&o;function x(S){const C=_.current||f.getBoundingClientRect(),j=[0,C.width],T=T7(j,w?[n,r]:[r,n]);return _.current=C,T(S-C.left)}return u.jsx(BH,{scope:e.__scopeSlider,startEdge:w?"left":"right",endEdge:w?"right":"left",direction:w?1:-1,size:"width",children:u.jsx(WH,{dir:y,"data-orientation":"horizontal",...d,ref:v,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:S=>{const C=x(S.clientX);a==null||a(C)},onSlideMove:S=>{const C=x(S.clientX);s==null||s(C)},onSlideEnd:()=>{_.current=void 0,l==null||l()},onStepKeyDown:S=>{const C=DH[w?"from-left":"from-right"].includes(S.key);c==null||c({event:S,direction:C?-1:1})}})})}),H5e=m.forwardRef((e,t)=>{const{min:n,max:r,inverted:i,onSlideStart:o,onSlideMove:a,onSlideEnd:s,onStepKeyDown:l,...c}=e,d=m.useRef(null),f=At(t,d),p=m.useRef(void 0),v=!i;function _(y){const b=p.current||d.current.getBoundingClientRect(),w=[0,b.height],x=T7(w,v?[r,n]:[n,r]);return p.current=b,x(y-b.top)}return u.jsx(BH,{scope:e.__scopeSlider,startEdge:v?"bottom":"top",endEdge:v?"top":"bottom",size:"height",direction:v?1:-1,children:u.jsx(WH,{"data-orientation":"vertical",...c,ref:f,style:{...c.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:y=>{const b=_(y.clientY);o==null||o(b)},onSlideMove:y=>{const b=_(y.clientY);a==null||a(b)},onSlideEnd:()=>{p.current=void 0,s==null||s()},onStepKeyDown:y=>{const b=DH[v?"from-bottom":"from-top"].includes(y.key);l==null||l({event:y,direction:b?-1:1})}})})}),WH=m.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:o,onHomeKeyDown:a,onEndKeyDown:s,onStepKeyDown:l,...c}=e,d=_4(B0,n);return u.jsx(_y.span,{...c,ref:t,onKeyDown:Xe(e.onKeyDown,f=>{f.key==="Home"?(a(f),f.preventDefault()):f.key==="End"?(s(f),f.preventDefault()):PH.concat(zH).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Xe(e.onPointerDown,f=>{const p=f.target;p.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(p)?p.focus():r(f)}),onPointerMove:Xe(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&i(f)}),onPointerUp:Xe(e.onPointerUp,f=>{const p=f.target;p.hasPointerCapture(f.pointerId)&&(p.releasePointerCapture(f.pointerId),o(f))})})}),VH="SliderTrack",HH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=_4(VH,n);return u.jsx(_y.span,{"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation,...r,ref:t})});HH.displayName=VH;var C7="SliderRange",ZH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=_4(C7,n),o=UH(C7,n),a=m.useRef(null),s=At(t,a),l=i.values.length,c=i.values.map(p=>YH(p,i.min,i.max)),d=l>1?Math.min(...c):0,f=100-Math.max(...c);return u.jsx(_y.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,...r,ref:s,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});ZH.displayName=C7;var j7="SliderThumb",qH=m.forwardRef((e,t)=>{const n=B5e(e.__scopeSlider),[r,i]=m.useState(null),o=At(t,s=>i(s)),a=m.useMemo(()=>r?n().findIndex(s=>s.ref.current===r):-1,[n,r]);return u.jsx(Z5e,{...e,ref:o,index:a})}),Z5e=m.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:i,...o}=e,a=_4(j7,n),s=UH(j7,n),[l,c]=m.useState(null),d=At(t,x=>c(x)),f=l?a.form||!!l.closest("form"):!0,p=P9(l),v=a.values[r],_=v===void 0?0:YH(v,a.min,a.max),y=Y5e(r,a.values.length),b=p==null?void 0:p[s.size],w=b?X5e(b,_,s.direction):0;return m.useEffect(()=>{if(l)return a.thumbs.add(l),()=>{a.thumbs.delete(l)}},[l,a.thumbs]),u.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${_}% + ${w}px)`},children:[u.jsx(S7.ItemSlot,{scope:e.__scopeSlider,children:u.jsx(_y.span,{role:"slider","aria-label":e["aria-label"]||y,"aria-valuemin":a.min,"aria-valuenow":v,"aria-valuemax":a.max,"aria-orientation":a.orientation,"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,tabIndex:a.disabled?void 0:0,...o,ref:d,style:v===void 0?{display:"none"}:e.style,onFocus:Xe(e.onFocus,()=>{a.valueIndexToChangeRef.current=r})})}),f&&u.jsx(GH,{name:i??(a.name?a.name+(a.values.length>1?"[]":""):void 0),form:a.form,value:v},r)]})});qH.displayName=j7;var q5e="RadioBubbleInput",GH=m.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(i,r),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("input",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(_y.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});GH.displayName=q5e;function G5e(e=[],t,n){const r=[...e];return r[n]=t,r.sort((i,o)=>i-o)}function YH(e,t,n){const r=100/(n-t)*(e-t);return gy(r,[0,100])}function Y5e(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function K5e(e,t){if(e.length===1)return 0;const n=e.map(i=>Math.abs(i-t)),r=Math.min(...n);return n.indexOf(r)}function X5e(e,t,n){const r=e/2,i=T7([0,50],[0,r]);return(r-i(t)*n)*n}function J5e(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Q5e(e,t){if(t>0){const n=J5e(e);return Math.min(...n)>=t}return!0}function T7(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function eSe(e){return(String(e).split(".")[1]||"").length}function tSe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var KH=FH,XH=HH,nSe=ZH,JH=qH,rSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],QH=rSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),x4="Switch",[iSe]=Oa(x4),[oSe,aSe]=iSe(x4),eZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:i,defaultChecked:o,required:a,disabled:s,value:l="on",onCheckedChange:c,form:d,...f}=e,[p,v]=m.useState(null),_=At(t,S=>v(S)),y=m.useRef(!1),b=p?d||!!p.closest("form"):!0,[w,x]=Xs({prop:i,defaultProp:o??!1,onChange:c,caller:x4});return u.jsxs(oSe,{scope:n,checked:w,disabled:s,children:[u.jsx(QH.button,{type:"button",role:"switch","aria-checked":w,"aria-required":a,"data-state":iZ(w),"data-disabled":s?"":void 0,disabled:s,value:l,...f,ref:_,onClick:Xe(e.onClick,S=>{x(C=>!C),b&&(y.current=S.isPropagationStopped(),y.current||S.stopPropagation())})}),b&&u.jsx(rZ,{control:p,bubbles:!y.current,name:r,value:l,checked:w,required:a,disabled:s,form:d,style:{transform:"translateX(-100%)"}})]})});eZ.displayName=x4;var tZ="SwitchThumb",nZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,i=aSe(tZ,n);return u.jsx(QH.span,{"data-state":iZ(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t})});nZ.displayName=tZ;var sSe="SwitchBubbleInput",rZ=m.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},o)=>{const a=m.useRef(null),s=At(a,o),l=O9(n),c=P9(t);return m.useEffect(()=>{const d=a.current;if(!d)return;const f=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(f,"checked").set;if(l!==n&&p){const v=new Event("click",{bubbles:r});p.call(d,n),d.dispatchEvent(v)}},[l,n,r]),u.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});rZ.displayName=sSe;function iZ(e){return e?"checked":"unchecked"}var lSe=eZ,uSe=nZ,cSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],dSe=cSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),oZ="Toggle",I7=m.forwardRef((e,t)=>{const{pressed:n,defaultPressed:r,onPressedChange:i,...o}=e,[a,s]=Xs({prop:n,onChange:i,defaultProp:r??!1,caller:oZ});return u.jsx(dSe.button,{type:"button","aria-pressed":a,"data-state":a?"on":"off","data-disabled":e.disabled?"":void 0,...o,ref:t,onClick:Xe(e.onClick,()=>{e.disabled||s(!a)})})});I7.displayName=oZ;var E7=I7,fSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],aZ=fSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Ef="ToggleGroup",[sZ]=Oa(Ef,[i4]),lZ=i4(),N7=Oe.forwardRef((e,t)=>{const{type:n,...r}=e;if(n==="single"){const i=r;return u.jsx(hSe,{...i,ref:t})}if(n==="multiple"){const i=r;return u.jsx(pSe,{...i,ref:t})}throw new Error(`Missing prop \`type\` expected on \`${Ef}\``)});N7.displayName=Ef;var[uZ,cZ]=sZ(Ef),hSe=Oe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??"",onChange:i,caller:Ef});return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"single",value:Oe.useMemo(()=>a?[a]:[],[a]),onItemActivate:s,onItemDeactivate:Oe.useCallback(()=>s(""),[s]),children:u.jsx(dZ,{...o,ref:t})})}),pSe=Oe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??[],onChange:i,caller:Ef}),l=Oe.useCallback(d=>s((f=[])=>[...f,d]),[s]),c=Oe.useCallback(d=>s((f=[])=>f.filter(p=>p!==d)),[s]);return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"multiple",value:a,onItemActivate:l,onItemDeactivate:c,children:u.jsx(dZ,{...o,ref:t})})});N7.displayName=Ef;var[mSe,gSe]=sZ(Ef),dZ=Oe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:o,dir:a,loop:s=!0,...l}=e,c=lZ(n),d=T0(a),f={role:"group",dir:d,...l};return u.jsx(mSe,{scope:n,rovingFocus:i,disabled:r,children:i?u.jsx(NW,{asChild:!0,...c,orientation:o,dir:d,loop:s,children:u.jsx(aZ.div,{...f,ref:t})}):u.jsx(aZ.div,{...f,ref:t})})}),w4="ToggleGroupItem",fZ=Oe.forwardRef((e,t)=>{const n=cZ(w4,e.__scopeToggleGroup),r=gSe(w4,e.__scopeToggleGroup),i=lZ(e.__scopeToggleGroup),o=n.value.includes(e.value),a=r.disabled||e.disabled,s={...e,pressed:o,disabled:a},l=Oe.useRef(null);return r.rovingFocus?u.jsx($W,{asChild:!0,...i,focusable:!a,active:o,ref:l,children:u.jsx(hZ,{...s,ref:t})}):u.jsx(hZ,{...s,ref:t})});fZ.displayName=w4;var hZ=Oe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,value:r,...i}=e,o=cZ(w4,n),a={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s=o.type==="single"?a:void 0;return u.jsx(I7,{...s,...i,ref:t,onPressedChange:l=>{l?o.onItemActivate(r):o.onItemDeactivate(r)}})}),$7=N7,U0=fZ,vSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ySe=vSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),[k4]=Oa("Tooltip",[Cf]),S4=Cf(),pZ="TooltipProvider",bSe=700,M7="tooltip.open",[_Se,L7]=k4(pZ),mZ=e=>{const{__scopeTooltip:t,delayDuration:n=bSe,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:o}=e,a=m.useRef(!0),s=m.useRef(!1),l=m.useRef(0);return m.useEffect(()=>{const c=l.current;return()=>window.clearTimeout(c)},[]),u.jsx(_Se,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:m.useCallback(()=>{window.clearTimeout(l.current),a.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:m.useCallback(c=>{s.current=c},[]),disableHoverableContent:i,children:o})};mZ.displayName=pZ;var xy="Tooltip",[xSe,wy]=k4(xy),gZ=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:o,disableHoverableContent:a,delayDuration:s}=e,l=L7(xy,e.__scopeTooltip),c=S4(t),[d,f]=m.useState(null),p=wo(),v=m.useRef(0),_=a??l.disableHoverableContent,y=s??l.delayDuration,b=m.useRef(!1),[w,x]=Xs({prop:r,defaultProp:i??!1,onChange:E=>{E?(l.onOpen(),document.dispatchEvent(new CustomEvent(M7))):l.onClose(),o==null||o(E)},caller:xy}),S=m.useMemo(()=>w?b.current?"delayed-open":"instant-open":"closed",[w]),C=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,b.current=!1,x(!0)},[x]),j=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,x(!1)},[x]),T=m.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{b.current=!0,x(!0),v.current=0},y)},[y,x]);return m.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),u.jsx(t4,{...c,children:u.jsx(xSe,{scope:t,contentId:p,open:w,stateAttribute:S,trigger:d,onTriggerChange:f,onTriggerEnter:m.useCallback(()=>{l.isOpenDelayedRef.current?T():C()},[l.isOpenDelayedRef,T,C]),onTriggerLeave:m.useCallback(()=>{_?j():(window.clearTimeout(v.current),v.current=0)},[j,_]),onOpen:C,onClose:j,disableHoverableContent:_,children:n})})};gZ.displayName=xy;var R7="TooltipTrigger",vZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=wy(R7,n),o=L7(R7,n),a=S4(n),s=m.useRef(null),l=At(t,s,i.onTriggerChange),c=m.useRef(!1),d=m.useRef(!1),f=m.useCallback(()=>c.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),u.jsx(ly,{asChild:!0,...a,children:u.jsx(ySe.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:l,onPointerMove:Xe(e.onPointerMove,p=>{p.pointerType!=="touch"&&!d.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),d.current=!0)}),onPointerLeave:Xe(e.onPointerLeave,()=>{i.onTriggerLeave(),d.current=!1}),onPointerDown:Xe(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:Xe(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:Xe(e.onBlur,i.onClose),onClick:Xe(e.onClick,i.onClose)})})});vZ.displayName=R7;var O7="TooltipPortal",[wSe,kSe]=k4(O7,{forceMount:void 0}),yZ=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,o=wy(O7,t);return u.jsx(wSe,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:r})})})};yZ.displayName=O7;var W0="TooltipContent",bZ=m.forwardRef((e,t)=>{const n=kSe(W0,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i="top",...o}=e,a=wy(W0,e.__scopeTooltip);return u.jsx(Ao,{present:r||a.open,children:a.disableHoverableContent?u.jsx(_Z,{side:i,...o,ref:t}):u.jsx(SSe,{side:i,...o,ref:t})})}),SSe=m.forwardRef((e,t)=>{const n=wy(W0,e.__scopeTooltip),r=L7(W0,e.__scopeTooltip),i=m.useRef(null),o=At(t,i),[a,s]=m.useState(null),{trigger:l,onClose:c}=n,d=i.current,{onPointerInTransitChange:f}=r,p=m.useCallback(()=>{s(null),f(!1)},[f]),v=m.useCallback((_,y)=>{const b=_.currentTarget,w={x:_.clientX,y:_.clientY},x=ISe(w,b.getBoundingClientRect()),S=ESe(w,x),C=NSe(y.getBoundingClientRect()),j=MSe([...S,...C]);s(j),f(!0)},[f]);return m.useEffect(()=>()=>p(),[p]),m.useEffect(()=>{if(l&&d){const _=b=>v(b,d),y=b=>v(b,l);return l.addEventListener("pointerleave",_),d.addEventListener("pointerleave",y),()=>{l.removeEventListener("pointerleave",_),d.removeEventListener("pointerleave",y)}}},[l,d,v,p]),m.useEffect(()=>{if(a){const _=y=>{const b=y.target,w={x:y.clientX,y:y.clientY},x=(l==null?void 0:l.contains(b))||(d==null?void 0:d.contains(b)),S=!$Se(w,a);x?p():S&&(p(),c())};return document.addEventListener("pointermove",_),()=>document.removeEventListener("pointermove",_)}},[l,d,a,c,p]),u.jsx(_Z,{...e,ref:o})}),[CSe,jSe]=k4(xy,{isInside:!1}),TSe=qB("TooltipContent"),_Z=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:o,onPointerDownOutside:a,...s}=e,l=wy(W0,n),c=S4(n),{onClose:d}=l;return m.useEffect(()=>(document.addEventListener(M7,d),()=>document.removeEventListener(M7,d)),[d]),m.useEffect(()=>{if(l.trigger){const f=p=>{var v;(v=p.target)!=null&&v.contains(l.trigger)&&d()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[l.trigger,d]),u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:d,children:u.jsxs(n4,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(TSe,{children:r}),u.jsx(CSe,{scope:n,isInside:!0,children:u.jsx(KB,{id:l.contentId,role:"tooltip",children:i||r})})]})})});bZ.displayName=W0;var xZ="TooltipArrow",wZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=S4(n);return jSe(xZ,n).isInside?null:u.jsx(r4,{...i,...r,ref:t})});wZ.displayName=xZ;function ISe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,i,o)){case o:return"left";case i:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function ESe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NSe(e){const{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function $Se(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function MSe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),LSe(t)}function LSe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const o=t[t.length-1],a=t[t.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const i=e[r];for(;n.length>=2;){const o=n[n.length-1],a=n[n.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var RSe=mZ,OSe=gZ,PSe=vZ,zSe=yZ,DSe=bZ,ASe=wZ,kZ={exports:{}};/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var o="",a=0;aP7.includes(t))}function $f({className:e,customProperties:t,...n}){const r=Sy({allowArbitraryValues:!0,className:e,...n}),i=XSe({customProperties:t,...n});return[r,i]}function Sy({allowArbitraryValues:e,value:t,className:n,propValues:r,parseValue:i=o=>o}){const o=[];if(t){if(typeof t=="string"&&r.includes(t))return $Z(n,t,i);if(ky(t)){const a=t;for(const s in a){if(!NZ(a,s)||!P7.includes(s))continue;const l=a[s];if(l!==void 0){if(r.includes(l)){const c=$Z(n,l,i),d=s==="initial"?c:`${s}:${c}`;o.push(d)}else if(e){const c=s==="initial"?n:`${s}:${n}`;o.push(c)}}}return o.join(" ")}if(e)return n}}function $Z(e,t,n){const r=e?"-":"",i=n(t),o=i==null?void 0:i.startsWith("-"),a=o?"-":"",s=o?i==null?void 0:i.substring(1):i;return`${a}${e}${r}${s}`}function XSe({customProperties:e,value:t,propValues:n,parseValue:r=i=>i}){let i={};if(!(!t||typeof t=="string"&&n.includes(t))){if(typeof t=="string"&&(i=Object.fromEntries(e.map(o=>[o,t]))),ky(t)){const o=t;for(const a in o){if(!NZ(o,a)||!P7.includes(a))continue;const s=o[a];if(!n.includes(s))for(const l of e)i={[a==="initial"?l:`${l}-${a}`]:s,...i}}}for(const o in i){const a=i[o];a!==void 0&&(i[o]=r(a))}return i}}function Cy(...e){let t={};for(const n of e)n&&(t={...t,...n});return Object.keys(t).length?t:void 0}function JSe(...e){return Object.assign({},...e)}function er(e,...t){let n,r;const i={...e},o=JSe(...t);for(const a in o){let s=i[a];const l=o[a];if(l.default!==void 0&&s===void 0&&(s=l.default),l.type==="enum"&&![l.default,...l.values].includes(s)&&!ky(s)&&(s=l.default),i[a]=s,"className"in l&&l.className){delete i[a];const c="responsive"in l;if(!s||ky(s)&&!c)continue;if(ky(s)&&(l.default!==void 0&&s.initial===void 0&&(s.initial=l.default),l.type==="enum"&&([l.default,...l.values].includes(s.initial)||(s.initial=l.default))),l.type==="enum"){const d=Sy({allowArbitraryValues:!1,value:s,className:l.className,propValues:l.values,parseValue:l.parseValue});n=gt(n,d);continue}if(l.type==="string"||l.type==="enum | string"){const d=l.type==="string"?[]:l.values,[f,p]=$f({className:l.className,customProperties:l.customProperties,propValues:d,parseValue:l.parseValue,value:s});r=Cy(r,p),n=gt(n,f);continue}if(l.type==="boolean"&&s){n=gt(n,l.className);continue}}}return i.className=gt(n,e.className),i.style=Cy(r,e.style),i}const ep=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],So={m:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}},MZ=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="h1",color:a,...s}=er(e,KSe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Heading",r)},i?n:m.createElement(o,null,n))});MZ.displayName="Heading";const QSe=["span","div","label","p"],eCe=["1","2","3","4","5","6","7","8","9"],tCe={as:{type:"enum",values:QSe,default:"span"},...el,size:{type:"enum",className:"rt-r-size",values:eCe,responsive:!0},...EZ,...jZ,...CZ,...IZ,...TZ,...Pa,...Nf},q=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="span",color:a,...s}=er(e,tCe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Text",r)},i?n:m.createElement(o,null,n))});q.displayName="Text";function nCe(e){switch(e){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}const rCe=["none","small","medium","large","full"],tp={radius:{type:"enum",values:rCe,default:void 0}},fs={hasBackground:{default:!0},appearance:{default:"inherit"},accentColor:{default:"indigo"},grayColor:{default:"auto"},panelBackground:{default:"translucent"},radius:{default:"medium"},scaling:{default:"100%"}},V0=()=>{},j4=m.createContext(void 0);function LZ(){const e=m.useContext(j4);if(e===void 0)throw new Error("`useThemeContext` must be used within a `Theme`");return e}const Mf=m.forwardRef((e,t)=>m.useContext(j4)===void 0?m.createElement(RSe,{delayDuration:200},m.createElement(K2e,{dir:"ltr"},m.createElement(RZ,{...e,ref:t}))):m.createElement(z7,{...e,ref:t}));Mf.displayName="Theme";const RZ=m.forwardRef((e,t)=>{const{appearance:n=fs.appearance.default,accentColor:r=fs.accentColor.default,grayColor:i=fs.grayColor.default,panelBackground:o=fs.panelBackground.default,radius:a=fs.radius.default,scaling:s=fs.scaling.default,hasBackground:l=fs.hasBackground.default,...c}=e,[d,f]=m.useState(n);m.useEffect(()=>f(n),[n]);const[p,v]=m.useState(r);m.useEffect(()=>v(r),[r]);const[_,y]=m.useState(i);m.useEffect(()=>y(i),[i]);const[b,w]=m.useState(o);m.useEffect(()=>w(o),[o]);const[x,S]=m.useState(a);m.useEffect(()=>S(a),[a]);const[C,j]=m.useState(s);return m.useEffect(()=>j(s),[s]),m.createElement(z7,{...c,ref:t,isRoot:!0,hasBackground:l,appearance:d,accentColor:p,grayColor:_,panelBackground:b,radius:x,scaling:C,onAppearanceChange:f,onAccentColorChange:v,onGrayColorChange:y,onPanelBackgroundChange:w,onRadiusChange:S,onScalingChange:j})});RZ.displayName="ThemeRoot";const z7=m.forwardRef((e,t)=>{const n=m.useContext(j4),{asChild:r,isRoot:i,hasBackground:o,appearance:a=(n==null?void 0:n.appearance)??fs.appearance.default,accentColor:s=(n==null?void 0:n.accentColor)??fs.accentColor.default,grayColor:l=(n==null?void 0:n.resolvedGrayColor)??fs.grayColor.default,panelBackground:c=(n==null?void 0:n.panelBackground)??fs.panelBackground.default,radius:d=(n==null?void 0:n.radius)??fs.radius.default,scaling:f=(n==null?void 0:n.scaling)??fs.scaling.default,onAppearanceChange:p=V0,onAccentColorChange:v=V0,onGrayColorChange:_=V0,onPanelBackgroundChange:y=V0,onRadiusChange:b=V0,onScalingChange:w=V0,...x}=e,S=r?xf:"div",C=l==="auto"?nCe(s):l,j=e.appearance==="light"||e.appearance==="dark",T=o===void 0?i||j:o;return m.createElement(j4.Provider,{value:m.useMemo(()=>({appearance:a,accentColor:s,grayColor:l,resolvedGrayColor:C,panelBackground:c,radius:d,scaling:f,onAppearanceChange:p,onAccentColorChange:v,onGrayColorChange:_,onPanelBackgroundChange:y,onRadiusChange:b,onScalingChange:w}),[a,s,l,C,c,d,f,p,v,_,y,b,w])},m.createElement(S,{"data-is-root-theme":i?"true":"false","data-accent-color":s,"data-gray-color":C,"data-has-background":T?"true":"false","data-panel-background":c,"data-radius":d,"data-scaling":f,ref:t,...x,className:gt("radix-themes",{light:a==="light",dark:a==="dark"},x.className)}))});z7.displayName="ThemeImpl";const H0=e=>{if(!m.isValidElement(e))throw Error(`Expected a single React Element child, but got: ${m.Children.toArray(e).map(t=>typeof t=="object"&&"type"in t&&typeof t.type=="string"?t.type:typeof t).join(", ")}`);return e};function OZ(e,t){const{asChild:n,children:r}=e;if(!n)return typeof t=="function"?t(r):t;const i=m.Children.only(r);return m.cloneElement(i,{children:typeof t=="function"?t(i.props.children):t})}const D7=xf,iCe=["div","span"],oCe=["none","inline","inline-block","block","contents"],aCe={as:{type:"enum",values:iCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:oCe,responsive:!0}},np=["0","1","2","3","4","5","6","7","8","9"],jy={p:{type:"enum | string",className:"rt-r-p",customProperties:["--p"],values:np,responsive:!0},px:{type:"enum | string",className:"rt-r-px",customProperties:["--pl","--pr"],values:np,responsive:!0},py:{type:"enum | string",className:"rt-r-py",customProperties:["--pt","--pb"],values:np,responsive:!0},pt:{type:"enum | string",className:"rt-r-pt",customProperties:["--pt"],values:np,responsive:!0},pr:{type:"enum | string",className:"rt-r-pr",customProperties:["--pr"],values:np,responsive:!0},pb:{type:"enum | string",className:"rt-r-pb",customProperties:["--pb"],values:np,responsive:!0},pl:{type:"enum | string",className:"rt-r-pl",customProperties:["--pl"],values:np,responsive:!0}},A7=["visible","hidden","clip","scroll","auto"],sCe=["static","relative","absolute","fixed","sticky"],Ty=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],lCe=["0","1"],uCe=["0","1"],T4={...jy,...tl,...C4,position:{type:"enum",className:"rt-r-position",values:sCe,responsive:!0},inset:{type:"enum | string",className:"rt-r-inset",customProperties:["--inset"],values:Ty,responsive:!0},top:{type:"enum | string",className:"rt-r-top",customProperties:["--top"],values:Ty,responsive:!0},right:{type:"enum | string",className:"rt-r-right",customProperties:["--right"],values:Ty,responsive:!0},bottom:{type:"enum | string",className:"rt-r-bottom",customProperties:["--bottom"],values:Ty,responsive:!0},left:{type:"enum | string",className:"rt-r-left",customProperties:["--left"],values:Ty,responsive:!0},overflow:{type:"enum",className:"rt-r-overflow",values:A7,responsive:!0},overflowX:{type:"enum",className:"rt-r-ox",values:A7,responsive:!0},overflowY:{type:"enum",className:"rt-r-oy",values:A7,responsive:!0},flexBasis:{type:"string",className:"rt-r-fb",customProperties:["--flex-basis"],responsive:!0},flexShrink:{type:"enum | string",className:"rt-r-fs",customProperties:["--flex-shrink"],values:lCe,responsive:!0},flexGrow:{type:"enum | string",className:"rt-r-fg",customProperties:["--flex-grow"],values:uCe,responsive:!0},gridArea:{type:"string",className:"rt-r-ga",customProperties:["--grid-area"],responsive:!0},gridColumn:{type:"string",className:"rt-r-gc",customProperties:["--grid-column"],responsive:!0},gridColumnStart:{type:"string",className:"rt-r-gcs",customProperties:["--grid-column-start"],responsive:!0},gridColumnEnd:{type:"string",className:"rt-r-gce",customProperties:["--grid-column-end"],responsive:!0},gridRow:{type:"string",className:"rt-r-gr",customProperties:["--grid-row"],responsive:!0},gridRowStart:{type:"string",className:"rt-r-grs",customProperties:["--grid-row-start"],responsive:!0},gridRowEnd:{type:"string",className:"rt-r-gre",customProperties:["--grid-row-end"],responsive:!0}},Mt=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,aCe,T4,So);return m.createElement(r?D7:i,{...o,ref:t,className:gt("rt-Box",n)})});Mt.displayName="Box";const cCe=["1","2","3","4"],dCe=["classic","solid","soft","surface","outline","ghost"],PZ={...el,size:{type:"enum",className:"rt-r-size",values:cCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:dCe,default:"solid"},...WSe,...Nf,...tp,loading:{type:"boolean",className:"rt-loading",default:!1}},F7=["0","1","2","3","4","5","6","7","8","9"],zZ={gap:{type:"enum | string",className:"rt-r-gap",customProperties:["--gap"],values:F7,responsive:!0},gapX:{type:"enum | string",className:"rt-r-cg",customProperties:["--column-gap"],values:F7,responsive:!0},gapY:{type:"enum | string",className:"rt-r-rg",customProperties:["--row-gap"],values:F7,responsive:!0}},fCe=["div","span"],hCe=["none","inline-flex","flex"],pCe=["row","column","row-reverse","column-reverse"],mCe=["start","center","end","baseline","stretch"],gCe=["start","center","end","between"],vCe=["nowrap","wrap","wrap-reverse"],DZ={as:{type:"enum",values:fCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:hCe,responsive:!0},direction:{type:"enum",className:"rt-r-fd",values:pCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:mCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:gCe,parseValue:yCe,responsive:!0},wrap:{type:"enum",className:"rt-r-fw",values:vCe,responsive:!0},...zZ};function yCe(e){return e==="between"?"space-between":e}const V=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,DZ,T4,So);return m.createElement(r?D7:i,{...o,ref:t,className:gt("rt-Flex",n)})});V.displayName="Flex";const bCe=["1","2","3"],_Ce={size:{type:"enum",className:"rt-r-size",values:bCe,default:"2",responsive:!0},loading:{type:"boolean",default:!0}},Iy=m.forwardRef((e,t)=>{const{className:n,children:r,loading:i,...o}=er(e,_Ce,So);if(!i)return r;const a=m.createElement("span",{...o,ref:t,className:gt("rt-Spinner",n)},m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}));return r===void 0?a:m.createElement(V,{asChild:!0,position:"relative",align:"center",justify:"center"},m.createElement("span",null,m.createElement("span",{"aria-hidden":!0,style:{display:"contents",visibility:"hidden"},inert:void 0},r),m.createElement(V,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,a))))});Iy.displayName="Spinner";const xCe=KB;function wCe(e,t){if(e!==void 0)return typeof e=="string"?t(e):Object.fromEntries(Object.entries(e).map(([n,r])=>[n,t(r)]))}function kCe(e){switch(e){case"1":return"1";case"2":case"3":return"2";case"4":return"3"}}const B7=m.forwardRef((e,t)=>{const{size:n=PZ.size.default}=e,{className:r,children:i,asChild:o,color:a,radius:s,disabled:l=e.loading,...c}=er(e,PZ,So),d=o?xf:"button";return m.createElement(d,{"data-disabled":l||void 0,"data-accent-color":a,"data-radius":s,...c,ref:t,className:gt("rt-reset","rt-BaseButton",r),disabled:l},e.loading?m.createElement(m.Fragment,null,m.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},i),m.createElement(xCe,null,i),m.createElement(V,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,m.createElement(Iy,{size:wCe(n,kCe)})))):i)});B7.displayName="BaseButton";const hs=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-Button",e)}));hs.displayName="Button";const SCe=["1","2","3","4","5"],CCe=["surface","classic","ghost"],jCe={...el,size:{type:"enum",className:"rt-r-size",values:SCe,default:"1",responsive:!0},variant:{type:"enum",className:"rt-variant",values:CCe,default:"surface"}},Ey=m.forwardRef((e,t)=>{const{asChild:n,className:r,...i}=er(e,jCe,So),o=n?xf:"div";return m.createElement(o,{ref:t,...i,className:gt("rt-reset","rt-BaseCard","rt-Card",r)})});Ey.displayName="Card";const TCe=["div","span"],ICe=["none","inline-grid","grid"],ECe=["1","2","3","4","5","6","7","8","9"],NCe=["1","2","3","4","5","6","7","8","9"],$Ce=["row","column","dense","row-dense","column-dense"],MCe=["start","center","end","baseline","stretch"],LCe=["start","center","end","between"],AZ={as:{type:"enum",values:TCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:ICe,responsive:!0},areas:{type:"string",className:"rt-r-gta",customProperties:["--grid-template-areas"],responsive:!0},columns:{type:"enum | string",className:"rt-r-gtc",customProperties:["--grid-template-columns"],values:ECe,parseValue:FZ,responsive:!0},rows:{type:"enum | string",className:"rt-r-gtr",customProperties:["--grid-template-rows"],values:NCe,parseValue:FZ,responsive:!0},flow:{type:"enum",className:"rt-r-gaf",values:$Ce,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:MCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:LCe,parseValue:RCe,responsive:!0},...zZ};function FZ(e){return AZ.columns.values.includes(e)?e:e!=null&&e.match(/^\d+$/)?`repeat(${e}, minmax(0, 1fr))`:e}function RCe(e){return e==="between"?"space-between":e}const Zr=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,AZ,T4,So);return m.createElement(r?D7:i,{...o,ref:t,className:gt("rt-Grid",n)})});Zr.displayName="Grid";const OCe=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"})));OCe.displayName="ThickDividerHorizontalIcon";const I4=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"})));I4.displayName="ThickCheckIcon";const U7=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{d:"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z"})));U7.displayName="ChevronDownIcon";const BZ=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"})));BZ.displayName="ThickChevronRightIcon";const PCe=["1","2","3","4"],zCe=["none","initial"],DCe=["left","center","right"],ACe={...el,size:{type:"enum",className:"rt-r-size",values:PCe,default:"4",responsive:!0},display:{type:"enum",className:"rt-r-display",values:zCe,parseValue:FCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:DCe,parseValue:BCe,responsive:!0}};function FCe(e){return e==="initial"?"flex":e}function BCe(e){return e==="left"?"start":e==="right"?"end":e}const UZ=m.forwardRef(({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o,...a},s)=>{const{asChild:l,children:c,className:d,...f}=er(a,ACe,T4,So),{className:p,style:v}=er({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o},tl,C4),_=l?xf:"div";return m.createElement(_,{...f,ref:s,className:gt("rt-Container",d)},OZ({asChild:l,children:c},y=>m.createElement("div",{className:gt("rt-ContainerInner",p),style:v},y)))});UZ.displayName="Container";const UCe=["1","2","3"],Ny={...el,size:{values:UCe,default:"1"},...tp,scrollbars:{default:"both"}};function WCe(e){const{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,...l}=e;return{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,rest:l}}const rp=So.m.values;function VCe(e){const[t,n]=$f({className:"rt-r-m",customProperties:["--margin"],propValues:rp,value:e.m}),[r,i]=$f({className:"rt-r-mx",customProperties:["--margin-left","--margin-right"],propValues:rp,value:e.mx}),[o,a]=$f({className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"],propValues:rp,value:e.my}),[s,l]=$f({className:"rt-r-mt",customProperties:["--margin-top"],propValues:rp,value:e.mt}),[c,d]=$f({className:"rt-r-mr",customProperties:["--margin-right"],propValues:rp,value:e.mr}),[f,p]=$f({className:"rt-r-mb",customProperties:["--margin-bottom"],propValues:rp,value:e.mb}),[v,_]=$f({className:"rt-r-ml",customProperties:["--margin-left"],propValues:rp,value:e.ml});return[gt(t,r,o,s,c,f,v),Cy(n,i,a,l,d,p,_)]}const E4=m.forwardRef((e,t)=>{const{rest:n,...r}=WCe(e),[i,o]=VCe(r),{asChild:a,children:s,className:l,style:c,type:d,scrollHideDelay:f=d!=="scroll"?0:void 0,dir:p,size:v=Ny.size.default,radius:_=Ny.radius.default,scrollbars:y=Ny.scrollbars.default,...b}=n;return m.createElement(sH,{type:d,scrollHideDelay:f,className:gt("rt-ScrollAreaRoot",i,l),style:Cy(o,c),asChild:a},OZ({asChild:a,children:s},w=>m.createElement(m.Fragment,null,m.createElement(lH,{...b,ref:t,className:"rt-ScrollAreaViewport"},w),m.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),y!=="vertical"?m.createElement(g7,{"data-radius":_,orientation:"horizontal",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(v7,{className:"rt-ScrollAreaThumb"})):null,y!=="horizontal"?m.createElement(g7,{"data-radius":_,orientation:"vertical",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(v7,{className:"rt-ScrollAreaThumb"})):null,y==="both"?m.createElement(r5e,{className:"rt-ScrollAreaCorner"}):null)))});E4.displayName="ScrollArea";const HCe=["1","2"],ZCe=["solid","soft"],$y={size:{type:"enum",className:"rt-r-size",values:HCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:ZCe,default:"solid"},...Pa,...Nf},qCe={...el,...Pa},GCe={...Pa},YCe={...Pa},WZ=e=>m.createElement(AU,{...e,modal:!0});WZ.displayName="Dialog.Root";const VZ=m.forwardRef(({children:e,...t},n)=>m.createElement(p4e,{...t,ref:n,asChild:!0},H0(e)));VZ.displayName="Dialog.Trigger";const HZ=m.forwardRef(({align:e,...t},n)=>{const{align:r,...i}=USe,{className:o}=er({align:e},{align:r}),{className:a,forceMount:s,container:l,...c}=er(t,i);return m.createElement(FU,{container:l,forceMount:s},m.createElement(Mf,{asChild:!0},m.createElement(BU,{className:"rt-BaseDialogOverlay rt-DialogOverlay"},m.createElement("div",{className:"rt-BaseDialogScroll rt-DialogScroll"},m.createElement("div",{className:`rt-BaseDialogScrollPadding rt-DialogScrollPadding ${o}`},m.createElement(UU,{...c,ref:n,className:gt("rt-BaseDialogContent","rt-DialogContent",a)}))))))});HZ.displayName="Dialog.Content";const ZZ=m.forwardRef((e,t)=>m.createElement(m4e,{asChild:!0},m.createElement(MZ,{size:"5",mb:"3",trim:"start",...e,asChild:!1,ref:t})));ZZ.displayName="Dialog.Title";const KCe=m.forwardRef((e,t)=>m.createElement(g4e,{asChild:!0},m.createElement(q,{as:"p",size:"3",...e,asChild:!1,ref:t})));KCe.displayName="Dialog.Description";const qZ=m.forwardRef(({children:e,...t},n)=>m.createElement(v4e,{...t,ref:n,asChild:!0},H0(e)));qZ.displayName="Dialog.Close";const GZ=e=>m.createElement(bV,{...e});GZ.displayName="DropdownMenu.Root";const YZ=m.forwardRef(({children:e,...t},n)=>m.createElement(_V,{...t,ref:n,asChild:!0},H0(e)));YZ.displayName="DropdownMenu.Trigger";const KZ=m.createContext({}),XZ=m.forwardRef((e,t)=>{const n=LZ(),{size:r=$y.size.default,variant:i=$y.variant.default,highContrast:o=$y.highContrast.default}=e,{className:a,children:s,color:l,container:c,forceMount:d,...f}=er(e,$y),p=l||n.accentColor;return m.createElement(a7,{container:c,forceMount:d},m.createElement(Mf,{asChild:!0},m.createElement(xV,{"data-accent-color":p,align:"start",sideOffset:4,collisionPadding:10,...f,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},m.createElement(KZ.Provider,{value:m.useMemo(()=>({size:r,variant:i,color:p,highContrast:o}),[r,i,p,o])},s))))))});XZ.displayName="DropdownMenu.Content";const XCe=m.forwardRef(({className:e,...t},n)=>m.createElement(m6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuLabel","rt-DropdownMenuLabel",e)}));XCe.displayName="DropdownMenu.Label";const JZ=m.forwardRef((e,t)=>{const{className:n,children:r,color:i=qCe.color.default,shortcut:o,...a}=e;return m.createElement(wV,{"data-accent-color":i,...a,ref:t,className:gt("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",n)},m.createElement(M2e,null,r),o&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},o))});JZ.displayName="DropdownMenu.Item";const JCe=m.forwardRef(({className:e,...t},n)=>m.createElement(p6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuGroup","rt-DropdownMenuGroup",e)}));JCe.displayName="DropdownMenu.Group";const QCe=m.forwardRef(({className:e,...t},n)=>m.createElement(v6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",e)}));QCe.displayName="DropdownMenu.RadioGroup";const eje=m.forwardRef((e,t)=>{const{children:n,className:r,color:i=YCe.color.default,...o}=e;return m.createElement(y6e,{...o,asChild:!1,ref:t,"data-accent-color":i,className:gt("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})))});eje.displayName="DropdownMenu.RadioItem";const tje=m.forwardRef((e,t)=>{const{children:n,className:r,shortcut:i,color:o=GCe.color.default,...a}=e;return m.createElement(g6e,{...a,asChild:!1,ref:t,"data-accent-color":o,className:gt("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon"})),i&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},i))});tje.displayName="DropdownMenu.CheckboxItem";const nje=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(_6e,{...i,asChild:!1,ref:t,className:gt("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",n)},r,m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},m.createElement(BZ,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"})))});nje.displayName="DropdownMenu.SubTrigger";const rje=m.forwardRef((e,t)=>{const{size:n,variant:r,color:i,highContrast:o}=m.useContext(KZ),{className:a,children:s,container:l,forceMount:c,...d}=er({size:n,variant:r,color:i,highContrast:o,...e},$y);return m.createElement(a7,{container:l,forceMount:c},m.createElement(Mf,{asChild:!0},m.createElement(x6e,{"data-accent-color":i,alignOffset:-Number(n)*4,sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},s)))))});rje.displayName="DropdownMenu.SubContent";const ije=m.forwardRef(({className:e,...t},n)=>m.createElement(b6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",e)}));ije.displayName="DropdownMenu.Separator";const nl=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-IconButton",e)}));nl.displayName="IconButton";const oje=["1","2","3","4"],aje={...el,size:{type:"enum",className:"rt-r-size",values:oje,default:"2",responsive:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"480px"},...C4},QZ=e=>m.createElement(l7,{...e});QZ.displayName="Popover.Root";const eq=m.forwardRef(({children:e,...t},n)=>m.createElement(AV,{...t,ref:n,asChild:!0},H0(e)));eq.displayName="Popover.Trigger";const tq=m.forwardRef((e,t)=>{const{className:n,forceMount:r,container:i,...o}=er(e,aje);return m.createElement(u7,{container:i,forceMount:r},m.createElement(Mf,{asChild:!0},m.createElement(c7,{align:"start",sideOffset:8,collisionPadding:10,...o,ref:t,className:gt("rt-PopperContent","rt-PopoverContent",n)})))});tq.displayName="Popover.Content";const sje=m.forwardRef(({children:e,...t},n)=>m.createElement(O6e,{...t,ref:n,asChild:!0},H0(e)));sje.displayName="Popover.Close";const lje=m.forwardRef(({children:e,...t},n)=>m.createElement(DV,{...t,ref:n}));lje.displayName="Popover.Anchor";const uje=["1","2","3"],cje=["classic","surface","soft"],dje={size:{type:"enum",className:"rt-r-size",values:uje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:cje,default:"surface"},...Pa,...Nf,...tp,duration:{type:"string"}},N4=m.forwardRef((e,t)=>{const{className:n,style:r,color:i,radius:o,duration:a,...s}=er(e,dje,So);return m.createElement(W6e,{"data-accent-color":i,"data-radius":o,ref:t,className:gt("rt-ProgressRoot",n),style:Cy({"--progress-duration":"value"in s?void 0:a,"--progress-value":"value"in s?s.value:void 0,"--progress-max":"max"in s?s.max:void 0},r),...s,asChild:!1},m.createElement(V6e,{className:"rt-ProgressIndicator"}))});N4.displayName="Progress";const Z0=m.forwardRef(({className:e,children:t,...n},r)=>m.createElement(xf,{...n,ref:r,className:gt("rt-reset",e)},H0(t)));Z0.displayName="Reset";const fje=["1","2","3"],W7={size:{type:"enum",className:"rt-r-size",values:fje,default:"2",responsive:!0}},hje=["classic","surface","soft","ghost"],pje={variant:{type:"enum",className:"rt-variant",values:hje,default:"surface"},...Pa,...tp,placeholder:{type:"string"}},mje=["solid","soft"],gje={variant:{type:"enum",className:"rt-variant",values:mje,default:"solid"},...Pa,...Nf},V7=m.createContext({}),H7=e=>{const{children:t,size:n=W7.size.default,...r}=e;return m.createElement(T5e,{...r},m.createElement(V7.Provider,{value:m.useMemo(()=>({size:n}),[n])},t))};H7.displayName="Select.Root";const Z7=m.forwardRef((e,t)=>{const n=m.useContext(V7),{children:r,className:i,color:o,radius:a,placeholder:s,...l}=er({size:n==null?void 0:n.size,...e},{size:W7.size},pje,So);return m.createElement(I5e,{asChild:!0},m.createElement("button",{"data-accent-color":o,"data-radius":a,...l,ref:t,className:gt("rt-reset","rt-SelectTrigger",i)},m.createElement("span",{className:"rt-SelectTriggerInner"},m.createElement(E5e,{placeholder:s},r)),m.createElement(N5e,{asChild:!0},m.createElement(U7,{className:"rt-SelectIcon"}))))});Z7.displayName="Select.Trigger";const q7=m.forwardRef((e,t)=>{const n=m.useContext(V7),{className:r,children:i,color:o,container:a,...s}=er({size:n==null?void 0:n.size,...e},{size:W7.size},gje),l=LZ(),c=o||l.accentColor;return m.createElement($5e,{container:a},m.createElement(Mf,{asChild:!0},m.createElement(M5e,{"data-accent-color":c,sideOffset:4,...s,asChild:!1,ref:t,className:gt({"rt-PopperContent":s.position==="popper"},"rt-SelectContent",r)},m.createElement(sH,{type:"auto",className:"rt-ScrollAreaRoot"},m.createElement(L5e,{asChild:!0,className:"rt-SelectViewport"},m.createElement(lH,{className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),m.createElement(g7,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},m.createElement(v7,{className:"rt-ScrollAreaThumb"}))))))});q7.displayName="Select.Content";const My=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(P5e,{...i,asChild:!1,ref:t,className:gt("rt-SelectItem",n)},m.createElement(D5e,{className:"rt-SelectItemIndicator"},m.createElement(I4,{className:"rt-SelectItemIndicatorIcon"})),m.createElement(z5e,null,r))});My.displayName="Select.Item";const G7=m.forwardRef(({className:e,...t},n)=>m.createElement(R5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectGroup",e)}));G7.displayName="Select.Group";const vje=m.forwardRef(({className:e,...t},n)=>m.createElement(O5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectLabel",e)}));vje.displayName="Select.Label";const yje=m.forwardRef(({className:e,...t},n)=>m.createElement(A5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectSeparator",e)}));yje.displayName="Select.Separator";const bje=["horizontal","vertical"],_je=["1","2","3","4"],xje={orientation:{type:"enum",className:"rt-r-orientation",values:bje,default:"horizontal",responsive:!0},size:{type:"enum",className:"rt-r-size",values:_je,default:"1",responsive:!0},color:{...Pa.color,default:"gray"},decorative:{type:"boolean",default:!0}},ps=m.forwardRef((e,t)=>{const{className:n,color:r,decorative:i,...o}=er(e,xje,So);return m.createElement("span",{"data-accent-color":r,role:i?void 0:"separator",...o,ref:t,className:gt("rt-Separator",n)})});ps.displayName="Separator";const wje=["1","2","3"],kje=["classic","surface","soft"],Sje={size:{type:"enum",className:"rt-r-size",values:wje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:kje,default:"surface"},...Pa,...Nf,...tp},nq=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,tabIndex:o,...a}=er(e,Sje,So);return m.createElement(KH,{"data-accent-color":r,"data-radius":i,ref:t,...a,asChild:!1,className:gt("rt-SliderRoot",n)},m.createElement(XH,{className:"rt-SliderTrack"},m.createElement(nSe,{className:gt("rt-SliderRange",{"rt-high-contrast":e.highContrast}),"data-inverted":a.inverted?"":void 0})),(a.value??a.defaultValue??[]).map((s,l)=>m.createElement(JH,{key:l,className:"rt-SliderThumb",...o!==void 0?{tabIndex:o}:void 0})))});nq.displayName="Slider";const Cje=["1","2","3"],jje=["classic","surface","soft"],Tje={size:{type:"enum",className:"rt-r-size",values:Cje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:jje,default:"surface"},...Pa,...Nf,...tp},Y7=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,...o}=er(e,Tje,So);return m.createElement(lSe,{"data-accent-color":r,"data-radius":i,...o,asChild:!1,ref:t,className:gt("rt-reset","rt-SwitchRoot",n)},m.createElement(uSe,{className:gt("rt-SwitchThumb",{"rt-high-contrast":e.highContrast})}))});Y7.displayName="Switch";const Ije=["1","2","3"],Eje=["surface","ghost"],Nje=["auto","fixed"],K7={size:{type:"enum",className:"rt-r-size",values:Ije,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:Eje,default:"ghost"},layout:{type:"enum",className:"rt-r-tl",values:Nje,responsive:!0}},$je=["start","center","end","baseline"],Mje={align:{type:"enum",className:"rt-r-va",values:$je,parseValue:Lje,responsive:!0}};function Lje(e){return{baseline:"baseline",start:"top",center:"middle",end:"bottom"}[e]}const Rje=["start","center","end"],X7={justify:{type:"enum",className:"rt-r-ta",values:Rje,parseValue:Oje,responsive:!0},...tl,...jy};function Oje(e){return{start:"left",center:"center",end:"right"}[e]}const q0=m.forwardRef((e,t)=>{const{layout:n,...r}=K7,{className:i,children:o,layout:a,...s}=er(e,r,So),l=Sy({value:a,className:K7.layout.className,propValues:K7.layout.values});return m.createElement("div",{ref:t,className:gt("rt-TableRoot",i),...s},m.createElement(E4,null,m.createElement("table",{className:gt("rt-TableRootTable",l)},o)))});q0.displayName="Table.Root";const ip=m.forwardRef(({className:e,...t},n)=>m.createElement("thead",{...t,ref:n,className:gt("rt-TableHeader",e)}));ip.displayName="Table.Header";const G0=m.forwardRef(({className:e,...t},n)=>m.createElement("tbody",{...t,ref:n,className:gt("rt-TableBody",e)}));G0.displayName="Table.Body";const la=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,Mje);return m.createElement("tr",{...r,ref:t,className:gt("rt-TableRow",n)})});la.displayName="Table.Row";const ti=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,X7);return m.createElement("td",{className:gt("rt-TableCell",n),ref:t,...r})});ti.displayName="Table.Cell";const Wi=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,X7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableColumnHeaderCell",n),scope:"col",ref:t,...r})});Wi.displayName="Table.ColumnHeaderCell";const $4=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,X7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableRowHeaderCell",n),scope:"row",ref:t,...r})});$4.displayName="Table.RowHeaderCell";const Pje=["1","2","3"],zje=["classic","surface","soft"],Dje={size:{type:"enum",className:"rt-r-size",values:Pje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:zje,default:"surface"},...Pa,...tp},Aje=["left","right"],Fje={side:{type:"enum",values:Aje},...Pa,gap:DZ.gap,px:jy.px,pl:jy.pl,pr:jy.pr},J7=m.forwardRef((e,t)=>{const n=m.useRef(null),{children:r,className:i,color:o,radius:a,style:s,...l}=er(e,Dje,So);return m.createElement("div",{"data-accent-color":o,"data-radius":a,style:s,className:gt("rt-TextFieldRoot",i),onPointerDown:c=>{const d=c.target;if(d.closest("input, button, a"))return;const f=n.current;if(!f)return;const p=d.closest(` - .rt-TextFieldSlot[data-side='right'], - .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left']) - `)?f.value.length:0;requestAnimationFrame(()=>{try{f.setSelectionRange(p,p)}catch{}f.focus()})}},m.createElement("input",{spellCheck:"false",...l,ref:zl(n,t),className:"rt-reset rt-TextFieldInput"}),r)});J7.displayName="TextField.Root";const M4=m.forwardRef((e,t)=>{const{className:n,color:r,side:i,...o}=er(e,Fje);return m.createElement("div",{"data-accent-color":r,"data-side":i,...o,ref:t,className:gt("rt-TextFieldSlot",n)})});M4.displayName="TextField.Slot";const Bje={content:{type:"ReactNode",required:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"360px"}},ui=m.forwardRef((e,t)=>{const{children:n,className:r,open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l,content:c,container:d,forceMount:f,...p}=er(e,Bje),v={open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l};return m.createElement(OSe,{...v},m.createElement(PSe,{asChild:!0},n),m.createElement(zSe,{container:d,forceMount:f},m.createElement(Mf,{asChild:!0},m.createElement(DSe,{sideOffset:4,collisionPadding:10,...p,asChild:!1,ref:t,className:gt("rt-TooltipContent",r)},m.createElement(q,{as:"p",className:"rt-TooltipText",size:"1"},c),m.createElement(ASe,{className:"rt-TooltipArrow"})))))});ui.displayName="Tooltip";const Q7=new WeakMap,Uje=new WeakMap,L4={current:[]};let eT=!1,Ly=0;const Ry=new Set,R4=new Map;function rq(e){for(const t of e){if(L4.current.includes(t))continue;L4.current.push(t),t.recompute();const n=Uje.get(t);if(n)for(const r of n){const i=Q7.get(r);i!=null&&i.length&&rq(i)}}}function Wje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function Vje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function iq(e){if(Ly>0&&!R4.has(e)&&R4.set(e,e.prevState),Ry.add(e),!(Ly>0)&&!eT)try{for(eT=!0;Ry.size>0;){const t=Array.from(Ry);Ry.clear();for(const n of t){const r=R4.get(n)??n.prevState;n.prevState=r,Wje(n)}for(const n of t){const r=Q7.get(n);r&&(L4.current.push(n),rq(r))}for(const n of t){const r=Q7.get(n);if(r)for(const i of r)Vje(i)}}}finally{eT=!1,L4.current=[],R4.clear()}}function Oy(e){Ly++;try{e()}finally{if(Ly--,Ly===0){const t=Ry.values().next().value;t&&iq(t)}}}function Hje(e){return typeof e=="function"}class Zje{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var i,o;this.listeners.add(r);const a=(o=(i=this.options)==null?void 0:i.onSubscribe)==null?void 0:o.call(i,r,this);return()=>{this.listeners.delete(r),a==null||a()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,i;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):Hje(t)?this.state=t(this.prevState):this.state=t,(i=(r=this.options)==null?void 0:r.onUpdate)==null||i.call(r),iq(this)}}const Lf="__TSR_index",oq="popstate",aq="beforeunload";function qje(e){let t=e.getLocation();const n=new Set,r=a=>{t=e.getLocation(),n.forEach(s=>s({location:t,action:a}))},i=a=>{e.notifyOnIndexChange??!0?r(a):t=e.getLocation()},o=async({task:a,navigateOpts:s,...l})=>{var f,p;if((s==null?void 0:s.ignoreBlocker)??!1){a();return}const c=((f=e.getBlockers)==null?void 0:f.call(e))??[],d=l.type==="PUSH"||l.type==="REPLACE";if(typeof document<"u"&&c.length&&d)for(const v of c){const _=O4(l.path,l.state);if(await v.blockerFn({currentLocation:t,nextLocation:_,action:l.type})){(p=e.onBlocked)==null||p.call(e);return}}a()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:a=>(n.add(a),()=>{n.delete(a)}),push:(a,s,l)=>{const c=t.state[Lf];s=sq(c+1,s),o({task:()=>{e.pushState(a,s),r({type:"PUSH"})},navigateOpts:l,type:"PUSH",path:a,state:s})},replace:(a,s,l)=>{const c=t.state[Lf];s=sq(c,s),o({task:()=>{e.replaceState(a,s),r({type:"REPLACE"})},navigateOpts:l,type:"REPLACE",path:a,state:s})},go:(a,s)=>{o({task:()=>{e.go(a),i({type:"GO",index:a})},navigateOpts:s,type:"GO"})},back:a=>{o({task:()=>{e.back((a==null?void 0:a.ignoreBlocker)??!1),i({type:"BACK"})},navigateOpts:a,type:"BACK"})},forward:a=>{o({task:()=>{e.forward((a==null?void 0:a.ignoreBlocker)??!1),i({type:"FORWARD"})},navigateOpts:a,type:"FORWARD"})},canGoBack:()=>t.state[Lf]!==0,createHref:a=>e.createHref(a),block:a=>{var l;if(!e.setBlockers)return()=>{};const s=((l=e.getBlockers)==null?void 0:l.call(e))??[];return e.setBlockers([...s,a]),()=>{var d,f;const c=((d=e.getBlockers)==null?void 0:d.call(e))??[];(f=e.setBlockers)==null||f.call(e,c.filter(p=>p!==a))}},flush:()=>{var a;return(a=e.flush)==null?void 0:a.call(e)},destroy:()=>{var a;return(a=e.destroy)==null?void 0:a.call(e)},notify:r}}function sq(e,t){t||(t={});const n=tT();return{...t,key:n,__TSR_key:n,[Lf]:e}}function Gje(e){var $,A;const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let i=[];const o=()=>i,a=M=>i=M,s=M=>M,l=()=>O4(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state);if(!(($=t.history.state)!=null&&$.__TSR_key)&&!((A=t.history.state)!=null&&A.key)){const M=tT();t.history.replaceState({[Lf]:0,key:M,__TSR_key:M},"")}let c=l(),d,f=!1,p=!1,v=!1,_=!1;const y=()=>c;let b,w;const x=()=>{b&&(E._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),E._ignoreSubscribers=!1,b=void 0,w=void 0,d=void 0)},S=(M,P,te)=>{const Z=s(P);w||(d=c),c=O4(P,te),b={href:Z,state:te,isPush:(b==null?void 0:b.isPush)||M==="push"},w||(w=Promise.resolve().then(()=>x()))},C=M=>{c=l(),E.notify({type:M})},j=async()=>{if(p){p=!1;return}const M=l(),P=M.state[Lf]-c.state[Lf],te=P===1,Z=P===-1,O=!te&&!Z||f;f=!1;const J=O?"GO":Z?"BACK":"FORWARD",D=O?{type:"GO",index:P}:{type:Z?"BACK":"FORWARD"};if(v)v=!1;else{const Y=o();if(typeof document<"u"&&Y.length){for(const F of Y)if(await F.blockerFn({currentLocation:c,nextLocation:M,action:J})){p=!0,t.history.go(1),E.notify(D);return}}}c=l(),E.notify(D)},T=M=>{if(_){_=!1;return}let P=!1;const te=o();if(typeof document<"u"&&te.length)for(const Z of te){const O=Z.enableBeforeUnload??!0;if(O===!0){P=!0;break}if(typeof O=="function"&&O()===!0){P=!0;break}}if(P)return M.preventDefault(),M.returnValue=""},E=qje({getLocation:y,getLength:()=>t.history.length,pushState:(M,P)=>S("push",M,P),replaceState:(M,P)=>S("replace",M,P),back:M=>(M&&(v=!0),_=!0,t.history.back()),forward:M=>{M&&(v=!0),_=!0,t.history.forward()},go:M=>{f=!0,t.history.go(M)},createHref:M=>s(M),flush:x,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aq,T,{capture:!0}),t.removeEventListener(oq,j)},onBlocked:()=>{d&&c!==d&&(c=d)},getBlockers:o,setBlockers:a,notifyOnIndexChange:!1});return t.addEventListener(aq,T,{capture:!0}),t.addEventListener(oq,j),t.history.pushState=function(...M){const P=n.apply(t.history,M);return E._ignoreSubscribers||C("PUSH"),P},t.history.replaceState=function(...M){const P=r.apply(t.history,M);return E._ignoreSubscribers||C("REPLACE"),P},E}function O4(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),i=tT();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Lf]:0,key:i,__TSR_key:i}}}function tT(){return(Math.random()+1).toString(36).substring(7)}function nT(e){return e[e.length-1]}function Yje(e){return typeof e=="function"}function op(e,t){return Yje(e)?e(t):e}const Kje=Object.prototype.hasOwnProperty;function Ul(e,t){if(e===t)return e;const n=t,r=cq(e)&&cq(n);if(!r&&!(P4(e)&&P4(n)))return n;const i=r?e:lq(e);if(!i)return n;const o=r?n:lq(n);if(!o)return n;const a=i.length,s=o.length,l=r?new Array(s):{};let c=0;for(let d=0;d"u")return!0;const n=t.prototype;return!(!uq(n)||!n.hasOwnProperty("isPrototypeOf"))}function uq(e){return Object.prototype.toString.call(e)==="[object Object]"}function cq(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Rf(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,i=e.length;ri||!Rf(e[a],t[a],n)))return!1;return i===o}return!1}function Y0(e){let t,n;const r=new Promise((i,o)=>{t=i,n=o});return r.status="pending",r.resolve=i=>{r.status="resolved",r.value=i,t(i),e==null||e(i)},r.reject=i=>{r.status="rejected",n(i)},r}function Of(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const Xje=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function dq(e,t=Xje){function n(i,o,a=0){for(let s=a;s{try{return decodeURI(s)}catch{return s}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,i=>i.toUpperCase());return n(r,t)}var Jje="Invariant failed";function Qc(e,t){if(!e)throw new Error(Jje)}const Wu=0,ap=1,K0=2,X0=3;function ed(e){return rT(e.filter(t=>t!==void 0).join("/"))}function rT(e){return e.replace(/\/{2,}/g,"/")}function iT(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Pf(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function z4(e){return Pf(iT(e))}function D4(e,t){return e!=null&&e.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function Qje(e,t,n){return D4(e,n)===D4(t,n)}function e8e(e){const{type:t,value:n}=e;if(t===Wu)return n;const{prefixSegment:r,suffixSegment:i}=e;if(t===ap){const o=n.substring(1);if(r&&i)return`${r}{$${o}}${i}`;if(r)return`${r}{$${o}}`;if(i)return`{$${o}}${i}`}if(t===X0){const o=n.substring(1);return r&&i?`${r}{-$${o}}${i}`:r?`${r}{-$${o}}`:i?`{-$${o}}${i}`:`{-$${o}}`}if(t===K0){if(r&&i)return`${r}{$}${i}`;if(r)return`${r}{$}`;if(i)return`{$}${i}`}return n}function t8e({base:e,to:t,trailingSlash:n="never",parseCache:r}){var s;let i=J0(e,r).slice();const o=J0(t,r);i.length>1&&((s=nT(i))==null?void 0:s.value)==="/"&&i.pop();for(let l=0,c=o.length;l1&&(nT(i).value==="/"?n==="never"&&i.pop():n==="always"&&i.push({type:Wu,value:"/"}));const a=i.map(e8e);return ed(a)}const J0=(e,t)=>{if(!e)return[];const n=t==null?void 0:t.get(e);if(n)return n;const r=s8e(e);return t==null||t.set(e,r),r},n8e=/^\$.{1,}$/,r8e=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,i8e=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,o8e=/^\$$/,a8e=/^(.*?)\{\$\}(.*)$/;function s8e(e){e=rT(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const i=r.match(a8e);if(i){const s=i[1],l=i[2];return{type:K0,value:"$",prefixSegment:s||void 0,suffixSegment:l||void 0}}const o=r.match(i8e);if(o){const s=o[1],l=o[2],c=o[3];return{type:X0,value:l,prefixSegment:s||void 0,suffixSegment:c||void 0}}const a=r.match(r8e);if(a){const s=a[1],l=a[2],c=a[3];return{type:ap,value:""+l,prefixSegment:s||void 0,suffixSegment:c||void 0}}if(n8e.test(r)){const s=r.substring(1);return{type:ap,value:"$"+s,prefixSegment:void 0,suffixSegment:void 0}}return o8e.test(r)?{type:K0,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:Wu,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),t}function oT({path:e,params:t,leaveParams:n,decodeCharMap:r,parseCache:i}){const o=J0(e,i);function a(d){const f=t[d],p=typeof f=="string";return d==="*"||d==="_splat"?p?encodeURI(f):f:p?l8e(f,r):f}let s=!1;const l={},c=ed(o.map(d=>{if(d.type===Wu)return d.value;if(d.type===K0){l._splat=t._splat,l["*"]=t._splat;const f=d.prefixSegment||"",p=d.suffixSegment||"";if(!t._splat)return s=!0,f||p?`${f}${p}`:void 0;const v=a("_splat");return`${f}${v}${p}`}if(d.type===ap){const f=d.value.substring(1);!s&&!(f in t)&&(s=!0),l[f]=t[f];const p=d.prefixSegment||"",v=d.suffixSegment||"";if(n){const _=a(d.value);return`${p}${d.value}${_??""}${v}`}return`${p}${a(f)??"undefined"}${v}`}if(d.type===X0){const f=d.value.substring(1),p=d.prefixSegment||"",v=d.suffixSegment||"";if(!(f in t)||t[f]==null)return p||v?`${p}${v}`:void 0;if(l[f]=t[f],n){const _=a(d.value);return`${p}${d.value}${_??""}${v}`}return`${p}${a(f)??""}${v}`}return d.value}));return{usedParams:l,interpolatedPath:c,isMissingParams:s}}function l8e(e,t){let n=encodeURIComponent(e);if(t)for(const[r,i]of t)n=n.replaceAll(r,i);return n}function aT(e,t,n){const r=u8e(e,t,n);if(!(t.to&&!r))return r??{}}function u8e(e,{to:t,fuzzy:n,caseSensitive:r},i){const o=t,a=J0(e.startsWith("/")?e:`/${e}`,i),s=J0(o.startsWith("/")?o:`/${o}`,i),l={};return c8e(a,s,l,n,r)?l:void 0}function c8e(e,t,n,r,i){var s,l,c;let o=0,a=0;for(;ox.value)));_&&w.startsWith(_)&&(w=w.slice(_.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),v=w}else v=decodeURI(ed(p.map(_=>_.value)));return n["*"]=v,n._splat=v,!0}if(f.type===Wu){if(f.value==="/"&&!(d!=null&&d.value)){a++;continue}if(d){if(i){if(f.value!==d.value)return!1}else if(f.value.toLowerCase()!==d.value.toLowerCase())return!1;o++,a++;continue}else return!1}if(f.type===ap){if(!d||d.value==="/")return!1;let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const _=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if(_&&!b.startsWith(_)||y&&!b.endsWith(y))return!1;let w=b;_&&w.startsWith(_)&&(w=w.slice(_.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}else p=decodeURIComponent(d.value),v=!0;v&&(n[f.value.substring(1)]=p,o++),a++;continue}if(f.type===X0){if(!d){a++;continue}if(d.value==="/"){a++;continue}let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const _=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if((!_||b.startsWith(_))&&(!y||b.endsWith(y))){let w=b;_&&w.startsWith(_)&&(w=w.slice(_.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}}else{let _=!0;for(let y=a+1;y=t.length)return n["**"]=ed(e.slice(o).map(p=>p.value)),!!r&&((l=t[t.length-1])==null?void 0:l.value)!=="/";if(a=e.length){for(let p=a;p{var d;if(n.isRoot||!n.path)return;const i=iT(n.fullPath);let o=J0(i),a=0;for(;o.length>a+1&&((d=o[a])==null?void 0:d.value)==="/";)a++;a>0&&(o=o.slice(a));let s=0,l=!1;const c=o.map((f,p)=>{if(f.value==="/")return d8e;if(f.type===Wu)return f8e;let v;f.type===ap?v=h8e:f.type===X0?(v=p8e,s++):v=m8e;for(let _=p+1;_{const i=Math.min(n.scores.length,r.scores.length);for(let o=0;or.parsed[o].value?1:-1;return n.index-r.index}).map((n,r)=>(n.child.rank=r,n.child))}function x8e({routeTree:e,initRoute:t}){const n={},r={},i=a=>{a.forEach((s,l)=>{t==null||t(s,l);const c=n[s.id];if(Qc(!c,`Duplicate routes found with id: ${String(s.id)}`),n[s.id]=s,!s.isRoot&&s.path){const f=Pf(s.fullPath);(!r[f]||s.fullPath.endsWith("/"))&&(r[f]=s)}const d=s.children;d!=null&&d.length&&i(d)})};i([e]);const o=_8e(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:o}}function Wl(e){return!!(e!=null&&e.isNotFound)}function w8e(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const A4="tsr-scroll-restoration-v1_3",k8e=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function S8e(){const e=w8e();if(!e)return null;const t=e.getItem(A4);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=op(r,n)||n,e.setItem(A4,JSON.stringify(n)))}}const F4=S8e(),sT=e=>e.state.__TSR_key||e.href;function C8e(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let B4=!1;function mq({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:i,location:o}){var c,d;let a;try{a=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const s=t||((c=window.history.state)==null?void 0:c.__TSR_key),l=a[s];B4=!0;e:{if(r&&l&&Object.keys(l).length>0){for(const v in l){const _=l[v];if(v==="window")window.scrollTo({top:_.scrollY,left:_.scrollX,behavior:n});else if(v){const y=document.querySelector(v);y&&(y.scrollLeft=_.scrollX,y.scrollTop=_.scrollY)}}break e}const f=(o??window.location).hash.split("#",2)[1];if(f){const v=((d=window.history.state)==null?void 0:d.__hashScrollIntoViewOptions)??!0;if(v){const _=document.getElementById(f);_&&_.scrollIntoView(v)}break e}const p={top:0,left:0,behavior:n};if(window.scrollTo(p),i)for(const v of i){if(v==="window")continue;const _=typeof v=="function"?v():document.querySelector(v);_&&_.scrollTo(p)}}B4=!1}function j8e(e,t){if(!F4&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!F4))return;e.isScrollRestorationSetup=!0,B4=!1;const n=e.options.getScrollRestorationKey||sT;window.history.scrollRestoration="manual";const r=i=>{if(B4||!e.isScrollRestoring)return;let o="";if(i.target===document||i.target===window)o="window";else{const s=i.target.getAttribute("data-scroll-restoration-id");s?o=`[data-scroll-restoration-id="${s}"]`:o=C8e(i.target)}const a=n(e.state.location);F4.set(s=>{const l=s[a]||(s[a]={}),c=l[o]||(l[o]={});if(o==="window")c.scrollX=window.scrollX||0,c.scrollY=window.scrollY||0;else if(o){const d=document.querySelector(o);d&&(c.scrollX=d.scrollLeft||0,c.scrollY=d.scrollTop||0)}return s})};typeof document<"u"&&document.addEventListener("scroll",k8e(r,100),!0),e.subscribe("onRendered",i=>{const o=n(i.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(mq({storageKey:A4,key:o,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&F4.set(a=>(a[o]||(a[o]={}),a)))})}function T8e(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function I8e(e,t=String){const n=new URLSearchParams;for(const r in e){const i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}function lT(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function E8e(e){const t=new URLSearchParams(e),n={};for(const[r,i]of t.entries()){const o=n[r];o==null?n[r]=lT(i):Array.isArray(o)?o.push(lT(i)):n[r]=[o,lT(i)]}return n}const N8e=M8e(JSON.parse),$8e=L8e(JSON.stringify,JSON.parse);function M8e(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=E8e(t);for(const r in n){const i=n[r];if(typeof i=="string")try{n[r]=e(i)}catch{}}return n}}function L8e(e,t){const n=typeof t=="function";function r(i){if(typeof i=="object"&&i!==null)try{return e(i)}catch{}else if(n&&typeof i=="string")try{return t(i),e(i)}catch{}return i}return i=>{const o=I8e(i,r);return o?`?${o}`:""}}const ms="__root__";function uT(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function Vu(e){return e instanceof Response&&!!e.options}function R8e(e){const t=new Map;let n,r;const i=o=>{o.next&&(o.prev?(o.prev.next=o.next,o.next.prev=o.prev,o.next=void 0,r&&(r.next=o,o.prev=r)):(o.next.prev=void 0,n=o.next,o.next=void 0,r&&(o.prev=r,r.next=o)),r=o)};return{get(o){const a=t.get(o);if(a)return i(a),a.value},set(o,a){if(t.size>=e&&n){const l=n;t.delete(l.key),l.next&&(n=l.next,l.next.prev=void 0),l===r&&(r=void 0)}const s=t.get(o);if(s)s.value=a,i(s);else{const l={key:o,value:a,prev:r};r&&(r.next=l),r=l,n||(n=l),t.set(o,l)}}}}const U4=e=>{var t;if(!e.rendered)return e.rendered=!0,(t=e.onReady)==null?void 0:t.call(e)},W4=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),gq=(e,t)=>{var i;const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&((i=e.router.options)!=null&&i.defaultNotFoundComponent)&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),Qc(n.options.notFoundComponent);const r=e.matches.find(o=>o.routeId===n.id);Qc(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,o=>({...o,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,gq(e,t))},zf=(e,t,n)=>{var r,i,o;if(!(!Vu(n)&&!Wl(n))){if(Vu(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){(r=t._nonReactive.beforeLoadPromise)==null||r.resolve(),(i=t._nonReactive.loaderPromise)==null||i.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const a=Vu(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,s=>({...s,status:a,isFetching:!1,error:n})),Wl(n)&&!n.routeId&&(n.routeId=t.routeId),(o=t._nonReactive.loadPromise)==null||o.resolve()}throw Vu(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(gq(e,n),n)}},vq=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Py=(e,t,n,r)=>{var s,l;const{id:i,routeId:o}=e.matches[t],a=e.router.looseRoutesById[o];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??(e.firstBadMatchIndex=t),zf(e,e.router.getMatch(i),n);try{(l=(s=a.options).onError)==null||l.call(s,n)}catch(c){n=c,zf(e,e.router.getMatch(i),n)}e.updateMatch(i,c=>{var d,f;return(d=c._nonReactive.beforeLoadPromise)==null||d.resolve(),c._nonReactive.beforeLoadPromise=void 0,(f=c._nonReactive.loadPromise)==null||f.resolve(),{...c,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}})},O8e=(e,t,n,r)=>{var v;const i=e.router.getMatch(t),o=(v=e.matches[n-1])==null?void 0:v.id,a=o?e.router.getMatch(o):void 0;if(e.router.isShell()){i.ssr=r.id===ms;return}if((a==null?void 0:a.ssr)===!1){i.ssr=!1;return}const s=_=>_===!0&&(a==null?void 0:a.ssr)==="data-only"?"data-only":_,l=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){i.ssr=s(l);return}if(typeof r.options.ssr!="function"){i.ssr=s(r.options.ssr);return}const{search:c,params:d}=i,f={search:V4(c,i.searchError),params:V4(d,i.paramsError),location:e.location,matches:e.matches.map(_=>({index:_.index,pathname:_.pathname,fullPath:_.fullPath,staticData:_.staticData,id:_.id,routeId:_.routeId,search:V4(_.search,_.searchError),params:V4(_.params,_.paramsError),ssr:_.ssr}))},p=r.options.ssr(f);if(Of(p))return p.then(_=>{i.ssr=s(_??l)});i.ssr=s(p??l)},yq=(e,t,n,r)=>{var o;if(r._nonReactive.pendingTimeout!==void 0)return;const i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!e.router.isServer&&!W4(e,t)&&(n.options.loader||n.options.beforeLoad||kq(n))&&typeof i=="number"&&i!==1/0&&(n.options.pendingComponent??((o=e.router.options)==null?void 0:o.defaultPendingComponent))){const a=setTimeout(()=>{U4(e)},i);r._nonReactive.pendingTimeout=a}},P8e=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;yq(e,t,n,r);const i=()=>{const o=e.router.getMatch(t);o.preload&&(o.status==="redirected"||o.status==="notFound")&&zf(e,o,o.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},z8e=(e,t,n,r)=>{var j,T;const i=e.router.getMatch(t),o=i._nonReactive.loadPromise;i._nonReactive.loadPromise=Y0(()=>{o==null||o.resolve()});const{paramsError:a,searchError:s}=i;a&&Py(e,n,a,"PARSE_PARAMS"),s&&Py(e,n,s,"VALIDATE_SEARCH"),yq(e,t,r,i);const l=new AbortController,c=(j=e.matches[n-1])==null?void 0:j.id,d={...((T=c?e.router.getMatch(c):void 0)==null?void 0:T.context)??e.router.options.context??void 0,...i.__routeContext};let f=!1;const p=()=>{f||(f=!0,e.updateMatch(t,E=>({...E,isFetching:"beforeLoad",fetchCount:E.fetchCount+1,abortController:l,context:d})))},v=()=>{var E;(E=i._nonReactive.beforeLoadPromise)==null||E.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,$=>({...$,isFetching:!1}))};if(!r.options.beforeLoad){Oy(()=>{p(),v()});return}i._nonReactive.beforeLoadPromise=Y0();const{search:_,params:y,cause:b}=i,w=W4(e,t),x={search:_,abortController:l,params:y,preload:w,context:d,location:e.location,navigate:E=>e.router.navigate({...E,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:w?"preload":b,matches:e.matches,...e.router.options.additionalContext},S=E=>{if(E===void 0){Oy(()=>{p(),v()});return}(Vu(E)||Wl(E))&&(p(),Py(e,n,E,"BEFORE_LOAD")),Oy(()=>{p(),e.updateMatch(t,$=>({...$,__beforeLoadContext:E,context:{...$.context,...E}})),v()})};let C;try{if(C=r.options.beforeLoad(x),Of(C))return p(),C.catch(E=>{Py(e,n,E,"BEFORE_LOAD")}).then(S)}catch(E){p(),Py(e,n,E,"BEFORE_LOAD")}S(C)},D8e=(e,t)=>{const{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],o=()=>{if(e.router.isServer){const l=O8e(e,n,t,i);if(Of(l))return l.then(s)}return s()},a=()=>z8e(e,n,t,i),s=()=>{if(vq(e,n))return;const l=P8e(e,n,i);return Of(l)?l.then(a):a()};return o()},zy=(e,t,n)=>{var o,a,s,l,c,d;const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const i={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([(a=(o=n.options).head)==null?void 0:a.call(o,i),(l=(s=n.options).scripts)==null?void 0:l.call(s,i),(d=(c=n.options).headers)==null?void 0:d.call(c,i)]).then(([f,p,v])=>{const _=f==null?void 0:f.meta,y=f==null?void 0:f.links,b=f==null?void 0:f.scripts,w=f==null?void 0:f.styles;return{meta:_,links:y,headScripts:b,headers:v,scripts:p,styles:w}})},bq=(e,t,n,r)=>{const i=e.matchPromises[n-1],{params:o,loaderDeps:a,abortController:s,cause:l}=e.router.getMatch(t);let c=e.router.options.context??{};for(let f=0;f<=n;f++){const p=e.matches[f];if(!p)continue;const v=e.router.getMatch(p.id);v&&(c={...c,...v.__routeContext??{},...v.__beforeLoadContext??{}})}const d=W4(e,t);return{params:o,deps:a,preload:!!d,parentMatchPromise:i,abortController:s,context:c,location:e.location,navigate:f=>e.router.navigate({...f,_fromLocation:e.location}),cause:d?"preload":l,route:r,...e.router.options.additionalContext}},_q=async(e,t,n,r)=>{var i,o,a,s,l,c;try{const d=e.router.getMatch(t);try{(!e.router.isServer||d.ssr===!0)&&wq(r);const f=(o=(i=r.options).loader)==null?void 0:o.call(i,bq(e,t,n,r)),p=r.options.loader&&Of(f);if((p||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||d._nonReactive.minPendingPromise)&&e.updateMatch(t,b=>({...b,isFetching:"loader"})),r.options.loader){const b=p?await f:f;zf(e,e.router.getMatch(t),b),b!==void 0&&e.updateMatch(t,w=>({...w,loaderData:b}))}r._lazyPromise&&await r._lazyPromise;const v=zy(e,t,r),_=v?await v:void 0,y=d._nonReactive.minPendingPromise;y&&await y,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,b=>({...b,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),..._}))}catch(f){let p=f;const v=d._nonReactive.minPendingPromise;v&&await v,Wl(f)&&await((s=(a=r.options.notFoundComponent)==null?void 0:a.preload)==null?void 0:s.call(a)),zf(e,e.router.getMatch(t),f);try{(c=(l=r.options).onError)==null||c.call(l,f)}catch(b){p=b,zf(e,e.router.getMatch(t),b)}const _=zy(e,t,r),y=_?await _:void 0;e.updateMatch(t,b=>({...b,error:p,status:"error",isFetching:!1,...y}))}}catch(d){const f=e.router.getMatch(t);if(f){const p=zy(e,t,r);if(p){const v=await p;e.updateMatch(t,_=>({..._,...v}))}f._nonReactive.loaderPromise=void 0}zf(e,f,d)}},A8e=async(e,t)=>{var c,d;const{id:n,routeId:r}=e.matches[t];let i=!1,o=!1;const a=e.router.looseRoutesById[r];if(vq(e,n)){if(e.router.isServer){const f=zy(e,n,a);if(f){const p=await f;e.updateMatch(n,v=>({...v,...p}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const p=e.router.getMatch(n),v=p._nonReactive.error||p.error;v&&zf(e,p,v)}else{const p=Date.now()-f.updatedAt,v=W4(e,n),_=v?a.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:a.options.staleTime??e.router.options.defaultStaleTime??0,y=a.options.shouldReload,b=typeof y=="function"?y(bq(e,n,t,a)):y,w=!!v&&!e.router.state.matches.some(j=>j.id===n),x=e.router.getMatch(n);x._nonReactive.loaderPromise=Y0(),w!==x.preload&&e.updateMatch(n,j=>({...j,preload:w}));const{status:S,invalid:C}=x;if(i=S==="success"&&(C||(b??p>_)),!(v&&a.options.preload===!1))if(i&&!e.sync)o=!0,(async()=>{var j,T;try{await _q(e,n,t,a);const E=e.router.getMatch(n);(j=E._nonReactive.loaderPromise)==null||j.resolve(),(T=E._nonReactive.loadPromise)==null||T.resolve(),E._nonReactive.loaderPromise=void 0}catch(E){Vu(E)&&await e.router.navigate(E.options)}})();else if(S!=="success"||i&&e.sync)await _q(e,n,t,a);else{const j=zy(e,n,a);if(j){const T=await j;e.updateMatch(n,E=>({...E,...T}))}}}}const s=e.router.getMatch(n);o||((c=s._nonReactive.loaderPromise)==null||c.resolve(),(d=s._nonReactive.loadPromise)==null||d.resolve()),clearTimeout(s._nonReactive.pendingTimeout),s._nonReactive.pendingTimeout=void 0,o||(s._nonReactive.loaderPromise=void 0),s._nonReactive.dehydrated=void 0;const l=o?s.isFetching:!1;return l!==s.isFetching||s.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:l,invalid:!1})),e.router.getMatch(n)):s};async function xq(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&U4(t);try{for(let i=0;i{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{var r;const n=[];for(const i of Sq){const o=(r=e.options[i])==null?void 0:r.preload;o&&n.push(o())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function V4(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function kq(e){var t;for(const n of Sq)if((t=e.options[n])!=null&&t.preload)return!0;return!1}const Sq=["component","errorComponent","pendingComponent","notFoundComponent"];function F8e(e){return{input:({url:t})=>{for(const n of e)t=Cq(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=jq(e[n],t);return t}}}function B8e(e){const t=z4(e.basepath),n=`/${t}`,r=`${n}/`,i=e.caseSensitive?n:n.toLowerCase(),o=e.caseSensitive?r:r.toLowerCase();return{input:({url:a})=>{const s=e.caseSensitive?a.pathname:a.pathname.toLowerCase();return s===i?a.pathname="/":s.startsWith(o)&&(a.pathname=a.pathname.slice(n.length)),a},output:({url:a})=>(a.pathname=ed(["/",t,a.pathname]),a)}}function Cq(e,t){var r;const n=(r=e==null?void 0:e.input)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function jq(e,t){var r;const n=(r=e==null?void 0:e.output)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function sp(e){const t=e.resolvedLocation,n=e.location,r=(t==null?void 0:t.pathname)!==n.pathname,i=(t==null?void 0:t.href)!==n.href,o=(t==null?void 0:t.hash)!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:i,hashChanged:o}}class U8e{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{var d;n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,i=this.basepath??(r==null?void 0:r.basepath)??"/",o=this.basepath===void 0,a=r==null?void 0:r.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(f=>[encodeURIComponent(f),f])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=Gje())),this.origin=this.options.origin,this.origin||(!this.isServer&&(window!=null&&window.origin)&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new Zje(V8e(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(f=>!["redirected"].includes(f.status))}}}),j8e(this));let s=!1;const l=this.options.basepath??"/",c=this.options.rewrite;if(o||i!==l||a!==c){this.basepath=l;const f=[];z4(l)!==""&&f.push(B8e({basepath:l})),c&&f.push(c),this.rewrite=f.length===0?void 0:f.length===1?f[0]:F8e(f),this.history&&this.updateLatestLocation(),s=!0}s&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof((d=window.CSS)==null?void 0:d.supports)=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:i}=x8e({routeTree:this.routeTree,initRoute:(a,s)=>{a.init({originalIndex:s})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=i;const o=this.options.notFoundRoute;o&&(o.init({originalIndex:99999999999}),this.routesById[o.id]=o)},this.subscribe=(n,r)=>{const i={eventType:n,fn:r};return this.subscribers.add(i),()=>{this.subscribers.delete(i)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const i=({href:l,state:c})=>{const d=new URL(l,this.origin),f=Cq(this.rewrite,d),p=this.options.parseSearch(f.search),v=this.options.stringifySearch(p);f.search=v;const _=f.href.replace(f.origin,""),{pathname:y,hash:b}=f;return{href:_,publicHref:l,url:f.href,pathname:dq(y),searchStr:v,search:Ul(r==null?void 0:r.search,p),hash:b.split("#").reverse()[0]??"",state:Ul(r==null?void 0:r.state,c)}},o=i(n),{__tempLocation:a,__tempKey:s}=o.state;if(a&&(!s||s===this.tempLocationKey)){const l=i(a);return l.state.key=o.state.key,l.state.__TSR_key=o.state.__TSR_key,delete l.state.__tempLocation,{...l,maskedLocation:o}}return o},this.resolvePathWithBase=(n,r)=>t8e({base:n,to:rT(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,i)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},i):this.matchRoutesInternal(n,r),this.parsePathnameCache=R8e(1e3),this.getMatchedRoutes=(n,r)=>H8e({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(i=>i.status==="pending"),r=this.state.matches.filter(i=>i.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(i=>{this.cancelMatch(i.id)})},this.buildLocation=n=>{const r=(o={})=>{var M,P;const a=o._fromLocation||this.pendingBuiltLocation||this.latestLocation,s=this.matchRoutes(a,{_buildLocation:!0}),l=nT(s);o.from;const c=o.unsafeRelative==="path"?a.pathname:o.from??l.fullPath,d=this.resolvePathWithBase(c,"."),f=l.search,p={...l.params},v=o.to?this.resolvePathWithBase(d,`${o.to}`):this.resolvePathWithBase(d,"."),_=o.params===!1||o.params===null?{}:(o.params??!0)===!0?p:Object.assign(p,op(o.params,p)),y=oT({path:v,params:_,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(y,void 0,{_buildLocation:!0}).map(te=>this.looseRoutesById[te.routeId]);if(Object.keys(_).length>0)for(const te of b){const Z=((M=te.options.params)==null?void 0:M.stringify)??te.options.stringifyParams;Z&&Object.assign(_,Z(_))}const w=dq(oT({path:v,params:_,leaveParams:n.leaveParams,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let x=f;if(n._includeValidateSearch&&((P=this.options.search)!=null&&P.strict)){const te={};b.forEach(Z=>{if(Z.options.validateSearch)try{Object.assign(te,cT(Z.options.validateSearch,{...te,...x}))}catch{}}),x=te}x=Z8e({search:x,dest:o,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),x=Ul(f,x);const S=this.options.stringifySearch(x),C=o.hash===!0?a.hash:o.hash?op(o.hash,a.hash):void 0,j=C?`#${C}`:"";let T=o.state===!0?a.state:o.state?op(o.state,a.state):{};T=Ul(a.state,T);const E=`${w}${S}${j}`,$=new URL(E,this.origin),A=jq(this.rewrite,$);return{publicHref:A.pathname+A.search+A.hash,href:E,url:A.href,pathname:w,search:x,searchStr:S,state:T,hash:C??"",unmaskOnReload:o.unmaskOnReload}},i=(o={},a)=>{var c;const s=r(o);let l=a?r(a):void 0;if(!l){let d={};const f=(c=this.options.routeMasks)==null?void 0:c.find(p=>{const v=aT(s.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return v?(d=v,!0):!1});if(f){const{from:p,...v}=f;a={from:n.from,...v,params:d},l=r(a)}}return l&&(s.maskedLocation=l),s};return n.mask?i(n,{from:n.from,...n.mask}):i(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...i})=>{const o=()=>{const l=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];l.forEach(d=>{i.state[d]=this.latestLocation.state[d]});const c=Rf(i.state,this.latestLocation.state);return l.forEach(d=>{delete i.state[d]}),c},a=Pf(this.latestLocation.href)===Pf(i.href),s=this.commitLocationPromise;if(this.commitLocationPromise=Y0(()=>{s==null||s.resolve()}),a&&o())this.load();else{let{maskedLocation:l,hashScrollIntoView:c,...d}=i;l&&(d={...l,state:{...l.state,__tempKey:void 0,__tempLocation:{...d,search:d.searchStr,state:{...d.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(d.unmaskOnReload??this.options.unmaskOnReload??!1)&&(d.state.__tempKey=this.tempLocationKey)),d.state.__hashScrollIntoViewOptions=c??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[i.replace?"replace":"push"](d.publicHref,d.state,{ignoreBlocker:r})}return this.resetNextScroll=i.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:i,viewTransition:o,ignoreBlocker:a,href:s,...l}={})=>{if(s){const f=this.history.location.state.__TSR_index,p=O4(s,{__TSR_index:n?f:f+1});l.to=p.pathname,l.search=this.options.parseSearch(p.search),l.hash=p.hash.slice(1)}const c=this.buildLocation({...l,_includeValidateSearch:!0});this.pendingBuiltLocation=c;const d=this.commitLocation({...c,viewTransition:o,replace:n,resetScroll:r,hashScrollIntoView:i,ignoreBlocker:a});return Promise.resolve().then(()=>{this.pendingBuiltLocation===c&&(this.pendingBuiltLocation=void 0)}),d},this.navigate=({to:n,reloadDocument:r,href:i,...o})=>{if(!r&&i)try{new URL(`${i}`),r=!0}catch{}return r?(i||(i=this.buildLocation({to:n,...o}).url),o.replace?window.location.replace(i):window.location.href=i,Promise.resolve()):this.buildAndCommitLocation({...o,href:i,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),i=o=>{try{return encodeURI(decodeURI(o))}catch{return o}};if(z4(i(this.latestLocation.href))!==z4(i(r.href))){let o=r.url;throw this.origin&&o.startsWith(this.origin)&&(o=o.replace(this.origin,"")||"/"),uT({href:o})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(i=>!n.some(o=>o.id===i.id))}))},this.load=async n=>{let r,i,o;for(o=new Promise(s=>{this.startTransition(async()=>{var l;try{this.beforeLoad();const c=this.latestLocation,d=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...sp({resolvedLocation:d,location:c})}),this.emit({type:"onBeforeLoad",...sp({resolvedLocation:d,location:c})}),await xq({router:this,sync:n==null?void 0:n.sync,matches:this.state.pendingMatches,location:c,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let f=[],p=[],v=[];Oy(()=>{this.__store.setState(_=>{const y=_.matches,b=_.pendingMatches||_.matches;return f=y.filter(w=>!b.some(x=>x.id===w.id)),p=b.filter(w=>!y.some(x=>x.id===w.id)),v=b.filter(w=>y.some(x=>x.id===w.id)),{..._,isLoading:!1,loadedAt:Date.now(),matches:b,pendingMatches:void 0,cachedMatches:[..._.cachedMatches,...f.filter(w=>w.status!=="error")]}}),this.clearExpiredCache()}),[[f,"onLeave"],[p,"onEnter"],[v,"onStay"]].forEach(([_,y])=>{_.forEach(b=>{var w,x;(x=(w=this.looseRoutesById[b.routeId].options)[y])==null||x.call(w,b)})})})})}})}catch(c){Vu(c)?(r=c,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wl(c)&&(i=c),this.__store.setState(d=>({...d,statusCode:r?r.status:i?404:d.matches.some(f=>f.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===o&&((l=this.commitLocationPromise)==null||l.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),s()})}),this.latestLoadPromise=o,await o;this.latestLoadPromise&&o!==this.latestLoadPromise;)await this.latestLoadPromise;let a;this.hasNotFoundMatch()?a=404:this.__store.state.matches.some(s=>s.status==="error")&&(a=500),a!==void 0&&this.__store.setState(s=>({...s,statusCode:a}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let i;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const o=this.latestLocation,a=this.state.resolvedLocation,s=typeof r.types=="function"?r.types(sp({resolvedLocation:a,location:o})):r.types;if(s===!1){n();return}i={update:n,types:s}}else i=n;document.startViewTransition(i)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{var o;const i=(o=this.state.pendingMatches)!=null&&o.some(a=>a.id===n)?"pendingMatches":this.state.matches.some(a=>a.id===n)?"matches":this.state.cachedMatches.some(a=>a.id===n)?"cachedMatches":"";i&&this.__store.setState(a=>{var s;return{...a,[i]:(s=a[i])==null?void 0:s.map(l=>l.id===n?r(l):l)}})})},this.getMatch=n=>{var i;const r=o=>o.id===n;return this.state.cachedMatches.find(r)??((i=this.state.pendingMatches)==null?void 0:i.find(r))??this.state.matches.find(r)},this.invalidate=n=>{const r=i=>{var o;return((o=n==null?void 0:n.filter)==null?void 0:o.call(n,i))??!0?{...i,invalid:!0,...n!=null&&n.forcePending||i.status==="error"?{status:"pending",error:void 0}:void 0}:i};return this.__store.setState(i=>{var o;return{...i,matches:i.matches.map(r),cachedMatches:i.cachedMatches.map(r),pendingMatches:(o=i.pendingMatches)==null?void 0:o.map(r)}}),this.shouldViewTransition=!1,this.load({sync:n==null?void 0:n.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let i=r.url;this.origin&&i.startsWith(this.origin)&&(i=i.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",i)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n==null?void 0:n.filter;r!==void 0?this.__store.setState(i=>({...i,cachedMatches:i.cachedMatches.filter(o=>!r(o))})):this.__store.setState(i=>({...i,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const i=this.looseRoutesById[r.routeId];if(!i.options.loader)return!0;const o=(r.preload?i.options.preloadGcTime??this.options.defaultPreloadGcTime:i.options.gcTime??this.options.defaultGcTime)??5*60*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=o};this.clearCache({filter:n})},this.loadRouteChunk=wq,this.preloadRoute=async n=>{const r=this.buildLocation(n);let i=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const o=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(s=>s.id)),a=new Set([...o,...this.state.cachedMatches.map(s=>s.id)]);Oy(()=>{i.forEach(s=>{a.has(s.id)||this.__store.setState(l=>({...l,cachedMatches:[...l.cachedMatches,s]}))})});try{return i=await xq({router:this,matches:i,location:r,preload:!0,updateMatch:(s,l)=>{o.has(s)?i=i.map(c=>c.id===s?l(c):c):this.updateMatch(s,l)}}),i}catch(s){if(Vu(s))return s.options.reloadDocument?void 0:await this.preloadRoute({...s.options,_fromLocation:r});Wl(s)||console.error(s);return}},this.matchRoute=(n,r)=>{const i={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},o=this.buildLocation(i);if(r!=null&&r.pending&&this.state.status!=="pending")return!1;const a=((r==null?void 0:r.pending)===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,s=aT(a.pathname,{...r,to:o.pathname},this.parsePathnameCache);return!s||n.params&&!Rf(s,n.params,{partial:!0})?!1:s&&((r==null?void 0:r.includeSearch)??!0)?Rf(a.search,o.search,{partial:!0})?s:!1:s},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??$8e,parseSearch:t.parseSearch??N8e}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){var d;const{foundRoute:r,matchedRoutes:i,routeParams:o}=this.getMatchedRoutes(t.pathname,(d=n==null?void 0:n.dest)==null?void 0:d.to);let a=!1;(r?r.path!=="/"&&o["**"]:Pf(t.pathname))&&(this.options.notFoundRoute?i.push(this.options.notFoundRoute):a=!0);const s=(()=>{if(a){if(this.options.notFoundMode!=="root")for(let f=i.length-1;f>=0;f--){const p=i[f];if(p.children)return p.id}return ms}})(),l=[],c=f=>f!=null&&f.id?f.context??this.options.context??void 0:this.options.context??void 0;return i.forEach((f,p)=>{var Z,O,J;const v=l[p-1],[_,y,b]=(()=>{const D=(v==null?void 0:v.search)??t.search,Y=(v==null?void 0:v._strictSearch)??void 0;try{const F=cT(f.options.validateSearch,{...D})??void 0;return[{...D,...F},{...Y,...F},void 0]}catch(F){let H=F;if(F instanceof H4||(H=new H4(F.message,{cause:F})),n==null?void 0:n.throwOnError)throw H;return[D,{},H]}})(),w=((O=(Z=f.options).loaderDeps)==null?void 0:O.call(Z,{search:_}))??"",x=w?JSON.stringify(w):"",{interpolatedPath:S,usedParams:C}=oT({path:f.fullPath,params:o,decodeCharMap:this.pathParamsDecodeCharMap}),j=f.id+S+x,T=this.getMatch(j),E=this.state.matches.find(D=>D.routeId===f.id),$=(T==null?void 0:T._strictParams)??C;let A;if(!T){const D=((J=f.options.params)==null?void 0:J.parse)??f.options.parseParams;if(D)try{Object.assign($,D($))}catch(Y){if(A=new W8e(Y.message,{cause:Y}),n==null?void 0:n.throwOnError)throw A}}Object.assign(o,$);const M=E?"stay":"enter";let P;if(T)P={...T,cause:M,params:E?Ul(E.params,o):o,_strictParams:$,search:Ul(E?E.search:T.search,_),_strictSearch:y};else{const D=f.options.loader||f.options.beforeLoad||f.lazyFn||kq(f)?"pending":"success";P={id:j,index:p,routeId:f.id,params:E?Ul(E.params,o):o,_strictParams:$,pathname:S,updatedAt:Date.now(),search:E?Ul(E.search,_):_,_strictSearch:y,searchError:void 0,status:D,isFetching:!1,error:void 0,paramsError:A,__routeContext:void 0,_nonReactive:{loadPromise:Y0()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:M,loaderDeps:E?Ul(E.loaderDeps,w):w,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:f.options.staticData||{},fullPath:f.fullPath}}n!=null&&n.preload||(P.globalNotFound=s===f.id),P.searchError=b;const te=c(v);P.context={...te,...P.__routeContext,...P.__beforeLoadContext},l.push(P)}),l.forEach((f,p)=>{const v=this.looseRoutesById[f.routeId];if(!this.getMatch(f.id)&&(n==null?void 0:n._buildLocation)!==!0){const _=l[p-1],y=c(_);if(v.options.context){const b={deps:f.loaderDeps,params:f.params,context:y??{},location:t,navigate:w=>this.navigate({...w,_fromLocation:t}),buildLocation:this.buildLocation,cause:f.cause,abortController:f.abortController,preload:!!f.preload,matches:l};f.__routeContext=v.options.context(b)??void 0}f.context={...y,...f.__routeContext,...f.__beforeLoadContext}}}),l}}class H4 extends Error{}class W8e extends Error{}function V8e(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function cT(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new H4("Async validation not supported");if(n.issues)throw new H4(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function H8e({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:i,flatRoutes:o,parseCache:a}){let s={};const l=Pf(e),c=v=>{var _;return aT(l,{to:v.fullPath,caseSensitive:((_=v.options)==null?void 0:_.caseSensitive)??n,fuzzy:!0},a)};let d=t!==void 0?r[t]:void 0;if(d)s=c(d);else{let v;for(const _ of o){const y=c(_);if(y)if(_.path!=="/"&&y["**"])v||(v={foundRoute:_,routeParams:y});else{d=_,s=y;break}}!d&&v&&(d=v.foundRoute,s=v.routeParams)}let f=d||i[ms];const p=[f];for(;f.parentRoute;)f=f.parentRoute,p.push(f);return p.reverse(),{matchedRoutes:p,routeParams:s,foundRoute:d}}function Z8e({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const i=n.reduce((s,l)=>{var d;const c=[];if("search"in l.options)(d=l.options.search)!=null&&d.middlewares&&c.push(...l.options.search.middlewares);else if(l.options.preSearchFilters||l.options.postSearchFilters){const f=({search:p,next:v})=>{let _=p;"preSearchFilters"in l.options&&l.options.preSearchFilters&&(_=l.options.preSearchFilters.reduce((b,w)=>w(b),p));const y=v(_);return"postSearchFilters"in l.options&&l.options.postSearchFilters?l.options.postSearchFilters.reduce((b,w)=>w(b),y):y};c.push(f)}if(r&&l.options.validateSearch){const f=({search:p,next:v})=>{const _=v(p);try{return{..._,...cT(l.options.validateSearch,_)??void 0}}catch{return _}};c.push(f)}return s.concat(c)},[])??[],o=({search:s})=>t.search?t.search===!0?s:op(t.search,s):{};i.push(o);const a=(s,l)=>{if(s>=i.length)return l;const c=i[s];return c({search:l,next:d=>a(s+1,d)})};return a(0,e)}const q8e="Error preloading route! \u261D\uFE0F";class Tq{constructor(t){if(this.init=n=>{var c,d;this.originalIndex=n.originalIndex;const r=this.options,i=!(r!=null&&r.path)&&!(r!=null&&r.id);this.parentRoute=(d=(c=this.options).getParentRoute)==null?void 0:d.call(c),i?this._path=ms:this.parentRoute||Qc(!1);let o=i?ms:r==null?void 0:r.path;o&&o!=="/"&&(o=iT(o));const a=(r==null?void 0:r.id)||o;let s=i?ms:ed([this.parentRoute.id===ms?"":this.parentRoute.id,a]);o===ms&&(o="/"),s!==ms&&(s=ed(["/",s]));const l=s===ms?"/":ed([this.parentRoute.fullPath,o]);this._path=o,this._id=s,this._fullPath=l,this._to=l},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!(t!=null&&t.getParentRoute),(t==null?void 0:t.id)&&(t==null?void 0:t.path))throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class G8e extends Tq{constructor(t){super(t)}}function Y8e(e){return({search:t,next:n})=>{const r=n(t);return e===!0?{...t,...r}:(e.forEach(i=>{i in r||(r[i]=t[i])}),r)}}function K8e(e){return({search:t,next:n})=>{if(e===!0)return{};const r=n(t);return Array.isArray(e)?e.forEach(i=>{delete r[i]}):Object.entries(e).forEach(([i,o])=>{Rf(r[i],o)&&delete r[i]}),r}}function dT(e){const t=e.errorComponent??Z4;return u.jsx(X8e,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?m.createElement(t,{error:n,reset:r}):e.children})}class X8e extends m.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Z4({error:e}){const[t,n]=m.useState(!1);return u.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[u.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),u.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),u.jsx("div",{style:{height:".25rem"}}),t?u.jsx("div",{children:u.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?u.jsx("code",{children:e.message}):null})}):null]})}function J8e({children:e,fallback:t=null}){return Q8e()?u.jsx(Oe.Fragment,{children:e}):u.jsx(Oe.Fragment,{children:t})}function Q8e(){return Oe.useSyncExternalStore(e9e,()=>!0,()=>!1)}function e9e(){return()=>{}}var Iq={exports:{}},Eq={};/** -* @license React -* use-sync-external-store-shim/with-selector.production.js -* -* Copyright (c) Meta Platforms, Inc. and affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var q4=m,t9e=T4e;function n9e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var r9e=typeof Object.is=="function"?Object.is:n9e,i9e=t9e.useSyncExternalStore,o9e=q4.useRef,a9e=q4.useEffect,s9e=q4.useMemo,l9e=q4.useDebugValue;Eq.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var o=o9e(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=s9e(function(){function l(v){if(!c){if(c=!0,d=v,v=r(v),i!==void 0&&a.hasValue){var _=a.value;if(i(_,v))return f=_}return f=v}if(_=f,r9e(d,v))return _;var y=r(v);return i!==void 0&&i(_,y)?(d=v,_):(d=v,f=y)}var c=!1,d,f,p=n===void 0?null:n;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,n,r,i]);var s=i9e(e,o[0],o[1]);return a9e(function(){a.hasValue=!0,a.value=s},[s]),l9e(s),s},Iq.exports=Eq;var u9e=Iq.exports;function c9e(e,t=r=>r,n={}){const r=n.equal??d9e;return u9e.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function d9e(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!t.has(r)||!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=Nq(e);if(n.length!==Nq(t).length)return!1;for(let r=0;r"u"?fT:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=fT,fT)}function gs(e){const t=m.useContext($q());return e==null||e.warn,t}function ua(e){const t=gs({warn:(e==null?void 0:e.router)===void 0}),n=(e==null?void 0:e.router)||t,r=m.useRef(void 0);return c9e(n.__store,i=>{if(e!=null&&e.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const o=Ul(r.current,e.select(i));return r.current=o,o}return e.select(i)}return i})}const G4=m.createContext(void 0),f9e=m.createContext(void 0);function Hu(e){const t=m.useContext(e.from?f9e:G4);return ua({select:n=>{const r=n.matches.find(i=>e.from?e.from===i.routeId:i.id===t);if(Qc(!((e.shouldThrow??!0)&&!r),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),r!==void 0)return e.select?e.select(r):r},structuralSharing:e.structuralSharing})}function hT(e){return Hu({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function pT(e){const{select:t,...n}=e;return Hu({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function mT(e){return Hu({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function gT(e){return Hu({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Q0(e){const t=gs();return m.useCallback(n=>t.navigate({...n,from:n.from??(e==null?void 0:e.from)}),[e==null?void 0:e.from,t])}const Y4=typeof window<"u"?m.useLayoutEffect:m.useEffect;function vT(e){const t=m.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function h9e(e,t,n={},r={}){m.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const i=new IntersectionObserver(([o])=>{t(o)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function p9e(e){const t=m.useRef(null);return m.useImperativeHandle(e,()=>t.current,[]),t}function m9e(e,t){const n=gs(),[r,i]=m.useState(!1),o=m.useRef(!1),a=p9e(t),{activeProps:s,inactiveProps:l,activeOptions:c,to:d,preload:f,preloadDelay:p,hashScrollIntoView:v,replace:_,startTransition:y,resetScroll:b,viewTransition:w,children:x,target:S,disabled:C,style:j,className:T,onClick:E,onFocus:$,onMouseEnter:A,onMouseLeave:M,onTouchStart:P,ignoreBlocker:te,params:Z,search:O,hash:J,state:D,mask:Y,reloadDocument:F,unsafeRelative:H,from:ee,_fromLocation:ce,...U}=e,ae=ua({select:Qe=>Qe.location.search,structuralSharing:!0}),je=e.from,me=m.useMemo(()=>({...e,from:je}),[n,ae,je,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ke=m.useMemo(()=>n.buildLocation({...me}),[n,me]),he=m.useMemo(()=>{if(C)return;let Qe=ke.maskedLocation?ke.maskedLocation.url:ke.url,Ke=!1;return n.origin&&(Qe.startsWith(n.origin)?Qe=n.history.createHref(Qe.replace(n.origin,""))||"/":Ke=!0),{href:Qe,external:Ke}},[C,ke.maskedLocation,ke.url,n.origin,n.history]),ue=m.useMemo(()=>{if(he!=null&&he.external)return he.href;try{return new URL(d),d}catch{}},[d,he]),re=e.reloadDocument||ue?!1:f??n.options.defaultPreload,ge=p??n.options.defaultPreloadDelay??0,$e=ua({select:Qe=>{if(ue)return!1;if(c!=null&&c.exact){if(!Qje(Qe.location.pathname,ke.pathname,n.basepath))return!1}else{const Ke=D4(Qe.location.pathname,n.basepath),De=D4(ke.pathname,n.basepath);if(!(Ke.startsWith(De)&&(Ke.length===De.length||Ke[De.length]==="/")))return!1}return((c==null?void 0:c.includeSearch)??!0)&&!Rf(Qe.location.search,ke.search,{partial:!(c!=null&&c.exact),ignoreUndefined:!(c!=null&&c.explicitUndefined)})?!1:c!=null&&c.includeHash?Qe.location.hash===ke.hash:!0}}),pe=m.useCallback(()=>{n.preloadRoute({...me}).catch(Qe=>{console.warn(Qe),console.warn(q8e)})},[n,me]),ye=m.useCallback(Qe=>{Qe!=null&&Qe.isIntersecting&&pe()},[pe]);h9e(a,ye,_9e,{disabled:!!C||re!=="viewport"}),m.useEffect(()=>{o.current||!C&&re==="render"&&(pe(),o.current=!0)},[C,pe,re]);const Se=Qe=>{const Ke=Qe.currentTarget.getAttribute("target"),De=S!==void 0?S:Ke;if(!C&&!x9e(Qe)&&!Qe.defaultPrevented&&(!De||De==="_self")&&Qe.button===0){Qe.preventDefault(),Kc.flushSync(()=>{i(!0)});const Dt=n.subscribe("onResolved",()=>{Dt(),i(!1)});n.navigate({...me,replace:_,resetScroll:b,hashScrollIntoView:v,startTransition:y,viewTransition:w,ignoreBlocker:te})}};if(ue)return{...U,ref:a,href:ue,...x&&{children:x},...S&&{target:S},...C&&{disabled:C},...j&&{style:j},...T&&{className:T},...E&&{onClick:E},...$&&{onFocus:$},...A&&{onMouseEnter:A},...M&&{onMouseLeave:M},...P&&{onTouchStart:P}};const Ce=Qe=>{C||re&&pe()},Be=Ce,Ge=Qe=>{if(!(C||!re))if(!ge)pe();else{const Ke=Qe.target;if(Dy.has(Ke))return;const De=setTimeout(()=>{Dy.delete(Ke),pe()},ge);Dy.set(Ke,De)}},xt=Qe=>{if(C||!re||!ge)return;const Ke=Qe.target,De=Dy.get(Ke);De&&(clearTimeout(De),Dy.delete(Ke))},St=$e?op(s,{})??g9e:yT,ut=$e?yT:op(l,{})??yT,ct=[T,St.className,ut.className].filter(Boolean).join(" "),bt=(j||St.style||ut.style)&&{...j,...St.style,...ut.style};return{...U,...St,...ut,href:he==null?void 0:he.href,ref:a,onClick:Ay([E,Se]),onFocus:Ay([$,Ce]),onMouseEnter:Ay([A,Ge]),onMouseLeave:Ay([M,xt]),onTouchStart:Ay([P,Be]),disabled:!!C,target:S,...bt&&{style:bt},...ct&&{className:ct},...C&&v9e,...$e&&y9e,...r&&b9e}}const yT={},g9e={className:"active"},v9e={role:"link","aria-disabled":!0},y9e={"data-status":"active","aria-current":"page"},b9e={"data-transitioning":"transitioning"},Dy=new WeakMap,_9e={rootMargin:"100px"},Ay=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},lp=m.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:i,ref:o,...a}=m9e(r,t),s=typeof r.children=="function"?r.children({isActive:a["data-status"]==="active"}):r.children;return n===void 0&&delete a.disabled,m.createElement(n||"a",{...a,ref:o},s)});function x9e(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}let w9e=class extends Tq{constructor(e){super(e),this.useMatch=t=>Hu({select:t==null?void 0:t.select,from:this.id,structuralSharing:t==null?void 0:t.structuralSharing}),this.useRouteContext=t=>Hu({...t,from:this.id,select:n=>t!=null&&t.select?t.select(n.context):n.context}),this.useSearch=t=>gT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useParams=t=>mT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useLoaderDeps=t=>pT({...t,from:this.id}),this.useLoaderData=t=>hT({...t,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Oe.forwardRef((t,n)=>u.jsx(lp,{ref:n,from:this.fullPath,...t})),this.$$typeof=Symbol.for("react.memo")}};function k9e(e){return new w9e(e)}class S9e extends G8e{constructor(t){super(t),this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({...n,from:this.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useParams=n=>mT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useLoaderDeps=n=>pT({...n,from:this.id}),this.useLoaderData=n=>hT({...n,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Oe.forwardRef((n,r)=>u.jsx(lp,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function C9e(e){return new S9e(e)}function up(e){return typeof e=="object"?new Mq(e,{silent:!0}).createRoute(e):new Mq(e,{silent:!0}).createRoute}class Mq{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const i=k9e(r);return i.isRoot=!1,i},this.silent=n==null?void 0:n.silent}}class Lq{constructor(t){this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.options.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({from:this.options.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useParams=n=>mT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>pT({...n,from:this.options.id}),this.useLoaderData=n=>hT({...n,from:this.options.id}),this.useNavigate=()=>{const n=gs();return Q0({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function Rq(e){return typeof e=="object"?new Lq(e):t=>new Lq({id:e,...t})}function j9e(){const e=gs(),t=m.useRef({router:e,mounted:!1}),[n,r]=m.useState(!1),{hasPendingMatches:i,isLoading:o}=ua({select:f=>({isLoading:f.isLoading,hasPendingMatches:f.matches.some(p=>p.status==="pending")}),structuralSharing:!0}),a=vT(o),s=o||n||i,l=vT(s),c=o||i,d=vT(c);return e.startTransition=f=>{r(!0),m.startTransition(()=>{f(),r(!1)})},m.useEffect(()=>{const f=e.history.subscribe(e.load),p=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Pf(e.latestLocation.href)!==Pf(p.href)&&e.commitLocation({...p,replace:!0}),()=>{f()}},[e,e.history]),Y4(()=>{typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(f){console.error(f)}})())},[e]),Y4(()=>{a&&!o&&e.emit({type:"onLoad",...sp(e.state)})},[a,e,o]),Y4(()=>{d&&!c&&e.emit({type:"onBeforeRouteMount",...sp(e.state)})},[c,d,e]),Y4(()=>{l&&!s&&(e.emit({type:"onResolved",...sp(e.state)}),e.__store.setState(f=>({...f,status:"idle",resolvedLocation:f.location})),T8e(e))},[s,l,e]),null}function T9e(e){const t=ua({select:n=>`not-found-${n.location.pathname}-${n.status}`});return u.jsx(dT,{getResetKey:()=>t,onCatch:(n,r)=>{var i;if(Wl(n))(i=e.onCatch)==null||i.call(e,n,r);else throw n},errorComponent:({error:n})=>{var r;if(Wl(n))return(r=e.fallback)==null?void 0:r.call(e,n);throw n},children:e.children})}function I9e(){return u.jsx("p",{children:"Not Found"})}function eg(e){return u.jsx(u.Fragment,{children:e.children})}function Oq(e,t,n){return t.options.notFoundComponent?u.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?u.jsx(e.options.defaultNotFoundComponent,{data:n}):u.jsx(I9e,{})}function E9e({children:e}){var n;const t=gs();return t.isServer?u.jsx("script",{nonce:(n=t.options.ssr)==null?void 0:n.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` -`)+";$_TSR.c()"}}):null}function N9e(){const e=gs();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const t=(e.options.getScrollRestorationKey||sT)(e.latestLocation),n=t!==sT(e.latestLocation)?t:void 0,r={storageKey:A4,shouldScrollRestoration:!0};return n&&(r.key=n),u.jsx(E9e,{children:`(${mq.toString()})(${JSON.stringify(r)})`})}const Pq=m.memo(function({matchId:e}){var b,w;const t=gs(),n=ua({select:x=>{const S=x.matches.find(C=>C.id===e);return Qc(S),{routeId:S.routeId,ssr:S.ssr,_displayPending:S._displayPending}},structuralSharing:!0}),r=t.routesById[n.routeId],i=r.options.pendingComponent??t.options.defaultPendingComponent,o=i?u.jsx(i,{}):null,a=r.options.errorComponent??t.options.defaultErrorComponent,s=r.options.onCatch??t.options.defaultOnCatch,l=r.isRoot?r.options.notFoundComponent??((b=t.options.notFoundRoute)==null?void 0:b.options.component):r.options.notFoundComponent,c=n.ssr===!1||n.ssr==="data-only",d=(!r.isRoot||r.options.wrapInSuspense||c)&&(r.options.wrapInSuspense??i??(((w=r.options.errorComponent)==null?void 0:w.preload)||c))?m.Suspense:eg,f=a?dT:eg,p=l?T9e:eg,v=ua({select:x=>x.loadedAt}),_=ua({select:x=>{var C;const S=x.matches.findIndex(j=>j.id===e);return(C=x.matches[S-1])==null?void 0:C.routeId}}),y=r.isRoot?r.options.shellComponent??eg:eg;return u.jsxs(y,{children:[u.jsx(G4.Provider,{value:e,children:u.jsx(d,{fallback:o,children:u.jsx(f,{getResetKey:()=>v,errorComponent:a||Z4,onCatch:(x,S)=>{if(Wl(x))throw x;s==null||s(x,S)},children:u.jsx(p,{fallback:x=>{if(!l||x.routeId&&x.routeId!==n.routeId||!x.routeId&&!r.isRoot)throw x;return m.createElement(l,x)},children:c||n._displayPending?u.jsx(J8e,{fallback:o,children:u.jsx(zq,{matchId:e})}):u.jsx(zq,{matchId:e})})})})}),_===ms&&t.options.scrollRestoration?u.jsxs(u.Fragment,{children:[u.jsx($9e,{}),u.jsx(N9e,{})]}):null]})});function $9e(){const e=gs(),t=m.useRef(void 0);return u.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...sp(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const zq=m.memo(function({matchId:e}){var s,l,c,d;const t=gs(),{match:n,key:r,routeId:i}=ua({select:f=>{var y;const p=f.matches.find(b=>b.id===e),v=p.routeId,_=(y=t.routesById[v].options.remountDeps??t.options.defaultRemountDeps)==null?void 0:y({routeId:v,loaderDeps:p.loaderDeps,params:p._strictParams,search:p._strictSearch});return{key:_?JSON.stringify(_):void 0,routeId:v,match:{id:p.id,status:p.status,error:p.error,_forcePending:p._forcePending,_displayPending:p._displayPending}}},structuralSharing:!0}),o=t.routesById[i],a=m.useMemo(()=>{const f=o.options.component??t.options.defaultComponent;return f?u.jsx(f,{},r):u.jsx(Dq,{})},[r,o.options.component,t.options.defaultComponent]);if(n._displayPending)throw(s=t.getMatch(n.id))==null?void 0:s._nonReactive.displayPendingPromise;if(n._forcePending)throw(l=t.getMatch(n.id))==null?void 0:l._nonReactive.minPendingPromise;if(n.status==="pending"){const f=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(f){const p=t.getMatch(n.id);if(p&&!p._nonReactive.minPendingPromise&&!t.isServer){const v=Y0();p._nonReactive.minPendingPromise=v,setTimeout(()=>{v.resolve(),p._nonReactive.minPendingPromise=void 0},f)}}throw(c=t.getMatch(n.id))==null?void 0:c._nonReactive.loadPromise}if(n.status==="notFound")return Qc(Wl(n.error)),Oq(t,o,n.error);if(n.status==="redirected")throw Qc(Vu(n.error)),(d=t.getMatch(n.id))==null?void 0:d._nonReactive.loadPromise;if(n.status==="error"){if(t.isServer){const f=(o.options.errorComponent??t.options.defaultErrorComponent)||Z4;return u.jsx(f,{error:n.error,reset:void 0,info:{componentStack:""}})}throw n.error}return a}),Dq=m.memo(function(){const e=gs(),t=m.useContext(G4),n=ua({select:l=>{var c;return(c=l.matches.find(d=>d.id===t))==null?void 0:c.routeId}}),r=e.routesById[n],i=ua({select:l=>{const c=l.matches.find(d=>d.id===t);return Qc(c),c.globalNotFound}}),o=ua({select:l=>{var f;const c=l.matches,d=c.findIndex(p=>p.id===t);return(f=c[d+1])==null?void 0:f.id}}),a=e.options.defaultPendingComponent?u.jsx(e.options.defaultPendingComponent,{}):null;if(i)return Oq(e,r,void 0);if(!o)return null;const s=u.jsx(Pq,{matchId:o});return n===ms?u.jsx(m.Suspense,{fallback:a,children:s}):s});function M9e(){const e=gs(),t=e.routesById[ms].options.pendingComponent??e.options.defaultPendingComponent,n=t?u.jsx(t,{}):null,r=e.isServer||typeof document<"u"&&e.ssr?eg:m.Suspense,i=u.jsxs(r,{fallback:n,children:[!e.isServer&&u.jsx(j9e,{}),u.jsx(L9e,{})]});return e.options.InnerWrap?u.jsx(e.options.InnerWrap,{children:i}):i}function L9e(){const e=gs(),t=ua({select:i=>{var o;return(o=i.matches[0])==null?void 0:o.id}}),n=ua({select:i=>i.loadedAt}),r=t?u.jsx(Pq,{matchId:t}):null;return u.jsx(G4.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:u.jsx(dT,{getResetKey:()=>n,errorComponent:Z4,onCatch:i=>{i.message||i.toString()},children:r})})}const R9e=e=>new O9e(e);class O9e extends U8e{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=up,globalThis.createLazyFileRoute=Rq):typeof window<"u"&&(window.createFileRoute=up,window.createLazyFileRoute=Rq);function P9e({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=$q(),i=u.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?u.jsx(e.options.Wrap,{children:i}):i}function z9e({router:e,...t}){return u.jsx(P9e,{router:e,...t,children:u.jsx(M9e,{})})}function D9e(e){return ua({select:t=>t.location})}const tg={};function Aq(e){return"init"in e}function bT(e){return!!e.write}function Fq(e){return"v"in e||"e"in e}function K4(e){if("e"in e)throw e.e;if((tg?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}const X4=new WeakMap;function Bq(e){var t;return J4(e)&&!!((t=X4.get(e))!=null&&t[0])}function A9e(e){const t=X4.get(e);t!=null&&t[0]&&(t[0]=!1,t[1].forEach(n=>n()))}function _T(e,t){let n=X4.get(e);if(!n){n=[!0,new Set],X4.set(e,n);const r=()=>{n[0]=!1};e.then(r,r)}n[1].add(t)}function J4(e){return typeof(e==null?void 0:e.then)=="function"}function Uq(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function Wq(e,t,n){var r;const i=new Set;for(const o of((r=n.get(e))==null?void 0:r.t)||[])n.has(o)&&i.add(o);for(const o of t.p)i.add(o);return i}const F9e=(e,t,...n)=>t.read(...n),B9e=(e,t,...n)=>t.write(...n),U9e=(e,t)=>{var n;return(n=t.unstable_onInit)==null?void 0:n.call(t,e)},W9e=(e,t,n)=>{var r;return(r=t.onMount)==null?void 0:r.call(t,n)},V9e=(e,t)=>{const n=Fo(e),r=n[0],i=n[9];if((tg?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let o=r.get(t);return o||(o={d:new Map,p:new Set,n:0},r.set(t,o),i==null||i(e,t)),o},H9e=e=>{const t=Fo(e),n=t[1],r=t[3],i=t[4],o=t[5],a=t[6],s=t[13],l=[],c=d=>{try{d()}catch(f){l.push(f)}};do{a.f&&c(a.f);const d=new Set,f=d.add.bind(d);r.forEach(p=>{var v;return(v=n.get(p))==null?void 0:v.l.forEach(f)}),r.clear(),o.forEach(f),o.clear(),i.forEach(f),i.clear(),d.forEach(c),r.size&&s(e)}while(r.size||o.size||i.size);if(l.length)throw new AggregateError(l)},Z9e=e=>{const t=Fo(e),n=t[1],r=t[2],i=t[3],o=t[11],a=t[14],s=t[17],l=[],c=new WeakSet,d=new WeakSet,f=Array.from(i);for(;f.length;){const p=f[f.length-1],v=o(e,p);if(d.has(p)){f.pop();continue}if(c.has(p)){if(r.get(p)===v.n)l.push([p,v]);else if((tg?"production":void 0)!=="production"&&r.has(p))throw new Error("[Bug] invalidated atom exists");d.add(p),f.pop();continue}c.add(p);for(const _ of Wq(p,v,n))c.has(_)||f.push(_)}for(let p=l.length-1;p>=0;--p){const[v,_]=l[p];let y=!1;for(const b of _.d.keys())if(b!==v&&i.has(b)){y=!0;break}y&&(a(e,v),s(e,v)),r.delete(v)}},q9e=(e,t)=>{var n,r;const i=Fo(e),o=i[1],a=i[2],s=i[3],l=i[6],c=i[7],d=i[11],f=i[12],p=i[13],v=i[14],_=i[16],y=i[17],b=d(e,t);if(Fq(b)&&(o.has(t)&&a.get(t)!==b.n||Array.from(b.d).every(([$,A])=>v(e,$).n===A)))return b;b.d.clear();let w=!0;function x(){o.has(t)&&(y(e,t),p(e),f(e))}function S($){var A;if($===t){const P=d(e,$);if(!Fq(P))if(Aq($))Q4(e,$,$.init);else throw new Error("no atom init");return K4(P)}const M=v(e,$);try{return K4(M)}finally{b.d.set($,M.n),Bq(b.v)&&Uq(t,b.v,M),(A=o.get($))==null||A.t.add(t),w||x()}}let C,j;const T={get signal(){return C||(C=new AbortController),C.signal},get setSelf(){return(tg?"production":void 0)!=="production"&&!bT(t)&&console.warn("setSelf function cannot be used with read-only atom"),!j&&bT(t)&&(j=(...$)=>{if((tg?"production":void 0)!=="production"&&w&&console.warn("setSelf function cannot be called in sync"),!w)try{return _(e,t,...$)}finally{p(e),f(e)}}),j}},E=b.n;try{const $=c(e,t,S,T);return Q4(e,t,$),J4($)&&(_T($,()=>C==null?void 0:C.abort()),$.then(x,x)),(n=l.r)==null||n.call(l,t),b}catch($){return delete b.v,b.e=$,++b.n,b}finally{w=!1,E!==b.n&&a.get(t)===E&&(a.set(t,b.n),s.add(t),(r=l.c)==null||r.call(l,t))}},G9e=(e,t)=>{const n=Fo(e),r=n[1],i=n[2],o=n[11],a=[t];for(;a.length;){const s=a.pop(),l=o(e,s);for(const c of Wq(s,l,r)){const d=o(e,c);i.set(c,d.n),a.push(c)}}},Vq=(e,t,...n)=>{const r=Fo(e),i=r[3],o=r[6],a=r[8],s=r[11],l=r[12],c=r[13],d=r[14],f=r[15],p=r[17];let v=!0;const _=b=>K4(d(e,b)),y=(b,...w)=>{var x;const S=s(e,b);try{if(b===t){if(!Aq(b))throw new Error("atom not writable");const C=S.n,j=w[0];Q4(e,b,j),p(e,b),C!==S.n&&(i.add(b),(x=o.c)==null||x.call(o,b),f(e,b));return}else return Vq(e,b,...w)}finally{v||(c(e),l(e))}};try{return a(e,t,_,y,...n)}finally{v=!1}},Y9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[3],a=r[6],s=r[11],l=r[15],c=r[18],d=r[19],f=s(e,t),p=i.get(t);if(p&&!Bq(f.v)){for(const[v,_]of f.d)if(!p.d.has(v)){const y=s(e,v);c(e,v).t.add(t),p.d.add(v),_!==y.n&&(o.add(v),(n=a.c)==null||n.call(a,v),l(e,v))}for(const v of p.d||[])if(!f.d.has(v)){p.d.delete(v);const _=d(e,v);_==null||_.t.delete(t)}}},Hq=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[4],a=r[6],s=r[10],l=r[11],c=r[12],d=r[13],f=r[14],p=r[16],v=l(e,t);let _=i.get(t);if(!_){f(e,t);for(const y of v.d.keys())Hq(e,y).t.add(t);if(_={l:new Set,d:new Set(v.d.keys()),t:new Set},i.set(t,_),(n=a.m)==null||n.call(a,t),bT(t)){const y=()=>{let b=!0;const w=(...x)=>{try{return p(e,t,...x)}finally{b||(d(e),c(e))}};try{const x=s(e,t,w);x&&(_.u=()=>{b=!0;try{x()}finally{b=!1}})}finally{b=!1}};o.add(y)}}return _},K9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[5],a=r[6],s=r[11],l=r[19],c=s(e,t);let d=i.get(t);if(d&&!d.l.size&&!Array.from(d.t).some(f=>{var p;return(p=i.get(f))==null?void 0:p.d.has(t)})){d.u&&o.add(d.u),d=void 0,i.delete(t),(n=a.u)==null||n.call(a,t);for(const f of c.d.keys()){const p=l(e,f);p==null||p.t.delete(t)}return}return d},Q4=(e,t,n)=>{const r=Fo(e)[11],i=r(e,t),o="v"in i,a=i.v;if(J4(n))for(const s of i.d.keys())Uq(t,n,r(e,s));i.v=n,delete i.e,(!o||!Object.is(a,i.v))&&(++i.n,J4(a)&&A9e(a))},X9e=(e,t)=>{const n=Fo(e)[14];return K4(n(e,t))},J9e=(e,t,...n)=>{const r=Fo(e),i=r[12],o=r[13],a=r[16];try{return a(e,t,...n)}finally{o(e),i(e)}},Q9e=(e,t,n)=>{const r=Fo(e),i=r[12],o=r[18],a=r[19],s=o(e,t).l;return s.add(n),i(e),()=>{s.delete(n),a(e,t),i(e)}},Zq=new WeakMap,Fo=e=>{const t=Zq.get(e);if((tg?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function e7e(...e){const t={get(r){const i=Fo(t)[21];return i(t,r)},set(r,...i){const o=Fo(t)[22];return o(t,r,...i)},sub(r,i){const o=Fo(t)[23];return o(t,r,i)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},F9e,B9e,U9e,W9e,V9e,H9e,Z9e,q9e,G9e,Vq,Y9e,Hq,K9e,Q4,X9e,J9e,Q9e,void 0].map((r,i)=>e[i]||r);return Zq.set(t,Object.freeze(n)),t}const qq={};let t7e=0;function fe(e,t){const n=`atom${++t7e}`,r={toString(){return(qq?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=n7e,r.write=r7e),t&&(r.write=t),r}function n7e(e){return e(this)}function r7e(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function i7e(){return e7e()}let Fy;function ca(){return Fy||(Fy=i7e(),(qq?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Fy),globalThis.__JOTAI_DEFAULT_STORE__!==Fy&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Fy}const o7e={},a7e=m.createContext(void 0);function Gq(e){return m.useContext(a7e)||ca()}const xT=e=>typeof(e==null?void 0:e.then)=="function",wT=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},s7e=Oe.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(wT(e),e)}),kT=new WeakMap,Yq=(e,t)=>{let n=kT.get(e);return n||(n=new Promise((r,i)=>{let o=e;const a=c=>d=>{o===c&&r(d)},s=c=>d=>{o===c&&i(d)},l=()=>{try{const c=t();xT(c)?(kT.set(c,n),o=c,c.then(a(c),s(c)),_T(c,l)):r(c)}catch(c){i(c)}};e.then(a(e),s(e)),_T(e,l)}),kT.set(e,n)),n};function X(e,t){const{delay:n,unstable_promiseStatus:r=!Oe.use}={},i=Gq(),[[o,a,s],l]=m.useReducer(d=>{const f=i.get(e);return Object.is(d[0],f)&&d[1]===i&&d[2]===e?d:[f,i,e]},void 0,()=>[i.get(e),i,e]);let c=o;if((a!==i||s!==e)&&(l(),c=i.get(e)),m.useEffect(()=>{const d=i.sub(e,()=>{if(r)try{const f=i.get(e);xT(f)&&wT(Yq(f,()=>i.get(e)))}catch{}if(typeof n=="number"){setTimeout(l,n);return}l()});return l(),d},[i,e,n,r]),m.useDebugValue(c),xT(c)){const d=Yq(c,()=>i.get(e));return r&&wT(d),s7e(d)}return c}function Ee(e,t){const n=Gq();return m.useCallback((...r)=>{if((o7e?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return n.set(e,...r)},[n,e])}function Vl(e,t){return[X(e),Ee(e)]}var Kq=Symbol.for("immer-nothing"),Xq=Symbol.for("immer-draftable"),Vn=Symbol.for("immer-state");function rl(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var By=Object.getPrototypeOf;function ng(e){return!!e&&!!e[Vn]}function td(e){var t;return e?Qq(e)||Array.isArray(e)||!!e[Xq]||!!((t=e.constructor)!=null&&t[Xq])||Wy(e)||t3(e):!1}var l7e=Object.prototype.constructor.toString(),Jq=new WeakMap;function Qq(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let r=Jq.get(n);return r===void 0&&(r=Function.toString.call(n),Jq.set(n,r)),r===l7e}function Uy(e,t,n=!0){e3(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,i)=>t(i,r,e))}function e3(e){const t=e[Vn];return t?t.type_:Array.isArray(e)?1:Wy(e)?2:t3(e)?3:0}function ST(e,t){return e3(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function eG(e,t,n){const r=e3(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function u7e(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Wy(e){return e instanceof Map}function t3(e){return e instanceof Set}function io(e){return e.copy_||e.base_}function CT(e,t){if(Wy(e))return new Map(e);if(t3(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=Qq(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[Vn];let i=Reflect.ownKeys(r);for(let o=0;o1&&Object.defineProperties(e,{set:n3,add:n3,clear:n3,delete:n3}),Object.freeze(e),t&&Object.values(e).forEach(n=>jT(n,!0))),e}function c7e(){rl(2)}var n3={value:c7e};function r3(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var TT={};function cp(e){const t=TT[e];return t||rl(0,e),t}function d7e(e,t){TT[e]||(TT[e]=t)}var Vy;function i3(){return Vy}function f7e(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function tG(e,t){t&&(cp("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function IT(e){ET(e),e.drafts_.forEach(h7e),e.drafts_=null}function ET(e){e===Vy&&(Vy=e.parent_)}function nG(e){return Vy=f7e(Vy,e)}function h7e(e){const t=e[Vn];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rG(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[Vn].modified_&&(IT(t),rl(4)),td(e)&&(e=o3(t,e),t.parent_||a3(t,e)),t.patches_&&cp("Patches").generateReplacementPatches_(n[Vn].base_,e,t.patches_,t.inversePatches_)):e=o3(t,n,[]),IT(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Kq?e:void 0}function o3(e,t,n){if(r3(t))return t;const r=e.immer_.shouldUseStrictIteration(),i=t[Vn];if(!i)return Uy(t,(o,a)=>iG(e,i,t,o,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return a3(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const o=i.copy_;let a=o,s=!1;i.type_===3&&(a=new Set(o),o.clear(),s=!0),Uy(a,(l,c)=>iG(e,i,o,l,c,n,s),r),a3(e,o,!1),n&&e.patches_&&cp("Patches").generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function iG(e,t,n,r,i,o,a){if(i==null||typeof i!="object"&&!a)return;const s=r3(i);if(!(s&&!a)){if(ng(i)){const l=o&&t&&t.type_!==3&&!ST(t.assigned_,r)?o.concat(r):void 0,c=o3(e,i,l);if(eG(n,r,c),ng(c))e.canAutoFreeze_=!1;else return}else a&&n.add(i);if(td(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;o3(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&(Wy(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&a3(e,i)}}}function a3(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&jT(t,n)}function p7e(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:i3(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,o=NT;n&&(i=[r],o=Hy);const{revoke:a,proxy:s}=Proxy.revocable(i,o);return r.draft_=s,r.revoke_=a,s}var NT={get(e,t){if(t===Vn)return e;const n=io(e);if(!ST(n,t))return m7e(e,n,t);const r=n[t];return e.finalized_||!td(r)?r:r===$T(e.base_,t)?(MT(e),e.copy_[t]=Zy(r,e)):r},has(e,t){return t in io(e)},ownKeys(e){return Reflect.ownKeys(io(e))},set(e,t,n){const r=oG(io(e),t);if(r!=null&&r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=$T(io(e),t),o=i==null?void 0:i[Vn];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(u7e(n,i)&&(n!==void 0||ST(e.base_,t)))return!0;MT(e),nd(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return $T(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,MT(e),nd(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=io(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){rl(11)},getPrototypeOf(e){return By(e.base_)},setPrototypeOf(){rl(12)}},Hy={};Uy(NT,(e,t)=>{Hy[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),Hy.deleteProperty=function(e,t){return Hy.set.call(this,e,t,void 0)},Hy.set=function(e,t,n){return NT.set.call(this,e[0],t,n,e[0])};function $T(e,t){const n=e[Vn];return(n?io(n):e)[t]}function m7e(e,t,n){var i;const r=oG(t,n);return r?"value"in r?r.value:(i=r.get)==null?void 0:i.call(e.draft_):void 0}function oG(e,t){if(!(t in e))return;let n=By(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=By(n)}}function nd(e){e.modified_||(e.modified_=!0,e.parent_&&nd(e.parent_))}function MT(e){e.copy_||(e.copy_=CT(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var g7e=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const o=n;n=t;const a=this;return function(s=o,...l){return a.produce(s,c=>n.call(this,c,...l))}}typeof n!="function"&&rl(6),r!==void 0&&typeof r!="function"&&rl(7);let i;if(td(t)){const o=nG(this),a=Zy(t,void 0);let s=!0;try{i=n(a),s=!1}finally{s?IT(o):ET(o)}return tG(o,r),rG(i,o)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===Kq&&(i=void 0),this.autoFreeze_&&jT(i,!0),r){const o=[],a=[];cp("Patches").generateReplacementPatches_(t,i,o,a),r(o,a)}return i}else rl(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(o,...a)=>this.produceWithPatches(o,s=>t(s,...a));let r,i;return[this.produce(t,n,(o,a)=>{r=o,i=a}),r,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){td(e)||rl(8),ng(e)&&(e=v7e(e));const t=nG(this),n=Zy(e,void 0);return n[Vn].isManual_=!0,ET(t),n}finishDraft(e,t){const n=e&&e[Vn];(!n||!n.isManual_)&&rl(9);const{scope_:r}=n;return tG(r,t),rG(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const r=cp("Patches").applyPatches_;return ng(e)?r(e,t):this.produce(e,i=>r(i,t))}};function Zy(e,t){const n=Wy(e)?cp("MapSet").proxyMap_(e,t):t3(e)?cp("MapSet").proxySet_(e,t):p7e(e,t);return(t?t.scope_:i3()).drafts_.push(n),n}function v7e(e){return ng(e)||rl(10,e),aG(e)}function aG(e){if(!td(e)||r3(e))return e;const t=e[Vn];let n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=CT(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=CT(e,!0);return Uy(n,(i,o)=>{eG(n,i,aG(o))},r),t&&(t.finalized_=!1),n}function y7e(){class e extends Map{constructor(l,c){super(),this[Vn]={type_:2,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:l,draft_:this,isManual_:!1,revoked_:!1}}get size(){return io(this[Vn]).size}has(l){return io(this[Vn]).has(l)}set(l,c){const d=this[Vn];return a(d),(!io(d).has(l)||io(d).get(l)!==c)&&(n(d),nd(d),d.assigned_.set(l,!0),d.copy_.set(l,c),d.assigned_.set(l,!0)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),n(c),nd(c),c.base_.has(l)?c.assigned_.set(l,!1):c.assigned_.delete(l),c.copy_.delete(l),!0}clear(){const l=this[Vn];a(l),io(l).size&&(n(l),nd(l),l.assigned_=new Map,Uy(l.base_,c=>{l.assigned_.set(c,!1)}),l.copy_.clear())}forEach(l,c){const d=this[Vn];io(d).forEach((f,p,v)=>{l.call(c,this.get(p),p,this)})}get(l){const c=this[Vn];a(c);const d=io(c).get(l);if(c.finalized_||!td(d)||d!==c.base_.get(l))return d;const f=Zy(d,c);return n(c),c.copy_.set(l,f),f}keys(){return io(this[Vn]).keys()}values(){const l=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{const c=l.next();return c.done?c:{done:!1,value:this.get(c.value)}}}}entries(){const l=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{const c=l.next();if(c.done)return c;const d=this.get(c.value);return{done:!1,value:[c.value,d]}}}}[Symbol.iterator](){return this.entries()}}function t(s,l){return new e(s,l)}function n(s){s.copy_||(s.assigned_=new Map,s.copy_=new Map(s.base_))}class r extends Set{constructor(l,c){super(),this[Vn]={type_:3,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,base_:l,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return io(this[Vn]).size}has(l){const c=this[Vn];return a(c),c.copy_?!!(c.copy_.has(l)||c.drafts_.has(l)&&c.copy_.has(c.drafts_.get(l))):c.base_.has(l)}add(l){const c=this[Vn];return a(c),this.has(l)||(o(c),nd(c),c.copy_.add(l)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),o(c),nd(c),c.copy_.delete(l)||(c.drafts_.has(l)?c.copy_.delete(c.drafts_.get(l)):!1)}clear(){const l=this[Vn];a(l),io(l).size&&(o(l),nd(l),l.copy_.clear())}values(){const l=this[Vn];return a(l),o(l),l.copy_.values()}entries(){const l=this[Vn];return a(l),o(l),l.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(l,c){const d=this.values();let f=d.next();for(;!f.done;)l.call(c,f.value,f.value,this),f=d.next()}}function i(s,l){return new r(s,l)}function o(s){s.copy_||(s.copy_=new Set,s.base_.forEach(l=>{if(td(l)){const c=Zy(l,s);s.drafts_.set(l,c),s.copy_.add(c)}else s.copy_.add(l)}))}function a(s){s.revoked_&&rl(3,JSON.stringify(io(s)))}d7e("MapSet",{proxyMap_:t,proxySet_:i})}var b7e=new g7e,sG=b7e.produce;function Co(e){const t=fe(e,(n,r,i)=>r(t,sG(n(t),typeof i=="function"?i:()=>i)));return t}function lG(e){const t=fe(e);let n;return fe(r=>r(t),(r,i,o)=>{n!==void 0&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{n=void 0,i(t,o)})})}function _7e(e=6e4){const t=Co({});return n=>fe(r=>n==null?!1:!!r(t)[n],(r,i)=>{if(n==null)return;const o=setTimeout(()=>{i(t,a=>{delete a[n]})},e);i(t,a=>{a[n]&&clearTimeout(a[n]),a[n]=o})})}const LT={values:[],history:[]},uG=fe(void 0),qy=fe(void 0),cG=fe(void 0),dp=fe(void 0),dG=fe(void 0),rg=fe(void 0),s3=fe(void 0),fG=fe(void 0),hG=fe(void 0),pG=fe(void 0),mG=fe(void 0),fp=fe(void 0),gG=fe(void 0);fe(void 0);const x7e=fe(void 0),vG=fe(void 0),RT=fe(void 0),yG=fe(void 0),Gy=fe(void 0),bG=fe(void 0),_G=fe(void 0),OT=fe(void 0),PT=fe(void 0),xG=fe(LT),wG=fe(LT),kG=lG(void 0),SG=fe(void 0),CG=fe(void 0),l3=fe(void 0),jG=fe(LT),Hl=fe(void 0),Zu=fe(void 0),TG=lG(void 0),w7e=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"],k7e=Object.fromEntries(w7e.map(e=>[e,0])),IG=fe({value:k7e,history:[]}),EG=fe(void 0),NG=fe(void 0),$G=fe(void 0),MG=fe(void 0),zT=fe(void 0),LG=fe(void 0),u3=fe(void 0),RG=fe(void 0),OG=fe(void 0),c3=fe(void 0),S7e="_outer-container_13cf2_1",C7e="_inner-container_13cf2_12",PG={outerContainer:S7e,innerContainer:C7e},zG=Object.freeze({status:"aborted"});function be(e,t,n){function r(s,l){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:l,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,l);const c=a.prototype,d=Object.keys(c);for(let f=0;f{var l,c;return n!=null&&n.Parent&&s instanceof n.Parent?!0:(c=(l=s==null?void 0:s._zod)==null?void 0:l.traits)==null?void 0:c.has(e)}}),Object.defineProperty(a,"name",{value:e}),a}const DG=Symbol("zod_brand");class hp extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class d3 extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const f3={};function da(e){return e&&Object.assign(f3,e),f3}function j7e(e){return e}function T7e(e){return e}function I7e(e){}function E7e(e){throw new Error}function N7e(e){}function DT(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,r])=>t.indexOf(+n)===-1).map(([n,r])=>r)}function qe(e,t="|"){return e.map(n=>Lt(n)).join(t)}function h3(e,t){return typeof t=="bigint"?t.toString():t}function Yy(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function pp(e){return e==null}function p3(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function AG(e,t){const n=(e.toString().split(".")[1]||"").length,r=t.toString();let i=(r.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(r)){const l=r.match(/\d?e-(\d?)/);l!=null&&l[1]&&(i=Number.parseInt(l[1]))}const o=n>i?n:i,a=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(t.toFixed(o).replace(".",""));return a%s/10**o}const FG=Symbol("evaluating");function vn(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==FG)return r===void 0&&(r=FG,r=n()),r},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function $7e(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Df(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function rd(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function M7e(e){return rd(e._zod.def)}function L7e(e,t){return t?t.reduce((n,r)=>n==null?void 0:n[r],e):e}function R7e(e){const t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{const i={};for(let o=0;o{};function ig(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const UG=Yy(()=>{var e;if(typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function mp(e){if(ig(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(ig(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function m3(e){return mp(e)?{...e}:Array.isArray(e)?[...e]:e}function P7e(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}const z7e=e=>{const t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},g3=new Set(["string","number","symbol"]),WG=new Set(["string","number","bigint","boolean","symbol","undefined"]);function id(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function il(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n!=null&&n.parent)&&(r._zod.parent=e),r}function Pe(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function D7e(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,o){return t??(t=e()),Reflect.set(t,r,i,o)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function Lt(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function VG(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const HG={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ZG={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function qG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(i[o]=n.shape[o])}return Df(this,"shape",i),i},checks:[]});return il(e,r)}function GG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&delete i[o]}return Df(this,"shape",i),i},checks:[]});return il(e,r)}function YG(e,t){if(!mp(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");const r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return Df(this,"shape",i),i},checks:[]});return il(e,r)}function KG(e,t){if(!mp(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n={...e._zod.def,get shape(){const r={...e._zod.def.shape,...t};return Df(this,"shape",r),r},checks:e._zod.def.checks};return il(e,n)}function XG(e,t){const n=rd(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return Df(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return il(e,n)}function JG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=e?new e({type:"optional",innerType:i[a]}):i[a])}else for(const a in i)o[a]=e?new e({type:"optional",innerType:i[a]}):i[a];return Df(this,"shape",o),o},checks:[]});return il(t,r)}function QG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=new e({type:"nonoptional",innerType:i[a]}))}else for(const a in i)o[a]=new e({type:"nonoptional",innerType:i[a]});return Df(this,"shape",o),o},checks:[]});return il(t,r)}function gp(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Ky(e){return typeof e=="string"?e:e==null?void 0:e.message}function ql(e,t,n){var i,o,a,s,l,c;const r={...e,path:e.path??[]};if(!e.message){const d=Ky((a=(o=(i=e.inst)==null?void 0:i._zod.def)==null?void 0:o.error)==null?void 0:a.call(o,e))??Ky((s=t==null?void 0:t.error)==null?void 0:s.call(t,e))??Ky((l=n.customError)==null?void 0:l.call(n,e))??Ky((c=n.localeError)==null?void 0:c.call(n,e))??"Invalid input";r.message=d}return delete r.inst,delete r.continue,t!=null&&t.reportInput||delete r.input,r}function v3(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function y3(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function og(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function A7e(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function eY(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;rt.toString(16).padStart(2,"0")).join("")}class V7e{constructor(...t){}}const nY=Object.freeze(Object.defineProperty({__proto__:null,BIGINT_FORMAT_RANGES:ZG,Class:V7e,NUMBER_FORMAT_RANGES:HG,aborted:gp,allowsEval:UG,assert:N7e,assertEqual:j7e,assertIs:I7e,assertNever:E7e,assertNotEqual:T7e,assignProp:Df,base64ToUint8Array:eY,base64urlToUint8Array:F7e,cached:Yy,captureStackTrace:FT,cleanEnum:A7e,cleanRegex:p3,clone:il,cloneDef:M7e,createTransparentProxy:D7e,defineLazy:vn,esc:AT,escapeRegex:id,extend:YG,finalizeIssue:ql,floatSafeRemainder:AG,getElementAtPath:L7e,getEnumValues:DT,getLengthableOrigin:y3,getParsedType:z7e,getSizableOrigin:v3,hexToUint8Array:U7e,isObject:ig,isPlainObject:mp,issue:og,joinValues:qe,jsonStringifyReplacer:h3,merge:XG,mergeDefs:rd,normalizeParams:Pe,nullish:pp,numKeys:P7e,objectClone:$7e,omit:GG,optionalKeys:VG,partial:JG,pick:qG,prefixIssues:Zl,primitiveTypes:WG,promiseAllObject:R7e,propertyKeyTypes:g3,randomString:O7e,required:QG,safeExtend:KG,shallowClone:m3,slugify:BG,stringifyPrimitive:Lt,uint8ArrayToBase64:tY,uint8ArrayToBase64url:B7e,uint8ArrayToHex:W7e,unwrapMessage:Ky},Symbol.toStringTag,{value:"Module"})),rY=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,h3,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},BT=be("$ZodError",rY),vs=be("$ZodError",rY,{Parent:Error});function UT(e,t=n=>n.message){const n={},r=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function WT(e,t=n=>n.message){const n={_errors:[]},r=i=>{for(const o of i.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>r({issues:a}));else if(o.code==="invalid_key")r({issues:o.issues});else if(o.code==="invalid_element")r({issues:o.issues});else if(o.path.length===0)n._errors.push(t(o));else{let a=n,s=0;for(;sn.message){const n={errors:[]},r=(i,o=[])=>{var a,s;for(const l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(c=>r({issues:c},l.path));else if(l.code==="invalid_key")r({issues:l.issues},l.path);else if(l.code==="invalid_element")r({issues:l.issues},l.path);else{const c=[...o,...l.path];if(c.length===0){n.errors.push(t(l));continue}let d=n,f=0;for(;ftypeof r=="object"?r.key:r);for(const r of n)typeof r=="number"?t.push(`[${r}]`):typeof r=="symbol"?t.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?t.push(`[${JSON.stringify(r)}]`):(t.length&&t.push("."),t.push(r));return t.join("")}function aY(e){var r;const t=[],n=[...e.issues].sort((i,o)=>(i.path??[]).length-(o.path??[]).length);for(const i of n)t.push(`\u2716 ${i.message}`),(r=i.path)!=null&&r.length&&t.push(` \u2192 at ${oY(i.path)}`);return t.join(` -`)}const Xy=e=>(t,n,r,i)=>{const o=r?Object.assign(r,{async:!1}):{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new hp;if(a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw FT(s,i==null?void 0:i.callee),s}return a.value},VT=Xy(vs),Jy=e=>async(t,n,r,i)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw FT(s,i==null?void 0:i.callee),s}return a.value},HT=Jy(vs),Qy=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new hp;return o.issues.length?{success:!1,error:new(e??BT)(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},sY=Qy(vs),eb=e=>async(t,n,r)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},lY=eb(vs),ZT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Xy(e)(t,n,i)},H7e=ZT(vs),qT=e=>(t,n,r)=>Xy(e)(t,n,r),Z7e=qT(vs),GT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Jy(e)(t,n,i)},q7e=GT(vs),YT=e=>async(t,n,r)=>Jy(e)(t,n,r),G7e=YT(vs),KT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Qy(e)(t,n,i)},Y7e=KT(vs),XT=e=>(t,n,r)=>Qy(e)(t,n,r),K7e=XT(vs),JT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return eb(e)(t,n,i)},X7e=JT(vs),QT=e=>async(t,n,r)=>eb(e)(t,n,r),J7e=QT(vs),uY=/^[cC][^\s-]{8,}$/,cY=/^[0-9a-z]+$/,dY=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fY=/^[0-9a-vA-V]{20}$/,hY=/^[A-Za-z0-9]{27}$/,pY=/^[a-zA-Z0-9_-]{21}$/,mY=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Q7e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,gY=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ag=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,eTe=ag(4),tTe=ag(6),nTe=ag(7),vY=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,rTe=/^[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])?)*$/,iTe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,yY=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,oTe=yY,aTe=/^[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])?)*$/,sTe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function bY(){return new RegExp(sTe,"u")}const _Y=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,xY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,wY=e=>{const t=id(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},kY=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,SY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,CY=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,eI=/^[A-Za-z0-9_-]*$/,jY=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,TY=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,IY=/^\+(?:[0-9]){6,14}[0-9]$/,EY="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",NY=new RegExp(`^${EY}$`);function $Y(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function MY(e){return new RegExp(`^${$Y(e)}$`)}function LY(e){const t=$Y({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${EY}T(?:${r})$`)}const RY=e=>{const t=e?`[\\s\\S]{${(e==null?void 0:e.minimum)??0},${(e==null?void 0:e.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},OY=/^-?\d+n?$/,PY=/^-?\d+$/,zY=/^-?\d+(?:\.\d+)?/,DY=/^(?:true|false)$/i,AY=/^null$/i,FY=/^undefined$/i,BY=/^[^A-Z]*$/,UY=/^[^a-z]*$/,WY=/^[0-9a-fA-F]*$/;function tb(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function nb(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}const lTe=/^[0-9a-fA-F]{32}$/,uTe=tb(22,"=="),cTe=nb(22),dTe=/^[0-9a-fA-F]{40}$/,fTe=tb(27,"="),hTe=nb(27),pTe=/^[0-9a-fA-F]{64}$/,mTe=tb(43,"="),gTe=nb(43),vTe=/^[0-9a-fA-F]{96}$/,yTe=tb(64,""),bTe=nb(64),_Te=/^[0-9a-fA-F]{128}$/,xTe=tb(86,"=="),wTe=nb(86),tI=Object.freeze(Object.defineProperty({__proto__:null,base64:CY,base64url:eI,bigint:OY,boolean:DY,browserEmail:aTe,cidrv4:kY,cidrv6:SY,cuid:uY,cuid2:cY,date:NY,datetime:LY,domain:TY,duration:mY,e164:IY,email:vY,emoji:bY,extendedDuration:Q7e,guid:gY,hex:WY,hostname:jY,html5Email:rTe,idnEmail:oTe,integer:PY,ipv4:_Y,ipv6:xY,ksuid:hY,lowercase:BY,mac:wY,md5_base64:uTe,md5_base64url:cTe,md5_hex:lTe,nanoid:pY,null:AY,number:zY,rfc5322Email:iTe,sha1_base64:fTe,sha1_base64url:hTe,sha1_hex:dTe,sha256_base64:mTe,sha256_base64url:gTe,sha256_hex:pTe,sha384_base64:yTe,sha384_base64url:bTe,sha384_hex:vTe,sha512_base64:xTe,sha512_base64url:wTe,sha512_hex:_Te,string:RY,time:MY,ulid:dY,undefined:FY,unicodeEmail:yY,uppercase:UY,uuid:ag,uuid4:eTe,uuid6:tTe,uuid7:nTe,xid:fY},Symbol.toStringTag,{value:"Module"})),qr=be("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),VY={number:"number",bigint:"bigint",object:"date"},nI=be("$ZodCheckLessThan",(e,t)=>{qr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{qr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),HY=be("$ZodCheckMultipleOf",(e,t)=>{qr.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):AG(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),ZY=be("$ZodCheckNumberFormat",(e,t)=>{var a;qr.init(e,t),t.format=t.format||"float64";const n=(a=t.format)==null?void 0:a.includes("int"),r=n?"int":"number",[i,o]=HG[t.format];e._zod.onattach.push(s=>{const l=s._zod.bag;l.format=t.format,l.minimum=i,l.maximum=o,n&&(l.pattern=PY)}),e._zod.check=s=>{const l=s.value;if(n){if(!Number.isInteger(l)){s.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}lo&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:o,inst:e})}}),qY=be("$ZodCheckBigIntFormat",(e,t)=>{qr.init(e,t);const[n,r]=ZG[t.format];e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,o.minimum=n,o.maximum=r}),e._zod.check=i=>{const o=i.value;or&&i.issues.push({origin:"bigint",input:o,code:"too_big",maximum:r,inst:e})}}),GY=be("$ZodCheckMaxSize",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;i.size<=t.maximum||r.issues.push({origin:v3(i),code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),YY=be("$ZodCheckMinSize",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;i.size>=t.minimum||r.issues.push({origin:v3(i),code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),KY=be("$ZodCheckSizeEquals",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.size,i.maximum=t.size,i.size=t.size}),e._zod.check=r=>{const i=r.value,o=i.size;if(o===t.size)return;const a=o>t.size;r.issues.push({origin:v3(i),...a?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),XY=be("$ZodCheckMaxLength",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;if(i.length<=t.maximum)return;const o=y3(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),JY=be("$ZodCheckMinLength",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;if(i.length>=t.minimum)return;const o=y3(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),QY=be("$ZodCheckLengthEquals",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{const i=r.value,o=i.length;if(o===t.length)return;const a=y3(i),s=o>t.length;r.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),rb=be("$ZodCheckStringFormat",(e,t)=>{var n,r;qr.init(e,t),e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,t.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),eK=be("$ZodCheckRegex",(e,t)=>{rb.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tK=be("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=BY),rb.init(e,t)}),nK=be("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=UY),rb.init(e,t)}),rK=be("$ZodCheckIncludes",(e,t)=>{qr.init(e,t);const n=id(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),iK=be("$ZodCheckStartsWith",(e,t)=>{qr.init(e,t);const n=new RegExp(`^${id(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),oK=be("$ZodCheckEndsWith",(e,t)=>{qr.init(e,t);const n=new RegExp(`.*${id(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});function aK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues))}const sK=be("$ZodCheckProperty",(e,t)=>{qr.init(e,t),e._zod.check=n=>{const r=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(r instanceof Promise)return r.then(i=>aK(i,n,t.property));aK(r,n,t.property)}}),lK=be("$ZodCheckMimeType",(e,t)=>{qr.init(e,t);const n=new Set(t.mime);e._zod.onattach.push(r=>{r._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),uK=be("$ZodCheckOverwrite",(e,t)=>{qr.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class cK{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(` -`).filter(o=>o),r=Math.min(...n.map(o=>o.length-o.trimStart().length)),i=n.map(o=>o.slice(r)).map(o=>" ".repeat(this.indent*2)+o);for(const o of i)this.content.push(o)}compile(){const t=Function,n=this==null?void 0:this.args,r=[...((this==null?void 0:this.content)??[""]).map(i=>` ${i}`)];return new t(...n,r.join(` -`))}}const dK={major:4,minor:1,patch:13},Ut=be("$ZodType",(e,t)=>{var i;var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=dK;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const a of o._zod.onattach)a(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),(i=e._zod.deferred)==null||i.push(()=>{e._zod.run=e._zod.parse});else{const o=(s,l,c)=>{let d=gp(s),f;for(const p of l){if(p._zod.def.when){if(!p._zod.def.when(s))continue}else if(d)continue;const v=s.issues.length,_=p._zod.check(s);if(_ instanceof Promise&&(c==null?void 0:c.async)===!1)throw new hp;if(f||_ instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await _,s.issues.length!==v&&(d||(d=gp(s,v)))});else{if(s.issues.length===v)continue;d||(d=gp(s,v))}}return f?f.then(()=>s):s},a=(s,l,c)=>{if(gp(s))return s.aborted=!0,s;const d=o(l,r,c);if(d instanceof Promise){if(c.async===!1)throw new hp;return d.then(f=>e._zod.parse(f,c))}return e._zod.parse(d,c)};e._zod.run=(s,l)=>{if(l.skipChecks)return e._zod.parse(s,l);if(l.direction==="backward"){const d=e._zod.parse({value:s.value,issues:[]},{...l,skipChecks:!0});return d instanceof Promise?d.then(f=>a(f,s,l)):a(d,s,l)}const c=e._zod.parse(s,l);if(c instanceof Promise){if(l.async===!1)throw new hp;return c.then(d=>o(d,r,l))}return o(c,r,l)}}e["~standard"]={validate:o=>{var a;try{const s=sY(e,o);return s.success?{value:s.data}:{issues:(a=s.error)==null?void 0:a.issues}}catch{return lY(e,o).then(s=>{var l;return s.success?{value:s.data}:{issues:(l=s.error)==null?void 0:l.issues}})}},vendor:"zod",version:1}}),ib=be("$ZodString",(e,t)=>{var n;Ut.init(e,t),e._zod.pattern=[...((n=e==null?void 0:e._zod.bag)==null?void 0:n.patterns)??[]].pop()??RY(e._zod.bag),e._zod.parse=(r,i)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),vr=be("$ZodStringFormat",(e,t)=>{rb.init(e,t),ib.init(e,t)}),fK=be("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=gY),vr.init(e,t)}),hK=be("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ag(n))}else t.pattern??(t.pattern=ag());vr.init(e,t)}),pK=be("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=vY),vr.init(e,t)}),mK=be("$ZodURL",(e,t)=>{vr.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),gK=be("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=bY()),vr.init(e,t)}),vK=be("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=pY),vr.init(e,t)}),yK=be("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=uY),vr.init(e,t)}),bK=be("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=cY),vr.init(e,t)}),_K=be("$ZodULID",(e,t)=>{t.pattern??(t.pattern=dY),vr.init(e,t)}),xK=be("$ZodXID",(e,t)=>{t.pattern??(t.pattern=fY),vr.init(e,t)}),wK=be("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=hY),vr.init(e,t)}),kK=be("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=LY(t)),vr.init(e,t)}),SK=be("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=NY),vr.init(e,t)}),CK=be("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=MY(t)),vr.init(e,t)}),jK=be("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=mY),vr.init(e,t)}),TK=be("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=_Y),vr.init(e,t),e._zod.bag.format="ipv4"}),IK=be("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=xY),vr.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),EK=be("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=wY(t.delimiter)),vr.init(e,t),e._zod.bag.format="mac"}),NK=be("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=kY),vr.init(e,t)}),$K=be("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=SY),vr.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[i,o]=r;if(!o)throw new Error;const a=Number(o);if(`${a}`!==o)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${i}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function iI(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const MK=be("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=CY),vr.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{iI(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function LK(e){if(!eI.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return iI(n)}const RK=be("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=eI),vr.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{LK(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),OK=be("$ZodE164",(e,t)=>{t.pattern??(t.pattern=IY),vr.init(e,t)});function PK(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}const zK=be("$ZodJWT",(e,t)=>{vr.init(e,t),e._zod.check=n=>{PK(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),DK=be("$ZodCustomStringFormat",(e,t)=>{vr.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),oI=be("$ZodNumber",(e,t)=>{Ut.init(e,t),e._zod.pattern=e._zod.bag.pattern??zY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;const o=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),n}}),AK=be("$ZodNumberFormat",(e,t)=>{ZY.init(e,t),oI.init(e,t)}),aI=be("$ZodBoolean",(e,t)=>{Ut.init(e,t),e._zod.pattern=DY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),sI=be("$ZodBigInt",(e,t)=>{Ut.init(e,t),e._zod.pattern=OY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),FK=be("$ZodBigIntFormat",(e,t)=>{qY.init(e,t),sI.init(e,t)}),BK=be("$ZodSymbol",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:e}),n}}),UK=be("$ZodUndefined",(e,t)=>{Ut.init(e,t),e._zod.pattern=FY,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:e}),n}}),WK=be("$ZodNull",(e,t)=>{Ut.init(e,t),e._zod.pattern=AY,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{const i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),VK=be("$ZodAny",(e,t)=>{Ut.init(e,t),e._zod.parse=n=>n}),HK=be("$ZodUnknown",(e,t)=>{Ut.init(e,t),e._zod.parse=n=>n}),ZK=be("$ZodNever",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),qK=be("$ZodVoid",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"void",code:"invalid_type",input:i,inst:e}),n}}),GK=be("$ZodDate",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}const i=n.value,o=i instanceof Date;return o&&!Number.isNaN(i.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:i,...o?{received:"Invalid Date"}:{},inst:e}),n}});function YK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const KK=be("$ZodArray",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const o=[];for(let a=0;aYK(c,n,a))):YK(l,n,a)}return o.length?Promise.all(o).then(()=>n):n}});function b3(e,t,n,r){e.issues.length&&t.issues.push(...Zl(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function XK(e){var r,i,o,a;const t=Object.keys(e.shape);for(const s of t)if(!((a=(o=(i=(r=e.shape)==null?void 0:r[s])==null?void 0:i._zod)==null?void 0:o.traits)!=null&&a.has("$ZodType")))throw new Error(`Invalid element at key "${s}": expected a Zod schema`);const n=VG(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function JK(e,t,n,r,i,o){const a=[],s=i.keySet,l=i.catchall._zod,c=l.def.type;for(const d in t){if(s.has(d))continue;if(c==="never"){a.push(d);continue}const f=l.run({value:t[d],issues:[]},r);f instanceof Promise?e.push(f.then(p=>b3(p,n,d,t))):b3(f,n,d,t)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}const QK=be("$ZodObject",(e,t)=>{var a;if(Ut.init(e,t),!((a=Object.getOwnPropertyDescriptor(t,"shape"))!=null&&a.get)){const s=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...s};return Object.defineProperty(t,"shape",{value:l}),l}})}const n=Yy(()=>XK(t));vn(e._zod,"propValues",()=>{const s=t.shape,l={};for(const c in s){const d=s[c]._zod;if(d.values){l[c]??(l[c]=new Set);for(const f of d.values)l[c].add(f)}}return l});const r=ig,i=t.catchall;let o;e._zod.parse=(s,l)=>{o??(o=n.value);const c=s.value;if(!r(c))return s.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),s;s.value={};const d=[],f=o.shape;for(const p of o.keys){const v=f[p]._zod.run({value:c[p],issues:[]},l);v instanceof Promise?d.push(v.then(_=>b3(_,s,p,c))):b3(v,s,p,c)}return i?JK(d,c,s,l,n.value,e):d.length?Promise.all(d).then(()=>s):s}}),eX=be("$ZodObjectJIT",(e,t)=>{QK.init(e,t);const n=e._zod.parse,r=Yy(()=>XK(t)),i=f=>{const p=new cK(["shape","payload","ctx"]),v=r.value,_=x=>{const S=AT(x);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};p.write("const input = payload.value;");const y=Object.create(null);let b=0;for(const x of v.keys)y[x]=`key_${b++}`;p.write("const newResult = {};");for(const x of v.keys){const S=y[x],C=AT(x);p.write(`const ${S} = ${_(x)};`),p.write(` - if (${S}.issues.length) { - payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${C}, ...iss.path] : [${C}] - }))); - } - - - if (${S}.value === undefined) { - if (${C} in input) { - newResult[${C}] = undefined; - } - } else { - newResult[${C}] = ${S}.value; - } - - `)}p.write("payload.value = newResult;"),p.write("return payload;");const w=p.compile();return(x,S)=>w(f,x,S)};let o;const a=ig,s=!f3.jitless,l=s&&UG.value,c=t.catchall;let d;e._zod.parse=(f,p)=>{d??(d=r.value);const v=f.value;return a(v)?s&&l&&(p==null?void 0:p.async)===!1&&p.jitless!==!0?(o||(o=i(t.shape)),f=o(f,p),c?JK([],v,f,p,d,e):f):n(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),f)}});function tX(e,t,n,r){for(const o of e)if(o.issues.length===0)return t.value=o.value,t;const i=e.filter(o=>!gp(o));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(a=>ql(a,r,da())))}),t)}const lI=be("$ZodUnion",(e,t)=>{Ut.init(e,t),vn(e._zod,"optin",()=>t.options.some(i=>i._zod.optin==="optional")?"optional":void 0),vn(e._zod,"optout",()=>t.options.some(i=>i._zod.optout==="optional")?"optional":void 0),vn(e._zod,"values",()=>{if(t.options.every(i=>i._zod.values))return new Set(t.options.flatMap(i=>Array.from(i._zod.values)))}),vn(e._zod,"pattern",()=>{if(t.options.every(i=>i._zod.pattern)){const i=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${i.map(o=>p3(o.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,o)=>{if(n)return r(i,o);let a=!1;const s=[];for(const l of t.options){const c=l._zod.run({value:i.value,issues:[]},o);if(c instanceof Promise)s.push(c),a=!0;else{if(c.issues.length===0)return c;s.push(c)}}return a?Promise.all(s).then(l=>tX(l,i,e,o)):tX(s,i,e,o)}}),nX=be("$ZodDiscriminatedUnion",(e,t)=>{lI.init(e,t);const n=e._zod.parse;vn(e._zod,"propValues",()=>{const i={};for(const o of t.options){const a=o._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const[s,l]of Object.entries(a)){i[s]||(i[s]=new Set);for(const c of l)i[s].add(c)}}return i});const r=Yy(()=>{var a;const i=t.options,o=new Map;for(const s of i){const l=(a=s._zod.propValues)==null?void 0:a[t.discriminator];if(!l||l.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(const c of l){if(o.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);o.set(c,s)}}return o});e._zod.parse=(i,o)=>{const a=i.value;if(!ig(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=r.value.get(a==null?void 0:a[t.discriminator]);return s?s._zod.run(i,o):t.unionFallback?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:a,path:[t.discriminator],inst:e}),i)}}),rX=be("$ZodIntersection",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value,o=t.left._zod.run({value:i,issues:[]},r),a=t.right._zod.run({value:i,issues:[]},r);return o instanceof Promise||a instanceof Promise?Promise.all([o,a]).then(([s,l])=>iX(n,s,l)):iX(n,o,a)}});function uI(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(mp(e)&&mp(t)){const n=Object.keys(t),r=Object.keys(e).filter(o=>n.indexOf(o)!==-1),i={...e,...t};for(const o of r){const a=uI(e[o],t[o]);if(!a.valid)return{valid:!1,mergeErrorPath:[o,...a.mergeErrorPath]};i[o]=a.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r{Ut.init(e,t);const n=t.items;e._zod.parse=(r,i)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({input:o,inst:e,expected:"tuple",code:"invalid_type"}),r;r.value=[];const a=[],s=[...n].reverse().findIndex(d=>d._zod.optin!=="optional"),l=s===-1?0:n.length-s;if(!t.rest){const d=o.length>n.length,f=o.length=o.length&&c>=l)continue;const f=d._zod.run({value:o[c],issues:[]},i);f instanceof Promise?a.push(f.then(p=>_3(p,r,c))):_3(f,r,c)}if(t.rest){const d=o.slice(n.length);for(const f of d){c++;const p=t.rest._zod.run({value:f,issues:[]},i);p instanceof Promise?a.push(p.then(v=>_3(v,r,c))):_3(p,r,c)}}return a.length?Promise.all(a).then(()=>r):r}});function _3(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const oX=be("$ZodRecord",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!mp(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){s.add(typeof c=="number"?c.toString():c);const d=t.valueType._zod.run({value:i[c],issues:[]},r);d instanceof Promise?o.push(d.then(f=>{f.issues.length&&n.issues.push(...Zl(c,f.issues)),n.value[c]=f.value})):(d.issues.length&&n.issues.push(...Zl(c,d.issues)),n.value[c]=d.value)}let l;for(const c in i)s.has(c)||(l=l??[],l.push(c));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:l})}else{n.value={};for(const s of Reflect.ownKeys(i)){if(s==="__proto__")continue;const l=t.keyType._zod.run({value:s,issues:[]},r);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(l.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(d=>ql(d,r,da())),input:s,path:[s],inst:e}),n.value[l.value]=l.value;continue}const c=t.valueType._zod.run({value:i[s],issues:[]},r);c instanceof Promise?o.push(c.then(d=>{d.issues.length&&n.issues.push(...Zl(s,d.issues)),n.value[l.value]=d.value})):(c.issues.length&&n.issues.push(...Zl(s,c.issues)),n.value[l.value]=c.value)}}return o.length?Promise.all(o).then(()=>n):n}}),aX=be("$ZodMap",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:i,inst:e}),n;const o=[];n.value=new Map;for(const[a,s]of i){const l=t.keyType._zod.run({value:a,issues:[]},r),c=t.valueType._zod.run({value:s,issues:[]},r);l instanceof Promise||c instanceof Promise?o.push(Promise.all([l,c]).then(([d,f])=>{sX(d,f,n,a,i,e,r)})):sX(l,c,n,a,i,e,r)}return o.length?Promise.all(o).then(()=>n):n}});function sX(e,t,n,r,i,o,a){e.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,e.issues)):n.issues.push({code:"invalid_key",origin:"map",input:i,inst:o,issues:e.issues.map(s=>ql(s,a,da()))})),t.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:i,inst:o,key:r,issues:t.issues.map(s=>ql(s,a,da()))})),n.value.set(e.value,t.value)}const lX=be("$ZodSet",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:e,expected:"set",code:"invalid_type"}),n;const o=[];n.value=new Set;for(const a of i){const s=t.valueType._zod.run({value:a,issues:[]},r);s instanceof Promise?o.push(s.then(l=>uX(l,n))):uX(s,n)}return o.length?Promise.all(o).then(()=>n):n}});function uX(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}const cX=be("$ZodEnum",(e,t)=>{Ut.init(e,t);const n=DT(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(i=>g3.has(typeof i)).map(i=>typeof i=="string"?id(i):i.toString()).join("|")})$`),e._zod.parse=(i,o)=>{const a=i.value;return r.has(a)||i.issues.push({code:"invalid_value",values:n,input:a,inst:e}),i}}),dX=be("$ZodLiteral",(e,t)=>{if(Ut.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(r=>typeof r=="string"?id(r):r?id(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),fX=be("$ZodFile",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return i instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:i,inst:e}),n}}),hX=be("$ZodTransform",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new hp;return n.value=i,n}});function pX(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const mX=be("$ZodOptional",(e,t)=>{Ut.init(e,t),e._zod.optin="optional",e._zod.optout="optional",vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>pX(o,n.value)):pX(i,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),gX=be("$ZodNullable",(e,t)=>{Ut.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)}|null)$`):void 0}),vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),vX=be("$ZodDefault",(e,t)=>{Ut.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>yX(o,t)):yX(i,t)}});function yX(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const bX=be("$ZodPrefault",(e,t)=>{Ut.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),_X=be("$ZodNonOptional",(e,t)=>{Ut.init(e,t),vn(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>xX(o,e)):xX(i,e)}});function xX(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const wX=be("$ZodSuccess",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3("ZodSuccess");const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.issues.length===0,n)):(n.value=i.issues.length===0,n)}}),kX=be("$ZodCatch",(e,t)=>{Ut.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(a=>ql(a,r,da()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(o=>ql(o,r,da()))},input:n.value}),n.issues=[]),n)}}),SX=be("$ZodNaN",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n)}),CX=be("$ZodPipe",(e,t)=>{Ut.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const o=t.out._zod.run(n,r);return o instanceof Promise?o.then(a=>x3(a,t.in,r)):x3(o,t.in,r)}const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>x3(o,t.out,r)):x3(i,t.out,r)}});function x3(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const dI=be("$ZodCodec",(e,t)=>{Ut.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}else{const i=t.out._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}}});function w3(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){const r=t.transform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.out,n)):k3(e,r,t.out,n)}else{const r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.in,n)):k3(e,r,t.in,n)}}function k3(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}const jX=be("$ZodReadonly",(e,t)=>{Ut.init(e,t),vn(e._zod,"propValues",()=>t.innerType._zod.propValues),vn(e._zod,"values",()=>t.innerType._zod.values),vn(e._zod,"optin",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optin}),vn(e._zod,"optout",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optout}),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(TX):TX(i)}});function TX(e){return e.value=Object.freeze(e.value),e}const IX=be("$ZodTemplateLiteral",(e,t)=>{Ut.init(e,t);const n=[];for(const r of t.parts)if(typeof r=="object"&&r!==null){if(!r._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);const i=r._zod.pattern instanceof RegExp?r._zod.pattern.source:r._zod.pattern;if(!i)throw new Error(`Invalid template literal part: ${r._zod.traits}`);const o=i.startsWith("^")?1:0,a=i.endsWith("$")?i.length-1:i.length;n.push(i.slice(o,a))}else if(r===null||WG.has(typeof r))n.push(id(`${r}`));else throw new Error(`Invalid template literal part: ${r}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(r,i)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:e,expected:"template_literal",code:"invalid_type"}),r):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),r)}),EX=be("$ZodFunction",(e,t)=>(Ut.init(e,t),e._def=t,e._zod.def=t,e.implement=n=>{if(typeof n!="function")throw new Error("implement() must be called with a function");return function(...r){const i=e._def.input?VT(e._def.input,r):r,o=Reflect.apply(n,this,i);return e._def.output?VT(e._def.output,o):o}},e.implementAsync=n=>{if(typeof n!="function")throw new Error("implementAsync() must be called with a function");return async function(...r){const i=e._def.input?await HT(e._def.input,r):r,o=await Reflect.apply(n,this,i);return e._def.output?await HT(e._def.output,o):o}},e._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:e}),n):(e._def.output&&e._def.output._zod.def.type==="promise"?n.value=e.implementAsync(n.value):n.value=e.implement(n.value),n),e.input=(...n)=>{const r=e.constructor;return Array.isArray(n[0])?new r({type:"function",input:new cI({type:"tuple",items:n[0],rest:n[1]}),output:e._def.output}):new r({type:"function",input:n[0],output:e._def.output})},e.output=n=>{const r=e.constructor;return new r({type:"function",input:e._def.input,output:n})},e)),NX=be("$ZodPromise",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>Promise.resolve(n.value).then(i=>t.innerType._zod.run({value:i,issues:[]},r))}),$X=be("$ZodLazy",(e,t)=>{Ut.init(e,t),vn(e._zod,"innerType",()=>t.getter()),vn(e._zod,"pattern",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.pattern}),vn(e._zod,"propValues",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.propValues}),vn(e._zod,"optin",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optin)??void 0}),vn(e._zod,"optout",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optout)??void 0}),e._zod.parse=(n,r)=>e._zod.innerType._zod.run(n,r)}),MX=be("$ZodCustom",(e,t)=>{qr.init(e,t),Ut.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(o=>LX(o,n,r,e));LX(i,n,r,e)}});function LX(e,t,n,r){if(!e){const i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),t.issues.push(og(i))}}const kTe=()=>{const e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return i=>{switch(i.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${i.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Lt(i.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${i.prefix}"`:o.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${o.suffix}"`:o.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${o.includes}"`:o.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${o.pattern}`:`${r[o.format]??i.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${i.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${i.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${i.keys.length>1?"\u0629":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function STe(){return{localeError:kTe()}}const CTe=()=>{const e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${i.expected}, daxil olan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Lt(i.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${o.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:o.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${o.suffix}" il\u0259 bitm\u0259lidir`:o.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${o.includes}" daxil olmal\u0131d\u0131r`:o.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${o.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[o.format]??i.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${i.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${i.keys.length>1?"lar":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${i.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function jTe(){return{localeError:CTe()}}function RX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const TTe=()=>{const e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0456\u045E";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${i.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Lt(i.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=RX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.maximum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=RX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.minimum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${i.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${i.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function ITe(){return{localeError:TTe()}}const ETe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(e))return"\u043C\u0430\u0441\u0438\u0432";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},NTe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function t(r){return e[r]??null}const n={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"};return r=>{switch(r.code){case"invalid_type":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${r.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${ETe(r.input)}`;case"invalid_value":return r.values.length===1?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${Lt(r.values[0])}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.maximum.toString()} ${o.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.minimum.toString()} ${o.unit}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;if(i.format==="starts_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${i.prefix}"`;if(i.format==="ends_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${i.suffix}"`;if(i.format==="includes")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${i.includes}"`;if(i.format==="regex")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${i.pattern}`;let o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";return i.format==="emoji"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="datetime"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="date"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),i.format==="time"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="duration"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),`${o} ${n[i.format]??r.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${r.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${r.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${r.keys.length>1?"\u043E\u0432\u0435":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${r.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case"invalid_element":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${r.origin}`;default:return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};function $Te(){return{localeError:NTe()}}const MTe=()=>{const e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${i.expected}, s'ha rebut ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Valor inv\xE0lid: s'esperava ${Lt(i.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${qe(i.values," o ")}`;case"too_big":{const o=i.inclusive?"com a m\xE0xim":"menys de",a=t(i.origin);return a?`Massa gran: s'esperava que ${i.origin??"el valor"} contingu\xE9s ${o} ${i.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${i.origin??"el valor"} fos ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"com a m\xEDnim":"m\xE9s de",a=t(i.origin);return a?`Massa petit: s'esperava que ${i.origin} contingu\xE9s ${o} ${i.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${i.origin} fos ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${o.prefix}"`:o.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${o.suffix}"`:o.format==="includes"?`Format inv\xE0lid: ha d'incloure "${o.includes}"`:o.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${o.pattern}`:`Format inv\xE0lid per a ${r[o.format]??i.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${i.divisor}`;case"unrecognized_keys":return`Clau${i.keys.length>1?"s":""} no reconeguda${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${i.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${i.origin}`;default:return"Entrada inv\xE0lida"}}};function LTe(){return{localeError:MTe()}}const RTe=()=>{const e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(i))return"pole";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return i=>{switch(i.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${i.expected}, obdr\u017Eeno ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Lt(i.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${o.prefix}"`:o.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${o.suffix}"`:o.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${o.includes}"`:o.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${o.pattern}`:`Neplatn\xFD form\xE1t ${r[o.format]??i.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${i.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${qe(i.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${i.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${i.origin}`;default:return"Neplatn\xFD vstup"}}};function OTe(){return{localeError:RTe()}}const PTe=()=>{const e={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}},t={string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"tal";case"object":return Array.isArray(a)?"liste":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype&&a.constructor?a.constructor.name:"objekt"}return s},o={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return a=>{switch(a.code){case"invalid_type":return`Ugyldigt input: forventede ${r(a.expected)}, fik ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Ugyldig v\xE6rdi: forventede ${Lt(a.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`For stor: forventede ${c??"value"} ${l.verb} ${s} ${a.maximum.toString()} ${l.unit??"elementer"}`:`For stor: forventede ${c??"value"} havde ${s} ${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`For lille: forventede ${c} ${l.verb} ${s} ${a.minimum.toString()} ${l.unit}`:`For lille: forventede ${c} havde ${s} ${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Ugyldig streng: skal starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: skal ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: skal indeholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: skal matche m\xF8nsteret ${s.pattern}`:`Ugyldig ${o[s.format]??a.format}`}case"not_multiple_of":return`Ugyldigt tal: skal v\xE6re deleligt med ${a.divisor}`;case"unrecognized_keys":return`${a.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${qe(a.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8gle i ${a.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig v\xE6rdi i ${a.origin}`;default:return"Ugyldigt input"}}};function zTe(){return{localeError:PTe()}}const DTe=()=>{const e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"Zahl";case"object":{if(Array.isArray(i))return"Array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return i=>{switch(i.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${i.expected}, erhalten ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Lt(i.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ist`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ist`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ung\xFCltiger String: muss mit "${o.prefix}" beginnen`:o.format==="ends_with"?`Ung\xFCltiger String: muss mit "${o.suffix}" enden`:o.format==="includes"?`Ung\xFCltiger String: muss "${o.includes}" enthalten`:o.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${o.pattern} entsprechen`:`Ung\xFCltig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${i.divisor} sein`;case"unrecognized_keys":return`${i.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${i.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${i.origin}`;default:return"Ung\xFCltige Eingabe"}}};function ATe(){return{localeError:DTe()}}const FTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},BTe=()=>{const e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function t(r){return e[r]??null}const n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${FTe(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${Lt(r.values[0])}`:`Invalid option: expected one of ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${o.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};function OX(){return{localeError:BTe()}}const UTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"nombro";case"object":{if(Array.isArray(e))return"tabelo";if(e===null)return"senvalora";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},WTe=()=>{const e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function t(r){return e[r]??null}const n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return r=>{switch(r.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${r.expected}, ricevi\u011Dis ${UTe(r.input)}`;case"invalid_value":return r.values.length===1?`Nevalida enigo: atendi\u011Dis ${Lt(r.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()} ${o.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Tro malgranda: atendi\u011Dis ke ${r.origin} havu ${i}${r.minimum.toString()} ${o.unit}`:`Tro malgranda: atendi\u011Dis ke ${r.origin} estu ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${i.prefix}"`:i.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${i.suffix}"`:i.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${i.includes}"`:i.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${i.pattern}`:`Nevalida ${n[i.format]??r.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${r.divisor}`;case"unrecognized_keys":return`Nekonata${r.keys.length>1?"j":""} \u015Dlosilo${r.keys.length>1?"j":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${r.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${r.origin}`;default:return"Nevalida enigo"}}};function VTe(){return{localeError:WTe()}}const HTe=()=>{const e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}},t={string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"number";case"object":return Array.isArray(a)?"array":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype?a.constructor.name:"object"}return s},o={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return a=>{switch(a.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${r(a.expected)}, recibido ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Entrada inv\xE1lida: se esperaba ${Lt(a.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${s}${a.maximum.toString()} ${l.unit??"elementos"}`:`Demasiado grande: se esperaba que ${c??"valor"} fuera ${s}${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${s}${a.minimum.toString()} ${l.unit}`:`Demasiado peque\xF1o: se esperaba que ${c} fuera ${s}${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${s.prefix}"`:s.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${s.suffix}"`:s.format==="includes"?`Cadena inv\xE1lida: debe incluir "${s.includes}"`:s.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${s.pattern}`:`Inv\xE1lido ${o[s.format]??a.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${a.divisor}`;case"unrecognized_keys":return`Llave${a.keys.length>1?"s":""} desconocida${a.keys.length>1?"s":""}: ${qe(a.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${r(a.origin)}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${r(a.origin)}`;default:return"Entrada inv\xE1lida"}}};function ZTe(){return{localeError:HTe()}}const qTe=()=>{const e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0622\u0631\u0627\u06CC\u0647";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return i=>{switch(i.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${i.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${n(i.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return i.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Lt(i.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${qe(i.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:o.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:o.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${o.includes}" \u0628\u0627\u0634\u062F`:o.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${o.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[o.format]??i.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${i.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${i.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${qe(i.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${i.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${i.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function GTe(){return{localeError:qTe()}}const YTe=()=>{const e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return i=>{switch(i.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${i.expected}, oli ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Lt(i.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${o}${i.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${o}${i.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${o.prefix}"`:o.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${o.suffix}"`:o.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${o.includes}"`:o.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${o.pattern}`:`Virheellinen ${r[o.format]??i.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${i.divisor} monikerta`;case"unrecognized_keys":return`${i.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${qe(i.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function KTe(){return{localeError:YTe()}}const XTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombre";case"object":{if(Array.isArray(i))return"tableau";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : ${i.expected} attendu, ${n(i.input)} re\xE7u`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : ${Lt(i.values[0])} attendu`:`Option invalide : une valeur parmi ${qe(i.values,"|")} attendue`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Trop grand : ${i.origin??"valeur"} doit ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${i.origin??"valeur"} doit \xEAtre ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Trop petit : ${i.origin} doit ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : ${i.origin} doit \xEAtre ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function JTe(){return{localeError:XTe()}}const QTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${i.expected}, re\xE7u ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : attendu ${Lt(i.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u2264":"<",a=t(i.origin);return a?`Trop grand : attendu que ${i.origin??"la valeur"} ait ${o}${i.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${i.origin??"la valeur"} soit ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u2265":">",a=t(i.origin);return a?`Trop petit : attendu que ${i.origin} ait ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${i.origin} soit ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function eIe(){return{localeError:QTe()}}const tIe=()=>{const e={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},t={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},n=c=>c?e[c]:void 0,r=c=>{const d=n(c);return d?d.label:c??e.unknown.label},i=c=>`\u05D4${r(c)}`,o=c=>{var d;return(((d=n(c))==null?void 0:d.gender)??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"},a=c=>c?t[c]??null:null,s=c=>{const d=typeof c;switch(d){case"number":return Number.isNaN(c)?"NaN":"number";case"object":return Array.isArray(c)?"array":c===null?"null":Object.getPrototypeOf(c)!==Object.prototype&&c.constructor?c.constructor.name:"object";default:return d}},l={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}};return c=>{var d;switch(c.code){case"invalid_type":{const f=c.expected,p=r(f),v=s(c.input),_=((d=e[v])==null?void 0:d.label)??v;return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${p}, \u05D4\u05EA\u05E7\u05D1\u05DC ${_}`}case"invalid_value":{if(c.values.length===1)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${Lt(c.values[0])}`;const f=c.values.map(v=>Lt(v));if(c.values.length===2)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f[0]} \u05D0\u05D5 ${f[1]}`;const p=f[f.length-1];return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f.slice(0,-1).join(", ")} \u05D0\u05D5 ${p}`}case"too_big":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.longLabel)??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.maximum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${c.maximum}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",b=c.inclusive?`${c.maximum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${c.maximum} ${(f==null?void 0:f.unit)??""}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?"<=":"<",_=o(c.origin??"value");return f!=null&&f.unit?`${f.longLabel} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.maximum.toString()} ${f.unit}`:`${(f==null?void 0:f.longLabel)??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.maximum.toString()}`}case"too_small":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.shortLabel)??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.minimum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${c.minimum}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(c.minimum===1&&c.inclusive){const w=(c.origin,"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3");return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${w}`}const b=c.inclusive?`${c.minimum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${c.minimum} ${(f==null?void 0:f.unit)??""}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?">=":">",_=o(c.origin??"value");return f!=null&&f.unit?`${f.shortLabel} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.minimum.toString()} ${f.unit}`:`${(f==null?void 0:f.shortLabel)??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.minimum.toString()}`}case"invalid_format":{const f=c;if(f.format==="starts_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${f.prefix}"`;if(f.format==="ends_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${f.suffix}"`;if(f.format==="includes")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${f.includes}"`;if(f.format==="regex")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${f.pattern}`;const p=l[f.format],v=(p==null?void 0:p.label)??f.format,_=((p==null?void 0:p.gender)??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return`${v} \u05DC\u05D0 ${_}`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${c.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${c.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${c.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${qe(c.keys,", ")}`;case"invalid_key":return"\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${i(c.origin??"array")}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function nIe(){return{localeError:tIe()}}const rIe=()=>{const e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(i))return"t\xF6mb";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return i=>{switch(i.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${i.expected}, a kapott \xE9rt\xE9k ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Lt(i.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xFAl nagy: ${i.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${o}${i.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${i.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} m\xE9rete t\xFAl kicsi ${o}${i.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} t\xFAl kicsi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\xC9rv\xE9nytelen string: "${o.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:o.format==="ends_with"?`\xC9rv\xE9nytelen string: "${o.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:o.format==="includes"?`\xC9rv\xE9nytelen string: "${o.includes}" \xE9rt\xE9ket kell tartalmaznia`:o.format==="regex"?`\xC9rv\xE9nytelen string: ${o.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[o.format]??i.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${i.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${i.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${i.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function iIe(){return{localeError:rIe()}}const oIe=()=>{const e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak valid: diharapkan ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak valid: diharapkan ${Lt(i.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: diharapkan ${i.origin??"value"} memiliki ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${i.origin??"value"} menjadi ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: diharapkan ${i.origin} memiliki ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${i.origin} menjadi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak valid: harus dimulai dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak valid: harus berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak valid: harus menyertakan "${o.includes}"`:o.format==="regex"?`String tidak valid: harus sesuai pola ${o.pattern}`:`${r[o.format]??i.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${i.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${i.origin}`;default:return"Input tidak valid"}}};function aIe(){return{localeError:oIe()}}const sIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"n\xFAmer";case"object":{if(Array.isArray(e))return"fylki";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},lIe=()=>{const e={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function t(r){return e[r]??null}const n={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"};return r=>{switch(r.code){case"invalid_type":return`Rangt gildi: \xDE\xFA sl\xF3st inn ${sIe(r.input)} \xFEar sem \xE1 a\xF0 vera ${r.expected}`;case"invalid_value":return r.values.length===1?`Rangt gildi: gert r\xE1\xF0 fyrir ${Lt(r.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} hafi ${i}${r.maximum.toString()} ${o.unit??"hluti"}`:`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} s\xE9 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} hafi ${i}${r.minimum.toString()} ${o.unit}`:`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} s\xE9 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${i.prefix}"`:i.format==="ends_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${i.suffix}"`:i.format==="includes"?`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${i.includes}"`:i.format==="regex"?`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${i.pattern}`:`Rangt ${n[i.format]??r.format}`}case"not_multiple_of":return`R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${r.divisor}`;case"unrecognized_keys":return`\xD3\xFEekkt ${r.keys.length>1?"ir lyklar":"ur lykill"}: ${qe(r.keys,", ")}`;case"invalid_key":return`Rangur lykill \xED ${r.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi \xED ${r.origin}`;default:return"Rangt gildi"}}};function uIe(){return{localeError:lIe()}}const cIe=()=>{const e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numero";case"object":{if(Array.isArray(i))return"vettore";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input non valido: atteso ${i.expected}, ricevuto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input non valido: atteso ${Lt(i.values[0])}`:`Opzione non valida: atteso uno tra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Troppo grande: ${i.origin??"valore"} deve avere ${o}${i.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${i.origin??"valore"} deve essere ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Troppo piccolo: ${i.origin} deve avere ${o}${i.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${i.origin} deve essere ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Stringa non valida: deve iniziare con "${o.prefix}"`:o.format==="ends_with"?`Stringa non valida: deve terminare con "${o.suffix}"`:o.format==="includes"?`Stringa non valida: deve includere "${o.includes}"`:o.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${i.divisor}`;case"unrecognized_keys":return`Chiav${i.keys.length>1?"i":"e"} non riconosciut${i.keys.length>1?"e":"a"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${i.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${i.origin}`;default:return"Input non valido"}}};function dIe(){return{localeError:cIe()}}const fIe=()=>{const e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(i))return"\u914D\u5217";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${i.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${n(i.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return i.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Lt(i.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${qe(i.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{const o=i.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=t(i.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${a.unit??"\u8981\u7D20"}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{const o=i.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=t(i.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${a.unit}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${o.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${i.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${i.keys.length>1?"\u7FA4":""}: ${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function hIe(){return{localeError:fIe()}}const pIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8";case"object":{if(Array.isArray(e))return"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return{string:"\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",undefined:"undefined",bigint:"bigint",symbol:"symbol",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0"}[t]??t},mIe=()=>{const e={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function t(r){return e[r]??null}const n={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",json_string:"JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"};return r=>{switch(r.code){case"invalid_type":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${pIe(r.input)}`;case"invalid_value":return r.values.length===1?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${Lt(r.values[0])}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${qe(r.values,"|")}-\u10D3\u10D0\u10DC`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${o.verb} ${i}${r.maximum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} ${o.verb} ${i}${r.minimum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} \u10D8\u10E7\u10DD\u10E1 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.prefix}"-\u10D8\u10D7`:i.format==="ends_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.suffix}"-\u10D8\u10D7`:i.format==="includes"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${i.includes}"-\u10E1`:i.format==="regex"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${i.pattern}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${n[i.format]??r.format}`}case"not_multiple_of":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${r.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case"unrecognized_keys":return`\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${r.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${r.origin}-\u10E8\u10D8`;case"invalid_union":return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case"invalid_element":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${r.origin}-\u10E8\u10D8`;default:return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};function gIe(){return{localeError:mIe()}}const vIe=()=>{const e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(i))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(i===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return i=>{switch(i.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Lt(i.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${o.prefix}"`:o.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${o.suffix}"`:o.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${o.includes}"`:o.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${o.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${i.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${qe(i.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function PX(){return{localeError:vIe()}}function yIe(){return PX()}const bIe=()=>{const e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return i=>{switch(i.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${i.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${n(i.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return i.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Lt(i.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${qe(i.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{const o=i.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=o==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()} ${o}${a}`}case"too_small":{const o=i.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=o==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()} ${o}${a}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:o.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${o.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${r[o.format]??i.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${i.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${qe(i.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${i.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${i.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function _Ie(){return{localeError:bIe()}}const xIe=e=>ob(typeof e,e),ob=(e,t=void 0)=>{switch(e){case"number":return Number.isNaN(t)?"NaN":"skai\u010Dius";case"bigint":return"sveikasis skai\u010Dius";case"string":return"eilut\u0117";case"boolean":return"login\u0117 reik\u0161m\u0117";case"undefined":case"void":return"neapibr\u0117\u017Eta reik\u0161m\u0117";case"function":return"funkcija";case"symbol":return"simbolis";case"object":return t===void 0?"ne\u017Einomas objektas":t===null?"nulin\u0117 reik\u0161m\u0117":Array.isArray(t)?"masyvas":Object.getPrototypeOf(t)!==Object.prototype&&t.constructor?t.constructor.name:"objektas";case"null":return"nulin\u0117 reik\u0161m\u0117"}return e},ab=e=>e.charAt(0).toUpperCase()+e.slice(1);function zX(e){const t=Math.abs(e),n=t%10,r=t%100;return r>=11&&r<=19||n===0?"many":n===1?"one":"few"}const wIe=()=>{const e={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function t(r,i,o,a){const s=e[r]??null;return s===null?s:{unit:s.unit[i],verb:s.verb[a][o?"inclusive":"notInclusive"]}}const n={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"};return r=>{switch(r.code){case"invalid_type":return`Gautas tipas ${xIe(r.input)}, o tik\u0117tasi - ${ob(r.expected)}`;case"invalid_value":return r.values.length===1?`Privalo b\u016Bti ${Lt(r.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${qe(r.values,"|")} pasirinkim\u0173`;case"too_big":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.maximum)),r.inclusive??!1,"smaller");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.maximum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.maximum.toString()} ${o==null?void 0:o.unit}`}case"too_small":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.minimum)),r.inclusive??!1,"bigger");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.minimum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.minimum.toString()} ${o==null?void 0:o.unit}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Eilut\u0117 privalo prasid\u0117ti "${i.prefix}"`:i.format==="ends_with"?`Eilut\u0117 privalo pasibaigti "${i.suffix}"`:i.format==="includes"?`Eilut\u0117 privalo \u012Ftraukti "${i.includes}"`:i.format==="regex"?`Eilut\u0117 privalo atitikti ${i.pattern}`:`Neteisingas ${n[i.format]??r.format}`}case"not_multiple_of":return`Skai\u010Dius privalo b\u016Bti ${r.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpa\u017Eint${r.keys.length>1?"i":"as"} rakt${r.keys.length>1?"ai":"as"}: ${qe(r.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga \u012Fvestis";case"invalid_element":{const i=ob(r.origin);return`${ab(i??r.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return"Klaidinga \u012Fvestis"}}};function kIe(){return{localeError:wIe()}}const SIe=()=>{const e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(i))return"\u043D\u0438\u0437\u0430";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return i=>{switch(i.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Invalid input: expected ${Lt(i.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${i.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${i.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function CIe(){return{localeError:SIe()}}const jIe=()=>{const e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombor";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak sah: dijangka ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak sah: dijangka ${Lt(i.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: dijangka ${i.origin??"nilai"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${i.origin??"nilai"} adalah ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: dijangka ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${i.origin} adalah ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak sah: mesti bermula dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak sah: mesti mengandungi "${o.includes}"`:o.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${o.pattern}`:`${r[o.format]??i.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${i.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${i.origin}`;default:return"Input tidak sah"}}};function TIe(){return{localeError:jIe()}}const IIe=()=>{const e={string:{unit:"tekens",verb:"te hebben"},file:{unit:"bytes",verb:"te hebben"},array:{unit:"elementen",verb:"te hebben"},set:{unit:"elementen",verb:"te hebben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"getal";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return i=>{switch(i.code){case"invalid_type":return`Ongeldige invoer: verwacht ${i.expected}, ontving ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ongeldige invoer: verwacht ${Lt(i.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Te groot: verwacht dat ${i.origin??"waarde"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elementen"}`:`Te groot: verwacht dat ${i.origin??"waarde"} ${o}${i.maximum.toString()} is`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Te klein: verwacht dat ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Te klein: verwacht dat ${i.origin} ${o}${i.minimum.toString()} is`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ongeldige tekst: moet met "${o.prefix}" beginnen`:o.format==="ends_with"?`Ongeldige tekst: moet op "${o.suffix}" eindigen`:o.format==="includes"?`Ongeldige tekst: moet "${o.includes}" bevatten`:o.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${o.pattern}`:`Ongeldig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${i.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${i.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${i.origin}`;default:return"Ongeldige invoer"}}};function EIe(){return{localeError:IIe()}}const NIe=()=>{const e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"tall";case"object":{if(Array.isArray(i))return"liste";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Ugyldig input: forventet ${i.expected}, fikk ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ugyldig verdi: forventet ${Lt(i.values[0])}`:`Ugyldig valg: forventet en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${o.prefix}"`:o.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${o.suffix}"`:o.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${o.includes}"`:o.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${o.pattern}`:`Ugyldig ${r[o.format]??i.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${i.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${i.origin}`;default:return"Ugyldig input"}}};function $Ie(){return{localeError:NIe()}}const MIe=()=>{const e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numara";case"object":{if(Array.isArray(i))return"saf";if(i===null)return"gayb";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return i=>{switch(i.code){case"invalid_type":return`F\xE2sit giren: umulan ${i.expected}, al\u0131nan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`F\xE2sit giren: umulan ${Lt(i.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{const o=i;return o.format==="starts_with"?`F\xE2sit metin: "${o.prefix}" ile ba\u015Flamal\u0131.`:o.format==="ends_with"?`F\xE2sit metin: "${o.suffix}" ile bitmeli.`:o.format==="includes"?`F\xE2sit metin: "${o.includes}" ihtiv\xE2 etmeli.`:o.format==="regex"?`F\xE2sit metin: ${o.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[o.format]??i.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${i.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${i.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function LIe(){return{localeError:MIe()}}const RIe=()=>{const e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0627\u0631\u06D0";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return i=>{switch(i.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${i.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${n(i.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return i.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Lt(i.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${qe(i.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0648\u064A`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0648\u064A`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:o.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:o.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${o.includes}" \u0648\u0644\u0631\u064A`:o.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${o.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[o.format]??i.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${i.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${i.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${i.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${i.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function OIe(){return{localeError:RIe()}}const PIe=()=>{const e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"liczba";case"object":{if(Array.isArray(i))return"tablica";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return i=>{switch(i.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${i.expected}, otrzymano ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Lt(i.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${o.prefix}"`:o.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${o.suffix}"`:o.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${o.includes}"`:o.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${o.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[o.format]??i.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${i.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${i.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${i.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function zIe(){return{localeError:PIe()}}const DIe=()=>{const e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(i))return"array";if(i===null)return"nulo";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${i.expected}, recebido ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entrada inv\xE1lida: esperado ${Lt(i.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Muito grande: esperado que ${i.origin??"valor"} tivesse ${o}${i.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${i.origin??"valor"} fosse ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Muito pequeno: esperado que ${i.origin} tivesse ${o}${i.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${i.origin} fosse ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${o.prefix}"`:o.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${o.suffix}"`:o.format==="includes"?`Texto inv\xE1lido: deve incluir "${o.includes}"`:o.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${o.pattern}`:`${r[o.format]??i.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${i.divisor}`;case"unrecognized_keys":return`Chave${i.keys.length>1?"s":""} desconhecida${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${i.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${i.origin}`;default:return"Campo inv\xE1lido"}}};function AIe(){return{localeError:DIe()}}function DX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const FIe=()=>{const e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${i.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Lt(i.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.maximum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.minimum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${i.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0438":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${i.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function BIe(){return{localeError:FIe()}}const UIe=()=>{const e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(i))return"tabela";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return i=>{switch(i.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${i.expected}, prejeto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Lt(i.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} imelo ${o}${i.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${i.origin} imelo ${o}${i.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${o.prefix}"`:o.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${o.suffix}"`:o.format==="includes"?`Neveljaven niz: mora vsebovati "${o.includes}"`:o.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${o.pattern}`:`Neveljaven ${r[o.format]??i.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${i.divisor}`;case"unrecognized_keys":return`Neprepoznan${i.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${i.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${i.origin}`;default:return"Neveljaven vnos"}}};function WIe(){return{localeError:UIe()}}const VIe=()=>{const e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"antal";case"object":{if(Array.isArray(i))return"lista";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return i=>{switch(i.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${i.expected}, fick ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Lt(i.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${o.prefix}"`:o.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${o.suffix}"`:o.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${o.includes}"`:o.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${o.pattern}"`:`Ogiltig(t) ${r[o.format]??i.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${i.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${i.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function HIe(){return{localeError:VIe()}}const ZIe=()=>{const e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(i))return"\u0B85\u0BA3\u0BBF";if(i===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Lt(i.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${qe(i.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${o.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${i.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${i.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function qIe(){return{localeError:ZIe()}}const GIe=()=>{const e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(i))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(i===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return i=>{switch(i.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${i.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Lt(i.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${o.prefix}"`:o.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${o.suffix}"`:o.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${o.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:o.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${o.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${i.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function YIe(){return{localeError:GIe()}}const KIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},XIe=()=>{const e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function t(r){return e[r]??null}const n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return r=>{switch(r.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${r.expected}, al\u0131nan ${KIe(r.input)}`;case"invalid_value":return r.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Lt(r.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()} ${o.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()} ${o.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Ge\xE7ersiz metin: "${i.prefix}" ile ba\u015Flamal\u0131`:i.format==="ends_with"?`Ge\xE7ersiz metin: "${i.suffix}" ile bitmeli`:i.format==="includes"?`Ge\xE7ersiz metin: "${i.includes}" i\xE7ermeli`:i.format==="regex"?`Ge\xE7ersiz metin: ${i.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${n[i.format]??r.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${r.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${r.keys.length>1?"lar":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`${r.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${r.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function JIe(){return{localeError:XIe()}}const QIe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${i.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Lt(i.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} \u0431\u0443\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0456":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${i.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function AX(){return{localeError:QIe()}}function eEe(){return AX()}const tEe=()=>{const e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(i))return"\u0622\u0631\u06D2";if(i===null)return"\u0646\u0644";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return i=>{switch(i.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${i.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${n(i.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return i.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Lt(i.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${qe(i.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${o}${i.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u06D2 ${o}${i.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u0627 ${o}${i.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${o.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${i.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${i.keys.length>1?"\u0632":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function nEe(){return{localeError:tEe()}}const rEe=()=>{const e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(i))return"m\u1EA3ng";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return i=>{switch(i.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${i.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Lt(i.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${o.prefix}"`:o.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${o.suffix}"`:o.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${o.includes}"`:o.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${o.pattern}`:`${r[o.format]??i.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${i.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${qe(i.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function iEe(){return{localeError:rEe()}}const oEe=()=>{const e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(i))return"\u6570\u7EC4";if(i===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${i.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Lt(i.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.prefix}" \u5F00\u5934`:o.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.suffix}" \u7ED3\u5C3E`:o.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${o.pattern}`:`\u65E0\u6548${r[o.format]??i.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${i.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${i.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function aEe(){return{localeError:oEe()}}const sEe=()=>{const e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${i.expected}\uFF0C\u4F46\u6536\u5230 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Lt(i.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.prefix}" \u958B\u982D`:o.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.suffix}" \u7D50\u5C3E`:o.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${o.pattern}`:`\u7121\u6548\u7684 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${i.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${i.keys.length>1?"\u5011":""}\uFF1A${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function lEe(){return{localeError:sEe()}}const uEe=()=>{const e={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\u1ECD\u0301mb\xE0";case"object":{if(Array.isArray(i))return"akop\u1ECD";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"};return i=>{switch(i.code){case"invalid_type":return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${i.expected}, \xE0m\u1ECD\u0300 a r\xED ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${Lt(i.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin??"iye"} ${a.verb} ${o}${i.maximum} ${a.unit}`:`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.maximum}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin} ${a.verb} ${o}${i.minimum} ${a.unit}`:`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.minimum}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${o.prefix}"`:o.format==="ends_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${o.suffix}"`:o.format==="includes"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${o.includes}"`:o.format==="regex"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${o.pattern}`:`A\u1E63\xEC\u1E63e: ${r[o.format]??i.format}`}case"not_multiple_of":return`N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${i.divisor}`;case"unrecognized_keys":return`B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${qe(i.keys,", ")}`;case"invalid_key":return`B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;case"invalid_union":return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case"invalid_element":return`Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;default:return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};function cEe(){return{localeError:uEe()}}const FX=Object.freeze(Object.defineProperty({__proto__:null,ar:STe,az:jTe,be:ITe,bg:$Te,ca:LTe,cs:OTe,da:zTe,de:ATe,en:OX,eo:VTe,es:ZTe,fa:GTe,fi:KTe,fr:JTe,frCA:eIe,he:nIe,hu:iIe,id:aIe,is:uIe,it:dIe,ja:hIe,ka:gIe,kh:yIe,km:PX,ko:_Ie,lt:kIe,mk:CIe,ms:TIe,nl:EIe,no:$Ie,ota:LIe,pl:zIe,ps:OIe,pt:AIe,ru:BIe,sl:WIe,sv:HIe,ta:qIe,th:YIe,tr:JIe,ua:eEe,uk:AX,ur:nEe,vi:iEe,yo:cEe,zhCN:aEe,zhTW:lEe},Symbol.toStringTag,{value:"Module"}));var BX;const UX=Symbol("ZodOutput"),WX=Symbol("ZodInput");class fI{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const i={...r,...this._map.get(t)};return Object.keys(i).length?i:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function hI(){return new fI}(BX=globalThis).__zod_globalRegistry??(BX.__zod_globalRegistry=hI());const Gl=globalThis.__zod_globalRegistry;function VX(e,t){return new e({type:"string",...Pe(t)})}function HX(e,t){return new e({type:"string",coerce:!0,...Pe(t)})}function pI(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Pe(t)})}function S3(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Pe(t)})}function mI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Pe(t)})}function gI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Pe(t)})}function vI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Pe(t)})}function yI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Pe(t)})}function C3(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Pe(t)})}function bI(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Pe(t)})}function _I(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Pe(t)})}function xI(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Pe(t)})}function wI(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Pe(t)})}function kI(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Pe(t)})}function SI(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Pe(t)})}function CI(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Pe(t)})}function jI(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Pe(t)})}function TI(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Pe(t)})}function ZX(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...Pe(t)})}function II(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Pe(t)})}function EI(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Pe(t)})}function NI(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Pe(t)})}function $I(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Pe(t)})}function MI(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Pe(t)})}function LI(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Pe(t)})}const qX={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function GX(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Pe(t)})}function YX(e,t){return new e({type:"string",format:"date",check:"string_format",...Pe(t)})}function KX(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Pe(t)})}function XX(e,t){return new e({type:"string",format:"duration",check:"string_format",...Pe(t)})}function JX(e,t){return new e({type:"number",checks:[],...Pe(t)})}function QX(e,t){return new e({type:"number",coerce:!0,checks:[],...Pe(t)})}function eJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Pe(t)})}function tJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...Pe(t)})}function nJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...Pe(t)})}function rJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...Pe(t)})}function iJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...Pe(t)})}function oJ(e,t){return new e({type:"boolean",...Pe(t)})}function aJ(e,t){return new e({type:"boolean",coerce:!0,...Pe(t)})}function sJ(e,t){return new e({type:"bigint",...Pe(t)})}function lJ(e,t){return new e({type:"bigint",coerce:!0,...Pe(t)})}function uJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Pe(t)})}function cJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Pe(t)})}function dJ(e,t){return new e({type:"symbol",...Pe(t)})}function fJ(e,t){return new e({type:"undefined",...Pe(t)})}function hJ(e,t){return new e({type:"null",...Pe(t)})}function pJ(e){return new e({type:"any"})}function mJ(e){return new e({type:"unknown"})}function gJ(e,t){return new e({type:"never",...Pe(t)})}function vJ(e,t){return new e({type:"void",...Pe(t)})}function yJ(e,t){return new e({type:"date",...Pe(t)})}function bJ(e,t){return new e({type:"date",coerce:!0,...Pe(t)})}function _J(e,t){return new e({type:"nan",...Pe(t)})}function vp(e,t){return new nI({check:"less_than",...Pe(t),value:e,inclusive:!1})}function Yl(e,t){return new nI({check:"less_than",...Pe(t),value:e,inclusive:!0})}function yp(e,t){return new rI({check:"greater_than",...Pe(t),value:e,inclusive:!1})}function ys(e,t){return new rI({check:"greater_than",...Pe(t),value:e,inclusive:!0})}function xJ(e){return yp(0,e)}function wJ(e){return vp(0,e)}function kJ(e){return Yl(0,e)}function SJ(e){return ys(0,e)}function sb(e,t){return new HY({check:"multiple_of",...Pe(t),value:e})}function j3(e,t){return new GY({check:"max_size",...Pe(t),maximum:e})}function lb(e,t){return new YY({check:"min_size",...Pe(t),minimum:e})}function RI(e,t){return new KY({check:"size_equals",...Pe(t),size:e})}function T3(e,t){return new XY({check:"max_length",...Pe(t),maximum:e})}function sg(e,t){return new JY({check:"min_length",...Pe(t),minimum:e})}function I3(e,t){return new QY({check:"length_equals",...Pe(t),length:e})}function OI(e,t){return new eK({check:"string_format",format:"regex",...Pe(t),pattern:e})}function PI(e){return new tK({check:"string_format",format:"lowercase",...Pe(e)})}function zI(e){return new nK({check:"string_format",format:"uppercase",...Pe(e)})}function DI(e,t){return new rK({check:"string_format",format:"includes",...Pe(t),includes:e})}function AI(e,t){return new iK({check:"string_format",format:"starts_with",...Pe(t),prefix:e})}function FI(e,t){return new oK({check:"string_format",format:"ends_with",...Pe(t),suffix:e})}function CJ(e,t,n){return new sK({check:"property",property:e,schema:t,...Pe(n)})}function BI(e,t){return new lK({check:"mime_type",mime:e,...Pe(t)})}function Af(e){return new uK({check:"overwrite",tx:e})}function UI(e){return Af(t=>t.normalize(e))}function WI(){return Af(e=>e.trim())}function VI(){return Af(e=>e.toLowerCase())}function HI(){return Af(e=>e.toUpperCase())}function ZI(){return Af(e=>BG(e))}function jJ(e,t,n){return new e({type:"array",element:t,...Pe(n)})}function dEe(e,t,n){return new e({type:"union",options:t,...Pe(n)})}function fEe(e,t,n,r){return new e({type:"union",options:n,discriminator:t,...Pe(r)})}function hEe(e,t,n){return new e({type:"intersection",left:t,right:n})}function pEe(e,t,n,r){const i=n instanceof Ut,o=i?r:n,a=i?n:null;return new e({type:"tuple",items:t,rest:a,...Pe(o)})}function mEe(e,t,n,r){return new e({type:"record",keyType:t,valueType:n,...Pe(r)})}function gEe(e,t,n,r){return new e({type:"map",keyType:t,valueType:n,...Pe(r)})}function vEe(e,t,n){return new e({type:"set",valueType:t,...Pe(n)})}function yEe(e,t,n){const r=Array.isArray(t)?Object.fromEntries(t.map(i=>[i,i])):t;return new e({type:"enum",entries:r,...Pe(n)})}function bEe(e,t,n){return new e({type:"enum",entries:t,...Pe(n)})}function _Ee(e,t,n){return new e({type:"literal",values:Array.isArray(t)?t:[t],...Pe(n)})}function TJ(e,t){return new e({type:"file",...Pe(t)})}function xEe(e,t){return new e({type:"transform",transform:t})}function wEe(e,t){return new e({type:"optional",innerType:t})}function kEe(e,t){return new e({type:"nullable",innerType:t})}function SEe(e,t,n){return new e({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():m3(n)}})}function CEe(e,t,n){return new e({type:"nonoptional",innerType:t,...Pe(n)})}function jEe(e,t){return new e({type:"success",innerType:t})}function TEe(e,t,n){return new e({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}function IEe(e,t,n){return new e({type:"pipe",in:t,out:n})}function EEe(e,t){return new e({type:"readonly",innerType:t})}function NEe(e,t,n){return new e({type:"template_literal",parts:t,...Pe(n)})}function $Ee(e,t){return new e({type:"lazy",getter:t})}function MEe(e,t){return new e({type:"promise",innerType:t})}function IJ(e,t,n){const r=Pe(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function EJ(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Pe(n)})}function NJ(e){const t=$J(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(og(r,n.value,t._zod.def));else{const i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(og(i))}},e(n.value,n)));return t}function $J(e,t){const n=new qr({check:"custom",...Pe(t)});return n._zod.check=e,n}function MJ(e){const t=new qr({check:"describe"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,description:e})}],t._zod.check=()=>{},t}function LJ(e){const t=new qr({check:"meta"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,...e})}],t._zod.check=()=>{},t}function RJ(e,t){const n=Pe(t);let r=n.truthy??["true","1","yes","on","y","enabled"],i=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(v=>typeof v=="string"?v.toLowerCase():v),i=i.map(v=>typeof v=="string"?v.toLowerCase():v));const o=new Set(r),a=new Set(i),s=e.Codec??dI,l=e.Boolean??aI,c=e.String??ib,d=new c({type:"string",error:n.error}),f=new l({type:"boolean",error:n.error}),p=new s({type:"pipe",in:d,out:f,transform:(v,_)=>{let y=v;return n.case!=="sensitive"&&(y=y.toLowerCase()),o.has(y)?!0:a.has(y)?!1:(_.issues.push({code:"invalid_value",expected:"stringbool",values:[...o,...a],input:_.value,inst:p,continue:!1}),{})},reverseTransform:(v,_)=>v===!0?r[0]||"true":i[0]||"false",error:n.error});return p}function ub(e,t,n,r={}){const i=Pe(r),o={...Pe(r),check:"string_format",type:"string",format:t,fn:typeof n=="function"?n:a=>n.test(a),...i};return n instanceof RegExp&&(o.pattern=n),new e(o)}class qI{constructor(t){this.counter=0,this.metadataRegistry=(t==null?void 0:t.metadata)??Gl,this.target=(t==null?void 0:t.target)??"draft-2020-12",this.unrepresentable=(t==null?void 0:t.unrepresentable)??"throw",this.override=(t==null?void 0:t.override)??(()=>{}),this.io=(t==null?void 0:t.io)??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var d,f,p;var r;const i=t._zod.def,o={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(t);if(a)return a.count++,n.schemaPath.includes(t)&&(a.cycle=n.path),a.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,s);const l=(f=(d=t._zod).toJSONSchema)==null?void 0:f.call(d);if(l)s.schema=l;else{const v={...n,schemaPath:[...n.schemaPath,t],path:n.path},_=t._zod.parent;if(_)s.ref=_,this.process(_,v),this.seen.get(_).isParent=!0;else{const y=s.schema;switch(i.type){case"string":{const b=y;b.type="string";const{minimum:w,maximum:x,format:S,patterns:C,contentEncoding:j}=t._zod.bag;if(typeof w=="number"&&(b.minLength=w),typeof x=="number"&&(b.maxLength=x),S&&(b.format=o[S]??S,b.format===""&&delete b.format),j&&(b.contentEncoding=j),C&&C.size>0){const T=[...C];T.length===1?b.pattern=T[0].source:T.length>1&&(s.schema.allOf=[...T.map(E=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:E.source}))])}break}case"number":{const b=y,{minimum:w,maximum:x,format:S,multipleOf:C,exclusiveMaximum:j,exclusiveMinimum:T}=t._zod.bag;typeof S=="string"&&S.includes("int")?b.type="integer":b.type="number",typeof T=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.minimum=T,b.exclusiveMinimum=!0):b.exclusiveMinimum=T),typeof w=="number"&&(b.minimum=w,typeof T=="number"&&this.target!=="draft-4"&&(T>=w?delete b.minimum:delete b.exclusiveMinimum)),typeof j=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.maximum=j,b.exclusiveMaximum=!0):b.exclusiveMaximum=j),typeof x=="number"&&(b.maximum=x,typeof j=="number"&&this.target!=="draft-4"&&(j<=x?delete b.maximum:delete b.exclusiveMaximum)),typeof C=="number"&&(b.multipleOf=C);break}case"boolean":{const b=y;b.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{this.target==="openapi-3.0"?(y.type="string",y.nullable=!0,y.enum=[null]):y.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{y.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const b=y,{minimum:w,maximum:x}=t._zod.bag;typeof w=="number"&&(b.minItems=w),typeof x=="number"&&(b.maxItems=x),b.type="array",b.items=this.process(i.element,{...v,path:[...v.path,"items"]});break}case"object":{const b=y;b.type="object",b.properties={};const w=i.shape;for(const C in w)b.properties[C]=this.process(w[C],{...v,path:[...v.path,"properties",C]});const x=new Set(Object.keys(w)),S=new Set([...x].filter(C=>{const j=i.shape[C]._zod;return this.io==="input"?j.optin===void 0:j.optout===void 0}));S.size>0&&(b.required=Array.from(S)),((p=i.catchall)==null?void 0:p._zod.def.type)==="never"?b.additionalProperties=!1:i.catchall?i.catchall&&(b.additionalProperties=this.process(i.catchall,{...v,path:[...v.path,"additionalProperties"]})):this.io==="output"&&(b.additionalProperties=!1);break}case"union":{const b=y,w=i.discriminator!==void 0,x=i.options.map((S,C)=>this.process(S,{...v,path:[...v.path,w?"oneOf":"anyOf",C]}));w?b.oneOf=x:b.anyOf=x;break}case"intersection":{const b=y,w=this.process(i.left,{...v,path:[...v.path,"allOf",0]}),x=this.process(i.right,{...v,path:[...v.path,"allOf",1]}),S=j=>"allOf"in j&&Object.keys(j).length===1,C=[...S(w)?w.allOf:[w],...S(x)?x.allOf:[x]];b.allOf=C;break}case"tuple":{const b=y;b.type="array";const w=this.target==="draft-2020-12"?"prefixItems":"items",x=this.target==="draft-2020-12"||this.target==="openapi-3.0"?"items":"additionalItems",S=i.items.map((E,$)=>this.process(E,{...v,path:[...v.path,w,$]})),C=i.rest?this.process(i.rest,{...v,path:[...v.path,x,...this.target==="openapi-3.0"?[i.items.length]:[]]}):null;this.target==="draft-2020-12"?(b.prefixItems=S,C&&(b.items=C)):this.target==="openapi-3.0"?(b.items={anyOf:S},C&&b.items.anyOf.push(C),b.minItems=S.length,C||(b.maxItems=S.length)):(b.items=S,C&&(b.additionalItems=C));const{minimum:j,maximum:T}=t._zod.bag;typeof j=="number"&&(b.minItems=j),typeof T=="number"&&(b.maxItems=T);break}case"record":{const b=y;b.type="object",(this.target==="draft-7"||this.target==="draft-2020-12")&&(b.propertyNames=this.process(i.keyType,{...v,path:[...v.path,"propertyNames"]})),b.additionalProperties=this.process(i.valueType,{...v,path:[...v.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const b=y,w=DT(i.entries);w.every(x=>typeof x=="number")&&(b.type="number"),w.every(x=>typeof x=="string")&&(b.type="string"),b.enum=w;break}case"literal":{const b=y,w=[];for(const x of i.values)if(x===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof x=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");w.push(Number(x))}else w.push(x);if(w.length!==0)if(w.length===1){const x=w[0];b.type=x===null?"null":typeof x,this.target==="draft-4"||this.target==="openapi-3.0"?b.enum=[x]:b.const=x}else w.every(x=>typeof x=="number")&&(b.type="number"),w.every(x=>typeof x=="string")&&(b.type="string"),w.every(x=>typeof x=="boolean")&&(b.type="string"),w.every(x=>x===null)&&(b.type="null"),b.enum=w;break}case"file":{const b=y,w={type:"string",format:"binary",contentEncoding:"binary"},{minimum:x,maximum:S,mime:C}=t._zod.bag;x!==void 0&&(w.minLength=x),S!==void 0&&(w.maxLength=S),C?C.length===1?(w.contentMediaType=C[0],Object.assign(b,w)):b.anyOf=C.map(j=>({...w,contentMediaType:j})):Object.assign(b,w);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const b=this.process(i.innerType,v);this.target==="openapi-3.0"?(s.ref=i.innerType,y.nullable=!0):y.anyOf=[b,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"success":{const b=y;b.type="boolean";break}case"default":{this.process(i.innerType,v),s.ref=i.innerType,y.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,v),s.ref=i.innerType,this.io==="input"&&(y._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,v),s.ref=i.innerType;let b;try{b=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}y.default=b;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const b=y,w=t._zod.pattern;if(!w)throw new Error("Pattern not found in template literal");b.type="string",b.pattern=w.source;break}case"pipe":{const b=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(b,v),s.ref=b;break}case"readonly":{this.process(i.innerType,v),s.ref=i.innerType,y.readOnly=!0;break}case"promise":{this.process(i.innerType,v),s.ref=i.innerType;break}case"optional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"lazy":{const b=t._zod.innerType;this.process(b,v),s.ref=b;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema");break}}}}const c=this.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),this.io==="input"&&fa(t)&&(delete s.schema.examples,delete s.schema.default),this.io==="input"&&s.schema._prefault&&((r=s.schema).default??(r.default=s.schema._prefault)),delete s.schema._prefault,this.seen.get(t).schema}emit(t,n){var d,f,p,v,_,y;const r={cycles:(n==null?void 0:n.cycles)??"ref",reused:(n==null?void 0:n.reused)??"inline",external:(n==null?void 0:n.external)??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=b=>{var C;const w=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){const j=(C=r.external.registry.get(b[0]))==null?void 0:C.id,T=r.external.uri??($=>$);if(j)return{ref:T(j)};const E=b[1].defId??b[1].schema.id??`schema${this.counter++}`;return b[1].defId=E,{defId:E,ref:`${T("__shared")}#/${w}/${E}`}}if(b[1]===i)return{ref:"#"};const x=`#/${w}/`,S=b[1].schema.id??`__schema${this.counter++}`;return{defId:S,ref:x+S}},a=b=>{if(b[1].schema.$ref)return;const w=b[1],{ref:x,defId:S}=o(b);w.def={...w.schema},S&&(w.defId=S);const C=w.schema;for(const j in C)delete C[j];C.$ref=x};if(r.cycles==="throw")for(const b of this.seen.entries()){const w=b[1];if(w.cycle)throw new Error(`Cycle detected: #/${(d=w.cycle)==null?void 0:d.join("/")}/ - -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const b of this.seen.entries()){const w=b[1];if(t===b[0]){a(b);continue}if(r.external){const x=(f=r.external.registry.get(b[0]))==null?void 0:f.id;if(t!==b[0]&&x){a(b);continue}}if((p=this.metadataRegistry.get(b[0]))!=null&&p.id){a(b);continue}if(w.cycle){a(b);continue}if(w.count>1&&r.reused==="ref"){a(b);continue}}const s=(b,w)=>{const x=this.seen.get(b),S=x.def??x.schema,C={...S};if(x.ref===null)return;const j=x.ref;if(x.ref=null,j){s(j,w);const T=this.seen.get(j).schema;T.$ref&&(w.target==="draft-7"||w.target==="draft-4"||w.target==="openapi-3.0")?(S.allOf=S.allOf??[],S.allOf.push(T)):(Object.assign(S,T),Object.assign(S,C))}x.isParent||this.override({zodSchema:b,jsonSchema:S,path:x.path??[]})};for(const b of[...this.seen.entries()].reverse())s(b[0],{target:this.target});const l={};if(this.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?l.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?l.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),(v=r.external)==null?void 0:v.uri){const b=(_=r.external.registry.get(t))==null?void 0:_.id;if(!b)throw new Error("Schema is missing an `id` property");l.$id=r.external.uri(b)}Object.assign(l,i.def);const c=((y=r.external)==null?void 0:y.defs)??{};for(const b of this.seen.entries()){const w=b[1];w.def&&w.defId&&(c[w.defId]=w.def)}r.external||Object.keys(c).length>0&&(this.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{return JSON.parse(JSON.stringify(l))}catch{throw new Error("Error converting schema to JSON.")}}}function OJ(e,t){if(e instanceof fI){const r=new qI(t),i={};for(const s of e._idmap.entries()){const[l,c]=s;r.process(c)}const o={},a={registry:e,uri:t==null?void 0:t.uri,defs:i};for(const s of e._idmap.entries()){const[l,c]=s;o[l]=r.emit(c,{...t,external:a})}if(Object.keys(i).length>0){const s=r.target==="draft-2020-12"?"$defs":"definitions";o.__shared={[s]:i}}return{schemas:o}}const n=new qI(t);return n.process(e),n.emit(e,t)}function fa(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return fa(r.element,n);if(r.type==="set")return fa(r.valueType,n);if(r.type==="lazy")return fa(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return fa(r.innerType,n);if(r.type==="intersection")return fa(r.left,n)||fa(r.right,n);if(r.type==="record"||r.type==="map")return fa(r.keyType,n)||fa(r.valueType,n);if(r.type==="pipe")return fa(r.in,n)||fa(r.out,n);if(r.type==="object"){for(const i in r.shape)if(fa(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(const i of r.options)if(fa(i,n))return!0;return!1}if(r.type==="tuple"){for(const i of r.items)if(fa(i,n))return!0;return!!(r.rest&&fa(r.rest,n))}return!1}const LEe=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),REe=Object.freeze(Object.defineProperty({__proto__:null,$ZodAny:VK,$ZodArray:KK,$ZodAsyncError:hp,$ZodBase64:MK,$ZodBase64URL:RK,$ZodBigInt:sI,$ZodBigIntFormat:FK,$ZodBoolean:aI,$ZodCIDRv4:NK,$ZodCIDRv6:$K,$ZodCUID:yK,$ZodCUID2:bK,$ZodCatch:kX,$ZodCheck:qr,$ZodCheckBigIntFormat:qY,$ZodCheckEndsWith:oK,$ZodCheckGreaterThan:rI,$ZodCheckIncludes:rK,$ZodCheckLengthEquals:QY,$ZodCheckLessThan:nI,$ZodCheckLowerCase:tK,$ZodCheckMaxLength:XY,$ZodCheckMaxSize:GY,$ZodCheckMimeType:lK,$ZodCheckMinLength:JY,$ZodCheckMinSize:YY,$ZodCheckMultipleOf:HY,$ZodCheckNumberFormat:ZY,$ZodCheckOverwrite:uK,$ZodCheckProperty:sK,$ZodCheckRegex:eK,$ZodCheckSizeEquals:KY,$ZodCheckStartsWith:iK,$ZodCheckStringFormat:rb,$ZodCheckUpperCase:nK,$ZodCodec:dI,$ZodCustom:MX,$ZodCustomStringFormat:DK,$ZodDate:GK,$ZodDefault:vX,$ZodDiscriminatedUnion:nX,$ZodE164:OK,$ZodEmail:pK,$ZodEmoji:gK,$ZodEncodeError:d3,$ZodEnum:cX,$ZodError:BT,$ZodFile:fX,$ZodFunction:EX,$ZodGUID:fK,$ZodIPv4:TK,$ZodIPv6:IK,$ZodISODate:SK,$ZodISODateTime:kK,$ZodISODuration:jK,$ZodISOTime:CK,$ZodIntersection:rX,$ZodJWT:zK,$ZodKSUID:wK,$ZodLazy:$X,$ZodLiteral:dX,$ZodMAC:EK,$ZodMap:aX,$ZodNaN:SX,$ZodNanoID:vK,$ZodNever:ZK,$ZodNonOptional:_X,$ZodNull:WK,$ZodNullable:gX,$ZodNumber:oI,$ZodNumberFormat:AK,$ZodObject:QK,$ZodObjectJIT:eX,$ZodOptional:mX,$ZodPipe:CX,$ZodPrefault:bX,$ZodPromise:NX,$ZodReadonly:jX,$ZodRealError:vs,$ZodRecord:oX,$ZodRegistry:fI,$ZodSet:lX,$ZodString:ib,$ZodStringFormat:vr,$ZodSuccess:wX,$ZodSymbol:BK,$ZodTemplateLiteral:IX,$ZodTransform:hX,$ZodTuple:cI,$ZodType:Ut,$ZodULID:_K,$ZodURL:mK,$ZodUUID:hK,$ZodUndefined:UK,$ZodUnion:lI,$ZodUnknown:HK,$ZodVoid:qK,$ZodXID:xK,$brand:DG,$constructor:be,$input:WX,$output:UX,Doc:cK,JSONSchema:LEe,JSONSchemaGenerator:qI,NEVER:zG,TimePrecision:qX,_any:pJ,_array:jJ,_base64:NI,_base64url:$I,_bigint:sJ,_boolean:oJ,_catch:TEe,_check:$J,_cidrv4:II,_cidrv6:EI,_coercedBigint:lJ,_coercedBoolean:aJ,_coercedDate:bJ,_coercedNumber:QX,_coercedString:HX,_cuid:xI,_cuid2:wI,_custom:IJ,_date:yJ,_decode:qT,_decodeAsync:YT,_default:SEe,_discriminatedUnion:fEe,_e164:MI,_email:pI,_emoji:bI,_encode:ZT,_encodeAsync:GT,_endsWith:FI,_enum:yEe,_file:TJ,_float32:tJ,_float64:nJ,_gt:yp,_gte:ys,_guid:S3,_includes:DI,_int:eJ,_int32:rJ,_int64:uJ,_intersection:hEe,_ipv4:jI,_ipv6:TI,_isoDate:YX,_isoDateTime:GX,_isoDuration:XX,_isoTime:KX,_jwt:LI,_ksuid:CI,_lazy:$Ee,_length:I3,_literal:_Ee,_lowercase:PI,_lt:vp,_lte:Yl,_mac:ZX,_map:gEe,_max:Yl,_maxLength:T3,_maxSize:j3,_mime:BI,_min:ys,_minLength:sg,_minSize:lb,_multipleOf:sb,_nan:_J,_nanoid:_I,_nativeEnum:bEe,_negative:wJ,_never:gJ,_nonnegative:SJ,_nonoptional:CEe,_nonpositive:kJ,_normalize:UI,_null:hJ,_nullable:kEe,_number:JX,_optional:wEe,_overwrite:Af,_parse:Xy,_parseAsync:Jy,_pipe:IEe,_positive:xJ,_promise:MEe,_property:CJ,_readonly:EEe,_record:mEe,_refine:EJ,_regex:OI,_safeDecode:XT,_safeDecodeAsync:QT,_safeEncode:KT,_safeEncodeAsync:JT,_safeParse:Qy,_safeParseAsync:eb,_set:vEe,_size:RI,_slugify:ZI,_startsWith:AI,_string:VX,_stringFormat:ub,_stringbool:RJ,_success:jEe,_superRefine:NJ,_symbol:dJ,_templateLiteral:NEe,_toLowerCase:VI,_toUpperCase:HI,_transform:xEe,_trim:WI,_tuple:pEe,_uint32:iJ,_uint64:cJ,_ulid:kI,_undefined:fJ,_union:dEe,_unknown:mJ,_uppercase:zI,_url:C3,_uuid:mI,_uuidv4:gI,_uuidv6:vI,_uuidv7:yI,_void:vJ,_xid:SI,clone:il,config:da,decode:Z7e,decodeAsync:G7e,describe:MJ,encode:H7e,encodeAsync:q7e,flattenError:UT,formatError:WT,globalConfig:f3,globalRegistry:Gl,isValidBase64:iI,isValidBase64URL:LK,isValidJWT:PK,locales:FX,meta:LJ,parse:VT,parseAsync:HT,prettifyError:aY,regexes:tI,registry:hI,safeDecode:K7e,safeDecodeAsync:J7e,safeEncode:Y7e,safeEncodeAsync:X7e,safeParse:sY,safeParseAsync:lY,toDotPath:oY,toJSONSchema:OJ,treeifyError:iY,util:nY,version:dK},Symbol.toStringTag,{value:"Module"})),GI=be("ZodISODateTime",(e,t)=>{kK.init(e,t),Tr.init(e,t)});function PJ(e){return GX(GI,e)}const YI=be("ZodISODate",(e,t)=>{SK.init(e,t),Tr.init(e,t)});function zJ(e){return YX(YI,e)}const KI=be("ZodISOTime",(e,t)=>{CK.init(e,t),Tr.init(e,t)});function DJ(e){return KX(KI,e)}const XI=be("ZodISODuration",(e,t)=>{jK.init(e,t),Tr.init(e,t)});function AJ(e){return XX(XI,e)}const OEe=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:YI,ZodISODateTime:GI,ZodISODuration:XI,ZodISOTime:KI,date:zJ,datetime:PJ,duration:AJ,time:DJ},Symbol.toStringTag,{value:"Module"})),FJ=(e,t)=>{BT.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>WT(e,n)},flatten:{value:n=>UT(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,h3,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,h3,2)}},isEmpty:{get(){return e.issues.length===0}}})},PEe=be("ZodError",FJ),bs=be("ZodError",FJ,{Parent:Error}),BJ=Xy(bs),UJ=Jy(bs),WJ=Qy(bs),VJ=eb(bs),HJ=ZT(bs),ZJ=qT(bs),qJ=GT(bs),GJ=YT(bs),YJ=KT(bs),KJ=XT(bs),XJ=JT(bs),JJ=QT(bs),rn=be("ZodType",(e,t)=>(Ut.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(rd(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]})),e.clone=(n,r)=>il(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>BJ(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>WJ(e,n,r),e.parseAsync=async(n,r)=>UJ(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>VJ(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>HJ(e,n,r),e.decode=(n,r)=>ZJ(e,n,r),e.encodeAsync=async(n,r)=>qJ(e,n,r),e.decodeAsync=async(n,r)=>GJ(e,n,r),e.safeEncode=(n,r)=>YJ(e,n,r),e.safeDecode=(n,r)=>KJ(e,n,r),e.safeEncodeAsync=async(n,r)=>XJ(e,n,r),e.safeDecodeAsync=async(n,r)=>JJ(e,n,r),e.refine=(n,r)=>e.check(OQ(n,r)),e.superRefine=n=>e.check(PQ(n)),e.overwrite=n=>e.check(Af(n)),e.optional=()=>z3(e),e.nullable=()=>xs(e),e.nullish=()=>z3(xs(e)),e.nonoptional=n=>wQ(e,n),e.array=()=>Pr(e),e.or=n=>P3([e,n]),e.and=n=>cQ(e,n),e.transform=n=>D3(e,kE(n)),e.default=n=>bQ(e,n),e.prefault=n=>xQ(e,n),e.catch=n=>CQ(e,n),e.pipe=n=>D3(e,n),e.readonly=()=>IQ(e),e.describe=n=>{const r=e.clone();return Gl.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){var n;return(n=Gl.get(e))==null?void 0:n.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Gl.get(e);const r=e.clone();return Gl.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),JI=be("_ZodString",(e,t)=>{ib.init(e,t),rn.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(OI(...r)),e.includes=(...r)=>e.check(DI(...r)),e.startsWith=(...r)=>e.check(AI(...r)),e.endsWith=(...r)=>e.check(FI(...r)),e.min=(...r)=>e.check(sg(...r)),e.max=(...r)=>e.check(T3(...r)),e.length=(...r)=>e.check(I3(...r)),e.nonempty=(...r)=>e.check(sg(1,...r)),e.lowercase=r=>e.check(PI(r)),e.uppercase=r=>e.check(zI(r)),e.trim=()=>e.check(WI()),e.normalize=(...r)=>e.check(UI(...r)),e.toLowerCase=()=>e.check(VI()),e.toUpperCase=()=>e.check(HI()),e.slugify=()=>e.check(ZI())}),E3=be("ZodString",(e,t)=>{ib.init(e,t),JI.init(e,t),e.email=n=>e.check(pI(QI,n)),e.url=n=>e.check(C3($3,n)),e.jwt=n=>e.check(LI(pE,n)),e.emoji=n=>e.check(bI(eE,n)),e.guid=n=>e.check(S3(N3,n)),e.uuid=n=>e.check(mI(od,n)),e.uuidv4=n=>e.check(gI(od,n)),e.uuidv6=n=>e.check(vI(od,n)),e.uuidv7=n=>e.check(yI(od,n)),e.nanoid=n=>e.check(_I(tE,n)),e.guid=n=>e.check(S3(N3,n)),e.cuid=n=>e.check(xI(nE,n)),e.cuid2=n=>e.check(wI(rE,n)),e.ulid=n=>e.check(kI(iE,n)),e.base64=n=>e.check(NI(dE,n)),e.base64url=n=>e.check($I(fE,n)),e.xid=n=>e.check(SI(oE,n)),e.ksuid=n=>e.check(CI(aE,n)),e.ipv4=n=>e.check(jI(sE,n)),e.ipv6=n=>e.check(TI(lE,n)),e.cidrv4=n=>e.check(II(uE,n)),e.cidrv6=n=>e.check(EI(cE,n)),e.e164=n=>e.check(MI(hE,n)),e.datetime=n=>e.check(PJ(n)),e.date=n=>e.check(zJ(n)),e.time=n=>e.check(DJ(n)),e.duration=n=>e.check(AJ(n))});function Et(e){return VX(E3,e)}const Tr=be("ZodStringFormat",(e,t)=>{vr.init(e,t),JI.init(e,t)}),QI=be("ZodEmail",(e,t)=>{pK.init(e,t),Tr.init(e,t)});function zEe(e){return pI(QI,e)}const N3=be("ZodGUID",(e,t)=>{fK.init(e,t),Tr.init(e,t)});function DEe(e){return S3(N3,e)}const od=be("ZodUUID",(e,t)=>{hK.init(e,t),Tr.init(e,t)});function AEe(e){return mI(od,e)}function FEe(e){return gI(od,e)}function BEe(e){return vI(od,e)}function UEe(e){return yI(od,e)}const $3=be("ZodURL",(e,t)=>{mK.init(e,t),Tr.init(e,t)});function WEe(e){return C3($3,e)}function VEe(e){return C3($3,{protocol:/^https?$/,hostname:TY,...Pe(e)})}const eE=be("ZodEmoji",(e,t)=>{gK.init(e,t),Tr.init(e,t)});function HEe(e){return bI(eE,e)}const tE=be("ZodNanoID",(e,t)=>{vK.init(e,t),Tr.init(e,t)});function ZEe(e){return _I(tE,e)}const nE=be("ZodCUID",(e,t)=>{yK.init(e,t),Tr.init(e,t)});function qEe(e){return xI(nE,e)}const rE=be("ZodCUID2",(e,t)=>{bK.init(e,t),Tr.init(e,t)});function GEe(e){return wI(rE,e)}const iE=be("ZodULID",(e,t)=>{_K.init(e,t),Tr.init(e,t)});function YEe(e){return kI(iE,e)}const oE=be("ZodXID",(e,t)=>{xK.init(e,t),Tr.init(e,t)});function KEe(e){return SI(oE,e)}const aE=be("ZodKSUID",(e,t)=>{wK.init(e,t),Tr.init(e,t)});function XEe(e){return CI(aE,e)}const sE=be("ZodIPv4",(e,t)=>{TK.init(e,t),Tr.init(e,t)});function JEe(e){return jI(sE,e)}const QJ=be("ZodMAC",(e,t)=>{EK.init(e,t),Tr.init(e,t)});function QEe(e){return ZX(QJ,e)}const lE=be("ZodIPv6",(e,t)=>{IK.init(e,t),Tr.init(e,t)});function eNe(e){return TI(lE,e)}const uE=be("ZodCIDRv4",(e,t)=>{NK.init(e,t),Tr.init(e,t)});function tNe(e){return II(uE,e)}const cE=be("ZodCIDRv6",(e,t)=>{$K.init(e,t),Tr.init(e,t)});function nNe(e){return EI(cE,e)}const dE=be("ZodBase64",(e,t)=>{MK.init(e,t),Tr.init(e,t)});function rNe(e){return NI(dE,e)}const fE=be("ZodBase64URL",(e,t)=>{RK.init(e,t),Tr.init(e,t)});function iNe(e){return $I(fE,e)}const hE=be("ZodE164",(e,t)=>{OK.init(e,t),Tr.init(e,t)});function oNe(e){return MI(hE,e)}const pE=be("ZodJWT",(e,t)=>{zK.init(e,t),Tr.init(e,t)});function aNe(e){return LI(pE,e)}const cb=be("ZodCustomStringFormat",(e,t)=>{DK.init(e,t),Tr.init(e,t)});function sNe(e,t,n={}){return ub(cb,e,t,n)}function lNe(e){return ub(cb,"hostname",jY,e)}function uNe(e){return ub(cb,"hex",WY,e)}function cNe(e,t){const n=(t==null?void 0:t.enc)??"hex",r=`${e}_${n}`,i=tI[r];if(!i)throw new Error(`Unrecognized hash format: ${r}`);return ub(cb,r,i,t)}const M3=be("ZodNumber",(e,t)=>{oI.init(e,t),rn.init(e,t),e.gt=(r,i)=>e.check(yp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(vp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.int=r=>e.check(mE(r)),e.safe=r=>e.check(mE(r)),e.positive=r=>e.check(yp(0,r)),e.nonnegative=r=>e.check(ys(0,r)),e.negative=r=>e.check(vp(0,r)),e.nonpositive=r=>e.check(Yl(0,r)),e.multipleOf=(r,i)=>e.check(sb(r,i)),e.step=(r,i)=>e.check(sb(r,i)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function oe(e){return JX(M3,e)}const lg=be("ZodNumberFormat",(e,t)=>{AK.init(e,t),M3.init(e,t)});function mE(e){return eJ(lg,e)}function dNe(e){return tJ(lg,e)}function fNe(e){return nJ(lg,e)}function hNe(e){return rJ(lg,e)}function pNe(e){return iJ(lg,e)}const L3=be("ZodBoolean",(e,t)=>{aI.init(e,t),rn.init(e,t)});function ad(e){return oJ(L3,e)}const R3=be("ZodBigInt",(e,t)=>{sI.init(e,t),rn.init(e,t),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.gt=(r,i)=>e.check(yp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(vp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.positive=r=>e.check(yp(BigInt(0),r)),e.negative=r=>e.check(vp(BigInt(0),r)),e.nonpositive=r=>e.check(Yl(BigInt(0),r)),e.nonnegative=r=>e.check(ys(BigInt(0),r)),e.multipleOf=(r,i)=>e.check(sb(r,i));const n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function mNe(e){return sJ(R3,e)}const gE=be("ZodBigIntFormat",(e,t)=>{FK.init(e,t),R3.init(e,t)});function gNe(e){return uJ(gE,e)}function vNe(e){return cJ(gE,e)}const eQ=be("ZodSymbol",(e,t)=>{BK.init(e,t),rn.init(e,t)});function yNe(e){return dJ(eQ,e)}const tQ=be("ZodUndefined",(e,t)=>{UK.init(e,t),rn.init(e,t)});function bNe(e){return fJ(tQ,e)}const nQ=be("ZodNull",(e,t)=>{WK.init(e,t),rn.init(e,t)});function vE(e){return hJ(nQ,e)}const rQ=be("ZodAny",(e,t)=>{VK.init(e,t),rn.init(e,t)});function _Ne(){return pJ(rQ)}const iQ=be("ZodUnknown",(e,t)=>{HK.init(e,t),rn.init(e,t)});function ug(){return mJ(iQ)}const oQ=be("ZodNever",(e,t)=>{ZK.init(e,t),rn.init(e,t)});function yE(e){return gJ(oQ,e)}const aQ=be("ZodVoid",(e,t)=>{qK.init(e,t),rn.init(e,t)});function xNe(e){return vJ(aQ,e)}const bE=be("ZodDate",(e,t)=>{GK.init(e,t),rn.init(e,t),e.min=(r,i)=>e.check(ys(r,i)),e.max=(r,i)=>e.check(Yl(r,i));const n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function wNe(e){return yJ(bE,e)}const sQ=be("ZodArray",(e,t)=>{KK.init(e,t),rn.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(sg(n,r)),e.nonempty=n=>e.check(sg(1,n)),e.max=(n,r)=>e.check(T3(n,r)),e.length=(n,r)=>e.check(I3(n,r)),e.unwrap=()=>e.element});function Pr(e,t){return jJ(sQ,e,t)}function kNe(e){const t=e._zod.def.shape;return _s(Object.keys(t))}const O3=be("ZodObject",(e,t)=>{eX.init(e,t),rn.init(e,t),vn(e,"shape",()=>t.shape),e.keyof=()=>_s(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ug()}),e.loose=()=>e.clone({...e._zod.def,catchall:ug()}),e.strict=()=>e.clone({...e._zod.def,catchall:yE()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>YG(e,n),e.safeExtend=n=>KG(e,n),e.merge=n=>XG(e,n),e.pick=n=>qG(e,n),e.omit=n=>GG(e,n),e.partial=(...n)=>JG(SE,e,n[0]),e.required=(...n)=>QG(CE,e,n[0])});function kt(e,t){const n={type:"object",shape:e??{},...Pe(t)};return new O3(n)}function SNe(e,t){return new O3({type:"object",shape:e,catchall:yE(),...Pe(t)})}function CNe(e,t){return new O3({type:"object",shape:e,catchall:ug(),...Pe(t)})}const _E=be("ZodUnion",(e,t)=>{lI.init(e,t),rn.init(e,t),e.options=t.options});function P3(e,t){return new _E({type:"union",options:e,...Pe(t)})}const lQ=be("ZodDiscriminatedUnion",(e,t)=>{_E.init(e,t),nX.init(e,t)});function sd(e,t,n){return new lQ({type:"union",options:t,discriminator:e,...Pe(n)})}const uQ=be("ZodIntersection",(e,t)=>{rX.init(e,t),rn.init(e,t)});function cQ(e,t){return new uQ({type:"intersection",left:e,right:t})}const dQ=be("ZodTuple",(e,t)=>{cI.init(e,t),rn.init(e,t),e.rest=n=>e.clone({...e._zod.def,rest:n})});function xE(e,t,n){const r=t instanceof Ut,i=r?n:t,o=r?t:null;return new dQ({type:"tuple",items:e,rest:o,...Pe(i)})}const wE=be("ZodRecord",(e,t)=>{oX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function db(e,t,n){return new wE({type:"record",keyType:e,valueType:t,...Pe(n)})}function jNe(e,t,n){const r=il(e);return r._zod.values=void 0,new wE({type:"record",keyType:r,valueType:t,...Pe(n)})}const fQ=be("ZodMap",(e,t)=>{aX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function TNe(e,t,n){return new fQ({type:"map",keyType:e,valueType:t,...Pe(n)})}const hQ=be("ZodSet",(e,t)=>{lX.init(e,t),rn.init(e,t),e.min=(...n)=>e.check(lb(...n)),e.nonempty=n=>e.check(lb(1,n)),e.max=(...n)=>e.check(j3(...n)),e.size=(...n)=>e.check(RI(...n))});function INe(e,t){return new hQ({type:"set",valueType:e,...Pe(t)})}const fb=be("ZodEnum",(e,t)=>{cX.init(e,t),rn.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{const o={};for(const a of r)if(n.has(a))o[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Pe(i),entries:o})},e.exclude=(r,i)=>{const o={...t.entries};for(const a of r)if(n.has(a))delete o[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Pe(i),entries:o})}});function _s(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new fb({type:"enum",entries:n,...Pe(t)})}function ENe(e,t){return new fb({type:"enum",entries:e,...Pe(t)})}const pQ=be("ZodLiteral",(e,t)=>{dX.init(e,t),rn.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ft(e,t){return new pQ({type:"literal",values:Array.isArray(e)?e:[e],...Pe(t)})}const mQ=be("ZodFile",(e,t)=>{fX.init(e,t),rn.init(e,t),e.min=(n,r)=>e.check(lb(n,r)),e.max=(n,r)=>e.check(j3(n,r)),e.mime=(n,r)=>e.check(BI(Array.isArray(n)?n:[n],r))});function NNe(e){return TJ(mQ,e)}const gQ=be("ZodTransform",(e,t)=>{hX.init(e,t),rn.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);n.addIssue=o=>{if(typeof o=="string")n.issues.push(og(o,n.value,t));else{const a=o;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=e),n.issues.push(og(a))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(o=>(n.value=o,n)):(n.value=i,n)}});function kE(e){return new gQ({type:"transform",transform:e})}const SE=be("ZodOptional",(e,t)=>{mX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function z3(e){return new SE({type:"optional",innerType:e})}const vQ=be("ZodNullable",(e,t)=>{gX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function xs(e){return new vQ({type:"nullable",innerType:e})}function $Ne(e){return z3(xs(e))}const yQ=be("ZodDefault",(e,t)=>{vX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function bQ(e,t){return new yQ({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const _Q=be("ZodPrefault",(e,t)=>{bX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function xQ(e,t){return new _Q({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const CE=be("ZodNonOptional",(e,t)=>{_X.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function wQ(e,t){return new CE({type:"nonoptional",innerType:e,...Pe(t)})}const kQ=be("ZodSuccess",(e,t)=>{wX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function MNe(e){return new kQ({type:"success",innerType:e})}const SQ=be("ZodCatch",(e,t)=>{kX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function CQ(e,t){return new SQ({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const jQ=be("ZodNaN",(e,t)=>{SX.init(e,t),rn.init(e,t)});function LNe(e){return _J(jQ,e)}const jE=be("ZodPipe",(e,t)=>{CX.init(e,t),rn.init(e,t),e.in=t.in,e.out=t.out});function D3(e,t){return new jE({type:"pipe",in:e,out:t})}const TE=be("ZodCodec",(e,t)=>{jE.init(e,t),dI.init(e,t)});function RNe(e,t,n){return new TE({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}const TQ=be("ZodReadonly",(e,t)=>{jX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IQ(e){return new TQ({type:"readonly",innerType:e})}const EQ=be("ZodTemplateLiteral",(e,t)=>{IX.init(e,t),rn.init(e,t)});function ONe(e,t){return new EQ({type:"template_literal",parts:e,...Pe(t)})}const NQ=be("ZodLazy",(e,t)=>{$X.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.getter()});function $Q(e){return new NQ({type:"lazy",getter:e})}const MQ=be("ZodPromise",(e,t)=>{NX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function PNe(e){return new MQ({type:"promise",innerType:e})}const LQ=be("ZodFunction",(e,t)=>{EX.init(e,t),rn.init(e,t)});function RQ(e){return new LQ({type:"function",input:Array.isArray(e==null?void 0:e.input)?xE(e==null?void 0:e.input):(e==null?void 0:e.input)??Pr(ug()),output:(e==null?void 0:e.output)??ug()})}const A3=be("ZodCustom",(e,t)=>{MX.init(e,t),rn.init(e,t)});function zNe(e){const t=new qr({check:"custom"});return t._zod.check=e,t}function DNe(e,t){return IJ(A3,e??(()=>!0),t)}function OQ(e,t={}){return EJ(A3,e,t)}function PQ(e){return NJ(e)}const ANe=MJ,FNe=LJ;function BNe(e,t={error:`Input not instance of ${e.name}`}){const n=new A3({type:"custom",check:"custom",fn:r=>r instanceof e,abort:!0,...Pe(t)});return n._zod.bag.Class=e,n}const UNe=(...e)=>RJ({Codec:TE,Boolean:L3,String:E3},...e);function WNe(e){const t=$Q(()=>P3([Et(e),oe(),ad(),vE(),Pr(t),db(Et(),t)]));return t}function zQ(e,t){return D3(kE(e),t)}const VNe={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function HNe(e){da({customError:e})}function ZNe(){return da().customError}var IE;IE||(IE={});function qNe(e){return HX(E3,e)}function jo(e){return QX(M3,e)}function GNe(e){return aJ(L3,e)}function Zt(e){return lJ(R3,e)}function YNe(e){return bJ(bE,e)}const KNe=Object.freeze(Object.defineProperty({__proto__:null,bigint:Zt,boolean:GNe,date:YNe,number:jo,string:qNe},Symbol.toStringTag,{value:"Module"}));da(OX());const XNe=Object.freeze(Object.defineProperty({__proto__:null,$brand:DG,$input:WX,$output:UX,NEVER:zG,TimePrecision:qX,ZodAny:rQ,ZodArray:sQ,ZodBase64:dE,ZodBase64URL:fE,ZodBigInt:R3,ZodBigIntFormat:gE,ZodBoolean:L3,ZodCIDRv4:uE,ZodCIDRv6:cE,ZodCUID:nE,ZodCUID2:rE,ZodCatch:SQ,ZodCodec:TE,ZodCustom:A3,ZodCustomStringFormat:cb,ZodDate:bE,ZodDefault:yQ,ZodDiscriminatedUnion:lQ,ZodE164:hE,ZodEmail:QI,ZodEmoji:eE,ZodEnum:fb,ZodError:PEe,ZodFile:mQ,get ZodFirstPartyTypeKind(){return IE},ZodFunction:LQ,ZodGUID:N3,ZodIPv4:sE,ZodIPv6:lE,ZodISODate:YI,ZodISODateTime:GI,ZodISODuration:XI,ZodISOTime:KI,ZodIntersection:uQ,ZodIssueCode:VNe,ZodJWT:pE,ZodKSUID:aE,ZodLazy:NQ,ZodLiteral:pQ,ZodMAC:QJ,ZodMap:fQ,ZodNaN:jQ,ZodNanoID:tE,ZodNever:oQ,ZodNonOptional:CE,ZodNull:nQ,ZodNullable:vQ,ZodNumber:M3,ZodNumberFormat:lg,ZodObject:O3,ZodOptional:SE,ZodPipe:jE,ZodPrefault:_Q,ZodPromise:MQ,ZodReadonly:TQ,ZodRealError:bs,ZodRecord:wE,ZodSet:hQ,ZodString:E3,ZodStringFormat:Tr,ZodSuccess:kQ,ZodSymbol:eQ,ZodTemplateLiteral:EQ,ZodTransform:gQ,ZodTuple:dQ,ZodType:rn,ZodULID:iE,ZodURL:$3,ZodUUID:od,ZodUndefined:tQ,ZodUnion:_E,ZodUnknown:iQ,ZodVoid:aQ,ZodXID:oE,_ZodString:JI,_default:bQ,_function:RQ,any:_Ne,array:Pr,base64:rNe,base64url:iNe,bigint:mNe,boolean:ad,catch:CQ,check:zNe,cidrv4:tNe,cidrv6:nNe,clone:il,codec:RNe,coerce:KNe,config:da,core:REe,cuid:qEe,cuid2:GEe,custom:DNe,date:wNe,decode:ZJ,decodeAsync:GJ,describe:ANe,discriminatedUnion:sd,e164:oNe,email:zEe,emoji:HEe,encode:HJ,encodeAsync:qJ,endsWith:FI,enum:_s,file:NNe,flattenError:UT,float32:dNe,float64:fNe,formatError:WT,function:RQ,getErrorMap:ZNe,globalRegistry:Gl,gt:yp,gte:ys,guid:DEe,hash:cNe,hex:uNe,hostname:lNe,httpUrl:VEe,includes:DI,instanceof:BNe,int:mE,int32:hNe,int64:gNe,intersection:cQ,ipv4:JEe,ipv6:eNe,iso:OEe,json:WNe,jwt:aNe,keyof:kNe,ksuid:XEe,lazy:$Q,length:I3,literal:ft,locales:FX,looseObject:CNe,lowercase:PI,lt:vp,lte:Yl,mac:QEe,map:TNe,maxLength:T3,maxSize:j3,meta:FNe,mime:BI,minLength:sg,minSize:lb,multipleOf:sb,nan:LNe,nanoid:ZEe,nativeEnum:ENe,negative:wJ,never:yE,nonnegative:SJ,nonoptional:wQ,nonpositive:kJ,normalize:UI,null:vE,nullable:xs,nullish:$Ne,number:oe,object:kt,optional:z3,overwrite:Af,parse:BJ,parseAsync:UJ,partialRecord:jNe,pipe:D3,positive:xJ,prefault:xQ,preprocess:zQ,prettifyError:aY,promise:PNe,property:CJ,readonly:IQ,record:db,refine:OQ,regex:OI,regexes:tI,registry:hI,safeDecode:KJ,safeDecodeAsync:JJ,safeEncode:YJ,safeEncodeAsync:XJ,safeParse:WJ,safeParseAsync:VJ,set:INe,setErrorMap:HNe,size:RI,slugify:ZI,startsWith:AI,strictObject:SNe,string:Et,stringFormat:sNe,stringbool:UNe,success:MNe,superRefine:PQ,symbol:yNe,templateLiteral:ONe,toJSONSchema:OJ,toLowerCase:VI,toUpperCase:HI,transform:kE,treeifyError:iY,trim:WI,tuple:xE,uint32:pNe,uint64:vNe,ulid:YEe,undefined:bNe,union:P3,unknown:ug,uppercase:zI,url:WEe,util:nY,uuid:AEe,uuidv4:FEe,uuidv6:BEe,uuidv7:UEe,void:xNe,xid:KEe},Symbol.toStringTag,{value:"Module"})),DQ=_s(["Frankendancer","Firedancer"]),EE=DQ.enum,ln=kt({topic:ft("summary")}),AQ=kt({topic:ft("epoch")}),cg=kt({topic:ft("gossip")}),FQ=kt({topic:ft("peers")}),qu=kt({topic:ft("slot")}),BQ=kt({topic:ft("block_engine")}),F3=kt({topic:ft("wait_for_supermajority")});sd("topic",[ln,AQ,cg,FQ,qu,BQ,F3]);const JNe=Et(),QNe=_s(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),e$e=Et(),t$e=Et(),n$e=Et(),r$e=Zt(),UQ=_s(["perf","balanced","revenue"]),ld=UQ.enum,NE=_s(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","cswtch","genesi","diag","event"]),i$e=kt({kind:Et(),kind_id:oe()}),WQ=Zt();Zt();const o$e=oe(),a$e=oe(),s$e=oe(),l$e=oe().nullable(),u$e=oe().nullable(),c$e=kt({repair:oe().array(),turbine:oe().array()}),d$e=jo(),f$e=oe(),h$e=oe().nullable(),p$e=oe().nullable(),m$e=oe(),g$e=oe().nullable(),v$e=oe(),y$e=oe(),b$e=kt({total:oe(),vote:oe(),nonvote_success:oe(),nonvote_failed:oe()}),_$e=kt({ingress:Pr(oe()),egress:Pr(oe())}),x$e=kt({pack_cranked:oe(),pack_retained:oe(),resolv_retained:oe(),quic:oe(),udp:oe(),gossip:oe(),block_engine:oe()}),w$e=kt({net_overrun:oe(),quic_overrun:oe(),quic_frag_drop:oe(),quic_abandoned:oe(),tpu_quic_invalid:oe(),tpu_udp_invalid:oe(),verify_overrun:oe(),verify_parse:oe(),verify_failed:oe(),verify_duplicate:oe(),dedup_duplicate:oe(),resolv_lut_failed:oe(),resolv_expired:oe(),resolv_no_ledger:oe(),resolv_ancient:oe(),resolv_retained:oe(),pack_invalid:oe(),pack_already_executed:oe(),pack_invalid_bundle:oe(),pack_retained:oe(),pack_leader_slow:oe(),pack_wait_full:oe(),pack_expired:oe(),bank_invalid:oe(),bank_nonce_already_advanced:oe(),bank_nonce_advance_failed:oe(),bank_nonce_wrong_blockhash:oe(),block_success:oe(),block_fail:oe()}),VQ=kt({in:x$e,out:w$e}),k$e=kt({next_leader_slot:oe().nullable(),waterfall:VQ}),HQ=kt({net_in:oe(),quic:oe(),verify:oe(),bundle_rtt_smoothed_millis:oe(),bundle_rx_delay_millis_p90:oe(),dedup:oe(),pack:oe(),bank:oe(),poh:oe(),shred:oe(),store:oe(),net_out:oe()}),S$e=kt({next_leader_slot:oe().nullable(),tile_primary_metric:HQ}),C$e=kt({timers:Pr(Pr(oe()).nullable()),sched_timers:Pr(Pr(oe()).nullable()),in_backp:Pr(ad().nullable()),backp_msgs:Pr(oe().nullable()),alive:Pr(oe().nullable()),nvcsw:Pr(oe().nullable()),nivcsw:Pr(oe().nullable()),last_cpu:Pr(oe().nullable()),minflt:Pr(oe().nullable()),majflt:Pr(oe().nullable())});kt({tile:Et(),kind_id:oe(),idle:oe()});const j$e=_s(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),T$e=kt({phase:j$e,downloading_full_snapshot_slot:oe().nullable(),downloading_full_snapshot_peer:Et().nullable(),downloading_full_snapshot_elapsed_secs:oe().nullable(),downloading_full_snapshot_remaining_secs:oe().nullable(),downloading_full_snapshot_throughput:oe().nullable(),downloading_full_snapshot_total_bytes:jo().nullable(),downloading_full_snapshot_current_bytes:jo().nullable(),downloading_incremental_snapshot_slot:oe().nullable(),downloading_incremental_snapshot_peer:Et().nullable(),downloading_incremental_snapshot_elapsed_secs:oe().nullable(),downloading_incremental_snapshot_remaining_secs:oe().nullable(),downloading_incremental_snapshot_throughput:oe().nullable(),downloading_incremental_snapshot_total_bytes:jo().nullable(),downloading_incremental_snapshot_current_bytes:jo().nullable(),ledger_slot:oe().nullable(),ledger_max_slot:oe().nullable(),waiting_for_supermajority_slot:oe().nullable(),waiting_for_supermajority_stake_percent:oe().nullable()}),ZQ=_s(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]),wn=ZQ.enum,I$e=kt({phase:ZQ,joining_gossip_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_reset_count:oe().nullable().optional(),loading_full_snapshot_slot:oe().nullable().optional(),loading_full_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_path:Et().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_insert_accounts:oe().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:oe().nullable().optional(),loading_incremental_snapshot_reset_count:oe().nullable().optional(),loading_incremental_snapshot_slot:oe().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_path:Et().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_insert_accounts:oe().nullable().optional(),wait_for_supermajority_bank_hash:Et().nullable().optional(),wait_for_supermajority_shred_version:Et().nullable().optional(),wait_for_supermajority_attempt:oe().nullable().optional(),wait_for_supermajority_total_stake:Zt().nullable().optional(),wait_for_supermajority_connected_stake:Zt().nullable().optional(),wait_for_supermajority_total_peers:oe().nullable().optional(),wait_for_supermajority_connected_peers:oe().nullable().optional(),catching_up_elapsed_seconds:oe().nullable().optional(),catching_up_first_replay_slot:oe().nullable().optional()}),E$e=zQ(e=>{if(!e||typeof e!="object"||Array.isArray(e))return e;const t=e;return{...t,txn_preload_end_timestamps_nanos:t.txn_preload_end_timestamps_nanos??t.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:t.txn_start_timestamps_nanos??t.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:t.txn_load_end_timestamps_nanos??t.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:t.txn_end_timestamps_nanos??t.txn_commit_start_timestamps_nanos}},kt({start_timestamp_nanos:Zt(),target_end_timestamp_nanos:Zt(),txn_mb_start_timestamps_nanos:Zt().array(),txn_mb_end_timestamps_nanos:Zt().array(),txn_compute_units_requested:oe().array(),txn_compute_units_consumed:oe().array(),txn_transaction_fee:Zt().array(),txn_priority_fee:Zt().array(),txn_tips:Zt().array(),txn_error_code:oe().array(),txn_from_bundle:ad().array(),txn_is_simple_vote:ad().array(),txn_bank_idx:oe().array(),txn_preload_end_timestamps_nanos:Zt().array(),txn_start_timestamps_nanos:Zt().array(),txn_load_end_timestamps_nanos:Zt().array(),txn_end_timestamps_nanos:Zt().array(),txn_commit_end_timestamps_nanos:Zt().array().optional(),txn_arrival_timestamps_nanos:Zt().array(),txn_microblock_id:oe().array(),txn_landed:ad().array(),txn_signature:Et().array(),txn_source_ipv4:Et().array(),txn_source_tpu:Et().array()})),N$e=_s(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),$$e=kt({slot:oe(),mine:ad(),skipped:ad(),level:N$e,success_nonvote_transaction_cnt:oe().nullable(),failed_nonvote_transaction_cnt:oe().nullable(),success_vote_transaction_cnt:oe().nullable(),failed_vote_transaction_cnt:oe().nullable(),priority_fee:Zt().nullable(),transaction_fee:Zt().nullable(),tips:Zt().nullable(),max_compute_units:oe().nullable(),compute_units:oe().nullable(),duration_nanos:oe().nullable(),completed_time_nanos:Zt().nullable(),vote_latency:oe().nullable()}),M$e=Pr(xE([oe(),oe(),oe(),oe()])),L$e=_s(["voting","non-voting","delinquent"]),R$e=oe(),O$e=kt({epoch:oe(),skip_rate:oe()}),P$e=kt({hits:oe(),lookups:oe(),insertions:oe(),insertion_bytes:oe(),evictions:oe(),eviction_bytes:oe(),spills:oe(),spill_bytes:oe(),free_bytes:oe(),size_bytes:oe()}),z$e=sd("key",[ln.extend({key:ft("ping"),value:vE(),id:oe()}),ln.extend({key:ft("version"),value:JNe}),ln.extend({key:ft("cluster"),value:QNe}),ln.extend({key:ft("commit_hash"),value:e$e}),ln.extend({key:ft("identity_key"),value:t$e}),ln.extend({key:ft("vote_key"),value:n$e}),ln.extend({key:ft("startup_time_nanos"),value:r$e}),ln.extend({key:ft("schedule_strategy"),value:UQ}),ln.extend({key:ft("tiles"),value:i$e.array()}),ln.extend({key:ft("identity_balance"),value:WQ}),ln.extend({key:ft("vote_balance"),value:WQ}),ln.extend({key:ft("root_slot"),value:o$e}),ln.extend({key:ft("optimistically_confirmed_slot"),value:a$e}),ln.extend({key:ft("completed_slot"),value:s$e}),ln.extend({key:ft("estimated_slot"),value:f$e}),ln.extend({key:ft("reset_slot"),value:h$e}),ln.extend({key:ft("storage_slot"),value:p$e}),ln.extend({key:ft("vote_slot"),value:m$e}),ln.extend({key:ft("slot_caught_up"),value:g$e}),ln.extend({key:ft("active_fork_count"),value:v$e}),ln.extend({key:ft("estimated_slot_duration_nanos"),value:y$e}),ln.extend({key:ft("estimated_tps"),value:b$e}),ln.extend({key:ft("live_network_metrics"),value:_$e}),ln.extend({key:ft("live_txn_waterfall"),value:k$e}),ln.extend({key:ft("live_tile_primary_metric"),value:S$e}),ln.extend({key:ft("live_tile_metrics"),value:C$e}),ln.extend({key:ft("live_tile_timers"),value:oe().array()}),ln.extend({key:ft("startup_progress"),value:T$e}),ln.extend({key:ft("boot_progress"),value:I$e}),ln.extend({key:ft("tps_history"),value:M$e}),ln.extend({key:ft("vote_state"),value:L$e}),ln.extend({key:ft("vote_distance"),value:R$e}),ln.extend({key:ft("skip_rate"),value:O$e}),ln.extend({key:ft("turbine_slot"),value:l$e}),ln.extend({key:ft("repair_slot"),value:u$e}),ln.extend({key:ft("catch_up_history"),value:c$e}),ln.extend({key:ft("server_time_nanos"),value:d$e}),ln.extend({key:ft("live_program_cache"),value:P$e})]),D$e=kt({epoch:oe(),start_time_nanos:Et().nullable(),end_time_nanos:Et().nullable(),start_slot:oe(),end_slot:oe(),excluded_stake_lamports:Zt(),staked_pubkeys:Et().array(),staked_lamports:Zt().array(),leader_slots:oe().array()}),A$e=sd("key",[AQ.extend({key:ft("new"),value:D$e})]),F$e=kt({num_push_messages_rx_success:oe(),num_push_messages_rx_failure:oe(),num_push_entries_rx_success:oe(),num_push_entries_rx_failure:oe(),num_push_entries_rx_duplicate:oe(),num_pull_response_messages_rx_success:oe(),num_pull_response_messages_rx_failure:oe(),num_pull_response_entries_rx_success:oe(),num_pull_response_entries_rx_failure:oe(),num_pull_response_entries_rx_duplicate:oe(),total_peers:oe(),total_stake:Zt(),connected_stake:Zt(),connected_staked_peers:oe(),connected_unstaked_peers:oe()}),qQ=kt({total_throughput:oe(),peer_names:Et().array(),peer_identities:Et().array(),peer_throughput:oe().array()}),B$e=kt({capacity:oe(),expired_count:oe(),evicted_count:oe(),count:oe().array(),count_tx:oe().array(),bytes_tx:oe().array()}),U$e=kt({num_bytes_rx:oe().array(),num_bytes_tx:oe().array(),num_messages_rx:oe().array(),num_messages_tx:oe().array()}),W$e=kt({health:F$e,ingress:qQ,egress:qQ,storage:B$e,messages:U$e}),V$e=oe(),GQ=P3([Et(),oe()]),YQ=db(Et(),db(Et(),GQ)).nullable(),H$e=kt({changes:Pr(kt({row_index:oe(),column_name:Et(),new_value:GQ}))}),Z$e=sd("key",[cg.extend({key:ft("network_stats"),value:W$e}),cg.extend({key:ft("peers_size_update"),value:V$e}),cg.extend({key:ft("query_scroll"),value:YQ}),cg.extend({key:ft("query_sort"),value:YQ}),cg.extend({key:ft("view_update"),value:H$e})]),q$e=kt({client_id:oe().nullable().optional(),wallclock:oe(),shred_version:oe(),version:Et().nullable(),feature_set:oe().nullable(),sockets:db(Et(),Et()),country_code:Et().nullable().optional(),city_name:Et().nullable().optional()}),G$e=kt({vote_account:Et(),activated_stake:Zt(),last_vote:xs(oe()),root_slot:xs(oe()),epoch_credits:oe(),commission:oe(),delinquent:ad()}),KQ=kt({name:xs(Et()),details:xs(Et()),website:xs(Et()),icon_url:xs(Et()),keybase_username:xs(Et())}),XQ=kt({identity_pubkey:Et(),gossip:xs(q$e),vote:Pr(G$e),info:xs(KQ)}),Y$e=kt({identity_pubkey:Et()}),K$e=kt({add:Pr(XQ).optional(),update:Pr(XQ).optional(),remove:Pr(Y$e).optional()}),X$e=sd("key",[FQ.extend({key:ft("update"),value:K$e})]),J$e=kt({timestamp_nanos:Et(),tile_timers:oe().array()}),Q$e=kt({timestamp_nanos:Zt(),regular:oe(),votes:oe(),conflicting:oe(),bundles:oe()}),eMe=kt({account:Et(),cost:oe()}),tMe=kt({used_total_block_cost:oe(),used_total_vote_cost:oe(),used_account_write_costs:eMe.array(),used_total_bytes:oe(),used_total_microblocks:oe(),max_total_block_cost:oe(),max_total_vote_cost:oe(),max_account_write_cost:oe(),max_total_bytes:oe(),max_total_microblocks:oe()}),nMe=kt({block_hash:Et().optional(),end_slot_reason:Et().optional(),slot_schedule_counts:oe().array(),end_slot_schedule_counts:oe().array(),pending_smallest_cost:oe().nullable(),pending_smallest_bytes:oe().nullable(),pending_vote_smallest_cost:oe().nullable(),pending_vote_smallest_bytes:oe().nullable()}),B3=kt({publish:$$e,waterfall:VQ.nullable().optional(),tile_primary_metric:HQ.nullable().optional(),tile_timers:J$e.array().nullable().optional(),scheduler_counts:Q$e.array().nullable().optional(),transactions:E$e.nullable().optional(),limits:tMe.nullable().optional(),scheduler_stats:nMe.nullable().optional()}),rMe=oe().array(),iMe=oe().array(),oMe=kt({slots_largest_tips:oe().array(),vals_largest_tips:Zt().array(),slots_smallest_tips:oe().array(),vals_smallest_tips:Zt().array(),slots_largest_fees:oe().array(),vals_largest_fees:Zt().array(),slots_smallest_fees:oe().array(),vals_smallest_fees:Zt().array(),slots_largest_rewards:oe().array(),vals_largest_rewards:Zt().array(),slots_smallest_rewards:oe().array(),vals_smallest_rewards:Zt().array(),slots_largest_duration:oe().array(),vals_largest_duration:Zt().array(),slots_smallest_duration:oe().array(),vals_smallest_duration:Zt().array(),slots_largest_compute_units:oe().array(),vals_largest_compute_units:Zt().array(),slots_smallest_compute_units:oe().array(),vals_smallest_compute_units:Zt().array(),slots_largest_skipped:oe().array(),vals_largest_skipped:Zt().array(),slots_smallest_skipped:oe().array(),vals_smallest_skipped:Zt().array()});var Ir=(e=>(e[e.shred_repair_request=0]="shred_repair_request",e[e.shred_received_turbine=1]="shred_received_turbine",e[e.shred_received_repair=2]="shred_received_repair",e[e.shred_replayed=3]="shred_replayed",e[e.slot_complete=4]="slot_complete",e[e.shred_published=6]="shred_published",e))(Ir||{});const aMe=kt({reference_slot:oe(),reference_ts:Zt(),slot_delta:oe().array(),shred_idx:oe().nullable().array(),event:oe().array(),event_ts_delta:jo().array()}),sMe=sd("key",[qu.extend({key:ft("skipped_history"),value:rMe}),qu.extend({key:ft("skipped_history_cluster"),value:iMe}),qu.extend({key:ft("update"),value:B3}),qu.extend({key:ft("query"),value:B3.nullable()}),qu.extend({key:ft("query_detailed"),value:B3.nullable()}),qu.extend({key:ft("query_transactions"),value:B3.nullable()}),qu.extend({key:ft("query_rankings"),value:oMe}),qu.extend({key:ft("live_shreds"),value:aMe}),qu.extend({key:ft("late_votes_history"),value:kt({slot:oe().array(),latency:oe().nullable().array()})})]),lMe=_s(["disconnected","connecting","connected"]),uMe=kt({name:Et(),url:Et(),ip:Et().optional(),status:lMe}),cMe=sd("key",[BQ.extend({key:ft("update"),value:uMe})]),dMe=kt({staked_pubkeys:Et().array(),staked_lamports:Zt().array(),infos:Pr(KQ.nullable())}),fMe=Et().array(),hMe=Et().array(),pMe=sd("key",[F3.extend({key:ft("stakes"),value:dMe}),F3.extend({key:ft("peer_add"),value:fMe}),F3.extend({key:ft("peer_remove"),value:hMe})]),JQ=DQ.safeParse("Firedancer".trim()),hb=JQ.error?EE.Frankendancer:JQ.data,_i=hb===EE.Frankendancer,Vi=hb===EE.Firedancer,Gu=fe(e=>{var t;return(t=e(Hl))==null?void 0:t.phase}),QQ=fe(e=>{const t=e(U3),n=e(Gu);return t.find(({phase:r})=>r===n)}),mMe=fe(e=>{const t=e(Hl);return!!(t!=null&&t.wait_for_supermajority_bank_hash)&&!!(t!=null&&t.wait_for_supermajority_shred_version)}),U3=fe(e=>e(mMe)?[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.waiting_for_supermajority,completionFraction:.25},{phase:wn.running,completionFraction:0}]:[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.catching_up,completionFraction:.25},{phase:wn.running,completionFraction:0}]),eee=fe(e=>{const t=e(U3),n=e(Gu),r=new Set;for(const i of t){if(i.phase===n)break;r.add(i.phase)}return r}),ol=fe(!0),W3=fe(!0),tee=fe(null),V3=fe(e=>{const t=e(ol);return t?_i?t:t&&e(W3):!1}),nee=fe(e=>{var t,n;return((t=e(Hl))==null?void 0:t.loading_incremental_snapshot_slot)??((n=e(Hl))==null?void 0:n.loading_full_snapshot_slot)}),ree="/assets/firedancer-D_J0EzUc.svg",gMe="/assets/frankendancer-0Top5G94.svg",vMe="_text_o41r7_1",yMe="_container_o41r7_6",iee={text:vMe,container:yMe};function bMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsx(V,{gap:"2",align:"center",style:n,className:iee.container,children:u.jsx(q,{className:iee.text,children:e})})}const _Me="_container_1tszc_1",xMe="_text_1tszc_11",oee={container:_Me,text:xMe};function wMe({label:e,hide:t,rightChildren:n,bottomChildren:r}){const i=t?{visibility:"hidden"}:{};return u.jsxs("div",{className:oee.container,style:i,children:[u.jsx(V,{justify:"center",align:"center",children:u.jsx(Iy,{})}),u.jsxs(V,{gap:"2",align:"center",children:[u.jsxs(q,{className:oee.text,children:[e,"..."]}),u.jsx(Mt,{flexGrow:"1"}),n]}),r&&u.jsxs(u.Fragment,{children:[u.jsx("div",{}),r]})]})}const kMe="data:image/svg+xml,%3csvg%20width='14'%20height='11'%20viewBox='0%200%2014%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.75%208.6748L12.6953%200.729492L13.75%201.78418L4.75%2010.7842L0.566406%206.60059L1.62109%205.5459L4.75%208.6748Z'%20fill='%231D863B'/%3e%3c/svg%3e",SMe="_text_1ont6_1",CMe="_container_1ont6_7",aee={text:SMe,container:CMe};function jMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsxs(V,{gap:"2",align:"center",style:n,className:aee.container,children:[u.jsx("img",{src:kMe,alt:"complete"}),u.jsx(q,{className:aee.text,children:e})]})}const TMe="_label_1ojid_1",IMe="_value_1ojid_6",see={label:TMe,value:IMe};function ud({label:e,value:t}){return u.jsxs(V,{gap:"1",flexGrow:"1",children:[u.jsx(q,{className:see.label,children:e}),u.jsx(q,{className:see.value,children:t??"-"})]})}function EMe(){const e=X(Zu);return e?u.jsxs(V,{children:[u.jsx(ud,{label:"Current Slot",value:e.ledger_slot}),u.jsx(ud,{label:"Max Slot",value:e.ledger_max_slot})]}):null}const NMe="_progress_gtr5g_1",$Me="_text_gtr5g_11",H3={progress:NMe,text:$Me};class bp extends Error{}class MMe extends bp{constructor(t){super(`Invalid DateTime: ${t.toMessage()}`)}}class LMe extends bp{constructor(t){super(`Invalid Interval: ${t.toMessage()}`)}}class RMe extends bp{constructor(t){super(`Invalid Duration: ${t.toMessage()}`)}}class dg extends bp{}class lee extends bp{constructor(t){super(`Invalid unit ${t}`)}}class Bo extends bp{}class Ff extends bp{constructor(){super("Zone is an abstract class")}}const nt="numeric",Kl="short",ws="long",Z3={year:nt,month:nt,day:nt},uee={year:nt,month:Kl,day:nt},OMe={year:nt,month:Kl,day:nt,weekday:Kl},cee={year:nt,month:ws,day:nt},dee={year:nt,month:ws,day:nt,weekday:ws},fee={hour:nt,minute:nt},hee={hour:nt,minute:nt,second:nt},pee={hour:nt,minute:nt,second:nt,timeZoneName:Kl},mee={hour:nt,minute:nt,second:nt,timeZoneName:ws},gee={hour:nt,minute:nt,hourCycle:"h23"},vee={hour:nt,minute:nt,second:nt,hourCycle:"h23"},yee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:Kl},bee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:ws},_ee={year:nt,month:nt,day:nt,hour:nt,minute:nt},xee={year:nt,month:nt,day:nt,hour:nt,minute:nt,second:nt},wee={year:nt,month:Kl,day:nt,hour:nt,minute:nt},kee={year:nt,month:Kl,day:nt,hour:nt,minute:nt,second:nt},PMe={year:nt,month:Kl,day:nt,weekday:Kl,hour:nt,minute:nt},See={year:nt,month:ws,day:nt,hour:nt,minute:nt,timeZoneName:Kl},Cee={year:nt,month:ws,day:nt,hour:nt,minute:nt,second:nt,timeZoneName:Kl},jee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,timeZoneName:ws},Tee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,second:nt,timeZoneName:ws};class pb{get type(){throw new Ff}get name(){throw new Ff}get ianaName(){return this.name}get isUniversal(){throw new Ff}offsetName(t,n){throw new Ff}formatOffset(t,n){throw new Ff}offset(t){throw new Ff}equals(t){throw new Ff}get isValid(){throw new Ff}}let $E=null;class hC extends pb{static get instance(){return $E===null&&($E=new hC),$E}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(t,{format:n,locale:r}){return Qee(t,n,r)}formatOffset(t,n){return vb(this.offset(t),n)}offset(t){return-new Date(t).getTimezoneOffset()}equals(t){return t.type==="system"}get isValid(){return!0}}const ME=new Map;function zMe(e){let t=ME.get(e);return t===void 0&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),ME.set(e,t)),t}const DMe={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function AMe(e,t){const n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,i,o,a,s,l,c,d]=r;return[a,i,o,s,l,c,d]}function FMe(e,t){const n=e.formatToParts(t),r=[];for(let i=0;i=0?v:1e3+v,(f-p)/(60*1e3)}equals(t){return t.type==="iana"&&t.name===this.name}get isValid(){return this.valid}}let Iee={};function BMe(e,t={}){const n=JSON.stringify([e,t]);let r=Iee[n];return r||(r=new Intl.ListFormat(e,t),Iee[n]=r),r}const RE=new Map;function OE(e,t={}){const n=JSON.stringify([e,t]);let r=RE.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),RE.set(n,r)),r}const PE=new Map;function UMe(e,t={}){const n=JSON.stringify([e,t]);let r=PE.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),PE.set(n,r)),r}const zE=new Map;function WMe(e,t={}){const{base:n,...r}=t,i=JSON.stringify([e,r]);let o=zE.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(e,t),zE.set(i,o)),o}let q3=null;function VMe(){return q3||(q3=new Intl.DateTimeFormat().resolvedOptions().locale,q3)}const DE=new Map;function Eee(e){let t=DE.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),DE.set(e,t)),t}const AE=new Map;function HMe(e){let t=AE.get(e);if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in t||(t={...Nee,...t}),AE.set(e,t)}return t}function ZMe(e){const t=e.indexOf("-x-");t!==-1&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(n===-1)return[e];{let r,i;try{r=OE(e).resolvedOptions(),i=e}catch{const s=e.substring(0,n);r=OE(s).resolvedOptions(),i=s}const{numberingSystem:o,calendar:a}=r;return[i,o,a]}}function qMe(e,t,n){return(n||t)&&(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`)),e}function GMe(e){const t=[];for(let n=1;n<=12;n++){const r=jt.utc(2009,n,1);t.push(e(r))}return t}function YMe(e){const t=[];for(let n=1;n<=7;n++){const r=jt.utc(2016,11,13+n);t.push(e(r))}return t}function G3(e,t,n,r){const i=e.listingMode();return i==="error"?null:i==="en"?n(t):r(t)}function KMe(e){return e.numberingSystem&&e.numberingSystem!=="latn"?!1:e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||Eee(e.locale).numberingSystem==="latn"}class XMe{constructor(t,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;const{padTo:i,floor:o,...a}=r;if(!n||Object.keys(a).length>0){const s={useGrouping:!1,...r};r.padTo>0&&(s.minimumIntegerDigits=r.padTo),this.inf=UMe(t,s)}}format(t){if(this.inf){const n=this.floor?Math.floor(t):t;return this.inf.format(n)}else{const n=this.floor?Math.floor(t):GE(t,3);return Li(n,this.padTo)}}}class JMe{constructor(t,n,r){this.opts=r,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=t;else if(t.zone.type==="fixed"){const a=-1*(t.offset/60),s=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;t.offset!==0&&Od.create(s).valid?(i=s,this.dt=t):(i="UTC",this.dt=t.offset===0?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)}else t.zone.type==="system"?this.dt=t:t.zone.type==="iana"?(this.dt=t,i=t.zone.name):(i="UTC",this.dt=t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone);const o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=OE(n,o)}format(){return this.originalZone?this.formatToParts().map(({value:t})=>t).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(n=>{if(n.type==="timeZoneName"){const r=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:r}}else return n}):t}resolvedOptions(){return this.dtf.resolvedOptions()}}class QMe{constructor(t,n,r){this.opts={style:"long",...r},!n&&Yee()&&(this.rtf=WMe(t,r))}format(t,n){return this.rtf?this.rtf.format(t,n):xLe(n,t,this.opts.numeric,this.opts.style!=="long")}formatToParts(t,n){return this.rtf?this.rtf.formatToParts(t,n):[]}}const Nee={firstDay:1,minimalDays:4,weekend:[6,7]};class Gn{static fromOpts(t){return Gn.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,o=!1){const a=t||ci.defaultLocale,s=a||(o?"en-US":VMe()),l=n||ci.defaultNumberingSystem,c=r||ci.defaultOutputCalendar,d=ZE(i)||ci.defaultWeekSettings;return new Gn(s,l,c,d,a)}static resetCache(){q3=null,RE.clear(),PE.clear(),zE.clear(),DE.clear(),AE.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return Gn.create(t,n,r,i)}constructor(t,n,r,i,o){const[a,s,l]=ZMe(t);this.locale=a,this.numberingSystem=n||s||null,this.outputCalendar=r||l||null,this.weekSettings=i,this.intl=qMe(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=KMe(this)),this.fastNumbersCached}listingMode(){const t=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return t&&n?"en":"intl"}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:Gn.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,ZE(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(t={}){return this.clone({...t,defaultToEN:!0})}redefaultToSystem(t={}){return this.clone({...t,defaultToEN:!1})}months(t,n=!1){return G3(this,t,nte,()=>{const r=this.intl==="ja"||this.intl.startsWith("ja-");n&=!r;const i=n?{month:t,day:"numeric"}:{month:t},o=n?"format":"standalone";if(!this.monthsCache[o][t]){const a=r?s=>this.dtFormatter(s,i).format():s=>this.extract(s,i,"month");this.monthsCache[o][t]=GMe(a)}return this.monthsCache[o][t]})}weekdays(t,n=!1){return G3(this,t,ote,()=>{const r=n?{weekday:t,year:"numeric",month:"long",day:"numeric"}:{weekday:t},i=n?"format":"standalone";return this.weekdaysCache[i][t]||(this.weekdaysCache[i][t]=YMe(o=>this.extract(o,r,"weekday"))),this.weekdaysCache[i][t]})}meridiems(){return G3(this,void 0,()=>ate,()=>{if(!this.meridiemCache){const t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[jt.utc(2016,11,13,9),jt.utc(2016,11,13,19)].map(n=>this.extract(n,t,"dayperiod"))}return this.meridiemCache})}eras(t){return G3(this,t,ste,()=>{const n={era:t};return this.eraCache[t]||(this.eraCache[t]=[jt.utc(-40,1,1),jt.utc(2017,1,1)].map(r=>this.extract(r,n,"era"))),this.eraCache[t]})}extract(t,n,r){const i=this.dtFormatter(t,n),o=i.formatToParts(),a=o.find(s=>s.type.toLowerCase()===r);return a?a.value:null}numberFormatter(t={}){return new XMe(this.intl,t.forceSimple||this.fastNumbers,t)}dtFormatter(t,n={}){return new JMe(t,this.intl,n)}relFormatter(t={}){return new QMe(this.intl,this.isEnglish(),t)}listFormatter(t={}){return BMe(this.intl,t)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Eee(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Kee()?HMe(this.locale):Nee}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let FE=null;class ba extends pb{static get utcInstance(){return FE===null&&(FE=new ba(0)),FE}static instance(t){return t===0?ba.utcInstance:new ba(t)}static parseSpecifier(t){if(t){const n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new ba(Q3(n[1],n[2]))}return null}constructor(t){super(),this.fixed=t}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${vb(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${vb(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(t,n){return vb(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(t){return t.type==="fixed"&&t.fixed===this.fixed}get isValid(){return!0}}class eLe extends pb{constructor(t){super(),this.zoneName=t}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Bf(e,t){if(Pt(e)||e===null)return t;if(e instanceof pb)return e;if(aLe(e)){const n=e.toLowerCase();return n==="default"?t:n==="local"||n==="system"?hC.instance:n==="utc"||n==="gmt"?ba.utcInstance:ba.parseSpecifier(n)||Od.create(e)}else return Uf(e)?ba.instance(e):typeof e=="object"&&"offset"in e&&typeof e.offset=="function"?e:new eLe(e)}const BE={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},$ee={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},tLe=BE.hanidec.replace(/[\[|\]]/g,"").split("");function nLe(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n=o&&r<=a&&(t+=r-o)}}return parseInt(t,10)}else return t}const UE=new Map;function rLe(){UE.clear()}function Xl({numberingSystem:e},t=""){const n=e||"latn";let r=UE.get(n);r===void 0&&(r=new Map,UE.set(n,r));let i=r.get(t);return i===void 0&&(i=new RegExp(`${BE[n]}${t}`),r.set(t,i)),i}let Mee=()=>Date.now(),Lee="system",Ree=null,Oee=null,Pee=null,zee=60,Dee,Aee=null;class ci{static get now(){return Mee}static set now(t){Mee=t}static set defaultZone(t){Lee=t}static get defaultZone(){return Bf(Lee,hC.instance)}static get defaultLocale(){return Ree}static set defaultLocale(t){Ree=t}static get defaultNumberingSystem(){return Oee}static set defaultNumberingSystem(t){Oee=t}static get defaultOutputCalendar(){return Pee}static set defaultOutputCalendar(t){Pee=t}static get defaultWeekSettings(){return Aee}static set defaultWeekSettings(t){Aee=ZE(t)}static get twoDigitCutoffYear(){return zee}static set twoDigitCutoffYear(t){zee=t%100}static get throwOnInvalid(){return Dee}static set throwOnInvalid(t){Dee=t}static resetCaches(){Gn.resetCache(),Od.resetCache(),jt.resetCache(),rLe()}}class Jl{constructor(t,n){this.reason=t,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Fee=[0,31,59,90,120,151,181,212,243,273,304,334],Bee=[0,31,60,91,121,152,182,213,244,274,305,335];function al(e,t){return new Jl("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function WE(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return i===0?7:i}function Uee(e,t,n){return n+(mb(e)?Bee:Fee)[t-1]}function Wee(e,t){const n=mb(e)?Bee:Fee,r=n.findIndex(o=>ogb(r,t,n)?(c=r+1,l=1):c=r,{weekYear:c,weekNumber:l,weekday:s,...tk(e)}}function Vee(e,t=4,n=1){const{weekYear:r,weekNumber:i,weekday:o}=e,a=VE(WE(r,1,t),n),s=hg(r);let l=i*7+o-a-7+t,c;l<1?(c=r-1,l+=hg(c)):l>s?(c=r+1,l-=hg(r)):c=r;const{month:d,day:f}=Wee(c,l);return{year:c,month:d,day:f,...tk(e)}}function HE(e){const{year:t,month:n,day:r}=e,i=Uee(t,n,r);return{year:t,ordinal:i,...tk(e)}}function Hee(e){const{year:t,ordinal:n}=e,{month:r,day:i}=Wee(t,n);return{year:t,month:r,day:i,...tk(e)}}function Zee(e,t){if(!Pt(e.localWeekday)||!Pt(e.localWeekNumber)||!Pt(e.localWeekYear)){if(!Pt(e.weekday)||!Pt(e.weekNumber)||!Pt(e.weekYear))throw new dg("Cannot mix locale-based week fields with ISO-based week fields");return Pt(e.localWeekday)||(e.weekday=e.localWeekday),Pt(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),Pt(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function iLe(e,t=4,n=1){const r=K3(e.weekYear),i=sl(e.weekNumber,1,gb(e.weekYear,t,n)),o=sl(e.weekday,1,7);return r?i?o?!1:al("weekday",e.weekday):al("week",e.weekNumber):al("weekYear",e.weekYear)}function oLe(e){const t=K3(e.year),n=sl(e.ordinal,1,hg(e.year));return t?n?!1:al("ordinal",e.ordinal):al("year",e.year)}function qee(e){const t=K3(e.year),n=sl(e.month,1,12),r=sl(e.day,1,X3(e.year,e.month));return t?n?r?!1:al("day",e.day):al("month",e.month):al("year",e.year)}function Gee(e){const{hour:t,minute:n,second:r,millisecond:i}=e,o=sl(t,0,23)||t===24&&n===0&&r===0&&i===0,a=sl(n,0,59),s=sl(r,0,59),l=sl(i,0,999);return o?a?s?l?!1:al("millisecond",i):al("second",r):al("minute",n):al("hour",t)}function Pt(e){return typeof e>"u"}function Uf(e){return typeof e=="number"}function K3(e){return typeof e=="number"&&e%1===0}function aLe(e){return typeof e=="string"}function sLe(e){return Object.prototype.toString.call(e)==="[object Date]"}function Yee(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Kee(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function lLe(e){return Array.isArray(e)?e:[e]}function Xee(e,t,n){if(e.length!==0)return e.reduce((r,i)=>{const o=[t(i),i];return r&&n(r[0],o[0])===r[0]?r:o},null)[1]}function uLe(e,t){return t.reduce((n,r)=>(n[r]=e[r],n),{})}function fg(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ZE(e){if(e==null)return null;if(typeof e!="object")throw new Bo("Week settings must be an object");if(!sl(e.firstDay,1,7)||!sl(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(t=>!sl(t,1,7)))throw new Bo("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function sl(e,t,n){return K3(e)&&e>=t&&e<=n}function cLe(e,t){return e-t*Math.floor(e/t)}function Li(e,t=2){const n=e<0;let r;return n?r="-"+(""+-e).padStart(t,"0"):r=(""+e).padStart(t,"0"),r}function Wf(e){if(!(Pt(e)||e===null||e===""))return parseInt(e,10)}function _p(e){if(!(Pt(e)||e===null||e===""))return parseFloat(e)}function qE(e){if(!(Pt(e)||e===null||e==="")){const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function GE(e,t,n="round"){const r=10**t;switch(n){case"expand":return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case"trunc":return Math.trunc(e*r)/r;case"round":return Math.round(e*r)/r;case"floor":return Math.floor(e*r)/r;case"ceil":return Math.ceil(e*r)/r;default:throw new RangeError(`Value rounding ${n} is out of range`)}}function mb(e){return e%4===0&&(e%100!==0||e%400===0)}function hg(e){return mb(e)?366:365}function X3(e,t){const n=cLe(t-1,12)+1,r=e+(t-n)/12;return n===2?mb(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function J3(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Jee(e,t,n){return-VE(WE(e,1,t),n)+t-1}function gb(e,t=4,n=1){const r=Jee(e,t,n),i=Jee(e+1,t,n);return(hg(e)-r+i)/7}function YE(e){return e>99?e:e>ci.twoDigitCutoffYear?1900+e:2e3+e}function Qee(e,t,n,r=null){const i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);const a={timeZoneName:t,...o},s=new Intl.DateTimeFormat(n,a).formatToParts(i).find(l=>l.type.toLowerCase()==="timezonename");return s?s.value:null}function Q3(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function ete(e){const t=Number(e);if(typeof e=="boolean"||e===""||!Number.isFinite(t))throw new Bo(`Invalid unit value ${e}`);return t}function ek(e,t){const n={};for(const r in e)if(fg(e,r)){const i=e[r];if(i==null)continue;n[t(r)]=ete(i)}return n}function vb(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return`${i}${Li(n,2)}:${Li(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${Li(n,2)}${Li(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function tk(e){return uLe(e,["hour","minute","second","millisecond"])}const dLe=["January","February","March","April","May","June","July","August","September","October","November","December"],tte=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],fLe=["J","F","M","A","M","J","J","A","S","O","N","D"];function nte(e){switch(e){case"narrow":return[...fLe];case"short":return[...tte];case"long":return[...dLe];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const rte=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ite=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],hLe=["M","T","W","T","F","S","S"];function ote(e){switch(e){case"narrow":return[...hLe];case"short":return[...ite];case"long":return[...rte];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const ate=["AM","PM"],pLe=["Before Christ","Anno Domini"],mLe=["BC","AD"],gLe=["B","A"];function ste(e){switch(e){case"narrow":return[...gLe];case"short":return[...mLe];case"long":return[...pLe];default:return null}}function vLe(e){return ate[e.hour<12?0:1]}function yLe(e,t){return ote(t)[e.weekday-1]}function bLe(e,t){return nte(t)[e.month-1]}function _Le(e,t){return ste(t)[e.year<0?0:1]}function xLe(e,t,n="always",r=!1){const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(e)===-1;if(n==="auto"&&o){const f=e==="days";switch(t){case 1:return f?"tomorrow":`next ${i[e][0]}`;case-1:return f?"yesterday":`last ${i[e][0]}`;case 0:return f?"today":`this ${i[e][0]}`}}const a=Object.is(t,-0)||t<0,s=Math.abs(t),l=s===1,c=i[e],d=r?l?c[1]:c[2]||c[1]:l?i[e][0]:e;return a?`${s} ${d} ago`:`in ${s} ${d}`}function lte(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const wLe={D:Z3,DD:uee,DDD:cee,DDDD:dee,t:fee,tt:hee,ttt:pee,tttt:mee,T:gee,TT:vee,TTT:yee,TTTT:bee,f:_ee,ff:wee,fff:See,ffff:jee,F:xee,FF:kee,FFF:Cee,FFFF:Tee};class Yo{static create(t,n={}){return new Yo(t,n)}static parseFormat(t){let n=null,r="",i=!1;const o=[];for(let a=0;a0||i)&&o.push({literal:i||/^\s+$/.test(r),val:r===""?"'":r}),n=null,r="",i=!i):i||s===n?r+=s:(r.length>0&&o.push({literal:/^\s+$/.test(r),val:r}),r=s,n=s)}return r.length>0&&o.push({literal:i||/^\s+$/.test(r),val:r}),o}static macroTokenToFormatOpts(t){return wLe[t]}constructor(t,n){this.opts=n,this.loc=t,this.systemLoc=null}formatWithSystemDefault(t,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,{...this.opts,...n}).format()}dtFormatter(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n})}formatDateTime(t,n){return this.dtFormatter(t,n).format()}formatDateTimeParts(t,n){return this.dtFormatter(t,n).formatToParts()}formatInterval(t,n){return this.dtFormatter(t.start,n).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())}resolvedOptions(t,n){return this.dtFormatter(t,n).resolvedOptions()}num(t,n=0,r=void 0){if(this.opts.forceSimple)return Li(t,n);const i={...this.opts};return n>0&&(i.padTo=n),r&&(i.signDisplay=r),this.loc.numberFormatter(i).format(t)}formatDateTimeFromString(t,n){const r=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=(v,_)=>this.loc.extract(t,v,_),a=v=>t.isOffsetFixed&&t.offset===0&&v.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,v.format):"",s=()=>r?vLe(t):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(v,_)=>r?bLe(t,v):o(_?{month:v}:{month:v,day:"numeric"},"month"),c=(v,_)=>r?yLe(t,v):o(_?{weekday:v}:{weekday:v,month:"long",day:"numeric"},"weekday"),d=v=>{const _=Yo.macroTokenToFormatOpts(v);return _?this.formatWithSystemDefault(t,_):v},f=v=>r?_Le(t,v):o({era:v},"era"),p=v=>{switch(v){case"S":return this.num(t.millisecond);case"u":case"SSS":return this.num(t.millisecond,3);case"s":return this.num(t.second);case"ss":return this.num(t.second,2);case"uu":return this.num(Math.floor(t.millisecond/10),2);case"uuu":return this.num(Math.floor(t.millisecond/100));case"m":return this.num(t.minute);case"mm":return this.num(t.minute,2);case"h":return this.num(t.hour%12===0?12:t.hour%12);case"hh":return this.num(t.hour%12===0?12:t.hour%12,2);case"H":return this.num(t.hour);case"HH":return this.num(t.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:this.loc.locale});case"z":return t.zoneName;case"a":return s();case"d":return i?o({day:"numeric"},"day"):this.num(t.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(t.day,2);case"c":return this.num(t.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(t.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(t.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(t.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(t.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(t.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(t.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(t.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(t.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(t.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(t.weekYear.toString().slice(-2),2);case"kkkk":return this.num(t.weekYear,4);case"W":return this.num(t.weekNumber);case"WW":return this.num(t.weekNumber,2);case"n":return this.num(t.localWeekNumber);case"nn":return this.num(t.localWeekNumber,2);case"ii":return this.num(t.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(t.localWeekYear,4);case"o":return this.num(t.ordinal);case"ooo":return this.num(t.ordinal,3);case"q":return this.num(t.quarter);case"qq":return this.num(t.quarter,2);case"X":return this.num(Math.floor(t.ts/1e3));case"x":return this.num(t.ts);default:return d(v)}};return lte(Yo.parseFormat(n),p)}formatDurationFromString(t,n){const r=this.opts.signMode==="negativeLargestOnly"?-1:1,i=d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},o=(d,f)=>p=>{const v=i(p);if(v){const _=f.isNegativeDuration&&v!==f.largestUnit?r:1;let y;return this.opts.signMode==="negativeLargestOnly"&&v!==f.largestUnit?y="never":this.opts.signMode==="all"?y="always":y="auto",this.num(d.get(v)*_,p.length,y)}else return p},a=Yo.parseFormat(n),s=a.reduce((d,{literal:f,val:p})=>f?d:d.concat(p),[]),l=t.shiftTo(...s.map(i).filter(d=>d)),c={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return lte(a,o(l,c))}}const ute=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function pg(...e){const t=e.reduce((n,r)=>n+r.source,"");return RegExp(`^${t}$`)}function mg(...e){return t=>e.reduce(([n,r,i],o)=>{const[a,s,l]=o(t,i);return[{...n,...a},s||r,l]},[{},null,1]).slice(0,2)}function gg(e,...t){if(e==null)return[null,null];for(const[n,r]of t){const i=n.exec(e);if(i)return r(i)}return[null,null]}function cte(...e){return(t,n)=>{const r={};let i;for(i=0;iv!==void 0&&(_||v&&d)?-v:v;return[{years:p(_p(n)),months:p(_p(r)),weeks:p(_p(i)),days:p(_p(o)),hours:p(_p(a)),minutes:p(_p(s)),seconds:p(_p(l),l==="-0"),milliseconds:p(qE(c),f)}]}const OLe={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function JE(e,t,n,r,i,o,a){const s={year:t.length===2?YE(Wf(t)):Wf(t),month:tte.indexOf(n)+1,day:Wf(r),hour:Wf(i),minute:Wf(o)};return a&&(s.second=Wf(a)),e&&(s.weekday=e.length>3?rte.indexOf(e)+1:ite.indexOf(e)+1),s}const PLe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function zLe(e){const[,t,n,r,i,o,a,s,l,c,d,f]=e,p=JE(t,i,r,n,o,a,s);let v;return l?v=OLe[l]:c?v=0:v=Q3(d,f),[p,new ba(v)]}function DLe(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const ALe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,FLe=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,BLe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function pte(e){const[,t,n,r,i,o,a,s]=e;return[JE(t,i,r,n,o,a,s),ba.utcInstance]}function ULe(e){const[,t,n,r,i,o,a,s]=e;return[JE(t,s,n,r,i,o,a),ba.utcInstance]}const WLe=pg(SLe,XE),VLe=pg(CLe,XE),HLe=pg(jLe,XE),ZLe=pg(fte),mte=mg($Le,yg,yb,bb),qLe=mg(TLe,yg,yb,bb),GLe=mg(ILe,yg,yb,bb),YLe=mg(yg,yb,bb);function KLe(e){return gg(e,[WLe,mte],[VLe,qLe],[HLe,GLe],[ZLe,YLe])}function XLe(e){return gg(DLe(e),[PLe,zLe])}function JLe(e){return gg(e,[ALe,pte],[FLe,pte],[BLe,ULe])}function QLe(e){return gg(e,[LLe,RLe])}const eRe=mg(yg);function tRe(e){return gg(e,[MLe,eRe])}const nRe=pg(ELe,NLe),rRe=pg(hte),iRe=mg(yg,yb,bb);function oRe(e){return gg(e,[nRe,mte],[rRe,iRe])}const gte="Invalid Duration",vte={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},aRe={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...vte},ll=146097/400,bg=146097/4800,sRe={years:{quarters:4,months:12,weeks:ll/7,days:ll,hours:ll*24,minutes:ll*24*60,seconds:ll*24*60*60,milliseconds:ll*24*60*60*1e3},quarters:{months:3,weeks:ll/28,days:ll/4,hours:ll*24/4,minutes:ll*24*60/4,seconds:ll*24*60*60/4,milliseconds:ll*24*60*60*1e3/4},months:{weeks:bg/7,days:bg,hours:bg*24,minutes:bg*24*60,seconds:bg*24*60*60,milliseconds:bg*24*60*60*1e3},...vte},xp=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],lRe=xp.slice(0).reverse();function cd(e,t,n=!1){const r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new fn(r)}function yte(e,t){let n=t.milliseconds??0;for(const r of lRe.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function bte(e,t){const n=yte(e,t)<0?-1:1;xp.reduceRight((r,i)=>{if(Pt(t[i]))return r;if(r){const o=t[r]*n,a=e[i][r],s=Math.floor(o/a);t[i]+=s*n,t[r]-=s*a*n}return i},null),xp.reduce((r,i)=>{if(Pt(t[i]))return r;if(r){const o=t[r]%1;t[r]-=o,t[i]+=o*e[r][i]}return i},null)}function _te(e){const t={};for(const[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}class fn{constructor(t){const n=t.conversionAccuracy==="longterm"||!1;let r=n?sRe:aRe;t.matrix&&(r=t.matrix),this.values=t.values,this.loc=t.loc||Gn.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=r,this.isLuxonDuration=!0}static fromMillis(t,n){return fn.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(t==null||typeof t!="object")throw new Bo(`Duration.fromObject: argument expected to be an object, got ${t===null?"null":typeof t}`);return new fn({values:ek(t,fn.normalizeUnit),loc:Gn.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(Uf(t))return fn.fromMillis(t);if(fn.isDuration(t))return t;if(typeof t=="object")return fn.fromObject(t);throw new Bo(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){const[r]=QLe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){const[r]=tRe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new Bo("need to specify a reason the Duration is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(ci.throwOnInvalid)throw new RMe(r);return new fn({invalid:r})}static normalizeUnit(t){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(!n)throw new lee(t);return n}static isDuration(t){return t&&t.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(t,n={}){const r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Yo.create(this.loc,r).formatDurationFromString(this,t):gte}toHuman(t={}){if(!this.isValid)return gte;const n=t.showZeros!==!1,r=xp.map(i=>{const o=this.values[i];return Pt(o)||o===0&&!n?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...t,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:t.listStyle||"narrow",...t}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let t="P";return this.years!==0&&(t+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(t+=this.months+this.quarters*3+"M"),this.weeks!==0&&(t+=this.weeks+"W"),this.days!==0&&(t+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(t+="T"),this.hours!==0&&(t+=this.hours+"H"),this.minutes!==0&&(t+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(t+=GE(this.seconds+this.milliseconds/1e3,3)+"S"),t==="P"&&(t+="T0S"),t}toISOTime(t={}){if(!this.isValid)return null;const n=this.toMillis();return n<0||n>=864e5?null:(t={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...t,includeOffset:!1},jt.fromMillis(n,{zone:"UTC"}).toISOTime(t))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?yte(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t),r={};for(const i of xp)(fg(n.values,i)||fg(this.values,i))&&(r[i]=n.get(i)+this.get(i));return cd(this,{values:r},!0)}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return this.plus(n.negate())}mapUnits(t){if(!this.isValid)return this;const n={};for(const r of Object.keys(this.values))n[r]=ete(t(this.values[r],r));return cd(this,{values:n},!0)}get(t){return this[fn.normalizeUnit(t)]}set(t){if(!this.isValid)return this;const n={...this.values,...ek(t,fn.normalizeUnit)};return cd(this,{values:n})}reconfigure({locale:t,numberingSystem:n,conversionAccuracy:r,matrix:i}={}){const o={loc:this.loc.clone({locale:t,numberingSystem:n}),matrix:i,conversionAccuracy:r};return cd(this,o)}as(t){return this.isValid?this.shiftTo(t).get(t):NaN}normalize(){if(!this.isValid)return this;const t=this.toObject();return bte(this.matrix,t),cd(this,{values:t},!0)}rescale(){if(!this.isValid)return this;const t=_te(this.normalize().shiftToAll().toObject());return cd(this,{values:t},!0)}shiftTo(...t){if(!this.isValid)return this;if(t.length===0)return this;t=t.map(a=>fn.normalizeUnit(a));const n={},r={},i=this.toObject();let o;for(const a of xp)if(t.indexOf(a)>=0){o=a;let s=0;for(const c in r)s+=this.matrix[c][a]*r[c],r[c]=0;Uf(i[a])&&(s+=i[a]);const l=Math.trunc(s);n[a]=l,r[a]=(s*1e3-l*1e3)/1e3}else Uf(i[a])&&(r[a]=i[a]);for(const a in r)r[a]!==0&&(n[o]+=a===o?r[a]:r[a]/this.matrix[o][a]);return bte(this.matrix,n),cd(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=this.values[n]===0?0:-this.values[n];return cd(this,{values:t},!0)}removeZeros(){if(!this.isValid)return this;const t=_te(this.values);return cd(this,{values:t},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(t){if(!this.isValid||!t.isValid||!this.loc.equals(t.loc))return!1;function n(r,i){return r===void 0||r===0?i===void 0||i===0:r===i}for(const r of xp)if(!n(this.values[r],t.values[r]))return!1;return!0}}const _g="Invalid Interval";function uRe(e,t){return!e||!e.isValid?hi.invalid("missing or invalid start"):!t||!t.isValid?hi.invalid("missing or invalid end"):tt:!1}isBefore(t){return this.isValid?this.e<=t:!1}contains(t){return this.isValid?this.s<=t&&this.e>t:!1}set({start:t,end:n}={}){return this.isValid?hi.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];const n=t.map(wb).filter(a=>this.contains(a)).sort((a,s)=>a.toMillis()-s.toMillis()),r=[];let{s:i}=this,o=0;for(;i+this.e?this.e:a;r.push(hi.fromDateTimes(i,s)),i=s,o+=1}return r}splitBy(t){const n=fn.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,i=1,o;const a=[];for(;rl*i));o=+s>+this.e?this.e:s,a.push(hi.fromDateTimes(r,o)),r=o,i+=1}return a}divideEqually(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]}overlaps(t){return this.e>t.s&&this.s=t.e:!1}equals(t){return!this.isValid||!t.isValid?!1:this.s.equals(t.s)&&this.e.equals(t.e)}intersection(t){if(!this.isValid)return this;const n=this.s>t.s?this.s:t.s,r=this.e=r?null:hi.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;const n=this.st.e?this.e:t.e;return hi.fromDateTimes(n,r)}static merge(t){const[n,r]=t.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return r&&n.push(r),n}static xor(t){let n=null,r=0;const i=[],o=t.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...o),s=a.sort((l,c)=>l.time-c.time);for(const l of s)r+=l.type==="s"?1:-1,r===1?n=l.time:(n&&+n!=+l.time&&i.push(hi.fromDateTimes(n,l.time)),n=null);return hi.merge(i)}difference(...t){return hi.xor([this].concat(t)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:_g}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(t=Z3,n={}){return this.isValid?Yo.create(this.s.loc.clone(n),t).formatInterval(this):_g}toISO(t){return this.isValid?`${this.s.toISO(t)}/${this.e.toISO(t)}`:_g}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:_g}toISOTime(t){return this.isValid?`${this.s.toISOTime(t)}/${this.e.toISOTime(t)}`:_g}toFormat(t,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(t)}${n}${this.e.toFormat(t)}`:_g}toDuration(t,n){return this.isValid?this.e.diff(this.s,t,n):fn.invalid(this.invalidReason)}mapEndpoints(t){return hi.fromDateTimes(t(this.s),t(this.e))}}class nk{static hasDST(t=ci.defaultZone){const n=jt.now().setZone(t).set({month:12});return!t.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(t){return Od.isValidZone(t)}static normalizeZone(t){return Bf(t,ci.defaultZone)}static getStartOfWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getWeekendDays().slice()}static months(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t)}static monthsFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t,!0)}static weekdays(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t)}static weekdaysFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t,!0)}static meridiems({locale:t=null}={}){return Gn.create(t).meridiems()}static eras(t="short",{locale:n=null}={}){return Gn.create(n,null,"gregory").eras(t)}static features(){return{relative:Yee(),localeWeek:Kee()}}}function xte(e,t){const n=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(fn.fromMillis(r).as("days"))}function cRe(e,t,n){const r=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{const d=xte(l,c);return(d-d%7)/7}],["days",xte]],i={},o=e;let a,s;for(const[l,c]of r)n.indexOf(l)>=0&&(a=l,i[l]=c(e,t),s=o.plus(i),s>t?(i[l]--,e=o.plus(i),e>t&&(s=e,i[l]--,e=o.plus(i))):e=s);return[e,i,s,a]}function dRe(e,t,n,r){let[i,o,a,s]=cRe(e,t,n);const l=t-i,c=n.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);c.length===0&&(a0?fn.fromMillis(l,r).shiftTo(...c).plus(d):d}const fRe="missing Intl.DateTimeFormat.formatToParts support";function Dn(e,t=n=>n){return{regex:e,deser:([n])=>t(nLe(n))}}const hRe="\xA0",wte=`[ ${hRe}]`,kte=new RegExp(wte,"g");function pRe(e){return e.replace(/\./g,"\\.?").replace(kte,wte)}function Ste(e){return e.replace(/\./g,"").replace(kte," ").toLowerCase()}function Ql(e,t){return e===null?null:{regex:RegExp(e.map(pRe).join("|")),deser:([n])=>e.findIndex(r=>Ste(n)===Ste(r))+t}}function Cte(e,t){return{regex:e,deser:([,n,r])=>Q3(n,r),groups:t}}function rk(e){return{regex:e,deser:([t])=>t}}function mRe(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gRe(e,t){const n=Xl(t),r=Xl(t,"{2}"),i=Xl(t,"{3}"),o=Xl(t,"{4}"),a=Xl(t,"{6}"),s=Xl(t,"{1,2}"),l=Xl(t,"{1,3}"),c=Xl(t,"{1,6}"),d=Xl(t,"{1,9}"),f=Xl(t,"{2,4}"),p=Xl(t,"{4,6}"),v=y=>({regex:RegExp(mRe(y.val)),deser:([b])=>b,literal:!0}),_=(y=>{if(e.literal)return v(y);switch(y.val){case"G":return Ql(t.eras("short"),0);case"GG":return Ql(t.eras("long"),0);case"y":return Dn(c);case"yy":return Dn(f,YE);case"yyyy":return Dn(o);case"yyyyy":return Dn(p);case"yyyyyy":return Dn(a);case"M":return Dn(s);case"MM":return Dn(r);case"MMM":return Ql(t.months("short",!0),1);case"MMMM":return Ql(t.months("long",!0),1);case"L":return Dn(s);case"LL":return Dn(r);case"LLL":return Ql(t.months("short",!1),1);case"LLLL":return Ql(t.months("long",!1),1);case"d":return Dn(s);case"dd":return Dn(r);case"o":return Dn(l);case"ooo":return Dn(i);case"HH":return Dn(r);case"H":return Dn(s);case"hh":return Dn(r);case"h":return Dn(s);case"mm":return Dn(r);case"m":return Dn(s);case"q":return Dn(s);case"qq":return Dn(r);case"s":return Dn(s);case"ss":return Dn(r);case"S":return Dn(l);case"SSS":return Dn(i);case"u":return rk(d);case"uu":return rk(s);case"uuu":return Dn(n);case"a":return Ql(t.meridiems(),0);case"kkkk":return Dn(o);case"kk":return Dn(f,YE);case"W":return Dn(s);case"WW":return Dn(r);case"E":case"c":return Dn(n);case"EEE":return Ql(t.weekdays("short",!1),1);case"EEEE":return Ql(t.weekdays("long",!1),1);case"ccc":return Ql(t.weekdays("short",!0),1);case"cccc":return Ql(t.weekdays("long",!0),1);case"Z":case"ZZ":return Cte(new RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case"ZZZ":return Cte(new RegExp(`([+-]${s.source})(${r.source})?`),2);case"z":return rk(/[a-z_+-/]{1,256}?/i);case" ":return rk(/[^\S\n\r]/);default:return v(y)}})(e)||{invalidReason:fRe};return _.token=e,_}const vRe={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function yRe(e,t,n){const{type:r,value:i}=e;if(r==="literal"){const l=/^\s+$/.test(i);return{literal:!l,val:l?" ":i}}const o=t[r];let a=r;r==="hour"&&(t.hour12!=null?a=t.hour12?"hour12":"hour24":t.hourCycle!=null?t.hourCycle==="h11"||t.hourCycle==="h12"?a="hour12":a="hour24":a=n.hour12?"hour12":"hour24");let s=vRe[a];if(typeof s=="object"&&(s=s[o]),s)return{literal:!1,val:s}}function bRe(e){return[`^${e.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,e]}function _Re(e,t,n){const r=e.match(t);if(r){const i={};let o=1;for(const a in n)if(fg(n,a)){const s=n[a],l=s.groups?s.groups+1:1;!s.literal&&s.token&&(i[s.token.val[0]]=s.deser(r.slice(o,o+l))),o+=l}return[r,i]}else return[r,{}]}function xRe(e){const t=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,r;return Pt(e.z)||(n=Od.create(e.z)),Pt(e.Z)||(n||(n=new ba(e.Z)),r=e.Z),Pt(e.q)||(e.M=(e.q-1)*3+1),Pt(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),Pt(e.u)||(e.S=qE(e.u)),[Object.keys(e).reduce((i,o)=>{const a=t(o);return a&&(i[a]=e[o]),i},{}),n,r]}let QE=null;function wRe(){return QE||(QE=jt.fromMillis(1555555555555)),QE}function kRe(e,t){if(e.literal)return e;const n=Yo.macroTokenToFormatOpts(e.val),r=Ete(n,t);return r==null||r.includes(void 0)?e:r}function jte(e,t){return Array.prototype.concat(...e.map(n=>kRe(n,t)))}class Tte{constructor(t,n){if(this.locale=t,this.format=n,this.tokens=jte(Yo.parseFormat(n),t),this.units=this.tokens.map(r=>gRe(r,t)),this.disqualifyingUnit=this.units.find(r=>r.invalidReason),!this.disqualifyingUnit){const[r,i]=bRe(this.units);this.regex=RegExp(r,"i"),this.handlers=i}}explainFromTokens(t){if(this.isValid){const[n,r]=_Re(t,this.regex,this.handlers),[i,o,a]=r?xRe(r):[null,null,void 0];if(fg(r,"a")&&fg(r,"H"))throw new dg("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:this.tokens,regex:this.regex,rawMatches:n,matches:r,result:i,zone:o,specificOffset:a}}else return{input:t,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Ite(e,t,n){return new Tte(e,n).explainFromTokens(t)}function SRe(e,t,n){const{result:r,zone:i,specificOffset:o,invalidReason:a}=Ite(e,t,n);return[r,i,o,a]}function Ete(e,t){if(!e)return null;const n=Yo.create(t,e).dtFormatter(wRe()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(o=>yRe(o,e,i))}const eN="Invalid DateTime",Nte=864e13;function _b(e){return new Jl("unsupported zone",`the zone "${e.name}" is not supported`)}function tN(e){return e.weekData===null&&(e.weekData=Y3(e.c)),e.weekData}function nN(e){return e.localWeekData===null&&(e.localWeekData=Y3(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function wp(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new jt({...n,...t,old:n})}function $te(e,t,n){let r=e-t*60*1e3;const i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;const o=n.offset(r);return i===o?[r,i]:[e-Math.min(i,o)*60*1e3,Math.max(i,o)]}function ik(e,t){e+=t*60*1e3;const n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function ok(e,t,n){return $te(J3(e),t,n)}function Mte(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,o={...e.c,year:r,month:i,day:Math.min(e.c.day,X3(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},a=fn.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=J3(o);let[l,c]=$te(s,n,e.zone);return a!==0&&(l+=a,c=e.zone.offset(l)),{ts:l,o:c}}function xg(e,t,n,r,i,o){const{setZone:a,zone:s}=n;if(e&&Object.keys(e).length!==0||t){const l=t||s,c=jt.fromObject(e,{...n,zone:l,specificOffset:o});return a?c:c.setZone(s)}else return jt.invalid(new Jl("unparsable",`the input "${i}" can't be parsed as ${r}`))}function ak(e,t,n=!0){return e.isValid?Yo.create(Gn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function rN(e,t,n){const r=e.c.year>9999||e.c.year<0;let i="";if(r&&e.c.year>=0&&(i+="+"),i+=Li(e.c.year,r?6:4),n==="year")return i;if(t){if(i+="-",i+=Li(e.c.month),n==="month")return i;i+="-"}else if(i+=Li(e.c.month),n==="month")return i;return i+=Li(e.c.day),i}function Lte(e,t,n,r,i,o,a){let s=!n||e.c.millisecond!==0||e.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=Li(e.c.hour),a==="hour")break;if(t){if(l+=":",l+=Li(e.c.minute),a==="minute")break;s&&(l+=":",l+=Li(e.c.second))}else{if(l+=Li(e.c.minute),a==="minute")break;s&&(l+=Li(e.c.second))}if(a==="second")break;s&&(!r||e.c.millisecond!==0)&&(l+=".",l+=Li(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!o?l+="Z":e.o<0?(l+="-",l+=Li(Math.trunc(-e.o/60)),l+=":",l+=Li(Math.trunc(-e.o%60))):(l+="+",l+=Li(Math.trunc(e.o/60)),l+=":",l+=Li(Math.trunc(e.o%60)))),o&&(l+="["+e.zone.ianaName+"]"),l}const Rte={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},CRe={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jRe={ordinal:1,hour:0,minute:0,second:0,millisecond:0},sk=["year","month","day","hour","minute","second","millisecond"],TRe=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],IRe=["year","ordinal","hour","minute","second","millisecond"];function lk(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new lee(e);return t}function Ote(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return lk(e)}}function ERe(e){if(xb===void 0&&(xb=ci.now()),e.type!=="iana")return e.offset(xb);const t=e.name;let n=iN.get(t);return n===void 0&&(n=e.offset(xb),iN.set(t,n)),n}function Pte(e,t){const n=Bf(t.zone,ci.defaultZone);if(!n.isValid)return jt.invalid(_b(n));const r=Gn.fromObject(t);let i,o;if(Pt(e.year))i=ci.now();else{for(const l of sk)Pt(e[l])&&(e[l]=Rte[l]);const a=qee(e)||Gee(e);if(a)return jt.invalid(a);const s=ERe(n);[i,o]=ok(e,s,n)}return new jt({ts:i,zone:n,loc:r,o})}function zte(e,t,n){const r=Pt(n.round)?!0:n.round,i=Pt(n.rounding)?"trunc":n.rounding,o=(s,l)=>(s=GE(s,r||n.calendary?0:2,n.calendary?"round":i),t.loc.clone(n).relFormatter(n).format(s,l)),a=s=>n.calendary?t.hasSame(e,s)?0:t.startOf(s).diff(e.startOf(s),s).get(s):t.diff(e,s).get(s);if(n.unit)return o(a(n.unit),n.unit);for(const s of n.units){const l=a(s);if(Math.abs(l)>=1)return o(l,s)}return o(e>t?-0:0,n.units[n.units.length-1])}function Dte(e){let t={},n;return e.length>0&&typeof e[e.length-1]=="object"?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}let xb;const iN=new Map;class jt{constructor(t){const n=t.zone||ci.defaultZone;let r=t.invalid||(Number.isNaN(t.ts)?new Jl("invalid input"):null)||(n.isValid?null:_b(n));this.ts=Pt(t.ts)?ci.now():t.ts;let i=null,o=null;if(!r)if(t.old&&t.old.ts===this.ts&&t.old.zone.equals(n))[i,o]=[t.old.c,t.old.o];else{const a=Uf(t.o)&&!t.old?t.o:n.offset(this.ts);i=ik(this.ts,a),r=Number.isNaN(i.year)?new Jl("invalid input"):null,i=r?null:i,o=r?null:a}this._zone=n,this.loc=t.loc||Gn.create(),this.invalid=r,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new jt({})}static local(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return Pte({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static utc(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return t.zone=ba.utcInstance,Pte({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static fromJSDate(t,n={}){const r=sLe(t)?t.valueOf():NaN;if(Number.isNaN(r))return jt.invalid("invalid input");const i=Bf(n.zone,ci.defaultZone);return i.isValid?new jt({ts:r,zone:i,loc:Gn.fromObject(n)}):jt.invalid(_b(i))}static fromMillis(t,n={}){if(Uf(t))return t<-Nte||t>Nte?jt.invalid("Timestamp out of range"):new jt({ts:t,zone:Bf(n.zone,ci.defaultZone),loc:Gn.fromObject(n)});throw new Bo(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(Uf(t))return new jt({ts:t*1e3,zone:Bf(n.zone,ci.defaultZone),loc:Gn.fromObject(n)});throw new Bo("fromSeconds requires a numerical input")}static fromObject(t,n={}){t=t||{};const r=Bf(n.zone,ci.defaultZone);if(!r.isValid)return jt.invalid(_b(r));const i=Gn.fromObject(n),o=ek(t,Ote),{minDaysInFirstWeek:a,startOfWeek:s}=Zee(o,i),l=ci.now(),c=Pt(n.specificOffset)?r.offset(l):n.specificOffset,d=!Pt(o.ordinal),f=!Pt(o.year),p=!Pt(o.month)||!Pt(o.day),v=f||p,_=o.weekYear||o.weekNumber;if((v||d)&&_)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&d)throw new dg("Can't mix ordinal dates with month/day");const y=_||o.weekday&&!v;let b,w,x=ik(l,c);y?(b=TRe,w=CRe,x=Y3(x,a,s)):d?(b=IRe,w=jRe,x=HE(x)):(b=sk,w=Rte);let S=!1;for(const M of b){const P=o[M];Pt(P)?S?o[M]=w[M]:o[M]=x[M]:S=!0}const C=y?iLe(o,a,s):d?oLe(o):qee(o),j=C||Gee(o);if(j)return jt.invalid(j);const T=y?Vee(o,a,s):d?Hee(o):o,[E,$]=ok(T,c,r),A=new jt({ts:E,zone:r,o:$,loc:i});return o.weekday&&v&&t.weekday!==A.weekday?jt.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${A.toISO()}`):A.isValid?A:jt.invalid(A.invalid)}static fromISO(t,n={}){const[r,i]=KLe(t);return xg(r,i,n,"ISO 8601",t)}static fromRFC2822(t,n={}){const[r,i]=XLe(t);return xg(r,i,n,"RFC 2822",t)}static fromHTTP(t,n={}){const[r,i]=JLe(t);return xg(r,i,n,"HTTP",n)}static fromFormat(t,n,r={}){if(Pt(t)||Pt(n))throw new Bo("fromFormat requires an input string and a format");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[s,l,c,d]=SRe(a,t,n);return d?jt.invalid(d):xg(s,l,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return jt.fromFormat(t,n,r)}static fromSQL(t,n={}){const[r,i]=oRe(t);return xg(r,i,n,"SQL",t)}static invalid(t,n=null){if(!t)throw new Bo("need to specify a reason the DateTime is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(ci.throwOnInvalid)throw new MMe(r);return new jt({invalid:r})}static isDateTime(t){return t&&t.isLuxonDateTime||!1}static parseFormatForOpts(t,n={}){const r=Ete(t,Gn.fromObject(n));return r?r.map(i=>i?i.val:null).join(""):null}static expandFormat(t,n={}){return jte(Yo.parseFormat(t),Gn.fromObject(n)).map(r=>r.val).join("")}static resetCache(){xb=void 0,iN.clear()}get(t){return this[t]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?tN(this).weekYear:NaN}get weekNumber(){return this.isValid?tN(this).weekNumber:NaN}get weekday(){return this.isValid?tN(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?nN(this).weekday:NaN}get localWeekNumber(){return this.isValid?nN(this).weekNumber:NaN}get localWeekYear(){return this.isValid?nN(this).weekYear:NaN}get ordinal(){return this.isValid?HE(this.c).ordinal:NaN}get monthShort(){return this.isValid?nk.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?nk.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?nk.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?nk.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const t=864e5,n=6e4,r=J3(this.c),i=this.zone.offset(r-t),o=this.zone.offset(r+t),a=this.zone.offset(r-i*n),s=this.zone.offset(r-o*n);if(a===s)return[this];const l=r-a*n,c=r-s*n,d=ik(l,a),f=ik(c,s);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[wp(this,{ts:l}),wp(this,{ts:c})]:[this]}get isInLeapYear(){return mb(this.year)}get daysInMonth(){return X3(this.year,this.month)}get daysInYear(){return this.isValid?hg(this.year):NaN}get weeksInWeekYear(){return this.isValid?gb(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?gb(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(t={}){const{locale:n,numberingSystem:r,calendar:i}=Yo.create(this.loc.clone(t),t).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(t=0,n={}){return this.setZone(ba.instance(t),n)}toLocal(){return this.setZone(ci.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Bf(t,ci.defaultZone),t.equals(this.zone))return this;if(t.isValid){let i=this.ts;if(n||r){const o=t.offset(this.ts),a=this.toObject();[i]=ok(a,o,t)}return wp(this,{ts:i,zone:t})}else return jt.invalid(_b(t))}reconfigure({locale:t,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:t,numberingSystem:n,outputCalendar:r});return wp(this,{loc:i})}setLocale(t){return this.reconfigure({locale:t})}set(t){if(!this.isValid)return this;const n=ek(t,Ote),{minDaysInFirstWeek:r,startOfWeek:i}=Zee(n,this.loc),o=!Pt(n.weekYear)||!Pt(n.weekNumber)||!Pt(n.weekday),a=!Pt(n.ordinal),s=!Pt(n.year),l=!Pt(n.month)||!Pt(n.day),c=s||l,d=n.weekYear||n.weekNumber;if((c||a)&&d)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new dg("Can't mix ordinal dates with month/day");let f;o?f=Vee({...Y3(this.c,r,i),...n},r,i):Pt(n.ordinal)?(f={...this.toObject(),...n},Pt(n.day)&&(f.day=Math.min(X3(f.year,f.month),f.day))):f=Hee({...HE(this.c),...n});const[p,v]=ok(f,this.o,this.zone);return wp(this,{ts:p,o:v})}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return wp(this,Mte(this,n))}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t).negate();return wp(this,Mte(this,n))}startOf(t,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;const r={},i=fn.normalizeUnit(t);switch(i){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(i==="weeks")if(n){const o=this.loc.getStartOfWeek(),{weekday:a}=this;a=3&&(l+="T"),l+=Lte(this,s,n,r,i,o,a),l}toISODate({format:t="extended",precision:n="day"}={}){return this.isValid?rN(this,t==="extended",lk(n)):null}toISOWeekDate(){return ak(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:t=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:s="milliseconds"}={}){return this.isValid?(s=lk(s),(i&&sk.indexOf(s)>=3?"T":"")+Lte(this,a==="extended",n,t,r,o,s)):null}toRFC2822(){return ak(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ak(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?rN(this,!0):null}toSQLTime({includeOffset:t=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let i="HH:mm:ss.SSS";return(n||t)&&(r&&(i+=" "),n?i+="z":t&&(i+="ZZ")),ak(this,i,!0)}toSQL(t={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(t)}`:null}toString(){return this.isValid?this.toISO():eN}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(t={}){if(!this.isValid)return{};const n={...this.c};return t.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(t,n="milliseconds",r={}){if(!this.isValid||!t.isValid)return fn.invalid("created by diffing an invalid DateTime");const i={locale:this.locale,numberingSystem:this.numberingSystem,...r},o=lLe(n).map(fn.normalizeUnit),a=t.valueOf()>this.valueOf(),s=a?this:t,l=a?t:this,c=dRe(s,l,o,i);return a?c.negate():c}diffNow(t="milliseconds",n={}){return this.diff(jt.now(),t,n)}until(t){return this.isValid?hi.fromDateTimes(this,t):this}hasSame(t,n,r){if(!this.isValid)return!1;const i=t.valueOf(),o=this.setZone(t.zone,{keepLocalTime:!0});return o.startOf(n,r)<=i&&i<=o.endOf(n,r)}equals(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)}toRelative(t={}){if(!this.isValid)return null;const n=t.base||jt.fromObject({},{zone:this.zone}),r=t.padding?thisn.valueOf(),Math.min)}static max(...t){if(!t.every(jt.isDateTime))throw new Bo("max requires all arguments be DateTimes");return Xee(t,n=>n.valueOf(),Math.max)}static fromFormatExplain(t,n,r={}){const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Ite(a,t,n)}static fromStringExplain(t,n,r={}){return jt.fromFormatExplain(t,n,r)}static buildFormatParser(t,n={}){const{locale:r=null,numberingSystem:i=null}=n,o=Gn.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0});return new Tte(o,t)}static fromFormatParser(t,n,r={}){if(Pt(t)||Pt(n))throw new Bo("fromFormatParser requires an input string and a format parser");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(n.locale))throw new Bo(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${n.locale}`);const{result:s,zone:l,specificOffset:c,invalidReason:d}=n.explainFromTokens(t);return d?jt.invalid(d):xg(s,l,r,`format ${n.format}`,t,c)}static get DATE_SHORT(){return Z3}static get DATE_MED(){return uee}static get DATE_MED_WITH_WEEKDAY(){return OMe}static get DATE_FULL(){return cee}static get DATE_HUGE(){return dee}static get TIME_SIMPLE(){return fee}static get TIME_WITH_SECONDS(){return hee}static get TIME_WITH_SHORT_OFFSET(){return pee}static get TIME_WITH_LONG_OFFSET(){return mee}static get TIME_24_SIMPLE(){return gee}static get TIME_24_WITH_SECONDS(){return vee}static get TIME_24_WITH_SHORT_OFFSET(){return yee}static get TIME_24_WITH_LONG_OFFSET(){return bee}static get DATETIME_SHORT(){return _ee}static get DATETIME_SHORT_WITH_SECONDS(){return xee}static get DATETIME_MED(){return wee}static get DATETIME_MED_WITH_SECONDS(){return kee}static get DATETIME_MED_WITH_WEEKDAY(){return PMe}static get DATETIME_FULL(){return See}static get DATETIME_FULL_WITH_SECONDS(){return Cee}static get DATETIME_HUGE(){return jee}static get DATETIME_HUGE_WITH_SECONDS(){return Tee}}function wb(e){if(jt.isDateTime(e))return e;if(e&&e.valueOf&&Uf(e.valueOf()))return jt.fromJSDate(e);if(e&&typeof e=="object")return jt.fromObject(e);throw new Bo(`Unknown datetime argument: ${e}, of type ${typeof e}`)}const $n=4,oN=5,Ate=3,Uo=4,Fte=9,dd=1e9,aN=1e6,Bte=6e7,sN={0:"Success",1:"Account In Use",2:"Account Loaded Twice",3:"Account Not Found",4:"Program Account Not Found",5:"Insufficient Funds For Fee",6:"Invalid Account For Fee",7:"Already Processed",8:"Blockhash Not Found",9:"Instruction Error",10:"Call Chain Too Deep",11:"Missing Signature For Fee",12:"Invalid Account Index",13:"Signature Failure",14:"Invalid Program For Execution",15:"Sanitize Failure",16:"Cluster Maintenance",17:"Account Borrow Outstanding",18:"Would Exceed Max Block Cost Limit",19:"Unsupported Version",20:"Invalid Writable Account",21:"Would Exceed Max Account Cost Limit",22:"Would Exceed Account Data Block Limit",23:"Too Many Account Locks",24:"Address Lookup Table Not Found",25:"Invalid Address Lookup Table Owner",26:"Invalid Address Lookup Table Data",27:"Invalid Address Lookup Table Index",28:"Invalid Rent Paying Account",29:"Would Exceed Max Vote Cost Limit",30:"Would Exceed Account Data Total Limit",31:"Duplicate Instruction",32:"Insufficient Funds For Rent",33:"Max Loaded Accounts Data Size Exceeded",34:"Invalid Loaded Accounts Data Size Limit",35:"Resanitization Needed",36:"Program Execution Temporarily Restricted",37:"Unbalanced Transaction",38:"Program Cache Hit Max Limit",39:"Commit Cancelled",40:"Bundle Peer",50:"Blockhash Nonce Already Advanced",51:"Blockhash Advanced Failed",52:"Blockhash Wrong Nonce"},uk="\xA0",kb=5,Ute=30,Sb=48,lN=13,uN=21,NRe=28,Vf=5,cN=21,ck=8,dN=ck,fN=122,Wte=cN+ck,$Re=Wte+fN+Vf,Vte="(max-width: 768px)",Hte="564px",Hf=110,Zte="1920px";var za=(e=>(e.AgaveJito="Agave Jito",e.Frankendancer="Frankendancer",e.Agave="Agave",e.AgavePaladin="Agave Paladin",e.Firedancer="Firedancer",e.AgaveBam="Agave BAM",e.Sig="Sig",e.AgaveRakurai="Agave Rakurai",e.FiredancerHarmonic="Firedancer Harmonic",e.AgaveHarmonic="Agave Harmonic",e.FrankendancerHarmonic="Frankendancer Harmonic",e))(za||{});const qte={1:"Agave Jito",2:"Frankendancer",3:"Agave",4:"Agave Paladin",5:"Firedancer",6:"Agave BAM",7:"Sig",8:"Agave Rakurai",9:"Firedancer Harmonic",10:"Agave Harmonic",11:"Frankendancer Harmonic"};function MRe(){if(typeof window>"u")return!1;const e=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(e)||"ontouchstart"in window&&!!(matchMedia!=null&&matchMedia("(hover: none)").matches)}const LRe=MRe(),fd="#E5484D",hN="#67B873",Gte="#C567EA",Yte="#2A7EDF",dk="#1CE7C2",RRe="#CBCBCB",Kte="#8A8A8A",pN="#B2BCC9",wg="#67696A",mN="#8E909D",Xte="#B4B4B4",Jte="#949494",ORe="rgba(250, 250, 250, 0.12)",PRe="rgba(250, 250, 250, 0.05)",zRe="#24262B",DRe="#F7F8F8",ARe="var(--gray-1, #111)",FRe="var(--gray-12, #eee)",BRe="var(--gray-10, #7b7b7b)",URe="#333333",WRe="#F7F7F7",Qte=Jte,hd="#557AE0",Zf=hN,VRe="#9982f0",HRe="#303134",ZRe="#37a4bc",qRe="#00205F",GRe="#010102",YRe="#03030C",KRe="#A7A7A7",XRe="#121213",JRe=dk,QRe="#3BA158",eOe="#030312",tOe="#020C12",nOe="#020912",rOe="#060E0E",iOe="#120602",oOe="#252D2C",aOe="#175E51",sOe="#2D2B25",lOe="#6A510C",uOe="#E6B11E",cOe="#2D2525",dOe="#5E1717",fOe="#CE3636",hOe="#A2A2A2",pOe="#666",mOe="#C8B3B3",gOe="#686868",vOe="#171765ff",yOe="linear-gradient(270deg, #1414B8 0%, #090952 100%)",bOe="#8F8FED",_Oe="#0E0E8E",xOe="#0C171D",wOe="linear-gradient(270deg, #1481B8 0%, #093952 100%)",kOe="#47B4EB",SOe="#0F3F57",COe="#041225",jOe="linear-gradient(270deg, #0E448B 0%, #090E15 100%)",TOe="#83B3F2",IOe="#0E448B",EOe="#091515",NOe=`linear-gradient(270deg, ${dk} 0%, #0C6B5A 100%)`,$Oe="#2EC9C9",MOe="#0C6B5A",LOe="#231511",ROe="linear-gradient(270deg, #8B2B0E 0%, #150C09 100%)",OOe="#F29D83",POe="#250C04",zOe="rgba(16, 129, 108, 0.53)",DOe="#ffffff1a",AOe="rgba(250, 250, 250, 0.12)",FOe="#cac4c4",BOe="#231f1f",UOe="var(--gray-11)",WOe="var(--gray-10)",VOe="var(--gray-9)",HOe="var(--gray-7)",ene="#3972C9",tne="#74AFEA",nne="#0F1313",rne="#118B74",ine="#871616",one="#163454",ane="#89603E",ZOe="#EF5F00",qOe="#F76B15",GOe="#0D9B8A",YOe="#53B9AB",KOe="#0588F0",XOe="#0090FF",sne=dk,lne="#E7B81C",une="#1C96E7",cne="#E7601C",dne="#9D1CE7",fne="#E71C88",hne="#898989",JOe="#FF7878",QOe="#FF9D0A",ePe="#FFC267",pne="#141720",fk="var(--gray-11)",hk="var(--gray-9)",mne="#56BF8C",gne="#4A7661",vne="#C27B45",yne="#714C32",bne="#DC6869",_ne="#7A3B40",Yu="#BDF3FF",pk="#6F77C0",xne="#363A63",gN="#20788C",tPe="#b1b1b1",wne="#7b837c",kne="#eee",Sne="#006851",Cne="#19307C",jne="#743F4D",nPe="#919191",rPe="#E5B319",iPe="#E55A19",oPe="#E5484D",vN="#55BA83",yN="#D94343",Tne="#232A38",aPe="#676767",sPe="#E13131",lPe="#5F6FA9",uPe="#A2A2A2",cPe="#DB8F38",dPe="#CACACA",bN="#858585",_N="#312D42",xN="#A66759",wN="#597FA6",kN="#A67F59",SN="#366357",CN="#B2904D",jN="#2F3842",TN="#B23232",IN="#82738C",fPe="#FAFAFA",hPe="#3CB4FF",pPe="#142D53",mPe="#FF5353",Ine="#525463",Ene="#23639E",Nne="#5C5555",$ne="#452909",qf="#C6C6C6",EN="#183A5A",Mne="#10273D",gPe="#7CE198",vPe="#A4A3A3",yPe="#1B659933",sr="#777b84",NN="#2C3235",pd="#D19DFF",kg="#4CCCE6",Gf="#1FD8A4",bPe="#6A6A6E",Lne=wg,Rne="rgba(250, 250, 250, 0.05)",$N="#30A46C",MN="#E5484D",mk="#FF8DCC",kp="#9EB1FF",_Pe="#292929",xPe="#9e9e9e",wPe="#1d6fba",kPe="#84858a",LN="rgba(0, 0, 0, .5)",One="rgba(125, 94, 84, .5)",Pne="#A18072",RN="#6C4E62",zne="rgba(158, 108, 0, .5)",Dne="#836A21",Ane="rgba(96, 100, 108, .5)",Fne="#B5B2BC",Bne="rgba(17, 50, 100, .5)",Une="#0090FF",SPe="var(--gray-11)",CPe="var(--gray-10)",jPe="#41B9D3",TPe="#C46BF0",IPe="#6BEFD7",EPe="#C6F06A",NPe="#71EF9B",$Pe="#6AC4F0",MPe="#DDD",LPe="#8FB6FC",RPe="linear-gradient(83.85deg, #024eff 0.22%, #3ce844 102.21%)",OPe="#F5F2EC",ON="#AFB2C2",PPe="rgba(178, 178, 178, 0.12)",zPe="#424242",DPe="rgba(114, 114, 114, 0.15)",APe="#646464",PN="#676767",FPe="var(--gray-11)",BPe="var(--gray-10)",UPe="#cbcbcb",WPe="#1190CF",VPe="#6CB1D3",HPe="#967DC8",gk="#871616",zN="#1d863b",DN="#1d6286",Wne="#1CE7C2",Vne="#076B59",ZPe="#313131",Hne="#666666",Zne=DN,qPe="#19457A",GPe="#FFF",YPe="var(--gray-10)",qne="var(--teal-9)",Gne="var(--cyan-9)",Yne="var(--red-8)",Kne="var(--sky-8)",Xne="var(--green-9)",Jne="var(--indigo-10)",KPe="var(--blue-9)",XPe="#15181e",JPe="#9aabc3",QPe="#250f0f",eze="#283551",tze="#3b0c0c",nze="#e3efff",rze="#484D53B2",ize="var(--gray-11)",oze="var(--gray-10)",aze="var(--gray-12)",sze="#70B8FF",lze="#070A13",uze="#070B14 ",cze="rgba(42, 126, 223, 0.5)",dze="rgba(125, 125, 125, 0.50)",fze="#2A7EDF",hze="#070a13",pze="#0D0D0D",mze="#250f0f",gze="#002163",vze="#3b0c0c",yze="#848484",bze="#A0A0A0",_ze="#ccc",xze="#878787",wze="rgba(191, 135, 253, 0.13)",kze="#283551",vk="#0000001F",Sze=Object.freeze(Object.defineProperty({__proto__:null,appTeal:dk,averageChangedColor:vne,averageUnchangedColor:yne,badChangedColor:bne,badUnchangedColor:_ne,bootProgressCatchupBackgroundColor:rOe,bootProgressFullSnapshotBackgroundColor:tOe,bootProgressGossipBackgroundColor:eOe,bootProgressGossipBarsColor:oOe,bootProgressGossipFilledBarColor:aOe,bootProgressGossipHighBarColor:cOe,bootProgressGossipHighFilledBarColor:dOe,bootProgressGossipHighThresholdBarColor:fOe,bootProgressGossipMidBarColor:sOe,bootProgressGossipMidFilledBarColor:lOe,bootProgressGossipMidThresholdBarColor:uOe,bootProgressIncrSnapshotBackgroundColor:nOe,bootProgressPrimaryTextColor:hOe,bootProgressSecondaryTextColor:pOe,bootProgressSnapshotUnitsColor:gOe,bootProgressSupermajorityBackgroundColor:iOe,bootProgressTertiaryColor:mOe,cardBackgroundColor:pne,chartAxisColor:sr,chartGridColor:NN,chartGridStrokeColor:Rne,circularProgressPathColor:Zne,circularProgressTrailColor:Hne,clusterDevelopmentColor:une,clusterDevnetColor:cne,clusterMainnetBetaColor:sne,clusterPythnetColor:dne,clusterPythtestColor:fne,clusterTestnetColor:lne,clusterUnknownColor:hne,computeUnitsColor:pd,containerBackgroundColor:PRe,containerBorderColor:ORe,dropdownBackgroundColor:zRe,dropdownButtonTextColor:DRe,elapsedTimeColor:bPe,epochNotLiveColor:hPe,epochSkippedSlotColor:mPe,epochSliderProgressColor:pPe,epochTextColor:fPe,errorToggleColor:MN,fadedText:kPe,failureColor:fd,feesColor:kg,firstTurbineSlotColor:ene,focusedBorderColor:wPe,goodChangedColor:mne,goodUnchangedColor:gne,gridLineColor:_N,gridTicksColor:bN,headerColor:Yu,headerLabelTextColor:Jte,highIncrementTextColor:oPe,iconButtonColor:Xte,incomePerCuToggleControlColor:kp,latestTurbineSlotColor:tne,lowIncrementTextColor:rPe,midIncrementTextColor:iPe,missingSlotColor:nne,mySlotsColor:Yte,navButtonInactiveTextColor:Qte,navButtonTextColor:WRe,needsReplaySlotColor:one,nextColor:Gte,nextSlotValueColor:dPe,nonDelinquentChartColor:xne,nonDelinquentColor:pk,nonVoteColor:Zf,popoverBackgroundColor:ARe,popoverPrimaryColor:FRe,popoverSecondaryColor:BRe,primaryTextColor:pN,programCacheColor:kne,progressBackgroundColor:ZRe,progressBarCompleteCatchupColor:MOe,progressBarCompleteFullSnapshotColor:SOe,progressBarCompleteGossipColor:_Oe,progressBarCompleteIncSnapshotColor:IOe,progressBarCompleteSupermajorityColor:POe,progressBarInProgressCatchupBackground:NOe,progressBarInProgressCatchupBorder:$Oe,progressBarInProgressFullSnapshotBackground:wOe,progressBarInProgressFullSnapshotBorder:kOe,progressBarInProgressGossipBackground:yOe,progressBarInProgressGossipBorder:bOe,progressBarInProgressIncSnapshotBackground:jOe,progressBarInProgressIncSnapshotBorder:TOe,progressBarInProgressSupermajorityBackground:ROe,progressBarInProgressSupermajorityBorder:OOe,progressBarIncompleteCatchupColor:EOe,progressBarIncompleteFullSnapshotColor:xOe,progressBarIncompleteGossipColor:vOe,progressBarIncompleteIncSnapshotColor:COe,progressBarIncompleteSupermajorityColor:LOe,progressGutterBackgroundColor:HRe,regularTextColor:mN,repairedNeedsReplaySlotColor:ane,repairedSlotsBoldTextColor:qOe,repairedSlotsTextColor:ZOe,replayedMissingSlotColor:ine,replayedSlotColor:rne,replayedSlotsBoldTextColor:YOe,replayedSlotsTextColor:GOe,requestedToggleControlColor:mk,rowSeparatorBackgroundColor:URe,sankeyBaseLabelColor:qf,sankeyDroppedLinkColor:Nne,sankeyIncomingLinkColor:Ene,sankeyLinkGradientEndColor:EN,sankeyLinkGradientMiddleColor:Mne,sankeyRetainedLinkColor:$ne,sankeyStartEndNodeColor:Ine,sankeySuccessRateColor:gPe,searchDisabledBackgroundColor:DPe,searchDisabledBorderColor:PPe,searchDisabledTextColor:zPe,searchIconColor:ON,secondaryTextColor:wg,shredPublishedColor:IN,shredReceivedRepairColor:kN,shredReceivedTurbineColor:wN,shredRepairRequestedColor:xN,shredReplayedNothingColor:jN,shredReplayedRepairColor:CN,shredReplayedTurbineColor:SN,shredSkippedColor:TN,skipRateLabelColor:APe,slotCardHeaderTextColor:UPe,slotCardSectionBackgroundColor:PN,slotCardSectionPrimaryColor:FPe,slotCardSectionSecondaryColor:BPe,slotDetailsBackgroundColor:XPe,slotDetailsChartControlsTriggered:sze,slotDetailsClickableSlotColor:KPe,slotDetailsColor:JPe,slotDetailsDisabledSlotBorderColor:rze,slotDetailsEarliestSlotColor:qne,slotDetailsFeesSlotColor:Kne,slotDetailsMySlotsNotSelectedColor:qPe,slotDetailsQuickSearchTextColor:YPe,slotDetailsRecentSlotColor:Gne,slotDetailsRewardsSlotColor:Jne,slotDetailsSearchLabelColor:GPe,slotDetailsSelectedBackgroundColor:eze,slotDetailsSelectedColor:nze,slotDetailsSkippedBackgroundColor:QPe,slotDetailsSkippedSelectedBackgroundColor:tze,slotDetailsSkippedSlotColor:Yne,slotDetailsStatsPrimary:ize,slotDetailsStatsSecondary:oze,slotDetailsStatsTertiary:aze,slotDetailsTipsSlotColor:Xne,slotNavBackgroundColor:GRe,slotNavFilterBackgroundColor:qRe,slotSelectorItemBackgroundColor:yPe,slotSelectorTextColor:vPe,slotStatusBlue:DN,slotStatusDullTeal:Vne,slotStatusGray:ZPe,slotStatusGreen:zN,slotStatusRed:gk,slotStatusTeal:Wne,slotTextActiveLinkColor:VPe,slotTextLinkColor:WPe,slotTextVisitedLinkColor:HPe,slotTimelineTextColor:tPe,slotsListBackgroundColor:hze,slotsListCurrentSlotBoxShadowColor:wze,slotsListCurrentSlotNumberBackgroundColor:kze,slotsListFutureSlotBackgroundColor:pze,slotsListFutureSlotColor:xze,slotsListMySlotBackgroundColor:uze,slotsListMySlotsBorderColor:cze,slotsListMySlotsSelectedBorderColor:fze,slotsListNotProcessedMySlotsBorderColor:dze,slotsListPastSlotColor:bze,slotsListPastSlotNumberColor:yze,slotsListSelectedBackgroundColor:gze,slotsListSkippedBackgroundColor:mze,slotsListSkippedSelectedBackgroundColor:vze,slotsListSlotBackgroundColor:lze,slotsListSlotColor:_ze,snapshotAreaChartDark:zOe,snapshotAreaChartGridLineColor:DOe,startLineColor:Lne,startupBackgroundColor:YRe,startupCompleteStepColor:QRe,startupProgressBackgroundColor:XRe,startupProgressTealColor:JRe,startupTextColor:KRe,successColor:hN,successToggleColor:$N,summaryAgaveTextColor:EPe,summaryBamTextColor:MPe,summaryFiredancerTextColor:IPe,summaryFrankendancerTextColor:TPe,summaryHarmonicTextColor:OPe,summaryJitoTextColor:NPe,summaryMySlotsColor:jPe,summaryPaladinTextColor:$Pe,summaryPrimaryTextColor:SPe,summaryRakuraiTextColor:RPe,summarySecondaryTextColor:CPe,summarySigTextColor:LPe,supermajorityPieChartTextColor:FOe,supermajorityPieChartUnfilledColor:BOe,supermajorityTableBorderColor:AOe,supermajorityTableOfflinePrimaryColor:UOe,supermajorityTableOfflineSecondaryColor:WOe,supermajorityTableOnlinePrimaryColor:VOe,supermajorityTableOnlineSecondaryColor:HOe,tableBodyColor:Kte,tableHeaderColor:RRe,tileBackgroundBlueColor:lPe,tileBackgroundRedColor:sPe,tileBusyGreenColor:vN,tileBusyRedColor:yN,tileChartDarkBackground:vk,tilePrimaryStatValueColor:cPe,tileSparklineBackgroundColor:Tne,tileSparklineRangeTextColor:aPe,tileSubHeaderColor:uPe,tipsColor:Gf,toastConnectingEndColor:ePe,toastConnectingStartColor:QOe,toastDisconnectedColor:JOe,toggleItemBackgroundColor:_Pe,toggleItemTextColor:xPe,totalValidatorsColor:gN,transactionAxisTextColor:nPe,transactionDefaultColor:LN,transactionExecuteColor:Ane,transactionExecuteTextColor:Fne,transactionFailedPathColor:jne,transactionLoadingColor:zne,transactionLoadingTextColor:Dne,transactionNonVotePathColor:Sne,transactionPostExecuteColor:Bne,transactionPostExecuteTextColor:Une,transactionPreloadingColor:One,transactionPreloadingTextColor:Pne,transactionValidateColor:RN,transactionVotePathColor:Cne,turbineSlotsBoldTextColor:XOe,turbineSlotsTextColor:KOe,unknownChangedColor:fk,unknownUnchangedColor:hk,voteDistanceColor:wne,voteLatencyColor:VRe,votesColor:hd},Symbol.toStringTag,{value:"Module"}));var Cze={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},jze=Array.prototype.slice;function yk(e){var t=e.length;return t?t===1?[e[0]]:t===2?[e[0],e[1]]:t===3?[e[0],e[1],e[2]]:jze.call(e,0):[]}function Tze(e){var t={};for(var n in e)Cze[n]||(t[n]=e[n]);return t}function Ize(e){return typeof e=="function"&&e.isMemoized}function Eze(e,t){return e===t||e!==e&&t!==t}function Qne(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}var Nze=function(){function e(t){this.keys=[],this.values=[],this.options=t;var n=typeof t.isMatchingKey=="function";n?this.getKeyIndex=this._getKeyIndexFromMatchingKey:t.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof t.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||n,this.shouldUpdateOnAdd=typeof t.onCacheAdd=="function",this.shouldUpdateOnChange=typeof t.onCacheChange=="function",this.shouldUpdateOnHit=typeof t.onCacheHit=="function"}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:yk(this.keys),size:this.size,values:yk(this.values)}},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(t){var n=this.options,r=n.isMatchingKey,i=n.maxSize,o=this.keys,a=o.length;if(!a)return-1;if(r(o[0],t))return 0;if(i>1){for(var s=1;s1){for(var l=0;l1){for(var a=0;a=l&&(i.length=o.length=l)},e.prototype.updateAsyncCache=function(t){var n=this,r=this.options,i=r.onCacheChange,o=r.onCacheHit,a=this.keys[0],s=this.values[0];this.values[0]=s.then(function(l){return n.shouldUpdateOnHit&&o(n,n.options,t),n.shouldUpdateOnChange&&i(n,n.options,t),l},function(l){var c=n.getKeyIndex(a);throw c!==-1&&(n.keys.splice(c,1),n.values.splice(c,1)),l})},e}();function Yf(e,t){if(t===void 0&&(t={}),Ize(e))return Yf(e.fn,Qne(e.options,t));if(typeof e!="function")throw new TypeError("You must pass a function to `memoize`.");var n=t.isEqual,r=n===void 0?Eze:n,i=t.isMatchingKey,o=t.isPromise,a=o===void 0?!1:o,s=t.maxSize,l=s===void 0?1:s,c=t.onCacheAdd,d=t.onCacheChange,f=t.onCacheHit,p=t.transformKey,v=Qne({isEqual:r,isMatchingKey:i,isPromise:a,maxSize:l,onCacheAdd:c,onCacheChange:d,onCacheHit:f,transformKey:p},Tze(t)),_=new Nze(v),y=_.keys,b=_.values,w=_.canTransformKey,x=_.shouldCloneArguments,S=_.shouldUpdateOnAdd,C=_.shouldUpdateOnChange,j=_.shouldUpdateOnHit,T=function(){var E=x?yk(arguments):arguments;w&&(E=p(E));var $=y.length?_.getKeyIndex(E):-1;if($!==-1)j&&f(_,v,T),$&&(_.orderByLru(y[$],b[$],$),C&&d(_,v,T));else{var A=e.apply(this,arguments),M=x?E:yk(arguments);_.orderByLru(M,A,y.length),a&&_.updateAsyncCache(T),S&&c(_,v,T),C&&d(_,v,T)}return b[0]};return T.cache=_,T.fn=e,T.isMemoized=!0,T.options=v,T}function AN(e,t){return e.leader_slots.reduce((n,r,i)=>(e.staked_pubkeys[r]===t&&n.push(i*$n+e.start_slot),n),[])}function xi(e){return e-e%$n}const FN=[{unit:"years",suffix:"y"},{unit:"months",suffix:"m"},{unit:"weeks",suffix:"w"},{unit:"days",suffix:"d"},{unit:"hours",suffix:"h"},{unit:"minutes",suffix:"m"},{unit:"seconds",suffix:"s"}];function $ze(e,t){if(t!=null&&t.showOnlyTwoSignificantUnits){const n=FN.findIndex(({unit:r})=>!!e[r]);return FN.slice(n,n+2).map(({unit:r,suffix:i})=>[e[r],i])}return FN.filter(({unit:n})=>t!=null&&t.omitSeconds&&n==="seconds"?!1:!!e[n]).map(({unit:n,suffix:r})=>[e[n],r])}function ere(e,t){if(!e)return;if(e.toMillis()<1e3)return[[0,"s"]];const n=$ze(e,t);return n.length?n:[[0,"s"]]}function Sp(e,t){const n=ere(e,t);return n?n.map(([r,i])=>`${r}${i}`).join(" "):"Never"}function Mze(e,t={showSeconds:!0}){if(!e)return"Never";if(e.toMillis()<0)return"0s";let n="";return e.years&&(n&&(n+=" "),n+=`${e.years}y`),e.months&&(n&&(n+=" "),n+=`${e.months}m`),e.weeks&&(n&&(n+=" "),n+=`${e.weeks}w`),e.days&&(n&&(n+=" "),n+=`${e.days}d`),e.hours&&(n&&(n+=" "),n+=`${e.hours}h`),e.minutes&&(n&&(n+=" "),n+=`${e.minutes}m`),e.seconds&&t.showSeconds&&(n&&(n+=" "),n+=`${e.seconds}s`),n||(n="0s"),n}let Kf=jt.now();setInterval(()=>{Kf=jt.now()},1e3);function tre(e){return jt.fromMillis(Math.trunc(Number(e/1000000n)))}function Cb(e){return e!==void 0}const jb=e=>e>=18446744073709552e3?0:e;function nre(e){return e.vote.reduce((t,{activated_stake:n})=>t+n,0n)}function Tb(e,t){if(e===void 0)return;const n=Number(e)/dd;return n<1?n.toLocaleString(void 0,{maximumFractionDigits:t}):n<100?n.toLocaleString(void 0,{maximumFractionDigits:2}):n.toLocaleString(void 0,{maximumFractionDigits:0})}function BN(e,t){const n=Tb(e,t);if(n!==void 0)return`${n}\xA0SOL`}const Lze=e=>Array.isArray(e);function UN(e){if(navigator.clipboard){navigator.clipboard.writeText(e);return}const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.left="-999999px",document.body.appendChild(t),t.select();try{document.execCommand("copy")||console.error("Failed to copy text",e)}catch(n){console.error("Failed to copy text",e,n)}finally{document.body.removeChild(t)}}function Rze(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function WN(e,t){return e.txn_landed[t]&&![5,6].includes(e.txn_error_code[t])?e.txn_priority_fee[t]+e.txn_transaction_fee[t]:0n}function VN(e,t){return e.txn_landed[t]&&e.txn_error_code[t]===0?e.txn_tips[t]:0n}function md(e,t){return WN(e,t)+VN(e,t)}function HN(e){return e.split(":")[0]}function bk(e){switch(e){case"mainnet-beta":return sne;case"testnet":return lne;case"development":return une;case"devnet":return cne;case"pythnet":return dne;case"pythtest":return fne;case"unknown":case void 0:return hne}}function Ib(e){const t=e*8;return t<1e3?{value:_k(t),unit:"b"}:t<1e6?{value:_k(t/1e3),unit:"Kb"}:t<1e9?{value:_k(t/1e6),unit:"Mb"}:{value:_k(t/1e9),unit:"Gb"}}const Sg=[{unit:"B",divisor:1,threshold:1e3},{unit:"kB",divisor:1e3,threshold:1e6},{unit:"MB",divisor:1e6,threshold:1e9},{unit:"GB",divisor:1e9,threshold:1/0}];function Da(e,t=1,n,r=!0){if(e===0&&r)return{value:"0",unit:n??"B"};const i=Sg.find(o=>o.unit===n)??Sg.find(o=>e=9.5?Math.round(e):Math.round(e*10)/10}function Eb(e){let t=-1/0;for(let n=0;nt&&(t=r)}return t}function Oze(e){let t=1/0;for(let n=0;n{if(e)return e.toUpperCase().split("").map(t=>String.fromCodePoint(t.charCodeAt(0)-65+127462)).join("")},{maxSize:100}),xk={month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3},wk={local:new Intl.DateTimeFormat(void 0,{...xk,timeZoneName:"short"}),localNoTz:new Intl.DateTimeFormat(void 0,xk),utc:new Intl.DateTimeFormat(void 0,{...xk,timeZone:"UTC",timeZoneName:"short"}),utcNoTz:new Intl.DateTimeFormat(void 0,{...xk,timeZone:"UTC"})};function kk(e,t){const n=Number(e/1000000n),r=Number(e%1000000n),i=new Date(n),o=(t==null?void 0:t.timezone)??"local",a=(t==null?void 0:t.showTimezoneName)??!0,s=(o==="utc"?a?wk.utc:wk.utcNoTz:a?wk.local:wk.localNoTz).formatToParts(i),l=r.toString().padStart(6,"0");let c="",d="";for(const f of s)c+=f.value,d+=f.value,f.type==="fractionalSecond"&&(d+=l);return{inMillis:c,inNanos:d}}function zze(e){return e.level==="rooted"&&(e.vote_latency&&e.vote_latency>1||e.vote_latency===null&&!e.skipped)}function rre(e,t,n){let r=0;for(let i=e;it>=a.from&&t{if(!t)return"";const a=Cp(t,{units:"iec"}),s=e?e/t:0,l=Number(a.value);return`${isNaN(l)?"0":(l*s).toFixed(1)} / ${a.toString()}`};return u.jsx(V,{children:u.jsxs(V,{direction:"column",children:[u.jsx(Mt,{minHeight:"10px"}),u.jsx(N4,{value:r,className:H3.progress}),u.jsxs(V,{minHeight:"10px",children:[u.jsx(q,{className:H3.text,children:o()}),u.jsx(Mt,{flexGrow:"1"}),u.jsxs(q,{className:H3.text,children:["~",Sp(i)]})]})]})})}function Aze(){const e=X(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_full_snapshot_current_bytes,totalBytes:e.downloading_full_snapshot_total_bytes,remainingSecs:e.downloading_full_snapshot_remaining_secs})}var Sk={exports:{}};/** -* @license -* Lodash -* Copyright OpenJS Foundation and other contributors -* Released under MIT license -* Based on Underscore.js 1.8.3 -* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -*/Sk.exports,function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",f=1,p=2,v=4,_=1,y=2,b=1,w=2,x=4,S=8,C=16,j=32,T=64,E=128,$=256,A=512,M=30,P="...",te=800,Z=16,O=1,J=2,D=3,Y=1/0,F=9007199254740991,H=17976931348623157e292,ee=NaN,ce=4294967295,U=ce-1,ae=ce>>>1,je=[["ary",E],["bind",b],["bindKey",w],["curry",S],["curryRight",C],["flip",A],["partial",j],["partialRight",T],["rearg",$]],me="[object Arguments]",ke="[object Array]",he="[object AsyncFunction]",ue="[object Boolean]",re="[object Date]",ge="[object DOMException]",$e="[object Error]",pe="[object Function]",ye="[object GeneratorFunction]",Se="[object Map]",Ce="[object Number]",Be="[object Null]",Ge="[object Object]",xt="[object Promise]",St="[object Proxy]",ut="[object RegExp]",ct="[object Set]",bt="[object String]",Qe="[object Symbol]",Ke="[object Undefined]",De="[object WeakMap]",Dt="[object WeakSet]",pn="[object ArrayBuffer]",Yn="[object DataView]",fr="[object Float32Array]",Kn="[object Float64Array]",wr="[object Int8Array]",Pn="[object Int16Array]",$r="[object Int32Array]",tr="[object Uint8Array]",kr="[object Uint8ClampedArray]",ni="[object Uint16Array]",uo="[object Uint32Array]",Ki=/\b__p \+= '';/g,No=/\b(__p \+=) '' \+/g,Os=/(__e\(.*?\)|\b__t\)) \+\n'';/g,zn=/&(?:amp|lt|gt|quot|#39);/g,co=/[&<>"']/g,_a=RegExp(zn.source),yc=RegExp(co.source),bc=/<%-([\s\S]+?)%>/g,_c=/<%([\s\S]+?)%>/g,qa=/<%=([\s\S]+?)%>/g,kl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pi=/^\w*$/,Bn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mr=/[\\^$.*+?()[\]{}|]/g,$o=RegExp(Mr.source),fo=/^\s+/,Lr=/\s/,ho=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,xa=/\{\n\/\* \[wrapped with (.+)\] \*/,it=/,? & /,Yt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,ri=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ga=/\w*$/,Ya=/^[-+]0x[0-9a-f]+$/i,Ko=/^0b[01]+$/i,mi=/^\[object .+?Constructor\]$/,Un=/^0o[0-7]+$/i,hr=/^(?:0|[1-9]\d*)$/,Sr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ka=/($^)/,po=/['\n\r\u2028\u2029\\]/g,mo="\\ud800-\\udfff",Wr="\\u0300-\\u036f",wa="\\ufe20-\\ufe2f",ji="\\u20d0-\\u20ff",gi=Wr+wa+ji,Ps="\\u2700-\\u27bf",go="a-z\\xdf-\\xf6\\xf8-\\xff",Xo="\\xac\\xb1\\xd7\\xf7",Pd="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",zd="\\u2000-\\u206f",bu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xi="A-Z\\xc0-\\xd6\\xd8-\\xde",ii="\\ufe0e\\ufe0f",xc=Xo+Pd+zd+bu,_u="['\u2019]",wc="["+mo+"]",kc="["+xc+"]",Sl="["+gi+"]",Xa="\\d+",z1="["+Ps+"]",Dd="["+go+"]",Sc="[^"+mo+xc+Xa+Ps+go+Xi+"]",Ad="\\ud83c[\\udffb-\\udfff]",Fm="(?:"+Sl+"|"+Ad+")",Fd="[^"+mo+"]",R="(?:\\ud83c[\\udde6-\\uddff]){2}",G="[\\ud800-\\udbff][\\udc00-\\udfff]",ie="["+Xi+"]",Ie="\\u200d",ze="(?:"+Dd+"|"+Sc+")",vt="(?:"+ie+"|"+Sc+")",Kt="(?:"+_u+"(?:d|ll|m|re|s|t|ve))?",In="(?:"+_u+"(?:D|LL|M|RE|S|T|VE))?",Di=Fm+"?",Ti="["+ii+"]?",Ji="(?:"+Ie+"(?:"+[Fd,R,G].join("|")+")"+Ti+Di+")*",pC="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Bd="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",jx=Ti+Di+Ji,Tx="(?:"+[z1,R,G].join("|")+")"+jx,D1="(?:"+[Fd+Sl+"?",Sl,R,G,wc].join("|")+")",A1=RegExp(_u,"g"),F1=RegExp(Sl,"g"),xu=RegExp(Ad+"(?="+Ad+")|"+D1+jx,"g"),Ud=RegExp([ie+"?"+Dd+"+"+Kt+"(?="+[kc,ie,"$"].join("|")+")",vt+"+"+In+"(?="+[kc,ie+ze,"$"].join("|")+")",ie+"?"+ze+"+"+Kt,ie+"+"+In,Bd,pC,Xa,Tx].join("|"),"g"),Ix=RegExp("["+Ie+mo+gi+ii+"]"),Ex=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wd=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Vd=-1,rr={};rr[fr]=rr[Kn]=rr[wr]=rr[Pn]=rr[$r]=rr[tr]=rr[kr]=rr[ni]=rr[uo]=!0,rr[me]=rr[ke]=rr[pn]=rr[ue]=rr[Yn]=rr[re]=rr[$e]=rr[pe]=rr[Se]=rr[Ce]=rr[Ge]=rr[ut]=rr[ct]=rr[bt]=rr[De]=!1;var Xn={};Xn[me]=Xn[ke]=Xn[pn]=Xn[Yn]=Xn[ue]=Xn[re]=Xn[fr]=Xn[Kn]=Xn[wr]=Xn[Pn]=Xn[$r]=Xn[Se]=Xn[Ce]=Xn[Ge]=Xn[ut]=Xn[ct]=Xn[bt]=Xn[Qe]=Xn[tr]=Xn[kr]=Xn[ni]=Xn[uo]=!0,Xn[$e]=Xn[pe]=Xn[De]=!1;var pr={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Cr={"&":"&","<":"<",">":">",'"':""","'":"'"},wu={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ai={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ii=parseFloat,Ei=parseInt,ir=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Hd=typeof self=="object"&&self&&self.Object===Object&&self,oi=ir||Hd||Function("return this")(),B1=t&&!t.nodeType&&t,Mo=B1&&!0&&e&&!e.nodeType&&e,Ja=Mo&&Mo.exports===B1,U1=Ja&&ir.process,ka=function(){try{var le=Mo&&Mo.require&&Mo.require("util").types;return le||U1&&U1.binding&&U1.binding("util")}catch{}}(),Nx=ka&&ka.isArrayBuffer,$x=ka&&ka.isDate,zs=ka&&ka.isMap,Cl=ka&&ka.isRegExp,ku=ka&&ka.isSet,Cc=ka&&ka.isTypedArray;function Jo(le,Ne,we){switch(we.length){case 0:return le.call(Ne);case 1:return le.call(Ne,we[0]);case 2:return le.call(Ne,we[0],we[1]);case 3:return le.call(Ne,we[0],we[1],we[2])}return le.apply(Ne,we)}function Ds(le,Ne,we,Je){for(var _t=-1,Gt=le==null?0:le.length;++_t-1}function V1(le,Ne,we){for(var Je=-1,_t=le==null?0:le.length;++Je<_t;)if(we(Ne,le[Je]))return!0;return!1}function or(le,Ne){for(var we=-1,Je=le==null?0:le.length,_t=Array(Je);++we-1;);return we}function Px(le,Ne){for(var we=le.length;we--&&Tc(Ne,le[we],0)>-1;);return we}function mC(le,Ne){for(var we=le.length,Je=0;we--;)le[we]===Ne&&++Je;return Je}var J1=Y1(pr),N=Y1(Cr);function z(le){return"\\"+Ai[le]}function K(le,Ne){return le==null?n:le[Ne]}function Q(le){return Ix.test(le)}function de(le){return Ex.test(le)}function xe(le){for(var Ne,we=[];!(Ne=le.next()).done;)we.push(Ne.value);return we}function Me(le){var Ne=-1,we=Array(le.size);return le.forEach(function(Je,_t){we[++Ne]=[_t,Je]}),we}function Fe(le,Ne){return function(we){return le(Ne(we))}}function Ve(le,Ne){for(var we=-1,Je=le.length,_t=0,Gt=[];++we-1}function I0e(h,g){var k=this.__data__,I=Yx(k,h);return I<0?(++this.size,k.push([h,g])):k[I][1]=g,this}Nc.prototype.clear=S0e,Nc.prototype.delete=C0e,Nc.prototype.get=j0e,Nc.prototype.has=T0e,Nc.prototype.set=I0e;function $c(h){var g=-1,k=h==null?0:h.length;for(this.clear();++g=g?h:g)),h}function Bs(h,g,k,I,L,W){var ne,se=g&f,ve=g&p,Le=g&v;if(k&&(ne=L?k(h,I,L,W):k(h)),ne!==n)return ne;if(!Xr(h))return h;var Re=Ht(h);if(Re){if(ne=Mge(h),!se)return ja(h,ne)}else{var Ae=Ro(h),tt=Ae==pe||Ae==ye;if(Qd(h))return hz(h,se);if(Ae==Ge||Ae==me||tt&&!L){if(ne=ve||tt?{}:Mz(h),!se)return ve?xge(h,V0e(ne,h)):_ge(h,WP(ne,h))}else{if(!Xn[Ae])return L?h:{};ne=Lge(h,Ae,se)}}W||(W=new Tl);var pt=W.get(h);if(pt)return pt;W.set(h,ne),sD(h)?h.forEach(function($t){ne.add(Bs($t,g,k,$t,h,W))}):oD(h)&&h.forEach(function($t,mn){ne.set(mn,Bs($t,g,k,mn,h,W))});var Nt=Le?ve?FC:AC:ve?Ia:eo,nn=Re?n:Nt(h);return Sa(nn||h,function($t,mn){nn&&(mn=$t,$t=h[mn]),iv(ne,mn,Bs($t,g,k,mn,h,W))}),ne}function H0e(h){var g=eo(h);return function(k){return VP(k,h,g)}}function VP(h,g,k){var I=k.length;if(h==null)return!I;for(h=tn(h);I--;){var L=k[I],W=g[L],ne=h[L];if(ne===n&&!(L in h)||!W(ne))return!1}return!0}function HP(h,g,k){if(typeof h!="function")throw new ar(a);return dv(function(){h.apply(n,k)},g)}function ov(h,g,k,I){var L=-1,W=Su,ne=!0,se=h.length,ve=[],Le=g.length;if(!se)return ve;k&&(g=or(g,Sn(k))),I?(W=V1,ne=!1):g.length>=i&&(W=Ic,ne=!1,g=new Th(g));e:for(;++LL?0:L+k),I=I===n||I>L?L:Xt(I),I<0&&(I+=L),I=k>I?0:uD(I);k0&&k(se)?g>1?vo(se,g-1,k,I,L):Cu(L,se):I||(L[L.length]=se)}return L}var xC=bz(),GP=bz(!0);function Iu(h,g){return h&&xC(h,g,eo)}function wC(h,g){return h&&GP(h,g,eo)}function Xx(h,g){return Ca(g,function(k){return Pc(h[k])})}function Eh(h,g){g=Xd(g,h);for(var k=0,I=g.length;h!=null&&kg}function G0e(h,g){return h!=null&&Jn.call(h,g)}function Y0e(h,g){return h!=null&&g in tn(h)}function K0e(h,g,k){return h>=Lo(g,k)&&h=120&&Re.length>=120)?new Th(ne&&Re):n}Re=h[0];var Ae=-1,tt=se[0];e:for(;++Ae-1;)se!==h&&Ux.call(se,ve,1),Ux.call(h,ve,1);return h}function oz(h,g){for(var k=h?g.length:0,I=k-1;k--;){var L=g[k];if(k==I||L!==W){var W=L;Oc(L)?Ux.call(h,L,1):MC(h,L)}}return h}function EC(h,g){return h+Hx(AP()*(g-h+1))}function uge(h,g,k,I){for(var L=-1,W=Fi(Vx((g-h)/(k||1)),0),ne=we(W);W--;)ne[I?W:++L]=h,h+=k;return ne}function NC(h,g){var k="";if(!h||g<1||g>F)return k;do g%2&&(k+=h),g=Hx(g/2),g&&(h+=h);while(g);return k}function sn(h,g){return qC(Oz(h,g,Ea),h+"")}function cge(h){return UP(Xm(h))}function dge(h,g){var k=Xm(h);return l2(k,Ih(g,0,k.length))}function lv(h,g,k,I){if(!Xr(h))return h;g=Xd(g,h);for(var L=-1,W=g.length,ne=W-1,se=h;se!=null&&++LL?0:L+g),k=k>L?L:k,k<0&&(k+=L),L=g>k?0:k-g>>>0,g>>>=0;for(var W=we(L);++I>>1,ne=h[W];ne!==null&&!es(ne)&&(k?ne<=g:ne=i){var Le=g?null:Cge(h);if(Le)return et(Le);ne=!1,L=Ic,ve=new Th}else ve=g?[]:se;e:for(;++I=I?h:Us(h,g,k)}var fz=n0e||function(h){return oi.clearTimeout(h)};function hz(h,g){if(g)return h.slice();var k=h.length,I=RP?RP(k):new h.constructor(k);return h.copy(I),I}function PC(h){var g=new h.constructor(h.byteLength);return new Fx(g).set(new Fx(h)),g}function gge(h,g){var k=g?PC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.byteLength)}function vge(h){var g=new h.constructor(h.source,Ga.exec(h));return g.lastIndex=h.lastIndex,g}function yge(h){return rv?tn(rv.call(h)):{}}function pz(h,g){var k=g?PC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.length)}function mz(h,g){if(h!==g){var k=h!==n,I=h===null,L=h===h,W=es(h),ne=g!==n,se=g===null,ve=g===g,Le=es(g);if(!se&&!Le&&!W&&h>g||W&&ne&&ve&&!se&&!Le||I&&ne&&ve||!k&&ve||!L)return 1;if(!I&&!W&&!Le&&h=se)return ve;var Le=k[I];return ve*(Le=="desc"?-1:1)}}return h.index-g.index}function gz(h,g,k,I){for(var L=-1,W=h.length,ne=k.length,se=-1,ve=g.length,Le=Fi(W-ne,0),Re=we(ve+Le),Ae=!I;++se1?k[L-1]:n,ne=L>2?k[2]:n;for(W=h.length>3&&typeof W=="function"?(L--,W):n,ne&&ta(k[0],k[1],ne)&&(W=L<3?n:W,L=1),g=tn(g);++I-1?L[W?g[ne]:ne]:n}}function wz(h){return Rc(function(g){var k=g.length,I=k,L=Fs.prototype.thru;for(h&&g.reverse();I--;){var W=g[I];if(typeof W!="function")throw new ar(a);if(L&&!ne&&a2(W)=="wrapper")var ne=new Fs([],!0)}for(I=ne?I:k;++I1&&xn.reverse(),Re&&vese))return!1;var Le=W.get(h),Re=W.get(g);if(Le&&Re)return Le==g&&Re==h;var Ae=-1,tt=!0,pt=k&y?new Th:n;for(W.set(h,g),W.set(g,h);++Ae1?"& ":"")+g[I],g=g.join(k>2?", ":" "),h.replace(ho,`{ -/* [wrapped with `+g+`] */ -`)}function Oge(h){return Ht(h)||Mh(h)||!!(zP&&h&&h[zP])}function Oc(h,g){var k=typeof h;return g=g??F,!!g&&(k=="number"||k!="symbol"&&hr.test(h))&&h>-1&&h%1==0&&h0){if(++g>=te)return arguments[0]}else g=0;return h.apply(n,arguments)}}function l2(h,g){var k=-1,I=h.length,L=I-1;for(g=g===n?I:g;++k1?h[g-1]:n;return k=typeof k=="function"?(h.pop(),k):n,qz(h,k)});function Gz(h){var g=B(h);return g.__chain__=!0,g}function Z1e(h,g){return g(h),h}function u2(h,g){return g(h)}var q1e=Rc(function(h){var g=h.length,k=g?h[0]:0,I=this.__wrapped__,L=function(W){return _C(W,h)};return g>1||this.__actions__.length||!(I instanceof yn)||!Oc(k)?this.thru(L):(I=I.slice(k,+k+(g?1:0)),I.__actions__.push({func:u2,args:[L],thisArg:n}),new Fs(I,this.__chain__).thru(function(W){return g&&!W.length&&W.push(n),W}))});function G1e(){return Gz(this)}function Y1e(){return new Fs(this.value(),this.__chain__)}function K1e(){this.__values__===n&&(this.__values__=lD(this.value()));var h=this.__index__>=this.__values__.length,g=h?n:this.__values__[this.__index__++];return{done:h,value:g}}function X1e(){return this}function J1e(h){for(var g,k=this;k instanceof Gx;){var I=Bz(k);I.__index__=0,I.__values__=n,g?L.__wrapped__=I:g=I;var L=I;k=k.__wrapped__}return L.__wrapped__=h,g}function Q1e(){var h=this.__wrapped__;if(h instanceof yn){var g=h;return this.__actions__.length&&(g=new yn(this)),g=g.reverse(),g.__actions__.push({func:u2,args:[GC],thisArg:n}),new Fs(g,this.__chain__)}return this.thru(GC)}function eve(){return cz(this.__wrapped__,this.__actions__)}var tve=t2(function(h,g,k){Jn.call(h,k)?++h[k]:Mc(h,k,1)});function nve(h,g,k){var I=Ht(h)?W1:Z0e;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}function rve(h,g){var k=Ht(h)?Ca:qP;return k(h,It(g,3))}var ive=xz(Uz),ove=xz(Wz);function ave(h,g){return vo(c2(h,g),1)}function sve(h,g){return vo(c2(h,g),Y)}function lve(h,g,k){return k=k===n?1:Xt(k),vo(c2(h,g),k)}function Yz(h,g){var k=Ht(h)?Sa:Yd;return k(h,It(g,3))}function Kz(h,g){var k=Ht(h)?Mx:ZP;return k(h,It(g,3))}var uve=t2(function(h,g,k){Jn.call(h,k)?h[k].push(g):Mc(h,k,[g])});function cve(h,g,k,I){h=Ta(h)?h:Xm(h),k=k&&!I?Xt(k):0;var L=h.length;return k<0&&(k=Fi(L+k,0)),m2(h)?k<=L&&h.indexOf(g,k)>-1:!!L&&Tc(h,g,k)>-1}var dve=sn(function(h,g,k){var I=-1,L=typeof g=="function",W=Ta(h)?we(h.length):[];return Yd(h,function(ne){W[++I]=L?Jo(g,ne,k):av(ne,g,k)}),W}),fve=t2(function(h,g,k){Mc(h,k,g)});function c2(h,g){var k=Ht(h)?or:QP;return k(h,It(g,3))}function hve(h,g,k,I){return h==null?[]:(Ht(g)||(g=g==null?[]:[g]),k=I?n:k,Ht(k)||(k=k==null?[]:[k]),rz(h,g,k))}var pve=t2(function(h,g,k){h[k?0:1].push(g)},function(){return[[],[]]});function mve(h,g,k){var I=Ht(h)?jl:K1,L=arguments.length<3;return I(h,It(g,4),k,L,Yd)}function gve(h,g,k){var I=Ht(h)?ju:K1,L=arguments.length<3;return I(h,It(g,4),k,L,ZP)}function vve(h,g){var k=Ht(h)?Ca:qP;return k(h,h2(It(g,3)))}function yve(h){var g=Ht(h)?UP:cge;return g(h)}function bve(h,g,k){(k?ta(h,g,k):g===n)?g=1:g=Xt(g);var I=Ht(h)?B0e:dge;return I(h,g)}function _ve(h){var g=Ht(h)?U0e:hge;return g(h)}function xve(h){if(h==null)return 0;if(Ta(h))return m2(h)?hn(h):h.length;var g=Ro(h);return g==Se||g==ct?h.size:jC(h).length}function wve(h,g,k){var I=Ht(h)?jc:pge;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}var kve=sn(function(h,g){if(h==null)return[];var k=g.length;return k>1&&ta(h,g[0],g[1])?g=[]:k>2&&ta(g[0],g[1],g[2])&&(g=[g[0]]),rz(h,vo(g,1),[])}),d2=r0e||function(){return oi.Date.now()};function Sve(h,g){if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){if(--h<1)return g.apply(this,arguments)}}function Xz(h,g,k){return g=k?n:g,g=h&&g==null?h.length:g,Lc(h,E,n,n,n,n,g)}function Jz(h,g){var k;if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){return--h>0&&(k=g.apply(this,arguments)),h<=1&&(g=n),k}}var KC=sn(function(h,g,k){var I=b;if(k.length){var L=Ve(k,Ym(KC));I|=j}return Lc(h,I,g,k,L)}),Qz=sn(function(h,g,k){var I=b|w;if(k.length){var L=Ve(k,Ym(Qz));I|=j}return Lc(g,I,h,k,L)});function eD(h,g,k){g=k?n:g;var I=Lc(h,S,n,n,n,n,n,g);return I.placeholder=eD.placeholder,I}function tD(h,g,k){g=k?n:g;var I=Lc(h,C,n,n,n,n,n,g);return I.placeholder=tD.placeholder,I}function nD(h,g,k){var I,L,W,ne,se,ve,Le=0,Re=!1,Ae=!1,tt=!0;if(typeof h!="function")throw new ar(a);g=Vs(g)||0,Xr(k)&&(Re=!!k.leading,Ae="maxWait"in k,W=Ae?Fi(Vs(k.maxWait)||0,g):W,tt="trailing"in k?!!k.trailing:tt);function pt(yi){var El=I,Dc=L;return I=L=n,Le=yi,ne=h.apply(Dc,El),ne}function Nt(yi){return Le=yi,se=dv(mn,g),Re?pt(yi):ne}function nn(yi){var El=yi-ve,Dc=yi-Le,xD=g-El;return Ae?Lo(xD,W-Dc):xD}function $t(yi){var El=yi-ve,Dc=yi-Le;return ve===n||El>=g||El<0||Ae&&Dc>=W}function mn(){var yi=d2();if($t(yi))return xn(yi);se=dv(mn,nn(yi))}function xn(yi){return se=n,tt&&I?pt(yi):(I=L=n,ne)}function ts(){se!==n&&fz(se),Le=0,I=ve=L=se=n}function na(){return se===n?ne:xn(d2())}function ns(){var yi=d2(),El=$t(yi);if(I=arguments,L=this,ve=yi,El){if(se===n)return Nt(ve);if(Ae)return fz(se),se=dv(mn,g),pt(ve)}return se===n&&(se=dv(mn,g)),ne}return ns.cancel=ts,ns.flush=na,ns}var Cve=sn(function(h,g){return HP(h,1,g)}),jve=sn(function(h,g,k){return HP(h,Vs(g)||0,k)});function Tve(h){return Lc(h,A)}function f2(h,g){if(typeof h!="function"||g!=null&&typeof g!="function")throw new ar(a);var k=function(){var I=arguments,L=g?g.apply(this,I):I[0],W=k.cache;if(W.has(L))return W.get(L);var ne=h.apply(this,I);return k.cache=W.set(L,ne)||W,ne};return k.cache=new(f2.Cache||$c),k}f2.Cache=$c;function h2(h){if(typeof h!="function")throw new ar(a);return function(){var g=arguments;switch(g.length){case 0:return!h.call(this);case 1:return!h.call(this,g[0]);case 2:return!h.call(this,g[0],g[1]);case 3:return!h.call(this,g[0],g[1],g[2])}return!h.apply(this,g)}}function Ive(h){return Jz(2,h)}var Eve=mge(function(h,g){g=g.length==1&&Ht(g[0])?or(g[0],Sn(It())):or(vo(g,1),Sn(It()));var k=g.length;return sn(function(I){for(var L=-1,W=Lo(I.length,k);++L=g}),Mh=KP(function(){return arguments}())?KP:function(h){return si(h)&&Jn.call(h,"callee")&&!PP.call(h,"callee")},Ht=we.isArray,Vve=Nx?Sn(Nx):J0e;function Ta(h){return h!=null&&p2(h.length)&&!Pc(h)}function vi(h){return si(h)&&Ta(h)}function Hve(h){return h===!0||h===!1||si(h)&&ea(h)==ue}var Qd=o0e||lj,Zve=$x?Sn($x):Q0e;function qve(h){return si(h)&&h.nodeType===1&&!fv(h)}function Gve(h){if(h==null)return!0;if(Ta(h)&&(Ht(h)||typeof h=="string"||typeof h.splice=="function"||Qd(h)||Km(h)||Mh(h)))return!h.length;var g=Ro(h);if(g==Se||g==ct)return!h.size;if(cv(h))return!jC(h).length;for(var k in h)if(Jn.call(h,k))return!1;return!0}function Yve(h,g){return sv(h,g)}function Kve(h,g,k){k=typeof k=="function"?k:n;var I=k?k(h,g):n;return I===n?sv(h,g,n,k):!!I}function JC(h){if(!si(h))return!1;var g=ea(h);return g==$e||g==ge||typeof h.message=="string"&&typeof h.name=="string"&&!fv(h)}function Xve(h){return typeof h=="number"&&DP(h)}function Pc(h){if(!Xr(h))return!1;var g=ea(h);return g==pe||g==ye||g==he||g==St}function iD(h){return typeof h=="number"&&h==Xt(h)}function p2(h){return typeof h=="number"&&h>-1&&h%1==0&&h<=F}function Xr(h){var g=typeof h;return h!=null&&(g=="object"||g=="function")}function si(h){return h!=null&&typeof h=="object"}var oD=zs?Sn(zs):tge;function Jve(h,g){return h===g||CC(h,g,UC(g))}function Qve(h,g,k){return k=typeof k=="function"?k:n,CC(h,g,UC(g),k)}function eye(h){return aD(h)&&h!=+h}function tye(h){if(Dge(h))throw new _t(o);return XP(h)}function nye(h){return h===null}function rye(h){return h==null}function aD(h){return typeof h=="number"||si(h)&&ea(h)==Ce}function fv(h){if(!si(h)||ea(h)!=Ge)return!1;var g=Bx(h);if(g===null)return!0;var k=Jn.call(g,"constructor")&&g.constructor;return typeof k=="function"&&k instanceof k&&zx.call(k)==Qme}var QC=Cl?Sn(Cl):nge;function iye(h){return iD(h)&&h>=-F&&h<=F}var sD=ku?Sn(ku):rge;function m2(h){return typeof h=="string"||!Ht(h)&&si(h)&&ea(h)==bt}function es(h){return typeof h=="symbol"||si(h)&&ea(h)==Qe}var Km=Cc?Sn(Cc):ige;function oye(h){return h===n}function aye(h){return si(h)&&Ro(h)==De}function sye(h){return si(h)&&ea(h)==Dt}var lye=o2(TC),uye=o2(function(h,g){return h<=g});function lD(h){if(!h)return[];if(Ta(h))return m2(h)?Bt(h):ja(h);if(Q1&&h[Q1])return xe(h[Q1]());var g=Ro(h),k=g==Se?Me:g==ct?et:Xm;return k(h)}function zc(h){if(!h)return h===0?h:0;if(h=Vs(h),h===Y||h===-Y){var g=h<0?-1:1;return g*H}return h===h?h:0}function Xt(h){var g=zc(h),k=g%1;return g===g?k?g-k:g:0}function uD(h){return h?Ih(Xt(h),0,ce):0}function Vs(h){if(typeof h=="number")return h;if(es(h))return ee;if(Xr(h)){var g=typeof h.valueOf=="function"?h.valueOf():h;h=Xr(g)?g+"":g}if(typeof h!="string")return h===0?h:+h;h=X1(h);var k=Ko.test(h);return k||Un.test(h)?Ei(h.slice(2),k?2:8):Ya.test(h)?ee:+h}function cD(h){return Eu(h,Ia(h))}function cye(h){return h?Ih(Xt(h),-F,F):h===0?h:0}function Wn(h){return h==null?"":Qa(h)}var dye=qm(function(h,g){if(cv(g)||Ta(g)){Eu(g,eo(g),h);return}for(var k in g)Jn.call(g,k)&&iv(h,k,g[k])}),dD=qm(function(h,g){Eu(g,Ia(g),h)}),g2=qm(function(h,g,k,I){Eu(g,Ia(g),h,I)}),fye=qm(function(h,g,k,I){Eu(g,eo(g),h,I)}),hye=Rc(_C);function pye(h,g){var k=Zm(h);return g==null?k:WP(k,g)}var mye=sn(function(h,g){h=tn(h);var k=-1,I=g.length,L=I>2?g[2]:n;for(L&&ta(g[0],g[1],L)&&(I=1);++k1),W}),Eu(h,FC(h),k),I&&(k=Bs(k,f|p|v,jge));for(var L=g.length;L--;)MC(k,g[L]);return k});function Lye(h,g){return hD(h,h2(It(g)))}var Rye=Rc(function(h,g){return h==null?{}:sge(h,g)});function hD(h,g){if(h==null)return{};var k=or(FC(h),function(I){return[I]});return g=It(g),iz(h,k,function(I,L){return g(I,L[0])})}function Oye(h,g,k){g=Xd(g,h);var I=-1,L=g.length;for(L||(L=1,h=n);++Ig){var I=h;h=g,g=I}if(k||h%1||g%1){var L=AP();return Lo(h+L*(g-h+Ii("1e-"+((L+"").length-1))),g)}return EC(h,g)}var Zye=Gm(function(h,g,k){return g=g.toLowerCase(),h+(k?gD(g):g)});function gD(h){return nj(Wn(h).toLowerCase())}function vD(h){return h=Wn(h),h&&h.replace(Sr,J1).replace(F1,"")}function qye(h,g,k){h=Wn(h),g=Qa(g);var I=h.length;k=k===n?I:Ih(Xt(k),0,I);var L=k;return k-=g.length,k>=0&&h.slice(k,L)==g}function Gye(h){return h=Wn(h),h&&yc.test(h)?h.replace(co,N):h}function Yye(h){return h=Wn(h),h&&$o.test(h)?h.replace(Mr,"\\$&"):h}var Kye=Gm(function(h,g,k){return h+(k?"-":"")+g.toLowerCase()}),Xye=Gm(function(h,g,k){return h+(k?" ":"")+g.toLowerCase()}),Jye=_z("toLowerCase");function Qye(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;if(!g||I>=g)return h;var L=(g-I)/2;return i2(Hx(L),k)+h+i2(Vx(L),k)}function ebe(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;return g&&I>>0,k?(h=Wn(h),h&&(typeof g=="string"||g!=null&&!QC(g))&&(g=Qa(g),!g&&Q(h))?Jd(Bt(h),0,k):h.split(g,k)):[]}var sbe=Gm(function(h,g,k){return h+(k?" ":"")+nj(g)});function lbe(h,g,k){return h=Wn(h),k=k==null?0:Ih(Xt(k),0,h.length),g=Qa(g),h.slice(k,k+g.length)==g}function ube(h,g,k){var I=B.templateSettings;k&&ta(h,g,k)&&(g=n),h=Wn(h),g=g2({},g,I,Tz);var L=g2({},g.imports,I.imports,Tz),W=eo(L),ne=Wm(L,W),se,ve,Le=0,Re=g.interpolate||Ka,Ae="__p += '",tt=Qo((g.escape||Ka).source+"|"+Re.source+"|"+(Re===qa?ri:Ka).source+"|"+(g.evaluate||Ka).source+"|$","g"),pt="//# sourceURL="+(Jn.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Vd+"]")+` -`;h.replace(tt,function($t,mn,xn,ts,na,ns){return xn||(xn=ts),Ae+=h.slice(Le,ns).replace(po,z),mn&&(se=!0,Ae+=`' + -__e(`+mn+`) + -'`),na&&(ve=!0,Ae+=`'; -`+na+`; -__p += '`),xn&&(Ae+=`' + -((__t = (`+xn+`)) == null ? '' : __t) + -'`),Le=ns+$t.length,$t}),Ae+=`'; -`;var Nt=Jn.call(g,"variable")&&g.variable;if(!Nt)Ae=`with (obj) { -`+Ae+` -} -`;else if(nr.test(Nt))throw new _t(s);Ae=(ve?Ae.replace(Ki,""):Ae).replace(No,"$1").replace(Os,"$1;"),Ae="function("+(Nt||"obj")+`) { -`+(Nt?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(se?", __e = _.escape":"")+(ve?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+Ae+`return __p -}`;var nn=bD(function(){return Gt(W,pt+"return "+Ae).apply(n,ne)});if(nn.source=Ae,JC(nn))throw nn;return nn}function cbe(h){return Wn(h).toLowerCase()}function dbe(h){return Wn(h).toUpperCase()}function fbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return X1(h);if(!h||!(g=Qa(g)))return h;var I=Bt(h),L=Bt(g),W=qd(I,L),ne=Px(I,L)+1;return Jd(I,W,ne).join("")}function hbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.slice(0,an(h)+1);if(!h||!(g=Qa(g)))return h;var I=Bt(h),L=Px(I,Bt(g))+1;return Jd(I,0,L).join("")}function pbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.replace(fo,"");if(!h||!(g=Qa(g)))return h;var I=Bt(h),L=qd(I,Bt(g));return Jd(I,L).join("")}function mbe(h,g){var k=M,I=P;if(Xr(g)){var L="separator"in g?g.separator:L;k="length"in g?Xt(g.length):k,I="omission"in g?Qa(g.omission):I}h=Wn(h);var W=h.length;if(Q(h)){var ne=Bt(h);W=ne.length}if(k>=W)return h;var se=k-hn(I);if(se<1)return I;var ve=ne?Jd(ne,0,se).join(""):h.slice(0,se);if(L===n)return ve+I;if(ne&&(se+=ve.length-se),QC(L)){if(h.slice(se).search(L)){var Le,Re=ve;for(L.global||(L=Qo(L.source,Wn(Ga.exec(L))+"g")),L.lastIndex=0;Le=L.exec(Re);)var Ae=Le.index;ve=ve.slice(0,Ae===n?se:Ae)}}else if(h.indexOf(Qa(L),se)!=se){var tt=ve.lastIndexOf(L);tt>-1&&(ve=ve.slice(0,tt))}return ve+I}function gbe(h){return h=Wn(h),h&&_a.test(h)?h.replace(zn,Tt):h}var vbe=Gm(function(h,g,k){return h+(k?" ":"")+g.toUpperCase()}),nj=_z("toUpperCase");function yD(h,g,k){return h=Wn(h),g=k?n:g,g===n?de(h)?Vr(h):Z1(h):h.match(g)||[]}var bD=sn(function(h,g){try{return Jo(h,n,g)}catch(k){return JC(k)?k:new _t(k)}}),ybe=Rc(function(h,g){return Sa(g,function(k){k=Nu(k),Mc(h,k,KC(h[k],h))}),h});function bbe(h){var g=h==null?0:h.length,k=It();return h=g?or(h,function(I){if(typeof I[1]!="function")throw new ar(a);return[k(I[0]),I[1]]}):[],sn(function(I){for(var L=-1;++LF)return[];var k=ce,I=Lo(h,ce);g=It(g),h-=ce;for(var L=Zd(I,g);++k0||g<0)?new yn(k):(h<0?k=k.takeRight(-h):h&&(k=k.drop(h)),g!==n&&(g=Xt(g),k=g<0?k.dropRight(-g):k.take(g-h)),k)},yn.prototype.takeRightWhile=function(h){return this.reverse().takeWhile(h).reverse()},yn.prototype.toArray=function(){return this.take(ce)},Iu(yn.prototype,function(h,g){var k=/^(?:filter|find|map|reject)|While$/.test(g),I=/^(?:head|last)$/.test(g),L=B[I?"take"+(g=="last"?"Right":""):g],W=I||/^find/.test(g);L&&(B.prototype[g]=function(){var ne=this.__wrapped__,se=I?[1]:arguments,ve=ne instanceof yn,Le=se[0],Re=ve||Ht(ne),Ae=function(mn){var xn=L.apply(B,Cu([mn],se));return I&&tt?xn[0]:xn};Re&&k&&typeof Le=="function"&&Le.length!=1&&(ve=Re=!1);var tt=this.__chain__,pt=!!this.__actions__.length,Nt=W&&!tt,nn=ve&&!pt;if(!W&&Re){ne=nn?ne:new yn(this);var $t=h.apply(ne,se);return $t.__actions__.push({func:u2,args:[Ae],thisArg:n}),new Fs($t,tt)}return Nt&&nn?h.apply(this,se):($t=this.thru(Ae),Nt?I?$t.value()[0]:$t.value():$t)})}),Sa(["pop","push","shift","sort","splice","unshift"],function(h){var g=Qi[h],k=/^(?:push|sort|unshift)$/.test(h)?"tap":"thru",I=/^(?:pop|shift)$/.test(h);B.prototype[h]=function(){var L=arguments;if(I&&!this.__chain__){var W=this.value();return g.apply(Ht(W)?W:[],L)}return this[k](function(ne){return g.apply(Ht(ne)?ne:[],L)})}}),Iu(yn.prototype,function(h,g){var k=B[g];if(k){var I=k.name+"";Jn.call(Hm,I)||(Hm[I]=[]),Hm[I].push({name:g,func:k})}}),Hm[n2(n,w).name]=[{name:"wrapper",func:n}],yn.prototype.clone=g0e,yn.prototype.reverse=v0e,yn.prototype.value=y0e,B.prototype.at=q1e,B.prototype.chain=G1e,B.prototype.commit=Y1e,B.prototype.next=K1e,B.prototype.plant=J1e,B.prototype.reverse=Q1e,B.prototype.toJSON=B.prototype.valueOf=B.prototype.value=eve,B.prototype.first=B.prototype.head,Q1&&(B.prototype[Q1]=X1e),B},_n=$i();Mo?((Mo.exports=_n)._=_n,B1._=_n):oi._=_n}).call(Ac)}(Sk,Sk.exports);var rt=Sk.exports;const Aa=fe(void 0),Fze=fe(null,(e,t,n)=>{var c;const r=e(di);if(!r)return;if(n=n.trim(),!n){t(Aa,void 0),t(An,void 0);return}const i=parseInt(n,10);if(!isNaN(i)&&i>=r.start_slot&&i<=r.end_slot){t(Aa,void 0),t(An,i);return}if(n.length<3){t(Aa,[]),t(An,void 0);return}const o=n.split(",").map(d=>d.trim().toLowerCase()).filter(d=>!!d),a=Object.entries(qte).reduce((d,[f,p])=>(o.some(v=>p.toLowerCase().includes(v))&&d.add(parseInt(f)),d),new Set),s=(c=e(gDe))==null?void 0:c.filter(({name:d,pubkey:f,clientId:p})=>p!=null&&a.has(p)||o.some(v=>(d==null?void 0:d.includes(v))||f.toLowerCase().includes(v))).map(({pubkey:d})=>d);if(!(s!=null&&s.length)){t(Aa,[]),t(An,void 0);return}const l=s.flatMap(d=>AN(r,d)).sort();t(Aa,l)}),Bze=fe(null,(e,t)=>{const n=e(Aa);if(!n)return;const r=e(An),i=e(eu),o=n.map(l=>Math.abs(l-(r??i??0))),a=Math.min(...o),s=Math.max(o.indexOf(a),0);t(An,n[s])}),Uze=fe(null,(e,t,n)=>{const r=e(An),i=e(Aa),o=e(eu);if(o!==void 0)if(i!=null&&i.length)if(r!==void 0){const a=i.map(c=>Math.abs(c-r)),s=Math.min(...a),l=Math.max(a.indexOf(s),0);if(l>=0){const c=Math.min(Math.max(l+Math.trunc(n/4),0),i.length-1);t(An,i[c])}}else t(Bze);else r!==void 0?t(An,r+n):t(An,n+o+$n*3)});var Xf=(e=>(e.Valid="valid",e.NotReady="invalid",e.OutsideEpoch="outside-epoch",e.BeforeFirstProcessed="before-first-processed",e.Future="future",e.NotYou="not-you",e))(Xf||{});function Wze(e,t,n,r,i){return e===void 0?"valid":!t||!n||r===void 0||i===void 0?"invalid":e=i?"future":"valid":"not-you"}const gd=function(){const e=fe(),t=fe(n=>{const r=n(di),i=n(e),o=n(ao),a=n(Jf),s=n(oo);return Wze(i,r,o,a,s)});return{slot:e,state:t,isValid:fe(n=>n(t)==="valid")}}(),Cn=fe(e=>e(gd.isValid)?e(gd.slot):void 0);var Io=(e=>(e.Count="Count",e.Pct="Pct %",e.Rate="Rate",e))(Io||{});const Cg=fe("Count"),Vze=fe(e=>{if(!e(Cn))return e(l3)}),Hze=fe(e=>{const t=e(Vze),n=e(rg);return t==null?void 0:t.reduce((r,i,o)=>{var l;const a=n==null?void 0:n[o];if(!a)return r;const s=NE.safeParse(a.kind);return s.error||(r[l=s.data]??(r[l]=[]),r[s.data].push(i)),r},{})}),Zze=fe(e=>{const t=e(rg),n=["snapld","snapdc","snapin"];if(!t)return;const r=t.reduce((i,o,a)=>{const s=NE.safeParse(o.kind);if(s.error||!n.includes(s.data))return i;const l=i.get(s.data)??[];return l.push(a),i.set(s.data,l),i},new Map);return Array.from(r.entries()).map(([i,o])=>[i,o])}),qze=fe(e=>{const t=e(l3),n=e(Zze);if(!(!t||!n))return n.reduce((r,[i,o])=>(r[i]=o.map(a=>t[a]),r),{})}),Gze=fe(e=>{var t;return e(Cn)?void 0:e(Cg)==="Rate"?e(cre):(t=e(kG))==null?void 0:t.waterfall}),ure=Co([]),cre=fe(e=>{var o;if(e(Cg)!=="Rate")return;const t=e(ure);if(t.length<2)return(o=t[0])==null?void 0:o.waterfall;const n=t[t.length-1],r=t[0],i=(n.ts-r.ts)/1e3;return sG(n.waterfall,a=>{for(const s in a.in)if(Object.prototype.hasOwnProperty.call(a.in,s)){const l=a.in[s]-r.waterfall.in[s];a.in[s]=Math.trunc(l/i)}for(const s in a.out)if(Object.prototype.hasOwnProperty.call(a.out,s)){const l=a.out[s]-r.waterfall.out[s];a.out[s]=Math.trunc(l/i)}})},(e,t,n)=>{t(ure,r=>{const i=performance.now();for(n&&r.push({waterfall:n,ts:i});r.length&&i-r[0].ts>1e3;)r.shift();const o=Object.values(r[r.length-1].waterfall.in);for(;r.length>1&&Object.values(r[0].waterfall.in).some((a,s)=>o[s]-a<0);)r.shift()})}),Nb=fe(e=>{const t=e(rg),n=rt.countBy(t,r=>r.kind);return Object.fromEntries(NE.options.map(r=>[r,n[r]??0]))}),Yze={};function ZN(e,t){let n=null;const r=new Map,i=new Set,o=s=>{let l;if(l=r.get(s),l!==void 0)if(n!=null&&n(l[1],s))o.remove(s);else return l[0];const c=e(s);return r.set(s,[c,Date.now()]),a("CREATE",s,c),c},a=(s,l,c)=>{for(const d of i)d({type:s,param:l,atom:c})};return o.unstable_listen=s=>(i.add(s),()=>{i.delete(s)}),o.getParams=()=>r.keys(),o.remove=s=>{{if(!r.has(s))return;const[l]=r.get(s);r.delete(s),a("REMOVE",s,l)}},o.setShouldRemove=s=>{if(n=s,!!n)for(const[l,[c,d]]of r)n(d,l)&&(r.delete(l),a("REMOVE",l,c))},o}const Kze=e=>typeof(e==null?void 0:e.then)=="function";function Xze(e=()=>{try{return window.localStorage}catch(n){(Yze?"production":void 0)!=="production"&&typeof window<"u"&&console.warn(n);return}},t){var n;let r,i;const o={getItem:(l,c)=>{var d,f;const p=_=>{if(_=_||"",r!==_){try{i=JSON.parse(_,t==null?void 0:t.reviver)}catch{return c}r=_}return i},v=(f=(d=e())==null?void 0:d.getItem(l))!=null?f:null;return Kze(v)?v.then(p):p(v)},setItem:(l,c)=>{var d;return(d=e())==null?void 0:d.setItem(l,JSON.stringify(c,void 0))},removeItem:l=>{var c;return(c=e())==null?void 0:c.removeItem(l)}},a=l=>(c,d,f)=>l(c,p=>{let v;try{v=JSON.parse(p||"")}catch{v=f}d(v)});let s;try{s=(n=e())==null?void 0:n.subscribe}catch{}return!s&&typeof window<"u"&&typeof window.addEventListener=="function"&&window.Storage&&(s=(l,c)=>{if(!(e()instanceof window.Storage))return()=>{};const d=f=>{f.storageArea===e()&&f.key===l&&c(f.newValue)};return window.addEventListener("storage",d),()=>{window.removeEventListener("storage",d)}}),s&&(o.subscribe=a(s)),o}Xze();const qN=3,jg=fe();fe();const Jze=fe(!1),dre=fe(),Ck=Co([]),di=fe(e=>{const t=e(oo),n=e(Ck);if(!n.length||t===void 0)return;const r=n.find(({start_slot:i,end_slot:o})=>t>=i&&t<=o);if(r)return r},(e,t,n)=>{t(Ck,r=>{r.findIndex(i=>i.epoch===n.epoch)===-1&&r.push(n)})}),Qze=fe(null,(e,t,n)=>{t(Ck,r=>r.filter(({epoch:i})=>i>=n))}),eDe=fe(e=>{const t=e(di);return t?e(Ck).find(n=>n.epoch===(t==null?void 0:t.epoch)+1):void 0}),[An,tDe]=function(){const e=fe();return[fe(t=>t(e),(t,n,r)=>{const i=t(di);if(!i)return;const o=r===void 0?void 0:rt.clamp(xi(r),i.start_slot,i.end_slot);n(e,o)}),fe(t=>t(e)===void 0)]}(),GN=Co({}),nDe=Yf(e=>fe(t=>e!==void 0&&t(GN)[e]||"incomplete"),{maxSize:1e3});var $b=(e=>(e.AllSlots="All Slots",e.MySlots="My Slots",e))($b||{});const Tg=function(){const e=fe();return fe(t=>t(e)??"All Slots",(t,n,r)=>{n(e,r);const i=t(Cn);n(An,i??void 0)})}(),rDe=fe(null,(e,t,n,r)=>{(r==="completed"||r==="optimistically_confirmed"||r==="rooted")&&t(oo,n+1),t(GN,i=>{i[n]=r})}),fre=10,iDe=fe(e=>{const t=e(ao),n=e(Cn);if(t===void 0||n===void 0)return;const r=t.indexOf(xi(n));if(r!==-1)return t.slice(Math.max(r-fre,0),r+fre)}),jk=1e3,oDe=fe(null,(e,t)=>{const n=e(An),r=e(iDe),i=e(oo),o=e(Aa),a=e(ao),s=e(Tg),l=n??i;l!==void 0&&t(GN,c=>{const d=l-jk/2,f=l+jk/2,p=Object.keys(c);for(const v of p){const _=Number(v),y=xi(_);o!=null&&o.includes(y)||r!=null&&r.includes(y)||s==="My Slots"&&(a!=null&&a.includes(y))||!isNaN(_)&&(_f)&&delete c[_]}})}),Tk=Co({}),YN=ZN(e=>fe(t=>{var n;return e!==void 0?(n=t(Tk)[e])==null?void 0:n.publish:void 0})),hre=ZN(e=>fe(t=>e!==void 0?t(Tk)[e]:void 0)),aDe=fe(null,(e,t,n)=>{const r=n.publish.slot;t(Tk,i=>{var o,a,s,l,c,d,f;n.transactions??(n.transactions=(o=i[r])==null?void 0:o.transactions),n.tile_primary_metric??(n.tile_primary_metric=(a=i[r])==null?void 0:a.tile_primary_metric),n.tile_timers??(n.tile_timers=(s=i[r])==null?void 0:s.tile_timers),n.waterfall??(n.waterfall=(l=i[r])==null?void 0:l.waterfall),n.scheduler_counts??(n.scheduler_counts=(c=i[r])==null?void 0:c.scheduler_counts),n.limits??(n.limits=(d=i[r])==null?void 0:d.limits),n.scheduler_stats??(n.scheduler_stats=(f=i[r])==null?void 0:f.scheduler_stats),i[r]=n})}),sDe=fe(null,(e,t)=>{const n=e(An),r=e(Cn),i=e(oo),o=e(Aa),a=n??i,s=e(Tg),l=e(ao),{earliestQuickSlots:c,mostRecentQuickSlots:d}=e(Tre);a!==void 0&&t(Tk,f=>{const p=a-jk/2,v=a+jk/2,_=Object.keys(f);for(const y of _){const b=Number(y),w=xi(b);o!=null&&o.length&&o.includes(w)||r!==void 0&&w===xi(r)||s==="My Slots"&&(l!=null&&l.includes(w))||c&&c.includes(b)||d&&d.includes(b)||!isNaN(b)&&(bv)&&(delete f[b],YN.remove(b))}})}),Jf=fe(e=>{var t;if(_i){const n=e(Zu);return(n==null?void 0:n.ledger_max_slot)==null?void 0:n.ledger_max_slot+1}return((t=e(Hl))==null?void 0:t.catching_up_first_replay_slot)??void 0}),pre=fe(e=>{const t=e(ao),n=e(Jf);if(!t||n===void 0)return;const r=t.findIndex(i=>i>=n);return r!==-1?r:void 0});fe(e=>{const t=e(ao),n=e(pre);return n?t==null?void 0:t[n]:void 0});const KN=fe(e=>{const t=e(ao),n=e(Mb);return n?t==null?void 0:t[n-1]:void 0}),mre=fe(void 0),oo=fe(e=>e(mre),(e,t,n)=>{const r=e(Lb);(r===void 0||n>=r)&&t(Lb,n),t(mre,i=>Math.max(n,i??0))}),ao=fe(e=>{const t=e(di),n=e(dp);if(!(!t||!n))return AN(t,n)}),lDe=fe(e=>{const t=e(eDe),n=e(dp);if(!(!t||!n))return AN(t,n)}),Mb=fe(void 0),Lb=fe(e=>{const t=e(ao),n=e(Mb);if(!(!t||n===void 0))return t[n]},(e,t,n)=>{const r=e(ao);r!=null&&t(Mb,i=>{let o=i??0;for((r[o-1]??0)>n&&(o=0);o=r.length))return o})}),uDe=fe(e=>{const t=e(lDe);if(t)return t[0]}),gre=fe(e=>{const t=e(ao),n=e(Mb);if(t)return n===void 0?t[t.length-1]:t[n-1]}),cDe=fe(e=>{const t=e(oo),n=e(gre);return t===void 0||n===void 0?!1:t>=n&&t<=n+$n}),eu=fe(e=>{const t=e(oo);if(t!=null)return xi(t)}),Ku=Co({}),XN=fe(e=>Object.values(e(Ku))),dDe=fe(e=>e(XN).length),vre=ZN(e=>fe(t=>e!==void 0?t(Ku)[e]:void 0)),fDe=fe(null,(e,t,n)=>{n!=null&&n.length&&t(Ku,r=>{for(const i of n)r[i.identity_pubkey]?r[i.identity_pubkey]=rt.merge(r[i.identity_pubkey],i):r[i.identity_pubkey]=i})}),hDe=6e4*5,pDe=fe(null,(e,t,n)=>{n!=null&&n.length&&(t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&(r[i.identity_pubkey].removed=!0,vre.remove(i.identity_pubkey))}),setTimeout(()=>{t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&delete r[i.identity_pubkey]})},hDe))}),Ig=fe(e=>{const t=e(Ku);if(!t)return;const n=Object.values(t).filter(s=>!s.removed),r=n.filter(s=>s.vote.every(l=>!l.activated_stake)&&!!s.gossip),i=n.filter(s=>s.vote.some(l=>l.activated_stake)),o=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c:c+d.activated_stake,0n)+s,0n),a=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c+d.activated_stake:c,0n)+s,0n);return{rpcCount:r.length,validatorCount:i.length,activeStake:o,delinquentStake:a}}),yre=fe(e=>{const t=e(Ig);if(t&&t.activeStake+t.delinquentStake)return t.activeStake+t.delinquentStake}),bre=fe(e=>{const t=e(Ku),n=e(dp),r=e(Ig);if(!t||!n||!r)return;const i=t[n];if(i)return nre(i)}),mDe=fe(e=>{const t=e(yre),n=e(bre);if(!(n===void 0||!t))return Number(n)/Number(t)*100}),_re=fe(e=>{const t=e(di),n=e(Ku),r=e(dDe);if(!(!t||r===0))return{epoch:t,peers:n}}),gDe=fe(e=>{const t=e(_re);if(!t)return;const{epoch:n,peers:r}=t;return[...new Set(n.leader_slots.map(i=>n.staked_pubkeys[i]))].map(i=>{var o,a,s,l,c;return{pubkey:i,name:(s=(a=(o=r[i])==null?void 0:o.info)==null?void 0:a.name)==null?void 0:s.toLowerCase(),clientId:(c=(l=r[i])==null?void 0:l.gossip)==null?void 0:c.client_id}})}),JN=function(){const e=Co(void 0);return fe(t=>t(e),(t,n,r)=>{const i=new Map;for(let o=0;oi(e)),fe(null,(i,o,a,s)=>{if(o(e,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)}),!i(t))o(t,!0),o(n,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)});else if(a.length>0||s.length>0){const l=Date.now(),c={addPeers:a,removePeers:s,timestamp:l};o(r,d=>{d.push(c)})}}),fe(i=>{const o=i(n),a=i(e);let s=0;for(const l of o)a.has(l)||s++;return{online:a.size+s-o.size,offline:s}}),fe(null,(i,o)=>{const a=i(r);if(a.length===0)return;const s=Date.now()-xre,l=a.findIndex(d=>d.timestamp>=s);if(l===0)return;const c=l===-1?a.length:l;o(n,d=>{for(let f=0;fl===-1?[]:d.slice(l))}),fe(null,(i,o)=>{o(e,new Set),o(t,!1),o(n,new Set),o(r,[])})]}(),xDe=fe(e=>{var i;const t=new Set,n=(i=e(JN))==null?void 0:i.keys();if(!n)return t;const r=e(wre);for(const o of n)r.has(o)||t.add(o);return t}),wDe=Yf(e=>fe(t=>{if(e===void 0)return!0;const n=t(oo);return n===void 0||e>=n}),{maxSize:1e3}),Eg=fe(e=>{const t=e(_G);if(!t)return 300;const n=Math.trunc(t/1e6);return Math.max(50,Math.min(n,1e3*10))}),kre=Co({}),Sre=fe(e=>{const t=e(di);if(t)return e(kre)[t.epoch]},(e,t,n)=>{t(kre,r=>{r[n.epoch]=n})}),kDe=fe(e=>{const t=e(oo);if(t===void 0)return null;const n=e(An);return n===void 0?"Live":xi(n)===xi(t)?"Current":n>t?"Future":"Past"}),[Ik,SDe,CDe,jDe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{n(e,i=>{for(const o of r)i.add(o)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r,i)=>{n(e,o=>{const a=new Set;for(const s of o)si||a.add(s);return a})})]}(),Cre=fe(e=>{const t=e(gG);if(t!=null)return Math.round(t/aN)}),[jre,TDe,IDe,EDe,NDe]=function(){const e=Co(new Map);return[fe(t=>{const n=t(e),r=t(Ik),i=new Set;for(const[o,a]of n){if(a===null){i.add(o);continue}rre(o,a,r)>1&&i.add(o)}return i}),fe(null,(t,n,r,i)=>{n(e,o=>{o.set(r,i)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r)=>{n(e,i=>{if(!r){i.clear();return}const o=[];i.forEach((a,s)=>{(si.delete(a))})}),fe(null,(t,n,r)=>{const i=new Map;let o=0;for(let a=0;a{const t=e(ao),n=e(pre),r=e(Mb);if(!t||n===void 0)return{};const i=t.slice(n,r);return{earliestQuickSlots:i.slice(0,qN),mostRecentQuickSlots:i.slice(-qN).toReversed()}});function $De(){const e=X(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_incremental_snapshot_current_bytes,totalBytes:e.downloading_incremental_snapshot_total_bytes,remainingSecs:e.downloading_incremental_snapshot_remaining_secs})}var QN=Ob(),qt=e=>Rb(e,QN),e$=Ob();qt.write=e=>Rb(e,e$);var Ek=Ob();qt.onStart=e=>Rb(e,Ek);var t$=Ob();qt.onFrame=e=>Rb(e,t$);var n$=Ob();qt.onFinish=e=>Rb(e,n$);var Ng=[];qt.setTimeout=(e,t)=>{const n=qt.now()+t,r=()=>{const o=Ng.findIndex(a=>a.cancel==r);~o&&Ng.splice(o,1),eh-=~o?1:0},i={time:n,handler:e,cancel:r};return Ng.splice(Ire(n),0,i),eh+=1,Ere(),i};var Ire=e=>~(~Ng.findIndex(t=>t.time>e)||~Ng.length);qt.cancel=e=>{Ek.delete(e),t$.delete(e),n$.delete(e),QN.delete(e),e$.delete(e)},qt.sync=e=>{i$=!0,qt.batchedUpdates(e),i$=!1},qt.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function r(...i){t=i,qt.onStart(n)}return r.handler=e,r.cancel=()=>{Ek.delete(n),t=null},r};var r$=typeof window<"u"?window.requestAnimationFrame:()=>{};qt.use=e=>r$=e,qt.now=typeof performance<"u"?()=>performance.now():Date.now,qt.batchedUpdates=e=>e(),qt.catch=console.error,qt.frameLoop="always",qt.advance=()=>{qt.frameLoop!=="demand"?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):$re()};var Qf=-1,eh=0,i$=!1;function Rb(e,t){i$?(t.delete(e),e(0)):(t.add(e),Ere())}function Ere(){Qf<0&&(Qf=0,qt.frameLoop!=="demand"&&r$(Nre))}function MDe(){Qf=-1}function Nre(){~Qf&&(r$(Nre),qt.batchedUpdates($re))}function $re(){const e=Qf;Qf=qt.now();const t=Ire(Qf);if(t&&(Mre(Ng.splice(0,t),n=>n.handler()),eh-=t),!eh){MDe();return}Ek.flush(),QN.flush(e?Math.min(64,Qf-e):16.667),t$.flush(),e$.flush(),n$.flush()}function Ob(){let e=new Set,t=e;return{add(n){eh+=t==e&&!e.has(n)?1:0,e.add(n)},delete(n){return eh-=t==e&&e.has(n)?1:0,e.delete(n)},flush(n){t.size&&(e=new Set,eh-=t.size,Mre(t,r=>r(n)&&e.add(r)),eh+=e.size,t=e)}}}function Mre(e,t){e.forEach(n=>{try{t(n)}catch(r){qt.catch(r)}})}var LDe=Object.defineProperty,RDe=(e,t)=>{for(var n in t)LDe(e,n,{get:t[n],enumerable:!0})},tu={};RDe(tu,{assign:()=>PDe,colors:()=>th,createStringInterpolator:()=>s$,skipAnimation:()=>Rre,to:()=>Lre,willAdvance:()=>l$});function o$(){}var ODe=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),He={arr:Array.isArray,obj:e=>!!e&&e.constructor.name==="Object",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",und:e=>e===void 0};function vd(e,t){if(He.arr(e)){if(!He.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function Xu(e,t,n){if(He.arr(e)){for(let r=0;rHe.und(e)?[]:He.arr(e)?e:[e];function Pb(e,t){if(e.size){const n=Array.from(e);e.clear(),Ft(n,t)}}var zb=(e,...t)=>Pb(e,n=>n(...t)),a$=()=>typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),s$,Lre,th=null,Rre=!1,l$=o$,PDe=e=>{e.to&&(Lre=e.to),e.now&&(qt.now=e.now),e.colors!==void 0&&(th=e.colors),e.skipAnimation!=null&&(Rre=e.skipAnimation),e.createStringInterpolator&&(s$=e.createStringInterpolator),e.requestAnimationFrame&&qt.use(e.requestAnimationFrame),e.batchedUpdates&&(qt.batchedUpdates=e.batchedUpdates),e.willAdvance&&(l$=e.willAdvance),e.frameLoop&&(qt.frameLoop=e.frameLoop)},Db=new Set,ul=[],u$=[],Nk=0,$k={get idle(){return!Db.size&&!ul.length},start(e){Nk>e.priority?(Db.add(e),qt.onStart(zDe)):(Ore(e),qt(c$))},advance:c$,sort(e){if(Nk)qt.onFrame(()=>$k.sort(e));else{const t=ul.indexOf(e);~t&&(ul.splice(t,1),Pre(e))}},clear(){ul=[],Db.clear()}};function zDe(){Db.forEach(Ore),Db.clear(),qt(c$)}function Ore(e){ul.includes(e)||Pre(e)}function Pre(e){ul.splice(DDe(ul,t=>t.priority>e.priority),0,e)}function c$(e){const t=u$;for(let n=0;n0}function DDe(e,t){const n=e.findIndex(t);return n<0?e.length:n}var ADe={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},nu="[-+]?\\d*\\.?\\d+",Mk=nu+"%";function Lk(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var FDe=new RegExp("rgb"+Lk(nu,nu,nu)),BDe=new RegExp("rgba"+Lk(nu,nu,nu,nu)),UDe=new RegExp("hsl"+Lk(nu,Mk,Mk)),WDe=new RegExp("hsla"+Lk(nu,Mk,Mk,nu)),VDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,HDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,ZDe=/^#([0-9a-fA-F]{6})$/,qDe=/^#([0-9a-fA-F]{8})$/;function GDe(e){let t;return typeof e=="number"?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=ZDe.exec(e))?parseInt(t[1]+"ff",16)>>>0:th&&th[e]!==void 0?th[e]:(t=FDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|255)>>>0:(t=BDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|Are(t[4]))>>>0:(t=VDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=qDe.exec(e))?parseInt(t[1],16)>>>0:(t=HDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=UDe.exec(e))?(zre(Dre(t[1]),Rk(t[2]),Rk(t[3]))|255)>>>0:(t=WDe.exec(e))?(zre(Dre(t[1]),Rk(t[2]),Rk(t[3]))|Are(t[4]))>>>0:null}function d$(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function zre(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,o=d$(i,r,e+1/3),a=d$(i,r,e),s=d$(i,r,e-1/3);return Math.round(o*255)<<24|Math.round(a*255)<<16|Math.round(s*255)<<8}function $g(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function Dre(e){return(parseFloat(e)%360+360)%360/360}function Are(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(t*255)}function Rk(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Fre(e){let t=GDe(e);if(t===null)return e;t=t||0;const n=(t&4278190080)>>>24,r=(t&16711680)>>>16,i=(t&65280)>>>8,o=(t&255)/255;return`rgba(${n}, ${r}, ${i}, ${o})`}var Ab=(e,t,n)=>{if(He.fun(e))return e;if(He.arr(e))return Ab({range:e,output:t,extrapolate:n});if(He.str(e.output[0]))return s$(e);const r=e,i=r.output,o=r.range||[0,1],a=r.extrapolateLeft||r.extrapolate||"extend",s=r.extrapolateRight||r.extrapolate||"extend",l=r.easing||(c=>c);return c=>{const d=KDe(c,o);return YDe(c,o[d],o[d+1],i[d],i[d+1],l,a,s,r.map)}};function YDe(e,t,n,r,i,o,a,s,l){let c=l?l(e):e;if(cn){if(s==="identity")return c;s==="clamp"&&(c=n)}return r===i?r:t===n?e<=t?r:i:(t===-1/0?c=-c:n===1/0?c=c-t:c=(c-t)/(n-t),c=o(c),r===-1/0?c=-c:i===1/0?c=c+r:c=c*(i-r)+r,c)}function KDe(e,t){for(var n=1;n=e);++n);return n-1}var XDe={linear:e=>e},Fb=Symbol.for("FluidValue.get"),Mg=Symbol.for("FluidValue.observers"),cl=e=>!!(e&&e[Fb]),Fa=e=>e&&e[Fb]?e[Fb]():e,Bre=e=>e[Mg]||null;function JDe(e,t){e.eventObserved?e.eventObserved(t):e(t)}function Bb(e,t){const n=e[Mg];n&&n.forEach(r=>{JDe(r,t)})}var Ure=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");QDe(this,e)}},QDe=(e,t)=>Wre(e,Fb,t);function Lg(e,t){if(e[Fb]){let n=e[Mg];n||Wre(e,Mg,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function Ub(e,t){const n=e[Mg];if(n&&n.has(t)){const r=n.size-1;r?n.delete(t):e[Mg]=null,e.observerRemoved&&e.observerRemoved(r,t)}}var Wre=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),Ok=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,eAe=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,Vre=new RegExp(`(${Ok.source})(%|[a-z]+)`,"i"),tAe=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,Pk=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,Hre=e=>{const[t,n]=nAe(e);if(!t||a$())return e;const r=window.getComputedStyle(document.documentElement).getPropertyValue(t);return r?r.trim():n&&n.startsWith("--")?window.getComputedStyle(document.documentElement).getPropertyValue(n)||e:n&&Pk.test(n)?Hre(n):n||e},nAe=e=>{const t=Pk.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]},f$,rAe=(e,t,n,r,i)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(r)}, ${i})`,Zre=e=>{f$||(f$=th?new RegExp(`(${Object.keys(th).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map(i=>Fa(i).replace(Pk,Hre).replace(eAe,Fre).replace(f$,Fre)),n=t.map(i=>i.match(Ok).map(Number)),r=n[0].map((i,o)=>n.map(a=>{if(!(o in a))throw Error('The arity of each "output" value must be equal');return a[o]})).map(i=>Ab({...e,output:i}));return i=>{var s;const o=!Vre.test(t[0])&&((s=t.find(l=>Vre.test(l)))==null?void 0:s.replace(Ok,""));let a=0;return t[0].replace(Ok,()=>`${r[a++](i)}${o||""}`).replace(tAe,rAe)}},h$="react-spring: ",qre=e=>{const t=e;let n=!1;if(typeof t!="function")throw new TypeError(`${h$}once requires a function parameter`);return(...r)=>{n||(t(...r),n=!0)}},iAe=qre(console.warn);function oAe(){iAe(`${h$}The "interpolate" function is deprecated in v9 (use "to" instead)`)}var aAe=qre(console.warn);function sAe(){aAe(`${h$}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`)}function zk(e){return He.str(e)&&(e[0]=="#"||/\d/.test(e)||!a$()&&Pk.test(e)||e in(th||{}))}var jp=a$()?m.useEffect:m.useLayoutEffect,lAe=()=>{const e=m.useRef(!1);return jp(()=>(e.current=!0,()=>{e.current=!1}),[]),e};function p$(){const e=m.useState()[1],t=lAe();return()=>{t.current&&e(Math.random())}}function uAe(e,t){const[n]=m.useState(()=>({inputs:t,result:e()})),r=m.useRef(),i=r.current;let o=i;return o?t&&o.inputs&&cAe(t,o.inputs)||(o={inputs:t,result:e()}):o=n,m.useEffect(()=>{r.current=o,i==n&&(n.inputs=n.result=void 0)},[o]),o.result}function cAe(e,t){if(e.length!==t.length)return!1;for(let n=0;nm.useEffect(e,dAe),dAe=[];function g$(e){const t=m.useRef();return m.useEffect(()=>{t.current=e}),t.current}var Wb=Symbol.for("Animated:node"),fAe=e=>!!e&&e[Wb]===e,Ju=e=>e&&e[Wb],v$=(e,t)=>ODe(e,Wb,t),Dk=e=>e&&e[Wb]&&e[Wb].getPayload(),Gre=class{constructor(){v$(this,this)}getPayload(){return this.payload||[]}},Vb=class extends Gre{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,He.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Vb(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return He.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value===e?!1:(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,He.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},Hb=class extends Vb{constructor(e){super(0),this._string=null,this._toString=Ab({output:[e,e]})}static create(e){return new Hb(e)}getValue(){return this._string??(this._string=this._toString(this._value))}setValue(e){if(He.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else if(super.setValue(e))this._string=null;else return!1;return!0}reset(e){e&&(this._toString=Ab({output:[this.getValue(),e]})),this._value=0,super.reset()}},Ak={dependencies:null},Fk=class extends Gre{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return Xu(this.source,(n,r)=>{fAe(n)?t[r]=n.getValue(e):cl(n)?t[r]=Fa(n):e||(t[r]=n)}),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&Ft(this.payload,e=>e.reset())}_makePayload(e){if(e){const t=new Set;return Xu(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){Ak.dependencies&&cl(e)&&Ak.dependencies.add(e);const t=Dk(e);t&&Ft(t,n=>this.add(n))}},Yre=class extends Fk{constructor(e){super(e)}static create(e){return new Yre(e)}getValue(){return this.source.map(e=>e.getValue())}setValue(e){const t=this.getPayload();return e.length==t.length?t.map((n,r)=>n.setValue(e[r])).some(Boolean):(super.setValue(e.map(hAe)),!0)}};function hAe(e){return(zk(e)?Hb:Vb).create(e)}function y$(e){const t=Ju(e);return t?t.constructor:He.arr(e)?Yre:zk(e)?Hb:Vb}var Kre=(e,t)=>{const n=!He.fun(e)||e.prototype&&e.prototype.isReactComponent;return m.forwardRef((r,i)=>{const o=m.useRef(null),a=n&&m.useCallback(_=>{o.current=gAe(i,_)},[i]),[s,l]=mAe(r,t),c=p$(),d=()=>{const _=o.current;n&&!_||(_?t.applyAnimatedValues(_,s.getValue(!0)):!1)===!1&&c()},f=new pAe(d,l),p=m.useRef();jp(()=>(p.current=f,Ft(l,_=>Lg(_,f)),()=>{p.current&&(Ft(p.current.deps,_=>Ub(_,p.current)),qt.cancel(p.current.update))})),m.useEffect(d,[]),m$(()=>()=>{const _=p.current;Ft(_.deps,y=>Ub(y,_))});const v=t.getComponentProps(s.getValue());return m.createElement(e,{...v,ref:a})})},pAe=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){e.type=="change"&&qt.write(this.update)}};function mAe(e,t){const n=new Set;return Ak.dependencies=n,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)}),e=new Fk(e),Ak.dependencies=null,[e,n]}function gAe(e,t){return e&&(He.fun(e)?e(t):e.current=t),t}var Xre=Symbol.for("AnimatedComponent"),vAe=(e,{applyAnimatedValues:t=()=>!1,createAnimatedStyle:n=i=>new Fk(i),getComponentProps:r=i=>i}={})=>{const i={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:r},o=a=>{const s=Jre(a)||"Anonymous";return He.str(a)?a=o[a]||(o[a]=Kre(a,i)):a=a[Xre]||(a[Xre]=Kre(a,i)),a.displayName=`Animated(${s})`,a};return Xu(e,(a,s)=>{He.arr(e)&&(s=Jre(a)),o[s]=o(a)}),{animated:o}},Jre=e=>He.str(e)?e:e&&He.str(e.displayName)?e.displayName:He.fun(e)&&e.name||null;function Ba(e,...t){return He.fun(e)?e(...t):e}var Zb=(e,t)=>e===!0||!!(t&&e&&(He.fun(e)?e(t):ha(e).includes(t))),Qre=(e,t)=>He.obj(e)?t&&e[t]:e,eie=(e,t)=>e.default===!0?e[t]:e.default?e.default[t]:void 0,yAe=e=>e,Bk=(e,t=yAe)=>{let n=bAe;e.default&&e.default!==!0&&(e=e.default,n=Object.keys(e));const r={};for(const i of n){const o=t(e[i],i);He.und(o)||(r[i]=o)}return r},bAe=["config","onProps","onStart","onChange","onPause","onResume","onRest"],_Ae={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function xAe(e){const t={};let n=0;if(Xu(e,(r,i)=>{_Ae[i]||(t[i]=r,n++)}),n)return t}function b$(e){const t=xAe(e);if(t){const n={to:t};return Xu(e,(r,i)=>i in t||(n[i]=r)),n}return{...e}}function qb(e){return e=Fa(e),He.arr(e)?e.map(qb):zk(e)?tu.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function tie(e){for(const t in e)return!0;return!1}function _$(e){return He.fun(e)||He.arr(e)&&He.obj(e[0])}function x$(e,t){var n;(n=e.ref)==null||n.delete(e),t==null||t.delete(e)}function nie(e,t){var n;t&&e.ref!==t&&((n=e.ref)==null||n.delete(e),t.add(e),e.ref=t)}var w$={default:{tension:170,friction:26},gentle:{tension:120,friction:14},wobbly:{tension:180,friction:12},stiff:{tension:210,friction:20},slow:{tension:280,friction:60},molasses:{tension:280,friction:120}},k$={...w$.default,mass:1,damping:1,easing:XDe.linear,clamp:!1},wAe=class{constructor(){this.velocity=0,Object.assign(this,k$)}};function kAe(e,t,n){n&&(n={...n},rie(n,t),t={...n,...t}),rie(e,t),Object.assign(e,t);for(const a in k$)e[a]==null&&(e[a]=k$[a]);let{frequency:r,damping:i}=e;const{mass:o}=e;return He.und(r)||(r<.01&&(r=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/r,2)*o,e.friction=4*Math.PI*i*o/r),e}function rie(e,t){if(!He.und(t.decay))e.duration=void 0;else{const n=!He.und(t.tension)||!He.und(t.friction);(n||!He.und(t.frequency)||!He.und(t.damping)||!He.und(t.mass))&&(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}}var iie=[],SAe=class{constructor(){this.changed=!1,this.values=iie,this.toValues=null,this.fromValues=iie,this.config=new wAe,this.immediate=!1}};function oie(e,{key:t,props:n,defaultProps:r,state:i,actions:o}){return new Promise((a,s)=>{let l,c,d=Zb(n.cancel??(r==null?void 0:r.cancel),t);if(d)v();else{He.und(n.pause)||(i.paused=Zb(n.pause,t));let _=r==null?void 0:r.pause;_!==!0&&(_=i.paused||Zb(_,t)),l=Ba(n.delay||0,t),_?(i.resumeQueue.add(p),o.pause()):(o.resume(),p())}function f(){i.resumeQueue.add(p),i.timeouts.delete(c),c.cancel(),l=c.time-qt.now()}function p(){l>0&&!tu.skipAnimation?(i.delayed=!0,c=qt.setTimeout(v,l),i.pauseQueue.add(f),i.timeouts.add(c)):v()}function v(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(f),i.timeouts.delete(c),e<=(i.cancelId||0)&&(d=!0);try{o.start({...n,callId:e,cancel:d},a)}catch(_){s(_)}}})}var S$=(e,t)=>t.length==1?t[0]:t.some(n=>n.cancelled)?Rg(e.get()):t.every(n=>n.noop)?aie(e.get()):ru(e.get(),t.every(n=>n.finished)),aie=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),ru=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),Rg=e=>({value:e,cancelled:!0,finished:!1});function sie(e,t,n,r){const{callId:i,parentId:o,onRest:a}=t,{asyncTo:s,promise:l}=n;return!o&&e===s&&!t.reset?l:n.promise=(async()=>{n.asyncId=i,n.asyncTo=e;const c=Bk(t,(b,w)=>w==="onRest"?void 0:b);let d,f;const p=new Promise((b,w)=>(d=b,f=w)),v=b=>{const w=i<=(n.cancelId||0)&&Rg(r)||i!==n.asyncId&&ru(r,!1);if(w)throw b.result=w,f(b),b},_=(b,w)=>{const x=new lie,S=new uie;return(async()=>{if(tu.skipAnimation)throw Gb(n),S.result=ru(r,!1),f(S),S;v(x);const C=He.obj(b)?{...b}:{...w,to:b};C.parentId=i,Xu(c,(T,E)=>{He.und(C[E])&&(C[E]=T)});const j=await r.start(C);return v(x),n.paused&&await new Promise(T=>{n.resumeQueue.add(T)}),j})()};let y;if(tu.skipAnimation)return Gb(n),ru(r,!1);try{let b;He.arr(e)?b=(async w=>{for(const x of w)await _(x)})(e):b=Promise.resolve(e(_,r.stop.bind(r))),await Promise.all([b.then(d),p]),y=ru(r.get(),!0,!1)}catch(b){if(b instanceof lie)y=b.result;else if(b instanceof uie)y=b.result;else throw b}finally{i==n.asyncId&&(n.asyncId=o,n.asyncTo=o?s:void 0,n.promise=o?l:void 0)}return He.fun(a)&&qt.batchedUpdates(()=>{a(y,r,r.item)}),y})()}function Gb(e,t){Pb(e.timeouts,n=>n.cancel()),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var lie=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},uie=class extends Error{constructor(){super("SkipAnimationSignal")}},C$=e=>e instanceof j$,CAe=1,j$=class extends Ure{constructor(){super(...arguments),this.id=CAe++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=Ju(this);return e&&e.getValue()}to(...e){return tu.to(this,e)}interpolate(...e){return oAe(),tu.to(this,e)}toJSON(){return this.get()}observerAdded(e){e==1&&this._attach()}observerRemoved(e){e==0&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){Bb(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||$k.sort(this),Bb(this,{type:"priority",parent:this,priority:e})}},Tp=Symbol.for("SpringPhase"),cie=1,T$=2,I$=4,E$=e=>(e[Tp]&cie)>0,nh=e=>(e[Tp]&T$)>0,Yb=e=>(e[Tp]&I$)>0,die=(e,t)=>t?e[Tp]|=T$|cie:e[Tp]&=~T$,fie=(e,t)=>t?e[Tp]|=I$:e[Tp]&=~I$,jAe=class extends j${constructor(e,t){if(super(),this.animation=new SAe,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!He.und(e)||!He.und(t)){const n=He.obj(e)?{...e}:{...t,from:e};He.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(nh(this)||this._state.asyncTo)||Yb(this)}get goal(){return Fa(this.animation.to)}get velocity(){const e=Ju(this);return e instanceof Vb?e.lastVelocity||0:e.getPayload().map(t=>t.lastVelocity||0)}get hasAnimated(){return E$(this)}get isAnimating(){return nh(this)}get isPaused(){return Yb(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const r=this.animation;let{toValues:i}=r;const{config:o}=r,a=Dk(r.to);!a&&cl(r.to)&&(i=ha(Fa(r.to))),r.values.forEach((c,d)=>{if(c.done)return;const f=c.constructor==Hb?1:a?a[d].lastPosition:i[d];let p=r.immediate,v=f;if(!p){if(v=c.lastPosition,o.tension<=0){c.done=!0;return}let _=c.elapsedTime+=e;const y=r.fromValues[d],b=c.v0!=null?c.v0:c.v0=He.arr(o.velocity)?o.velocity[d]:o.velocity;let w;const x=o.precision||(y==f?.005:Math.min(1,Math.abs(f-y)*.001));if(He.und(o.duration))if(o.decay){const S=o.decay===!0?.998:o.decay,C=Math.exp(-(1-S)*_);v=y+b/(1-S)*(1-C),p=Math.abs(c.lastPosition-v)<=x,w=b*C}else{w=c.lastVelocity==null?b:c.lastVelocity;const S=o.restVelocity||x/10,C=o.clamp?0:o.bounce,j=!He.und(C),T=y==f?c.v0>0:yS,!(!E&&(p=Math.abs(f-v)<=x,p)));++P){j&&($=v==f||v>f==T,$&&(w=-w*C,v=f));const te=-o.tension*1e-6*(v-f),Z=-o.friction*.001*w,O=(te+Z)/o.mass;w=w+O*A,v=v+w*A}}else{let S=1;o.duration>0&&(this._memoizedDuration!==o.duration&&(this._memoizedDuration=o.duration,c.durationProgress>0&&(c.elapsedTime=o.duration*c.durationProgress,_=c.elapsedTime+=e)),S=(o.progress||0)+_/this._memoizedDuration,S=S>1?1:S<0?0:S,c.durationProgress=S),v=y+o.easing(S)*(f-y),w=(v-c.lastPosition)/e,p=S==1}c.lastVelocity=w,Number.isNaN(v)&&(console.warn("Got NaN while animating:",this),p=!0)}a&&!a[d].done&&(p=!1),p?c.done=!0:t=!1,c.setValue(v,o.round)&&(n=!0)});const s=Ju(this),l=s.getValue();if(t){const c=Fa(r.to);(l!==c||n)&&!o.decay?(s.setValue(c),this._onChange(c)):n&&o.decay&&this._onChange(l),this._stop()}else n&&this._onChange(l)}set(e){return qt.batchedUpdates(()=>{this._stop(),this._focus(e),this._set(e)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(nh(this)){const{to:e,config:t}=this.animation;qt.batchedUpdates(()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()})}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return He.und(e)?(n=this.queue||[],this.queue=[]):n=[He.obj(e)?e:{...t,to:e}],Promise.all(n.map(r=>this._update(r))).then(r=>S$(this,r))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),Gb(this._state,e&&this._lastCallId),qt.batchedUpdates(()=>this._stop(t,e)),this}reset(){this._update({reset:!0})}eventObserved(e){e.type=="change"?this._start():e.type=="priority"&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:n,from:r}=e;n=He.obj(n)?n[t]:n,(n==null||_$(n))&&(n=void 0),r=He.obj(r)?r[t]:r,r==null&&(r=void 0);const i={to:n,from:r};return E$(this)||(e.reverse&&([n,r]=[r,n]),r=Fa(r),He.und(r)?Ju(this)||this._set(n):this._set(r)),i}_update({...e},t){const{key:n,defaultProps:r}=this;e.default&&Object.assign(r,Bk(e,(a,s)=>/^on/.test(s)?Qre(a,n):a)),mie(this,e,"onProps"),Jb(this,"onProps",e,this);const i=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const o=this._state;return oie(++this._lastCallId,{key:n,props:e,defaultProps:r,state:o,actions:{pause:()=>{Yb(this)||(fie(this,!0),zb(o.pauseQueue),Jb(this,"onPause",ru(this,Kb(this,this.animation.to)),this))},resume:()=>{Yb(this)&&(fie(this,!1),nh(this)&&this._resume(),zb(o.resumeQueue),Jb(this,"onResume",ru(this,Kb(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then(a=>{if(e.loop&&a.finished&&!(t&&a.noop)){const s=hie(e);if(s)return this._update(s,!0)}return a})}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(Rg(this));const r=!He.und(e.to),i=!He.und(e.from);if(r||i)if(t.callId>this._lastToId)this._lastToId=t.callId;else return n(Rg(this));const{key:o,defaultProps:a,animation:s}=this,{to:l,from:c}=s;let{to:d=l,from:f=c}=e;i&&!r&&(!t.default||He.und(d))&&(d=f),t.reverse&&([d,f]=[f,d]);const p=!vd(f,c);p&&(s.from=f),f=Fa(f);const v=!vd(d,l);v&&this._focus(d);const _=_$(t.to),{config:y}=s,{decay:b,velocity:w}=y;(r||i)&&(y.velocity=0),t.config&&!_&&kAe(y,Ba(t.config,o),t.config!==a.config?Ba(a.config,o):void 0);let x=Ju(this);if(!x||He.und(d))return n(ru(this,!0));const S=He.und(t.reset)?i&&!t.default:!He.und(f)&&Zb(t.reset,o),C=S?f:this.get(),j=qb(d),T=He.num(j)||He.arr(j)||zk(j),E=!_&&(!T||Zb(a.immediate||t.immediate,o));if(v){const P=y$(d);if(P!==x.constructor)if(E)x=this._set(j);else throw Error(`Cannot animate between ${x.constructor.name} and ${P.name}, as the "to" prop suggests`)}const $=x.constructor;let A=cl(d),M=!1;if(!A){const P=S||!E$(this)&&p;(v||P)&&(M=vd(qb(C),j),A=!M),(!vd(s.immediate,E)&&!E||!vd(y.decay,b)||!vd(y.velocity,w))&&(A=!0)}if(M&&nh(this)&&(s.changed&&!S?A=!0:A||this._stop(l)),!_&&((A||cl(l))&&(s.values=x.getPayload(),s.toValues=cl(d)?null:$==Hb?[1]:ha(j)),s.immediate!=E&&(s.immediate=E,!E&&!S&&this._set(l)),A)){const{onRest:P}=s;Ft(IAe,Z=>mie(this,t,Z));const te=ru(this,Kb(this,l));zb(this._pendingCalls,te),this._pendingCalls.add(n),s.changed&&qt.batchedUpdates(()=>{var Z;s.changed=!S,P==null||P(te,this),S?Ba(a.onRest,te):(Z=s.onStart)==null||Z.call(s,te,this)})}S&&this._set(C),_?n(sie(t.to,t,this._state,this)):A?this._start():nh(this)&&!v?this._pendingCalls.add(n):n(aie(C))}_focus(e){const t=this.animation;e!==t.to&&(Bre(this)&&this._detach(),t.to=e,Bre(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;cl(t)&&(Lg(t,this),C$(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;cl(e)&&Ub(e,this)}_set(e,t=!0){const n=Fa(e);if(!He.und(n)){const r=Ju(this);if(!r||!vd(n,r.getValue())){const i=y$(n);!r||r.constructor!=i?v$(this,i.create(n)):r.setValue(n),r&&qt.batchedUpdates(()=>{this._onChange(n,t)})}}return Ju(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,Jb(this,"onStart",ru(this,Kb(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),Ba(this.animation.onChange,e,this)),Ba(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;Ju(this).reset(Fa(e.to)),e.immediate||(e.fromValues=e.values.map(t=>t.lastPosition)),nh(this)||(die(this,!0),Yb(this)||this._resume())}_resume(){tu.skipAnimation?this.finish():$k.start(this)}_stop(e,t){if(nh(this)){die(this,!1);const n=this.animation;Ft(n.values,i=>{i.done=!0}),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),Bb(this,{type:"idle",parent:this});const r=t?Rg(this.get()):ru(this.get(),Kb(this,e??n.to));zb(this._pendingCalls,r),n.changed&&(n.changed=!1,Jb(this,"onRest",r,this))}}};function Kb(e,t){const n=qb(t),r=qb(e.get());return vd(r,n)}function hie(e,t=e.loop,n=e.to){const r=Ba(t);if(r){const i=r!==!0&&b$(r),o=(i||e).reverse,a=!i||i.reset;return Xb({...e,loop:t,default:!1,pause:void 0,to:!o||_$(n)?n:void 0,from:a?e.from:void 0,reset:a,...i})}}function Xb(e){const{to:t,from:n}=e=b$(e),r=new Set;return He.obj(t)&&pie(t,r),He.obj(n)&&pie(n,r),e.keys=r.size?Array.from(r):null,e}function TAe(e){const t=Xb(e);return He.und(t.default)&&(t.default=Bk(t)),t}function pie(e,t){Xu(e,(n,r)=>n!=null&&t.add(r))}var IAe=["onStart","onRest","onChange","onPause","onResume"];function mie(e,t,n){e.animation[n]=t[n]!==eie(t,n)?Qre(t[n],e.key):void 0}function Jb(e,t,...n){var r,i,o,a;(i=(r=e.animation)[t])==null||i.call(r,...n),(a=(o=e.defaultProps)[t])==null||a.call(o,...n)}var EAe=["onStart","onChange","onRest"],NAe=1,gie=class{constructor(e,t){this.id=NAe++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(e=>e.idle&&!e.isDelayed&&!e.isPaused)}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each((t,n)=>e[n]=t.get()),e}set(e){for(const t in e){const n=e[t];He.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(Xb(e)),this}start(e){let{queue:t}=this;return e?t=ha(e).map(Xb):this.queue=[],this._flush?this._flush(this,t):(xie(this,t),N$(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;Ft(ha(t),r=>n[r].stop(!!e))}else Gb(this._state,this._lastAsyncId),this.each(n=>n.stop(!!e));return this}pause(e){if(He.und(e))this.start({pause:!0});else{const t=this.springs;Ft(ha(e),n=>t[n].pause())}return this}resume(e){if(He.und(e))this.start({pause:!1});else{const t=this.springs;Ft(ha(e),n=>t[n].resume())}return this}each(e){Xu(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,r=this._active.size>0,i=this._changed.size>0;(r&&!this._started||i&&!this._started)&&(this._started=!0,Pb(e,([s,l])=>{l.value=this.get(),s(l,this,this._item)}));const o=!r&&this._started,a=i||o&&n.size?this.get():null;i&&t.size&&Pb(t,([s,l])=>{l.value=a,s(l,this,this._item)}),o&&(this._started=!1,Pb(n,([s,l])=>{l.value=a,s(l,this,this._item)}))}eventObserved(e){if(e.type=="change")this._changed.add(e.parent),e.idle||this._active.add(e.parent);else if(e.type=="idle")this._active.delete(e.parent);else return;qt.onFrame(this._onFrame)}};function N$(e,t){return Promise.all(t.map(n=>vie(e,n))).then(n=>S$(e,n))}async function vie(e,t,n){const{keys:r,to:i,from:o,loop:a,onRest:s,onResolve:l}=t,c=He.obj(t.default)&&t.default;a&&(t.loop=!1),i===!1&&(t.to=null),o===!1&&(t.from=null);const d=He.arr(i)||He.fun(i)?i:void 0;d?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):Ft(EAe,y=>{const b=t[y];if(He.fun(b)){const w=e._events[y];t[y]=({finished:x,cancelled:S})=>{const C=w.get(b);C?(x||(C.finished=!1),S&&(C.cancelled=!0)):w.set(b,{value:null,finished:x||!1,cancelled:S||!1})},c&&(c[y]=t[y])}});const f=e._state;t.pause===!f.paused?(f.paused=t.pause,zb(t.pause?f.pauseQueue:f.resumeQueue)):f.paused&&(t.pause=!0);const p=(r||Object.keys(e.springs)).map(y=>e.springs[y].start(t)),v=t.cancel===!0||eie(t,"cancel")===!0;(d||v&&f.asyncId)&&p.push(oie(++e._lastAsyncId,{props:t,state:f,actions:{pause:o$,resume:o$,start(y,b){v?(Gb(f,e._lastAsyncId),b(Rg(e))):(y.onRest=s,b(sie(d,y,f,e)))}}})),f.paused&&await new Promise(y=>{f.resumeQueue.add(y)});const _=S$(e,await Promise.all(p));if(a&&_.finished&&!(n&&_.noop)){const y=hie(t,a,i);if(y)return xie(e,[y]),vie(e,y,!0)}return l&&qt.batchedUpdates(()=>l(_,e,e.item)),_}function $$(e,t){const n={...e.springs};return t&&Ft(ha(t),r=>{He.und(r.keys)&&(r=Xb(r)),He.obj(r.to)||(r={...r,to:void 0}),_ie(n,r,i=>bie(i))}),yie(e,n),n}function yie(e,t){Xu(t,(n,r)=>{e.springs[r]||(e.springs[r]=n,Lg(n,e))})}function bie(e,t){const n=new jAe;return n.key=e,t&&Lg(n,t),n}function _ie(e,t,n){t.keys&&Ft(t.keys,r=>{(e[r]||(e[r]=n(r)))._prepareNode(t)})}function xie(e,t){Ft(t,n=>{_ie(e.springs,n,r=>bie(r,e))})}var Qb=({children:e,...t})=>{const n=m.useContext(Uk),r=t.pause||!!n.pause,i=t.immediate||!!n.immediate;t=uAe(()=>({pause:r,immediate:i}),[r,i]);const{Provider:o}=Uk;return m.createElement(o,{value:t},e)},Uk=$Ae(Qb,{});Qb.Provider=Uk.Provider,Qb.Consumer=Uk.Consumer;function $Ae(e,t){return Object.assign(e,m.createContext(t)),e.Provider._context=e,e.Consumer._context=e,e}var wie=()=>{const e=[],t=function(r){sAe();const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=n(r,o,a);s&&i.push(o.start(s))}}),i};t.current=e,t.add=function(r){e.includes(r)||e.push(r)},t.delete=function(r){const i=e.indexOf(r);~i&&e.splice(i,1)},t.pause=function(){return Ft(e,r=>r.pause(...arguments)),this},t.resume=function(){return Ft(e,r=>r.resume(...arguments)),this},t.set=function(r){Ft(e,(i,o)=>{const a=He.fun(r)?r(o,i):r;a&&i.set(a)})},t.start=function(r){const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=this._getProps(r,o,a);s&&i.push(o.start(s))}}),i},t.stop=function(){return Ft(e,r=>r.stop(...arguments)),this},t.update=function(r){return Ft(e,(i,o)=>i.update(this._getProps(r,i,o))),this};const n=function(r,i,o){return He.fun(r)?r(o,i):r};return t._getProps=n,t};function MAe(e,t,n){const r=He.fun(t)&&t;r&&!n&&(n=[]);const i=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),o=m.useRef(0),a=p$(),s=m.useMemo(()=>({ctrls:[],queue:[],flush(w,x){const S=$$(w,x);return o.current>0&&!s.queue.length&&!Object.keys(S).some(C=>!w.springs[C])?N$(w,x):new Promise(C=>{yie(w,S),s.queue.push(()=>{C(N$(w,x))}),a()})}}),[]),l=m.useRef([...s.ctrls]),c=[],d=g$(e)||0;m.useMemo(()=>{Ft(l.current.slice(e,d),w=>{x$(w,i),w.stop(!0)}),l.current.length=e,f(d,e)},[e]),m.useMemo(()=>{f(0,Math.min(d,e))},n);function f(w,x){for(let S=w;S$$(w,c[x])),v=m.useContext(Qb),_=g$(v),y=v!==_&&tie(v);jp(()=>{o.current++,s.ctrls=l.current;const{queue:w}=s;w.length&&(s.queue=[],Ft(w,x=>x())),Ft(l.current,(x,S)=>{i==null||i.add(x),y&&x.start({default:v});const C=c[S];C&&(nie(x,C.ref),x.ref?x.queue.push(C):x.start(C))})}),m$(()=>()=>{Ft(s.ctrls,w=>w.stop(!0))});const b=p.map(w=>({...w}));return i?[b,i]:b}function e_(e,t){const n=He.fun(e),[[r],i]=MAe(1,n?e:[e],n?[]:t);return n||arguments.length==2?[r,i]:r}function M$(e,t,n){const r=He.fun(t)&&t,{reset:i,sort:o,trail:a=0,expires:s=!0,exitBeforeEnter:l=!1,onDestroyed:c,ref:d,config:f}=r?r():t,p=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),v=ha(e),_=[],y=m.useRef(null),b=i?null:y.current;jp(()=>{y.current=_}),m$(()=>(Ft(_,O=>{p==null||p.add(O.ctrl),O.ctrl.ref=p}),()=>{Ft(y.current,O=>{O.expired&&clearTimeout(O.expirationId),x$(O.ctrl,p),O.ctrl.stop(!0)})}));const w=RAe(v,r?r():t,b),x=i&&y.current||[];jp(()=>Ft(x,({ctrl:O,item:J,key:D})=>{x$(O,p),Ba(c,J,D)}));const S=[];if(b&&Ft(b,(O,J)=>{O.expired?(clearTimeout(O.expirationId),x.push(O)):(J=S[J]=w.indexOf(O.key),~J&&(_[J]=O))}),Ft(v,(O,J)=>{_[J]||(_[J]={key:w[J],item:O,phase:"mount",ctrl:new gie},_[J].ctrl.item=O)}),S.length){let O=-1;const{leave:J}=r?r():t;Ft(S,(D,Y)=>{const F=b[Y];~D?(O=_.indexOf(F),_[O]={...F,item:v[D]}):J&&_.splice(++O,0,F)})}He.fun(o)&&_.sort((O,J)=>o(O.item,J.item));let C=-a;const j=p$(),T=Bk(t),E=new Map,$=m.useRef(new Map),A=m.useRef(!1);Ft(_,(O,J)=>{const D=O.key,Y=O.phase,F=r?r():t;let H,ee;const ce=Ba(F.delay||0,D);if(Y=="mount")H=F.enter,ee="enter";else{const me=w.indexOf(D)<0;if(Y!="leave")if(me)H=F.leave,ee="leave";else if(H=F.update)ee="update";else return;else if(!me)H=F.enter,ee="enter";else return}if(H=Ba(H,O.item,J),H=He.obj(H)?b$(H):{to:H},!H.config){const me=f||T.config;H.config=Ba(me,O.item,J,ee)}C+=a;const U={...T,delay:ce+C,ref:d,immediate:F.immediate,reset:!1,...H};if(ee=="enter"&&He.und(U.from)){const me=r?r():t,ke=He.und(me.initial)||b?me.from:me.initial;U.from=Ba(ke,O.item,J)}const{onResolve:ae}=U;U.onResolve=me=>{Ba(ae,me);const ke=y.current,he=ke.find(ue=>ue.key===D);if(he&&!(me.cancelled&&he.phase!="update")&&he.ctrl.idle){const ue=ke.every(re=>re.ctrl.idle);if(he.phase=="leave"){const re=Ba(s,he.item);if(re!==!1){const ge=re===!0?0:re;if(he.expired=!0,!ue&&ge>0){ge<=2147483647&&(he.expirationId=setTimeout(j,ge));return}}}ue&&ke.some(re=>re.expired)&&($.current.delete(he),l&&(A.current=!0),j())}};const je=$$(O.ctrl,U);ee==="leave"&&l?$.current.set(O,{phase:ee,springs:je,payload:U}):E.set(O,{phase:ee,springs:je,payload:U})});const M=m.useContext(Qb),P=g$(M),te=M!==P&&tie(M);jp(()=>{te&&Ft(_,O=>{O.ctrl.start({default:M})})},[M]),Ft(E,(O,J)=>{if($.current.size){const D=_.findIndex(Y=>Y.key===J.key);_.splice(D,1)}}),jp(()=>{Ft($.current.size?$.current:E,({phase:O,payload:J},D)=>{const{ctrl:Y}=D;D.phase=O,p==null||p.add(Y),te&&O=="enter"&&Y.start({default:M}),J&&(nie(Y,J.ref),(Y.ref||p)&&!A.current?Y.update(J):(Y.start(J),A.current&&(A.current=!1)))})},i?void 0:n);const Z=O=>m.createElement(m.Fragment,null,_.map((J,D)=>{const{springs:Y}=E.get(J)||J.ctrl,F=O({...Y},J.item,J,D);return F&&F.type?m.createElement(F.type,{...F.props,key:He.str(J.key)||He.num(J.key)?J.key:J.ctrl.id,ref:F.ref}):F}));return p?[Z,p]:Z}var LAe=1;function RAe(e,{key:t,keys:n=t},r){if(n===null){const i=new Set;return e.map(o=>{const a=r&&r.find(s=>s.item===o&&s.phase!=="leave"&&!i.has(s));return a?(i.add(a),a.key):LAe++})}return He.und(n)?e:He.fun(n)?e.map(n):ha(n)}var kie=class extends j${constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=Ab(...t);const n=this._get(),r=y$(n);v$(this,r.create(n))}advance(e){const t=this._get(),n=this.get();vd(t,n)||(Ju(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Sie(this._active)&&L$(this)}_get(){const e=He.arr(this.source)?this.source.map(Fa):ha(Fa(this.source));return this.calc(...e)}_start(){this.idle&&!Sie(this._active)&&(this.idle=!1,Ft(Dk(this),e=>{e.done=!1}),tu.skipAnimation?(qt.batchedUpdates(()=>this.advance()),L$(this)):$k.start(this))}_attach(){let e=1;Ft(ha(this.source),t=>{cl(t)&&Lg(t,this),C$(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))}),this.priority=e,this._start()}_detach(){Ft(ha(this.source),e=>{cl(e)&&Ub(e,this)}),this._active.clear(),L$(this)}eventObserved(e){e.type=="change"?e.idle?this.advance():(this._active.add(e.parent),this._start()):e.type=="idle"?this._active.delete(e.parent):e.type=="priority"&&(this.priority=ha(this.source).reduce((t,n)=>Math.max(t,(C$(n)?n.priority:0)+1),0))}};function OAe(e){return e.idle!==!1}function Sie(e){return!e.size||Array.from(e).every(OAe)}function L$(e){e.idle||(e.idle=!0,Ft(Dk(e),t=>{t.done=!0}),Bb(e,{type:"idle",parent:e}))}var t_=(e,...t)=>new kie(e,t);tu.assign({createStringInterpolator:Zre,to:(e,t)=>new kie(e,t)});var Cie=/^--/;function PAe(e,t){return t==null||typeof t=="boolean"||t===""?"":typeof t=="number"&&t!==0&&!Cie.test(e)&&!(n_.hasOwnProperty(e)&&n_[e])?t+"px":(""+t).trim()}var jie={};function zAe(e,t){if(!e.nodeType||!e.setAttribute)return!1;const n=e.nodeName==="filter"||e.parentNode&&e.parentNode.nodeName==="filter",{className:r,style:i,children:o,scrollTop:a,scrollLeft:s,viewBox:l,...c}=t,d=Object.values(c),f=Object.keys(c).map(p=>n||e.hasAttribute(p)?p:jie[p]||(jie[p]=p.replace(/([A-Z])/g,v=>"-"+v.toLowerCase())));o!==void 0&&(e.textContent=o);for(const p in i)if(i.hasOwnProperty(p)){const v=PAe(p,i[p]);Cie.test(p)?e.style.setProperty(p,v):e.style[p]=v}f.forEach((p,v)=>{e.setAttribute(p,d[v])}),r!==void 0&&(e.className=r),a!==void 0&&(e.scrollTop=a),s!==void 0&&(e.scrollLeft=s),l!==void 0&&e.setAttribute("viewBox",l)}var n_={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},DAe=(e,t)=>e+t.charAt(0).toUpperCase()+t.substring(1),AAe=["Webkit","Ms","Moz","O"];n_=Object.keys(n_).reduce((e,t)=>(AAe.forEach(n=>e[DAe(n,t)]=e[t]),e),n_);var FAe=/^(matrix|translate|scale|rotate|skew)/,BAe=/^(translate)/,UAe=/^(rotate|skew)/,R$=(e,t)=>He.num(e)&&e!==0?e+t:e,Wk=(e,t)=>He.arr(e)?e.every(n=>Wk(n,t)):He.num(e)?e===t:parseFloat(e)===t,WAe=class extends Fk{constructor({x:e,y:t,z:n,...r}){const i=[],o=[];(e||t||n)&&(i.push([e||0,t||0,n||0]),o.push(a=>[`translate3d(${a.map(s=>R$(s,"px")).join(",")})`,Wk(a,0)])),Xu(r,(a,s)=>{if(s==="transform")i.push([a||""]),o.push(l=>[l,l===""]);else if(FAe.test(s)){if(delete r[s],He.und(a))return;const l=BAe.test(s)?"px":UAe.test(s)?"deg":"";i.push(ha(a)),o.push(s==="rotate3d"?([c,d,f,p])=>[`rotate3d(${c},${d},${f},${R$(p,l)})`,Wk(p,0)]:c=>[`${s}(${c.map(d=>R$(d,l)).join(",")})`,Wk(c,s.startsWith("scale")?1:0)])}}),i.length&&(r.transform=new VAe(i,o)),super(r)}},VAe=class extends Ure{constructor(e,t){super(),this.inputs=e,this.transforms=t,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let e="",t=!0;return Ft(this.inputs,(n,r)=>{const i=Fa(n[0]),[o,a]=this.transforms[r](He.arr(i)?i:n.map(Fa));e+=" "+o,t=t&&a}),t?"none":e}observerAdded(e){e==1&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Lg(n,this)))}observerRemoved(e){e==0&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Ub(n,this)))}eventObserved(e){e.type=="change"&&(this._value=null),Bb(this,e)}},HAe=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"];tu.assign({batchedUpdates:Kc.unstable_batchedUpdates,createStringInterpolator:Zre,colors:ADe});var ZAe=vAe(HAe,{applyAnimatedValues:zAe,createAnimatedStyle:e=>new WAe(e),getComponentProps:({scrollTop:e,scrollLeft:t,...n})=>n}),iu=ZAe.animated;function qAe(){const e=X(Zu);if(!e)return;const t=e.downloading_full_snapshot_throughput?`${Cp(e.downloading_full_snapshot_throughput).toString()}/s`:"-";return u.jsxs(V,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_full_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_full_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}function GAe(){const e=X(Zu);return e?u.jsx(ud,{label:"Slot",value:e.waiting_for_supermajority_slot}):null}function YAe(){const e=X(Zu);return e?u.jsx(N4,{value:e.waiting_for_supermajority_stake_percent||0,className:H3.progress}):null}function KAe(){const e=X(Zu);if(!e)return;const t=e.downloading_incremental_snapshot_throughput?`${Cp(e.downloading_incremental_snapshot_throughput).toString()}/s`:"-";return u.jsxs(V,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_incremental_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_incremental_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}const Tie=[{step:"initializing"},{step:"searching_for_full_snapshot"},{step:"downloading_full_snapshot",rightChildren:u.jsx(Aze,{}),bottomChildren:u.jsx(qAe,{})},{step:"searching_for_incremental_snapshot"},{step:"downloading_incremental_snapshot",rightChildren:u.jsx($De,{}),bottomChildren:u.jsx(KAe,{})},{step:"cleaning_blockstore"},{step:"cleaning_accounts"},{step:"loading_ledger"},{step:"processing_ledger",bottomChildren:u.jsx(EMe,{})},{step:"starting_services"},{step:"waiting_for_supermajority",rightChildren:u.jsx(YAe,{}),bottomChildren:u.jsx(GAe,{}),optional:!0},{step:"running"}];function XAe(){const e=X(Zu),[t,n]=Vl(ol),r=X(Ku),i=!!Object.values(r).length,[o,a]=m.useState();m.useEffect(()=>{(e==null?void 0:e.phase)!=="running"&&n(!0),a(f=>e?e.phase==="running":f)},[n,e]);const s=o===!0||o===void 0;m.useEffect(()=>{i&&(e==null?void 0:e.phase)==="running"&&n(!1)},[i,n,t,e==null?void 0:e.phase]);const l=Math.max(0,Tie.findIndex(({step:f})=>f===(e==null?void 0:e.phase))),[c,d]=e_(()=>({from:{opacity:t?1:0,zIndex:t?1:-1}}));return m.useEffect(()=>{d.stop(),t?d.start({from:{opacity:1,zIndex:1}}):d.start({from:{opacity:1,zIndex:1},to:{opacity:0,zIndex:-1}})},[d,t]),u.jsx(iu.div,{className:PG.outerContainer,style:c,children:u.jsxs(V,{direction:"column",gap:"4",className:PG.innerContainer,children:[u.jsx(Mt,{flexGrow:"1"}),u.jsx("img",{src:Vi?ree:gMe,alt:"fd",height:"50px",style:{marginBottom:"28px"}}),Tie.map(({step:f,rightChildren:p,bottomChildren:v,optional:_},y)=>{if(_&&f!==(e==null?void 0:e.phase))return null;const b=JAe(f);return y===l?u.jsx(wMe,{label:b,hide:s,rightChildren:p,bottomChildren:v},f):yt!==void 0).map((t,n)=>t==="for"?t:t==="rpc"?"RPC":(n===0?t[0].toUpperCase():t[0])+t.slice(1)).join(" ")}const QAe="_container_e8h4h_1",eFe="_blur_e8h4h_4",Iie={container:QAe,blur:eFe};function Eie(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;tvFe(e||null),{maxSize:1e3}),yFe="_hide_1etvv_1",Mie={hide:yFe};function ks({url:e,size:t,hideFallback:n,hideTooltip:r=!1,isYou:i}){const[o,a]=Vl($ie(e)),[s,l]=m.useState(o),[c,d]=m.useState(!1),f=`${t}px`,p={width:f,height:f,minWidth:f,minHeight:f};if(!e||s){if(n)return u.jsx("div",{style:p});if(i){const _=u.jsx("img",{src:gFe,style:p});return r?_:u.jsx(ui,{content:"Your current validator",children:_})}return u.jsx("img",{src:Nie,alt:"private",style:p})}const v=()=>{a(),l(!0)};return u.jsxs(u.Fragment,{children:[u.jsx("img",{className:Te({[Mie.hide]:!c}),style:p,onError:v,onLoad:()=>d(!0),src:e}),u.jsx("img",{className:Te({[Mie.hide]:c}),style:p,src:Nie,alt:"private"})]})}const O$=Yf((e,t,n)=>new Intl.NumberFormat(void 0,{minimumFractionDigits:n?e:0,maximumFractionDigits:e,minimumSignificantDigits:!n&&t?1:t,maximumSignificantDigits:t}),{maxSize:100});function P$(e,t){const{trailingZeroes:n=!0,decimalsOnZero:r=!1}=t;if(e===0&&!r)return"0";let i;if("decimals"in t){const s=typeof t.decimals=="function"?t.decimals(e):t.decimals;i=O$(s,void 0,n)}else{const{significantDigits:s,exactIntegers:l}=t;l&&Math.abs(e)>Math.pow(10,s)?i=O$(0,void 0,n):i=O$(void 0,s||1,n)}let o="";t.useSuffix&&([e,o]=bFe(e));const a=i.format(e);return a==="-0"?"0":a+o}function bFe(e){if(isFinite(e)){const t=Math.abs(e);if(t>=1e12)return[e/1e12,"T"];if(t>=1e9)return[e/1e9,"B"];if(t>=1e6)return[e/1e6,"M"];if(t>=1e3)return[e/1e3,"K"]}return[e,""]}const Lie=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",maximumFractionDigits:0}),z$=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumFractionDigits:1,maximumFractionDigits:1});function _Fe(e){switch(e){case 1:return"Once";case 2:return"Twice";default:return`${e} times`}}function xFe(){var e=m.useRef(!0);return e.current?(e.current=!1,!0):e.current}var Rie=function(){};function wFe(e){for(var t=[],n=1;ns.preventDefault(),children:t})})]})}function Bie(e){const t=X(dG),n=Oie();if(Qu(n,e),!!t)return Kf.diff(jt.fromMillis(Math.trunc(Number(t.startupTimeNanos)/1e6))).rescale()}function Ip(e,t,n,r){var i=this,o=m.useRef(null),a=m.useRef(0),s=m.useRef(0),l=m.useRef(null),c=m.useRef([]),d=m.useRef(),f=m.useRef(),p=m.useRef(e),v=m.useRef(!0);p.current=e;var _=typeof window<"u",y=!t&&t!==0&&_;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var b=!!(n=n||{}).leading,w=!("trailing"in n)||!!n.trailing,x="maxWait"in n,S="debounceOnServer"in n&&!!n.debounceOnServer,C=x?Math.max(+n.maxWait||0,t):null;m.useEffect(function(){return v.current=!0,function(){v.current=!1}},[]);var j=m.useMemo(function(){var T=function(Z){var O=c.current,J=d.current;return c.current=d.current=null,a.current=Z,s.current=s.current||Z,f.current=p.current.apply(J,O)},E=function(Z,O){y&&cancelAnimationFrame(l.current),l.current=y?requestAnimationFrame(Z):setTimeout(Z,O)},$=function(Z){if(!v.current)return!1;var O=Z-o.current;return!o.current||O>=t||O<0||x&&Z-a.current>=C},A=function(Z){return l.current=null,w&&c.current?T(Z):(c.current=d.current=null,f.current)},M=function Z(){var O=Date.now();if(b&&s.current===a.current&&P(),$(O))return A(O);if(v.current){var J=t-(O-o.current),D=x?Math.min(J,C-(O-a.current)):J;E(Z,D)}},P=function(){r&&r({})},te=function(){if(_||S){var Z=Date.now(),O=$(Z);if(c.current=[].slice.call(arguments),d.current=i,o.current=Z,O){if(!l.current&&v.current)return a.current=o.current,E(M,t),b?T(o.current):f.current;if(x)return E(M,t),T(o.current)}return l.current||E(M,t),f.current}};return te.cancel=function(){var Z=l.current;Z&&(y?cancelAnimationFrame(l.current):clearTimeout(l.current)),a.current=0,c.current=o.current=d.current=l.current=null,Z&&r&&r({})},te.isPending=function(){return!!l.current},te.flush=function(){return l.current?A(Date.now()):f.current},te},[b,x,t,C,w,y,_,S,r]);return j}function DFe(e,t){return e===t}function Uie(e,t,n){var r=n&&n.equalityFn||DFe,i=m.useRef(e),o=m.useState({})[1],a=Ip(m.useCallback(function(l){i.current=l,o({})},[o]),t,n,o),s=m.useRef(e);return r(s.current,e)||(a(e),s.current=e),[i.current,a]}function Ua(e,t,n){var r=n===void 0?{}:n,i=r.leading,o=r.trailing;return Ip(e,t,{maxWait:t,leading:i===void 0||i,trailing:o===void 0||o})}function Gr(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var AFe=["color"],Wie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,AFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.5 2C7.77614 2 8 2.22386 8 2.5L8 11.2929L11.1464 8.14645C11.3417 7.95118 11.6583 7.95118 11.8536 8.14645C12.0488 8.34171 12.0488 8.65829 11.8536 8.85355L7.85355 12.8536C7.75979 12.9473 7.63261 13 7.5 13C7.36739 13 7.24021 12.9473 7.14645 12.8536L3.14645 8.85355C2.95118 8.65829 2.95118 8.34171 3.14645 8.14645C3.34171 7.95118 3.65829 7.95118 3.85355 8.14645L7 11.2929L7 2.5C7 2.22386 7.22386 2 7.5 2Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),FFe=["color"],Vie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,FFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.14645 2.14645C7.34171 1.95118 7.65829 1.95118 7.85355 2.14645L11.8536 6.14645C12.0488 6.34171 12.0488 6.65829 11.8536 6.85355C11.6583 7.04882 11.3417 7.04882 11.1464 6.85355L8 3.70711L8 12.5C8 12.7761 7.77614 13 7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.70711L3.85355 6.85355C3.65829 7.04882 3.34171 7.04882 3.14645 6.85355C2.95118 6.65829 2.95118 6.34171 3.14645 6.14645L7.14645 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),BFe=["color"],A$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,BFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),UFe=["color"],F$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,UFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),WFe=["color"],VFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,WFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),HFe=["color"],Hie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,HFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),ZFe=["color"],qFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,ZFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),GFe=["color"],YFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,GFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),KFe=["color"],XFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,KFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1 9.50006C1 10.3285 1.67157 11.0001 2.5 11.0001H4L4 10.0001H2.5C2.22386 10.0001 2 9.7762 2 9.50006L2 2.50006C2 2.22392 2.22386 2.00006 2.5 2.00006L9.5 2.00006C9.77614 2.00006 10 2.22392 10 2.50006V4.00002H5.5C4.67158 4.00002 4 4.67159 4 5.50002V12.5C4 13.3284 4.67158 14 5.5 14H12.5C13.3284 14 14 13.3284 14 12.5V5.50002C14 4.67159 13.3284 4.00002 12.5 4.00002H11V2.50006C11 1.67163 10.3284 1.00006 9.5 1.00006H2.5C1.67157 1.00006 1 1.67163 1 2.50006V9.50006ZM5 5.50002C5 5.22388 5.22386 5.00002 5.5 5.00002H12.5C12.7761 5.00002 13 5.22388 13 5.50002V12.5C13 12.7762 12.7761 13 12.5 13H5.5C5.22386 13 5 12.7762 5 12.5V5.50002Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),JFe=["color"],QFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,JFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M13.15 7.49998C13.15 4.66458 10.9402 1.84998 7.50002 1.84998C4.72167 1.84998 3.34849 3.9064 2.76335 5H4.5C4.77614 5 5 5.22386 5 5.5C5 5.77614 4.77614 6 4.5 6H1.5C1.22386 6 1 5.77614 1 5.5V2.5C1 2.22386 1.22386 2 1.5 2C1.77614 2 2 2.22386 2 2.5V4.31318C2.70453 3.07126 4.33406 0.849976 7.50002 0.849976C11.5628 0.849976 14.15 4.18537 14.15 7.49998C14.15 10.8146 11.5628 14.15 7.50002 14.15C5.55618 14.15 3.93778 13.3808 2.78548 12.2084C2.16852 11.5806 1.68668 10.839 1.35816 10.0407C1.25306 9.78536 1.37488 9.49315 1.63024 9.38806C1.8856 9.28296 2.17781 9.40478 2.2829 9.66014C2.56374 10.3425 2.97495 10.9745 3.4987 11.5074C4.47052 12.4963 5.83496 13.15 7.50002 13.15C10.9402 13.15 13.15 10.3354 13.15 7.49998ZM7.5 4.00001C7.77614 4.00001 8 4.22387 8 4.50001V7.29291L9.85355 9.14646C10.0488 9.34172 10.0488 9.65831 9.85355 9.85357C9.65829 10.0488 9.34171 10.0488 9.14645 9.85357L7.14645 7.85357C7.05268 7.7598 7 7.63262 7 7.50001V4.50001C7 4.22387 7.22386 4.00001 7.5 4.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),eBe=["color"],B$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,eBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),tBe=["color"],nBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,tBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),rBe=["color"],iBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,rBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.1464 6.85355C11.3417 7.04882 11.6583 7.04882 11.8536 6.85355C12.0488 6.65829 12.0488 6.34171 11.8536 6.14645L7.85355 2.14645C7.65829 1.95118 7.34171 1.95118 7.14645 2.14645L3.14645 6.14645C2.95118 6.34171 2.95118 6.65829 3.14645 6.85355C3.34171 7.04882 3.65829 7.04882 3.85355 6.85355L7.5 3.20711L11.1464 6.85355ZM11.1464 12.8536C11.3417 13.0488 11.6583 13.0488 11.8536 12.8536C12.0488 12.6583 12.0488 12.3417 11.8536 12.1464L7.85355 8.14645C7.65829 7.95118 7.34171 7.95118 7.14645 8.14645L3.14645 12.1464C2.95118 12.3417 2.95118 12.6583 3.14645 12.8536C3.34171 13.0488 3.65829 13.0488 3.85355 12.8536L7.5 9.20711L11.1464 12.8536Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),oBe=["color"],aBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,oBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M2 2.5C2 2.22386 2.22386 2 2.5 2H5.5C5.77614 2 6 2.22386 6 2.5C6 2.77614 5.77614 3 5.5 3H3V5.5C3 5.77614 2.77614 6 2.5 6C2.22386 6 2 5.77614 2 5.5V2.5ZM9 2.5C9 2.22386 9.22386 2 9.5 2H12.5C12.7761 2 13 2.22386 13 2.5V5.5C13 5.77614 12.7761 6 12.5 6C12.2239 6 12 5.77614 12 5.5V3H9.5C9.22386 3 9 2.77614 9 2.5ZM2.5 9C2.77614 9 3 9.22386 3 9.5V12H5.5C5.77614 12 6 12.2239 6 12.5C6 12.7761 5.77614 13 5.5 13H2.5C2.22386 13 2 12.7761 2 12.5V9.5C2 9.22386 2.22386 9 2.5 9ZM12.5 9C12.7761 9 13 9.22386 13 9.5V12.5C13 12.7761 12.7761 13 12.5 13H9.5C9.22386 13 9 12.7761 9 12.5C9 12.2239 9.22386 12 9.5 12H12V9.5C12 9.22386 12.2239 9 12.5 9Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),sBe=["color"],lBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,sBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M5.5 2C5.77614 2 6 2.22386 6 2.5V5.5C6 5.77614 5.77614 6 5.5 6H2.5C2.22386 6 2 5.77614 2 5.5C2 5.22386 2.22386 5 2.5 5H5V2.5C5 2.22386 5.22386 2 5.5 2ZM9.5 2C9.77614 2 10 2.22386 10 2.5V5H12.5C12.7761 5 13 5.22386 13 5.5C13 5.77614 12.7761 6 12.5 6H9.5C9.22386 6 9 5.77614 9 5.5V2.5C9 2.22386 9.22386 2 9.5 2ZM2 9.5C2 9.22386 2.22386 9 2.5 9H5.5C5.77614 9 6 9.22386 6 9.5V12.5C6 12.7761 5.77614 13 5.5 13C5.22386 13 5 12.7761 5 12.5V10H2.5C2.22386 10 2 9.77614 2 9.5ZM9 9.5C9 9.22386 9.22386 9 9.5 9H12.5C12.7761 9 13 9.22386 13 9.5C13 9.77614 12.7761 10 12.5 10H10V12.5C10 12.7761 9.77614 13 9.5 13C9.22386 13 9 12.7761 9 12.5V9.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),uBe=["color"],Zie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,uBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM8.24992 4.49999C8.24992 4.9142 7.91413 5.24999 7.49992 5.24999C7.08571 5.24999 6.74992 4.9142 6.74992 4.49999C6.74992 4.08577 7.08571 3.74999 7.49992 3.74999C7.91413 3.74999 8.24992 4.08577 8.24992 4.49999ZM6.00003 5.99999H6.50003H7.50003C7.77618 5.99999 8.00003 6.22384 8.00003 6.49999V9.99999H8.50003H9.00003V11H8.50003H7.50003H6.50003H6.00003V9.99999H6.50003H7.00003V6.99999H6.50003H6.00003V5.99999Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),cBe=["color"],qie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,cBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),dBe=["color"],fBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,dBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1.85001 7.50043C1.85001 4.37975 4.37963 1.85001 7.50001 1.85001C10.6204 1.85001 13.15 4.37975 13.15 7.50043C13.15 10.6211 10.6204 13.1509 7.50001 13.1509C4.37963 13.1509 1.85001 10.6211 1.85001 7.50043ZM7.50001 0.850006C3.82728 0.850006 0.850006 3.82753 0.850006 7.50043C0.850006 11.1733 3.82728 14.1509 7.50001 14.1509C11.1727 14.1509 14.15 11.1733 14.15 7.50043C14.15 3.82753 11.1727 0.850006 7.50001 0.850006ZM7.00001 8.00001V3.12811C7.16411 3.10954 7.33094 3.10001 7.50001 3.10001C9.93006 3.10001 11.9 5.07014 11.9 7.50043C11.9 7.66935 11.8905 7.83604 11.872 8.00001H7.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),hBe=["color"],pBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,hBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM7.50003 4C7.77617 4 8.00003 4.22386 8.00003 4.5V7H10.5C10.7762 7 11 7.22386 11 7.5C11 7.77614 10.7762 8 10.5 8H8.00003V10.5C8.00003 10.7761 7.77617 11 7.50003 11C7.22389 11 7.00003 10.7761 7.00003 10.5V8H4.50003C4.22389 8 4.00003 7.77614 4.00003 7.5C4.00003 7.22386 4.22389 7 4.50003 7H7.00003V4.5C7.00003 4.22386 7.22389 4 7.50003 4Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),mBe=["color"],gBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,mBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.85355 2.14645C5.04882 2.34171 5.04882 2.65829 4.85355 2.85355L3.70711 4H9C11.4853 4 13.5 6.01472 13.5 8.5C13.5 10.9853 11.4853 13 9 13H5C4.72386 13 4.5 12.7761 4.5 12.5C4.5 12.2239 4.72386 12 5 12H9C10.933 12 12.5 10.433 12.5 8.5C12.5 6.567 10.933 5 9 5H3.70711L4.85355 6.14645C5.04882 6.34171 5.04882 6.65829 4.85355 6.85355C4.65829 7.04882 4.34171 7.04882 4.14645 6.85355L2.14645 4.85355C1.95118 4.65829 1.95118 4.34171 2.14645 4.14645L4.14645 2.14645C4.34171 1.95118 4.65829 1.95118 4.85355 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),vBe=["color"],yBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,vBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.89949 9.49998C3.89949 9.72089 3.7204 9.89997 3.49949 9.89997C3.27857 9.89997 3.09949 9.72089 3.09949 9.49998L3.09949 2.46566L1.78233 3.78282C1.62612 3.93903 1.37285 3.93903 1.21664 3.78282C1.06043 3.62661 1.06043 3.37334 1.21664 3.21713L3.21664 1.21713C3.29166 1.14212 3.3934 1.09998 3.49949 1.09998C3.60557 1.09998 3.70732 1.14212 3.78233 1.21713L5.78233 3.21713C5.93854 3.37334 5.93854 3.62661 5.78233 3.78282C5.62612 3.93903 5.37285 3.93903 5.21664 3.78282L3.89949 2.46566L3.89949 9.49998ZM8.49998 1.99998C8.22383 1.99998 7.99998 2.22383 7.99998 2.49998C7.99998 2.77612 8.22383 2.99998 8.49998 2.99998H14.5C14.7761 2.99998 15 2.77612 15 2.49998C15 2.22383 14.7761 1.99998 14.5 1.99998H8.49998ZM8.49998 4.99998C8.22383 4.99998 7.99998 5.22383 7.99998 5.49998C7.99998 5.77612 8.22383 5.99998 8.49998 5.99998H14.5C14.7761 5.99998 15 5.77612 15 5.49998C15 5.22383 14.7761 4.99998 14.5 4.99998H8.49998ZM7.99998 8.49998C7.99998 8.22383 8.22383 7.99998 8.49998 7.99998H14.5C14.7761 7.99998 15 8.22383 15 8.49998C15 8.77612 14.7761 8.99998 14.5 8.99998H8.49998C8.22383 8.99998 7.99998 8.77612 7.99998 8.49998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),bBe=["color"],Gie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,bBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49998 0.849976C7.22383 0.849976 6.99998 1.07383 6.99998 1.34998V3.52234C6.99998 3.79848 7.22383 4.02234 7.49998 4.02234C7.77612 4.02234 7.99998 3.79848 7.99998 3.52234V1.8718C10.8862 2.12488 13.15 4.54806 13.15 7.49998C13.15 10.6204 10.6204 13.15 7.49998 13.15C4.37957 13.15 1.84998 10.6204 1.84998 7.49998C1.84998 6.10612 2.35407 4.83128 3.19049 3.8459C3.36919 3.63538 3.34339 3.31985 3.13286 3.14115C2.92234 2.96245 2.60681 2.98825 2.42811 3.19877C1.44405 4.35808 0.849976 5.86029 0.849976 7.49998C0.849976 11.1727 3.82728 14.15 7.49998 14.15C11.1727 14.15 14.15 11.1727 14.15 7.49998C14.15 3.82728 11.1727 0.849976 7.49998 0.849976ZM6.74049 8.08072L4.22363 4.57237C4.15231 4.47295 4.16346 4.33652 4.24998 4.25C4.33649 4.16348 4.47293 4.15233 4.57234 4.22365L8.08069 6.74051C8.56227 7.08599 8.61906 7.78091 8.19998 8.2C7.78089 8.61909 7.08597 8.56229 6.74049 8.08072Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),_Be=["color"],xBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,_Be);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159ZM4.25 6.5C4.25 6.22386 4.47386 6 4.75 6H6V4.75C6 4.47386 6.22386 4.25 6.5 4.25C6.77614 4.25 7 4.47386 7 4.75V6H8.25C8.52614 6 8.75 6.22386 8.75 6.5C8.75 6.77614 8.52614 7 8.25 7H7V8.25C7 8.52614 6.77614 8.75 6.5 8.75C6.22386 8.75 6 8.52614 6 8.25V7H4.75C4.47386 7 4.25 6.77614 4.25 6.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),wBe=["color"],kBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,wBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.5 10C8.433 10 10 8.433 10 6.5C10 4.567 8.433 3 6.5 3C4.567 3 3 4.567 3 6.5C3 8.433 4.567 10 6.5 10ZM6.5 11C7.56251 11 8.53901 10.6318 9.30884 10.0159L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L10.0159 9.30884C10.6318 8.53901 11 7.56251 11 6.5C11 4.01472 8.98528 2 6.5 2C4.01472 2 2 4.01472 2 6.5C2 8.98528 4.01472 11 6.5 11ZM4.75 6C4.47386 6 4.25 6.22386 4.25 6.5C4.25 6.77614 4.47386 7 4.75 7H8.25C8.52614 7 8.75 6.77614 8.75 6.5C8.75 6.22386 8.52614 6 8.25 6H4.75Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const SBe="_copy-button_1km2g_1",CBe="_icon_1km2g_8",jBe="_hide-icon-until-hover_1km2g_12",Zk={copyButton:SBe,icon:CBe,hideIconUntilHover:jBe};function Dg({value:e,color:t,size:n,hideIconUntilHover:r,className:i,children:o}){const[a,s]=m.useState(!1),l=Ip(()=>s(!1),1e3);return e===void 0?o:u.jsxs(hs,{className:Te(i,Zk.copyButton,r&&Zk.hideIconUntilHover),variant:"ghost",size:"1",onClick:c=>{UN(e),s(!0),l(),c.stopPropagation()},children:[o,a?u.jsx(VFe,{className:Zk.icon,color:"green",height:n}):u.jsx(XFe,{className:Zk.icon,color:t,height:n})]})}function qk({children:e,...t}){return t.content?u.jsx(ui,{...t,children:e}):u.jsx(u.Fragment,{children:e})}function TBe(){var o;const{peer:e,identityKey:t}=a_(),n=Hn(`(min-width: ${Hte})`),r=Hn("(min-width: 798px)"),i=Hn("(min-width: 914px)");return m.useEffect(()=>{var s;const a=((s=e==null?void 0:e.info)==null?void 0:s.name)??t;document.title=a?`${hb} | ${a}`:hb},[t,e]),u.jsx(IBe,{showDropdown:!0,children:u.jsxs("div",{className:Te(rh.container,rh.horizontal,rh.pointer),children:[u.jsx(ks,{url:(o=e==null?void 0:e.info)==null?void 0:o.icon_url,size:28,isYou:!0}),n&&u.jsx(Yie,{shouldShrink:!0}),r&&u.jsxs(u.Fragment,{children:[u.jsx(Jie,{showTooltip:!0}),u.jsx(Xie,{showTooltip:!0})]}),i&&u.jsxs(u.Fragment,{children:[u.jsx(Qie,{}),u.jsx(Kie,{showTooltip:!0}),u.jsx(eoe,{})]})]})})}function IBe({showDropdown:e,children:t}){return e?u.jsx(zg,{content:u.jsx(EBe,{}),align:"end",children:t}):t}function EBe(){var t;const{peer:e}=a_();return u.jsxs(V,{direction:"column",wrap:"wrap",gap:"2",className:Te(rh.container,rh.dropdownMenu),style:{zIndex:Hf},children:[u.jsxs(V,{gap:"2",children:[u.jsx(ks,{url:(t=e==null?void 0:e.info)==null?void 0:t.icon_url,size:24,isYou:!0}),u.jsx(Yie,{})]}),u.jsx(Jie,{}),u.jsx(Xie,{}),u.jsx(Qie,{}),u.jsx(Kie,{}),u.jsx(NBe,{}),u.jsx($Be,{}),u.jsx(eoe,{})]})}function Yie({shouldShrink:e}){const{identityKey:t}=a_();return u.jsx(ih,{label:"Validator Name",copyValue:t,shouldShrink:e,children:t})}function NBe(){var t;const{peer:e}=a_();return u.jsx(ih,{label:"Vote Pubkey",children:(t=e==null?void 0:e.vote[0])==null?void 0:t.vote_account})}function $Be(){const e=X(hG),t=Tb(e);return u.jsx(ih,{label:"Vote Balance",children:u.jsx(Ag,{value:t,suffix:"SOL"})})}function Kie({showTooltip:e}){const t=X(fG),n=Tb(t);return u.jsx(ih,{label:"Identity Balance",tooltip:e?"Account balance of this validators identity account. The balance is on the highest slot of the currently active fork of the validator.":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Xie({showTooltip:e}){const t=X(mDe),n=t===void 0?void 0:P$(t,{significantDigits:4,trailingZeroes:!1});return u.jsx(ih,{label:"Stake %",tooltip:e?"What percentage of total stake is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"%"})})}function Jie({showTooltip:e}){const t=X(bre),n=Tb(t);return u.jsx(ih,{label:"Stake Amount",tooltip:e?"Amount of total stake that is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Qie(){var n;const{peer:e}=a_(),t=e==null?void 0:e.vote.reduce((r,i)=>i.activated_stake>r.maxStake?{maxStake:i.activated_stake,commission:i.commission}:r,{maxStake:0n,commission:void 0});return u.jsx(ih,{label:"Commission",children:u.jsx(Ag,{value:(n=t==null?void 0:t.commission)==null?void 0:n.toLocaleString(),suffix:"%"})})}function eoe(){const e=Bie(6e4),t=e?ere(e,{omitSeconds:!0}):void 0;return u.jsx(ih,{label:"Uptime",children:t==null?void 0:t.map(([n,r],i)=>u.jsxs(m.Fragment,{children:[i!==0&&"\xA0",u.jsx(Ag,{value:n,suffix:r,excludeSpace:!0})]},`${n}${r}`))})}function ih({label:e,tooltip:t,shouldShrink:n=!1,children:r,copyValue:i}){return r?u.jsx(qk,{content:t,children:u.jsxs(V,{direction:"column",minWidth:"0",flexShrink:n?"1":"0",children:[u.jsx(q,{truncate:!0,className:rh.label,children:e}),u.jsx(Dg,{value:i,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(q,{truncate:!0,className:rh.value,children:r})})]})}):null}function Ag({value:e,suffix:t,valueColor:n,excludeSpace:r}){return u.jsxs(u.Fragment,{children:[u.jsxs("span",{style:{color:n},children:[e,!r&&"\xA0"]}),u.jsx("span",{className:rh.valueSuffix,children:t})]})}const MBe="_nav-link_tb1ax_1",LBe="_icon_tb1ax_14",RBe="_dropdown-icon_tb1ax_19",OBe="_active_tb1ax_29",PBe="_nav-dropdown-content_tb1ax_41",s_={navLink:MBe,icon:LBe,dropdownIcon:RBe,active:OBe,navDropdownContent:PBe},zBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M21 5.47 12 12 7.62 7.62 3 11V8.52L7.83 5l4.38 4.38L21 3v2.47zM21 15h-4.7l-4.17 3.34L6 12.41l-3 2.13V17l2.8-2 6.2 6 5-4h4v-2z"})),DBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"})),ABe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z"})),FBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"})),BBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"})),Gk={Overview:"/","Slot Details":"/slotDetails",Schedule:"/leaderSchedule",Gossip:"/gossip"};function Yk(){const e=D9e();return m.useMemo(()=>{const t=Object.entries(Gk).find(([n,r])=>e.pathname===r);return t?t[0]:"Overview"},[e.pathname])}function UBe(){const e=X(ao),t=X(eu),n=X(An),r=Ee(An),[i,o]=m.useMemo(()=>{if(e===void 0)return[-1,-1];const a=e.findIndex(l=>l>(n??t??0));let s=a-1;return s===e.findIndex(l=>l===(n??t??0))&&s--,[s,a]},[t,e,n]);return m.useMemo(()=>({navPrevLeaderSlot:(a=1)=>{if(i>-1&&a>0){const s=e==null?void 0:e[i-a+1];s!==void 0&&r(s)}},navNextLeaderSlot:(a=1)=>{if(o>-1&&a>0){const s=e==null?void 0:e[o+a-1];s!==void 0&&r(s)}}}),[e,o,i,r])}const WBe={Overview:zBe,Schedule:ABe,Gossip:FBe,"Slot Details":DBe},Kk=m.forwardRef(({label:e,isActive:t,showDropdownIcon:n=!1,isLink:r,...i},o)=>{const a=X(qy),s=bk(a),l=WBe[e],c=Gk[e],d=m.useMemo(()=>{const f=t?s:Qte;return u.jsxs(u.Fragment,{children:[u.jsx(l,{className:s_.icon,fill:f}),u.jsx(q,{truncate:!0,children:e}),n&&u.jsx(BBe,{className:s_.dropdownIcon,fill:f})]})},[l,s,t,e,n]);return u.jsx(hs,{ref:o,...i,size:"2",variant:"soft",color:"gray",className:Te(s_.navLink,{[s_.active]:t}),style:{color:t?s:void 0},asChild:r,children:r?u.jsx(lp,{to:c,children:d}):d})});Kk.displayName="NavButton";function VBe(){const e=Yk();return u.jsx(V,{gap:`${Vf}px`,children:Object.keys(Gk).map(t=>{const n=t;if(!(n==="Gossip"&&_i))return u.jsx(Kk,{label:n,isActive:e===n,isLink:!0},n)})})}function HBe(){const e=X(jg),t=Yk();return u.jsxs(bV,{children:[u.jsx(_V,{asChild:!0,children:u.jsx(Kk,{label:t,isActive:!0,showDropdownIcon:!0,isLink:!1},t)}),u.jsx(a7,{container:e,children:u.jsx(xV,{side:"bottom",sideOffset:5,className:s_.navDropdownContent,style:{zIndex:Hf},children:Object.keys(Gk).map(n=>{const r=n;if(!(r==="Gossip"&&_i))return u.jsx(wV,{asChild:!0,children:u.jsx(Kk,{label:r,isActive:r===t,isLink:!0},r)},r)})})})]})}function ZBe(){const e=UBe();return m.useEffect(()=>{const t=n=>{n.code==="ArrowLeft"?e.navPrevLeaderSlot():n.code==="ArrowRight"&&e.navNextLeaderSlot()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),null}const toe="/assets/firedancer_logo-CrgwxzPk.svg",noe="/assets/frankendancer_logo-CHyfJ772.svg",qBe="_logo_1ml9x_1",GBe={logo:qBe};function YBe(){return u.jsx(Z0,{children:u.jsx(lp,{to:"/",children:u.jsx("img",{className:GBe.logo,width:cN,src:Vi?toe:noe,alt:hb})})})}const KBe="_cluster-container_7aa6c_1",XBe="_cluster_7aa6c_1",JBe="_cluster-name_7aa6c_19",U$={clusterContainer:KBe,cluster:XBe,clusterName:JBe},QBe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M6.39844 3.39062V9.89844H11.6484V11.0742H0V9.89844H5.25V3.39062C4.72135 3.20833 4.36589 2.85286 4.18359 2.32422H2.32422L4.07422 6.39844C4.07422 6.72656 3.98307 7.02734 3.80078 7.30078C3.61849 7.55599 3.3724 7.76562 3.0625 7.92969C2.7526 8.07552 2.40625 8.14844 2.02344 8.14844C1.65885 8.14844 1.32161 8.07552 1.01172 7.92969C0.701823 7.76562 0.455729 7.55599 0.273438 7.30078C0.0911458 7.02734 0 6.72656 0 6.39844L1.75 2.32422H0.574219V1.14844H4.18359C4.29297 0.820312 4.49349 0.546875 4.78516 0.328125C5.09505 0.109375 5.44141 0 5.82422 0C6.20703 0 6.54427 0.109375 6.83594 0.328125C7.14583 0.546875 7.35547 0.820312 7.46484 1.14844H11.0742V2.32422H9.89844L11.6484 6.39844C11.6484 6.72656 11.5573 7.02734 11.375 7.30078C11.1927 7.55599 10.9466 7.76562 10.6367 7.92969C10.3268 8.07552 9.98958 8.14844 9.625 8.14844C9.24219 8.14844 8.89583 8.07552 8.58594 7.92969C8.27604 7.76562 8.02995 7.55599 7.84766 7.30078C7.66536 7.02734 7.57422 6.72656 7.57422 6.39844L9.32422 2.32422H7.46484C7.28255 2.85286 6.92708 3.20833 6.39844 3.39062ZM10.7188 6.39844L9.625 3.85547L8.53125 6.39844H10.7188ZM3.11719 6.39844L2.02344 3.85547L0.929688 6.39844H3.11719ZM5.82422 2.32422C5.98828 2.32422 6.125 2.26953 6.23438 2.16016C6.34375 2.03255 6.39844 1.89583 6.39844 1.75C6.39844 1.58594 6.34375 1.44922 6.23438 1.33984C6.125 1.21224 5.98828 1.14844 5.82422 1.14844C5.66016 1.14844 5.52344 1.21224 5.41406 1.33984C5.30469 1.44922 5.25 1.58594 5.25 1.75C5.25 1.89583 5.30469 2.03255 5.41406 2.16016C5.52344 2.26953 5.66016 2.32422 5.82422 2.32422Z"})),eUe=e=>m.createElement("svg",{width:7,height:11,viewBox:"0 0 7 11",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M2.48828 10.5H1.88672L2.48828 6.42578H0.4375C0.145833 6.42578 0.0729167 6.29818 0.21875 6.04297C0.273438 5.95182 0.282552 5.92448 0.246094 5.96094C1.17578 4.33854 2.30599 2.35156 3.63672 0H4.23828L3.63672 4.07422H5.6875C5.94271 4.07422 6.02474 4.20182 5.93359 4.45703L2.48828 10.5Z"})),tUe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M4.18359 2.26953L3.41797 2.13281C2.9987 2.04167 2.64323 2.15104 2.35156 2.46094L0 4.8125L2.10547 5.71484C2.1237 5.67839 2.1875 5.54167 2.29688 5.30469C2.40625 5.06771 2.55208 4.77604 2.73438 4.42969C2.91667 4.08333 3.1263 3.72786 3.36328 3.36328C3.61849 2.98047 3.89193 2.61589 4.18359 2.26953ZM5.33203 8.50391L2.89844 6.07031C2.89844 6.07031 2.95312 5.95182 3.0625 5.71484C3.17188 5.47786 3.31771 5.17708 3.5 4.8125C3.70052 4.44792 3.92839 4.07422 4.18359 3.69141C4.45703 3.29036 4.7487 2.9349 5.05859 2.625C5.69661 1.98698 6.29818 1.49479 6.86328 1.14844C7.42839 0.783854 7.94792 0.519531 8.42188 0.355469C8.91406 0.191406 9.35156 0.0911458 9.73438 0.0546875C10.1172 0.0182292 10.4362 0.0182292 10.6914 0.0546875C10.9466 0.0911458 11.1289 0.127604 11.2383 0.164062C11.2747 0.273438 11.3112 0.455729 11.3477 0.710938C11.3841 0.966146 11.3841 1.28516 11.3477 1.66797C11.3112 2.05078 11.2109 2.48828 11.0469 2.98047C10.8828 3.45443 10.6185 3.97396 10.2539 4.53906C9.90755 5.10417 9.41536 5.70573 8.77734 6.34375C8.46745 6.65365 8.11198 6.94531 7.71094 7.21875C7.32812 7.47396 6.95443 7.70182 6.58984 7.90234C6.22526 8.08464 5.92448 8.23047 5.6875 8.33984C5.45052 8.44922 5.33203 8.50391 5.33203 8.50391ZM9.13281 7.21875L9.26953 7.98438C9.36068 8.40365 9.2513 8.75911 8.94141 9.05078L6.58984 11.4023L5.6875 9.29688C5.72396 9.27865 5.86068 9.21484 6.09766 9.10547C6.33464 8.99609 6.6263 8.85026 6.97266 8.66797C7.31901 8.48568 7.67448 8.27604 8.03906 8.03906C8.42188 7.78385 8.78646 7.51042 9.13281 7.21875ZM4.07422 9.07812C4.07422 8.75 3.99219 8.45833 3.82812 8.20312C3.68229 7.92969 3.47266 7.72005 3.19922 7.57422C2.94401 7.41016 2.65234 7.32812 2.32422 7.32812C2.08724 7.32812 1.85938 7.3737 1.64062 7.46484C1.42188 7.55599 1.23958 7.68359 1.09375 7.84766C0.947917 7.97526 0.820312 8.1849 0.710938 8.47656C0.601562 8.75 0.501302 9.0599 0.410156 9.40625C0.31901 9.73438 0.236979 10.0534 0.164062 10.3633C0.109375 10.6732 0.0638021 10.9284 0.0273438 11.1289C0.00911458 11.3112 0 11.4023 0 11.4023C0 11.4023 0.0911458 11.3932 0.273438 11.375C0.473958 11.3385 0.729167 11.293 1.03906 11.2383C1.34896 11.1654 1.66797 11.0833 1.99609 10.9922C2.34245 10.901 2.65234 10.8008 2.92578 10.6914C3.21745 10.582 3.42708 10.4544 3.55469 10.3086C3.71875 10.1628 3.84635 9.98047 3.9375 9.76172C4.02865 9.54297 4.07422 9.3151 4.07422 9.07812ZM6.39844 3.82812C6.39844 4.15625 6.50781 4.4388 6.72656 4.67578C6.96354 4.89453 7.24609 5.00391 7.57422 5.00391C7.90234 5.00391 8.17578 4.89453 8.39453 4.67578C8.63151 4.4388 8.75 4.15625 8.75 3.82812C8.75 3.5 8.63151 3.22656 8.39453 3.00781C8.17578 2.77083 7.90234 2.65234 7.57422 2.65234C7.24609 2.65234 6.96354 2.77083 6.72656 3.00781C6.50781 3.22656 6.39844 3.5 6.39844 3.82812Z"}));function roe({strategy:e,iconSize:t,tooltipContent:n}){const r=X(qy),i=m.useMemo(()=>({width:`${t}px`,height:`${t}px`,color:bk(r)}),[r,t]),o=m.useMemo(()=>{if(e===ld.balanced)return u.jsx(QBe,{...i});if(e===ld.perf)return u.jsx(eUe,{...i});if(e===ld.revenue)return u.jsx(tUe,{...i})},[e,i]);return n?u.jsx(ui,{content:n,children:u.jsx("div",{style:{lineHeight:0},children:o})}):o}const l_=2;function nUe(){const e=X(qy),t=X(uG),n=X(cG);if(!e&&!t)return null;let r=e;return e==="mainnet-beta"&&(r="mainnet"),u.jsxs(V,{width:`${fN+l_}px`,className:U$.clusterContainer,gap:"5px",ml:`-${l_}px`,p:`${l_}px 5px ${l_}px ${l_}px`,children:[u.jsxs(V,{className:U$.cluster,flexGrow:"1",direction:"column",align:"center",style:{background:bk(e)},children:[u.jsx(ui,{content:"Cluster the validator is joined to",children:u.jsx(q,{className:U$.clusterName,children:r})}),u.jsx(ui,{content:`Current validator software version. Commit Hash: ${n||"unknown"}`,children:u.jsxs(q,{children:["v",t]})})]}),u.jsx(iUe,{})]})}function rUe(){const e=X(qy),t=bk(e);return u.jsx("div",{style:{background:t,height:kb,width:"100%"}})}function iUe(){const e=X(s3),t=m.useMemo(()=>{if(e===ld.balanced)return"Transaction scheduler strategy: balanced";if(e===ld.perf)return"Transaction scheduler strategy: performance";if(e===ld.revenue)return"Transaction scheduler strategy: revenue"},[e]);if(e)return u.jsx(roe,{strategy:e,iconSize:12,tooltipContent:t})}const oUe="_nav-filter-toggle-group_148xa_1",aUe="_lg_148xa_47",sUe="_toggle-button_148xa_43",lUe="_floating_148xa_61",uUe="_mirror_148xa_75",cUe="_slot-nav-container_148xa_81",dUe="_nav-background_148xa_85",Ep={navFilterToggleGroup:oUe,lg:aUe,toggleButton:sUe,floating:lUe,mirror:uUe,slotNavContainer:cUe,navBackground:dUe},fUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M13 7h9v2h-9zm0 8h9v2h-9zm3-4h6v2h-6zm-3 1L8 7v4H2v2h6v4z"}));function Fg(){const e=Hn(Vte),[t,n]=Vl(Jze),r=Yk()==="Schedule",i=r||!t,o=r;return{isNarrowScreen:e,showNav:i,setIsNavCollapsed:n,showOnlyEpochBar:o,blurBackground:e&&!t&&!o,occupyRowWidth:o||!e&&!t}}function W$({isFloating:e,isLarge:t}){const{showNav:n,setIsNavCollapsed:r,showOnlyEpochBar:i}=Fg(),o=`${t?NRe:uN}px`;return i?u.jsx("div",{style:{height:o,width:o}}):u.jsx(nl,{size:"1",onClick:()=>r(a=>!a),className:Te(Ep.toggleButton,{[Ep.floating]:e}),style:{height:o,width:o},children:u.jsx(fUe,{className:Te({[Ep.lg]:t,[Ep.mirror]:n})})})}function ioe(){const{setIsNavCollapsed:e}=Fg();return u.jsx("div",{onClick:()=>e(!0),className:"blur",style:{zIndex:Hf-2}})}const hUe="_nav-background_1sjct_1",pUe={navBackground:hUe},mUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 0 0 2-2v-4l-3-3zm-1-5.05-4.95 4.95-3.54-3.54 4.95-4.95L17 7.95zm-4.24-5.66L6.39 8.66a.996.996 0 0 0 0 1.41l4.95 4.95c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 0 0 0-1.41L14.16 2.3a.975.975 0 0 0-1.4-.01z"})),gUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"m11.99 18.54-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z"})),vUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),m.createElement("path",{d:"M22 7.47V5.35C20.05 4.77 16.56 4 12 4c-2.15 0-4.11.86-5.54 2.24.13-.85.4-2.4 1.01-4.24H5.35C4.77 3.95 4 7.44 4 12c0 2.15.86 4.11 2.24 5.54-.85-.14-2.4-.4-4.24-1.01v2.12C3.95 19.23 7.44 20 12 20c2.15 0 4.11-.86 5.54-2.24-.14.85-.4 2.4-1.01 4.24h2.12c.58-1.95 1.35-5.44 1.35-10 0-2.15-.86-4.11-2.24-5.54.85.13 2.4.4 4.24 1.01zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"})),yUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{fillRule:"evenodd",d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 10c0 3.31-2.69 6-6 6s-6-2.69-6-6h2c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4v3L8 7l4-4v3c3.31 0 6 2.69 6 6z"})),bUe="_health-pane_hbx15_1",_Ue="_vertical_hbx15_14",xUe="_narrow_hbx15_18",wUe="_health-box_hbx15_22",kUe="_stacked_hbx15_36",SUe="_alerting_hbx15_44",CUe="_popover_hbx15_58",jUe="_title_hbx15_62",TUe="_status_hbx15_67",IUe="_content_hbx15_77",dl={healthPane:bUe,vertical:_Ue,narrow:xUe,healthBox:wUe,stacked:kUe,alerting:SUe,popover:CUe,title:jUe,status:TUe,content:IUe},ooe={forceUpdateIntervalMs:1500,halfLifeMs:5e3,initMinSamples:5};function Bg(e,t){const{forceUpdateIntervalMs:n,halfLifeMs:r,initMinSamples:i}={...ooe,...t},o=m.useMemo(()=>r/Math.log(2),[r]),[a,s]=m.useState(),l=m.useRef(),c=m.useRef(e);c.current=e;const d=m.useRef(),f=m.useRef(0),p=m.useRef(!1);p.current=a!==void 0;const v=m.useCallback(()=>{s(void 0),l.current=void 0,d.current=void 0,f.current=0,y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)},[]),_=m.useCallback(b=>{b??(b=c.current);const w=performance.now();if(l.current===void 0){b!=null&&(l.current={value:b,tsMs:w});return}b??(b=l.current.value);const{value:x,tsMs:S}=l.current,C=w-S;if(!isFinite(C)||C<=0)return;const j=b-x;if(!isFinite(j)||j<0){v();return}if(l.current={value:b,tsMs:w},!p.current&&j>0){if(f.current+=1,!d.current){d.current={value:b,tsMs:w};return}if(f.current{const E=j/C*1e3;if(T===void 0)return E>0?E:T;const $=-Math.expm1(-C/o);return T*(1-$)+E*$})},[i,v,o]),y=m.useRef();return m.useEffect(()=>{if(y.current!==void 0&&(clearTimeout(y.current),y.current=void 0),_(e),n!==void 0){let b=function(){y.current=setTimeout(()=>{_(),b()},n)};b()}return()=>{y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)}},[n,_,e]),{ema:a,reset:v}}function Ug(e,t=ooe){return Bg(e,t).ema??0}const V$=["turbine","gossip","tpu","repair","metrics"],aoe={Ingress:{turbine:64e6/8,gossip:1e9/8,tpu:1e8/8,repair:1e6/8,metrics:1e4/8,Total:118901e4/8},Egress:{turbine:1e9/8,gossip:1e9/8,tpu:1e6/8,repair:1e6/8,metrics:1e4/8,Total:205001e4/8}};function soe(e){return e?"Unhealthy":"Healthy"}function EUe(){const e=Hn("(max-width: 450px)"),t=Hn("(max-width: 390px)"),n=AUe(),r="Health Pane",i=Te(dl.healthPane,{[dl.narrow]:t});return e&&n.length>1?u.jsx(zg,{className:dl.popover,content:u.jsx(V,{direction:"column",gap:"8px",children:n.map(o=>u.jsx(loe,{...o},o.title))}),children:u.jsx("button",{"aria-label":r,className:Te(i,dl.vertical),children:n.map(o=>u.jsx(uoe,{...o,isStacked:!0},o.title))})}):u.jsx("div",{"aria-label":r,className:i,children:n.map(o=>u.jsx(uoe,{...o},o.title))})}function loe({title:e,description:t,isAlerting:n}){return u.jsxs(V,{direction:"column",gap:"4px",children:[u.jsxs(V,{gap:"5px",children:[u.jsx(q,{className:dl.title,children:e}),u.jsx(q,{className:Te(dl.status,{[dl.alerting]:n}),children:soe(n)})]}),u.jsx("div",{className:dl.content,children:u.jsx(q,{children:t})})]})}function uoe({title:e,description:t,Icon:n,isAlerting:r,isStacked:i=!1}){const o=`${e}: ${soe(r)}`,a=Te(dl.healthBox,{[dl.alerting]:r});return i?u.jsx("div",{"aria-label":o,className:Te(a,dl.stacked)}):u.jsx(zg,{className:dl.popover,content:u.jsx(loe,{title:e,description:t,isAlerting:r}),children:u.jsx("button",{"aria-label":o,className:a,children:u.jsx(n,{width:"75%"})})})}function NUe(){const e=X(zT),t=X(RT),n=X(Gy),r=e==="delinquent";return m.useMemo(()=>({title:"Vote Health",Icon:mUe,isAlerting:r,description:r?t==null||n==null?"Missing vote slot or turbine slot data.":`We haven't landed a vote since slot ${t} (${t-n}).`:"Our consensus votes are being received by other nodes normally."}),[r,t,n])}function $Ue(){const e=X(RG);return m.useMemo(()=>e?{title:"Bundle Health",Icon:gUe,isAlerting:e.status!=="connected",description:`Currently ${e.status} ${e.status==="disconnected"?"from":"to"} ${e.name} - ${e.url} (${e.ip})`}:null,[e])}const coe={forceUpdateIntervalMs:void 0},MUe=_i?coe:{forceUpdateIntervalMs:1e3,initMinSamples:2,halfLifeMs:1e3},LUe=.5,doe=_i?coe:{halfLifeMs:1e3};function RUe(){const e=X(Gy),t=e==null,{ema:n}=Bg(_i?null:e,MUe),r=t||n!=null&&n_i?null:{title:"Turbine Health",Icon:vUe,isAlerting:l,description:l?t?"Missing turbine slot data.":"We are receiving little to no block data from other nodes over Turbine.":"Block data is arriving normally over Turbine."},[l,t])}const OUe=V$.indexOf("turbine"),PUe=V$.indexOf("repair"),zUe=12;function DUe(){const e=X(Gy),t=X(fp);return m.useMemo(()=>{if(_i)return null;const n=e==null||t==null||e-t>zUe;return{title:"Replay Health",Icon:yUe,isAlerting:n,description:n?e==null||t==null?"Missing turbine slot or processed slot data.":`Replay is ${e-t} behind the rest of the cluster.`:"Replay is keeping up with the cluster."}},[e,t])}function AUe(){const e=NUe(),t=$Ue(),n=RUe(),r=DUe();return[e,t,n,r].filter(i=>i!=null)}function foe({isStartup:e}){const t=Hn("(max-width: 1218px)"),n=Hn("(max-width: 401px)"),r=Hn(`(max-width: ${Hte})`),{isNarrowScreen:i,blurBackground:o,showNav:a,showOnlyEpochBar:s}=Fg(),l=!a&&n,c="3px";return u.jsxs("div",{className:"sticky",style:{top:0,backgroundColor:"var(--color-background)",zIndex:Hf},children:[u.jsx(rUe,{}),u.jsxs(Mt,{px:"2",className:"app-width-container",children:[u.jsxs(V,{height:`${Sb}px`,align:"center",children:[u.jsxs(V,{className:Te({[pUe.navBackground]:a&&!s}),height:"100%",align:"center",gapX:l?c:`${ck}px`,pr:l?c:`${Vf}px`,ml:`${-dN}px`,pl:`${dN}px`,children:[!e&&i&&!a&&u.jsx(W$,{isLarge:!0}),u.jsx(YBe,{}),u.jsx(nUe,{})]}),u.jsxs(V,{position:"relative",gapX:l?c:`${lN}px`,height:"100%",flexGrow:"1",align:"center",justify:"between",pl:l?c:`${lN-Vf}px`,minWidth:"0",flexShrink:"100",children:[!e&&u.jsxs(V,{flexShrink:r?"1":"0",minWidth:"100px",children:[u.jsx(ZBe,{}),t?u.jsx(HBe,{}):u.jsx(VBe,{})]}),u.jsxs(V,{gap:i?"1":"3",justify:"end",align:"center",minWidth:"50px",flexGrow:"1",children:[u.jsx(TBe,{}),u.jsx(EUe,{}),u.jsxs(V,{gap:"1",direction:i?"column":"row",children:[u.jsx(FUe,{}),e?u.jsx(UUe,{}):u.jsx(BUe,{})]})]}),o&&u.jsx(ioe,{})]})]}),!e&&!i&&u.jsx("div",{style:{position:"relative"},children:u.jsx("div",{style:{position:"absolute",top:0,left:0},children:u.jsx(W$,{isFloating:!a})})})]})]})}function FUe(){return u.jsx(zg,{content:u.jsx(q,{size:"2",wrap:"wrap",children:u.jsx("a",{href:"https://db-ip.com",children:"IP Geolocation by DB-IP"})}),children:u.jsx(Zie,{color:"var(--gray-11)"})})}function BUe(){const e=X(ol),t=Ee(W3),n=Ee(tee);return e?u.jsx(nl,{ref:n,variant:"ghost",color:"gray",onClick:()=>t(!0),children:u.jsx(Gie,{})}):null}function UUe(){const e=X(ol),t=Ee(W3),n=X(tee),r=X(dre),i=m.useCallback(()=>{if(!n||!r)return;const{bottom:o,left:a,width:s,height:l}=n.getBoundingClientRect();r.style.setProperty("--transform-origin",`${Math.round(a+s/2)}px ${Math.round(o-l/2)}px`),t(!1)},[r,n,t]);return e?u.jsx(nl,{variant:"ghost",color:"gray",onClick:i,children:u.jsx(B$,{color:"white"})}):null}const WUe="_logo-container_1po46_1",VUe="_hidden_1po46_30",hoe={logoContainer:WUe,hidden:VUe};function HUe(){const e=X(Gu),[t,n]=m.useState(!0);return e&&t&&n(!1),u.jsx(V,{className:Te(hoe.logoContainer,{[hoe.hidden]:!t}),children:u.jsx("img",{src:ree,alt:"fd"})})}const ZUe="_secondary-color_2x9jp_1",qUe="_ellipsis_2x9jp_5",GUe="_card_2x9jp_11",YUe="_sparkline-card_2x9jp_19",KUe="_snapshot-tile-title_2x9jp_25",XUe="_snapshot-tile-busy_2x9jp_31",JUe="_sparkline-container_2x9jp_36",QUe="_bars-card_2x9jp_54",eWe="_card-header_2x9jp_62",tWe="_title_2x9jp_68",nWe="_accounts-rate_2x9jp_74",rWe="_total_2x9jp_79",iWe="_throughput_2x9jp_84",oWe="_with-prefix_2x9jp_87",aWe="_reading-card_2x9jp_95",sWe="_read-path-container_2x9jp_96",lWe="_read-path_2x9jp_96",uWe="_decompressing-card_2x9jp_124",cWe="_decompressing-card-left_2x9jp_127",dWe="_decompressing-card-right_2x9jp_137",fWe="_inserting-card_2x9jp_146",lr={secondaryColor:ZUe,ellipsis:qUe,card:GUe,sparklineCard:YUe,snapshotTileTitle:KUe,snapshotTileBusy:XUe,sparklineContainer:JUe,barsCard:QUe,cardHeader:eWe,title:tWe,accountsRate:nWe,total:rWe,throughput:iWe,withPrefix:oWe,readingCard:aWe,readPathContainer:sWe,readPath:lWe,decompressingCard:uWe,decompressingCardLeft:cWe,decompressingCardRight:dWe,insertingCard:fWe},hWe="_busy_1fw9w_1",pWe={busy:hWe};function Xk({busy:e,className:t}){const n=e!==void 0?Math.trunc(e*100):void 0;return u.jsx(V,{gap:"1",align:"end",children:u.jsxs(q,{className:t??pWe.busy,style:{color:`color-mix(in srgb, ${vN}, ${yN} ${n}%)`},children:[n??"-","%"]})})}function mWe(e){const t=new Set;let n=null,r=performance.now();function i(){const s=()=>{const l=performance.now();if(l-r>=e){const c=l-r;r=l,t.forEach(d=>d(l,c))}n=requestAnimationFrame(s)};n=requestAnimationFrame(s)}function o(){n!=null&&cancelAnimationFrame(n),n=null}function a(s){return t.add(s),n==null&&i(),()=>{t.delete(s),t.size||o()}}return{subscribeClock:a}}const Jk=2;function poe({isLive:e,tileCount:t,liveIdlePerTile:n,queryIdlePerTile:r}){var c;const i=m.useMemo(()=>new Array(t).fill(0),[t]),o=n==null?void 0:n.map(d=>d===-1?void 0:1-d),a=r==null?void 0:r.map(d=>{const f=d.filter(p=>p!==-1);if(f.length)return 1-rt.mean(f)}).filter(d=>d!==void 0),s=i.map((d,f)=>{const p=r==null?void 0:r.map(v=>1-v[f]).filter(v=>v!==void 0&&v<=1);if(p!=null&&p.length)return rt.mean(p)}),l=(c=e?o:s)==null?void 0:c.filter(d=>d!==void 0&&d<=1);return{avgBusy:l!=null&&l.length?rt.mean(l):void 0,aggQueryBusyPerTs:a,tileCountArr:i,liveBusyPerTile:o,busy:l}}function H$(e){const t=m.useRef();return e!==void 0&&(t.current=e),e??t.current}const moe=[0,1],gWe=150,goe=3,Z$=new Map;function voe(e,t,n){var i;const r=performance.now();for(e.push({value:n,ts:r});(((i=e[1])==null?void 0:i.ts)??0)+t{if(!(t!=null&&t.length))return;if(!vWe(t))return t;const w=performance.now(),x=n/(t.length-1),S=w-n;return t.map((C,j)=>({value:C,ts:S+j*x}))},[n,t]),{pxPerTick:p,width:v,windowMs:_}=m.useMemo(()=>{let w=n,x=i;const S=x/(w/s);return d||(w+=s*goe,x+=S*goe),{pxPerTick:S,width:x,windowMs:w}},[i,n,d,s]),y=m.useRef([{value:void 0,ts:performance.now()-_},{value:void 0,ts:performance.now()}]),b=m.useRef(!1);return m.useEffect(()=>{if(b.current||!(f!=null&&f.length))return;b.current=!0;const w=performance.now(),x=f[f.length-1].ts;y.current=f.map(({ts:S,value:C})=>({value:C,ts:w-(x-S)}))},[f]),m.useEffect(()=>{a||d||voe(y.current,_,e)},[d,_,a,e]),Qu(()=>{var x;if(a||d)return;const w=(x=y.current[y.current.length-1])==null?void 0:x.ts;w!==void 0&&performance.now()-w{function w(x,S){var $,A;const C=x.length;if(C===0){c([]);return}const j=S-_,T=v/_,E=new Array(C);for(let M=0;M({value:T,ts:x-(S-j)}));w(C,x)}else{Z$.has(s)||Z$.set(s,mWe(s));const x=Z$.get(s);if(x)return x.subscribeClock(S=>{w(y.current,S)})}},[r,f,d,s,v,_]),{scaledDataPoints:l,range:moe,pxPerTick:p,chartTickMs:s,isLive:!d}}const yWe="_range-label_14i5c_1",bWe="_top_14i5c_9",_We="_bottom_14i5c_13",xWe="_g-transform_14i5c_17",u_={rangeLabel:yWe,top:bWe,bottom:_We,gTransform:xWe},wWe=400*4,kWe=80;function c_({value:e,history:t,height:n=24,background:r,windowMs:i=wWe,strokeWidth:o=Jk,updateIntervalMs:a=kWe,tickMs:s}){const[l,{width:c}]=Ss(),{scaledDataPoints:d,range:f,pxPerTick:p,chartTickMs:v,isLive:_}=yoe({value:e,history:t,windowMs:i,height:n,width:c,updateIntervalMs:a,tickMs:s});return u.jsx(boe,{svgRef:l,scaledDataPoints:d,range:f,height:n,background:r,pxPerTick:p,tickMs:v,isLive:_,strokeWidth:o})}function boe({svgRef:e,scaledDataPoints:t,range:n=moe,showRange:r=!1,height:i,background:o=Tne,pxPerTick:a,tickMs:s,isLive:l,strokeWidth:c=Jk}){const d=m.useRef(null),f=m.useRef(null),p=m.useRef(null),v=m.useMemo(()=>{const y=n[1]-n[0],b=(i-c*2)/y,w=b*(n[1]-1);return[w+b,w]},[i,n,c]),_=m.useMemo(()=>t.map(({x:y,y:b})=>`${y},${b}`).join(" "),[t]);return m.useLayoutEffect(()=>{var b,w,x;const y=d.current;if(y)if(l){p.current||(p.current=y.animate([{transform:"translate3d(0px, 0, 0)"},{transform:"translate3d(0px, 0, 0)"}],{duration:s,easing:"linear",fill:"forwards"}),p.current.cancel()),p.current.finish(),(b=f.current)==null||b.setAttribute("points",_);const S=p.current.effect;S.setKeyframes([{transform:"translate3d(0px, 0, 0)"},{transform:`translate3d(${-a}px, 0, 0)`}]),S.updateTiming({duration:s,easing:"linear",fill:"forwards"}),p.current.currentTime=0,p.current.play()}else(w=f.current)==null||w.setAttribute("points",_),(x=p.current)==null||x.cancel()},[l,_,a,s]),u.jsxs(u.Fragment,{children:[u.jsxs("svg",{ref:e,xmlns:"http://www.w3.org/2000/svg",width:"100%",height:`${i}px`,fill:"none",style:{background:o},shapeRendering:"optimizeSpeed",children:[u.jsx("g",{ref:d,className:u_.gTransform,children:u.jsx("polyline",{ref:f,stroke:"url(#paint0_linear_2971_11300)",strokeWidth:c,strokeLinecap:"butt",vectorEffect:"non-scaling-stroke",pointerEvents:"none"})}),u.jsx("defs",{children:u.jsxs("linearGradient",{id:"paint0_linear_2971_11300",x1:"59.5",y1:v[0],x2:"59.5",y2:v[1],gradientUnits:"userSpaceOnUse",children:[u.jsx("stop",{stopColor:vN}),u.jsx("stop",{offset:"1",stopColor:yN})]})})]}),r&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:Te(u_.rangeLabel,u_.top),children:[Math.round(n[1]*100),"%"]}),u.jsxs("div",{className:Te(u_.rangeLabel,u_.bottom),children:[Math.round(n[0]*100),"%"]})]})]})}const Qk=15,_oe=Qk*6+1,xoe=Qk*15+1,SWe=6e3,CWe=50;function q$({title:e,tileType:t,isComplete:n}){const r=X(Nb),i=X(qze),{avgBusy:o}=poe({isLive:!0,tileCount:r[t],liveIdlePerTile:i==null?void 0:i[t]}),a=H$(o),{scaledDataPoints:s,range:l,pxPerTick:c,chartTickMs:d,isLive:f}=yoe({value:a,windowMs:SWe,height:_oe,width:xoe,updateIntervalMs:CWe,stopShifting:n});return u.jsxs(Ey,{className:Te(lr.card,lr.sparklineCard),children:[u.jsxs(V,{justify:"between",align:"center",children:[u.jsx(q,{className:lr.snapshotTileTitle,children:e}),u.jsx(Xk,{busy:a,className:lr.snapshotTileBusy})]}),u.jsx(V,{className:lr.sparklineContainer,style:{alignSelf:"center",width:`${xoe}px`,backgroundSize:`${Qk}px ${Qk}px`},children:u.jsx(boe,{scaledDataPoints:s,range:l,showRange:!0,height:_oe,background:"transparent",tickMs:d,pxPerTick:c,isLive:f})})]})}const jWe="_bars_1d34t_1",TWe={bars:jWe},IWe=2;function G$({value:e,max:t,barWidth:n=IWe}){const r=!t||!e?0:rt.clamp(e/t,0,1);return u.jsx("div",{className:TWe.bars,style:{"--bar-width":`${n}px`,"--bar-gap":`${n*1.5}px`,"--pct":r}})}function woe(e,t,n){const r=performance.now(),i=[...e,[t,r]];for(;i.length>2&&i[0]&&i[0][1]<=r-n;)i.shift();return i}function koe(e,t=500){const[n,r]=m.useState([]);m.useEffect(()=>{e!=null&&r(o=>woe(o,e,t))},[e,t]),Qu(()=>{r(o=>{const a=performance.now(),s=o[o.length-1];return s&&s[1]{r([])},[]);return{valuePerSecond:m.useMemo(()=>{if(!(n.length<=1))return 1e3*(n[n.length-1][0]-n[0][0])/(n[n.length-1][1]-n[0][1])},[n]),reset:i}}const EWe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"}));function Y$({headerContent:e,footer:t,throughput:n,containerClassName:r,maxThroughput:i}){return u.jsxs(Ey,{className:Te(lr.card,lr.barsCard,r),children:[u.jsx(V,{justify:"between",align:"center",wrap:"wrap",gapX:"4",className:lr.cardHeader,children:e}),u.jsx(G$,{value:n??0,max:i}),t]})}function e6({value:e,unit:t}){return u.jsxs(u.Fragment,{children:[u.jsx(q,{children:e??"--"}),t&&u.jsxs(u.Fragment,{children:[" ",u.jsx(q,{className:lr.secondaryColor,children:t})]})]})}function K$({text:e}){return u.jsx(q,{className:Te(lr.title,lr.ellipsis),children:e})}function NWe({cumulativeAccounts:e}){const t=X(Gu),{valuePerSecond:n,reset:r}=koe(e,1e3);m.useEffect(()=>{r()},[t,r]);const i=m.useMemo(()=>{if(e!=null&&n==null)return"0";if(n!=null)return z$.format(n)},[n,e]);return u.jsx("div",{className:lr.accountsRate,children:u.jsx(e6,{value:i,unit:"Accounts / sec"})})}function X$({completed:e,total:t}){return u.jsxs("div",{className:lr.total,children:[u.jsx(e6,{value:e==null?void 0:e.value,unit:e==null?void 0:e.unit}),u.jsx(q,{children:" / "}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit})]})}function t6({prefix:e,throughput:t}){return u.jsxs("div",{className:Te(lr.throughput,{[lr.withPrefix]:!!e}),children:[e&&u.jsxs(q,{className:lr.secondaryColor,children:[e," "]}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit}),u.jsx(q,{className:lr.secondaryColor,children:"/sec"})]})}function $We({readPath:e}){return u.jsxs(V,{align:"center",gap:"10px",wrap:"nowrap",className:lr.readPathContainer,children:[u.jsx(EWe,{}),u.jsx(q,{className:Te(lr.readPath,lr.ellipsis),children:e})]})}function MWe({compressedCompleted:e,compressedTotal:t,readPath:n}){const r=X(Gu),{ema:i,reset:o}=Bg(e);m.useEffect(()=>{o()},[r,o]);const a=i==null?void 0:Da(i),s=e==null?void 0:Da(e),l=t==null?void 0:Da(t),c=m.useMemo(()=>u.jsx($We,{readPath:n}),[n]);return u.jsx(Y$,{containerClassName:lr.readingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(K$,{text:"Reading"}),u.jsx(X$,{completed:s,total:l}),u.jsx(t6,{throughput:a})]}),footer:c,throughput:i,maxThroughput:8e8})}function LWe({compressedCompleted:e,decompressedCompleted:t,compressedTotal:n}){const r=X(Gu),{ema:i,reset:o}=Bg(e),{ema:a,reset:s}=Bg(t);m.useEffect(()=>{o(),s()},[r,o,s]);const l=i==null?void 0:Da(i),c=a==null?void 0:Da(a),d=e==null?void 0:Da(e),f=n==null?void 0:Da(n);return u.jsx(Y$,{containerClassName:lr.decompressingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsxs(V,{flexGrow:"1",justify:"between",align:"center",className:lr.decompressingCardLeft,children:[u.jsx(K$,{text:"Decompressing"}),u.jsx(X$,{completed:d,total:f})]}),u.jsxs(V,{gapX:"30px",justify:"end",flexGrow:"1",className:lr.decompressingCardRight,children:[u.jsx(t6,{prefix:"Input",throughput:l}),u.jsx(t6,{prefix:"Output",throughput:c})]})]}),throughput:i,maxThroughput:8e8})}function RWe({decompressedThroughput:e,decompressedCompleted:t,decompressedTotal:n,cumulativeAccounts:r}){const i=e==null?void 0:Da(e),o=t==null?void 0:Da(t),a=n==null?void 0:Da(n);return u.jsx(Y$,{containerClassName:lr.insertingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(K$,{text:"Inserting"}),u.jsx(NWe,{cumulativeAccounts:r}),u.jsx(X$,{completed:o,total:a}),u.jsx(t6,{throughput:i})]}),throughput:e,maxThroughput:35e8})}const OWe="_secondary-text_1iskf_1",PWe="_phase-header-container_1iskf_5",zWe="_phase-name_1iskf_11",DWe="_no-wrap_1iskf_15",AWe="_complete-pct-container_1iskf_19",oh={secondaryText:OWe,phaseHeaderContainer:PWe,phaseName:zWe,noWrap:DWe,completePctContainer:AWe},FWe="_progress-bar_drgbz_1",BWe="_current_drgbz_14",UWe="_progressing-bar_drgbz_21",WWe="_gossip_drgbz_33",VWe="_complete_drgbz_35",HWe="_full-snapshot_drgbz_46",ZWe="_incr-snapshot_drgbz_59",qWe="_catching-up_drgbz_72",GWe="_supermajority_drgbz_85",bd={progressBar:FWe,current:BWe,progressingBar:UWe,gossip:WWe,complete:VWe,fullSnapshot:HWe,incrSnapshot:ZWe,catchingUp:qWe,supermajority:GWe},YWe={[wn.joining_gossip]:bd.gossip,[wn.loading_full_snapshot]:bd.fullSnapshot,[wn.loading_incremental_snapshot]:bd.incrSnapshot,[wn.catching_up]:bd.catchingUp,[wn.waiting_for_supermajority]:bd.supermajority,[wn.running]:""};function KWe({phaseCompleteFraction:e}){const[t,n]=m.useState(0);m.useEffect(()=>{n(rt.clamp(e,0,1))},[e]);const r=X(Gu),i=X(U3),o=X(eee);return u.jsx(V,{className:bd.progressBar,children:i.map(({phase:a,completionFraction:s})=>{if(a===wn.running)return;const l=a===r,c=`${s*100}%`;return u.jsx("div",{className:Te(YWe[a],{[bd.current]:l,[bd.complete]:o.has(a)}),style:{width:c},children:l&&u.jsx("div",{className:bd.progressingBar,style:{transform:`scaleX(${t})`}})},a)})})}const XWe={[wn.joining_gossip]:"Joining Gossip",[wn.loading_full_snapshot]:"Loading Full Snapshot",[wn.loading_incremental_snapshot]:"Loading Incremental Snapshot",[wn.catching_up]:"Catching Up",[wn.waiting_for_supermajority]:"Waiting for Supermajority",[wn.running]:"Running"};function JWe(){const e=Bie(1e3);return u.jsx(q,{children:e==null?"--":Mze(e)})}function J$({phaseCompleteFraction:e,overallCompleteFraction:t,remainingSeconds:n,showLoadingIcon:r=!1}){const i=X(Gu),[o,a]=m.useState(),s=Ua(d=>{const f=d==null?void 0:Math.max(Math.round(d),0);a(f)},1e3);m.useEffect(()=>{s(n)},[s,n]);const l=m.useMemo(()=>{if(o!=null)return Sp(fn.fromObject({seconds:o}).rescale(),{showOnlyTwoSignificantUnits:!0})},[o]),c=rt.clamp(Math.round(t*100),0,100);return i?u.jsxs(Mt,{flexShrink:"0",className:oh.phaseHeaderContainer,children:[u.jsxs(V,{justify:"between",mt:"7",mb:"2",gapX:"8px",wrap:"wrap",children:[u.jsxs("span",{className:oh.noWrap,children:[u.jsx(q,{className:oh.secondaryText,children:"Elapsed "}),u.jsx(JWe,{})]}),u.jsxs("span",{children:[u.jsxs(q,{className:oh.phaseName,children:[XWe[i],"... "]}),l&&u.jsxs("span",{className:oh.noWrap,children:[u.jsx(q,{className:oh.secondaryText,children:"Remaining "}),u.jsxs(q,{style:{display:"inline-block",minWidth:"120px"},children:["~",l]})]})]}),u.jsxs(q,{className:oh.completePctContainer,children:[u.jsx(q,{className:oh.secondaryText,children:"Complete "}),c,"%",r&&u.jsx(Iy,{size:"3",ml:"8px"})]})]}),u.jsx(KWe,{phaseCompleteFraction:e})]}):null}function Soe(e){const t=X(QQ),n=X(U3),r=X(eee);return m.useMemo(()=>t?rt.sum(n.map(i=>i===t?i.completionFraction*rt.clamp(e,0,1):r.has(i.phase)?i.completionFraction:0)):0,[r,e,t,n])}const QWe="5",Coe="26px";function eVe(e){const{loading_full_snapshot_total_bytes_compressed:t,loading_full_snapshot_read_bytes_compressed:n,loading_full_snapshot_decompress_bytes_compressed:r,loading_full_snapshot_decompress_bytes_decompressed:i,loading_full_snapshot_insert_bytes_decompressed:o,loading_full_snapshot_read_path:a,loading_full_snapshot_insert_accounts:s,loading_incremental_snapshot_total_bytes_compressed:l,loading_incremental_snapshot_read_bytes_compressed:c,loading_incremental_snapshot_decompress_bytes_compressed:d,loading_incremental_snapshot_decompress_bytes_decompressed:f,loading_incremental_snapshot_insert_bytes_decompressed:p,loading_incremental_snapshot_read_path:v,loading_incremental_snapshot_insert_accounts:_}=e,y=e.phase===wn.loading_full_snapshot||!l?{totalCompressedBytes:t,readCompressedBytes:n,readPath:a,decompressCompressedBytes:r,decompressDecompressedBytes:i,insertDecompressedBytes:o,insertAccounts:s}:{totalCompressedBytes:l,readCompressedBytes:c,readPath:v,decompressCompressedBytes:d,decompressDecompressedBytes:f,insertDecompressedBytes:p,insertAccounts:_},b=y.insertDecompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.insertDecompressedBytes*(y.decompressCompressedBytes/y.decompressDecompressedBytes):0,w=y.totalCompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.totalCompressedBytes*y.decompressDecompressedBytes/y.decompressCompressedBytes:0;return{...y,insertCompressedBytes:b,totalDecompressedBytes:w}}function tVe(){const e=X(Hl),t=(e==null?void 0:e.phase)===wn.loading_incremental_snapshot,n=Hn("(max-width: 560px)"),r=n?"wrap":"nowrap",i=n?Coe:QWe,o=e?eVe(e):void 0,{ema:a,reset:s}=Bg(o==null?void 0:o.insertDecompressedBytes);m.useEffect(()=>{s()},[e==null?void 0:e.phase,s]);const{totalCompressedBytes:l,readCompressedBytes:c,readPath:d,decompressCompressedBytes:f,decompressDecompressedBytes:p,insertDecompressedBytes:v,insertAccounts:_,insertCompressedBytes:y,totalDecompressedBytes:b}=o??{},w=a==null||b==null||v==null?void 0:Math.round((b-v)/a),x=Math.min(l&&y?y/l:0,1),S=Soe(x);if(!(!e||!o))return u.jsxs(u.Fragment,{children:[u.jsx(J$,{phaseCompleteFraction:x,overallCompleteFraction:S,remainingSeconds:w}),u.jsxs(V,{mt:"52px",direction:"column",gap:Coe,className:yd.startupContentIndentation,children:[u.jsxs(V,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(MWe,{compressedCompleted:c,compressedTotal:l,readPath:d}),u.jsx(q$,{title:"CPU Utilization",tileType:"snapld",isComplete:t&&!!c&&c===l})]}),u.jsxs(V,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(LWe,{compressedCompleted:f,decompressedCompleted:p,compressedTotal:l}),u.jsx(q$,{title:"CPU Utilization",tileType:"snapdc",isComplete:t&&!!f&&f===l})]}),u.jsxs(V,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(RWe,{decompressedThroughput:a,decompressedCompleted:v,decompressedTotal:b,cumulativeAccounts:_}),u.jsx(q$,{title:"CPU Utilization",tileType:"snapin",isComplete:t&&!!y&&y===l})]})]})]})}const nVe=!0,Hi="u-",rVe="uplot",iVe=Hi+"hz",oVe=Hi+"vt",aVe=Hi+"title",sVe=Hi+"wrap",lVe=Hi+"under",uVe=Hi+"over",cVe=Hi+"axis",Np=Hi+"off",dVe=Hi+"select",fVe=Hi+"cursor-x",hVe=Hi+"cursor-y",pVe=Hi+"cursor-pt",mVe=Hi+"legend",gVe=Hi+"live",vVe=Hi+"inline",yVe=Hi+"series",bVe=Hi+"marker",joe=Hi+"label",_Ve=Hi+"value",d_="width",f_="height",h_="top",Toe="bottom",Wg="left",Q$="right",eM="#000",Ioe=eM+"0",tM="mousemove",Eoe="mousedown",nM="mouseup",Noe="mouseenter",$oe="mouseleave",Moe="dblclick",xVe="resize",wVe="scroll",Loe="change",n6="dppxchange",rM="--",Vg=typeof window<"u",iM=Vg?document:null,Hg=Vg?window:null,kVe=Vg?navigator:null;let Fn,r6;function oM(){let e=devicePixelRatio;Fn!=e&&(Fn=e,r6&&lM(Loe,r6,oM),r6=matchMedia(`(min-resolution: ${Fn-.001}dppx) and (max-resolution: ${Fn+.001}dppx)`),$p(Loe,r6,oM),Hg.dispatchEvent(new CustomEvent(n6)))}function Cs(e,t){if(t!=null){let n=e.classList;!n.contains(t)&&n.add(t)}}function aM(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function zr(e,t,n){e.style[t]=n+"px"}function ou(e,t,n,r){let i=iM.createElement(e);return t!=null&&Cs(i,t),n==null||n.insertBefore(i,r),i}function fl(e,t){return ou("div",e,t)}const Roe=new WeakMap;function ec(e,t,n,r,i){let o="translate("+t+"px,"+n+"px)",a=Roe.get(e);o!=a&&(e.style.transform=o,Roe.set(e,o),t<0||n<0||t>r||n>i?Cs(e,Np):aM(e,Np))}const Ooe=new WeakMap;function Poe(e,t,n){let r=t+n,i=Ooe.get(e);r!=i&&(Ooe.set(e,r),e.style.background=t,e.style.borderColor=n)}const zoe=new WeakMap;function Doe(e,t,n,r){let i=t+""+n,o=zoe.get(e);i!=o&&(zoe.set(e,i),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=r?-t/2+"px":0,e.style.marginTop=r?-n/2+"px":0)}const sM={passive:!0},SVe={...sM,capture:!0};function $p(e,t,n,r){t.addEventListener(e,n,r?SVe:sM)}function lM(e,t,n,r){t.removeEventListener(e,n,sM)}Vg&&oM();function au(e,t,n,r){let i;n=n||0,r=r||t.length-1;let o=r<=2147483647;for(;r-n>1;)i=o?n+r>>1:Ts((n+r)/2),t[i]{let i=-1,o=-1;for(let a=n;a<=r;a++)if(e(t[a])){i=a;break}for(let a=r;a>=n;a--)if(e(t[a])){o=a;break}return[i,o]}}const Foe=e=>e!=null,Boe=e=>e!=null&&e>0,i6=Aoe(Foe),CVe=Aoe(Boe);function jVe(e,t,n,r=0,i=!1){let o=i?CVe:i6,a=i?Boe:Foe;[t,n]=o(e,t,n);let s=e[t],l=e[t];if(t>-1)if(r==1)s=e[t],l=e[n];else if(r==-1)s=e[n],l=e[t];else for(let c=t;c<=n;c++){let d=e[c];a(d)&&(dl&&(l=d))}return[s??yr,l??-yr]}function o6(e,t,n,r){let i=Voe(e),o=Voe(t);e==t&&(i==-1?(e*=n,t/=n):(e/=n,t*=n));let a=n==10?_d:Hoe,s=i==1?Ts:hl,l=o==1?hl:Ts,c=s(a(Zi(e))),d=l(a(Zi(t))),f=Zg(n,c),p=Zg(n,d);return n==10&&(c<0&&(f=br(f,-c)),d<0&&(p=br(p,-d))),r||n==2?(e=f*i,t=p*o):(e=Joe(e,f),t=l6(t,p)),[e,t]}function uM(e,t,n,r){let i=o6(e,t,n,r);return e==0&&(i[0]=0),t==0&&(i[1]=0),i}const cM=.1,Uoe={mode:3,pad:cM},p_={pad:0,soft:null,mode:0},TVe={min:p_,max:p_};function a6(e,t,n,r){return u6(n)?Woe(e,t,n):(p_.pad=n,p_.soft=r?0:null,p_.mode=r?3:0,Woe(e,t,TVe))}function Ln(e,t){return e??t}function IVe(e,t,n){for(t=Ln(t,0),n=Ln(n,e.length-1);t<=n;){if(e[t]!=null)return!0;t++}return!1}function Woe(e,t,n){let r=n.min,i=n.max,o=Ln(r.pad,0),a=Ln(i.pad,0),s=Ln(r.hard,-yr),l=Ln(i.hard,yr),c=Ln(r.soft,yr),d=Ln(i.soft,-yr),f=Ln(r.mode,0),p=Ln(i.mode,0),v=t-e,_=_d(v),y=pa(Zi(e),Zi(t)),b=_d(y),w=Zi(b-_);(v<1e-24||w>10)&&(v=0,(e==0||t==0)&&(v=1e-24,f==2&&c!=yr&&(o=0),p==2&&d!=-yr&&(a=0)));let x=v||y||1e3,S=_d(x),C=Zg(10,Ts(S)),j=x*(v==0?e==0?.1:1:o),T=br(Joe(e-j,C/10),24),E=e>=c&&(f==1||f==3&&T<=c||f==2&&T>=c)?c:yr,$=pa(s,T=E?E:su(E,T)),A=x*(v==0?t==0?.1:1:a),M=br(l6(t+A,C/10),24),P=t<=d&&(p==1||p==3&&M>=d||p==2&&M<=d)?d:-yr,te=su(l,M>P&&t<=P?P:pa(P,M));return $==te&&$==0&&(te=100),[$,te]}const EVe=new Intl.NumberFormat(Vg?kVe.language:"en-US"),dM=e=>EVe.format(e),js=Math,s6=js.PI,Zi=js.abs,Ts=js.floor,qi=js.round,hl=js.ceil,su=js.min,pa=js.max,Zg=js.pow,Voe=js.sign,_d=js.log10,Hoe=js.log2,NVe=(e,t=1)=>js.sinh(e)*t,fM=(e,t=1)=>js.asinh(e/t),yr=1/0;function Zoe(e){return(_d((e^e>>31)-(e>>31))|0)+1}function hM(e,t,n){return su(pa(e,t),n)}function qoe(e){return typeof e=="function"}function bn(e){return qoe(e)?e:()=>e}const $Ve=()=>{},Goe=e=>e,Yoe=(e,t)=>t,MVe=e=>null,Koe=e=>!0,Xoe=(e,t)=>e==t,LVe=/\.\d*?(?=9{6,}|0{6,})/gm,Mp=e=>{if(eae(e)||ah.has(e))return e;const t=`${e}`,n=t.match(LVe);if(n==null)return e;let r=n[0].length-1;if(t.indexOf("e-")!=-1){let[i,o]=t.split("e");return+`${Mp(i)}e${o}`}return br(e,r)};function Lp(e,t){return Mp(br(Mp(e/t))*t)}function l6(e,t){return Mp(hl(Mp(e/t))*t)}function Joe(e,t){return Mp(Ts(Mp(e/t))*t)}function br(e,t=0){if(eae(e))return e;let n=10**t,r=e*n*(1+Number.EPSILON);return qi(r)/n}const ah=new Map;function Qoe(e){return((""+e).split(".")[1]||"").length}function m_(e,t,n,r){let i=[],o=r.map(Qoe);for(let a=t;a=0?0:s)+(a>=o[c]?0:o[c]),p=e==10?d:br(d,f);i.push(p),ah.set(p,f)}}return i}const g_={},pM=[],qg=[null,null],sh=Array.isArray,eae=Number.isInteger,RVe=e=>e===void 0;function tae(e){return typeof e=="string"}function u6(e){let t=!1;if(e!=null){let n=e.constructor;t=n==null||n==Object}return t}function OVe(e){return e!=null&&typeof e=="object"}const PVe=Object.getPrototypeOf(Uint8Array),nae="__proto__";function Gg(e,t=u6){let n;if(sh(e)){let r=e.find(i=>i!=null);if(sh(r)||t(r)){n=Array(e.length);for(let i=0;io){for(i=a-1;i>=0&&e[i]==null;)e[i--]=null;for(i=a+1;ia-s)],i=r[0].length,o=new Map;for(let a=0;a"u"?e=>Promise.resolve().then(e):queueMicrotask;function WVe(e){let t=e[0],n=t.length,r=Array(n);for(let o=0;ot[o]-t[a]);let i=[];for(let o=0;o=r&&e[i]==null;)i--;if(i<=r)return!0;const o=pa(1,Ts((i-r+1)/t));for(let a=e[r],s=r+o;s<=i;s+=o){const l=e[s];if(l!=null){if(l<=a)return!1;a=l}}return!0}const rae=["January","February","March","April","May","June","July","August","September","October","November","December"],iae=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function oae(e){return e.slice(0,3)}const ZVe=iae.map(oae),qVe=rae.map(oae),GVe={MMMM:rae,MMM:qVe,WWWW:iae,WWW:ZVe};function v_(e){return(e<10?"0":"")+e}function YVe(e){return(e<10?"00":e<100?"0":"")+e}const KVe={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>v_(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>v_(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>v_(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return t==0?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>v_(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>v_(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>YVe(e.getMilliseconds())};function mM(e,t){t=t||GVe;let n=[],r=/\{([a-z]+)\}|[^{]+/gi,i;for(;i=r.exec(e);)n.push(i[0][0]=="{"?KVe[i[1]]:i[0]);return o=>{let a="";for(let s=0;se%1==0,c6=[1,2,2.5,5],QVe=m_(10,-32,0,c6),sae=m_(10,0,32,c6),eHe=sae.filter(aae),Rp=QVe.concat(sae),gM=` -`,lae="{YYYY}",uae=gM+lae,cae="{M}/{D}",y_=gM+cae,d6=y_+"/{YY}",dae="{aa}",tHe="{h}:{mm}",Yg=tHe+dae,fae=gM+Yg,hae=":{ss}",Zn=null;function pae(e){let t=e*1e3,n=t*60,r=n*60,i=r*24,o=i*30,a=i*365,s=(e==1?m_(10,0,3,c6).filter(aae):m_(10,-3,0,c6)).concat([t,t*5,t*10,t*15,t*30,n,n*5,n*10,n*15,n*30,r,r*2,r*3,r*4,r*6,r*8,r*12,i,i*2,i*3,i*4,i*5,i*6,i*7,i*8,i*9,i*10,i*15,o,o*2,o*3,o*4,o*6,a,a*2,a*5,a*10,a*25,a*50,a*100]);const l=[[a,lae,Zn,Zn,Zn,Zn,Zn,Zn,1],[i*28,"{MMM}",uae,Zn,Zn,Zn,Zn,Zn,1],[i,cae,uae,Zn,Zn,Zn,Zn,Zn,1],[r,"{h}"+dae,d6,Zn,y_,Zn,Zn,Zn,1],[n,Yg,d6,Zn,y_,Zn,Zn,Zn,1],[t,hae,d6+" "+Yg,Zn,y_+" "+Yg,Zn,fae,Zn,1],[e,hae+".{fff}",d6+" "+Yg,Zn,y_+" "+Yg,Zn,fae,Zn,1]];function c(d){return(f,p,v,_,y,b)=>{let w=[],x=y>=a,S=y>=o&&y=i?i:y,A=Ts(v)-Ts(j),M=E+A+l6(j-E,$);w.push(M);let P=d(M),te=P.getHours()+P.getMinutes()/n+P.getSeconds()/r,Z=y/r,O=f.axes[p]._space,J=b/O;for(;M=br(M+y,e==1?0:3),!(M>_);)if(Z>1){let D=Ts(br(te+Z,6))%24,Y=d(M).getHours()-D;Y>1&&(Y=-1),M-=Y*r,te=(te+Z)%24;let F=w[w.length-1];br((M-F)/y,3)*J>=.7&&w.push(M)}else w.push(M)}return w}}return[s,l,c]}const[nHe,rHe,iHe]=pae(1),[oHe,aHe,sHe]=pae(.001);m_(2,-53,53,[1]);function mae(e,t){return e.map(n=>n.map((r,i)=>i==0||i==8||r==null?r:t(i==1||n[8]==0?r:n[1]+r)))}function gae(e,t){return(n,r,i,o,a)=>{let s=t.find(_=>a>=_[0])||t[t.length-1],l,c,d,f,p,v;return r.map(_=>{let y=e(_),b=y.getFullYear(),w=y.getMonth(),x=y.getDate(),S=y.getHours(),C=y.getMinutes(),j=y.getSeconds(),T=b!=l&&s[2]||w!=c&&s[3]||x!=d&&s[4]||S!=f&&s[5]||C!=p&&s[6]||j!=v&&s[7]||s[1];return l=b,c=w,d=x,f=S,p=C,v=j,T(y)})}}function lHe(e,t){let n=mM(t);return(r,i,o,a,s)=>i.map(l=>n(e(l)))}function vM(e,t,n){return new Date(e,t,n)}function vae(e,t){return t(e)}const uHe="{YYYY}-{MM}-{DD} {h}:{mm}{aa}";function yae(e,t){return(n,r,i,o)=>o==null?rM:t(e(r))}function cHe(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null}function dHe(e,t){return e.series[t].fill(e,t)}const fHe={show:!0,live:!0,isolate:!1,mount:$Ve,markers:{show:!0,width:2,stroke:cHe,fill:dHe,dash:"solid"},idx:null,idxs:null,values:[]};function hHe(e,t){let n=e.cursor.points,r=fl(),i=n.size(e,t);zr(r,d_,i),zr(r,f_,i);let o=i/-2;zr(r,"marginLeft",o),zr(r,"marginTop",o);let a=n.width(e,t,i);return a&&zr(r,"borderWidth",a),r}function pHe(e,t){let n=e.series[t].points;return n._fill||n._stroke}function mHe(e,t){let n=e.series[t].points;return n._stroke||n._fill}function gHe(e,t){return e.series[t].points.size}const yM=[0,0];function vHe(e,t,n){return yM[0]=t,yM[1]=n,yM}function f6(e,t,n,r=!0){return i=>{i.button==0&&(!r||i.target==t)&&n(i)}}function bM(e,t,n,r=!0){return i=>{(!r||i.target==t)&&n(i)}}const yHe={show:!0,x:!0,y:!0,lock:!1,move:vHe,points:{one:!1,show:hHe,size:gHe,width:0,stroke:mHe,fill:pHe},bind:{mousedown:f6,mouseup:f6,click:f6,dblclick:f6,mousemove:bM,mouseleave:bM,mouseenter:bM},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(e,t,n,r,i)=>r-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},bae={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},_M=Ri({},bae,{filter:Yoe}),_ae=Ri({},_M,{size:10}),xae=Ri({},bae,{show:!1}),xM='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',wae="bold "+xM,kae=1.5,Sae={show:!0,scale:"x",stroke:eM,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:wae,side:2,grid:_M,ticks:_ae,border:xae,font:xM,lineGap:kae,rotate:0},bHe="Value",_He="Time",Cae={show:!0,scale:"x",auto:!1,sorted:1,min:yr,max:-yr,idxs:[]};function xHe(e,t,n,r,i){return t.map(o=>o==null?"":dM(o))}function wHe(e,t,n,r,i,o,a){let s=[],l=ah.get(i)||0;n=a?n:br(l6(n,i),l);for(let c=n;c<=r;c=br(c+i,l))s.push(Object.is(c,-0)?0:c);return s}function wM(e,t,n,r,i,o,a){const s=[],l=e.scales[e.axes[t].scale].log,c=l==10?_d:Hoe,d=Ts(c(n));i=Zg(l,d),l==10&&(i=Rp[au(i,Rp)]);let f=n,p=i*l;l==10&&(p=Rp[au(p,Rp)]);do s.push(f),f=f+i,l==10&&!ah.has(f)&&(f=br(f,ah.get(i))),f>=p&&(i=f,p=i*l,l==10&&(p=Rp[au(p,Rp)]));while(f<=r);return s}function kHe(e,t,n,r,i,o,a){let s=e.scales[e.axes[t].scale].asinh,l=r>s?wM(e,t,pa(s,n),r,i):[s],c=r>=0&&n<=0?[0]:[];return(n<-s?wM(e,t,pa(s,-r),-n,i):[s]).reverse().map(d=>-d).concat(c,l)}const jae=/./,SHe=/[12357]/,CHe=/[125]/,Tae=/1/,kM=(e,t,n,r)=>e.map((i,o)=>t==4&&i==0||o%r==0&&n.test(i.toExponential()[i<0?1:0])?i:null);function jHe(e,t,n,r,i){let o=e.axes[n],a=o.scale,s=e.scales[a],l=e.valToPos,c=o._space,d=l(10,a),f=l(9,a)-d>=c?jae:l(7,a)-d>=c?SHe:l(5,a)-d>=c?CHe:Tae;if(f==Tae){let p=Zi(l(1,a)-d);if(pi,$ae={show:!0,auto:!0,sorted:0,gaps:Nae,alpha:1,facets:[Ri({},Eae,{scale:"x"}),Ri({},Eae,{scale:"y"})]},Mae={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:Nae,alpha:1,points:{show:NHe,filter:null},values:null,min:yr,max:-yr,idxs:[],path:null,clip:null};function $He(e,t,n,r,i){return n/10}const Lae={time:nVe,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},MHe=Ri({},Lae,{time:!1,ori:1}),Rae={};function Oae(e,t){let n=Rae[e];return n||(n={key:e,plots:[],sub(r){n.plots.push(r)},unsub(r){n.plots=n.plots.filter(i=>i!=r)},pub(r,i,o,a,s,l,c){for(let d=0;d{let w=a.pxRound;const x=c.dir*(c.ori==0?1:-1),S=c.ori==0?Xg:Jg;let C,j;x==1?(C=n,j=r):(C=r,j=n);let T=w(f(s[C],c,y,v)),E=w(p(l[C],d,b,_)),$=w(f(s[j],c,y,v)),A=w(p(o==1?d.max:d.min,d,b,_)),M=new Path2D(i);return S(M,$,A),S(M,T,A),S(M,T,E),M})}function h6(e,t,n,r,i,o){let a=null;if(e.length>0){a=new Path2D;const s=t==0?g6:TM;let l=n;for(let f=0;fp[0]){let v=p[0]-l;v>0&&s(a,l,r,v,r+o),l=p[1]}}let c=n+i-l,d=10;c>0&&s(a,l,r-d/2,c,r+o+d)}return a}function RHe(e,t,n){let r=e[e.length-1];r&&r[0]==t?r[1]=n:e.push([t,n])}function jM(e,t,n,r,i,o,a){let s=[],l=e.length;for(let c=i==1?n:r;c>=n&&c<=r;c+=i)if(t[c]===null){let d=c,f=c;if(i==1)for(;++c<=r&&t[c]===null;)f=c;else for(;--c>=n&&t[c]===null;)f=c;let p=o(e[d]),v=f==d?p:o(e[f]),_=d-i;p=a<=0&&_>=0&&_=0&&y>=0&&y=p&&s.push([p,v])}return s}function Pae(e){return e==0?Goe:e==1?qi:t=>Lp(t,e)}function zae(e){let t=e==0?p6:m6,n=e==0?(i,o,a,s,l,c)=>{i.arcTo(o,a,s,l,c)}:(i,o,a,s,l,c)=>{i.arcTo(a,o,l,s,c)},r=e==0?(i,o,a,s,l)=>{i.rect(o,a,s,l)}:(i,o,a,s,l)=>{i.rect(a,o,l,s)};return(i,o,a,s,l,c=0,d=0)=>{c==0&&d==0?r(i,o,a,s,l):(c=su(c,s/2,l/2),d=su(d,s/2,l/2),t(i,o+c,a),n(i,o+s,a,o+s,a+l,c),n(i,o+s,a+l,o,a+l,d),n(i,o,a+l,o,a,d),n(i,o,a,o+s,a,c),i.closePath())}}const p6=(e,t,n)=>{e.moveTo(t,n)},m6=(e,t,n)=>{e.moveTo(n,t)},Xg=(e,t,n)=>{e.lineTo(t,n)},Jg=(e,t,n)=>{e.lineTo(n,t)},g6=zae(0),TM=zae(1),Dae=(e,t,n,r,i,o)=>{e.arc(t,n,r,i,o)},Aae=(e,t,n,r,i,o)=>{e.arc(n,t,r,i,o)},Fae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(t,n,r,i,o,a)},Bae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(n,t,i,r,a,o)};function Uae(e){return(t,n,r,i,o)=>Op(t,n,(a,s,l,c,d,f,p,v,_,y,b)=>{let{pxRound:w,points:x}=a,S,C;c.ori==0?(S=p6,C=Dae):(S=m6,C=Aae);const j=br(x.width*Fn,3);let T=(x.size-x.width)/2*Fn,E=br(T*2,3),$=new Path2D,A=new Path2D,{left:M,top:P,width:te,height:Z}=t.bbox;g6(A,M-E,P-E,te+E*2,Z+E*2);const O=J=>{if(l[J]!=null){let D=w(f(s[J],c,y,v)),Y=w(p(l[J],d,b,_));S($,D+T,Y),C($,D,Y,T,0,s6*2)}};if(o)o.forEach(O);else for(let J=r;J<=i;J++)O(J);return{stroke:j>0?$:null,fill:$,clip:A,flags:Kg|SM}})}function Wae(e){return(t,n,r,i,o,a)=>{r!=i&&(o!=r&&a!=r&&e(t,n,r),o!=i&&a!=i&&e(t,n,i),e(t,n,a))}}const OHe=Wae(Xg),PHe=Wae(Jg);function Vae(e){const t=Ln(e==null?void 0:e.alignGaps,0);return(n,r,i,o)=>Op(n,r,(a,s,l,c,d,f,p,v,_,y,b)=>{[i,o]=i6(l,i,o);let w=a.pxRound,x=te=>w(f(te,c,y,v)),S=te=>w(p(te,d,b,_)),C,j;c.ori==0?(C=Xg,j=OHe):(C=Jg,j=PHe);const T=c.dir*(c.ori==0?1:-1),E={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},$=E.stroke;let A=!1;if(o-i>=y*4){let te=U=>n.posToVal(U,c.key,!0),Z=null,O=null,J,D,Y,F=x(s[T==1?i:o]),H=x(s[i]),ee=x(s[o]),ce=te(T==1?H+1:ee-1);for(let U=T==1?i:o;U>=i&&U<=o;U+=T){let ae=s[U],je=(T==1?aece)?F:x(ae),me=l[U];je==F?me!=null?(D=me,Z==null?(C($,je,S(D)),J=Z=O=D):DO&&(O=D)):me===null&&(A=!0):(Z!=null&&j($,F,S(Z),S(O),S(J),S(D)),me!=null?(D=me,C($,je,S(D)),Z=O=J=D):(Z=O=null,me===null&&(A=!0)),F=je,ce=te(F+T))}Z!=null&&Z!=O&&Y!=F&&j($,F,S(Z),S(O),S(J),S(D))}else for(let te=T==1?i:o;te>=i&&te<=o;te+=T){let Z=l[te];Z===null?A=!0:Z!=null&&C($,x(s[te]),S(Z))}let[M,P]=CM(n,r);if(a.fill!=null||M!=0){let te=E.fill=new Path2D($),Z=a.fillTo(n,r,a.min,a.max,M),O=S(Z),J=x(s[i]),D=x(s[o]);T==-1&&([D,J]=[J,D]),C(te,D,O),C(te,J,O)}if(!a.spanGaps){let te=[];A&&te.push(...jM(s,l,i,o,T,x,t)),E.gaps=te=a.gaps(n,r,i,o,te),E.clip=h6(te,c.ori,v,_,y,b)}return P!=0&&(E.band=P==2?[xd(n,r,i,o,$,-1),xd(n,r,i,o,$,1)]:xd(n,r,i,o,$,P)),E})}function zHe(e){const t=Ln(e.align,1),n=Ln(e.ascDesc,!1),r=Ln(e.alignGaps,0),i=Ln(e.extend,!1);return(o,a,s,l)=>Op(o,a,(c,d,f,p,v,_,y,b,w,x,S)=>{[s,l]=i6(f,s,l);let C=c.pxRound,{left:j,width:T}=o.bbox,E=ee=>C(_(ee,p,x,b)),$=ee=>C(y(ee,v,S,w)),A=p.ori==0?Xg:Jg;const M={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},P=M.stroke,te=p.dir*(p.ori==0?1:-1);let Z=$(f[te==1?s:l]),O=E(d[te==1?s:l]),J=O,D=O;i&&t==-1&&(D=j,A(P,D,Z)),A(P,O,Z);for(let ee=te==1?s:l;ee>=s&&ee<=l;ee+=te){let ce=f[ee];if(ce==null)continue;let U=E(d[ee]),ae=$(ce);t==1?A(P,U,Z):A(P,J,ae),A(P,U,ae),Z=ae,J=U}let Y=J;i&&t==1&&(Y=j+T,A(P,Y,Z));let[F,H]=CM(o,a);if(c.fill!=null||F!=0){let ee=M.fill=new Path2D(P),ce=c.fillTo(o,a,c.min,c.max,F),U=$(ce);A(ee,Y,U),A(ee,D,U)}if(!c.spanGaps){let ee=[];ee.push(...jM(d,f,s,l,te,E,r));let ce=c.width*Fn/2,U=n||t==1?ce:-ce,ae=n||t==-1?-ce:ce;ee.forEach(je=>{je[0]+=U,je[1]+=ae}),M.gaps=ee=c.gaps(o,a,s,l,ee),M.clip=h6(ee,p.ori,b,w,x,S)}return H!=0&&(M.band=H==2?[xd(o,a,s,l,P,-1),xd(o,a,s,l,P,1)]:xd(o,a,s,l,P,H)),M})}function Hae(e,t,n,r,i,o,a=yr){if(e.length>1){let s=null;for(let l=0,c=1/0;l{}),{fill:f,stroke:p}=c;return(v,_,y,b)=>Op(v,_,(w,x,S,C,j,T,E,$,A,M,P)=>{let te=w.pxRound,Z=n,O=r*Fn,J=s*Fn,D=l*Fn,Y,F;C.ori==0?[Y,F]=o(v,_):[F,Y]=o(v,_);const H=C.dir*(C.ori==0?1:-1);let ee=C.ori==0?g6:TM,ce=C.ori==0?d:(De,Dt,pn,Yn,fr,Kn,wr)=>{d(De,Dt,pn,fr,Yn,wr,Kn)},U=Ln(v.bands,pM).find(De=>De.series[0]==_),ae=U!=null?U.dir:0,je=w.fillTo(v,_,w.min,w.max,ae),me=te(E(je,j,P,A)),ke,he,ue,re=M,ge=te(w.width*Fn),$e=!1,pe=null,ye=null,Se=null,Ce=null;f!=null&&(ge==0||p!=null)&&($e=!0,pe=f.values(v,_,y,b),ye=new Map,new Set(pe).forEach(De=>{De!=null&&ye.set(De,new Path2D)}),ge>0&&(Se=p.values(v,_,y,b),Ce=new Map,new Set(Se).forEach(De=>{De!=null&&Ce.set(De,new Path2D)})));let{x0:Be,size:Ge}=c;if(Be!=null&&Ge!=null){Z=1,x=Be.values(v,_,y,b),Be.unit==2&&(x=x.map(Dt=>v.posToVal($+Dt*M,C.key,!0)));let De=Ge.values(v,_,y,b);Ge.unit==2?he=De[0]*M:he=T(De[0],C,M,$)-T(0,C,M,$),re=Hae(x,S,T,C,M,$,re),ue=re-he+O}else re=Hae(x,S,T,C,M,$,re),ue=re*a+O,he=re-ue;ue<1&&(ue=0),ge>=he/2&&(ge=0),ue<5&&(te=Goe);let xt=ue>0,St=re-ue-(xt?ge:0);he=te(hM(St,D,J)),ke=(Z==0?he/2:Z==H?0:he)-Z*H*((Z==0?O/2:0)+(xt?ge/2:0));const ut={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},ct=$e?null:new Path2D;let bt=null;if(U!=null)bt=v.data[U.series[1]];else{let{y0:De,y1:Dt}=c;De!=null&&Dt!=null&&(S=Dt.values(v,_,y,b),bt=De.values(v,_,y,b))}let Qe=Y*he,Ke=F*he;for(let De=H==1?y:b;De>=y&&De<=b;De+=H){let Dt=S[De];if(Dt==null)continue;if(bt!=null){let tr=bt[De]??0;if(Dt-tr==0)continue;me=E(tr,j,P,A)}let pn=C.distr!=2||c!=null?x[De]:De,Yn=T(pn,C,M,$),fr=E(Ln(Dt,je),j,P,A),Kn=te(Yn-ke),wr=te(pa(fr,me)),Pn=te(su(fr,me)),$r=wr-Pn;if(Dt!=null){let tr=Dt<0?Ke:Qe,kr=Dt<0?Qe:Ke;$e?(ge>0&&Se[De]!=null&&ee(Ce.get(Se[De]),Kn,Pn+Ts(ge/2),he,pa(0,$r-ge),tr,kr),pe[De]!=null&&ee(ye.get(pe[De]),Kn,Pn+Ts(ge/2),he,pa(0,$r-ge),tr,kr)):ee(ct,Kn,Pn+Ts(ge/2),he,pa(0,$r-ge),tr,kr),ce(v,_,De,Kn-ge/2,Pn,he+ge,$r)}}return ge>0?ut.stroke=$e?Ce:ct:$e||(ut._fill=w.width==0?w._fill:w._stroke??w._fill,ut.width=0),ut.fill=$e?ye:ct,ut})}function AHe(e,t){const n=Ln(t==null?void 0:t.alignGaps,0);return(r,i,o,a)=>Op(r,i,(s,l,c,d,f,p,v,_,y,b,w)=>{[o,a]=i6(c,o,a);let x=s.pxRound,S=Y=>x(p(Y,d,b,_)),C=Y=>x(v(Y,f,w,y)),j,T,E;d.ori==0?(j=p6,E=Xg,T=Fae):(j=m6,E=Jg,T=Bae);const $=d.dir*(d.ori==0?1:-1);let A=S(l[$==1?o:a]),M=A,P=[],te=[];for(let Y=$==1?o:a;Y>=o&&Y<=a;Y+=$)if(c[Y]!=null){let F=l[Y],H=S(F);P.push(M=H),te.push(C(c[Y]))}const Z={stroke:e(P,te,j,E,T,x),fill:null,clip:null,band:null,gaps:null,flags:Kg},O=Z.stroke;let[J,D]=CM(r,i);if(s.fill!=null||J!=0){let Y=Z.fill=new Path2D(O),F=s.fillTo(r,i,s.min,s.max,J),H=C(F);E(Y,M,H),E(Y,A,H)}if(!s.spanGaps){let Y=[];Y.push(...jM(l,c,o,a,$,S,n)),Z.gaps=Y=s.gaps(r,i,o,a,Y),Z.clip=h6(Y,d.ori,_,y,b,w)}return D!=0&&(Z.band=D==2?[xd(r,i,o,a,O,-1),xd(r,i,o,a,O,1)]:xd(r,i,o,a,O,D)),Z})}function FHe(e){return AHe(BHe,e)}function BHe(e,t,n,r,i,o){const a=e.length;if(a<2)return null;const s=new Path2D;if(n(s,e[0],t[0]),a==2)r(s,e[1],t[1]);else{let l=Array(a),c=Array(a-1),d=Array(a-1),f=Array(a-1);for(let p=0;p0!=c[p]>0?l[p]=0:(l[p]=3*(f[p-1]+f[p])/((2*f[p]+f[p-1])/c[p-1]+(f[p]+2*f[p-1])/c[p]),isFinite(l[p])||(l[p]=0));l[a-1]=c[a-2];for(let p=0;p{jn.pxRatio=Fn}));const UHe=Vae(),WHe=Uae();function qae(e,t,n,r){return(r?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map((i,o)=>EM(i,o,t,n))}function VHe(e,t){return e.map((n,r)=>r==0?{}:Ri({},t,n))}function EM(e,t,n,r){return Ri({},t==0?n:r,e)}function Gae(e,t,n){return t==null?qg:[t,n]}const HHe=Gae;function ZHe(e,t,n){return t==null?qg:a6(t,n,cM,!0)}function Yae(e,t,n,r){return t==null?qg:o6(t,n,e.scales[r].log,!1)}const qHe=Yae;function Kae(e,t,n,r){return t==null?qg:uM(t,n,e.scales[r].log,!1)}const GHe=Kae;function YHe(e,t,n,r,i){let o=pa(Zoe(e),Zoe(t)),a=t-e,s=au(i/r*a,n);do{let l=n[s],c=r*l/a;if(c>=i&&o+(l<5?ah.get(l):0)<=17)return[l,c]}while(++s(t=qi((n=+i)*Fn))+"px"),[e,t,n]}function KHe(e){e.show&&[e.font,e.labelFont].forEach(t=>{let n=br(t[2]*Fn,1);t[0]=t[0].replace(/[0-9.]+px/,n+"px"),t[1]=n})}function jn(e,t,n){const r={mode:Ln(e.mode,1)},i=r.mode;function o(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?1-de:de)}function a(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?de:1-de)}function s(N,z,K,Q){return z.ori==0?o(N,z,K,Q):a(N,z,K,Q)}r.valToPosH=o,r.valToPosV=a;let l=!1;r.status=0;const c=r.root=fl(rVe);if(e.id!=null&&(c.id=e.id),Cs(c,e.class),e.title){let N=fl(aVe,c);N.textContent=e.title}const d=ou("canvas"),f=r.ctx=d.getContext("2d"),p=fl(sVe,c);$p("click",p,N=>{N.target===_&&(pr!=Wd||Cr!=Vd)&&Ai.click(r,N)},!0);const v=r.under=fl(lVe,p);p.appendChild(d);const _=r.over=fl(uVe,p);e=Gg(e);const y=+Ln(e.pxAlign,1),b=Pae(y);(e.plugins||[]).forEach(N=>{N.opts&&(e=N.opts(r,e)||e)});const w=e.ms||.001,x=r.series=i==1?qae(e.series||[],Cae,Mae,!1):VHe(e.series||[null],$ae),S=r.axes=qae(e.axes||[],Sae,Iae,!0),C=r.scales={},j=r.bands=e.bands||[];j.forEach(N=>{N.fill=bn(N.fill||null),N.dir=Ln(N.dir,-1)});const T=i==2?x[1].facets[0].scale:x[0].scale,E={axes:Kt,series:z1},$=(e.drawOrder||["axes","series"]).map(N=>E[N]);function A(N){const z=N.distr==3?K=>_d(K>0?K:N.clamp(r,K,N.min,N.max,N.key)):N.distr==4?K=>fM(K,N.asinh):N.distr==100?K=>N.fwd(K):K=>K;return K=>{let Q=z(K),{_min:de,_max:xe}=N,Me=xe-de;return(Q-de)/Me}}function M(N){let z=C[N];if(z==null){let K=(e.scales||g_)[N]||g_;if(K.from!=null){M(K.from);let Q=Ri({},C[K.from],K,{key:N});Q.valToPct=A(Q),C[N]=Q}else{z=C[N]=Ri({},N==T?Lae:MHe,K),z.key=N;let Q=z.time,de=z.range,xe=sh(de);if((N!=T||i==2&&!Q)&&(xe&&(de[0]==null||de[1]==null)&&(de={min:de[0]==null?Uoe:{mode:1,hard:de[0],soft:de[0]},max:de[1]==null?Uoe:{mode:1,hard:de[1],soft:de[1]}},xe=!1),!xe&&u6(de))){let Me=de;de=(Fe,Ve,et)=>Ve==null?qg:a6(Ve,et,Me)}z.range=bn(de||(Q?HHe:N==T?z.distr==3?qHe:z.distr==4?GHe:Gae:z.distr==3?Yae:z.distr==4?Kae:ZHe)),z.auto=bn(xe?!1:z.auto),z.clamp=bn(z.clamp||$He),z._min=z._max=null,z.valToPct=A(z)}}}M("x"),M("y"),i==1&&x.forEach(N=>{M(N.scale)}),S.forEach(N=>{M(N.scale)});for(let N in e.scales)M(N);const P=C[T],te=P.distr;let Z,O;P.ori==0?(Cs(c,iVe),Z=o,O=a):(Cs(c,oVe),Z=a,O=o);const J={};for(let N in C){let z=C[N];(z.min!=null||z.max!=null)&&(J[N]={min:z.min,max:z.max},z.min=z.max=null)}const D=e.tzDate||(N=>new Date(qi(N/w))),Y=e.fmtDate||mM,F=w==1?iHe(D):sHe(D),H=gae(D,mae(w==1?rHe:aHe,Y)),ee=yae(D,vae(uHe,Y)),ce=[],U=r.legend=Ri({},fHe,e.legend),ae=r.cursor=Ri({},yHe,{drag:{y:i==2}},e.cursor),je=U.show,me=ae.show,ke=U.markers;U.idxs=ce,ke.width=bn(ke.width),ke.dash=bn(ke.dash),ke.stroke=bn(ke.stroke),ke.fill=bn(ke.fill);let he,ue,re,ge=[],$e=[],pe,ye=!1,Se={};if(U.live){const N=x[1]?x[1].values:null;ye=N!=null,pe=ye?N(r,1,0):{_:0};for(let z in pe)Se[z]=rM}if(je)if(he=ou("table",mVe,c),re=ou("tbody",null,he),U.mount(r,he),ye){ue=ou("thead",null,he,re);let N=ou("tr",null,ue);ou("th",null,N);for(var Ce in pe)ou("th",joe,N).textContent=Ce}else Cs(he,vVe),U.live&&Cs(he,gVe);const Be={show:!0},Ge={show:!1};function xt(N,z){if(z==0&&(ye||!U.live||i==2))return qg;let K=[],Q=ou("tr",yVe,re,re.childNodes[z]);Cs(Q,N.class),N.show||Cs(Q,Np);let de=ou("th",null,Q);if(ke.show){let Fe=fl(bVe,de);if(z>0){let Ve=ke.width(r,z);Ve&&(Fe.style.border=Ve+"px "+ke.dash(r,z)+" "+ke.stroke(r,z)),Fe.style.background=ke.fill(r,z)}}let xe=fl(joe,de);N.label instanceof HTMLElement?xe.appendChild(N.label):xe.textContent=N.label,z>0&&(ke.show||(xe.style.color=N.width>0?ke.stroke(r,z):ke.fill(r,z)),ut("click",de,Fe=>{if(ae._lock)return;pi(Fe);let Ve=x.indexOf(N);if((Fe.ctrlKey||Fe.metaKey)!=U.isolate){let et=x.some((ot,st)=>st>0&&st!=Ve&&ot.show);x.forEach((ot,st)=>{st>0&&Ja(st,et?st==Ve?Be:Ge:Be,!0,Sn.setSeries)})}else Ja(Ve,{show:!N.show},!0,Sn.setSeries)},!1),$o&&ut(Noe,de,Fe=>{ae._lock||(pi(Fe),Ja(x.indexOf(N),Cc,!0,Sn.setSeries))},!1));for(var Me in pe){let Fe=ou("td",_Ve,Q);Fe.textContent="--",K.push(Fe)}return[Q,K]}const St=new Map;function ut(N,z,K,Q=!0){const de=St.get(z)||{},xe=ae.bind[N](r,z,K,Q);xe&&($p(N,z,de[N]=xe),St.set(z,de))}function ct(N,z,K){const Q=St.get(z)||{};for(let de in Q)(N==null||de==N)&&(lM(de,z,Q[de]),delete Q[de]);N==null&&St.delete(z)}let bt=0,Qe=0,Ke=0,De=0,Dt=0,pn=0,Yn=Dt,fr=pn,Kn=Ke,wr=De,Pn=0,$r=0,tr=0,kr=0;r.bbox={};let ni=!1,uo=!1,Ki=!1,No=!1,Os=!1,zn=!1;function co(N,z,K){(K||N!=r.width||z!=r.height)&&_a(N,z),In(!1),Ki=!0,uo=!0,Bd()}function _a(N,z){r.width=bt=Ke=N,r.height=Qe=De=z,Dt=pn=0,qa(),kl();let K=r.bbox;Pn=K.left=Lp(Dt*Fn,.5),$r=K.top=Lp(pn*Fn,.5),tr=K.width=Lp(Ke*Fn,.5),kr=K.height=Lp(De*Fn,.5)}const yc=3;function bc(){let N=!1,z=0;for(;!N;){z++;let K=ze(z),Q=vt(z);N=z==yc||K&&Q,N||(_a(r.width,r.height),uo=!0)}}function _c({width:N,height:z}){co(N,z)}r.setSize=_c;function qa(){let N=!1,z=!1,K=!1,Q=!1;S.forEach((de,xe)=>{if(de.show&&de._show){let{side:Me,_size:Fe}=de,Ve=Me%2,et=de.label!=null?de.labelSize:0,ot=Fe+et;ot>0&&(Ve?(Ke-=ot,Me==3?(Dt+=ot,Q=!0):K=!0):(De-=ot,Me==0?(pn+=ot,N=!0):z=!0))}}),ri[0]=N,ri[1]=K,ri[2]=z,ri[3]=Q,Ke-=mi[1]+mi[3],Dt+=mi[3],De-=mi[2]+mi[0],pn+=mi[0]}function kl(){let N=Dt+Ke,z=pn+De,K=Dt,Q=pn;function de(xe,Me){switch(xe){case 1:return N+=Me,N-Me;case 2:return z+=Me,z-Me;case 3:return K-=Me,K+Me;case 0:return Q-=Me,Q+Me}}S.forEach((xe,Me)=>{if(xe.show&&xe._show){let Fe=xe.side;xe._pos=de(Fe,xe._size),xe.label!=null&&(xe._lpos=de(Fe,xe.labelSize))}})}if(ae.dataIdx==null){let N=ae.hover,z=N.skip=new Set(N.skip??[]);z.add(void 0);let K=N.prox=bn(N.prox),Q=N.bias??(N.bias=0);ae.dataIdx=(de,xe,Me,Fe)=>{if(xe==0)return Me;let Ve=Me,et=K(de,xe,Me,Fe)??yr,ot=et>=0&&et0;)z.has(Bt[mt])||(an=mt);if(Q==0||Q==1)for(mt=Me;Tt==null&&mt++et&&(Ve=null);return Ve}}const pi=N=>{ae.event=N};ae.idxs=ce,ae._lock=!1;let Bn=ae.points;Bn.show=bn(Bn.show),Bn.size=bn(Bn.size),Bn.stroke=bn(Bn.stroke),Bn.width=bn(Bn.width),Bn.fill=bn(Bn.fill);const Mr=r.focus=Ri({},e.focus||{alpha:.3},ae.focus),$o=Mr.prox>=0,fo=$o&&Bn.one;let Lr=[],ho=[],xa=[];function it(N,z){let K=Bn.show(r,z);if(K instanceof HTMLElement)return Cs(K,pVe),Cs(K,N.class),ec(K,-10,-10,Ke,De),_.insertBefore(K,Lr[z]),K}function Yt(N,z){if(i==1||z>0){let K=i==1&&C[N.scale].time,Q=N.value;N.value=K?tae(Q)?yae(D,vae(Q,Y)):Q||ee:Q||IHe,N.label=N.label||(K?_He:bHe)}if(fo||z>0){N.width=N.width==null?1:N.width,N.paths=N.paths||UHe||MVe,N.fillTo=bn(N.fillTo||LHe),N.pxAlign=+Ln(N.pxAlign,y),N.pxRound=Pae(N.pxAlign),N.stroke=bn(N.stroke||null),N.fill=bn(N.fill||null),N._stroke=N._fill=N._paths=N._focus=null;let K=EHe(pa(1,N.width),1),Q=N.points=Ri({},{size:K,width:pa(1,K*.2),stroke:N.stroke,space:K*2,paths:WHe,_stroke:null,_fill:null},N.points);Q.show=bn(Q.show),Q.filter=bn(Q.filter),Q.fill=bn(Q.fill),Q.stroke=bn(Q.stroke),Q.paths=bn(Q.paths),Q.pxAlign=N.pxAlign}if(je){let K=xt(N,z);ge.splice(z,0,K[0]),$e.splice(z,0,K[1]),U.values.push(null)}if(me){ce.splice(z,0,null);let K=null;fo?z==0&&(K=it(N,z)):z>0&&(K=it(N,z)),Lr.splice(z,0,K),ho.splice(z,0,0),xa.splice(z,0,0)}Ni("addSeries",z)}function nr(N,z){z=z??x.length,N=i==1?EM(N,z,Cae,Mae):EM(N,z,{},$ae),x.splice(z,0,N),Yt(x[z],z)}r.addSeries=nr;function ht(N){if(x.splice(N,1),je){U.values.splice(N,1),$e.splice(N,1);let z=ge.splice(N,1)[0];ct(null,z.firstChild),z.remove()}me&&(ce.splice(N,1),Lr.splice(N,1)[0].remove(),ho.splice(N,1),xa.splice(N,1)),Ni("delSeries",N)}r.delSeries=ht;const ri=[!1,!1,!1,!1];function Ga(N,z){if(N._show=N.show,N.show){let K=N.side%2,Q=C[N.scale];Q==null&&(N.scale=K?x[1].scale:T,Q=C[N.scale]);let de=Q.time;N.size=bn(N.size),N.space=bn(N.space),N.rotate=bn(N.rotate),sh(N.incrs)&&N.incrs.forEach(Me=>{!ah.has(Me)&&ah.set(Me,Qoe(Me))}),N.incrs=bn(N.incrs||(Q.distr==2?eHe:de?w==1?nHe:oHe:Rp)),N.splits=bn(N.splits||(de&&Q.distr==1?F:Q.distr==3?wM:Q.distr==4?kHe:wHe)),N.stroke=bn(N.stroke),N.grid.stroke=bn(N.grid.stroke),N.ticks.stroke=bn(N.ticks.stroke),N.border.stroke=bn(N.border.stroke);let xe=N.values;N.values=sh(xe)&&!sh(xe[0])?bn(xe):de?sh(xe)?gae(D,mae(xe,Y)):tae(xe)?lHe(D,xe):xe||H:xe||xHe,N.filter=bn(N.filter||(Q.distr>=3&&Q.log==10?jHe:Q.distr==3&&Q.log==2?THe:Yoe)),N.font=Xae(N.font),N.labelFont=Xae(N.labelFont),N._size=N.size(r,null,z,0),N._space=N._rotate=N._incrs=N._found=N._splits=N._values=null,N._size>0&&(ri[z]=!0,N._el=fl(cVe,p))}}function Ya(N,z,K,Q){let[de,xe,Me,Fe]=K,Ve=z%2,et=0;return Ve==0&&(Fe||xe)&&(et=z==0&&!de||z==2&&!Me?qi(Sae.size/3):0),Ve==1&&(de||Me)&&(et=z==1&&!xe||z==3&&!Fe?qi(Iae.size/2):0),et}const Ko=r.padding=(e.padding||[Ya,Ya,Ya,Ya]).map(N=>bn(Ln(N,Ya))),mi=r._padding=Ko.map((N,z)=>N(r,z,ri,0));let Un,hr=null,Sr=null;const Ka=i==1?x[0].idxs:null;let po=null,mo=!1;function Wr(N,z){if(t=N??[],r.data=r._data=t,i==2){Un=0;for(let K=1;K=0,zn=!0,Bd()}}r.setData=Wr;function wa(){mo=!0;let N,z;i==1&&(Un>0?(hr=Ka[0]=0,Sr=Ka[1]=Un-1,N=t[0][hr],z=t[0][Sr],te==2?(N=hr,z=Sr):N==z&&(te==3?[N,z]=o6(N,N,P.log,!1):te==4?[N,z]=uM(N,N,P.log,!1):P.time?z=N+qi(86400/w):[N,z]=a6(N,z,cM,!0))):(hr=Ka[0]=N=null,Sr=Ka[1]=z=null)),Mo(T,N,z)}let ji,gi,Ps,go,Xo,Pd,zd,bu,Xi,ii;function xc(N,z,K,Q,de,xe){N??(N=Ioe),K??(K=pM),Q??(Q="butt"),de??(de=Ioe),xe??(xe="round"),N!=ji&&(f.strokeStyle=ji=N),de!=gi&&(f.fillStyle=gi=de),z!=Ps&&(f.lineWidth=Ps=z),xe!=Xo&&(f.lineJoin=Xo=xe),Q!=Pd&&(f.lineCap=Pd=Q),K!=go&&f.setLineDash(go=K)}function _u(N,z,K,Q){z!=gi&&(f.fillStyle=gi=z),N!=zd&&(f.font=zd=N),K!=bu&&(f.textAlign=bu=K),Q!=Xi&&(f.textBaseline=Xi=Q)}function wc(N,z,K,Q,de=0){if(Q.length>0&&N.auto(r,mo)&&(z==null||z.min==null)){let xe=Ln(hr,0),Me=Ln(Sr,Q.length-1),Fe=K.min==null?jVe(Q,xe,Me,de,N.distr==3):[K.min,K.max];N.min=su(N.min,K.min=Fe[0]),N.max=pa(N.max,K.max=Fe[1])}}const kc={min:null,max:null};function Sl(){for(let Q in C){let de=C[Q];J[Q]==null&&(de.min==null||J[T]!=null&&de.auto(r,mo))&&(J[Q]=kc)}for(let Q in C){let de=C[Q];J[Q]==null&&de.from!=null&&J[de.from]!=null&&(J[Q]=kc)}J[T]!=null&&In(!0);let N={};for(let Q in J){let de=J[Q];if(de!=null){let xe=N[Q]=Gg(C[Q],OVe);if(de.min!=null)Ri(xe,de);else if(Q!=T||i==2)if(Un==0&&xe.from==null){let Me=xe.range(r,null,null,Q);xe.min=Me[0],xe.max=Me[1]}else xe.min=yr,xe.max=-yr}}if(Un>0){x.forEach((Q,de)=>{if(i==1){let xe=Q.scale,Me=J[xe];if(Me==null)return;let Fe=N[xe];if(de==0){let Ve=Fe.range(r,Fe.min,Fe.max,xe);Fe.min=Ve[0],Fe.max=Ve[1],hr=au(Fe.min,t[0]),Sr=au(Fe.max,t[0]),Sr-hr>1&&(t[0][hr]Fe.max&&Sr--),Q.min=po[hr],Q.max=po[Sr]}else Q.show&&Q.auto&&wc(Fe,Me,Q,t[de],Q.sorted);Q.idxs[0]=hr,Q.idxs[1]=Sr}else if(de>0&&Q.show&&Q.auto){let[xe,Me]=Q.facets,Fe=xe.scale,Ve=Me.scale,[et,ot]=t[de],st=N[Fe],Ot=N[Ve];st!=null&&wc(st,J[Fe],xe,et,xe.sorted),Ot!=null&&wc(Ot,J[Ve],Me,ot,Me.sorted),Q.min=Me.min,Q.max=Me.max}});for(let Q in N){let de=N[Q],xe=J[Q];if(de.from==null&&(xe==null||xe.min==null)){let Me=de.range(r,de.min==yr?null:de.min,de.max==-yr?null:de.max,Q);de.min=Me[0],de.max=Me[1]}}}for(let Q in N){let de=N[Q];if(de.from!=null){let xe=N[de.from];if(xe.min==null)de.min=de.max=null;else{let Me=de.range(r,xe.min,xe.max,Q);de.min=Me[0],de.max=Me[1]}}}let z={},K=!1;for(let Q in N){let de=N[Q],xe=C[Q];if(xe.min!=de.min||xe.max!=de.max){xe.min=de.min,xe.max=de.max;let Me=xe.distr;xe._min=Me==3?_d(xe.min):Me==4?fM(xe.min,xe.asinh):Me==100?xe.fwd(xe.min):xe.min,xe._max=Me==3?_d(xe.max):Me==4?fM(xe.max,xe.asinh):Me==100?xe.fwd(xe.max):xe.max,z[Q]=K=!0}}if(K){x.forEach((Q,de)=>{i==2?de>0&&z.y&&(Q._paths=null):z[Q.scale]&&(Q._paths=null)});for(let Q in z)Ki=!0,Ni("setScale",Q);me&&ae.left>=0&&(No=zn=!0)}for(let Q in J)J[Q]=null}function Xa(N){let z=hM(hr-1,0,Un-1),K=hM(Sr+1,0,Un-1);for(;N[z]==null&&z>0;)z--;for(;N[K]==null&&K0){let N=x.some(z=>z._focus)&&ii!=Mr.alpha;N&&(f.globalAlpha=ii=Mr.alpha),x.forEach((z,K)=>{if(K>0&&z.show&&(Dd(K,!1),Dd(K,!0),z._paths==null)){let Q=ii;ii!=z.alpha&&(f.globalAlpha=ii=z.alpha);let de=i==2?[0,t[K][0].length-1]:Xa(t[K]);z._paths=z.paths(r,K,de[0],de[1]),ii!=Q&&(f.globalAlpha=ii=Q)}}),x.forEach((z,K)=>{if(K>0&&z.show){let Q=ii;ii!=z.alpha&&(f.globalAlpha=ii=z.alpha),z._paths!=null&&Sc(K,!1);{let de=z._paths!=null?z._paths.gaps:null,xe=z.points.show(r,K,hr,Sr,de),Me=z.points.filter(r,K,xe,de);(xe||Me)&&(z.points._paths=z.points.paths(r,K,hr,Sr,Me),Sc(K,!0))}ii!=Q&&(f.globalAlpha=ii=Q),Ni("drawSeries",K)}}),N&&(f.globalAlpha=ii=1)}}function Dd(N,z){let K=z?x[N].points:x[N];K._stroke=K.stroke(r,N),K._fill=K.fill(r,N)}function Sc(N,z){let K=z?x[N].points:x[N],{stroke:Q,fill:de,clip:xe,flags:Me,_stroke:Fe=K._stroke,_fill:Ve=K._fill,_width:et=K.width}=K._paths;et=br(et*Fn,3);let ot=null,st=et%2/2;z&&Ve==null&&(Ve=et>0?"#fff":Fe);let Ot=K.pxAlign==1&&st>0;if(Ot&&f.translate(st,st),!z){let hn=Pn-et/2,Bt=$r-et/2,an=tr+et,Tt=kr+et;ot=new Path2D,ot.rect(hn,Bt,an,Tt)}z?Fd(Fe,et,K.dash,K.cap,Ve,Q,de,Me,xe):Ad(N,Fe,et,K.dash,K.cap,Ve,Q,de,Me,ot,xe),Ot&&f.translate(-st,-st)}function Ad(N,z,K,Q,de,xe,Me,Fe,Ve,et,ot){let st=!1;Ve!=0&&j.forEach((Ot,hn)=>{if(Ot.series[0]==N){let Bt=x[Ot.series[1]],an=t[Ot.series[1]],Tt=(Bt._paths||g_).band;sh(Tt)&&(Tt=Ot.dir==1?Tt[0]:Tt[1]);let mt,mr=null;Bt.show&&Tt&&IVe(an,hr,Sr)?(mr=Ot.fill(r,hn)||xe,mt=Bt._paths.clip):Tt=null,Fd(z,K,Q,de,mr,Me,Fe,Ve,et,ot,mt,Tt),st=!0}}),st||Fd(z,K,Q,de,xe,Me,Fe,Ve,et,ot)}const Fm=Kg|SM;function Fd(N,z,K,Q,de,xe,Me,Fe,Ve,et,ot,st){xc(N,z,K,Q,de),(Ve||et||st)&&(f.save(),Ve&&f.clip(Ve),et&&f.clip(et)),st?(Fe&Fm)==Fm?(f.clip(st),ot&&f.clip(ot),G(de,Me),R(N,xe,z)):Fe&SM?(G(de,Me),f.clip(st),R(N,xe,z)):Fe&Kg&&(f.save(),f.clip(st),ot&&f.clip(ot),G(de,Me),f.restore(),R(N,xe,z)):(G(de,Me),R(N,xe,z)),(Ve||et||st)&&f.restore()}function R(N,z,K){K>0&&(z instanceof Map?z.forEach((Q,de)=>{f.strokeStyle=ji=de,f.stroke(Q)}):z!=null&&N&&f.stroke(z))}function G(N,z){z instanceof Map?z.forEach((K,Q)=>{f.fillStyle=gi=Q,f.fill(K)}):z!=null&&N&&f.fill(z)}function ie(N,z,K,Q){let de=S[N],xe;if(Q<=0)xe=[0,0];else{let Me=de._space=de.space(r,N,z,K,Q),Fe=de._incrs=de.incrs(r,N,z,K,Q,Me);xe=YHe(z,K,Fe,Q,Me)}return de._found=xe}function Ie(N,z,K,Q,de,xe,Me,Fe,Ve,et){let ot=Me%2/2;y==1&&f.translate(ot,ot),xc(Fe,Me,Ve,et,Fe),f.beginPath();let st,Ot,hn,Bt,an=de+(Q==0||Q==3?-xe:xe);K==0?(Ot=de,Bt=an):(st=de,hn=an);for(let Tt=0;Tt{if(!K.show)return;let de=C[K.scale];if(de.min==null){K._show&&(z=!1,K._show=!1,In(!1));return}else K._show||(z=!1,K._show=!0,In(!1));let xe=K.side,Me=xe%2,{min:Fe,max:Ve}=de,[et,ot]=ie(Q,Fe,Ve,Me==0?Ke:De);if(ot==0)return;let st=de.distr==2,Ot=K._splits=K.splits(r,Q,Fe,Ve,et,ot,st),hn=de.distr==2?Ot.map(mt=>po[mt]):Ot,Bt=de.distr==2?po[Ot[1]]-po[Ot[0]]:et,an=K._values=K.values(r,K.filter(r,hn,Q,ot,Bt),Q,ot,Bt);K._rotate=xe==2?K.rotate(r,an,Q,ot):0;let Tt=K._size;K._size=hl(K.size(r,an,Q,N)),Tt!=null&&K._size!=Tt&&(z=!1)}),z}function vt(N){let z=!0;return Ko.forEach((K,Q)=>{let de=K(r,Q,ri,N);de!=mi[Q]&&(z=!1),mi[Q]=de}),z}function Kt(){for(let N=0;Npo[ar]):hn,an=ot.distr==2?po[hn[1]]-po[hn[0]]:Ve,Tt=z.ticks,mt=z.border,mr=Tt.show?Tt.size:0,Vr=qi(mr*Fn),$i=qi((z.alignTo==2?z._size-mr-z.gap:z.gap)*Fn),_n=z._rotate*-s6/180,le=b(z._pos*Fn),Ne=(Vr+$i)*Fe,we=le+Ne;xe=Q==0?we:0,de=Q==1?we:0;let Je=z.font[0],_t=z.align==1?Wg:z.align==2?Q$:_n>0?Wg:_n<0?Q$:Q==0?"center":K==3?Q$:Wg,Gt=_n||Q==1?"middle":K==2?h_:Toe;_u(Je,Me,_t,Gt);let En=z.font[1]*z.lineGap,tn=hn.map(ar=>b(s(ar,ot,st,Ot))),Qo=z._values;for(let ar=0;ar{K>0&&(z._paths=null,N&&(i==1?(z.min=null,z.max=null):z.facets.forEach(Q=>{Q.min=null,Q.max=null})))})}let Di=!1,Ti=!1,Ji=[];function pC(){Ti=!1;for(let N=0;N0&&queueMicrotask(pC)}r.batch=jx;function Tx(){if(ni&&(Sl(),ni=!1),Ki&&(bc(),Ki=!1),uo){if(zr(v,Wg,Dt),zr(v,h_,pn),zr(v,d_,Ke),zr(v,f_,De),zr(_,Wg,Dt),zr(_,h_,pn),zr(_,d_,Ke),zr(_,f_,De),zr(p,d_,bt),zr(p,f_,Qe),d.width=qi(bt*Fn),d.height=qi(Qe*Fn),S.forEach(({_el:N,_show:z,_size:K,_pos:Q,side:de})=>{if(N!=null)if(z){let xe=de===3||de===0?K:0,Me=de%2==1;zr(N,Me?"left":"top",Q-xe),zr(N,Me?"width":"height",K),zr(N,Me?"top":"left",Me?pn:Dt),zr(N,Me?"height":"width",Me?De:Ke),aM(N,Np)}else Cs(N,Np)}),ji=gi=Ps=Xo=Pd=zd=bu=Xi=go=null,ii=1,jc(!0),Dt!=Yn||pn!=fr||Ke!=Kn||De!=wr){In(!1);let N=Ke/Kn,z=De/wr;if(me&&!No&&ae.left>=0){ae.left*=N,ae.top*=z,xu&&ec(xu,qi(ae.left),0,Ke,De),Ud&&ec(Ud,0,qi(ae.top),Ke,De);for(let K=0;K=0&&ir.width>0){ir.left*=N,ir.width*=N,ir.top*=z,ir.height*=z;for(let K in Z1)zr(Hd,K,ir[K])}Yn=Dt,fr=pn,Kn=Ke,wr=De}Ni("setSize"),uo=!1}bt>0&&Qe>0&&(f.clearRect(0,0,d.width,d.height),Ni("drawClear"),$.forEach(N=>N()),Ni("draw")),ir.show&&Os&&(oi(ir),Os=!1),me&&No&&(jl(null,!0,!1),No=!1),U.show&&U.live&&zn&&(or(),zn=!1),l||(l=!0,r.status=1,Ni("ready")),mo=!1,Di=!1}r.redraw=(N,z)=>{Ki=z||!1,N!==!1?Mo(T,P.min,P.max):Bd()};function D1(N,z){let K=C[N];if(K.from==null){if(Un==0){let Q=K.range(r,z.min,z.max,N);z.min=Q[0],z.max=Q[1]}if(z.min>z.max){let Q=z.min;z.min=z.max,z.max=Q}if(Un>1&&z.min!=null&&z.max!=null&&z.max-z.min<1e-16)return;N==T&&K.distr==2&&Un>0&&(z.min=au(z.min,t[0]),z.max=au(z.max,t[0]),z.min==z.max&&z.max++),J[N]=z,ni=!0,Bd()}}r.setScale=D1;let A1,F1,xu,Ud,Ix,Ex,Wd,Vd,rr,Xn,pr,Cr,wu=!1;const Ai=ae.drag;let Ii=Ai.x,Ei=Ai.y;me&&(ae.x&&(A1=fl(fVe,_)),ae.y&&(F1=fl(hVe,_)),P.ori==0?(xu=A1,Ud=F1):(xu=F1,Ud=A1),pr=ae.left,Cr=ae.top);const ir=r.select=Ri({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),Hd=ir.show?fl(dVe,ir.over?_:v):null;function oi(N,z){if(ir.show){for(let K in N)ir[K]=N[K],K in Z1&&zr(Hd,K,N[K]);z!==!1&&Ni("setSelect")}}r.setSelect=oi;function B1(N){if(x[N].show)je&&aM(ge[N],Np);else if(je&&Cs(ge[N],Np),me){let z=fo?Lr[0]:Lr[N];z!=null&&ec(z,-10,-10,Ke,De)}}function Mo(N,z,K){D1(N,{min:z,max:K})}function Ja(N,z,K,Q){z.focus!=null&&Jo(N),z.show!=null&&x.forEach((de,xe)=>{xe>0&&(N==xe||N==null)&&(de.show=z.show,B1(xe),i==2?(Mo(de.facets[0].scale,null,null),Mo(de.facets[1].scale,null,null)):Mo(de.scale,null,null),Bd())}),K!==!1&&Ni("setSeries",N,z),Q&&qd("setSeries",r,N,z)}r.setSeries=Ja;function U1(N,z){Ri(j[N],z)}function ka(N,z){N.fill=bn(N.fill||null),N.dir=Ln(N.dir,-1),z=z??j.length,j.splice(z,0,N)}function Nx(N){N==null?j.length=0:j.splice(N,1)}r.addBand=ka,r.setBand=U1,r.delBand=Nx;function $x(N,z){x[N].alpha=z,me&&Lr[N]!=null&&(Lr[N].style.opacity=z),je&&ge[N]&&(ge[N].style.opacity=z)}let zs,Cl,ku;const Cc={focus:!0};function Jo(N){if(N!=ku){let z=N==null,K=Mr.alpha!=1;x.forEach((Q,de)=>{if(i==1||de>0){let xe=z||de==0||de==N;Q._focus=z?null:xe,K&&$x(de,xe?1:Mr.alpha)}}),ku=N,K&&Bd()}}je&&$o&&ut($oe,he,N=>{ae._lock||(pi(N),ku!=null&&Ja(null,Cc,!0,Sn.setSeries))});function Ds(N,z,K){let Q=C[z];K&&(N=N/Fn-(Q.ori==1?pn:Dt));let de=Ke;Q.ori==1&&(de=De,N=de-N),Q.dir==-1&&(N=de-N);let xe=Q._min,Me=Q._max,Fe=N/de,Ve=xe+(Me-xe)*Fe,et=Q.distr;return et==3?Zg(10,Ve):et==4?NVe(Ve,Q.asinh):et==100?Q.bwd(Ve):Ve}function Sa(N,z){let K=Ds(N,T,z);return au(K,t[0],hr,Sr)}r.valToIdx=N=>au(N,t[0]),r.posToIdx=Sa,r.posToVal=Ds,r.valToPos=(N,z,K)=>C[z].ori==0?o(N,C[z],K?tr:Ke,K?Pn:0):a(N,C[z],K?kr:De,K?$r:0),r.setCursor=(N,z,K)=>{pr=N.left,Cr=N.top,jl(null,z,K)};function Mx(N,z){zr(Hd,Wg,ir.left=N),zr(Hd,d_,ir.width=z)}function W1(N,z){zr(Hd,h_,ir.top=N),zr(Hd,f_,ir.height=z)}let Ca=P.ori==0?Mx:W1,Su=P.ori==1?Mx:W1;function V1(){if(je&&U.live)for(let N=i==2?1:0;N{ce[Q]=K}):RVe(N.idx)||ce.fill(N.idx),U.idx=ce[0]),je&&U.live){for(let K=0;K0||i==1&&!ye)&&Cu(K,ce[K]);V1()}zn=!1,z!==!1&&Ni("setLegend")}r.setLegend=or;function Cu(N,z){let K=x[N],Q=N==0&&te==2?po:t[N],de;ye?de=K.values(r,N,z)??Se:(de=K.value(r,z==null?null:Q[z],N,z),de=de==null?Se:{_:de}),U.values[N]=de}function jl(N,z,K){rr=pr,Xn=Cr,[pr,Cr]=ae.move(r,pr,Cr),ae.left=pr,ae.top=Cr,me&&(xu&&ec(xu,qi(pr),0,Ke,De),Ud&&ec(Ud,0,qi(Cr),Ke,De));let Q,de=hr>Sr;zs=yr,Cl=null;let xe=P.ori==0?Ke:De,Me=P.ori==1?Ke:De;if(pr<0||Un==0||de){Q=ae.idx=null;for(let Fe=0;Fe0&&mr.show){let Ne=_n==null?-10:_n==Q?et:Z(i==1?t[0][_n]:t[mt][0][_n],P,xe,0),we=le==null?-10:O(le,i==1?C[mr.scale]:C[mr.facets[1].scale],Me,0);if($o&&le!=null){let Je=P.ori==1?pr:Cr,_t=Zi(Mr.dist(r,mt,_n,we,Je));if(_t=0?1:-1,Qo=En>=0?1:-1;Qo==tn&&(Qo==1?Gt==1?le>=En:le<=En:Gt==1?le<=En:le>=En)&&(zs=_t,Cl=mt)}else zs=_t,Cl=mt}}if(zn||fo){let Je,_t;P.ori==0?(Je=Ne,_t=we):(Je=we,_t=Ne);let Gt,En,tn,Qo,As,ar,Qi=!0,Ec=Bn.bbox;if(Ec!=null){Qi=!1;let ai=Ec(r,mt);tn=ai.left,Qo=ai.top,Gt=ai.width,En=ai.height}else tn=Je,Qo=_t,Gt=En=Bn.size(r,mt);if(ar=Bn.fill(r,mt),As=Bn.stroke(r,mt),fo)mt==Cl&&zs<=Mr.prox&&(ot=tn,st=Qo,Ot=Gt,hn=En,Bt=Qi,an=ar,Tt=As);else{let ai=Lr[mt];ai!=null&&(ho[mt]=tn,xa[mt]=Qo,Doe(ai,Gt,En,Qi),Poe(ai,ar,As),ec(ai,hl(tn),hl(Qo),Ke,De))}}}}if(fo){let mt=Mr.prox,mr=ku==null?zs<=mt:zs>mt||Cl!=ku;if(zn||mr){let Vr=Lr[0];Vr!=null&&(ho[0]=ot,xa[0]=st,Doe(Vr,Ot,hn,Bt),Poe(Vr,an,Tt),ec(Vr,hl(ot),hl(st),Ke,De))}}}if(ir.show&&wu)if(N!=null){let[Fe,Ve]=Sn.scales,[et,ot]=Sn.match,[st,Ot]=N.cursor.sync.scales,hn=N.cursor.drag;if(Ii=hn._x,Ei=hn._y,Ii||Ei){let{left:Bt,top:an,width:Tt,height:mt}=N.select,mr=N.scales[st].ori,Vr=N.posToVal,$i,_n,le,Ne,we,Je=Fe!=null&&et(Fe,st),_t=Ve!=null&&ot(Ve,Ot);Je&&Ii?(mr==0?($i=Bt,_n=Tt):($i=an,_n=mt),le=C[Fe],Ne=Z(Vr($i,st),le,xe,0),we=Z(Vr($i+_n,st),le,xe,0),Ca(su(Ne,we),Zi(we-Ne))):Ca(0,xe),_t&&Ei?(mr==1?($i=Bt,_n=Tt):($i=an,_n=mt),le=C[Ve],Ne=O(Vr($i,Ot),le,Me,0),we=O(Vr($i+_n,Ot),le,Me,0),Su(su(Ne,we),Zi(we-Ne))):Su(0,Me)}else Bm()}else{let Fe=Zi(rr-Ix),Ve=Zi(Xn-Ex);if(P.ori==1){let Ot=Fe;Fe=Ve,Ve=Ot}Ii=Ai.x&&Fe>=Ai.dist,Ei=Ai.y&&Ve>=Ai.dist;let et=Ai.uni;et!=null?Ii&&Ei&&(Ii=Fe>=et,Ei=Ve>=et,!Ii&&!Ei&&(Ve>Fe?Ei=!0:Ii=!0)):Ai.x&&Ai.y&&(Ii||Ei)&&(Ii=Ei=!0);let ot,st;Ii&&(P.ori==0?(ot=Wd,st=pr):(ot=Vd,st=Cr),Ca(su(ot,st),Zi(st-ot)),Ei||Su(0,Me)),Ei&&(P.ori==1?(ot=Wd,st=pr):(ot=Vd,st=Cr),Su(su(ot,st),Zi(st-ot)),Ii||Ca(0,xe)),!Ii&&!Ei&&(Ca(0,0),Su(0,0))}if(Ai._x=Ii,Ai._y=Ei,N==null){if(K){if(Wm!=null){let[Fe,Ve]=Sn.scales;Sn.values[0]=Fe!=null?Ds(P.ori==0?pr:Cr,Fe):null,Sn.values[1]=Ve!=null?Ds(P.ori==1?pr:Cr,Ve):null}qd(tM,r,pr,Cr,Ke,De,Q)}if($o){let Fe=K&&Sn.setSeries,Ve=Mr.prox;ku==null?zs<=Ve&&Ja(Cl,Cc,!0,Fe):zs>Ve?Ja(null,Cc,!0,Fe):Cl!=ku&&Ja(Cl,Cc,!0,Fe)}}zn&&(U.idx=Q,or()),z!==!1&&Ni("setCursor")}let ju=null;Object.defineProperty(r,"rect",{get(){return ju==null&&jc(!1),ju}});function jc(N=!1){N?ju=null:(ju=_.getBoundingClientRect(),Ni("syncRect",ju))}function Lx(N,z,K,Q,de,xe,Me){ae._lock||wu&&N!=null&&N.movementX==0&&N.movementY==0||(H1(N,z,K,Q,de,xe,Me,!1,N!=null),N!=null?jl(null,!0,!0):jl(z,!0,!1))}function H1(N,z,K,Q,de,xe,Me,Fe,Ve){if(ju==null&&jc(!1),pi(N),N!=null)K=N.clientX-ju.left,Q=N.clientY-ju.top;else{if(K<0||Q<0){pr=-10,Cr=-10;return}let[et,ot]=Sn.scales,st=z.cursor.sync,[Ot,hn]=st.values,[Bt,an]=st.scales,[Tt,mt]=Sn.match,mr=z.axes[0].side%2==1,Vr=P.ori==0?Ke:De,$i=P.ori==1?Ke:De,_n=mr?xe:de,le=mr?de:xe,Ne=mr?Q:K,we=mr?K:Q;if(Bt!=null?K=Tt(et,Bt)?s(Ot,C[et],Vr,0):-10:K=Vr*(Ne/_n),an!=null?Q=mt(ot,an)?s(hn,C[ot],$i,0):-10:Q=$i*(we/le),P.ori==1){let Je=K;K=Q,Q=Je}}Ve&&(z==null||z.cursor.event.type==tM)&&((K<=1||K>=Ke-1)&&(K=Lp(K,Ke)),(Q<=1||Q>=De-1)&&(Q=Lp(Q,De))),Fe?(Ix=K,Ex=Q,[Wd,Vd]=ae.move(r,K,Q)):(pr=K,Cr=Q)}const Z1={width:0,height:0,left:0,top:0};function Bm(){oi(Z1,!1)}let kh,Tc,Rx,q1;function G1(N,z,K,Q,de,xe,Me){wu=!0,Ii=Ei=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,xe,Me,!0,!1),N!=null&&(ut(nM,iM,Um,!1),qd(Eoe,r,Wd,Vd,Ke,De,null));let{left:Fe,top:Ve,width:et,height:ot}=ir;kh=Fe,Tc=Ve,Rx=et,q1=ot}function Um(N,z,K,Q,de,xe,Me){wu=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,xe,Me,!1,!0);let{left:Fe,top:Ve,width:et,height:ot}=ir,st=et>0||ot>0,Ot=kh!=Fe||Tc!=Ve||Rx!=et||q1!=ot;if(st&&Ot&&oi(ir),Ai.setScale&&st&&Ot){let hn=Fe,Bt=et,an=Ve,Tt=ot;if(P.ori==1&&(hn=Ve,Bt=ot,an=Fe,Tt=et),Ii&&Mo(T,Ds(hn,T),Ds(hn+Bt,T)),Ei)for(let mt in C){let mr=C[mt];mt!=T&&mr.from==null&&mr.min!=yr&&Mo(mt,Ds(an+Tt,mt),Ds(an,mt))}Bm()}else ae.lock&&(ae._lock=!ae._lock,jl(z,!0,N!=null));N!=null&&(ct(nM,iM),qd(nM,r,pr,Cr,Ke,De,null))}function Y1(N,z,K,Q,de,xe,Me){if(ae._lock)return;pi(N);let Fe=wu;if(wu){let Ve=!0,et=!0,ot=10,st,Ot;P.ori==0?(st=Ii,Ot=Ei):(st=Ei,Ot=Ii),st&&Ot&&(Ve=pr<=ot||pr>=Ke-ot,et=Cr<=ot||Cr>=De-ot),st&&Ve&&(pr=pr{let de=Sn.match[2];K=de(r,z,K),K!=-1&&Ja(K,Q,!0,!1)},me&&(ut(Eoe,_,G1),ut(tM,_,Lx),ut(Noe,_,N=>{pi(N),jc(!1)}),ut($oe,_,Y1),ut(Moe,_,K1),IM.add(r),r.syncRect=jc);const Zd=r.hooks=e.hooks||{};function Ni(N,z,K){Ti?Ji.push([N,z,K]):N in Zd&&Zd[N].forEach(Q=>{Q.call(null,r,z,K)})}(e.plugins||[]).forEach(N=>{for(let z in N.hooks)Zd[z]=(Zd[z]||[]).concat(N.hooks[z])});const X1=(N,z,K)=>K,Sn=Ri({key:null,setSeries:!1,filters:{pub:Koe,sub:Koe},scales:[T,x[1]?x[1].scale:null],match:[Xoe,Xoe,X1],values:[null,null]},ae.sync);Sn.match.length==2&&Sn.match.push(X1),ae.sync=Sn;const Wm=Sn.key,Ic=Oae(Wm);function qd(N,z,K,Q,de,xe,Me){Sn.filters.pub(N,z,K,Q,de,xe,Me)&&Ic.pub(N,z,K,Q,de,xe,Me)}Ic.sub(r);function Px(N,z,K,Q,de,xe,Me){Sn.filters.sub(N,z,K,Q,de,xe,Me)&&Tu[N](null,z,K,Q,de,xe,Me)}r.pub=Px;function mC(){Ic.unsub(r),IM.delete(r),St.clear(),lM(n6,Hg,Ox),c.remove(),he==null||he.remove(),Ni("destroy")}r.destroy=mC;function J1(){Ni("init",e,t),Wr(t||e.data,!1),J[T]?D1(T,J[T]):wa(),Os=ir.show&&(ir.width>0||ir.height>0),No=zn=!0,co(e.width,e.height)}return x.forEach(Yt),S.forEach(Ga),n?n instanceof HTMLElement?(n.appendChild(c),J1()):n(r,J1):J1(),r}jn.assign=Ri,jn.fmtNum=dM,jn.rangeNum=a6,jn.rangeLog=o6,jn.rangeAsinh=uM,jn.orient=Op,jn.pxRatio=Fn,jn.join=BVe,jn.fmtDate=mM,jn.tzDate=JVe,jn.sync=Oae;{jn.addGap=RHe,jn.clipGaps=h6;let e=jn.paths={points:Uae};e.linear=Vae,e.stepped=zHe,e.bars=DHe,e.spline=FHe}Object.is||Object.defineProperty(Object,"is",{value:(e,t)=>e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t});const XHe=(e,t)=>{const{width:n,height:r,...i}=e,{width:o,height:a,...s}=t;let l="keep";if((r!==a||n!==o)&&(l="update"),Object.keys(i).length!==Object.keys(s).length)return"create";for(const c of Object.keys(i))if(!Object.is(i[c],s[c])){l="create";break}return l},JHe=(e,t)=>e.length!==t.length?!1:e.every((n,r)=>{const i=t[r];if(n.length!==i.length)return!1;if(Array.isArray(n))return n.every((o,a)=>o===i[a])});function v6(e,t,n,r,i,o){return e>r?(t=i,n=o):to&&(n=o,t=o-e),[t,n]}const Jae=e=>e._size??0,Qae=fe({}),y6=fe(null,(e,t,n,r)=>{const{chartId:i,isMatchingChartId:o}=r||{},a=e(Qae);if(i&&a[i])n(a[i],i);else for(const[s,l]of Object.entries(a))o&&!o(s)||n(l,s)}),QHe="_uplot_1swaw_1",eZe={uplot:QHe};function Pp({id:e,options:t,data:n,target:r,onDelete:i,onCreate:o,resetScales:a=!0,className:s}){var S,C;const l=m.useRef(null),c=m.useRef(null),d=m.useRef(t),f=m.useRef(r),p=m.useRef(n),v=m.useRef(o),_=m.useRef(i),y=Ee(Qae);m.useEffect(()=>{v.current=o,_.current=i});const b=m.useCallback(j=>{var T;j&&((T=_.current)==null||T.call(_,j),j.destroy(),l.current=null,y(E=>{const $={...E};return delete $[e],$}))},[e,y]),w=m.useCallback(()=>{var T;const j=new jn(d.current,p.current,f.current||c.current);l.current=j,y(E=>({...E,[e]:j})),(T=v.current)==null||T.call(v,j)},[e,y]);m.useEffect(()=>(w(),()=>{b(l.current)}),[w,b]),m.useEffect(()=>{if(d.current!==t){const j=XHe(d.current,t);d.current=t,!l.current||j==="create"?(b(l.current),w()):j==="update"&&l.current.setSize({width:t.width,height:t.height})}},[t,w,b]),m.useEffect(()=>{p.current!==n&&(l.current?JHe(p.current,n)||(a?l.current.setData(n,!0):(l.current.setData(n,!1),l.current.redraw())):(p.current=n,w()),p.current=n)},[n,a,w]),m.useEffect(()=>(f.current!==r&&(f.current=r,w()),()=>b(l.current)),[r,w,b]);const x=Ua(()=>{requestAnimationFrame(()=>{var j;return(j=l.current)==null?void 0:j.setSize({width:d.current.width,height:d.current.height})})},500,{leading:!0,trailing:!0});return(t.height!==((S=l.current)==null?void 0:S.height)||t.width!==((C=l.current)==null?void 0:C.width))&&x(),r?null:u.jsx("div",{id:e,ref:c,className:Te(eZe.uplot,s)})}const NM=fe(null),zp=fe(e=>{const t=e(nee);return t==null?void 0:t+1}),tZe=fe(e=>{const t=e(zp),n=e(ese);return t!=null&&!!n.size}),[ese,nZe,tse,b_,rZe]=function(){const e=Co(new Set),t=fe(),n=fe();return[fe(r=>r(e)),fe(null,(r,i,o)=>{r(ol)&&i(e,a=>{o.forEach(s=>{a.add(s),i(t,l=>l?Math.min(l,s):s),i(n,l=>l?Math.max(l,s):s)})})}),fe(r=>r(t)),fe(r=>r(n)),fe(null,(r,i)=>{i(t,void 0),i(n,void 0),i(e,new Set)})]}(),[iZe,oZe,aZe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{t(ol)&&n(e,i=>{r.forEach(o=>{i.add(o)})})}),fe(null,(t,n)=>{n(e,new Set)})]}();function nse(e,t,n,r){if(!n)return 0;const i=Math.ceil((e-t+1)/n);return Math.min(i-1,r)}function $M(e,t){return t==null?!1:e<=t}function MM(e,t){return t.has(e)}function LM(e,t){return t.has(e)}function b6(e,t,n){for(let r=t;r>=e;r--)if(n(r))return!0;return!1}function sZe(e,t,n,r,i,o,a){return o?tne:i?ene:b6(e,t,s=>!$M(s,n)&&!MM(s,r)&&!LM(s,a))?nne:b6(e,t,s=>!$M(s,n)&&MM(s,r))?ane:b6(e,t,s=>!$M(s,n)&&LM(s,a))?one:b6(e,t,s=>!MM(s,r)&&!LM(s,a))?ine:rne}const lZe=ca(),rse=4,uZe=rse;function cZe(e,t){return{hooks:{drawSeries:[n=>{const r=e.current.totalSlotsEstimate;if(r==null||!t.current)return;const i=n.ctx;i.save();const o=n.bbox.top,a=n.bbox.height,s=rse*window.devicePixelRatio,l=uZe*window.devicePixelRatio,c=s/2,d=Math.trunc((n.bbox.width+l)/(s+l)),f=r/d,{startSlot:p,repairSlots:v,latestReplaySlot:_,firstTurbineSlot:y,latestTurbineSlot:b,turbineSlots:w}=t.current,x=nse(b,p,f,d-1),S=nse(y,p,f,d-1),C=lZe.get(NM);C==null||C.style.setProperty("--turbine-start-x",`${RM(S,s,l)/window.devicePixelRatio}px`),C==null||C.style.setProperty("--turbine-head-x",`${RM(x,s,l)/window.devicePixelRatio}px`);const j=new Map;for(let T=0;T<=x;T++){const E=T*f,$=p+Math.trunc(E),A=(T+1)*f,M=Math.min(b,p+Math.ceil(A)-1),P=RM(T,s,l),te=sZe($,M,_,v,T===S,T===x,w),Z=j.get(te)??[];Z.push(P),j.set(te,Z)}for(const[T,E]of j.entries()){i.fillStyle=T,i.beginPath();for(const $ of E)i.roundRect($,o,s,a,c);i.fill()}i.restore()}]}}}function RM(e,t,n){return e*(t+n)}const dZe=[[0],[null]];function fZe({catchingUpRatesRef:e}){const[t,n]=Ss(),r=X(zp),i=X(iZe),o=X(ese),a=X(tse),s=X(b_),l=X(fp),c=m.useRef(),d=m.useRef(),f=m.useMemo(()=>({width:0,height:0,scales:{x:{time:!1}},axes:[{show:!1},{show:!1}],series:[{},{points:{show:!1}}],cursor:{x:!1,y:!1},legend:{show:!1},plugins:[cZe(e,c)]}),[c,e]);f.width=n.width,f.height=n.height;const p=m.useCallback(y=>{d.current=y},[]),v=m.useCallback(y=>{var b;c.current=y,(b=d.current)==null||b.redraw()},[]),_=Ua(v,100,{trailing:!0});if(m.useEffect(()=>{r==null||!o.size||a==null||s==null||_({startSlot:r,repairSlots:i,turbineSlots:o,firstTurbineSlot:a,latestTurbineSlot:s,latestReplaySlot:l})},[a,l,s,i,r,_,o]),!(r==null||!o.size||a==null||s==null))return u.jsx(Mt,{height:"77px",ref:t,children:u.jsx(Pp,{id:"catching-up-slot-bars",options:f,data:dZe,onCreate:p})})}const hZe="_card_1yavk_1",pZe="_secondary-color_1yavk_13",mZe="_bold_1yavk_17",gZe="_ellipsis_1yavk_21",vZe="_labels-row_1yavk_27",yZe="_labels-left_1yavk_39",bZe="_turbine-label_1yavk_46",_Ze="_start_1yavk_54",xZe="_head_1yavk_58",wZe="_footer-row_1yavk_64",kZe="_left-footer_1yavk_76",SZe="_footer-title_1yavk_83",CZe="_footer-value_1yavk_88",jZe="_bars-stats-container_1yavk_95",TZe="_bars-stats-row_1yavk_99",IZe="_replayed_1yavk_104",EZe="_speed_1yavk_111",NZe="_to-replay_1yavk_118",ur={card:hZe,secondaryColor:pZe,bold:mZe,ellipsis:gZe,labelsRow:vZe,labelsLeft:yZe,turbineLabel:bZe,start:_Ze,head:xZe,footerRow:wZe,leftFooter:kZe,footerTitle:SZe,footerValue:CZe,barsStatsContainer:jZe,barsStatsRow:TZe,replayed:IZe,speed:EZe,toReplay:NZe};function $Ze(){const e=X(zp);if(e)return u.jsxs(V,{className:ur.footerRow,children:[u.jsxs(V,{className:ur.leftFooter,children:[u.jsxs(q,{className:Te(ur.footerValue,ur.ellipsis),children:[u.jsx(q,{className:ur.secondaryColor,children:"Slot "}),e]}),u.jsx(q,{className:Te(ur.footerTitle,ur.ellipsis),children:"Repair"})]}),u.jsx(q,{className:Te(ur.rightFooter,ur.footerTitle,ur.ellipsis),children:"Turbine"})]})}function MZe(){const e=X(zp),t=X(tse),n=X(b_);if(!(e==null||t==null||n==null))return u.jsxs(V,{className:ur.labelsRow,children:[u.jsx(V,{justify:"end",flexShrink:"0",className:ur.labelsLeft,children:u.jsx(ise,{slot:t})}),u.jsx(V,{justify:"end",flexGrow:"1",minWidth:"0",className:ur.labelsRight,children:u.jsx(ise,{slot:n,isHead:!0})})]})}function ise({isHead:e=!1,slot:t}){const n=X(NM),[r,{width:i}]=Ss();return m.useEffect(()=>{n==null||n.style.setProperty(e?"--turbine-head-label-width":"--turbine-start-label-width",`${i}px`)},[n,e,i]),u.jsxs(V,{ref:r,direction:"column",className:Te(ur.turbineLabel,e?ur.head:ur.start),children:[u.jsx(q,{className:ur.bold,children:e?"Turbine Head":"Turbine Start"}),u.jsx(q,{children:t})]})}const _6=1e4,ose=50,LZe=[Ir.shred_published,Ir.shred_replayed,Ir.shred_received_repair,Ir.shred_received_turbine,Ir.shred_repair_request],RZe=[Ir.shred_received_repair,Ir.shred_published,Ir.shred_replayed,Ir.shred_received_turbine,Ir.shred_repair_request],OZe={"Repair Requested":xN,"Received Turbine":wN,"Received Repair":kN,"Replayed Turbine":SN,"Replayed Repair":CN,"Replayed Nothing":jN,Skipped:TN,Published:IN};function PZe(){const e=fe(),t=fe(),n=fe(),r=fe(i=>{const o=i(n),a=i(bG);if(!(!o||a==null)&&!(a+1>o.max))return{min:Math.max(a+1,o.min),max:o.max}});return{minCompletedSlot:fe(i=>i(e)),range:fe(i=>i(n)),rangeAfterStartup:r,groupLeaderSlots:fe(i=>{const o=i(r);if(!o)return[];const a=[xi(o.min)];for(;a[a.length-1]+$n-1i(t)),addShredEvents:fe(null,(i,o,{reference_slot:a,reference_ts:s,slot_delta:l,shred_idx:c,event:d,event_ts_delta:f})=>{let p=i(n),v=i(e);o(t,_=>{const y=_??{referenceTs:Math.round(Number(s)/aN),slots:new Map};for(let b=0;b{if(a){o(n,void 0),o(e,void 0),o(t,void 0);return}o(t,l=>{const c=i(n),d=i(Cre)??Date.now();if(!l||!c)return l;if(s)for(let p=c.min;p<=c.max;p++){const v=l.slots.get(p);v&&(v.maxEventTsDelta==null||ase(v.maxEventTsDelta,d,l.referenceTs))&&l.slots.delete(p)}else{let p=c.min;if(c.max-c.min>50){for(let _=p;_<=c.max-50;_++)l.slots.get(_)&&l.slots.delete(_);p=c.max-50}let v=!1;for(let _=c.max;_>=p;_--){const y=l.slots.get(_);if((y==null?void 0:y.maxEventTsDelta)!=null){if(!v&&y.completionTsDelta!=null&&ase(y.completionTsDelta,d,l.referenceTs)){v=!0;continue}v&&l.slots.delete(_)}}}const f=l.slots.keys();return o(n,p=>{if(!(!p||!l.slots.size))return{min:Math.min(...f),max:p.max}}),l})})}}function ase(e,t,n){const r=t-n,i=_6+ose;return r-e>i}const __=PZe();function zZe(e,t,n){const r=n??new Array;return r[e]=Math.min(t,r[e]??t),r}function DZe(e,t,n,r){const i=r??{shreds:[]};return i.minEventTsDelta=Math.min(n,i.minEventTsDelta??n),i.maxEventTsDelta=Math.max(n,i.maxEventTsDelta??n),t===Ir.slot_complete?(i.completionTsDelta=Math.min(n,i.completionTsDelta??n),i):e==null?(console.error("Missing shred ID"),i):(i.shreds[e]=zZe(t,n,i.shreds[e]),i)}function sse(e){return`slot-group-label-${xi(e)}`}function lse(e){return`slot-label-${e}`}const lh=ca(),wd="shredsXScaleKey";function AZe(e){const t=[];return{hooks:{draw:[n=>{if(n.ctx.save(),e){n.ctx.strokeStyle=_N,n.ctx.lineWidth=1,n.ctx.beginPath();const P=n.bbox.left,te=n.bbox.left+n.bbox.width;for(let Z=0;Z<3;Z++)n.ctx.moveTo(P,n.bbox.top+n.bbox.height*Z/3),n.ctx.lineTo(te,n.bbox.top+n.bbox.height*Z/3);n.ctx.stroke(),n.ctx.restore()}const r=__,i=lh.get(r.slotsShreds),o=lh.get(r.range),a=lh.get(r.minCompletedSlot),s=lh.get(Ik),l=lh.get(r.rangeAfterStartup),c=Date.now(),d=lh.get(Cre);if(d){const P=c-d;for(t.push(P);t.length>20;)t.shift()}const f=t.length?rt.sum(t)/t.length:void 0,p=f==null?d??c:c-f,v=n.scales[wd].max;if(!i||!o||v==null||!e&&(lh.get(ol)||a==null||!l))return;const _=p-ose-i.referenceTs,y=e?o.min:Math.max(o.min,a??o.min),b=o.max;n.ctx.rect(n.bbox.left,n.bbox.top,n.bbox.width,n.bbox.height),n.ctx.clip();const w=P=>n.valToPos(P,wd,!0),{maxShreds:x,orderedSlotNumbers:S}=FZe(y,b,i,n.scales[wd],_),C=e?Math.trunc(n.bbox.height/3):n.bbox.height,j=e?P=>{switch(P){case Ir.shred_received_turbine:case Ir.shred_published:return 0;case Ir.shred_repair_request:case Ir.shred_received_repair:return C;case Ir.shred_replayed:return C*2}}:void 0,T=rt.clamp(C/x,1,10),E=1,$=Math.max(T,3),A=Math.trunc((C+E)/(T+E)),M=x/A;for(const P of S){const te={},Z=(D,Y)=>{te[D]??(te[D]=[]),te[D].push(Y)},O=i.slots.get(P);if((O==null?void 0:O.minEventTsDelta)==null)continue;const J=s.has(P);for(let D=0;D{const o=[];let a=0;for(let s=e;s<=t;s++){const l=n.slots.get(s);!l||!l.shreds.length||l.minEventTsDelta==null||r.max!=null&&l.minEventTsDelta-i>r.max||r.min!=null&&l.completionTsDelta!=null&&l.completionTsDelta-i=b)continue;const T=(d==null?void 0:d(x))??0;w.set(x,s||l?[j,c+T]:[j,c+T,b-j]),b=j}for(const[x,S]of w.entries()){if(l){e(TN,S);continue}switch(x){case Ir.shred_repair_request:{e(xN,S);break}case Ir.shred_received_turbine:{e(wN,S);break}case Ir.shred_received_repair:{e(kN,S);break}case Ir.shred_replayed:{w.has(Ir.shred_received_repair)?e(CN,S):w.has(Ir.shred_received_turbine)?e(SN,S):e(jN,S);break}case Ir.shred_published:e(IN,S)}}}function UZe(e,t,n){for(const r of RZe){const i=WZe(e,t,n,o=>(o==null?void 0:o[r])!=null);if(i!==-1)return i}return e}function WZe(e,t,n,r){for(let i=e;ir.valToPos(p,wd,!1),f=d(i);for(let p=0;ps+r).reduce((a,s)=>(a.length===0&&!(s in e)||s in e&&e[s]===void 0||a.push(s),a),[]);if(i.length===0)continue;const o=i.reduce((a,s)=>{var d,f;const l=(d=e[s])==null?void 0:d[0],c=(f=e[s])==null?void 0:f[1];return l!=null&&(a[0]=Math.min(a[0],l)),a[1]=a[1]===void 0||c===void 0?void 0:Math.max(c,a[1]),a},[1/0,-1/0]);n[r]=o}return n}function dse(e,t,n){if(!e)return;const r=e[0]-t,i=n(r);if(e[1]==null)return[i,void 0];const o=e[1]-t,a=n(o);return[i,a-i]}function fse(e,t,n,r){const i=e?"--group-x":"--slot-x";if(!t){r.style.setProperty(i,"-100000px");return}const[o,a]=t;r.style.setProperty(i,`${o-(e?1:0)}px`);const s=a??n-o+1;r.style.width=`${s+(e?1*2:0)}px`;const l=a==null;e&&r.style.setProperty("--group-name-opacity",l?"0":"1")}const GZe="_slot-group-label_mfowj_1",YZe="_you_mfowj_13",KZe="_slot-group-top-container_mfowj_17",XZe="_skipped_mfowj_21",JZe="_slot-group-name-container_mfowj_25",QZe="_name_mfowj_30",eqe="_slot-bars-container_mfowj_41",tqe="_slot-bar_mfowj_41",nqe="_legend-color-box_mfowj_72",rqe="_legend-label_mfowj_78",lu={slotGroupLabel:GZe,you:YZe,slotGroupTopContainer:KZe,skipped:XZe,slotGroupNameContainer:JZe,name:QZe,slotBarsContainer:eqe,slotBar:tqe,legendColorBox:nqe,legendLabel:rqe};function OM(e){const t=X(di);if(!t)return;const n=e-t.start_slot,r=Math.trunc(n/4);return t.staked_pubkeys[t.leader_slots[r]]}function PM(e){var s,l,c,d;const t=(s=e==null?void 0:e.gossip)==null?void 0:s.version,n=(l=e==null?void 0:e.gossip)==null?void 0:l.client_id,r=(n?qte[n]:void 0)??(t?t[0]==="0"?za.Frankendancer:za.Agave:void 0),i=(c=e==null?void 0:e.gossip)==null?void 0:c.country_code,o=Pze(i),a=(d=e==null?void 0:e.gossip)==null?void 0:d.city_name;return m.useMemo(()=>({client:r,version:t,countryCode:i,countryFlag:o,cityName:a}),[a,r,i,o,t])}function ma(e){var f;const t=X(dp),n=OM(e),r=Hk(n??""),i=t===n,o=((f=r==null?void 0:r.info)==null?void 0:f.name)??"Private",{version:a,client:s,countryCode:l,countryFlag:c,cityName:d}=PM(r);return{pubkey:n,peer:r,isLeader:i,name:o,client:s,version:a,countryCode:l,countryFlag:c,cityName:d}}function iqe(){const e=X(V3),t=X(__.groupLeaderSlots);if(!e)return u.jsx(V,{flexShrink:"0",overflowX:"hidden",position:"relative",height:"15px",children:t.map(n=>u.jsx(oqe,{firstSlot:n},n))})}function oqe({firstSlot:e}){var s;const{peer:t,name:n,isLeader:r}=ma(e),i=m.useMemo(()=>Array.from({length:$n},(l,c)=>e+c),[e]),o=X(Ik),a=m.useMemo(()=>{const l=new Set;for(const c of i)o.has(c)&&l.add(c);return l},[i,o]);return u.jsxs(V,{height:"100%",minHeight:"0",direction:"column",gap:"2px",position:"absolute",id:sse(e),className:Te(lu.slotGroupLabel,{[lu.you]:r}),children:[u.jsx(V,{justify:"center",flexGrow:"1",minHeight:"0",minWidth:"0",px:"2px",className:Te(lu.slotGroupTopContainer,{[lu.skipped]:a.size>0}),children:u.jsxs(V,{align:"center",gap:"4px",minWidth:"0",className:lu.slotGroupNameContainer,children:[u.jsx(ks,{url:(s=t==null?void 0:t.info)==null?void 0:s.icon_url,size:10,isYou:r,hideTooltip:!0}),u.jsx(q,{className:lu.name,children:n})]})}),u.jsx(V,{height:"2px",position:"relative",className:lu.slotBarsContainer,children:i.map(l=>u.jsx("div",{className:Te(lu.slotBar,{[lu.skipped]:a.has(l)}),id:lse(l)},l))})]})}const aqe=40,zM=15,DM={min:200,max:1600},sqe=e=>{const t=e*DM.max,n=[Math.trunc(t/DM.min)*DM.min];for(;n[n.length-1]<_6*e;)n.push(n[n.length-1]*2);return n};function hse({chartId:e,isOnStartupScreen:t,...n}){const r=Hn("(max-width: 2100px)"),i=Hn("(max-width: 1800px)"),o=Hn("(max-width: 1500px)"),a=Hn("(max-width: 1200px)"),s=Hn("(max-width: 900px)"),l=Hn("(max-width: 600px)")?1/7:s?2/7:a?3/7:o?4/7:i?5/7:r?6/7:1,c=m.useRef(),d=m.useRef(0),[f,p]=Ss(),v=m.useCallback(w=>{c.current=w},[]),[_,y]=m.useMemo(()=>[[[Math.trunc(l*-_6),0],new Array(2)],sqe(l)],[l]);m.useEffect(()=>{c.current&&(c.current.axes[0].incrs=()=>y,c.current.setData(_,!0))},[_,y]);const b=m.useMemo(()=>({padding:[0,zM,0,zM],width:0,height:0,scales:{[wd]:{time:!1},y:{time:!1,range:[0,1]}},series:[{scale:wd},{}],cursor:{show:!1,drag:{[wd]:!1,y:!1}},legend:{show:!1},axes:[{scale:wd,incrs:y,size:30,ticks:{opacity:.2,stroke:sr,size:5,width:1/devicePixelRatio},values:(w,x)=>x.map(S=>S===0?"now":`${(S/1e3).toFixed(1)}s`),grid:{stroke:_N,width:1/devicePixelRatio},stroke:bN},{size:0,grid:{filter:()=>[0],stroke:bN,width:1}}],plugins:[AZe(t)]}),[t,y]);return b.width=p.width,b.height=p.height,Aie(w=>{var x;c&&(d.current==null||w-d.current>=aqe)&&(d.current=w,(x=c.current)==null||x.redraw(!0,!1))}),u.jsxs(V,{direction:"column",gap:"2px",...n,children:[!t&&u.jsx(iqe,{}),u.jsx(Mt,{flexGrow:"1",minHeight:"0",mx:`-${zM}px`,ref:f,children:u.jsx(Pp,{id:e,options:b,data:_,onCreate:v})})]})}const lqe="_card_1vnw5_1",uqe="_narrow_1vnw5_7",pse={card:lqe,narrow:uqe};function so({children:e,hideChildren:t,isNarrow:n=!1,...r}){return u.jsx("div",{...r,className:Te(pse.card,n&&pse.narrow,r.className),children:!t&&e})}const cqe="_header_10qjn_1",dqe="_full-width_10qjn_5",fqe="_dark_10qjn_9",hqe="_subHeader_10qjn_14",pqe="_tile-container_10qjn_20",mqe="_tile_10qjn_20",Dp={header:cqe,fullWidth:dqe,dark:fqe,subHeader:hqe,tileContainer:pqe,tile:mqe},gqe="_stat-container_1hzk8_1",vqe="_label_1hzk8_10",yqe="_value-container_1hzk8_15",bqe="_value_1hzk8_15",x6={statContainer:gqe,label:vqe,valueContainer:yqe,value:bqe};var AM={exports:{}},Qg=typeof Reflect=="object"?Reflect:null,mse=Qg&&typeof Qg.apply=="function"?Qg.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},w6;Qg&&typeof Qg.ownKeys=="function"?w6=Qg.ownKeys:Object.getOwnPropertySymbols?w6=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:w6=function(e){return Object.getOwnPropertyNames(e)};function _qe(e){console&&console.warn&&console.warn(e)}var gse=Number.isNaN||function(e){return e!==e};function cr(){cr.init.call(this)}AM.exports=cr,AM.exports.once=Sqe,cr.EventEmitter=cr,cr.prototype._events=void 0,cr.prototype._eventsCount=0,cr.prototype._maxListeners=void 0;var vse=10;function k6(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(cr,"defaultMaxListeners",{enumerable:!0,get:function(){return vse},set:function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");vse=e}}),cr.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},cr.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function yse(e){return e._maxListeners===void 0?cr.defaultMaxListeners:e._maxListeners}cr.prototype.getMaxListeners=function(){return yse(this)},cr.prototype.emit=function(e){for(var t=[],n=1;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var s=i[e];if(s===void 0)return!1;if(typeof s=="function")mse(s,this,t);else for(var l=s.length,c=kse(s,l),n=0;n0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,_qe(s)}return e}cr.prototype.addListener=function(e,t){return bse(this,e,t,!1)},cr.prototype.on=cr.prototype.addListener,cr.prototype.prependListener=function(e,t){return bse(this,e,t,!0)};function xqe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _se(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=xqe.bind(r);return i.listener=n,r.wrapFn=i,i}cr.prototype.once=function(e,t){return k6(t),this.on(e,_se(this,e,t)),this},cr.prototype.prependOnceListener=function(e,t){return k6(t),this.prependListener(e,_se(this,e,t)),this},cr.prototype.removeListener=function(e,t){var n,r,i,o,a;if(k6(t),r=this._events,r===void 0)return this;if(n=r[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;i===0?n.shift():wqe(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit("removeListener",e,a||t)}return this},cr.prototype.off=cr.prototype.removeListener,cr.prototype.removeAllListeners=function(e){var t,n,r;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),o;for(r=0;r=0;r--)this.removeListener(e,t[r]);return this};function xse(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?kqe(i):kse(i,i.length)}cr.prototype.listeners=function(e){return xse(this,e,!0)},cr.prototype.rawListeners=function(e){return xse(this,e,!1)},cr.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):wse.call(e,t)},cr.prototype.listenerCount=wse;function wse(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}cr.prototype.eventNames=function(){return this._eventsCount>0?w6(this._events):[]};function kse(e,t){for(var n=new Array(t),r=0;r{const r=i=>n.current(i);return t.addListener(FM,r),()=>{t.removeListener(FM,r)}},[t])}const Iqe=Yf((e,t,n)=>rt.throttle(()=>{switch(n){case"publish":{e({topic:"slot",key:"query",id:1,params:{slot:t}});break}case"detailed":{e({topic:"slot",key:"query_detailed",id:2,params:{slot:t}});break}case"transactions":{e({topic:"slot",key:"query_transactions",id:3,params:{slot:t}});break}}},5e3,{trailing:!1}),{maxSize:250});function UM(e,t,n){const r=S6(),i=X(wDe(e)),o=m.useCallback(()=>{!e||i||n||Iqe(r,e,t)()},[t,i,e,n,r]);m.useEffect(()=>{const l=setTimeout(()=>o(),250);return()=>{clearTimeout(l)}},[o]);const[a,s]=m.useState(!0);return i_(()=>{setTimeout(()=>s(!1),3e3)}),{hasWaitedForData:!a}}function Is(e){const t=X(YN(e)),n=!!t,{hasWaitedForData:r}=UM(e,"publish",n);return{publish:t,hasWaitedForData:r}}function tc(e){const t=X(hre(e)),n=!!(t!=null&&t.waterfall)&&!!(t!=null&&t.tile_timers)&&!!(t!=null&&t.tile_primary_metric)&&!!t.scheduler_counts&&!!t.scheduler_stats&&!!t.limits,{hasWaitedForData:r}=UM(e,"detailed",n);return{response:t,hasWaitedForData:r}}function pl(e){const t=X(hre(e)),n=!!(t!=null&&t.transactions),{hasWaitedForData:r}=UM(e,"transactions",n);return{response:t,hasWaitedForData:r}}function Eqe({type:e,label:t}){var l,c,d;const n=X(Cn),r=!n,i=X(SG),o=tc(r?void 0:n),a=r?(l=i==null?void 0:i.tile_primary_metric)==null?void 0:l[e]:(d=(c=o.response)==null?void 0:c.tile_primary_metric)==null?void 0:d[e],s=e==="net_in"||e==="net_out"?{minWidth:"55px"}:void 0;return u.jsxs("div",{className:x6.statContainer,children:[u.jsx(q,{className:x6.label,children:t}),u.jsx("div",{className:x6.valueContainer,style:s,children:u.jsx(q,{className:x6.value,children:Nqe(e,a)})})]})}function Nqe(e,t){if(t===void 0||t===-1)return"-";if(e==="net_in"||e==="net_out"){const n=t*8,r=Cp(t*8,{precision:n>1e9?2:0}),i=Number(r.value);if(!t)return"0";const o=r.unit.replace("B","b");return`${i} ${o}/s`}if(e==="bundle_rx_delay_millis_p90"||e==="bundle_rtt_smoothed_millis")return`${Math.max(1,Math.round(t))} ms`;if(e==="verify"||e==="dedup"||e==="pack"){if(t<.01&&t>0)return`${(t*100).toFixed(2)}%`;{const n=t*100;return`${Math.trunc(n)}%`}}return t.toLocaleString()}const $qe="_btn_1lb0v_1",Mqe={btn:$qe};let WM=!1;function Lqe({children:e,tileCountArr:t,liveBusyPerTile:n,queryIdlePerTile:r,width:i,header:o,isExpanded:a,setIsExpanded:s}){return t.length>1?u.jsxs(QZ,{open:a,onOpenChange:l=>{WM||(s(l),WM=!0,setTimeout(()=>WM=!1,10))},defaultOpen:!1,children:[u.jsx(eq,{children:a?u.jsx("div",{}):u.jsx(hs,{className:Mqe.btn,children:e})}),u.jsx(tq,{width:`${i}px`,size:"1",side:"top",sideOffset:-17,align:"center",children:u.jsxs(V,{gap:"3",direction:"column",children:[o,n?n.map((l,c)=>u.jsx(Rqe,{busy:l},c)):t==null?void 0:t.map((l,c)=>{const d=r==null?void 0:r.map(f=>f[c]!==void 0&&f[c]!==-1?1-f[c]:void 0).filter(Cb);if(d!=null&&d.length)return u.jsxs(V,{children:[u.jsx(c_,{history:d}),u.jsx(Xk,{busy:rt.mean(d)})]},c)})]})})]}):u.jsx(V,{gap:"1",children:e})}function Rqe({busy:e}){const t=H$(e);return u.jsxs(V,{children:[u.jsx(c_,{value:t}),u.jsx(Xk,{busy:t})]})}function Wa({header:e,subHeader:t,tileCount:n,statLabel:r,liveIdlePerTile:i,queryIdlePerTile:o,metricType:a,sparklineHeight:s,isExpanded:l=!1,setIsExpanded:c=()=>{},isDark:d=!1,isNarrow:f}){const[p,{width:v}]=Ss(),_=X(Cn)===void 0,{avgBusy:y,aggQueryBusyPerTs:b,tileCountArr:w,liveBusyPerTile:x,busy:S}=poe({isLive:_,tileCount:n,liveIdlePerTile:i,queryIdlePerTile:o}),C=H$(y);return u.jsx(V,{ref:p,children:u.jsx(so,{className:Te(Dp.fullWidth,d&&Dp.dark),isNarrow:f,children:u.jsxs(V,{direction:"column",justify:"between",height:"100%",gap:"1",children:[u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(c_,{value:b===void 0?C:void 0,history:b,height:s,background:d?vk:void 0}),u.jsxs(Lqe,{tileCountArr:w,liveBusyPerTile:x,queryIdlePerTile:o,width:v,header:u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),isExpanded:l,setIsExpanded:c,children:[u.jsx("div",{className:Dp.tileContainer,children:w.map((j,T)=>{const E=S==null?void 0:S[T];return E===void 0?u.jsx("div",{className:Dp.tile,style:{background:d?"#232A38":"gray"}},T):u.jsx("div",{className:Dp.tile,style:{"--busy":`${E*100}%`}},T)})}),u.jsx(Xk,{busy:C})]})]})})})}function Tse({header:e,subHeader:t,metricType:n,statLabel:r}){return u.jsxs(V,{justify:"between",gap:"1",children:[u.jsxs(V,{direction:"column",gap:"0",children:[u.jsx(q,{className:Dp.header,children:e}),t&&u.jsx(q,{className:Dp.subHeader,children:t})]}),n&&u.jsx(Eqe,{type:n,label:r})]})}function VM(){var s;const e=X(Cn),t=!e,n=X(rg),r=X(Nb),i=X(Hze),o=tc(e),a=m.useMemo(()=>{var l,c;if(!(!((c=(l=o.response)==null?void 0:l.tile_timers)!=null&&c.length)||t||!n))return o.response.tile_timers.reduce((d,f)=>{var v;if(!f.tile_timers.length)return d;const p={};f.tile_timers.length!==n.length&&console.warn("Length mismatch between tiles and time timers",f.tile_timers,n);for(let _=0;_u.jsx(Wa,{header:s,tileCount:r[s],liveIdlePerTile:i==null?void 0:i[s],queryIdlePerTile:o||a==null?void 0:a[s],statLabel:"",sparklineHeight:Oqe,isExpanded:n,setIsExpanded:t},s))})}function Dqe(){const e=m.useRef({}),t=X(zp),n=X(b_),r=X(fp),i=r??(t==null?void 0:t-1),o=Ug(i),a=Ug(n);return e.current.replaySlotsPerSecond=o,e.current.turbineSlotsPerSecond=a,m.useEffect(()=>{if(t==null||n==null||e.current.totalSlotsEstimate!=null)return;const s=Ise(400,100,t,r,n);e.current={totalSlotsEstimate:s}},[r,n,t,e]),Qu(()=>{const s=e.current.totalSlotsEstimate;if(t==null||n==null||s==null||o==null||a==null)return;const l=Ise(o,a,t,r,n),c=r==null||l==null?void 0:l+t-1-r,d=o===0||c==null?void 0:c/o;if(e.current.remainingSeconds=d,!l||l>=s)return;const f=Math.min(.15*s,s-l),p=s-f;e.current.totalSlotsEstimate=p},500),e}function Ise(e,t,n,r,i){const o=r??n-1;if(o===i)return i-n;if(e<=t)return;const a=o-n+1,s=e*(i-o)/(e-t);return a+s}function Aqe({catchingUpRates:e}){const t=X(zp),n=X(b_),r=X(fp),i=e.replaySlotsPerSecond,o=e.turbineSlotsPerSecond,a=i==null||o==null?void 0:Math.round(i-o);return u.jsxs(Mt,{mt:"3px",className:ur.barsStatsContainer,children:[u.jsxs(V,{justify:"between",className:ur.barsStatsRow,children:[u.jsx(C6,{className:ur.replayed,value:r==null||t==null?void 0:r-t+1,label:"Slots Replayed"}),u.jsx(C6,{className:ur.toReplay,value:r==null||n==null?void 0:n-r,label:"Slots Remaining"})]}),u.jsxs(V,{justify:"between",className:ur.barsStatsColumn,children:[u.jsx(C6,{className:ur.speed,value:i,label:"Slots/s Replay Speed"}),u.jsx(C6,{className:ur.speed,value:a,label:"Slots/s Catchup Speed"})]})]})}function C6({value:e,label:t,className:n}){const r=e===void 0?"--":e.toLocaleString(void 0,{maximumFractionDigits:0});return u.jsxs(q,{truncate:!0,className:n,children:[u.jsxs(q,{className:ur.bold,children:[r," "]}),t]})}function Ese(){return u.jsx(V,{gapX:"15px",gapY:"5px",wrap:"wrap",children:Object.entries(OZe).map(([e,t])=>u.jsxs(V,{gap:"5px",flexShrink:"0",children:[u.jsx("div",{className:lu.legendColorBox,style:{backgroundColor:t}}),u.jsx(q,{className:lu.legendLabel,children:e})]},e))})}function Fqe(){const e=Ee(NM),t=X(tZe),n=Dqe(),r=X(zp),i=X(b_),o=X(fp),a=m.useMemo(()=>{if(r==null||i==null||o==null)return 0;const l=i-r+1;if(!l)return 0;const c=o-r+1;return rt.clamp(c/l,0,1)},[o,i,r]),s=Soe(a);return u.jsxs(u.Fragment,{children:[u.jsx(J$,{phaseCompleteFraction:a,overallCompleteFraction:s,remainingSeconds:n.current.remainingSeconds}),u.jsxs(V,{direction:"column",mt:"8px",gap:"8px",className:yd.startupContentIndentation,children:[t&&u.jsxs(V,{ref:e,direction:"column",gap:"5px",children:[u.jsx(MZe,{}),u.jsx(fZe,{catchingUpRatesRef:n}),u.jsx($Ze,{}),u.jsx(Aqe,{catchingUpRates:n.current})]}),u.jsxs(V,{direction:"column",className:ur.card,mb:"14px",children:[u.jsxs(V,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(q,{className:ur.title,children:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{flexGrow:"1",minHeight:"280px",chartId:"catching-up-shreds",isOnStartupScreen:!0})]}),u.jsx(zqe,{})]})]})}const Bqe="_secondary-color_1cuvx_1",Uqe="_card_1cuvx_5",Wqe="_pie-chart-title_1cuvx_18",Vqe="_pie-chart-container_1cuvx_24",Hqe="_pie-chart_1cuvx_18",Zqe="_shimmer_1cuvx_58",qqe="_threshold-marker_1cuvx_43",Gqe="_marker-line_1cuvx_47",Yqe="_marker-icon_1cuvx_51",Kqe="_overlay_1cuvx_74",Xqe="_pie-chart-content_1cuvx_86",Jqe="_lg_1cuvx_93",Qqe="_eighty_1cuvx_97",eGe="_details-box_1cuvx_103",tGe="_copyButton_1cuvx_105",nGe="_label_1cuvx_111",rGe="_snapshot-source_1cuvx_116",wi={secondaryColor:Bqe,card:Uqe,pieChartTitle:Wqe,pieChartContainer:Vqe,pieChart:Hqe,shimmer:Zqe,thresholdMarker:qqe,markerLine:Gqe,markerIcon:Yqe,overlay:Kqe,pieChartContent:Xqe,lg:Jqe,eighty:Qqe,detailsBox:eGe,copyButton:tGe,label:nGe,snapshotSource:rGe},iGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("circle",{cx:12,cy:12,r:8})),oGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6m0-2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8z"})),aGe="_container_1vhtf_1",sGe="_horizontal_1vhtf_4",lGe="_vertical_1vhtf_9",uGe="_table-card_1vhtf_15",cGe="_narrow_1vhtf_21",dGe="_rows-container_1vhtf_26",fGe="_row_1vhtf_26",hGe="_xnarrow_1vhtf_44",pGe="_online_1vhtf_48",mGe="_pubkey-text_1vhtf_51",gGe="_peer_1vhtf_56",vGe="_status_1vhtf_62",yGe="_version_1vhtf_66",bGe="_client-icon_1vhtf_66",_Ge="_client-icon-placeholder_1vhtf_66",xGe="_suffix_1vhtf_70",wGe="_offline_1vhtf_75",kGe="_header-row_1vhtf_92",SGe="_toggle-row_1vhtf_97",CGe="_cell_1vhtf_116",jGe="_header_1vhtf_92",TGe="_pubkey_1vhtf_51",IGe="_stake_1vhtf_174",EGe="_stake-pct_1vhtf_187",un={container:aGe,horizontal:sGe,vertical:lGe,tableCard:uGe,narrow:cGe,rowsContainer:dGe,row:fGe,xnarrow:hGe,online:pGe,pubkeyText:mGe,peer:gGe,status:vGe,version:yGe,clientIcon:bGe,clientIconPlaceholder:_Ge,suffix:xGe,offline:wGe,headerRow:kGe,toggleRow:SGe,cell:CGe,header:jGe,pubkey:TGe,stake:IGe,stakePct:EGe},NGe="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3c/svg%3e",$Ge="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_474_23049)'%3e%3cpath%20d='M39.3846%2011.9422C39.3846%207.91449%2036.1195%204.64941%2032.0918%204.64941C28.0641%204.64941%2024.7991%207.91449%2024.7991%2011.9422C24.7991%2015.9698%2028.0641%2019.2349%2032.0918%2019.2349C36.1195%2019.2349%2039.3846%2015.9698%2039.3846%2011.9422Z'%20fill='white'/%3e%3cpath%20d='M32.0907%2017.6901C35.3062%2017.6901%2037.9129%2015.0834%2037.9129%2011.8678C37.9129%208.65226%2035.3062%206.04553%2032.0907%206.04553C28.8751%206.04553%2026.2684%208.65226%2026.2684%2011.8678C26.2684%2015.0834%2028.8751%2017.6901%2032.0907%2017.6901Z'%20fill='white'%20stroke='%23000000F2'%20stroke-width='0.540037'/%3e%3cpath%20d='M32.6719%2010.4479C32.2543%2010.7361%2031.8053%2010.8349%2031.3257%2010.7436C30.8452%2010.6529%2030.4636%2010.4018%2030.1799%209.99083L29.7579%209.3793L30.3633%208.96143L30.7854%209.57296C30.9533%209.81627%2031.1774%209.96374%2031.4585%2010.0148C31.7388%2010.0665%2032.0029%2010.0068%2032.249%209.83693L33.3171%209.09511C33.6566%208.85936%2034.123%208.94414%2034.3578%209.2843L32.6719%2010.4479Z'%20fill='%23000000F2'/%3e%3cpath%20d='M33.4893%2012.4798C33.2006%2012.0614%2033.1011%2011.6119%2033.1914%2011.1321C33.2812%2010.6515%2033.5315%2010.27%2033.9417%209.98692L34.552%209.56567L34.9707%2010.1723L34.3603%2010.5935C34.1175%2010.7611%2033.9705%2010.9851%2033.92%2011.2664C33.8688%2011.5468%2033.9289%2011.8111%2034.0991%2012.0577L34.8439%2013.1301C35.0793%2013.469%2034.9946%2013.9345%2034.6551%2014.1689L33.4893%2012.4798Z'%20fill='%23000000F2'/%3e%3cpath%20d='M31.4498%2013.3013C31.8674%2013.013%2032.3164%2012.9143%2032.796%2013.0055C33.2764%2013.0962%2033.6581%2013.3473%2033.9417%2013.7583L34.3638%2014.3698L33.7584%2014.7877L33.3363%2014.1762C33.1684%2013.9329%2032.9442%2013.7854%2032.6631%2013.7343C32.3828%2013.6827%2032.1188%2013.7423%2031.8726%2013.9122L30.8045%2014.654C30.4651%2014.8898%2029.9986%2014.805%2029.7639%2014.4648L31.4498%2013.3013Z'%20fill='%23000000F2'/%3e%3cpath%20d='M30.6689%2011.3224C30.9576%2011.7408%2031.0571%2012.1903%2030.9668%2012.6701C30.877%2013.1507%2030.6267%2013.5321%2030.2165%2013.8152L29.6062%2014.2365L29.1875%2013.6299L29.7979%2013.2086C30.0407%2013.041%2030.1877%2012.817%2030.2383%2012.5358C30.2894%2012.2554%2030.2293%2011.9911%2030.0591%2011.7445L29.3143%2010.672C29.0789%2010.3332%2029.1636%209.86764%2029.5031%209.6333L30.6689%2011.3224Z'%20fill='%23000000F2'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_474_23049'%3e%3crect%20width='15'%20height='15'%20fill='white'%20transform='translate(24.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",MGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_bam)'%3e%3cg%20transform='translate(25.5%204.5)%20scale(0.1%200.10204)'%3e%3cpath%20d='M124.208%2034.2304C125.338%2034.8826%20125.338%2035.939%20124.208%2036.5912L100.697%2050.1653C99.5673%2050.8175%2097.7375%2050.8175%2096.6079%2050.1653L85.4912%2043.7471C83.8097%2042.7763%2081.0548%2042.6789%2079.3221%2043.6202C77.5894%2044.5616%2077.5025%2046.217%2079.2301%2047.2144L90.4746%2053.7064C91.6041%2054.3586%2091.6041%2055.415%2090.4746%2056.0672L66.9634%2069.6413C65.8338%2070.2935%2064.0041%2070.2935%2062.8745%2069.6413L5.62989%2036.5912C4.50034%2035.939%204.50033%2034.8826%205.62989%2034.2304L62.8694%201.18319C63.9989%200.531042%2065.8338%200.528091%2066.9634%201.18024L124.208%2034.2304ZM58.7805%2037.7745C57.0887%2036.7977%2054.3389%2036.7977%2052.6471%2037.7745L49.5805%2039.545C47.8887%2040.5218%2047.8887%2042.1094%2049.5805%2043.0861C51.2722%2044.0629%2054.022%2044.0629%2055.7138%2043.0861L58.7805%2041.3156C60.4723%2040.3388%2060.4723%2038.7512%2058.7805%2037.7745ZM78.2028%2026.561C76.511%2025.5843%2073.7612%2025.5843%2072.0694%2026.561L69.0027%2028.3316C67.311%2029.3083%2067.3109%2030.8959%2069.0027%2031.8727C70.6945%2032.8494%2073.4443%2032.8494%2075.1361%2031.8727L78.2028%2030.1021C79.8945%2029.1254%2079.8945%2027.5378%2078.2028%2026.561Z'%20fill='white'/%3e%3cpath%20d='M59.2891%2076.1449L2.04445%2043.0947C0.914891%2042.4425%200%2042.9707%200%2044.275V110.375C0%20111.674%200.914891%20113.264%202.04445%20113.916L24.5334%20126.9C25.663%20127.553%2026.5779%20127.024%2026.5779%20125.72V108.162C26.5779%20106.226%2027.871%20105.285%2029.5423%20106.185C31.2136%20107.085%2032.7112%20109.555%2032.7112%20111.556V129.261C32.7112%20130.566%2033.6261%20132.15%2034.7557%20132.802L59.2891%20146.967C60.4135%20147.616%2061.3335%20147.085%2061.3335%20145.786V79.6859C61.3335%2078.3816%2060.4135%2076.7941%2059.2891%2076.1449ZM32.7112%2086.7681C32.7112%2088.7216%2031.3363%2089.5154%2029.6445%2088.5387C27.9527%2087.5619%2026.5779%2085.1805%2026.5779%2083.227V79.6859C26.5779%2077.7265%2027.9476%2076.9357%2029.6445%2077.9154C31.3414%2078.8951%2032.7112%2081.2676%2032.7112%2083.227V86.7681Z'%20fill='white'/%3e%3cpath%20d='M129.768%2044.2782L129.758%20110.384C129.758%20111.683%20128.838%20113.276%20127.714%20113.926L115.447%20121.008C114.318%20121.66%20113.403%20121.126%20113.403%20119.821V102.116C113.403%20100.115%20111.977%2099.3333%20110.239%20100.402C108.501%20101.47%20107.269%20103.869%20107.269%20105.805V123.363C107.269%20124.667%20106.349%20126.254%20105.22%20126.907L92.9531%20133.989C91.8235%20134.641%2090.9086%20134.107%2090.9086%20132.803V115.097C90.9086%20113.096%2089.4826%20112.314%2087.7448%20113.383C86.007%20114.451%2084.7753%20116.85%2084.7753%20118.786V136.344C84.7753%20137.648%2083.8553%20139.235%2082.7257%20139.888L70.459%20146.97C69.3294%20147.622%2068.4146%20147.082%2068.4146%20145.784L68.4248%2079.6773C68.435%2078.373%2069.3499%2076.7884%2070.4794%2076.1362L93.9906%2062.562C95.1202%2061.9099%2096.0351%2062.444%2096.0351%2063.7483V76.7323C96.0351%2078.7212%2097.4508%2079.5091%2099.1835%2078.4556C100.916%2077.4021%20102.163%2074.9883%20102.163%2073.0466V60.2101C102.163%2058.9058%20103.083%2057.3183%20104.213%2056.6661L127.724%2043.0919C128.848%2042.4427%20129.768%2042.9739%20129.768%2044.2782Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_bam'%3e%3crect%20width='13'%20height='15'%20fill='white'%20transform='translate(25.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",LGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.9666%2013.9482L32%204.5V15.7351H30.4462L29.7889%2016.2729L29.3705%2016.0637V15.6963L30.3462%2014.9648H31.1439L30.9666%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M33.0334%2013.9482L32%204.5V15.7351H33.5538L34.2112%2016.2729L34.6295%2016.0637V15.6963L33.6539%2014.9648H32.8562L33.0334%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M32.7769%2016.0338H31.2231L31.5278%2018.1254C31.9083%2017.9732%2032.1222%2017.9697%2032.5027%2018.1254L32.7769%2016.0338Z'%20fill='white'/%3e%3ccircle%20cx='32'%20cy='18.9024'%20r='0.597609'%20fill='white'/%3e%3c/svg%3e",RGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.3732%2012.8333L28.5766%2017.4999H26.5V12.8333H30.3732Z'%20fill='white'/%3e%3cpath%20d='M32.2294%207.25712L26.5%2012.8333V6.5H33.007L32.2294%207.25712Z'%20fill='white'/%3e%3cpath%20d='M37.5001%2017.4997H28.5142L29.2508%2016.7805L35.0308%2011.1317L31.1466%2011.1272L32.9948%206.5H33.7908C36.6966%206.5%2038.0893%2010.2843%2035.9518%2012.3714L34.1024%2014.1786L34.1002%2014.181L37.5001%2017.5V17.4997Z'%20fill='white'/%3e%3c/svg%3e",OGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M16.1566%209.23523L18.3627%2017.4735H12.9886L11.3783%2014.6581L9.93787%2017.2225H6.92126L6.00037%2013.9823L7.64783%2011.9999L10.9594%2013.9257L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M26.0904%2015.5H24.5V8.5H26.0904V15.5Z'%20fill='white'/%3e%3cpath%20d='M39.5%2015.5H37.9096V8.5H39.5V15.5Z'%20fill='white'/%3e%3cpath%20d='M36.0011%2013.9841H32.8203V12.6465H36.0011V13.9841Z'%20fill='white'/%3e%3cpath%20d='M27.9989%2012.6465H26.3583V11.2049H27.9989V12.6465Z'%20fill='white'/%3e%3cpath%20d='M32.8203%2012.6465H31.1797V11.2049H32.8203V12.6465Z'%20fill='white'/%3e%3cpath%20d='M37.6417%2012.6465H36.0011V11.2049H37.6417V12.6465Z'%20fill='white'/%3e%3cpath%20d='M31.1797%2011.2049H27.9989V9.8673H31.1797V11.2049Z'%20fill='white'/%3e%3c/svg%3e",PGe="/assets/firedancer_circle_logo-D9jlxCje.svg",zGe="/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg",DGe="/assets/frankendancer_circle_logo-D5z79vwQ.svg",AGe="/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg",FGe="data:image/svg+xml,%3csvg%20width='35'%20height='20'%20viewBox='0%200%2035%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='25'%20cy='10'%20r='9.5'%20stroke='%233E332E'/%3e%3cmask%20id='path-2-inside-1_10887_28103'%20fill='white'%3e%3cpath%20d='M10%200C13.2712%200%2016.1755%201.57069%2018%203.99902C16.7442%205.67051%2016%207.74835%2016%2010C16%2012.2514%2016.7445%2014.3286%2018%2016C16.1756%2018.4287%2013.2715%2020%2010%2020C4.47715%2020%200%2015.5228%200%2010C0%204.47715%204.47715%200%2010%200Z'/%3e%3c/mask%3e%3cpath%20d='M18%203.99902L18.7995%204.5997L19.2508%203.99902L18.7995%203.39835L18%203.99902ZM18%2016L18.7995%2016.6006L19.2507%2016L18.7995%2015.3994L18%2016ZM10%200V1C12.9434%201%2015.5568%202.41194%2017.2005%204.5997L18%203.99902L18.7995%203.39835C16.7943%200.729431%2013.599%20-1%2010%20-1V0ZM18%203.99902L17.2005%203.39835C15.819%205.23708%2015%207.52433%2015%2010H16H17C17%207.97237%2017.6693%206.10394%2018.7995%204.5997L18%203.99902ZM16%2010H15C15%2012.4755%2015.8194%2014.7621%2017.2005%2016.6006L18%2016L18.7995%2015.3994C17.6695%2013.8951%2017%2012.0272%2017%2010H16ZM18%2016L17.2005%2015.3994C15.5567%2017.5876%2012.9436%2019%2010%2019V20V21C13.5994%2021%2016.7944%2019.2698%2018.7995%2016.6006L18%2016ZM10%2020V19C5.02944%2019%201%2014.9706%201%2010H0H-1C-1%2016.0751%203.92487%2021%2010%2021V20ZM0%2010H1C1%205.02944%205.02944%201%2010%201V0V-1C3.92487%20-1%20-1%203.92487%20-1%2010H0Z'%20fill='%233E332E'%20mask='url(%23path-2-inside-1_10887_28103)'/%3e%3c/svg%3e",BGe="_small-icon_imn4j_1",UGe="_medium-icon_imn4j_5",WGe="_large-icon_imn4j_9",VGe="_xlarge-icon_imn4j_13",HGe={smallIcon:BGe,mediumIcon:UGe,largeIcon:WGe,xlargeIcon:VGe},ZGe={[za.Frankendancer]:{src:DGe,alt:"Frankendancer Logo"},[za.Firedancer]:{src:PGe,alt:"Firedancer Logo"},[za.Agave]:{src:NGe,alt:"Anza Logo"},[za.AgaveJito]:{src:$Ge,alt:"Anza Jito Logo"},[za.AgavePaladin]:{src:LGe,alt:"Anza Paladin Logo"},[za.AgaveBam]:{src:MGe,alt:"Anza Bam Logo"},[za.AgaveRakurai]:{src:RGe,alt:"Anza Rakurai Logo"},[za.Sig]:null,[za.FiredancerHarmonic]:{src:zGe,alt:"Firedancer Harmonic Logo"},[za.AgaveHarmonic]:{src:OGe,alt:"Anza Harmonic Logo"},[za.FrankendancerHarmonic]:{src:AGe,alt:"Frankendancer Harmonic Logo"}},Nse=m.memo(function({client:e,size:t,showPlaceholder:n,className:r,placeholderClassName:i}){const o=Te(HGe[`${t}Icon`],r),a=e?ZGe[e]:void 0;return a?u.jsx("img",{src:a.src,alt:a.alt,className:o}):n?u.jsx("img",{src:FGe,alt:"Empty clients logo",className:Te(o,i)}):null}),qGe=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumSignificantDigits:3,maximumSignificantDigits:3});function HM(e){if(e==null)return;const t=qGe.formatToParts(Number(e)/dd);let n="",r;for(const{value:i,type:o}of t)o==="compact"?r=i:n+=i;return{formatted:n,suffix:r}}function GGe(e,t,n){if(e==null||!t)return;const r=10**n,i=100n*BigInt(r)*e/t;return Number(i)/r}const j6=0,uh=1,e1=2,$se=4;function Mse(e){return()=>e}function YGe(e){e()}function x_(e,t){return n=>e(t(n))}function Lse(e,t){return()=>e(t)}function KGe(e,t){return n=>e(t,n)}function ZM(e){return e!==void 0}function XGe(...e){return()=>{e.map(YGe)}}function t1(){}function T6(e,t){return t(e),e}function JGe(e,t){return t(e)}function Dr(...e){return e}function qn(e,t){return e(uh,t)}function Jt(e,t){e(j6,t)}function qM(e){e(e1)}function ki(e){return e($se)}function yt(e,t){return qn(e,KGe(t,j6))}function uu(e,t){const n=e(uh,r=>{n(),t(r)});return n}function Rse(e){let t,n;return r=>i=>{t=i,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function Ose(e,t){return e===t}function Ar(e=Ose){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function zt(e){return t=>n=>{e(n)&&t(n)}}function lt(e){return t=>x_(t,e)}function nc(e){return t=>()=>{t(e)}}function Ue(e,...t){const n=QGe(...t);return(r,i)=>{switch(r){case e1:qM(e);return;case uh:return qn(e,n(i))}}}function rc(e,t){return n=>r=>{n(t=e(t,r))}}function Ap(e){return t=>n=>{e>0?e--:t(n)}}function kd(e){let t=null,n;return r=>i=>{t=i,!n&&(n=setTimeout(()=>{n=void 0,r(t)},e))}}function cn(...e){const t=new Array(e.length);let n=0,r=null;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{const c=n;n=n|s,t[a]=l,c!==i&&n===i&&r&&(r(),r=null)})}),o=>a=>{const s=()=>{o([a].concat(t))};n===i?s():r=s}}function QGe(...e){return t=>e.reduceRight(JGe,t)}function eYe(e){let t,n;const r=()=>t==null?void 0:t();return function(i,o){switch(i){case uh:return o?n===o?void 0:(r(),n=o,t=qn(e,o),t):(r(),t1);case e1:r(),n=null;return}}}function Ye(e){let t=e;const n=kn();return(r,i)=>{switch(r){case j6:t=i;break;case uh:{i(t);break}case $se:return t}return n(r,i)}}function Wo(e,t){return T6(Ye(t),n=>yt(e,n))}function kn(){const e=[];return(t,n)=>{switch(t){case j6:e.slice().forEach(r=>{r(n)});return;case e1:e.splice(0,e.length);return;case uh:return e.push(n),()=>{const r=e.indexOf(n);r>-1&&e.splice(r,1)}}}}function Es(e){return T6(kn(),t=>yt(e,t))}function Rn(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:tYe(),singleton:n}}const tYe=()=>Symbol();function nYe(e){const t=new Map,n=({constructor:r,dependencies:i,id:o,singleton:a})=>{if(a&&t.has(o))return t.get(o);const s=r(i.map(l=>n(l)));return a&&t.set(o,s),s};return n(e)}function Oi(...e){const t=kn(),n=new Array(e.length);let r=0;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{n[a]=l,r=r|s,r===i&&Jt(t,n)})}),function(o,a){switch(o){case e1:{qM(t);return}case uh:return r===i&&a(n),qn(t,a)}}}function Rt(e,t=Ose){return Ue(e,Ar(t))}function GM(...e){return function(t,n){switch(t){case e1:return;case uh:return XGe(...e.map(r=>qn(r,n)))}}}var Va=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(Va||{});const rYe={0:"debug",3:"error",1:"log",2:"warn"},iYe=()=>typeof globalThis>"u"?window:globalThis,ch=Rn(()=>{const e=Ye(3);return{log:Ye((t,n,r=1)=>{var i;const o=(i=iYe().VIRTUOSO_LOG_LEVEL)!=null?i:ki(e);r>=o&&console[rYe[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function ic(e,t,n){return YM(e,t,n).callbackRef}function YM(e,t,n){const r=Oe.useRef(null);let i=a=>{};const o=Oe.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(a=>{const s=()=>{const l=a[0].target;l.offsetParent!==null&&e(l)};n?s():requestAnimationFrame(s)}):null,[e,n]);return i=a=>{a&&t?(o==null||o.observe(a),r.current=a):(r.current&&(o==null||o.unobserve(r.current)),r.current=null)},{callbackRef:i,ref:r}}function Pse(e,t,n,r,i,o,a,s,l){const c=Oe.useCallback(d=>{const f=oYe(d.children,t,s?"offsetWidth":"offsetHeight",i);let p=d.parentElement;for(;!p.dataset.virtuosoScroller;)p=p.parentElement;const v=p.lastElementChild.dataset.viewportType==="window";let _;v&&(_=p.ownerDocument.defaultView);const y=a?s?a.scrollLeft:a.scrollTop:v?s?_.scrollX||_.document.documentElement.scrollLeft:_.scrollY||_.document.documentElement.scrollTop:s?p.scrollLeft:p.scrollTop,b=a?s?a.scrollWidth:a.scrollHeight:v?s?_.document.documentElement.scrollWidth:_.document.documentElement.scrollHeight:s?p.scrollWidth:p.scrollHeight,w=a?s?a.offsetWidth:a.offsetHeight:v?s?_.innerWidth:_.innerHeight:s?p.offsetWidth:p.offsetHeight;r({scrollHeight:b,scrollTop:Math.max(y,0),viewportHeight:w}),o==null||o(s?zse("column-gap",getComputedStyle(d).columnGap,i):zse("row-gap",getComputedStyle(d).rowGap,i)),f!==null&&e(f)},[e,t,i,o,a,r,s]);return YM(c,n,l)}function oYe(e,t,n,r){const i=e.length;if(i===0)return null;const o=[];for(let a=0;a{if(!(l!=null&&l.offsetParent))return;const c=l.getBoundingClientRect(),d=c.width;let f,p;if(t){const v=t.getBoundingClientRect(),_=c.top-v.top;p=v.height-Math.max(0,_),f=_+t.scrollTop}else{const v=a.current.ownerDocument.defaultView;p=v.innerHeight-Math.max(0,c.top),f=c.top+v.scrollY}r.current={offsetTop:f,visibleHeight:p,visibleWidth:d},e(r.current)},[e,t]),{callbackRef:o,ref:a}=YM(i,!0,n),s=Oe.useCallback(()=>{i(a.current)},[i,a]);return Oe.useEffect(()=>{var l;if(t){t.addEventListener("scroll",s);const c=new ResizeObserver(()=>{requestAnimationFrame(s)});return c.observe(t),()=>{t.removeEventListener("scroll",s),c.unobserve(t)}}else{const c=(l=a.current)==null?void 0:l.ownerDocument.defaultView;return c==null||c.addEventListener("scroll",s),c==null||c.addEventListener("resize",s),()=>{c==null||c.removeEventListener("scroll",s),c==null||c.removeEventListener("resize",s)}}},[s,t,a]),o}const ga=Rn(()=>{const e=kn(),t=kn(),n=Ye(0),r=kn(),i=Ye(0),o=kn(),a=kn(),s=Ye(0),l=Ye(0),c=Ye(0),d=Ye(0),f=kn(),p=kn(),v=Ye(!1),_=Ye(!1),y=Ye(!1);return yt(Ue(e,lt(({scrollTop:b})=>b)),t),yt(Ue(e,lt(({scrollHeight:b})=>b)),a),yt(t,i),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:l,footerHeight:d,headerHeight:s,horizontalDirection:_,scrollBy:p,scrollContainerState:e,scrollHeight:a,scrollingInProgress:v,scrollTo:f,scrollTop:t,skipAnimationFrameInResizeObserver:y,smoothScrollTargetReached:r,statefulScrollTop:i,viewportHeight:o}},[],{singleton:!0}),w_={lvl:0};function Dse(e,t){const n=e.length;if(n===0)return[];let{index:r,value:i}=t(e[0]);const o=[];for(let a=1;at&&(s=s.concat(JM(i,t,n))),r>=t&&r<=n&&s.push({k:r,v:a}),r<=n&&(s=s.concat(JM(o,t,n))),s}function E6(e){const{l:t,lvl:n,r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(QM(t))return Wse(Gi(e,{lvl:n-1}));if(!_r(t)&&!_r(t.r))return Gi(t.r,{l:Gi(t,{r:t.r.l}),lvl:n,r:Gi(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(QM(e))return eL(Gi(e,{lvl:n-1}));if(!_r(r)&&!_r(r.l)){const i=r.l,o=QM(i)?r.lvl-1:r.lvl;return Gi(i,{l:Gi(e,{lvl:n-1,r:i.l}),lvl:i.lvl+1,r:eL(Gi(r,{l:i.r,lvl:o}))})}else throw new Error("Unexpected empty nodes")}}function Gi(e,t){return Bse(t.k!==void 0?t.k:e.k,t.v!==void 0?t.v:e.v,t.lvl!==void 0?t.lvl:e.lvl,t.l!==void 0?t.l:e.l,t.r!==void 0?t.r:e.r)}function Ase(e){return _r(e.r)?e.l:E6(Gi(e,{r:Ase(e.r)}))}function QM(e){return _r(e)||e.lvl>e.r.lvl}function Fse(e){return _r(e.r)?[e.k,e.v]:Fse(e.r)}function Bse(e,t,n,r=w_,i=w_){return{k:e,l:r,lvl:n,r:i,v:t}}function Use(e){return eL(Wse(e))}function Wse(e){const{l:t}=e;return!_r(t)&&t.lvl===e.lvl?Gi(t,{r:Gi(e,{l:t.r})}):e}function eL(e){const{lvl:t,r:n}=e;return!_r(n)&&!_r(n.r)&&n.lvl===t&&n.r.lvl===t?Gi(n,{l:Gi(e,{r:n.l}),lvl:t+1}):e}function aYe(e){return Dse(e,({k:t,v:n})=>({index:t,value:n}))}function Vse(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function S_(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}const tL=Rn(()=>({recalcInProgress:Ye(!1)}),[],{singleton:!0});function Hse(e,t,n){return e[N6(e,t,n)]}function N6(e,t,n,r=0){let i=e.length-1;for(;r<=i;){const o=Math.floor((r+i)/2),a=e[o],s=n(a,t);if(s===0)return o;if(s===-1){if(i-r<2)return o-1;i=o-1}else{if(i===r)return o;r=o+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function sYe(e,t,n,r){const i=N6(e,t,r),o=N6(e,n,r,i);return e.slice(i,o+1)}function du(e,t){return Math.round(e.getBoundingClientRect()[t])}function $6(e){return!_r(e.groupOffsetTree)}function nL({index:e},t){return t===e?0:t=f||o===p)&&(e=XM(e,f)):(c=p!==o,l=!0),d>i&&i>=f&&p!==o&&(e=Ns(e,i+1,p));c&&(e=Ns(e,a,o))}return[e,n]}function cYe(e){return typeof e.groupIndex<"u"}function dYe({offset:e},t){return t===e?0:t0?s+n:s}function Zse(e,t){if(!$6(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function qse(e,t,n){if(cYe(e))return t.groupIndices[e.groupIndex]+1;{const r=e.index==="LAST"?n:e.index;let i=Zse(r,t);return i=Math.max(0,i,Math.min(n,i)),i}}function fYe(e,t,n,r=0){return r>0&&(t=Math.max(t,Hse(e,r,nL).offset)),Dse(sYe(e,t,n,dYe),mYe)}function hYe(e,[t,n,r,i]){t.length>0&&r("received item sizes",t,Va.DEBUG);const o=e.sizeTree;let a=o,s=0;if(n.length>0&&_r(o)&&t.length===2){const p=t[0].size,v=t[1].size;a=n.reduce((_,y)=>Ns(Ns(_,y,p),y+1,v),a)}else[a,s]=uYe(a,t);if(a===o)return e;const{lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f}=rL(e.offsetTree,s,a,i);return{groupIndices:n,groupOffsetTree:n.reduce((p,v)=>Ns(p,v,C_(v,f,i)),n1()),lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f,sizeTree:a}}function pYe(e){return Fp(e).map(({k:t,v:n},r,i)=>{const o=i[r+1];return{endIndex:o?o.k-1:1/0,size:n,startIndex:t}})}function Gse(e,t){let n=0,r=0;for(;ni.start===r&&(i.end===t||i.end===1/0)&&i.value===n}const vYe={offsetHeight:"height",offsetWidth:"width"},oc=Rn(([{log:e},{recalcInProgress:t}])=>{const n=kn(),r=kn(),i=Wo(r,0),o=kn(),a=kn(),s=Ye(0),l=Ye([]),c=Ye(void 0),d=Ye(void 0),f=Ye((j,T)=>du(j,vYe[T])),p=Ye(void 0),v=Ye(0),_=lYe(),y=Wo(Ue(n,cn(l,e,v),rc(hYe,_),Ar()),_),b=Wo(Ue(l,Ar(),rc((j,T)=>({current:T,prev:j.current}),{current:[],prev:[]}),lt(({prev:j})=>j)),[]);yt(Ue(l,zt(j=>j.length>0),cn(y,v),lt(([j,T,E])=>{const $=j.reduce((A,M,P)=>Ns(A,M,C_(M,T.offsetTree,E)||P),n1());return{...T,groupIndices:j,groupOffsetTree:$}})),y),yt(Ue(r,cn(y),zt(([j,{lastIndex:T}])=>j[{endIndex:T,size:E,startIndex:j}])),n),yt(c,d);const w=Wo(Ue(c,lt(j=>j===void 0)),!0);yt(Ue(d,zt(j=>j!==void 0&&_r(ki(y).sizeTree)),lt(j=>[{endIndex:0,size:j,startIndex:0}])),n);const x=Es(Ue(n,cn(y),rc(({sizes:j},[T,E])=>({changed:E!==j,sizes:E}),{changed:!1,sizes:_}),lt(j=>j.changed)));qn(Ue(s,rc((j,T)=>({diff:j.prev-T,prev:T}),{diff:0,prev:0}),lt(j=>j.diff)),j=>{const{groupIndices:T}=ki(y);if(j>0)Jt(t,!0),Jt(o,j+Gse(j,T));else if(j<0){const E=ki(b);E.length>0&&(j-=Gse(-j,E)),Jt(a,j)}}),qn(Ue(s,cn(e)),([j,T])=>{j<0&&T("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},Va.ERROR)});const S=Es(o);yt(Ue(o,cn(y),lt(([j,T])=>{const E=T.groupIndices.length>0,$=[],A=T.lastSize;if(E){const M=k_(T.sizeTree,0);let P=0,te=0;for(;P{let Y=O.ranges;return O.prevSize!==0&&(Y=[...O.ranges,{endIndex:J+j-1,size:O.prevSize,startIndex:O.prevIndex}]),{prevIndex:J+j,prevSize:D,ranges:Y}},{prevIndex:j,prevSize:0,ranges:$}).ranges}return Fp(T.sizeTree).reduce((M,{k:P,v:te})=>({prevIndex:P+j,prevSize:te,ranges:[...M.ranges,{endIndex:P+j-1,size:M.prevSize,startIndex:M.prevIndex}]}),{prevIndex:0,prevSize:A,ranges:[]}).ranges})),n);const C=Es(Ue(a,cn(y,v),lt(([j,{offsetTree:T},E])=>{const $=-j;return C_($,T,E)})));return yt(Ue(a,cn(y,v),lt(([j,T,E])=>{if(T.groupIndices.length>0){if(_r(T.sizeTree))return T;let $=n1();const A=ki(b);let M=0,P=0,te=0;for(;M<-j;){te=A[P];const Z=A[P+1]-te-1;P++,M+=Z+1}if($=Fp(T.sizeTree).reduce((Z,{k:O,v:J})=>Ns(Z,Math.max(0,O+j),J),$),M!==-j){const Z=k_(T.sizeTree,te);$=Ns($,0,Z);const O=cu(T.sizeTree,-j+1)[1];$=Ns($,1,O)}return{...T,sizeTree:$,...rL(T.offsetTree,0,$,E)}}else{const $=Fp(T.sizeTree).reduce((A,{k:M,v:P})=>Ns(A,Math.max(0,M+j),P),n1());return{...T,sizeTree:$,...rL(T.offsetTree,0,$,E)}}})),y),{beforeUnshiftWith:S,data:p,defaultItemSize:d,firstItemIndex:s,fixedItemSize:c,gap:v,groupIndices:l,itemSize:f,listRefresh:x,shiftWith:a,shiftWithOffset:C,sizeRanges:n,sizes:y,statefulTotalCount:i,totalCount:r,trackItemSizes:w,unshiftWith:o}},Dr(ch,tL),{singleton:!0});function yYe(e){return e.reduce((t,n)=>(t.groupIndices.push(t.totalCount),t.totalCount+=n+1,t),{groupIndices:[],totalCount:0})}const Yse=Rn(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:i}])=>{const o=kn(),a=kn(),s=Es(Ue(o,lt(yYe)));return yt(Ue(s,lt(l=>l.totalCount)),n),yt(Ue(s,lt(l=>l.groupIndices)),e),yt(Ue(Oi(i,t,r),zt(([l,c])=>$6(c)),lt(([l,c,d])=>cu(c.groupOffsetTree,Math.max(l-d,0),"v")[0]),Ar(),lt(l=>[l])),a),{groupCounts:o,topItemsIndexes:a}},Dr(oc,ga)),dh=Rn(([{log:e}])=>{const t=Ye(!1),n=Es(Ue(t,zt(r=>r),Ar()));return qn(t,r=>{r&&ki(e)("props updated",{},Va.DEBUG)}),{didMount:n,propsReady:t}},Dr(ch),{singleton:!0}),bYe=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Kse(e){const t=typeof e=="number"?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!bYe)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const j_=Rn(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:i,fixedHeaderHeight:o,footerHeight:a,headerHeight:s,scrollingInProgress:l,scrollTo:c,smoothScrollTargetReached:d,viewportHeight:f},{log:p}])=>{const v=kn(),_=kn(),y=Ye(0);let b=null,w=null,x=null;function S(){b&&(b(),b=null),x&&(x(),x=null),w&&(clearTimeout(w),w=null),Jt(l,!1)}return yt(Ue(v,cn(n,f,r,y,s,a,p),cn(e,o,i),lt(([[C,j,T,E,$,A,M,P],te,Z,O])=>{const J=Kse(C),{align:D,behavior:Y,offset:F}=J,H=E-1,ee=qse(J,j,H);let ce=C_(ee,j.offsetTree,te)+A;D==="end"?(ce+=Z+cu(j.sizeTree,ee)[1]-T+O,ee===H&&(ce+=M)):D==="center"?ce+=(Z+cu(j.sizeTree,ee)[1]-T+O)/2:ce-=$,F&&(ce+=F);const U=ae=>{S(),ae?(P("retrying to scroll to",{location:C},Va.DEBUG),Jt(v,C)):(Jt(_,!0),P("list did not change, scroll successful",{},Va.DEBUG))};if(S(),Y==="smooth"){let ae=!1;x=qn(t,je=>{ae=ae||je}),b=uu(d,()=>{U(ae)})}else b=uu(Ue(t,_Ye(150)),U);return w=setTimeout(()=>{S()},1200),Jt(l,!0),P("scrolling from index to",{behavior:Y,index:ee,top:ce},Va.DEBUG),{behavior:Y,top:ce}})),c),{scrollTargetReached:_,scrollToIndex:v,topListHeight:y}},Dr(oc,ga,ch),{singleton:!0});function _Ye(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return r=>{r&&(t(!0),clearTimeout(n))}}}function iL(e,t){e==0?t():requestAnimationFrame(()=>{iL(e-1,t)})}function oL(e,t){const n=t-1;return typeof e=="number"?e:e.index==="LAST"?n:e.index}const T_=Rn(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:i,scrollToIndex:o},{didMount:a}])=>{const s=Ye(!0),l=Ye(0),c=Ye(!0);return yt(Ue(a,cn(l),zt(([d,f])=>!!f),nc(!1)),s),yt(Ue(a,cn(l),zt(([d,f])=>!!f),nc(!1)),c),qn(Ue(Oi(t,a),cn(s,n,e,c),zt(([[,d],f,{sizeTree:p},v,_])=>d&&(!_r(p)||ZM(v))&&!f&&!_),cn(l)),([,d])=>{uu(i,()=>{Jt(c,!0)}),iL(4,()=>{uu(r,()=>{Jt(s,!0)}),Jt(o,d)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:l,scrolledToInitialItem:s}},Dr(oc,ga,j_,dh),{singleton:!0});function Xse(e,t){return Math.abs(e-t)<1.01}const I_="up",E_="down",xYe="none",wYe={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},kYe=0,N_=Rn(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:i,viewportHeight:o}])=>{const a=Ye(!1),s=Ye(!0),l=kn(),c=kn(),d=Ye(4),f=Ye(kYe),p=Wo(Ue(GM(Ue(Rt(i),Ap(1),nc(!0)),Ue(Rt(i),Ap(1),nc(!1),Rse(100))),Ar()),!1),v=Wo(Ue(GM(Ue(n,nc(!0)),Ue(n,nc(!1),Rse(200))),Ar()),!1);yt(Ue(Oi(Rt(i),Rt(f)),lt(([x,S])=>x<=S),Ar()),s),yt(Ue(s,kd(50)),c);const _=Es(Ue(Oi(r,Rt(o),Rt(t),Rt(e),Rt(d)),rc((x,[{scrollHeight:S,scrollTop:C},j,T,E,$])=>{const A=C+j-S>-$,M={scrollHeight:S,scrollTop:C,viewportHeight:j};if(A){let te,Z;return C>x.state.scrollTop?(te="SCROLLED_DOWN",Z=x.state.scrollTop-C):(te="SIZE_DECREASED",Z=x.state.scrollTop-C||x.scrollTopDelta),{atBottom:!0,atBottomBecause:te,scrollTopDelta:Z,state:M}}let P;return M.scrollHeight>x.state.scrollHeight?P="SIZE_INCREASED":jx&&x.atBottom===S.atBottom))),y=Wo(Ue(r,rc((x,{scrollHeight:S,scrollTop:C,viewportHeight:j})=>{if(Xse(x.scrollHeight,S))return{changed:!1,jump:0,scrollHeight:S,scrollTop:C};{const T=S-(C+j)<1;return x.scrollTop!==C&&T?{changed:!0,jump:x.scrollTop-C,scrollHeight:S,scrollTop:C}:{changed:!0,jump:0,scrollHeight:S,scrollTop:C}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),zt(x=>x.changed),lt(x=>x.jump)),0);yt(Ue(_,lt(x=>x.atBottom)),a),yt(Ue(a,kd(50)),l);const b=Ye(E_);yt(Ue(r,lt(({scrollTop:x})=>x),Ar(),rc((x,S)=>ki(v)?{direction:x.direction,prevScrollTop:S}:{direction:Sx.direction)),b),yt(Ue(r,kd(50),nc(xYe)),b);const w=Ye(0);return yt(Ue(p,zt(x=>!x),nc(0)),w),yt(Ue(i,kd(100),cn(p),zt(([x,S])=>!!S),rc(([x,S],[C])=>[S,C],[0,0]),lt(([x,S])=>S-x)),w),{atBottomState:_,atBottomStateChange:l,atBottomThreshold:d,atTopStateChange:c,atTopThreshold:f,isAtBottom:a,isAtTop:s,isScrolling:p,lastJumpDueToItemResize:y,scrollDirection:b,scrollVelocity:w}},Dr(ga)),M6="top",L6="bottom",Jse="none";function Qse(e,t,n){return typeof e=="number"?n===I_&&t===M6||n===E_&&t===L6?e:0:n===I_?t===M6?e.main:e.reverse:t===L6?e.main:e.reverse}function ele(e,t){var n;return typeof e=="number"?e:(n=e[t])!=null?n:0}const aL=Rn(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:i}])=>{const o=kn(),a=Ye(0),s=Ye(0),l=Ye(0),c=Wo(Ue(Oi(Rt(r),Rt(i),Rt(n),Rt(o,S_),Rt(l),Rt(a),Rt(t),Rt(e),Rt(s)),lt(([d,f,p,[v,_],y,b,w,x,S])=>{const C=d-x,j=b+w,T=Math.max(p-C,0);let E=Jse;const $=ele(S,M6),A=ele(S,L6);return v-=x,v+=p+w,_+=p+w,_-=x,v>d+j-$&&(E=I_),_d!=null),Ar(S_)),[0,0]);return{increaseViewportBy:s,listBoundary:o,overscan:l,topListHeight:a,visibleRange:c}},Dr(ga),{singleton:!0});function SYe(e,t,n){if($6(t)){const r=Zse(e,t);return[{index:cu(t.groupOffsetTree,r)[0],offset:0,size:0},{data:n==null?void 0:n[0],index:r,offset:0,size:0}]}return[{data:n==null?void 0:n[0],index:e,offset:0,size:0}]}const sL={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function R6(e,t,n,r,i,o){const{lastIndex:a,lastOffset:s,lastSize:l}=i;let c=0,d=0;if(e.length>0){c=e[0].offset;const y=e[e.length-1];d=y.offset+y.size}const f=n-a,p=s+f*l+(f-1)*r,v=c,_=p-d;return{bottom:d,firstItemIndex:o,items:nle(e,i,o),offsetBottom:_,offsetTop:c,top:v,topItems:nle(t,i,o),topListHeight:t.reduce((y,b)=>b.size+y,0),totalCount:n}}function tle(e,t,n,r,i,o){let a=0;if(n.groupIndices.length>0)for(const d of n.groupIndices){if(d-a>=e)break;a++}const s=e+a,l=oL(t,s),c=Array.from({length:s}).map((d,f)=>({data:o[f+l],index:f+l,offset:0,size:0}));return R6(c,[],s,i,n,r)}function nle(e,t,n){if(e.length===0)return[];if(!$6(t))return e.map(c=>({...c,index:c.index+n,originalIndex:c.index}));const r=e[0].index,i=e[e.length-1].index,o=[],a=I6(t.groupOffsetTree,r,i);let s,l=0;for(const c of e){(!s||s.end{const y=Ye([]),b=Ye(0),w=kn();yt(o.topItemsIndexes,y);const x=Wo(Ue(Oi(v,_,Rt(l,S_),Rt(i),Rt(r),Rt(c),d,Rt(y),Rt(t),Rt(n),e),zt(([T,E,,$,,,,,,,A])=>{const M=A&&A.length!==$;return T&&!E&&!M}),lt(([,,[T,E],$,A,M,P,te,Z,O,J])=>{const D=A,{offsetTree:Y,sizeTree:F}=D,H=ki(b);if($===0)return{...sL,totalCount:$};if(T===0&&E===0)return H===0?{...sL,totalCount:$}:tle(H,M,A,Z,O,J||[]);if(_r(F))return H>0?null:R6(SYe(oL(M,$),D,J),[],$,O,D,Z);const ee=[];if(te.length>0){const me=te[0],ke=te[te.length-1];let he=0;for(const ue of I6(F,me,ke)){const re=ue.value,ge=Math.max(ue.start,me),$e=Math.min(ue.end,ke);for(let pe=ge;pe<=$e;pe++)ee.push({data:J==null?void 0:J[pe],index:pe,offset:he,size:re}),he+=re}}if(!P)return R6([],ee,$,O,D,Z);const ce=te.length>0?te[te.length-1]+1:0,U=fYe(Y,T,E,ce);if(U.length===0)return null;const ae=$-1,je=T6([],me=>{for(const ke of U){const he=ke.value;let ue=he.offset,re=ke.start;const ge=he.size;if(he.offset=E);pe++)me.push({data:J==null?void 0:J[pe],index:pe,offset:ue,size:ge}),ue+=ge+O}});return R6(je,ee,$,O,D,Z)}),zt(T=>T!==null),Ar()),sL);yt(Ue(e,zt(ZM),lt(T=>T==null?void 0:T.length)),i),yt(Ue(x,lt(T=>T.topListHeight)),f),yt(f,s),yt(Ue(x,lt(T=>[T.top,T.bottom])),a),yt(Ue(x,lt(T=>T.items)),w);const S=Es(Ue(x,zt(({items:T})=>T.length>0),cn(i,e),zt(([{items:T},E])=>T[T.length-1].originalIndex===E-1),lt(([,T,E])=>[T-1,E]),Ar(S_),lt(([T])=>T))),C=Es(Ue(x,kd(200),zt(({items:T,topItems:E})=>T.length>0&&T[0].originalIndex===E.length),lt(({items:T})=>T[0].index),Ar())),j=Es(Ue(x,zt(({items:T})=>T.length>0),lt(({items:T})=>{let E=0,$=T.length-1;for(;T[E].type==="group"&&E<$;)E++;for(;T[$].type==="group"&&$>E;)$--;return{endIndex:T[$].index,startIndex:T[E].index}}),Ar(Vse)));return{endReached:S,initialItemCount:b,itemsRendered:w,listState:x,rangeChanged:j,startReached:C,topItemsIndexes:y,...p}},Dr(oc,Yse,aL,T_,j_,N_,dh,tL),{singleton:!0}),rle=Rn(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:i}])=>{const o=kn(),a=Wo(Ue(Oi(n,e,r,t,i),lt(([s,l,c,d,f])=>s+l+c+d+f.offsetBottom+f.bottom)),0);return yt(Rt(a),o),{totalListHeight:a,totalListHeightChanged:o}},Dr(ga,Bp),{singleton:!0}),CYe=Rn(([{viewportHeight:e},{totalListHeight:t}])=>{const n=Ye(!1),r=Wo(Ue(Oi(n,e,t),zt(([i])=>i),lt(([,i,o])=>Math.max(0,i-o)),kd(0),Ar()),0);return{alignToBottom:n,paddingTopAddition:r}},Dr(ga,rle),{singleton:!0}),ile=Rn(()=>({context:Ye(null)})),jYe=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...i},viewportBottom:o,viewportTop:a})=>to?{...i,align:n??"end",behavior:r}:null,ole=Rn(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:i,headerHeight:o,scrollingInProgress:a,scrollTop:s,viewportHeight:l},{scrollToIndex:c}])=>{const d=kn();return yt(Ue(d,cn(t,l,n,o,i,r,s),cn(e),lt(([[f,p,v,_,y,b,w,x],S])=>{const{align:C,behavior:j,calculateViewLocation:T=jYe,done:E,...$}=f,A=qse(f,p,_-1),M=C_(A,p.offsetTree,S)+y+b,P=M+cu(p.sizeTree,A)[1],te=x+b,Z=x+v-w,O=T({itemBottom:P,itemTop:M,locationParams:{align:C,behavior:j,...$},viewportBottom:Z,viewportTop:te});return O?E&&uu(Ue(a,zt(J=>!J),Ap(ki(a)?1:2)),E):E&&E(),O}),zt(f=>f!==null)),c),{scrollIntoView:d}},Dr(oc,ga,j_,Bp,ch),{singleton:!0});function ale(e){return e?e==="smooth"?"smooth":"auto":!1}const TYe=(e,t)=>typeof e=="function"?ale(e(t)):t&&ale(e),IYe=Rn(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:i,isAtBottom:o},{scrollToIndex:a},{scrolledToInitialItem:s},{didMount:l,propsReady:c},{log:d},{scrollingInProgress:f},{context:p},{scrollIntoView:v}])=>{const _=Ye(!1),y=kn();let b=null;function w(j){Jt(a,{align:"end",behavior:j,index:"LAST"})}qn(Ue(Oi(Ue(Rt(t),Ap(1)),l),cn(Rt(_),o,s,f),lt(([[j,T],E,$,A,M])=>{let P=T&&A,te="auto";return P&&(te=TYe(E,$||M),P=P&&!!te),{followOutputBehavior:te,shouldFollow:P,totalCount:j}}),zt(({shouldFollow:j})=>j)),({followOutputBehavior:j,totalCount:T})=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j)}):b=uu(e,()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j),b=null})});function x(j){const T=uu(i,E=>{j&&!E.atBottom&&E.notAtBottomBecause==="SIZE_INCREASED"&&!b&&(ki(d)("scrolling to bottom due to increased size",{},Va.DEBUG),w("auto"))});setTimeout(T,100)}qn(Ue(Oi(Rt(_),t,c),zt(([j,,T])=>j&&T),rc(({value:j},[,T])=>({refreshed:j===T,value:T}),{refreshed:!1,value:0}),zt(({refreshed:j})=>j),cn(_,t)),([,j])=>{ki(s)&&x(j!==!1)}),qn(y,()=>{x(ki(_)!==!1)}),qn(Oi(Rt(_),i),([j,T])=>{j&&!T.atBottom&&T.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&w("auto")});const S=Ye(null),C=kn();return yt(GM(Ue(Rt(r),lt(j=>{var T;return(T=j==null?void 0:j.length)!=null?T:0})),Ue(Rt(t))),C),qn(Ue(Oi(Ue(C,Ap(1)),l),cn(Rt(S),s,f,p),lt(([[j,T],E,$,A,M])=>T&&$&&(E==null?void 0:E({context:M,totalCount:j,scrollingInProgress:A}))),zt(j=>!!j),kd(0)),j=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("scrolling into view",{}),Jt(v,j)}):b=uu(e,()=>{ki(d)("scrolling into view",{}),Jt(v,j),b=null})}),{autoscrollToBottom:y,followOutput:_,scrollIntoViewOnChange:S}},Dr(oc,N_,j_,T_,dh,ch,ga,ile,ole)),EYe=Rn(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:i},{initialItemCount:o,listState:a},{didMount:s}])=>(yt(Ue(s,cn(o),zt(([,l])=>l!==0),cn(i,r,t,n,e),lt(([[,l],c,d,f,p,v=[]])=>tle(l,c,d,f,p,v))),a),{}),Dr(oc,T_,Bp,dh),{singleton:!0}),NYe=Rn(([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=Ye(0);return qn(Ue(e,cn(r),zt(([,i])=>i!==0),lt(([,i])=>({top:i}))),i=>{uu(Ue(n,Ap(1),zt(o=>o.items.length>1)),()=>{requestAnimationFrame(()=>{Jt(t,i)})})}),{initialScrollTop:r}},Dr(dh,ga,Bp),{singleton:!0}),sle=Rn(([{scrollVelocity:e}])=>{const t=Ye(!1),n=kn(),r=Ye(!1);return yt(Ue(e,cn(r,t,n),zt(([i,o])=>!!o),lt(([i,o,a,s])=>{const{enter:l,exit:c}=o;if(a){if(c(i,s))return!1}else if(l(i,s))return!0;return a}),Ar()),t),qn(Ue(Oi(t,e,n),cn(r)),([[i,o,a],s])=>{i&&s&&s.change&&s.change(o,a)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},Dr(N_),{singleton:!0}),lL=Rn(([{scrollContainerState:e,scrollTo:t}])=>{const n=kn(),r=kn(),i=kn(),o=Ye(!1),a=Ye(void 0);return yt(Ue(Oi(n,r),lt(([{scrollHeight:s,scrollTop:l,viewportHeight:c},{offsetTop:d}])=>({scrollHeight:s,scrollTop:Math.max(0,l-d),viewportHeight:c}))),e),yt(Ue(t,cn(r),lt(([s,{offsetTop:l}])=>({...s,top:s.top+l}))),i),{customScrollParent:a,useWindowScroll:o,windowScrollContainerState:n,windowScrollTo:i,windowViewportRect:r}},Dr(ga)),$Ye=Rn(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:i},{didMount:o},{useWindowScroll:a,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=kn(),d=Ye(void 0),f=Ye(null),p=Ye(null);return yt(s,f),yt(l,p),qn(Ue(c,cn(t,r,a,f,p,n)),([v,_,y,b,w,x,S])=>{const C=pYe(_.sizeTree);b&&w!==null&&x!==null&&(y=w.scrollTop-x.offsetTop),y-=S,v({ranges:C,scrollTop:y})}),yt(Ue(d,zt(ZM),lt(MYe)),i),yt(Ue(o,cn(d),zt(([,v])=>v!==void 0),Ar(),lt(([,v])=>v.ranges)),e),{getState:c,restoreStateFrom:d}},Dr(oc,ga,T_,dh,lL));function MYe(e){return{align:"start",index:0,offset:e.scrollTop}}const LYe=Rn(([{topItemsIndexes:e}])=>{const t=Ye(0);return yt(Ue(t,zt(n=>n>=0),lt(n=>Array.from({length:n}).map((r,i)=>i))),e),{topItemCount:t}},Dr(Bp));function lle(e){let t=!1,n;return()=>(t||(t=!0,n=e()),n)}const RYe=lle(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),OYe=Rn(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:i,isScrolling:o,lastJumpDueToItemResize:a,scrollDirection:s},{listState:l},{beforeUnshiftWith:c,gap:d,shiftWithOffset:f,sizes:p},{log:v},{recalcInProgress:_}])=>{const y=Es(Ue(l,cn(a),rc(([,w,x,S],[{bottom:C,items:j,offsetBottom:T,totalCount:E},$])=>{const A=C+T;let M=0;return x===E&&w.length>0&&j.length>0&&(j[0].originalIndex===0&&w[0].originalIndex===0||(M=A-S,M!==0&&(M+=$))),[M,j,E,A]},[0,[],0,0]),zt(([w])=>w!==0),cn(r,s,n,i,v,_),zt(([,w,x,S,,,C])=>!C&&!S&&w!==0&&x===I_),lt(([[w],,,,,x])=>(x("Upward scrolling compensation",{amount:w},Va.DEBUG),w))));function b(w){w>0?(Jt(t,{behavior:"auto",top:-w}),Jt(e,0)):(Jt(e,0),Jt(t,{behavior:"auto",top:-w}))}return qn(Ue(y,cn(e,o)),([w,x,S])=>{S&&RYe()?Jt(e,x-w):b(-w)}),qn(Ue(Oi(Wo(o,!1),e,_),zt(([w,x,S])=>!w&&!S&&x!==0),lt(([w,x])=>x),kd(1)),b),yt(Ue(f,lt(w=>({top:-w}))),t),qn(Ue(c,cn(p,d),lt(([w,{groupIndices:x,lastSize:S,sizeTree:C},j])=>{function T(E){return E*(S+j)}if(x.length===0)return T(w);{let E=0;const $=k_(C,0);let A=0,M=0;for(;Aw&&(E-=$,P=w-A+1),A+=P,E+=T(P),M++}return E}})),w=>{Jt(e,w),requestAnimationFrame(()=>{Jt(t,{top:w}),requestAnimationFrame(()=>{Jt(e,0),Jt(_,!1)})})}),{deviation:e}},Dr(ga,N_,Bp,oc,ch,tL)),PYe=Rn(([e,t,n,r,i,o,a,s,l,c,d])=>({...e,...t,...n,...r,...i,...o,...a,...s,...l,...c,...d}),Dr(aL,EYe,dh,sle,rle,NYe,CYe,lL,ole,ch,ile)),ule=Rn(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,gap:i,groupIndices:o,itemSize:a,sizeRanges:s,sizes:l,statefulTotalCount:c,totalCount:d,trackItemSizes:f},{initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:_},y,b,w,{listState:x,topItemsIndexes:S,...C},{scrollToIndex:j},T,{topItemCount:E},{groupCounts:$},A])=>(yt(C.rangeChanged,A.scrollSeekRangeChanged),yt(Ue(A.windowViewportRect,lt(M=>M.visibleHeight)),y.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,gap:i,groupCounts:$,initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:_,sizeRanges:s,topItemCount:E,topItemsIndexes:S,totalCount:d,...w,groupIndices:o,itemSize:a,listState:x,scrollToIndex:j,statefulTotalCount:c,trackItemSizes:f,...C,...A,...y,sizes:l,...b}),Dr(oc,T_,ga,$Ye,IYe,Bp,j_,OYe,LYe,Yse,PYe));function zYe(e,t){const n={},r={};let i=0;const o=e.length;for(;i(w[x]=S=>{const C=b[t.methods[x]];Jt(C,S)},w),{})}function d(b){return a.reduce((w,x)=>(w[x]=eYe(b[t.events[x]]),w),{})}const f=Oe.forwardRef((b,w)=>{const{children:x,...S}=b,[C]=Oe.useState(()=>T6(nYe(e),E=>{l(E,S)})),[j]=Oe.useState(Lse(d,C));O6(()=>{for(const E of a)E in S&&qn(j[E],S[E]);return()=>{Object.values(j).map(qM)}},[S,j,C]),O6(()=>{l(C,S)}),Oe.useImperativeHandle(w,Mse(c(C)));const T=n;return u.jsx(s.Provider,{value:C,children:n?u.jsx(T,{...zYe([...r,...i,...a],S),children:x}):x})}),p=b=>{const w=Oe.useContext(s);return Oe.useCallback(x=>{Jt(w[b],x)},[w,b])},v=b=>{const w=Oe.useContext(s)[b],x=Oe.useCallback(S=>qn(w,S),[w]);return Oe.useSyncExternalStore(x,()=>ki(w),()=>ki(w))},_=b=>{const w=Oe.useContext(s)[b],[x,S]=Oe.useState(Lse(ki,w));return O6(()=>qn(w,C=>{C!==x&&S(Mse(C))}),[w,x]),x},y=Oe.version.startsWith("18")?v:_;return{Component:f,useEmitter:(b,w)=>{const x=Oe.useContext(s)[b];O6(()=>qn(x,w),[w,x])},useEmitterValue:y,usePublisher:p}}const P6=Oe.createContext(void 0),cle=Oe.createContext(void 0),dle=typeof document<"u"?Oe.useLayoutEffect:Oe.useEffect;function cL(e){return"self"in e}function DYe(e){return"body"in e}function fle(e,t,n,r=t1,i,o){const a=Oe.useRef(null),s=Oe.useRef(null),l=Oe.useRef(null),c=Oe.useCallback(p=>{let v,_,y;const b=p.target;if(DYe(b)||cL(b)){const x=cL(b)?b:b.defaultView;y=o?x.scrollX:x.scrollY,v=o?x.document.documentElement.scrollWidth:x.document.documentElement.scrollHeight,_=o?x.innerWidth:x.innerHeight}else y=o?b.scrollLeft:b.scrollTop,v=o?b.scrollWidth:b.scrollHeight,_=o?b.offsetWidth:b.offsetHeight;const w=()=>{e({scrollHeight:v,scrollTop:Math.max(y,0),viewportHeight:_})};p.suppressFlushSync?w():WB.flushSync(w),s.current!==null&&(y===s.current||y<=0||y===v-_)&&(s.current=null,t(!0),l.current&&(clearTimeout(l.current),l.current=null))},[e,t,o]);Oe.useEffect(()=>{const p=i||a.current;return r(i||a.current),c({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",c,{passive:!0}),()=>{r(null),p.removeEventListener("scroll",c)}},[a,c,n,r,i]);function d(p){const v=a.current;if(!v||(o?"offsetWidth"in v&&v.offsetWidth===0:"offsetHeight"in v&&v.offsetHeight===0))return;const _=p.behavior==="smooth";let y,b,w;cL(v)?(b=Math.max(du(v.document.documentElement,o?"width":"height"),o?v.document.documentElement.scrollWidth:v.document.documentElement.scrollHeight),y=o?v.innerWidth:v.innerHeight,w=o?window.scrollX:window.scrollY):(b=v[o?"scrollWidth":"scrollHeight"],y=du(v,o?"width":"height"),w=v[o?"scrollLeft":"scrollTop"]);const x=b-y;if(p.top=Math.ceil(Math.max(Math.min(x,p.top),0)),Xse(y,b)||p.top===w){e({scrollHeight:b,scrollTop:w,viewportHeight:y}),_&&t(!0);return}_?(s.current=p.top,l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,s.current=null,t(!0)},1e3)):s.current=null,o&&(p={behavior:p.behavior,left:p.top}),v.scrollTo(p)}function f(p){o&&(p={behavior:p.behavior,left:p.top}),a.current.scrollBy(p)}return{scrollByCallback:f,scrollerRef:a,scrollToCallback:d}}const dL="-webkit-sticky",hle="sticky",fL=lle(()=>{if(typeof document>"u")return hle;const e=document.createElement("div");return e.style.position=dL,e.style.position===dL?dL:hle});function hL(e){return e}const AYe=Rn(()=>{const e=Ye(s=>`Item ${s}`),t=Ye(s=>`Group ${s}`),n=Ye({}),r=Ye(hL),i=Ye("div"),o=Ye(t1),a=(s,l=null)=>Wo(Ue(n,lt(c=>c[s]),Ar()),l);return{components:n,computeItemKey:r,EmptyPlaceholder:a("EmptyPlaceholder"),FooterComponent:a("Footer"),GroupComponent:a("Group","div"),groupContent:t,HeaderComponent:a("Header"),HeaderFooterTag:i,ItemComponent:a("Item","div"),itemContent:e,ListComponent:a("List","div"),ScrollerComponent:a("Scroller","div"),scrollerRef:o,ScrollSeekPlaceholder:a("ScrollSeekPlaceholder"),TopItemListComponent:a("TopItemList")}}),FYe=Rn(([e,t])=>({...e,...t}),Dr(ule,AYe)),BYe=({height:e})=>u.jsx("div",{style:{height:e}}),UYe={overflowAnchor:"none",position:fL(),zIndex:1},ple={overflowAnchor:"none"},WYe={...ple,display:"inline-block",height:"100%"},mle=Oe.memo(function({showTopList:e=!1}){const t=Wt("listState"),n=ml("sizeRanges"),r=Wt("useWindowScroll"),i=Wt("customScrollParent"),o=ml("windowScrollContainerState"),a=ml("scrollContainerState"),s=i||r?o:a,l=Wt("itemContent"),c=Wt("context"),d=Wt("groupContent"),f=Wt("trackItemSizes"),p=Wt("itemSize"),v=Wt("log"),_=ml("gap"),y=Wt("horizontalDirection"),{callbackRef:b}=Pse(n,p,f,e?t1:s,v,_,i,y,Wt("skipAnimationFrameInResizeObserver")),[w,x]=Oe.useState(0);gL("deviation",O=>{w!==O&&x(O)});const S=Wt("EmptyPlaceholder"),C=Wt("ScrollSeekPlaceholder")||BYe,j=Wt("ListComponent"),T=Wt("ItemComponent"),E=Wt("GroupComponent"),$=Wt("computeItemKey"),A=Wt("isSeeking"),M=Wt("groupIndices").length>0,P=Wt("alignToBottom"),te=Wt("initialItemFinalLocationReached"),Z=e?{}:{boxSizing:"border-box",...y?{display:"inline-block",height:"100%",marginLeft:w!==0?w:P?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:w!==0?w:P?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...te?{}:{visibility:"hidden"}};return!e&&t.totalCount===0&&S?u.jsx(S,{...Fr(S,c)}):u.jsx(j,{...Fr(j,c),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:b,style:Z,children:(e?t.topItems:t.items).map(O=>{const J=O.originalIndex,D=$(J+t.firstItemIndex,O.data,c);return A?m.createElement(C,{...Fr(C,c),height:O.size,index:O.index,key:D,type:O.type||"item",...O.type==="group"?{}:{groupIndex:O.groupIndex}}):O.type==="group"?m.createElement(E,{...Fr(E,c),"data-index":J,"data-item-index":O.index,"data-known-size":O.size,key:D,style:UYe},d(O.index,c)):m.createElement(T,{...Fr(T,c),...gle(T,O.data),"data-index":J,"data-item-group-index":O.groupIndex,"data-item-index":O.index,"data-known-size":O.size,key:D,style:y?WYe:ple},M?l(O.index,O.groupIndex,O.data,c):l(O.index,O.data,c))})})}),VYe={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},HYe={outline:"none",overflowX:"auto",position:"relative"},r1=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),ZYe={position:fL(),top:0,width:"100%",zIndex:1};function Fr(e,t){if(typeof e!="string")return{context:t}}function gle(e,t){return{item:typeof e=="string"?void 0:t}}const qYe=Oe.memo(function(){const e=Wt("HeaderComponent"),t=ml("headerHeight"),n=Wt("HeaderFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null}),GYe=Oe.memo(function(){const e=Wt("FooterComponent"),t=ml("footerHeight"),n=Wt("HeaderFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null});function pL({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Oe.memo(function({children:r,style:i,context:o,...a}){const s=n("scrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("scrollerRef"),f=t("horizontalDirection")||!1,{scrollByCallback:p,scrollerRef:v,scrollToCallback:_}=fle(s,c,l,d,void 0,f);return e("scrollTo",_),e("scrollBy",p),u.jsx(l,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:v,style:{...f?HYe:VYe,...i},tabIndex:0,...a,...Fr(l,o),children:r})})}function mL({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Oe.memo(function({children:r,style:i,context:o,...a}){const s=n("windowScrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("totalListHeight"),f=t("deviation"),p=t("customScrollParent"),v=Oe.useRef(null),_=t("scrollerRef"),{scrollByCallback:y,scrollerRef:b,scrollToCallback:w}=fle(s,c,l,_,p);return dle(()=>{var x;return b.current=p||((x=v.current)==null?void 0:x.ownerDocument.defaultView),()=>{b.current=null}},[b,p]),e("windowScrollTo",w),e("scrollBy",y),u.jsx(l,{ref:v,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...d!==0?{height:d+f}:{}},...a,...Fr(l,o),children:r})})}const YYe=({children:e})=>{const t=Oe.useContext(P6),n=ml("viewportHeight"),r=ml("fixedItemHeight"),i=Wt("alignToBottom"),o=Wt("horizontalDirection"),a=Oe.useMemo(()=>x_(n,l=>du(l,o?"width":"height")),[n,o]),s=ic(a,!0,Wt("skipAnimationFrameInResizeObserver"));return Oe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:s,style:r1(i),children:e})},KYe=({children:e})=>{const t=Oe.useContext(P6),n=ml("windowViewportRect"),r=ml("fixedItemHeight"),i=Wt("customScrollParent"),o=KM(n,i,Wt("skipAnimationFrameInResizeObserver")),a=Wt("alignToBottom");return Oe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(a),children:e})},XYe=({children:e})=>{const t=Wt("TopItemListComponent")||"div",n=Wt("headerHeight"),r={...ZYe,marginTop:`${n}px`},i=Wt("context");return u.jsx(t,{style:r,...Fr(t,i),children:e})},JYe=Oe.memo(function(e){const t=Wt("useWindowScroll"),n=Wt("topItemsIndexes").length>0,r=Wt("customScrollParent"),i=Wt("context");return u.jsxs(r||t?tKe:eKe,{...e,context:i,children:[n&&u.jsx(XYe,{children:u.jsx(mle,{showTopList:!0})}),u.jsxs(r||t?KYe:YYe,{children:[u.jsx(qYe,{}),u.jsx(mle,{}),u.jsx(GYe,{})]})]})}),{Component:QYe,useEmitter:gL,useEmitterValue:Wt,usePublisher:ml}=uL(FYe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},JYe),eKe=pL({useEmitter:gL,useEmitterValue:Wt,usePublisher:ml}),tKe=mL({useEmitter:gL,useEmitterValue:Wt,usePublisher:ml}),vL=QYe,nKe=Rn(()=>{const e=Ye(c=>u.jsxs("td",{children:["Item $",c]})),t=Ye(null),n=Ye(c=>u.jsxs("td",{colSpan:1e3,children:["Group ",c]})),r=Ye(null),i=Ye(null),o=Ye({}),a=Ye(hL),s=Ye(t1),l=(c,d=null)=>Wo(Ue(o,lt(f=>f[c]),Ar()),d);return{components:o,computeItemKey:a,context:t,EmptyPlaceholder:l("EmptyPlaceholder"),FillerRow:l("FillerRow"),fixedFooterContent:i,fixedHeaderContent:r,itemContent:e,groupContent:n,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder"),TableBodyComponent:l("TableBody","tbody"),TableComponent:l("Table","table"),TableFooterComponent:l("TableFoot","tfoot"),TableHeadComponent:l("TableHead","thead"),TableRowComponent:l("TableRow","tr"),GroupComponent:l("Group","tr")}}),rKe=Rn(([e,t])=>({...e,...t}),Dr(ule,nKe)),iKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{height:e}})}),oKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{border:0,height:e,padding:0}})}),aKe={overflowAnchor:"none"},vle={position:fL(),zIndex:2,overflowAnchor:"none"},yle=Oe.memo(function({showTopList:e=!1}){const t=Qt("listState"),n=Qt("computeItemKey"),r=Qt("firstItemIndex"),i=Qt("context"),o=Qt("isSeeking"),a=Qt("fixedHeaderHeight"),s=Qt("groupIndices").length>0,l=Qt("itemContent"),c=Qt("groupContent"),d=Qt("ScrollSeekPlaceholder")||iKe,f=Qt("GroupComponent"),p=Qt("TableRowComponent"),v=(e?t.topItems:[]).reduce((y,b,w)=>(w===0?y.push(b.size):y.push(y[w-1]+b.size),y),[]),_=(e?t.topItems:t.items).map(y=>{const b=y.originalIndex,w=n(b+r,y.data,i),x=e?b===0?0:v[b-1]:0;return o?m.createElement(d,{...Fr(d,i),height:y.size,index:y.index,key:w,type:y.type||"item"}):y.type==="group"?m.createElement(f,{...Fr(f,i),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,key:w,style:{...vle,top:a}},c(y.index,i)):m.createElement(p,{...Fr(p,i),...gle(p,y.data),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,"data-item-group-index":y.groupIndex,key:w,style:e?{...vle,top:a+x}:aKe},s?l(y.index,y.groupIndex,y.data,i):l(y.index,y.data,i))});return u.jsx(u.Fragment,{children:_})}),sKe=Oe.memo(function(){const e=Qt("listState"),t=Qt("topItemsIndexes").length>0,n=fu("sizeRanges"),r=Qt("useWindowScroll"),i=Qt("customScrollParent"),o=fu("windowScrollContainerState"),a=fu("scrollContainerState"),s=i||r?o:a,l=Qt("trackItemSizes"),c=Qt("itemSize"),d=Qt("log"),{callbackRef:f,ref:p}=Pse(n,c,l,s,d,void 0,i,!1,Qt("skipAnimationFrameInResizeObserver")),[v,_]=Oe.useState(0);yL("deviation",M=>{v!==M&&(p.current.style.marginTop=`${M}px`,_(M))});const y=Qt("EmptyPlaceholder"),b=Qt("FillerRow")||oKe,w=Qt("TableBodyComponent"),x=Qt("paddingTopAddition"),S=Qt("statefulTotalCount"),C=Qt("context");if(S===0&&y)return u.jsx(y,{...Fr(y,C)});const j=(t?e.topItems:[]).reduce((M,P)=>M+P.size,0),T=e.offsetTop+x+v-j,E=e.offsetBottom,$=T>0?u.jsx(b,{context:C,height:T},"padding-top"):null,A=E>0?u.jsx(b,{context:C,height:E},"padding-bottom"):null;return u.jsxs(w,{"data-testid":"virtuoso-item-list",ref:f,...Fr(w,C),children:[$,t&&u.jsx(yle,{showTopList:!0}),u.jsx(yle,{}),A]})}),lKe=({children:e})=>{const t=Oe.useContext(P6),n=fu("viewportHeight"),r=fu("fixedItemHeight"),i=ic(Oe.useMemo(()=>x_(n,o=>du(o,"height")),[n]),!0,Qt("skipAnimationFrameInResizeObserver"));return Oe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:i,style:r1(!1),children:e})},uKe=({children:e})=>{const t=Oe.useContext(P6),n=fu("windowViewportRect"),r=fu("fixedItemHeight"),i=Qt("customScrollParent"),o=KM(n,i,Qt("skipAnimationFrameInResizeObserver"));return Oe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(!1),children:e})},cKe=Oe.memo(function(e){const t=Qt("useWindowScroll"),n=Qt("customScrollParent"),r=fu("fixedHeaderHeight"),i=fu("fixedFooterHeight"),o=Qt("fixedHeaderContent"),a=Qt("fixedFooterContent"),s=Qt("context"),l=ic(Oe.useMemo(()=>x_(r,w=>du(w,"height")),[r]),!0,Qt("skipAnimationFrameInResizeObserver")),c=ic(Oe.useMemo(()=>x_(i,w=>du(w,"height")),[i]),!0,Qt("skipAnimationFrameInResizeObserver")),d=n||t?hKe:fKe,f=n||t?uKe:lKe,p=Qt("TableComponent"),v=Qt("TableHeadComponent"),_=Qt("TableFooterComponent"),y=o?u.jsx(v,{ref:l,style:{position:"sticky",top:0,zIndex:2},...Fr(v,s),children:o()},"TableHead"):null,b=a?u.jsx(_,{ref:c,style:{bottom:0,position:"sticky",zIndex:1},...Fr(_,s),children:a()},"TableFoot"):null;return u.jsx(d,{...e,...Fr(d,s),children:u.jsx(f,{children:u.jsxs(p,{style:{borderSpacing:0,overflowAnchor:"none"},...Fr(p,s),children:[y,u.jsx(sKe,{},"TableBody"),b]})})})}),{Component:dKe,useEmitter:yL,useEmitterValue:Qt,usePublisher:fu}=uL(rKe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},cKe),fKe=pL({useEmitter:yL,useEmitterValue:Qt,usePublisher:fu}),hKe=mL({useEmitter:yL,useEmitterValue:Qt,usePublisher:fu}),pKe=dKe,ble={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},mKe={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:_le,floor:z6,max:$_,min:bL,round:xle}=Math;function wle(e,t,n){return Array.from({length:t-e+1}).map((r,i)=>({data:n===null?null:n[i+e],index:i+e}))}function gKe(e){return{...mKe,items:e}}function D6(e,t){return e&&e.width===t.width&&e.height===t.height}function vKe(e,t){return e&&e.column===t.column&&e.row===t.row}const yKe=Rn(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:i,headerHeight:o,scrollBy:a,scrollContainerState:s,scrollTo:l,scrollTop:c,smoothScrollTargetReached:d,viewportHeight:f},p,v,{didMount:_,propsReady:y},{customScrollParent:b,useWindowScroll:w,windowScrollContainerState:x,windowScrollTo:S,windowViewportRect:C},j])=>{const T=Ye(0),E=Ye(0),$=Ye(ble),A=Ye({height:0,width:0}),M=Ye({height:0,width:0}),P=kn(),te=kn(),Z=Ye(0),O=Ye(null),J=Ye({column:0,row:0}),D=kn(),Y=kn(),F=Ye(!1),H=Ye(0),ee=Ye(!0),ce=Ye(!1),U=Ye(!1);qn(Ue(_,cn(H),zt(([ue,re])=>!!re)),()=>{Jt(ee,!1)}),qn(Ue(Oi(_,ee,M,A,H,ce),zt(([ue,re,ge,$e,,pe])=>ue&&!re&&ge.height!==0&&$e.height!==0&&!pe)),([,,,,ue])=>{Jt(ce,!0),iL(1,()=>{Jt(P,ue)}),uu(Ue(c),()=>{Jt(t,[0,0]),Jt(ee,!0)})}),yt(Ue(Y,zt(ue=>ue!=null&&ue.scrollTop>0),nc(0)),E),qn(Ue(_,cn(Y),zt(([,ue])=>ue!=null)),([,ue])=>{ue&&(Jt(A,ue.viewport),Jt(M,ue.item),Jt(J,ue.gap),ue.scrollTop>0&&(Jt(F,!0),uu(Ue(c,Ap(1)),re=>{Jt(F,!1)}),Jt(l,{top:ue.scrollTop})))}),yt(Ue(A,lt(({height:ue})=>ue)),f),yt(Ue(Oi(Rt(A,D6),Rt(M,D6),Rt(J,(ue,re)=>ue&&ue.column===re.column&&ue.row===re.row),Rt(c)),lt(([ue,re,ge,$e])=>({gap:ge,item:re,scrollTop:$e,viewport:ue}))),D),yt(Ue(Oi(Rt(T),r,Rt(J,vKe),Rt(M,D6),Rt(A,D6),Rt(O),Rt(E),Rt(F),Rt(ee),Rt(H)),zt(([,,,,,,,ue])=>!ue),lt(([ue,[re,ge],$e,pe,ye,Se,Ce,,Be,Ge])=>{const{column:xt,row:St}=$e,{height:ut,width:ct}=pe,{width:bt}=ye;if(Ce===0&&(ue===0||bt===0))return ble;if(ct===0){const wr=oL(Ge,ue),Pn=wr+Math.max(Ce-1,0);return gKe(wle(wr,Pn,Se))}const Qe=kle(bt,ct,xt);let Ke,De;Be?re===0&&ge===0&&Ce>0?(Ke=0,De=Ce-1):(Ke=Qe*z6((re+St)/(ut+St)),De=Qe*_le((ge+St)/(ut+St))-1,De=bL(ue-1,$_(De,Qe-1)),Ke=bL(De,$_(0,Ke))):(Ke=0,De=-1);const Dt=wle(Ke,De,Se),{bottom:pn,top:Yn}=Sle(ye,$e,pe,Dt),fr=_le(ue/Qe),Kn=fr*ut+(fr-1)*St-pn;return{bottom:pn,itemHeight:ut,items:Dt,itemWidth:ct,offsetBottom:Kn,offsetTop:Yn,top:Yn}})),$),yt(Ue(O,zt(ue=>ue!==null),lt(ue=>ue.length)),T),yt(Ue(Oi(A,M,$,J),zt(([ue,re,{items:ge}])=>ge.length>0&&re.height!==0&&ue.height!==0),lt(([ue,re,{items:ge},$e])=>{const{bottom:pe,top:ye}=Sle(ue,$e,re,ge);return[ye,pe]}),Ar(S_)),t);const ae=Ye(!1);yt(Ue(c,cn(ae),lt(([ue,re])=>re||ue!==0)),ae);const je=Es(Ue(Oi($,T),zt(([{items:ue}])=>ue.length>0),cn(ae),zt(([[ue,re],ge])=>{const $e=ue.items[ue.items.length-1].index===re-1;return(ge||ue.bottom>0&&ue.itemHeight>0&&ue.offsetBottom===0&&ue.items.length===re)&&$e}),lt(([[,ue]])=>ue-1),Ar())),me=Es(Ue(Rt($),zt(({items:ue})=>ue.length>0&&ue[0].index===0),nc(0),Ar())),ke=Es(Ue(Rt($),cn(F),zt(([{items:ue},re])=>ue.length>0&&!re),lt(([{items:ue}])=>({endIndex:ue[ue.length-1].index,startIndex:ue[0].index})),Ar(Vse),kd(0)));yt(ke,v.scrollSeekRangeChanged),yt(Ue(P,cn(A,M,T,J),lt(([ue,re,ge,$e,pe])=>{const ye=Kse(ue),{align:Se,behavior:Ce,offset:Be}=ye;let Ge=ye.index;Ge==="LAST"&&(Ge=$e-1),Ge=$_(0,Ge,bL($e-1,Ge));let xt=_L(re,pe,ge,Ge);return Se==="end"?xt=xle(xt-re.height+ge.height):Se==="center"&&(xt=xle(xt-re.height/2+ge.height/2)),Be&&(xt+=Be),{behavior:Ce,top:xt}})),l);const he=Wo(Ue($,lt(ue=>ue.offsetBottom+ue.bottom)),0);return yt(Ue(C,lt(ue=>({height:ue.visibleHeight,width:ue.visibleWidth}))),A),{customScrollParent:b,data:O,deviation:Z,footerHeight:i,gap:J,headerHeight:o,increaseViewportBy:e,initialItemCount:E,itemDimensions:M,overscan:n,restoreStateFrom:Y,scrollBy:a,scrollContainerState:s,scrollHeight:te,scrollTo:l,scrollToIndex:P,scrollTop:c,smoothScrollTargetReached:d,totalCount:T,useWindowScroll:w,viewportDimensions:A,windowScrollContainerState:x,windowScrollTo:S,windowViewportRect:C,...v,gridState:$,horizontalDirection:U,initialTopMostItemIndex:H,totalListHeight:he,...p,endReached:je,propsReady:y,rangeChanged:ke,startReached:me,stateChanged:D,stateRestoreInProgress:F,...j}},Dr(aL,ga,N_,sle,dh,lL,ch));function kle(e,t,n){return $_(1,z6((e+n)/(z6(t)+n)))}function Sle(e,t,n,r){const{height:i}=n;if(i===void 0||r.length===0)return{bottom:0,top:0};const o=_L(e,t,n,r[0].index);return{bottom:_L(e,t,n,r[r.length-1].index)+i,top:o}}function _L(e,t,n,r){const i=kle(e.width,n.width,t.column),o=z6(r/i),a=o*n.height+$_(0,o-1)*t.row;return a>0?a+t.row:a}const bKe=Rn(()=>{const e=Ye(f=>`Item ${f}`),t=Ye({}),n=Ye(null),r=Ye("virtuoso-grid-item"),i=Ye("virtuoso-grid-list"),o=Ye(hL),a=Ye("div"),s=Ye(t1),l=(f,p=null)=>Wo(Ue(t,lt(v=>v[f]),Ar()),p),c=Ye(!1),d=Ye(!1);return yt(Rt(d),c),{components:t,computeItemKey:o,context:n,FooterComponent:l("Footer"),HeaderComponent:l("Header"),headerFooterTag:a,itemClassName:r,ItemComponent:l("Item","div"),itemContent:e,listClassName:i,ListComponent:l("List","div"),readyStateChanged:c,reportReadyState:d,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}}),_Ke=Rn(([e,t])=>({...e,...t}),Dr(yKe,bKe)),xKe=Oe.memo(function(){const e=Yr("gridState"),t=Yr("listClassName"),n=Yr("itemClassName"),r=Yr("itemContent"),i=Yr("computeItemKey"),o=Yr("isSeeking"),a=gl("scrollHeight"),s=Yr("ItemComponent"),l=Yr("ListComponent"),c=Yr("ScrollSeekPlaceholder"),d=Yr("context"),f=gl("itemDimensions"),p=gl("gap"),v=Yr("log"),_=Yr("stateRestoreInProgress"),y=gl("reportReadyState"),b=ic(Oe.useMemo(()=>w=>{const x=w.parentElement.parentElement.scrollHeight;a(x);const S=w.firstChild;if(S){const{height:C,width:j}=S.getBoundingClientRect();f({height:C,width:j})}p({column:jle("column-gap",getComputedStyle(w).columnGap,v),row:jle("row-gap",getComputedStyle(w).rowGap,v)})},[a,f,p,v]),!0,!1);return dle(()=>{e.itemHeight>0&&e.itemWidth>0&&y(!0)},[e]),_?null:u.jsx(l,{className:t,ref:b,...Fr(l,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(w=>{const x=i(w.index,w.data,d);return o?u.jsx(c,{...Fr(c,d),height:e.itemHeight,index:w.index,width:e.itemWidth},x):m.createElement(s,{...Fr(s,d),className:n,"data-index":w.index,key:x},r(w.index,w.data,d))})})}),wKe=Oe.memo(function(){const e=Yr("HeaderComponent"),t=gl("headerHeight"),n=Yr("headerFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Yr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null}),kKe=Oe.memo(function(){const e=Yr("FooterComponent"),t=gl("footerHeight"),n=Yr("headerFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Yr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null}),SKe=({children:e})=>{const t=Oe.useContext(cle),n=gl("itemDimensions"),r=gl("viewportDimensions"),i=ic(Oe.useMemo(()=>o=>{r(o.getBoundingClientRect())},[r]),!0,!1);return Oe.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),u.jsx("div",{ref:i,style:r1(!1),children:e})},CKe=({children:e})=>{const t=Oe.useContext(cle),n=gl("windowViewportRect"),r=gl("itemDimensions"),i=Yr("customScrollParent"),o=KM(n,i,!1);return Oe.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),u.jsx("div",{ref:o,style:r1(!1),children:e})},jKe=Oe.memo(function({...e}){const t=Yr("useWindowScroll"),n=Yr("customScrollParent"),r=n||t?IKe:TKe,i=n||t?CKe:SKe,o=Yr("context");return u.jsx(r,{...e,...Fr(r,o),children:u.jsxs(i,{children:[u.jsx(wKe,{}),u.jsx(xKe,{}),u.jsx(kKe,{})]})})}),{useEmitter:Cle,useEmitterValue:Yr,usePublisher:gl}=uL(_Ke,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},jKe),TKe=pL({useEmitter:Cle,useEmitterValue:Yr,usePublisher:gl}),IKe=mL({useEmitter:Cle,useEmitterValue:Yr,usePublisher:gl});function jle(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Va.WARN),t==="normal"?0:parseInt(t??"0",10)}const EKe="_digit_1rfzd_1",NKe="_hidden_1rfzd_5",$Ke="_selection-text_1rfzd_10",xL={digit:EKe,hidden:NKe,selectionText:$Ke};function MKe(){const[e,t]=m.useState(()=>document.visibilityState==="visible");return m.useEffect(()=>{const n=()=>{t(document.visibilityState==="visible")};return document.addEventListener("visibilitychange",n),()=>document.removeEventListener("visibilitychange",n)},[]),e}const LKe=20;function M_(e){return MKe()?u.jsx(OKe,{...e}):null}function RKe(e,t){const{start:n,target:r}=t;return{start:n,target:r,maxDigitsSeen:Math.max(e.maxDigitsSeen,wL(n),wL(r))}}function OKe({value:e,animationDurationMs:t=150,height:n,className:r,containerRowJustify:i}){const[o,a]=m.useReducer(RKe,{start:e,target:e,maxDigitsSeen:wL(e)}),{start:s,target:l,maxDigitsSeen:c}=o,[d,f]=m.useState(e),[p,v]=m.useState(()=>{const T=Ile(e).reverse(),E=Array.from({length:T.length});return{digits:T,animations:E}}),_=l>s?"incr":"decr",{stepDurationMs:y,shouldJumpToTarget:b}=m.useMemo(()=>{const T=Math.abs(l-s),E=Math.trunc(t/T);return E{const T=d===l||b?l:_==="incr"?d+1:d-1;return{number:T,paddedDigits:Ile(T,c)}},[d,_,c,b,l]),x=m.useCallback((T,E)=>{v($=>{const A=[...$.animations];return A[E]=T,{...$,animations:A}})},[]),S=m.useCallback((T,E)=>{v($=>{const A=[...$.digits],M=[...$.animations];A[E]=T,M[E]=void 0;const P={digits:A,animations:M};return parseInt([...P.digits].reverse().join(""),10)===Math.abs(w.number)&&f(w.number),P})},[w.number]),C=m.useMemo(()=>p.animations.some(T=>!!T),[p.animations]);m.useLayoutEffect(()=>{e===l||C||a({start:d,target:e})},[d,C,w.number,l,e]);const j=m.useMemo(()=>{if(n!=null)return{height:`${n}px`}},[n]);return u.jsxs(V,{position:"relative",justify:i,children:[u.jsx(q,{className:Te(r,xL.selectionText),style:j,children:d}),u.jsxs(V,{height:"100%",position:"absolute",inert:"true",children:[w.number<0&&u.jsx(q,{className:r,children:"-"}),w.paddedDigits.map((T,E)=>{const $=w.paddedDigits.length-1-E;return u.jsx(PKe,{idxFromBack:$,currentDigit:p.digits[$],nextDigit:T,direction:_,animation:p.animations[$],pauseNextAnimation:l!==e,animationDurationMs:y,onAnimationStart:x,onAnimationCompleted:S,className:r},$)})]})]})}function PKe({idxFromBack:e,currentDigit:t,nextDigit:n,direction:r,animation:i,pauseNextAnimation:o,onAnimationStart:a,onAnimationCompleted:s,animationDurationMs:l,className:c}){const d=m.useRef(null),f=m.useRef(null);return m.useLayoutEffect(()=>{if(i||o||t===n)return;const p=d.current;if(!p)return;const v=p.animate(r==="incr"?[{transform:"translateY(-50%)"},{transform:"translateY(0px)"}]:[{transform:"translateY(0px)"},{transform:"translateY(-50%)"}],{duration:l,easing:"ease-in-out",fill:"forwards"});f.current=v,a(v,e),v.finished.catch(()=>{}).finally(()=>{f.current=null,s(n,e)})},[l,t,n,r,e,o,s,i,a]),Pg(()=>{var p;(p=f.current)==null||p.cancel()}),u.jsx(Mt,{height:"100%",overflowY:"hidden",children:u.jsxs(V,{ref:d,height:"200%",direction:"column",children:[u.jsx(Tle,{className:c,digit:r==="incr"?n:t}),u.jsx(Tle,{className:c,digit:r==="incr"?t:n})]})})}function Tle({digit:e,className:t}){return u.jsx(q,{className:Te(t,xL.digit,{[xL.hidden]:e==null}),children:e})}function Ile(e,t){const n=Math.abs(e).toString().split("").map(i=>parseInt(i,10));if(t==null)return n;const r=Math.max(0,t-n.length);return[...Array(r).fill(null),...n]}function wL(e){return Math.abs(e).toString().length}const zKe="_container_zkl3s_1",DKe="_added_zkl3s_6",AKe="_removed_zkl3s_10",kL={container:zKe,added:DKe,removed:AKe},FKe=`Last ${xre/6e4}m`;function Ele({isOffline:e}){const t=X(yDe);return u.jsxs(V,{className:kL.container,align:"center",gap:"5px",children:[u.jsx(q,{children:FKe}),u.jsxs(q,{className:kL.added,children:["+",e?t.offline:t.online]}),u.jsxs(q,{className:kL.removed,children:["-",e?t.online:t.offline]})]})}const Nle="16px",SL=33,$le="15px";function BKe({isStacked:e}){var j;const[t,{width:n}]=Ss(),r=n<496,i=!r&&n<642,o=r?"xnarrow":i?"narrow":"wide",[a,s]=m.useState(!0),[l,c]=m.useState(!0),d=X(JN),f=X(wre),p=X(xDe),v=m.useCallback((T,E)=>{var M,P;const $=(M=d==null?void 0:d.get(T))==null?void 0:M[0],A=(P=d==null?void 0:d.get(E))==null?void 0:P[0];return $==null&&A==null?0:$==null?1:A==null?-1:$===A?0:$[...p].sort(v),[p,v]),y=m.useMemo(()=>[...f].sort(v),[f,v]),b=(j=X(Hl))==null?void 0:j.wait_for_supermajority_total_stake,w=m.useCallback(T=>_[T],[_]),x=m.useCallback(T=>{const E=w(T),[$,A]=(d==null?void 0:d.get(E))??[];return u.jsx(Lle,{pubkey:E,lamportsStake:$,info:A,totalStake:b,isOffline:!0,size:o})},[w,o,d,b]),S=m.useCallback(T=>y[T],[y]),C=m.useCallback(T=>{const E=S(T),[$,A]=(d==null?void 0:d.get(E))??[];return u.jsx(Lle,{pubkey:E,lamportsStake:$,info:A,totalStake:b,size:o})},[S,o,d,b]);return u.jsx(V,{ref:t,className:Te(un.container,e?un.vertical:un.horizontal),style:{"--row-height":`${SL}px`},children:u.jsxs(so,{className:Te(wi.card,un.tableCard,{[un.narrow]:i,[un.xnarrow]:r}),children:[u.jsxs(A6,{size:o,flexShrink:"0",className:un.headerRow,children:[u.jsx(o1,{size:o,className:un.peer,children:"Peer"}),u.jsx(o1,{size:o,className:un.status,children:"Status"}),u.jsx(o1,{size:o,className:un.pubkey,children:"Pubkey"}),u.jsx(o1,{size:o,className:un.version,children:"Version"}),u.jsx(o1,{size:o,className:un.stake,children:"Stake (SOL)"}),u.jsx(o1,{size:o,className:un.stakePct,children:"Stake %"})]}),u.jsx(A6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.offline),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":a,"aria-controls":"supermajority-offline-rows",onClick:()=>s(T=>!T),children:[u.jsx(Mle,{isExpanded:a}),u.jsxs(V,{align:"center",gap:$le,children:[u.jsxs(V,{align:"center",gap:"1",children:[u.jsx(M_,{value:p.size}),u.jsx(q,{children:"Nodes Offline"})]}),u.jsx(Ele,{isOffline:!0})]})]})}),u.jsx(Mt,{display:a?void 0:"none",className:un.rowsContainer,id:"supermajority-offline-rows",children:u.jsx(vL,{totalCount:_.length,fixedItemHeight:SL,computeItemKey:w,itemContent:x})}),u.jsx(A6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.online),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":l,"aria-controls":"supermajority-online-rows",onClick:()=>c(T=>!T),children:[u.jsx(Mle,{isExpanded:l}),u.jsxs(V,{align:"center",gap:$le,children:[u.jsxs(V,{align:"center",gap:"1",children:[u.jsx(M_,{value:f.size}),u.jsx(q,{children:"Nodes Online"})]}),u.jsx(Ele,{})]})]})}),u.jsx(Mt,{id:"supermajority-online-rows",display:l?void 0:"none",className:un.rowsContainer,children:u.jsx(vL,{totalCount:y.length,fixedItemHeight:SL,computeItemKey:S,itemContent:C})})]})})}function Mle({isExpanded:e}){const t=e?Hie:qFe;return u.jsx(t,{height:Nle,width:Nle,color:"white"})}const A6=m.forwardRef(function({size:e,className:t,...n},r){return u.jsx(V,{ref:r,className:Te(un.row,un[e],t),...n})});function Lle({pubkey:e,lamportsStake:t,info:n,totalStake:r,isOffline:i=!1,size:o}){return u.jsxs(A6,{size:o,className:i?un.offline:un.online,children:[u.jsx(UKe,{name:n==null?void 0:n.name,iconUrl:ire(n),size:o}),u.jsx(WKe,{isOffline:i,size:o}),u.jsx(VKe,{pubkey:e,size:o}),u.jsx(HKe,{pubkey:e,size:o}),u.jsx(ZKe,{lamportsStake:t,size:o}),u.jsx(qKe,{lamportsStake:t,totalStake:r,size:o})]})}function i1({children:e,className:t,size:n}){return u.jsx(V,{align:"center",className:Te(un.cell,un[n],t),children:e})}function o1({children:e,className:t,size:n}){return u.jsx(V,{align:"center",className:Te(un.cell,un.header,un[n],t),children:u.jsx(q,{truncate:!0,children:e})})}function UKe({name:e,iconUrl:t,size:n}){return u.jsxs(i1,{size:n,className:un.peer,children:[u.jsx(ks,{url:t,size:16}),u.jsx(q,{truncate:!0,children:e??"-"})]})}function WKe({isOffline:e=!1,size:t}){const n=e?oGe:iGe;return u.jsxs(i1,{size:t,className:Te(un.status),children:[u.jsx(n,{height:12,width:12,fill:"currentColor"}),t==="wide"&&u.jsx(q,{truncate:!0,children:e?"Offline":"Online"})]})}function VKe({pubkey:e,size:t}){return u.jsx(i1,{size:t,className:un.pubkey,children:u.jsx(Dg,{value:e,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(q,{truncate:!0,className:un.pubkeyText,children:e})})})}function HKe({pubkey:e,size:t}){const n=Hk(e),{version:r,client:i}=PM(n);return u.jsxs(i1,{size:t,className:Te(un.version),children:[u.jsx(V,{width:"37px",flexShrink:"0",children:u.jsx(Nse,{client:i,size:"xlarge",showPlaceholder:!0,className:un.clientIcon,placeholderClassName:un.clientIconPlaceholder})}),t!=="xnarrow"&&u.jsx(q,{truncate:!0,children:r?`v${r}`:"-"})]})}function ZKe({lamportsStake:e,size:t}){const n=HM(e);return u.jsx(i1,{size:t,className:un.stake,children:u.jsxs(q,{children:[u.jsx(q,{children:(n==null?void 0:n.formatted)??"-"}),(n==null?void 0:n.suffix)&&u.jsxs(q,{className:un.suffix,children:[" ",n.suffix]})]})})}const Rle=2;function qKe({lamportsStake:e,totalStake:t,size:n}){const r=GGe(e,t,Rle);return u.jsx(i1,{size:n,className:un.stakePct,children:u.jsxs(q,{children:[u.jsx(q,{children:r===void 0?"-":r.toFixed(Rle)}),r!==void 0&&u.jsx(q,{className:un.suffix,children:" %"})]})})}const GKe="data:image/svg+xml,%3csvg%20width='12'%20height='11'%20viewBox='0%200%2012%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2011H12L6.0482%200L0%2011Z'%20fill='%23F29D83'/%3e%3c/svg%3e";function YKe(){const e=X(Hl),t=e==null?void 0:e.wait_for_supermajority_total_stake,n=e==null?void 0:e.wait_for_supermajority_connected_stake,r=t&&n?rt.clamp(Number(n)/Number(t),0,1):0,i=m.useMemo(()=>HM(t),[t]),o=HM(n);return e?u.jsxs(V,{height:"100%",maxWidth:"100%",position:"relative",align:"center",justify:"center",className:wi.pieChart,children:[u.jsx("div",{className:wi.shimmer}),u.jsx("div",{className:wi.overlay,style:{"--progress-pct":`${Math.round(r*100)}%`}}),u.jsxs(V,{direction:"column",position:"absolute",height:"50%",width:"0px",bottom:"0",left:"50%",align:"center",className:wi.thresholdMarker,gap:"1px",children:[u.jsx(Mt,{className:wi.markerLine,height:"100%",flexShrink:"0"}),u.jsx("img",{className:wi.markerIcon,src:GKe,alt:"80% supermajority pointer"})]}),u.jsxs(V,{direction:"column",position:"relative",height:"70%",width:"70%",align:"center",justify:"center",gapY:"4%",className:wi.pieChartContent,children:[u.jsxs(q,{children:[u.jsx(q,{weight:"bold",className:wi.lg,children:(r*100).toFixed(2)}),u.jsx(q,{weight:"bold",className:wi.secondaryColor,children:" %"}),u.jsx(q,{className:wi.lg,children:" / "}),u.jsx(q,{weight:"bold",className:Te(wi.lg,wi.eighty),children:"80"}),u.jsx(q,{weight:"bold",color:"bronze",children:" %"})]}),u.jsxs(q,{children:[(o==null?void 0:o.formatted)??"--",(o==null?void 0:o.suffix)&&u.jsxs(q,{className:wi.secondaryColor,children:[" ",o.suffix]})," / ",u.jsx(q,{children:(i==null?void 0:i.formatted)??"--"}),(i==null?void 0:i.suffix)&&u.jsxs(q,{className:wi.secondaryColor,children:[" ",i.suffix]})]})]})]}):null}function KKe(){const e=X(Hl),t=X(nee);if(!e)return null;const n=e.wait_for_supermajority_attempt,r=e.loading_incremental_snapshot_read_path??e.loading_full_snapshot_read_path;return u.jsxs(V,{flexShrink:"0",direction:"column",width:"100%",className:wi.detailsBox,gapY:"10px",children:[u.jsxs(V,{gapX:"8px",justify:"between",children:[u.jsx(L_,{label:"Slot",value:t==null?void 0:t.toString()}),u.jsx(L_,{label:"Shred Version",value:e.wait_for_supermajority_shred_version}),u.jsx(L_,{label:"Forked",value:n==null?void 0:_Fe(n)})]}),u.jsx(L_,{label:"Bank Hash",value:e.wait_for_supermajority_bank_hash,allowCopy:!0}),u.jsx(L_,{label:"Snapshot Source",value:r,wrap:!0,valueClassName:wi.snapshotSource,allowCopy:!0})]})}function L_({label:e,value:t,wrap:n=!1,valueClassName:r,allowCopy:i=!1}){return u.jsxs(V,{direction:"column",gap:"3px",children:[u.jsx(q,{className:wi.label,children:e}),u.jsx(Dg,{className:wi.copyButton,value:i&&t?t:void 0,color:"white",size:"12px",hideIconUntilHover:!0,children:u.jsx(q,{className:r,truncate:!n,children:t??"--"})})]})}const Ole="400px",CL="24px",Ple="50px";function XKe(){var i;const e=Hn("(max-width: 1025px)"),t=X(Hl),n=(i=X(QQ))==null?void 0:i.completionFraction;if(!t||!n)return null;const r=1-.01/n;return u.jsxs(u.Fragment,{children:[u.jsx(J$,{phaseCompleteFraction:r,overallCompleteFraction:.99,showLoadingIcon:!0}),u.jsxs(V,{flexGrow:"1",mt:e?"18px":"36px",direction:e?"column-reverse":"row",justify:e?"end":"center",align:"stretch",gap:e?CL:Ple,minHeight:"0",children:[u.jsx(BKe,{isStacked:e}),u.jsxs(V,{direction:"column",align:"center",width:e?"100%":void 0,minWidth:"300px",maxWidth:e?void 0:Ole,flexBasis:"30%",flexGrow:e?"0":"1",flexShrink:"1",children:[u.jsx(q,{className:wi.pieChartTitle,children:"Stake Online"}),u.jsx(V,{className:wi.pieChartContainer,mt:e?"4px":"8px",maxHeight:Ole,justify:"center",children:u.jsx(YKe,{})}),u.jsx(Mt,{height:e?CL:void 0,minHeight:CL,maxHeight:Ple,flexGrow:"1"}),u.jsx(KKe,{})]})]})]})}const JKe={[wn.joining_gossip]:yd.gossip,[wn.loading_full_snapshot]:yd.fullSnapshot,[wn.loading_incremental_snapshot]:yd.incrSnapshot,[wn.catching_up]:yd.catchingUp,[wn.waiting_for_supermajority]:yd.supermajority};function QKe(){const e=Ee(ol),t=X(Gu);return m.useEffect(()=>{e(t!=="running")},[e,t]),u.jsxs(u.Fragment,{children:[t&&u.jsx(eXe,{phase:t}),u.jsx(HUe,{})]})}function eXe({phase:e}){const t=Ee(dre),n=X(ol),r=X(W3),i=e?JKe[e]:"",o=Hn("(max-width: 750px)");return u.jsxs(V,{direction:"column",ref:a=>t(a),overflowY:"auto",className:Te(yd.container,i,{[yd.collapsed]:!n||!r}),children:[u.jsx(foe,{isStartup:!0}),u.jsxs(V,{flexGrow:"1",direction:"column",width:"100%",maxWidth:Zte,minHeight:"0",mx:"auto",px:o?"20px":"89px",children:[(e===wn.loading_full_snapshot||e===wn.loading_incremental_snapshot)&&u.jsx(tVe,{}),e===wn.catching_up&&u.jsx(Fqe,{}),e===wn.waiting_for_supermajority&&u.jsx(XKe,{}),u.jsx(Mt,{pb:"20px"})]})]})}function tXe({children:e}){const t=X(ol);return Vi?u.jsxs(u.Fragment,{children:[u.jsx(QKe,{}),u.jsx("div",{children:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(XAe,{}),u.jsx("div",{className:Te(Iie.container,{[Iie.blur]:t}),children:e})]})}const nXe="_container_1i8oq_1",rXe="_toast_1i8oq_10",iXe="_disconnected_1i8oq_19",oXe="_connecting_1i8oq_29",aXe="_text_1i8oq_39",R_={container:nXe,toast:rXe,disconnected:iXe,connecting:oXe,text:aXe};var ac=(e=>(e.Disconnected="disconnected",e.Connecting="connecting",e.Connected="connected",e))(ac||{});const jL=fe(ac.Disconnected),zle={opacity:0,top:-100},sXe={opacity:1,top:18};function Dle(e,t){if(e)return e===ac.Disconnected?{className:R_.disconnected,text:"validator disconnected."}:e===ac.Connecting?{className:R_.connecting,text:"validator connecting..."}:Dle(t)}function lXe(){const e=X(jL),t=o_(e),[n,r]=m.useState(!0);i_(()=>{setTimeout(()=>r(!1),3e3)});const[i,o]=e_(()=>({from:zle}));m.useEffect(()=>{n||(e===ac.Connecting||e===ac.Disconnected?o.start({to:sXe}):o.start({to:zle}))},[o,n,e]);const a=Dle(e,t);if(a)return u.jsx(iu.div,{className:R_.container,style:i,children:u.jsx("div",{className:`${R_.toast} ${a.className}`,children:u.jsx(q,{className:R_.text,children:a.text})})})}const uXe="_slots-list_1sk8v_1",cXe="_hidden_1sk8v_3",dXe="_no-slots-text_1sk8v_8",TL={slotsList:uXe,hidden:cXe,noSlotsText:dXe},fXe="_slot-group-container_1sejw_1",hXe="_slot-group_1sejw_1",pXe="_left-column_1sejw_14",mXe="_future_1sejw_20",gXe="_you_1sejw_28",vXe="_current_1sejw_36",yXe="_slot-name_1sejw_43",bXe="_skipped_1sejw_47",_Xe="_current-slot-row_1sejw_57",xXe="_past_1sejw_63",wXe="_processed_1sejw_74",kXe="_selected_1sejw_87",SXe="_ellipsis_1sejw_105",CXe="_slot-item-content_1sejw_111",jXe="_placeholder_1sejw_119",TXe="_slot-statuses_1sejw_123",IXe="_slot-status_1sejw_123",EXe="_slot-status-progress_1sejw_132",NXe="_tall_1sejw_142",$Xe="_short_1sejw_149",MXe="_scroll-slots-placeholder_1sejw_173",LXe="_shimmer_1sejw_184",RXe="_absolute-full-size_1sejw_176",OXe="_scroll-placeholder-item_1sejw_197",on={slotGroupContainer:fXe,slotGroup:hXe,leftColumn:pXe,future:mXe,you:gXe,current:vXe,slotName:yXe,skipped:bXe,currentSlotRow:_Xe,past:xXe,processed:wXe,selected:kXe,ellipsis:SXe,slotItemContent:CXe,placeholder:jXe,slotStatuses:TXe,slotStatus:IXe,slotStatusProgress:EXe,tall:NXe,short:$Xe,scrollSlotsPlaceholder:MXe,shimmer:LXe,absoluteFullSize:RXe,scrollPlaceholderItem:OXe},O_=m.memo(function({slot:e,size:t}){const{client:n}=ma(e);return u.jsx(Nse,{client:n,size:t})}),PXe=Yf(e=>fe(t=>{var r;const n=xi(e);for(let i=0;i<$n;i++)if((r=t(YN(n+i)))!=null&&r.skipped)return!0;return!1}),{maxSize:500});function IL(e){return X(PXe(e))}const Ale=fe(!1);function P_({showNowIfCurrent:e,durationOptions:t}){const n=X(gre),r=X(Lb),i=X(uDe),o=r??i,a=X(oo),s=X(cDe),l=X(Eg),[c,d]=m.useState(a);r_(()=>{d(v=>{if(!a)return v;if(!v)return a;const _=v-a;return _>10?v-Math.trunc(_/2):_>4?v:_<-4?v-Math.trunc(_/2):v+1})},l);const f=m.useMemo(()=>{if(!(o==null||c==null))return fn.fromMillis(l*(o-c)).rescale()},[c,o,l]),p=m.useMemo(()=>{if(n==null||o==null||c==null)return;const v=o-n,_=(c-n)/v*100;return _<0||_>100?0:_},[c,o,n]);return e&&s?{progressSinceLastLeader:100,nextSlotText:"Now",nextLeaderSlot:a}:{progressSinceLastLeader:p??0,nextSlotText:Sp(f,t),nextLeaderSlot:o}}const zXe="_progress_51hag_1",DXe={progress:zXe};function a1({width:e="100%",height:t="3px",style:n,className:r,variant:i="soft",...o}){return u.jsx(N4,{className:Te(DXe.progress,r),style:{width:e,height:t,...n},variant:i,...o})}function AXe(e){return X(Ale)?u.jsx("div",{className:on.placeholder}):u.jsx(FXe,{...e})}const Fle=fe(e=>{const t=e(eu),n=e(Jf);if(!e(ao)||t===void 0||n===void 0)return;const r=e(Lb);return function(i){return{isCurrentSlotGroup:t<=i&&iMath.ceil(t/46),[t]);return u.jsxs(Mt,{position:"absolute",width:`${e-1}px`,height:`${t}px`,overflow:"hidden",className:on.scrollSlotsPlaceholder,children:[u.jsx("div",{className:Te(on.absoluteFullSize,on.shimmer)}),u.jsx("div",{className:on.absoluteFullSize,children:Array.from({length:n},(r,i)=>u.jsx("div",{className:on.scrollPlaceholderItem},i))})]})});function F6({slot:e,iconSize:t=15}){var o;const{peer:n,isLeader:r,name:i}=ma(e);return u.jsxs(V,{gap:"4px",minWidth:"0",children:[u.jsx(ks,{url:(o=n==null?void 0:n.info)==null?void 0:o.icon_url,size:t,isYou:r,hideTooltip:!0}),u.jsx(q,{className:Te(on.slotName,on.ellipsis),children:i})]})}function Ule({flag:e,width:t}){return u.jsx(V,{width:t,children:e&&u.jsx(q,{children:e})})}function z_({firstSlot:e,isCurrentSlot:t=!1,isPastSlot:n=!1}){return u.jsx(V,{className:Te(on.slotStatuses,{[on.tall]:t,[on.short]:!t&&!n}),direction:"column",justify:"between",children:Array.from({length:$n}).map((r,i)=>{const o=e+($n-1)-i;return t?u.jsx(qXe,{slot:o},i):n?u.jsx(GXe,{slot:o},i):u.jsx(EL,{},i)})})}function EL({borderColor:e,backgroundColor:t,slotDuration:n}){return u.jsx(V,{className:on.slotStatus,style:{borderColor:e,backgroundColor:t},children:n&&u.jsx("div",{style:{"--slot-duration":`${n}ms`},className:on.slotStatusProgress})})}function Wle(e){if(!e)return{};if(e.skipped)return{backgroundColor:gk};switch(e.level){case"incomplete":return{};case"completed":return{borderColor:zN};case"optimistically_confirmed":return{backgroundColor:zN};case"finalized":case"rooted":return{backgroundColor:Wne}}}function qXe({slot:e}){const t=X(oo),n=Is(e),r=X(Eg),i=m.useMemo(()=>e===t,[e,t]),o=m.useMemo(()=>i?{borderColor:DN}:Wle(n.publish),[i,n.publish]);return u.jsx(EL,{borderColor:o.borderColor,backgroundColor:o.backgroundColor,slotDuration:i?r:void 0})}function GXe({slot:e}){const t=Is(e),n=X(Cn),r=m.useMemo(()=>{var o,a;const i=Wle(t.publish);return((o=t==null?void 0:t.publish)==null?void 0:o.level)==="rooted"&&!((a=t.publish)!=null&&a.skipped)&&(n===void 0||xi(e)!==xi(n))&&(i.backgroundColor=Vne),i},[t.publish,n,e]);return u.jsx(EL,{borderColor:r.borderColor,backgroundColor:r.backgroundColor})}const YXe="_container_1l1zm_1",KXe="_button_1l1zm_5",Vle={container:YXe,button:KXe};function XXe(){const e=Ee(An),t=X(kDe);return t==="Live"?null:u.jsx("div",{className:Vle.container,children:u.jsxs(hs,{className:Vle.button,style:{zIndex:3},onClick:()=>{e(void 0)},children:[u.jsx(q,{children:"Skip to RT"}),t==="Past"?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const JXe=m.memo(XXe);function QXe(e){if(!e)return;const t=e.end_slot-e.start_slot+1,n=Math.ceil(t/$n);return{getSlotAtIndex:r=>{if(!(r<0||r>=n))return xi(e.end_slot-r*$n)},getIndexForSlot:r=>{if(!(re.end_slot))return Math.trunc((e.end_slot-r)/$n)},itemsCount:n}}function eJe(e){if(e==null)return;const t=e.reduce((n,r,i)=>(n[r]=e.length-i-1,n),{});return{getSlotAtIndex:n=>e[e.length-n-1],getIndexForSlot:n=>n>=e[e.length-1]?0:t[xi(n)]??e.length-rt.sortedIndex(e,n)-1,itemsCount:e.length}}const tJe=e=>e,nJe={top:24,bottom:0};function rJe({width:e,height:t}){const n=X(Tg),r=X(di);return r?n===$b.MySlots?u.jsx(lJe,{width:e,height:t},r.epoch):u.jsx(sJe,{width:e,height:t},r.epoch):null}function Hle({width:e,height:t,itemsCount:n,getSlotAtIndex:r,getIndexForSlot:i}){const o=m.useRef(null),a=m.useRef(null),s=m.useRef(null),[l,c]=m.useState(!0),[d,f]=m.useState(!0);m.useEffect(()=>{const x=setTimeout(()=>{c(!1)},100);return()=>clearTimeout(x)},[]);const p=Ee(An),v=Ip(()=>{},100),{rangeChanged:_,scrollSeekConfiguration:y}=m.useMemo(()=>{const x=({startIndex:S})=>{s.current=S+1};return{rangeChanged:x,scrollSeekConfiguration:{enter:S=>Math.abs(S)>1500,exit:S=>Math.abs(S)<500,change:(S,C)=>x(C)}}},[s]);m.useEffect(()=>{if(!o.current)return;const x=o.current,S=rt.throttle(()=>{if(s.current===null)return;v();const j=Math.min(s.current+oN,n-1),T=r(j);p(T)},50,{leading:!0,trailing:!0}),C=()=>{S()};return x.addEventListener("wheel",C),x.addEventListener("touchmove",C),()=>{x.removeEventListener("wheel",C),x.removeEventListener("touchmove",C)}},[r,v,p,n,s]);const b=m.useCallback(x=>{const S=r(x);return S==null?null:u.jsx(AXe,{leaderSlotForGroup:S})},[r]),w=m.useCallback(x=>f(x>=t),[t]);return u.jsxs(Mt,{ref:o,position:"relative",width:`${e}px`,height:`${t}px`,children:[u.jsx(oJe,{listRef:a,getIndexForSlot:i}),u.jsx(aJe,{listRef:a,getIndexForSlot:i,debouncedScroll:v}),d&&u.jsx(ZXe,{width:e,height:t}),u.jsx(JXe,{}),u.jsx(vL,{ref:a,className:Te(TL.slotsList,{[TL.hidden]:l}),width:e,height:t,totalCount:n,increaseViewportBy:nJe,defaultItemHeight:42,skipAnimationFrameInResizeObserver:!0,computeItemKey:tJe,itemContent:b,rangeChanged:_,components:{ScrollSeekPlaceholder:iJe},scrollSeekConfiguration:y,totalListHeightChanged:w})]})}const iJe=m.memo(function(){return null}),oJe=m.memo(function({listRef:e,getIndexForSlot:t}){const n=X(eu),r=X(tDe);return m.useEffect(()=>{if(!r||n===void 0||!e.current)return;const i=t(n),o=i?Math.max(0,i-oN):0;e.current.scrollToIndex({index:o,align:"start"})},[r,n,t,e]),null}),aJe=m.memo(function({listRef:e,getIndexForSlot:t,debouncedScroll:n}){const r=m.useRef(null),i=X(An);return m.useEffect(()=>{if(i===void 0||!e.current||n.isPending())return;const o=t(i),a=o?Math.max(0,o-oN):0,s=r.current;return r.current=requestAnimationFrame(()=>{var l;s!==null&&cancelAnimationFrame(s),(l=e.current)==null||l.scrollToIndex({index:a,align:"start"})}),()=>{r.current!==null&&(cancelAnimationFrame(r.current),r.current=null)}},[t,i,e,n]),null});function sJe({width:e,height:t}){const n=X(di),r=m.useMemo(()=>QXe(n),[n]);return r?u.jsx(Hle,{width:e,height:t,...r}):null}function lJe({width:e,height:t}){const n=X(ao),r=m.useMemo(()=>eJe(n),[n]);return r?r.itemsCount===0?u.jsx(V,{width:`${e}px`,height:`${t}px`,justify:"center",align:"center",children:u.jsxs(q,{className:TL.noSlotsText,children:["No Slots",u.jsx("br",{}),"Available"]})}):u.jsx(Hle,{width:e,height:t,...r}):null}let vl;typeof window<"u"?vl=window:typeof self<"u"?vl=self:vl=global;let NL=null,$L=null;const Zle=20,ML=vl.clearTimeout,qle=vl.setTimeout,LL=vl.cancelAnimationFrame||vl.mozCancelAnimationFrame||vl.webkitCancelAnimationFrame,Gle=vl.requestAnimationFrame||vl.mozRequestAnimationFrame||vl.webkitRequestAnimationFrame;LL==null||Gle==null?(NL=ML,$L=function(e){return qle(e,Zle)}):(NL=function([e,t]){LL(e),ML(t)},$L=function(e){const t=Gle(function(){ML(n),e()}),n=qle(function(){LL(t),e()},Zle);return[t,n]});function uJe(e){let t,n,r,i,o,a,s;const l=typeof document<"u"&&document.attachEvent;if(!l){a=function(y){const b=y.__resizeTriggers__,w=b.firstElementChild,x=b.lastElementChild,S=w.firstElementChild;x.scrollLeft=x.scrollWidth,x.scrollTop=x.scrollHeight,S.style.width=w.offsetWidth+1+"px",S.style.height=w.offsetHeight+1+"px",w.scrollLeft=w.scrollWidth,w.scrollTop=w.scrollHeight},o=function(y){return y.offsetWidth!==y.__resizeLast__.width||y.offsetHeight!==y.__resizeLast__.height},s=function(y){if(y.target.className&&typeof y.target.className.indexOf=="function"&&y.target.className.indexOf("contract-trigger")<0&&y.target.className.indexOf("expand-trigger")<0)return;const b=this;a(this),this.__resizeRAF__&&NL(this.__resizeRAF__),this.__resizeRAF__=$L(function(){o(b)&&(b.__resizeLast__.width=b.offsetWidth,b.__resizeLast__.height=b.offsetHeight,b.__resizeListeners__.forEach(function(w){w.call(b,y)}))})};let d=!1,f="";r="animationstart";const p="Webkit Moz O ms".split(" ");let v="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),_="";{const y=document.createElement("fakeelement");if(y.style.animationName!==void 0&&(d=!0),d===!1){for(let b=0;b div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',p=d.head||d.getElementsByTagName("head")[0],v=d.createElement("style");v.id="detectElementResize",v.type="text/css",e!=null&&v.setAttribute("nonce",e),v.styleSheet?v.styleSheet.cssText=f:v.appendChild(d.createTextNode(f)),p.appendChild(v)}};return{addResizeListener:function(d,f){if(l)d.attachEvent("onresize",f);else{if(!d.__resizeTriggers__){const p=d.ownerDocument,v=vl.getComputedStyle(d);v&&v.position==="static"&&(d.style.position="relative"),c(p),d.__resizeLast__={},d.__resizeListeners__=[],(d.__resizeTriggers__=p.createElement("div")).className="resize-triggers";const _=p.createElement("div");_.className="expand-trigger",_.appendChild(p.createElement("div"));const y=p.createElement("div");y.className="contract-trigger",d.__resizeTriggers__.appendChild(_),d.__resizeTriggers__.appendChild(y),d.appendChild(d.__resizeTriggers__),a(d),d.addEventListener("scroll",s,!0),r&&(d.__resizeTriggers__.__animationListener__=function(b){b.animationName===n&&a(d)},d.__resizeTriggers__.addEventListener(r,d.__resizeTriggers__.__animationListener__))}d.__resizeListeners__.push(f)}},removeResizeListener:function(d,f){if(l)d.detachEvent("onresize",f);else if(d.__resizeListeners__.splice(d.__resizeListeners__.indexOf(f),1),!d.__resizeListeners__.length){d.removeEventListener("scroll",s,!0),d.__resizeTriggers__.__animationListener__&&(d.__resizeTriggers__.removeEventListener(r,d.__resizeTriggers__.__animationListener__),d.__resizeTriggers__.__animationListener__=null);try{d.__resizeTriggers__=!d.removeChild(d.__resizeTriggers__)}catch{}}}}}class $s extends m.Component{constructor(...t){super(...t),this.state={height:this.props.defaultHeight||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._didLogDeprecationWarning=!1,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:n,disableWidth:r,onResize:i}=this.props;if(this._parentNode){const o=window.getComputedStyle(this._parentNode)||{},a=parseFloat(o.paddingLeft||"0"),s=parseFloat(o.paddingRight||"0"),l=parseFloat(o.paddingTop||"0"),c=parseFloat(o.paddingBottom||"0"),d=this._parentNode.getBoundingClientRect(),f=d.height-l-c,p=d.width-a-s;if(!n&&this.state.height!==f||!r&&this.state.width!==p){this.setState({height:f,width:p});const v=()=>{this._didLogDeprecationWarning||(this._didLogDeprecationWarning=!0,console.warn("scaledWidth and scaledHeight parameters have been deprecated; use width and height instead"))};typeof i=="function"&&i({height:f,width:p,get scaledHeight(){return v(),f},get scaledWidth(){return v(),p}})}}},this._setRef=n=>{this._autoSizer=n}}componentDidMount(){const{nonce:t}=this.props,n=this._autoSizer?this._autoSizer.parentNode:null;if(n!=null&&n.ownerDocument&&n.ownerDocument.defaultView&&n instanceof n.ownerDocument.defaultView.HTMLElement){this._parentNode=n;const r=n.ownerDocument.defaultView.ResizeObserver;r!=null?(this._resizeObserver=new r(()=>{this._timeoutId=setTimeout(this._onResize,0)}),this._resizeObserver.observe(n)):(this._detectElementResize=uJe(t),this._detectElementResize.addResizeListener(n,this._onResize)),this._onResize()}}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),this._timeoutId!==null&&clearTimeout(this._timeoutId),this._resizeObserver&&this._resizeObserver.disconnect())}render(){const{children:t,defaultHeight:n,defaultWidth:r,disableHeight:i=!1,disableWidth:o=!1,doNotBailOutOnEmptyChildren:a=!1,nonce:s,onResize:l,style:c={},tagName:d="div",...f}=this.props,{height:p,width:v}=this.state,_={overflow:"visible"},y={};let b=!1;return i||(p===0&&(b=!0),_.height=0,y.height=p,y.scaledHeight=p),o||(v===0&&(b=!0),_.width=0,y.width=v,y.scaledWidth=v),a&&(b=!1),m.createElement(d,{ref:this._setRef,style:{..._,...c},...f},!b&&t(y))}}function cJe(){const[e,t]=Vl(Tg),n=m.useCallback(r=>{r&&t(r)},[t]);return u.jsx(V,{height:`${uN}px`,width:"100%",children:u.jsxs($7,{type:"single",value:e,"aria-label":"Slots List Toggle",onValueChange:n,className:Ep.navFilterToggleGroup,children:[u.jsx(U0,{value:$b.AllSlots,"aria-label":"All Slots toggle",tabIndex:0,children:u.jsx(q,{children:"All Slots"})}),u.jsx(U0,{value:$b.MySlots,"aria-label":"My Slots toggle",tabIndex:0,children:u.jsx(q,{children:"My Slots"})})]})})}const dJe="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%23FF5353'%3e%3cpath%20d='m48-144%20432-720%20432%20720H48Zm431.79-120q15.21%200%2025.71-10.29t10.5-25.5q0-15.21-10.29-25.71t-25.5-10.5q-15.21%200-25.71%2010.29t-10.5%2025.5q0%2015.21%2010.29%2025.71t25.5%2010.5ZM444-384h72v-192h-72v192Z'/%3e%3c/svg%3e",fJe="data:image/svg+xml,%3csvg%20width='10'%20height='11'%20viewBox='0%200%2010%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.39453%201.5H9.67578V7.32422H5.57422L5.35547%206.17578H2.07422V10.25H0.925781V0.324219H6.17578L6.39453%201.5Z'%20fill='%231DB247'/%3e%3c/svg%3e",hJe="_epoch-progress_niwu5_1",pJe="_clickable_niwu5_8",mJe="_leader-slot_niwu5_12",gJe="_before-start_niwu5_21",vJe="_skipped-slot_niwu5_26",yJe="_skipped-slot-icon_niwu5_36",bJe="_first-processed-slot_niwu5_45",_Je="_first-processed-slot-icon_niwu5_56",xJe="_slider-root_niwu5_65",wJe="_slider-track_niwu5_76",kJe="_slider-thumb_niwu5_82",SJe="_collapsed_niwu5_92",CJe="_tooltip_niwu5_106",jJe="_hide_niwu5_114",TJe="_show_niwu5_123",Yi={epochProgress:hJe,clickable:pJe,leaderSlot:mJe,beforeStart:gJe,skippedSlot:vJe,skippedSlotIcon:yJe,firstProcessedSlot:bJe,firstProcessedSlotIcon:_Je,sliderRoot:xJe,sliderTrack:wJe,sliderThumb:kJe,collapsed:SJe,tooltip:CJe,hide:jJe,show:TJe};function IJe(e,t,n=window){const r=m.useRef(t);m.useEffect(()=>{r.current=t});const i=Lze(e)?e:[e];m.useEffect(()=>{if(!r.current||!n||!n.addEventListener||i.length===0)return;const o=a=>{var s;return(s=r.current)==null?void 0:s.call(r,a)};return i.forEach(a=>n.addEventListener(a,o,{passive:!1})),()=>{i.forEach(a=>n.removeEventListener(a,o,!1))}},[...i,n])}const RL=10800;function Up({slot:e,epochStartSlot:t,epochEndSlot:n}){if(!e||t===void 0||n===void 0||t===n)return 0;e=Math.min(Math.max(e,t),n);const r=n-t;return(e-t)/r}function EJe(e){return Math.trunc(e*RL)}function NJe(e,t,n){if(e===void 0||t===void 0||n===void 0)return;const r=e/RL,i=n-t;return Math.trunc(i*r)+t}function $Je(e,t){return Up(t)}function MJe(e,t){if(!e||!t)return 3e3;const n=e.end_slot-e.start_slot;return n<1e4?300:n<5e4?1e3:n<1e5?3e3:n<2e5?5e3:n<3e5?1e4:n<4e5?15e3:3e4}function Yle(e,t){return e.length?e.reduce((n,r,i)=>{if(i===0)return n;const o=n[n.length-1];return Math.abs(r.pct-o.pct)clearTimeout(f.current));const p=m.useCallback(y=>{t(y),d(!0),clearTimeout(f.current),f.current=setTimeout(()=>d(!1),100)},[t]),v=m.useCallback(y=>{const b=NJe(y[0],e==null?void 0:e.start_slot,e==null?void 0:e.end_slot);b!==void 0&&p(b)},[e==null?void 0:e.end_slot,e==null?void 0:e.start_slot,p]),_=Ua(v,100,{trailing:!0});return IJe("pointerup",()=>{i.current=!1,o(!1)}),u.jsx(V,{direction:"column",width:"100%",flexGrow:"1",align:"center",ref:a,children:u.jsxs(KH,{orientation:"vertical",className:Yi.sliderRoot,style:{zIndex:Hf},value:n,onValueChange:y=>{i.current=!0,r(y),_(y),o(!0)},onValueCommit:()=>{i.current=!1,_.flush(),o(!1)},max:RL,children:[u.jsxs(XH,{className:Yi.sliderTrack,children:[u.jsx(PJe,{isSliderChangingValueRef:i,setSliderValue:r},e==null?void 0:e.epoch),u.jsx(UJe,{updateSlot:p,slotHeight:l}),u.jsx(HJe,{updateSlot:p}),u.jsx(GJe,{updateSlot:p})]}),u.jsx(zJe,{isOpen:c})]})})}function OJe({isSliderChangingValueRef:e,setSliderValue:t}){const n=X(di),r=X(KN),i=X(eu),o=X(An),a=X(Tg),[s,l]=m.useReducer($Je,{slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot},Up),c=m.useMemo(()=>MJe(n,s),[n,s]);return Qu(()=>{m.startTransition(()=>{l({slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot})})},c),m.useEffect(()=>{if(e.current)return;const d=o?Up({slot:o,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):a===$b.MySlots?Up({slot:r,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):s,f=EJe(d);t(p=>p[0]===f?p:[f])},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,s,e,t,o,a,r]),u.jsx(Mt,{className:Yi.epochProgress,height:`${s*100}%`})}const PJe=m.memo(OJe);function zJe({isOpen:e}){const t=X(An),{showNav:n}=Fg();return u.jsx(JH,{className:Te(Yi.sliderThumb,{[Yi.collapsed]:!n}),children:u.jsx(q,{size:"1",className:Te("rt-TooltipContent","rt-TooltipText",Yi.tooltip,e?Yi.show:Yi.hide),children:t})})}const DJe=e=>fe(t=>{const n=t(eu);return e>(n??0)});function AJe({slot:e,pct:t,height:n,updateSlot:r}){const i=X(Jf),o=X(m.useMemo(()=>DJe(e),[e])),a=l=>c=>{c.stopPropagation(),c.preventDefault(),r(l)},s=i?e{if(!n||!(r!=null&&r.length))return;const o=r.map(a=>({slot:a,pct:Up({slot:a,epochStartSlot:n.start_slot,epochEndSlot:n.end_slot})}));return Yle(o,.005)},[n,r]);return u.jsx(u.Fragment,{children:i==null?void 0:i.map(({slot:o,pct:a})=>u.jsx(FJe,{slot:o,pct:a,height:t,updateSlot:e},o))})}const UJe=m.memo(BJe);function WJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsx(u.Fragment,{children:u.jsx("div",{className:Te(Yi.skippedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e),children:u.jsx("img",{src:dJe,alt:"skipped slot",className:Te(Yi.skippedSlotIcon,Yi.clickable),style:{bottom:"-3px"},onPointerDown:r(e)})})})}function VJe({updateSlot:e}){const t=X(di),n=X(u3),r=m.useMemo(()=>{if(!t||!(n!=null&&n.length))return;const i=n.map(o=>({slot:o,pct:Up({slot:o,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})}));return Yle(i,.005)},[t,n]);return u.jsx(u.Fragment,{children:r==null?void 0:r.map(({slot:i,pct:o})=>u.jsx(WJe,{slot:i,pct:o,updateSlot:e},i))})}const HJe=m.memo(VJe);function ZJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{className:Te(Yi.firstProcessedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e)}),u.jsx("img",{src:fJe,alt:"first processed slot",className:Te(Yi.firstProcessedSlotIcon,Yi.clickable),style:{bottom:`calc(${t*100}%)`},onPointerDown:r(e)})]})}function qJe({updateSlot:e}){const t=X(di),n=X(Jf),r=m.useMemo(()=>{if(!(!n||!t))return Up({slot:n,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})},[t,n]);return!r||!n?null:u.jsx(ZJe,{slot:n,pct:r,updateSlot:e})}const GJe=m.memo(qJe),Kle=kb+Sb;function YJe(){const e=Hn(Vte),{showNav:t,occupyRowWidth:n,showOnlyEpochBar:r}=Fg(),i=t?dN:0,o=m.useMemo(()=>r?Wte:$Re,[r]);return u.jsxs(u.Fragment,{children:[u.jsx(KJe,{}),u.jsx("div",{style:{flexShrink:0,width:n?`${o}px`:"0"},children:u.jsxs(V,{width:t?`${o+i}px`:"0",overflow:t?"visible":"hidden",className:Te("sticky",Ep.slotNavContainer,{[Ep.navBackground]:!r}),style:{zIndex:Hf-1},top:`${Kle}px`,height:`calc(100vh - ${Kle}px)`,ml:`${-i}px`,pl:`${i}px`,pb:"2",children:[u.jsxs(V,{flexShrink:"0",direction:"column",width:`${cN}px`,pt:e?"0":`${uN+Vf}px`,children:[e&&u.jsx("div",{style:{marginBottom:`${Vf}px`},children:u.jsx(W$,{})}),u.jsx(LJe,{})]}),!r&&u.jsxs(V,{ml:`${ck}px`,direction:"column",width:`${fN}px`,flexShrink:"0",gap:`${Vf}px`,children:[u.jsx(cJe,{}),u.jsx(V,{flexGrow:"1",children:u.jsx($s,{children:({height:a,width:s})=>u.jsx(rJe,{width:s,height:a})})})]})]})})]})}function KJe(){const e=Ee(An),t=X(Cn);return m.useEffect(()=>{t!==void 0&&e(t)},[t,e]),null}const XJe=ca(),s1=C9e({component:JJe,beforeLoad:()=>XJe.set(gd.slot,void 0)});function JJe(){const e=X(V3);return u.jsxs(u.Fragment,{children:[u.jsx(lXe,{}),u.jsx(tXe,{children:u.jsxs("div",{id:"scroll-container",style:{position:"relative",height:"100dvh",maxHeight:e?"100vh":"unset",overflowY:e?"hidden":"auto",willChange:"scroll-position",contain:"paint",isolation:"isolate"},children:[u.jsx(foe,{}),u.jsxs(V,{className:"app-width-container",px:"2",position:"relative",children:[u.jsx(YJe,{}),u.jsx(QJe,{})]})]})})]})}function QJe(){const e=Yk()==="Schedule",{setIsNavCollapsed:t,isNarrowScreen:n,occupyRowWidth:r,blurBackground:i}=Fg();return m.useEffect(()=>{t(n)},[n,t]),u.jsxs(Mt,{position:"relative",flexGrow:"1",minWidth:"0",pb:"2",pl:e||!r?"0px":`${lN-Vf}px`,children:[u.jsx(Dq,{}),i&&u.jsx(ioe,{})]})}const eQe="_text_nk1yn_1",tQe={text:eQe};function Sd({text:e}){return u.jsx(q,{className:tQe.text,children:e})}var nQe=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Xle=nQe,rQe=Xle,iQe=typeof self=="object"&&self&&self.Object===Object&&self,oQe=rQe||iQe||Function("return this")(),sc=oQe,aQe=sc,sQe=aQe.Symbol,l1=sQe,Jle=l1,Qle=Object.prototype,lQe=Qle.hasOwnProperty,uQe=Qle.toString,D_=Jle?Jle.toStringTag:void 0;function cQe(e){var t=lQe.call(e,D_),n=e[D_];try{e[D_]=void 0;var r=!0}catch{}var i=uQe.call(e);return r&&(t?e[D_]=n:delete e[D_]),i}var dQe=cQe,fQe=Object.prototype,hQe=fQe.toString;function pQe(e){return hQe.call(e)}var mQe=pQe,eue=l1,gQe=dQe,vQe=mQe,yQe="[object Null]",bQe="[object Undefined]",tue=eue?eue.toStringTag:void 0;function _Qe(e){return e==null?e===void 0?bQe:yQe:tue&&tue in Object(e)?gQe(e):vQe(e)}var Wp=_Qe;function xQe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Cd=xQe,wQe=Wp,kQe=Cd,SQe="[object AsyncFunction]",CQe="[object Function]",jQe="[object GeneratorFunction]",TQe="[object Proxy]";function IQe(e){if(!kQe(e))return!1;var t=wQe(e);return t==CQe||t==jQe||t==SQe||t==TQe}var B6=IQe;const nue=to(B6);var EQe=sc,NQe=EQe["__core-js_shared__"],$Qe=NQe,OL=$Qe,rue=function(){var e=/[^.]+$/.exec(OL&&OL.keys&&OL.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function MQe(e){return!!rue&&rue in e}var LQe=MQe,RQe=Function.prototype,OQe=RQe.toString;function PQe(e){if(e!=null){try{return OQe.call(e)}catch{}try{return e+""}catch{}}return""}var iue=PQe,zQe=B6,DQe=LQe,AQe=Cd,FQe=iue,BQe=/[\\^$.*+?()[\]{}|]/g,UQe=/^\[object .+?Constructor\]$/,WQe=Function.prototype,VQe=Object.prototype,HQe=WQe.toString,ZQe=VQe.hasOwnProperty,qQe=RegExp("^"+HQe.call(ZQe).replace(BQe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function GQe(e){if(!AQe(e)||DQe(e))return!1;var t=zQe(e)?qQe:UQe;return t.test(FQe(e))}var YQe=GQe;function KQe(e,t){return e==null?void 0:e[t]}var XQe=KQe,JQe=YQe,QQe=XQe;function eet(e,t){var n=QQe(e,t);return JQe(n)?n:void 0}var Vp=eet,tet=Vp,net=tet(Object,"create"),U6=net,oue=U6;function ret(){this.__data__=oue?oue(null):{},this.size=0}var iet=ret;function oet(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var aet=oet,set=U6,uet="__lodash_hash_undefined__",cet=Object.prototype,det=cet.hasOwnProperty;function fet(e){var t=this.__data__;if(set){var n=t[e];return n===uet?void 0:n}return det.call(t,e)?t[e]:void 0}var het=fet,pet=U6,met=Object.prototype,get=met.hasOwnProperty;function vet(e){var t=this.__data__;return pet?t[e]!==void 0:get.call(t,e)}var yet=vet,bet=U6,_et="__lodash_hash_undefined__";function xet(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=bet&&t===void 0?_et:t,this}var wet=xet,ket=iet,Cet=aet,jet=het,Tet=yet,Iet=wet;function u1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var Het=Vet,Zet=W6;function qet(e,t){var n=this.__data__,r=Zet(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Get=qet,Yet=$et,Ket=Aet,Xet=Uet,Jet=Het,Qet=Get;function c1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var sue=Gtt;function Ytt(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=pnt){var c=t?null:fnt(e);if(c)return hnt(c);a=!1,i=dnt,l=new lnt}else l=t?[]:s;e:for(;++r0&&f.height>0,b=Math.round(n[0]),w=Math.round(n[1]);y&&(r==="top"?(b-=f.width/2,w-=f.height+14):r==="right"?(b+=14,w-=f.height/2):r==="bottom"?(b-=f.width/2,w+=14):r==="left"?(b-=f.width+14,w-=f.height/2):r==="center"&&(b-=f.width/2,w-=f.height/2),v={transform:hue(b,w)},p.current||(_=!0),p.current=[b,w]);var x=e_({to:v,config:l,immediate:!s||_}),S=Hp({},jnt,o.tooltip.wrapper,{transform:(t=x.transform)!=null?t:hue(b,w),opacity:x.transform?1:0});return u.jsx(iu.div,{ref:d,style:S,children:i})});pue.displayName="TooltipWrapper";var UL=m.memo(function(e){var t=e.size,n=t===void 0?12:t,r=e.color,i=e.style;return u.jsx("span",{style:Hp({display:"block",width:n,height:n,background:r},i===void 0?{}:i)})}),WL=m.memo(function(e){var t,n=e.id,r=e.value,i=e.format,o=e.enableChip,a=o!==void 0&&o,s=e.color,l=e.renderContent,c=Ms(),d=WR(i);if(typeof l=="function")t=l();else{var f=r;d!==void 0&&f!==void 0&&(f=d(f)),t=u.jsxs("div",{style:c.tooltip.basic,children:[a&&u.jsx(UL,{color:s,style:c.tooltip.chip}),f!==void 0?u.jsxs("span",{children:[n,": ",u.jsx("strong",{children:""+f})]}):n]})}return u.jsx("div",{style:c.tooltip.container,children:t})}),Tnt={width:"100%",borderCollapse:"collapse"},Int=m.memo(function(e){var t,n=e.title,r=e.rows,i=r===void 0?[]:r,o=e.renderContent,a=Ms();return i.length?(t=typeof o=="function"?o():u.jsxs("div",{children:[n&&n,u.jsx("table",{style:Hp({},Tnt,a.tooltip.table),children:u.jsx("tbody",{children:i.map(function(s,l){return u.jsx("tr",{children:s.map(function(c,d){return u.jsx("td",{style:a.tooltip.tableCell,children:c},d)})},l)})})})]}),u.jsx("div",{style:a.tooltip.container,children:t})):null});Int.displayName="TableTooltip";var VL=m.memo(function(e){var t=e.x0,n=e.x1,r=e.y0,i=e.y1,o=Ms(),a=w1(),s=a.animate,l=a.config,c=m.useMemo(function(){return Hp({},o.crosshair.line,{pointerEvents:"none"})},[o.crosshair.line]),d=e_({x1:t,x2:n,y1:r,y2:i,config:l,immediate:!s});return u.jsx(iu.line,Hp({},d,{fill:"none",style:c}))});VL.displayName="CrosshairLine";var Ent=m.memo(function(e){var t,n,r=e.width,i=e.height,o=e.type,a=e.x,s=e.y;return o==="cross"?(t={x0:a,x1:a,y0:0,y1:i},n={x0:0,x1:r,y0:s,y1:s}):o==="top-left"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:0,x1:a,y0:s,y1:s}):o==="top"?t={x0:a,x1:a,y0:0,y1:s}:o==="top-right"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:a,x1:r,y0:s,y1:s}):o==="right"?n={x0:a,x1:r,y0:s,y1:s}:o==="bottom-right"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:a,x1:r,y0:s,y1:s}):o==="bottom"?t={x0:a,x1:a,y0:s,y1:i}:o==="bottom-left"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:0,x1:a,y0:s,y1:s}):o==="left"?n={x0:0,x1:a,y0:s,y1:s}:o==="x"?t={x0:a,x1:a,y0:0,y1:i}:o==="y"&&(n={x0:0,x1:r,y0:s,y1:s}),u.jsxs(u.Fragment,{children:[t&&u.jsx(VL,{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}),n&&u.jsx(VL,{x0:n.x0,x1:n.x1,y0:n.y0,y1:n.y1})]})});Ent.displayName="Crosshair";var mue=m.createContext({showTooltipAt:function(){},showTooltipFromEvent:function(){},hideTooltip:function(){}}),HL={isVisible:!1,position:[null,null],content:null,anchor:null},gue=m.createContext(HL),Nnt=function(e){var t=m.useState(HL),n=t[0],r=t[1],i=m.useCallback(function(s,l,c){var d=l[0],f=l[1];c===void 0&&(c="top"),r({isVisible:!0,position:[d,f],anchor:c,content:s})},[r]),o=m.useCallback(function(s,l,c){c===void 0&&(c="top");var d=e.current.getBoundingClientRect(),f=e.current.offsetWidth,p=f===d.width?1:f/d.width,v="touches"in l?l.touches[0]:l,_=v.clientX,y=v.clientY,b=(_-d.left)*p,w=(y-d.top)*p;c!=="left"&&c!=="right"||(c=b-1&&e%1==0&&e<=Wrt}var XL=Vrt,Hrt=B6,Zrt=XL;function qrt(e){return e!=null&&Zrt(e.length)&&!Hrt(e)}var Y6=qrt,Grt=Y6,Yrt=lc;function Krt(e){return Yrt(e)&&Grt(e)}var Nue=Krt,K6={exports:{}};function Xrt(){return!1}var Jrt=Xrt;K6.exports,function(e,t){var n=sc,r=Jrt,i=t&&!t.nodeType&&t,o=i&&!0&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a?n.Buffer:void 0,l=s?s.isBuffer:void 0,c=l||r;e.exports=c}(K6,K6.exports);var X6=K6.exports,Qrt=Wp,eit=YL,tit=lc,nit="[object Object]",rit=Function.prototype,iit=Object.prototype,$ue=rit.toString,oit=iit.hasOwnProperty,ait=$ue.call(Object);function sit(e){if(!tit(e)||Qrt(e)!=nit)return!1;var t=eit(e);if(t===null)return!0;var n=oit.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&$ue.call(n)==ait}var Mue=sit;const F_=to(Mue);var lit=Wp,uit=XL,cit=lc,dit="[object Arguments]",fit="[object Array]",hit="[object Boolean]",pit="[object Date]",mit="[object Error]",git="[object Function]",vit="[object Map]",yit="[object Number]",bit="[object Object]",_it="[object RegExp]",xit="[object Set]",wit="[object String]",kit="[object WeakMap]",Sit="[object ArrayBuffer]",Cit="[object DataView]",jit="[object Float32Array]",Tit="[object Float64Array]",Iit="[object Int8Array]",Eit="[object Int16Array]",Nit="[object Int32Array]",$it="[object Uint8Array]",Mit="[object Uint8ClampedArray]",Lit="[object Uint16Array]",Rit="[object Uint32Array]",Br={};Br[jit]=Br[Tit]=Br[Iit]=Br[Eit]=Br[Nit]=Br[$it]=Br[Mit]=Br[Lit]=Br[Rit]=!0,Br[dit]=Br[fit]=Br[Sit]=Br[hit]=Br[Cit]=Br[pit]=Br[mit]=Br[git]=Br[vit]=Br[yit]=Br[bit]=Br[_it]=Br[xit]=Br[wit]=Br[kit]=!1;function Oit(e){return cit(e)&&uit(e.length)&&!!Br[lit(e)]}var Pit=Oit;function zit(e){return function(t){return e(t)}}var J6=zit,Q6={exports:{}};Q6.exports,function(e,t){var n=Xle,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,a=o&&n.process,s=function(){try{var l=i&&i.require&&i.require("util").types;return l||a&&a.binding&&a.binding("util")}catch{}}();e.exports=s}(Q6,Q6.exports);var JL=Q6.exports,Dit=Pit,Ait=J6,Lue=JL,Rue=Lue&&Lue.isTypedArray,Fit=Rue?Ait(Rue):Dit,QL=Fit;function Bit(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Oue=Bit,Uit=qL,Wit=A_,Vit=Object.prototype,Hit=Vit.hasOwnProperty;function Zit(e,t,n){var r=e[t];(!(Hit.call(e,t)&&Wit(r,n))||n===void 0&&!(t in e))&&Uit(e,t,n)}var eR=Zit,qit=eR,Git=qL;function Yit(e,t,n,r){var i=!n;n||(n={});for(var o=-1,a=t.length;++o-1&&e%1==0&&e0){if(++t>=oat)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var uat=lat,cat=iat,dat=uat,fat=dat(cat),Zue=fat,hat=Uue,pat=Vue,mat=Zue;function gat(e,t){return mat(pat(e,t,hat),e+"")}var que=gat,vat=A_,yat=Y6,bat=e5,_at=Cd;function xat(e,t,n){if(!_at(n))return!1;var r=typeof t;return(r=="number"?yat(n)&&bat(t,n.length):r=="string"&&t in n)?vat(n[t],e):!1}var wat=xat,kat=que,Sat=wat;function Cat(e){return kat(function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&typeof o=="function"?(i--,o):void 0,a&&Sat(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=Object(t);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?r5(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?r5(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Est.exec(e))?new Vo(t[1],t[2],t[3],1):(t=Nst.exec(e))?new Vo(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=$st.exec(e))?r5(t[1],t[2],t[3],t[4]):(t=Mst.exec(e))?r5(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Lst.exec(e))?cce(t[1],t[2]/100,t[3]/100,1):(t=Rst.exec(e))?cce(t[1],t[2]/100,t[3]/100,t[4]):rce.hasOwnProperty(e)?ace(rce[e]):e==="transparent"?new Vo(NaN,NaN,NaN,0):null}function ace(e){return new Vo(e>>16&255,e>>8&255,e&255,1)}function r5(e,t,n,r){return r<=0&&(e=t=n=NaN),new Vo(e,t,n,r)}function sce(e){return e instanceof h1||(e=oR(e)),e?(e=e.rgb(),new Vo(e.r,e.g,e.b,e.opacity)):new Vo}function qp(e,t,n,r){return arguments.length===1?sce(e):new Vo(e,t,n,r??1)}function Vo(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}n5(Vo,qp,iR(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Vo(Gp(this.r),Gp(this.g),Gp(this.b),i5(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:lce,formatHex:lce,formatHex8:zst,formatRgb:uce,toString:uce}));function lce(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}`}function zst(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}${Yp((isNaN(this.opacity)?1:this.opacity)*255)}`}function uce(){const e=i5(this.opacity);return`${e===1?"rgb(":"rgba("}${Gp(this.r)}, ${Gp(this.g)}, ${Gp(this.b)}${e===1?")":`, ${e})`}`}function i5(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Gp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yp(e){return e=Gp(e),(e<16?"0":"")+e.toString(16)}function cce(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new pu(e,t,n,r)}function dce(e){if(e instanceof pu)return new pu(e.h,e.s,e.l,e.opacity);if(e instanceof h1||(e=oR(e)),!e)return new pu;if(e instanceof pu)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(t===o?a=(n-r)/s+(n0&&l<1?0:a,new pu(a,s,l,e.opacity)}function Dst(e,t,n,r){return arguments.length===1?dce(e):new pu(e,t,n,r??1)}function pu(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}n5(pu,Dst,iR(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new pu(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new pu(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Vo(aR(e>=240?e-240:e+120,i,r),aR(e,i,r),aR(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new pu(fce(this.h),o5(this.s),o5(this.l),i5(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=i5(this.opacity);return`${e===1?"hsl(":"hsla("}${fce(this.h)}, ${o5(this.s)*100}%, ${o5(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fce(e){return e=(e||0)%360,e<0?e+360:e}function o5(e){return Math.max(0,Math.min(1,e||0))}function aR(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Ast=Math.PI/180,Fst=180/Math.PI;var hce=-.14861,sR=1.78277,lR=-.29227,a5=-.90649,H_=1.97294,pce=H_*a5,mce=H_*sR,gce=sR*lR-a5*hce;function Bst(e){if(e instanceof Kp)return new Kp(e.h,e.s,e.l,e.opacity);e instanceof Vo||(e=sce(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(gce*r+pce*t-mce*n)/(gce+pce-mce),o=r-i,a=(H_*(n-i)-lR*o)/a5,s=Math.sqrt(a*a+o*o)/(H_*i*(1-i)),l=s?Math.atan2(a,o)*Fst-120:NaN;return new Kp(l<0?l+360:l,s,i,e.opacity)}function cc(e,t,n,r){return arguments.length===1?Bst(e):new Kp(e,t,n,r??1)}function Kp(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}n5(Kp,cc,iR(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Kp(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Kp(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Ast,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Vo(255*(t+n*(hce*r+sR*i)),255*(t+n*(lR*r+a5*i)),255*(t+n*(H_*r)),this.opacity)}}));function Ust(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function Wst(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r()=>e;function vce(e,t){return function(n){return e+n*t}}function Vst(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Hst(e,t){var n=t-e;return n?vce(e,n>180||n<-180?n-360*Math.round(n/360):n):uR(isNaN(e)?t:e)}function Zst(e){return(e=+e)==1?g1:function(t,n){return n-t?Vst(t,n,e):uR(isNaN(t)?n:t)}}function g1(e,t){var n=t-e;return n?vce(e,n):uR(isNaN(e)?t:e)}(function e(t){var n=Zst(t);function r(i,o){var a=n((i=qp(i)).r,(o=qp(o)).r),s=n(i.g,o.g),l=n(i.b,o.b),c=g1(i.opacity,o.opacity);return function(d){return i.r=a(d),i.g=s(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r})(1);function qst(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function wce(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function dR(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function slt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}const kce=Symbol("implicit");function dc(){var e=new bce,t=[],n=[],r=kce;function i(o){let a=e.get(o);if(a===void 0){if(r!==kce)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new bce;for(const a of o)e.has(a)||e.set(a,t.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return dc(t,n).unknown(r)},slt.apply(i,arguments),i}function llt(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function s5(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function ult(e){return e=s5(Math.abs(e)),e?e[1]:NaN}function clt(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function dlt(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var flt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function fR(e){if(!(t=flt.exec(e)))throw new Error("invalid format: "+e);var t;return new hR({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}fR.prototype=hR.prototype;function hR(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}hR.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function hlt(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Sce;function plt(e,t){var n=s5(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(Sce=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+s5(e,Math.max(0,t+o-1))[0]}function Cce(e,t){var n=s5(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const jce={"%":function(e,t){return(e*100).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:llt,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return Cce(e*100,t)},r:Cce,s:plt,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function Tce(e){return e}var Ice=Array.prototype.map,Ece=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function mlt(e){var t=e.grouping===void 0||e.thousands===void 0?Tce:clt(Ice.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal+"",o=e.numerals===void 0?Tce:dlt(Ice.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(f){f=fR(f);var p=f.fill,v=f.align,_=f.sign,y=f.symbol,b=f.zero,w=f.width,x=f.comma,S=f.precision,C=f.trim,j=f.type;j==="n"?(x=!0,j="g"):jce[j]||(S===void 0&&(S=12),C=!0,j="g"),(b||p==="0"&&v==="=")&&(b=!0,p="0",v="=");var T=y==="$"?n:y==="#"&&/[boxX]/.test(j)?"0"+j.toLowerCase():"",E=y==="$"?r:/[%p]/.test(j)?a:"",$=jce[j],A=/[defgprs%]/.test(j);S=S===void 0?6:/[gprs]/.test(j)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function M(P){var te=T,Z=E,O,J,D;if(j==="c")Z=$(P)+Z,P="";else{P=+P;var Y=P<0||1/P<0;if(P=isNaN(P)?l:$(Math.abs(P),S),C&&(P=hlt(P)),Y&&+P==0&&_!=="+"&&(Y=!1),te=(Y?_==="("?_:s:_==="-"||_==="("?"":_)+te,Z=(j==="s"?Ece[8+Sce/3]:"")+Z+(Y&&_==="("?")":""),A){for(O=-1,J=P.length;++OD||D>57){Z=(D===46?i+P.slice(O+1):P.slice(O))+Z,P=P.slice(0,O);break}}}x&&!b&&(P=t(P,1/0));var F=te.length+P.length+Z.length,H=F>1)+te+P+Z+H.slice(F);break;default:P=H+te+P+Z;break}return o(P)}return M.toString=function(){return f+""},M}function d(f,p){var v=c((f=fR(f),f.type="f",f)),_=Math.max(-8,Math.min(8,Math.floor(ult(p)/3)))*3,y=Math.pow(10,-_),b=Ece[8+_/3];return function(w){return v(y*w)+b}}return{format:c,formatPrefix:d}}var l5,Nce;glt({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function glt(e){return l5=mlt(e),Nce=l5.format,l5.formatPrefix,l5}var pR=new Date,mR=new Date;function jd(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a0))return l;do l.push(c=new Date(+o)),t(o,s),e(o);while(c=a)for(;e(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););})},n&&(i.count=function(o,a){return pR.setTime(+o),mR.setTime(+a),e(pR),e(mR),Math.floor(n(pR,mR))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}const vlt=1e3,gR=vlt*60,ylt=gR*60,vR=ylt*24,$ce=vR*7;var yR=jd(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*gR)/vR,e=>e.getDate()-1);yR.range;function Xp(e){return jd(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*gR)/$ce})}var Mce=Xp(0),u5=Xp(1),blt=Xp(2),_lt=Xp(3),v1=Xp(4),xlt=Xp(5),wlt=Xp(6);Mce.range,u5.range,blt.range,_lt.range,v1.range,xlt.range,wlt.range;var Jp=jd(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Jp.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:jd(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})},Jp.range;var bR=jd(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/vR},function(e){return e.getUTCDate()-1});bR.range;function Qp(e){return jd(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/$ce})}var Lce=Qp(0),c5=Qp(1),klt=Qp(2),Slt=Qp(3),y1=Qp(4),Clt=Qp(5),jlt=Qp(6);Lce.range,c5.range,klt.range,Slt.range,y1.range,Clt.range,jlt.range;var em=jd(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});em.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:jd(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})},em.range;function _R(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function xR(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Z_(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Tlt(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,l=e.shortMonths,c=q_(i),d=G_(i),f=q_(o),p=G_(o),v=q_(a),_=G_(a),y=q_(s),b=G_(s),w=q_(l),x=G_(l),S={a:Y,A:F,b:H,B:ee,c:null,d:Ace,e:Ace,f:Klt,g:aut,G:lut,H:qlt,I:Glt,j:Ylt,L:Fce,m:Xlt,M:Jlt,p:ce,q:U,Q:Zce,s:qce,S:Qlt,u:eut,U:tut,V:nut,w:rut,W:iut,x:null,X:null,y:out,Y:sut,Z:uut,"%":Hce},C={a:ae,A:je,b:me,B:ke,c:null,d:Uce,e:Uce,f:hut,g:kut,G:Cut,H:cut,I:dut,j:fut,L:Wce,m:put,M:mut,p:he,q:ue,Q:Zce,s:qce,S:gut,u:vut,U:yut,V:but,w:_ut,W:xut,x:null,X:null,y:wut,Y:Sut,Z:jut,"%":Hce},j={a:M,A:P,b:te,B:Z,c:O,d:zce,e:zce,f:Wlt,g:Pce,G:Oce,H:Dce,I:Dce,j:Alt,L:Ult,m:Dlt,M:Flt,p:A,q:zlt,Q:Hlt,s:Zlt,S:Blt,u:Mlt,U:Llt,V:Rlt,w:$lt,W:Olt,x:J,X:D,y:Pce,Y:Oce,Z:Plt,"%":Vlt};S.x=T(n,S),S.X=T(r,S),S.c=T(t,S),C.x=T(n,C),C.X=T(r,C),C.c=T(t,C);function T(re,ge){return function($e){var pe=[],ye=-1,Se=0,Ce=re.length,Be,Ge,xt;for($e instanceof Date||($e=new Date(+$e));++ye53)return null;"w"in pe||(pe.w=1),"Z"in pe?(Se=xR(Z_(pe.y,0,1)),Ce=Se.getUTCDay(),Se=Ce>4||Ce===0?c5.ceil(Se):c5(Se),Se=bR.offset(Se,(pe.V-1)*7),pe.y=Se.getUTCFullYear(),pe.m=Se.getUTCMonth(),pe.d=Se.getUTCDate()+(pe.w+6)%7):(Se=_R(Z_(pe.y,0,1)),Ce=Se.getDay(),Se=Ce>4||Ce===0?u5.ceil(Se):u5(Se),Se=yR.offset(Se,(pe.V-1)*7),pe.y=Se.getFullYear(),pe.m=Se.getMonth(),pe.d=Se.getDate()+(pe.w+6)%7)}else("W"in pe||"U"in pe)&&("w"in pe||(pe.w="u"in pe?pe.u%7:"W"in pe?1:0),Ce="Z"in pe?xR(Z_(pe.y,0,1)).getUTCDay():_R(Z_(pe.y,0,1)).getDay(),pe.m=0,pe.d="W"in pe?(pe.w+6)%7+pe.W*7-(Ce+5)%7:pe.w+pe.U*7-(Ce+6)%7);return"Z"in pe?(pe.H+=pe.Z/100|0,pe.M+=pe.Z%100,xR(pe)):_R(pe)}}function $(re,ge,$e,pe){for(var ye=0,Se=ge.length,Ce=$e.length,Be,Ge;ye=Ce)return-1;if(Be=ge.charCodeAt(ye++),Be===37){if(Be=ge.charAt(ye++),Ge=j[Be in Rce?ge.charAt(ye++):Be],!Ge||(pe=Ge(re,$e,pe))<0)return-1}else if(Be!=$e.charCodeAt(pe++))return-1}return pe}function A(re,ge,$e){var pe=c.exec(ge.slice($e));return pe?(re.p=d.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function M(re,ge,$e){var pe=v.exec(ge.slice($e));return pe?(re.w=_.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function P(re,ge,$e){var pe=f.exec(ge.slice($e));return pe?(re.w=p.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function te(re,ge,$e){var pe=w.exec(ge.slice($e));return pe?(re.m=x.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function Z(re,ge,$e){var pe=y.exec(ge.slice($e));return pe?(re.m=b.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function O(re,ge,$e){return $(re,t,ge,$e)}function J(re,ge,$e){return $(re,n,ge,$e)}function D(re,ge,$e){return $(re,r,ge,$e)}function Y(re){return a[re.getDay()]}function F(re){return o[re.getDay()]}function H(re){return l[re.getMonth()]}function ee(re){return s[re.getMonth()]}function ce(re){return i[+(re.getHours()>=12)]}function U(re){return 1+~~(re.getMonth()/3)}function ae(re){return a[re.getUTCDay()]}function je(re){return o[re.getUTCDay()]}function me(re){return l[re.getUTCMonth()]}function ke(re){return s[re.getUTCMonth()]}function he(re){return i[+(re.getUTCHours()>=12)]}function ue(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var ge=T(re+="",S);return ge.toString=function(){return re},ge},parse:function(re){var ge=E(re+="",!1);return ge.toString=function(){return re},ge},utcFormat:function(re){var ge=T(re+="",C);return ge.toString=function(){return re},ge},utcParse:function(re){var ge=E(re+="",!0);return ge.toString=function(){return re},ge}}}var Rce={"-":"",_:" ",0:"0"},lo=/^\s*\d+/,Ilt=/^%/,Elt=/[\\^$*+?|[\]().{}]/g;function On(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o[t.toLowerCase(),n]))}function $lt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Mlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Llt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Rlt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Olt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Oce(e,t,n){var r=lo.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Pce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Plt(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function zlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Dlt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function zce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Alt(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Dce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Flt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Blt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Ult(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Wlt(e,t,n){var r=lo.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Vlt(e,t,n){var r=Ilt.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Hlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Zlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Ace(e,t){return On(e.getDate(),t,2)}function qlt(e,t){return On(e.getHours(),t,2)}function Glt(e,t){return On(e.getHours()%12||12,t,2)}function Ylt(e,t){return On(1+yR.count(Jp(e),e),t,3)}function Fce(e,t){return On(e.getMilliseconds(),t,3)}function Klt(e,t){return Fce(e,t)+"000"}function Xlt(e,t){return On(e.getMonth()+1,t,2)}function Jlt(e,t){return On(e.getMinutes(),t,2)}function Qlt(e,t){return On(e.getSeconds(),t,2)}function eut(e){var t=e.getDay();return t===0?7:t}function tut(e,t){return On(Mce.count(Jp(e)-1,e),t,2)}function Bce(e){var t=e.getDay();return t>=4||t===0?v1(e):v1.ceil(e)}function nut(e,t){return e=Bce(e),On(v1.count(Jp(e),e)+(Jp(e).getDay()===4),t,2)}function rut(e){return e.getDay()}function iut(e,t){return On(u5.count(Jp(e)-1,e),t,2)}function out(e,t){return On(e.getFullYear()%100,t,2)}function aut(e,t){return e=Bce(e),On(e.getFullYear()%100,t,2)}function sut(e,t){return On(e.getFullYear()%1e4,t,4)}function lut(e,t){var n=e.getDay();return e=n>=4||n===0?v1(e):v1.ceil(e),On(e.getFullYear()%1e4,t,4)}function uut(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+On(t/60|0,"0",2)+On(t%60,"0",2)}function Uce(e,t){return On(e.getUTCDate(),t,2)}function cut(e,t){return On(e.getUTCHours(),t,2)}function dut(e,t){return On(e.getUTCHours()%12||12,t,2)}function fut(e,t){return On(1+bR.count(em(e),e),t,3)}function Wce(e,t){return On(e.getUTCMilliseconds(),t,3)}function hut(e,t){return Wce(e,t)+"000"}function put(e,t){return On(e.getUTCMonth()+1,t,2)}function mut(e,t){return On(e.getUTCMinutes(),t,2)}function gut(e,t){return On(e.getUTCSeconds(),t,2)}function vut(e){var t=e.getUTCDay();return t===0?7:t}function yut(e,t){return On(Lce.count(em(e)-1,e),t,2)}function Vce(e){var t=e.getUTCDay();return t>=4||t===0?y1(e):y1.ceil(e)}function but(e,t){return e=Vce(e),On(y1.count(em(e),e)+(em(e).getUTCDay()===4),t,2)}function _ut(e){return e.getUTCDay()}function xut(e,t){return On(c5.count(em(e)-1,e),t,2)}function wut(e,t){return On(e.getUTCFullYear()%100,t,2)}function kut(e,t){return e=Vce(e),On(e.getUTCFullYear()%100,t,2)}function Sut(e,t){return On(e.getUTCFullYear()%1e4,t,4)}function Cut(e,t){var n=e.getUTCDay();return e=n>=4||n===0?y1(e):y1.ceil(e),On(e.getUTCFullYear()%1e4,t,4)}function jut(){return"+0000"}function Hce(){return"%"}function Zce(e){return+e}function qce(e){return Math.floor(+e/1e3)}var b1,Gce;Tut({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Tut(e){return b1=Tlt(e),Gce=b1.format,b1.parse,b1.utcFormat,b1.utcParse,b1}function en(e){for(var t=e.length/6|0,n=new Array(t),r=0;rGst(e[e.length-1]);var tm=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(en);const _5=xr(tm);var nm=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(en);const x5=xr(nm);var rm=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(en);const w5=xr(rm);var im=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(en);const k5=xr(im);var om=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(en);const S5=xr(om);var am=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(en);const C5=xr(am);var sm=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(en);const j5=xr(sm);var lm=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(en);const T5=xr(lm);var um=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(en);const I5=xr(um);var cm=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(en);const E5=xr(cm);var dm=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(en);const N5=xr(dm);var fm=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(en);const $5=xr(fm);var hm=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(en);const M5=xr(hm);var pm=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(en);const L5=xr(pm);var mm=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(en);const R5=xr(mm);var gm=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(en);const O5=xr(gm);var vm=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(en);const P5=xr(vm);var ym=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(en);const z5=xr(ym);var bm=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(en);const D5=xr(bm);var _m=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(en);const A5=xr(_m);var xm=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(en);const F5=xr(xm);var wm=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(en);const B5=xr(wm);var km=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(en);const U5=xr(km);var Sm=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(en);const W5=xr(Sm);var Cm=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(en);const V5=xr(Cm);var jm=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(en);const H5=xr(jm);var Tm=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(en);const Z5=xr(Tm);function q5(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-e*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-e*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-e*2475.67)))))))+")"}const G5=cR(cc(300,.5,0),cc(-240,.5,1));var Y5=cR(cc(-100,.75,.35),cc(80,1.5,.8)),K5=cR(cc(260,.75,.35),cc(80,1.5,.8)),X5=cc();function J5(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return X5.h=360*e-100,X5.s=1.5-1.5*t,X5.l=.8-.9*t,X5+""}var Q5=qp(),Iut=Math.PI/3,Eut=Math.PI*2/3;function eS(e){var t;return e=(.5-e)*Math.PI,Q5.r=255*(t=Math.sin(e))*t,Q5.g=255*(t=Math.sin(e+Iut))*t,Q5.b=255*(t=Math.sin(e+Eut))*t,Q5+""}function tS(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-e*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+e*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-e*6838.66)))))))+")"}function nS(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}const rS=nS(en("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var iS=nS(en("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),oS=nS(en("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),aS=nS(en("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),Nut=DL,$ut=sue,Mut=lue,Lut=Yue,Rut=J6,Out=AL,Put=200;function zut(e,t,n,r){var i=-1,o=$ut,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=Lut(t,Rut(n))),r?(o=Mut,a=!1):t.length>=Put&&(o=Out,a=!1,t=new Nut(t));e:for(;++i1?0:e<-1?K_:Math.acos(e)}function Xce(e){return e>=1?sS:e<=-1?-sS:Math.asin(e)}const kR=Math.PI,SR=2*kR,Em=1e-6,Zut=SR-Em;function Jce(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Jce;const n=10**t;return function(r){this._+=r[0];for(let i=1,o=r.length;iEm)if(!(Math.abs(d*s-l*c)>Em)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=n-o,v=r-a,_=s*s+l*l,y=p*p+v*v,b=Math.sqrt(_),w=Math.sqrt(f),x=i*Math.tan((kR-Math.acos((_+f-y)/(2*b*w)))/2),S=x/w,C=x/b;Math.abs(S-1)>Em&&this._append`L${e+S*c},${t+S*d}`,this._append`A${i},${i},0,0,${+(d*p>c*v)},${this._x1=e+C*s},${this._y1=t+C*l}`}}arc(e,t,n,r,i,o){if(e=+e,t=+t,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),l=e+a,c=t+s,d=1^o,f=o?r-i:i-r;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Em||Math.abs(this._y1-c)>Em)&&this._append`L${l},${c}`,n&&(f<0&&(f=f%SR+SR),f>Zut?this._append`A${n},${n},0,1,${d},${e-a},${t-s}A${n},${n},0,1,${d},${this._x1=l},${this._y1=c}`:f>Em&&this._append`A${n},${n},0,${+(f>=kR)},${d},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function Qce(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new Gut(t)}function Yut(e){return e.innerRadius}function Kut(e){return e.outerRadius}function Xut(e){return e.startAngle}function Jut(e){return e.endAngle}function Qut(e){return e&&e.padAngle}function ect(e,t,n,r,i,o,a,s){var l=n-e,c=r-t,d=a-i,f=s-o,p=f*l-d*c;if(!(p*pO*O+J*J&&($=M,A=P),{cx:$,cy:A,x01:-d,y01:-f,x11:$*(i/j-1),y11:A*(i/j-1)}}function tct(){var e=Yut,t=Kut,n=Si(0),r=null,i=Xut,o=Jut,a=Qut,s=null,l=Qce(c);function c(){var d,f,p=+e.apply(this,arguments),v=+t.apply(this,arguments),_=i.apply(this,arguments)-sS,y=o.apply(this,arguments)-sS,b=Kce(y-_),w=y>_;if(s||(s=d=l()),vZo))s.moveTo(0,0);else if(b>lS-Zo)s.moveTo(v*Im(_),v*fc(_)),s.arc(0,0,v,_,y,!w),p>Zo&&(s.moveTo(p*Im(y),p*fc(y)),s.arc(0,0,p,y,_,w));else{var x=_,S=y,C=_,j=y,T=b,E=b,$=a.apply(this,arguments)/2,A=$>Zo&&(r?+r.apply(this,arguments):_1(p*p+v*v)),M=wR(Kce(v-p)/2,+n.apply(this,arguments)),P=M,te=M,Z,O;if(A>Zo){var J=Xce(A/p*fc($)),D=Xce(A/v*fc($));(T-=J*2)>Zo?(J*=w?1:-1,C+=J,j-=J):(T=0,C=j=(_+y)/2),(E-=D*2)>Zo?(D*=w?1:-1,x+=D,S-=D):(E=0,x=S=(_+y)/2)}var Y=v*Im(x),F=v*fc(x),H=p*Im(j),ee=p*fc(j);if(M>Zo){var ce=v*Im(S),U=v*fc(S),ae=p*Im(C),je=p*fc(C),me;if(bZo?te>Zo?(Z=uS(ae,je,Y,F,v,te,w),O=uS(ce,U,H,ee,v,te,w),s.moveTo(Z.cx+Z.x01,Z.cy+Z.y01),teZo)||!(T>Zo)?s.lineTo(H,ee):P>Zo?(Z=uS(H,ee,ce,U,p,-P,w),O=uS(Y,F,ae,je,p,-P,w),s.lineTo(Z.cx+Z.x01,Z.cy+Z.y01),Pe?1:t>=e?0:NaN}function oct(e){return e}function act(){var e=oct,t=ict,n=null,r=Si(0),i=Si(lS),o=Si(0);function a(s){var l,c=(s=ede(s)).length,d,f,p=0,v=new Array(c),_=new Array(c),y=+r.apply(this,arguments),b=Math.min(lS,Math.max(-lS,i.apply(this,arguments)-y)),w,x=Math.min(Math.abs(b)/c,o.apply(this,arguments)),S=x*(b<0?-1:1),C;for(l=0;l0&&(p+=C);for(t!=null?v.sort(function(j,T){return t(_[j],_[T])}):n!=null&&v.sort(function(j,T){return n(s[j],s[T])}),l=0,f=p?(b-c*S)/p:0;l0?C*f:0)+S,_[d]={data:s[d],index:l,value:C,startAngle:y,endAngle:w,padAngle:x};return _}return a.value=function(s){return arguments.length?(e=typeof s=="function"?s:Si(+s),a):e},a.sortValues=function(s){return arguments.length?(t=s,n=null,a):t},a.sort=function(s){return arguments.length?(n=s,t=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:Si(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:Si(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:Si(+s),a):o},a}function fh(){}function cS(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function dS(e){this._context=e}dS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:cS(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:cS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function sct(e){return new dS(e)}function rde(e){this._context=e}rde.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:cS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lct(e){return new rde(e)}function ide(e){this._context=e}ide.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:cS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function uct(e){return new ide(e)}function ode(e,t){this._basis=new dS(e),this._beta=t}ode.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r=e[0],i=t[0],o=e[n]-r,a=t[n]-i,s=-1,l;++s<=n;)l=s/n,this._basis.point(this._beta*e[s]+(1-this._beta)*(r+l*o),this._beta*t[s]+(1-this._beta)*(i+l*a));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const cct=function e(t){function n(r){return t===1?new dS(r):new ode(r,t)}return n.beta=function(r){return e(+r)},n}(.85);function fS(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function jR(e,t){this._context=e,this._k=(1-t)/6}jR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:fS(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:fS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const dct=function e(t){function n(r){return new jR(r,t)}return n.tension=function(r){return e(+r)},n}(0);function TR(e,t){this._context=e,this._k=(1-t)/6}TR.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:fS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const fct=function e(t){function n(r){return new TR(r,t)}return n.tension=function(r){return e(+r)},n}(0);function IR(e,t){this._context=e,this._k=(1-t)/6}IR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:fS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const hct=function e(t){function n(r){return new IR(r,t)}return n.tension=function(r){return e(+r)},n}(0);function ER(e,t,n){var r=e._x1,i=e._y1,o=e._x2,a=e._y2;if(e._l01_a>Zo){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>Zo){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,d=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*c+e._x1*e._l23_2a-t*e._l12_2a)/d,a=(a*c+e._y1*e._l23_2a-n*e._l12_2a)/d}e._context.bezierCurveTo(r,i,o,a,e._x2,e._y2)}function ade(e,t){this._context=e,this._alpha=t}ade.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:ER(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const pct=function e(t){function n(r){return t?new ade(r,t):new jR(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function sde(e,t){this._context=e,this._alpha=t}sde.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:ER(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const mct=function e(t){function n(r){return t?new sde(r,t):new TR(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function lde(e,t){this._context=e,this._alpha=t}lde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ER(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const gct=function e(t){function n(r){return t?new lde(r,t):new IR(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function ude(e){this._context=e}ude.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function vct(e){return new ude(e)}function cde(e){return e<0?-1:1}function dde(e,t,n){var r=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(r||i<0&&-0),a=(n-e._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(cde(o)+cde(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function fde(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function NR(e,t,n){var r=e._x0,i=e._y0,o=e._x1,a=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,i+s*t,o-s,a-s*n,o,a)}function hS(e){this._context=e}hS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:NR(this,this._t0,fde(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,NR(this,fde(this,n=dde(this,e,t)),n);break;default:NR(this,this._t0,n=dde(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function hde(e){this._context=new pde(e)}(hde.prototype=Object.create(hS.prototype)).point=function(e,t){hS.prototype.point.call(this,t,e)};function pde(e){this._context=e}pde.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,o){this._context.bezierCurveTo(t,e,r,n,o,i)}};function mde(e){return new hS(e)}function gde(e){return new hde(e)}function vde(e){this._context=e}vde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=yde(e),i=yde(t),o=0,a=1;a=0;--t)i[t]=(a[t]-i[t+1])/o[t];for(o[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function bct(e){return new pS(e,.5)}function _ct(e){return new pS(e,0)}function xct(e){return new pS(e,1)}var wct=ece,kct=nce,Sct=t5;function Cct(e,t,n){for(var r=-1,i=t.length,o={};++r0&&n(s)?t>1?xde(s,t-1,n,r,i):Kct(i,s):r||(i[i.length]=s)}return i}var Jct=xde,Qct=Jct;function edt(e){var t=e==null?0:e.length;return t?Qct(e,1):[]}var tdt=edt,ndt=tdt,rdt=Vue,idt=Zue;function odt(e){return idt(rdt(e,void 0,ndt),e+"")}var adt=odt,sdt=Vct,ldt=adt,udt=ldt(function(e,t){return e==null?{}:sdt(e,t)}),cdt=udt;const ddt=to(cdt);function fdt(e,t){for(var n=-1,r=e==null?0:e.length;++ns))return!1;var c=o.get(e),d=o.get(t);if(c&&d)return c==t&&d==e;var f=-1,p=!0,v=n&ydt?new pdt:void 0;for(o.set(e,t),o.set(t,e);++f=0||(i[n]=e[n]);return i}var Qft=["axis.ticks.text","axis.legend.text","legends.title.text","legends.text","legends.ticks.text","legends.title.text","labels.text","dots.text","markers.text","annotations.text"],eht=function(e,t){return mu({},t,e)},tht=function(e,t){var n=$at({},e,t);return Qft.forEach(function(r){W_(n,r,eht(yl(n,r),n.text))}),n},Hde=m.createContext(),Zde=function(e){var t=e.children,n=e.animate,r=n===void 0||n,i=e.config,o=i===void 0?"default":i,a=m.useMemo(function(){var s=tlt(o)?w$[o]:o;return{animate:r,config:s}},[r,o]);return u.jsx(Hde.Provider,{value:a,children:t})},vS={animate:_e.bool,motionConfig:_e.oneOfType([_e.oneOf(Object.keys(w$)),_e.shape({mass:_e.number,tension:_e.number,friction:_e.number,clamp:_e.bool,precision:_e.number,velocity:_e.number,duration:_e.number,easing:_e.func})])};Zde.propTypes={children:_e.node.isRequired,animate:vS.animate,config:vS.motionConfig};var w1=function(){return m.useContext(Hde)},nht={nivo:["#d76445","#f47560","#e8c1a0","#97e3d5","#61cdbb","#00b0a7"],BrBG:wt(tm),PRGn:wt(nm),PiYG:wt(rm),PuOr:wt(im),RdBu:wt(om),RdGy:wt(am),RdYlBu:wt(sm),RdYlGn:wt(lm),spectral:wt(um),blues:wt(wm),greens:wt(km),greys:wt(Sm),oranges:wt(Tm),purples:wt(Cm),reds:wt(jm),BuGn:wt(cm),BuPu:wt(dm),GnBu:wt(fm),OrRd:wt(hm),PuBuGn:wt(pm),PuBu:wt(mm),PuRd:wt(gm),RdPu:wt(vm),YlGnBu:wt(ym),YlGn:wt(bm),YlOrBr:wt(_m),YlOrRd:wt(xm)},rht=Object.keys(nht);wt(tm),wt(nm),wt(rm),wt(im),wt(om),wt(am),wt(sm),wt(lm),wt(um),wt(wm),wt(km),wt(Sm),wt(Tm),wt(Cm),wt(jm),wt(cm),wt(dm),wt(fm),wt(hm),wt(pm),wt(mm),wt(gm),wt(vm),wt(ym),wt(bm),wt(_m),wt(xm),_e.oneOfType([_e.oneOf(rht),_e.func,_e.arrayOf(_e.string)]);var iht={basis:sct,basisClosed:lct,basisOpen:uct,bundle:cct,cardinal:dct,cardinalClosed:fct,cardinalOpen:hct,catmullRom:pct,catmullRomClosed:mct,catmullRomOpen:gct,linear:nde,linearClosed:vct,monotoneX:mde,monotoneY:gde,natural:yct,step:bct,stepAfter:xct,stepBefore:_ct},UR=Object.keys(iht);UR.filter(function(e){return e.endsWith("Closed")}),Yce(UR,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),Yce(UR,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),_e.shape({top:_e.number,right:_e.number,bottom:_e.number,left:_e.number}).isRequired;var oht=["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"];_e.oneOf(oht),dc(Y_);var aht={top:0,right:0,bottom:0,left:0},qde=function(e,t,n){return n===void 0&&(n={}),m.useMemo(function(){var r=mu({},aht,n);return{margin:r,innerWidth:e-r.left-r.right,innerHeight:t-r.top-r.bottom,outerWidth:e,outerHeight:t}},[e,t,n.top,n.right,n.bottom,n.left])},sht=function(){var e=m.useRef(null),t=m.useState({left:0,top:0,width:0,height:0}),n=t[0],r=t[1],i=m.useState(function(){return typeof ResizeObserver>"u"?null:new ResizeObserver(function(o){var a=o[0];return r(a.contentRect)})})[0];return m.useEffect(function(){return e.current&&i!==null&&i.observe(e.current),function(){i!==null&&i.disconnect()}},[]),[e,n]},lht=function(e){return m.useMemo(function(){return tht(Jft,e)},[e])},uht=function(e){return typeof e=="function"?e:typeof e=="string"?e.indexOf("time:")===0?Gce(e.slice("5")):Nce(e):function(t){return""+t}},WR=function(e){return m.useMemo(function(){return uht(e)},[e])},Gde=m.createContext(),cht={},Yde=function(e){var t=e.theme,n=t===void 0?cht:t,r=e.children,i=lht(n);return u.jsx(Gde.Provider,{value:i,children:r})};Yde.propTypes={children:_e.node.isRequired,theme:_e.object};var Ms=function(){return m.useContext(Gde)},dht=["outlineWidth","outlineColor","outlineOpacity"],Kde=function(e){return e.outlineWidth,e.outlineColor,e.outlineOpacity,BR(e,dht)},Xde=function(e){var t=e.children,n=e.condition,r=e.wrapper;return n?m.cloneElement(r,{},t):t};Xde.propTypes={children:_e.node.isRequired,condition:_e.bool.isRequired,wrapper:_e.element.isRequired};var fht={position:"relative"},VR=function(e){var t=e.children,n=e.theme,r=e.renderWrapper,i=r===void 0||r,o=e.isInteractive,a=o===void 0||o,s=e.animate,l=e.motionConfig,c=m.useRef(null);return u.jsx(Yde,{theme:n,children:u.jsx(Zde,{animate:s,config:l,children:u.jsx(Ont,{container:c,children:u.jsxs(Xde,{condition:i,wrapper:u.jsx("div",{style:fht,ref:c}),children:[t,a&&u.jsx(Rnt,{})]})})})})};VR.propTypes={children:_e.element.isRequired,isInteractive:_e.bool,renderWrapper:_e.bool,theme:_e.object,animate:_e.bool,motionConfig:_e.oneOfType([_e.string,vS.motionConfig])},_e.func.isRequired,_e.bool,_e.bool,_e.object.isRequired,_e.bool.isRequired,_e.oneOfType([_e.string,vS.motionConfig]),_e.func.isRequired;var hht=["id","colors"],Jde=function(e){var t=e.id,n=e.colors,r=BR(e,hht);return u.jsx("linearGradient",mu({id:t,x1:0,x2:0,y1:0,y2:1},r,{children:n.map(function(i){var o=i.offset,a=i.color,s=i.opacity;return u.jsx("stop",{offset:o+"%",stopColor:a,stopOpacity:s!==void 0?s:1},o)})}))};Jde.propTypes={id:_e.string.isRequired,colors:_e.arrayOf(_e.shape({offset:_e.number.isRequired,color:_e.string.isRequired,opacity:_e.number})).isRequired,gradientTransform:_e.string};var Qde={linearGradient:Jde},X_={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},HR=m.memo(function(e){var t=e.id,n=e.background,r=n===void 0?X_.background:n,i=e.color,o=i===void 0?X_.color:i,a=e.size,s=a===void 0?X_.size:a,l=e.padding,c=l===void 0?X_.padding:l,d=e.stagger,f=d===void 0?X_.stagger:d,p=s+c,v=s/2,_=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:r}),u.jsx("circle",{cx:_+v,cy:_+v,r:v,fill:o}),f&&u.jsx("circle",{cx:1.5*c+s+v,cy:1.5*c+s+v,r:v,fill:o})]})});HR.displayName="PatternDots",HR.propTypes={id:_e.string.isRequired,color:_e.string.isRequired,background:_e.string.isRequired,size:_e.number.isRequired,padding:_e.number.isRequired,stagger:_e.bool.isRequired};var Td=function(e){return e*Math.PI/180},ZR=function(e){return 180*e/Math.PI},pht=function(e){return e.startAngle+(e.endAngle-e.startAngle)/2},k1=function(e,t){return{x:Math.cos(e)*t,y:Math.sin(e)*t}},J_={spacing:5,rotation:0,background:"#000000",color:"#ffffff",lineWidth:2},qR=m.memo(function(e){var t=e.id,n=e.spacing,r=n===void 0?J_.spacing:n,i=e.rotation,o=i===void 0?J_.rotation:i,a=e.background,s=a===void 0?J_.background:a,l=e.color,c=l===void 0?J_.color:l,d=e.lineWidth,f=d===void 0?J_.lineWidth:d,p=Math.round(o)%360,v=Math.abs(r);p>180?p-=360:p>90?p-=180:p<-180?p+=360:p<-90&&(p+=180);var _,y=v,b=v;return p===0?_=` - M 0 0 L `+y+` 0 - M 0 `+b+" L "+y+" "+b+` - `:p===90?_=` - M 0 0 L 0 `+b+` - M `+y+" 0 L "+y+" "+b+` - `:(y=Math.abs(v/Math.sin(Td(p))),b=v/Math.sin(Td(90-p)),_=p>0?` - M 0 `+-b+" L "+2*y+" "+b+` - M `+-y+" "+-b+" L "+y+" "+b+` - M `+-y+" 0 L "+y+" "+2*b+` - `:` - M `+-y+" "+b+" L "+y+" "+-b+` - M `+-y+" "+2*b+" L "+2*y+" "+-b+` - M 0 `+2*b+" L "+2*y+` 0 - `),u.jsxs("pattern",{id:t,width:y,height:b,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:y,height:b,fill:s,stroke:"rgba(255, 0, 0, 0.1)",strokeWidth:0}),u.jsx("path",{d:_,strokeWidth:f,stroke:c,strokeLinecap:"square"})]})});qR.displayName="PatternLines",qR.propTypes={id:_e.string.isRequired,spacing:_e.number.isRequired,rotation:_e.number.isRequired,background:_e.string.isRequired,color:_e.string.isRequired,lineWidth:_e.number.isRequired};var Q_={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},GR=m.memo(function(e){var t=e.id,n=e.color,r=n===void 0?Q_.color:n,i=e.background,o=i===void 0?Q_.background:i,a=e.size,s=a===void 0?Q_.size:a,l=e.padding,c=l===void 0?Q_.padding:l,d=e.stagger,f=d===void 0?Q_.stagger:d,p=s+c,v=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:o}),u.jsx("rect",{x:v,y:v,width:s,height:s,fill:r}),f&&u.jsx("rect",{x:1.5*c+s,y:1.5*c+s,width:s,height:s,fill:r})]})});GR.displayName="PatternSquares",GR.propTypes={id:_e.string.isRequired,color:_e.string.isRequired,background:_e.string.isRequired,size:_e.number.isRequired,padding:_e.number.isRequired,stagger:_e.bool.isRequired};var efe={patternDots:HR,patternLines:qR,patternSquares:GR},mht=["type"],YR=mu({},Qde,efe),tfe=function(e){var t=e.defs;return!t||t.length<1?null:u.jsx("defs",{"aria-hidden":!0,children:t.map(function(n){var r=n.type,i=BR(n,mht);return YR[r]?m.createElement(YR[r],mu({key:i.id},i)):null})})};tfe.propTypes={defs:_e.arrayOf(_e.shape({type:_e.oneOf(Object.keys(YR)).isRequired,id:_e.string.isRequired}))};var ght=m.memo(tfe),KR=function(e){var t=e.width,n=e.height,r=e.margin,i=e.defs,o=e.children,a=e.role,s=e.ariaLabel,l=e.ariaLabelledBy,c=e.ariaDescribedBy,d=e.isFocusable,f=Ms();return u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,role:a,"aria-label":s,"aria-labelledby":l,"aria-describedby":c,focusable:d,tabIndex:d?0:void 0,children:[u.jsx(ght,{defs:i}),u.jsx("rect",{width:t,height:n,fill:f.background}),u.jsx("g",{transform:"translate("+r.left+","+r.top+")",children:o})]})};KR.propTypes={width:_e.number.isRequired,height:_e.number.isRequired,margin:_e.shape({top:_e.number.isRequired,left:_e.number.isRequired}).isRequired,defs:_e.array,children:_e.oneOfType([_e.arrayOf(_e.node),_e.node]).isRequired,role:_e.string,isFocusable:_e.bool,ariaLabel:_e.string,ariaLabelledBy:_e.string,ariaDescribedBy:_e.string};var nfe=function(e){var t=e.size,n=e.color,r=e.borderWidth,i=e.borderColor;return u.jsx("circle",{r:t/2,fill:n,stroke:i,strokeWidth:r,style:{pointerEvents:"none"}})};nfe.propTypes={size:_e.number.isRequired,color:_e.string.isRequired,borderWidth:_e.number.isRequired,borderColor:_e.string.isRequired};var vht=m.memo(nfe),rfe=function(e){var t=e.x,n=e.y,r=e.symbol,i=r===void 0?vht:r,o=e.size,a=e.datum,s=e.color,l=e.borderWidth,c=e.borderColor,d=e.label,f=e.labelTextAnchor,p=f===void 0?"middle":f,v=e.labelYOffset,_=v===void 0?-12:v,y=Ms(),b=w1(),w=b.animate,x=b.config,S=e_({transform:"translate("+t+", "+n+")",config:x,immediate:!w});return u.jsxs(iu.g,{transform:S.transform,style:{pointerEvents:"none"},children:[m.createElement(i,{size:o,color:s,datum:a,borderWidth:l,borderColor:c}),d&&u.jsx("text",{textAnchor:p,y:_,style:Kde(y.dots.text),children:d})]})};rfe.propTypes={x:_e.number.isRequired,y:_e.number.isRequired,datum:_e.object.isRequired,size:_e.number.isRequired,color:_e.string.isRequired,borderWidth:_e.number.isRequired,borderColor:_e.string.isRequired,symbol:_e.oneOfType([_e.func,_e.object]),label:_e.oneOfType([_e.string,_e.number]),labelTextAnchor:_e.oneOf(["start","middle","end"]),labelYOffset:_e.number},m.memo(rfe);var ife=function(e){var t=e.width,n=e.height,r=e.axis,i=e.scale,o=e.value,a=e.lineStyle,s=e.textStyle,l=e.legend,c=e.legendNode,d=e.legendPosition,f=d===void 0?"top-right":d,p=e.legendOffsetX,v=p===void 0?14:p,_=e.legendOffsetY,y=_===void 0?14:_,b=e.legendOrientation,w=b===void 0?"horizontal":b,x=Ms(),S=0,C=0,j=0,T=0;if(r==="y"?(j=i(o),C=t):(S=i(o),T=n),l&&!c){var E=function($){var A=$.axis,M=$.width,P=$.height,te=$.position,Z=$.offsetX,O=$.offsetY,J=$.orientation,D=0,Y=0,F=J==="vertical"?-90:0,H="start";if(A==="x")switch(te){case"top-left":D=-Z,Y=O,H="end";break;case"top":Y=-O,H=J==="horizontal"?"middle":"start";break;case"top-right":D=Z,Y=O,H=J==="horizontal"?"start":"end";break;case"right":D=Z,Y=P/2,H=J==="horizontal"?"start":"middle";break;case"bottom-right":D=Z,Y=P-O,H="start";break;case"bottom":Y=P+O,H=J==="horizontal"?"middle":"end";break;case"bottom-left":Y=P-O,D=-Z,H=J==="horizontal"?"end":"start";break;case"left":D=-Z,Y=P/2,H=J==="horizontal"?"end":"middle"}else switch(te){case"top-left":D=Z,Y=-O,H="start";break;case"top":D=M/2,Y=-O,H=J==="horizontal"?"middle":"start";break;case"top-right":D=M-Z,Y=-O,H=J==="horizontal"?"end":"start";break;case"right":D=M+Z,H=J==="horizontal"?"start":"middle";break;case"bottom-right":D=M-Z,Y=O,H="end";break;case"bottom":D=M/2,Y=O,H=J==="horizontal"?"middle":"end";break;case"bottom-left":D=Z,Y=O,H=J==="horizontal"?"start":"end";break;case"left":D=-Z,H=J==="horizontal"?"end":"middle"}return{x:D,y:Y,rotation:F,textAnchor:H}}({axis:r,width:t,height:n,position:f,offsetX:v,offsetY:y,orientation:w});c=u.jsx("text",{transform:"translate("+E.x+", "+E.y+") rotate("+E.rotation+")",textAnchor:E.textAnchor,dominantBaseline:"central",style:s,children:l})}return u.jsxs("g",{transform:"translate("+S+", "+j+")",children:[u.jsx("line",{x1:0,x2:C,y1:0,y2:T,stroke:x.markers.lineColor,strokeWidth:x.markers.lineStrokeWidth,style:a}),c]})};ife.propTypes={width:_e.number.isRequired,height:_e.number.isRequired,axis:_e.oneOf(["x","y"]).isRequired,scale:_e.func.isRequired,value:_e.oneOfType([_e.number,_e.string,_e.instanceOf(Date)]).isRequired,lineStyle:_e.object,textStyle:_e.object,legend:_e.string,legendPosition:_e.oneOf(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]),legendOffsetX:_e.number.isRequired,legendOffsetY:_e.number.isRequired,legendOrientation:_e.oneOf(["horizontal","vertical"]).isRequired};var yht=m.memo(ife),ofe=function(e){var t=e.markers,n=e.width,r=e.height,i=e.xScale,o=e.yScale;return t&&t.length!==0?t.map(function(a,s){return u.jsx(yht,mu({},a,{width:n,height:r,scale:a.axis==="y"?o:i}),s)}):null};ofe.propTypes={width:_e.number.isRequired,height:_e.number.isRequired,xScale:_e.func.isRequired,yScale:_e.func.isRequired,markers:_e.arrayOf(_e.shape({axis:_e.oneOf(["x","y"]).isRequired,value:_e.oneOfType([_e.number,_e.string,_e.instanceOf(Date)]).isRequired,lineStyle:_e.object,textStyle:_e.object}))},m.memo(ofe);var bht=function(e){return nue(e)?e:function(t){return yl(t,e)}},ex=function(e){return m.useMemo(function(){return bht(e)},[e])},_ht=Object.keys(Qde),xht=Object.keys(efe),wht=function(e,t,n){if(e==="*")return!0;if(nue(e))return e(t);if(F_(e)){var r=n?yl(t,n):t;return Xft(ddt(r,Object.keys(e)),e)}return!1},kht=function(e,t,n,r){var i={},o=i.dataKey,a=i.colorKey,s=a===void 0?"color":a,l=i.targetKey,c=l===void 0?"fill":l,d=[],f={};return e.length&&t.length&&(d=[].concat(e),t.forEach(function(p){for(var v=function(){var y=n[_],b=y.id,w=y.match;if(wht(w,p,o)){var x=e.find(function(M){return M.id===b});if(x){if(xht.includes(x.type))if(x.background==="inherit"||x.color==="inherit"){var S=yl(p,s),C=x.background,j=x.color,T=b;x.background==="inherit"&&(T=T+".bg."+S,C=S),x.color==="inherit"&&(T=T+".fg."+S,j=S),W_(p,c,"url(#"+T+")"),f[T]||(d.push(mu({},x,{id:T,background:C,color:j})),f[T]=1)}else W_(p,c,"url(#"+b+")");else if(_ht.includes(x.type))if(x.colors.map(function(M){return M.color}).includes("inherit")){var E=yl(p,s),$=b,A=mu({},x,{colors:x.colors.map(function(M,P){return M.color!=="inherit"?M:($=$+"."+P+"."+E,mu({},M,{color:M.color==="inherit"?E:M.color}))})});A.id=$,W_(p,c,"url(#"+$+")"),f[$]||(d.push(A),f[$]=1)}else W_(p,c,"url(#"+b+")")}return"break"}},_=0;_u.jsx(WL,{id:e.label,enableChip:!0,color:e.color}),XR={container:{display:"flex",alignItems:"center"},sourceChip:{marginRight:7},targetChip:{marginLeft:7,marginRight:7}},Bht=({link:e})=>u.jsx(WL,{id:u.jsxs("span",{style:XR.container,children:[u.jsx(UL,{color:e.source.color,style:XR.sourceChip}),u.jsx("strong",{children:e.source.label})," > ",u.jsx("strong",{children:e.target.label}),u.jsx(UL,{color:e.target.color,style:XR.targetChip}),u.jsx("strong",{children:e.formattedValue})]})});function Uht(e){return e.target.depth}function Wht(e){return e.depth}function Vht(e,t){return t-1-e.height}function lfe(e,t){return e.sourceLinks.length?e.depth:t-1}function Hht(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?wce(e.sourceLinks,Uht)-1:0}function bS(e){return function(){return e}}var We=(e=>(e.IncPackCranked="Crank:inc",e.IncPackRetained="Buffered:inc",e.IncResolvRetained="Unresolved:inc",e.IncQuic="QUIC",e.IncUdp="UDP",e.IncGossip="Gossip",e.IncBlockEngine="Jito",e.SlotStart="Received",e.SlotEnd="Packed",e.End="End",e.Networking="networking:tile",e.QUIC="QUIC:tile",e.Verification="verify:tile",e.Dedup="dedup:tile",e.Resolv="resolv:tile",e.Pack="pack:tile",e.Execle="execle:tile",e.NetOverrun="Too slow:net",e.QUICOverrun="Too slow:quic",e.QUICInvalid="Malformed:quic",e.QUICTooManyFrags="Out of buffers:quic",e.QUICAbandoned="Abandoned:quic",e.VerifyOverrun="Too slow:verify",e.VerifyParse="Unparseable",e.VerifyFailed="Bad signature",e.VerifyDuplicate="Duplicate:verify",e.DedupDeuplicate="Duplicate:dedup",e.ResolvFailed="Bad LUT",e.ResolvExpired="Expired:resolv",e.ResolvNoLedger="No ledger",e.ResolvRetained="Unresolved:resolv",e.PackInvalid="Unpackable",e.PackInvalidBundle="Bad Bundle",e.PackExpired="Expired:pack",e.PackAlreadyExecuted="AlreadyExecuted:pack",e.PackRetained="Buffered:pack",e.PackLeaderSlow="Buffer full",e.PackWaitFull="Storage full",e.BankInvalid="Unexecutable",e.BankNonceAlreadyAdvanced="NonceAlreadyAdvanced",e.BankNonceAdvanceFailed="NonceAdvanceFailed",e.BankNonceWrongBlockhash="NonceWrongBlockhash",e.BlockSuccess="Success",e.BlockFailure="Failure",e.Votes="Votes",e.NonVoteSuccess="Non-vote Success",e.NonVoteFailure="Non-vote Failure",e))(We||{});const Zht=["Received","Packed"],ufe=["networking:tile","QUIC:tile","verify:tile","dedup:tile","resolv:tile","pack:tile","execle:tile"],cfe=["Too slow:net","Too slow:quic","Malformed:quic","Out of buffers:quic","Abandoned:quic","Too slow:verify","Unparseable","Bad signature","Duplicate:verify","Duplicate:dedup","Bad LUT","Expired:resolv","No ledger","Unresolved:resolv","Unpackable","Bad Bundle","Expired:pack","AlreadyExecuted:pack","Buffered:pack","Buffer full","Storage full","Unexecutable","NonceAlreadyAdvanced","NonceAdvanceFailed","NonceWrongBlockhash"],dfe=["QUIC","UDP"],JR=["Buffered:inc","Buffered:pack","Unresolved:inc","Unresolved:resolv"],ffe=["Success","Non-vote Success"],hfe=["Failure","Non-vote Failure"],qht=[{id:"QUIC"},{id:"UDP"},{id:"Buffered:pack",labelPositionOverride:"right"},{id:"Unresolved:resolv",labelPositionOverride:"right"},{id:"Too slow:net",labelPositionOverride:"right"},{id:"Too slow:quic",labelPositionOverride:"right"},{id:"Malformed:quic",labelPositionOverride:"right"},{id:"Out of buffers:quic",labelPositionOverride:"right"},{id:"Abandoned:quic",labelPositionOverride:"right"},{id:"Too slow:verify",labelPositionOverride:"right"},{id:"Unparseable",labelPositionOverride:"right"},{id:"Bad signature",labelPositionOverride:"right"},{id:"Duplicate:verify",labelPositionOverride:"right"},{id:"Duplicate:dedup",labelPositionOverride:"right"},{id:"Bad LUT",labelPositionOverride:"right"},{id:"Expired:resolv",labelPositionOverride:"right"},{id:"No ledger",labelPositionOverride:"right"},{id:"Unpackable",labelPositionOverride:"right"},{id:"Bad Bundle",labelPositionOverride:"right"},{id:"Expired:pack",labelPositionOverride:"right"},{id:"AlreadyExecuted:pack",labelPositionOverride:"right"},{id:"Buffer full",labelPositionOverride:"right"},{id:"Storage full",labelPositionOverride:"right"},{id:"Unexecutable",labelPositionOverride:"right"},{id:"NonceAlreadyAdvanced",labelPositionOverride:"right"},{id:"NonceAdvanceFailed",labelPositionOverride:"right"},{id:"NonceWrongBlockhash",labelPositionOverride:"right"},{id:"Received",alignLabelBottom:!0,labelPositionOverride:"right"},{id:"QUIC:tile",alignLabelBottom:!0},{id:"verify:tile",alignLabelBottom:!0},{id:"dedup:tile",alignLabelBottom:!0},{id:"resolv:tile",alignLabelBottom:!0},{id:"Gossip"},{id:"Jito"},{id:"Unresolved:inc",labelPositionOverride:"left"},{id:"Crank:inc",labelPositionOverride:"left"},{id:"Buffered:inc",labelPositionOverride:"left"},{id:"pack:tile",alignLabelBottom:!0},{id:"execle:tile",alignLabelBottom:!0},{id:"End",hideLabel:!0},{id:"Packed",alignLabelBottom:!0,labelPositionOverride:"left"},{id:"Failure"},{id:"Success"},{id:"Votes"},{id:"Non-vote Failure"},{id:"Non-vote Success"}],Ght=ca(),Yht=1,pfe=-1e3,mfe=12,Kht=30,Xht=3e3,Jht=2;function gfe(e,t){return _S(e.source,t.source)||e.index-t.index}function vfe(e,t){return _S(e.target,t.target)||e.index-t.index}function _S(e,t){return e.y0-t.y0}function yfe(e){return e.value}function Qht(e){return e.index}function ept(e){return e.nodes}function tpt(e){return e.links}function bfe(e,t){const n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function _fe({nodes:e}){for(const t of e){let n=t.y0,r=n;for(const i of t.sourceLinks)i.y0=n+i.width/2,n+=i.width;for(const i of t.targetLinks)i.y1=r+i.width/2,r+=i.width}}function npt(){let e=0,t=0,n=1,r=1,i=24,o=8,a,s=Qht,l=lfe,c,d,f=ept,p=tpt,v=6;function _(){const D={nodes:f.apply(null,arguments),links:p.apply(null,arguments)};return y(D),b(D),w(D),x(D),j(D),_fe(D),J(D),D}_.update=function(D){return _fe(D),D},_.nodeId=function(D){return arguments.length?(s=typeof D=="function"?D:bS(D),_):s},_.nodeAlign=function(D){return arguments.length?(l=typeof D=="function"?D:bS(D),_):l},_.nodeSort=function(D){return arguments.length?(c=D,_):c},_.nodeWidth=function(D){return arguments.length?(i=+D,_):i},_.nodePadding=function(D){return arguments.length?(o=a=+D,_):o},_.nodes=function(D){return arguments.length?(f=typeof D=="function"?D:bS(D),_):f},_.links=function(D){return arguments.length?(p=typeof D=="function"?D:bS(D),_):p},_.linkSort=function(D){return arguments.length?(d=D,_):d},_.size=function(D){return arguments.length?(e=t=0,n=+D[0],r=+D[1],_):[n-e,r-t]},_.extent=function(D){return arguments.length?(e=+D[0][0],n=+D[1][0],t=+D[0][1],r=+D[1][1],_):[[e,t],[n,r]]},_.iterations=function(D){return arguments.length?(v=+D,_):v};function y({nodes:D,links:Y}){for(const[H,ee]of D.entries())ee.index=H,ee.sourceLinks=[],ee.targetLinks=[];const F=new Map(D.map((H,ee)=>[s(H,ee,D),H]));for(const[H,ee]of Y.entries()){ee.index=H;let{source:ce,target:U}=ee;typeof ce!="object"&&(ce=ee.source=bfe(F,ce)),typeof U!="object"&&(U=ee.target=bfe(F,U)),ce.sourceLinks.push(ee),U.targetLinks.push(ee)}if(d!=null)for(const{sourceLinks:H,targetLinks:ee}of D)H.sort(d),ee.sort(d)}function b({nodes:D}){for(const Y of D)if(Y.fixedValue===void 0){let F=-1/0;Y.sourceLinks.length&&(F=Math.max(dR(Y.sourceLinks,yfe))),Y.targetLinks.length&&(F=Math.max(dR(Y.targetLinks,yfe))),F===-1/0&&(F=0),Y.value=F}else Y.value=Y.fixedValue}function w({nodes:D}){const Y=D.length;let F=new Set(D),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.depth=ee;for(const{target:U}of ce.sourceLinks)H.add(U)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function x({nodes:D}){const Y=D.length;let F=new Set(D),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.height=ee;for(const{source:U}of ce.targetLinks)H.add(U)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function S({nodes:D}){const Y=xce(D,ae=>ae.depth)+1;let F=(n-e-i)/(Y-1);const H=F/Jht,ee=new Array(Y),ce=e+H,U=n-H;F=(U-ce-i)/(Y-1-2);for(const ae of D){let je=l.call(null,ae,Y);const me=Math.max(0,Math.min(Y-1,Math.floor(je)));ae.layer=me,me===1?ae.x0=e+H:me<1?ae.x0=e+me*H:me===Y-1?ae.x0=U+H:ae.x0=ce+(me-1)*F,ae.x1=ae.x0+Yht,ee[me]?ee[me].push(ae):ee[me]=[ae]}if(c)for(const ae of ee)ae.sort(c);return ee}function C(D){const Y=Ght.get(Cg)===Io.Pct,F=wce(D,H=>(r-t-(H.length-1)*a)/dR(H,ee=>Math.max(ee.value,Y?1:Xht)));for(let H=0;HF.length)-1)),C(Y);for(let F=0;F0))continue;let me=(ae/je-U.y0)*Y+mfe;U.y0+=me,U.y1+=me,U.id===We.SlotStart&&(U.y0=t+(r-t)/6,U.y1=U.y0+U.height),U.id===We.SlotEnd&&(U.y1=r-(r-t)/6,U.y0=U.y1-U.height),P(U)}c===void 0&&ce.sort(_S),$(ce,F)}}function E(D,Y,F){for(let H=D.length,ee=H-2;ee>=0;--ee){const ce=D[ee];for(const U of ce){let ae=0,je=0;for(const{target:ke,value:he}of U.sourceLinks){let ue=(he?Math.abs(he):1)*(ke.layer-U.layer);ae+=O(U,ke)*ue,je+=ue}if(!(je>0))continue;let me=(ae/je-U.y0)*Y-mfe;U.y0+=me,U.y1+=me,U.id===We.SlotStart&&(U.y0=t+(r-t)/6,U.y1=U.y0+U.height),U.id===We.SlotEnd&&(U.y1=r-(r-t)/6,U.y0=U.y1-U.height),P(U)}c===void 0&&ce.sort(_S),$(ce,F)}}function $(D,Y){const F=D.length>>1,H=D[F];M(D,H.y0-a,F-1,Y),A(D,H.y1+a,F+1,Y),M(D,r,D.length-1,Y),A(D,t,0,Y)}function A(D,Y,F,H){for(;F1e-6&&(ee.y0+=ce,ee.y1+=ce),Y=ee.y1+a}}function M(D,Y,F,H){for(;F>=0;--F){const ee=D[F],ce=(ee.y1-Y)*H;ce>1e-6&&(ee.y0-=ce,ee.y1-=ce),Y=ee.y0-a}}function P({sourceLinks:D,targetLinks:Y}){if(d===void 0){for(const{source:{sourceLinks:F}}of Y)F.sort(vfe);for(const{target:{targetLinks:F}}of D)F.sort(gfe)}}function te(D){if(d===void 0)for(const{sourceLinks:Y,targetLinks:F}of D)Y.sort(vfe),F.sort(gfe)}function Z(D,Y){let F=D.y0-(D.sourceLinks.length-1)*a/2;for(const{target:H,width:ee}of D.sourceLinks){if(H===Y)break;F+=ee+a}for(const{source:H,width:ee,target:{id:ce}}of Y.targetLinks){if(ce.includes("Dropped")&&(F-=Kht),H===D)break;F-=ee}return F}function O(D,Y){let F=Y.y0-(Y.targetLinks.length-1)*a/2;for(const{source:H,width:ee}of Y.targetLinks){if(H===D)break;F+=ee+a}for(const{target:H,width:ee}of D.sourceLinks){if(H===Y)break;F-=ee}return F}function J(D){const Y=D.nodes.reduce((F,H)=>Math.max(F,H.y1),0);D.nodes.forEach(F=>{Zht.includes(F.id)&&(F.y0=0,F.y1=Y,F.height=Y)})}return _}const rpt={center:Hht,justify:lfe,start:Wht,end:Vht},ipt=e=>rpt[e],Tn={layout:"horizontal",align:"center",sort:"auto",colors:{scheme:"nivo"},nodeOpacity:.75,nodeHoverOpacity:1,nodeHoverOthersOpacity:.15,nodeThickness:12,nodeInnerPadding:0,nodeBorderWidth:1,nodeBorderColor:{from:"color",modifiers:[["darker",.5]]},nodeBorderRadius:0,linkOpacity:.25,linkHoverOpacity:.6,linkHoverOthersOpacity:.15,linkContract:0,linkBlendMode:"multiply",enableLinkGradient:!1,enableLabels:!0,label:"id",labelPosition:"inside",labelPadding:9,labelOrientation:"horizontal",labelTextColor:{from:"color",modifiers:[["darker",.8]]},isInteractive:!1,nodeTooltip:Fht,linkTooltip:Bht,legends:[],layers:["links","nodes","labels"],role:"img",animate:!1,motionConfig:"gentle"};function opt(e,t){for(var n=-1,r=e==null?0:e.length;++ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wS(){return wS=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(QR[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(H0t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(QR[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},X0t=function(e,t){return m.useMemo(function(){return K0t(e,t)},[e,t])};const J0t=e=>e.id,Q0t=({data:e,formatValue:t,layout:n,alignFunction:r,sortFunction:i,linkSortMode:o,nodeThickness:a,nodeSpacing:s,nodeInnerPadding:l,width:c,height:d,getColor:f,getLabel:p})=>{const v=npt().nodeAlign(r).nodeSort(i).linkSort(o).nodeWidth(a).nodePadding(s).size(n==="horizontal"?[c,d]:[d,c]).nodeId(J0t),_=P0t(e);return v(_),_.nodes.forEach(y=>{if(y.color=f(y),y.label=p(y),y.formattedValue=t(y.value),n==="horizontal")y.x=y.x0+l,y.y=y.y0,y.width=Math.max(y.x1-y.x0-l*2,0),y.height=Math.max(y.y1-y.y0,0);else{y.x=y.y0,y.y=y.x0+l,y.width=Math.max(y.y1-y.y0,0),y.height=Math.max(y.x1-y.x0-l*2,0);const b=y.x0,w=y.x1;y.x0=y.y0,y.x1=y.y1,y.y0=b,y.y1=w}}),_.links.forEach(y=>{y.formattedValue=t(y.value),y.color=y.source.color,y.pos0=y.y0,y.pos1=y.y1,y.thickness=y.width,delete y.y0,delete y.y1,delete y.width}),_},egt=({data:e,valueFormat:t,layout:n,width:r,height:i,sort:o,align:a,colors:s,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,nodeBorderColor:f,label:p,labelTextColor:v})=>{const[_,y]=m.useState(null),[b,w]=m.useState(null),x=m.useMemo(()=>{if(o!=="auto")return o==="input"?null:o==="ascending"?(Z,O)=>Z.value-O.value:o==="descending"?(Z,O)=>O.value-Z.value:o},[o]),S=o==="input"?null:void 0,C=m.useMemo(()=>typeof a=="function"?a:ipt(a),[a]),j=X0t(s,"id"),T=Pfe(f),E=ex(p),$=Pfe(v),A=WR(t),{nodes:M,links:P}=m.useMemo(()=>Q0t({data:e,formatValue:A,layout:n,alignFunction:C,sortFunction:x,linkSortMode:S,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,width:r,height:i,getColor:j,getLabel:E}),[e,A,n,C,x,S,l,c,d,r,i,j,E]),te=m.useMemo(()=>M.map(Z=>({id:Z.id,label:Z.label,color:Z.color})),[M]);return{nodes:M,links:P,legendData:te,getNodeBorderColor:T,currentNode:_,setCurrentNode:y,currentLink:b,setCurrentLink:w,getLabelTextColor:$}},tgt=({node:e,x:t,y:n,width:r,height:i,color:o,opacity:a,borderWidth:s,borderRadius:l,setCurrent:c,isInteractive:d,onClick:f,tooltip:p})=>u.jsx("rect",{x:t,y:n,width:r,height:i,fill:Ine}),ngt=({nodes:e,nodeOpacity:t,nodeHoverOpacity:n,nodeHoverOthersOpacity:r,borderWidth:i,getBorderColor:o,borderRadius:a,setCurrentNode:s,currentNode:l,currentLink:c,isCurrentNode:d,isInteractive:f,onClick:p,tooltip:v})=>u.jsx(u.Fragment,{children:e.map(_=>u.jsx(tgt,{node:_,x:_.x,y:_.y,width:_.width,height:_.height,color:_.color,opacity:1,borderWidth:i,borderColor:o(_),borderRadius:a,setCurrent:s,isInteractive:f,onClick:p,tooltip:v},_.id))}),rgt=()=>{const e=CR().curve(mde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2),i=Math.max(1,r/2),o=(t.target.x0-t.source.x1)*.12,a=[[t.source.x1,t.pos0-i],[t.source.x1+o,t.pos0-i],[t.target.x0-o,t.pos1-i],[t.target.x0,t.pos1-i],[t.target.x0,t.pos1+i],[t.target.x0-o,t.pos1+i],[t.source.x1+o,t.pos0+i],[t.source.x1,t.pos0+i],[t.source.x1,t.pos0-i]];return e(a)+"Z"}},igt=()=>{const e=CR().curve(gde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2)/2,i=(t.target.y0-t.source.y1)*.12,o=[[t.pos0+r,t.source.y1],[t.pos0+r,t.source.y1+i],[t.pos1+r,t.target.y0-i],[t.pos1+r,t.target.y0],[t.pos1-r,t.target.y0],[t.pos1-r,t.target.y0-i],[t.pos0-r,t.source.y1+i],[t.pos0-r,t.source.y1],[t.pos0+r,t.source.y1]];return e(o)+"Z"}},ogt=({id:e,layout:t})=>{let n;return t==="horizontal"?n={x1:"0%",x2:"100%",y1:"0%",y2:"0%"}:n={x1:"0%",x2:"0%",y1:"0%",y2:"100%"},u.jsxs("linearGradient",{id:e,spreadMethod:"pad",...n,children:[u.jsx("stop",{stopColor:EN}),u.jsx("stop",{offset:"0.24",stopColor:Mne}),u.jsx("stop",{offset:"1",stopColor:EN})]})};function zfe(e,t){const[n,r]=m.useState(!1),i=m.useRef();return m.useEffect(()=>{[...dfe,We.SlotStart].includes(e)||(t?(i.current&&(clearTimeout(i.current),i.current=void 0),r(!0)):i.current||(i.current=setTimeout(()=>{r(!1),i.current=void 0},3e3)))},[e,r,t]),!!t||n}const agt=({link:e,layout:t,path:n,color:r,opacity:i,enableGradient:o,setCurrent:a,tooltip:s,isInteractive:l,onClick:c})=>{const d=`${e.source.id}.${e.target.id}.${e.index}`;let f;return dfe.includes(e.source.id)?f=Ene:JR.includes(e.source.id)||JR.includes(e.target.id)?f=$ne:ffe.includes(e.target.id)?f=Zf:hfe.includes(e.target.id)?f=fd:e.target.id===We.Votes?f=hd:cfe.includes(e.target.id)&&(f=Nne),zfe(e.target.id,e.value)?u.jsxs(u.Fragment,{children:[o&&u.jsx(ogt,{id:d,layout:t,startColor:e.startColor||e.source.color,endColor:e.endColor||e.target.color}),u.jsx("path",{fill:f??(o?`url("#${encodeURI(d)}")`:r),d:n})]}):null},sgt=({links:e,layout:t,linkOpacity:n,linkHoverOpacity:r,linkHoverOthersOpacity:i,linkContract:o,linkBlendMode:a,enableLinkGradient:s,setCurrentLink:l,currentLink:c,currentNode:d,isCurrentLink:f,isInteractive:p,onClick:v,tooltip:_})=>{const y=m.useMemo(()=>t==="horizontal"?rgt():igt(),[t]);return u.jsx(u.Fragment,{children:e.map(b=>u.jsx(agt,{link:b,layout:t,path:y(b,o),color:b.color,opacity:1,blendMode:a,enableGradient:s,setCurrent:l,isInteractive:p,onClick:v,tooltip:_},`${b.source.id}.${b.target.id}.${b.index}`))})};function lgt({children:e,node:t,value:n}){return zfe(t,n)?e:null}const ugt=ca();function cgt(){switch(ugt.get(Cg)){case Io.Pct:return"%";case Io.Rate:return"/s";case Io.Count:return""}}const dgt=({nodes:e,layout:t,width:n,height:r,labelPosition:i,labelPadding:o,labelOrientation:a})=>{const s=a==="vertical"?-90:0,l=e.filter(c=>!c.hideLabel).map(c=>{let d,f,p;return t==="horizontal"?(f=c.y+c.height/2-5,c.alignLabelBottom&&(f=c.y1),ufe.includes(c.id)?(d=c.x0+(c.x1-c.x0)/2,f=f+10,p="middle"):c.labelPositionOverride==="right"?(d=c.x1+o,p=a==="vertical"?"middle":"start"):c.labelPositionOverride==="left"?(d=c.x-o,p=a==="vertical"?"middle":"end"):c.x{var v,_;const[d,f]=fgt(c.label,c.value),p=(v=c.label.split(":")[0])==null?void 0:v.trim();return u.jsx(lgt,{node:c.label,value:c.value,children:u.jsxs("text",{dominantBaseline:"central",textAnchor:c.textAnchor,transform:`translate(${c.x}, ${c.y}) rotate(${s})`,className:"sankey-label",children:[hgt(p).map((y,b)=>u.jsx("tspan",{x:"0",dy:b===0?"0em":"1em",style:{fill:d},children:y},y)),u.jsxs("tspan",{x:"0",dy:"1em",style:{fill:f},children:[(_=c.value)==null?void 0:_.toLocaleString(),cgt()]})]},c.id)},c.id)})})};function fgt(e,t){return t?JR.includes(e)?[qf,qf]:ffe.includes(e)?[qf,Zf]:ufe.includes(e)?[wg,wg]:cfe.includes(e)||hfe.includes(e)?[qf,fd]:e===We.Votes?[qf,hd]:[qf,qf]:[wg,wg]}function hgt(e){if(e.length<17||!e.includes(" "))return[e];const t=Math.trunc(e.length/2),n=e.lastIndexOf(" ",t),r=e.indexOf(" ",t+1),i=t-n{const{margin:je,innerWidth:me,innerHeight:ke,outerWidth:he,outerHeight:ue}=qde(o,a,s),{nodes:re,links:ge,legendData:$e,getNodeBorderColor:pe,currentNode:ye,setCurrentNode:Se,currentLink:Ce,setCurrentLink:Be,getLabelTextColor:Ge}=egt({data:e,valueFormat:t,layout:n,width:me,height:ke,sort:r,align:i,colors:l,nodeThickness:c,nodeSpacing:d,nodeInnerPadding:f,nodeBorderColor:p,label:te,labelTextColor:Z});let xt=()=>!1,St=()=>!1;if(Ce&&(xt=({id:bt})=>bt===Ce.source.id||bt===Ce.target.id,St=({source:bt,target:Qe})=>bt.id===Ce.source.id&&Qe.id===Ce.target.id),ye){let bt=[ye.id];ge.filter(({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id).forEach(({source:Qe,target:Ke})=>{bt.push(Qe.id),bt.push(Ke.id)}),bt=_nt(bt),xt=({id:Qe})=>bt.includes(Qe),St=({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id}const ut={links:ge,nodes:re,margin:je,width:o,height:a,outerWidth:he,outerHeight:ue},ct={links:null,nodes:null,labels:null,legends:null};return H.includes("links")&&(ct.links=u.jsx(sgt,{links:ge,layout:n,linkContract:j,linkOpacity:x,linkHoverOpacity:S,linkHoverOthersOpacity:C,linkBlendMode:T,enableLinkGradient:E,setCurrentLink:Be,currentNode:ye,currentLink:Ce,isCurrentLink:St,isInteractive:D,onClick:Y,tooltip:J},"links")),H.includes("nodes")&&(ct.nodes=u.jsx(ngt,{nodes:re,nodeOpacity:v,nodeHoverOpacity:_,nodeHoverOthersOpacity:y,borderWidth:b,borderRadius:w,getBorderColor:pe,setCurrentNode:Se,currentNode:ye,currentLink:Ce,isCurrentNode:xt,isInteractive:D,onClick:Y,tooltip:O},"nodes")),H.includes("labels")&&$&&(ct.labels=u.jsx(dgt,{nodes:re,layout:n,width:me,height:ke,labelPosition:A,labelPadding:M,labelOrientation:P,getLabelTextColor:Ge},"labels")),H.includes("legends")&&(ct.legends=u.jsx(m.Fragment,{children:F.map((bt,Qe)=>u.jsx(sfe,{...bt,containerWidth:me,containerHeight:ke,data:$e},`legend${Qe}`))},"legends")),u.jsx(KR,{width:he,height:ue,margin:je,role:ee,ariaLabel:ce,ariaLabelledBy:U,ariaDescribedBy:ae,children:H.map((bt,Qe)=>typeof bt=="function"?u.jsx(m.Fragment,{children:m.createElement(bt,ut)},Qe):(ct==null?void 0:ct[bt])??null)})},mgt=({isInteractive:e=Tn.isInteractive,animate:t=Tn.animate,motionConfig:n=Tn.motionConfig,theme:r,renderWrapper:i,...o})=>u.jsx(VR,{animate:t,isInteractive:e,motionConfig:n,renderWrapper:i,theme:r,children:u.jsx(pgt,{isInteractive:e,...o})});function Dfe({displayType:e,durationNanos:t,totalIncoming:n}){return function(r){switch(e){case Io.Count:return r;case Io.Pct:{let i=Math.max(0,Math.round(r/n*1e4)/100);return!i&&r&&(i=.01),i}case Io.Rate:{if(!t)return r;const i=t/1e9;return Math.trunc(r/i)}}}}function ggt(e){return e.net_overrun}function vgt(e){return e.quic_overrun+e.quic_frag_drop+e.quic_abandoned+e.tpu_quic_invalid+e.tpu_udp_invalid}function ygt(e){return e.verify_overrun+e.verify_parse+e.verify_failed+e.verify_duplicate}function bgt(e){return e.dedup_duplicate}function _gt(e,t){return e.resolv_expired+e.resolv_lut_failed+e.resolv_no_ledger+e.resolv_ancient+t}function xgt(e){return e.pack_invalid+e.pack_already_executed+e.pack_invalid_bundle+e.pack_expired+e.pack_leader_slow+e.pack_retained+e.pack_wait_full}function Afe(e,t){const n=Math.min(e.in.resolv_retained,e.out.resolv_retained),r=e.in.resolv_retained-n,i=e.out.resolv_retained-n,o=e.in.quic+e.in.udp-ggt(e.out),a=o-vgt(e.out),s=e.in.block_engine+e.in.gossip+a-ygt(e.out),l=s-bgt(e.out),c=r+l-_gt(e.out,i),d=e.in.pack_retained+e.in.pack_cranked+c-xgt(e.out),f=d-e.out.bank_invalid-e.out.bank_nonce_already_advanced-e.out.bank_nonce_advance_failed-e.out.bank_nonce_wrong_blockhash;return[{source:We.IncQuic,target:We.SlotStart,value:t(e.in.quic)},{source:We.IncUdp,target:We.SlotStart,value:t(e.in.udp)},{source:We.SlotStart,target:We.NetOverrun,value:t(e.out.net_overrun)},{source:We.SlotStart,target:We.QUIC,value:t(o)},{source:We.QUIC,target:We.QUICOverrun,value:t(e.out.quic_overrun)},{source:We.QUIC,target:We.QUICInvalid,value:t(e.out.tpu_quic_invalid+e.out.tpu_udp_invalid)},{source:We.QUIC,target:We.QUICTooManyFrags,value:t(e.out.quic_frag_drop)},{source:We.QUIC,target:We.QUICAbandoned,value:t(e.out.quic_abandoned)},{source:We.QUIC,target:We.Verification,value:t(a)},{source:We.IncGossip,target:We.Verification,value:t(e.in.gossip)},{source:We.IncBlockEngine,target:We.Verification,value:t(e.in.block_engine)},{source:We.Verification,target:We.VerifyOverrun,value:t(e.out.verify_overrun)},{source:We.Verification,target:We.VerifyParse,value:t(e.out.verify_parse)},{source:We.Verification,target:We.VerifyFailed,value:t(e.out.verify_failed)},{source:We.Verification,target:We.VerifyDuplicate,value:t(e.out.verify_duplicate)},{source:We.Verification,target:We.Dedup,value:t(s)},{source:We.Dedup,target:We.DedupDeuplicate,value:t(e.out.dedup_duplicate)},{source:We.Dedup,target:We.Resolv,value:t(l)},{source:We.IncResolvRetained,target:We.Resolv,value:t(r)},{source:We.Resolv,target:We.ResolvRetained,value:t(i)},{source:We.Resolv,target:We.ResolvFailed,value:t(e.out.resolv_lut_failed)},{source:We.Resolv,target:We.ResolvExpired,value:t(e.out.resolv_expired+e.out.resolv_ancient)},{source:We.Resolv,target:We.ResolvNoLedger,value:t(e.out.resolv_no_ledger)},{source:We.Resolv,target:We.Pack,value:t(c)},{source:We.IncPackCranked,target:We.Pack,value:t(e.in.pack_cranked)},{source:We.IncPackRetained,target:We.Pack,value:t(e.in.pack_retained)},{source:We.Pack,target:We.PackRetained,value:t(e.out.pack_retained)},{source:We.Pack,target:We.PackInvalid,value:t(e.out.pack_invalid)},{source:We.Pack,target:We.PackInvalidBundle,value:t(e.out.pack_invalid_bundle)},{source:We.Pack,target:We.PackExpired,value:t(e.out.pack_expired)},{source:We.Pack,target:We.PackAlreadyExecuted,value:t(e.out.pack_already_executed)},{source:We.Pack,target:We.PackLeaderSlow,value:t(e.out.pack_leader_slow)},{source:We.Pack,target:We.PackWaitFull,value:t(e.out.pack_wait_full)},{source:We.Pack,target:We.Execle,value:t(d)},{source:We.Execle,target:We.BankInvalid,value:t(e.out.bank_invalid)},{source:We.Execle,target:We.BankNonceAlreadyAdvanced,value:t(e.out.bank_nonce_already_advanced)},{source:We.Execle,target:We.BankNonceAdvanceFailed,value:t(e.out.bank_nonce_advance_failed)},{source:We.Execle,target:We.BankNonceWrongBlockhash,value:t(e.out.bank_nonce_wrong_blockhash)},{source:We.Execle,target:We.End,value:t(f)},{source:We.End,target:We.SlotEnd,value:t(f)}]}function wgt(e,t){const n=rt.sum(Object.values(e.in)),r=Dfe({displayType:t,durationNanos:void 0,totalIncoming:n});return[...Afe(e,r),{source:We.SlotEnd,target:We.BlockFailure,value:r(e.out.block_fail)},{source:We.SlotEnd,target:We.BlockSuccess,value:r(e.out.block_success)}]}function kgt(e,t,n,r,i,o,a){const s=rt.sum(Object.values(e.in)),l=Dfe({displayType:t,durationNanos:n,totalIncoming:s}),c=(r??0)+(i??0);return[...Afe(e,l),{source:We.SlotEnd,target:We.Votes,value:l(c)},{source:We.SlotEnd,target:We.NonVoteFailure,value:l(a??0)},{source:We.SlotEnd,target:We.NonVoteSuccess,value:l(o??0)}]}function Sgt(){const e=X(Cn);return u.jsx(Cgt,{slot:e},e)}function Cgt({slot:e}){var o,a,s,l,c,d;const t=X(Cg),n=X(Gze),r=tc(e),i=m.useMemo(()=>{var _,y,b,w,x,S;const f=n??((_=r.response)==null?void 0:_.waterfall);if(!f)return;const p=n?wgt(f,t):kgt(f,t,(y=r.response)==null?void 0:y.publish.duration_nanos,(b=r.response)==null?void 0:b.publish.success_vote_transaction_cnt,(w=r.response)==null?void 0:w.publish.failed_vote_transaction_cnt,(x=r.response)==null?void 0:x.publish.success_nonvote_transaction_cnt,(S=r.response)==null?void 0:S.publish.failed_nonvote_transaction_cnt),v=p.flatMap(C=>[C.source,C.target]);return{nodes:qht.filter(C=>v.includes(C.id)),links:p}},[t,n,(o=r.response)==null?void 0:o.publish.duration_nanos,(a=r.response)==null?void 0:a.publish.failed_nonvote_transaction_cnt,(s=r.response)==null?void 0:s.publish.failed_vote_transaction_cnt,(l=r.response)==null?void 0:l.publish.success_nonvote_transaction_cnt,(c=r.response)==null?void 0:c.publish.success_vote_transaction_cnt,(d=r.response)==null?void 0:d.waterfall]);return!i||!i.links.length?r.hasWaitedForData?u.jsx(V,{justify:"center",align:"center",height:"100%",children:u.jsx(q,{children:"No waterfall avaliable for this slot"})}):u.jsx(V,{justify:"center",align:"center",height:"100%",children:u.jsx(Iy,{style:{height:50,width:50}})}):u.jsx($s,{children:({height:f,width:p})=>{const v=p<600;if(v){const _=f;f=p,p=_}return u.jsx(mgt,{height:f,width:p,data:i,margin:{top:10,right:n?100:v?145:130,bottom:35,left:85},align:"center",isInteractive:!1,nodeThickness:0,nodeSpacing:jgt(f),nodeBorderWidth:0,sort:"input",nodeBorderRadius:0,linkOpacity:1,enableLinkGradient:!0,labelPosition:"outside",labelPadding:16,animate:!1,nodeTooltip:Ffe,linkTooltip:Ffe})}})}function Ffe(){return null}function jgt(e){return e<275?32:e<300?36:e<325?40:e<350?48:52}const Tgt="_container_k3j09_1",Igt={container:Tgt};function Egt(){const[e,t]=m.useState(!1),n=X(V3),r=e&&!n,{tileCounts:i,groupedLiveIdlePerTile:o,showLive:a,queryIdleData:s}=VM(),l=i.net?"net":"sock";return u.jsxs("div",{className:Igt.container,children:[u.jsx(Wa,{header:l,subHeader:"(in)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Ingress",metricType:"net_in",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"QUIC",tileCount:i.quic,liveIdlePerTile:o==null?void 0:o.quic,queryIdlePerTile:a||s==null?void 0:s.quic,statLabel:"Conns",metricType:"quic",isExpanded:r,setIsExpanded:t}),"bundle"in i&&u.jsx(Wa,{header:"bundle",tileCount:i.bundle,liveIdlePerTile:o==null?void 0:o.bundle,queryIdlePerTile:a||s==null?void 0:s.bundle,...a?{statLabel:"RTT",metricType:"bundle_rtt_smoothed_millis"}:{statLabel:"Lat p90",metricType:"bundle_rx_delay_millis_p90"},isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"verify",tileCount:i.verify,liveIdlePerTile:o==null?void 0:o.verify,queryIdlePerTile:a||s==null?void 0:s.verify,statLabel:"Failed",metricType:"verify",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"dedup",tileCount:i.dedup,liveIdlePerTile:o==null?void 0:o.dedup,queryIdlePerTile:a||s==null?void 0:s.dedup,statLabel:"Dupes",metricType:"dedup",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.resolv,tileCount:i[To.resolv],liveIdlePerTile:o==null?void 0:o[To.resolv],queryIdlePerTile:a||s==null?void 0:s[To.resolv],statLabel:"Resolv",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"pack",tileCount:i.pack,liveIdlePerTile:o==null?void 0:o.pack,queryIdlePerTile:a||s==null?void 0:s.pack,statLabel:"Full",metricType:"pack",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.bank,tileCount:i[To.bank],liveIdlePerTile:o==null?void 0:o[To.bank],queryIdlePerTile:a||s==null?void 0:s[To.bank],statLabel:"TPS",metricType:"bank",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.poh,tileCount:i[To.poh],liveIdlePerTile:o==null?void 0:o[To.poh],queryIdlePerTile:a||s==null?void 0:s[To.poh],statLabel:"Hash",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"shred",tileCount:i.shred,liveIdlePerTile:o==null?void 0:o.shred,queryIdlePerTile:a||s==null?void 0:s.shred,statLabel:"Shreds",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:l,subHeader:"(out)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Egress",metricType:"net_out",isExpanded:r,setIsExpanded:t})]})}const Ngt="_container_k6h1w_1",$gt="_toggle-group_k6h1w_46",Mgt="_toggle-group-item_k6h1w_53",tx={container:Ngt,toggleGroup:$gt,toggleGroupItem:Mgt};function Lgt(){const[e,t]=Vl(Cg);return u.jsx("div",{className:tx.container,children:u.jsxs($7,{className:tx.toggleGroup,type:"single","aria-label":"Dropped Type",value:e,children:[u.jsx(U0,{className:tx.toggleGroupItem,value:Io.Count,"aria-label":Io.Count,onClick:()=>t(Io.Count),children:"Count"}),u.jsx(U0,{className:tx.toggleGroupItem,value:Io.Pct,"aria-label":Io.Pct,onClick:()=>t(Io.Pct),children:"Pct %"}),u.jsx(U0,{className:tx.toggleGroupItem,value:Io.Rate,"aria-label":Io.Rate,onClick:()=>t(Io.Rate),children:"Rate"})]})})}const Rgt="_slot-performance-container_6u4bp_1",Ogt="_sankey-container_6u4bp_5",Pgt="_slot-sankey-container_6u4bp_11",eO={slotPerformanceContainer:Rgt,sankeyContainer:Ogt,slotSankeyContainer:Pgt};function Bfe(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",gap:"1",className:eO.slotPerformanceContainer,children:[u.jsx(V,{gap:"3",children:u.jsx(Sd,{text:"TPU Waterfall"})}),u.jsx(zgt,{}),u.jsx(Egt,{})]})})}function zgt(){return u.jsxs("div",{className:eO.sankeyContainer,children:[u.jsx(Lgt,{}),u.jsx("div",{className:eO.slotSankeyContainer,children:u.jsx(Sgt,{})})]})}const Dgt="_chart_102uq_43",Agt={chart:Dgt},Fgt="_chart_1hpd4_1",Bgt="_focused_1hpd4_32",tO={chart:Fgt,focused:Bgt};function nO(){return{hooks:{init:[e=>{const t=e.root.querySelectorAll(".u-axis")[0];t&&t.addEventListener("mousedown",n=>{const r=n.clientX,i=e.axes[0].scale;if(i===void 0)return;const o=e.scales[i],{min:a,max:s}=o,l=((s??0)-(a??0))/(e.bbox.width/jn.pxRatio),c=f=>{const p=(f.clientX-r)*l;if(!e.data[0].length)return;const v=e.data[0][0]??0,_=e.data[0][e.data[0].length-1]??0;e.setScale(i,{min:Math.max(v,f.shiftKey?(a??0)-p:(a??0)+p),max:Math.min(_,(s??0)+p)})},d=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mousemove",d)};document.addEventListener("mousemove",c),document.addEventListener("mouseup",d)})}]}}}const Ufe="banks",Id="lamports",hh="computeUnits",Vt="banksXScale",Ugt="txnExecutionDuration",Wfe="txnExecutionDurationTooltip",Vfe=fe(),Hfe=fe(0),Zfe=fe(0),qfe=fe(!0),Gfe=fe(void 0),Yfe=fe(e=>{const t=e(Gfe);return t===void 0?e(s3)===ld.balanced:t},(e,t,n)=>{t(Gfe,n)}),Wgt=ca(),rO=1/9,iO=[{color:"42 126 223"},{color:"30 156 80"},{color:"30 156 80",opacity:.05},{color:"174 85 17",opacity:.05},{color:"244 5 5",opacity:.05},{color:"244 5 5",opacity:.1}],oO=e=>iO[e]??iO[iO.length-1];function Kfe({computeUnits:e,bankCount:t,tEnd:n,maxComputeUnits:r}){return Math.round((e-r)/t/rO+n)}function Vgt(e,t,n){const r=[];function i(o,a,s,l){const c=(o.x-a.x)*(s.y-l.y)-(o.y-a.y)*(s.x-l.x);if(c===0)return;const d=((o.x-s.x)*(s.y-l.y)-(o.y-s.y)*(s.x-l.x))/c,f=((o.x-s.x)*(o.y-a.y)-(o.y-s.y)*(o.x-a.x))/c;if(!(d<0||d>1||f<0||f>1))return{x:o.x+d*(a.x-o.x),y:o.y+d*(a.y-o.y)}}for(const o of e){const a=i(t,n,o[0],o[1]);a&&r.push(a)}if(r.length)return r.length!==2&&console.debug(r),r.sort((o,a)=>o.x-a.x)}function Hgt(e,t,n,r,i){const o=Number(n.target_end_timestamp_nanos-n.start_timestamp_nanos),a=e.min??0,s=e.max??o,l=t.max??r,c=t.min??0,d=[[{x:a,y:l},{x:s,y:l}],[{x:a,y:l},{x:a,y:c}],[{x:a,y:c},{x:s,y:c}],[{x:s,y:l},{x:s,y:c}]],f=[];for(let p=1;p<=i;p++){const v=Kfe({computeUnits:0,tEnd:o,maxComputeUnits:r,bankCount:p}),_=Kfe({computeUnits:r,tEnd:o,maxComputeUnits:r,bankCount:p}),y=Vgt(d,{x:v,y:0},{x:_,y:r});y&&f.push({line:y,bankCount:p})}return f}function Xfe(e){return[{x:e.left,y:e.top+e.height},{x:e.left+e.width,y:e.top+e.height},{x:e.left+e.width,y:e.top},{x:e.left,y:e.top}]}function bl(e,t){return Math.abs(e-t)<2}function Zgt(e,t,n){const r=Xfe(e),i=[...t,...n];for(const a of r)((a.x>=t[0].x||bl(a.x,t[0].x))&&(a.x<=n[0].x||bl(a.x,n[0].x))&&(a.y>=t[0].y||bl(a.y,t[0].y))&&(a.y<=n[0].y||bl(a.y,n[0].y))||(a.x>=t[1].x||bl(a.x,t[1].x))&&(a.x<=n[1].x||bl(a.x,n[1].x))&&(a.y>=t[1].y||bl(a.y,t[1].y))&&(a.y<=n[1].y||bl(a.y,n[1].y)))&&i.push(a);const o={x:i.reduce((a,s)=>a+s.x,0)/i.length,y:i.reduce((a,s)=>a+s.y,0)/i.length};return i.sort((a,s)=>{const l=Math.atan2(a.y-o.y,a.x-o.x),c=Math.atan2(s.y-o.y,s.x-o.x);return l-c}),i}function qgt(e,t,n,r,i){if(!i.opacity)return;const o=Zgt(t,n,r);if(o.length>1){e.beginPath(),e.moveTo(o[0].x,o[0].y);for(let a=1;a{window.addEventListener("dppxchange",aO)},destroy:()=>{window.removeEventListener("dppxchange",aO)},drawSeries:[(r,i)=>{if(r.series[i].label!=="Active Bank")return;const o=e.current,a=t.current,s=n.current;if(o===null||a===null||s===null)return;const l=r.ctx;l.save();const c=!Wgt.get(Yfe),d=Number(o.target_end_timestamp_nanos-o.start_timestamp_nanos),f=Math.trunc(a+.05*d*rO),p=c?[]:Hgt(r.scales[Vt],r.scales[hh],o,f,s);p.unshift({line:[{x:r.scales[Vt].min??0,y:a},{x:r.scales[Vt].max??45e7,y:a}],bankCount:0});const v=[];aO(),l.font=Jfe;const _={x:-100,y:30};for(let y=0;yjn.pxRatio*50||bl(x,r.bbox.left)&&Math.abs(S-_.y)>jn.pxRatio*20){l.save();const E=Math.atan2(j-S,C-x);l.translate(x,S),l.rotate(E),l.fillStyle=l.strokeStyle;const $=`${w-1} Bank${w===2?"":"s"} Active`;l.measureText($).width<=r.bbox.left+r.bbox.width-x&&l.fillText($,4*jn.pxRatio,-8*jn.pxRatio),l.restore()}_.x=x,_.y=S}}if(v.length>0){v.unshift({line:[{x:r.bbox.left,y:bl(v[0].line[0].x,r.bbox.left)?v[0].line[0].y:r.bbox.top+r.bbox.height},{x:r.bbox.left,y:r.bbox.top}],bankCount:v[0].bankCount-1}),v.push({line:[{x:r.bbox.left+r.bbox.width,y:r.bbox.top+r.bbox.height},{x:r.bbox.left+r.bbox.width,y:bl(v[v.length-1].line[1].x,r.bbox.left+r.bbox.width)?v[v.length-1].line[1].y:r.bbox.top}],bankCount:v[v.length-1].bankCount+1});for(let y=1;yS||i===d.after&&n[d.offsetSize]>C)&&(i=S>C?d.before:d.after);var j=i===d.before?S:C,T=parseInt(c[d.maxSize]);(!T||j{const n=document.getElementById(Qfe);n&&(nx=n)},drawSeries:[(t,n)=>{if(t.series[n].label!=="Active Bank"||(nx.style.display="none",e!==ld.revenue))return;const r=t.scales[Vt],i=Math.round(t.valToPos(kS,Vt,!0));if(r.min!==void 0&&kSr.max)return;const o=t.ctx;if(o.save(),o.beginPath(),o.strokeStyle=Lne,o.lineWidth=3,o.setLineDash([5,5]),o.moveTo(i,t.bbox.top),o.lineTo(i,t.bbox.top+t.bbox.height),o.stroke(),o.restore(),nx){const a={left:Math.round(t.valToPos(kS,Vt,!1))+t.over.offsetLeft-sO/2,top:t.over.offsetTop-sO};ehe(nx,a,"center","bottom"),nx.style.display="block"}}]}}}const the=1;let rx=!1;function nhe(){return document.getElementById("scroll-container")??document.body}function ix({elId:e,showOnCursor:t,showPointer:n,closeTooltipElId:r,getClosestIdx:i}){let o,a,s,l,c=!1;function d(){const x=o.getBoundingClientRect();s=x.left,l=x.top}function f(){rx=!0,w.style.pointerEvents="auto",y(),setTimeout(()=>{var x;document.addEventListener("click",b),r&&((x=document.getElementById(r))==null||x.addEventListener("click",p))},0)}function p(){var x;rx=!1,w.style.pointerEvents="none",w.style.display="none",document.removeEventListener("click",b),r&&((x=document.getElementById(r))==null||x.removeEventListener("click",p))}const v=rt.throttle(p,100,{leading:!0,trailing:!0});function _(){n&&(document.body.style.cursor="pointer",document.body.addEventListener("click",f))}function y(){n&&(document.body.style.cursor="unset",document.body.removeEventListener("click",f))}function b(x){const S=document.getElementById(e);x.target&&(S!=null&&S.contains(x.target))||(p(),y())}let w;return{opts:(x,S)=>{i&&(S.cursor??(S.cursor={}),S.cursor.dataIdx=(C,j,T)=>j===the?i(C):T)},hooks:{init:x=>{const S=document.getElementById(e);S?w=S:(w=document.createElement("div"),w.id=e,document.body.appendChild(w)),w&&(w.style.display="none",w.style.pointerEvents="none",o=x.over,a=document.body,o.onmouseenter=()=>{c=!0},o.onmouseleave=()=>{c=!1,!rx&&(w.style.display="none",y(),rx=!1)},nhe().addEventListener("scroll",v))},destroy:()=>{o.onmouseenter=null,o.onmouseleave=null,y(),p(),nhe().removeEventListener("scroll",v)},setSize:()=>{d()},syncRect:()=>{d()},setCursor:x=>{var E;if(!c||rx)return;const{left:S,top:C}=x.cursor,j=(E=x.cursor.idxs)==null?void 0:E[i?the:0];if(S===void 0||C===void 0||j===void 0)return;const T=x.posToVal(S,x.series[0].scale??"x");if(j!==null&&t(x,T,j)){const $={left:S+s+5,top:C+l};w.style.display="block",w.style.pointerEvents="none",_(),ehe(w,$,"right","start",{bound:a})}else w.style.display="none",y()},setScale:()=>{y(),p()}}}}function t1t(e){function t(n,r,i){const o=r>=n.data[0][i]?i:i-1;return e({elapsedTime:r,activeBanks:n.data[1][o],computeUnits:n.data[2][o],fees:n.data[3][o],tips:n.data[4][o]}),!0}return ix({elId:"cu-chart-tooltip",showOnCursor:t})}function lO(e){const t=e.factor||.75,n=.1;let r,i,o,a,s,l,c;return{hooks:{ready(d){var y;const f=d.series[0].scale??"x",p=((y=d.series.find((b,w)=>w>0&&b.show!==!1))==null?void 0:y.scale)??"y";r=d.scales[f].min??0,i=d.scales[f].max??0,o=d.scales[p].min??0,a=d.scales[p].max??0,s=i-r,l=a-o;const v=d.over;let _=v.getBoundingClientRect();c=new ResizeObserver(()=>{_=v.getBoundingClientRect()}),c.observe(v),v.addEventListener("wheel",b=>{if(b.ctrlKey||b.metaKey||b.shiftKey){if(b.preventDefault(),b.ctrlKey||b.metaKey){let{left:w,top:x}=d.cursor;w??(w=0),x??(x=0);const S=w/_.width,C=1-x/_.height,j=d.posToVal(w,Vt),T=d.posToVal(x,"y"),E=(d.scales[f].max??0)-(d.scales[f].min??0),$=(d.scales[p].max??0)-(d.scales[p].min??0),A=b.deltaY<0?E*t:E/t;let M=j-S*A,P=M+A;[M,P]=v6(A,M,P,s,r??0,i??0);const te=b.deltaY<0?$*t:$/t;let Z=T-C*te,O=Z+te;[Z,O]=v6(te,Z,O,l,o??0,a??0),requestAnimationFrame(()=>d.batch(()=>{d.setScale(Vt,{min:M,max:P})}))}else if(b.shiftKey){const w=(d.scales[f].max??0)-(d.scales[f].min??0);let x=w*n;b.deltaY>=0&&(x*=-1);const[S,C]=v6(w,(d.scales[f].min??0)+x,(d.scales[f].max??0)+x,w,r??0,i??0);requestAnimationFrame(()=>d.setScale(Vt,{min:S,max:C}))}}})},destroy(d){c==null||c.disconnect()}}}}const n1t=ca();let uO=!1;function cO(e){const t=(e==null?void 0:e.minRange)??0;return{hooks:{setScale:(n,r)=>{const i=n.series[0].scale??"x";if(uO||r!==i)return;const o=n.scales[i];uO=!0;let a=o.min??0,s=o.max??0;if(s-a{i===(l.series[0].scale??"x")&&l.setScale(i,{min:a,max:s})}),uO=!1}}}}var dn=(e=>(e.DEFAULT="All",e.PRELOADING="Pre-Loading",e.VALIDATE="Validate",e.LOADING="Loading",e.EXECUTE="Execute",e.POST_EXECUTE="Post-Execute",e))(dn||{});const r1t={All:LN,"Pre-Loading":One,Validate:RN,Loading:zne,Execute:Ane,"Post-Execute":Bne},va={All:LN,"Pre-Loading":Pne,Validate:RN,Loading:Dne,Execute:Fne,"Post-Execute":Une};var Ci=(e=>(e[e.ERROR=0]="ERROR",e[e.MICROBLOCK=1]="MICROBLOCK",e[e.BUNDLE=2]="BUNDLE",e[e.LANDED=3]="LANDED",e[e.SIMPLE=4]="SIMPLE",e[e.FEES=5]="FEES",e[e.TIPS=6]="TIPS",e[e.CUS_CONSUMED=7]="CUS_CONSUMED",e[e.CUS_REQUESTED=8]="CUS_REQUESTED",e[e.INCOME_CUS=9]="INCOME_CUS",e))(Ci||{});const rhe="bank-",dO=2e6;function fO(e,t=!1){if(!e)return 0;const n=e.txn_mb_end_timestamps_nanos.map(i=>Number(i-e.start_timestamp_nanos));n.push(Number(e.target_end_timestamp_nanos-e.start_timestamp_nanos));const r=rt.max(n)??0;return t?r+dO:r}function hO(e,t,n){if(t<0)return{preLoading:0n,validating:0n,loading:0n,execute:0n,postExecute:0n};let r=e.txn_mb_start_timestamps_nanos[t],i=e.txn_mb_end_timestamps_nanos[t];const o=Vi?e.txn_start_timestamps_nanos:e.txn_preload_end_timestamps_nanos;if(e.txn_from_bundle[t]&&(n!=null&&n.length)){const _=n.indexOf(t)??-1;n[_-1]>0&&(r=o[t]);const y=_!==-1?n[_+1]:-1;y>0&&(i=o[y])}const a=e.txn_preload_end_timestamps_nanos[t],s=e.txn_start_timestamps_nanos[t],l=e.txn_load_end_timestamps_nanos[t];let c,d,f;Vi?(c=s-r,d=a-s,f=l-a):(c=a-r,f=s-a,d=l-s);let p,v;if(_i||!e.txn_from_bundle[t]||!(n!=null&&n.length))p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t];else{const _=n.indexOf(t)??-1,y=_!==-1?n[_+1]:-1;y>0?(p=o[y]-e.txn_load_end_timestamps_nanos[t],v=e.txn_end_timestamps_nanos[y]-e.txn_end_timestamps_nanos[t]):(p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t])}return{preLoading:c,validating:f,loading:d,execute:p,postExecute:v}}function SS(e,t){const n=e.txn_microblock_id[t],r=[];for(let i=0;iNumber(o-t.start_timestamp_nanos);if(Vi){if(e0){if(e{const d=c.series[0].scale??"x";r=c.scales[d].min??0,i=c.scales[d].max??0,n=i-r;function f(){const v=a.dx/s.dx,_=s.x/e.width,y=t*v;let b=o-_*y,w=b+y;[b,w]=v6(y,b,w,n,r,i),c.batch(()=>{c.setScale(d,{min:b,max:w})}),l=!1}function p(v){ohe(v,s,e),l||(l=!0,requestAnimationFrame(f))}c.over.addEventListener("touchstart",function(v){c.scales[d].max===void 0||c.scales[d].min===void 0||(e=c.over.getBoundingClientRect(),t=c.scales[d].max-c.scales[d].min,o=c.posToVal(a.x,d),ohe(v,a,e),document.addEventListener("touchmove",p,{passive:!0}))}),c.over.addEventListener("touchend",function(v){document.removeEventListener("touchmove",p)})}}}}function a1t(e){const t=[...e.txn_mb_start_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!0})),...e.txn_mb_end_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!1}))].sort((l,c)=>l.timestampNanos-c.timestampNanos),n=[];let r=0,i=0,o=0;const a=t.reduce((l,c,d)=>{const f=c.txn_idx,p=e.txn_landed[f]?c.isTxnStart?e.txn_compute_units_requested[f]:-e.txn_compute_units_requested[f]+e.txn_compute_units_consumed[f]:0,v=c.isTxnStart?0:Number(WN(e,f)),_=c.isTxnStart?0:Number(VN(e,f));n[e.txn_bank_idx[f]]=c.isTxnStart;const y=n.filter(C=>C).length,b=l[0].length-1,w=(l[2][b]||0)+p,x=(l[3][b]||0)+v,S=(l[4][b]||0)+_;return y>o&&(o=y),w>i&&(i=w),x>r&&(r=x),S>r&&(r=S),d>0&&t[d-1].timestampNanos===c.timestampNanos?(l[1][b]=y,l[2][b]=w,l[3][b]=x,l[4][b]=S):(l[0].push(c.timestampNanos),l[1].push(y),l[2].push(w),l[3].push(x),l[4].push(S)),l},[[-dO],[0],[0],[0],[0]]),s=fO(e,!0);return a.forEach(l=>{l.push(null)}),a[0][a[0].length-1]=s,{chartData:a,maxBankCount:o,maxComputeUnits:i,maxLamports:r}}const{stepped:mO}=jn.paths,gO=mO==null?void 0:mO({align:1}),CS=(e,t,n,r)=>(gO==null?void 0:gO(e,t,n,r))??null,s1t="cu-chart";function l1t({slotTransactions:e,maxComputeUnits:t,bankTileCount:n,onCreate:r}){const i=Ee(Vfe),o=Ee(Hfe),a=Ee(Zfe),s=m.useRef(e);s.current=e;const l=m.useRef(t);l.current=t;const c=m.useRef(n);c.current=n;const{chartData:d,maxBankCount:f,maxComputeUnits:p,maxLamports:v}=m.useMemo(()=>a1t(e),[e]),_=m.useCallback((b,w)=>!(b>0||w({width:0,height:0,class:tO.chart,drawOrder:["axes","series"],cursor:{sync:{key:Vt},points:{show:!1}},scales:{[Vt]:{time:!1},[hh]:{range:(b,w,x)=>{if(_(w,x))return[0,t+1e6];const S=Math.max(x-w,5e4);return[Math.max(w-S,0),Math.min(x+S,t+1e6)]}},[Ufe]:{range:[0,f+1]},[Id]:{range:[0,v*1.1]}},axes:[{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:NN},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},size:30,values:(b,w)=>w.map(x=>x/1e6+"ms"),space:100,scale:Vt},{scale:hh,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:NN},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(x=>x/1e6+"M"),space:50,size(b,w,x,S){var $,A;const C=b.axes[x];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,P)=>P.length>M.length?P:M,"");T!==""&&(b.ctx.font=((A=C.font)==null?void 0:A[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return o(E),E}},{scale:Id,stroke:sr,border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(x=>x/dd+" SOL"),side:1,space:50,size(b,w,x,S){var $,A;const C=b.axes[x];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,P)=>P.length>M.length?P:M,"");T!==""&&(b.ctx.font=((A=C.font)==null?void 0:A[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return a(E),E}}],series:[{scale:Vt},{label:"Active Bank",stroke:"rgba(117, 77, 18, 1)",paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:Ufe},{label:"Compute Units",stroke:pd,paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:hh},{label:"Fees",stroke:kg,paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:Id},{label:"Tips",stroke:Gf,paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:Id}],legend:{show:!1},plugins:[e1t(),Ygt({slotTransactionsRef:s,maxComputeUnitsRef:l,bankTileCountRef:c}),nO(),lO({factor:.75}),t1t(i),cO(),o1t(),pO()]}),[f,v,i,_,t,o,a]);return u.jsx("div",{style:{height:"100%"},children:u.jsx($s,{children:({height:b,width:w})=>(y.width=w,y.height=b,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:s1t,options:y,data:d,onCreate:r})}))})})}const u1t="_tooltip_h8khk_1",c1t={tooltip:u1t};function ox({elId:e,children:t}){const n=X(jg);return u.jsx(lU,{container:n,id:e,className:c1t.tooltip,children:t})}const d1t="_tooltip_11ays_1",f1t="_active-banks_11ays_14",h1t="_compute-units_11ays_18",p1t="_elapsed-time_11ays_22",m1t="_fees_11ays_26",g1t="_tips_11ays_30",v1t="_label_11ays_34",qo={tooltip:d1t,activeBanks:f1t,computeUnits:h1t,elapsedTime:p1t,fees:m1t,tips:g1t,label:v1t};function y1t(){var t;const e=X(Vfe);return u.jsx(ox,{elId:"cu-chart-tooltip",children:e&&u.jsxs("div",{className:qo.tooltip,children:[u.jsx(q,{className:Te(qo.activeBanks,qo.label),children:"Active\xA0banks"}),u.jsx(q,{className:qo.activeBanks,children:e.activeBanks??"-"}),u.jsx(q,{className:Te(qo.computeUnits,qo.label),children:"Compute\xA0units"}),u.jsxs(q,{className:qo.computeUnits,children:[((t=e.computeUnits)==null?void 0:t.toLocaleString())??"-","\xA0CUs"]}),u.jsx(q,{className:Te(qo.elapsedTime,qo.label),children:"Time\xA0elapsed"}),u.jsx(q,{className:qo.elapsedTime,children:e.elapsedTime!=null?`${(e.elapsedTime/1e6).toLocaleString(void 0,{maximumFractionDigits:6})} ms`:"-"}),u.jsx(q,{className:Te(qo.tips,qo.label),children:"Tips"}),u.jsx(q,{className:qo.tips,children:BN(BigInt(e.tips||0),Uo)}),u.jsx(q,{className:Te(qo.fees,qo.label),children:"Fees"}),u.jsx(q,{className:qo.fees,children:BN(BigInt(e.fees||0),Uo)})]})})}const b1t="_button_1b3a4_1",vO={button:b1t};function _1t({onUplot:e}){const t=X(qfe);return u.jsxs(V,{gap:"3",align:"center",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsxs(V,{gap:"1px",children:[u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.scales[Vt].min??0,i=n.scales[Vt].max??0,o=i-r;if(o<=0)return;const a=o*.2;n.setScale(Vt,{min:r+a,max:i-a})}),className:vO.button,children:u.jsx(xBe,{width:"18",height:"18"})}),u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.data[0][0],i=n.data[0].at(-1)??r,o=n.scales[Vt].min??0,a=n.scales[Vt].max??0,s=a-o;if(s<=0)return;const l=s*.2;n.setScale(Vt,{min:Math.max(o-l,r),max:Math.min(a+l,i)})}),disabled:t,className:vO.button,children:u.jsx(kBe,{width:"18",height:"18"})}),u.jsx(hs,{variant:"soft",onClick:()=>e(n=>n.setScale(Vt,{min:n.data[0][0],max:n.data[0].at(-1)??0})),disabled:t,className:vO.button,children:u.jsx(gBe,{width:"18",height:"18"})})]})]})}const x1t="_label_1q3ew_1",w1t={label:x1t};function k1t({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(V,{align:"center",gap:"2",children:u.jsx(q,{as:"label",className:w1t.label,style:{color:r},children:u.jsxs(V,{gap:"2",children:[u.jsx(Y7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}function S1t({onUplot:e}){const[t,n]=Vl(Yfe),r=i=>{n(i),e(o=>{o.redraw(!1,!1)})};return u.jsx(k1t,{label:"Show Projections",checked:t,onCheckedChange:r,color:pN})}const ahe="500px";function C1t(){var a;const e=X(Cn),t=pl(e),n=m.useRef(),r=X(Nb)[To.bank],i=m.useCallback(s=>{n.current=s},[]),o=m.useCallback(s=>n.current&&s(n.current),[]);return!e||!((a=t.response)!=null&&a.transactions)?u.jsx(j1t,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{children:u.jsxs(V,{direction:"column",height:ahe,gap:"2",children:[u.jsxs(V,{gap:"3",children:[u.jsx(Sd,{text:"Slot Progression"}),u.jsx(_1t,{onUplot:o}),u.jsx(S1t,{onUplot:o})]}),u.jsxs("div",{className:Agt.chart,children:[u.jsx(l1t,{slotTransactions:t.response.transactions,maxComputeUnits:t.response.publish.max_compute_units??Bte,bankTileCount:r,onCreate:i}),u.jsx(Jgt,{})]})]})}),u.jsx(y1t,{})]})}function j1t(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:ahe,justifyContent:"center",alignItems:"center"},children:u.jsx(q,{children:"Loading Slot Progress..."})})}function she(e,t){return Math.round(e*(t=10**t))/t}const T1t=1,lhe=(e,t,n,r,i)=>she(t+e*(n+i),6);function I1t(e,t,n,r,i){let o=(1-t)/(e-1);(isNaN(o)||o===1/0)&&(o=0);const a=0,s=t/e,l=she(s,6),c=l,d=l;if(r==null)for(let f=0;f=n&&e<=i&&t>=r&&t<=o}const vc=class vc{constructor(t,n,r,i,o=0){$u(this,"x");$u(this,"y");$u(this,"w");$u(this,"h");$u(this,"l");$u(this,"o");$u(this,"q");this.x=t,this.y=n,this.w=r,this.h=i,this.l=o,this.o=[],this.q=null}split(){const t=this.w/2,n=this.h/2,r=this.l+1;this.q=[new vc(this.x+t,this.y,t,n,r),new vc(this.x,this.y,t,n,r),new vc(this.x,this.y+n,t,n,r),new vc(this.x+t,this.y+n,t,n,r)]}quads(t,n,r,i,o){if(!this.q)return;const a=this.x+this.w/2,s=this.y+this.h/2,l=na,f=n+i>s;l&&d&&o(this.q[0]),c&&l&&o(this.q[1]),c&&f&&o(this.q[2]),d&&f&&o(this.q[3])}add(t){if(this.q)this.quads(t.x,t.y,t.w,t.h,n=>n.add(t));else if(this.o.push(t),this.o.length>vc.MAX_OBJECTS&&this.lr.add(n));this.o.length=0}}get(t,n,r,i,o){for(const a of this.o)o(a);this.q&&this.quads(t,n,r,i,a=>a.get(t,n,r,i,o))}clear(){this.o.length=0,this.q=null}};$u(vc,"MAX_OBJECTS",10),$u(vc,"MAX_LEVELS",4);let yO=vc;function uhe(e,t,n=Math.E){return e===0||t===0?0:((e<=0||t<=0)&&(console.error(e,t),console.error("Logarithms are only defined for positive numbers.")),n===Math.E?Math.log(e)-Math.log(t):Math.log(e)/Math.log(n)-Math.log(t)/Math.log(n))}function N1t(e,t){if(Math.trunc(e)!==e){let n=0;for(;Math.trunc(e)!==e;)e*=10,n++;return e/(Math.pow(10,n)*t)}else return e/t}function bO(e){return`${rhe}${e}`}function $1t(e,t){if(t<0||e.txn_mb_start_timestamps_nanos[t]===void 0)return;const n=e.start_timestamp_nanos,r=Number(e.txn_mb_start_timestamps_nanos[t]-n),i=Number(e.txn_preload_end_timestamps_nanos[t]-n),o=Number(e.txn_start_timestamps_nanos[t]-n),a=Number(e.txn_load_end_timestamps_nanos[t]-n),s=Number(e.txn_end_timestamps_nanos[t]-n),l=Number(e.txn_mb_end_timestamps_nanos[t]-n);return{mbStartTs:r,preloadTs:i,txnStartTs:o,loadEndTs:a,txnEndTs:s,mbEndTs:l}}function jS(e,t,n,r){const i={};for(let s=0;s+s).sort((s,l)=>s-l),a=[[-dO],[null],[null]];for(let s=0;s!d(e,c)))a[1].push(null),a[2].push(null);else if(a[1].push(c),c===null)a[2].push(null);else{const d=e.txn_microblock_id[c];a[2][a[2].length-1]===d||a[2][a[2].length-1]===void 0?a[2].push(void 0):a[2].push(d)}}a[0].push(n);for(let s=1;srt.round(o,n);let i=Number(e);return t||(i=Math.abs(i)),Math.abs(i)<1e3?{value:r(i),unit:"ns"}:(i/=1e3,Math.abs(i)<1e3?{value:r(i),unit:"\xB5s"}:(i/=1e3,Math.abs(i)<1e5?{value:r(i),unit:"ms"}:(i/=1e3,Math.abs(i)<120?{value:r(i),unit:"s"}:(i/=60,Math.abs(i)<120?{value:r(i),unit:"m"}:(i/=60,{value:r(i),unit:"h"})))))}const Ls=fe(null,(e,t,n)=>{function r(o){return o.startsWith("bank-")}function i(o,a){const s=Number(a.replace(rhe,""));isNaN(s)||n(o,s)}t(y6,i,{isMatchingChartId:r})}),M1t="landed";function L1t(e,t){return e.txn_landed[t]}const che=fe([]),dhe={},[ax,_O]=function(){const e=fe({...dhe}),t=fe();return[fe(n=>n(e),(n,r,i)=>{if(r(e,i),Object.keys(i).length){const o=new Set;r(Ls,a=>{var s;if((s=a.data[1])!=null&&s.length)for(let l=0;ln(t))]}();function R1t({baseChartData:e,transactions:t,value:n,filterEnum:r,filterFunc:i,mergeMatchingPoints:o}){const a=[null];let s=null;for(let l=1;l{const c={...n(ax)};l===void 0?delete c[e]:c[e]=(f,p)=>t(f,p,l);const d=jS(o,a,s,Object.values(c));i.data.splice(1,1,d[1]),i.data.splice(2,1,d[2]),i.setData(i.data,!1),r(ax,c),i.redraw(!0,!0)})}function TS(e,t){function n(r,i,o){switch(o){case"All":return!0;case"Yes":return t(r,i);case"No":return!t(r,i)}}return fhe(e,n)}const O1t=TS("error",(e,t)=>e.txn_error_code[t]!==0),P1t=TS("bundle",(e,t)=>e.txn_from_bundle[t]),z1t=TS(M1t,L1t),D1t=TS("simple",(e,t)=>e.txn_is_simple_vote[t]),A1t=fhe("arrival",(e,t,{min:n,max:r})=>{const i=Number(e.txn_arrival_timestamps_nanos[t]-e.start_timestamp_nanos);return(n===void 0||i>=n)&&i<=r});let IS={};function F1t(e,t){Object.values(IS).forEach(n=>n(e,t))}function B1t(){IS={}}function sx(e,t,n){return fe(null,(r,i,o,a,s,l)=>{function c(d,f){const p=d.data.length,v=r(che),_=R1t({filterEnum:e,filterFunc:t,transactions:a,baseChartData:v[f],value:l,mergeMatchingPoints:n});d.data.splice(p,0,_),d.addSeries({...d.series[1],label:`${e}`},p),whe(d.series.filter(y=>y.show).length-1),d.setData(d.data,!1),r(ES)===void 0&&d.redraw(!0,!0)}IS[e]=c,c(o,s)})}const U1t=sx(Ci.FEES,(e,t)=>!!Number(e.txn_priority_fee[t]+e.txn_transaction_fee[t])),W1t=sx(Ci.TIPS,(e,t)=>!!Number(e.txn_tips[t])),V1t=sx(Ci.CUS_CONSUMED,(e,t)=>!!e.txn_compute_units_consumed[t]),H1t=sx(Ci.CUS_REQUESTED,(e,t,n)=>!!e.txn_compute_units_requested[t]),Z1t=sx(Ci.INCOME_CUS,(e,t)=>e.txn_compute_units_consumed[t]>0&&Number(md(e,t))/e.txn_compute_units_consumed[t]>0),lx=fe(null,(e,t,n,r)=>{const i=n.series.findIndex(o=>o.label===`${r}`);i!==-1&&(n.delSeries(i),n.data.splice(i,1),whe(n.data.length-1),n.setData(n.data,!1),e(ES)===void 0&&n.redraw(!0,!0),delete IS[r])}),xO=fe(1),ES=fe(),q1t=0,Ed=1,hhe=2;function ux(e){return e===q1t}function NS(e){return e===Ed}function $S(e){return e===hhe}function phe(e){return e>hhe}function mhe(e,t,n=2){const r=10n**BigInt(n),i=e*r/t;return Number(i)/Number(r)}function MS(e,t){return function(n){return n.current?e(n.current).reduce((r,i,o)=>i>r?i:r,t):t}}const G1t=MS(e=>e.txn_priority_fee.map((t,n)=>t+e.txn_transaction_fee[n]),0n),Y1t=MS(e=>e.txn_tips,0n),K1t=MS(e=>e.txn_compute_units_consumed,0),X1t=MS(e=>e.txn_compute_units_requested,0);function ghe(e,t){if(!e.txn_landed[t])return 0;const n=e.txn_compute_units_consumed[t];return n?Number(md(e,t))/n:0}function vhe(e){const t=e.txn_priority_fee.reduce((r,i,o)=>{if(!e)return r;const a=ghe(e,o);return r[a]??(r[a]=[]),r[a].push(o),r},{}),n=Object.keys(t).sort((r,i)=>Number(i)-Number(r));return{rankings:n.reduce((r,i,o)=>{const a=t[i];for(const s of a)r.set(s,o+1);return r},new Map),totalRanks:n.length}}function J1t(e){if(!e.current)return new Map;const{rankings:t,totalRanks:n}=vhe(e.current);for(const[r,i]of t)t.set(r,(n-i+1)/n);return t}const Q1t=1,evt=T1t;let yhe=0;const bhe=.5,tvt=1.3;let S1;function wO(e){S1=e}let C1="";function _he(e){C1=e}let kO;function xhe(e){kO=e}let Nd=0;const whe=e=>{Nd=e-1,ca().set(xO,Nd)};function nvt(e,t){let n=0n,r=0n,i=0,o=0,a=new Map;function s(){n=G1t(e)}function l(){r=Y1t(e)}function c(){i=K1t(e)}function d(){o=X1t(e)}function f(){a=J1t(e)}Nd=1;const p={mode:1,fill:(O,J,D,Y)=>{var F,H,ee,ce;if(!e.current)return{fill:""};if(ux(J))return{fill:""};if(NS(J))return{fill:r1t[!O||!e.current?dn.DEFAULT:ihe(O[0][D],e.current,Y,(F=t[Y])==null?void 0:F.bundleTxnIdx)],brightness:kO===O[Ed][D]?tvt:void 0};if($S(J))return{fill:""};if(Y===Ci.FEES){const U=O[Ed][D]??-1,ae=e.current.txn_priority_fee[U]+e.current.txn_transaction_fee[U];if(!ae)return{fill:""};const je=mhe(ae,n,4);return{fill:`rgba(76, 204, 230, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.TIPS){const U=O[Ed][D]??-1,ae=(H=e.current)==null?void 0:H.txn_tips[U];if(!ae)return{fill:""};const je=mhe(ae,r,4);return{fill:`rgba(31, 216, 164, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.CUS_REQUESTED){const U=O[Ed][D]??-1,ae=(ee=e.current)==null?void 0:ee.txn_compute_units_requested[U];if(!ae)return{fill:""};const je=ae/o;return{fill:`rgba(255, 141, 204, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.CUS_CONSUMED){const U=O[Ed][D]??-1,ae=(ce=e.current)==null?void 0:ce.txn_compute_units_consumed[U];if(!ae)return{fill:""};const je=ae/i;return{fill:`rgba(209, 157, 255, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.INCOME_CUS){const U=O[Ed][D]??-1,ae=a.get(U)??0;return{fill:`rgba(158, 177, 255, ${Math.max(Math.min(.8,ae),.3)})`}}return{fill:""}},stroke:(O,J,D,Y)=>{var F,H,ee;if(ux(J)||NS(J))return"";if($S(J)){const ce=O[Ed][D]??-1,U=(F=e.current)==null?void 0:F.txn_error_code[ce];return S1?U===S1&&(!C1||((H=e.current)==null?void 0:H.txn_source_tpu[ce])===C1)?"rgba(162,5,8, .8)":U?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":C1?((ee=e.current)==null?void 0:ee.txn_source_tpu[ce])===C1&&(!S1||U===S1)?U?"rgba(162,5,8, .8)":"rgba(19,173,79, .8)":U?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":U?"rgba(162,5,8, .5)":"rgba(19,173,79, .5)"}return""}},{mode:v,fill:_,stroke:y}=p;function b(O,J,D,Y){I1t(J,Q1t,evt,O,(F,H,ee)=>{const ce=D*H,U=D*ee;Y(F,ce,U)})}const w=[.6,1/0];1-w[0];function x(){(w[1]??1/0)*jn.pxRatio}x();const S=new Map,C=new Map;function j(O){let J;const D=kO!==void 0;D&&(O.filter=`brightness(${bhe})`),S.forEach(({path:Y,brightness:F,fill:H})=>{H&&(D&&F!==J&&(O.filter=`brightness(${F??bhe})`,J=F),O.fillStyle=H,O.fill(Y))}),O.filter="",C.forEach((Y,F)=>{F&&(O.strokeStyle=F,O.stroke(Y))}),S.clear(),C.clear()}function T(O,J,D,Y,F,H,ee,ce,U,ae,je,me,ke){var $e,pe,ye;if(!e.current)return;const he=je+1,ue=_(O,he,me,ke);let re=S.get(ue.fill+ue.brightness);const ge=O[Ed][me];if(ge!=null){if(phe(he)){if(ke===Ci.FEES){const Se=e.current.txn_priority_fee[ge]+e.current.txn_transaction_fee[ge];if(Se!==void 0){let Ce=1/uhe(Number(n),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.TIPS){const Se=($e=e.current)==null?void 0:$e.txn_tips[ge];if(Se!==void 0){let Ce=1/uhe(Number(r),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.CUS_CONSUMED){const Se=(pe=e.current)==null?void 0:pe.txn_compute_units_consumed[ge];if(Se!==void 0){let Ce=Se/i;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.CUS_REQUESTED){const Se=(ye=e.current)==null?void 0:ye.txn_compute_units_requested[ge];if(Se!==void 0){let Ce=Se/o;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.INCOME_CUS){let Se=a.get(ge)??0;Se>.9&&(Se=.95),Se<.1&&(Se=.1);const Ce=U*Se,Be=U-Ce;U-=Be,ee+=Be}}if(re==null&&S.set(ue.fill+ue.brightness,re={path:new Path2D,fill:ue.fill,brightness:ue.brightness}),D(re.path,H,ee,ce,U),ae){const Se=y(O,he,me,ke);let Ce=C.get(Se);Ce==null&&C.set(Se,Ce=new Path2D),D(Ce,H+ae/2,ee+ae/2,ce-ae,U-ae)}$S(he)||$.add({x:rt.round(H-Y),y:rt.round(ee-F),w:ce,h:U,sidx:je+(je>1?2:1),didx:me})}}function E(O,J,D,Y){return jn.orient(O,J,(F,H,ee,ce,U,ae,je,me,ke,he,ue,re,ge,$e)=>{const pe=rt.round((F.width||0)*jn.pxRatio);O.ctx.save(),$e(O.ctx,O.bbox.left,O.bbox.top,O.bbox.width,O.bbox.height),O.ctx.clip(),b(J-1,Nd,ue,(ye,Se,Ce)=>{(ux(J)||NS(J))&&Ce&&(yhe=Ce),ux(J)||NS(J)||(Se-=yhe);for(let Be=0;Be=O.bbox.left&&Ge<=O.bbox.left+O.bbox.width){const ut=O.scales[Vt].min!=null&&O.scales[Vt].max!=null?4e8/(O.scales[Vt].max-O.scales[Vt].min):void 0;T(O.data,O.ctx,$e,me,ke,Ge,rt.round(ke+Se)+10,phe(J)?Math.max(3,Math.min(St-Ge,ut??1)):St-Ge,rt.round(Ce)-20,pe,ye,Be,ee[Be]??0)}Be=xt-1}}),O.ctx.lineWidth=pe,j(O.ctx),O.ctx.restore()}),null}let $;const A=Array(Nd).fill(null),M=Array(Nd).fill(0),P=Array(Nd).fill(0),te=jn.fmtDate("{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}");let Z=null;return{hooks:{init:O=>{Z=O.root.querySelector(".u-series:first-child .u-value"),window.addEventListener("dppxchange",x),s(),l(),c(),d(),f()},destroy:O=>{window.removeEventListener("dppxchange",x)},drawClear:O=>{$=$||new yO(0,0,O.bbox.width,O.bbox.height),$.clear(),O.series.forEach(J=>{J._paths=null})},setCursor:O=>{{const J=O.posToVal(O.cursor.left??0,Vt);Z&&(Z.textContent=O.scales[Vt].time?te(new Date(J*1e3)):J.toFixed(2))}}},opts:(O,J)=>{jn.assign(J,{cursor:{sync:{key:Vt},y:!1,dataIdx:(D,Y,F,H)=>{var ce;if(ux(Y)||$S(Y))return F;const ee=rt.round(D.cursor.left*jn.pxRatio);if(ee>=0){const U=M[Y-1];A[Y-1]=null,$.get(ee,U,1,1,ae=>{E1t(ee,U,ae.x,ae.y,ae.x+ae.w,ae.y+ae.h)&&(A[Y-1]=ae)})}return(ce=A[Y-1])==null?void 0:ce.didx},points:{fill:"rgba(255,255,255,0.2)",bbox:(D,Y)=>{const F=A[Y-1],H={left:F?rt.round(F.x/devicePixelRatio):-10,top:F?rt.round(F.y/devicePixelRatio):-10,width:F?rt.round(F.w/devicePixelRatio):0,height:F?rt.round(F.h/devicePixelRatio):0},ee=rt.round((D.bbox.left+D.bbox.width)/devicePixelRatio)-H.left-10;return H.width>ee&&(H.width=ee),H}}},scales:{[Vt]:{range(D,Y,F){return[Y,F]}},y:{range:[0,1]}}}),J.axes&&jn.assign(J.axes[0],{splits:null,grid:{show:v!==2}}),J.axes&&jn.assign(J.axes[1],{splits:(D,Y)=>(b(null,Nd,D.bbox.height,(F,H,ee)=>{M[F]=rt.round(H+ee/2),P[F]=D.posToVal(M[F]/jn.pxRatio,"y")}),P),values:()=>Array(Nd).fill(null).map((D,Y)=>O.series[Y+1].label),gap:5,size:0,grid:{show:!1},ticks:{show:!1},side:3}),J.series.forEach((D,Y)=>{Y>0&&jn.assign(D,{paths:E,points:{show:!1}})})}}}const rvt="_group-label_1cg9k_1",ivt="_min-text-width_1cg9k_4",ovt="_group_1cg9k_1",avt="_tooltip-open_1cg9k_15",svt="_item_1cg9k_18",lvt="_item-color_1cg9k_65",j1={groupLabel:rvt,minTextWidth:ivt,group:ovt,tooltipOpen:avt,item:svt,itemColor:lvt},uvt="_slider_zs58s_1",cvt="_arrival-label_zs58s_68",dvt="_minimize-button_zs58s_77",fvt="_chart-control-tooltip_zs58s_83",cx={slider:uvt,arrivalLabel:cvt,minimizeButton:dvt,chartControlTooltip:fvt},LS=m.forwardRef(hvt);function hvt({label:e,options:t,value:n,onChange:r,isTooltipOpen:i,closeTooltip:o,optionColors:a,hasMinTextWidth:s},l){const c=m.useRef(new Map);return m.useImperativeHandle(l,()=>({focus:d=>{var f;(f=c.current.get(d))==null||f.focus()}}),[]),u.jsxs(V,{align:"center",children:[e&&u.jsx(q,{className:Te(j1.groupLabel,{[j1.minTextWidth]:s}),children:e}),u.jsx(ui,{className:cx.chartControlTooltip,content:`Applied "${n}"`,open:!!i,side:"bottom",children:u.jsx($7,{className:Te(j1.group,i&&j1.tooltipOpen),type:"single",value:n,"aria-label":e,onValueChange:d=>d&&r(d),children:t.map(d=>u.jsxs(U0,{ref:f=>{f?c.current.set(d,f):c.current.delete(d)},className:j1.item,value:d,"aria-label":d,onBlur:o,children:[(a==null?void 0:a[d])&&u.jsx("div",{className:j1.itemColor,style:{background:a[d]}}),d]},d))})})]})}const pvt="_label_1q3ew_1",SO={label:pvt};function dx({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(V,{align:"center",gap:"2",children:u.jsx(q,{as:"label",className:SO.label,style:{color:r},children:u.jsxs(V,{gap:"2",children:[u.jsx(Y7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}const CO=fe(-1),jO=fe(dn.DEFAULT);var khe=1,mvt=.9,gvt=.8,vvt=.17,TO=.1,IO=.999,yvt=.9999,bvt=.99,_vt=/[\\\/_+.#"@\[\(\{&]/,xvt=/[\\\/_+.#"@\[\(\{&]/g,wvt=/[\s-]/,She=/[\s-]/g;function EO(e,t,n,r,i,o,a){if(o===t.length)return i===e.length?khe:bvt;var s=`${i},${o}`;if(a[s]!==void 0)return a[s];for(var l=r.charAt(o),c=n.indexOf(l,i),d=0,f,p,v,_;c>=0;)f=EO(e,t,n,r,c+1,o+1,a),f>d&&(c===i?f*=khe:_vt.test(e.charAt(c-1))?(f*=gvt,v=e.slice(i,c-1).match(xvt),v&&i>0&&(f*=Math.pow(IO,v.length))):wvt.test(e.charAt(c-1))?(f*=mvt,_=e.slice(i,c-1).match(She),_&&i>0&&(f*=Math.pow(IO,_.length))):(f*=vvt,i>0&&(f*=Math.pow(IO,c-i))),e.charAt(c)!==t.charAt(o)&&(f*=yvt)),(ff&&(f=p*TO)),f>d&&(d=f),c=n.indexOf(l,c+1);return a[s]=d,d}function Che(e){return e.toLowerCase().replace(She," ")}function kvt(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,EO(e,t,Che(e),Che(t),0,0,{})}var Svt=Symbol.for("react.lazy"),RS=pj[" use ".trim().toString()];function Cvt(e){return typeof e=="object"&&e!==null&&"then"in e}function jhe(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Svt&&"_payload"in e&&Cvt(e._payload)}function jvt(e){const t=Tvt(e),n=m.forwardRef((r,i)=>{let{children:o,...a}=r;jhe(o)&&typeof RS=="function"&&(o=RS(o._payload));const s=m.Children.toArray(o),l=s.find(Evt);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}function Tvt(e){const t=m.forwardRef((n,r)=>{let{children:i,...o}=n;if(jhe(i)&&typeof RS=="function"&&(i=RS(i._payload)),m.isValidElement(i)){const a=$vt(i),s=Nvt(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ivt=Symbol("radix.slottable");function Evt(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ivt}function Nvt(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function $vt(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Mvt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ph=Mvt.reduce((e,t)=>{const n=jvt(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),fx='[cmdk-group=""]',NO='[cmdk-group-items=""]',Lvt='[cmdk-group-heading=""]',The='[cmdk-item=""]',Ihe=`${The}:not([aria-disabled="true"])`,$O="cmdk-item-select",T1="data-value",Rvt=(e,t,n)=>kvt(e,t,n),Ehe=m.createContext(void 0),hx=()=>m.useContext(Ehe),Nhe=m.createContext(void 0),MO=()=>m.useContext(Nhe),$he=m.createContext(void 0),Mhe=m.forwardRef((e,t)=>{let n=I1(()=>{var U,ae;return{search:"",value:(ae=(U=e.value)!=null?U:e.defaultValue)!=null?ae:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=I1(()=>new Set),i=I1(()=>new Map),o=I1(()=>new Map),a=I1(()=>new Set),s=Lhe(e),{label:l,children:c,value:d,onValueChange:f,filter:p,shouldFilter:v,loop:_,disablePointerSelection:y=!1,vimBindings:b=!0,...w}=e,x=wo(),S=wo(),C=wo(),j=m.useRef(null),T=Hvt();Mm(()=>{if(d!==void 0){let U=d.trim();n.current.value=U,E.emit()}},[d]),Mm(()=>{T(6,Z)},[]);let E=m.useMemo(()=>({subscribe:U=>(a.current.add(U),()=>a.current.delete(U)),snapshot:()=>n.current,setState:(U,ae,je)=>{var me,ke,he,ue;if(!Object.is(n.current[U],ae)){if(n.current[U]=ae,U==="search")te(),M(),T(1,P);else if(U==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(C);re?re.focus():(me=document.getElementById(x))==null||me.focus()}if(T(7,()=>{var re;n.current.selectedItemId=(re=O())==null?void 0:re.id,E.emit()}),je||T(5,Z),((ke=s.current)==null?void 0:ke.value)!==void 0){let re=ae??"";(ue=(he=s.current).onValueChange)==null||ue.call(he,re);return}}E.emit()}},emit:()=>{a.current.forEach(U=>U())}}),[]),$=m.useMemo(()=>({value:(U,ae,je)=>{var me;ae!==((me=o.current.get(U))==null?void 0:me.value)&&(o.current.set(U,{value:ae,keywords:je}),n.current.filtered.items.set(U,A(ae,je)),T(2,()=>{M(),E.emit()}))},item:(U,ae)=>(r.current.add(U),ae&&(i.current.has(ae)?i.current.get(ae).add(U):i.current.set(ae,new Set([U]))),T(3,()=>{te(),M(),n.current.value||P(),E.emit()}),()=>{o.current.delete(U),r.current.delete(U),n.current.filtered.items.delete(U);let je=O();T(4,()=>{te(),(je==null?void 0:je.getAttribute("id"))===U&&P(),E.emit()})}),group:U=>(i.current.has(U)||i.current.set(U,new Set),()=>{o.current.delete(U),i.current.delete(U)}),filter:()=>s.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:x,inputId:C,labelId:S,listInnerRef:j}),[]);function A(U,ae){var je,me;let ke=(me=(je=s.current)==null?void 0:je.filter)!=null?me:Rvt;return U?ke(U,n.current.search,ae):0}function M(){if(!n.current.search||s.current.shouldFilter===!1)return;let U=n.current.filtered.items,ae=[];n.current.filtered.groups.forEach(me=>{let ke=i.current.get(me),he=0;ke.forEach(ue=>{let re=U.get(ue);he=Math.max(re,he)}),ae.push([me,he])});let je=j.current;J().sort((me,ke)=>{var he,ue;let re=me.getAttribute("id"),ge=ke.getAttribute("id");return((he=U.get(ge))!=null?he:0)-((ue=U.get(re))!=null?ue:0)}).forEach(me=>{let ke=me.closest(NO);ke?ke.appendChild(me.parentElement===ke?me:me.closest(`${NO} > *`)):je.appendChild(me.parentElement===je?me:me.closest(`${NO} > *`))}),ae.sort((me,ke)=>ke[1]-me[1]).forEach(me=>{var ke;let he=(ke=j.current)==null?void 0:ke.querySelector(`${fx}[${T1}="${encodeURIComponent(me[0])}"]`);he==null||he.parentElement.appendChild(he)})}function P(){let U=J().find(je=>je.getAttribute("aria-disabled")!=="true"),ae=U==null?void 0:U.getAttribute(T1);E.setState("value",ae||void 0)}function te(){var U,ae,je,me;if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ke=0;for(let he of r.current){let ue=(ae=(U=o.current.get(he))==null?void 0:U.value)!=null?ae:"",re=(me=(je=o.current.get(he))==null?void 0:je.keywords)!=null?me:[],ge=A(ue,re);n.current.filtered.items.set(he,ge),ge>0&&ke++}for(let[he,ue]of i.current)for(let re of ue)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(he);break}n.current.filtered.count=ke}function Z(){var U,ae,je;let me=O();me&&(((U=me.parentElement)==null?void 0:U.firstChild)===me&&((je=(ae=me.closest(fx))==null?void 0:ae.querySelector(Lvt))==null||je.scrollIntoView({block:"nearest"})),me.scrollIntoView({block:"nearest"}))}function O(){var U;return(U=j.current)==null?void 0:U.querySelector(`${The}[aria-selected="true"]`)}function J(){var U;return Array.from(((U=j.current)==null?void 0:U.querySelectorAll(Ihe))||[])}function D(U){let ae=J()[U];ae&&E.setState("value",ae.getAttribute(T1))}function Y(U){var ae;let je=O(),me=J(),ke=me.findIndex(ue=>ue===je),he=me[ke+U];(ae=s.current)!=null&&ae.loop&&(he=ke+U<0?me[me.length-1]:ke+U===me.length?me[0]:me[ke+U]),he&&E.setState("value",he.getAttribute(T1))}function F(U){let ae=O(),je=ae==null?void 0:ae.closest(fx),me;for(;je&&!me;)je=U>0?Wvt(je,fx):Vvt(je,fx),me=je==null?void 0:je.querySelector(Ihe);me?E.setState("value",me.getAttribute(T1)):Y(U)}let H=()=>D(J().length-1),ee=U=>{U.preventDefault(),U.metaKey?H():U.altKey?F(1):Y(1)},ce=U=>{U.preventDefault(),U.metaKey?D(0):U.altKey?F(-1):Y(-1)};return m.createElement(ph.div,{ref:t,tabIndex:-1,...w,"cmdk-root":"",onKeyDown:U=>{var ae;(ae=w.onKeyDown)==null||ae.call(w,U);let je=U.nativeEvent.isComposing||U.keyCode===229;if(!(U.defaultPrevented||je))switch(U.key){case"n":case"j":{b&&U.ctrlKey&&ee(U);break}case"ArrowDown":{ee(U);break}case"p":case"k":{b&&U.ctrlKey&&ce(U);break}case"ArrowUp":{ce(U);break}case"Home":{U.preventDefault(),D(0);break}case"End":{U.preventDefault(),H();break}case"Enter":{U.preventDefault();let me=O();if(me){let ke=new Event($O);me.dispatchEvent(ke)}}}}},m.createElement("label",{"cmdk-label":"",htmlFor:$.inputId,id:$.labelId,style:qvt},l),OS(e,U=>m.createElement(Nhe.Provider,{value:E},m.createElement(Ehe.Provider,{value:$},U))))}),Ovt=m.forwardRef((e,t)=>{var n,r;let i=wo(),o=m.useRef(null),a=m.useContext($he),s=hx(),l=Lhe(e),c=(r=(n=l.current)==null?void 0:n.forceMount)!=null?r:a==null?void 0:a.forceMount;Mm(()=>{if(!c)return s.item(i,a==null?void 0:a.id)},[c]);let d=Rhe(i,o,[e.value,e.children,o],e.keywords),f=MO(),p=mh(T=>T.value&&T.value===d.current),v=mh(T=>c||s.filter()===!1?!0:T.search?T.filtered.items.get(i)>0:!0);m.useEffect(()=>{let T=o.current;if(!(!T||e.disabled))return T.addEventListener($O,_),()=>T.removeEventListener($O,_)},[v,e.onSelect,e.disabled]);function _(){var T,E;y(),(E=(T=l.current).onSelect)==null||E.call(T,d.current)}function y(){f.setState("value",d.current,!0)}if(!v)return null;let{disabled:b,value:w,onSelect:x,forceMount:S,keywords:C,...j}=e;return m.createElement(ph.div,{ref:zl(o,t),...j,id:i,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!p,"data-disabled":!!b,"data-selected":!!p,onPointerMove:b||s.getDisablePointerSelection()?void 0:y,onClick:b?void 0:_},e.children)}),Pvt=m.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...o}=e,a=wo(),s=m.useRef(null),l=m.useRef(null),c=wo(),d=hx(),f=mh(v=>i||d.filter()===!1?!0:v.search?v.filtered.groups.has(a):!0);Mm(()=>d.group(a),[]),Rhe(a,s,[e.value,e.heading,l]);let p=m.useMemo(()=>({id:a,forceMount:i}),[i]);return m.createElement(ph.div,{ref:zl(s,t),...o,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&m.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),OS(e,v=>m.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},m.createElement($he.Provider,{value:p},v))))}),zvt=m.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=m.useRef(null),o=mh(a=>!a.search);return!n&&!o?null:m.createElement(ph.div,{ref:zl(i,t),...r,"cmdk-separator":"",role:"separator"})}),Dvt=m.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,o=MO(),a=mh(c=>c.search),s=mh(c=>c.selectedItemId),l=hx();return m.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),m.createElement(ph.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":s,id:l.inputId,type:"text",value:i?e.value:a,onChange:c=>{i||o.setState("search",c.target.value),n==null||n(c.target.value)}})}),Avt=m.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...i}=e,o=m.useRef(null),a=m.useRef(null),s=mh(c=>c.selectedItemId),l=hx();return m.useEffect(()=>{if(a.current&&o.current){let c=a.current,d=o.current,f,p=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let v=c.offsetHeight;d.style.setProperty("--cmdk-list-height",v.toFixed(1)+"px")})});return p.observe(c),()=>{cancelAnimationFrame(f),p.unobserve(c)}}},[]),m.createElement(ph.div,{ref:zl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:l.listId},OS(e,c=>m.createElement("div",{ref:zl(a,l.listInnerRef),"cmdk-list-sizer":""},c)))}),Fvt=m.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:o,container:a,...s}=e;return m.createElement(AU,{open:n,onOpenChange:r},m.createElement(FU,{container:a},m.createElement(BU,{"cmdk-overlay":"",className:i}),m.createElement(UU,{"aria-label":e.label,"cmdk-dialog":"",className:o},m.createElement(Mhe,{ref:t,...s}))))}),Bvt=m.forwardRef((e,t)=>mh(n=>n.filtered.count===0)?m.createElement(ph.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Uvt=m.forwardRef((e,t)=>{let{progress:n,children:r,label:i="Loading...",...o}=e;return m.createElement(ph.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},OS(e,a=>m.createElement("div",{"aria-hidden":!0},a)))}),gu=Object.assign(Mhe,{List:Avt,Item:Ovt,Input:Dvt,Group:Pvt,Separator:zvt,Dialog:Fvt,Empty:Bvt,Loading:Uvt});function Wvt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Vvt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Lhe(e){let t=m.useRef(e);return Mm(()=>{t.current=e}),t}var Mm=typeof window>"u"?m.useEffect:m.useLayoutEffect;function I1(e){let t=m.useRef();return t.current===void 0&&(t.current=e()),t}function mh(e){let t=MO(),n=()=>e(t.snapshot());return m.useSyncExternalStore(t.subscribe,n,n)}function Rhe(e,t,n,r=[]){let i=m.useRef(),o=hx();return Mm(()=>{var a;let s=(()=>{var c;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(c=d.current.textContent)==null?void 0:c.trim():i.current}})(),l=r.map(c=>c.trim());o.value(e,s,l),(a=t.current)==null||a.setAttribute(T1,s),i.current=s}),i}var Hvt=()=>{let[e,t]=m.useState(),n=I1(()=>new Map);return Mm(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,i)=>{n.current.set(r,i),t({})}};function Zvt(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function OS({asChild:e,children:t},n){return e&&m.isValidElement(t)?m.cloneElement(Zvt(t),{ref:t.ref},n(t.props.children)):n(t)}var qvt={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const Gvt="_dropdownButton_1yasw_1",Yvt="_input-container_1yasw_6",Kvt="_sm_1yasw_20",Xvt="_content_1yasw_68",Jvt="_tooltip-open_1yasw_135",E1={dropdownButton:Gvt,inputContainer:Yvt,sm:Kvt,content:Xvt,tooltipOpen:Jvt},Qvt="_text_1k6sv_1",eyt="_faded_1k6sv_7",tyt="_ellipsis_1k6sv_11",LO={text:Qvt,faded:eyt,ellipsis:tyt};function Ohe({textSegments:e,truncateLastSegment:t}){return u.jsx(V,{flexGrow:"1",minWidth:"0",maxWidth:"100%",wrap:"nowrap",className:LO.text,"aria-label":e.map(({text:n})=>n).join(""),children:e.map(({text:n,faded:r},i)=>n?u.jsx(q,{className:Te({[LO.faded]:r,[LO.ellipsis]:i===e.length-1&&t}),children:n},i):null)})}const px=8,nyt=2,Phe=2;function ryt(e,{signature:t,optionValue:n,txnIdxCount:r}){const i=r>1,o=e.trim().toLowerCase(),a=n.toLowerCase(),s=v=>{i&&v.push({text:`${uk}(${r})`,faded:!0})};if(o.length===a.length||o.length>px){const v=[{text:`${t.substring(0,px)}...${t.substring(t.length-px)}`}];return s(v),v}const l=a.indexOf(o),c=l+o.length,d=[{start:0,end:Math.min(px,t.length)},{start:Math.max(0,Math.min(l-Phe,t.length)),end:Math.min(t.length,Math.min(c+Phe,t.length))},{start:Math.max(0,t.length-px),end:t.length}].filter(v=>v.end>v.start).sort((v,_)=>v.start-_.start),f=[];for(const v of d){if(!f.length){f.push({...v});continue}const _=f[f.length-1],y=v.start-_.end;y<=0||y<=nyt?_.end=Math.max(_.end,v.end):f.push({...v})}const p=[];for(let v=0;v0&&p.push({text:"...",faded:!0});const y=Math.max(_.start,Math.min(l,_.end)),b=Math.max(_.start,Math.min(c,_.end));b>y?(_.startv)}function iyt(e){return function(t){return u.jsx(Ohe,{textSegments:ryt(t,e)})}}function zhe(e,t){if(t=t.trim(),!t)return;if(t.includes(".")){const s=e.indexOf(t);return s<0?void 0:{startIdx:s,endIdx:s+t.length}}const n=[];let r="";for(let s=0;s="0"&&l<="9"&&(r+=l,n.push(s))}const i=r.indexOf(t);if(i<0)return;const o=n[i],a=n[i+t.length-1]+1;return{startIdx:o,endIdx:a}}function oyt(e,t,n){return function(r){const i=zhe(e,r),o=t>1,a=(i==null?void 0:i.startIdx)??-1,s=(i==null?void 0:i.endIdx)??-1,l=[{text:e.substring(0,a),faded:!0},{text:e.substring(a,s)},{text:e.substring(s),faded:!0},{text:o?`${uk}(${t})`:"",faded:!0},{text:n?`${uk}${n}`:""}];return u.jsx(Ohe,{textSegments:l,truncateLastSegment:!0})}}const ayt=["All","Success","Errors"],RO=["All","Yes","No"];var Mn=(e=>(e.TxnSignature="Txn Sig",e.Error="Error",e.Income="Income",e.Ip="IPv4",e.Tpu="TPU",e))(Mn||{});const syt="errorState",OO="bundle",lyt="landed",uyt="vote",PO="focusBank",mx="search",Dhe="arrival",cyt={triggerControl:()=>{},registerControl:()=>()=>{},resetControl:()=>{},resetAllControls:()=>{}},N1=m.createContext(cyt);function PS(e,t,n){const{registerControl:r}=m.useContext(N1),i=m.useRef(t);i.current=t;const o=m.useRef(n);o.current=n;const[a,s]=m.useState(!1),l=m.useCallback(()=>s(!1),[]);return m.useEffect(()=>r(e,c=>{i.current(c),s(!0)},()=>{o.current(),s(!1)}),[e,r]),{isTooltipOpen:a,closeTooltip:l}}const dyt=30,fyt=20,Ahe=[Mn.TxnSignature,Mn.Ip],Fhe=[Mn.Income],Bhe=[Mn.TxnSignature,Mn.Error,Mn.Income,Mn.Ip,Mn.Tpu],hyt={[Mn.TxnSignature]:"2ZwHLf3Qw7ZE8s3PWW81ELCmGiVhaDS9LWMK4McGL9ySmqvTZSZf3S9EWks4TFbyJt7U6i5RPuLk7PgWVBdy9HY5",[Mn.Error]:"",[Mn.Income]:"Rank #",[Mn.Ip]:"192.0.2.1",[Mn.Tpu]:"udp"};function Uhe({transactions:e,size:t="lg"}){const n=m.useRef(null),[r,i]=m.useState(!1),[o,a]=m.useState(!1),[s,l]=m.useState(""),[c,d]=Uie(s,500),[f,p]=m.useState(),[v,_]=m.useState(Mn.TxnSignature),y=X(_O),b=X(XN),w=X(jg),x=Ee(Ls),S=m.useRef(null),C=m.useRef(null),j=m.useRef(!1),{triggerControl:T,resetControl:E}=m.useContext(N1),$=m.useCallback(ye=>{const Se=ye.mode===Mn.TxnSignature?e.txn_signature:ye.mode===Mn.Ip?e.txn_source_ipv4:void 0;return Se?Se.reduce((Ce,Be,Ge)=>(Be===ye.text&&Ce.push(Ge),Ce),[]):[]},[e.txn_signature,e.txn_source_ipv4]),A=m.useCallback(ye=>{var Ge,xt,St;const Se=e.txn_bank_idx[ye],Ce=document.getElementById(bO(Se)),Be=(Ge=Ce==null?void 0:Ce.getElementsByTagName("canvas"))==null?void 0:Ge[0];if(Ce&&Be){if(!Rze(Be)){Be.scrollIntoView({block:"nearest"});const ut=Be.getBoundingClientRect(),ct=(xt=document.getElementById("transaction-bars-controls"))==null?void 0:xt.getBoundingClientRect();ct&&ct.top-epe<=0&&ut.top{if(Se!==ct){ut.redraw();return}const bt=ut.scales[Vt],Qe=bt.min??-1/0,Ke=bt.max??1/0,De=Ke-Qe,Dt=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye-1]!==e.txn_microblock_id[ye],pn=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye+1]!==e.txn_microblock_id[ye],Yn=Number((Dt||!e.txn_from_bundle[ye]?e.txn_mb_start_timestamps_nanos[ye]:e.txn_preload_end_timestamps_nanos[ye])-e.start_timestamp_nanos),fr=Number((pn||!e.txn_from_bundle[ye]?e.txn_mb_end_timestamps_nanos[ye]:e.txn_end_timestamps_nanos[ye])-e.start_timestamp_nanos),Kn=(fr-Yn)*dyt,wr=(fr-Yn)*fyt,Pn=frKe,$r=De>Kn,tr=De{if(Pn||$r||tr){let kr=Math.max(ut.data[0][0],Yn-Kn/2);const ni=kr+Kn;ni>ut.data[0][ut.data[0].length-1]&&(kr=ni-Kn),ut.setScale(Vt,{min:kr,max:ni})}xhe(ye)})})},[e,T,x]),M=m.useCallback(ye=>{const Se={current:0,total:ye.length-1,txnIdxs:ye};p(Se);const Ce=ye[Se.current];A(Ce)},[A]),P=m.useCallback(ye=>{var Ce;const Se=$(ye);Se.length&&(l(ye.text),_(ye.mode),M(Se),j.current=!0,(Ce=n.current)==null||Ce.focus())},[$,M]),te=m.useCallback(()=>{E(PO),E(Dhe),xhe(void 0),p(void 0),a(!1)},[E]),Z=m.useCallback(()=>{te(),l(""),d(""),x((ye,Se)=>{ye.setScale(Vt,{min:ye.data[0][0],max:ye.data[0][ye.data[0].length-1]})})},[te,d,x]),{isTooltipOpen:O,closeTooltip:J}=PS(mx,P,Z);m.useEffect(()=>{y&&(f!=null&&f.txnIdxs.some(ye=>!y.has(ye)))&&Z()},[y,Z,f==null?void 0:f.txnIdxs]),m.useEffect(()=>{f===void 0&&Fhe.includes(v)&&_(Bhe[0])},[f,v]);const D=m.useCallback((ye,Se,Ce)=>ye.reduce((Be,Ge,xt)=>{var ct;if(y&&!y.has(xt)||Ce!=null&&Ce(Ge))return Be;const St=((ct=Be[Ge])==null?void 0:ct.txnIdxs)??[];St.push(xt);const ut=Se(Ge,St);return Be[Ge]=ut,Be},{}),[y]),Y=m.useMemo(()=>D(e.txn_signature,(ye,Se)=>{const Ce=ye.toLowerCase();return{getLabelEl:iyt({signature:ye,optionValue:Ce,txnIdxCount:Se.length}),txnIdxs:Se,signatureLower:Ce,signature:ye}}),[D,e.txn_signature]),F=m.useMemo(()=>D(e.txn_error_code,(ye,Se)=>({txnIdxs:Se,label:sN[ye]}),ye=>ye===0),[D,e.txn_error_code]),H=m.useMemo(()=>{const ye=b.reduce((Se,Ce)=>{var Ge,xt;if(!Ce.gossip||!((Ge=Ce.info)!=null&&Ge.name))return Se;const Be=Object.values(Ce.gossip.sockets);for(const St of Be)Se.set(HN(St),(xt=Ce.info)==null?void 0:xt.name);return Se},new Map);return D(e.txn_source_ipv4,(Se,Ce)=>{var Be;return{getLabelEl:oyt(Se,Ce.length,ye.get(Se)),txnIdxs:Ce,label:`${Se} ${ye.get(Se)??""}`,queryValue:`${Se}${(Be=ye.get(Se)??"")==null?void 0:Be.toLowerCase()}`}})},[D,b,e.txn_source_ipv4]),ee=m.useMemo(()=>D(e.txn_source_tpu,(ye,Se)=>({txnIdxs:Se,label:ye})),[D,e.txn_source_tpu]),ce=m.useMemo(()=>e.txn_transaction_fee.reduce((ye,Se,Ce)=>(y&&!y.has(Ce)||ye.push({txnIdx:Ce,income:Number(md(e,Ce))}),ye),[]).sort(({income:ye},{income:Se})=>Se-ye),[y,e]),U=m.useCallback((ye,Se)=>{switch(l(ye),d(ye),i(!1),a(!0),v){case Mn.TxnSignature:{const Ce=Y[ye].txnIdxs;M(Ce);break}case Mn.Error:{if(Se!==void 0){const Ce=F[Number(Se)].txnIdxs;M(Ce)}break}case Mn.Ip:{const Ce=H[Se??ye];if(Ce){const Be=Ce.txnIdxs;M(Be)}break}case Mn.Tpu:{if(Se!==void 0){const Ce=ee[Se].txnIdxs;M(Ce)}break}case Mn.Income:break}},[d,v,Y,M,F,H,ee]),ae=ye=>()=>{p(Se=>{if(!Se)return;let{current:Ce,total:Be,txnIdxs:Ge}=Se;ye==="prev"?Ce--:ye==="next"&&Ce++,Ce>Be&&(Ce=0),Ce<0&&(Ce=Be);const xt=Ge[Ce];return A(xt),{current:Ce,total:Be,txnIdxs:Ge}})},je=ye=>()=>{switch(_(ye),Z(),ye){case Mn.TxnSignature:case Mn.Ip:case Mn.Error:case Mn.Tpu:{pe.current=!0,i(!0),setTimeout(()=>{var Se;(Se=n.current)==null||Se.focus()},250);break}case Mn.Income:{const Se=ce.map(({txnIdx:Be})=>Be);p({current:0,total:Se.length,txnIdxs:Se});const Ce=Se[0];A(Ce);break}}},me=Ahe.includes(v),ke=me&&s!==c,he=r&&!me||!ke,ue=f&&f.total>0,re=s||Fhe.includes(v),ge=!Ahe.includes(v),$e=m.useRef(ge);$e.current=ge;const pe=m.useRef(!1);return u.jsxs(V,{children:[u.jsxs(GZ,{children:[u.jsx(YZ,{children:u.jsxs(hs,{variant:"surface",className:E1.dropdownButton,onFocusCapture:ye=>ye.preventDefault(),onFocus:ye=>{ye.preventDefault()},children:[v,u.jsx(U7,{})]})}),u.jsx(XZ,{onCloseAutoFocus:ye=>ye.preventDefault(),children:Bhe.map(ye=>u.jsx(JZ,{onSelect:je(ye),children:ye},ye))})]}),u.jsx(gu,{loop:!0,className:E1.root,shouldFilter:!1,ref:S,children:u.jsxs(l7,{open:r,onOpenChange:ye=>i(ye),children:[u.jsx(DV,{asChild:!0,children:u.jsx(V,{children:u.jsx(ui,{className:cx.chartControlTooltip,content:`Applied: ${v}`,open:O,side:"bottom",children:u.jsxs(V,{align:"center",className:Te(E1.inputContainer,"rt-TextFieldRoot","rt-variant-surface",{[E1.sm]:t==="sm",[E1.tooltipOpen]:O}),children:[u.jsx(gu.Input,{placeholder:hyt[v],onFocus:()=>{j.current?j.current=!1:i(!0)},onKeyDown:ye=>{ye.key==="Enter"&&i(!0)},value:s,onValueChange:ye=>{l(ye),te(),i(!0)},onBlur:J,readOnly:ge,ref:n}),(ue||re)&&u.jsxs(V,{align:"center",children:[ue&&u.jsxs(u.Fragment,{children:[u.jsxs(q,{style:{paddingRight:"var(--space-2)",cursor:"default"},children:[f.current+1,"\xA0of\xA0",f.total+1]}),u.jsx(nl,{onClick:ae("prev"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("prev")()},children:u.jsx(YFe,{})}),u.jsx(nl,{onClick:ae("next"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("next")()},children:u.jsx(Hie,{})})]}),re&&u.jsx(nl,{onClick:Z,variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&Z()},children:u.jsx(B$,{})})]})]})})})}),u.jsx(u7,{container:w,children:u.jsx(c7,{className:E1.content,onOpenAutoFocus:ye=>{pe.current?setTimeout(()=>{pe.current=!1},250):ye.preventDefault()},onInteractOutside:ye=>{(ye.target===n.current||pe.current)&&ye.preventDefault()},style:{outline:"unset"},children:u.jsxs(gu.List,{ref:C,style:{maxHeight:"min(300px, var(--radix-popover-content-available-height))"},children:[s.length>1&&ke&&u.jsx(gu.Loading,{children:u.jsx(q,{children:"Loading..."})}),he&&u.jsxs(u.Fragment,{children:[v===Mn.TxnSignature&&u.jsx(pyt,{optionMap:Y,inputValue:c,onSelect:U,showAllOptions:o}),v===Mn.Error&&u.jsx(Whe,{onSelect:U,optionMap:F}),v===Mn.Ip&&u.jsx(myt,{onSelect:U,optionMap:H,inputValue:c,showAllOptions:o}),v===Mn.Tpu&&u.jsx(Whe,{onSelect:U,optionMap:ee})]})]})})})]})})]})}const pyt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.toLowerCase();function a([,{signatureLower:c}]){return r||c.includes(o)}function s([,{signatureLower:c}]){return c===o?3:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([,{getLabelEl:c,signatureLower:d,signature:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:d,onSelect:()=>{n(f)},children:c(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),myt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.trim().toLowerCase();function a([,{label:c,queryValue:d}]){return r||!!zhe(c,o)||d.includes(o)}function s([,{label:c,txnIdxs:d}]){return c===o?1/0:d.length>1?3+d.length:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([c,{getLabelEl:d,label:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:f,onSelect:()=>{n(f,c)},children:d(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),Whe=m.memo(function({onSelect:e,optionMap:t}){return m.useMemo(()=>Object.entries(t),[t]).map(([n,{label:r,txnIdxs:i}],o)=>u.jsx(gu.Item,{onSelect:()=>{e(r,n)},children:u.jsxs(q,{children:[r," (",i.length,")"]})},n))});function zS(e,t,n){const r=m.useRef(null),i=m.useCallback(s=>{var l,c;t(s),(l=r.current)==null||l.focus(s),(c=document.getElementById(bO(0)))==null||c.scrollIntoView({behavior:"smooth",block:"nearest"})},[t]),{isTooltipOpen:o,closeTooltip:a}=PS(e,i,n);return{isTooltipOpen:o,closeTooltip:a,toggleGroupRef:r}}function gyt(e){const[t,n]=m.useState(!1);return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:cx.minimizeButton,children:u.jsx(nl,{variant:"ghost",onClick:()=>n(r=>!r),children:t?u.jsx(A$,{}):u.jsx(F$,{})})}),!t&&u.jsx(vyt,{...e})]})}function vyt(e){const{transactions:t,maxTs:n}=e,r=Ee(ax),i=Ee(xO),o=Ee(ES),a=Ee(CO),s=Ee(jO);return Pg(()=>{r(dhe),B1t(),i(1),o(void 0),wO(0),a(-1),s(dn.DEFAULT)}),Hn("(max-width: 500px)")?u.jsx(yyt,{...e}):u.jsxs(V,{gap:"2",align:"center",wrap:"wrap",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Vhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Zhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(qhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Ghe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Yhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Khe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Jhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Hhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Uhe,{transactions:t})]})}function yyt({transactions:e,maxTs:t}){return u.jsxs(V,{direction:"column",gap:"3",children:[u.jsx(Vhe,{transactions:e,maxTs:t}),u.jsx(Zhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(qhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Ghe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Yhe,{transactions:e}),u.jsx(Khe,{transactions:e}),u.jsx("div",{style:{marginBottom:"8px"},children:u.jsx(Jhe,{transactions:e})}),u.jsx(Hhe,{transactions:e,maxTs:t}),u.jsx(Uhe,{transactions:e,size:"sm"})]})}function Vhe({transactions:e,maxTs:t}){const n=Ee(Ls),r=Ee(O1t),[i,o]=m.useState("All"),a=m.useCallback(d=>{if(!e)return;o(d);const f=d==="Success"?"No":d==="Errors"?"Yes":"All";n((p,v)=>r(p,e,v,t,f))},[r,t,e,n]),{isTooltipOpen:s,closeTooltip:l,toggleGroupRef:c}=zS(syt,a,()=>a("All"));return u.jsxs(V,{gap:"2",children:[u.jsx(LS,{ref:c,options:ayt,optionColors:{Success:$N,Errors:MN},value:i,onChange:d=>d&&a(d),isTooltipOpen:s,closeTooltip:l}),u.jsx(byt,{transactions:e,isDisabled:i==="Success"})]})}function byt({transactions:e,isDisabled:t}){const n=Ee(y6),r=X(_O),[i,o]=m.useState("0"),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_error_code.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_error_code)},[r,e.txn_error_code]);return m.useEffect(()=>{a[S1]||(o("0"),wO(0))},[a]),u.jsxs(H7,{onValueChange:s=>{o(s),wO(Number(s)),n(l=>l.redraw())},size:"1",value:i,disabled:t,children:[u.jsx(Z7,{placeholder:"Txn State",style:{height:"22px",width:"90px"}}),u.jsx(q7,{children:u.jsxs(G7,{children:[u.jsx(My,{value:"0",children:"None"}),Object.keys(a).map(s=>s==="0"?null:u.jsxs(My,{value:`${s}`,children:[sN[s]," (",a[s].length,")"]},s))]})})]})}const zO="none";function Hhe({transactions:e,maxTs:t}){const n=Ee(y6),r=X(_O),[i,o]=m.useState(zO),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_source_tpu.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_source_tpu)},[r,e.txn_source_tpu]);return m.useEffect(()=>{a[C1]||(o(""),_he(""))},[a]),u.jsxs(V,{gap:"2",align:"center",children:[u.jsx(q,{className:SO.label,children:"TPU"}),u.jsxs(H7,{onValueChange:s=>{o(s),_he(s===zO?"":s),n(l=>l.redraw())},size:"1",value:i,children:[u.jsx(Z7,{placeholder:"TPU",style:{height:"22px",width:"90px"}}),u.jsx(q7,{children:u.jsxs(G7,{children:[u.jsx(My,{value:zO,children:"None"}),Object.keys(a).map(s=>u.jsxs(My,{value:s,children:[s," (",a[s].length,")"]},s))]})})]})]})}function Zhe({transactions:e,maxTs:t,isMobileView:n}){const[r,i]=m.useState("All"),o=Ee(Ls),a=Ee(P1t),s=m.useCallback(f=>{e&&(i(f),o((p,v)=>a(p,e,v,t,f)))},[a,t,e,o]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=zS(OO,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Bundle",options:RO,value:r,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function qhe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Ls),i=Ee(z1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=zS(lyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Landed",options:RO,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Ghe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Ls),i=Ee(D1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=zS(uyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Vote",options:RO,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Yhe({transactions:e}){return u.jsxs(V,{gap:"2",children:[u.jsx(_yt,{transactions:e}),u.jsx(xyt,{transactions:e}),u.jsx(Syt,{transactions:e})]})}function _yt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(U1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.FEES)})};return u.jsx(dx,{label:"Fees",checked:t,onCheckedChange:a,color:kg})}function xyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(W1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.TIPS)})};return u.jsx(dx,{label:"Tips",checked:t,onCheckedChange:a,color:Gf})}function Khe({transactions:e}){return u.jsxs(V,{gap:"2",children:[u.jsx(q,{className:SO.label,children:"CU"}),u.jsx(wyt,{transactions:e}),u.jsx(kyt,{transactions:e})]})}function wyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(V1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_CONSUMED)})};return u.jsx(dx,{label:"Consumed",checked:t,onCheckedChange:a,color:pd})}function kyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(H1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_REQUESTED)})};return u.jsx(dx,{label:"Requested",checked:t,onCheckedChange:a,color:mk})}function Syt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(Z1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.INCOME_CUS)})};return u.jsx(dx,{label:"Income per CU",checked:t,onCheckedChange:a,color:kp})}const Lm=12,Xhe=100;function Cyt({transactions:e,sliderMin:t,sliderMax:n,beforeZeroMulti:r,bboxWidth:i}){const o=m.useMemo(()=>{if(t>=n||!e.txn_arrival_timestamps_nanos.length)return;const a=n-t;function s(f){return f>=0?f:f/r}const l=e.txn_arrival_timestamps_nanos.reduce((f,p)=>{const v=(s(Number(p-e.start_timestamp_nanos))-t)/a,_=Math.trunc(v*Xhe);return f[_]+=1,f},new Array(Xhe).fill(0)),c=rt.max(l)??1,d=l.reduce((f,p,v)=>{const _=i*((v+1)/l.length),y=Lm-Lm*(p/c);return f+`${_},${y} `},"");return`0,${Lm}, ${d}, ${i},${Lm}`},[i,r,n,t,e.start_timestamp_nanos,e.txn_arrival_timestamps_nanos]);return u.jsx("svg",{height:`${Lm}px`,width:"100%",viewBox:`0 0 ${i} ${Lm}`,xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"-5px",borderRadius:"4px"},children:u.jsx("polyline",{points:o,fill:"rgba(186, 167, 255, 0.5)",stroke:"rgb(186, 167, 255)",strokeWidth:".5"})})}const DO=.3,jyt=.025;function Jhe({transactions:e}){const t=m.useMemo(()=>fO(e),[e]),n=m.useMemo(()=>-Math.ceil(t*DO),[t]),[r,i]=m.useState([n,t]),o=Ee(Ls),a=Ee(A1t),[s,{width:l}]=Ss(),c=`${Math.ceil(DO/(1+DO)*100)}%`,d=m.useMemo(()=>{if(!e.txn_arrival_timestamps_nanos.length)return 0;const j=e.txn_arrival_timestamps_nanos.reduce((T,E)=>Ej<0?p*j:j,[p]),_=m.useCallback(j=>{if(!(j.length<2))return{min:v(j[0]),max:v(j[1])}},[v]),y=m.useCallback(j=>`${Math.round(v(j)/1e6).toLocaleString()} ms`,[v]),b=y(r[0]),w=y(r[1]),x=m.useCallback(j=>{o((T,E)=>a(T,e,E,t,_(j)))},[a,_,e,t,o]),S=Ua(j=>{requestAnimationFrame(()=>x(j))},100,{leading:!1,trailing:!0}),C=m.useCallback(j=>{i(j),x(j)},[x]);return m.useEffect(()=>{C([n,t])},[n,t,C]),PS(Dhe,C,()=>C([n,t])),u.jsxs(V,{align:"center",gap:"2",children:[u.jsx(q,{className:cx.arrivalLabel,children:"Arrival"}),u.jsxs("div",{className:cx.slider,ref:s,style:{"--slot-start-pct":c,marginTop:`-${Lm+6}px`,"--min-value-label":`"${b}"`,"--max-value-label":`"${w}"`},children:[u.jsx(Cyt,{transactions:e,sliderMin:n,sliderMax:t,beforeZeroMulti:p,bboxWidth:l}),u.jsx(nq,{style:{"--slider-track-size":"4px"},value:r,min:n,max:t,onValueChange:j=>{const T=j[0]!==r[0]?0:1;Math.abs(j[T]){const $=E.valToPos(j[T],Vt);E.setCursor({left:$,top:0})}),S(j)}})]})]})}function Tyt({transactionsRef:e,setTxnIdx:t,setTxnState:n,transactionsBundleStats:r}){function i(o,a,s){var d,f;let l=o.data[1][s];o.data[0][s]>a&&(l=o.data[1][s-1]),l==null&&o.data[1][s-1]!=null&&(l=o.data[1][s-1]);const c=((d=o.cursor.idxs)==null?void 0:d.length)&&o.cursor.idxs[1]===void 0;if(l==null||!e.current||c)return!1;{const p=ihe(a,e.current,l,(f=r[l])==null?void 0:f.bundleTxnIdx);return n(p),t(l),!0}}return ix({elId:"txn-bars-tooltip",closeTooltipElId:"txn-bars-tooltip-close",showOnCursor:i,showPointer:!0})}const DS=20;function Iyt({bankIdx:e,transactions:t,maxTs:n,isFirstChart:r,isLastChart:i,hide:o,isSelected:a,isFocused:s}){const l=r||i,c=X(Hfe)-DS,d=X(Zfe)-DS,f=Ee(CO),p=Ee(jO),v=m.useRef(null),_=m.useRef(t);_.current=t;const y=m.useMemo(()=>jS(t,e,n,Object.values(ca().get(ax))),[e,n,t]),b=m.useCallback(C=>{C.setData(jS(t,e,n,Object.values(ca().get(ax))),!1)},[e,n,t]),w=m.useMemo(()=>t.txn_from_bundle.map((C,j)=>{if(C)return SS(t,j)}),[t]),x=m.useMemo(()=>{if(y!=null&&y.length)return{width:0,height:0,class:tO.chart,drawOrder:["series","axes"],scales:{[Vt]:{time:!1}},axes:[{scale:Vt,stroke:sr,values:(C,j)=>l?j.map(T=>N1t(T,1e6)+"ms"):[],size:l?40:0,space:100,grid:{stroke:Rne},border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},side:r?0:2},{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:"rgba(0,0,0,0)"}],legend:{markers:{width:0},show:!1},padding:[0,DS,0,DS],series:[{scale:Vt},{label:`Bank ${e}`},{}],plugins:[nvt(_,w),Tyt({transactionsRef:_,setTxnIdx:f,setTxnState:p,transactionsBundleStats:w}),nO(),lO({factor:.75}),cO(),pO()],hooks:{ready:[C=>{requestAnimationFrame(()=>{F1t(C,e)})}]}}},[e,y==null?void 0:y.length,r,l,f,p,w]),S=X(xO);return!y||!x||o?null:u.jsx("div",{style:{flex:1,marginLeft:`${c}px`,marginRight:`${d}px`,display:o?"none":"block",height:a?`${Math.max(2,S)*90+40}px`:l?"170px":"130px"},ref:v,children:u.jsx($s,{children:({height:C,width:j})=>(x.width=j,x.height=C,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:bO(e),className:Te(s&&tO.focused),options:x,data:y,onCreate:b})}))})})}const Eyt="_container_14qh6_1",Nyt="_label_14qh6_10",Qhe={container:Eyt,label:Nyt};function $yt({setSelected:e,bankIdx:t,isSelected:n}){return u.jsxs("div",{className:Qhe.container,children:[u.jsxs(q,{className:Qhe.label,children:["Bank ",t]}),u.jsx(hs,{variant:"ghost",size:"1",onClick:()=>e(),children:n?u.jsx(lBe,{color:"grey"}):u.jsx(aBe,{color:"grey"})})]})}const Myt=kb+Sb,epe=Myt+Ute;function Lyt(){var d,f,p,v,_;const[e,t]=m.useState();PS(PO,y=>t(y),()=>t(void 0));const n=X(Cn),r=pl(n),i=m.useRef((d=r.response)==null?void 0:d.transactions);i.current=(f=r.response)==null?void 0:f.transactions;const o=X(Nb)[To.bank],a=Ee(che),s=m.useMemo(()=>{var y;return(y=r.response)!=null&&y.transactions?fO(r.response.transactions,!0):0},[(p=r.response)==null?void 0:p.transactions]);m.useMemo(()=>{var b;if(!((b=r.response)!=null&&b.transactions))return;const y=[];for(let w=0;w{var w;if((w=r.response)!=null&&w.transactions&&!(l!==void 0&&l!==b))return u.jsxs("div",{style:{position:"relative"},children:[(l===void 0||l===b)&&u.jsx($yt,{bankIdx:b,setSelected:()=>c(x=>x===void 0?b:void 0),isSelected:l===b}),u.jsx(Iyt,{bankIdx:b,transactions:r.response.transactions,maxTs:s,isFirstChart:b===0&&o>1,isLastChart:b===o-1||l!==void 0,isSelected:l===b,hide:l!==void 0&&l!==b,isFocused:e===b},`${b}`)]},b)})]}):null}const Ryt="_state_1bdpv_11",Oyt="_cu-bars_1bdpv_24",Pyt="_duration-container_1bdpv_30",zyt="_value-text_1bdpv_38",Dyt="_unit_1bdpv_42",gx={state:Ryt,cuBars:Oyt,durationContainer:Pyt,valueText:zyt,unit:Dyt},Ayt="_separator_1pgc5_1",Fyt={separator:Ayt};function Rm({my:e,mb:t}){return u.jsx(ps,{size:"4",my:e??"1",mb:t,className:Fyt.separator})}function Byt(){var s,l;const e=X(Cn),t=pl(e),n=X(CO),r=X(jO),i=(s=t.response)==null?void 0:s.transactions,o=m.useMemo(()=>{if(i&&!(n<0)&&i.txn_from_bundle[n])return SS(i,n)},[i,n]),a=i!=null&&i.txn_arrival_timestamps_nanos[n]?kk(i.txn_arrival_timestamps_nanos[n]):void 0;return u.jsx(ox,{elId:"txn-bars-tooltip",children:(i==null?void 0:i.txn_bank_idx[n])!=null&&u.jsxs(V,{direction:"column",children:[u.jsxs(V,{justify:"between",children:[u.jsx(q,{className:gx.state,style:{color:va[r]},children:r}),u.jsx(hs,{variant:"ghost",size:"1",id:"txn-bars-tooltip-close",children:u.jsx(nBe,{color:sr})})]}),u.jsx(Rm,{}),u.jsxs(V,{direction:"column",children:[u.jsx(Zyt,{txnIdx:n,transactions:i}),u.jsx(AO,{label:"Bundle",value:i.txn_from_bundle[n],append:o?`(${o.order} of ${o.totalCount})`:void 0}),u.jsx(AO,{label:"Vote",value:i.txn_is_simple_vote[n]}),u.jsx(AO,{label:"Landed",value:i.txn_landed[n]}),u.jsx(Rm,{}),u.jsx(Ur,{label:"Fees",value:`${(i.txn_priority_fee[n]+i.txn_transaction_fee[n]).toLocaleString()}`,color:kg}),u.jsx(Ur,{label:"Tips",value:`${(l=i.txn_tips[n])==null?void 0:l.toLocaleString()}`,color:Gf}),u.jsx(Rm,{}),u.jsx(Vyt,{transactions:i,txnIdx:n}),u.jsx(Rm,{}),u.jsx(Ur,{label:"Txn Index",value:`${n}`}),u.jsx(Ur,{label:"Microblock ID",value:`${i.txn_microblock_id[n]}`}),u.jsx(Ur,{label:"Bank ID",value:`${i.txn_bank_idx[n]}`}),u.jsx(Ur,{label:"Slot to Arrival",value:(Number(i.txn_arrival_timestamps_nanos[n]-i.start_timestamp_nanos)/1e6).toLocaleString(),unit:"ms"}),u.jsx(Ur,{label:"Arrival to Scheduled",value:(Number(i.txn_start_timestamps_nanos[n]-i.txn_arrival_timestamps_nanos[n])/1e6).toLocaleString(),unit:"ms"}),a&&u.jsx(Ur,{label:"Arrival Time",value:a.inNanos}),u.jsx(Uyt,{transactions:i,txnIdx:n}),u.jsx(Hyt,{transactions:i,txnIdx:n,bundleTxnIdx:o==null?void 0:o.bundleTxnIdx}),u.jsx(Rm,{}),u.jsx(Ur,{label:"Txn Sig",value:i.txn_signature[n],copyValue:i.txn_signature[n],truncateValue:!0})]})]})})}function Uyt({transactions:e,txnIdx:t}){const n=X(XN),r=e.txn_source_ipv4[t],i=m.useMemo(()=>{var a;const o=n.find(s=>s.gossip?Object.values(s.gossip.sockets).some(l=>HN(l)===r):!1);return o?(a=o.info)!=null&&a.name?o.info.name:o.identity_pubkey:void 0},[r,n]);return u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:"IPv4 (tpu)",value:`${r} (${e.txn_source_tpu[t]})`}),i&&u.jsx(Ur,{label:"Validator",value:i,truncateValue:!0})]})}function Wyt({transactions:e,txnIdx:t}){var o;const{rankings:n,totalRanks:r}=m.useMemo(()=>vhe(e),[e]),i=n.has(t)?` (${n.get(t)} of ${r})`:"";return u.jsx(Ur,{label:"CU Income",value:`${(o=ghe(e,t))==null?void 0:o.toLocaleString(void 0,{maximumFractionDigits:Uo})}${i}`,color:kp})}function Vyt({transactions:e,txnIdx:t}){var r,i;const n=e.txn_compute_units_requested[t]?Math.trunc(e.txn_compute_units_consumed[t]/e.txn_compute_units_requested[t]*100):100;return u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:"CU Consumed",value:`${(r=e.txn_compute_units_consumed[t])==null?void 0:r.toLocaleString()}`,color:pd}),u.jsx(Ur,{label:"CU Requested",value:`${(i=e.txn_compute_units_requested[t])==null?void 0:i.toLocaleString()}`,color:mk}),u.jsx(Wyt,{transactions:e,txnIdx:t}),u.jsx(V,{children:u.jsxs("svg",{height:"8",fill:"none",className:gx.cuBars,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${n}%`,opacity:.6,fill:pd}),u.jsx("rect",{height:"8",width:`${100-n}%`,x:`${n}%`,opacity:.2,fill:mk})]})})]})}function Hyt({transactions:e,txnIdx:t,bundleTxnIdx:n}){const r=m.useMemo(()=>hO(e,t,n),[n,e,t]),i=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(p=>Number(p))),s=Math.max(0,Number(r.preLoading)/a*100),l=Math.max(0,Number(r.validating)/a*100),c=Math.max(0,Number(r.loading)/a*100),d=Math.max(0,Number(r.execute)/a*100),f=Math.max(0,Number(r.postExecute)/a*100);return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f}},[r]),o=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(b=>Number(b))),s=Ha(r.preLoading),l=Ha(r.validating),c=Ha(r.loading),d=Ha(r.execute),f=Ha(r.postExecute),p=Ha(a),v=e.txn_mb_start_timestamps_nanos[t],_=e.txn_mb_end_timestamps_nanos[t],y=n!=null&&n.length&&e.txn_from_bundle[t]?Ha(_-v):null;return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f,total:p,bundleTotal:y}},[e,r,t,n]);if(!(!r||!i||!o))return u.jsxs(u.Fragment,{children:[u.jsx(Rm,{}),u.jsx(V,{children:u.jsxs("svg",{height:"36",className:gx.durationContainer,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${i.preLoading}%`,fill:va[dn.PRELOADING]}),Vi?u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading+i.loading}%`,y:"40%"})]}):u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading+i.validating}%`,y:"40%"})]}),u.jsx("rect",{height:"8",width:`${i.execute}%`,fill:va[dn.EXECUTE],x:`${i.preLoading+i.validating+i.loading}%`,y:"60%"}),u.jsx("rect",{height:"8",width:`${i.postExecute}%`,fill:va[dn.POST_EXECUTE],x:`${i.preLoading+i.validating+i.loading+i.execute}%`,y:"80%"})]})}),u.jsx(Ur,{label:dn.PRELOADING,color:va[dn.PRELOADING],value:o.preLoading.value,unit:o.preLoading.unit}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit}),u.jsx(Ur,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit})]}):u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit}),u.jsx(Ur,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit})]}),u.jsx(Ur,{label:dn.EXECUTE,color:va[dn.EXECUTE],value:o.execute.value,unit:o.execute.unit}),u.jsx(Ur,{label:dn.POST_EXECUTE,color:va[dn.POST_EXECUTE],value:o.postExecute.value,unit:o.postExecute.unit}),u.jsx(Ur,{label:"Total",value:o.total.value,unit:o.total.unit}),o.bundleTotal&&u.jsx(Ur,{label:"Total (Bundle)",value:o.bundleTotal.value,unit:o.bundleTotal.unit})]})}function Zyt({txnIdx:e,transactions:t}){const n=t.txn_error_code[e],r=n!==0;return u.jsx(Ur,{label:r?"Error":"Success",value:r?`${sN[n]}`:"Yes",color:r?MN:$N})}function Ur({label:e,value:t,color:n,unit:r,copyValue:i,truncateValue:o}){const a=typeof t=="number"?t.toLocaleString():t;return u.jsxs(V,{justify:"between",gap:"4",style:{"--color-override":n},children:[u.jsx(V,{minWidth:"105px",children:u.jsx(q,{wrap:"nowrap",children:e})}),u.jsx(V,{minWidth:"0",maxWidth:"210px",align:"center",children:u.jsxs(Dg,{value:i,color:Xte,size:"14px",children:[u.jsx(q,{className:gx.valueText,align:"right",truncate:o,children:a}),r&&u.jsx(q,{className:gx.unit,children:r})]})})]})}function AO({value:e,append:t,...n}){let r=e?"Yes":"No";return t&&(r+=` ${t}`),u.jsx(Ur,{...n,value:r})}function qyt(){var n;const e=X(Cn),t=pl(e);return!e||!((n=t.response)!=null&&n.transactions)?u.jsx(Gyt,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{id:"txn-bars-card",children:u.jsx(Lyt,{},e)}),u.jsx(Byt,{})]})}function Gyt(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"400px",justifyContent:"center",alignItems:"center"},children:u.jsx(q,{children:"Loading Banks..."})})}const Yyt="_search-grid_gudx6_1",Kyt="_search-label_gudx6_5",Xyt="_search-field_gudx6_11",Jyt="_error-text_gudx6_15",Qyt="_quick-search-card_gudx6_19",ebt="_quick-search-header_gudx6_26",tbt="_quick-search-slot_gudx6_37",nbt="_clickable_gudx6_40",rbt="_quick-search-metric_gudx6_51",hc={searchGrid:Yyt,searchLabel:Kyt,searchField:Xyt,errorText:Jyt,quickSearchCard:Qyt,quickSearchHeader:ebt,quickSearchSlot:tbt,clickable:nbt,quickSearchMetric:rbt},ibt=e=>m.createElement("svg",{width:18,height:18,viewBox:"0 0 18 18",fill:"#D86363",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.01469 6.00051C5.58562 6.03619 3 7.94365 3 12C3 12.5523 2.55228 13 2 13C1.44772 13 1 12.5523 1 12C1 6.90007 4.41438 4.05318 7.98531 4.00073C9.74494 3.97489 11.5153 4.63461 12.8432 6.00502C13.8812 7.07635 14.6101 8.5405 14.8821 10.3602L15.8896 8.9389C16.209 8.48833 16.8331 8.38198 17.2837 8.70137C17.7343 9.02075 17.8406 9.64492 17.5213 10.0955L15.0678 13.5568C14.7484 14.0073 14.1242 14.1137 13.6737 13.7943L10.2124 11.3408C9.76181 11.0214 9.65546 10.3973 9.97484 9.9467C10.2942 9.49613 10.9184 9.38978 11.369 9.70916L12.9263 10.8131C12.7275 9.27771 12.1449 8.15845 11.4068 7.39676C10.4847 6.44507 9.25506 5.9823 8.01469 6.00051ZM6.5 13C7.32843 13 8 12.3284 8 11.5C8 10.6716 7.32843 10 6.5 10C5.67157 10 5 10.6716 5 11.5C5 12.3284 5.67157 13 6.5 13Z"}));function obt(e=!1){const t=S6(),n=m.useCallback(()=>t({topic:"slot",key:"query_rankings",id:32,params:{mine:e}}),[e,t]);m.useEffect(()=>{n();const r=setInterval(n,5e3);return()=>clearInterval(r)},[n])}function tpe(e,t){const n=Oie();if(r_(n,1e3),!e)return;const r=Kf>=e,i=(r?Kf.diff(e):e.diff(Kf)).rescale(),o=Sp(i,t);return r?`${o} ago`:o}function npe(e,t){var a;const n=Is(e),r=m.useMemo(()=>{var s;return((s=n.publish)==null?void 0:s.completed_time_nanos)??void 0},[(a=n.publish)==null?void 0:a.completed_time_nanos]),i=m.useMemo(()=>{if(r!==void 0)return tre(r)},[r]),o=tpe(i,t);return{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}}function rpe(){const e=Q0({from:$pe.fullPath});return m.useCallback(t=>{e({search:{slot:t},replace:!0})},[e])}const ipe=3,ope=226,ape=40,spe=20,abt=2*spe+ipe*ope+(ipe-1)*ape;function sbt(){const e=X(gd.slot),t=rpe(),[n,r]=m.useState(e===void 0?"":String(e)),i=X(di),o=X(gd.isValid),a=m.useCallback(()=>{t(n===""?void 0:Number(n))},[n,t]);return u.jsxs(Zr,{height:"100%",maxWidth:`${abt}px`,justify:"center",m:"auto",gap:`${ape}px`,p:`${spe}px`,columns:`repeat(auto-fit, ${ope}px)`,className:hc.searchGrid,children:[u.jsx(V,{direction:"column",gap:"8px",gridColumn:"1 / -1",asChild:!0,children:u.jsxs("form",{onSubmit:s=>{s.preventDefault(),a()},children:[u.jsx(C6e,{htmlFor:"searchSlotId",className:hc.searchLabel,children:"Search Slot ID"}),u.jsx(J7,{id:"searchSlotId",className:hc.searchField,placeholder:`e.g. ${(i==null?void 0:i.start_slot)??0}`,type:"number",step:"1",value:n,onChange:s=>r(s.target.value),size:"3",color:o?"teal":"red",autoFocus:!0,children:u.jsx(M4,{side:"right",children:u.jsx(nl,{variant:"ghost",color:"gray",onClick:a,children:u.jsx(qie,{height:"16",width:"16"})})})}),!o&&u.jsx(fbt,{})]})}),u.jsx(lbt,{})]})}function FO(e){return`${Tb(e,4)} SOL`}function lbt(){obt(!0);const e=X(OG),{earliestQuickSlots:t,mostRecentQuickSlots:n}=X(Tre);return u.jsxs(u.Fragment,{children:[u.jsx($1,{icon:u.jsx(QFe,{}),label:"Earliest Slots",color:qne,slots:t}),u.jsx($1,{icon:u.jsx(Gie,{}),label:"Most Recent Slots",color:Gne,slots:n}),u.jsx($1,{icon:u.jsx(ibt,{}),label:"Last Skipped Slots",color:Yne,slots:e==null?void 0:e.slots_largest_skipped}),u.jsx($1,{icon:u.jsx(iBe,{}),label:"Highest Fees",color:Kne,slots:e==null?void 0:e.slots_largest_fees,metricOptions:{metrics:e==null?void 0:e.vals_largest_fees,metricsFmt:FO}}),u.jsx($1,{icon:u.jsx(pBe,{}),label:"Highest Tips",color:Xne,slots:e==null?void 0:e.slots_largest_tips,metricOptions:{metrics:e==null?void 0:e.vals_largest_tips,metricsFmt:FO}}),u.jsx($1,{icon:u.jsx(yBe,{}),label:"Highest Rewards",color:Jne,slots:e==null?void 0:e.slots_largest_rewards,metricOptions:{metrics:e==null?void 0:e.vals_largest_rewards,metricsFmt:FO}})]})}function $1({icon:e,label:t,color:n,slots:r,metricOptions:i}){return u.jsxs(V,{direction:"column",className:hc.quickSearchCard,p:"20px",gap:"20px",children:[u.jsxs(V,{direction:"column",gap:"10px",className:hc.quickSearchHeader,style:{"--quick-search-color":n},children:[e,u.jsx(q,{align:"left",children:t})]}),u.jsx(ubt,{slots:r,metricOptions:i})]})}function ubt({slots:e,metricOptions:t}){const n=rpe();return u.jsx(V,{direction:"column",gap:"5px",children:Array.from({length:qN}).map((r,i)=>{var a;const o=e==null?void 0:e[i];return u.jsxs(V,{justify:"between",children:[o===void 0?u.jsx(q,{className:hc.quickSearchSlot,children:"--"}):u.jsx(q,{className:Te(hc.quickSearchSlot,hc.clickable),onClick:()=>n(o),children:o}),u.jsx(q,{className:hc.quickSearchMetric,children:u.jsx(cbt,{slot:o,metric:(a=t==null?void 0:t.metrics)==null?void 0:a[i],metricsFmt:t==null?void 0:t.metricsFmt})})]},i)})})}function cbt({slot:e,metric:t,metricsFmt:n}){return e===void 0?"--":n?t===void 0?"--":n(t)??"--":u.jsx(dbt,{slot:e})}function dbt({slot:e}){const{timeAgoText:t}=npe(e,{showOnlyTwoSignificantUnits:!0});return t}function fbt(){const e=X(gd.slot),t=X(gd.state),n=X(di),r=m.useMemo(()=>{switch(t){case Xf.NotReady:return`Slot ${e} validity cannot be determined because epoch and leader slot data is not available yet.`;case Xf.OutsideEpoch:return`Slot ${e} is outside this epoch. Please try again with a different ID between ${n==null?void 0:n.start_slot} - ${n==null?void 0:n.end_slot}.`;case Xf.NotYou:return`Slot ${e} belongs to another validator. Please try again with a slot number processed by you.`;case Xf.BeforeFirstProcessed:return`Slot ${e} is in this epoch but its details are unavailable because it was processed before the restart.`;case Xf.Future:return`Slot ${e} is valid but in the future. To view details, check again after it has been processed.`;case Xf.Valid:return""}},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,e,t]);return u.jsx(q,{size:"3",className:hc.errorText,children:r})}const hbt="_slot-item-group_p1cnp_1",pbt="_disabled_p1cnp_8",mbt="_is-selected_p1cnp_13",gbt="_slot-item_p1cnp_1",vbt="_selected-slot_p1cnp_35",ybt="_skipped-slot_p1cnp_41",bbt="_fade_p1cnp_50",_bt="_fade-left_p1cnp_57",xbt="_fade-right_p1cnp_62",pc={slotItemGroup:hbt,disabled:pbt,isSelected:mbt,slotItem:gbt,selectedSlot:vbt,skippedSlot:ybt,fade:bbt,fadeLeft:_bt,fadeRight:xbt};function lpe({onMeasured:e,children:t}){const n=X(jg),[r,i]=Ss();return m.useEffect(()=>e(i),[i,e]),u.jsx(lU,{container:n,style:{position:"fixed",left:"-100000px",top:"-100000px",visibility:"hidden"},ref:r,"aria-hidden":"true",children:t})}/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */var BO=function(e,t){return BO=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},BO(e,t)};function wbt(e,t){BO(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var kbt=100,Sbt=100,upe=50,UO=50,WO=50;function cpe(e){var t=e.className,n=e.counterClockwise,r=e.dashRatio,i=e.pathRadius,o=e.strokeWidth,a=e.style;return m.createElement("path",{className:t,style:Object.assign({},a,jbt({pathRadius:i,dashRatio:r,counterClockwise:n})),d:Cbt({pathRadius:i,counterClockwise:n}),strokeWidth:o,fillOpacity:0})}function Cbt(e){var t=e.pathRadius,n=e.counterClockwise,r=t,i=n?1:0;return` - M `+UO+","+WO+` - m 0,-`+r+` - a `+r+","+r+" "+i+" 1 1 0,"+2*r+` - a `+r+","+r+" "+i+" 1 1 0,-"+2*r+` - `}function jbt(e){var t=e.counterClockwise,n=e.dashRatio,r=e.pathRadius,i=Math.PI*2*r,o=(1-n)*i;return{strokeDasharray:i+"px "+i+"px",strokeDashoffset:(t?-o:o)+"px"}}var Tbt=function(e){wbt(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getBackgroundPadding=function(){return this.props.background?this.props.backgroundPadding:0},t.prototype.getPathRadius=function(){return upe-this.props.strokeWidth/2-this.getBackgroundPadding()},t.prototype.getPathRatio=function(){var n=this.props,r=n.value,i=n.minValue,o=n.maxValue,a=Math.min(Math.max(r,i),o);return(a-i)/(o-i)},t.prototype.render=function(){var n=this.props,r=n.circleRatio,i=n.className,o=n.classes,a=n.counterClockwise,s=n.styles,l=n.strokeWidth,c=n.text,d=this.getPathRadius(),f=this.getPathRatio();return m.createElement("svg",{className:o.root+" "+i,style:s.root,viewBox:"0 0 "+kbt+" "+Sbt,"data-test-id":"CircularProgressbar"},this.props.background?m.createElement("circle",{className:o.background,style:s.background,cx:UO,cy:WO,r:upe}):null,m.createElement(cpe,{className:o.trail,counterClockwise:a,dashRatio:r,pathRadius:d,strokeWidth:l,style:s.trail}),m.createElement(cpe,{className:o.path,counterClockwise:a,dashRatio:f*r,pathRadius:d,strokeWidth:l,style:s.path}),c?m.createElement("text",{className:o.text,style:s.text,x:UO,y:WO},c):null)},t.defaultProps={background:!1,backgroundPadding:0,circleRatio:1,classes:{root:"CircularProgressbar",trail:"CircularProgressbar-trail",path:"CircularProgressbar-path",text:"CircularProgressbar-text",background:"CircularProgressbar-background"},counterClockwise:!1,className:"",maxValue:100,minValue:0,strokeWidth:8,styles:{root:{},trail:{},path:{},text:{},background:{}},text:""},t}(m.Component);function Ibt(e){var t=e.rotation,n=e.strokeLinecap,r=e.textColor,i=e.textSize,o=e.pathColor,a=e.pathTransition,s=e.pathTransitionDuration,l=e.trailColor,c=e.backgroundColor,d=t==null?void 0:"rotate("+t+"turn)",f=t==null?void 0:"center center";return{root:{},path:AS({stroke:o,strokeLinecap:n,transform:d,transformOrigin:f,transition:a,transitionDuration:s==null?void 0:s+"s"}),trail:AS({stroke:l,strokeLinecap:n,transform:d,transformOrigin:f}),text:AS({fill:r,fontSize:i}),background:AS({fill:c})}}function AS(e){return Object.keys(e).forEach(function(t){e[t]==null&&delete e[t]}),e}const Ebt="data:image/svg+xml,%3csvg%20width='12'%20height='13'%20viewBox='0%200%2012%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6%200.675781C9.22656%200.675781%2011.8242%203.27344%2011.8242%206.5C11.8242%209.72656%209.22656%2012.3242%206%2012.3242C2.77344%2012.3242%200.175781%209.72656%200.175781%206.5C0.175781%203.27344%202.77344%200.675781%206%200.675781ZM6%2011.1758C8.57031%2011.1758%2010.6758%209.07031%2010.6758%206.5C10.6758%203.92969%208.57031%201.82422%206%201.82422C3.42969%201.82422%201.32422%203.92969%201.32422%206.5C1.32422%209.07031%203.42969%2011.1758%206%2011.1758ZM8.67969%203.92969L9.5%204.75L4.82422%209.42578L2.5%207.07422L3.32031%206.25391L4.82422%207.75781L8.67969%203.92969Z'%20fill='%231D863B'/%3e%3c/svg%3e",Nbt="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='%231D863B'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.82422%208.92578L10.0742%203.67578L9.25391%202.82812L4.82422%207.25781L2.74609%205.17969L1.92578%206L4.82422%208.92578ZM1.87109%201.89844C3.01953%200.75%204.39583%200.175781%206%200.175781C7.60417%200.175781%208.97135%200.75%2010.1016%201.89844C11.25%203.02865%2011.8242%204.39583%2011.8242%206C11.8242%207.60417%2011.25%208.98047%2010.1016%2010.1289C8.97135%2011.2591%207.60417%2011.8242%206%2011.8242C4.39583%2011.8242%203.01953%2011.2591%201.87109%2010.1289C0.740885%208.98047%200.175781%207.60417%200.175781%206C0.175781%204.39583%200.740885%203.02865%201.87109%201.89844Z'/%3e%3c/svg%3e",$bt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='8.5'%20cy='2.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='4.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='12.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3cline%20x1='8.35355'%20y1='1.64645'%20x2='13.3536'%20y2='6.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='3.64645'%20y1='6.64645'%20x2='8.64645'%20y2='1.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='12.4642'%20y1='6.8143'%20x2='14.4642'%20y2='11.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5358'%20y1='11.8143'%20x2='12.5356'%20y2='6.81427'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.53576'%20y1='11.8143'%20x2='4.53576'%20y2='6.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='4.46424'%20y1='6.81432'%20x2='6.46412'%20y2='11.8144'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.5'%20y1='11'%20x2='2.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='6.5'%20y1='11'%20x2='6.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5'%20y1='11'%20x2='10.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='14.5'%20y1='11'%20x2='14.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3c/svg%3e",Mbt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='%23D86363'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.01469%206.00051C5.58562%206.03619%203%207.94365%203%2012C3%2012.5523%202.55228%2013%202%2013C1.44772%2013%201%2012.5523%201%2012C1%206.90007%204.41438%204.05318%207.98531%204.00073C9.74494%203.97489%2011.5153%204.63461%2012.8432%206.00502C13.8812%207.07635%2014.6101%208.5405%2014.8821%2010.3602L15.8896%208.9389C16.209%208.48833%2016.8331%208.38198%2017.2837%208.70137C17.7343%209.02075%2017.8406%209.64492%2017.5213%2010.0955L15.0678%2013.5568C14.7484%2014.0073%2014.1242%2014.1137%2013.6737%2013.7943L10.2124%2011.3408C9.76181%2011.0214%209.65546%2010.3973%209.97484%209.9467C10.2942%209.49613%2010.9184%209.38978%2011.369%209.70916L12.9263%2010.8131C12.7275%209.27771%2012.1449%208.15845%2011.4068%207.39676C10.4847%206.44507%209.25506%205.9823%208.01469%206.00051ZM6.5%2013C7.32843%2013%208%2012.3284%208%2011.5C8%2010.6716%207.32843%2010%206.5%2010C5.67157%2010%205%2010.6716%205%2011.5C5%2012.3284%205.67157%2013%206.5%2013Z'/%3e%3c/svg%3e",Lbt="_small-icon_1vpxu_1",Rbt="_large-icon_1vpxu_6",FS={smallIcon:Lbt,largeIcon:Rbt};function dpe({slot:e,isCurrent:t,size:n}){const r=X(nDe(e)),i=Te(FS[`${n}Icon`]);return t?u.jsx(Obt,{size:n}):r==="incomplete"?u.jsx(fpe,{size:n}):r==="optimistically_confirmed"?u.jsx(ui,{content:"Slot was optimistically confirmed",children:u.jsx("img",{src:Nbt,alt:"optimistically_confirmed",className:i})}):r==="rooted"||r==="finalized"?u.jsx(ui,{content:"Slot was rooted",children:u.jsx("img",{src:$bt,alt:"rooted",className:i})}):u.jsx(ui,{content:"Slot was processed",children:u.jsx("img",{src:Ebt,alt:"processed",className:i})})}function fpe({size:e}){return u.jsx("div",{className:Te(FS[`${e}Icon`])})}function Obt({size:e}){const t=m.useRef(performance.now()),n=X(Eg),[r,i]=m.useState(0);return Aie(()=>{if(r>=100)return;const o=performance.now()-t.current,a=Math.min(Math.floor(o/n*100),100);i(a)}),u.jsx(V,{className:Te(FS[`${e}Icon`]),children:u.jsx(Tbt,{value:r,styles:Ibt({trailColor:Hne,pathColor:Zne,pathTransition:"none"}),strokeWidth:25,maxValue:100})})}function hpe({size:e}){return u.jsx(ui,{content:"Slot was skipped",children:u.jsx("img",{src:Mbt,alt:"skipped",className:Te(FS[`${e}Icon`])})})}const Pbt=kb+Sb,ppe=4;function mpe(e,t){return e*t+Math.max(0,e-1)*ppe}function zbt(){const e=X(Cn),t=X(ao),[n,r]=m.useState(0),[i,o]=m.useState(0),[a,{width:s}]=Ss(),l=m.useRef(null),[c,d]=m.useState(0),f=m.useCallback(w=>{w&&requestAnimationFrame(()=>{var S;const x=s/2-(w.offsetLeft+w.offsetWidth/2);(S=l.current)==null||S.style.setProperty("--offset",`${x}px`),d(x)})},[s]),p=m.useMemo(()=>e===void 0||!t?-1:t.indexOf(xi(e)),[t,e]),v=m.useMemo(()=>{if(p<0||!t)return;const w=Math.max(1,Math.ceil(s/2/i)),x=rt.clamp(w,1,10),S=w+x,C=t.length,j=Math.max(0,p-S),T=Math.min(C-1,p+S),E=C-1-T;return{leftSpacerWidth:mpe(j,i),rightSpacerWidth:mpe(E,i),startItemGroupIdx:j,endItemGroupIdx:T}},[s,i,t,p]),{showFadeLeft:_,showFadeRight:y}=m.useMemo(()=>{var S;const w=c<0,x=(((S=l.current)==null?void 0:S.offsetWidth)??0)-s+c>0;return{showFadeLeft:w,showFadeRight:x}},[s,c]);if(!t||!v||e===void 0)return;const b=[];if(i&&n)for(let w=v.startItemGroupIdx;w<=v.endItemGroupIdx;w++){const x=[],S=t[w];for(let j=0;j<$n;j++){const T=S+j,E=T===e;x.push(u.jsx(VO,{slot:T,isSelected:E,onSelectedSlotRef:E?f:void 0},T))}const C=S<=e&&et(i.width),children:u.jsx(VO,{slot:e[e.length-1],isSelected:!0})}),u.jsx(lpe,{onMeasured:i=>n(i.width),children:u.jsx(gpe,{slot:r,children:new Array($n).fill(0).map((i,o)=>u.jsx(VO,{slot:r-o,isSelected:!0},o))})})]})}function gpe({slot:e,isSelected:t,children:n}){const r=e<(X(Jf)??-1),i=e>(X(KN)??1/0),o=r||i;return u.jsx(V,{className:Te(pc.slotItemGroup,{[pc.disabled]:o,[pc.isSelected]:t}),children:n})}function VO({slot:e,isSelected:t,onSelectedSlotRef:n}){var s;Is(e);const r=(s=X(u3))==null?void 0:s.includes(e),i=e<(X(Jf)??-1),o=e>=(X(KN)??1/0)+$n,a=i||o;return u.jsxs(lp,{to:"/slotDetails",search:{slot:e},className:Te(pc.slotItem,{[pc.selectedSlot]:t,[pc.skippedSlot]:r}),ref:n,disabled:a,children:[u.jsx(q,{children:e}),r?u.jsx(hpe,{size:"large"}):u.jsx(dpe,{isCurrent:!1,slot:e,size:"large"})]},e)}const Abt="_header_1s5d9_1",Fbt="_subheader_1s5d9_7",Bbt="_label_1s5d9_12",Ubt="_value_1s5d9_18",Wbt="_table-header_1s5d9_26",Vbt="_table-row-label_1s5d9_32",Hbt="_total_1s5d9_37",Zbt="_table-cell-value_1s5d9_42",qbt="_grid_1s5d9_52",Gbt="_name_1s5d9_67",Ybt="_lg_1s5d9_70",Kbt="_copy-button_1s5d9_79",Xbt="_time-popover_1s5d9_85",at={header:Abt,subheader:Fbt,label:Bbt,value:Ubt,tableHeader:Wbt,tableRowLabel:Vbt,total:Hbt,tableCellValue:Zbt,grid:qbt,name:Gbt,lg:Ybt,copyButton:Kbt,timePopover:Xbt},vpe="20px",BS="15px",Jbt="15px",_l="5px",$d="1",ype=2.5;function HO({title:e,children:t,...n}){return u.jsxs(V,{direction:"column",flexBasis:"0",flexGrow:"1",gap:BS,...n,children:[u.jsxs(Mt,{children:[u.jsx(q,{className:at.header,children:e}),u.jsx(Rm,{my:"0"})]}),t]})}function Pi({title:e,children:t,...n}){return u.jsxs(V,{direction:"column",...n,children:[u.jsx(q,{className:at.subheader,mb:"5px",children:e}),t]})}const Qbt=Yu;function e_t(){const e=X(Cn),t=pl(e),n=m.useMemo(()=>{var o;if((o=t==null?void 0:t.response)!=null&&o.transactions)return t.response.transactions.txn_compute_units_consumed.reduce((a,s,l)=>{var f,p,v,_;const c=!!((p=(f=t.response)==null?void 0:f.transactions)!=null&&p.txn_is_simple_vote[l]),d=(_=(v=t.response)==null?void 0:v.transactions)==null?void 0:_.txn_from_bundle[l];return c?a.vote+=s:d?a.bundle+=s:a.other+=s,a},{vote:0,bundle:0,other:0})},[t]);if(!n)return;const r=n.vote+n.bundle+n.other,i=Math.max(n.vote,n.bundle,n.other);return u.jsx(Pi,{title:"Consumed Compute Units",children:u.jsxs(Zr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:_l,gapY:$d,children:[u.jsx(ZO,{label:"Vote",cus:n.vote,totalCus:r,maxCus:i,pctColor:hd}),u.jsx(ZO,{label:"Bundle",cus:n.bundle,totalCus:r,maxCus:i,pctColor:Qbt}),u.jsx(ZO,{label:"Other",cus:n.other,totalCus:r,maxCus:i,pctColor:Zf})]})})}function ZO({label:e,cus:t,totalCus:n,maxCus:r,pctColor:i}){const o=Math.round(n?t/n*100:0),a=Math.round(r?t/r*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:i},align:"right",children:t.toLocaleString()}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,style:{color:pd},align:"right",children:n.toLocaleString()}),u.jsxs(q,{className:at.value,align:"right",children:[o,"%"]}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${a}%`,opacity:.6,fill:i})})]})}function US({value:e,total:t,valueColor:n,showBackground:r}){const i=Math.round(t?e/t*100:0);return u.jsx(u.Fragment,{children:u.jsxs("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:n}),r&&u.jsx("rect",{height:"8",width:`${100-i}%`,x:`${i}%`,opacity:.2,fill:n})]})})}function vx({label:e,value:t,total:n,valueColor:r,labelWidth:i,numeratorColor:o=!0,pctColor:a=!1}){const s=Math.round(n?t/n*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(qk,{content:i?e:void 0,children:u.jsx(q,{className:at.label,truncate:!0,style:{width:i},children:e})}),u.jsx(q,{className:at.value,style:{color:o?r:void 0},align:"right",children:t.toLocaleString()}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,align:"right",children:n.toLocaleString()}),u.jsxs(q,{className:at.value,style:{color:a?r:void 0},align:"right",children:[s,"%"]}),u.jsx(US,{value:t,total:n,valueColor:r,showBackground:!0})]})}function t_t(){const e=X(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Pi,{title:"Protocol Limit Utilization",children:u.jsxs(Zr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:_l,gapY:$d,children:[u.jsx(vx,{label:"Block cost",value:n.used_total_block_cost??0,total:n.max_total_block_cost??0,valueColor:pd}),u.jsx(vx,{label:"Vote cost",value:n.used_total_vote_cost??0,total:n.max_total_vote_cost??0,valueColor:hd}),u.jsx(vx,{label:"Bytes",value:n.used_total_bytes??0,total:n.max_total_bytes??0,valueColor:"#A35829"}),u.jsx(vx,{label:"Microblocks",value:n.used_total_microblocks??0,total:n.max_total_microblocks??0,valueColor:"#9EB1FF"})]})})}function n_t(){const e=X(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Pi,{title:"Top 5 Busy Accounts",children:u.jsx(Zr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:_l,gapY:$d,children:n.used_account_write_costs.map(({account:r,cost:i})=>u.jsx(vx,{label:r,labelWidth:"80px",value:i,total:n.max_account_write_cost,valueColor:"#30A46C",numeratorColor:!1,pctColor:!0},r))})})}function Za({children:e,...t}){return u.jsx(q,{...t,className:Te("mono-text",t.className),children:e})}const qO={preLoading:0,validating:0,loading:0,execute:0,postExecute:0,total:0};function GO(e){return Object.values(e).reduce((t,n)=>t+n,0)}function r_t(){var s;const e=X(Cn),t=(s=pl(e).response)==null?void 0:s.transactions,n=m.useMemo(()=>{if(!t)return;const l={...qO},c={...qO},d={...qO};for(let f=0;f{y.preLoading+=Number(b.preLoading),y.validating+=Number(b.validating),y.loading+=Number(b.loading),y.execute+=Number(b.execute),y.postExecute+=Number(b.postExecute)};t.txn_landed[f]?t.txn_error_code[f]===0?_(c,v):_(d,v):_(l,v)}return l.total=GO(l),c.total=GO(c),d.total=GO(d),{unlanded:l,landedSuccess:c,landedFailed:d,max:Math.max(l.total,c.total,d.total)}},[t]);if(!n)return;const{unlanded:r,landedSuccess:i,landedFailed:o,max:a}=n;return u.jsx(Pi,{title:"Cumulative Execution Time",children:u.jsxs(Zr,{columns:"repeat(7, auto)",gapX:_l,gapY:$d,children:[u.jsx("div",{}),u.jsx(q,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Success+Landed"}),u.jsx(q,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Failed+Landed"}),u.jsx(q,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Unlanded"}),u.jsx(gh,{label:"Preloading",landedSuccess:i.preLoading,landedFailed:o.preLoading,unlanded:r.preLoading,max:a}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(gh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a}),u.jsx(gh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a})]}):u.jsxs(u.Fragment,{children:[u.jsx(gh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a}),u.jsx(gh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a})]}),u.jsx(gh,{label:"Execute",landedSuccess:i.execute,landedFailed:o.execute,unlanded:r.execute,max:a}),u.jsx(gh,{label:"Post-Execute",landedSuccess:i.postExecute,landedFailed:o.postExecute,unlanded:r.postExecute,max:a}),u.jsx(gh,{label:"Total",landedSuccess:i.total,landedFailed:o.total,unlanded:r.total,max:a,isTotal:!0})]})})}function gh({label:e,landedSuccess:t,landedFailed:n,unlanded:r,max:i,isTotal:o}){const a=o?"#28684A":"#174933",s=o?"#8C333A":"#611623",l=o?"#12677E":"#004558",c=Ha(t),d=Ha(n),f=Ha(r);return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:Te(at.tableRowLabel,o&&at.total),children:e}),u.jsxs(q,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[c.value,u.jsx(Za,{children:c.unit})]}),u.jsx(US,{value:t,total:i,valueColor:a}),u.jsxs(q,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[d.value,u.jsx(Za,{children:d.unit})]}),u.jsx(US,{value:n,total:i,valueColor:s}),u.jsxs(q,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[f.value,u.jsx(Za,{children:f.unit})]}),u.jsx(US,{value:r,total:i,valueColor:l})]})}function i_t(){var i;const e=X(Cn),t=(i=pl(e).response)==null?void 0:i.transactions,n=m.useMemo(()=>{if(!t)return;const{vote:o,nonVote:a,bundle:s}={vote:{count:0,total:0,min:1/0,max:-1/0},nonVote:{count:0,total:0,min:1/0,max:-1/0},bundle:{count:0,total:0,min:1/0,max:-1/0}};for(let l=0;lNumber(p)));t.txn_is_simple_vote[l]?(o.total+=f,o.count++,o.min=Math.min(o.min,f),o.max=Math.max(o.max,f)):(a.total+=f,a.count++,a.min=Math.min(a.min,f),a.max=Math.max(a.max,f)),t.txn_from_bundle[l]&&(s.total+=f,s.count++,s.min=Math.min(s.min,f),s.max=Math.max(s.max,f))}return{vote:o.total/o.count,nonVote:a.total/a.count,bundle:s.total/s.count,voteMin:o.min,voteMax:o.max,nonVoteMin:a.min,nonVoteMax:a.max,bundleMin:s.min,bundleMax:s.max}},[t]);if(!n)return;const r=Math.max(n.voteMax,n.nonVoteMax,n.bundleMax);return u.jsx(Pi,{title:"Execution Time (min / avg / max)",children:u.jsxs(Zr,{columns:"repeat(7, auto)",gapX:_l,gapY:$d,children:[u.jsx(KO,{label:"Vote",value:n.vote,color:hd,max:r,minValue:n.voteMin,maxValue:n.voteMax}),u.jsx(KO,{label:"Non-vote",value:n.nonVote,color:Zf,max:r,minValue:n.nonVoteMin,maxValue:n.nonVoteMax}),u.jsx(KO,{label:"Bundle",value:n.bundle,color:"var(--purple-9)",max:r,minValue:n.bundleMin,maxValue:n.bundleMax})]})})}const bpe=4,WS=`${bpe}px`;function YO(e){return`clamp(0px, calc(${e}% - ${bpe/2}px), calc(100% - ${WS}))`}function KO({label:e,value:t,max:n,minValue:r,maxValue:i}){const o=isFinite(t)&&isFinite(r)&&isFinite(i),a=o?t/n*100:0,s=o?r/n*100:0,l=o?i/n*100:0,c=o?Ha(t):null,d=o?Ha(r):null,f=o?Ha(i):null;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:"#6E56CF"},align:"right",children:d?u.jsxs(u.Fragment,{children:[d.value,u.jsx(Za,{children:d.unit})]}):"-"}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,style:{color:"#BAA7FF"},align:"right",children:c?u.jsxs(u.Fragment,{children:[c.value,u.jsx(Za,{children:c.unit})]}):"-"}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,style:{color:"#6E56CF"},align:"right",children:f?u.jsxs(u.Fragment,{children:[f.value,u.jsx(Za,{children:f.unit})]}):"-"}),u.jsxs("svg",{height:"13",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center",width:"100%"},children:[u.jsx("rect",{height:"10%",y:"45%",width:"100%",opacity:.6,fill:"#313131"}),u.jsx("rect",{height:"80%",y:"10%",x:YO(s),width:WS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:YO(l),width:WS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:YO(a),width:WS,fill:"#BAA7FF"})]})]})}function o_t(){return u.jsxs(HO,{title:"Compute",flexGrow:"2",children:[u.jsx(t_t,{}),u.jsx(e_t,{}),u.jsx(n_t,{}),u.jsx(r_t,{}),u.jsx(i_t,{})]})}function Rs(e,t=Uo,n){if(!e)return"0";const r=Number(e)/dd;return r<1?r.toFixed(t):P$(r,n??{useSuffix:!0,significantDigits:4,trailingZeroes:!1,decimalsOnZero:!1})}const XO=1e8;function a_t(){const e=X(Cn),t=pl(e),n=m.useMemo(()=>{var f;const a=(f=t==null?void 0:t.response)==null?void 0:f.transactions;if(!a)return;const{tips:s,fees:l}=a.txn_transaction_fee.reduce((p,v,_)=>(p.fees+=Number(WN(a,_)),p.tips+=Number(VN(a,_)),p),{tips:0,fees:0}),c=s+l,d=s*.06;return{tips:s,fees:l,maxValue:c>XO?c+d:XO}},[t]);if(!n)return;const{tips:r,fees:i,maxValue:o}=n;return u.jsx(Pi,{title:"Fee Breakdown",children:u.jsxs(Zr,{columns:"repeat(3, auto)",gapX:_l,gapY:$d,children:[u.jsx(s_t,{label:"Tips",value:r,total:o,color:Gf}),u.jsx(l_t,{label:"Fees",value:i,total:o,color:kg}),u.jsx(u_t,{tips:r,fees:i})]})})}function s_t({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0,o=t*.06,a=n>0?o/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:r},align:"right",children:`${Rs(t??0n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`}),u.jsxs(V,{children:[u.jsxs("svg",{height:"8",width:`${i+a}%`,fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${100/106*100}%`,opacity:.6,fill:r}),u.jsx("rect",{height:"8",x:`${100/106*100}%`,width:`${6/106*100}%`,opacity:.6,fill:"#FFC53D"})]}),u.jsx(q,{className:at.label,style:{marginLeft:_l},children:"Commission\xA0"}),u.jsxs(q,{className:at.value,style:{color:"#FFC53D"},children:["-",`${Rs(o??0n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`]})]})]})}function l_t({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:r},align:"right",children:`${Rs(t??0n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:r})})]})}function u_t({tips:e,fees:t}){const n=e+t,r=Math.max(XO,n),i=n/r*100,o=e/r*100,a=t/r*100;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:"Income"}),u.jsx(q,{className:at.value,style:{color:kp},align:"right",children:`${Rs(n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`}),u.jsxs("svg",{height:"10",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"100%",width:`${o}%`,opacity:.6,fill:Gf}),u.jsx("rect",{height:"100%",x:`${o}%`,width:`${a}%`,opacity:.6,fill:kg}),u.jsx("rect",{height:"100%",x:`${o}%`,width:1,opacity:.6,fill:"black"}),u.jsx("rect",{height:"9",width:`${i}%`,x:.5,y:.5,opacity:1,stroke:kp,strokeWidth:1})]})]})}const c_t="_container_1w2fb_1",d_t="_label_1w2fb_5",f_t="_clickable_1w2fb_12",JO={container:c_t,label:d_t,clickable:f_t},_pe=["#003362","#113B29","#3F2700","#202248","#33255B"],QO=5e3;function VS({data:e,showPct:t,sort:n,onItemClick:r}){const i=e.reduce((s,{value:l})=>s+l,0);let o=n?e.toSorted((s,l)=>l.value-s.value):e,a=0;if(o.length>QO){for(let s=QO;su.jsx(V,{width:`${l}px`,height:`${s}px`,children:o.map(({value:c,label:d},f)=>{const p=_pe[f%_pe.length],v=c/i,_=v*100,y=_>1?`${Math.round(_)}%`:`${_.toFixed(2)}%`,b=v*l>30;return u.jsx(ui,{content:u.jsxs(u.Fragment,{children:[u.jsx(q,{weight:"bold",children:d}),u.jsx("br",{}),u.jsx(q,{children:`Income: ${Rs(c,Fte)} SOL (${y})`})]}),side:"bottom",disableHoverableContent:!0,children:r?u.jsx(V,{asChild:!0,className:JO.clickable,minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:u.jsx("button",{"aria-label":`Filter by ${d} (${y})`,onClick:()=>r({label:d,value:c}),children:b&&u.jsx(xpe,{label:d,showPct:t,formattedPct:y})})}):u.jsx(V,{minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:b&&u.jsx(xpe,{label:d,showPct:t,formattedPct:y})})},d)})})})})}function xpe({label:e,showPct:t,formattedPct:n}){return u.jsxs(q,{mx:"2",className:JO.label,truncate:!0,children:[e,t&&` ${n}`]})}function h_t({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_signature.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([mx]),t(mx,{mode:Mn.TxnSignature,text:o})},[n,t]);return u.jsx(Pi,{title:"Income Distribution by Txn",children:u.jsx(VS,{data:r,sort:!0,onItemClick:i})})}function p_t({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_source_ipv4.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([mx]),t(mx,{mode:Mn.Ip,text:o})},[n,t]);return u.jsx(Pi,{title:"Income Distribution by IP Address",children:u.jsx(VS,{data:r,sort:!0,onItemClick:i})})}const eP="Bundle";function m_t({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=Ee(Ls),i=m.useMemo(()=>{const a=e.txn_from_bundle.map((s,l)=>({value:Number(md(e,l)),label:s?eP:"Other"}));return Object.values(rt.groupBy(a,({label:s})=>s)).map(s=>({label:s[0].label,value:rt.sum(s.map(({value:l})=>l))})).sort((s,l)=>s.label===eP?-1:1)},[e]),o=m.useCallback(({label:a})=>{n([OO]),t(OO,a===eP?"Yes":"No"),r(s=>{s.setScale(Vt,{min:s.data[0][0],max:s.data[0][s.data[0].length-1]})})},[n,t,r]);return u.jsx(Pi,{title:"Income Distribution by Bundle",children:u.jsx(VS,{data:i,showPct:!0,onItemClick:o})})}function g_t(e,t=[1,10]){const n=e.length;if(n===0)return;e=e.toSorted((c,d)=>d-c);const r=new Array(n+1);r[0]=0;for(let c=0;crt.clamp(c,0,100)))).sort((c,d)=>c-d),a=c=>c<=0?0:c>=100?n:rt.clamp(Math.ceil(c/100*n),0,n),s={},l=[0,...o,100];for(let c=1;cNumber(md(e,i)),[]),n=g_t(t);if(n!==void 0)return Object.entries(n).map(([r,i])=>({value:i,label:r}))}function y_t({transactions:e}){const t=m.useMemo(()=>v_t(e),[e]);if(t)return u.jsx(Pi,{title:"Income Distribution by Percent Txns",children:u.jsx(VS,{data:t})})}function b_t(){var n;const e=X(Cn),t=(n=pl(e).response)==null?void 0:n.transactions;if(t)return u.jsxs(u.Fragment,{children:[u.jsx(y_t,{transactions:t}),u.jsx(m_t,{transactions:t}),u.jsx(h_t,{transactions:t}),u.jsx(p_t,{transactions:t})]})}function __t(e,t){const n=parseInt(e.substring(1,3),16),r=parseInt(e.substring(3,5),16),i=parseInt(e.substring(5,7),16);return`rgba(${n}, ${r}, ${i}, ${t})`}const x_t=(ype+2)**2;function w_t(e,t,n,r){function i(a){const{left:s,top:l}=a.cursor;if(s==null||l==null)return null;const c=a.data[0],d=a.data[1];let f=null,p=1/0;for(let v=0;v({width:0,height:0,padding:[10,15,0,15],scales:{[HS]:{time:!1,distr:n?3:void 0},[Id]:{time:!1,distr:3}},axes:[{scale:HS,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{show:!1},values:(f,p)=>p.map(v=>{if(r){const{scaledToX:_,negMin:y,posMax:b}=r;return Math.round(_(v,y,b)).toLocaleString()}return v&&Lie.format(v)}),size:20,gap:0,font:"8px Inter Tight"},{scale:Id,stroke:sr,grid:{show:!1},border:{show:!0,width:1/devicePixelRatio,stroke:sr},show:!1}],series:[{scale:HS},{scale:Id,stroke:void 0,points:{show:!0,size:ype*2,fill:__t(kp,.3),space:0}}],legend:{show:!1},hooks:{draw:[f=>{var p;f.ctx.save(),f.ctx.fillStyle=sr,f.ctx.font="18px Inter Tight",f.ctx.textAlign="left",f.ctx.fillText(`${(((p=f.scales[Id])==null?void 0:p.max)??0)/dd} SOL`,0,0),f.ctx.restore()}]},plugins:[w_t(s,HS,Id,c)]}),[s,n,r]);return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:f,width:p})=>(d.width=p,d.height=f,u.jsx(Pp,{id:t,options:d,data:e}))})}),u.jsx(k_t,{elId:s,data:l,xLabel:i,xColor:o,tooltipFormatX:a})]})}function S_t(e){return e==null?void 0:e.txn_compute_units_consumed.map((t,n)=>({cu:t,i:n})).sort((t,n)=>t.cu-n.cu).reduce((t,{cu:n,i:r})=>{const i=Number(md(e,r));return!i||!n||(t[0].push(n),t[1].push(i)),t},[[],[]])}function C_t(e,t,n){return e<=0?.5*(e-t)/-t:.5+.5*(e/n)}function kpe(e,t,n){return e<=.5?t+e/.5*-t:(e-.5)/.5*n}function j_t(e){if(!e)return;const t=e.txn_arrival_timestamps_nanos.map((i,o)=>({tsNanos:i,i:o})).sort((i,o)=>Number(i.tsNanos-o.tsNanos)).reduce((i,{tsNanos:o,i:a})=>{const s=Number(o-e.start_timestamp_nanos)/1e6,l=Number(md(e,a));return l&&(i[0].push(s),i[1].push(l??0)),i},[[],[]]),n=t[0][0],r=t[0][t[0].length-1];return t[0]=t[0].map(i=>C_t(i,n,r)),{min:n,max:r,chartData:t}}function T_t(){var a,s;const e=X(Cn),t=(a=pl(e).response)==null?void 0:a.transactions,n=pl(e),r=m.useMemo(()=>S_t(t),[t]),i=m.useMemo(()=>j_t(t),[t]),o=m.useMemo(()=>{if(i)return{scaledToX:kpe,negMin:i.min,posMax:i.max}},[i]);if(!(!((s=n.response)!=null&&s.transactions)||!r||!i))return u.jsxs(V,{flexGrow:"1",minWidth:"300px",minHeight:"150px",gap:Jbt,children:[u.jsx(Pi,{title:"Compute Units vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"cuIncomeScatterChart",data:r,xLogScale:!0,xLabel:"CU",xColor:pd,formatX:l=>Lie.format(l)})}),u.jsx(Pi,{title:"Arrival Time vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"arrivalIncomeScatterChart",data:i.chartData,xScaleOptions:o,xLabel:"Arrival",formatX:l=>`${Math.round(kpe(l,i.min,i.max)).toLocaleString()}ms`})})]})}function I_t(){return u.jsxs(HO,{title:"Fees",flexGrow:"2",children:[u.jsx(a_t,{}),u.jsx(b_t,{}),u.jsx(T_t,{})]})}function E_t(e){function t(n,r,i){return e(i),!0}return ix({elId:Wfe,showOnCursor:t})}const M1=new Map,Spe=e=>{const t=M1.get(e);if(!t||t.pendingSync!==null)return;const n=Math.max(0,...t.naturalSizes.values());n!==t.maxSize&&(t.maxSize=n,t.pendingSync=requestAnimationFrame(()=>{for(const r of t.charts.values())r.redraw(!1,!0);t.pendingSync=null}))};function N_t(e,t,n=1){return{opts:(r,i)=>{var s;const o=(s=i.axes)==null?void 0:s[n];if(!o)return;const a=o.size;o.size=(l,c,d,f)=>{const p=typeof a=="function"?a(l,c,d,f):a??Jae(l.axes[d]),v=M1.get(t);return v?(v.naturalSizes.set(e,p),Math.max(p,v.maxSize)):p}},hooks:{ready:r=>{const i=M1.get(t);i?i.charts.set(e,r):M1.set(t,{charts:new Map([[e,r]]),naturalSizes:new Map,maxSize:0,pendingSync:null})},destroy:r=>{const i=M1.get(t);i&&i.charts.get(e)===r&&(i.charts.delete(e),i.naturalSizes.delete(e),i.charts.size===0?(i.pendingSync!==null&&cancelAnimationFrame(i.pendingSync),M1.delete(t)):Spe(t))},draw:r=>Spe(t)}}}function $_t({data:e,formatBucketRange:t}){return u.jsx(ox,{elId:Wfe,children:e&&u.jsxs(Zr,{columns:"auto auto",gapX:"2",children:[u.jsx(Md,{label:"Duration",value:t(e.bucketIdx)}),u.jsx(Md,{label:"Avg CUs",value:e.cuYVal?Math.round(e.cuYVal).toLocaleString():"0",color:pd}),u.jsx(Md,{label:"Count",value:e.countYVal?e.countYVal.toLocaleString():"0"})]})})}const ZS=20,Cpe=Array.from({length:ZS},(e,t)=>t),M_t=(e,t)=>Math.trunc(e/t*ZS),tP=(e,t)=>e/ZS*t,qS="8px Inter Tight",L_t="#3C2E69",nP=1,R_t=((Yme=(fC=jn.paths)==null?void 0:fC.bars)==null?void 0:Yme.call(fC,{size:[.8]}))??(()=>({stroke:new Path2D,fill:new Path2D})),jpe={cuData:[[],[]],countData:[[],[]],maxDuration:0},rP=(e,t)=>{const{value:n,unit:r}=Ha(e,!1,t);return`${n} ${r}`};function O_t(){var c;const e=X(Cn),t=(c=pl(e).response)==null?void 0:c.transactions,[n,r]=m.useState(),{cuData:i,countData:o,maxDuration:a}=m.useMemo(()=>{if(!t)return jpe;const d=t.txn_landed.map((y,b)=>({duration:Number(t.txn_mb_end_timestamps_nanos[b]-t.txn_mb_start_timestamps_nanos[b]),cu:t.txn_compute_units_consumed[b]})).filter(({duration:y})=>y>0);if(d.length===0)return jpe;const f=Eb(d.map(({duration:y})=>y))+1,p=Array.from({length:ZS},()=>({count:0,cus:0}));for(const{duration:y,cu:b}of d){const w=M_t(y,f);p[w].count++,p[w].cus+=b}const v=p.map(({count:y})=>y),_=p.map(({count:y,cus:b})=>y?b/y:0);return{countData:[Cpe,v],cuData:[Cpe,_],maxDuration:f}},[t]),s=m.useCallback(d=>`${rP(tP(d,a),2)} - ${rP(tP(d+1,a),2)}`,[a]),l=m.useMemo(()=>n!==void 0?{bucketIdx:n,cuYVal:i[nP][n],countYVal:o[nP][n]}:void 0,[o,i,n]);if(t)return u.jsxs(u.Fragment,{children:[u.jsx(Pi,{title:"CUs vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:i,id:"txnExecutionDurationCu",maxDuration:a,setTooltipDataIdx:r})}),u.jsx(Pi,{title:"Transaction Count vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:o,id:"txnExecutionDurationCount",log:!0,maxDuration:a,setTooltipDataIdx:r})}),u.jsx($_t,{data:l,formatBucketRange:s})]})}function Tpe({data:e,log:t,id:n,maxDuration:r,setTooltipDataIdx:i}){const o=m.useMemo(()=>t?[e[0],e[nP].map(l=>Math.log((l??0)+1))]:e,[e,t]),a=Math.max(0,e[0].length-1),s=m.useMemo(()=>({width:0,height:0,cursor:{sync:{key:Ugt}},scales:{duration:{time:!1},y:{auto:!0,range:(l,c,d)=>t?[0,Math.max(d,Math.log(3))]:[0,Math.max(d,2)]}},series:[{scale:"duration"},{label:"Count",points:{show:!1},fill:L_t,paths:R_t}],axes:[{scale:"duration",splits:[0,a],values:(l,c)=>c.map(d=>rP(tP(d,r))),label:"Txn Execution Duration",stroke:sr,grid:{show:!1},size:10,gap:0,font:qS,labelFont:qS,labelGap:0,labelSize:10},{stroke:sr,splits:(l,c,d,f)=>[d,(d+f)/2,f],values:(l,c)=>(t?c.map(d=>Math.round(Math.exp(d)-1)):c.map(Math.round)).map(d=>d.toLocaleString()),gap:0,font:qS,size(l,c,d,f){var b,w;const p=l.axes[d];if(f>1)return Jae(p);const v=(((b=p.ticks)==null?void 0:b.size)??0)+(p.gap??0),_=(c??[]).reduce((x,S)=>S.length>x.length?S:x,"");if(_==="")return Math.ceil(v);l.ctx.font=((w=p.font)==null?void 0:w[0])??qS;const y=l.ctx.measureText(_).width/devicePixelRatio;return Math.ceil(v+y)}}],legend:{show:!1},plugins:[E_t(i),cO({minRange:0}),N_t(n,"txnExecutionDurationYAxis")]}),[a,i,n,t,r]);return u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:l,width:c})=>(s.width=c,s.height=l,u.jsx(Pp,{id:n,options:s,data:o}))})})}function P_t(){var a;const e=X(Eg),t=X(Cn),n=X(ao),r=(a=tc(t).response)==null?void 0:a.scheduler_stats,i=m.useMemo(()=>{if(t===void 0||!n)return;const s=xi(t),l=n.indexOf(s)-1;if(!(l<0))return n[l]+$n-1},[n,t]);if(t===void 0)return;const o=i?fn.fromMillis(e*(t-i)).rescale():void 0;return u.jsx(Pi,{title:"Scheduler",children:u.jsxs(V,{direction:"column",gap:$d,children:[u.jsxs(V,{gap:_l,children:[u.jsx(q,{className:at.label,children:"Time Since Last Leader Group"}),u.jsx(q,{className:at.value,children:Sp(o)})]}),Vi&&u.jsxs(V,{gap:_l,children:[u.jsx(q,{className:at.label,children:"End slot reason"}),u.jsx(q,{className:at.value,children:r==null?void 0:r.end_slot_reason})]})]})})}function z_t(){const e=X(Nb),{queryIdleData:t}=VM();return u.jsx(Pi,{title:"CPU Utilization",children:u.jsxs(V,{direction:"column",gap:"5px",children:[u.jsx(Wa,{header:"pack",tileCount:e.pack,queryIdlePerTile:t==null?void 0:t.pack,statLabel:"Full",metricType:"pack",isDark:!0,isNarrow:!0}),u.jsx(Wa,{header:To.bank,tileCount:e[To.bank],queryIdlePerTile:t==null?void 0:t[To.bank],statLabel:"TPS",metricType:"bank",isDark:!0,isNarrow:!0})]})})}function D_t(e){function t(n,r,i){return e(i),!0}return ix({elId:"pack-buffer-chart-tooltip",showOnCursor:t})}function A_t({data:e}){return u.jsx(ox,{elId:"pack-buffer-chart-tooltip",children:e&&u.jsxs(Zr,{columns:"auto auto",gapX:"2",children:[u.jsx(Md,{label:"Regular",value:e.regular.toLocaleString(),color:Zf}),u.jsx(Md,{label:"Votes",value:e.votes.toLocaleString(),color:hd}),u.jsx(Md,{label:"Conflicting",value:e.conflicting.toLocaleString(),color:gk}),u.jsx(Md,{label:"Bundles",value:e.bundles.toLocaleString(),color:Gf})]})})}const iP="packX",L1="packTxnsY";function F_t(){var l;const e=X(Cn),t=tc(e).response,[n,r]=m.useState(),i=t==null?void 0:t.scheduler_counts,o=m.useMemo(()=>{var f;const c=(f=t==null?void 0:t.transactions)==null?void 0:f.start_timestamp_nanos;if(!i||!c)return;const d=[[],[],[],[],[]];for(let p=0;p({width:0,height:0,padding:[0,0,0,0],drawOrder:["axes","series"],cursor:{},scales:{[iP]:{time:!1},[L1]:{}},axes:[{scale:iP,border:{show:!0,width:1/devicePixelRatio},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(c,d)=>d.map(f=>f/1e6+"ms"),space:100,size:20,font:"8px Inter Tight"},{scale:L1,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},space:50,font:"8px Inter Tight",size(c,d,f,p){var b,w;const v=c.axes[f];if(p>1)return v._size;let _=((b=v.ticks)==null?void 0:b.size)??0+(v.gap??0);_+=5;const y=(d??[]).reduce((x,S)=>S.length>x.length?S:x,"");return y!==""&&(c.ctx.font=((w=v.font)==null?void 0:w[0])??"Inter Tight",_+=c.ctx.measureText(y).width/devicePixelRatio),Math.ceil(_)}}],series:[{scale:iP},{label:"Regular",stroke:Zf,points:{show:!1},width:2/devicePixelRatio,scale:L1},{label:"Votes",stroke:hd,points:{show:!1},width:2/devicePixelRatio,scale:L1},{label:"Conflicting",stroke:gk,points:{show:!1},width:2/devicePixelRatio,scale:L1},{label:"Bundles",stroke:Gf,points:{show:!1},width:2/devicePixelRatio,scale:L1}],legend:{show:!1},plugins:[nO(),lO({factor:.75}),D_t(r),pO()]}),[]);if(!o)return;const s=n!==void 0?i==null?void 0:i[n]:void 0;return u.jsxs(Pi,{title:"Pack Txns Buffer Utilization",flexGrow:"1",minWidth:"150px",minHeight:"150px",children:[u.jsx(Mt,{height:"100%",children:u.jsx($s,{children:({height:c,width:d})=>(a.width=d,a.height=c,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:"packBufferChart",options:a,data:o})}))})}),u.jsx(A_t,{data:s})]})}function B_t(){var n;const e=X(Cn),t=(n=Is(e).publish)==null?void 0:n.duration_nanos;return u.jsx(Pi,{title:"Slot Duration",children:u.jsxs(V,{gap:_l,children:[u.jsx(q,{className:at.label,children:"Actual"}),t!=null&&u.jsx(q,{className:at.value,children:`${(t/1e6).toFixed(2)}ms`})]})})}const U_t=["success","fail_taken","fail_fast_path","fail_byte_limit","fail_alloc_limit","fail_write_cost","fail_slow_path","fail_defer_skip"];function W_t(){var l,c,d;const e=X(Cn),t=(l=tc(e).response)==null?void 0:l.scheduler_stats;if(!t)return;const{slot_schedule_counts:n,end_slot_schedule_counts:r,pending_smallest_bytes:i,pending_smallest_cost:o,pending_vote_smallest_bytes:a,pending_vote_smallest_cost:s}=t;return u.jsxs(u.Fragment,{children:[u.jsx(Pi,{title:"Txn Schedule Outcomes",children:u.jsxs(Zr,{columns:"repeat(3, 1fr)",gapX:_l,gapY:$d,children:[u.jsx(q,{className:at.label,children:"Outcome"}),u.jsx(q,{className:at.tableHeader,align:"right",children:"Txn Count"}),u.jsx(q,{className:at.tableHeader,align:"right",children:"Txn Count (End)"}),n.map((f,p)=>{const v=U_t[p];return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:v}),u.jsx(q,{className:at.value,align:"right",children:f.toLocaleString()}),u.jsx(q,{className:at.value,align:"right",children:r[p].toLocaleString()})]},v)})]})}),u.jsx(Pi,{title:"Smallest Pending Txn",children:u.jsxs(Zr,{columns:"repeat(3, 1fr)",gapX:_l,gapY:$d,children:[u.jsx("div",{}),u.jsx(q,{className:at.tableHeader,align:"right",children:"CU Cost"}),u.jsx(q,{className:at.tableHeader,align:"right",children:"Size"}),u.jsx(q,{className:at.label,children:"Non-vote"}),u.jsx(q,{className:at.value,align:"right",children:(o==null?void 0:o.toLocaleString())??0}),u.jsx(q,{className:at.value,align:"right",children:i!=null?(c=Cp(i))==null?void 0:c.toString():0}),u.jsx(q,{className:at.label,children:"Vote"}),u.jsx(q,{className:at.value,align:"right",children:(s==null?void 0:s.toLocaleString())??0}),u.jsx(q,{className:at.value,align:"right",children:a!=null?(d=Cp(a))==null?void 0:d.toString():0})]})})]})}function V_t(){return u.jsx(HO,{title:"Performance",flexGrow:"3",children:u.jsxs(V,{direction:{sm:"row",initial:"column"},gapX:vpe,gapY:BS,flexGrow:"1",children:[u.jsxs(V,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(P_t,{}),u.jsx(W_t,{}),u.jsx(F_t,{})]}),u.jsxs(V,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(B_t,{}),u.jsx(O_t,{}),u.jsx(z_t,{})]})]})})}const H_t="_container_id19r_1",Z_t="_label_id19r_6",q_t="_value_id19r_10",G_t="_popover-trigger_id19r_15",Y_t="_popover-underline-overlay_id19r_23",K_t="_popover-text-underline_id19r_27",xl={container:H_t,label:Z_t,value:q_t,popoverTrigger:G_t,popoverUnderlineOverlay:Y_t,popoverTextUnderline:K_t},X_t=Intl.DateTimeFormat().resolvedOptions().timeZone;function oP({nanoTs:e,lines:t,textClassName:n,triggerClassName:r}){const i=m.useMemo(()=>tre(e),[e]),o=tpe(i),a=m.useMemo(()=>{const s=kk(e,{timezone:"local",showTimezoneName:!1}),l=kk(e,{timezone:"utc",showTimezoneName:!1});return{local:s.inNanos,utc:l.inNanos,ts:e.toString()}},[e]);return u.jsx(zg,{content:u.jsxs(Zr,{columns:"max-content max-content",gapX:"10px",gapY:"5px",rows:"4",className:xl.container,children:[u.jsx(q,{className:xl.label,children:X_t}),u.jsx(Za,{className:xl.value,children:a.local}),u.jsx(q,{className:xl.label,children:"UTC"}),u.jsx(Za,{className:xl.value,children:a.utc}),u.jsx(q,{className:xl.label,children:"Relative"}),u.jsx(Za,{className:xl.value,children:o}),u.jsx(q,{className:xl.label,children:"Timestamp"}),u.jsx(Za,{className:xl.value,children:a.ts})]}),align:"start",children:u.jsx(hs,{variant:"ghost",className:Te(xl.popoverTrigger,r),children:u.jsxs(V,{minWidth:"0",position:"relative",children:[u.jsx(V,{direction:"column",minWidth:"0",width:"100%",children:t.map((s,l)=>u.jsx(q,{truncate:!0,className:n,children:s},l))}),u.jsx(V,{direction:"column","aria-hidden":"true",className:xl.popoverUnderlineOverlay,children:t.map((s,l)=>u.jsx(q,{truncate:!0,className:Te(n,xl.popoverTextUnderline),children:s},l))})]})})})}const vh="5px";function J_t(){var c,d,f,p;const e=X(Cn),{countryCode:t,countryFlag:n,cityName:r}=ma(e??0),i=X(di),o=Is(e).publish,a=Hn("(min-width: 1420px)"),s=Hn("(min-width: 600px)"),l=m.useMemo(()=>a?"minmax(300px, max-content) minmax(228px, max-content) minmax(200px, max-content) minmax(150px, max-content) minmax(160px, max-content)":s?"minmax(0px, max-content) 1fr":"1",[a,s]);return e===void 0?null:u.jsxs(Zr,{className:at.grid,align:a?"center":"start",justify:"between",columns:l,gapX:a?"12px":"30px",gapY:vh,children:[u.jsx(Q_t,{slot:e,isLgScreen:a}),u.jsxs(V,{direction:"column",gap:vh,children:[u.jsx(yh,{label:"City",value:r&&t?`${r}, ${t}`:"Unknown",icon:n,vertical:!a}),u.jsx(yh,{label:"Epoch",value:i==null?void 0:i.epoch,vertical:!a})]}),a?u.jsxs(V,{direction:"column",gapX:vh,gapY:vh,children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos}),u.jsx(Npe,{slot:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos,vertical:!0}),u.jsx(Npe,{slot:e,vertical:!0})]}),u.jsxs(V,{direction:"column",gap:vh,children:[u.jsx(yh,{label:"Votes",value:(c=o==null?void 0:o.success_vote_transaction_cnt)==null?void 0:c.toLocaleString()}),u.jsx(yh,{label:"Vote Failures",value:(d=o==null?void 0:o.failed_vote_transaction_cnt)==null?void 0:d.toLocaleString()})]}),u.jsxs(V,{direction:"column",gap:vh,children:[u.jsx(yh,{label:"Non-votes",value:(f=o==null?void 0:o.success_nonvote_transaction_cnt)==null?void 0:f.toLocaleString()}),u.jsx(yh,{label:"Non-vote Failures",value:(p=o==null?void 0:o.failed_nonvote_transaction_cnt)==null?void 0:p.toLocaleString()})]})]})}function yh({label:e,value:t,popoverDropdown:n,icon:r,vertical:i=!1,allowCopy:o=!1}){return u.jsxs(V,{gapX:"2",direction:i?"column":"row",children:[u.jsx(Za,{className:at.label,children:e}),n===void 0?u.jsx(Dg,{className:at.copyButton,size:14,value:o?t==null?void 0:t.toString():void 0,hideIconUntilHover:!0,children:u.jsxs(Za,{truncate:!0,className:at.value,children:[t,r&&` ${r}`]})}):n]})}function Q_t({slot:e,isLgScreen:t}){var a,s;const{peer:n,isLeader:r,name:i,pubkey:o}=ma(e??0);return t?u.jsxs(V,{gapX:"10px",align:"center",children:[u.jsx(ks,{url:(a=n==null?void 0:n.info)==null?void 0:a.icon_url,size:42,isYou:r}),u.jsxs(V,{direction:"column",gapY:"1px",minWidth:"0",children:[u.jsx(qk,{content:i,children:u.jsx(q,{truncate:!0,className:Te(at.name,at.lg),children:i})}),u.jsx(Ipe,{slot:e,pubkey:o})]})]}):u.jsxs(V,{direction:"column",children:[u.jsxs(V,{gapX:vh,align:"center",children:[u.jsx(ks,{url:(s=n==null?void 0:n.info)==null?void 0:s.icon_url,size:15,isYou:r}),u.jsx(qk,{content:i,children:u.jsx(q,{truncate:!0,className:at.name,children:i})})]}),u.jsx(Ipe,{slot:e,pubkey:o})]})}function Ipe({slot:e,pubkey:t}){return u.jsxs(V,{gapX:vh,align:"center",children:[u.jsx(Dg,{className:at.copyButton,size:14,value:t,hideIconUntilHover:!0,children:u.jsx(Za,{truncate:!0,className:at.value,children:t})}),u.jsx(O_,{slot:e,size:"large"})]})}function Epe({vertical:e=!1,slotCompletedTimeNanos:t}){const n=m.useMemo(()=>{if(t!=null)return kk(t)},[t]);return u.jsx(yh,{label:"Slot Time",popoverDropdown:t&&n?u.jsx(oP,{nanoTs:t,lines:[n.inMillis],textClassName:Te("mono-text",at.value),triggerClassName:at.timePopover}):void 0,vertical:e})}function Npe({slot:e,vertical:t=!1}){var r;const n=(r=tc(e).response)==null?void 0:r.scheduler_stats;return u.jsx(yh,{label:"Block Hash",value:_i?"Not available for Frankendancer":n==null?void 0:n.block_hash,vertical:t,allowCopy:!_i&&(n==null?void 0:n.block_hash)!=null})}function ext(){var t;const e=X(Cn);return(t=tc(e).response)!=null&&t.limits?u.jsxs(u.Fragment,{children:[u.jsx(J_t,{}),u.jsx(so,{children:u.jsxs(V,{gap:vpe,wrap:"wrap",flexBasis:"0",children:[u.jsx(o_t,{}),u.jsx(I_t,{}),u.jsx(V_t,{})]})})]}):u.jsx(txt,{})}function txt(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"550px",justifyContent:"center",alignItems:"center"},children:u.jsx(q,{children:"Loading Slot Statistics..."})})}function nxt({children:e}){const t=m.useRef(new Map),n=m.useRef(new Map),r=m.useMemo(()=>({registerControl:(i,o,a)=>(t.current.set(i,o),n.current.set(i,a),()=>{t.current.delete(i),n.current.delete(i)}),triggerControl:(i,o)=>{var a;(a=t.current.get(i))==null||a(o)},resetControl:i=>{var o;(o=n.current.get(i))==null||o()},resetAllControls:i=>{for(const[o,a]of n.current)i!=null&&i.includes(o)||a()}}),[]);return u.jsx(N1.Provider,{value:r,children:e})}function rxt(){const e=X(Cn),[t,n]=m.useState(!1),r=X(gd.state)===Xf.NotReady;return m.useEffect(()=>{if(r&&!t){const i=setTimeout(()=>n(!0),2500);return()=>clearTimeout(i)}},[r,n,t]),r&&!t?null:e===void 0?u.jsx(sbt,{}):u.jsx(ixt,{})}function ixt(){if(X(Cn)!==void 0)return u.jsxs(V,{direction:"column",gap:"2",flexGrow:"1",children:[u.jsx(zbt,{}),u.jsxs(nxt,{children:[u.jsx(ext,{}),u.jsx(Bfe,{}),u.jsx(C1t,{}),u.jsx(qyt,{})]})]})}const oxt=ca(),axt=kt({slot:oe().optional().catch(void 0)}),$pe=up("/slotDetails")({validateSearch:axt,component:rxt,beforeLoad:({search:{slot:e}})=>oxt.set(gd.slot,e)}),sxt="_card_ybszl_1",lxt="_name-text_ybszl_8",uxt="_pubkey-text_ybszl_14",cxt="_narrow-screen_ybszl_21",dxt="_two-away_ybszl_27",fxt="_one-away_ybszl_33",hxt="_time-till_ybszl_38",mc={card:sxt,nameText:lxt,pubkeyText:uxt,narrowScreen:cxt,twoAway:dxt,oneAway:fxt,timeTill:hxt},pxt="_my-slots_kxi8u_1",mxt="_scroll_kxi8u_7",GS={mySlots:pxt,scroll:mxt};var Om=(e=>(e.Past="Past",e.Now="Now",e.Upcoming="Upcoming",e))(Om||{});function gxt(e,t){return et?Om.Upcoming:Om.Now}function vxt({currentLeaderSlot:e,searchLeaderSlots:t,slotOverride:n,curCardCount:r=0,cardCount:i=1}){const o=t.toReversed();if(n===void 0){if(o.length<=i)return o[r];{const a=o.findIndex(l=>lMath.abs(c-n)),s=Math.min(...a),l=Math.max(a.indexOf(s)-3,0);return o[r+l]}}function yxt({cardCount:e,currentLeaderSlot:t,epoch:n,searchLeaderSlots:r,slotOverride:i,topSlot:o}){const a=[],s=[],l=[];if(t===void 0)return{upcoming:a,now:s,past:l};for(let c=0;cn.end_slot))continue;const f=gxt(d,t);f===Om.Upcoming&&a.push(d),f===Om.Now&&s.push(d),f===Om.Past&&l.push(d)}return{upcoming:a,now:s,past:l}}function Mpe(e){const{year:t,...n}=jt.DATETIME_MED_WITH_SECONDS;return e.toLocaleString({...n,timeZoneName:"short"})}function bxt({slot:e}){var c,d;const t=X(eu),{pubkey:n,peer:r,isLeader:i,name:o}=ma(e),a=t!==void 0&&e===t+$n,s=t!==void 0&&e===t+$n*2,l=Hn("(min-width: 1250px)");return u.jsx("div",{className:Te(mc.card,{[mc.oneAway]:a,[mc.twoAway]:s,[GS.mySlots]:i}),children:l?u.jsx(_xt,{iconUrl:(c=r==null?void 0:r.info)==null?void 0:c.icon_url,isLeader:i,name:o,pubkey:n,slot:e}):u.jsx(xxt,{iconUrl:(d=r==null?void 0:r.info)==null?void 0:d.icon_url,isLeader:i,name:o,pubkey:n,slot:e})})}function _xt({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(V,{gap:"2",align:"center",children:[u.jsxs(V,{gap:"2",minWidth:"300px",width:"505px",align:"center",pr:"20px",children:[u.jsx(ks,{url:e,size:24,isYou:t}),u.jsx(q,{className:mc.nameText,children:n})]}),u.jsx(q,{className:mc.pubkeyText,children:r}),u.jsx(V,{justify:"center",minWidth:"190px",children:u.jsx(q,{children:i})}),u.jsx(Lpe,{slot:i})]})}function xxt({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(V,{direction:"column",children:[u.jsxs(V,{gap:"2",align:"center",children:[u.jsx(ks,{url:e,size:16,isYou:t}),u.jsx(q,{className:mc.nameText,children:n}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(q,{className:Te(mc.pubkeyText,mc.narrowScreen),children:r})]}),u.jsxs(V,{justify:"between",children:[u.jsx(q,{children:i}),u.jsx(Lpe,{slot:i,isNarrowScreen:!0})]})]})}function Lpe({slot:e,isNarrowScreen:t}){const n=X(oo),r=X(Eg),i=n?fn.fromMillis(r*(e-n)).rescale():void 0,[o,a]=m.useReducer(Rpe,i,s=>Rpe(void 0,s));if(r_(()=>a(i),1e3),o!==void 0)return u.jsx(V,{className:Te(mc.timeTill,{[mc.narrowScreen]:t}),children:u.jsx(oP,{nanoTs:o.predictedTsNanos,lines:[`${o.dtText} (${o.timeTillText})`]})})}function Rpe(e,t){if(t!==void 0)return{timeTillText:Sp(t),dtText:kxt(t),predictedTsNanos:wxt(t)}}function wxt(e){const t=Kf.plus(e);return BigInt(Math.trunc(t.toSeconds()))*1000000000n}function kxt(e){const t=Kf.plus(e);return Mpe(t)}const Sxt="_card_zlaiw_1",Cxt="_late-vote_zlaiw_7",jxt="_skipped_zlaiw_12",aP={card:Sxt,lateVote:Cxt,skipped:jxt},Txt="_grid_1feao_1",Ixt="_firedancer-grid_1feao_16",Ext="_header-text_1feao_24",Nxt="_vote-latency-header_1feao_30",$xt="_votes-header_1feao_33",Mxt="_non-votes-header_1feao_36",Lxt="_fees-header_1feao_39",Rxt="_tips-header_1feao_42",Oxt="_compute-units-header_1feao_45",Pxt="_compute-units-pct_1feao_50",zxt="_row-text_1feao_55",Dxt="_active_1feao_62",Axt="_slot-text_1feao_68",Kr={grid:Txt,firedancerGrid:Ixt,headerText:Ext,voteLatencyHeader:Nxt,votesHeader:$xt,nonVotesHeader:Mxt,feesHeader:Lxt,tipsHeader:Rxt,computeUnitsHeader:Oxt,computeUnitsPct:Pxt,rowText:zxt,active:Dxt,slotText:Axt},[Fxt,Bxt,Uxt,Wxt]=function(){const e=Co({}),t=fe(0);return[fe(null,(n,r,i,o)=>{const a=n(t);a&&o(a),r(e,s=>{s[i]=o})}),fe(null,(n,r,i)=>{r(e,o=>{delete o[i]})}),fe(null,(n,r,i,o)=>{for(const[a,s]of Object.entries(n(e)))Number(a)!==i&&s(o);r(t,o)}),fe(null,(n,r)=>{r(e,{}),r(t,0)})]}(),Vxt="_slot-text_j49it_1",Hxt={slotText:Vxt};function Zxt({slot:e,isLeader:t,className:n}){const r=Te(n,Hxt.slotText);return t?u.jsx(q,{className:r,children:u.jsx(lp,{to:"/slotDetails",search:{slot:e},children:e})}):u.jsx(q,{className:r,children:e})}function R1({slot:e,currentSlot:t}){const n=m.useRef(null),r=Ee(Fxt),i=Ee(Bxt),o=Ee(Uxt);return m.useEffect(()=>(r(e,a=>{var s;(s=n.current)==null||s.scrollTo(a,0)}),()=>i(e)),[i,r,e]),u.jsxs(V,{minWidth:"0",flexGrow:"1",children:[u.jsx(qxt,{slot:e,currentSlot:t}),u.jsxs("div",{className:Te(Kr.grid,{[Kr.firedancerGrid]:Vi}),ref:n,onScroll:a=>{o(e,a.currentTarget.scrollLeft)},children:[Vi&&u.jsx(q,{className:Te(Kr.headerText,Kr.voteLatencyHeader),align:"right",children:"Vote\xA0Latency"}),u.jsx(q,{className:Te(Kr.headerText,Kr.votesHeader),align:"right",children:"Votes"}),u.jsx(q,{className:Te(Kr.headerText,Kr.nonVotesHeader),align:"right",children:"Non-votes"}),u.jsx(q,{className:Te(Kr.headerText,Kr.feesHeader),align:"right",children:"Fees"}),u.jsx(q,{className:Te(Kr.headerText,Kr.tipsHeader),align:"right",children:"Tips"}),u.jsx(q,{className:Te(Kr.headerText,Kr.durationHeader),align:"right",children:"Duration"}),u.jsx(q,{className:Te(Kr.headerText,Kr.computeUnitsHeader),align:"right",children:"Compute\xA0Units"}),new Array(4).fill(0).map((a,s)=>{const l=e+3-s;return u.jsx(Yxt,{slot:l,active:l===t},l)})]})]})}function qxt({slot:e,currentSlot:t}){return u.jsxs(V,{direction:"column",children:[u.jsx(q,{className:Te(Kr.headerText,Kr.slotText),children:"Slot"}),new Array(4).fill(0).map((n,r)=>{const i=e+3-r,o=i===t;return u.jsx(Gxt,{slot:i,isCurrent:o},i)})]})}function Gxt({slot:e,isCurrent:t}){var o;const n=Is(e),r=OM(e),i=X(dp)===r;return u.jsxs(V,{className:Te(Kr.rowText,Kr.slotText,t&&Kr.active),align:"center",gap:"2",children:[u.jsx(Zxt,{slot:e,isLeader:i}),u.jsx(dpe,{slot:e,isCurrent:t,size:"small"}),(o=n.publish)!=null&&o.skipped?u.jsx(hpe,{size:"small"}):u.jsx(fpe,{size:"small"})]})}function Ope(e,t){const n=jb(e.success_vote_transaction_cnt??0),r=jb(e.success_nonvote_transaction_cnt??0),i=jb(e.failed_vote_transaction_cnt??0),o=jb(e.failed_nonvote_transaction_cnt??0),a=Rs((e.transaction_fee??0n)+(e.priority_fee??0n),Uo,{decimals:Uo,trailingZeroes:!0}),s=e.transaction_fee!=null?(Number(e.transaction_fee)/dd).toString():"0",l=e.priority_fee!=null?(Number(e.priority_fee)/dd).toString():"0",c=Rs(e.tips??0n,Uo,{decimals:Uo,trailingZeroes:!0}),d=e.tips!=null?(Number(e.tips)/dd).toString():"0",f=e.duration_nanos!==null?`${Math.trunc(e.duration_nanos/1e6)} ms`:"-",p=jb((e==null?void 0:e.compute_units)??0),v=e.compute_units!=null?e.compute_units/(e.max_compute_units??Bte)*100:0,_=e.vote_latency!=null?{text:rre(e.slot,e.vote_latency,t).toLocaleString()}:e.skipped?{text:""}:e.level==="rooted"?{text:"\u2715",color:"#FF3C3C"}:{text:"-"};return{voteTxns:(n+i).toLocaleString(),nonVoteTxns:(r+o).toLocaleString(),totalFees:a,transactionFeeFull:s,priorityFeeFull:l,tips:c,tipsFull:d,durationText:f,computeUnits:p,computeUnitsPct:v,voteLatency:_}}function Yxt({slot:e,active:t}){var b;const n=X(Jf),r=X(oo),i=X(Ik),o=Is(e),[a,s]=m.useState(()=>{if(o.publish)return Ope(o.publish,i)});m.useEffect(()=>{o.publish&&s(Ope(o.publish,i))},[o.publish,i,e]);const l=e>(r??1/0),c=e===r,d=m.useRef(),[f,p]=m.useState(!1);o_(c)&&!c&&!f&&(clearTimeout(d.current),d.current=setTimeout(()=>{p(!1)},50),p(!0)),Pg(()=>{clearTimeout(d.current)});const v=e<(n??0),_=(w,x)=>l||c||v?"-":!a&&!o.hasWaitedForData&&!f?"Loading...":a?(typeof w=="number"&&(w=Math.round(w)),`${w}`):"-",y=Te(Kr.rowText,{[Kr.active]:t});return u.jsxs(u.Fragment,{children:[Vi&&u.jsx(q,{className:y,align:"right",style:{color:(b=a==null?void 0:a.voteLatency)==null?void 0:b.color},children:_(a==null?void 0:a.voteLatency.text)}),u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.voteTxns)}),u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.nonVoteTxns)}),u.jsx(ui,{content:u.jsxs(Zr,{columns:"auto auto",rows:"2",gapX:"3",children:[u.jsx(q,{children:"Transaction"}),u.jsx(q,{children:"Priority"}),u.jsxs(q,{children:[a==null?void 0:a.transactionFeeFull," SOL"]}),u.jsxs(q,{children:[a==null?void 0:a.priorityFeeFull," SOL"]})]}),children:u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.totalFees)})}),u.jsx(ui,{content:`${a==null?void 0:a.tipsFull} SOL`,children:u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.tips)})}),u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.durationText)}),(a==null?void 0:a.computeUnits)!==void 0?u.jsx(q,{className:y,align:"right",style:{padding:0},children:u.jsxs(u.Fragment,{children:[_(a==null?void 0:a.computeUnits.toLocaleString()),u.jsx("span",{className:Kr.computeUnitsPct,children:(a==null?void 0:a.computeUnitsPct)!==void 0?`${uk}(${_(a==null?void 0:a.computeUnitsPct)}%)`:null})]})}):u.jsx(q,{className:y,align:"right",children:_()})]})}const Kxt="_my-slots_476vd_1",Xxt="_summary-container_476vd_8",Jxt="_name_476vd_13",Qxt="_you_476vd_22",e2t="_mobile_476vd_26",t2t="_primary-text_476vd_32",n2t="_secondary-text_476vd_40",r2t="_divider_476vd_47",i2t="_firedancer_476vd_55",o2t="_frankendancer_476vd_59",a2t="_agave_476vd_63",s2t="_jito_476vd_67",l2t="_paladin_476vd_71",u2t="_bam_476vd_75",c2t="_sig_476vd_79",d2t="_rakurai_476vd_83",f2t="_harmonic_476vd_89",h2t="_major-minor-version-text_476vd_93",p2t="_remaining-version-text_476vd_97",m2t="_time-ago_476vd_102",g2t="_right-aligned_476vd_105",Go={mySlots:Kxt,summaryContainer:Xxt,name:Jxt,you:Qxt,mobile:e2t,primaryText:t2t,secondaryText:n2t,divider:r2t,firedancer:i2t,frankendancer:o2t,agave:a2t,jito:s2t,paladin:l2t,bam:u2t,sig:c2t,rakurai:d2t,harmonic:f2t,majorMinorVersionText:h2t,remainingVersionText:p2t,timeAgo:m2t,rightAligned:g2t},v2t="_arrow-dropdown_mvcj2_1",y2t={arrowDropdown:v2t};function b2t({align:e,children:t}){const[n,r]=m.useState(!1);return u.jsx(zg,{align:e,content:t,isOpen:n,onOpenChange:r,children:u.jsx(hs,{variant:"ghost",size:"1",className:y2t.arrowDropdown,children:n?u.jsx(F$,{}):u.jsx(A$,{})})})}function Ppe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(V,{direction:"column",className:Go.summaryContainer,gap:"2",mr:"2",children:[u.jsxs(V,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:30,isYou:i}),u.jsx(q,{className:Te(Go.name,{[Go.you]:i}),children:o})]}),u.jsx(q,{className:Go.primaryText,children:n}),u.jsx(Fpe,{slot:e,peer:r,showTime:t})]})}function zpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(V,{direction:"column",gap:"1",children:[u.jsxs(V,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(q,{className:Te(Go.name,Go.mobile),children:o}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(q,{className:Go.primaryText,children:n})]}),u.jsx(Fpe,{slot:e,peer:r,showTime:t,full:!0})]})}function Dpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(V,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(q,{className:Go.primaryText,children:o}),u.jsx(b2t,{align:"start",children:u.jsxs(V,{p:"1",direction:"column",gap:"2",className:Go.mobile,children:[u.jsx(q,{children:n}),u.jsx(_2t,{slot:e,peer:r,showTime:t})]})})]})}function Ape(e){var p;const t=X(Ig),{client:n,version:r,countryCode:i,countryFlag:o,cityName:a}=PM(e),s=e?nre(e):void 0,l=t?t.activeStake+t.delinquentStake:0n,c=l>0n?Number(s)/Number(l)*100:void 0,d=s!==void 0?`${BN(s)}${c!==void 0?` \u2022 ${P$(c,{significantDigits:4,trailingZeroes:!1})}%`:""}`:void 0,f=HN(((p=e==null?void 0:e.gossip)==null?void 0:p.sockets.tvu)??"");return!Cb(n)&&!Cb(d)&&!f?null:{client:n,version:r,countryCode:i,countryFlag:o,cityName:a,stakeText:d??"",ipText:f||"Offline"}}function Fpe({slot:e,peer:t,showTime:n,full:r}){const i=Ape(t);if(!i)return null;const{client:o,version:a,countryCode:s,countryFlag:l,cityName:c,stakeText:d,ipText:f}=i;return u.jsxs(V,{gap:"4",minWidth:"0",justify:"between",className:Go.secondaryText,children:[u.jsxs(V,{direction:"column",minWidth:"0",children:[u.jsx(ui,{content:`${o??"Unknown"}${a!=null?` v${a}`:""}`,children:u.jsxs(V,{gap:"1",children:[u.jsx(V,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(O_,{slot:e,size:"medium"})}),u.jsx(Upe,{client:o,version:a})]})}),c&&s&&u.jsx(ui,{content:`${c}, ${s}`,children:u.jsxs(V,{gap:"1",children:[u.jsx(V,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(q,{children:l})}),u.jsx(Bpe,{cityName:c,countryCode:s})]})})]}),u.jsxs(V,{gap:"4",children:[u.jsxs(V,{direction:"column",width:"180px",align:r?"end":"start",children:[u.jsx(q,{children:d}),u.jsx(q,{children:f})]}),u.jsx(V,{width:"165px",justify:r?"end":"start",children:n&&u.jsx(Wpe,{slot:e,align:r?"right":"left",multiline:!0})})]})]})}function _2t({slot:e,peer:t,showTime:n}){const r=Ape(t);if(!r)return null;const{client:i,version:o,countryCode:a,countryFlag:s,cityName:l,stakeText:c,ipText:d}=r;return u.jsxs(V,{gap:"2",minWidth:"0",justify:"between",direction:"column",children:[u.jsxs(V,{gap:"1",children:[u.jsx(O_,{slot:e,size:"small"}),u.jsx(Upe,{client:i,version:o})]}),l&&a&&u.jsxs(V,{gap:"1",children:[u.jsx(q,{children:s}),u.jsx(Bpe,{cityName:l,countryCode:a})]}),u.jsx(q,{children:c}),u.jsx(q,{children:d}),n&&u.jsx(Mt,{children:u.jsx(Wpe,{slot:e,align:"left"})})]})}function Bpe({cityName:e,countryCode:t}){return u.jsxs(V,{minWidth:"0",children:[u.jsx(q,{truncate:!0,children:e}),u.jsxs(q,{children:["\xA0",t]})]})}function Upe({client:e,version:t}){const n=(e??"Unknown").split(" "),r=n[0],i=n[1],o=Go[r.toLowerCase()],a=t==null?void 0:t.match(/^(\d+\.\d+)(\..+)$/),s=a?a[1]:t??"",l=a?a[2]:"";return u.jsxs(V,{minWidth:"0",children:[u.jsxs(q,{truncate:!0,children:[u.jsx(q,{className:o,children:r}),i&&u.jsxs(q,{className:Go[i.toLowerCase()],children:["\xA0",i]}),t&&u.jsx(q,{children:"\xA0"})]}),t&&u.jsxs(q,{className:Te(Go.majorMinorVersionText,o),children:["v",s]}),l&&u.jsx(q,{truncate:!0,className:Te(Go.remainingVersionText,o),children:l})]})}function Wpe({slot:e,align:t,multiline:n=!1}){const{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}=npe(e);if(r===void 0)return;const a=i?Mpe(i):"",s=o?n?[a,o]:[`${a} (${o})`]:[a];return u.jsx(oP,{nanoTs:r,lines:s,textClassName:Te(Go.timeAgo,{[Go.rightAligned]:t==="right"})})}const Vpe="(min-width: 900px)",sP="(min-width: 600px)";function x2t({slot:e}){var f,p,v,_;const{isLeader:t}=ma(e),n=X(jre),r=Is(e),i=Is(e+1),o=Is(e+2),a=Is(e+3),s=[0,1,2,3].some(y=>n.has(e+y)),l=((f=r.publish)==null?void 0:f.skipped)||((p=i.publish)==null?void 0:p.skipped)||((v=o.publish)==null?void 0:v.skipped)||((_=a.publish)==null?void 0:_.skipped),c=Hn(Vpe),d=Hn(sP);return u.jsx("div",{className:Te(aP.card,{[GS.mySlots]:t,[aP.lateVote]:s,[aP.skipped]:l}),children:c?u.jsxs(V,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ppe,{slot:e,showTime:!0}),u.jsx(R1,{slot:e})]}):d?u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e,showTime:!0}),u.jsx(R1,{slot:e})]}):u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e,showTime:!0}),u.jsx(R1,{slot:e})]})})}const w2t="_card_wweyx_1",k2t={card:w2t};function S2t({slot:e}){const t=X(oo),{isLeader:n}=ma(e),r=Hn(Vpe),i=Hn(sP);return u.jsx("div",{className:Te(k2t.card,{[GS.mySlots]:n}),children:r?u.jsxs(V,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ppe,{slot:e}),u.jsx(R1,{slot:e,currentSlot:t})]}):i?u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e}),u.jsx(R1,{slot:e,currentSlot:t})]}):u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e}),u.jsx(R1,{slot:e,currentSlot:t})]})})}var C2t=Object.defineProperty,j2t=(e,t,n)=>t in e?C2t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,YS=(e,t,n)=>j2t(e,typeof t!="symbol"?t+"":t,n),lP=new Map,uP=new WeakMap,Hpe=0,T2t=void 0;function I2t(e){return e?(uP.has(e)||(Hpe+=1,uP.set(e,Hpe.toString())),uP.get(e)):"0"}function E2t(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?I2t(e.root):e[t]}`).toString()}function N2t(e){const t=E2t(e);let n=lP.get(t);if(!n){const r=new Map;let i;const o=new IntersectionObserver(a=>{a.forEach(s=>{var l;const c=s.isIntersecting&&i.some(d=>s.intersectionRatio>=d);e.trackVisibility&&typeof s.isVisible>"u"&&(s.isVisible=c),(l=r.get(s.target))==null||l.forEach(d=>{d(c,s)})})},e);i=o.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:o,elements:r},lP.set(t,n)}return n}function $2t(e,t,n={},r=T2t){if(typeof window.IntersectionObserver>"u"&&r!==void 0){const l=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:i,observer:o,elements:a}=N2t(n),s=a.get(e)||[];return a.has(e)||a.set(e,s),s.push(t),o.observe(e),function(){s.splice(s.indexOf(t),1),s.length===0&&(a.delete(e),o.unobserve(e)),a.size===0&&(o.disconnect(),lP.delete(i))}}function M2t(e){return typeof e.children!="function"}var Zpe=class extends m.Component{constructor(e){super(e),YS(this,"node",null),YS(this,"_unobserveCb",null),YS(this,"handleNode",t=>{this.node&&(this.unobserve(),!t&&!this.props.triggerOnce&&!this.props.skip&&this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=t||null,this.observeNode()}),YS(this,"handleChange",(t,n)=>{t&&this.props.triggerOnce&&this.unobserve(),M2t(this.props)||this.setState({inView:t,entry:n}),this.props.onChange&&this.props.onChange(t,n)}),this.state={inView:!!e.initialInView,entry:void 0}}componentDidMount(){this.unobserve(),this.observeNode()}componentDidUpdate(e){(e.rootMargin!==this.props.rootMargin||e.root!==this.props.root||e.threshold!==this.props.threshold||e.skip!==this.props.skip||e.trackVisibility!==this.props.trackVisibility||e.delay!==this.props.delay)&&(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i,fallbackInView:o}=this.props;this._unobserveCb=$2t(this.node,this.handleChange,{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i},o)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:e}=this.props;if(typeof e=="function"){const{inView:v,entry:_}=this.state;return e({inView:v,entry:_,ref:this.handleNode})}const{as:t,triggerOnce:n,threshold:r,root:i,rootMargin:o,onChange:a,skip:s,trackVisibility:l,delay:c,initialInView:d,fallbackInView:f,...p}=this.props;return m.createElement(t||"div",{ref:this.handleNode,...p},e)}};function cP({slot:e,lastCardSlot:t,setCardCount:n,children:r}){return e!==t?r:u.jsxs(u.Fragment,{children:[u.jsx(Zpe,{onChange:i=>{i||n("decrease")},children:r}),u.jsx(Zpe,{onChange:i=>{i&&n("increase")}})]})}const L2t="_preload_1uziq_1",R2t={preload:L2t};function O2t({slot:e}){var a,s;Is(e);const t=OM(e),n=Hk(t),[r,i]=Vl($ie((a=n==null?void 0:n.info)==null?void 0:a.icon_url)),o=!r&&((s=n==null?void 0:n.info)!=null&&s.icon_url)?n.info.icon_url:void 0;return u.jsx("div",{className:R2t.preload,children:u.jsx("img",{src:o,onError:()=>i()})})}const KS=$n*5;function P2t({topCardSlotLeader:e,bottomCardSlotLeader:t,searchLeaderSlots:n}){if(n){const r=[],i=n.indexOf(t),o=n.indexOf(e);if(i>0)for(let a=1;a<=KS&&i-a>=0;a++){const s=n[i-a];for(let l=0;l<$n;l++)r.push(s+l)}if(o>0)for(let a=1;a<=KS&&o+a0)for(let a=r;a>r-KS;a--)o.push(a);if(i>0)for(let a=i;au.jsx(O2t,{slot:i},i))})}const D2t=10,A2t=2,F2t=1;function B2t(e,t){switch(t){case"increase":return e+A2t;case"decrease":return Math.max(1,e-F2t)}}function U2t(){const e=X(eu),t=X(An),n=X(Aa),r=X(di),[i,o]=m.useReducer(B2t,D2t),a=t??(e??0)+Ate*$n,{upcoming:s,now:l,past:c}=m.useMemo(()=>yxt({cardCount:i,currentLeaderSlot:e,epoch:r,searchLeaderSlots:n,slotOverride:t,topSlot:a}),[i,e,r,n,t,a]);if(e===void 0)return;if((n==null?void 0:n.length)===0)return u.jsx(V,{justify:"center",align:"center",style:{color:pN,fontSize:"24px",letterSpacing:"-0.96px",minHeight:"300px"},children:u.jsx(q,{children:"No slots found."})});const d=s[0]??l[0]??c[0]??-1,f=c[c.length-1]??l[l.length-1]??s[s.length-1]??-1;return u.jsxs(u.Fragment,{children:[!!s.length&&u.jsx(dP,{sectionName:"Upcoming",children:s.map(p=>u.jsx(cP,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(bxt,{slot:p},p)},p))}),!!l.length&&u.jsx(dP,{sectionName:"Now",children:l.map(p=>u.jsx(cP,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(S2t,{slot:p},p)},p))}),!!c.length&&u.jsx(dP,{sectionName:"Past",children:c.map(p=>u.jsx(cP,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(x2t,{slot:p})},p))}),u.jsx(z2t,{topCardSlotLeader:d,bottomCardSlotLeader:f})]})}function dP({children:e,sectionName:t}){const n=Hn(sP);return u.jsxs(V,{gap:"2",align:"stretch",children:[n&&u.jsxs(V,{direction:"column",gap:"2",align:"center",children:[u.jsx("div",{style:{width:"1px",flex:1,background:PN,height:"10px"}}),u.jsx(q,{style:{transform:"rotate(180deg)",writingMode:"vertical-rl",color:Kte},size:"2",children:t}),u.jsx("div",{style:{width:"1px",flex:1,background:PN,height:"10px"}})]}),u.jsx(V,{direction:"column",flexGrow:"1",gap:"2",minWidth:"0",children:e})]})}const W2t="_container_1hof6_1",V2t="_button_1hof6_5",qpe={container:W2t,button:V2t};function H2t(){const[e,t]=Vl(An),n=X(eu);if(e===void 0||n===void 0)return null;const r=e<=n+Ate*$n;return u.jsx("div",{className:qpe.container,children:u.jsxs(hs,{className:qpe.button,style:{bottom:r?void 0:"8px"},onClick:()=>t(void 0),children:[u.jsx(q,{children:"Skip to Realtime"}),r?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const Z2t="_label_14v9a_1",q2t="_value_14v9a_5",Gpe={label:Z2t,value:q2t};function G2t(){const{progressSinceLastLeader:e,nextSlotText:t,nextLeaderSlot:n}=P_({showNowIfCurrent:!0}),r=n!==void 0?` (${n})`:"";return u.jsxs(V,{align:"center",gap:"2",children:[u.jsxs(q,{className:Gpe.label,children:["Next leader slot",r]}),u.jsx(a1,{width:"60px",height:"8px",value:e}),u.jsx(q,{className:Gpe.value,children:t})]})}const Y2t="_container_bc437_1",K2t="_search-box_bc437_18",X2t="_label_bc437_29",J2t="_search-button_bc437_33",Q2t="_disabled_bc437_56",ewt="_my-slots_bc437_64",twt="_late-vote-slots_bc437_84",nwt="_skipped-slots_bc437_102",rwt="_skip-rate-label_bc437_130",iwt="_skip-rate-value_bc437_135",Eo={container:Y2t,searchBox:K2t,label:X2t,searchButton:J2t,disabled:Q2t,mySlots:ewt,lateVoteSlots:twt,skippedSlots:nwt,skipRateLabel:rwt,skipRateValue:iwt};function XS(){const{searchType:e}=yx.useSearch(),t=Q0({from:yx.fullPath}),n=m.useCallback(r=>{t({search:{searchType:r},replace:!0})},[t]);return{searchType:e,setSearchType:n}}function owt(){const{searchText:e}=yx.useSearch(),t=Q0({from:yx.fullPath}),n=m.useCallback(r=>{t({search:{searchText:r,searchType:zi.text},replace:!0})},[t]);return{searchText:e,setSearchText:n}}function awt(){const e=Ee(Fze),t=Ee(An),{searchType:n}=XS(),{searchText:r,setSearchText:i}=owt(),[o,a]=m.useState(r),s=Ip(c=>{e(c),i(c)},1e3);m.useEffect(()=>{!s.isPending()&&o!==r&&a(r)},[s,o,r]);const l=()=>{i(""),t(void 0),e("")};return i_(()=>{n===zi.text&&e(r)}),u.jsxs(V,{className:Eo.container,gap:"2",wrap:"wrap",children:[u.jsx(Mt,{className:Eo.searchBox,children:u.jsxs(J7,{placeholder:"Name, Client Id, Pubkey, or Slot (use , for multiple)",variant:"soft",color:"gray",onChange:c=>{a(c.currentTarget.value),s(c.currentTarget.value)},value:o,children:[u.jsx(M4,{children:u.jsx(qie,{height:"16",width:"16",style:{color:ON}})}),o&&u.jsx(M4,{children:u.jsx(nl,{size:"1",variant:"ghost",children:u.jsx(B$,{height:"14",width:"14",style:{color:ON},onClick:l})})})]})}),u.jsx(lwt,{resetSearchText:l}),Vi&&u.jsx(cwt,{resetSearchText:l}),u.jsx(uwt,{resetSearchText:l}),u.jsx(swt,{}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(G2t,{})]})}function swt(){const e=X(Sre),t=m.useMemo(()=>e?`${(e.skip_rate*100).toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:2})}%`:"-",[e]);return u.jsxs(V,{justify:"center",align:"center",gap:"1",children:[u.jsx(q,{className:Eo.skipRateLabel,children:"Skip Rate"}),u.jsx(q,{className:e!=null&&e.skip_rate?Eo.skipRateValue:Eo.skipRateLabel,children:t})]})}function lwt({resetSearchText:e}){const t=X(ao),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=XS(),a=((t==null?void 0:t.length)??0)*4,s=m.useCallback(()=>{n(t)},[n,t]);m.useEffect(()=>{i===zi.mySlots&&n(t)},[t,n]);const l=()=>{e(),r(void 0),i===zi.mySlots?o(zi.text):(o(zi.mySlots),s())},c=i===zi.mySlots,d=!(t!=null&&t.length);return u.jsx(ui,{content:"Number of slots this validator is leader in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(E7,{className:Te(Eo.searchButton,Eo.mySlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle my slots",pressed:c,disabled:d,children:[u.jsx(q,{className:Eo.label,children:"My Slots"}),u.jsx(q,{children:a})]})})})})}function uwt({resetSearchText:e}){const t=X(u3),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=XS(),a=(t==null?void 0:t.length)??0,s=m.useCallback(()=>{const f=t==null?void 0:t.map(p=>p-p%4);n([...new Set(f)])},[n,t]);m.useEffect(()=>{i===zi.skippedSlots&&s()},[s]);const l=()=>{e(),r(void 0),i===zi.skippedSlots?o(zi.text):t!=null&&t.length&&(o(zi.skippedSlots),s())},c=i===zi.skippedSlots,d=!(t!=null&&t.length);return u.jsx(ui,{content:"Number of slots this validator has skipped in the current epoch since it was last restarted. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(E7,{className:Te(Eo.searchButton,Eo.skippedSlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle skipped slots",pressed:c,disabled:!c&&d,children:[u.jsx(q,{className:Eo.label,children:"My Skipped Slots"}),u.jsx(q,{children:a})]})})})})}function cwt({resetSearchText:e}){const t=X(jre),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=XS(),a=t.size,s=m.useMemo(()=>Array.from(new Set([...t].map(p=>xi(p)))),[t]),l=m.useCallback(()=>{n(s)},[n,s]);m.useEffect(()=>{i===zi.lateVoteSlots&&n(s)},[s,n]);const c=()=>{e(),r(void 0),i===zi.lateVoteSlots?o(zi.text):(o(zi.lateVoteSlots),l())},d=i===zi.lateVoteSlots,f=!t.size;return u.jsx(ui,{content:"Number of slots this validator has voted late in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(E7,{className:Te(Eo.searchButton,Eo.lateVoteSlots,f&&Eo.disabled),onClick:c,"aria-label":"Toggle late vote slots",pressed:d,disabled:f,children:[u.jsx(q,{className:Eo.label,children:"My Late Votes"}),u.jsx(q,{children:a})]})})})})}var Ype={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 -* http://hammerjs.github.io/ -* -* Copyright (c) 2016 Jorik Tangelder; -* Licensed under the MIT license */(function(e){(function(t,n,r,i){var o=["","webkit","Moz","MS","ms","o"],a=n.createElement("div"),s="function",l=Math.round,c=Math.abs,d=Date.now;function f(R,G,ie){return setTimeout(S(R,ie),G)}function p(R,G,ie){return Array.isArray(R)?(v(R,ie[G],ie),!0):!1}function v(R,G,ie){var Ie;if(R)if(R.forEach)R.forEach(G,ie);else if(R.length!==i)for(Ie=0;Ie\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Kt=t.console&&(t.console.warn||t.console.log);return Kt&&Kt.call(t.console,Ie,vt),R.apply(this,arguments)}}var y;typeof Object.assign!="function"?y=function(R){if(R===i||R===null)throw new TypeError("Cannot convert undefined or null to object");for(var G=Object(R),ie=1;ie-1}function M(R){return R.trim().split(/\s+/g)}function P(R,G,ie){if(R.indexOf&&!ie)return R.indexOf(G);for(var Ie=0;IeDi[G]}),Ie}function O(R,G){for(var ie,Ie,ze=G[0].toUpperCase()+G.slice(1),vt=0;vt1&&!ie.firstMultiple?ie.firstMultiple=pn(G):ze===1&&(ie.firstMultiple=!1);var vt=ie.firstInput,Kt=ie.firstMultiple,In=Kt?Kt.center:vt.center,Di=G.center=Yn(Ie);G.timeStamp=d(),G.deltaTime=G.timeStamp-vt.timeStamp,G.angle=Pn(In,Di),G.distance=wr(In,Di),De(ie,G),G.offsetDirection=Kn(G.deltaX,G.deltaY);var Ti=fr(G.deltaTime,G.deltaX,G.deltaY);G.overallVelocityX=Ti.x,G.overallVelocityY=Ti.y,G.overallVelocity=c(Ti.x)>c(Ti.y)?Ti.x:Ti.y,G.scale=Kt?tr(Kt.pointers,Ie):1,G.rotation=Kt?$r(Kt.pointers,Ie):0,G.maxPointers=ie.prevInput?G.pointers.length>ie.prevInput.maxPointers?G.pointers.length:ie.prevInput.maxPointers:G.pointers.length,Dt(ie,G);var Ji=R.element;$(G.srcEvent.target,Ji)&&(Ji=G.srcEvent.target),G.target=Ji}function De(R,G){var ie=G.center,Ie=R.offsetDelta||{},ze=R.prevDelta||{},vt=R.prevInput||{};(G.eventType===he||vt.eventType===re)&&(ze=R.prevDelta={x:vt.deltaX||0,y:vt.deltaY||0},Ie=R.offsetDelta={x:ie.x,y:ie.y}),G.deltaX=ze.x+(ie.x-Ie.x),G.deltaY=ze.y+(ie.y-Ie.y)}function Dt(R,G){var ie=R.lastInterval||G,Ie=G.timeStamp-ie.timeStamp,ze,vt,Kt,In;if(G.eventType!=ge&&(Ie>ke||ie.velocity===i)){var Di=G.deltaX-ie.deltaX,Ti=G.deltaY-ie.deltaY,Ji=fr(Ie,Di,Ti);vt=Ji.x,Kt=Ji.y,ze=c(Ji.x)>c(Ji.y)?Ji.x:Ji.y,In=Kn(Di,Ti),R.lastInterval=G}else ze=ie.velocity,vt=ie.velocityX,Kt=ie.velocityY,In=ie.direction;G.velocity=ze,G.velocityX=vt,G.velocityY=Kt,G.direction=In}function pn(R){for(var G=[],ie=0;ie=c(G)?R<0?pe:ye:G<0?Se:Ce}function wr(R,G,ie){ie||(ie=St);var Ie=G[ie[0]]-R[ie[0]],ze=G[ie[1]]-R[ie[1]];return Math.sqrt(Ie*Ie+ze*ze)}function Pn(R,G,ie){ie||(ie=St);var Ie=G[ie[0]]-R[ie[0]],ze=G[ie[1]]-R[ie[1]];return Math.atan2(ze,Ie)*180/Math.PI}function $r(R,G){return Pn(G[1],G[0],ut)+Pn(R[1],R[0],ut)}function tr(R,G){return wr(G[0],G[1],ut)/wr(R[0],R[1],ut)}var kr={mousedown:he,mousemove:ue,mouseup:re},ni="mousedown",uo="mousemove mouseup";function Ki(){this.evEl=ni,this.evWin=uo,this.pressed=!1,ct.apply(this,arguments)}x(Ki,ct,{handler:function(R){var G=kr[R.type];G&he&&R.button===0&&(this.pressed=!0),G&ue&&R.which!==1&&(G=re),this.pressed&&(G&re&&(this.pressed=!1),this.callback(this.manager,G,{pointers:[R],changedPointers:[R],pointerType:je,srcEvent:R}))}});var No={pointerdown:he,pointermove:ue,pointerup:re,pointercancel:ge,pointerout:ge},Os={2:U,3:ae,4:je,5:me},zn="pointerdown",co="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(zn="MSPointerDown",co="MSPointerMove MSPointerUp MSPointerCancel");function _a(){this.evEl=zn,this.evWin=co,ct.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}x(_a,ct,{handler:function(R){var G=this.store,ie=!1,Ie=R.type.toLowerCase().replace("ms",""),ze=No[Ie],vt=Os[R.pointerType]||R.pointerType,Kt=vt==U,In=P(G,R.pointerId,"pointerId");ze&he&&(R.button===0||Kt)?In<0&&(G.push(R),In=G.length-1):ze&(re|ge)&&(ie=!0),!(In<0)&&(G[In]=R,this.callback(this.manager,ze,{pointers:G,changedPointers:[R],pointerType:vt,srcEvent:R}),ie&&G.splice(In,1))}});var yc={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},bc="touchstart",_c="touchstart touchmove touchend touchcancel";function qa(){this.evTarget=bc,this.evWin=_c,this.started=!1,ct.apply(this,arguments)}x(qa,ct,{handler:function(R){var G=yc[R.type];if(G===he&&(this.started=!0),!!this.started){var ie=kl.call(this,R,G);G&(re|ge)&&ie[0].length-ie[1].length===0&&(this.started=!1),this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:U,srcEvent:R})}}});function kl(R,G){var ie=te(R.touches),Ie=te(R.changedTouches);return G&(re|ge)&&(ie=Z(ie.concat(Ie),"identifier")),[ie,Ie]}var pi={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},Bn="touchstart touchmove touchend touchcancel";function Mr(){this.evTarget=Bn,this.targetIds={},ct.apply(this,arguments)}x(Mr,ct,{handler:function(R){var G=pi[R.type],ie=$o.call(this,R,G);ie&&this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:U,srcEvent:R})}});function $o(R,G){var ie=te(R.touches),Ie=this.targetIds;if(G&(he|ue)&&ie.length===1)return Ie[ie[0].identifier]=!0,[ie,ie];var ze,vt,Kt=te(R.changedTouches),In=[],Di=this.target;if(vt=ie.filter(function(Ti){return $(Ti.target,Di)}),G===he)for(ze=0;ze-1&&Ie.splice(vt,1)};setTimeout(ze,fo)}}function Yt(R){for(var G=R.srcEvent.clientX,ie=R.srcEvent.clientY,Ie=0;Ie-1&&this.requireFail.splice(G,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(R){return!!this.simultaneous[R.id]},emit:function(R){var G=this,ie=this.state;function Ie(ze){G.manager.emit(ze,R)}ie=ji&&Ie(G.options.event+Pd(ie))},tryEmit:function(R){if(this.canEmit())return this.emit(R);this.state=go},canEmit:function(){for(var R=0;RG.threshold&&ze&G.direction},attrTest:function(R){return Xi.prototype.attrTest.call(this,R)&&(this.state&Wr||!(this.state&Wr)&&this.directionTest(R))},emit:function(R){this.pX=R.deltaX,this.pY=R.deltaY;var G=zd(R.direction);G&&(R.additionalEvent=this.options.event+G),this._super.emit.call(this,R)}});function xc(){Xi.apply(this,arguments)}x(xc,Xi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(R){return this._super.attrTest.call(this,R)&&(Math.abs(R.scale-1)>this.options.threshold||this.state&Wr)},emit:function(R){if(R.scale!==1){var G=R.scale<1?"in":"out";R.additionalEvent=this.options.event+G}this._super.emit.call(this,R)}});function _u(){Xo.apply(this,arguments),this._timer=null,this._input=null}x(_u,Xo,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Ga]},process:function(R){var G=this.options,ie=R.pointers.length===G.pointers,Ie=R.distanceG.time;if(this._input=R,!Ie||!ie||R.eventType&(re|ge)&&!ze)this.reset();else if(R.eventType&he)this.reset(),this._timer=f(function(){this.state=gi,this.tryEmit()},G.time,this);else if(R.eventType&re)return gi;return go},reset:function(){clearTimeout(this._timer)},emit:function(R){this.state===gi&&(R&&R.eventType&re?this.manager.emit(this.options.event+"up",R):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}});function wc(){Xi.apply(this,arguments)}x(wc,Xi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(R){return this._super.attrTest.call(this,R)&&(Math.abs(R.rotation)>this.options.threshold||this.state&Wr)}});function kc(){Xi.apply(this,arguments)}x(kc,Xi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Be|Ge,pointers:1},getTouchAction:function(){return ii.prototype.getTouchAction.call(this)},attrTest:function(R){var G=this.options.direction,ie;return G&(Be|Ge)?ie=R.overallVelocity:G&Be?ie=R.overallVelocityX:G&Ge&&(ie=R.overallVelocityY),this._super.attrTest.call(this,R)&&G&R.offsetDirection&&R.distance>this.options.threshold&&R.maxPointers==this.options.pointers&&c(ie)>this.options.velocity&&R.eventType&re},emit:function(R){var G=zd(R.offsetDirection);G&&this.manager.emit(this.options.event+G,R),this.manager.emit(this.options.event,R)}});function Sl(){Xo.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}x(Sl,Xo,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ya]},process:function(R){var G=this.options,ie=R.pointers.length===G.pointers,Ie=R.distance0?-1:1)}const hwt=function(){let e=0,t=null;return fe(null,(n,r,i)=>{t&&clearTimeout(t),i*e<0&&(e=0);const o=n(oo);if(o===void 0)return;const a=n(An),s=a&&a=s){const l=e%100;r(Uze,fwt(e/s)),e=l}t=setTimeout(()=>e=0,100)})}();function pwt(){const e=Ee(hwt),t=Ee(Wxt),n=m.useRef(null),r=i=>{i.altKey||i.ctrlKey||i.metaKey||i.shiftKey||!i.deltaY||e(i.deltaY)};return Pg(()=>t()),m.useEffect(()=>{if(!n.current)return;const i=new Kpe(n.current);return i.get("pan").set({direction:Kpe.DIRECTION_VERTICAL}),i.on("panup pandown",o=>{var a;o.pointerType.includes("touch")&&e(-(((a=o.changedPointers[0])==null?void 0:a.movementY)??0)*5)}),()=>{i.destroy()}},[e]),u.jsxs(UZ,{overflow:"hidden",flexShrink:"1",onWheel:r,maxWidth:"100%",className:GS.scroll,ref:n,children:[u.jsx(awt,{}),u.jsx(H2t,{}),u.jsx(V,{direction:"column",gap:"4",children:u.jsx(U2t,{})})]})}const mwt=fe(e=>e(eu)!=null&&!!e(_re));function gwt(){const e=X(mwt),t=Ee(An),n=Ee(Tg);i_(()=>{t(void 0),n(void 0)});const r=i=>{i.button===1&&t(void 0)};if(e)return u.jsx(V,{direction:"column",gap:"4",width:"100%",maxHeight:`calc(100vh - ${kb+Sb+12}px)`,onMouseDown:r,children:u.jsx(pwt,{})})}const Xpe=_s(["mySlots","skippedSlots","lateVoteSlots","text"]),zi=Xpe.enum,vwt={searchType:zi.text,searchText:""},ywt=kt({searchType:Xpe.default(zi.text).catch(zi.text),searchText:Et().default("").catch("")}),yx=up("/leaderSchedule")({component:gwt,validateSearch:ywt,search:{middlewares:[K8e(vwt),Y8e(["searchType","searchText"])]},beforeLoad:({search:e})=>{if(e.searchText.includes(";"))throw uT({to:"/leaderSchedule",search:{...e,searchText:e.searchText.replaceAll(";",",")}})}});function O1({inBytes:e,value:t}){const n=Ug(t)??0;let r="-";if(n!==void 0)if(e){const{value:i,unit:o}=Ib(n);r=`${i.toLocaleString()} ${o}`}else r=Math.trunc(n).toLocaleString();return u.jsx(ti,{align:"right",children:r})}const JS=["ContactInfoV1","Vote","LowestSlot","SnapshotHashes","AccountsHashes","EpochSlots","VersionV1","VersionV2","NodeInstance","DuplicateShred","IncrementalSnapshotHashes","ContactInfoV2","RestartLastVotedForkSlots","RestartHeaviestFork"],bwt=["pull_request","pull_response","push","ping","pong","prune"],fP="30px",gc="10px",hP="160px",Jpe="10px",Qpe=`repeat(auto-fill, minmax(${hP}, 1fr)`,eme="44px",QS="200px",eC="320px",_wt="_header-text_n52ov_1",xwt="_storage-stats-container_n52ov_6",wwt="_root_n52ov_11",Ld={headerText:_wt,storageStatsContainer:xwt,root:wwt};function kwt({storage:e}){const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((n,r)=>{var i,o,a;return{type:JS[r],activeEntries:(i=e.count)==null?void 0:i[r],egressCount:(o=e.count_tx)==null?void 0:o[r],egressBytes:(a=e.bytes_tx)==null?void 0:a[r]}}).sort((n,r)=>r.activeEntries-n.activeEntries)},[e]);if(t)return u.jsxs(V,{className:Ld.storageStatsContainer,direction:"column",gap:gc,minWidth:eC,height:"100%",minHeight:"250px",children:[u.jsx(q,{className:Ld.headerText,children:"Storage Stats"}),u.jsxs(q0,{variant:"surface",className:Ld.root,size:"1",children:[u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Entry Type"}),u.jsx(Wi,{align:"right",children:"Total Entries"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map(n=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(ti,{align:"right",children:n.activeEntries.toLocaleString()}),u.jsx(O1,{value:n.egressCount??0}),u.jsx(O1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}function tC(){return tC=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Cwt={nivo:["#e8c1a0","#f47560","#f1e15b","#e8a838","#61cdbb","#97e3d5"],category10:d5,accent:f5,dark2:h5,paired:p5,pastel1:m5,pastel2:g5,set1:v5,set2:y5,set3:Y_,tableau10:b5},jwt={brown_blueGreen:tm,purpleRed_green:nm,pink_yellowGreen:rm,purple_orange:im,red_blue:om,red_grey:am,red_yellow_blue:sm,red_yellow_green:lm,spectral:um},Twt={brown_blueGreen:_5,purpleRed_green:x5,pink_yellowGreen:w5,purple_orange:k5,red_blue:S5,red_grey:C5,red_yellow_blue:j5,red_yellow_green:T5,spectral:I5},Iwt={blues:wm,greens:km,greys:Sm,oranges:Tm,purples:Cm,reds:jm,blue_green:cm,blue_purple:dm,green_blue:fm,orange_red:hm,purple_blue_green:pm,purple_blue:mm,purple_red:gm,red_purple:vm,yellow_green_blue:ym,yellow_green:bm,yellow_orange_brown:_m,yellow_orange_red:xm},Ewt={blues:B5,greens:U5,greys:W5,oranges:Z5,purples:V5,reds:H5,turbo:tS,viridis:rS,inferno:oS,magma:iS,plasma:aS,cividis:q5,warm:Y5,cool:K5,cubehelixDefault:G5,blue_green:E5,blue_purple:N5,green_blue:$5,orange_red:M5,purple_blue_green:L5,purple_blue:R5,purple_red:O5,red_purple:P5,yellow_green_blue:z5,yellow_green:D5,yellow_orange_brown:A5,yellow_orange_red:F5};tC({},Cwt,jwt,Iwt);var Nwt={rainbow:J5,sinebow:eS};tC({},Twt,Ewt,Nwt);var $wt=function(e,t){if(typeof e=="function")return e;if(F_(e)){if(function(l){return l.theme!==void 0}(e)){if(t===void 0)throw new Error("Unable to use color from theme as no theme was provided");var n=yl(t,e.theme);if(n===void 0)throw new Error("Color from theme is undefined at path: '"+e.theme+"'");return function(){return n}}if(function(l){return l.from!==void 0}(e)){var r=function(l){return yl(l,e.from)};if(Array.isArray(e.modifiers)){for(var i,o=[],a=function(){var l=i.value,c=l[0],d=l[1];if(c==="brighter")o.push(function(f){return f.brighter(d)});else if(c==="darker")o.push(function(f){return f.darker(d)});else{if(c!=="opacity")throw new Error("Invalid color modifier: '"+c+"', must be one of: 'brighter', 'darker', 'opacity'");o.push(function(f){return f.opacity=d,f})}},s=Swt(e.modifiers);!(i=s()).done;)a();return o.length===0?r:function(l){return o.reduce(function(c,d){return d(c)},qp(r(l))).toString()}}return r}throw new Error("Invalid color spec, you should either specify 'theme' or 'from' when using a config object")}return function(){return e}},nC=function(e,t){return m.useMemo(function(){return $wt(e,t)},[e,t])};_e.oneOfType([_e.string,_e.func,_e.shape({theme:_e.string.isRequired}),_e.shape({from:_e.string.isRequired,modifiers:_e.arrayOf(_e.array)})]);function Nr(){return Nr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=t})},Owt={startAngle:{enter:function(e){return Nr({},e,{endAngle:e.startAngle})},update:function(e){return e},leave:function(e){return Nr({},e,{startAngle:e.endAngle})}},middleAngle:{enter:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return Nr({},e,{startAngle:t,endAngle:t})},update:function(e){return e},leave:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return Nr({},e,{startAngle:t,endAngle:t})}},endAngle:{enter:function(e){return Nr({},e,{startAngle:e.endAngle})},update:function(e){return e},leave:function(e){return Nr({},e,{endAngle:e.startAngle})}},innerRadius:{enter:function(e){return Nr({},e,{outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{innerRadius:e.outerRadius})}},centerRadius:{enter:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return Nr({},e,{innerRadius:t,outerRadius:t})},update:function(e){return e},leave:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return Nr({},e,{innerRadius:t,outerRadius:t})}},outerRadius:{enter:function(e){return Nr({},e,{innerRadius:e.outerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{outerRadius:e.innerRadius})}},pushIn:{enter:function(e){return Nr({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})}},pushOut:{enter:function(e){return Nr({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})}}},rme=function(e,t){return m.useMemo(function(){var n=Owt[e];return{enter:function(r){return Nr({progress:0},n.enter(r.arc),t?t.enter(r):{})},update:function(r){return Nr({progress:1},n.update(r.arc),t?t.update(r):{})},leave:function(r){return Nr({progress:0},n.leave(r.arc),t?t.leave(r):{})}}},[e,t])},Pwt=function(e,t){var n=pht(e)-Math.PI/2,r=e.innerRadius+(e.outerRadius-e.innerRadius)*t;return k1(n,r)},zwt=function(e){return function(t,n,r,i){return t_([t,n,r,i],function(o,a,s,l){var c=Pwt({startAngle:o,endAngle:a,innerRadius:s,outerRadius:l},e);return"translate("+c.x+","+c.y+")"})}},Dwt=function(e,t,n,r){t===void 0&&(t=.5),n===void 0&&(n="innerRadius");var i=w1(),o=i.animate,a=i.config,s=rme(n,r);return{transition:M$(e,{keys:function(l){return l.id},initial:s.update,from:s.enter,enter:s.update,update:s.update,leave:s.leave,config:a,immediate:!o}),interpolate:zwt(t)}},Awt=function(e){var t=e.center,n=e.data,r=e.transitionMode,i=e.label,o=e.radiusOffset,a=e.skipAngle,s=e.textColor,l=e.component,c=l===void 0?Lwt:l,d=ex(i),f=Ms(),p=nC(s,f),v=m.useMemo(function(){return n.filter(function(x){return Math.abs(ZR(x.arc.endAngle-x.arc.startAngle))>=a})},[n,a]),_=Dwt(v,o,r),y=_.transition,b=_.interpolate,w=c;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:y(function(x,S){return m.createElement(w,{key:S.id,datum:S,label:d(S),style:Nr({},x,{transform:b(x.startAngle,x.endAngle,x.innerRadius,x.outerRadius),textColor:p(S)})})})})},Fwt=function(e){var t=e.label,n=e.style,r=Ms();return u.jsxs(iu.g,{opacity:n.opacity,children:[u.jsx(iu.path,{fill:"none",stroke:n.linkColor,strokeWidth:n.thickness,d:n.path}),u.jsx(iu.text,{transform:n.textPosition,textAnchor:n.textAnchor,dominantBaseline:"central",style:Nr({},r.labels.text,{fill:n.textColor}),children:t})]})},Bwt=function(e){var t=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2);return t1.5*Math.PI?"start":"end"},ime=function(e,t,n,r){var i,o,a=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2),s=k1(a,e.outerRadius+t),l=k1(a,e.outerRadius+t+n);return a1.5*Math.PI?(i="after",o={x:l.x+r,y:l.y}):(i="before",o={x:l.x-r,y:l.y}),{side:i,points:[s,l,o]}},Uwt=CR().x(function(e){return e.x}).y(function(e){return e.y}),Wwt=function(e,t,n,r,i,o,a){return t_([e,t,n,r,i,o,a],function(s,l,c,d,f,p,v){var _=ime({startAngle:s,endAngle:l,outerRadius:d},f,p,v).points;return Uwt(_)})},Vwt=function(e,t,n,r){return t_([e,t,n,r],function(i,o,a,s){return Bwt({startAngle:i,endAngle:o})})},Hwt=function(e,t,n,r,i,o,a,s){return t_([e,t,n,r,i,o,a,s],function(l,c,d,f,p,v,_,y){var b=ime({startAngle:l,endAngle:c,outerRadius:f},p,v,_),w=b.points,x=b.side,S=w[2];return x==="before"?S.x-=y:S.x+=y,"translate("+S.x+","+S.y+")"})},Zwt=function(e){var t=e.data,n=e.offset,r=n===void 0?0:n,i=e.diagonalLength,o=e.straightLength,a=e.skipAngle,s=a===void 0?0:a,l=e.textOffset,c=e.linkColor,d=e.textColor,f=w1(),p=f.animate,v=f.config,_=Ms(),y=nC(c,_),b=nC(d,_),w=function(S,C){return m.useMemo(function(){return Rwt(S,C)},[S,C])}(t,s),x=function(S){var C=S.offset,j=S.diagonalLength,T=S.straightLength,E=S.textOffset,$=S.getLinkColor,A=S.getTextColor;return m.useMemo(function(){return{enter:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:A(M),opacity:0}},update:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:j,straightLength:T,textOffset:E,linkColor:$(M),textColor:A(M),opacity:1}},leave:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:A(M),opacity:0}}}},[j,T,E,$,A,C])}({offset:r,diagonalLength:i,straightLength:o,textOffset:l,getLinkColor:y,getTextColor:b});return{transition:M$(w,{keys:function(S){return S.id},initial:x.update,from:x.enter,enter:x.update,update:x.update,leave:x.leave,config:v,immediate:!p}),interpolateLink:Wwt,interpolateTextAnchor:Vwt,interpolateTextPosition:Hwt}},qwt=function(e){var t=e.center,n=e.data,r=e.label,i=e.skipAngle,o=e.offset,a=e.diagonalLength,s=e.straightLength,l=e.strokeWidth,c=e.textOffset,d=e.textColor,f=e.linkColor,p=e.component,v=p===void 0?Fwt:p,_=ex(r),y=Zwt({data:n,skipAngle:i,offset:o,diagonalLength:a,straightLength:s,textOffset:c,linkColor:f,textColor:d}),b=y.transition,w=y.interpolateLink,x=y.interpolateTextAnchor,S=y.interpolateTextPosition,C=v;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(j,T){return m.createElement(C,{key:T.id,datum:T,label:_(T),style:Nr({},j,{thickness:l,path:w(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength),textAnchor:x(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius),textPosition:S(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength,j.textOffset)})})})})},Gwt=function(e){var t=e.datum,n=e.style,r=e.onClick,i=e.onMouseEnter,o=e.onMouseMove,a=e.onMouseLeave,s=m.useCallback(function(f){return r==null?void 0:r(t,f)},[r,t]),l=m.useCallback(function(f){return i==null?void 0:i(t,f)},[i,t]),c=m.useCallback(function(f){return o==null?void 0:o(t,f)},[o,t]),d=m.useCallback(function(f){return a==null?void 0:a(t,f)},[a,t]);return u.jsx(iu.path,{d:n.path,opacity:n.opacity,fill:t.fill||n.color,stroke:n.borderColor,strokeWidth:n.borderWidth,onClick:r?s:void 0,onMouseEnter:i?l:void 0,onMouseMove:o?c:void 0,onMouseLeave:a?d:void 0})},Ywt=function(e,t,n,r,i){return t_([e,t,n,r],function(o,a,s,l){return i({startAngle:o,endAngle:a,innerRadius:Math.max(0,s),outerRadius:Math.max(0,l)})})},Kwt=function(e,t,n){t===void 0&&(t="innerRadius");var r=w1(),i=r.animate,o=r.config,a=rme(t,n);return{transition:M$(e,{keys:function(s){return s.id},initial:a.update,from:a.enter,enter:a.update,update:a.update,leave:a.leave,config:o,immediate:!i}),interpolate:Ywt}},Xwt=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.onClick,s=e.onMouseEnter,l=e.onMouseMove,c=e.onMouseLeave,d=e.transitionMode,f=e.component,p=f===void 0?Gwt:f,v=Ms(),_=nC(o,v),y=Kwt(n,d,{enter:function(S){return{opacity:0,color:S.color,borderColor:_(S)}},update:function(S){return{opacity:1,color:S.color,borderColor:_(S)}},leave:function(S){return{opacity:0,color:S.color,borderColor:_(S)}}}),b=y.transition,w=y.interpolate,x=p;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(S,C){return m.createElement(x,{key:C.id,datum:C,style:Nr({},S,{borderWidth:i,path:w(S.startAngle,S.endAngle,S.innerRadius,S.outerRadius,r)}),onClick:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:c})})})},Jwt=function(e,t,n,r,i,o){o===void 0&&(o=!0);var a=[],s=k1(Td(r),n);a.push([s.x,s.y]);var l=k1(Td(i),n);a.push([l.x,l.y]);for(var c=Math.round(Math.min(r,i));c<=Math.round(Math.max(r,i));c++)if(c%90==0){var d=k1(Td(c),n);a.push([d.x,d.y])}a=a.map(function(b){var w=b[0],x=b[1];return[e+w,t+x]}),o&&a.push([e,t]);var f=a.map(function(b){return b[0]}),p=a.map(function(b){return b[1]}),v=Math.min.apply(Math,f),_=Math.max.apply(Math,f),y=Math.min.apply(Math,p);return{points:a,x:v,y,width:_-v,height:Math.max.apply(Math,p)-y}},Qwt=function(e){var t=e===void 0?{}:e,n=t.cornerRadius,r=n===void 0?0:n,i=t.padAngle,o=i===void 0?0:i;return m.useMemo(function(){return tct().innerRadius(function(a){return a.innerRadius}).outerRadius(function(a){return a.outerRadius}).cornerRadius(r).padAngle(o)},[r,o])};function rC(){return rC=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(pP[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(s4t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(pP[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},c4t=function(e,t){return m.useMemo(function(){return u4t(e,t)},[e,t])};function Pm(){return Pm=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}var d4t=function(e){var t=e.width,n=e.height,r=e.legends,i=e.data,o=e.toggleSerie;return u.jsx(u.Fragment,{children:r.map(function(a,s){var l;return u.jsx(sfe,Pm({},a,{containerWidth:t,containerHeight:n,data:(l=a.data)!=null?l:i,toggleSerie:a.toggleSerie?o:void 0}),s)})})},Ct={id:"id",value:"value",sortByValue:!1,innerRadius:0,padAngle:0,cornerRadius:0,layers:["arcs","arcLinkLabels","arcLabels","legends"],startAngle:0,endAngle:360,fit:!0,activeInnerRadiusOffset:0,activeOuterRadiusOffset:0,borderWidth:0,borderColor:{from:"color",modifiers:[["darker",1]]},enableArcLabels:!0,arcLabel:"formattedValue",arcLabelsSkipAngle:0,arcLabelsRadiusOffset:.5,arcLabelsTextColor:{theme:"labels.text.fill"},enableArcLinkLabels:!0,arcLinkLabel:"id",arcLinkLabelsSkipAngle:0,arcLinkLabelsOffset:0,arcLinkLabelsDiagonalLength:16,arcLinkLabelsStraightLength:24,arcLinkLabelsThickness:1,arcLinkLabelsTextOffset:6,arcLinkLabelsTextColor:{theme:"labels.text.fill"},arcLinkLabelsColor:{theme:"axis.ticks.line.stroke"},colors:{scheme:"nivo"},defs:[],fill:[],isInteractive:!0,animate:!0,motionConfig:"gentle",transitionMode:"innerRadius",tooltip:function(e){var t=e.datum;return u.jsx(WL,{id:t.id,value:t.formattedValue,enableChip:!0,color:t.color})},legends:[],role:"img"},f4t=["points"],h4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.colors,l=s===void 0?Ct.colors:s,c=ex(r),d=ex(o),f=WR(a),p=c4t(l,"id");return m.useMemo(function(){return t.map(function(v){var _,y=c(v),b=d(v),w={id:y,label:(_=v.label)!=null?_:y,hidden:!1,value:b,formattedValue:f(b),data:v};return Pm({},w,{color:p(w)})})},[t,c,d,f,p])},p4t=function(e){var t=e.data,n=e.startAngle,r=e.endAngle,i=e.innerRadius,o=e.outerRadius,a=e.padAngle,s=e.sortByValue,l=e.activeId,c=e.activeInnerRadiusOffset,d=e.activeOuterRadiusOffset,f=e.hiddenIds,p=e.forwardLegendData,v=m.useMemo(function(){var w=act().value(function(x){return x.value}).startAngle(Td(n)).endAngle(Td(r)).padAngle(Td(a));return s||w.sortValues(null),w},[n,r,a,s]),_=m.useMemo(function(){var w=t.filter(function(x){return!f.includes(x.id)});return{dataWithArc:v(w).map(function(x){var S=Math.abs(x.endAngle-x.startAngle);return Pm({},x.data,{arc:{index:x.index,startAngle:x.startAngle,endAngle:x.endAngle,innerRadius:l===x.data.id?i-c:i,outerRadius:l===x.data.id?o+d:o,thickness:o-i,padAngle:x.padAngle,angle:S,angleDeg:ZR(S)}})}),legendData:t.map(function(x){return{id:x.id,label:x.label,color:x.color,hidden:f.includes(x.id),data:x}})}},[v,t,f,l,i,c,o,d]),y=_.legendData,b=m.useRef(p);return m.useEffect(function(){typeof b.current=="function"&&b.current(y)},[b,y]),_},m4t=function(e){var t=e.activeId,n=e.onActiveIdChange,r=e.defaultActiveId,i=t!==void 0,o=m.useState(i||r===void 0?null:r),a=o[0],s=o[1];return{activeId:i?t:a,setActiveId:m.useCallback(function(l){n&&n(l),i||s(l)},[i,n,s])}},g4t=function(e){var t=e.data,n=e.width,r=e.height,i=e.innerRadius,o=i===void 0?Ct.innerRadius:i,a=e.startAngle,s=a===void 0?Ct.startAngle:a,l=e.endAngle,c=l===void 0?Ct.endAngle:l,d=e.padAngle,f=d===void 0?Ct.padAngle:d,p=e.sortByValue,v=p===void 0?Ct.sortByValue:p,_=e.cornerRadius,y=_===void 0?Ct.cornerRadius:_,b=e.fit,w=b===void 0?Ct.fit:b,x=e.activeInnerRadiusOffset,S=x===void 0?Ct.activeInnerRadiusOffset:x,C=e.activeOuterRadiusOffset,j=C===void 0?Ct.activeOuterRadiusOffset:C,T=e.activeId,E=e.onActiveIdChange,$=e.defaultActiveId,A=e.forwardLegendData,M=m4t({activeId:T,onActiveIdChange:E,defaultActiveId:$}),P=M.activeId,te=M.setActiveId,Z=m.useState([]),O=Z[0],J=Z[1],D=m.useMemo(function(){var H,ee=Math.min(n,r)/2,ce=ee*Math.min(o,1),U=n/2,ae=r/2;if(w){var je=Jwt(U,ae,ee,s-90,c-90),me=je.points,ke=lme(je,f4t),he=Math.min(n/ke.width,r/ke.height),ue={width:ke.width*he,height:ke.height*he};ue.x=(n-ue.width)/2,ue.y=(r-ue.height)/2,U=(U-ke.x)/ke.width*ke.width*he+ue.x,ae=(ae-ke.y)/ke.height*ke.height*he+ue.y,H={box:ke,ratio:he,points:me},ee*=he,ce*=he}return{centerX:U,centerY:ae,radius:ee,innerRadius:ce,debug:H}},[n,r,o,s,c,w]),Y=p4t({data:t,startAngle:s,endAngle:c,innerRadius:D.innerRadius,outerRadius:D.radius,padAngle:f,sortByValue:v,activeId:P,activeInnerRadiusOffset:S,activeOuterRadiusOffset:j,hiddenIds:O,forwardLegendData:A}),F=m.useCallback(function(H){J(function(ee){return ee.indexOf(H)>-1?ee.filter(function(ce){return ce!==H}):[].concat(ee,[H])})},[]);return Pm({arcGenerator:Qwt({cornerRadius:y,padAngle:Td(f)}),activeId:P,setActiveId:te,toggleSerie:F},Y,D)},v4t=function(e){var t=e.dataWithArc,n=e.arcGenerator,r=e.centerX,i=e.centerY,o=e.radius,a=e.innerRadius;return m.useMemo(function(){return{dataWithArc:t,arcGenerator:n,centerX:r,centerY:i,radius:o,innerRadius:a}},[t,n,r,i,o,a])},y4t=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.isInteractive,s=e.onClick,l=e.onMouseEnter,c=e.onMouseMove,d=e.onMouseLeave,f=e.setActiveId,p=e.tooltip,v=e.transitionMode,_=$nt(),y=_.showTooltipFromEvent,b=_.hideTooltip,w=m.useMemo(function(){if(a)return function(j,T){s==null||s(j,T)}},[a,s]),x=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),f(j.id),l==null||l(j,T)}},[a,y,f,l,p]),S=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),c==null||c(j,T)}},[a,y,c,p]),C=m.useMemo(function(){if(a)return function(j,T){b(),f(null),d==null||d(j,T)}},[a,b,f,d]);return u.jsx(Xwt,{center:t,data:n,arcGenerator:r,borderWidth:i,borderColor:o,transitionMode:v,onClick:w,onMouseEnter:x,onMouseMove:S,onMouseLeave:C})},b4t=["isInteractive","animate","motionConfig","theme","renderWrapper"],_4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.sortByValue,l=s===void 0?Ct.sortByValue:s,c=e.layers,d=c===void 0?Ct.layers:c,f=e.startAngle,p=f===void 0?Ct.startAngle:f,v=e.endAngle,_=v===void 0?Ct.endAngle:v,y=e.padAngle,b=y===void 0?Ct.padAngle:y,w=e.fit,x=w===void 0?Ct.fit:w,S=e.innerRadius,C=S===void 0?Ct.innerRadius:S,j=e.cornerRadius,T=j===void 0?Ct.cornerRadius:j,E=e.activeInnerRadiusOffset,$=E===void 0?Ct.activeInnerRadiusOffset:E,A=e.activeOuterRadiusOffset,M=A===void 0?Ct.activeOuterRadiusOffset:A,P=e.width,te=e.height,Z=e.margin,O=e.colors,J=O===void 0?Ct.colors:O,D=e.borderWidth,Y=D===void 0?Ct.borderWidth:D,F=e.borderColor,H=F===void 0?Ct.borderColor:F,ee=e.enableArcLabels,ce=ee===void 0?Ct.enableArcLabels:ee,U=e.arcLabel,ae=U===void 0?Ct.arcLabel:U,je=e.arcLabelsSkipAngle,me=je===void 0?Ct.arcLabelsSkipAngle:je,ke=e.arcLabelsTextColor,he=ke===void 0?Ct.arcLabelsTextColor:ke,ue=e.arcLabelsRadiusOffset,re=ue===void 0?Ct.arcLabelsRadiusOffset:ue,ge=e.arcLabelsComponent,$e=e.enableArcLinkLabels,pe=$e===void 0?Ct.enableArcLinkLabels:$e,ye=e.arcLinkLabel,Se=ye===void 0?Ct.arcLinkLabel:ye,Ce=e.arcLinkLabelsSkipAngle,Be=Ce===void 0?Ct.arcLinkLabelsSkipAngle:Ce,Ge=e.arcLinkLabelsOffset,xt=Ge===void 0?Ct.arcLinkLabelsOffset:Ge,St=e.arcLinkLabelsDiagonalLength,ut=St===void 0?Ct.arcLinkLabelsDiagonalLength:St,ct=e.arcLinkLabelsStraightLength,bt=ct===void 0?Ct.arcLinkLabelsStraightLength:ct,Qe=e.arcLinkLabelsThickness,Ke=Qe===void 0?Ct.arcLinkLabelsThickness:Qe,De=e.arcLinkLabelsTextOffset,Dt=De===void 0?Ct.arcLinkLabelsTextOffset:De,pn=e.arcLinkLabelsTextColor,Yn=pn===void 0?Ct.arcLinkLabelsTextColor:pn,fr=e.arcLinkLabelsColor,Kn=fr===void 0?Ct.arcLinkLabelsColor:fr,wr=e.arcLinkLabelComponent,Pn=e.defs,$r=Pn===void 0?Ct.defs:Pn,tr=e.fill,kr=tr===void 0?Ct.fill:tr,ni=e.isInteractive,uo=ni===void 0?Ct.isInteractive:ni,Ki=e.onClick,No=e.onMouseEnter,Os=e.onMouseMove,zn=e.onMouseLeave,co=e.tooltip,_a=co===void 0?Ct.tooltip:co,yc=e.activeId,bc=e.onActiveIdChange,_c=e.defaultActiveId,qa=e.transitionMode,kl=qa===void 0?Ct.transitionMode:qa,pi=e.legends,Bn=pi===void 0?Ct.legends:pi,Mr=e.forwardLegendData,$o=e.role,fo=$o===void 0?Ct.role:$o,Lr=qde(P,te,Z),ho=Lr.outerWidth,xa=Lr.outerHeight,it=Lr.margin,Yt=Lr.innerWidth,nr=Lr.innerHeight,ht=h4t({data:t,id:r,value:o,valueFormat:a,colors:J}),ri=g4t({data:ht,width:Yt,height:nr,fit:x,innerRadius:C,startAngle:p,endAngle:_,padAngle:b,sortByValue:l,cornerRadius:T,activeInnerRadiusOffset:$,activeOuterRadiusOffset:M,activeId:yc,onActiveIdChange:bc,defaultActiveId:_c,forwardLegendData:Mr}),Ga=ri.dataWithArc,Ya=ri.legendData,Ko=ri.arcGenerator,mi=ri.centerX,Un=ri.centerY,hr=ri.radius,Sr=ri.innerRadius,Ka=ri.setActiveId,po=ri.toggleSerie,mo=kht($r,Ga,kr),Wr={arcs:null,arcLinkLabels:null,arcLabels:null,legends:null};d.includes("arcs")&&(Wr.arcs=u.jsx(y4t,{center:[mi,Un],data:Ga,arcGenerator:Ko,borderWidth:Y,borderColor:H,isInteractive:uo,onClick:Ki,onMouseEnter:No,onMouseMove:Os,onMouseLeave:zn,setActiveId:Ka,tooltip:_a,transitionMode:kl},"arcs")),pe&&d.includes("arcLinkLabels")&&(Wr.arcLinkLabels=u.jsx(qwt,{center:[mi,Un],data:Ga,label:Se,skipAngle:Be,offset:xt,diagonalLength:ut,straightLength:bt,strokeWidth:Ke,textOffset:Dt,textColor:Yn,linkColor:Kn,component:wr},"arcLinkLabels")),ce&&d.includes("arcLabels")&&(Wr.arcLabels=u.jsx(Awt,{center:[mi,Un],data:Ga,label:ae,radiusOffset:re,skipAngle:me,textColor:he,transitionMode:kl,component:ge},"arcLabels")),Bn.length>0&&d.includes("legends")&&(Wr.legends=u.jsx(d4t,{width:Yt,height:nr,data:Ya,legends:Bn,toggleSerie:po},"legends"));var wa=v4t({dataWithArc:Ga,arcGenerator:Ko,centerX:mi,centerY:Un,radius:hr,innerRadius:Sr});return u.jsx(KR,{width:ho,height:xa,margin:it,defs:mo,role:fo,children:d.map(function(ji,gi){return Wr[ji]!==void 0?Wr[ji]:typeof ji=="function"?u.jsx(m.Fragment,{children:m.createElement(ji,wa)},gi):null})})},ume=function(e){var t=e.isInteractive,n=t===void 0?Ct.isInteractive:t,r=e.animate,i=r===void 0?Ct.animate:r,o=e.motionConfig,a=o===void 0?Ct.motionConfig:o,s=e.theme,l=e.renderWrapper,c=lme(e,b4t);return u.jsx(VR,{animate:i,isInteractive:n,motionConfig:a,renderWrapper:l,theme:s,children:u.jsx(_4t,Pm({isInteractive:n},c))})};const x4t="_label_1nl74_1",w4t="_value_1nl74_6",cme={label:x4t,value:w4t};function bh(e){return u.jsx(Ey,{children:u.jsx(k4t,{...e})})}function k4t({value:e,label:t,valueColor:n}){const r=typeof e=="string"?e:e.toLocaleString();return u.jsxs(V,{direction:"column",minWidth:"0",gap:"10px",children:[u.jsx(q,{className:cme.label,children:t}),u.jsx(q,{className:cme.value,style:n?{color:n}:void 0,children:r})]})}const S4t="_header-text_uidb2_1",C4t="_tooltip_uidb2_8",iC={headerText:S4t,tooltip:C4t};function j4t({storage:e}){var a;const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((s,l)=>{var c,d,f;return{type:JS[l],activeEntries:(c=e.count)==null?void 0:c[l],egressCount:(d=e.count_tx)==null?void 0:d[l],egressBytes:(f=e.bytes_tx)==null?void 0:f[l]}})},[e]),n=m.useMemo(()=>{const s=rt.sum(e.count),l=e.capacity-s;return`${Math.round(s/l*100)}%`},[e.capacity,e.count]),r=koe(e.expired_count,1e4),i=m.useRef([]);m.useMemo(()=>{i.current.push({ts:performance.now(),value:e.expired_count})},[e.expired_count]),r_(()=>{const s=performance.now();for(;i.current.length>1&&s-i.current[0].ts>6e4;)i.current.shift()},1e3);const o=e.expired_count-(((a=i.current[0])==null?void 0:a.value)??0);if(t)return u.jsxs(V,{direction:"column",gap:gc,children:[u.jsx(q,{className:iC.headerText,children:"Storage Stats"}),u.jsxs(V,{gap:eme,wrap:"wrap",children:[u.jsxs(Zr,{columns:Qpe,minWidth:hP,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(bh,{label:"Expired (/s)",value:`${Math.trunc(r.valuePerSecond??0)}`}),u.jsx(bh,{label:"Expired (Last Min)",value:`${o.toLocaleString()}`}),u.jsx(bh,{label:"Total Evicted",value:e.evicted_count}),u.jsx(bh,{label:"Capacity Used",value:n})]}),u.jsx(Mt,{minWidth:QS,minHeight:QS,flexGrow:"1",flexBasis:"0",children:u.jsx(I4t,{storage:e,usedCapacity:n})})]})]})}const dme=["#48295C","#562800","#132D21"],T4t=e=>dme[e%dme.length];function I4t({storage:e,usedCapacity:t}){const n=m.useMemo(()=>{const r=rt.sum(e.count);return[{id:"unused",label:"Unused",value:e.capacity-r,color:"#222"},...e.count.map((i,o)=>({id:JS[o]+o,label:JS[o],value:i})).sort((i,o)=>o.value-i.value).map((i,o)=>({...i,color:T4t(o)}))]},[e]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:o=>o.data.color,arcLabelsSkipAngle:10,arcLinkLabelsSkipAngle:10,arcLabelsTextColor:"#9F9F9F",enableArcLinkLabels:!1,layers:["arcs","arcLabels",E4t(t)],tooltip:N4t,animate:!1,innerRadius:.7,arcLabel:o=>o.data.label})})}function E4t(e){return function({dataWithArc:t,centerX:n,centerY:r}){return u.jsx("text",{y:r-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"28px",fill:"#9F9F9F"},children:u.jsx("tspan",{x:n,dy:5,children:e})})}}function N4t(e){const t=e.datum.value;return u.jsx("div",{className:iC.tooltip,children:u.jsxs(q,{style:{whiteSpace:"nowrap"},children:[e.datum.label,":\xA0",t]})})}function $4t({messages:e}){const t=m.useMemo(()=>e.num_bytes_rx.map((n,r)=>{var i,o,a,s;return{type:bwt[r],ingressBytes:(i=e.num_bytes_rx)==null?void 0:i[r],egressBytes:(o=e.num_bytes_tx)==null?void 0:o[r],ingressMessages:(a=e.num_messages_rx)==null?void 0:a[r],egressMessages:(s=e.num_messages_tx)==null?void 0:s[r]}}),[e]);if(t)return u.jsxs(V,{direction:"column",gap:gc,minWidth:eC,children:[u.jsx(q,{className:Ld.headerText,children:"Message Stats"}),u.jsxs(q0,{variant:"surface",className:Ld.root,size:"1",children:[u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Message Type"}),u.jsx(Wi,{align:"right",children:"Ingress /s"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Ingress Throughput /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map((n,r)=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(O1,{value:n.ingressMessages??0}),u.jsx(O1,{value:n.egressMessages??0}),u.jsx(O1,{value:n.ingressBytes??0,inBytes:!0}),u.jsx(O1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}const fme={id:"Stake",direction:-1};function M4t(){const e=S6(),t=X(NG),n=X($G),r=m.useRef(new Map),[i,o]=m.useState([]),[a,s]=m.useState(fme);m.useEffect(()=>{var f;if(!t)return;const d=Object.entries(t);if(!i.length&&((f=d[0])!=null&&f[1])){const p=Object.keys(d[0][1]);o(p),s(fme)}for(const[p,v]of d)r.current.set(p,v)},[i,t]),m.useEffect(()=>{if(n)for(const d of n.changes){const f=r.current.get(d.row_index.toString());f&&(f[d.column_name]=d.new_value)}},[n]);const l=m.useCallback((d,f)=>{if(f{(i==null?void 0:i.indexOf(d))!==void 0&&s(f=>{let p=-1;f.id===d&&(p=-f.direction);const v=i.filter(b=>b!==d),_=new Array(v.length).fill(0),y={col:[d,...v],dir:[p,..._]};return e({topic:"gossip",key:"query_sort",id:32,params:y}),{id:d,direction:p}})},[i,e]);return{query:l,sort:c,colIds:i,rowsCacheRef:r,colSorting:a}}const L4t="_header-text_1ozln_1",R4t="_peer-table_1ozln_6",O4t="_header-cell_1ozln_22",P4t="_header-separator_1ozln_26",oC={headerText:L4t,peerTable:R4t,headerCell:O4t,headerSeparator:P4t},z4t=1e3,mP=0,aC=e=>{if(typeof e=="number"){const t=Ib(e);return`${t.value} ${t.unit}`}return e},D4t={Stake:{width:80,align:"right",format:e=>typeof e=="number"?Math.abs(Math.trunc(e/dd)).toLocaleString():e},Pubkey:{width:200},Name:{width:160},Country:{width:80},"IP Addr":{width:80},"Ingress Pull":{width:80,align:"right",format:aC},"Ingress Push":{width:80,align:"right",format:aC},"Egress Pull":{width:80,align:"right",format:aC},"Egress Push":{width:80,align:"right",format:aC}},sC={width:150};function bx(e){return D4t[e]??sC}function A4t(){const e=X(EG)??z4t,{query:t,sort:n,colIds:r,rowsCacheRef:i,colSorting:o}=M4t(),[a,s]=m.useState(()=>({row:-1,colId:""})),[l,c]=m.useState(!1),[d,f]=m.useState(Object.fromEntries(r.map(b=>[b,bx(b).width??sC.width])));m.useEffect(()=>{f(Object.fromEntries(r.map(b=>[b,bx(b).width??sC.width])))},[r]);const p=m.useCallback(({startIndex:b,endIndex:w})=>{const x=Math.max(0,b-mP),S=Math.min(w+mP,e>0?e-1:w+mP);t(x,S)},[t,e]),v=m.useMemo(()=>F4t(r,d),[r,d]),_=m.useRef(a);_.current=a,MFe("c",b=>{var w,x;if(b.ctrlKey){const S=(x=(w=i.current)==null?void 0:w.get(_.current.row.toString()))==null?void 0:x[_.current.colId];S&&(UN(S.toString()),c(!0),setTimeout(()=>{c(!1)},500))}});const y=m.useCallback((b,w)=>{f(x=>({...x,[b]:Math.max(w,bx(b).width??sC.width)}))},[]);return u.jsxs(V,{direction:"column",gap:gc,flexGrow:"1",children:[u.jsx(q,{className:oC.headerText,children:"Peers"}),u.jsx(Mt,{flexGrow:"1",minHeight:"300px",asChild:!0,children:u.jsx(pKe,{className:Te("rt-TableRoot","rt-r-size-1","rt-variant-surface",oC.peerTable),totalCount:e,increaseViewportBy:200,rangeChanged:p,components:v,itemContent:b=>{var x;const w=(x=i.current)==null?void 0:x.get(b.toString());return w?r.map(S=>{const C=bx(S),j=C.align,T=C.format,E=w==null?void 0:w[S],$=a.row===b&&a.colId===S;return u.jsx(ti,{align:j,onClick:()=>s({row:b,colId:S}),style:{outline:$?`1px dashed var(--gray-${l?11:10})`:"none",outlineOffset:-2},children:u.jsx(q,{truncate:!0,as:"div",children:T?T(E):E})},S)}):r!=null&&r.length?u.jsx(u.Fragment,{children:r.map(S=>u.jsx(ti,{children:"\xA0"},S))}):u.jsx(u.Fragment,{children:u.jsx(ti,{children:"&nsbsp;"})})},fixedHeaderContent:()=>u.jsx(la,{children:r.map(b=>{const{align:w}=bx(b),x=o.id===b?o.direction:void 0,S=C=>{C.preventDefault();const j=C.clientX,T=d[b],E=A=>y(b,T+(A.clientX-j)),$=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",$)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",$)};return u.jsx(Wi,{align:w,p:"0",children:u.jsxs(V,{align:"center",height:"100%",children:[u.jsx(Z0,{children:u.jsx(Mt,{flexGrow:"1",className:oC.headerCell,asChild:!0,children:u.jsx("button",{onClick:()=>n(b),children:u.jsxs(V,{align:"center",gap:"1",justify:w==="right"?"end":"start",children:[w==="right"&&u.jsx(hme,{direction:x}),u.jsx(q,{truncate:!0,title:b,as:"div",children:b}),w!=="right"&&u.jsx(hme,{direction:x})]})})})}),u.jsx("div",{style:{paddingLeft:"8px",paddingRight:"2px",cursor:"col-resize"},onPointerDown:S,children:u.jsx(ps,{orientation:"vertical",size:"2",className:oC.headerSeparator})})]})},b)})})})})]})}function hme({direction:e}){return u.jsxs(u.Fragment,{children:[e===-1&&u.jsx(A$,{height:12,width:12}),e===1&&u.jsx(F$,{height:12,width:12})]})}function F4t(e,t){return{Table:n=>u.jsxs("table",{...n,className:"rt-TableRootTable",style:{...n.style,overflow:"inherit",tableLayout:"fixed"},children:[u.jsx("colgroup",{children:e.map(r=>u.jsx("col",{style:{width:t[r]}},r))}),n.children]}),TableHead:n=>u.jsx(ip,{...n,style:{...n.style,background:"#0e131c"}}),TableRow:n=>u.jsx(la,{...n})}}function pme({activeStake:e,delinquentStake:t}){const n=m.useMemo(()=>[{id:"non-delinquent",label:"Non-delinquent",value:Number(e),color:xne,textColor:pk},{id:"delinquent",label:"Delinquent",value:Number(t),color:fd,textColor:fd}],[e,t]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:{datum:"data.color"},enableArcLabels:!1,enableArcLinkLabels:!1,layers:["arcs",B4t],tooltip:U4t,animate:!1,innerRadius:.7})})}const B4t=({dataWithArc:e,centerX:t,centerY:n})=>{const r=rt.sum(e.map(({value:i})=>i));return u.jsx("text",{y:n-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"12px",fill:"red"},children:e.map(({value:i,data:o,id:a},s)=>u.jsxs("tspan",{x:t,dy:`${s}em`,style:{fill:o.textColor},children:[(i/r*100).toFixed(2),"%"]},a))})};function U4t(e){const t=e.datum.value,n=Rs(BigInt(t));return u.jsx("div",{className:iC.tooltip,children:u.jsxs(q,{children:[e.datum.label,":\xA0",n]})})}function W4t(){{const e=X(Ig);if(!e)return null;const t=Rs(e.activeStake),n=Rs(e.delinquentStake);return u.jsxs(V,{direction:"column",gap:gc,children:[u.jsx(q,{className:iC.headerText,children:"Validator Stats"}),u.jsxs(V,{gap:eme,wrap:"wrap",children:[u.jsxs(Zr,{columns:Qpe,minWidth:hP,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(bh,{label:"Total Validators",value:e.validatorCount.toLocaleString(),valueColor:gN}),u.jsx(bh,{label:"Non-delinquent Stake",value:t,valueColor:pk}),u.jsx(bh,{label:"RPC Nodes",value:e.rpcCount.toLocaleString(),valueColor:Yu}),u.jsx(bh,{label:"Delinquent Stake",value:n,valueColor:fd})]}),u.jsx(Mt,{minWidth:QS,minHeight:QS,flexGrow:"1",flexBasis:"0",children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})]})}}const gP=2;function mme({colors:e,maxValue:t,history:n,capacity:r}){const i=m.useRef(),o=m.useRef(t);o.current=t;const a=m.useMemo(()=>{var y;if(!i.current||!n.length)return;const{height:s,width:l}=i.current;if(s<0||l<0)return;const c=r??n.length,d=c>1?l/(c-1):0,f=c-n.length,p=Math.max(o.current,Math.max(...n.flatMap(b=>b.filter(Cb))),1),v=n[n.length-1].length,_=Array.from({length:v}).map(()=>new Array);for(let b=0;bb.map(({x:w,y:x})=>`${w},${x}`).join(" "))},[n,r]);return u.jsx(Mt,{flexGrow:"1",minHeight:"80px",children:u.jsx($s,{children:({height:s,width:l})=>{if(i.current={height:s,width:l},!!a&&(a==null?void 0:a.length)===e.length)return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:s,style:{background:"#222222"},children:a.map((c,d)=>u.jsx("polyline",{points:c,stroke:e[d],strokeWidth:gP,fill:"none",strokeLinecap:"round",strokeOpacity:.8},e[d]))})}})})}const V4t=100,H4t=3e4,vP="#197CAE",yP="var(--amber-8)",gme="#CBD4D6",vme=[vP,yP],yme=Math.ceil(H4t/V4t);function Z4t(){const{value:e,history:t}=X(IG);return u.jsxs(Zr,{columns:{initial:"1",sm:"2",lg:"4"},gapY:"3",gapX:"7",children:[u.jsx(G4t,{health:e,history:t}),u.jsx(q4t,{health:e,history:t}),u.jsx(Y4t,{health:e,history:t}),u.jsx(K4t,{health:e,history:t})]})}function bme({title:e,children:t}){return u.jsxs(V,{direction:"column",gap:gc,children:[u.jsx(q,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:e}),u.jsx(Ey,{style:{flex:1},children:t})]})}function _me({value:e,label:t,valueColor:n,pct:r}){return u.jsxs(V,{direction:"column",children:[u.jsxs(V,{gap:"2",children:[u.jsx(q,{style:{color:"var(--gray-11)"},children:t}),u.jsxs(q,{style:{color:"var(--gray-10)"},children:[z$.format(r*100),"%"]})]}),u.jsx(q,{style:{color:n},size:"8",children:Math.round(e).toLocaleString()})]})}function bP({value:e,label:t,valueColor:n,pct:r,size:i}){return u.jsxs(V,{direction:"column",children:[u.jsx(q,{style:{color:"var(--gray-11)"},children:t}),u.jsx(q,{style:{color:n},size:i==="lg"?"8":"6",children:Math.round(e).toLocaleString()}),r!==void 0&&u.jsxs(q,{style:{color:"var(--gray-10)"},size:"2",children:[z$.format(r*100),"%"]})]})}function lC(e,t){const n=m.useRef(t);return n.current=t,m.useMemo(()=>e.map(r=>n.current(r.value)),[e])}function q4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_success,o=e.num_pull_response_entries_rx_success,a=i+o,s=Math.max(n,r,a),l=rt.clamp(i/n,0,1),c=rt.clamp(o/r,0,1),d=[gme,...vme],f=lC(t,p=>[p.num_push_entries_rx_success+p.num_pull_response_entries_rx_success,p.num_push_entries_rx_success,p.num_pull_response_entries_rx_success]);return u.jsx(bme,{title:"Entries Success /s",children:u.jsxs(V,{gap:"6",children:[u.jsxs(V,{direction:"column",gap:"3",children:[u.jsx(bP,{label:"Total",value:a,valueColor:gme,size:"lg"}),u.jsxs(V,{gap:"3",children:[u.jsx(bP,{label:"Push",value:i,valueColor:vP,pct:l}),u.jsx(bP,{label:"Pull",value:o,valueColor:yP,pct:c})]})]}),u.jsx(mme,{colors:d,maxValue:s,history:f,capacity:yme})]})})}function _P({title:e,valueA:t,valueB:n,totalA:r,totalB:i,labelA:o,labelB:a,history:s}){const l=t/r,c=n/i,d=Math.max(r,i);return u.jsx(bme,{title:e,children:u.jsxs(V,{gap:"6",height:"100%",children:[u.jsxs(V,{direction:"column",gap:"3",minWidth:"120px",children:[u.jsx(_me,{label:o,value:t,valueColor:vP,pct:rt.clamp(l,0,1)}),u.jsx(_me,{label:a,value:n,valueColor:yP,pct:rt.clamp(c,0,1)})]}),u.jsx(mme,{colors:vme,maxValue:d,history:s,capacity:yme})]})})}function G4t({health:e,history:t}){const n=e.num_push_messages_rx_success+e.num_push_messages_rx_failure,r=e.num_pull_response_messages_rx_success+e.num_pull_response_messages_rx_failure,i=e.num_push_messages_rx_failure,o=e.num_pull_response_messages_rx_failure,a=lC(t,s=>[s.num_push_messages_rx_failure,s.num_pull_response_messages_rx_failure]);return u.jsx(_P,{title:"Message Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function Y4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_duplicate,a=lC(t,s=>[s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_duplicate]);return u.jsx(_P,{title:"Entry Duplicates /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function K4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_failure-e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_failure-e.num_pull_response_entries_rx_duplicate,a=lC(t,s=>[s.num_push_entries_rx_failure-s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_failure-s.num_pull_response_entries_rx_duplicate]);return u.jsx(_P,{title:"Entry Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function X4t(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function J4t(){return this.eachAfter(X4t)}function Q4t(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this}function e3t(e,t){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(e.call(t,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function t3t(e,t){for(var n=this,r=[n],i=[],o,a,s,l=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a=0;)n+=r[i].value;t.value=n})}function i3t(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function o3t(e){for(var t=this,n=a3t(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function a3t(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function s3t(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function l3t(){return Array.from(this)}function u3t(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function c3t(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*d3t(){var e=this,t,n=[e],r,i,o;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,o=r.length;i=0;--s)i.push(o=a[s]=new uC(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(g3t)}function f3t(){return xP(this).eachBefore(m3t)}function h3t(e){return e.children}function p3t(e){return Array.isArray(e)?e[1]:null}function m3t(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function g3t(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function uC(e){this.data=e,this.depth=this.height=0,this.parent=null}uC.prototype=xP.prototype={constructor:uC,count:J4t,each:Q4t,eachAfter:t3t,eachBefore:e3t,find:n3t,sum:r3t,sort:i3t,path:o3t,ancestors:s3t,descendants:l3t,leaves:u3t,links:c3t,copy:f3t,[Symbol.iterator]:d3t};function v3t(e){if(typeof e!="function")throw new Error;return e}function _x(){return 0}function xx(e){return function(){return e}}function y3t(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function b3t(e,t,n,r,i){for(var o=e.children,a,s=-1,l=o.length,c=e.value&&(r-t)/e.value;++sx&&(x=c),T=b*b*j,S=Math.max(x/T,T/w),S>C){b-=c;break}C=S}a.push(l={value:b,dice:v<_,children:s.slice(d,f)}),l.dice?b3t(l,n,r,i,y?r+=_*b/y:o):_3t(l,n,r,y?n+=v*b/y:i,o),y-=b,d=f}return a}const xme=function e(t){function n(r,i,o,a,s){w3t(t,r,i,o,a,s)}return n.ratio=function(r){return e((r=+r)>1?r:1)},n}(x3t);function k3t(){var e=xme,t=!1,n=1,r=1,i=[0],o=_x,a=_x,s=_x,l=_x,c=_x;function d(p){return p.x0=p.y0=0,p.x1=n,p.y1=r,p.eachBefore(f),i=[0],t&&p.eachBefore(y3t),p}function f(p){var v=i[p.depth],_=p.x0+v,y=p.y0+v,b=p.x1-v,w=p.y1-v;b<_&&(_=b=(_+b)/2),w{let s=0,l=0;const c=[];for(;l{var p;const l=n[s];if(!l)return;const c=rt.sum(l.vote.map(v=>v.delinquent?0:Number(v.activated_stake))),d=ire(l.info),f=((p=l.info)==null?void 0:p.name)??void 0;return{stake:c,iconUrl:d,name:f}},[n]),o=X(yre);if(!r)return;const a=Ib(e.total_throughput);return u.jsxs(V,{direction:"column",gap:gc,minHeight:"300px",minWidth:"300px",flexGrow:"1",children:[u.jsxs(V,{justify:"between",children:[u.jsx(q,{className:Rd.headerText,children:t}),u.jsxs("span",{children:[u.jsx(q,{className:Rd.totalText,children:"Total"}),u.jsxs(q,{className:Rd.throughputText,children:["\xA0",`${a.value} ${a.unit}`,"/s"]})]})]}),u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:s,width:l})=>u.jsx(R3t,{sortedData:r,width:l,height:s,getPeerValues:i,totalActivePeersStake:o})})})]})}function R3t({sortedData:e,width:t,height:n,totalActivePeersStake:r,getPeerValues:i}){const[o,a]=m.useState(),[s,l]=m.useState(!1),c=m.useRef(),d=m.useCallback(y=>{a(b=>(y!==b&&l(!1),y))},[]),f=m.useCallback(y=>{UN(y),l(!0),clearTimeout(c.current),c.current=setTimeout(()=>l(!1),1e3)},[l]);Pg(()=>{clearTimeout(c.current)});const p=m.useMemo(()=>LRe||s?"ID copied to clipboard":"Click to copy ID",[s]),v=m.useMemo(()=>{const y=xP(e).sum(w=>w.value??0),b=k3t();return b.tile(L3t),b.size([t,n]),b.round(!0),b.paddingInner(2),b(y).leaves()},[t,n,e]),_=m.useMemo(()=>{let y=[];const b=Math.ceil(e.children.length/wme.length);for(let w=0;wd(void 0),children:v.map((y,b)=>{const w=`${y.data.id}-${y.x0}-${y.x1}-${y.y0}-${y.y1}`,x=o===w;return u.jsx(O3t,{leaf:y,color:_[b],totalActivePeersStake:r,getPeerValues:i,tooltipText:x?p:void 0,openTooltip:()=>d(w),copyId:()=>f(y.data.id)},y.data.id)})})}function O3t({leaf:e,color:t,totalActivePeersStake:n,getPeerValues:r,tooltipText:i,openTooltip:o,copyId:a}){const s=e.x1-e.x0,l=e.y1-e.y0;return u.jsx(ui,{open:!!i,className:Rd.tooltip,content:i,disableHoverableContent:!0,side:"bottom",onOpenChange:c=>{c&&o()},children:u.jsx(Mt,{onClick:a,onMouseEnter:()=>{o()},className:Rd.leaf,position:"absolute",width:`${s}px`,height:`${l}px`,style:{transform:`translate(${e.x0}px, ${e.y0}px)`,"--leaf-color":t},children:u.jsx(P3t,{width:s,height:l,leaf:e,totalActivePeersStake:n,getPeerValues:r})})})}function P3t({width:e,height:t,leaf:n,totalActivePeersStake:r,getPeerValues:i}){const o=n.data.id,a=i(o),s=(a==null?void 0:a.name)||"Private",l=e>=20&&t>=20,c=e>=100&&t>=100?14:e>=55&&t>=55?12:e>=32&&t>=32?8:4,d=e>=30&&t>=38,f=t>=150,p=t>=60,v=e>=82;return u.jsxs(V,{className:Rd.leafContent,height:"100%",direction:"column",align:"center",justify:"center",overflow:"hidden",p:l?"8px":"0",gap:"4px",children:[l&&u.jsx(ks,{url:a==null?void 0:a.iconUrl,size:c}),d&&u.jsx(q,{className:Te(Rd.name,{[Rd.large]:f}),truncate:!0,align:"center",children:s}),p&&u.jsxs(V,{className:Rd.stats,align:"center",justify:"center",gap:"5px",children:[u.jsx(z3t,{value:n.value}),v&&(a==null?void 0:a.stake)!==void 0&&u.jsx(D3t,{stake:a.stake,totalActivePeersStake:r})]})]})}function z3t({value:e}){const t=Ib(e??0);return u.jsxs(q,{truncate:!0,children:[t.value," ",t.unit]})}function D3t({stake:e,totalActivePeersStake:t}){const n=m.useMemo(()=>{if(e===0)return"0";const r=100*e/Number(t);return r<.01?"<.01":r.toFixed(2)},[e,t]);return u.jsxs(V,{align:"center",justify:"center",gap:"3px",children:[u.jsx(fBe,{width:8,height:8}),u.jsxs(q,{truncate:!0,children:[n,"%"]})]})}function A3t(){const e=X(TG),[t]=Uie(e,5e3,{leading:!0,maxWait:5e3}),n=e==null?void 0:e.storage;if(!_i&&!(!n||!t))return u.jsxs(V,{gap:"30px",direction:"column",align:"stretch",justify:"center",height:"100%",children:[u.jsxs(V,{gapX:"30px",gapY:fP,wrap:"wrap",children:[u.jsx(kme,{networkTraffic:t.ingress,label:"Ingress"}),u.jsx(kme,{networkTraffic:t.egress,label:"Egress"})]}),u.jsxs(V,{gap:"30px",wrap:"wrap",children:[u.jsxs(V,{direction:"column",flexGrow:"1",flexBasis:"0",gap:fP,minWidth:eC,children:[u.jsx(j4t,{storage:n}),u.jsx(kwt,{storage:n})]}),u.jsxs(V,{direction:"column",flexGrow:"1",flexBasis:"0",gap:fP,minWidth:eC,children:[u.jsx(W4t,{}),u.jsx($4t,{messages:e.messages})]})]}),u.jsx(Z4t,{}),u.jsx(A4t,{})]})}const F3t=up("/gossip")({component:A3t,beforeLoad:({context:e,location:t})=>{if(_i)throw uT({to:"/"})}}),B3t=up("/about")({component:U3t});function U3t(){return u.jsx("div",{className:"p-2",children:u.jsx("h3",{children:"About"})})}const cC=600,Sme=Co(new Array(cC).fill(void 0)),wP=(e,t)=>e.length?"M"+e.map(({x:n,y:r})=>`L ${n} ${t-r}`).join(" ").slice(1)+`L ${e[e.length-1].x} ${t} L ${e[0].x} ${t}, L ${e[0].x} ${e[0].y}`:"";function W3t(){const e=X(Sme),t=m.useRef(),n=Math.max(...e.map(i=>(i==null?void 0:i.total)??0)),r=m.useMemo(()=>{if(!t.current||!e.length)return;const{height:i,width:o}=t.current,a=e.length,s=(o+2)/a,l=(i-10)/(n||1),c=e.map((f,p)=>{if(f!==void 0)return{x:p*s,voteY:f.vote*l,nonvoteFailedY:(f.nonvote_failed+f.vote)*l,nonvoteY:(f.nonvote_success+f.nonvote_failed+f.vote)*l}}).filter(Cb),d=i-n*l;return{votePath:wP(c.map(f=>({x:f.x,y:f.voteY})),i),failedPath:wP(c.map(f=>({x:f.x,y:f.nonvoteFailedY})),i),nonvotePath:wP(c.map(f=>({x:f.x,y:f.nonvoteY})),i),totalTpsY:isNaN(d)?void 0:d}},[n,e]);return u.jsx(u.Fragment,{children:u.jsx($s,{children:({height:i,width:o})=>(t.current={height:i,width:o},r?u.jsx(u.Fragment,{children:u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:o,height:i,fill:"none",children:[u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:r.nonvotePath,fill:Sne}),u.jsx("path",{d:r.failedPath,fill:jne}),u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",fill:Cne,d:r.votePath}),r.totalTpsY&&u.jsxs(u.Fragment,{children:[u.jsx("line",{x1:"0",y1:r.totalTpsY,x2:o,y2:r.totalTpsY,strokeDasharray:"4",stroke:"rgba(255, 255, 255, 0.30)"}),u.jsx("text",{x:"0",y:r.totalTpsY-3,fill:mN,fontSize:"8",fontFamily:"Inter Tight",children:n.toLocaleString()})]})]})}):null)})})}const V3t="_axis-text_juf3d_1",Cme={axisText:V3t},H3t="_container_muoex_1",Z3t="_label_muoex_6",q3t="_value_muoex_12",G3t="_small_muoex_17",Y3t="_medium_muoex_21",K3t="_large_muoex_25",X3t="_append-value_muoex_31",fi={container:H3t,label:Z3t,value:q3t,small:G3t,medium:Y3t,large:K3t,appendValue:X3t};function ya({label:e,value:t,valueColor:n,valueSize:r,animateInteger:i=!1,appendValue:o,appendValueColor:a,className:s}){const l=m.useMemo(()=>Te(fi.value,{[fi.small]:r==="small",[fi.medium]:r==="medium",[fi.large]:r==="large"}),[r]);return u.jsxs(V,{direction:"column",align:"start",className:Te(fi.container,s),style:{"--value-color":n},children:[u.jsx(q,{className:fi.label,children:e}),u.jsxs(V,{align:"baseline",gap:"1",width:"100%",children:[typeof t=="number"&&i?u.jsx(M_,{value:t,className:l}):u.jsx(q,{className:l,children:t}),o&&u.jsx(q,{className:fi.appendValue,style:{"--append-value-color":a},children:o})]})]})}const J3t="_vote-tps_kqvrt_1",Q3t={voteTps:J3t};function ekt(){const e=X(OT);return u.jsxs(V,{direction:"column",gap:"2",minWidth:"100px",children:[u.jsx(ya,{label:"Total TPS",value:(e==null?void 0:e.total.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Yu,valueSize:"medium"}),u.jsxs(V,{gap:"4",wrap:"wrap",children:[u.jsx(ya,{label:"Non-vote TPS Success",value:(e==null?void 0:e.nonvote_success.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Zf,valueSize:"small"}),u.jsx(ya,{label:"Non-vote TPS Fail",value:(e==null?void 0:e.nonvote_failed.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:fd,valueSize:"small"}),u.jsx(ya,{label:"Vote TPS",value:(e==null?void 0:e.vote.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:hd,valueSize:"small",className:Q3t.voteTps})]})]})}function tkt({className:e}){return u.jsx(so,{className:e,children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",children:[u.jsx(Sd,{text:"Transactions"}),u.jsxs(V,{gap:"4",flexGrow:"1",children:[u.jsx(ekt,{}),u.jsxs(V,{direction:"column",flexGrow:"1",children:[u.jsx(Mt,{flexGrow:"1",minWidth:"180px",overflow:"hidden",children:u.jsx(W3t,{})}),u.jsxs(V,{justify:"between",children:[u.jsx(q,{className:Cme.axisText,children:"~ 1min ago"}),u.jsx(q,{className:Cme.axisText,children:"Now"})]})]})]})]})})}const nkt="_stat-row_1ia1g_1",jme={statRow:nkt};function rkt(){const e=X(Ig);if(!e)return null;const t=Rs(e.activeStake),n=Rs(e.delinquentStake);return u.jsxs(V,{gap:"2",flexGrow:"1",children:[u.jsxs(V,{direction:"column",gap:"2",minWidth:"0",children:[u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"Total Validators",value:e.validatorCount.toString(),valueColor:gN,valueSize:"medium"}),u.jsx(ya,{label:"Non-delinquent Stake",value:t,valueColor:pk,appendValue:"SOL",valueSize:"medium"})]}),u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"RPC Nodes",value:e.rpcCount.toString(),valueColor:Yu,valueSize:"small"}),u.jsx(ya,{label:"Delinquent Stake",value:n,valueColor:fd,appendValue:"SOL",valueSize:"small"})]})]}),u.jsx(Mt,{style:{minWidth:"200px"},children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})}function ikt(){return X(Ig)?u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",children:[u.jsx(Sd,{text:"Validators"}),u.jsx(rkt,{})]})}):null}const okt="_stat-row_11bim_1",Tme={statRow:okt};function akt(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(Sd,{text:"Status"}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(skt,{}),u.jsx(ukt,{})]}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(ckt,{}),u.jsx(lkt,{})]})]})})}function skt(){const e=X(oo);return u.jsx(Mt,{children:u.jsx(ya,{label:"Slot",value:e??"",valueColor:Yu,valueSize:"medium",animateInteger:!0})})}function lkt(){const{nextLeaderSlot:e}=P_({showNowIfCurrent:!0});return u.jsx(ya,{label:"Next leader slot",value:(e==null?void 0:e.toString())??"\u221E",valueColor:Gte,valueSize:e===void 0?"large":"small"})}function ukt(){const{progressSinceLastLeader:e,nextSlotText:t}=P_({showNowIfCurrent:!0});return u.jsxs(V,{direction:"column",children:[u.jsx(ya,{label:"Time until leader",value:t,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{value:e})]})}function ckt(){const e=X(zT),t=X(LG),n=m.useMemo(()=>e==="voting"?hN:e==="non-voting"?Yte:e==="delinquent"?fd:mN,[e]),r=m.useMemo(()=>t==null||e==="delinquent"?void 0:`${t>150?"> 150":t} behind`,[t,e]);return u.jsx(ya,{label:"Vote Status",value:e??"Unknown",valueColor:n,valueSize:"small",appendValue:r,appendValueColor:wne})}const dkt="_stat-row_kmlhn_1",fkt="_progress_kmlhn_13",kP={statRow:dkt,progress:fkt};function hkt(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(Sd,{text:"Epoch"}),u.jsx("div",{className:kP.statRow,children:u.jsx(pkt,{})}),u.jsx("div",{className:kP.statRow,children:u.jsx(mkt,{})})]})})}function pkt(){var t;const e=X(di);return u.jsx(Mt,{children:u.jsx(ya,{label:"Current Epoch",value:((t=e==null?void 0:e.epoch)==null?void 0:t.toString())??"",valueColor:Yu,valueSize:"medium"})})}function mkt(){const e=X(oo),t=X(di),n=X(Eg),r=m.useMemo(()=>{if(t===void 0||e===void 0)return"";const o=(t.end_slot-e)*n,a=fn.fromMillis(o).rescale();return Sp(a)},[t,e,n]),i=m.useMemo(()=>{if(t===void 0||e===void 0)return 0;const o=e-t.start_slot,a=t.end_slot-t.start_slot,s=o/a*100;return s<0||s>100?0:s},[t,e]);return u.jsxs(V,{direction:"column",children:[u.jsx(ya,{label:"Time to Next Epoch",value:r,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{className:kP.progress,value:i})]})}function gkt(){if(!_i)return u.jsx(so,{style:{padding:"10px 13px 10px 10px"},children:u.jsxs(V,{direction:"column",gap:"4",children:[u.jsxs(V,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(Sd,{text:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{height:"400px",chartId:"overview-shreds-chart",isOnStartupScreen:!1})]})})}const vkt="_chart_7b67t_1",ykt="_table_7b67t_7",bkt="_row_7b67t_7",_kt="_total-row_7b67t_8",wx={chart:vkt,table:ykt,row:bkt,totalRow:_kt},Ime=18;function xkt(){const e=X(PT),t=X(xG),n=X(wG);if(e)return u.jsxs(V,{wrap:"wrap",gap:"4",children:[u.jsx(Eme,{metrics:e.ingress,history:t.history,type:"Ingress"}),u.jsx(Eme,{metrics:e.egress,history:n.history,type:"Egress"})]})}function Eme({metrics:e,history:t,type:n}){return u.jsx(so,{style:{flexGrow:1},children:u.jsxs(V,{direction:"column",height:"100%",gap:gc,children:[u.jsxs(q,{className:Ld.headerText,children:["Network ",n]}),u.jsxs(q0,{variant:"ghost",className:Te(Ld.root,wx.table),size:"1",style:{"--bar-height":`${Ime}px`},children:[u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{width:"60px",children:"Protocol"}),u.jsx(Wi,{align:"right",width:"80px",children:"Current"}),u.jsx(Wi,{minWidth:{xl:"250px",lg:"160px",md:"100px",initial:"60px"},children:"Utilization"}),u.jsx(Wi,{align:"right",width:{xl:"240px",lg:"200px",md:"100px",initial:"200px"},children:"History (1m)"})]})}),u.jsxs(G0,{children:[e.map((r,i)=>{const o=V$[i];if(!(_i&&(o==="gossip"||o==="repair")))return u.jsx($me,{label:o,value:r,maxValue:aoe[n][o],history:t,mapHistory:a=>a[i]??0},i)}),u.jsx($me,{label:"Total",value:rt.sum(e),maxValue:aoe[n].Total,history:t,mapHistory:rt.sum,className:wx.totalRow})]})]})]})})}const wkt=1e8;function Nme(e,t){return Math.min(1,e/t)}const kkt={halfLifeMs:1e3};function $me({label:e,value:t,maxValue:n=wkt,history:r,mapHistory:i,className:o}){const a=Ug(t,kkt),s=Ib(a),l=Nme(a,n),c=m.useRef(i);c.current=i;const d=m.useMemo(()=>r.map(f=>({ts:f.ts,value:Nme(c.current(f.values),n)})),[r,n]);return u.jsxs(la,{className:Te(wx.row,o),children:[u.jsx($4,{children:e}),u.jsxs(ti,{align:"right",children:[s.value," ",s.unit]}),u.jsx(ti,{className:wx.chart,children:u.jsx(V,{align:"center",children:u.jsx(G$,{value:a,max:n,barWidth:2})})}),u.jsx(ti,{className:wx.chart,children:u.jsx(c_,{value:l,history:d,background:vk,windowMs:6e4,height:Ime,updateIntervalMs:500,tickMs:1e3})})]})}const Skt="_group-header_1lbrc_1",Ckt="_header_1lbrc_6",jkt="_wrap_1lbrc_9",Tkt="_table_1lbrc_15",Ikt="_data-row_1lbrc_19",Ekt="_green_1lbrc_20",Nkt="_red_1lbrc_24",$kt="_pct-gradient_1lbrc_43",Mkt="_no-padding_1lbrc_51",Lkt="_increment-text_1lbrc_56",Rkt="_low-increment_1lbrc_61",Okt="_mid-increment_1lbrc_64",Pkt="_high-increment_1lbrc_67",zkt="_light-border-bottom_1lbrc_79",Dkt="_right-border_1lbrc_83",dr={groupHeader:Skt,header:Ckt,wrap:jkt,table:Tkt,dataRow:Ikt,green:Ekt,red:Nkt,pctGradient:$kt,noPadding:Mkt,incrementText:Lkt,lowIncrement:Rkt,midIncrement:Okt,highIncrement:Pkt,lightBorderBottom:zkt,rightBorder:Dkt},Akt="_table-description-dialog_1shm8_1",Fkt="_table_1shm8_1",Bkt="_th_1shm8_8",Ukt="_tr_1shm8_14",Wkt="_name_1shm8_22",Vkt="_close-button_1shm8_28",_h={tableDescriptionDialog:Akt,table:Fkt,th:Bkt,tr:Ukt,name:Wkt,closeButton:Vkt},SP=[{name:"",pinned:!0,metrics:[{uniqueName:"Name",description:"The name and index of each tile. A tile represents a sandboxed process or individual thread that communicates with other tiles using message passing queues.",headerColWidth:70}]},{name:"Liveness",metrics:[{uniqueName:"CPU",description:"The CPU index on which the tile was last recorded executing.",headerColWidth:50,headerColAlign:"right"},{uniqueName:"Heartbeat",description:"Liveness indicator based on a periodic heartbeat timestamp written by tiles to a chunk of shared memory.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"Backp",description:"If a tile is backpressured, at least one outgoing message queue is at-capacity which can prevent the tile from moving forward with useful work.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Backp Count",description:"The number of cumulative | immediate (10ms) times a CPU transitioned into a backpressured state.",headerColWidth:120,headerColAlign:"right"}]},{name:"Utilization",metrics:[{uniqueName:"Utilization",description:"Visualized the percentage of the tile's CPU time spent doing useful work. Time spent in a context switch is not included.",headerColWidth:150},{uniqueName:"History (1m)",description:"A historical, low-pass-filtered view of CPU utilization.",headerColWidth:150}]},{name:"System",metrics:[{uniqueName:"% Hkeep",description:"The percentage of CPU time spent on housekeeping tasks, which are meant to be infrequent and generally more expensive than tasks on the critical path.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Wait",description:"The percentage of CPU time spent waiting for useful work to do.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Backp",description:"The percentage of CPU time during which the tile was backpressured, excluding housekeeping time.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Work",description:"The percentage of CPU time spent performing useful work, excluding housekeeping and backpressured time.",headerColWidth:70,headerColAlign:"right"}]},{name:"Scheduler",metrics:[{uniqueName:"% Wait (scheduler)",columnName:"% Wait",description:"The percentage of CPU time spent waiting in the runqueue before being dispatched.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% User (scheduler)",columnName:"% User",description:"The percentage of CPU time spent executing in user mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% System (scheduler)",columnName:"% System",description:"The percentage of CPU time spent executing in kernel mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% Idle (scheduler)",columnName:"% Idle",description:"The percentage of CPU time unaccounted for by the other 3 regimes.",headerColWidth:70,headerColAlign:"right",wrap:!0}]},{name:"Exceptions",metrics:[{uniqueName:"Minflt",description:"The number of cumulative minor page faults. Minor page faults occur for pages in RAM not indexed by the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Majflt",description:"The number of cumulative major page faults. Major page faults occur for pages that are neither in RAM nor the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Nivcsw",description:"The number of cumulative | immediate (10ms) involuntary context switches.",headerColWidth:150,headerColAlign:"right"},{uniqueName:"Nvcsw",description:"The number of cumulative | immediate (10ms) voluntary context switches.",headerColWidth:150,headerColAlign:"right"}]}],Mme=SP.filter(({pinned:e})=>e),Hkt=SP.filter(({pinned:e})=>!e),Lme=Mme.reduce((e,t)=>{for(const n of t.metrics)e+=n.headerColWidth;return e},1);function Zkt(){return u.jsxs(WZ,{children:[u.jsx(VZ,{children:u.jsx(V,{children:u.jsx(ui,{content:"Click to view column definitions.",children:u.jsx(Zie,{color:"var(--gray-11)",cursor:"pointer"})})})}),u.jsxs(HZ,{maxHeight:"85dvh",maxWidth:`min(80dvw, calc(0.8 * ${Zte}))`,size:"1",className:_h.tableDescriptionDialog,children:[u.jsx(ZZ,{size:"2",className:_h.title,mb:"0px",children:"Column Definitions"}),u.jsxs(q0,{size:"1",className:_h.table,children:[u.jsx("colgroup",{children:u.jsx("col",{style:{width:"110px"}})}),u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{className:_h.th,children:"Column"}),u.jsx(Wi,{className:_h.th,children:"Definition"})]})}),u.jsx(G0,{children:SP.map(e=>e.metrics.map(t=>u.jsxs(la,{className:_h.tr,children:[u.jsx(ti,{className:_h.name,children:t.uniqueName}),u.jsx(ti,{children:t.description})]},t.uniqueName)))})]}),u.jsx(V,{justify:"end",children:u.jsx(qZ,{children:u.jsx(hs,{className:_h.closeButton,children:"Close"})})})]})]})}const Rme=18,qkt=m.memo(function(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",gap:gc,width:"100%",children:[u.jsxs(V,{align:"center",gap:"2",children:[u.jsx(q,{className:Ld.headerText,children:"Tiles"}),u.jsx(Zkt,{})]}),u.jsx(Gkt,{})]})})});function Gkt(){return u.jsxs(V,{children:[u.jsx(Ome,{isPinned:!0}),u.jsx(Ome,{isPinned:!1})]})}function Ome({isPinned:e}){const t=X(rg),n=X(CG),r=e?Mme:Hkt,i=m.useMemo(()=>({"--bar-height":`${Rme}px`,minWidth:e?`${Lme}px`:"0px",flexBasis:e?`${Lme}px`:void 0}),[e]);if(!(!t||!n))return u.jsxs(q0,{variant:"ghost",className:Te(Ld.root,dr.table),size:"1",style:i,children:[u.jsx("colgroup",{children:r.map(o=>o.metrics.map(a=>u.jsx("col",{style:{width:a.headerColWidth}},a.uniqueName)))}),u.jsxs(ip,{className:dr.header,children:[u.jsx(la,{children:r.map((o,a)=>u.jsx(Wi,{colSpan:o.metrics.length,className:Te(dr.groupHeader,{[dr.rightBorder]:e||a!==r.length-1}),children:o.name},o.name))}),u.jsx(la,{className:dr.lightBorderBottom,children:r.map((o,a)=>o.metrics.map((s,l)=>u.jsx(Wi,{align:s.headerColAlign,className:Te({[dr.wrap]:!!s.wrap,[dr.rightBorder]:e||a!==r.length-1&&l===o.metrics.length-1}),children:s.columnName??s.uniqueName},s.uniqueName)))})]}),u.jsx(G0,{children:t.map((o,a)=>u.jsx(Ykt,{tile:o,liveTileMetrics:n,idx:a,isPinned:e},`${o.kind}${o.kind_id}`))})]})}function Ykt({tile:e,liveTileMetrics:t,idx:n,isPinned:r}){const i=D$(t,(s,l)=>s?l?Object.keys(l).every(c=>{var d,f;return rt.isEqual((d=s[c])==null?void 0:d[n],(f=l[c])==null?void 0:f[n])}):!0:!1),o=t.alive[n]??(i==null?void 0:i.alive[n]);if(o===2)return;const a=t.timers[n]||(i==null?void 0:i.timers[n]);if(a)return r?u.jsx(la,{className:dr.dataRow,children:u.jsxs(ti,{className:dr.rightBorder,children:[e.kind,":",e.kind_id]})}):u.jsx(Kkt,{alive:o,timers:a,liveTileMetrics:t,prevLiveTileMetricsIdx:i,idx:n})}function Kkt({alive:e,timers:t,liveTileMetrics:n,prevLiveTileMetricsIdx:r,idx:i}){const o=D$(n.sched_timers[i]),a=n.sched_timers[i]||o||[],[s,l,c,d]=a.map(A=>A===-1?0:A),f=n.nivcsw[i]??(r==null?void 0:r.nivcsw[i]),p=n.nvcsw[i]??(r==null?void 0:r.nvcsw[i]),v=n.in_backp[i]??(r==null?void 0:r.in_backp[i]),_=n.backp_msgs[i]??(r==null?void 0:r.backp_msgs[i]),y=n.last_cpu[i]??(r==null?void 0:r.last_cpu[i]),b=n.minflt[i]??(r==null?void 0:r.minflt[i]),w=n.majflt[i]??(r==null?void 0:r.majflt[i]),x=o_(f),S=o_(p),C=o_(_);for(let A=0;A1})}),u.jsx(xh,{pct:T}),u.jsx(xh,{pct:E,className:Te({[dr.red]:E>0})}),u.jsx(xh,{pct:$,className:Te(dr.pctGradient,dr.rightBorder),style:{"--pct":`${$}%`}}),u.jsx(xh,{pct:s}),u.jsx(xh,{pct:c}),u.jsx(xh,{pct:d}),u.jsx(xh,{pct:l,className:dr.rightBorder}),u.jsx(ti,{align:"right",children:(b==null?void 0:b.toLocaleString())??"-"}),u.jsx(ti,{align:"right",children:(w==null?void 0:w.toLocaleString())??"-"}),u.jsxs(ti,{align:"right",children:[(f==null?void 0:f.toLocaleString())??"-"," |",u.jsx(Pme,{value:f!=null&&x!=null?f-x:0})]}),u.jsxs(ti,{align:"right",children:[(p==null?void 0:p.toLocaleString())??"-"," |",u.jsx(Pme,{value:p!=null&&S!=null?p-S:0})]})]})}function Pme({value:e}){const t=e.toLocaleString();return u.jsxs(q,{className:Te(dr.incrementText,{[dr.lowIncrement]:1<=e&&e<=10,[dr.midIncrement]:11<=e&&e<=100,[dr.highIncrement]:e>=101}),children:["+",t]})}function xh({pct:e,...t}){return u.jsx(ti,{align:"right",...t,children:e==null?"--":`${e.toFixed(2)}%`})}const zme=300,Xkt=m.memo(function({idx:e}){const t=X(l3),n=X(jG),r=t!=null&&t[e]&&t[e]>=0?1-Math.max(0,t[e]):-1,i=D$(r,(c,d)=>!(d!=null&&c!=null&&d>=0&&c>=0&&d!==c)),o=m.useRef({count:0,sum:0}),[a,s]=m.useState(r);m.useEffect(()=>{r>=0&&(o.current.count++,o.current.sum+=r)},[r]),r_(()=>{o.current.count!==0&&(s(o.current.sum/o.current.count),o.current={count:0,sum:0})},zme);const l=m.useMemo(()=>n.history.map(c=>{const d=c.values[e]??0;return{ts:c.ts,value:d>=0?1-Math.max(0,d):0}}),[n.history,e]);return u.jsxs(u.Fragment,{children:[u.jsx(ti,{className:dr.noPadding,children:u.jsx(V,{align:"center",children:u.jsx(G$,{value:r>=0?r:i??0,max:1,barWidth:2})})}),u.jsx(ti,{className:Te(dr.noPadding,dr.rightBorder),children:u.jsx(c_,{value:a,history:l,background:vk,windowMs:6e4,height:Rme,updateIntervalMs:zme,tickMs:1e3})})]})}),Jkt="_slot-label-card_1pson_1",Qkt="_slot-label-name_1pson_13",e6t="_slot-label-dt_1pson_16",t6t="_dt-sign_1pson_19",n6t="_slot-bar_1pson_24",r6t="_dim_1pson_29",i6t="_slot-bar-track_1pson_34",o6t="_next-leader-container_1pson_38",a6t="_next-leader-timer-label_1pson_44",s6t="_next-leader-timer-container_1pson_50",wl={slotLabelCard:Jkt,slotLabelName:Qkt,slotLabelDt:e6t,dtSign:t6t,slotBar:n6t,dim:r6t,slotBarTrack:i6t,nextLeaderContainer:o6t,nextLeaderTimerLabel:a6t,nextLeaderTimerContainer:s6t};function Dme(e){return m.useMemo(()=>{const t=new Map,n=r=>{var i;r.slot!=null&&(t.has(r.slot)?(i=t.get(r.slot))==null||i.push(r):t.set(r.slot,[r]))};for(const r of e)n(r);return t},[e])}const CP=2,P1=`${CP}px`,zm="5px",Ame=2,Fme=34,kx=Fme-Fme%2,l6t="#A09000",u6t="#0ABF9E",c6t="#4AA7C1",d6t="#08A24D",f6t="#AC4902",h6t="#3F7BF4",p6t="#AF49F2",m6t="#2497EE",g6t="#A09000",v6t="#0ABF9E",y6t="#4AA7C1",b6t="#08A24D",_6t="#AC4902",x6t="#3F7BF4",w6t="#AF49F2",k6t="#2497EE";function S6t(){if(!X(ol))return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:gc,children:[u.jsx(q,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:"Slots"}),u.jsx(j6t,{})]})})}function C6t(e,t){if(!(t==null||e==null))return e-t}function wh(e,t,n,r,i){return{label:e,slot:t,slotDt:C6t(t,n),labelColor:r,barColor:i}}const Bme=14,Sx=m.createContext({barWidth:Bme,shrinkSlotsLabel:!1,useLabelGrid:!1});function j6t(){const[e,t]=m.useState(Bme),n=X(vG),r=X(pG),i=X(RT),o=X(yG),a=X(Gy),s=X(fp),l=X(mG),c=X(Lb),d=Hn("(max-width: 1300px)"),f=Hn("(max-width: 1000px)"),{storageSlotBar:p,rootSlotBar:v,voteSlotBar:_,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,optimisticallyConfirmedBar:x,nextLeaderSlotBar:S}=m.useMemo(()=>{const $=wh("Storage",n,s,l6t,g6t),A=wh("Root",r,s,u6t,v6t),M=wh("Voted",i,s,c6t,y6t),P=wh("Repair",o,s,f6t,_6t),te=wh("Turbine",a,s,h6t,x6t),Z=wh("Processed",s,s,d6t,b6t),O=wh("Confirmed",l,s,p6t,w6t),J=wh("Next Leader",c,s,m6t,k6t);return{storageSlotBar:$,rootSlotBar:A,voteSlotBar:M,repairSlotBar:P,turbineSlotBar:te,replaySlotBar:Z,optimisticallyConfirmedBar:O,nextLeaderSlotBar:J}},[c,l,o,s,r,n,a,i]),C=m.useMemo(()=>({barWidth:e,shrinkSlotsLabel:d,useLabelGrid:f}),[e,d,f]);if(!s)return;const j=Eb([_.slot,y.slot,b.slot,w.slot,x.slot]),T=r!=null||n!=null?Math.max(kx,Eb([s,a])-Eb([r,n])):kx,E=Math.max(T/8,kx/2+(kx-T));return u.jsxs(Sx.Provider,{value:C,children:[f&&u.jsx(N6t,{storageSlotBar:p,rootSlotBar:v,voteSlotBar:_,repairSlotBar:y,turbineSlotBar:b,confirmedSlotBar:x,replaySlotBar:w,nextLeaderSlotBar:S}),u.jsxs(V,{gap:P1,children:[u.jsx(T6t,{storageSlotBar:p,rootSlotBar:v,repairSlotBar:y}),u.jsxs(Zr,{columns:`${T}fr ${E}fr`,gapX:P1,flexGrow:"1",children:[u.jsx(I6t,{voteSlotBar:_,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,confirmedSlotBar:x,minSlot:r??s-32,maxSlot:j,setBarWidth:t}),u.jsx(E6t,{nextLeaderSlotBar:S,minSlot:j})]})]})]})}const Ume=20;function T6t({storageSlotBar:e,rootSlotBar:t,repairSlotBar:n}){const{barWidth:r,useLabelGrid:i}=m.useContext(Sx),[o,a]=Ss(),s=m.useMemo(()=>[e,t],[t,e]),l=m.useMemo(()=>[...s,n],[n,s]),c=Dme(l),d=m.useMemo(()=>{if(!r)return 0;const x=a.width-(r*3-CP*2),S=Math.max(Ame,r/2);return Math.min(20,Math.trunc(x/S))},[r,a.width]),f=Eb([e.slot,t.slot]),p=Oze([e.slot,t.slot,n.slot])-1,v=f-p,_=v<7?r:void 0,y=v>Ume,b=y?Ume:v,w=f-b;return u.jsxs(V,{direction:"column",gap:zm,minWidth:i?"30px":void 0,children:[!i&&u.jsx(V,{gap:zm,justify:"end",children:s.map(x=>u.jsx(vu,{slotBarInfo:x},x.label))}),u.jsxs(V,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:P1,ref:o,children:[u.jsx(Vme,{count:d}),Array.from({length:b}).map((x,S)=>{const C=w+S+1,j=y&&S===0?c.get(n.slot??0):c.get(C);return j?u.jsx(jP,{colors:j.map(({barColor:T})=>T),barWidth:_},C):u.jsx(dC,{barWidth:_},C)})]})]})}function I6t({voteSlotBar:e,repairSlotBar:t,turbineSlotBar:n,replaySlotBar:r,confirmedSlotBar:i,maxSlot:o,minSlot:a,setBarWidth:s}){const[l,{width:c}]=Ss(),{useLabelGrid:d}=m.useContext(Sx),f=m.useMemo(()=>[e,i,r,t,n],[i,t,r,n,e]),p=Dme(f),v=rt.clamp(o-a,kx,100),_=m.useRef(v);return _.current=v,m.useEffect(()=>{if(c){const y=Math.trunc((c-CP*(v-1))/v);s(y)}},[v,s,c]),u.jsxs(V,{direction:"column",gap:zm,ref:l,minWidth:"100px",children:[!d&&u.jsx(V,{gap:zm,justify:"end",children:f.map(y=>u.jsx(vu,{slotBarInfo:y},y.label))}),u.jsx(V,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:P1,children:Array.from({length:v}).map((y,b)=>{const w=a+b+1,x=p.get(w);return x?u.jsx(jP,{colors:x.map(({barColor:S})=>S)},w):u.jsx(dC,{},w)})})]})}function E6t({nextLeaderSlotBar:e,minSlot:t}){const{barWidth:n,useLabelGrid:r}=m.useContext(Sx),[i,o]=Ss(),a=m.useMemo(()=>{if(!n)return 0;const l=o.width-n,c=Math.max(Ame,n/2);return Math.trunc(l/c)},[n,o.width]),s=e.slot!=null?Math.min(a,e.slot-t):a;return u.jsxs(V,{direction:"column",gap:zm,minWidth:"0",className:wl.nextLeaderContainer,justify:"between",children:[!r&&u.jsxs(V,{justify:"end",gap:zm,children:[u.jsx(Wme,{}),u.jsx(vu,{slotBarInfo:e},e.label)]}),u.jsxs(V,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:P1,ref:i,children:[u.jsx(Vme,{count:s}),e.slot&&u.jsx(jP,{colors:[e.barColor],barWidth:n/2})]})]})}function Wme(){const{progressSinceLastLeader:e,nextSlotText:t}=P_({showNowIfCurrent:!1});return u.jsxs(V,{direction:"column",flexGrow:"1",p:"5px",align:"stretch",justify:"between",minWidth:"70px",className:wl.nextLeaderTimerContainer,children:[u.jsxs(q,{align:"center",wrap:"nowrap",children:[u.jsx(q,{style:{color:"#919191"},className:wl.nextLeaderTimerLabel,children:"Time Until Leader"}),u.jsxs(q,{style:{color:"#BCBCBC"},children:["\xA0",t]})]}),u.jsx("div",{children:u.jsx(a1,{value:e,height:"2px",duration:"500ms"})})]})}const vu=m.memo(function({slotBarInfo:e}){const{shrinkSlotsLabel:t}=m.useContext(Sx),{slot:n,slotDt:r,labelColor:i,label:o}=e;if(n==null||r==null)return;const a=`${o}${t?"":" Slot"}`,s=`${Math.abs(r)}`;return u.jsxs(V,{direction:"column",align:"stretch",className:wl.slotLabelCard,minWidth:"50px",children:[u.jsxs(V,{gap:"5px",justify:"between",align:"stretch",style:{color:i},children:[u.jsx(q,{className:wl.slotLabelName,weight:"bold",wrap:"nowrap",truncate:!0,dir:"rtl",children:a}),e.label==="Processed"?u.jsx(q,{style:{fontSize:"10px",lineHeight:"14px"},children:"\u{1F4CD}"}):u.jsxs(q,{truncate:!0,className:wl.slotLabelDt,weight:"bold",children:[e.label!=="Next Leader"&&u.jsx(Za,{className:wl.dtSign,children:r===0?" ":r>0?"+":"-"}),u.jsx(q,{truncate:!0,children:s})]})]}),u.jsx(M_,{value:n,containerRowJustify:"center"})]})});function jP({colors:e,barWidth:t}){const n=t?void 0:"1";return u.jsx(Zr,{rows:"repeat(auto-fill, 1fr)",gap:P1,flexGrow:n,children:e.map(r=>u.jsx(dC,{barWidth:t,color:r},r))})}const dC=m.memo(function({isDim:e,color:t,barWidth:n}){const r=n?void 0:"1";return u.jsx(Mt,{width:`${n}px`,flexGrow:r,className:Te(wl.slotBar,{[wl.dim]:e}),style:{"--bar-color":t}})}),Vme=function({count:e}){return Array.from({length:e}).map((t,n)=>u.jsx(dC,{isDim:!0},n))};function N6t({storageSlotBar:e,rootSlotBar:t,voteSlotBar:n,repairSlotBar:r,turbineSlotBar:i,replaySlotBar:o,confirmedSlotBar:a,nextLeaderSlotBar:s}){return u.jsxs(Zr,{columns:{xs:"4",initial:"2"},gap:zm,children:[u.jsx(vu,{slotBarInfo:e}),u.jsx(vu,{slotBarInfo:t}),u.jsx(vu,{slotBarInfo:n}),u.jsx(vu,{slotBarInfo:a}),u.jsx(vu,{slotBarInfo:o}),u.jsx(vu,{slotBarInfo:r}),u.jsx(vu,{slotBarInfo:i}),u.jsx(vu,{slotBarInfo:s}),u.jsx(Mt,{gridColumn:{xs:"span 4",initial:"span 2"},children:u.jsx(Wme,{})})]})}const $6t="_stat-row_1xsdi_1",M6t="_storage-stat-container_1xsdi_10",TP={statRow:$6t,storageStatContainer:M6t},L6t="_trailing_1bhfc_1",R6t="_fraction_1bhfc_5",O6t="_fraction-line_1bhfc_10",IP={trailing:L6t,fraction:R6t,fractionLine:O6t};function P6t(e,t,n){const r=t.indexOf("."),i=n.indexOf("."),o=r!==-1?r:t.length,a=i!==-1?i:n.length,s=e-o,l=a+s;return l<0||l>=n.length||t[e]!==n[l]}function EP({value:e,changedColor:t,unchangedColor:n,className:r}){const i=m.useRef(void 0);return m.useEffect(()=>{i.current=e},[e]),u.jsx(q,{className:r,children:e.split("").map((o,a)=>{const s=i.current===void 0||P6t(a,e,i.current);return u.jsx("span",{style:{color:s?t:n},children:o},a)})})}const NP={Unknown:{changed:fk,unchanged:hk},Good:{changed:mne,unchanged:gne},Average:{changed:vne,unchanged:yne},Bad:{changed:bne,unchanged:_ne}};function z6t(){const e=X(c3),{percentage:t,numerator:n,denominator:r,showFraction:i,status:o}=m.useMemo(()=>{if(!e)return{percentage:"-",numerator:"-",denominator:"-",showFraction:!1,status:"Unknown"};const{hits:a,lookups:s}=e,l=s===0?0:a/s*100,c=s===0?"Unknown":l<99.95?"Bad":l<99.999?"Average":"Good";return{percentage:l===100?"100":l.toFixed(20),numerator:a.toLocaleString(),denominator:s.toLocaleString(),showFraction:!!s,status:c}},[e]);return u.jsxs(V,{className:Te(fi.container),direction:"column",align:"start",gap:"1",children:[u.jsxs(q,{className:fi.label,children:[u.jsx(q,{children:"Hit Rate"})," ",u.jsx(q,{className:IP.trailing,children:"Trailing 1m"})," ",u.jsx(q,{style:{color:NP[o].unchanged},children:o})]}),u.jsxs(V,{gap:"2",align:"center",children:[u.jsxs(V,{align:"baseline",gap:"1",children:[u.jsx(EP,{value:t,changedColor:NP[o].changed,unchangedColor:NP[o].unchanged,className:Te(fi.value,fi.small)}),u.jsx(q,{className:fi.appendValue,children:"%"})]}),i&&u.jsxs(V,{direction:"column",className:IP.fraction,children:[u.jsx(EP,{value:n,changedColor:fk,unchangedColor:hk}),u.jsx("hr",{className:IP.fractionLine}),u.jsx(EP,{value:r,changedColor:fk,unchangedColor:hk})]})]})]})}function D6t(){const e=X(c3),{progress:t,numerator:n,denominator:r}=m.useMemo(()=>{if(!e)return{progress:0,numerator:{value:"-",unit:"B"},denominator:{value:"-",unit:"B"}};const{size_bytes:i,free_bytes:o}=e,a=i-o,s=Da(a,2),l=Da(i,2),c=i?rt.clamp(a/i*100,0,100):0,d=Sg.findIndex(f=>f.unit===s.unit);return Sg.findIndex(f=>f.unit===l.unit)===d+1?{numerator:Da(a,3,l.unit),denominator:l,progress:c}:{numerator:s,denominator:l,progress:c}},[e]);return u.jsxs(V,{direction:"column",className:TP.storageStatContainer,children:[u.jsxs(V,{className:fi.container,direction:"column",align:"start",children:[u.jsx(q,{className:fi.label,children:"Storage"}),u.jsxs(V,{align:"baseline",gap:"1",children:[u.jsx(q,{className:Te(fi.value,fi.small),style:{color:Yu},children:n.value}),n.unit!==r.unit&&u.jsx(q,{className:fi.appendValue,children:n.unit}),u.jsx(q,{className:Te(fi.value,fi.small),children:"/"}),u.jsx(q,{className:Te(fi.value,fi.small),children:r.value}),u.jsx(q,{className:fi.appendValue,children:r.unit})]})]}),u.jsx(a1,{value:t})]})}function A6t(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(Sd,{text:"Program Cache"}),u.jsxs("div",{className:TP.statRow,children:[u.jsx(z6t,{}),u.jsx(D6t,{})]}),u.jsx("div",{className:TP.statRow,children:u.jsx(F6t,{})})]})})}function F6t(){const e=X(c3);return u.jsxs(u.Fragment,{children:[u.jsx($P,{label:"Insertions",numTimes:e==null?void 0:e.insertions,bytes:e==null?void 0:e.insertion_bytes}),u.jsx($P,{label:"Evictions",numTimes:e==null?void 0:e.evictions,bytes:e==null?void 0:e.eviction_bytes}),u.jsx($P,{label:"Spills",numTimes:e==null?void 0:e.spills,bytes:e==null?void 0:e.spill_bytes})]})}function $P({label:e,numTimes:t,bytes:n}){const{value:r,appendValue:i}=m.useMemo(()=>{const o=n!==void 0?Da(n):void 0;return{value:t!==void 0?t.toLocaleString():"-",appendValue:o?` (${o.value} ${o.unit})`:void 0}},[n,t]);return u.jsx(ya,{label:e,value:r,valueColor:kne,valueSize:"small",appendValue:i})}const B6t="_cards_hn4o1_1",U6t="_txns-card_hn4o1_5",W6t="_frankendancer_hn4o1_18",MP={cards:B6t,txnsCard:U6t,frankendancer:W6t};function V6t(){return u.jsxs(V,{direction:"column",gap:"4",flexGrow:"1",children:[u.jsx(S6t,{}),u.jsxs(Zr,{className:Te(MP.cards,{[MP.frankendancer]:_i}),gap:"4",children:[u.jsx(hkt,{}),u.jsx(akt,{}),u.jsx(ikt,{}),!_i&&u.jsx(A6t,{}),u.jsx(tkt,{className:MP.txnsCard})]}),u.jsx(gkt,{}),u.jsx(Bfe,{}),u.jsx(xkt,{}),u.jsx(qkt,{})]})}const H6t=up("/")({component:V6t}),Z6t=$pe.update({id:"/slotDetails",path:"/slotDetails",getParentRoute:()=>s1}),q6t=yx.update({id:"/leaderSchedule",path:"/leaderSchedule",getParentRoute:()=>s1}),G6t=F3t.update({id:"/gossip",path:"/gossip",getParentRoute:()=>s1}),Y6t=B3t.update({id:"/about",path:"/about",getParentRoute:()=>s1}),K6t=H6t.update({id:"/",path:"/",getParentRoute:()=>s1}),X6t={IndexRoute:K6t,AboutRoute:Y6t,GossipRoute:G6t,LeaderScheduleRoute:q6t,SlotDetailsRoute:Z6t},J6t=s1._addFileChildren(X6t)._addFileTypes(),Q6t=ca();function e5t(){const e=X(MG),t=Ee(Sme);m.useEffect(()=>{if(!e)return;const i=[...new Array(cC).fill(void 0),...e.flatMap(([o,a,s,l])=>[{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l}])];t(i.slice(i.length-cC))},[t,e]);const n=()=>{if(!e)return;const i=Q6t.get(OT);i!==void 0&&t(o=>{o.push(i),o.length>cC&&o.shift()})},r=m.useRef(n);r.current=n,m.useEffect(()=>{let i;function o(){r.current(),i=setTimeout(o,100)}return o(),()=>clearTimeout(i)},[])}function t5t(){const e=S6();Qu(()=>{e({topic:"summary",key:"ping",id:1})},2e3)}XNe.discriminatedUnion("topic",[z$e,A$e,Z$e,X$e,sMe,cMe,pMe]);function n5t(e,t){return e.key===t}const r5t=400,i5t=100,o5t=130,a5t=100,s5t=100,l5t=25,u5t=300,c5t=1e3,d5t=`${window.location.protocol.startsWith("https")?"wss":"ws"}://${window.location.hostname}:${window.location.port}/websocket`,f5t=!0;function h5t(){const e=Ee(jL),t=p5t(),n=Ee(xG),r=Ee(wG),i=Ee(jG),o=Ee(IG),a=m.useCallback(d=>{n5t(d,"gossipHealth")&&o({value:d.value,history:d.history})},[o]),s=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"ingress":n({values:f,history:p});break;case"egress":r({values:f,history:p});break}},[n,r]),l=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"tileTimers":i({values:f,history:p});break}},[i]),c=m.useCallback(d=>{switch(d.type){case"connected":e(ac.Connected);break;case"connecting":e(ac.Connecting);break;case"disconnected":e(ac.Disconnected);break;case"kvb":for(const f of d.items)t(f);break;case"kv":t(d);break;case"ema":break;case"emaHistoryArray":for(const f of d.items)s(f);break;case"historyArray":for(const f of d.items)l(f);break;case"emaHistoryObject":for(const f of d.items)a(f);break}},[e,t,s,l,a]);Tqe(c)}function p5t(){const e=Ee(uG),t=Ee(qy),n=Ee(cG),r=Ee(dp),i=Ee(rg),o=Ee(fG),a=Ee(hG),s=Ee(s3),[l,c]=Vl(dG),[d,f]=m.useReducer(()=>{const it=l!==void 0?Kf.diff(jt.fromMillis(Math.floor(Number(l.startupTimeNanos)/1e6))):void 0,Yt=it!==void 0?it.as("minutes"):void 0;return Yt!==void 0&&Yt>5?1e3*60:1e3},1e3);Qu(f,1e3);const p=Ee(_G),v=Ua(it=>p(it),d),_=Ee(OT),y=Ua(it=>{_(it)},r5t),b=Ee(PT),w=Ua(it=>{b(it)},a5t),x=Ee(CG),S=Ua(it=>{x(it)},o5t),C=Ee(SG),j=Ua(it=>{C(it)},i5t),T=Ee(cre),E=Ee(kG),$=Ua(it=>{E(it),T(it==null?void 0:it.waterfall)},s5t),A=Ee(l3),M=Ua(it=>{A(it)},l5t),P=Ee(Hl),te=Ee(Zu),Z=Ee(JN),O=Ee(MG),J=Ee(zT),D=Ee(LG),Y=Ee(Sre),F=Ee(u3),H=Ee(aDe),ee=Ee(OG),[ce,U]=Vl(di),ae=Ee(rDe),je=Ee(TG),me=Ua(it=>{je(it)},u5t),ke=Ee(EG),he=Ua(it=>{ke(it)},c5t),ue=Ee(NG),re=Ee($G),ge=Ee(fDe),$e=Ee(pDe),pe=Ee(RG),ye=Ee(fp),Se=Ee(gG),Ce=Ee(SDe),Be=Ee(CDe),Ge=Ee(TDe),xt=Ee(IDe),St=Ee(EDe),ut=Ee(NDe),ct=m.useCallback(it=>{ae(it.publish.slot,it.publish.level),it.publish.skipped?Ce([it.publish.slot]):Be(it.publish.slot),it.publish.level==="rooted"&&(zze(it.publish)?Ge(it.publish.slot,it.publish.vote_latency):xt(it.publish.slot)),it.publish.mine&&(it.publish.skipped?F(Yt=>[...(Yt??[]).filter(nr=>nr!==it.publish.slot),it.publish.slot].sort()):F(Yt=>Yt!=null&&Yt.some(nr=>nr===it.publish.slot)?Yt==null?void 0:Yt.filter(nr=>nr!==it.publish.slot):Yt))},[Ge,Ce,xt,Be,F,ae]),bt=Ee(Gy),Qe=Ee(nZe),Ke=m.useCallback(it=>{bt(it),it!=null&&Qe([it])},[Qe,bt]),De=Ee(yG),Dt=Ee(oZe),pn=m.useCallback(it=>{De(it),it!=null&&Dt([it])},[Dt,De]),Yn=Ee(x7e),fr=Ee(vG),Kn=Ee(RT),wr=Ee(pG),Pn=Ee(mG),$r=Ee(bG),tr=Ee(__.addShredEvents),kr=Ee(c3),ni=m.useRef(new Map),uo=m.useRef(new Map),Ki=Ip(()=>{ge([...ni.current.values()]),$e([...uo.current.values()]),ni.current.clear(),uo.current.clear()},1e3,{maxWait:1e3}),No=m.useCallback(it=>{if(it.add)for(const Yt of it.add)ni.current.set(Yt.identity_pubkey,Yt),uo.current.delete(Yt.identity_pubkey);if(it.update)for(const Yt of it.update)ni.current.set(Yt.identity_pubkey,Yt);if(it.remove)for(const Yt of it.remove)ni.current.delete(Yt.identity_pubkey),uo.current.set(Yt.identity_pubkey,Yt);Ki()},[Ki]),Os=Ee(vDe),zn=m.useRef({toAdd:new Set,toRemove:new Set}),co=Ip(()=>{Os([...zn.current.toAdd],[...zn.current.toRemove]),zn.current.toAdd.clear(),zn.current.toRemove.clear()},1e3,{maxWait:1e3}),_a=m.useCallback((it,Yt)=>{if(it)for(const nr of Yt)zn.current.toAdd.add(nr),zn.current.toRemove.delete(nr);else for(const nr of Yt)zn.current.toAdd.delete(nr),zn.current.toRemove.add(nr);co()},[co]),yc=m.useCallback(it=>{const{topic:Yt,key:nr,value:ht}=it;switch(Yt){case"summary":switch(nr){case"version":{e(ht);break}case"cluster":{t(ht);break}case"commit_hash":{n(ht);break}case"identity_key":{r(ht);break}case"vote_balance":{a(ht);break}case"startup_time_nanos":{c({startupTimeNanos:ht});break}case"tiles":{i(ht);break}case"schedule_strategy":{s(ht);break}case"identity_balance":{o(ht);break}case"estimated_slot_duration_nanos":{v(ht);break}case"estimated_tps":{y(ht);break}case"live_tile_primary_metric":{j(ht);break}case"live_txn_waterfall":{$(ht);break}case"live_tile_timers":{M(ht);break}case"boot_progress":{P(ht);break}case"startup_progress":{te(ht);break}case"tps_history":{O(ht);break}case"vote_state":{J(ht);break}case"vote_distance":{D(ht);break}case"skip_rate":{Y(ht);break}case"completed_slot":{ye(ht);break}case"turbine_slot":{Ke(ht);break}case"repair_slot":{pn(ht);break}case"reset_slot":{Yn(ht);break}case"storage_slot":{fr(ht);break}case"vote_slot":{Kn(ht);break}case"root_slot":{wr(ht);break}case"optimistically_confirmed_slot":{Pn(ht);break}case"slot_caught_up":$r(ht);break;case"catch_up_history":{Qe(ht.turbine),Dt(ht.repair);break}case"server_time_nanos":{Se(ht);break}case"live_network_metrics":{w(ht);break}case"live_tile_metrics":S(ht);break;case"live_program_cache":kr(ht);break}break;case"epoch":switch(nr){case"new":U(ht);break}break;case"gossip":switch(nr){case"network_stats":{me(ht);break}case"peers_size_update":{he(ht);break}case"query_scroll":case"query_sort":{ue(ht);break}case"view_update":{re(ht);break}}break;case"peers":No(ht);break;case"slot":switch(nr){case"skipped_history":{F(ht.sort());break}case"skipped_history_cluster":{Ce(ht);break}case"update":case"query":case"query_detailed":case"query_transactions":{ht&&(H(ht),ct(ht));break}case"query_rankings":{ee(ht);break}case"live_shreds":{tr(ht);break}case"late_votes_history":{ut(ht);break}}break;case"block_engine":{switch(nr){case"update":{pe(ht);break}}break}case"wait_for_supermajority":{switch(nr){case"stakes":{Z(ht);break}case"peer_add":{_a(!0,ht);break}case"peer_remove":{_a(!1,ht);break}}break}}},[tr,pn,Dt,Ce,No,_a,Ke,Qe,ct,pe,P,t,n,ye,v,y,me,he,w,j,S,$,M,U,re,ue,o,r,ut,kr,Pn,Yn,wr,s,Se,Y,F,$r,ee,H,te,c,fr,Z,i,O,e,a,D,Kn,J]),bc=Ee(oDe),_c=Ee(sDe),qa=Ee(jDe),kl=Ee(Qze);Qu(()=>{bc(),_c(),ce&&F(it=>it==null?void 0:it.filter(Yt=>Yt>=ce.start_slot&&Yt<=ce.end_slot))},5e3),m.useEffect(()=>{ce&&(qa(ce.start_slot,ce.end_slot),kl(ce.epoch))},[qa,kl,ce]),m.useEffect(()=>{ce&&St({startSlot:ce.start_slot,endSlot:ce.end_slot})},[St,ce]);const pi=X(ol),Bn=X(jL)===ac.Disconnected,Mr=Ee(__.deleteSlots);m.useEffect(()=>{Bn&&Mr(Bn,pi)},[Mr,Bn,pi]);const $o=Ee(rZe),fo=Ee(aZe);m.useEffect(()=>{pi||($o(),fo())},[pi,fo,$o]),Qu(()=>{Mr(Bn,pi)},pi?1e3:_6/4);const Lr=Ee(bDe),ho=Ee(_De),xa=X(Gu);return m.useEffect(()=>{Bn&&(co.cancel(),zn.current.toAdd.clear(),zn.current.toRemove.clear(),ho())},[co,Bn,ho]),Qu(Lr,xa===wn.waiting_for_supermajority?1e3:null),yc}function m5t(){return h5t(),e5t(),t5t(),null}function g5t(e){return new e}function v5t(e){return new Worker("/assets/wsWorker-D3WzW2i7.js",{name:e==null?void 0:e.name})}function y5t(e){return(t,...n)=>{console[e](`(${jt.now().toISO({includeOffset:!1})??""}) [${t}]`,...n)}}const b5t=y5t("error");let yu=null;const Hme=new Cse().setMaxListeners(1e3);let Cx=[],Dm=null,Am=null;function Zme(){Dm=null,Am=null;const e=Cx;Cx=[];for(const t of e)try{Hme.emit(FM,t)}catch(n){b5t("useWsWorker","Error processing worker message:",t.type,n)}}function qme(){Dm!==null&&(cancelAnimationFrame(Dm),Dm=null),Am!==null&&(clearTimeout(Am),Am=null)}function Gme(){Dm!==null||Am!==null||Cx.length&&(document.visibilityState==="visible"?Dm=requestAnimationFrame(Zme):Am=window.setTimeout(Zme,0))}function _5t(){(Dm!==null||Am!==null)&&(qme(),Gme())}document.addEventListener("visibilitychange",_5t);function x5t(e){Cx.push(e.data),Gme()}function w5t(e,t){yu||e.trim()&&(yu=g5t(v5t),yu.onmessage=x5t,yu.postMessage({type:"connect",websocketUrl:e,compress:t}))}function k5t(){qme(),Cx=[],yu&&(yu.postMessage({type:"disconnect"}),yu.terminate(),yu=null)}function S5t({websocketUrl:e,compress:t}){return m.useEffect(()=>(w5t(e,t),()=>k5t()),[e,t]),{sendMessage:m.useCallback(n=>{yu==null||yu.postMessage({type:"send",value:n})},[]),emitter:Hme}}function C5t({children:e}){const{sendMessage:t,emitter:n}=S5t({websocketUrl:d5t,compress:f5t}),r=m.useMemo(()=>({...jse,sendMessage:t,emitter:n}),[t,n]);return u.jsxs(BM.Provider,{value:r,children:[u.jsx(m5t,{}),e]})}const j5t=R9e({routeTree:J6t});y7e(),Vi?(Kme=document.getElementById("favicon"))==null||Kme.setAttribute("href",toe):(Xme=document.getElementById("favicon"))==null||Xme.setAttribute("href",noe);function T5t(){const e=Ee(jg),t=m.useCallback(n=>{e(n),Object.entries(Sze).forEach(([r,i])=>{n.style.setProperty(`--${rt.kebabCase(r)}`,i)})},[e]);return i_(()=>{"fonts"in document&&new FontFace("NotoFlagsOnly","url(assets/NotoFlagsOnly.woff2)",{weight:"normal",style:"normal",display:"swap"}).load().then(n=>{document.fonts.add(n)}).catch(console.error)}),u.jsx(Mf,{id:"app",appearance:"dark",ref:t,scaling:"90%",children:u.jsx(C5t,{children:u.jsx(z9e,{router:j5t})})})}mj.createRoot(document.getElementById("root")).render(u.jsx(Oe.StrictMode,{children:u.jsx(T5t,{})})); diff --git a/src/disco/gui/dist_dev/assets/index-ColMY7Rf.css b/src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css similarity index 99% rename from src/disco/gui/dist_dev/assets/index-ColMY7Rf.css rename to src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css index 0ecc67734e3..02624b14be7 100644 --- a/src/disco/gui/dist_dev/assets/index-ColMY7Rf.css +++ b/src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css @@ -1 +1 @@ -@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2) format("woff2"),url(/assets/inter-tight-latin-400-normal-BLrFJfvD.woff) format("woff")}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-latin-400-normal-GekRknry.woff2) format("woff2"),url(/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff) format("woff")}:root,.light,.light-theme{--gray-1: #fcfcfc;--gray-2: #f9f9f9;--gray-3: #f0f0f0;--gray-4: #e8e8e8;--gray-5: #e0e0e0;--gray-6: #d9d9d9;--gray-7: #cecece;--gray-8: #bbbbbb;--gray-9: #8d8d8d;--gray-10: #838383;--gray-11: #646464;--gray-12: #202020;--gray-a1: #00000003;--gray-a2: #00000006;--gray-a3: #0000000f;--gray-a4: #00000017;--gray-a5: #0000001f;--gray-a6: #00000026;--gray-a7: #00000031;--gray-a8: #00000044;--gray-a9: #00000072;--gray-a10: #0000007c;--gray-a11: #0000009b;--gray-a12: #000000df;--mauve-1: #fdfcfd;--mauve-2: #faf9fb;--mauve-3: #f2eff3;--mauve-4: #eae7ec;--mauve-5: #e3dfe6;--mauve-6: #dbd8e0;--mauve-7: #d0cdd7;--mauve-8: #bcbac7;--mauve-9: #8e8c99;--mauve-10: #84828e;--mauve-11: #65636d;--mauve-12: #211f26;--mauve-a1: #55005503;--mauve-a2: #2b005506;--mauve-a3: #30004010;--mauve-a4: #20003618;--mauve-a5: #20003820;--mauve-a6: #14003527;--mauve-a7: #10003332;--mauve-a8: #08003145;--mauve-a9: #05001d73;--mauve-a10: #0500197d;--mauve-a11: #0400119c;--mauve-a12: #020008e0;--slate-1: #fcfcfd;--slate-2: #f9f9fb;--slate-3: #f0f0f3;--slate-4: #e8e8ec;--slate-5: #e0e1e6;--slate-6: #d9d9e0;--slate-7: #cdced6;--slate-8: #b9bbc6;--slate-9: #8b8d98;--slate-10: #80838d;--slate-11: #60646c;--slate-12: #1c2024;--slate-a1: #00005503;--slate-a2: #00005506;--slate-a3: #0000330f;--slate-a4: #00002d17;--slate-a5: #0009321f;--slate-a6: #00002f26;--slate-a7: #00062e32;--slate-a8: #00083046;--slate-a9: #00051d74;--slate-a10: #00071b7f;--slate-a11: #0007149f;--slate-a12: #000509e3;--sage-1: #fbfdfc;--sage-2: #f7f9f8;--sage-3: #eef1f0;--sage-4: #e6e9e8;--sage-5: #dfe2e0;--sage-6: #d7dad9;--sage-7: #cbcfcd;--sage-8: #b8bcba;--sage-9: #868e8b;--sage-10: #7c8481;--sage-11: #5f6563;--sage-12: #1a211e;--sage-a1: #00804004;--sage-a2: #00402008;--sage-a3: #002d1e11;--sage-a4: #001f1519;--sage-a5: #00180820;--sage-a6: #00140d28;--sage-a7: #00140a34;--sage-a8: #000f0847;--sage-a9: #00110b79;--sage-a10: #00100a83;--sage-a11: #000a07a0;--sage-a12: #000805e5;--olive-1: #fcfdfc;--olive-2: #f8faf8;--olive-3: #eff1ef;--olive-4: #e7e9e7;--olive-5: #dfe2df;--olive-6: #d7dad7;--olive-7: #cccfcc;--olive-8: #b9bcb8;--olive-9: #898e87;--olive-10: #7f847d;--olive-11: #60655f;--olive-12: #1d211c;--olive-a1: #00550003;--olive-a2: #00490007;--olive-a3: #00200010;--olive-a4: #00160018;--olive-a5: #00180020;--olive-a6: #00140028;--olive-a7: #000f0033;--olive-a8: #040f0047;--olive-a9: #050f0078;--olive-a10: #040e0082;--olive-a11: #020a00a0;--olive-a12: #010600e3;--sand-1: #fdfdfc;--sand-2: #f9f9f8;--sand-3: #f1f0ef;--sand-4: #e9e8e6;--sand-5: #e2e1de;--sand-6: #dad9d6;--sand-7: #cfceca;--sand-8: #bcbbb5;--sand-9: #8d8d86;--sand-10: #82827c;--sand-11: #63635e;--sand-12: #21201c;--sand-a1: #55550003;--sand-a2: #25250007;--sand-a3: #20100010;--sand-a4: #1f150019;--sand-a5: #1f180021;--sand-a6: #19130029;--sand-a7: #19140035;--sand-a8: #1915014a;--sand-a9: #0f0f0079;--sand-a10: #0c0c0083;--sand-a11: #080800a1;--sand-a12: #060500e3;--amber-1: #fefdfb;--amber-2: #fefbe9;--amber-3: #fff7c2;--amber-4: #ffee9c;--amber-5: #fbe577;--amber-6: #f3d673;--amber-7: #e9c162;--amber-8: #e2a336;--amber-9: #ffc53d;--amber-10: #ffba18;--amber-11: #ab6400;--amber-12: #4f3422;--amber-a1: #c0800004;--amber-a2: #f4d10016;--amber-a3: #ffde003d;--amber-a4: #ffd40063;--amber-a5: #f8cf0088;--amber-a6: #eab5008c;--amber-a7: #dc9b009d;--amber-a8: #da8a00c9;--amber-a9: #ffb300c2;--amber-a10: #ffb300e7;--amber-a11: #ab6400;--amber-a12: #341500dd;--blue-1: #fbfdff;--blue-2: #f4faff;--blue-3: #e6f4fe;--blue-4: #d5efff;--blue-5: #c2e5ff;--blue-6: #acd8fc;--blue-7: #8ec8f6;--blue-8: #5eb1ef;--blue-9: #0090ff;--blue-10: #0588f0;--blue-11: #0d74ce;--blue-12: #113264;--blue-a1: #0080ff04;--blue-a2: #008cff0b;--blue-a3: #008ff519;--blue-a4: #009eff2a;--blue-a5: #0093ff3d;--blue-a6: #0088f653;--blue-a7: #0083eb71;--blue-a8: #0084e6a1;--blue-a9: #0090ff;--blue-a10: #0086f0fa;--blue-a11: #006dcbf2;--blue-a12: #002359ee;--bronze-1: #fdfcfc;--bronze-2: #fdf7f5;--bronze-3: #f6edea;--bronze-4: #efe4df;--bronze-5: #e7d9d3;--bronze-6: #dfcdc5;--bronze-7: #d3bcb3;--bronze-8: #c2a499;--bronze-9: #a18072;--bronze-10: #957468;--bronze-11: #7d5e54;--bronze-12: #43302b;--bronze-a1: #55000003;--bronze-a2: #cc33000a;--bronze-a3: #92250015;--bronze-a4: #80280020;--bronze-a5: #7423002c;--bronze-a6: #7324003a;--bronze-a7: #6c1f004c;--bronze-a8: #671c0066;--bronze-a9: #551a008d;--bronze-a10: #4c150097;--bronze-a11: #3d0f00ab;--bronze-a12: #1d0600d4;--brown-1: #fefdfc;--brown-2: #fcf9f6;--brown-3: #f6eee7;--brown-4: #f0e4d9;--brown-5: #ebdaca;--brown-6: #e4cdb7;--brown-7: #dcbc9f;--brown-8: #cea37e;--brown-9: #ad7f58;--brown-10: #a07553;--brown-11: #815e46;--brown-12: #3e332e;--brown-a1: #aa550003;--brown-a2: #aa550009;--brown-a3: #a04b0018;--brown-a4: #9b4a0026;--brown-a5: #9f4d0035;--brown-a6: #a04e0048;--brown-a7: #a34e0060;--brown-a8: #9f4a0081;--brown-a9: #823c00a7;--brown-a10: #723300ac;--brown-a11: #522100b9;--brown-a12: #140600d1;--crimson-1: #fffcfd;--crimson-2: #fef7f9;--crimson-3: #ffe9f0;--crimson-4: #fedce7;--crimson-5: #facedd;--crimson-6: #f3bed1;--crimson-7: #eaacc3;--crimson-8: #e093b2;--crimson-9: #e93d82;--crimson-10: #df3478;--crimson-11: #cb1d63;--crimson-12: #621639;--crimson-a1: #ff005503;--crimson-a2: #e0004008;--crimson-a3: #ff005216;--crimson-a4: #f8005123;--crimson-a5: #e5004f31;--crimson-a6: #d0004b41;--crimson-a7: #bf004753;--crimson-a8: #b6004a6c;--crimson-a9: #e2005bc2;--crimson-a10: #d70056cb;--crimson-a11: #c4004fe2;--crimson-a12: #530026e9;--cyan-1: #fafdfe;--cyan-2: #f2fafb;--cyan-3: #def7f9;--cyan-4: #caf1f6;--cyan-5: #b5e9f0;--cyan-6: #9ddde7;--cyan-7: #7dcedc;--cyan-8: #3db9cf;--cyan-9: #00a2c7;--cyan-10: #0797b9;--cyan-11: #107d98;--cyan-12: #0d3c48;--cyan-a1: #0099cc05;--cyan-a2: #009db10d;--cyan-a3: #00c2d121;--cyan-a4: #00bcd435;--cyan-a5: #01b4cc4a;--cyan-a6: #00a7c162;--cyan-a7: #009fbb82;--cyan-a8: #00a3c0c2;--cyan-a9: #00a2c7;--cyan-a10: #0094b7f8;--cyan-a11: #007491ef;--cyan-a12: #00323ef2;--gold-1: #fdfdfc;--gold-2: #faf9f2;--gold-3: #f2f0e7;--gold-4: #eae6db;--gold-5: #e1dccf;--gold-6: #d8d0bf;--gold-7: #cbc0aa;--gold-8: #b9a88d;--gold-9: #978365;--gold-10: #8c7a5e;--gold-11: #71624b;--gold-12: #3b352b;--gold-a1: #55550003;--gold-a2: #9d8a000d;--gold-a3: #75600018;--gold-a4: #6b4e0024;--gold-a5: #60460030;--gold-a6: #64440040;--gold-a7: #63420055;--gold-a8: #633d0072;--gold-a9: #5332009a;--gold-a10: #492d00a1;--gold-a11: #362100b4;--gold-a12: #130c00d4;--grass-1: #fbfefb;--grass-2: #f5fbf5;--grass-3: #e9f6e9;--grass-4: #daf1db;--grass-5: #c9e8ca;--grass-6: #b2ddb5;--grass-7: #94ce9a;--grass-8: #65ba74;--grass-9: #46a758;--grass-10: #3e9b4f;--grass-11: #2a7e3b;--grass-12: #203c25;--grass-a1: #00c00004;--grass-a2: #0099000a;--grass-a3: #00970016;--grass-a4: #009f0725;--grass-a5: #00930536;--grass-a6: #008f0a4d;--grass-a7: #018b0f6b;--grass-a8: #008d199a;--grass-a9: #008619b9;--grass-a10: #007b17c1;--grass-a11: #006514d5;--grass-a12: #002006df;--green-1: #fbfefc;--green-2: #f4fbf6;--green-3: #e6f6eb;--green-4: #d6f1df;--green-5: #c4e8d1;--green-6: #adddc0;--green-7: #8eceaa;--green-8: #5bb98b;--green-9: #30a46c;--green-10: #2b9a66;--green-11: #218358;--green-12: #193b2d;--green-a1: #00c04004;--green-a2: #00a32f0b;--green-a3: #00a43319;--green-a4: #00a83829;--green-a5: #019c393b;--green-a6: #00963c52;--green-a7: #00914071;--green-a8: #00924ba4;--green-a9: #008f4acf;--green-a10: #008647d4;--green-a11: #00713fde;--green-a12: #002616e6;--indigo-1: #fdfdfe;--indigo-2: #f7f9ff;--indigo-3: #edf2fe;--indigo-4: #e1e9ff;--indigo-5: #d2deff;--indigo-6: #c1d0ff;--indigo-7: #abbdf9;--indigo-8: #8da4ef;--indigo-9: #3e63dd;--indigo-10: #3358d4;--indigo-11: #3a5bc7;--indigo-12: #1f2d5c;--indigo-a1: #00008002;--indigo-a2: #0040ff08;--indigo-a3: #0047f112;--indigo-a4: #0044ff1e;--indigo-a5: #0044ff2d;--indigo-a6: #003eff3e;--indigo-a7: #0037ed54;--indigo-a8: #0034dc72;--indigo-a9: #0031d2c1;--indigo-a10: #002ec9cc;--indigo-a11: #002bb7c5;--indigo-a12: #001046e0;--iris-1: #fdfdff;--iris-2: #f8f8ff;--iris-3: #f0f1fe;--iris-4: #e6e7ff;--iris-5: #dadcff;--iris-6: #cbcdff;--iris-7: #b8baf8;--iris-8: #9b9ef0;--iris-9: #5b5bd6;--iris-10: #5151cd;--iris-11: #5753c6;--iris-12: #272962;--iris-a1: #0000ff02;--iris-a2: #0000ff07;--iris-a3: #0011ee0f;--iris-a4: #000bff19;--iris-a5: #000eff25;--iris-a6: #000aff34;--iris-a7: #0008e647;--iris-a8: #0008d964;--iris-a9: #0000c0a4;--iris-a10: #0000b6ae;--iris-a11: #0600abac;--iris-a12: #000246d8;--jade-1: #fbfefd;--jade-2: #f4fbf7;--jade-3: #e6f7ed;--jade-4: #d6f1e3;--jade-5: #c3e9d7;--jade-6: #acdec8;--jade-7: #8bceb6;--jade-8: #56ba9f;--jade-9: #29a383;--jade-10: #26997b;--jade-11: #208368;--jade-12: #1d3b31;--jade-a1: #00c08004;--jade-a2: #00a3460b;--jade-a3: #00ae4819;--jade-a4: #00a85129;--jade-a5: #00a2553c;--jade-a6: #009a5753;--jade-a7: #00945f74;--jade-a8: #00976ea9;--jade-a9: #00916bd6;--jade-a10: #008764d9;--jade-a11: #007152df;--jade-a12: #002217e2;--lime-1: #fcfdfa;--lime-2: #f8faf3;--lime-3: #eef6d6;--lime-4: #e2f0bd;--lime-5: #d3e7a6;--lime-6: #c2da91;--lime-7: #abc978;--lime-8: #8db654;--lime-9: #bdee63;--lime-10: #b0e64c;--lime-11: #5c7c2f;--lime-12: #37401c;--lime-a1: #66990005;--lime-a2: #6b95000c;--lime-a3: #96c80029;--lime-a4: #8fc60042;--lime-a5: #81bb0059;--lime-a6: #72aa006e;--lime-a7: #61990087;--lime-a8: #559200ab;--lime-a9: #93e4009c;--lime-a10: #8fdc00b3;--lime-a11: #375f00d0;--lime-a12: #1e2900e3;--mint-1: #f9fefd;--mint-2: #f2fbf9;--mint-3: #ddf9f2;--mint-4: #c8f4e9;--mint-5: #b3ecde;--mint-6: #9ce0d0;--mint-7: #7ecfbd;--mint-8: #4cbba5;--mint-9: #86ead4;--mint-10: #7de0cb;--mint-11: #027864;--mint-12: #16433c;--mint-a1: #00d5aa06;--mint-a2: #00b18a0d;--mint-a3: #00d29e22;--mint-a4: #00cc9937;--mint-a5: #00c0914c;--mint-a6: #00b08663;--mint-a7: #00a17d81;--mint-a8: #009e7fb3;--mint-a9: #00d3a579;--mint-a10: #00c39982;--mint-a11: #007763fd;--mint-a12: #00312ae9;--orange-1: #fefcfb;--orange-2: #fff7ed;--orange-3: #ffefd6;--orange-4: #ffdfb5;--orange-5: #ffd19a;--orange-6: #ffc182;--orange-7: #f5ae73;--orange-8: #ec9455;--orange-9: #f76b15;--orange-10: #ef5f00;--orange-11: #cc4e00;--orange-12: #582d1d;--orange-a1: #c0400004;--orange-a2: #ff8e0012;--orange-a3: #ff9c0029;--orange-a4: #ff91014a;--orange-a5: #ff8b0065;--orange-a6: #ff81007d;--orange-a7: #ed6c008c;--orange-a8: #e35f00aa;--orange-a9: #f65e00ea;--orange-a10: #ef5f00;--orange-a11: #cc4e00;--orange-a12: #431200e2;--pink-1: #fffcfe;--pink-2: #fef7fb;--pink-3: #fee9f5;--pink-4: #fbdcef;--pink-5: #f6cee7;--pink-6: #efbfdd;--pink-7: #e7acd0;--pink-8: #dd93c2;--pink-9: #d6409f;--pink-10: #cf3897;--pink-11: #c2298a;--pink-12: #651249;--pink-a1: #ff00aa03;--pink-a2: #e0008008;--pink-a3: #f4008c16;--pink-a4: #e2008b23;--pink-a5: #d1008331;--pink-a6: #c0007840;--pink-a7: #b6006f53;--pink-a8: #af006f6c;--pink-a9: #c8007fbf;--pink-a10: #c2007ac7;--pink-a11: #b60074d6;--pink-a12: #59003bed;--plum-1: #fefcff;--plum-2: #fdf7fd;--plum-3: #fbebfb;--plum-4: #f7def8;--plum-5: #f2d1f3;--plum-6: #e9c2ec;--plum-7: #deade3;--plum-8: #cf91d8;--plum-9: #ab4aba;--plum-10: #a144af;--plum-11: #953ea3;--plum-12: #53195d;--plum-a1: #aa00ff03;--plum-a2: #c000c008;--plum-a3: #cc00cc14;--plum-a4: #c200c921;--plum-a5: #b700bd2e;--plum-a6: #a400b03d;--plum-a7: #9900a852;--plum-a8: #9000a56e;--plum-a9: #89009eb5;--plum-a10: #7f0092bb;--plum-a11: #730086c1;--plum-a12: #40004be6;--purple-1: #fefcfe;--purple-2: #fbf7fe;--purple-3: #f7edfe;--purple-4: #f2e2fc;--purple-5: #ead5f9;--purple-6: #e0c4f4;--purple-7: #d1afec;--purple-8: #be93e4;--purple-9: #8e4ec6;--purple-10: #8347b9;--purple-11: #8145b5;--purple-12: #402060;--purple-a1: #aa00aa03;--purple-a2: #8000e008;--purple-a3: #8e00f112;--purple-a4: #8d00e51d;--purple-a5: #8000db2a;--purple-a6: #7a01d03b;--purple-a7: #6d00c350;--purple-a8: #6600c06c;--purple-a9: #5c00adb1;--purple-a10: #53009eb8;--purple-a11: #52009aba;--purple-a12: #250049df;--red-1: #fffcfc;--red-2: #fff7f7;--red-3: #feebec;--red-4: #ffdbdc;--red-5: #ffcdce;--red-6: #fdbdbe;--red-7: #f4a9aa;--red-8: #eb8e90;--red-9: #e5484d;--red-10: #dc3e42;--red-11: #ce2c31;--red-12: #641723;--red-a1: #ff000003;--red-a2: #ff000008;--red-a3: #f3000d14;--red-a4: #ff000824;--red-a5: #ff000632;--red-a6: #f8000442;--red-a7: #df000356;--red-a8: #d2000571;--red-a9: #db0007b7;--red-a10: #d10005c1;--red-a11: #c40006d3;--red-a12: #55000de8;--ruby-1: #fffcfd;--ruby-2: #fff7f8;--ruby-3: #feeaed;--ruby-4: #ffdce1;--ruby-5: #ffced6;--ruby-6: #f8bfc8;--ruby-7: #efacb8;--ruby-8: #e592a3;--ruby-9: #e54666;--ruby-10: #dc3b5d;--ruby-11: #ca244d;--ruby-12: #64172b;--ruby-a1: #ff005503;--ruby-a2: #ff002008;--ruby-a3: #f3002515;--ruby-a4: #ff002523;--ruby-a5: #ff002a31;--ruby-a6: #e4002440;--ruby-a7: #ce002553;--ruby-a8: #c300286d;--ruby-a9: #db002cb9;--ruby-a10: #d2002cc4;--ruby-a11: #c10030db;--ruby-a12: #550016e8;--sky-1: #f9feff;--sky-2: #f1fafd;--sky-3: #e1f6fd;--sky-4: #d1f0fa;--sky-5: #bee7f5;--sky-6: #a9daed;--sky-7: #8dcae3;--sky-8: #60b3d7;--sky-9: #7ce2fe;--sky-10: #74daf8;--sky-11: #00749e;--sky-12: #1d3e56;--sky-a1: #00d5ff06;--sky-a2: #00a4db0e;--sky-a3: #00b3ee1e;--sky-a4: #00ace42e;--sky-a5: #00a1d841;--sky-a6: #0092ca56;--sky-a7: #0089c172;--sky-a8: #0085bf9f;--sky-a9: #00c7fe83;--sky-a10: #00bcf38b;--sky-a11: #00749e;--sky-a12: #002540e2;--teal-1: #fafefd;--teal-2: #f3fbf9;--teal-3: #e0f8f3;--teal-4: #ccf3ea;--teal-5: #b8eae0;--teal-6: #a1ded2;--teal-7: #83cdc1;--teal-8: #53b9ab;--teal-9: #12a594;--teal-10: #0d9b8a;--teal-11: #008573;--teal-12: #0d3d38;--teal-a1: #00cc9905;--teal-a2: #00aa800c;--teal-a3: #00c69d1f;--teal-a4: #00c39633;--teal-a5: #00b49047;--teal-a6: #00a6855e;--teal-a7: #0099807c;--teal-a8: #009783ac;--teal-a9: #009e8ced;--teal-a10: #009684f2;--teal-a11: #008573;--teal-a12: #00332df2;--tomato-1: #fffcfc;--tomato-2: #fff8f7;--tomato-3: #feebe7;--tomato-4: #ffdcd3;--tomato-5: #ffcdc2;--tomato-6: #fdbdaf;--tomato-7: #f5a898;--tomato-8: #ec8e7b;--tomato-9: #e54d2e;--tomato-10: #dd4425;--tomato-11: #d13415;--tomato-12: #5c271f;--tomato-a1: #ff000003;--tomato-a2: #ff200008;--tomato-a3: #f52b0018;--tomato-a4: #ff35002c;--tomato-a5: #ff2e003d;--tomato-a6: #f92d0050;--tomato-a7: #e7280067;--tomato-a8: #db250084;--tomato-a9: #df2600d1;--tomato-a10: #d72400da;--tomato-a11: #cd2200ea;--tomato-a12: #460900e0;--violet-1: #fdfcfe;--violet-2: #faf8ff;--violet-3: #f4f0fe;--violet-4: #ebe4ff;--violet-5: #e1d9ff;--violet-6: #d4cafe;--violet-7: #c2b5f5;--violet-8: #aa99ec;--violet-9: #6e56cf;--violet-10: #654dc4;--violet-11: #6550b9;--violet-12: #2f265f;--violet-a1: #5500aa03;--violet-a2: #4900ff07;--violet-a3: #4400ee0f;--violet-a4: #4300ff1b;--violet-a5: #3600ff26;--violet-a6: #3100fb35;--violet-a7: #2d01dd4a;--violet-a8: #2b00d066;--violet-a9: #2400b7a9;--violet-a10: #2300abb2;--violet-a11: #1f0099af;--violet-a12: #0b0043d9;--yellow-1: #fdfdf9;--yellow-2: #fefce9;--yellow-3: #fffab8;--yellow-4: #fff394;--yellow-5: #ffe770;--yellow-6: #f3d768;--yellow-7: #e4c767;--yellow-8: #d5ae39;--yellow-9: #ffe629;--yellow-10: #ffdc00;--yellow-11: #9e6c00;--yellow-12: #473b1f;--yellow-a1: #aaaa0006;--yellow-a2: #f4dd0016;--yellow-a3: #ffee0047;--yellow-a4: #ffe3016b;--yellow-a5: #ffd5008f;--yellow-a6: #ebbc0097;--yellow-a7: #d2a10098;--yellow-a8: #c99700c6;--yellow-a9: #ffe100d6;--yellow-a10: #ffdc00;--yellow-a11: #9e6c00;--yellow-a12: #2e2000e0;--gray-surface: #ffffffcc;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #ffffffcc;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #ffffffcc;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #ffffffcc;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #ffffffcc;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #ffffffcc;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #fefae4cc;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #f1f9ffcc;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #fdf5f3cc;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #fbf8f4cc;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #fef5f8cc;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #eff9facc;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #f9f8efcc;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #f3faf3cc;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #f1faf4cc;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #f5f8ffcc;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #f6f6ffcc;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #f1faf5cc;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #f6f9f0cc;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #effaf8cc;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #fff5e9cc;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #fef5facc;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #fdf5fdcc;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #faf5fecc;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #fff5f5cc;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #fff5f6cc;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #eef9fdcc;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #f0faf8cc;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #fff6f5cc;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #f9f6ffcc;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #fefbe4cc;--yellow-indicator: var(--yellow-10);--yellow-track: var(--yellow-10)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root,.light,.light-theme{--gray-1: color(display-p3 .988 .988 .988);--gray-2: color(display-p3 .975 .975 .975);--gray-3: color(display-p3 .939 .939 .939);--gray-4: color(display-p3 .908 .908 .908);--gray-5: color(display-p3 .88 .88 .88);--gray-6: color(display-p3 .849 .849 .849);--gray-7: color(display-p3 .807 .807 .807);--gray-8: color(display-p3 .732 .732 .732);--gray-9: color(display-p3 .553 .553 .553);--gray-10: color(display-p3 .512 .512 .512);--gray-11: color(display-p3 .392 .392 .392);--gray-12: color(display-p3 .125 .125 .125);--gray-a1: color(display-p3 0 0 0 / .012);--gray-a2: color(display-p3 0 0 0 / .024);--gray-a3: color(display-p3 0 0 0 / .063);--gray-a4: color(display-p3 0 0 0 / .09);--gray-a5: color(display-p3 0 0 0 / .122);--gray-a6: color(display-p3 0 0 0 / .153);--gray-a7: color(display-p3 0 0 0 / .192);--gray-a8: color(display-p3 0 0 0 / .267);--gray-a9: color(display-p3 0 0 0 / .447);--gray-a10: color(display-p3 0 0 0 / .486);--gray-a11: color(display-p3 0 0 0 / .608);--gray-a12: color(display-p3 0 0 0 / .875);--mauve-1: color(display-p3 .991 .988 .992);--mauve-2: color(display-p3 .98 .976 .984);--mauve-3: color(display-p3 .946 .938 .952);--mauve-4: color(display-p3 .915 .906 .925);--mauve-5: color(display-p3 .886 .876 .901);--mauve-6: color(display-p3 .856 .846 .875);--mauve-7: color(display-p3 .814 .804 .84);--mauve-8: color(display-p3 .735 .728 .777);--mauve-9: color(display-p3 .555 .549 .596);--mauve-10: color(display-p3 .514 .508 .552);--mauve-11: color(display-p3 .395 .388 .424);--mauve-12: color(display-p3 .128 .122 .147);--mauve-a1: color(display-p3 .349 .024 .349 / .012);--mauve-a2: color(display-p3 .184 .024 .349 / .024);--mauve-a3: color(display-p3 .129 .008 .255 / .063);--mauve-a4: color(display-p3 .094 .012 .216 / .095);--mauve-a5: color(display-p3 .098 .008 .224 / .126);--mauve-a6: color(display-p3 .055 .004 .18 / .153);--mauve-a7: color(display-p3 .067 .008 .184 / .197);--mauve-a8: color(display-p3 .02 .004 .176 / .271);--mauve-a9: color(display-p3 .02 .004 .106 / .451);--mauve-a10: color(display-p3 .012 .004 .09 / .491);--mauve-a11: color(display-p3 .016 0 .059 / .612);--mauve-a12: color(display-p3 .008 0 .027 / .879);--slate-1: color(display-p3 .988 .988 .992);--slate-2: color(display-p3 .976 .976 .984);--slate-3: color(display-p3 .94 .941 .953);--slate-4: color(display-p3 .908 .909 .925);--slate-5: color(display-p3 .88 .881 .901);--slate-6: color(display-p3 .85 .852 .876);--slate-7: color(display-p3 .805 .808 .838);--slate-8: color(display-p3 .727 .733 .773);--slate-9: color(display-p3 .547 .553 .592);--slate-10: color(display-p3 .503 .512 .549);--slate-11: color(display-p3 .379 .392 .421);--slate-12: color(display-p3 .113 .125 .14);--slate-a1: color(display-p3 .024 .024 .349 / .012);--slate-a2: color(display-p3 .024 .024 .349 / .024);--slate-a3: color(display-p3 .004 .004 .204 / .059);--slate-a4: color(display-p3 .012 .012 .184 / .091);--slate-a5: color(display-p3 .004 .039 .2 / .122);--slate-a6: color(display-p3 .008 .008 .165 / .15);--slate-a7: color(display-p3 .008 .027 .184 / .197);--slate-a8: color(display-p3 .004 .031 .176 / .275);--slate-a9: color(display-p3 .004 .02 .106 / .455);--slate-a10: color(display-p3 .004 .027 .098 / .499);--slate-a11: color(display-p3 0 .02 .063 / .62);--slate-a12: color(display-p3 0 .012 .031 / .887);--sage-1: color(display-p3 .986 .992 .988);--sage-2: color(display-p3 .97 .977 .974);--sage-3: color(display-p3 .935 .944 .94);--sage-4: color(display-p3 .904 .913 .909);--sage-5: color(display-p3 .875 .885 .88);--sage-6: color(display-p3 .844 .854 .849);--sage-7: color(display-p3 .8 .811 .806);--sage-8: color(display-p3 .725 .738 .732);--sage-9: color(display-p3 .531 .556 .546);--sage-10: color(display-p3 .492 .515 .506);--sage-11: color(display-p3 .377 .395 .389);--sage-12: color(display-p3 .107 .129 .118);--sage-a1: color(display-p3 .024 .514 .267 / .016);--sage-a2: color(display-p3 .02 .267 .145 / .032);--sage-a3: color(display-p3 .008 .184 .125 / .067);--sage-a4: color(display-p3 .012 .094 .051 / .095);--sage-a5: color(display-p3 .008 .098 .035 / .126);--sage-a6: color(display-p3 .004 .078 .027 / .157);--sage-a7: color(display-p3 0 .059 .039 / .2);--sage-a8: color(display-p3 .004 .047 .031 / .275);--sage-a9: color(display-p3 .004 .059 .035 / .471);--sage-a10: color(display-p3 0 .047 .031 / .51);--sage-a11: color(display-p3 0 .031 .02 / .624);--sage-a12: color(display-p3 0 .027 .012 / .895);--olive-1: color(display-p3 .989 .992 .989);--olive-2: color(display-p3 .974 .98 .973);--olive-3: color(display-p3 .939 .945 .937);--olive-4: color(display-p3 .907 .914 .905);--olive-5: color(display-p3 .878 .885 .875);--olive-6: color(display-p3 .846 .855 .843);--olive-7: color(display-p3 .803 .812 .8);--olive-8: color(display-p3 .727 .738 .723);--olive-9: color(display-p3 .541 .556 .532);--olive-10: color(display-p3 .5 .515 .491);--olive-11: color(display-p3 .38 .395 .374);--olive-12: color(display-p3 .117 .129 .111);--olive-a1: color(display-p3 .024 .349 .024 / .012);--olive-a2: color(display-p3 .024 .302 .024 / .028);--olive-a3: color(display-p3 .008 .129 .008 / .063);--olive-a4: color(display-p3 .012 .094 .012 / .095);--olive-a5: color(display-p3 .035 .098 .008 / .126);--olive-a6: color(display-p3 .027 .078 .004 / .157);--olive-a7: color(display-p3 .02 .059 0 / .2);--olive-a8: color(display-p3 .02 .059 .004 / .279);--olive-a9: color(display-p3 .02 .051 .004 / .467);--olive-a10: color(display-p3 .024 .047 0 / .51);--olive-a11: color(display-p3 .012 .039 0 / .628);--olive-a12: color(display-p3 .008 .024 0 / .891);--sand-1: color(display-p3 .992 .992 .989);--sand-2: color(display-p3 .977 .977 .973);--sand-3: color(display-p3 .943 .942 .936);--sand-4: color(display-p3 .913 .912 .903);--sand-5: color(display-p3 .885 .883 .873);--sand-6: color(display-p3 .854 .852 .839);--sand-7: color(display-p3 .813 .81 .794);--sand-8: color(display-p3 .738 .734 .713);--sand-9: color(display-p3 .553 .553 .528);--sand-10: color(display-p3 .511 .511 .488);--sand-11: color(display-p3 .388 .388 .37);--sand-12: color(display-p3 .129 .126 .111);--sand-a1: color(display-p3 .349 .349 .024 / .012);--sand-a2: color(display-p3 .161 .161 .024 / .028);--sand-a3: color(display-p3 .067 .067 .008 / .063);--sand-a4: color(display-p3 .129 .129 .012 / .099);--sand-a5: color(display-p3 .098 .067 .008 / .126);--sand-a6: color(display-p3 .102 .075 .004 / .161);--sand-a7: color(display-p3 .098 .098 .004 / .208);--sand-a8: color(display-p3 .086 .075 .004 / .287);--sand-a9: color(display-p3 .051 .051 .004 / .471);--sand-a10: color(display-p3 .047 .047 0 / .514);--sand-a11: color(display-p3 .031 .031 0 / .632);--sand-a12: color(display-p3 .024 .02 0 / .891);--amber-1: color(display-p3 .995 .992 .985);--amber-2: color(display-p3 .994 .986 .921);--amber-3: color(display-p3 .994 .969 .782);--amber-4: color(display-p3 .989 .937 .65);--amber-5: color(display-p3 .97 .902 .527);--amber-6: color(display-p3 .936 .844 .506);--amber-7: color(display-p3 .89 .762 .443);--amber-8: color(display-p3 .85 .65 .3);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 .959 .741 .274);--amber-11: color(display-p3 .64 .4 0);--amber-12: color(display-p3 .294 .208 .145);--amber-a1: color(display-p3 .757 .514 .024 / .016);--amber-a2: color(display-p3 .902 .804 .008 / .079);--amber-a3: color(display-p3 .965 .859 .004 / .22);--amber-a4: color(display-p3 .969 .82 .004 / .35);--amber-a5: color(display-p3 .933 .796 .004 / .475);--amber-a6: color(display-p3 .875 .682 .004 / .495);--amber-a7: color(display-p3 .804 .573 0 / .557);--amber-a8: color(display-p3 .788 .502 0 / .699);--amber-a9: color(display-p3 1 .686 0 / .742);--amber-a10: color(display-p3 .945 .643 0 / .726);--amber-a11: color(display-p3 .64 .4 0);--amber-a12: color(display-p3 .294 .208 .145);--blue-1: color(display-p3 .986 .992 .999);--blue-2: color(display-p3 .96 .979 .998);--blue-3: color(display-p3 .912 .956 .991);--blue-4: color(display-p3 .853 .932 1);--blue-5: color(display-p3 .788 .894 .998);--blue-6: color(display-p3 .709 .843 .976);--blue-7: color(display-p3 .606 .777 .947);--blue-8: color(display-p3 .451 .688 .917);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .234 .523 .912);--blue-11: color(display-p3 .15 .44 .84);--blue-12: color(display-p3 .102 .193 .379);--blue-a1: color(display-p3 .024 .514 1 / .016);--blue-a2: color(display-p3 .024 .514 .906 / .04);--blue-a3: color(display-p3 .012 .506 .914 / .087);--blue-a4: color(display-p3 .008 .545 1 / .146);--blue-a5: color(display-p3 .004 .502 .984 / .212);--blue-a6: color(display-p3 .004 .463 .922 / .291);--blue-a7: color(display-p3 .004 .431 .863 / .393);--blue-a8: color(display-p3 0 .427 .851 / .55);--blue-a9: color(display-p3 0 .412 .961 / .753);--blue-a10: color(display-p3 0 .376 .886 / .765);--blue-a11: color(display-p3 .15 .44 .84);--blue-a12: color(display-p3 .102 .193 .379);--bronze-1: color(display-p3 .991 .988 .988);--bronze-2: color(display-p3 .989 .97 .961);--bronze-3: color(display-p3 .958 .932 .919);--bronze-4: color(display-p3 .929 .894 .877);--bronze-5: color(display-p3 .898 .853 .832);--bronze-6: color(display-p3 .861 .805 .778);--bronze-7: color(display-p3 .812 .739 .706);--bronze-8: color(display-p3 .741 .647 .606);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .563 .461 .414);--bronze-11: color(display-p3 .471 .373 .336);--bronze-12: color(display-p3 .251 .191 .172);--bronze-a1: color(display-p3 .349 .024 .024 / .012);--bronze-a2: color(display-p3 .71 .22 .024 / .04);--bronze-a3: color(display-p3 .482 .2 .008 / .083);--bronze-a4: color(display-p3 .424 .133 .004 / .122);--bronze-a5: color(display-p3 .4 .145 .004 / .169);--bronze-a6: color(display-p3 .388 .125 .004 / .224);--bronze-a7: color(display-p3 .365 .11 .004 / .295);--bronze-a8: color(display-p3 .341 .102 .004 / .393);--bronze-a9: color(display-p3 .29 .094 0 / .546);--bronze-a10: color(display-p3 .255 .082 0 / .585);--bronze-a11: color(display-p3 .471 .373 .336);--bronze-a12: color(display-p3 .251 .191 .172);--brown-1: color(display-p3 .995 .992 .989);--brown-2: color(display-p3 .987 .976 .964);--brown-3: color(display-p3 .959 .936 .909);--brown-4: color(display-p3 .934 .897 .855);--brown-5: color(display-p3 .909 .856 .798);--brown-6: color(display-p3 .88 .808 .73);--brown-7: color(display-p3 .841 .742 .639);--brown-8: color(display-p3 .782 .647 .514);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .601 .465 .344);--brown-11: color(display-p3 .485 .374 .288);--brown-12: color(display-p3 .236 .202 .183);--brown-a1: color(display-p3 .675 .349 .024 / .012);--brown-a2: color(display-p3 .675 .349 .024 / .036);--brown-a3: color(display-p3 .573 .314 .012 / .091);--brown-a4: color(display-p3 .545 .302 .008 / .146);--brown-a5: color(display-p3 .561 .29 .004 / .204);--brown-a6: color(display-p3 .553 .294 .004 / .271);--brown-a7: color(display-p3 .557 .286 .004 / .361);--brown-a8: color(display-p3 .549 .275 .004 / .487);--brown-a9: color(display-p3 .447 .22 0 / .632);--brown-a10: color(display-p3 .388 .188 0 / .655);--brown-a11: color(display-p3 .485 .374 .288);--brown-a12: color(display-p3 .236 .202 .183);--crimson-1: color(display-p3 .998 .989 .992);--crimson-2: color(display-p3 .991 .969 .976);--crimson-3: color(display-p3 .987 .917 .941);--crimson-4: color(display-p3 .975 .866 .904);--crimson-5: color(display-p3 .953 .813 .864);--crimson-6: color(display-p3 .921 .755 .817);--crimson-7: color(display-p3 .88 .683 .761);--crimson-8: color(display-p3 .834 .592 .694);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .807 .266 .468);--crimson-11: color(display-p3 .731 .195 .388);--crimson-12: color(display-p3 .352 .111 .221);--crimson-a1: color(display-p3 .675 .024 .349 / .012);--crimson-a2: color(display-p3 .757 .02 .267 / .032);--crimson-a3: color(display-p3 .859 .008 .294 / .083);--crimson-a4: color(display-p3 .827 .008 .298 / .134);--crimson-a5: color(display-p3 .753 .008 .275 / .189);--crimson-a6: color(display-p3 .682 .004 .247 / .244);--crimson-a7: color(display-p3 .62 .004 .251 / .318);--crimson-a8: color(display-p3 .6 .004 .251 / .408);--crimson-a9: color(display-p3 .776 0 .298 / .702);--crimson-a10: color(display-p3 .737 0 .275 / .734);--crimson-a11: color(display-p3 .731 .195 .388);--crimson-a12: color(display-p3 .352 .111 .221);--cyan-1: color(display-p3 .982 .992 .996);--cyan-2: color(display-p3 .955 .981 .984);--cyan-3: color(display-p3 .888 .965 .975);--cyan-4: color(display-p3 .821 .941 .959);--cyan-5: color(display-p3 .751 .907 .935);--cyan-6: color(display-p3 .671 .862 .9);--cyan-7: color(display-p3 .564 .8 .854);--cyan-8: color(display-p3 .388 .715 .798);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .264 .583 .71);--cyan-11: color(display-p3 .08 .48 .63);--cyan-12: color(display-p3 .108 .232 .277);--cyan-a1: color(display-p3 .02 .608 .804 / .02);--cyan-a2: color(display-p3 .02 .557 .647 / .044);--cyan-a3: color(display-p3 .004 .694 .796 / .114);--cyan-a4: color(display-p3 .004 .678 .784 / .181);--cyan-a5: color(display-p3 .004 .624 .733 / .248);--cyan-a6: color(display-p3 .004 .584 .706 / .33);--cyan-a7: color(display-p3 .004 .541 .667 / .436);--cyan-a8: color(display-p3 0 .533 .667 / .612);--cyan-a9: color(display-p3 0 .482 .675 / .718);--cyan-a10: color(display-p3 0 .435 .608 / .738);--cyan-a11: color(display-p3 .08 .48 .63);--cyan-a12: color(display-p3 .108 .232 .277);--gold-1: color(display-p3 .992 .992 .989);--gold-2: color(display-p3 .98 .976 .953);--gold-3: color(display-p3 .947 .94 .909);--gold-4: color(display-p3 .914 .904 .865);--gold-5: color(display-p3 .88 .865 .816);--gold-6: color(display-p3 .84 .818 .756);--gold-7: color(display-p3 .788 .753 .677);--gold-8: color(display-p3 .715 .66 .565);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .538 .479 .38);--gold-11: color(display-p3 .433 .386 .305);--gold-12: color(display-p3 .227 .209 .173);--gold-a1: color(display-p3 .349 .349 .024 / .012);--gold-a2: color(display-p3 .592 .514 .024 / .048);--gold-a3: color(display-p3 .4 .357 .012 / .091);--gold-a4: color(display-p3 .357 .298 .008 / .134);--gold-a5: color(display-p3 .345 .282 .004 / .185);--gold-a6: color(display-p3 .341 .263 .004 / .244);--gold-a7: color(display-p3 .345 .235 .004 / .322);--gold-a8: color(display-p3 .345 .22 .004 / .436);--gold-a9: color(display-p3 .286 .18 0 / .589);--gold-a10: color(display-p3 .255 .161 0 / .62);--gold-a11: color(display-p3 .433 .386 .305);--gold-a12: color(display-p3 .227 .209 .173);--grass-1: color(display-p3 .986 .996 .985);--grass-2: color(display-p3 .966 .983 .964);--grass-3: color(display-p3 .923 .965 .917);--grass-4: color(display-p3 .872 .94 .865);--grass-5: color(display-p3 .811 .908 .802);--grass-6: color(display-p3 .733 .864 .724);--grass-7: color(display-p3 .628 .803 .622);--grass-8: color(display-p3 .477 .72 .482);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .344 .598 .342);--grass-11: color(display-p3 .263 .488 .261);--grass-12: color(display-p3 .151 .233 .153);--grass-a1: color(display-p3 .024 .757 .024 / .016);--grass-a2: color(display-p3 .024 .565 .024 / .036);--grass-a3: color(display-p3 .059 .576 .008 / .083);--grass-a4: color(display-p3 .035 .565 .008 / .134);--grass-a5: color(display-p3 .047 .545 .008 / .197);--grass-a6: color(display-p3 .031 .502 .004 / .275);--grass-a7: color(display-p3 .012 .482 .004 / .377);--grass-a8: color(display-p3 0 .467 .008 / .522);--grass-a9: color(display-p3 .008 .435 0 / .624);--grass-a10: color(display-p3 .008 .388 0 / .659);--grass-a11: color(display-p3 .263 .488 .261);--grass-a12: color(display-p3 .151 .233 .153);--green-1: color(display-p3 .986 .996 .989);--green-2: color(display-p3 .963 .983 .967);--green-3: color(display-p3 .913 .964 .925);--green-4: color(display-p3 .859 .94 .879);--green-5: color(display-p3 .796 .907 .826);--green-6: color(display-p3 .718 .863 .761);--green-7: color(display-p3 .61 .801 .675);--green-8: color(display-p3 .451 .715 .559);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .308 .595 .417);--green-11: color(display-p3 .19 .5 .32);--green-12: color(display-p3 .132 .228 .18);--green-a1: color(display-p3 .024 .757 .267 / .016);--green-a2: color(display-p3 .024 .565 .129 / .036);--green-a3: color(display-p3 .012 .596 .145 / .087);--green-a4: color(display-p3 .008 .588 .145 / .142);--green-a5: color(display-p3 .004 .541 .157 / .204);--green-a6: color(display-p3 .004 .518 .157 / .283);--green-a7: color(display-p3 .004 .486 .165 / .389);--green-a8: color(display-p3 0 .478 .2 / .55);--green-a9: color(display-p3 0 .455 .165 / .667);--green-a10: color(display-p3 0 .416 .153 / .691);--green-a11: color(display-p3 .19 .5 .32);--green-a12: color(display-p3 .132 .228 .18);--indigo-1: color(display-p3 .992 .992 .996);--indigo-2: color(display-p3 .971 .977 .998);--indigo-3: color(display-p3 .933 .948 .992);--indigo-4: color(display-p3 .885 .914 1);--indigo-5: color(display-p3 .831 .87 1);--indigo-6: color(display-p3 .767 .814 .995);--indigo-7: color(display-p3 .685 .74 .957);--indigo-8: color(display-p3 .569 .639 .916);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .234 .343 .801);--indigo-11: color(display-p3 .256 .354 .755);--indigo-12: color(display-p3 .133 .175 .348);--indigo-a1: color(display-p3 .02 .02 .51 / .008);--indigo-a2: color(display-p3 .024 .161 .863 / .028);--indigo-a3: color(display-p3 .008 .239 .886 / .067);--indigo-a4: color(display-p3 .004 .247 1 / .114);--indigo-a5: color(display-p3 .004 .235 1 / .169);--indigo-a6: color(display-p3 .004 .208 .984 / .232);--indigo-a7: color(display-p3 .004 .176 .863 / .314);--indigo-a8: color(display-p3 .004 .165 .812 / .432);--indigo-a9: color(display-p3 0 .153 .773 / .726);--indigo-a10: color(display-p3 0 .137 .737 / .765);--indigo-a11: color(display-p3 .256 .354 .755);--indigo-a12: color(display-p3 .133 .175 .348);--iris-1: color(display-p3 .992 .992 .999);--iris-2: color(display-p3 .972 .973 .998);--iris-3: color(display-p3 .943 .945 .992);--iris-4: color(display-p3 .902 .906 1);--iris-5: color(display-p3 .857 .861 1);--iris-6: color(display-p3 .799 .805 .987);--iris-7: color(display-p3 .721 .727 .955);--iris-8: color(display-p3 .61 .619 .918);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .318 .318 .774);--iris-11: color(display-p3 .337 .326 .748);--iris-12: color(display-p3 .154 .161 .371);--iris-a1: color(display-p3 .02 .02 1 / .008);--iris-a2: color(display-p3 .024 .024 .863 / .028);--iris-a3: color(display-p3 .004 .071 .871 / .059);--iris-a4: color(display-p3 .012 .051 1 / .099);--iris-a5: color(display-p3 .008 .035 1 / .142);--iris-a6: color(display-p3 0 .02 .941 / .2);--iris-a7: color(display-p3 .004 .02 .847 / .279);--iris-a8: color(display-p3 .004 .024 .788 / .389);--iris-a9: color(display-p3 0 0 .706 / .644);--iris-a10: color(display-p3 0 0 .667 / .683);--iris-a11: color(display-p3 .337 .326 .748);--iris-a12: color(display-p3 .154 .161 .371);--jade-1: color(display-p3 .986 .996 .992);--jade-2: color(display-p3 .962 .983 .969);--jade-3: color(display-p3 .912 .965 .932);--jade-4: color(display-p3 .858 .941 .893);--jade-5: color(display-p3 .795 .909 .847);--jade-6: color(display-p3 .715 .864 .791);--jade-7: color(display-p3 .603 .802 .718);--jade-8: color(display-p3 .44 .72 .629);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .299 .592 .488);--jade-11: color(display-p3 .15 .5 .37);--jade-12: color(display-p3 .142 .229 .194);--jade-a1: color(display-p3 .024 .757 .514 / .016);--jade-a2: color(display-p3 .024 .612 .22 / .04);--jade-a3: color(display-p3 .012 .596 .235 / .087);--jade-a4: color(display-p3 .008 .588 .255 / .142);--jade-a5: color(display-p3 .004 .561 .251 / .204);--jade-a6: color(display-p3 .004 .525 .278 / .287);--jade-a7: color(display-p3 .004 .506 .29 / .397);--jade-a8: color(display-p3 0 .506 .337 / .561);--jade-a9: color(display-p3 0 .459 .298 / .683);--jade-a10: color(display-p3 0 .42 .271 / .702);--jade-a11: color(display-p3 .15 .5 .37);--jade-a12: color(display-p3 .142 .229 .194);--lime-1: color(display-p3 .989 .992 .981);--lime-2: color(display-p3 .975 .98 .954);--lime-3: color(display-p3 .939 .965 .851);--lime-4: color(display-p3 .896 .94 .76);--lime-5: color(display-p3 .843 .903 .678);--lime-6: color(display-p3 .778 .852 .599);--lime-7: color(display-p3 .694 .784 .508);--lime-8: color(display-p3 .585 .707 .378);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .734 .896 .397);--lime-11: color(display-p3 .386 .482 .227);--lime-12: color(display-p3 .222 .25 .128);--lime-a1: color(display-p3 .412 .608 .02 / .02);--lime-a2: color(display-p3 .514 .592 .024 / .048);--lime-a3: color(display-p3 .584 .765 .008 / .15);--lime-a4: color(display-p3 .561 .757 .004 / .24);--lime-a5: color(display-p3 .514 .698 .004 / .322);--lime-a6: color(display-p3 .443 .627 0 / .4);--lime-a7: color(display-p3 .376 .561 .004 / .491);--lime-a8: color(display-p3 .333 .529 0 / .624);--lime-a9: color(display-p3 .588 .867 0 / .534);--lime-a10: color(display-p3 .561 .827 0 / .604);--lime-a11: color(display-p3 .386 .482 .227);--lime-a12: color(display-p3 .222 .25 .128);--mint-1: color(display-p3 .98 .995 .992);--mint-2: color(display-p3 .957 .985 .977);--mint-3: color(display-p3 .888 .972 .95);--mint-4: color(display-p3 .819 .951 .916);--mint-5: color(display-p3 .747 .918 .873);--mint-6: color(display-p3 .668 .87 .818);--mint-7: color(display-p3 .567 .805 .744);--mint-8: color(display-p3 .42 .724 .649);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .585 .871 .797);--mint-11: color(display-p3 .203 .463 .397);--mint-12: color(display-p3 .136 .259 .236);--mint-a1: color(display-p3 .02 .804 .608 / .02);--mint-a2: color(display-p3 .02 .647 .467 / .044);--mint-a3: color(display-p3 .004 .761 .553 / .114);--mint-a4: color(display-p3 .004 .741 .545 / .181);--mint-a5: color(display-p3 .004 .678 .51 / .255);--mint-a6: color(display-p3 .004 .616 .463 / .334);--mint-a7: color(display-p3 .004 .549 .412 / .432);--mint-a8: color(display-p3 0 .529 .392 / .581);--mint-a9: color(display-p3 .004 .765 .569 / .381);--mint-a10: color(display-p3 .004 .69 .51 / .416);--mint-a11: color(display-p3 .203 .463 .397);--mint-a12: color(display-p3 .136 .259 .236);--orange-1: color(display-p3 .995 .988 .985);--orange-2: color(display-p3 .994 .968 .934);--orange-3: color(display-p3 .989 .938 .85);--orange-4: color(display-p3 1 .874 .687);--orange-5: color(display-p3 1 .821 .583);--orange-6: color(display-p3 .975 .767 .545);--orange-7: color(display-p3 .919 .693 .486);--orange-8: color(display-p3 .877 .597 .379);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .87 .409 .164);--orange-11: color(display-p3 .76 .34 0);--orange-12: color(display-p3 .323 .185 .127);--orange-a1: color(display-p3 .757 .267 .024 / .016);--orange-a2: color(display-p3 .886 .533 .008 / .067);--orange-a3: color(display-p3 .922 .584 .008 / .15);--orange-a4: color(display-p3 1 .604 .004 / .314);--orange-a5: color(display-p3 1 .569 .004 / .416);--orange-a6: color(display-p3 .949 .494 .004 / .455);--orange-a7: color(display-p3 .839 .408 0 / .514);--orange-a8: color(display-p3 .804 .349 0 / .62);--orange-a9: color(display-p3 .878 .314 0 / .8);--orange-a10: color(display-p3 .843 .29 0 / .836);--orange-a11: color(display-p3 .76 .34 0);--orange-a12: color(display-p3 .323 .185 .127);--pink-1: color(display-p3 .998 .989 .996);--pink-2: color(display-p3 .992 .97 .985);--pink-3: color(display-p3 .981 .917 .96);--pink-4: color(display-p3 .963 .867 .932);--pink-5: color(display-p3 .939 .815 .899);--pink-6: color(display-p3 .907 .756 .859);--pink-7: color(display-p3 .869 .683 .81);--pink-8: color(display-p3 .825 .59 .751);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .748 .27 .581);--pink-11: color(display-p3 .698 .219 .528);--pink-12: color(display-p3 .363 .101 .279);--pink-a1: color(display-p3 .675 .024 .675 / .012);--pink-a2: color(display-p3 .757 .02 .51 / .032);--pink-a3: color(display-p3 .765 .008 .529 / .083);--pink-a4: color(display-p3 .737 .008 .506 / .134);--pink-a5: color(display-p3 .663 .004 .451 / .185);--pink-a6: color(display-p3 .616 .004 .424 / .244);--pink-a7: color(display-p3 .596 .004 .412 / .318);--pink-a8: color(display-p3 .573 .004 .404 / .412);--pink-a9: color(display-p3 .682 0 .447 / .702);--pink-a10: color(display-p3 .655 0 .424 / .73);--pink-a11: color(display-p3 .698 .219 .528);--pink-a12: color(display-p3 .363 .101 .279);--plum-1: color(display-p3 .995 .988 .999);--plum-2: color(display-p3 .988 .971 .99);--plum-3: color(display-p3 .973 .923 .98);--plum-4: color(display-p3 .953 .875 .966);--plum-5: color(display-p3 .926 .825 .945);--plum-6: color(display-p3 .89 .765 .916);--plum-7: color(display-p3 .84 .686 .877);--plum-8: color(display-p3 .775 .58 .832);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .587 .29 .667);--plum-11: color(display-p3 .543 .263 .619);--plum-12: color(display-p3 .299 .114 .352);--plum-a1: color(display-p3 .675 .024 1 / .012);--plum-a2: color(display-p3 .58 .024 .58 / .028);--plum-a3: color(display-p3 .655 .008 .753 / .079);--plum-a4: color(display-p3 .627 .008 .722 / .126);--plum-a5: color(display-p3 .58 .004 .69 / .177);--plum-a6: color(display-p3 .537 .004 .655 / .236);--plum-a7: color(display-p3 .49 .004 .616 / .314);--plum-a8: color(display-p3 .471 .004 .6 / .42);--plum-a9: color(display-p3 .451 0 .576 / .687);--plum-a10: color(display-p3 .42 0 .529 / .71);--plum-a11: color(display-p3 .543 .263 .619);--plum-a12: color(display-p3 .299 .114 .352);--purple-1: color(display-p3 .995 .988 .996);--purple-2: color(display-p3 .983 .971 .993);--purple-3: color(display-p3 .963 .931 .989);--purple-4: color(display-p3 .937 .888 .981);--purple-5: color(display-p3 .904 .837 .966);--purple-6: color(display-p3 .86 .774 .942);--purple-7: color(display-p3 .799 .69 .91);--purple-8: color(display-p3 .719 .583 .874);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .483 .289 .7);--purple-11: color(display-p3 .473 .281 .687);--purple-12: color(display-p3 .234 .132 .363);--purple-a1: color(display-p3 .675 .024 .675 / .012);--purple-a2: color(display-p3 .443 .024 .722 / .028);--purple-a3: color(display-p3 .506 .008 .835 / .071);--purple-a4: color(display-p3 .451 .004 .831 / .114);--purple-a5: color(display-p3 .431 .004 .788 / .165);--purple-a6: color(display-p3 .384 .004 .745 / .228);--purple-a7: color(display-p3 .357 .004 .71 / .31);--purple-a8: color(display-p3 .322 .004 .702 / .416);--purple-a9: color(display-p3 .298 0 .639 / .683);--purple-a10: color(display-p3 .271 0 .58 / .71);--purple-a11: color(display-p3 .473 .281 .687);--purple-a12: color(display-p3 .234 .132 .363);--red-1: color(display-p3 .998 .989 .988);--red-2: color(display-p3 .995 .971 .971);--red-3: color(display-p3 .985 .925 .925);--red-4: color(display-p3 .999 .866 .866);--red-5: color(display-p3 .984 .812 .811);--red-6: color(display-p3 .955 .751 .749);--red-7: color(display-p3 .915 .675 .672);--red-8: color(display-p3 .872 .575 .572);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .798 .294 .285);--red-11: color(display-p3 .744 .234 .222);--red-12: color(display-p3 .36 .115 .143);--red-a1: color(display-p3 .675 .024 .024 / .012);--red-a2: color(display-p3 .863 .024 .024 / .028);--red-a3: color(display-p3 .792 .008 .008 / .075);--red-a4: color(display-p3 1 .008 .008 / .134);--red-a5: color(display-p3 .918 .008 .008 / .189);--red-a6: color(display-p3 .831 .02 .004 / .251);--red-a7: color(display-p3 .741 .016 .004 / .33);--red-a8: color(display-p3 .698 .012 .004 / .428);--red-a9: color(display-p3 .749 .008 0 / .675);--red-a10: color(display-p3 .714 .012 0 / .714);--red-a11: color(display-p3 .744 .234 .222);--red-a12: color(display-p3 .36 .115 .143);--ruby-1: color(display-p3 .998 .989 .992);--ruby-2: color(display-p3 .995 .971 .974);--ruby-3: color(display-p3 .983 .92 .928);--ruby-4: color(display-p3 .987 .869 .885);--ruby-5: color(display-p3 .968 .817 .839);--ruby-6: color(display-p3 .937 .758 .786);--ruby-7: color(display-p3 .897 .685 .721);--ruby-8: color(display-p3 .851 .588 .639);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .795 .286 .375);--ruby-11: color(display-p3 .728 .211 .311);--ruby-12: color(display-p3 .36 .115 .171);--ruby-a1: color(display-p3 .675 .024 .349 / .012);--ruby-a2: color(display-p3 .863 .024 .024 / .028);--ruby-a3: color(display-p3 .804 .008 .11 / .079);--ruby-a4: color(display-p3 .91 .008 .125 / .13);--ruby-a5: color(display-p3 .831 .004 .133 / .185);--ruby-a6: color(display-p3 .745 .004 .118 / .244);--ruby-a7: color(display-p3 .678 .004 .114 / .314);--ruby-a8: color(display-p3 .639 .004 .125 / .412);--ruby-a9: color(display-p3 .753 0 .129 / .679);--ruby-a10: color(display-p3 .714 0 .125 / .714);--ruby-a11: color(display-p3 .728 .211 .311);--ruby-a12: color(display-p3 .36 .115 .171);--sky-1: color(display-p3 .98 .995 .999);--sky-2: color(display-p3 .953 .98 .99);--sky-3: color(display-p3 .899 .963 .989);--sky-4: color(display-p3 .842 .937 .977);--sky-5: color(display-p3 .777 .9 .954);--sky-6: color(display-p3 .701 .851 .921);--sky-7: color(display-p3 .604 .785 .879);--sky-8: color(display-p3 .457 .696 .829);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .555 .845 .959);--sky-11: color(display-p3 .193 .448 .605);--sky-12: color(display-p3 .145 .241 .329);--sky-a1: color(display-p3 .02 .804 1 / .02);--sky-a2: color(display-p3 .024 .592 .757 / .048);--sky-a3: color(display-p3 .004 .655 .886 / .102);--sky-a4: color(display-p3 .004 .604 .851 / .157);--sky-a5: color(display-p3 .004 .565 .792 / .224);--sky-a6: color(display-p3 .004 .502 .737 / .299);--sky-a7: color(display-p3 .004 .459 .694 / .397);--sky-a8: color(display-p3 0 .435 .682 / .542);--sky-a9: color(display-p3 .004 .71 .965 / .416);--sky-a10: color(display-p3 .004 .647 .914 / .444);--sky-a11: color(display-p3 .193 .448 .605);--sky-a12: color(display-p3 .145 .241 .329);--teal-1: color(display-p3 .983 .996 .992);--teal-2: color(display-p3 .958 .983 .976);--teal-3: color(display-p3 .895 .971 .952);--teal-4: color(display-p3 .831 .949 .92);--teal-5: color(display-p3 .761 .914 .878);--teal-6: color(display-p3 .682 .864 .825);--teal-7: color(display-p3 .581 .798 .756);--teal-8: color(display-p3 .433 .716 .671);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .275 .599 .542);--teal-11: color(display-p3 .08 .5 .43);--teal-12: color(display-p3 .11 .235 .219);--teal-a1: color(display-p3 .024 .757 .514 / .016);--teal-a2: color(display-p3 .02 .647 .467 / .044);--teal-a3: color(display-p3 .004 .741 .557 / .106);--teal-a4: color(display-p3 .004 .702 .537 / .169);--teal-a5: color(display-p3 .004 .643 .494 / .24);--teal-a6: color(display-p3 .004 .569 .447 / .318);--teal-a7: color(display-p3 .004 .518 .424 / .42);--teal-a8: color(display-p3 0 .506 .424 / .569);--teal-a9: color(display-p3 0 .482 .404 / .702);--teal-a10: color(display-p3 0 .451 .369 / .726);--teal-a11: color(display-p3 .08 .5 .43);--teal-a12: color(display-p3 .11 .235 .219);--tomato-1: color(display-p3 .998 .989 .988);--tomato-2: color(display-p3 .994 .974 .969);--tomato-3: color(display-p3 .985 .924 .909);--tomato-4: color(display-p3 .996 .868 .835);--tomato-5: color(display-p3 .98 .812 .77);--tomato-6: color(display-p3 .953 .75 .698);--tomato-7: color(display-p3 .917 .673 .611);--tomato-8: color(display-p3 .875 .575 .502);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .802 .313 .2);--tomato-11: color(display-p3 .755 .259 .152);--tomato-12: color(display-p3 .335 .165 .132);--tomato-a1: color(display-p3 .675 .024 .024 / .012);--tomato-a2: color(display-p3 .757 .145 .02 / .032);--tomato-a3: color(display-p3 .831 .184 .012 / .091);--tomato-a4: color(display-p3 .976 .192 .004 / .165);--tomato-a5: color(display-p3 .918 .192 .004 / .232);--tomato-a6: color(display-p3 .847 .173 .004 / .302);--tomato-a7: color(display-p3 .788 .165 .004 / .389);--tomato-a8: color(display-p3 .749 .153 .004 / .499);--tomato-a9: color(display-p3 .78 .149 0 / .769);--tomato-a10: color(display-p3 .757 .141 0 / .8);--tomato-a11: color(display-p3 .755 .259 .152);--tomato-a12: color(display-p3 .335 .165 .132);--violet-1: color(display-p3 .991 .988 .995);--violet-2: color(display-p3 .978 .974 .998);--violet-3: color(display-p3 .953 .943 .993);--violet-4: color(display-p3 .916 .897 1);--violet-5: color(display-p3 .876 .851 1);--violet-6: color(display-p3 .825 .793 .981);--violet-7: color(display-p3 .752 .712 .943);--violet-8: color(display-p3 .654 .602 .902);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .381 .306 .741);--violet-11: color(display-p3 .383 .317 .702);--violet-12: color(display-p3 .179 .15 .359);--violet-a1: color(display-p3 .349 .024 .675 / .012);--violet-a2: color(display-p3 .161 .024 .863 / .028);--violet-a3: color(display-p3 .204 .004 .871 / .059);--violet-a4: color(display-p3 .196 .004 1 / .102);--violet-a5: color(display-p3 .165 .008 1 / .15);--violet-a6: color(display-p3 .153 .004 .906 / .208);--violet-a7: color(display-p3 .141 .004 .796 / .287);--violet-a8: color(display-p3 .133 .004 .753 / .397);--violet-a9: color(display-p3 .114 0 .675 / .659);--violet-a10: color(display-p3 .11 0 .627 / .695);--violet-a11: color(display-p3 .383 .317 .702);--violet-a12: color(display-p3 .179 .15 .359);--yellow-1: color(display-p3 .992 .992 .978);--yellow-2: color(display-p3 .995 .99 .922);--yellow-3: color(display-p3 .997 .982 .749);--yellow-4: color(display-p3 .992 .953 .627);--yellow-5: color(display-p3 .984 .91 .51);--yellow-6: color(display-p3 .934 .847 .474);--yellow-7: color(display-p3 .876 .785 .46);--yellow-8: color(display-p3 .811 .689 .313);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 .977 .868 .291);--yellow-11: color(display-p3 .6 .44 0);--yellow-12: color(display-p3 .271 .233 .137);--yellow-a1: color(display-p3 .675 .675 .024 / .024);--yellow-a2: color(display-p3 .953 .855 .008 / .079);--yellow-a3: color(display-p3 .988 .925 .004 / .251);--yellow-a4: color(display-p3 .98 .875 .004 / .373);--yellow-a5: color(display-p3 .969 .816 .004 / .491);--yellow-a6: color(display-p3 .875 .71 0 / .526);--yellow-a7: color(display-p3 .769 .604 0 / .542);--yellow-a8: color(display-p3 .725 .549 0 / .687);--yellow-a9: color(display-p3 1 .898 0 / .781);--yellow-a10: color(display-p3 .969 .812 0 / .71);--yellow-a11: color(display-p3 .6 .44 0);--yellow-a12: color(display-p3 .271 .233 .137);--gray-surface: color(display-p3 1 1 1 / .8);--mauve-surface: color(display-p3 1 1 1 / .8);--slate-surface: color(display-p3 1 1 1 / .8);--sage-surface: color(display-p3 1 1 1 / .8);--olive-surface: color(display-p3 1 1 1 / .8);--sand-surface: color(display-p3 1 1 1 / .8);--amber-surface: color(display-p3 .9922 .9843 .902 / .8);--blue-surface: color(display-p3 .9529 .9765 .9961 / .8);--bronze-surface: color(display-p3 .9843 .9608 .9529 / .8);--brown-surface: color(display-p3 .9843 .9725 .9569 / .8);--crimson-surface: color(display-p3 .9922 .9608 .9725 / .8);--cyan-surface: color(display-p3 .9412 .9765 .9804 / .8);--gold-surface: color(display-p3 .9765 .9725 .9412 / .8);--grass-surface: color(display-p3 .9569 .9804 .9569 / .8);--green-surface: color(display-p3 .9569 .9804 .9608 / .8);--indigo-surface: color(display-p3 .9647 .9725 .9961 / .8);--iris-surface: color(display-p3 .9647 .9647 .9961 / .8);--jade-surface: color(display-p3 .9529 .9804 .9608 / .8);--lime-surface: color(display-p3 .9725 .9765 .9412 / .8);--mint-surface: color(display-p3 .9451 .9804 .9725 / .8);--orange-surface: color(display-p3 .9961 .9608 .9176 / .8);--pink-surface: color(display-p3 .9922 .9608 .9804 / .8);--plum-surface: color(display-p3 .9843 .9647 .9843 / .8);--purple-surface: color(display-p3 .9804 .9647 .9922 / .8);--red-surface: color(display-p3 .9961 .9647 .9647 / .8);--ruby-surface: color(display-p3 .9961 .9647 .9647 / .8);--sky-surface: color(display-p3 .9412 .9765 .9843 / .8);--teal-surface: color(display-p3 .9451 .9804 .9725 / .8);--tomato-surface: color(display-p3 .9922 .9647 .9608 / .8);--violet-surface: color(display-p3 .9725 .9647 .9961 / .8);--yellow-surface: color(display-p3 .9961 .9922 .902 / .8)}}}.dark,.dark-theme{--gray-1: #111111;--gray-2: #191919;--gray-3: #222222;--gray-4: #2a2a2a;--gray-5: #313131;--gray-6: #3a3a3a;--gray-7: #484848;--gray-8: #606060;--gray-9: #6e6e6e;--gray-10: #7b7b7b;--gray-11: #b4b4b4;--gray-12: #eeeeee;--gray-a1: #00000000;--gray-a2: #ffffff09;--gray-a3: #ffffff12;--gray-a4: #ffffff1b;--gray-a5: #ffffff22;--gray-a6: #ffffff2c;--gray-a7: #ffffff3b;--gray-a8: #ffffff55;--gray-a9: #ffffff64;--gray-a10: #ffffff72;--gray-a11: #ffffffaf;--gray-a12: #ffffffed;--mauve-1: #121113;--mauve-2: #1a191b;--mauve-3: #232225;--mauve-4: #2b292d;--mauve-5: #323035;--mauve-6: #3c393f;--mauve-7: #49474e;--mauve-8: #625f69;--mauve-9: #6f6d78;--mauve-10: #7c7a85;--mauve-11: #b5b2bc;--mauve-12: #eeeef0;--mauve-a1: #00000000;--mauve-a2: #f5f4f609;--mauve-a3: #ebeaf814;--mauve-a4: #eee5f81d;--mauve-a5: #efe6fe25;--mauve-a6: #f1e6fd30;--mauve-a7: #eee9ff40;--mauve-a8: #eee7ff5d;--mauve-a9: #eae6fd6e;--mauve-a10: #ece9fd7c;--mauve-a11: #f5f1ffb7;--mauve-a12: #fdfdffef;--slate-1: #111113;--slate-2: #18191b;--slate-3: #212225;--slate-4: #272a2d;--slate-5: #2e3135;--slate-6: #363a3f;--slate-7: #43484e;--slate-8: #5a6169;--slate-9: #696e77;--slate-10: #777b84;--slate-11: #b0b4ba;--slate-12: #edeef0;--slate-a1: #00000000;--slate-a2: #d8f4f609;--slate-a3: #ddeaf814;--slate-a4: #d3edf81d;--slate-a5: #d9edfe25;--slate-a6: #d6ebfd30;--slate-a7: #d9edff40;--slate-a8: #d9edff5d;--slate-a9: #dfebfd6d;--slate-a10: #e5edfd7b;--slate-a11: #f1f7feb5;--slate-a12: #fcfdffef;--sage-1: #101211;--sage-2: #171918;--sage-3: #202221;--sage-4: #272a29;--sage-5: #2e3130;--sage-6: #373b39;--sage-7: #444947;--sage-8: #5b625f;--sage-9: #63706b;--sage-10: #717d79;--sage-11: #adb5b2;--sage-12: #eceeed;--sage-a1: #00000000;--sage-a2: #f0f2f108;--sage-a3: #f3f5f412;--sage-a4: #f2fefd1a;--sage-a5: #f1fbfa22;--sage-a6: #edfbf42d;--sage-a7: #edfcf73c;--sage-a8: #ebfdf657;--sage-a9: #dffdf266;--sage-a10: #e5fdf674;--sage-a11: #f4fefbb0;--sage-a12: #fdfffeed;--olive-1: #111210;--olive-2: #181917;--olive-3: #212220;--olive-4: #282a27;--olive-5: #2f312e;--olive-6: #383a36;--olive-7: #454843;--olive-8: #5c625b;--olive-9: #687066;--olive-10: #767d74;--olive-11: #afb5ad;--olive-12: #eceeec;--olive-a1: #00000000;--olive-a2: #f1f2f008;--olive-a3: #f4f5f312;--olive-a4: #f3fef21a;--olive-a5: #f2fbf122;--olive-a6: #f4faed2c;--olive-a7: #f2fced3b;--olive-a8: #edfdeb57;--olive-a9: #ebfde766;--olive-a10: #f0fdec74;--olive-a11: #f6fef4b0;--olive-a12: #fdfffded;--sand-1: #111110;--sand-2: #191918;--sand-3: #222221;--sand-4: #2a2a28;--sand-5: #31312e;--sand-6: #3b3a37;--sand-7: #494844;--sand-8: #62605b;--sand-9: #6f6d66;--sand-10: #7c7b74;--sand-11: #b5b3ad;--sand-12: #eeeeec;--sand-a1: #00000000;--sand-a2: #f4f4f309;--sand-a3: #f6f6f513;--sand-a4: #fefef31b;--sand-a5: #fbfbeb23;--sand-a6: #fffaed2d;--sand-a7: #fffbed3c;--sand-a8: #fff9eb57;--sand-a9: #fffae965;--sand-a10: #fffdee73;--sand-a11: #fffcf4b0;--sand-a12: #fffffded;--amber-1: #16120c;--amber-2: #1d180f;--amber-3: #302008;--amber-4: #3f2700;--amber-5: #4d3000;--amber-6: #5c3d05;--amber-7: #714f19;--amber-8: #8f6424;--amber-9: #ffc53d;--amber-10: #ffd60a;--amber-11: #ffca16;--amber-12: #ffe7b3;--amber-a1: #e63c0006;--amber-a2: #fd9b000d;--amber-a3: #fa820022;--amber-a4: #fc820032;--amber-a5: #fd8b0041;--amber-a6: #fd9b0051;--amber-a7: #ffab2567;--amber-a8: #ffae3587;--amber-a9: #ffc53d;--amber-a10: #ffd60a;--amber-a11: #ffca16;--amber-a12: #ffe7b3;--blue-1: #0d1520;--blue-2: #111927;--blue-3: #0d2847;--blue-4: #003362;--blue-5: #004074;--blue-6: #104d87;--blue-7: #205d9e;--blue-8: #2870bd;--blue-9: #0090ff;--blue-10: #3b9eff;--blue-11: #70b8ff;--blue-12: #c2e6ff;--blue-a1: #004df211;--blue-a2: #1166fb18;--blue-a3: #0077ff3a;--blue-a4: #0075ff57;--blue-a5: #0081fd6b;--blue-a6: #0f89fd7f;--blue-a7: #2a91fe98;--blue-a8: #3094feb9;--blue-a9: #0090ff;--blue-a10: #3b9eff;--blue-a11: #70b8ff;--blue-a12: #c2e6ff;--bronze-1: #141110;--bronze-2: #1c1917;--bronze-3: #262220;--bronze-4: #302a27;--bronze-5: #3b3330;--bronze-6: #493e3a;--bronze-7: #5a4c47;--bronze-8: #6f5f58;--bronze-9: #a18072;--bronze-10: #ae8c7e;--bronze-11: #d4b3a5;--bronze-12: #ede0d9;--bronze-a1: #d1110004;--bronze-a2: #fbbc910c;--bronze-a3: #faceb817;--bronze-a4: #facdb622;--bronze-a5: #ffd2c12d;--bronze-a6: #ffd1c03c;--bronze-a7: #fdd0c04f;--bronze-a8: #ffd6c565;--bronze-a9: #fec7b09b;--bronze-a10: #fecab5a9;--bronze-a11: #ffd7c6d1;--bronze-a12: #fff1e9ec;--brown-1: #12110f;--brown-2: #1c1816;--brown-3: #28211d;--brown-4: #322922;--brown-5: #3e3128;--brown-6: #4d3c2f;--brown-7: #614a39;--brown-8: #7c5f46;--brown-9: #ad7f58;--brown-10: #b88c67;--brown-11: #dbb594;--brown-12: #f2e1ca;--brown-a1: #91110002;--brown-a2: #fba67c0c;--brown-a3: #fcb58c19;--brown-a4: #fbbb8a24;--brown-a5: #fcb88931;--brown-a6: #fdba8741;--brown-a7: #ffbb8856;--brown-a8: #ffbe8773;--brown-a9: #feb87da8;--brown-a10: #ffc18cb3;--brown-a11: #fed1aad9;--brown-a12: #feecd4f2;--crimson-1: #191114;--crimson-2: #201318;--crimson-3: #381525;--crimson-4: #4d122f;--crimson-5: #5c1839;--crimson-6: #6d2545;--crimson-7: #873356;--crimson-8: #b0436e;--crimson-9: #e93d82;--crimson-10: #ee518a;--crimson-11: #ff92ad;--crimson-12: #fdd3e8;--crimson-a1: #f4126709;--crimson-a2: #f22f7a11;--crimson-a3: #fe2a8b2a;--crimson-a4: #fd158741;--crimson-a5: #fd278f51;--crimson-a6: #fe459763;--crimson-a7: #fd559b7f;--crimson-a8: #fe5b9bab;--crimson-a9: #fe418de8;--crimson-a10: #ff5693ed;--crimson-a11: #ff92ad;--crimson-a12: #ffd5eafd;--cyan-1: #0b161a;--cyan-2: #101b20;--cyan-3: #082c36;--cyan-4: #003848;--cyan-5: #004558;--cyan-6: #045468;--cyan-7: #12677e;--cyan-8: #11809c;--cyan-9: #00a2c7;--cyan-10: #23afd0;--cyan-11: #4ccce6;--cyan-12: #b6ecf7;--cyan-a1: #0091f70a;--cyan-a2: #02a7f211;--cyan-a3: #00befd28;--cyan-a4: #00baff3b;--cyan-a5: #00befd4d;--cyan-a6: #00c7fd5e;--cyan-a7: #14cdff75;--cyan-a8: #11cfff95;--cyan-a9: #00cfffc3;--cyan-a10: #28d6ffcd;--cyan-a11: #52e1fee5;--cyan-a12: #bbf3fef7;--gold-1: #121211;--gold-2: #1b1a17;--gold-3: #24231f;--gold-4: #2d2b26;--gold-5: #38352e;--gold-6: #444039;--gold-7: #544f46;--gold-8: #696256;--gold-9: #978365;--gold-10: #a39073;--gold-11: #cbb99f;--gold-12: #e8e2d9;--gold-a1: #91911102;--gold-a2: #f9e29d0b;--gold-a3: #f8ecbb15;--gold-a4: #ffeec41e;--gold-a5: #feecc22a;--gold-a6: #feebcb37;--gold-a7: #ffedcd48;--gold-a8: #fdeaca5f;--gold-a9: #ffdba690;--gold-a10: #fedfb09d;--gold-a11: #fee7c6c8;--gold-a12: #fef7ede7;--grass-1: #0e1511;--grass-2: #141a15;--grass-3: #1b2a1e;--grass-4: #1d3a24;--grass-5: #25482d;--grass-6: #2d5736;--grass-7: #366740;--grass-8: #3e7949;--grass-9: #46a758;--grass-10: #53b365;--grass-11: #71d083;--grass-12: #c2f0c2;--grass-a1: #00de1205;--grass-a2: #5ef7780a;--grass-a3: #70fe8c1b;--grass-a4: #57ff802c;--grass-a5: #68ff8b3b;--grass-a6: #71ff8f4b;--grass-a7: #77fd925d;--grass-a8: #77fd9070;--grass-a9: #65ff82a1;--grass-a10: #72ff8dae;--grass-a11: #89ff9fcd;--grass-a12: #ceffceef;--green-1: #0e1512;--green-2: #121b17;--green-3: #132d21;--green-4: #113b29;--green-5: #174933;--green-6: #20573e;--green-7: #28684a;--green-8: #2f7c57;--green-9: #30a46c;--green-10: #33b074;--green-11: #3dd68c;--green-12: #b1f1cb;--green-a1: #00de4505;--green-a2: #29f99d0b;--green-a3: #22ff991e;--green-a4: #11ff992d;--green-a5: #2bffa23c;--green-a6: #44ffaa4b;--green-a7: #50fdac5e;--green-a8: #54ffad73;--green-a9: #44ffa49e;--green-a10: #43fea4ab;--green-a11: #46fea5d4;--green-a12: #bbffd7f0;--indigo-1: #11131f;--indigo-2: #141726;--indigo-3: #182449;--indigo-4: #1d2e62;--indigo-5: #253974;--indigo-6: #304384;--indigo-7: #3a4f97;--indigo-8: #435db1;--indigo-9: #3e63dd;--indigo-10: #5472e4;--indigo-11: #9eb1ff;--indigo-12: #d6e1ff;--indigo-a1: #1133ff0f;--indigo-a2: #3354fa17;--indigo-a3: #2f62ff3c;--indigo-a4: #3566ff57;--indigo-a5: #4171fd6b;--indigo-a6: #5178fd7c;--indigo-a7: #5a7fff90;--indigo-a8: #5b81feac;--indigo-a9: #4671ffdb;--indigo-a10: #5c7efee3;--indigo-a11: #9eb1ff;--indigo-a12: #d6e1ff;--iris-1: #13131e;--iris-2: #171625;--iris-3: #202248;--iris-4: #262a65;--iris-5: #303374;--iris-6: #3d3e82;--iris-7: #4a4a95;--iris-8: #5958b1;--iris-9: #5b5bd6;--iris-10: #6e6ade;--iris-11: #b1a9ff;--iris-12: #e0dffe;--iris-a1: #3636fe0e;--iris-a2: #564bf916;--iris-a3: #525bff3b;--iris-a4: #4d58ff5a;--iris-a5: #5b62fd6b;--iris-a6: #6d6ffd7a;--iris-a7: #7777fe8e;--iris-a8: #7b7afeac;--iris-a9: #6a6afed4;--iris-a10: #7d79ffdc;--iris-a11: #b1a9ff;--iris-a12: #e1e0fffe;--jade-1: #0d1512;--jade-2: #121c18;--jade-3: #0f2e22;--jade-4: #0b3b2c;--jade-5: #114837;--jade-6: #1b5745;--jade-7: #246854;--jade-8: #2a7e68;--jade-9: #29a383;--jade-10: #27b08b;--jade-11: #1fd8a4;--jade-12: #adf0d4;--jade-a1: #00de4505;--jade-a2: #27fba60c;--jade-a3: #02f99920;--jade-a4: #00ffaa2d;--jade-a5: #11ffb63b;--jade-a6: #34ffc24b;--jade-a7: #45fdc75e;--jade-a8: #48ffcf75;--jade-a9: #38feca9d;--jade-a10: #31fec7ab;--jade-a11: #21fec0d6;--jade-a12: #b8ffe1ef;--lime-1: #11130c;--lime-2: #151a10;--lime-3: #1f2917;--lime-4: #29371d;--lime-5: #334423;--lime-6: #3d522a;--lime-7: #496231;--lime-8: #577538;--lime-9: #bdee63;--lime-10: #d4ff70;--lime-11: #bde56c;--lime-12: #e3f7ba;--lime-a1: #11bb0003;--lime-a2: #78f7000a;--lime-a3: #9bfd4c1a;--lime-a4: #a7fe5c29;--lime-a5: #affe6537;--lime-a6: #b2fe6d46;--lime-a7: #b6ff6f57;--lime-a8: #b6fd6d6c;--lime-a9: #caff69ed;--lime-a10: #d4ff70;--lime-a11: #d1fe77e4;--lime-a12: #e9febff7;--mint-1: #0e1515;--mint-2: #0f1b1b;--mint-3: #092c2b;--mint-4: #003a38;--mint-5: #004744;--mint-6: #105650;--mint-7: #1e685f;--mint-8: #277f70;--mint-9: #86ead4;--mint-10: #a8f5e5;--mint-11: #58d5ba;--mint-12: #c4f5e1;--mint-a1: #00dede05;--mint-a2: #00f9f90b;--mint-a3: #00fff61d;--mint-a4: #00fff42c;--mint-a5: #00fff23a;--mint-a6: #0effeb4a;--mint-a7: #34fde55e;--mint-a8: #41ffdf76;--mint-a9: #92ffe7e9;--mint-a10: #aefeedf5;--mint-a11: #67ffded2;--mint-a12: #cbfee9f5;--orange-1: #17120e;--orange-2: #1e160f;--orange-3: #331e0b;--orange-4: #462100;--orange-5: #562800;--orange-6: #66350c;--orange-7: #7e451d;--orange-8: #a35829;--orange-9: #f76b15;--orange-10: #ff801f;--orange-11: #ffa057;--orange-12: #ffe0c2;--orange-a1: #ec360007;--orange-a2: #fe6d000e;--orange-a3: #fb6a0025;--orange-a4: #ff590039;--orange-a5: #ff61004a;--orange-a6: #fd75045c;--orange-a7: #ff832c75;--orange-a8: #fe84389d;--orange-a9: #fe6d15f7;--orange-a10: #ff801f;--orange-a11: #ffa057;--orange-a12: #ffe0c2;--pink-1: #191117;--pink-2: #21121d;--pink-3: #37172f;--pink-4: #4b143d;--pink-5: #591c47;--pink-6: #692955;--pink-7: #833869;--pink-8: #a84885;--pink-9: #d6409f;--pink-10: #de51a8;--pink-11: #ff8dcc;--pink-12: #fdd1ea;--pink-a1: #f412bc09;--pink-a2: #f420bb12;--pink-a3: #fe37cc29;--pink-a4: #fc1ec43f;--pink-a5: #fd35c24e;--pink-a6: #fd51c75f;--pink-a7: #fd62c87b;--pink-a8: #ff68c8a2;--pink-a9: #fe49bcd4;--pink-a10: #ff5cc0dc;--pink-a11: #ff8dcc;--pink-a12: #ffd3ecfd;--plum-1: #181118;--plum-2: #201320;--plum-3: #351a35;--plum-4: #451d47;--plum-5: #512454;--plum-6: #5e3061;--plum-7: #734079;--plum-8: #92549c;--plum-9: #ab4aba;--plum-10: #b658c4;--plum-11: #e796f3;--plum-12: #f4d4f4;--plum-a1: #f112f108;--plum-a2: #f22ff211;--plum-a3: #fd4cfd27;--plum-a4: #f646ff3a;--plum-a5: #f455ff48;--plum-a6: #f66dff56;--plum-a7: #f07cfd70;--plum-a8: #ee84ff95;--plum-a9: #e961feb6;--plum-a10: #ed70ffc0;--plum-a11: #f19cfef3;--plum-a12: #feddfef4;--purple-1: #18111b;--purple-2: #1e1523;--purple-3: #301c3b;--purple-4: #3d224e;--purple-5: #48295c;--purple-6: #54346b;--purple-7: #664282;--purple-8: #8457aa;--purple-9: #8e4ec6;--purple-10: #9a5cd0;--purple-11: #d19dff;--purple-12: #ecd9fa;--purple-a1: #b412f90b;--purple-a2: #b744f714;--purple-a3: #c150ff2d;--purple-a4: #bb53fd42;--purple-a5: #be5cfd51;--purple-a6: #c16dfd61;--purple-a7: #c378fd7a;--purple-a8: #c47effa4;--purple-a9: #b661ffc2;--purple-a10: #bc6fffcd;--purple-a11: #d19dff;--purple-a12: #f1ddfffa;--red-1: #191111;--red-2: #201314;--red-3: #3b1219;--red-4: #500f1c;--red-5: #611623;--red-6: #72232d;--red-7: #8c333a;--red-8: #b54548;--red-9: #e5484d;--red-10: #ec5d5e;--red-11: #ff9592;--red-12: #ffd1d9;--red-a1: #f4121209;--red-a2: #f22f3e11;--red-a3: #ff173f2d;--red-a4: #fe0a3b44;--red-a5: #ff204756;--red-a6: #ff3e5668;--red-a7: #ff536184;--red-a8: #ff5d61b0;--red-a9: #fe4e54e4;--red-a10: #ff6465eb;--red-a11: #ff9592;--red-a12: #ffd1d9;--ruby-1: #191113;--ruby-2: #1e1517;--ruby-3: #3a141e;--ruby-4: #4e1325;--ruby-5: #5e1a2e;--ruby-6: #6f2539;--ruby-7: #883447;--ruby-8: #b3445a;--ruby-9: #e54666;--ruby-10: #ec5a72;--ruby-11: #ff949d;--ruby-12: #fed2e1;--ruby-a1: #f4124a09;--ruby-a2: #fe5a7f0e;--ruby-a3: #ff235d2c;--ruby-a4: #fd195e42;--ruby-a5: #fe2d6b53;--ruby-a6: #ff447665;--ruby-a7: #ff577d80;--ruby-a8: #ff5c7cae;--ruby-a9: #fe4c70e4;--ruby-a10: #ff617beb;--ruby-a11: #ff949d;--ruby-a12: #ffd3e2fe;--sky-1: #0d141f;--sky-2: #111a27;--sky-3: #112840;--sky-4: #113555;--sky-5: #154467;--sky-6: #1b537b;--sky-7: #1f6692;--sky-8: #197cae;--sky-9: #7ce2fe;--sky-10: #a8eeff;--sky-11: #75c7f0;--sky-12: #c2f3ff;--sky-a1: #0044ff0f;--sky-a2: #1171fb18;--sky-a3: #1184fc33;--sky-a4: #128fff49;--sky-a5: #1c9dfd5d;--sky-a6: #28a5ff72;--sky-a7: #2badfe8b;--sky-a8: #1db2fea9;--sky-a9: #7ce3fffe;--sky-a10: #a8eeff;--sky-a11: #7cd3ffef;--sky-a12: #c2f3ff;--teal-1: #0d1514;--teal-2: #111c1b;--teal-3: #0d2d2a;--teal-4: #023b37;--teal-5: #084843;--teal-6: #145750;--teal-7: #1c6961;--teal-8: #207e73;--teal-9: #12a594;--teal-10: #0eb39e;--teal-11: #0bd8b6;--teal-12: #adf0dd;--teal-a1: #00deab05;--teal-a2: #12fbe60c;--teal-a3: #00ffe61e;--teal-a4: #00ffe92d;--teal-a5: #00ffea3b;--teal-a6: #1cffe84b;--teal-a7: #2efde85f;--teal-a8: #32ffe775;--teal-a9: #13ffe49f;--teal-a10: #0dffe0ae;--teal-a11: #0afed5d6;--teal-a12: #b8ffebef;--tomato-1: #181111;--tomato-2: #1f1513;--tomato-3: #391714;--tomato-4: #4e1511;--tomato-5: #5e1c16;--tomato-6: #6e2920;--tomato-7: #853a2d;--tomato-8: #ac4d39;--tomato-9: #e54d2e;--tomato-10: #ec6142;--tomato-11: #ff977d;--tomato-12: #fbd3cb;--tomato-a1: #f1121208;--tomato-a2: #ff55330f;--tomato-a3: #ff35232b;--tomato-a4: #fd201142;--tomato-a5: #fe332153;--tomato-a6: #ff4f3864;--tomato-a7: #fd644a7d;--tomato-a8: #fe6d4ea7;--tomato-a9: #fe5431e4;--tomato-a10: #ff6847eb;--tomato-a11: #ff977d;--tomato-a12: #ffd6cefb;--violet-1: #14121f;--violet-2: #1b1525;--violet-3: #291f43;--violet-4: #33255b;--violet-5: #3c2e69;--violet-6: #473876;--violet-7: #56468b;--violet-8: #6958ad;--violet-9: #6e56cf;--violet-10: #7d66d9;--violet-11: #baa7ff;--violet-12: #e2ddfe;--violet-a1: #4422ff0f;--violet-a2: #853ff916;--violet-a3: #8354fe36;--violet-a4: #7d51fd50;--violet-a5: #845ffd5f;--violet-a6: #8f6cfd6d;--violet-a7: #9879ff83;--violet-a8: #977dfea8;--violet-a9: #8668ffcc;--violet-a10: #9176fed7;--violet-a11: #baa7ff;--violet-a12: #e3defffe;--yellow-1: #14120b;--yellow-2: #1b180f;--yellow-3: #2d2305;--yellow-4: #362b00;--yellow-5: #433500;--yellow-6: #524202;--yellow-7: #665417;--yellow-8: #836a21;--yellow-9: #ffe629;--yellow-10: #ffff57;--yellow-11: #f5e147;--yellow-12: #f6eeb4;--yellow-a1: #d1510004;--yellow-a2: #f9b4000b;--yellow-a3: #ffaa001e;--yellow-a4: #fdb70028;--yellow-a5: #febb0036;--yellow-a6: #fec40046;--yellow-a7: #fdcb225c;--yellow-a8: #fdca327b;--yellow-a9: #ffe629;--yellow-a10: #ffff57;--yellow-a11: #fee949f5;--yellow-a12: #fef6baf6;--gray-surface: #21212180;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #22212380;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #1f212380;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #1e201f80;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #1f201e80;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #21212080;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #271f1380;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #11213d80;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #27211d80;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #271f1b80;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #2f151f80;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #11252d80;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #25231d80;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #19231b80;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #15251d80;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #171d3b80;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #1d1b3980;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #13271f80;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #1b211580;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #15272780;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #271d1380;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #31132980;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #2f152f80;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #2b173580;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #2f151780;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #2b191d80;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #13233b80;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #13272580;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #2d191580;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #25193980;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #231f1380;--yellow-indicator: var(--yellow-9);--yellow-track: var(--yellow-9)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.dark,.dark-theme{--gray-1: color(display-p3 .067 .067 .067);--gray-2: color(display-p3 .098 .098 .098);--gray-3: color(display-p3 .135 .135 .135);--gray-4: color(display-p3 .163 .163 .163);--gray-5: color(display-p3 .192 .192 .192);--gray-6: color(display-p3 .228 .228 .228);--gray-7: color(display-p3 .283 .283 .283);--gray-8: color(display-p3 .375 .375 .375);--gray-9: color(display-p3 .431 .431 .431);--gray-10: color(display-p3 .484 .484 .484);--gray-11: color(display-p3 .706 .706 .706);--gray-12: color(display-p3 .933 .933 .933);--gray-a1: color(display-p3 0 0 0 / 0);--gray-a2: color(display-p3 1 1 1 / .034);--gray-a3: color(display-p3 1 1 1 / .071);--gray-a4: color(display-p3 1 1 1 / .105);--gray-a5: color(display-p3 1 1 1 / .134);--gray-a6: color(display-p3 1 1 1 / .172);--gray-a7: color(display-p3 1 1 1 / .231);--gray-a8: color(display-p3 1 1 1 / .332);--gray-a9: color(display-p3 1 1 1 / .391);--gray-a10: color(display-p3 1 1 1 / .445);--gray-a11: color(display-p3 1 1 1 / .685);--gray-a12: color(display-p3 1 1 1 / .929);--mauve-1: color(display-p3 .07 .067 .074);--mauve-2: color(display-p3 .101 .098 .105);--mauve-3: color(display-p3 .138 .134 .144);--mauve-4: color(display-p3 .167 .161 .175);--mauve-5: color(display-p3 .196 .189 .206);--mauve-6: color(display-p3 .232 .225 .245);--mauve-7: color(display-p3 .286 .277 .302);--mauve-8: color(display-p3 .383 .373 .408);--mauve-9: color(display-p3 .434 .428 .467);--mauve-10: color(display-p3 .487 .48 .519);--mauve-11: color(display-p3 .707 .7 .735);--mauve-12: color(display-p3 .933 .933 .94);--mauve-a1: color(display-p3 0 0 0 / 0);--mauve-a2: color(display-p3 .996 .992 1 / .034);--mauve-a3: color(display-p3 .937 .933 .992 / .077);--mauve-a4: color(display-p3 .957 .918 .996 / .111);--mauve-a5: color(display-p3 .937 .906 .996 / .145);--mauve-a6: color(display-p3 .953 .925 .996 / .183);--mauve-a7: color(display-p3 .945 .929 1 / .246);--mauve-a8: color(display-p3 .937 .918 1 / .361);--mauve-a9: color(display-p3 .933 .918 1 / .424);--mauve-a10: color(display-p3 .941 .925 1 / .479);--mauve-a11: color(display-p3 .965 .961 1 / .712);--mauve-a12: color(display-p3 .992 .992 1 / .937);--slate-1: color(display-p3 .067 .067 .074);--slate-2: color(display-p3 .095 .098 .105);--slate-3: color(display-p3 .13 .135 .145);--slate-4: color(display-p3 .156 .163 .176);--slate-5: color(display-p3 .183 .191 .206);--slate-6: color(display-p3 .215 .226 .244);--slate-7: color(display-p3 .265 .28 .302);--slate-8: color(display-p3 .357 .381 .409);--slate-9: color(display-p3 .415 .431 .463);--slate-10: color(display-p3 .469 .483 .514);--slate-11: color(display-p3 .692 .704 .728);--slate-12: color(display-p3 .93 .933 .94);--slate-a1: color(display-p3 0 0 0 / 0);--slate-a2: color(display-p3 .875 .992 1 / .034);--slate-a3: color(display-p3 .882 .933 .992 / .077);--slate-a4: color(display-p3 .882 .953 .996 / .111);--slate-a5: color(display-p3 .878 .929 .996 / .145);--slate-a6: color(display-p3 .882 .949 .996 / .183);--slate-a7: color(display-p3 .882 .929 1 / .246);--slate-a8: color(display-p3 .871 .937 1 / .361);--slate-a9: color(display-p3 .898 .937 1 / .42);--slate-a10: color(display-p3 .918 .945 1 / .475);--slate-a11: color(display-p3 .949 .969 .996 / .708);--slate-a12: color(display-p3 .988 .992 1 / .937);--sage-1: color(display-p3 .064 .07 .067);--sage-2: color(display-p3 .092 .098 .094);--sage-3: color(display-p3 .128 .135 .131);--sage-4: color(display-p3 .155 .164 .159);--sage-5: color(display-p3 .183 .193 .188);--sage-6: color(display-p3 .218 .23 .224);--sage-7: color(display-p3 .269 .285 .277);--sage-8: color(display-p3 .362 .382 .373);--sage-9: color(display-p3 .398 .438 .421);--sage-10: color(display-p3 .453 .49 .474);--sage-11: color(display-p3 .685 .709 .697);--sage-12: color(display-p3 .927 .933 .93);--sage-a1: color(display-p3 0 0 0 / 0);--sage-a2: color(display-p3 .976 .988 .984 / .03);--sage-a3: color(display-p3 .992 .945 .941 / .072);--sage-a4: color(display-p3 .988 .996 .992 / .102);--sage-a5: color(display-p3 .992 1 .996 / .131);--sage-a6: color(display-p3 .973 1 .976 / .173);--sage-a7: color(display-p3 .957 1 .976 / .233);--sage-a8: color(display-p3 .957 1 .984 / .334);--sage-a9: color(display-p3 .902 1 .957 / .397);--sage-a10: color(display-p3 .929 1 .973 / .452);--sage-a11: color(display-p3 .969 1 .988 / .688);--sage-a12: color(display-p3 .992 1 .996 / .929);--olive-1: color(display-p3 .067 .07 .063);--olive-2: color(display-p3 .095 .098 .091);--olive-3: color(display-p3 .131 .135 .126);--olive-4: color(display-p3 .158 .163 .153);--olive-5: color(display-p3 .186 .192 .18);--olive-6: color(display-p3 .221 .229 .215);--olive-7: color(display-p3 .273 .284 .266);--olive-8: color(display-p3 .365 .382 .359);--olive-9: color(display-p3 .414 .438 .404);--olive-10: color(display-p3 .467 .49 .458);--olive-11: color(display-p3 .69 .709 .682);--olive-12: color(display-p3 .927 .933 .926);--olive-a1: color(display-p3 0 0 0 / 0);--olive-a2: color(display-p3 .984 .988 .976 / .03);--olive-a3: color(display-p3 .992 .996 .988 / .068);--olive-a4: color(display-p3 .953 .996 .949 / .102);--olive-a5: color(display-p3 .969 1 .965 / .131);--olive-a6: color(display-p3 .973 1 .969 / .169);--olive-a7: color(display-p3 .98 1 .961 / .228);--olive-a8: color(display-p3 .961 1 .957 / .334);--olive-a9: color(display-p3 .949 1 .922 / .397);--olive-a10: color(display-p3 .953 1 .941 / .452);--olive-a11: color(display-p3 .976 1 .965 / .688);--olive-a12: color(display-p3 .992 1 .992 / .929);--sand-1: color(display-p3 .067 .067 .063);--sand-2: color(display-p3 .098 .098 .094);--sand-3: color(display-p3 .135 .135 .129);--sand-4: color(display-p3 .164 .163 .156);--sand-5: color(display-p3 .193 .192 .183);--sand-6: color(display-p3 .23 .229 .217);--sand-7: color(display-p3 .285 .282 .267);--sand-8: color(display-p3 .384 .378 .357);--sand-9: color(display-p3 .434 .428 .403);--sand-10: color(display-p3 .487 .481 .456);--sand-11: color(display-p3 .707 .703 .68);--sand-12: color(display-p3 .933 .933 .926);--sand-a1: color(display-p3 0 0 0 / 0);--sand-a2: color(display-p3 .992 .992 .988 / .034);--sand-a3: color(display-p3 .996 .996 .992 / .072);--sand-a4: color(display-p3 .992 .992 .953 / .106);--sand-a5: color(display-p3 1 1 .965 / .135);--sand-a6: color(display-p3 1 .976 .929 / .177);--sand-a7: color(display-p3 1 .984 .929 / .236);--sand-a8: color(display-p3 1 .976 .925 / .341);--sand-a9: color(display-p3 1 .98 .925 / .395);--sand-a10: color(display-p3 1 .992 .933 / .45);--sand-a11: color(display-p3 1 .996 .961 / .685);--sand-a12: color(display-p3 1 1 .992 / .929);--amber-1: color(display-p3 .082 .07 .05);--amber-2: color(display-p3 .111 .094 .064);--amber-3: color(display-p3 .178 .128 .049);--amber-4: color(display-p3 .239 .156 0);--amber-5: color(display-p3 .29 .193 0);--amber-6: color(display-p3 .344 .245 .076);--amber-7: color(display-p3 .422 .314 .141);--amber-8: color(display-p3 .535 .399 .189);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 1 .87 .15);--amber-11: color(display-p3 1 .8 .29);--amber-12: color(display-p3 .984 .909 .726);--amber-a1: color(display-p3 .992 .298 0 / .017);--amber-a2: color(display-p3 .988 .651 0 / .047);--amber-a3: color(display-p3 1 .6 0 / .118);--amber-a4: color(display-p3 1 .557 0 / .185);--amber-a5: color(display-p3 1 .592 0 / .24);--amber-a6: color(display-p3 1 .659 .094 / .299);--amber-a7: color(display-p3 1 .714 .263 / .383);--amber-a8: color(display-p3 .996 .729 .306 / .5);--amber-a9: color(display-p3 1 .769 .259);--amber-a10: color(display-p3 1 .871 .149);--amber-a11: color(display-p3 1 .8 .29);--amber-a12: color(display-p3 .984 .909 .726);--blue-1: color(display-p3 .057 .081 .122);--blue-2: color(display-p3 .072 .098 .147);--blue-3: color(display-p3 .078 .154 .27);--blue-4: color(display-p3 .033 .197 .37);--blue-5: color(display-p3 .08 .245 .441);--blue-6: color(display-p3 .14 .298 .511);--blue-7: color(display-p3 .195 .361 .6);--blue-8: color(display-p3 .239 .434 .72);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .344 .612 .973);--blue-11: color(display-p3 .49 .72 1);--blue-12: color(display-p3 .788 .898 .99);--blue-a1: color(display-p3 0 .333 1 / .059);--blue-a2: color(display-p3 .114 .435 .988 / .085);--blue-a3: color(display-p3 .122 .463 1 / .219);--blue-a4: color(display-p3 0 .467 1 / .324);--blue-a5: color(display-p3 .098 .51 1 / .4);--blue-a6: color(display-p3 .224 .557 1 / .475);--blue-a7: color(display-p3 .294 .584 1 / .572);--blue-a8: color(display-p3 .314 .592 1 / .702);--blue-a9: color(display-p3 .251 .573 .996 / .967);--blue-a10: color(display-p3 .357 .631 1 / .971);--blue-a11: color(display-p3 .49 .72 1);--blue-a12: color(display-p3 .788 .898 .99);--bronze-1: color(display-p3 .076 .067 .063);--bronze-2: color(display-p3 .106 .097 .093);--bronze-3: color(display-p3 .147 .132 .125);--bronze-4: color(display-p3 .185 .166 .156);--bronze-5: color(display-p3 .227 .202 .19);--bronze-6: color(display-p3 .278 .246 .23);--bronze-7: color(display-p3 .343 .302 .281);--bronze-8: color(display-p3 .426 .374 .347);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .66 .556 .504);--bronze-11: color(display-p3 .81 .707 .655);--bronze-12: color(display-p3 .921 .88 .854);--bronze-a1: color(display-p3 .941 .067 0 / .009);--bronze-a2: color(display-p3 .98 .8 .706 / .043);--bronze-a3: color(display-p3 .988 .851 .761 / .085);--bronze-a4: color(display-p3 .996 .839 .78 / .127);--bronze-a5: color(display-p3 .996 .863 .773 / .173);--bronze-a6: color(display-p3 1 .863 .796 / .227);--bronze-a7: color(display-p3 1 .867 .8 / .295);--bronze-a8: color(display-p3 1 .859 .788 / .387);--bronze-a9: color(display-p3 1 .82 .733 / .585);--bronze-a10: color(display-p3 1 .839 .761 / .635);--bronze-a11: color(display-p3 .81 .707 .655);--bronze-a12: color(display-p3 .921 .88 .854);--brown-1: color(display-p3 .071 .067 .059);--brown-2: color(display-p3 .107 .095 .087);--brown-3: color(display-p3 .151 .13 .115);--brown-4: color(display-p3 .191 .161 .138);--brown-5: color(display-p3 .235 .194 .162);--brown-6: color(display-p3 .291 .237 .192);--brown-7: color(display-p3 .365 .295 .232);--brown-8: color(display-p3 .469 .377 .287);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .697 .557 .423);--brown-11: color(display-p3 .835 .715 .597);--brown-12: color(display-p3 .938 .885 .802);--brown-a1: color(display-p3 .855 .071 0 / .005);--brown-a2: color(display-p3 .98 .706 .525 / .043);--brown-a3: color(display-p3 .996 .745 .576 / .093);--brown-a4: color(display-p3 1 .765 .592 / .135);--brown-a5: color(display-p3 1 .761 .588 / .181);--brown-a6: color(display-p3 1 .773 .592 / .24);--brown-a7: color(display-p3 .996 .776 .58 / .32);--brown-a8: color(display-p3 1 .78 .573 / .433);--brown-a9: color(display-p3 1 .769 .549 / .627);--brown-a10: color(display-p3 1 .792 .596 / .677);--brown-a11: color(display-p3 .835 .715 .597);--brown-a12: color(display-p3 .938 .885 .802);--crimson-1: color(display-p3 .093 .068 .078);--crimson-2: color(display-p3 .117 .078 .095);--crimson-3: color(display-p3 .203 .091 .143);--crimson-4: color(display-p3 .277 .087 .182);--crimson-5: color(display-p3 .332 .115 .22);--crimson-6: color(display-p3 .394 .162 .268);--crimson-7: color(display-p3 .489 .222 .336);--crimson-8: color(display-p3 .638 .289 .429);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .864 .364 .539);--crimson-11: color(display-p3 1 .56 .66);--crimson-12: color(display-p3 .966 .834 .906);--crimson-a1: color(display-p3 .984 .071 .463 / .03);--crimson-a2: color(display-p3 .996 .282 .569 / .055);--crimson-a3: color(display-p3 .996 .227 .573 / .148);--crimson-a4: color(display-p3 1 .157 .569 / .227);--crimson-a5: color(display-p3 1 .231 .604 / .286);--crimson-a6: color(display-p3 1 .337 .643 / .349);--crimson-a7: color(display-p3 1 .416 .663 / .454);--crimson-a8: color(display-p3 .996 .427 .651 / .614);--crimson-a9: color(display-p3 1 .345 .596 / .832);--crimson-a10: color(display-p3 1 .42 .62 / .853);--crimson-a11: color(display-p3 1 .56 .66);--crimson-a12: color(display-p3 .966 .834 .906);--cyan-1: color(display-p3 .053 .085 .098);--cyan-2: color(display-p3 .072 .105 .122);--cyan-3: color(display-p3 .073 .168 .209);--cyan-4: color(display-p3 .063 .216 .277);--cyan-5: color(display-p3 .091 .267 .336);--cyan-6: color(display-p3 .137 .324 .4);--cyan-7: color(display-p3 .186 .398 .484);--cyan-8: color(display-p3 .23 .496 .6);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .331 .675 .801);--cyan-11: color(display-p3 .446 .79 .887);--cyan-12: color(display-p3 .757 .919 .962);--cyan-a1: color(display-p3 0 .647 .992 / .034);--cyan-a2: color(display-p3 .133 .733 1 / .059);--cyan-a3: color(display-p3 .122 .741 .996 / .152);--cyan-a4: color(display-p3 .051 .725 1 / .227);--cyan-a5: color(display-p3 .149 .757 1 / .29);--cyan-a6: color(display-p3 .267 .792 1 / .358);--cyan-a7: color(display-p3 .333 .808 1 / .446);--cyan-a8: color(display-p3 .357 .816 1 / .572);--cyan-a9: color(display-p3 .357 .82 1 / .748);--cyan-a10: color(display-p3 .4 .839 1 / .786);--cyan-a11: color(display-p3 .446 .79 .887);--cyan-a12: color(display-p3 .757 .919 .962);--gold-1: color(display-p3 .071 .071 .067);--gold-2: color(display-p3 .104 .101 .09);--gold-3: color(display-p3 .141 .136 .122);--gold-4: color(display-p3 .177 .17 .152);--gold-5: color(display-p3 .217 .207 .185);--gold-6: color(display-p3 .265 .252 .225);--gold-7: color(display-p3 .327 .31 .277);--gold-8: color(display-p3 .407 .384 .342);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .628 .566 .463);--gold-11: color(display-p3 .784 .728 .635);--gold-12: color(display-p3 .906 .887 .855);--gold-a1: color(display-p3 .855 .855 .071 / .005);--gold-a2: color(display-p3 .98 .89 .616 / .043);--gold-a3: color(display-p3 1 .949 .753 / .08);--gold-a4: color(display-p3 1 .933 .8 / .118);--gold-a5: color(display-p3 1 .949 .804 / .16);--gold-a6: color(display-p3 1 .925 .8 / .215);--gold-a7: color(display-p3 1 .945 .831 / .278);--gold-a8: color(display-p3 1 .937 .82 / .366);--gold-a9: color(display-p3 .996 .882 .69 / .551);--gold-a10: color(display-p3 1 .894 .725 / .601);--gold-a11: color(display-p3 .784 .728 .635);--gold-a12: color(display-p3 .906 .887 .855);--grass-1: color(display-p3 .062 .083 .067);--grass-2: color(display-p3 .083 .103 .085);--grass-3: color(display-p3 .118 .163 .122);--grass-4: color(display-p3 .142 .225 .15);--grass-5: color(display-p3 .178 .279 .186);--grass-6: color(display-p3 .217 .337 .224);--grass-7: color(display-p3 .258 .4 .264);--grass-8: color(display-p3 .302 .47 .305);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .426 .694 .426);--grass-11: color(display-p3 .535 .807 .542);--grass-12: color(display-p3 .797 .936 .776);--grass-a1: color(display-p3 0 .992 .071 / .017);--grass-a2: color(display-p3 .482 .996 .584 / .038);--grass-a3: color(display-p3 .549 .992 .588 / .106);--grass-a4: color(display-p3 .51 .996 .557 / .169);--grass-a5: color(display-p3 .553 1 .588 / .227);--grass-a6: color(display-p3 .584 1 .608 / .29);--grass-a7: color(display-p3 .604 1 .616 / .358);--grass-a8: color(display-p3 .608 1 .62 / .433);--grass-a9: color(display-p3 .573 1 .569 / .622);--grass-a10: color(display-p3 .6 .996 .6 / .673);--grass-a11: color(display-p3 .535 .807 .542);--grass-a12: color(display-p3 .797 .936 .776);--green-1: color(display-p3 .062 .083 .071);--green-2: color(display-p3 .079 .106 .09);--green-3: color(display-p3 .1 .173 .133);--green-4: color(display-p3 .115 .229 .166);--green-5: color(display-p3 .147 .282 .206);--green-6: color(display-p3 .185 .338 .25);--green-7: color(display-p3 .227 .403 .298);--green-8: color(display-p3 .27 .479 .351);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .357 .682 .474);--green-11: color(display-p3 .434 .828 .573);--green-12: color(display-p3 .747 .938 .807);--green-a1: color(display-p3 0 .992 .298 / .017);--green-a2: color(display-p3 .341 .98 .616 / .043);--green-a3: color(display-p3 .376 .996 .655 / .114);--green-a4: color(display-p3 .341 .996 .635 / .173);--green-a5: color(display-p3 .408 1 .678 / .232);--green-a6: color(display-p3 .475 1 .706 / .29);--green-a7: color(display-p3 .514 1 .706 / .362);--green-a8: color(display-p3 .529 1 .718 / .442);--green-a9: color(display-p3 .502 .996 .682 / .61);--green-a10: color(display-p3 .506 1 .682 / .66);--green-a11: color(display-p3 .434 .828 .573);--green-a12: color(display-p3 .747 .938 .807);--indigo-1: color(display-p3 .068 .074 .118);--indigo-2: color(display-p3 .081 .089 .144);--indigo-3: color(display-p3 .105 .141 .275);--indigo-4: color(display-p3 .129 .18 .369);--indigo-5: color(display-p3 .163 .22 .439);--indigo-6: color(display-p3 .203 .262 .5);--indigo-7: color(display-p3 .245 .309 .575);--indigo-8: color(display-p3 .285 .362 .674);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .354 .445 .866);--indigo-11: color(display-p3 .63 .69 1);--indigo-12: color(display-p3 .848 .881 .99);--indigo-a1: color(display-p3 .071 .212 .996 / .055);--indigo-a2: color(display-p3 .251 .345 .988 / .085);--indigo-a3: color(display-p3 .243 .404 1 / .223);--indigo-a4: color(display-p3 .263 .42 1 / .324);--indigo-a5: color(display-p3 .314 .451 1 / .4);--indigo-a6: color(display-p3 .361 .49 1 / .467);--indigo-a7: color(display-p3 .388 .51 1 / .547);--indigo-a8: color(display-p3 .404 .518 1 / .652);--indigo-a9: color(display-p3 .318 .451 1 / .824);--indigo-a10: color(display-p3 .404 .506 1 / .858);--indigo-a11: color(display-p3 .63 .69 1);--indigo-a12: color(display-p3 .848 .881 .99);--iris-1: color(display-p3 .075 .075 .114);--iris-2: color(display-p3 .089 .086 .14);--iris-3: color(display-p3 .128 .134 .272);--iris-4: color(display-p3 .153 .165 .382);--iris-5: color(display-p3 .192 .201 .44);--iris-6: color(display-p3 .239 .241 .491);--iris-7: color(display-p3 .291 .289 .565);--iris-8: color(display-p3 .35 .345 .673);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .428 .416 .843);--iris-11: color(display-p3 .685 .662 1);--iris-12: color(display-p3 .878 .875 .986);--iris-a1: color(display-p3 .224 .224 .992 / .051);--iris-a2: color(display-p3 .361 .314 1 / .08);--iris-a3: color(display-p3 .357 .373 1 / .219);--iris-a4: color(display-p3 .325 .361 1 / .337);--iris-a5: color(display-p3 .38 .4 1 / .4);--iris-a6: color(display-p3 .447 .447 1 / .454);--iris-a7: color(display-p3 .486 .486 1 / .534);--iris-a8: color(display-p3 .502 .494 1 / .652);--iris-a9: color(display-p3 .431 .431 1 / .799);--iris-a10: color(display-p3 .502 .486 1 / .832);--iris-a11: color(display-p3 .685 .662 1);--iris-a12: color(display-p3 .878 .875 .986);--jade-1: color(display-p3 .059 .083 .071);--jade-2: color(display-p3 .078 .11 .094);--jade-3: color(display-p3 .091 .176 .138);--jade-4: color(display-p3 .102 .228 .177);--jade-5: color(display-p3 .133 .279 .221);--jade-6: color(display-p3 .174 .334 .273);--jade-7: color(display-p3 .219 .402 .335);--jade-8: color(display-p3 .263 .488 .411);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .338 .68 .555);--jade-11: color(display-p3 .4 .835 .656);--jade-12: color(display-p3 .734 .934 .838);--jade-a1: color(display-p3 0 .992 .298 / .017);--jade-a2: color(display-p3 .318 .988 .651 / .047);--jade-a3: color(display-p3 .267 1 .667 / .118);--jade-a4: color(display-p3 .275 .996 .702 / .173);--jade-a5: color(display-p3 .361 1 .741 / .227);--jade-a6: color(display-p3 .439 1 .796 / .286);--jade-a7: color(display-p3 .49 1 .804 / .362);--jade-a8: color(display-p3 .506 1 .835 / .45);--jade-a9: color(display-p3 .478 .996 .816 / .606);--jade-a10: color(display-p3 .478 1 .816 / .656);--jade-a11: color(display-p3 .4 .835 .656);--jade-a12: color(display-p3 .734 .934 .838);--lime-1: color(display-p3 .067 .073 .048);--lime-2: color(display-p3 .086 .1 .067);--lime-3: color(display-p3 .13 .16 .099);--lime-4: color(display-p3 .172 .214 .126);--lime-5: color(display-p3 .213 .266 .153);--lime-6: color(display-p3 .257 .321 .182);--lime-7: color(display-p3 .307 .383 .215);--lime-8: color(display-p3 .365 .456 .25);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .865 .995 .519);--lime-11: color(display-p3 .771 .893 .485);--lime-12: color(display-p3 .905 .966 .753);--lime-a1: color(display-p3 .067 .941 0 / .009);--lime-a2: color(display-p3 .584 .996 .071 / .038);--lime-a3: color(display-p3 .69 1 .38 / .101);--lime-a4: color(display-p3 .729 1 .435 / .16);--lime-a5: color(display-p3 .745 1 .471 / .215);--lime-a6: color(display-p3 .769 1 .482 / .274);--lime-a7: color(display-p3 .769 1 .506 / .341);--lime-a8: color(display-p3 .784 1 .51 / .416);--lime-a9: color(display-p3 .839 1 .502 / .925);--lime-a10: color(display-p3 .871 1 .522 / .996);--lime-a11: color(display-p3 .771 .893 .485);--lime-a12: color(display-p3 .905 .966 .753);--mint-1: color(display-p3 .059 .082 .081);--mint-2: color(display-p3 .068 .104 .105);--mint-3: color(display-p3 .077 .17 .168);--mint-4: color(display-p3 .068 .224 .22);--mint-5: color(display-p3 .104 .275 .264);--mint-6: color(display-p3 .154 .332 .313);--mint-7: color(display-p3 .207 .403 .373);--mint-8: color(display-p3 .258 .49 .441);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .725 .954 .898);--mint-11: color(display-p3 .482 .825 .733);--mint-12: color(display-p3 .807 .955 .887);--mint-a1: color(display-p3 0 .992 .992 / .017);--mint-a2: color(display-p3 .071 .98 .98 / .043);--mint-a3: color(display-p3 .176 .996 .996 / .11);--mint-a4: color(display-p3 .071 .996 .973 / .169);--mint-a5: color(display-p3 .243 1 .949 / .223);--mint-a6: color(display-p3 .369 1 .933 / .286);--mint-a7: color(display-p3 .459 1 .914 / .362);--mint-a8: color(display-p3 .49 1 .89 / .454);--mint-a9: color(display-p3 .678 .996 .914 / .904);--mint-a10: color(display-p3 .761 1 .941 / .95);--mint-a11: color(display-p3 .482 .825 .733);--mint-a12: color(display-p3 .807 .955 .887);--orange-1: color(display-p3 .088 .07 .057);--orange-2: color(display-p3 .113 .089 .061);--orange-3: color(display-p3 .189 .12 .056);--orange-4: color(display-p3 .262 .132 0);--orange-5: color(display-p3 .315 .168 .016);--orange-6: color(display-p3 .376 .219 .088);--orange-7: color(display-p3 .465 .283 .147);--orange-8: color(display-p3 .601 .359 .201);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .98 .51 .23);--orange-11: color(display-p3 1 .63 .38);--orange-12: color(display-p3 .98 .883 .775);--orange-a1: color(display-p3 .961 .247 0 / .022);--orange-a2: color(display-p3 .992 .529 0 / .051);--orange-a3: color(display-p3 .996 .486 0 / .131);--orange-a4: color(display-p3 .996 .384 0 / .211);--orange-a5: color(display-p3 1 .455 0 / .265);--orange-a6: color(display-p3 1 .529 .129 / .332);--orange-a7: color(display-p3 1 .569 .251 / .429);--orange-a8: color(display-p3 1 .584 .302 / .572);--orange-a9: color(display-p3 1 .494 .216 / .895);--orange-a10: color(display-p3 1 .522 .235 / .979);--orange-a11: color(display-p3 1 .63 .38);--orange-a12: color(display-p3 .98 .883 .775);--pink-1: color(display-p3 .093 .068 .089);--pink-2: color(display-p3 .121 .073 .11);--pink-3: color(display-p3 .198 .098 .179);--pink-4: color(display-p3 .271 .095 .231);--pink-5: color(display-p3 .32 .127 .273);--pink-6: color(display-p3 .382 .177 .326);--pink-7: color(display-p3 .477 .238 .405);--pink-8: color(display-p3 .612 .304 .51);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .808 .356 .645);--pink-11: color(display-p3 1 .535 .78);--pink-12: color(display-p3 .964 .826 .912);--pink-a1: color(display-p3 .984 .071 .855 / .03);--pink-a2: color(display-p3 1 .2 .8 / .059);--pink-a3: color(display-p3 1 .294 .886 / .139);--pink-a4: color(display-p3 1 .192 .82 / .219);--pink-a5: color(display-p3 1 .282 .827 / .274);--pink-a6: color(display-p3 1 .396 .835 / .337);--pink-a7: color(display-p3 1 .459 .831 / .442);--pink-a8: color(display-p3 1 .478 .827 / .585);--pink-a9: color(display-p3 1 .373 .784 / .761);--pink-a10: color(display-p3 1 .435 .792 / .795);--pink-a11: color(display-p3 1 .535 .78);--pink-a12: color(display-p3 .964 .826 .912);--plum-1: color(display-p3 .09 .068 .092);--plum-2: color(display-p3 .118 .077 .121);--plum-3: color(display-p3 .192 .105 .202);--plum-4: color(display-p3 .25 .121 .271);--plum-5: color(display-p3 .293 .152 .319);--plum-6: color(display-p3 .343 .198 .372);--plum-7: color(display-p3 .424 .262 .461);--plum-8: color(display-p3 .54 .341 .595);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .666 .365 .748);--plum-11: color(display-p3 .86 .602 .933);--plum-12: color(display-p3 .936 .836 .949);--plum-a1: color(display-p3 .973 .071 .973 / .026);--plum-a2: color(display-p3 .933 .267 1 / .059);--plum-a3: color(display-p3 .918 .333 .996 / .148);--plum-a4: color(display-p3 .91 .318 1 / .219);--plum-a5: color(display-p3 .914 .388 1 / .269);--plum-a6: color(display-p3 .906 .463 1 / .328);--plum-a7: color(display-p3 .906 .529 1 / .425);--plum-a8: color(display-p3 .906 .553 1 / .568);--plum-a9: color(display-p3 .875 .427 1 / .69);--plum-a10: color(display-p3 .886 .471 .996 / .732);--plum-a11: color(display-p3 .86 .602 .933);--plum-a12: color(display-p3 .936 .836 .949);--purple-1: color(display-p3 .09 .068 .103);--purple-2: color(display-p3 .113 .082 .134);--purple-3: color(display-p3 .175 .112 .224);--purple-4: color(display-p3 .224 .137 .297);--purple-5: color(display-p3 .264 .167 .349);--purple-6: color(display-p3 .311 .208 .406);--purple-7: color(display-p3 .381 .266 .496);--purple-8: color(display-p3 .49 .349 .649);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .57 .373 .791);--purple-11: color(display-p3 .8 .62 1);--purple-12: color(display-p3 .913 .854 .971);--purple-a1: color(display-p3 .686 .071 .996 / .038);--purple-a2: color(display-p3 .722 .286 .996 / .072);--purple-a3: color(display-p3 .718 .349 .996 / .169);--purple-a4: color(display-p3 .702 .353 1 / .248);--purple-a5: color(display-p3 .718 .404 1 / .303);--purple-a6: color(display-p3 .733 .455 1 / .366);--purple-a7: color(display-p3 .753 .506 1 / .458);--purple-a8: color(display-p3 .749 .522 1 / .622);--purple-a9: color(display-p3 .686 .408 1 / .736);--purple-a10: color(display-p3 .71 .459 1 / .778);--purple-a11: color(display-p3 .8 .62 1);--purple-a12: color(display-p3 .913 .854 .971);--red-1: color(display-p3 .093 .068 .067);--red-2: color(display-p3 .118 .077 .079);--red-3: color(display-p3 .211 .081 .099);--red-4: color(display-p3 .287 .079 .113);--red-5: color(display-p3 .348 .11 .142);--red-6: color(display-p3 .414 .16 .183);--red-7: color(display-p3 .508 .224 .236);--red-8: color(display-p3 .659 .298 .297);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .861 .403 .387);--red-11: color(display-p3 1 .57 .55);--red-12: color(display-p3 .971 .826 .852);--red-a1: color(display-p3 .984 .071 .071 / .03);--red-a2: color(display-p3 .996 .282 .282 / .055);--red-a3: color(display-p3 1 .169 .271 / .156);--red-a4: color(display-p3 1 .118 .267 / .236);--red-a5: color(display-p3 1 .212 .314 / .303);--red-a6: color(display-p3 1 .318 .38 / .374);--red-a7: color(display-p3 1 .4 .424 / .475);--red-a8: color(display-p3 1 .431 .431 / .635);--red-a9: color(display-p3 1 .388 .384 / .82);--red-a10: color(display-p3 1 .463 .447 / .853);--red-a11: color(display-p3 1 .57 .55);--red-a12: color(display-p3 .971 .826 .852);--ruby-1: color(display-p3 .093 .068 .074);--ruby-2: color(display-p3 .113 .083 .089);--ruby-3: color(display-p3 .208 .088 .117);--ruby-4: color(display-p3 .279 .092 .147);--ruby-5: color(display-p3 .337 .12 .18);--ruby-6: color(display-p3 .401 .166 .223);--ruby-7: color(display-p3 .495 .224 .281);--ruby-8: color(display-p3 .652 .295 .359);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .857 .392 .455);--ruby-11: color(display-p3 1 .57 .59);--ruby-12: color(display-p3 .968 .83 .88);--ruby-a1: color(display-p3 .984 .071 .329 / .03);--ruby-a2: color(display-p3 .992 .376 .529 / .051);--ruby-a3: color(display-p3 .996 .196 .404 / .152);--ruby-a4: color(display-p3 1 .173 .416 / .227);--ruby-a5: color(display-p3 1 .259 .459 / .29);--ruby-a6: color(display-p3 1 .341 .506 / .358);--ruby-a7: color(display-p3 1 .412 .541 / .458);--ruby-a8: color(display-p3 1 .431 .537 / .627);--ruby-a9: color(display-p3 1 .376 .482 / .82);--ruby-a10: color(display-p3 1 .447 .522 / .849);--ruby-a11: color(display-p3 1 .57 .59);--ruby-a12: color(display-p3 .968 .83 .88);--sky-1: color(display-p3 .056 .078 .116);--sky-2: color(display-p3 .075 .101 .149);--sky-3: color(display-p3 .089 .154 .244);--sky-4: color(display-p3 .106 .207 .323);--sky-5: color(display-p3 .135 .261 .394);--sky-6: color(display-p3 .17 .322 .469);--sky-7: color(display-p3 .205 .394 .557);--sky-8: color(display-p3 .232 .48 .665);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .718 .925 .991);--sky-11: color(display-p3 .536 .772 .924);--sky-12: color(display-p3 .799 .947 .993);--sky-a1: color(display-p3 0 .282 .996 / .055);--sky-a2: color(display-p3 .157 .467 .992 / .089);--sky-a3: color(display-p3 .192 .522 .996 / .19);--sky-a4: color(display-p3 .212 .584 1 / .274);--sky-a5: color(display-p3 .259 .631 1 / .349);--sky-a6: color(display-p3 .302 .655 1 / .433);--sky-a7: color(display-p3 .329 .686 1 / .526);--sky-a8: color(display-p3 .325 .71 1 / .643);--sky-a9: color(display-p3 .592 .894 1 / .984);--sky-a10: color(display-p3 .722 .933 1 / .992);--sky-a11: color(display-p3 .536 .772 .924);--sky-a12: color(display-p3 .799 .947 .993);--teal-1: color(display-p3 .059 .083 .079);--teal-2: color(display-p3 .075 .11 .107);--teal-3: color(display-p3 .087 .175 .165);--teal-4: color(display-p3 .087 .227 .214);--teal-5: color(display-p3 .12 .277 .261);--teal-6: color(display-p3 .162 .335 .314);--teal-7: color(display-p3 .205 .406 .379);--teal-8: color(display-p3 .245 .489 .453);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .319 .69 .62);--teal-11: color(display-p3 .388 .835 .719);--teal-12: color(display-p3 .734 .934 .87);--teal-a1: color(display-p3 0 .992 .761 / .017);--teal-a2: color(display-p3 .235 .988 .902 / .047);--teal-a3: color(display-p3 .235 1 .898 / .118);--teal-a4: color(display-p3 .18 .996 .929 / .173);--teal-a5: color(display-p3 .31 1 .933 / .227);--teal-a6: color(display-p3 .396 1 .933 / .286);--teal-a7: color(display-p3 .443 1 .925 / .366);--teal-a8: color(display-p3 .459 1 .925 / .454);--teal-a9: color(display-p3 .443 .996 .906 / .61);--teal-a10: color(display-p3 .439 .996 .89 / .669);--teal-a11: color(display-p3 .388 .835 .719);--teal-a12: color(display-p3 .734 .934 .87);--tomato-1: color(display-p3 .09 .068 .067);--tomato-2: color(display-p3 .115 .084 .076);--tomato-3: color(display-p3 .205 .097 .083);--tomato-4: color(display-p3 .282 .099 .077);--tomato-5: color(display-p3 .339 .129 .101);--tomato-6: color(display-p3 .398 .179 .141);--tomato-7: color(display-p3 .487 .245 .194);--tomato-8: color(display-p3 .629 .322 .248);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .862 .415 .298);--tomato-11: color(display-p3 1 .585 .455);--tomato-12: color(display-p3 .959 .833 .802);--tomato-a1: color(display-p3 .973 .071 .071 / .026);--tomato-a2: color(display-p3 .992 .376 .224 / .051);--tomato-a3: color(display-p3 .996 .282 .176 / .148);--tomato-a4: color(display-p3 1 .204 .118 / .232);--tomato-a5: color(display-p3 1 .286 .192 / .29);--tomato-a6: color(display-p3 1 .392 .278 / .353);--tomato-a7: color(display-p3 1 .459 .349 / .45);--tomato-a8: color(display-p3 1 .49 .369 / .601);--tomato-a9: color(display-p3 1 .408 .267 / .82);--tomato-a10: color(display-p3 1 .478 .341 / .853);--tomato-a11: color(display-p3 1 .585 .455);--tomato-a12: color(display-p3 .959 .833 .802);--violet-1: color(display-p3 .077 .071 .118);--violet-2: color(display-p3 .101 .084 .141);--violet-3: color(display-p3 .154 .123 .256);--violet-4: color(display-p3 .191 .148 .345);--violet-5: color(display-p3 .226 .182 .396);--violet-6: color(display-p3 .269 .223 .449);--violet-7: color(display-p3 .326 .277 .53);--violet-8: color(display-p3 .399 .346 .656);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .477 .402 .823);--violet-11: color(display-p3 .72 .65 1);--violet-12: color(display-p3 .883 .867 .986);--violet-a1: color(display-p3 .282 .141 .996 / .055);--violet-a2: color(display-p3 .51 .263 1 / .08);--violet-a3: color(display-p3 .494 .337 .996 / .202);--violet-a4: color(display-p3 .49 .345 1 / .299);--violet-a5: color(display-p3 .525 .392 1 / .353);--violet-a6: color(display-p3 .569 .455 1 / .408);--violet-a7: color(display-p3 .588 .494 1 / .496);--violet-a8: color(display-p3 .596 .51 1 / .631);--violet-a9: color(display-p3 .522 .424 1 / .769);--violet-a10: color(display-p3 .576 .482 1 / .811);--violet-a11: color(display-p3 .72 .65 1);--violet-a12: color(display-p3 .883 .867 .986);--yellow-1: color(display-p3 .078 .069 .047);--yellow-2: color(display-p3 .103 .094 .063);--yellow-3: color(display-p3 .168 .137 .039);--yellow-4: color(display-p3 .209 .169 0);--yellow-5: color(display-p3 .255 .209 0);--yellow-6: color(display-p3 .31 .261 .07);--yellow-7: color(display-p3 .389 .331 .135);--yellow-8: color(display-p3 .497 .42 .182);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 1 1 .456);--yellow-11: color(display-p3 .948 .885 .392);--yellow-12: color(display-p3 .959 .934 .731);--yellow-a1: color(display-p3 .973 .369 0 / .013);--yellow-a2: color(display-p3 .996 .792 0 / .038);--yellow-a3: color(display-p3 .996 .71 0 / .11);--yellow-a4: color(display-p3 .996 .741 0 / .152);--yellow-a5: color(display-p3 .996 .765 0 / .202);--yellow-a6: color(display-p3 .996 .816 .082 / .261);--yellow-a7: color(display-p3 1 .831 .263 / .345);--yellow-a8: color(display-p3 1 .831 .314 / .463);--yellow-a9: color(display-p3 1 .922 .22);--yellow-a10: color(display-p3 1 1 .455);--yellow-a11: color(display-p3 .948 .885 .392);--yellow-a12: color(display-p3 .959 .934 .731);--gray-surface: color(display-p3 .1255 .1255 .1255 / .5);--mauve-surface: color(display-p3 .1333 .1255 .1333 / .5);--slate-surface: color(display-p3 .1176 .1255 .1333 / .5);--sage-surface: color(display-p3 .1176 .1255 .1176 / .5);--olive-surface: color(display-p3 .1176 .1255 .1176 / .5);--sand-surface: color(display-p3 .1255 .1255 .1255 / .5);--amber-surface: color(display-p3 .1412 .1176 .0784 / .5);--blue-surface: color(display-p3 .0706 .1255 .2196 / .5);--bronze-surface: color(display-p3 .1412 .1255 .1176 / .5);--brown-surface: color(display-p3 .1412 .1176 .102 / .5);--crimson-surface: color(display-p3 .1647 .0863 .1176 / .5);--cyan-surface: color(display-p3 .0784 .1412 .1725 / .5);--gold-surface: color(display-p3 .1412 .1333 .1098 / .5);--grass-surface: color(display-p3 .102 .1333 .102 / .5);--green-surface: color(display-p3 .0941 .1412 .1098 / .5);--indigo-surface: color(display-p3 .0941 .1098 .2196 / .5);--iris-surface: color(display-p3 .1098 .102 .2118 / .5);--jade-surface: color(display-p3 .0863 .149 .1176 / .5);--lime-surface: color(display-p3 .1098 .1255 .0784 / .5);--mint-surface: color(display-p3 .0941 .149 .1412 / .5);--orange-surface: color(display-p3 .1412 .1098 .0706 / .5);--pink-surface: color(display-p3 .1725 .0784 .149 / .5);--plum-surface: color(display-p3 .1647 .0863 .1725 / .5);--purple-surface: color(display-p3 .149 .0941 .1961 / .5);--red-surface: color(display-p3 .1647 .0863 .0863 / .5);--ruby-surface: color(display-p3 .1569 .0941 .1098 / .5);--sky-surface: color(display-p3 .0863 .1333 .2196 / .5);--teal-surface: color(display-p3 .0863 .149 .1412 / .5);--tomato-surface: color(display-p3 .1569 .0941 .0784 / .5);--violet-surface: color(display-p3 .1333 .102 .2118 / .5);--yellow-surface: color(display-p3 .1333 .1176 .0706 / .5)}}}:root{--gray-contrast: white;--mauve-contrast: white;--slate-contrast: white;--sage-contrast: white;--olive-contrast: white;--sand-contrast: white;--amber-contrast: #21201c;--blue-contrast: white;--bronze-contrast: white;--brown-contrast: white;--crimson-contrast: white;--cyan-contrast: white;--gold-contrast: white;--grass-contrast: white;--green-contrast: white;--indigo-contrast: white;--iris-contrast: white;--jade-contrast: white;--lime-contrast: #1d211c;--mint-contrast: #1a211e;--orange-contrast: white;--pink-contrast: white;--plum-contrast: white;--purple-contrast: white;--red-contrast: white;--ruby-contrast: white;--sky-contrast: #1c2024;--teal-contrast: white;--tomato-contrast: white;--violet-contrast: white;--yellow-contrast: #21201c;--black-a1: rgba(0, 0, 0, .05);--black-a2: rgba(0, 0, 0, .1);--black-a3: rgba(0, 0, 0, .15);--black-a4: rgba(0, 0, 0, .2);--black-a5: rgba(0, 0, 0, .3);--black-a6: rgba(0, 0, 0, .4);--black-a7: rgba(0, 0, 0, .5);--black-a8: rgba(0, 0, 0, .6);--black-a9: rgba(0, 0, 0, .7);--black-a10: rgba(0, 0, 0, .8);--black-a11: rgba(0, 0, 0, .9);--black-a12: rgba(0, 0, 0, .95);--white-a1: rgba(255, 255, 255, .05);--white-a2: rgba(255, 255, 255, .1);--white-a3: rgba(255, 255, 255, .15);--white-a4: rgba(255, 255, 255, .2);--white-a5: rgba(255, 255, 255, .3);--white-a6: rgba(255, 255, 255, .4);--white-a7: rgba(255, 255, 255, .5);--white-a8: rgba(255, 255, 255, .6);--white-a9: rgba(255, 255, 255, .7);--white-a10: rgba(255, 255, 255, .8);--white-a11: rgba(255, 255, 255, .9);--white-a12: rgba(255, 255, 255, .95)}@supports (color: color-mix(in oklab,white,black)){.dark,.dark-theme{--amber-track: color-mix(in oklab, var(--amber-8), var(--amber-9) 75%);--lime-track: color-mix(in oklab, var(--lime-8), var(--lime-9) 65%);--mint-track: color-mix(in oklab, var(--mint-8), var(--mint-9) 65%);--sky-track: color-mix(in oklab, var(--sky-8), var(--sky-9) 65%);--yellow-track: color-mix(in oklab, var(--yellow-8), var(--yellow-9) 65%)}}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root{--black-a1: color(display-p3 0 0 0 / .05);--black-a2: color(display-p3 0 0 0 / .1);--black-a3: color(display-p3 0 0 0 / .15);--black-a4: color(display-p3 0 0 0 / .2);--black-a5: color(display-p3 0 0 0 / .3);--black-a6: color(display-p3 0 0 0 / .4);--black-a7: color(display-p3 0 0 0 / .5);--black-a8: color(display-p3 0 0 0 / .6);--black-a9: color(display-p3 0 0 0 / .7);--black-a10: color(display-p3 0 0 0 / .8);--black-a11: color(display-p3 0 0 0 / .9);--black-a12: color(display-p3 0 0 0 / .95);--white-a1: color(display-p3 1 1 1 / .05);--white-a2: color(display-p3 1 1 1 / .1);--white-a3: color(display-p3 1 1 1 / .15);--white-a4: color(display-p3 1 1 1 / .2);--white-a5: color(display-p3 1 1 1 / .3);--white-a6: color(display-p3 1 1 1 / .4);--white-a7: color(display-p3 1 1 1 / .5);--white-a8: color(display-p3 1 1 1 / .6);--white-a9: color(display-p3 1 1 1 / .7);--white-a10: color(display-p3 1 1 1 / .8);--white-a11: color(display-p3 1 1 1 / .9);--white-a12: color(display-p3 1 1 1 / .95)}}}:where(.radix-themes){--color-background: white;--color-overlay: var(--black-a6);--color-panel-solid: white;--color-panel-translucent: rgba(255, 255, 255, .7);--color-surface: rgba(255, 255, 255, .85);--color-transparent: rgb(0 0 0 / 0);--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px var(--gray-a3), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px var(--gray-a3), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px var(--gray-a3), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-button-classic-after-inset: 2px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--gray-a4), inset 0 -2px 1px var(--gray-a3);--base-button-classic-box-shadow-bottom: inset 0 4px 2px -2px var(--white-a9), inset 0 2px 1px -1px var(--white-a9);--base-button-classic-disabled-box-shadow: var(--base-button-classic-box-shadow-top), var(--base-button-classic-box-shadow-bottom);--base-button-classic-active-filter: brightness(.92) saturate(1.1);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-classic-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--base-button-solid-active-filter: brightness(.92) saturate(1.1);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-solid-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a2), inset 0 .05em var(--white-a12), inset 0 .25em .5em var(--gray-a2), inset 0 -.05em var(--gray-a6), 0 0 0 .05em var(--gray-a5), 0 .08em .17em var(--gray-a7);--progress-indicator-after-linear-gradient: var(--white-a5), var(--white-a9), var(--white-a5);--segmented-control-indicator-background-color: var(--color-background);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 2px 1px var(--white-a11), inset 0 -2px 1px var(--gray-a4) ;--slider-range-high-contrast-background-image: linear-gradient(var(--black-a8), var(--black-a8));--slider-disabled-blend-mode: multiply;--switch-disabled-blend-mode: multiply;--switch-high-contrast-checked-color-overlay: var(--black-a8);--switch-high-contrast-checked-active-before-filter: contrast(.82) saturate(1.2) brightness(1.16);--switch-surface-checked-active-filter: brightness(.92) saturate(1.1);--base-card-surface-box-shadow: 0 0 0 1px var(--gray-a5);--base-card-surface-hover-box-shadow: 0 0 0 1px var(--gray-a7);--base-card-surface-active-box-shadow: 0 0 0 1px var(--gray-a6);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a2), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 1px 1px 1px var(--black-a1), 0 2px 1px -1px var(--gray-a3), 0 2px 3px -2px var(--black-a1), 0 3px 12px -4px var(--gray-a3), 0 4px 16px -8px var(--black-a1);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 1px 1px 0 var(--black-a1), 0 2px 1px -2px var(--gray-a3), 0 2px 3px -3px var(--black-a1), 0 3px 12px -5px var(--gray-a3), 0 4px 16px -9px var(--black-a1);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a4), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a4), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-border-color: var(--gray-a3);--base-card-classic-hover-border-color: var(--gray-a3);--base-card-classic-active-border-color: var(--gray-a4)}:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--color-background: var(--gray-1);--color-overlay: var(--black-a8);--color-panel-solid: var(--gray-2);--color-panel-translucent: var(--gray-a2);--color-surface: rgba(0, 0, 0, .25);--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px var(--gray-a6), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px var(--gray-a6), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px var(--gray-a6), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-button-classic-after-inset: 1px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--white-a2), inset 0 4px 2px -2px var(--white-a3), inset 0 1px 1px var(--white-a6), inset 0 -1px 1px var(--black-a6);--base-button-classic-box-shadow-bottom: 0 0 transparent;--base-button-classic-disabled-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 4px 2px -2px var(--gray-a2), inset 0 1px 1px var(--gray-a5), inset 0 -1px 1px var(--black-a3), inset 0 0 0 1px var(--gray-a2);--base-button-classic-active-filter: brightness(1.08);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.14);--base-button-classic-high-contrast-active-filter: brightness(.95) saturate(1.2);--base-button-solid-active-filter: brightness(1.08);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.18);--base-button-solid-high-contrast-active-filter: brightness(.95) saturate(1.2);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a3), inset 0 .05em var(--gray-a11), inset 0 .25em .5em var(--gray-a2), inset 0 -.1em var(--black-a11), 0 0 0 .075em var(--gray-a7), 0 .08em .17em var(--black-a12);--progress-indicator-after-linear-gradient: var(--white-a3), var(--white-a6), var(--white-a3);--segmented-control-indicator-background-color: var(--gray-a3);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--white-a4), inset 0 1px 1px var(--white-a4), inset 0 -1px 1px var(--black-a9) ;--slider-range-high-contrast-background-image: none;--slider-disabled-blend-mode: screen;--switch-disabled-blend-mode: screen;--switch-high-contrast-checked-color-overlay: transparent;--switch-high-contrast-checked-active-before-filter: brightness(1.08);--switch-surface-checked-active-filter: brightness(1.08);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 0 1px 1px var(--gray-a4), 0 0 1px -1px var(--gray-a4), 0 0 3px -2px var(--gray-a3), 0 0 12px -2px var(--gray-a3), 0 0 16px -8px var(--gray-a7);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 0 1px 0 var(--gray-a4), 0 0 1px -2px var(--gray-a4), 0 0 3px -3px var(--gray-a3), 0 0 12px -3px var(--gray-a3), 0 0 16px -9px var(--gray-a7);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-border-color: var(--gray-a6);--base-card-classic-hover-border-color: var(--gray-a6);--base-card-classic-active-border-color: var(--gray-a6)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.radix-themes{--color-transparent: color(display-p3 0 0 0 / 0)}}}.radix-themes:where(.light,.light-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.light,.light-theme))){color-scheme:light}.radix-themes:where(.dark,.dark-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.dark,.dark-theme))){color-scheme:dark}.radix-themes,[data-accent-color]:where(:not([data-accent-color=""],[data-accent-color=gray])){--focus-1: var(--accent-1);--focus-2: var(--accent-2);--focus-3: var(--accent-3);--focus-4: var(--accent-4);--focus-5: var(--accent-5);--focus-6: var(--accent-6);--focus-7: var(--accent-7);--focus-8: var(--accent-8);--focus-9: var(--accent-9);--focus-10: var(--accent-10);--focus-11: var(--accent-11);--focus-12: var(--accent-12);--focus-a1: var(--accent-a1);--focus-a2: var(--accent-a2);--focus-a3: var(--accent-a3);--focus-a4: var(--accent-a4);--focus-a5: var(--accent-a5);--focus-a6: var(--accent-a6);--focus-a7: var(--accent-a7);--focus-a8: var(--accent-a8);--focus-a9: var(--accent-a9);--focus-a10: var(--accent-a10);--focus-a11: var(--accent-a11);--focus-a12: var(--accent-a12)}.radix-themes ::selection{background-color:var(--focus-a5)}.radix-themes:where([data-has-background=true]){background-color:var(--color-background)}.radix-themes:where([data-panel-background=solid]){--color-panel: var(--color-panel-solid);--backdrop-filter-panel: none}.radix-themes:where([data-panel-background=translucent]){--color-panel: var(--color-panel-translucent);--backdrop-filter-panel: blur(64px)}[data-accent-color=amber]{--accent-1: var(--amber-1);--accent-2: var(--amber-2);--accent-3: var(--amber-3);--accent-4: var(--amber-4);--accent-5: var(--amber-5);--accent-6: var(--amber-6);--accent-7: var(--amber-7);--accent-8: var(--amber-8);--accent-9: var(--amber-9);--accent-10: var(--amber-10);--accent-11: var(--amber-11);--accent-12: var(--amber-12);--accent-a1: var(--amber-a1);--accent-a2: var(--amber-a2);--accent-a3: var(--amber-a3);--accent-a4: var(--amber-a4);--accent-a5: var(--amber-a5);--accent-a6: var(--amber-a6);--accent-a7: var(--amber-a7);--accent-a8: var(--amber-a8);--accent-a9: var(--amber-a9);--accent-a10: var(--amber-a10);--accent-a11: var(--amber-a11);--accent-a12: var(--amber-a12);--accent-contrast: var(--amber-contrast);--accent-surface: var(--amber-surface);--accent-indicator: var(--amber-indicator);--accent-track: var(--amber-track)}[data-accent-color=blue]{--accent-1: var(--blue-1);--accent-2: var(--blue-2);--accent-3: var(--blue-3);--accent-4: var(--blue-4);--accent-5: var(--blue-5);--accent-6: var(--blue-6);--accent-7: var(--blue-7);--accent-8: var(--blue-8);--accent-9: var(--blue-9);--accent-10: var(--blue-10);--accent-11: var(--blue-11);--accent-12: var(--blue-12);--accent-a1: var(--blue-a1);--accent-a2: var(--blue-a2);--accent-a3: var(--blue-a3);--accent-a4: var(--blue-a4);--accent-a5: var(--blue-a5);--accent-a6: var(--blue-a6);--accent-a7: var(--blue-a7);--accent-a8: var(--blue-a8);--accent-a9: var(--blue-a9);--accent-a10: var(--blue-a10);--accent-a11: var(--blue-a11);--accent-a12: var(--blue-a12);--accent-contrast: var(--blue-contrast);--accent-surface: var(--blue-surface);--accent-indicator: var(--blue-indicator);--accent-track: var(--blue-track)}[data-accent-color=bronze]{--accent-1: var(--bronze-1);--accent-2: var(--bronze-2);--accent-3: var(--bronze-3);--accent-4: var(--bronze-4);--accent-5: var(--bronze-5);--accent-6: var(--bronze-6);--accent-7: var(--bronze-7);--accent-8: var(--bronze-8);--accent-9: var(--bronze-9);--accent-10: var(--bronze-10);--accent-11: var(--bronze-11);--accent-12: var(--bronze-12);--accent-a1: var(--bronze-a1);--accent-a2: var(--bronze-a2);--accent-a3: var(--bronze-a3);--accent-a4: var(--bronze-a4);--accent-a5: var(--bronze-a5);--accent-a6: var(--bronze-a6);--accent-a7: var(--bronze-a7);--accent-a8: var(--bronze-a8);--accent-a9: var(--bronze-a9);--accent-a10: var(--bronze-a10);--accent-a11: var(--bronze-a11);--accent-a12: var(--bronze-a12);--accent-contrast: var(--bronze-contrast);--accent-surface: var(--bronze-surface);--accent-indicator: var(--bronze-indicator);--accent-track: var(--bronze-track)}[data-accent-color=brown]{--accent-1: var(--brown-1);--accent-2: var(--brown-2);--accent-3: var(--brown-3);--accent-4: var(--brown-4);--accent-5: var(--brown-5);--accent-6: var(--brown-6);--accent-7: var(--brown-7);--accent-8: var(--brown-8);--accent-9: var(--brown-9);--accent-10: var(--brown-10);--accent-11: var(--brown-11);--accent-12: var(--brown-12);--accent-a1: var(--brown-a1);--accent-a2: var(--brown-a2);--accent-a3: var(--brown-a3);--accent-a4: var(--brown-a4);--accent-a5: var(--brown-a5);--accent-a6: var(--brown-a6);--accent-a7: var(--brown-a7);--accent-a8: var(--brown-a8);--accent-a9: var(--brown-a9);--accent-a10: var(--brown-a10);--accent-a11: var(--brown-a11);--accent-a12: var(--brown-a12);--accent-contrast: var(--brown-contrast);--accent-surface: var(--brown-surface);--accent-indicator: var(--brown-indicator);--accent-track: var(--brown-track)}[data-accent-color=crimson]{--accent-1: var(--crimson-1);--accent-2: var(--crimson-2);--accent-3: var(--crimson-3);--accent-4: var(--crimson-4);--accent-5: var(--crimson-5);--accent-6: var(--crimson-6);--accent-7: var(--crimson-7);--accent-8: var(--crimson-8);--accent-9: var(--crimson-9);--accent-10: var(--crimson-10);--accent-11: var(--crimson-11);--accent-12: var(--crimson-12);--accent-a1: var(--crimson-a1);--accent-a2: var(--crimson-a2);--accent-a3: var(--crimson-a3);--accent-a4: var(--crimson-a4);--accent-a5: var(--crimson-a5);--accent-a6: var(--crimson-a6);--accent-a7: var(--crimson-a7);--accent-a8: var(--crimson-a8);--accent-a9: var(--crimson-a9);--accent-a10: var(--crimson-a10);--accent-a11: var(--crimson-a11);--accent-a12: var(--crimson-a12);--accent-contrast: var(--crimson-contrast);--accent-surface: var(--crimson-surface);--accent-indicator: var(--crimson-indicator);--accent-track: var(--crimson-track)}[data-accent-color=cyan]{--accent-1: var(--cyan-1);--accent-2: var(--cyan-2);--accent-3: var(--cyan-3);--accent-4: var(--cyan-4);--accent-5: var(--cyan-5);--accent-6: var(--cyan-6);--accent-7: var(--cyan-7);--accent-8: var(--cyan-8);--accent-9: var(--cyan-9);--accent-10: var(--cyan-10);--accent-11: var(--cyan-11);--accent-12: var(--cyan-12);--accent-a1: var(--cyan-a1);--accent-a2: var(--cyan-a2);--accent-a3: var(--cyan-a3);--accent-a4: var(--cyan-a4);--accent-a5: var(--cyan-a5);--accent-a6: var(--cyan-a6);--accent-a7: var(--cyan-a7);--accent-a8: var(--cyan-a8);--accent-a9: var(--cyan-a9);--accent-a10: var(--cyan-a10);--accent-a11: var(--cyan-a11);--accent-a12: var(--cyan-a12);--accent-contrast: var(--cyan-contrast);--accent-surface: var(--cyan-surface);--accent-indicator: var(--cyan-indicator);--accent-track: var(--cyan-track)}[data-accent-color=gold]{--accent-1: var(--gold-1);--accent-2: var(--gold-2);--accent-3: var(--gold-3);--accent-4: var(--gold-4);--accent-5: var(--gold-5);--accent-6: var(--gold-6);--accent-7: var(--gold-7);--accent-8: var(--gold-8);--accent-9: var(--gold-9);--accent-10: var(--gold-10);--accent-11: var(--gold-11);--accent-12: var(--gold-12);--accent-a1: var(--gold-a1);--accent-a2: var(--gold-a2);--accent-a3: var(--gold-a3);--accent-a4: var(--gold-a4);--accent-a5: var(--gold-a5);--accent-a6: var(--gold-a6);--accent-a7: var(--gold-a7);--accent-a8: var(--gold-a8);--accent-a9: var(--gold-a9);--accent-a10: var(--gold-a10);--accent-a11: var(--gold-a11);--accent-a12: var(--gold-a12);--accent-contrast: var(--gold-contrast);--accent-surface: var(--gold-surface);--accent-indicator: var(--gold-indicator);--accent-track: var(--gold-track)}[data-accent-color=grass]{--accent-1: var(--grass-1);--accent-2: var(--grass-2);--accent-3: var(--grass-3);--accent-4: var(--grass-4);--accent-5: var(--grass-5);--accent-6: var(--grass-6);--accent-7: var(--grass-7);--accent-8: var(--grass-8);--accent-9: var(--grass-9);--accent-10: var(--grass-10);--accent-11: var(--grass-11);--accent-12: var(--grass-12);--accent-a1: var(--grass-a1);--accent-a2: var(--grass-a2);--accent-a3: var(--grass-a3);--accent-a4: var(--grass-a4);--accent-a5: var(--grass-a5);--accent-a6: var(--grass-a6);--accent-a7: var(--grass-a7);--accent-a8: var(--grass-a8);--accent-a9: var(--grass-a9);--accent-a10: var(--grass-a10);--accent-a11: var(--grass-a11);--accent-a12: var(--grass-a12);--accent-contrast: var(--grass-contrast);--accent-surface: var(--grass-surface);--accent-indicator: var(--grass-indicator);--accent-track: var(--grass-track)}[data-accent-color=gray]{--accent-1: var(--gray-1);--accent-2: var(--gray-2);--accent-3: var(--gray-3);--accent-4: var(--gray-4);--accent-5: var(--gray-5);--accent-6: var(--gray-6);--accent-7: var(--gray-7);--accent-8: var(--gray-8);--accent-9: var(--gray-9);--accent-10: var(--gray-10);--accent-11: var(--gray-11);--accent-12: var(--gray-12);--accent-a1: var(--gray-a1);--accent-a2: var(--gray-a2);--accent-a3: var(--gray-a3);--accent-a4: var(--gray-a4);--accent-a5: var(--gray-a5);--accent-a6: var(--gray-a6);--accent-a7: var(--gray-a7);--accent-a8: var(--gray-a8);--accent-a9: var(--gray-a9);--accent-a10: var(--gray-a10);--accent-a11: var(--gray-a11);--accent-a12: var(--gray-a12);--accent-contrast: var(--gray-contrast);--accent-surface: var(--gray-surface);--accent-indicator: var(--gray-indicator);--accent-track: var(--gray-track)}[data-accent-color=green]{--accent-1: var(--green-1);--accent-2: var(--green-2);--accent-3: var(--green-3);--accent-4: var(--green-4);--accent-5: var(--green-5);--accent-6: var(--green-6);--accent-7: var(--green-7);--accent-8: var(--green-8);--accent-9: var(--green-9);--accent-10: var(--green-10);--accent-11: var(--green-11);--accent-12: var(--green-12);--accent-a1: var(--green-a1);--accent-a2: var(--green-a2);--accent-a3: var(--green-a3);--accent-a4: var(--green-a4);--accent-a5: var(--green-a5);--accent-a6: var(--green-a6);--accent-a7: var(--green-a7);--accent-a8: var(--green-a8);--accent-a9: var(--green-a9);--accent-a10: var(--green-a10);--accent-a11: var(--green-a11);--accent-a12: var(--green-a12);--accent-contrast: var(--green-contrast);--accent-surface: var(--green-surface);--accent-indicator: var(--green-indicator);--accent-track: var(--green-track)}[data-accent-color=indigo]{--accent-1: var(--indigo-1);--accent-2: var(--indigo-2);--accent-3: var(--indigo-3);--accent-4: var(--indigo-4);--accent-5: var(--indigo-5);--accent-6: var(--indigo-6);--accent-7: var(--indigo-7);--accent-8: var(--indigo-8);--accent-9: var(--indigo-9);--accent-10: var(--indigo-10);--accent-11: var(--indigo-11);--accent-12: var(--indigo-12);--accent-a1: var(--indigo-a1);--accent-a2: var(--indigo-a2);--accent-a3: var(--indigo-a3);--accent-a4: var(--indigo-a4);--accent-a5: var(--indigo-a5);--accent-a6: var(--indigo-a6);--accent-a7: var(--indigo-a7);--accent-a8: var(--indigo-a8);--accent-a9: var(--indigo-a9);--accent-a10: var(--indigo-a10);--accent-a11: var(--indigo-a11);--accent-a12: var(--indigo-a12);--accent-contrast: var(--indigo-contrast);--accent-surface: var(--indigo-surface);--accent-indicator: var(--indigo-indicator);--accent-track: var(--indigo-track)}[data-accent-color=iris]{--accent-1: var(--iris-1);--accent-2: var(--iris-2);--accent-3: var(--iris-3);--accent-4: var(--iris-4);--accent-5: var(--iris-5);--accent-6: var(--iris-6);--accent-7: var(--iris-7);--accent-8: var(--iris-8);--accent-9: var(--iris-9);--accent-10: var(--iris-10);--accent-11: var(--iris-11);--accent-12: var(--iris-12);--accent-a1: var(--iris-a1);--accent-a2: var(--iris-a2);--accent-a3: var(--iris-a3);--accent-a4: var(--iris-a4);--accent-a5: var(--iris-a5);--accent-a6: var(--iris-a6);--accent-a7: var(--iris-a7);--accent-a8: var(--iris-a8);--accent-a9: var(--iris-a9);--accent-a10: var(--iris-a10);--accent-a11: var(--iris-a11);--accent-a12: var(--iris-a12);--accent-contrast: var(--iris-contrast);--accent-surface: var(--iris-surface);--accent-indicator: var(--iris-indicator);--accent-track: var(--iris-track)}[data-accent-color=jade]{--accent-1: var(--jade-1);--accent-2: var(--jade-2);--accent-3: var(--jade-3);--accent-4: var(--jade-4);--accent-5: var(--jade-5);--accent-6: var(--jade-6);--accent-7: var(--jade-7);--accent-8: var(--jade-8);--accent-9: var(--jade-9);--accent-10: var(--jade-10);--accent-11: var(--jade-11);--accent-12: var(--jade-12);--accent-a1: var(--jade-a1);--accent-a2: var(--jade-a2);--accent-a3: var(--jade-a3);--accent-a4: var(--jade-a4);--accent-a5: var(--jade-a5);--accent-a6: var(--jade-a6);--accent-a7: var(--jade-a7);--accent-a8: var(--jade-a8);--accent-a9: var(--jade-a9);--accent-a10: var(--jade-a10);--accent-a11: var(--jade-a11);--accent-a12: var(--jade-a12);--accent-contrast: var(--jade-contrast);--accent-surface: var(--jade-surface);--accent-indicator: var(--jade-indicator);--accent-track: var(--jade-track)}[data-accent-color=lime]{--accent-1: var(--lime-1);--accent-2: var(--lime-2);--accent-3: var(--lime-3);--accent-4: var(--lime-4);--accent-5: var(--lime-5);--accent-6: var(--lime-6);--accent-7: var(--lime-7);--accent-8: var(--lime-8);--accent-9: var(--lime-9);--accent-10: var(--lime-10);--accent-11: var(--lime-11);--accent-12: var(--lime-12);--accent-a1: var(--lime-a1);--accent-a2: var(--lime-a2);--accent-a3: var(--lime-a3);--accent-a4: var(--lime-a4);--accent-a5: var(--lime-a5);--accent-a6: var(--lime-a6);--accent-a7: var(--lime-a7);--accent-a8: var(--lime-a8);--accent-a9: var(--lime-a9);--accent-a10: var(--lime-a10);--accent-a11: var(--lime-a11);--accent-a12: var(--lime-a12);--accent-contrast: var(--lime-contrast);--accent-surface: var(--lime-surface);--accent-indicator: var(--lime-indicator);--accent-track: var(--lime-track)}[data-accent-color=mint]{--accent-1: var(--mint-1);--accent-2: var(--mint-2);--accent-3: var(--mint-3);--accent-4: var(--mint-4);--accent-5: var(--mint-5);--accent-6: var(--mint-6);--accent-7: var(--mint-7);--accent-8: var(--mint-8);--accent-9: var(--mint-9);--accent-10: var(--mint-10);--accent-11: var(--mint-11);--accent-12: var(--mint-12);--accent-a1: var(--mint-a1);--accent-a2: var(--mint-a2);--accent-a3: var(--mint-a3);--accent-a4: var(--mint-a4);--accent-a5: var(--mint-a5);--accent-a6: var(--mint-a6);--accent-a7: var(--mint-a7);--accent-a8: var(--mint-a8);--accent-a9: var(--mint-a9);--accent-a10: var(--mint-a10);--accent-a11: var(--mint-a11);--accent-a12: var(--mint-a12);--accent-contrast: var(--mint-contrast);--accent-surface: var(--mint-surface);--accent-indicator: var(--mint-indicator);--accent-track: var(--mint-track)}[data-accent-color=orange]{--accent-1: var(--orange-1);--accent-2: var(--orange-2);--accent-3: var(--orange-3);--accent-4: var(--orange-4);--accent-5: var(--orange-5);--accent-6: var(--orange-6);--accent-7: var(--orange-7);--accent-8: var(--orange-8);--accent-9: var(--orange-9);--accent-10: var(--orange-10);--accent-11: var(--orange-11);--accent-12: var(--orange-12);--accent-a1: var(--orange-a1);--accent-a2: var(--orange-a2);--accent-a3: var(--orange-a3);--accent-a4: var(--orange-a4);--accent-a5: var(--orange-a5);--accent-a6: var(--orange-a6);--accent-a7: var(--orange-a7);--accent-a8: var(--orange-a8);--accent-a9: var(--orange-a9);--accent-a10: var(--orange-a10);--accent-a11: var(--orange-a11);--accent-a12: var(--orange-a12);--accent-contrast: var(--orange-contrast);--accent-surface: var(--orange-surface);--accent-indicator: var(--orange-indicator);--accent-track: var(--orange-track)}[data-accent-color=pink]{--accent-1: var(--pink-1);--accent-2: var(--pink-2);--accent-3: var(--pink-3);--accent-4: var(--pink-4);--accent-5: var(--pink-5);--accent-6: var(--pink-6);--accent-7: var(--pink-7);--accent-8: var(--pink-8);--accent-9: var(--pink-9);--accent-10: var(--pink-10);--accent-11: var(--pink-11);--accent-12: var(--pink-12);--accent-a1: var(--pink-a1);--accent-a2: var(--pink-a2);--accent-a3: var(--pink-a3);--accent-a4: var(--pink-a4);--accent-a5: var(--pink-a5);--accent-a6: var(--pink-a6);--accent-a7: var(--pink-a7);--accent-a8: var(--pink-a8);--accent-a9: var(--pink-a9);--accent-a10: var(--pink-a10);--accent-a11: var(--pink-a11);--accent-a12: var(--pink-a12);--accent-contrast: var(--pink-contrast);--accent-surface: var(--pink-surface);--accent-indicator: var(--pink-indicator);--accent-track: var(--pink-track)}[data-accent-color=plum]{--accent-1: var(--plum-1);--accent-2: var(--plum-2);--accent-3: var(--plum-3);--accent-4: var(--plum-4);--accent-5: var(--plum-5);--accent-6: var(--plum-6);--accent-7: var(--plum-7);--accent-8: var(--plum-8);--accent-9: var(--plum-9);--accent-10: var(--plum-10);--accent-11: var(--plum-11);--accent-12: var(--plum-12);--accent-a1: var(--plum-a1);--accent-a2: var(--plum-a2);--accent-a3: var(--plum-a3);--accent-a4: var(--plum-a4);--accent-a5: var(--plum-a5);--accent-a6: var(--plum-a6);--accent-a7: var(--plum-a7);--accent-a8: var(--plum-a8);--accent-a9: var(--plum-a9);--accent-a10: var(--plum-a10);--accent-a11: var(--plum-a11);--accent-a12: var(--plum-a12);--accent-contrast: var(--plum-contrast);--accent-surface: var(--plum-surface);--accent-indicator: var(--plum-indicator);--accent-track: var(--plum-track)}[data-accent-color=purple]{--accent-1: var(--purple-1);--accent-2: var(--purple-2);--accent-3: var(--purple-3);--accent-4: var(--purple-4);--accent-5: var(--purple-5);--accent-6: var(--purple-6);--accent-7: var(--purple-7);--accent-8: var(--purple-8);--accent-9: var(--purple-9);--accent-10: var(--purple-10);--accent-11: var(--purple-11);--accent-12: var(--purple-12);--accent-a1: var(--purple-a1);--accent-a2: var(--purple-a2);--accent-a3: var(--purple-a3);--accent-a4: var(--purple-a4);--accent-a5: var(--purple-a5);--accent-a6: var(--purple-a6);--accent-a7: var(--purple-a7);--accent-a8: var(--purple-a8);--accent-a9: var(--purple-a9);--accent-a10: var(--purple-a10);--accent-a11: var(--purple-a11);--accent-a12: var(--purple-a12);--accent-contrast: var(--purple-contrast);--accent-surface: var(--purple-surface);--accent-indicator: var(--purple-indicator);--accent-track: var(--purple-track)}[data-accent-color=red]{--accent-1: var(--red-1);--accent-2: var(--red-2);--accent-3: var(--red-3);--accent-4: var(--red-4);--accent-5: var(--red-5);--accent-6: var(--red-6);--accent-7: var(--red-7);--accent-8: var(--red-8);--accent-9: var(--red-9);--accent-10: var(--red-10);--accent-11: var(--red-11);--accent-12: var(--red-12);--accent-a1: var(--red-a1);--accent-a2: var(--red-a2);--accent-a3: var(--red-a3);--accent-a4: var(--red-a4);--accent-a5: var(--red-a5);--accent-a6: var(--red-a6);--accent-a7: var(--red-a7);--accent-a8: var(--red-a8);--accent-a9: var(--red-a9);--accent-a10: var(--red-a10);--accent-a11: var(--red-a11);--accent-a12: var(--red-a12);--accent-contrast: var(--red-contrast);--accent-surface: var(--red-surface);--accent-indicator: var(--red-indicator);--accent-track: var(--red-track)}[data-accent-color=ruby]{--accent-1: var(--ruby-1);--accent-2: var(--ruby-2);--accent-3: var(--ruby-3);--accent-4: var(--ruby-4);--accent-5: var(--ruby-5);--accent-6: var(--ruby-6);--accent-7: var(--ruby-7);--accent-8: var(--ruby-8);--accent-9: var(--ruby-9);--accent-10: var(--ruby-10);--accent-11: var(--ruby-11);--accent-12: var(--ruby-12);--accent-a1: var(--ruby-a1);--accent-a2: var(--ruby-a2);--accent-a3: var(--ruby-a3);--accent-a4: var(--ruby-a4);--accent-a5: var(--ruby-a5);--accent-a6: var(--ruby-a6);--accent-a7: var(--ruby-a7);--accent-a8: var(--ruby-a8);--accent-a9: var(--ruby-a9);--accent-a10: var(--ruby-a10);--accent-a11: var(--ruby-a11);--accent-a12: var(--ruby-a12);--accent-contrast: var(--ruby-contrast);--accent-surface: var(--ruby-surface);--accent-indicator: var(--ruby-indicator);--accent-track: var(--ruby-track)}[data-accent-color=sky]{--accent-1: var(--sky-1);--accent-2: var(--sky-2);--accent-3: var(--sky-3);--accent-4: var(--sky-4);--accent-5: var(--sky-5);--accent-6: var(--sky-6);--accent-7: var(--sky-7);--accent-8: var(--sky-8);--accent-9: var(--sky-9);--accent-10: var(--sky-10);--accent-11: var(--sky-11);--accent-12: var(--sky-12);--accent-a1: var(--sky-a1);--accent-a2: var(--sky-a2);--accent-a3: var(--sky-a3);--accent-a4: var(--sky-a4);--accent-a5: var(--sky-a5);--accent-a6: var(--sky-a6);--accent-a7: var(--sky-a7);--accent-a8: var(--sky-a8);--accent-a9: var(--sky-a9);--accent-a10: var(--sky-a10);--accent-a11: var(--sky-a11);--accent-a12: var(--sky-a12);--accent-contrast: var(--sky-contrast);--accent-surface: var(--sky-surface);--accent-indicator: var(--sky-indicator);--accent-track: var(--sky-track)}[data-accent-color=teal]{--accent-1: var(--teal-1);--accent-2: var(--teal-2);--accent-3: var(--teal-3);--accent-4: var(--teal-4);--accent-5: var(--teal-5);--accent-6: var(--teal-6);--accent-7: var(--teal-7);--accent-8: var(--teal-8);--accent-9: var(--teal-9);--accent-10: var(--teal-10);--accent-11: var(--teal-11);--accent-12: var(--teal-12);--accent-a1: var(--teal-a1);--accent-a2: var(--teal-a2);--accent-a3: var(--teal-a3);--accent-a4: var(--teal-a4);--accent-a5: var(--teal-a5);--accent-a6: var(--teal-a6);--accent-a7: var(--teal-a7);--accent-a8: var(--teal-a8);--accent-a9: var(--teal-a9);--accent-a10: var(--teal-a10);--accent-a11: var(--teal-a11);--accent-a12: var(--teal-a12);--accent-contrast: var(--teal-contrast);--accent-surface: var(--teal-surface);--accent-indicator: var(--teal-indicator);--accent-track: var(--teal-track)}[data-accent-color=tomato]{--accent-1: var(--tomato-1);--accent-2: var(--tomato-2);--accent-3: var(--tomato-3);--accent-4: var(--tomato-4);--accent-5: var(--tomato-5);--accent-6: var(--tomato-6);--accent-7: var(--tomato-7);--accent-8: var(--tomato-8);--accent-9: var(--tomato-9);--accent-10: var(--tomato-10);--accent-11: var(--tomato-11);--accent-12: var(--tomato-12);--accent-a1: var(--tomato-a1);--accent-a2: var(--tomato-a2);--accent-a3: var(--tomato-a3);--accent-a4: var(--tomato-a4);--accent-a5: var(--tomato-a5);--accent-a6: var(--tomato-a6);--accent-a7: var(--tomato-a7);--accent-a8: var(--tomato-a8);--accent-a9: var(--tomato-a9);--accent-a10: var(--tomato-a10);--accent-a11: var(--tomato-a11);--accent-a12: var(--tomato-a12);--accent-contrast: var(--tomato-contrast);--accent-surface: var(--tomato-surface);--accent-indicator: var(--tomato-indicator);--accent-track: var(--tomato-track)}[data-accent-color=violet]{--accent-1: var(--violet-1);--accent-2: var(--violet-2);--accent-3: var(--violet-3);--accent-4: var(--violet-4);--accent-5: var(--violet-5);--accent-6: var(--violet-6);--accent-7: var(--violet-7);--accent-8: var(--violet-8);--accent-9: var(--violet-9);--accent-10: var(--violet-10);--accent-11: var(--violet-11);--accent-12: var(--violet-12);--accent-a1: var(--violet-a1);--accent-a2: var(--violet-a2);--accent-a3: var(--violet-a3);--accent-a4: var(--violet-a4);--accent-a5: var(--violet-a5);--accent-a6: var(--violet-a6);--accent-a7: var(--violet-a7);--accent-a8: var(--violet-a8);--accent-a9: var(--violet-a9);--accent-a10: var(--violet-a10);--accent-a11: var(--violet-a11);--accent-a12: var(--violet-a12);--accent-contrast: var(--violet-contrast);--accent-surface: var(--violet-surface);--accent-indicator: var(--violet-indicator);--accent-track: var(--violet-track)}[data-accent-color=yellow]{--accent-1: var(--yellow-1);--accent-2: var(--yellow-2);--accent-3: var(--yellow-3);--accent-4: var(--yellow-4);--accent-5: var(--yellow-5);--accent-6: var(--yellow-6);--accent-7: var(--yellow-7);--accent-8: var(--yellow-8);--accent-9: var(--yellow-9);--accent-10: var(--yellow-10);--accent-11: var(--yellow-11);--accent-12: var(--yellow-12);--accent-a1: var(--yellow-a1);--accent-a2: var(--yellow-a2);--accent-a3: var(--yellow-a3);--accent-a4: var(--yellow-a4);--accent-a5: var(--yellow-a5);--accent-a6: var(--yellow-a6);--accent-a7: var(--yellow-a7);--accent-a8: var(--yellow-a8);--accent-a9: var(--yellow-a9);--accent-a10: var(--yellow-a10);--accent-a11: var(--yellow-a11);--accent-a12: var(--yellow-a12);--accent-contrast: var(--yellow-contrast);--accent-surface: var(--yellow-surface);--accent-indicator: var(--yellow-indicator);--accent-track: var(--yellow-track)}.radix-themes:where([data-gray-color=mauve]){--gray-1: var(--mauve-1);--gray-2: var(--mauve-2);--gray-3: var(--mauve-3);--gray-4: var(--mauve-4);--gray-5: var(--mauve-5);--gray-6: var(--mauve-6);--gray-7: var(--mauve-7);--gray-8: var(--mauve-8);--gray-9: var(--mauve-9);--gray-10: var(--mauve-10);--gray-11: var(--mauve-11);--gray-12: var(--mauve-12);--gray-a1: var(--mauve-a1);--gray-a2: var(--mauve-a2);--gray-a3: var(--mauve-a3);--gray-a4: var(--mauve-a4);--gray-a5: var(--mauve-a5);--gray-a6: var(--mauve-a6);--gray-a7: var(--mauve-a7);--gray-a8: var(--mauve-a8);--gray-a9: var(--mauve-a9);--gray-a10: var(--mauve-a10);--gray-a11: var(--mauve-a11);--gray-a12: var(--mauve-a12);--gray-contrast: var(--mauve-contrast);--gray-surface: var(--mauve-surface);--gray-indicator: var(--mauve-indicator);--gray-track: var(--mauve-track)}.radix-themes:where([data-gray-color=olive]){--gray-1: var(--olive-1);--gray-2: var(--olive-2);--gray-3: var(--olive-3);--gray-4: var(--olive-4);--gray-5: var(--olive-5);--gray-6: var(--olive-6);--gray-7: var(--olive-7);--gray-8: var(--olive-8);--gray-9: var(--olive-9);--gray-10: var(--olive-10);--gray-11: var(--olive-11);--gray-12: var(--olive-12);--gray-a1: var(--olive-a1);--gray-a2: var(--olive-a2);--gray-a3: var(--olive-a3);--gray-a4: var(--olive-a4);--gray-a5: var(--olive-a5);--gray-a6: var(--olive-a6);--gray-a7: var(--olive-a7);--gray-a8: var(--olive-a8);--gray-a9: var(--olive-a9);--gray-a10: var(--olive-a10);--gray-a11: var(--olive-a11);--gray-a12: var(--olive-a12);--gray-contrast: var(--olive-contrast);--gray-surface: var(--olive-surface);--gray-indicator: var(--olive-indicator);--gray-track: var(--olive-track)}.radix-themes:where([data-gray-color=sage]){--gray-1: var(--sage-1);--gray-2: var(--sage-2);--gray-3: var(--sage-3);--gray-4: var(--sage-4);--gray-5: var(--sage-5);--gray-6: var(--sage-6);--gray-7: var(--sage-7);--gray-8: var(--sage-8);--gray-9: var(--sage-9);--gray-10: var(--sage-10);--gray-11: var(--sage-11);--gray-12: var(--sage-12);--gray-a1: var(--sage-a1);--gray-a2: var(--sage-a2);--gray-a3: var(--sage-a3);--gray-a4: var(--sage-a4);--gray-a5: var(--sage-a5);--gray-a6: var(--sage-a6);--gray-a7: var(--sage-a7);--gray-a8: var(--sage-a8);--gray-a9: var(--sage-a9);--gray-a10: var(--sage-a10);--gray-a11: var(--sage-a11);--gray-a12: var(--sage-a12);--gray-contrast: var(--sage-contrast);--gray-surface: var(--sage-surface);--gray-indicator: var(--sage-indicator);--gray-track: var(--sage-track)}.radix-themes:where([data-gray-color=sand]){--gray-1: var(--sand-1);--gray-2: var(--sand-2);--gray-3: var(--sand-3);--gray-4: var(--sand-4);--gray-5: var(--sand-5);--gray-6: var(--sand-6);--gray-7: var(--sand-7);--gray-8: var(--sand-8);--gray-9: var(--sand-9);--gray-10: var(--sand-10);--gray-11: var(--sand-11);--gray-12: var(--sand-12);--gray-a1: var(--sand-a1);--gray-a2: var(--sand-a2);--gray-a3: var(--sand-a3);--gray-a4: var(--sand-a4);--gray-a5: var(--sand-a5);--gray-a6: var(--sand-a6);--gray-a7: var(--sand-a7);--gray-a8: var(--sand-a8);--gray-a9: var(--sand-a9);--gray-a10: var(--sand-a10);--gray-a11: var(--sand-a11);--gray-a12: var(--sand-a12);--gray-contrast: var(--sand-contrast);--gray-surface: var(--sand-surface);--gray-indicator: var(--sand-indicator);--gray-track: var(--sand-track)}.radix-themes:where([data-gray-color=slate]){--gray-1: var(--slate-1);--gray-2: var(--slate-2);--gray-3: var(--slate-3);--gray-4: var(--slate-4);--gray-5: var(--slate-5);--gray-6: var(--slate-6);--gray-7: var(--slate-7);--gray-8: var(--slate-8);--gray-9: var(--slate-9);--gray-10: var(--slate-10);--gray-11: var(--slate-11);--gray-12: var(--slate-12);--gray-a1: var(--slate-a1);--gray-a2: var(--slate-a2);--gray-a3: var(--slate-a3);--gray-a4: var(--slate-a4);--gray-a5: var(--slate-a5);--gray-a6: var(--slate-a6);--gray-a7: var(--slate-a7);--gray-a8: var(--slate-a8);--gray-a9: var(--slate-a9);--gray-a10: var(--slate-a10);--gray-a11: var(--slate-a11);--gray-a12: var(--slate-a12);--gray-contrast: var(--slate-contrast);--gray-surface: var(--slate-surface);--gray-indicator: var(--slate-indicator);--gray-track: var(--slate-track)}.radix-themes{--cursor-button: default;--cursor-checkbox: default;--cursor-disabled: not-allowed;--cursor-link: pointer;--cursor-menu-item: default;--cursor-radio: default;--cursor-slider-thumb: default;--cursor-slider-thumb-active: default;--cursor-switch: default;--space-1: calc(4px * var(--scaling));--space-2: calc(8px * var(--scaling));--space-3: calc(12px * var(--scaling));--space-4: calc(16px * var(--scaling));--space-5: calc(24px * var(--scaling));--space-6: calc(32px * var(--scaling));--space-7: calc(40px * var(--scaling));--space-8: calc(48px * var(--scaling));--space-9: calc(64px * var(--scaling));--font-size-1: calc(12px * var(--scaling));--font-size-2: calc(14px * var(--scaling));--font-size-3: calc(16px * var(--scaling));--font-size-4: calc(18px * var(--scaling));--font-size-5: calc(20px * var(--scaling));--font-size-6: calc(24px * var(--scaling));--font-size-7: calc(28px * var(--scaling));--font-size-8: calc(35px * var(--scaling));--font-size-9: calc(60px * var(--scaling));--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-1: calc(16px * var(--scaling));--line-height-2: calc(20px * var(--scaling));--line-height-3: calc(24px * var(--scaling));--line-height-4: calc(26px * var(--scaling));--line-height-5: calc(28px * var(--scaling));--line-height-6: calc(30px * var(--scaling));--line-height-7: calc(36px * var(--scaling));--line-height-8: calc(40px * var(--scaling));--line-height-9: calc(60px * var(--scaling));--letter-spacing-1: .0025em;--letter-spacing-2: 0em;--letter-spacing-3: 0em;--letter-spacing-4: -.0025em;--letter-spacing-5: -.005em;--letter-spacing-6: -.00625em;--letter-spacing-7: -.0075em;--letter-spacing-8: -.01em;--letter-spacing-9: -.025em;--default-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI (Custom)", Roboto, "Helvetica Neue", "Open Sans (Custom)", system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--default-font-size: var(--font-size-3);--default-font-style: normal;--default-font-weight: var(--font-weight-regular);--default-line-height: 1.5;--default-letter-spacing: 0em;--default-leading-trim-start: .42em;--default-leading-trim-end: .36em;--heading-font-family: var(--default-font-family);--heading-font-size-adjust: 1;--heading-font-style: normal;--heading-leading-trim-start: var(--default-leading-trim-start);--heading-leading-trim-end: var(--default-leading-trim-end);--heading-letter-spacing: 0em;--heading-line-height-1: calc(16px * var(--scaling));--heading-line-height-2: calc(18px * var(--scaling));--heading-line-height-3: calc(22px * var(--scaling));--heading-line-height-4: calc(24px * var(--scaling));--heading-line-height-5: calc(26px * var(--scaling));--heading-line-height-6: calc(30px * var(--scaling));--heading-line-height-7: calc(36px * var(--scaling));--heading-line-height-8: calc(40px * var(--scaling));--heading-line-height-9: calc(60px * var(--scaling));--code-font-family: "Menlo", "Consolas (Custom)", "Bitstream Vera Sans Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji";--code-font-size-adjust: .95;--code-font-style: normal;--code-font-weight: inherit;--code-letter-spacing: -.007em;--code-padding-top: .1em;--code-padding-bottom: .1em;--code-padding-left: .25em;--code-padding-right: .25em;--strong-font-family: var(--default-font-family);--strong-font-size-adjust: 1;--strong-font-style: inherit;--strong-font-weight: var(--font-weight-bold);--strong-letter-spacing: 0em;--em-font-family: "Times New Roman", "Times", serif;--em-font-size-adjust: 1.18;--em-font-style: italic;--em-font-weight: inherit;--em-letter-spacing: -.025em;--quote-font-family: "Times New Roman", "Times", serif;--quote-font-size-adjust: 1.18;--quote-font-style: italic;--quote-font-weight: inherit;--quote-letter-spacing: -.025em;--tab-active-letter-spacing: -.01em;--tab-active-word-spacing: 0em;--tab-inactive-letter-spacing: 0em;--tab-inactive-word-spacing: 0em;overflow-wrap:break-word;font-family:var(--default-font-family);font-size:var(--default-font-size);font-weight:var(--default-font-weight);font-style:var(--default-font-style);line-height:var(--default-line-height);letter-spacing:var(--default-letter-spacing);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--container-1: 448px;--container-2: 688px;--container-3: 880px;--container-4: 1136px;--scrollarea-scrollbar-horizontal-margin-top: var(--space-1);--scrollarea-scrollbar-horizontal-margin-bottom: var(--space-1);--scrollarea-scrollbar-horizontal-margin-left: var(--space-1);--scrollarea-scrollbar-horizontal-margin-right: var(--space-1);--scrollarea-scrollbar-vertical-margin-top: var(--space-1);--scrollarea-scrollbar-vertical-margin-bottom: var(--space-1);--scrollarea-scrollbar-vertical-margin-left: var(--space-1);--scrollarea-scrollbar-vertical-margin-right: var(--space-1);--segmented-control-transition-duration: .1s;--spinner-animation-duration: .8s;--spinner-opacity: .65;color:var(--gray-12)}.radix-themes:where([data-scaling="90%"]){--scaling: .9}.radix-themes:where([data-scaling="95%"]){--scaling: .95}.radix-themes:where([data-scaling="100%"]){--scaling: 1}.radix-themes:where([data-scaling="105%"]){--scaling: 1.05}.radix-themes:where([data-scaling="110%"]){--scaling: 1.1}[data-radius]{--radius-1: calc(3px * var(--scaling) * var(--radius-factor));--radius-2: calc(4px * var(--scaling) * var(--radius-factor));--radius-3: calc(6px * var(--scaling) * var(--radius-factor));--radius-4: calc(8px * var(--scaling) * var(--radius-factor));--radius-5: calc(12px * var(--scaling) * var(--radius-factor));--radius-6: calc(16px * var(--scaling) * var(--radius-factor))}[data-radius=none]{--radius-factor: 0;--radius-full: 0px;--radius-thumb: .5px}[data-radius=small]{--radius-factor: .75;--radius-full: 0px;--radius-thumb: .5px}[data-radius=medium]{--radius-factor: 1;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=large]{--radius-factor: 1.5;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=full]{--radius-factor: 1.5;--radius-full: 9999px;--radius-thumb: 9999px}@supports (color: color-mix(in oklab,white,black)){:where(.radix-themes){--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-card-surface-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a5), var(--gray-5) 25%);--base-card-surface-hover-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a7), var(--gray-7) 25%);--base-card-surface-active-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a4), var(--gray-4) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%)}}@supports (color: color-mix(in oklab,white,black)){:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%)}}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;descent-override:35%;src:local("Open Sans Light"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;font-style:italic;descent-override:35%;src:local("Open Sans Light Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;descent-override:35%;src:local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;font-style:italic;descent-override:35%;src:local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;descent-override:35%;src:local("Open Sans Medium"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;font-style:italic;descent-override:35%;src:local("Open Sans Medium Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;descent-override:35%;src:local("Open Sans Bold")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;font-style:italic;descent-override:35%;src:local("Open Sans Bold Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:400;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas")}@font-face{font-family:"Consolas (Custom)";font-weight:400;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:700;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold")}@font-face{font-family:"Consolas (Custom)";font-weight:700;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold Italic")}.rt-reset:where(body,blockquote,dl,dd,figure,p){margin:0}.rt-reset:where(address,b,cite,code,dfn,em,i,kbd,q,samp,small,strong,var){font:unset}.rt-reset:where(h1,h2,h3,h4,h5,h6){font:unset;margin:0}.rt-reset:where(a){all:unset;-webkit-tap-highlight-color:transparent}.rt-reset:where(button,select,[type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range]){all:unset;display:inline-block;font-weight:400;font-style:normal;text-indent:initial;-webkit-tap-highlight-color:transparent}.rt-reset:where(label){-webkit-tap-highlight-color:transparent}.rt-reset:where(select){font-weight:400;font-style:normal;text-align:start}.rt-reset:where(textarea,input:not([type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range])){all:unset;display:block;width:-webkit-fill-available;width:-moz-available;width:stretch;font-weight:400;font-style:normal;text-align:start;text-indent:initial;-webkit-tap-highlight-color:transparent;cursor:text;white-space:pre-wrap}.rt-reset:where(:focus){outline:none}.rt-reset::placeholder{color:unset;opacity:unset;-webkit-user-select:none;user-select:none}.rt-reset:where(table){all:unset;display:table;text-indent:initial}.rt-reset:where(caption){text-align:inherit}.rt-reset:where(td){padding:0}.rt-reset:where(th){font-weight:unset;text-align:inherit;padding:0}.rt-reset:where(abbr,acronym){text-decoration:none}.rt-reset:where(canvas,object,picture,summary){display:block}.rt-reset:where(del,s){text-decoration:unset}.rt-reset:where(fieldset,hr){all:unset;display:block}.rt-reset:where(legend){padding:0;border:none;cursor:default}.rt-reset:where(li){display:block;text-align:unset}.rt-reset:where(ol,ul){list-style:none;margin:0;padding:0}.rt-reset:where(iframe){display:block;border:none;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(ins,u){text-decoration:none}.rt-reset:where(img){display:block;max-width:100%}.rt-reset:where(svg){display:block;max-width:100%;flex-shrink:0}.rt-reset:where(mark){all:unset}.rt-reset:where(pre){font:unset;margin:unset}.rt-reset:where(q):before,.rt-reset:where(q):after{content:""}.rt-reset:where(sub,sup){font:unset;vertical-align:unset}.rt-reset:where(details) ::marker,.rt-reset:where(summary)::marker{content:none}.rt-reset:where(video){display:block;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(:any-link){cursor:var(--cursor-link)}.rt-reset:where(button){cursor:var(--cursor-button)}.rt-reset:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-reset:where(input[type=checkbox]){cursor:var(--cursor-checkbox)}.rt-reset:where(input[type=radio]){cursor:var(--cursor-radio)}.rt-reset,.rt-reset:before,.rt-reset:after{box-sizing:border-box}@keyframes rt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rt-fade-out{0%{opacity:1}to{opacity:0}}@keyframes rt-slide-from-top{0%{transform:translateY(4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-top{0%{transform:translateY(0) scale(1)}to{transform:translateY(4px) scale(.97)}}@keyframes rt-slide-from-bottom{0%{transform:translateY(-4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-bottom{0%{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(.97)}}@keyframes rt-slide-from-left{0%{transform:translate(4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-left{0%{transform:translate(0) scale(1)}to{transform:translate(4px) scale(.97)}}@keyframes rt-slide-from-right{0%{transform:translate(-4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-right{0%{transform:translate(0) scale(1)}to{transform:translate(-4px) scale(.97)}}@media (prefers-reduced-motion: no-preference){.rt-PopperContent{animation-timing-function:cubic-bezier(.16,1,.3,1)}.rt-PopperContent:where([data-state=open]){animation-duration:.16s}.rt-PopperContent:where([data-state=open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}.rt-PopperContent:where([data-state=closed]){animation-duration:.1s}.rt-PopperContent:where([data-state=closed]):where([data-side=top]){animation-name:rt-slide-to-top,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=bottom]){animation-name:rt-slide-to-bottom,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=left]){animation-name:rt-slide-to-left,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=right]){animation-name:rt-slide-to-right,rt-fade-out}}.rt-Box{box-sizing:border-box;display:block}.rt-Flex{box-sizing:border-box;display:flex;justify-content:flex-start}.rt-Grid{box-sizing:border-box;display:grid;align-items:stretch;justify-content:flex-start;grid-template-columns:minmax(0,1fr);grid-template-rows:none}.rt-Section{box-sizing:border-box;flex-shrink:0}.rt-Section:where(.rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}@media (min-width: 520px){.rt-Section:where(.xs\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xs\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xs\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xs\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 768px){.rt-Section:where(.sm\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.sm\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.sm\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.sm\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1024px){.rt-Section:where(.md\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.md\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.md\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.md\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1280px){.rt-Section:where(.lg\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.lg\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.lg\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.lg\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1640px){.rt-Section:where(.xl\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xl\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xl\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xl\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}.rt-Container{display:flex;box-sizing:border-box;flex-direction:column;align-items:center;flex-shrink:0;flex-grow:1}.rt-ContainerInner{width:100%}:where(.rt-Container.rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}@media (min-width: 520px){:where(.rt-Container.xs\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xs\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xs\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xs\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 768px){:where(.rt-Container.sm\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.sm\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.sm\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.sm\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1024px){:where(.rt-Container.md\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.md\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.md\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.md\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1280px){:where(.rt-Container.lg\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.lg\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.lg\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.lg\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1640px){:where(.rt-Container.xl\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xl\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xl\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xl\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}.rt-Skeleton{--skeleton-radius: var(--skeleton-radius-override);--skeleton-height: var(--skeleton-height-override);border-radius:var(--radius-1);animation:rt-skeleton-pulse 1s infinite alternate-reverse!important;background-image:none!important;background-clip:border-box!important;border:none!important;box-shadow:none!important;-webkit-box-decoration-break:clone!important;box-decoration-break:clone!important;color:transparent!important;outline:none!important;pointer-events:none!important;-webkit-user-select:none!important;user-select:none!important;cursor:default!important}.rt-Skeleton:where([data-inline-skeleton]){line-height:0;font-family:Arial,sans-serif!important}:where(.rt-Skeleton:empty){display:block;height:var(--space-3)}.rt-Skeleton>*,.rt-Skeleton:after,.rt-Skeleton:before{visibility:hidden!important}@keyframes rt-skeleton-pulse{0%{background-color:var(--gray-a3)}to{background-color:var(--gray-a4)}}.rt-Text{line-height:var(--line-height, var(--default-line-height));letter-spacing:var(--letter-spacing, inherit)}:where(.rt-Text){margin:0}.rt-Text:where([data-accent-color]){color:var(--accent-a11)}.rt-Text:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Text:where(.rt-high-contrast){color:var(--accent-12)}@media (pointer: coarse){.rt-Text:where(label){-webkit-tap-highlight-color:transparent}.rt-Text:where(label):where(:active){outline:.75em solid var(--gray-a4);outline-offset:-.6em}}.rt-Text:where(.rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Text:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xs\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xs\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xs\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xs\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xs\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xs\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Text:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.sm\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.sm\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.sm\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.sm\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.sm\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.sm\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Text:where(.md\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.md\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.md\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.md\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.md\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.md\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.md\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Text:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.lg\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.lg\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.lg\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.lg\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.lg\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.lg\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Text:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xl\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xl\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xl\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xl\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xl\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xl\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-BaseDialogOverlay{position:fixed;inset:0}.rt-BaseDialogOverlay:before{position:fixed;content:"";inset:0;background-color:var(--color-overlay)}.rt-BaseDialogScroll{display:flex;overflow:auto;position:absolute;inset:0}.rt-BaseDialogScrollPadding{flex-grow:1;margin:auto;padding-top:var(--space-6);padding-bottom:max(var(--space-6),6vh);padding-left:var(--space-4);padding-right:var(--space-4)}.rt-BaseDialogScrollPadding:where(.rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.rt-r-align-center){margin-top:auto}@media (min-width: 520px){.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-center){margin-top:auto}}@media (min-width: 768px){.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-center){margin-top:auto}}@media (min-width: 1024px){.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-center){margin-top:auto}}@media (min-width: 1280px){.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-center){margin-top:auto}}@media (min-width: 1640px){.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-center){margin-top:auto}}.rt-BaseDialogContent{margin:auto;width:100%;z-index:1;position:relative;overflow:auto;--inset-padding-top: var(--dialog-content-padding);--inset-padding-right: var(--dialog-content-padding);--inset-padding-bottom: var(--dialog-content-padding);--inset-padding-left: var(--dialog-content-padding);padding:var(--dialog-content-padding);box-sizing:border-box;background-color:var(--color-panel-solid);box-shadow:var(--shadow-6);outline:none}.rt-BaseDialogContent:where(.rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-BaseDialogContent:where(.xs\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xs\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-BaseDialogContent:where(.sm\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.sm\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-BaseDialogContent:where(.md\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.md\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-BaseDialogContent:where(.lg\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.lg\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-BaseDialogContent:where(.xl\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xl\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (prefers-reduced-motion: no-preference){@keyframes rt-dialog-overlay-no-op{0%{opacity:1}to{opacity:1}}@keyframes rt-dialog-content-show{0%{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rt-dialog-content-hide{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(5px) scale(.99)}}.rt-BaseDialogOverlay:where([data-state=closed]){animation:rt-dialog-overlay-no-op .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=open]):before{animation:rt-fade-in .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=closed]):before{opacity:0;animation:rt-fade-out .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=open]){animation:rt-dialog-content-show .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=closed]){opacity:0;animation:rt-dialog-content-hide .1s cubic-bezier(.16,1,.3,1)}}.rt-AvatarRoot{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;-webkit-user-select:none;user-select:none;width:var(--avatar-size);height:var(--avatar-size);flex-shrink:0}.rt-AvatarImage{width:100%;height:100%;object-fit:cover;border-radius:inherit}.rt-AvatarFallback{font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;z-index:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:inherit;text-transform:uppercase}.rt-AvatarFallback:where(.rt-one-letter){font-size:var(--avatar-fallback-one-letter-font-size)}.rt-AvatarFallback:where(.rt-two-letters){font-size:var(--avatar-fallback-two-letters-font-size, var(--avatar-fallback-one-letter-font-size))}.rt-AvatarRoot:where(.rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}@media (min-width: 520px){.rt-AvatarRoot:where(.xs\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xs\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xs\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xs\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xs\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xs\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xs\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 768px){.rt-AvatarRoot:where(.sm\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.sm\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.sm\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.sm\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.sm\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.sm\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.sm\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-AvatarRoot:where(.md\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.md\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.md\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.md\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.md\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.md\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.md\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-AvatarRoot:where(.lg\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.lg\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.lg\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.lg\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.lg\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.lg\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.lg\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-AvatarRoot:where(.xl\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xl\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xl\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xl\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xl\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xl\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xl\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}.rt-AvatarRoot:where(.rt-variant-solid) :where(.rt-AvatarFallback){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-AvatarRoot:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-AvatarFallback){background-color:var(--accent-12);color:var(--accent-1)}.rt-AvatarRoot:where(.rt-variant-soft) :where(.rt-AvatarFallback){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-AvatarRoot:where(.rt-variant-soft):where(.rt-high-contrast) :where(.rt-AvatarFallback){color:var(--accent-12)}.rt-Badge{display:inline-flex;align-items:center;white-space:nowrap;font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;flex-shrink:0;line-height:1;height:-moz-fit-content;height:fit-content}.rt-Badge:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}@media (min-width: 520px){.rt-Badge:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 768px){.rt-Badge:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1024px){.rt-Badge:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1280px){.rt-Badge:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1640px){.rt-Badge:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}.rt-Badge:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-Badge:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}.rt-Badge:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a6);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-Blockquote{box-sizing:border-box;border-left:max(var(--space-1),.25em) solid var(--accent-a6);padding-left:min(var(--space-5),max(var(--space-3),.5em))}.rt-BaseButton{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;font-family:var(--default-font-family);font-style:normal;text-align:center}.rt-BaseButton:where([data-disabled]){--spinner-opacity: 1}.rt-BaseButton:where(.rt-loading){position:relative}.rt-BaseButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height)}.rt-BaseButton:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content}.rt-BaseButton:where(.rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}@media (min-width: 520px){.rt-BaseButton:where(.xs\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 768px){.rt-BaseButton:where(.sm\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1024px){.rt-BaseButton:where(.md\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1280px){.rt-BaseButton:where(.lg\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1640px){.rt-BaseButton:where(.xl\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}.rt-BaseButton:where(.rt-variant-classic){background-color:var(--accent-9);color:var(--accent-contrast);position:relative;z-index:0;background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-9) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-9),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):after{content:"";position:absolute;border-radius:inherit;pointer-events:none;inset:0;z-index:-1;border:var(--base-button-classic-after-inset) solid transparent;background-clip:content-box;background-color:inherit;background-image:linear-gradient(var(--black-a1),transparent,var(--white-a2));box-shadow:inset 0 2px 3px -1px var(--white-a4)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1);background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-12) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-12),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a3),transparent,var(--white-a2))}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-classic):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-classic):where(:hover):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])){background-color:var(--accent-9);background-image:linear-gradient(var(--black-a1),transparent);padding-top:var(--base-button-classic-active-padding-top);box-shadow:inset 0 4px 2px -2px var(--gray-a4),inset 0 1px 1px var(--gray-a7),inset 0 0 0 1px var(--gray-a5),inset 0 0 0 1px var(--accent-9),inset 0 3px 2px var(--gray-a3),inset 0 0 0 1px var(--white-a7),inset 0 -2px 1px var(--white-a5)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):after{box-shadow:none;background-color:inherit;background-image:linear-gradient(var(--black-a2),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast){background-color:var(--accent-12);filter:var(--base-button-classic-high-contrast-active-filter);box-shadow:var(--base-button__classic-active__shadow-front-layer),inset 0 0 0 1px var(--accent-12),var(--base-button__classic-active__shadow-bottom-layer)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a5),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]):after{box-shadow:none;background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-BaseButton:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(:hover){background-color:var(--accent-10)}}.rt-BaseButton:where(.rt-variant-solid):where([data-state=open]){background-color:var(--accent-10)}.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){background-color:var(--accent-10);filter:var(--base-button-solid-active-filter)}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-solid):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where([data-state=open]){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:active:not([data-state=open])){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-active-filter)}.rt-BaseButton:where(.rt-variant-solid):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost){color:var(--accent-a11)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}.rt-BaseButton:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-soft):where(:focus-visible){outline:2px solid var(--accent-8);outline-offset:-1px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-BaseButton:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-soft):where(:active:not([data-state=open])){background-color:var(--accent-a5)}.rt-BaseButton:where(.rt-variant-soft):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-BaseButton:where(.rt-variant-ghost):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-ghost):where(:active:not([data-state=open])){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:transparent}.rt-BaseButton:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-outline):where(:hover){background-color:var(--accent-a2)}}.rt-BaseButton:where(.rt-variant-outline):where([data-state=open]){background-color:var(--accent-a2)}.rt-BaseButton:where(.rt-variant-outline):where(:active:not([data-state=open])){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-outline):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-outline):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a7);background-color:transparent}.rt-BaseButton:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a7);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--accent-a8)}}.rt-BaseButton:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:active:not([data-state=open])){background-color:var(--accent-a3);box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-surface):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a2)}.rt-Button:where(:not(.rt-variant-ghost)) :where(svg){opacity:.9}.rt-Button:where(.rt-variant-ghost){padding:var(--button-ghost-padding-y) var(--button-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--button-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--button-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--button-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--button-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-Button:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Button:where(.rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}@media (min-width: 520px){.rt-Button:where(.xs\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xs\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xs\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xs\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 768px){.rt-Button:where(.sm\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.sm\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.sm\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.sm\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1024px){.rt-Button:where(.md\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.md\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.md\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.md\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.md\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.md\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.md\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1280px){.rt-Button:where(.lg\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.lg\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.lg\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.lg\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1640px){.rt-Button:where(.xl\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xl\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xl\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xl\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}.rt-Button:where(:not(.rt-variant-ghost)){font-weight:var(--font-weight-medium)}.rt-CalloutRoot{box-sizing:border-box;display:grid;align-items:flex-start;justify-content:flex-start;text-align:left;color:var(--accent-a11)}.rt-CalloutRoot:where(.rt-high-contrast){color:var(--accent-12)}.rt-CalloutIcon{display:flex;align-items:center;grid-column-start:-2;height:var(--callout-icon-height)}.rt-CalloutRoot>:where(:not(.rt-CalloutIcon)){grid-column-start:-1}.rt-CalloutRoot:where(.rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}@media (min-width: 520px){.rt-CalloutRoot:where(.xs\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 768px){.rt-CalloutRoot:where(.sm\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1024px){.rt-CalloutRoot:where(.md\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1280px){.rt-CalloutRoot:where(.lg\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1640px){.rt-CalloutRoot:where(.xl\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}.rt-CalloutRoot:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-CalloutRoot:where(.rt-variant-surface){box-shadow:inset 0 0 0 1px var(--accent-a6);background-color:var(--accent-a2)}.rt-CalloutRoot:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a7)}.rt-BaseCard{display:block;position:relative;overflow:hidden;border-radius:var(--base-card-border-radius);font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--inset-border-width: var(--base-card-border-width);--inset-border-radius: var(--base-card-border-radius);padding-top:var(--base-card-padding-top);padding-right:var(--base-card-padding-right);padding-bottom:var(--base-card-padding-bottom);padding-left:var(--base-card-padding-left);box-sizing:border-box;--inset-padding-top: calc(var(--base-card-padding-top) - var(--base-card-border-width));--inset-padding-right: calc(var(--base-card-padding-right) - var(--base-card-border-width));--inset-padding-bottom: calc(var(--base-card-padding-bottom) - var(--base-card-border-width));--inset-padding-left: calc(var(--base-card-padding-left) - var(--base-card-border-width));contain:paint}.rt-BaseCard:before,.rt-BaseCard:after{content:"";position:absolute;pointer-events:none;transition:inherit;border-radius:calc(var(--base-card-border-radius) - var(--base-card-border-width));inset:var(--base-card-border-width)}.rt-BaseCard:before{z-index:-1}.rt-Card{--base-card-padding-top: var(--card-padding);--base-card-padding-right: var(--card-padding);--base-card-padding-bottom: var(--card-padding);--base-card-padding-left: var(--card-padding);--base-card-border-radius: var(--card-border-radius);--base-card-border-width: var(--card-border-width)}.rt-Card:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-Card:where(:focus-visible):after{outline:inherit}.rt-Card:where(:focus-visible):where(:active:not([data-state=open])):before{background-image:linear-gradient(var(--focus-a2),var(--focus-a2))}.rt-Card:where(.rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}@media (min-width: 520px){.rt-Card:where(.xs\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 768px){.rt-Card:where(.sm\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1024px){.rt-Card:where(.md\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1280px){.rt-Card:where(.lg\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1640px){.rt-Card:where(.xl\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}.rt-Card:where(.rt-variant-surface){--card-border-width: 1px;--card-background-color: var(--color-panel)}.rt-Card:where(.rt-variant-surface):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-surface):after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-surface-hover-box-shadow)}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-surface-active-box-shadow)}.rt-Card:where(.rt-variant-classic){--card-border-width: 1px;--card-background-color: var(--color-panel);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-classic):after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])){transition-duration:40ms;box-shadow:var(--base-card-classic-active-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-classic-active-box-shadow-inner)}.rt-Card:where(.rt-variant-ghost){--card-border-width: 0px;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--card-padding));--margin-right-override: calc(var(--margin-right) - var(--card-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--card-padding));--margin-left-override: calc(var(--margin-left) - var(--card-padding));margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Card:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}@media (hover: hover){.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover):where(:focus-visible){background-color:var(--focus-a2)}}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]):where(:focus-visible){background-color:var(--focus-a2)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])){background-color:var(--gray-a4)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])):where(:focus-visible){background-color:var(--focus-a2)}@media (pointer: coarse){.rt-Card:where(:any-link,button,label):where(:active:not(:focus-visible,[data-state=open])):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-BaseCheckboxRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-checkbox);height:var(--skeleton-height, var(--line-height, var(--checkbox-size)));--skeleton-height-override: var(--checkbox-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--checkbox-border-radius)}.rt-BaseCheckboxRoot:before{content:"";display:block;height:var(--checkbox-size);width:var(--checkbox-size);border-radius:var(--checkbox-border-radius)}.rt-BaseCheckboxIndicator{position:absolute;width:var(--checkbox-indicator-size);height:var(--checkbox-indicator-size);transform:translate(-50%,-50%);top:50%;left:50%}.rt-BaseCheckboxRoot:where(.rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}@media (min-width: 520px){.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 768px){.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1024px){.rt-BaseCheckboxRoot:where(.md\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1280px){.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1640px){.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a3),var(--shadow-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a1));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled):before{box-shadow:var(--shadow-1);background-color:transparent;background-image:none}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):before{background-color:var(--accent-a5)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-a11)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled):before{background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-CheckboxCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-CheckboxCardsItem:where(:has(:focus-visible)){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-CheckboxCardsItem:where(:has(:focus-visible)):after{outline:inherit}.rt-CheckboxCardsItem>*{pointer-events:none}.rt-CheckboxCardsItem>:where(svg){flex-shrink:0}.rt-CheckboxCardCheckbox{position:absolute;right:var(--checkbox-cards-item-padding-left)}.rt-CheckboxCardsItem{--checkbox-cards-item-padding-right: calc(var(--checkbox-cards-item-padding-left) * 2 + var(--checkbox-cards-item-checkbox-size));--base-card-padding-top: var(--checkbox-cards-item-padding-top);--base-card-padding-right: var(--checkbox-cards-item-padding-right);--base-card-padding-bottom: var(--checkbox-cards-item-padding-bottom);--base-card-padding-left: var(--checkbox-cards-item-padding-left);--base-card-border-radius: var(--checkbox-cards-item-border-radius);--base-card-border-width: var(--checkbox-cards-item-border-width);display:flex;align-items:center;gap:var(--space-2);cursor:var(--cursor-button);-webkit-tap-highlight-color:transparent}.rt-CheckboxCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-CheckboxCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}@media (pointer: coarse){.rt-CheckboxCardsItem:where(:active:not(:focus-visible)):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-CheckboxCardsItem:where(:has(:disabled)){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-CheckboxCardsItem:where(:has(:disabled)):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-CheckboxCardsItem:where(:has(:disabled))::selection{background-color:var(--gray-a5)}.rt-CheckboxGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-CheckboxGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-CheckboxGroupItemCheckbox:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxGroupItemCheckbox:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxGroupItemCheckbox:where(:disabled):before{background-color:var(--gray-a3)}.rt-CheckboxGroupItemInner{min-width:0}.rt-CheckboxRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxRoot:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxRoot:where(:disabled):before{background-color:var(--gray-a3)}.rt-Code{--code-variant-font-size-adjust: calc(var(--code-font-size-adjust) * .95);font-family:var(--code-font-family);font-size:calc(var(--code-variant-font-size-adjust) * 1em);font-style:var(--code-font-style);font-weight:var(--code-font-weight);line-height:1.25;letter-spacing:calc(var(--code-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));border-radius:calc((.5px + .2em) * var(--radius-factor));box-sizing:border-box;padding-top:var(--code-padding-top);padding-left:var(--code-padding-left);padding-bottom:var(--code-padding-bottom);padding-right:var(--code-padding-right);height:-moz-fit-content;height:fit-content}.rt-Code :where(.rt-Code){font-size:inherit}.rt-Code:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Code:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Code:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Code:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Code:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Code:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-Code:where(.rt-variant-ghost){--code-variant-font-size-adjust: var(--code-font-size-adjust);padding:0}.rt-Code:where(.rt-variant-ghost):where([data-accent-color]){color:var(--accent-a11)}.rt-Code:where(.rt-variant-ghost):where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Code:where(.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-Code:where(.rt-variant-solid){background-color:var(--accent-a9);color:var(--accent-contrast)}.rt-Code:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid),.rt-Code:where(.rt-variant-solid):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(:hover){background-color:var(--accent-10)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(.rt-high-contrast:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(.rt-high-contrast:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-Code:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Code:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-soft),.rt-Code:where(.rt-variant-soft):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-soft):where(:hover),.rt-Code:where(.rt-variant-soft):where(:any-link,button):where(:hover){background-color:var(--accent-a4)}}.rt-Code:where(.rt-variant-outline){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a8);color:var(--accent-a11)}.rt-Code:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a7),inset 0 0 0 max(1px,.033em) var(--gray-a11);color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-outline),.rt-Code:where(.rt-variant-outline):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-outline):where(:hover),.rt-Code:where(.rt-variant-outline):where(:any-link,button):where(:hover){background-color:var(--accent-a2)}}.rt-BaseMenuContent{--scrollarea-scrollbar-vertical-margin-top: var(--base-menu-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--base-menu-content-padding);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background-color:var(--base-menu-bg);--base-menu-bg: var(--color-panel-solid);box-shadow:var(--shadow-5)}.rt-BaseMenuViewport{flex:1 1 0%;display:flex;flex-direction:column;overflow:auto;padding:var(--base-menu-content-padding);box-sizing:border-box}:where(.rt-BaseMenuContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-BaseMenuViewport{padding-right:var(--space-3)}.rt-BaseMenuItem{display:flex;align-items:center;gap:var(--space-2);height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;position:relative;outline:none;scroll-margin:var(--base-menu-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-BaseMenuShortcut{display:flex;align-items:center;margin-left:auto;padding-left:var(--space-4);color:var(--gray-a11)}.rt-BaseMenuSubTriggerIcon{color:var(--gray-12);margin-right:calc(-2px * var(--scaling))}.rt-BaseMenuItemIndicator{position:absolute;left:0;width:var(--base-menu-item-padding-left);display:inline-flex;align-items:center;justify-content:center}.rt-BaseMenuSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--base-menu-item-padding-left);margin-right:var(--base-menu-item-padding-right);background-color:var(--gray-a6)}.rt-BaseMenuLabel{display:flex;align-items:center;height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-BaseMenuItem)+.rt-BaseMenuLabel{margin-top:var(--space-2)}.rt-BaseMenuArrow{fill:var(--base-menu-bg)}.rt-BaseMenuContent:where(.rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}@media (min-width: 520px){.rt-BaseMenuContent:where(.xs\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 768px){.rt-BaseMenuContent:where(.sm\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1024px){.rt-BaseMenuContent:where(.md\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1280px){.rt-BaseMenuContent:where(.lg\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1640px){.rt-BaseMenuContent:where(.xl\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}.rt-BaseMenuItem:where([data-accent-color]){color:var(--accent-a11)}.rt-BaseMenuItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-BaseMenuItem:where([data-disabled],[data-highlighted]) :where(.rt-BaseMenuShortcut),.rt-BaseMenuSubTrigger:where([data-state=open]) :where(.rt-BaseMenuShortcut){color:inherit}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--gray-a3)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]):where([data-accent-color]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--accent-a3)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-a4)}.rt-ContextMenuContent{max-height:var(--radix-context-menu-content-available-height);transform-origin:var(--radix-context-menu-content-transform-origin)}.rt-DataListRoot{overflow-wrap:anywhere;font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--data-list-leading-trim-start: calc(var(--default-leading-trim-start) - var(--line-height) / 2);--data-list-leading-trim-end: calc(var(--default-leading-trim-end) - var(--line-height) / 2)}.rt-DataListLabel{display:flex;color:var(--gray-a11)}.rt-DataListLabel:where(.rt-high-contrast){color:var(--gray-12)}.rt-DataListLabel:where([data-accent-color]){color:var(--accent-a11)}.rt-DataListLabel:where([data-accent-color]):where(.rt-high-contrast){color:var(--accent-12)}.rt-DataListValue{display:flex;margin:0;min-width:0px;margin-top:var(--data-list-value-margin-top);margin-bottom:var(--data-list-value-margin-bottom)}.rt-DataListItem{--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}:where(.rt-DataListItem:first-child) .rt-DataListValue{margin-top:var(--data-list-first-item-value-margin-top)}:where(.rt-DataListItem:last-child) .rt-DataListValue{margin-bottom:var(--data-list-last-item-value-margin-bottom)}.rt-DataListRoot:where(.rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.rt-r-size-3){gap:calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xs\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xs\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.sm\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.sm\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.md\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.md\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.lg\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.lg\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xl\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xl\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}.rt-DataListRoot:where(.rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}.rt-DataListLabel:before,.rt-DataListValue:before{content:"‍"}.rt-DataListItem:where(.rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}@media (min-width: 520px){.rt-DataListItem:where(.xs\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xs\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 768px){.rt-DataListItem:where(.sm\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.sm\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1024px){.rt-DataListItem:where(.md\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.md\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1280px){.rt-DataListItem:where(.lg\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.lg\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1640px){.rt-DataListItem:where(.xl\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xl\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}.rt-DataListItem:where(:first-child){margin-top:var(--leading-trim-start)}.rt-DataListItem:where(:last-child){margin-bottom:var(--leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xs\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.sm\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.md\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.lg\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xl\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}.rt-DropdownMenuContent{max-height:var(--radix-dropdown-menu-content-available-height);transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.rt-Em{box-sizing:border-box;font-family:var(--em-font-family);font-size:calc(var(--em-font-size-adjust) * 1em);font-style:var(--em-font-style);font-weight:var(--em-font-weight);line-height:1.25;letter-spacing:calc(var(--em-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Em :where(.rt-Em){font-size:inherit}.rt-Heading{--leading-trim-start: var(--heading-leading-trim-start);--leading-trim-end: var(--heading-leading-trim-end);font-family:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--font-weight-bold);line-height:var(--line-height)}:where(.rt-Heading){margin:0}.rt-Heading:where([data-accent-color]){color:var(--accent-a11)}.rt-Heading:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Heading:where(.rt-high-contrast){color:var(--accent-12)}.rt-Heading:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}@media (min-width: 520px){.rt-Heading:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 768px){.rt-Heading:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1024px){.rt-Heading:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1280px){.rt-Heading:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1640px){.rt-Heading:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}.rt-HoverCardContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-4);overflow:auto;position:relative;--inset-padding-top: var(--hover-card-content-padding);--inset-padding-right: var(--hover-card-content-padding);--inset-padding-bottom: var(--hover-card-content-padding);--inset-padding-left: var(--hover-card-content-padding);padding:var(--hover-card-content-padding);box-sizing:border-box;transform-origin:var(--radix-hover-card-content-transform-origin)}.rt-HoverCardContent:where(.rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-HoverCardContent:where(.xs\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-HoverCardContent:where(.sm\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-HoverCardContent:where(.md\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-HoverCardContent:where(.lg\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-HoverCardContent:where(.xl\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}.rt-IconButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height);width:var(--base-button-height)}.rt-IconButton:where(.rt-variant-ghost){padding:var(--icon-button-ghost-padding);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--icon-button-ghost-padding));--margin-right-override: calc(var(--margin-right) - var(--icon-button-ghost-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--icon-button-ghost-padding));--margin-left-override: calc(var(--margin-left) - var(--icon-button-ghost-padding));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-IconButton:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}@media (min-width: 520px){.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 768px){.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1024px){.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1280px){.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1640px){.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}.rt-Inset{box-sizing:border-box;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;overflow:hidden;margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Inset)>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Inset:where(.rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}@media (min-width: 520px){.rt-Inset:where(.xs\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xs\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xs\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xs\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xs\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 768px){.rt-Inset:where(.sm\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.sm\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.sm\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.sm\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.sm\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1024px){.rt-Inset:where(.md\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.md\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.md\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.md\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.md\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1280px){.rt-Inset:where(.lg\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.lg\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.lg\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.lg\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.lg\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1640px){.rt-Inset:where(.xl\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xl\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xl\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xl\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xl\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}.rt-Kbd{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--default-font-family);font-weight:400;vertical-align:text-top;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;top:-.03em;font-size:.75em;min-width:1.75em;line-height:1.7em;box-sizing:border-box;padding-left:.5em;padding-right:.5em;padding-bottom:.05em;word-spacing:-.1em;border-radius:calc(var(--radius-factor) * .35em);letter-spacing:var(--letter-spacing, var(--default-letter-spacing));height:-moz-fit-content;height:fit-content;color:var(--gray-12);background-color:var(--gray-1);box-shadow:var(--kbd-box-shadow);transition:box-shadow .12s,background-color .12s}@media (hover: hover){.rt-Kbd:where(:any-link,button):where(:hover){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}}.rt-Kbd:where(:any-link,button):where([data-state=open]){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}.rt-Kbd:where(:any-link,button):where(:active:not([data-state=open])){padding-top:.05em;padding-bottom:0;transition-duration:40ms,40ms;background-color:var(--gray-2);box-shadow:inset 0 .05em var(--black-a3),0 0 0 .05em var(--gray-a7)}.rt-Kbd:where(:any-link,button):where(:focus-visible){outline:2px solid var(--focus-8)}.rt-Kbd:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Kbd:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Kbd:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Kbd:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Kbd:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Kbd:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}.rt-Link:where(:any-link,button){cursor:var(--cursor-link);text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:min(2px,max(1px,.05em));text-underline-offset:calc(.025em + 2px);text-decoration-color:var(--accent-a5)}.rt-Link:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where([data-accent-color=""]){color:var(--accent-12)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button){text-decoration-color:color-mix(in oklab,var(--accent-a5),var(--gray-a6))}}@media (pointer: coarse){.rt-Link:where(:any-link,button):where(:active:not(:focus-visible,[data-state=open])){outline:.75em solid var(--accent-a4);outline-offset:-.6em}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-line:underline;text-decoration-color:var(--accent-a6)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-color:color-mix(in oklab,var(--accent-a6),var(--gray-a6))}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-hover):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-always){text-decoration-line:underline}.rt-Link:where(:focus-visible){text-decoration-line:none;border-radius:calc(.07em * var(--radius-factor));outline-color:var(--focus-8);outline-width:2px;outline-style:solid;outline-offset:2px}.rt-Link:where(:has(.rt-Code:not(.rt-variant-ghost):only-child)){text-decoration-color:transparent}.rt-PopoverContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-5);min-width:var(--radix-popover-trigger-width);outline:0;overflow:auto;position:relative;--inset-padding-top: var(--popover-content-padding);--inset-padding-right: var(--popover-content-padding);--inset-padding-bottom: var(--popover-content-padding);--inset-padding-left: var(--popover-content-padding);padding:var(--popover-content-padding);box-sizing:border-box;transform-origin:var(--radix-popover-content-transform-origin)}.rt-PopoverContent:where(.rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-PopoverContent:where(.xs\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xs\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-PopoverContent:where(.sm\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.sm\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-PopoverContent:where(.md\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.md\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-PopoverContent:where(.lg\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.lg\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-PopoverContent:where(.xl\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xl\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}.rt-ProgressRoot{--progress-value: 0;--progress-max: 100;--progress-duration: 5s;pointer-events:none;position:relative;overflow:hidden;flex-grow:1;height:var(--progress-height);border-radius:max(calc(var(--radius-factor) * var(--progress-height) / 3),calc(var(--radius-factor) * var(--radius-thumb)))}.rt-ProgressRoot:after{position:absolute;inset:0;content:"";border-radius:inherit}.rt-ProgressIndicator{display:block;height:100%;width:100%;transform:scaleX(calc(var(--progress-value) / var(--progress-max)));transform-origin:left center;transition:transform .12s}.rt-ProgressIndicator:where([data-state=indeterminate]){animation-name:rt-progress-indicator-indeterminate-grow,var(--progress-indicator-indeterminate-animation-start),var(--progress-indicator-indeterminate-animation-repeat);animation-delay:0s,calc(var(--progress-duration) + 5s),calc(var(--progress-duration) + 7.5s);animation-duration:var(--progress-duration),2.5s,5s;animation-iteration-count:1,1,infinite;animation-fill-mode:both,none,none;animation-direction:normal,normal,alternate}.rt-ProgressIndicator:where([data-state=indeterminate]):after{position:absolute;inset:0;content:"";width:400%;animation-name:rt-progress-indicator-indeterminate-shine-from-left;animation-delay:calc(var(--progress-duration) + 5s);animation-duration:5s;animation-fill-mode:backwards;animation-iteration-count:infinite;background-image:linear-gradient(to right,transparent 25%,var(--progress-indicator-after-linear-gradient),transparent 75%)}@keyframes rt-progress-indicator-indeterminate-grow{0%{transform:scaleX(.01)}20%{transform:scaleX(.1)}30%{transform:scaleX(.6)}40%,50%{transform:scaleX(.9)}to{transform:scaleX(1)}}@keyframes rt-progress-indicator-indeterminate-shine-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.rt-ProgressRoot:where(.rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.rt-r-size-3){--progress-height: var(--space-2)}@media (min-width: 520px){.rt-ProgressRoot:where(.xs\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xs\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xs\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 768px){.rt-ProgressRoot:where(.sm\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.sm\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.sm\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1024px){.rt-ProgressRoot:where(.md\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.md\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.md\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1280px){.rt-ProgressRoot:where(.lg\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.lg\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.lg\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1640px){.rt-ProgressRoot:where(.xl\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xl\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xl\:rt-r-size-3){--progress-height: var(--space-2)}}.rt-ProgressRoot:where(.rt-variant-surface){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-surface-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-surface-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-surface):after{box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-ProgressRoot:where(.rt-variant-surface) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-surface-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-surface-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-classic){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-classic-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-classic-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-classic):after{box-shadow:var(--shadow-1)}.rt-ProgressRoot:where(.rt-variant-classic) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-classic-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-classic-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-soft){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-soft-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-soft-indeterminate-pulse;background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator){background-image:linear-gradient(var(--accent-a5),var(--accent-a5));background-color:var(--accent-8)}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-soft-indeterminate-fade{to{background-color:var(--accent-5)}}@keyframes rt-progress-indicator-soft-indeterminate-pulse{0%{background-color:var(--accent-5)}to{background-color:var(--accent-7)}}.rt-ProgressRoot:where(.rt-high-contrast){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-high-contrast-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-high-contrast-indeterminate-pulse}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator){background-color:var(--accent-12)}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-high-contrast-indeterminate-fade{to{opacity:.8}}@keyframes rt-progress-indicator-high-contrast-indeterminate-pulse{0%{opacity:.8}to{opacity:1}}.rt-Quote{box-sizing:border-box;font-family:var(--quote-font-family);font-size:calc(var(--quote-font-size-adjust) * 1em);font-style:var(--quote-font-style);font-weight:var(--quote-font-weight);line-height:1.25;letter-spacing:calc(var(--quote-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Quote :where(.rt-Quote){font-size:inherit}.rt-RadioCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-RadioCardsItem{--base-card-padding-top: var(--radio-cards-item-padding-y);--base-card-padding-right: var(--radio-cards-item-padding-x);--base-card-padding-bottom: var(--radio-cards-item-padding-y);--base-card-padding-left: var(--radio-cards-item-padding-x);--base-card-border-radius: var(--radio-cards-item-border-radius);--base-card-border-width: var(--radio-cards-item-border-width);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.rt-RadioCardsItem>*{pointer-events:none}.rt-RadioCardsItem>:where(svg){flex-shrink:0}.rt-RadioCardsItem:after{outline-offset:-1px}.rt-RadioCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}@media (min-width: 520px){.rt-RadioCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 768px){.rt-RadioCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1024px){.rt-RadioCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1280px){.rt-RadioCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1640px){.rt-RadioCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-RadioCardsItem:where([data-state=checked]):after{outline:2px solid var(--accent-indicator)}:where(.rt-RadioCardsRoot.rt-high-contrast) .rt-RadioCardsItem:where([data-state=checked]):after{outline-color:var(--accent-12)}.rt-RadioCardsItem:where(:focus-visible):after{outline:2px solid var(--focus-8)}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):before{background-image:linear-gradient(var(--focus-a3),var(--focus-a3))}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):after{outline-color:var(--focus-10)}.rt-RadioCardsItem:where(:disabled){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-RadioCardsItem:where(:disabled)::selection{background-color:var(--gray-a5)}.rt-RadioCardsItem:where(:disabled):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-RadioCardsItem:where(:disabled):after{outline-color:var(--gray-8)}.rt-RadioGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-RadioGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-RadioGroupItemInner{min-width:0}.rt-BaseRadioRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-radio);height:var(--skeleton-height, var(--line-height, var(--radio-size)));--skeleton-height-override: var(--radio-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: 100%}.rt-BaseRadioRoot:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-BaseRadioRoot:before{content:"";display:block;height:var(--radio-size);width:var(--radio-size);border-radius:100%}.rt-BaseRadioRoot:after{pointer-events:none;position:absolute;height:var(--radio-size);width:var(--radio-size);border-radius:100%;transform:scale(.4)}.rt-BaseRadioRoot:where(:checked,[data-state=checked]):after{content:""}.rt-BaseRadioRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseRadioRoot:where(.rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-BaseRadioRoot:where(.xs\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-BaseRadioRoot:where(.sm\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-BaseRadioRoot:where(.md\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.md\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.md\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-BaseRadioRoot:where(.lg\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-BaseRadioRoot:where(.xl\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator)}.rt-BaseRadioRoot:where(.rt-variant-surface):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-7),var(--shadow-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a3));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseRadioRoot:where(.rt-variant-classic):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):before{box-shadow:var(--shadow-1);background-color:var(--gray-a3);background-image:none}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):before{background-color:var(--accent-a4)}.rt-BaseRadioRoot:where(.rt-variant-soft):after{background-color:var(--accent-a11)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(.rt-high-contrast):after{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:focus-visible):before{outline-color:var(--accent-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):before{background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-ScrollAreaRoot{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%}.rt-ScrollAreaViewport{display:flex;flex-direction:column;width:100%;height:100%}.rt-ScrollAreaViewport:where(:focus-visible)+:where(.rt-ScrollAreaViewportFocusRing){position:absolute;inset:0;pointer-events:none;outline:2px solid var(--focus-8);outline-offset:-2px}.rt-ScrollAreaViewport:where(:has(.rt-ScrollAreaScrollbar[data-orientation=horizontal])){overscroll-behavior-x:contain}.rt-ScrollAreaViewport>*{display:block!important;width:-moz-fit-content;width:fit-content;flex-grow:1}.rt-ScrollAreaScrollbar{display:flex;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--gray-a3);border-radius:var(--scrollarea-scrollbar-border-radius);animation-duration:.12s;animation-timing-function:ease-out}.rt-ScrollAreaScrollbar:where([data-orientation=vertical]){flex-direction:column;width:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-vertical-margin-top);margin-bottom:var(--scrollarea-scrollbar-vertical-margin-bottom);margin-left:var(--scrollarea-scrollbar-vertical-margin-left);margin-right:var(--scrollarea-scrollbar-vertical-margin-right)}.rt-ScrollAreaScrollbar:where([data-orientation=horizontal]){flex-direction:row;height:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-horizontal-margin-top);margin-bottom:var(--scrollarea-scrollbar-horizontal-margin-bottom);margin-left:var(--scrollarea-scrollbar-horizontal-margin-left);margin-right:var(--scrollarea-scrollbar-horizontal-margin-right)}.rt-ScrollAreaThumb{position:relative;background-color:var(--gray-a8);border-radius:inherit;transition:background-color .1s}.rt-ScrollAreaThumb:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;min-width:var(--space-4);min-height:var(--space-4)}.rt-ScrollAreaScrollbar:where(.rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}@media (min-width: 520px){.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 768px){.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1024px){.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1280px){.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1640px){.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}.rt-ScrollAreaScrollbar:where([data-state=visible]){animation-name:rt-fade-in}.rt-ScrollAreaScrollbar:where([data-state=hidden]){animation-name:rt-fade-out}@media (hover: hover){.rt-ScrollAreaThumb:where(:hover){background-color:var(--gray-a9)}}.rt-SegmentedControlRoot{display:inline-grid;vertical-align:top;grid-auto-flow:column;grid-auto-columns:1fr;align-items:stretch;color:var(--gray-12);background-color:var(--color-surface);background-image:linear-gradient(var(--gray-a3),var(--gray-a3));position:relative;min-width:max-content;font-family:var(--default-font-family);font-style:normal;text-align:center;isolation:isolate;border-radius:var(--segmented-control-border-radius)}.rt-SegmentedControlRoot:where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-3)}.rt-SegmentedControlItem{display:flex;align-items:stretch;-webkit-user-select:none;user-select:none}.rt-SegmentedControlItem:where(:first-child){border-top-left-radius:inherit;border-bottom-left-radius:inherit}.rt-SegmentedControlItem:where(:nth-last-child(2)){border-top-right-radius:inherit;border-bottom-right-radius:inherit}.rt-SegmentedControlItem:where(:focus-visible){border-radius:inherit;outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SegmentedControlItemLabel :where(svg){flex-shrink:0}@media (hover: hover){:where(.rt-SegmentedControlItem[data-state=off]:not([disabled]):hover) .rt-SegmentedControlItemLabel{background-color:var(--gray-a2)}}.rt-SegmentedControlItemLabelInactive{position:absolute;transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-regular);letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing);opacity:1;transition-timing-function:ease-out}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelInactive{opacity:0;transition-timing-function:ease-in}.rt-SegmentedControlItemLabelActive{transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing);opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelActive{opacity:1;transition-timing-function:ease-out}.rt-SegmentedControlItemSeparator{z-index:-1;margin:3px -.5px;width:1px;background-color:var(--gray-a4);transition:opacity calc(.8 * var(--segmented-control-transition-duration));transition-timing-function:ease-out}:where(.rt-SegmentedControlItem:first-child) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible)) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible))+* .rt-SegmentedControlItemSeparator{opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlRoot:has(:focus-visible)) .rt-SegmentedControlItemSeparator{transition-duration:0ms}.rt-SegmentedControlIndicator{display:none;position:absolute;z-index:-1;top:0;left:0;height:100%;pointer-events:none;transition-property:transform;transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-duration:var(--segmented-control-transition-duration)}.rt-SegmentedControlIndicator:before{inset:1px;position:absolute;border-radius:max(.5px,calc(var(--segmented-control-border-radius) - 1px));background-color:var(--segmented-control-indicator-background-color);content:""}:where(.rt-SegmentedControlItem[data-state=on])~.rt-SegmentedControlIndicator{display:block}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator{--segmented-control-indicator-background-color: var(--gray-a3)}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator:before{inset:0;box-shadow:none}.rt-SegmentedControlIndicator:where(:nth-child(2)){width:100%}.rt-SegmentedControlIndicator:where(:nth-child(3)){width:50%}.rt-SegmentedControlIndicator:where(:nth-child(4)){width:calc(100% / 3)}.rt-SegmentedControlIndicator:where(:nth-child(5)){width:25%}.rt-SegmentedControlIndicator:where(:nth-child(6)){width:20%}.rt-SegmentedControlIndicator:where(:nth-child(7)){width:calc(100% / 6)}.rt-SegmentedControlIndicator:where(:nth-child(8)){width:calc(100% / 7)}.rt-SegmentedControlIndicator:where(:nth-child(9)){width:12.5%}.rt-SegmentedControlIndicator:where(:nth-child(10)){width:calc(100% / 9)}.rt-SegmentedControlIndicator:where(:nth-child(11)){width:10%}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(1))~.rt-SegmentedControlIndicator{transform:translate(0)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(2))~.rt-SegmentedControlIndicator{transform:translate(100%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(3))~.rt-SegmentedControlIndicator{transform:translate(200%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(4))~.rt-SegmentedControlIndicator{transform:translate(300%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(5))~.rt-SegmentedControlIndicator{transform:translate(400%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(6))~.rt-SegmentedControlIndicator{transform:translate(500%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(7))~.rt-SegmentedControlIndicator{transform:translate(600%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(8))~.rt-SegmentedControlIndicator{transform:translate(700%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(9))~.rt-SegmentedControlIndicator{transform:translate(800%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(10))~.rt-SegmentedControlIndicator{transform:translate(900%)}.rt-SegmentedControlItemLabel{box-sizing:border-box;display:flex;flex-grow:1;align-items:center;justify-content:center;border-radius:inherit}.rt-SegmentedControlRoot:where(.rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}@media (min-width: 520px){.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 768px){.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1024px){.rt-SegmentedControlRoot:where(.md\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1280px){.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1640px){.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}.rt-SegmentedControlRoot:where(.rt-variant-surface) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:0 0 0 1px var(--gray-a4)}.rt-SegmentedControlRoot:where(.rt-variant-classic) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:var(--shadow-2)}.rt-SelectTrigger{display:inline-flex;align-items:center;justify-content:space-between;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;line-height:var(--height);font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;color:var(--gray-12)}.rt-SelectTrigger:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SelectTriggerInner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-SelectIcon{flex-shrink:0}:where(.rt-SelectTrigger:not(.rt-variant-ghost)) .rt-SelectIcon{opacity:.9}.rt-SelectContent:where([data-side]){min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height);transform-origin:var(--radix-select-content-transform-origin)}.rt-SelectViewport{box-sizing:border-box;padding:var(--select-content-padding)}:where(.rt-SelectContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-SelectViewport{padding-right:var(--space-3)}.rt-SelectItem{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);position:relative;box-sizing:border-box;outline:none;scroll-margin:var(--select-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-SelectItemIndicator{position:absolute;left:0;width:var(--select-item-indicator-width);display:inline-flex;align-items:center;justify-content:center}.rt-SelectSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--select-item-indicator-width);margin-right:var(--select-separator-margin-right);background-color:var(--gray-a6)}.rt-SelectLabel{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-SelectItem)+.rt-SelectLabel{margin-top:var(--space-2)}.rt-SelectTrigger:where(:not(.rt-variant-ghost)){box-sizing:border-box;height:var(--select-trigger-height)}.rt-SelectTrigger:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content;padding:var(--select-trigger-ghost-padding-y) var(--select-trigger-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--select-trigger-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--select-trigger-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--select-trigger-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--select-trigger-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-SelectTrigger:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-SelectTrigger:where(.rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}@media (min-width: 520px){.rt-SelectTrigger:where(.xs\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xs\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 768px){.rt-SelectTrigger:where(.sm\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.sm\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1024px){.rt-SelectTrigger:where(.md\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.md\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1280px){.rt-SelectTrigger:where(.lg\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.lg\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1640px){.rt-SelectTrigger:where(.xl\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xl\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}.rt-SelectContent:where(.rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}@media (min-width: 520px){.rt-SelectContent:where(.xs\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 768px){.rt-SelectContent:where(.sm\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1024px){.rt-SelectContent:where(.md\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1280px){.rt-SelectContent:where(.lg\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1640px){.rt-SelectContent:where(.xl\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}.rt-SelectTrigger:where(.rt-variant-surface){color:var(--gray-12);background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a8)}}.rt-SelectTrigger:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a8)}.rt-SelectTrigger:where(.rt-variant-surface):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a2);box-shadow:inset 0 0 0 1px var(--gray-a6)}.rt-SelectTrigger:where(.rt-variant-surface):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-classic){color:var(--gray-12);background-image:linear-gradient(var(--gray-2),var(--gray-1));box-shadow:var(--select-trigger-classic-box-shadow);position:relative;z-index:0}.rt-SelectTrigger:where(.rt-variant-classic):before{content:"";position:absolute;z-index:-1;inset:0;border:2px solid transparent;background-clip:content-box;border-radius:inherit;pointer-events:none;background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1) 130%),linear-gradient(var(--color-surface),transparent)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-classic):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:hover):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled){color:var(--gray-a11);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled):before{background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-SelectTrigger:where(.rt-variant-classic):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-soft),.rt-SelectTrigger:where(.rt-variant-ghost){color:var(--accent-12)}.rt-SelectTrigger:where(.rt-variant-soft):where([data-placeholder]) :where(.rt-SelectTriggerInner),.rt-SelectTrigger:where(.rt-variant-ghost):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--accent-12);opacity:.6}.rt-SelectTrigger:where(.rt-variant-soft){background-color:var(--accent-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-SelectTrigger:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-SelectTrigger:where(.rt-variant-soft):where(:focus-visible){outline-color:var(--accent-8)}.rt-SelectTrigger:where(.rt-variant-soft):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-SelectTrigger:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-SelectTrigger:where(.rt-variant-ghost):where(:disabled){color:var(--gray-a11);background-color:transparent}.rt-SelectTrigger:where(:disabled) :where(.rt-SelectIcon){color:var(--gray-a9)}.rt-SelectContent{box-shadow:var(--shadow-5);--scrollarea-scrollbar-vertical-margin-top: var(--select-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--select-content-padding);overflow:hidden;background-color:var(--color-panel-solid)}.rt-SelectItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-SelectContent:where(.rt-variant-solid) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-SelectContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-SelectContent:where(.rt-variant-soft) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-a4)}.rt-Separator{display:block;background-color:var(--accent-a6)}.rt-Separator:where(.rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.rt-r-orientation-vertical){width:1px;height:var(--separator-size)}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xs\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.sm\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.md\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.lg\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xl\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}.rt-Separator:where(.rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.rt-r-size-4){--separator-size: 100%}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xs\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xs\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xs\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.sm\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.sm\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.sm\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.md\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.md\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.md\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.lg\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.lg\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.lg\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xl\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xl\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xl\:rt-r-size-4){--separator-size: 100%}}.rt-SliderRoot{--slider-thumb-size: calc(var(--slider-track-size) + var(--space-1));position:relative;display:flex;align-items:center;flex-grow:1;border-radius:max(calc(var(--radius-factor) * var(--slider-track-size) / 3),calc(var(--radius-factor) * var(--radius-thumb)));-webkit-user-select:none;user-select:none;touch-action:none}.rt-SliderRoot:where([data-orientation=horizontal]){width:-webkit-fill-available;width:-moz-available;width:stretch;height:var(--slider-track-size)}.rt-SliderRoot:where([data-orientation=vertical]){height:-webkit-fill-available;height:-moz-available;height:stretch;flex-direction:column;width:var(--slider-track-size)}.rt-SliderTrack{overflow:hidden;position:relative;flex-grow:1;border-radius:inherit}.rt-SliderTrack:where([data-orientation=horizontal]){height:var(--slider-track-size)}.rt-SliderTrack:where([data-orientation=vertical]){width:var(--slider-track-size)}.rt-SliderRange{position:absolute;border-radius:inherit}.rt-SliderRange:where([data-orientation=horizontal]){height:100%}.rt-SliderRange:where([data-orientation=vertical]){width:100%}.rt-SliderThumb{display:block;width:var(--slider-thumb-size);height:var(--slider-thumb-size);outline:0}.rt-SliderThumb:before{content:"";position:absolute;z-index:-1;width:calc(var(--slider-thumb-size) * 3);height:calc(var(--slider-thumb-size) * 3);top:50%;left:50%;transform:translate(-50%,-50%)}.rt-SliderThumb:after{content:"";position:absolute;inset:calc(-.25 * var(--slider-track-size));background-color:#fff;border-radius:max(var(--radius-1),var(--radius-thumb));box-shadow:var(--slider-thumb-box-shadow);cursor:var(--cursor-slider-thumb)}.rt-SliderThumb:where(:focus-visible):after{box-shadow:var(--slider-thumb-box-shadow),0 0 0 3px var(--accent-3),0 0 0 5px var(--focus-8)}.rt-SliderThumb:where(:active){cursor:var(--cursor-slider-thumb-active)}.rt-SliderRoot:where(.rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}@media (min-width: 520px){.rt-SliderRoot:where(.xs\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xs\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xs\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 768px){.rt-SliderRoot:where(.sm\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.sm\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.sm\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1024px){.rt-SliderRoot:where(.md\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.md\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.md\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1280px){.rt-SliderRoot:where(.lg\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.lg\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.lg\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1640px){.rt-SliderRoot:where(.xl\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xl\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xl\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack){background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack):where([data-disabled]){box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack){background-color:var(--gray-a3);position:relative}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):before{content:"";inset:0;position:absolute;border-radius:inherit;box-shadow:var(--shadow-1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):where([data-disabled]):before{opacity:.5}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 1px 3px var(--black-a1), 0 2px 4px -1px var(--black-a1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack){background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack):where([data-disabled]){background-color:var(--gray-a4);background-image:none}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderRange){background-image:linear-gradient(var(--accent-a5),var(--accent-a5)),var(--slider-range-high-contrast-background-image);background-color:var(--accent-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 0 0 1px var(--gray-a2), 0 0 0 1px var(--accent-a2), 0 1px 2px var(--gray-a4), 0 1px 3px -.5px var(--gray-a3)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-5)}.rt-SliderRoot:where(:not(.rt-high-contrast)){--slider-range-high-contrast-background-image: none}.rt-SliderRoot:where([data-disabled]){cursor:var(--cursor-disabled);mix-blend-mode:var(--slider-disabled-blend-mode)}.rt-SliderRange:where([data-disabled]){background-color:transparent;background-image:none;box-shadow:none}.rt-SliderThumb:where([data-disabled]),.rt-SliderThumb:where([data-disabled]):after{cursor:var(--cursor-disabled)}.rt-Spinner{display:block;position:relative;opacity:var(--spinner-opacity)}.rt-SpinnerLeaf{position:absolute;top:0;left:43.75%;width:12.5%;height:100%;animation:rt-spinner-leaf-fade var(--spinner-animation-duration) linear infinite}.rt-SpinnerLeaf:before{content:"";display:block;width:100%;height:30%;border-radius:var(--radius-1);background-color:currentColor}.rt-SpinnerLeaf:where(:nth-child(1)){transform:rotate(0);animation-delay:calc(-8 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(2)){transform:rotate(45deg);animation-delay:calc(-7 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(3)){transform:rotate(90deg);animation-delay:calc(-6 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(4)){transform:rotate(135deg);animation-delay:calc(-5 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(5)){transform:rotate(180deg);animation-delay:calc(-4 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(6)){transform:rotate(225deg);animation-delay:calc(-3 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(7)){transform:rotate(270deg);animation-delay:calc(-2 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(8)){transform:rotate(315deg);animation-delay:calc(-1 / 8 * var(--spinner-animation-duration))}@keyframes rt-spinner-leaf-fade{0%{opacity:1}to{opacity:.25}}.rt-Spinner:where(.rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}@media (min-width: 520px){.rt-Spinner:where(.xs\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xs\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xs\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 768px){.rt-Spinner:where(.sm\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.sm\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.sm\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1024px){.rt-Spinner:where(.md\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.md\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.md\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1280px){.rt-Spinner:where(.lg\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.lg\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.lg\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1640px){.rt-Spinner:where(.xl\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xl\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xl\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}.rt-Strong{font-family:var(--strong-font-family);font-size:calc(var(--strong-font-size-adjust) * 1em);font-style:var(--strong-font-style);font-weight:var(--strong-font-weight);letter-spacing:calc(var(--strong-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)))}.rt-Strong :where(.rt-Strong){font-size:inherit}.rt-SwitchRoot{position:relative;display:inline-flex;align-items:center;vertical-align:top;flex-shrink:0;height:var(--skeleton-height, var(--line-height, var(--switch-height)));--skeleton-height-override: var(--switch-height);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--switch-border-radius);--switch-width: calc(var(--switch-height) * 1.75);--switch-thumb-inset: 1px;--switch-thumb-size: calc(var(--switch-height) - var(--switch-thumb-inset) * 2);--switch-thumb-translate-x: calc(var(--switch-width) - var(--switch-height))}.rt-SwitchRoot:before{content:"";display:block;width:var(--switch-width);height:var(--switch-height);border-radius:var(--switch-border-radius);transition:background-position,background-color,box-shadow,filter;transition-timing-function:linear,ease-in-out,ease-in-out,ease-in-out;background-repeat:no-repeat;background-size:calc(var(--switch-width) * 2 + var(--switch-height)) 100%;cursor:var(--cursor-switch)}.rt-SwitchRoot:where([data-state=unchecked]):before{transition-duration:.12s,.14s,.14s,.14s;background-position-x:100%}.rt-SwitchRoot:where([data-state=checked]):before{transition-duration:.16s,.14s,.14s,.14s;background-position:0%}.rt-SwitchRoot:where(:active):before{transition-duration:30ms}.rt-SwitchRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-SwitchRoot:where([data-disabled]):before{cursor:var(--cursor-disabled)}.rt-SwitchThumb{background-color:#fff;position:absolute;left:var(--switch-thumb-inset);width:var(--switch-thumb-size);height:var(--switch-thumb-size);border-radius:calc(var(--switch-border-radius) - var(--switch-thumb-inset));transition:transform .14s cubic-bezier(.45,.05,.55,.95),box-shadow .14s ease-in-out}.rt-SwitchThumb:where([data-state=checked]){transform:translate(var(--switch-thumb-translate-x))}.rt-SwitchRoot:where(.rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}@media (min-width: 520px){.rt-SwitchRoot:where(.xs\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 768px){.rt-SwitchRoot:where(.sm\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1024px){.rt-SwitchRoot:where(.md\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1280px){.rt-SwitchRoot:where(.lg\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1640px){.rt-SwitchRoot:where(.xl\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}.rt-SwitchRoot:where(.rt-variant-surface):before{background-color:var(--gray-a3);background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-surface):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 1px 1px var(--black-a2),0 1px 1px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-classic):before{background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);background-color:var(--gray-a4);box-shadow:var(--shadow-1)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=unchecked]:active):before{background-color:var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2);background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a5);box-shadow:var(--shadow-1);opacity:.5}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 1px 3px var(--black-a3),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-soft):before{background-image:linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--gray-a2) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-state=unchecked]):before{background-color:var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-soft):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--accent-a3) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb){filter:saturate(.45)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a1),0 1px 3px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a2),0 1px 3px var(--accent-a3),0 2px 4px -1px var(--accent-a3)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-disabled]){filter:none;background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-BaseTabList::-webkit-scrollbar{display:none}.rt-BaseTabListTrigger{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;-webkit-user-select:none;user-select:none;box-sizing:border-box;height:var(--tab-height);padding-left:var(--tab-padding-x);padding-right:var(--tab-padding-x);color:var(--gray-a11)}.rt-BaseTabListTriggerInner,.rt-BaseTabListTriggerInnerHidden{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--tab-inner-padding-y) var(--tab-inner-padding-x);border-radius:var(--tab-inner-border-radius)}.rt-BaseTabListTriggerInner{position:absolute}:where(.rt-BaseTabListTrigger[data-state=inactive],.rt-TabNavLink:not([data-active])) .rt-BaseTabListTriggerInner{letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing)}:where(.rt-BaseTabListTrigger[data-state=active],.rt-TabNavLink[data-active]) .rt-BaseTabListTriggerInner{font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabListTriggerInnerHidden{visibility:hidden;font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabList:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}@media (min-width: 520px){.rt-BaseTabList:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 768px){.rt-BaseTabList:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1024px){.rt-BaseTabList:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.md\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1280px){.rt-BaseTabList:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1640px){.rt-BaseTabList:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}.rt-BaseTabList{box-shadow:inset 0 -1px 0 0 var(--gray-a5);display:flex;justify-content:flex-start;overflow-x:auto;white-space:nowrap;font-family:var(--default-font-family);font-style:normal;scrollbar-width:none}@media (hover: hover){.rt-BaseTabListTrigger:where(:hover){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--gray-a3)}.rt-BaseTabListTrigger:where(:focus-visible:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--accent-a3)}}.rt-BaseTabListTrigger:where([data-state=active],[data-active]){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:focus-visible) :where(.rt-BaseTabListTriggerInner){outline:2px solid var(--focus-8);outline-offset:-2px}.rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{box-sizing:border-box;content:"";height:2px;position:absolute;bottom:0;left:0;right:0;background-color:var(--accent-indicator)}:where(.rt-BaseTabList.rt-high-contrast) .rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{background-color:var(--accent-12)}.rt-TabNavItem{display:flex}.rt-TableRootTable{--table-row-background-color: transparent;--table-row-box-shadow: inset 0 -1px var(--gray-a5);width:100%;text-align:left;vertical-align:top;border-collapse:collapse;border-radius:calc(var(--table-border-radius) - 1px);border-spacing:0;box-sizing:border-box;height:0}.rt-TableHeader,.rt-TableBody{vertical-align:inherit}.rt-TableRow{vertical-align:inherit;color:var(--gray-12)}.rt-TableCell{background-color:var(--table-row-background-color);box-shadow:var(--table-row-box-shadow);box-sizing:border-box;vertical-align:inherit;padding:var(--table-cell-padding);height:var(--table-cell-min-height)}.rt-Inset :where(.rt-TableCell:first-child){padding-left:var(--inset-padding-left, var(--table-cell-padding))}.rt-Inset :where(.rt-TableCell:last-child){padding-right:var(--inset-padding-right, var(--table-cell-padding))}.rt-TableColumnHeaderCell{font-weight:700}.rt-TableRowHeaderCell{font-weight:400}.rt-TableRoot:where(.rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}@media (min-width: 520px){.rt-TableRoot:where(.xs\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xs\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 768px){.rt-TableRoot:where(.sm\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.sm\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1024px){.rt-TableRoot:where(.md\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.md\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1280px){.rt-TableRoot:where(.lg\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.lg\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1640px){.rt-TableRoot:where(.xl\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xl\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}.rt-TableRoot:where(.rt-variant-surface){box-sizing:border-box;border:1px solid var(--gray-a5);border-radius:var(--table-border-radius);background-color:var(--color-panel);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel);background-clip:padding-box;position:relative}@supports (box-shadow: 0 0 0 1px color-mix(in oklab,white,black)){.rt-TableRoot:where(.rt-variant-surface){border-color:color-mix(in oklab,var(--gray-a5),var(--gray-6))}}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable){overflow:hidden}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableHeader){--table-row-background-color: var(--gray-a2)}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableBody) :where(.rt-TableRow:last-child){--table-row-box-shadow: none}.rt-TableRoot:where(.rt-variant-ghost){--scrollarea-scrollbar-horizontal-margin-left: 0;--scrollarea-scrollbar-horizontal-margin-right: 0}.rt-TabsContent{position:relative;outline:0}.rt-TabsContent:where(:focus-visible){outline:2px solid var(--focus-8)}.rt-TextAreaRoot:where(:focus-within){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-TextAreaInput::-webkit-scrollbar{width:var(--space-3);height:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track,.rt-TextAreaInput::-webkit-scrollbar-thumb{background-clip:content-box;border:var(--space-1) solid transparent;border-radius:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track{background-color:var(--gray-a3)}.rt-TextAreaInput::-webkit-scrollbar-thumb{background-color:var(--gray-a8)}@media (hover: hover){:where(.rt-TextAreaInput:not(:disabled))::-webkit-scrollbar-thumb:hover{background-color:var(--gray-a9)}}.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}.rt-TextAreaRoot{padding:var(--text-area-border-width);display:flex;flex-direction:column;box-sizing:border-box;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;overflow:hidden}.rt-TextAreaInput{padding:var(--text-area-padding-y) var(--text-area-padding-x);border-radius:inherit;resize:none;display:block;width:100%;flex-grow:1;cursor:auto}.rt-TextAreaRoot:where(.rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}@media (min-width: 520px){.rt-TextAreaRoot:where(.xs\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 768px){.rt-TextAreaRoot:where(.sm\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1024px){.rt-TextAreaRoot:where(.md\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.md\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.md\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1280px){.rt-TextAreaRoot:where(.lg\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1640px){.rt-TextAreaRoot:where(.xl\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}.rt-TextAreaRoot:where(.rt-variant-surface){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-surface) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a6)}.rt-TextAreaRoot:where(.rt-variant-classic){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-classic) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextAreaRoot:where(.rt-variant-soft){--text-area-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::selection{background-color:var(--accent-a5)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::placeholder{color:var(--accent-12);opacity:.65}.rt-TextAreaRoot:where(.rt-variant-soft):where(:focus-within){outline-color:var(--accent-8)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextAreaInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextAreaInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextAreaInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextAreaInput:where(:disabled,:read-only)::selection{background-color:var(--gray-a5)}.rt-TextAreaRoot:where(:focus-within:has(.rt-TextAreaInput:where(:disabled,:read-only))){outline-color:var(--gray-8)}@supports selector(:has(*)){.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:focus)){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){.rt-TextFieldRoot:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}.rt-TextFieldRoot::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput{width:100%;display:flex;align-items:center;text-align:inherit;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));text-indent:var(--text-field-padding)}.rt-TextFieldInput:where([type=number]){-moz-appearance:textfield}.rt-TextFieldInput::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput::-webkit-calendar-picker-indicator{box-sizing:content-box;width:var(--text-field-native-icon-size);height:var(--text-field-native-icon-size);padding:var(--space-1);margin-left:0;margin-right:calc(var(--space-1) * -1);border-radius:calc(var(--text-field-border-radius) - 2px)}.rt-TextFieldInput:where(:not([type=time]))::-webkit-calendar-picker-indicator{margin-left:var(--space-1)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:hover){background-color:var(--gray-a3)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:focus-visible){outline:2px solid var(--text-field-focus-color)}.rt-TextFieldInput::-webkit-datetime-edit-ampm-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-day-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-hour-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-millisecond-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-minute-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-month-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-second-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-week-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-year-field:where(:focus){background-color:var(--text-field-selection-color);color:inherit;outline:none}@supports selector(:has(*)){.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}}.rt-TextFieldSlot{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;cursor:text}.rt-TextFieldSlot:where(:not([data-side=right])){order:-1;margin-left:calc(var(--text-field-border-width) * -1);margin-right:0}.rt-TextFieldSlot:where([data-side=right]),:where(.rt-TextFieldSlot:not([data-side=right]))~.rt-TextFieldSlot:where(:not([data-side=left])){order:0;margin-left:0;margin-right:calc(var(--text-field-border-width) * -1)}.rt-TextFieldRoot{box-sizing:border-box;height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:var(--text-field-border-radius);display:flex;align-items:stretch;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start}.rt-TextFieldInput:where([type=date],[type=datetime-local],[type=time],[type=week],[type=month]){text-indent:0;padding-left:var(--text-field-padding);padding-right:var(--text-field-padding)}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot:not([data-side=right]))){text-indent:0;padding-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot[data-side=right],~.rt-TextFieldSlot:not([data-side=right])~.rt-TextFieldSlot:not([data-side=left]))){padding-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.rt-TextFieldRoot:where(.rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}@media (min-width: 520px){.rt-TextFieldRoot:where(.xs\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 768px){.rt-TextFieldRoot:where(.sm\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1024px){.rt-TextFieldRoot:where(.md\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.md\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1280px){.rt-TextFieldRoot:where(.lg\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1640px){.rt-TextFieldRoot:where(.xl\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}.rt-TextFieldRoot:where(.rt-variant-surface){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a6)}.rt-TextFieldRoot:where(.rt-variant-classic){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextFieldRoot:where(.rt-variant-soft){--text-field-selection-color: var(--accent-a5);--text-field-focus-color: var(--accent-8);--text-field-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldInput)::placeholder{color:var(--accent-12);opacity:.6}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot){color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextFieldInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextFieldInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown)~:where(.rt-TextFieldSlot){cursor:var(--cursor-disabled)}.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){--text-field-selection-color: var(--gray-a5);--text-field-focus-color: var(--gray-8)}.rt-ThemePanelShortcut:where(:focus-visible){outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--accent-9)}.rt-ThemePanelSwatch,.rt-ThemePanelRadioCard{position:relative}.rt-ThemePanelSwatchInput,.rt-ThemePanelRadioCardInput{-webkit-appearance:none;appearance:none;margin:0;outline:none;outline-width:2px;position:absolute;inset:0;border-radius:inherit;width:100%;height:100%}.rt-ThemePanelSwatch{width:var(--space-5);height:var(--space-5);border-radius:100%}.rt-ThemePanelSwatchInput{outline-offset:2px}.rt-ThemePanelSwatchInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelSwatchInput:where(:focus-visible){outline-style:solid;outline-color:var(--accent-9)}.rt-ThemePanelRadioCard{border-radius:var(--radius-1);box-shadow:0 0 0 1px var(--gray-7)}.rt-ThemePanelRadioCardInput{outline-offset:-1px}.rt-ThemePanelRadioCardInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelRadioCardInput:where(:focus-visible){background-color:var(--accent-a3);outline-style:solid;outline-color:var(--accent-9)}.rt-TooltipContent{box-sizing:border-box;padding:var(--space-1) var(--space-2);background-color:var(--gray-12);border-radius:var(--radius-2);transform-origin:var(--radix-tooltip-content-transform-origin);animation-duration:.14s;animation-timing-function:cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion: no-preference){.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}}.rt-TooltipText{color:var(--gray-1);-webkit-user-select:none;user-select:none;cursor:default}.rt-TooltipArrow{fill:var(--gray-12)}.radix-themes:where([data-is-root-theme=true]){position:relative;z-index:0;min-height:100vh}@supports (min-height: 100dvh){.radix-themes:where([data-is-root-theme=true]){min-height:100dvh}}.rt-r-ai-start{align-items:flex-start}.rt-r-ai-center{align-items:center}.rt-r-ai-end{align-items:flex-end}.rt-r-ai-baseline{align-items:baseline}.rt-r-ai-stretch{align-items:stretch}@media (min-width: 520px){.xs\:rt-r-ai-start{align-items:flex-start}.xs\:rt-r-ai-center{align-items:center}.xs\:rt-r-ai-end{align-items:flex-end}.xs\:rt-r-ai-baseline{align-items:baseline}.xs\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 768px){.sm\:rt-r-ai-start{align-items:flex-start}.sm\:rt-r-ai-center{align-items:center}.sm\:rt-r-ai-end{align-items:flex-end}.sm\:rt-r-ai-baseline{align-items:baseline}.sm\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1024px){.md\:rt-r-ai-start{align-items:flex-start}.md\:rt-r-ai-center{align-items:center}.md\:rt-r-ai-end{align-items:flex-end}.md\:rt-r-ai-baseline{align-items:baseline}.md\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1280px){.lg\:rt-r-ai-start{align-items:flex-start}.lg\:rt-r-ai-center{align-items:center}.lg\:rt-r-ai-end{align-items:flex-end}.lg\:rt-r-ai-baseline{align-items:baseline}.lg\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1640px){.xl\:rt-r-ai-start{align-items:flex-start}.xl\:rt-r-ai-center{align-items:center}.xl\:rt-r-ai-end{align-items:flex-end}.xl\:rt-r-ai-baseline{align-items:baseline}.xl\:rt-r-ai-stretch{align-items:stretch}}.rt-r-as-start{align-self:flex-start}.rt-r-as-center{align-self:center}.rt-r-as-end{align-self:flex-end}.rt-r-as-baseline{align-self:baseline}.rt-r-as-stretch{align-self:stretch}@media (min-width: 520px){.xs\:rt-r-as-start{align-self:flex-start}.xs\:rt-r-as-center{align-self:center}.xs\:rt-r-as-end{align-self:flex-end}.xs\:rt-r-as-baseline{align-self:baseline}.xs\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 768px){.sm\:rt-r-as-start{align-self:flex-start}.sm\:rt-r-as-center{align-self:center}.sm\:rt-r-as-end{align-self:flex-end}.sm\:rt-r-as-baseline{align-self:baseline}.sm\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1024px){.md\:rt-r-as-start{align-self:flex-start}.md\:rt-r-as-center{align-self:center}.md\:rt-r-as-end{align-self:flex-end}.md\:rt-r-as-baseline{align-self:baseline}.md\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1280px){.lg\:rt-r-as-start{align-self:flex-start}.lg\:rt-r-as-center{align-self:center}.lg\:rt-r-as-end{align-self:flex-end}.lg\:rt-r-as-baseline{align-self:baseline}.lg\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1640px){.xl\:rt-r-as-start{align-self:flex-start}.xl\:rt-r-as-center{align-self:center}.xl\:rt-r-as-end{align-self:flex-end}.xl\:rt-r-as-baseline{align-self:baseline}.xl\:rt-r-as-stretch{align-self:stretch}}.rt-r-display-block{display:block}.rt-r-display-inline{display:inline}.rt-r-display-inline-block{display:inline-block}.rt-r-display-flex{display:flex}.rt-r-display-inline-flex{display:inline-flex}.rt-r-display-grid{display:grid}.rt-r-display-inline-grid{display:inline-grid}.rt-r-display-none{display:none}.rt-r-display-contents{display:contents}@media (min-width: 520px){.xs\:rt-r-display-block{display:block}.xs\:rt-r-display-inline{display:inline}.xs\:rt-r-display-inline-block{display:inline-block}.xs\:rt-r-display-flex{display:flex}.xs\:rt-r-display-inline-flex{display:inline-flex}.xs\:rt-r-display-grid{display:grid}.xs\:rt-r-display-inline-grid{display:inline-grid}.xs\:rt-r-display-none{display:none}.xs\:rt-r-display-contents{display:contents}}@media (min-width: 768px){.sm\:rt-r-display-block{display:block}.sm\:rt-r-display-inline{display:inline}.sm\:rt-r-display-inline-block{display:inline-block}.sm\:rt-r-display-flex{display:flex}.sm\:rt-r-display-inline-flex{display:inline-flex}.sm\:rt-r-display-grid{display:grid}.sm\:rt-r-display-inline-grid{display:inline-grid}.sm\:rt-r-display-none{display:none}.sm\:rt-r-display-contents{display:contents}}@media (min-width: 1024px){.md\:rt-r-display-block{display:block}.md\:rt-r-display-inline{display:inline}.md\:rt-r-display-inline-block{display:inline-block}.md\:rt-r-display-flex{display:flex}.md\:rt-r-display-inline-flex{display:inline-flex}.md\:rt-r-display-grid{display:grid}.md\:rt-r-display-inline-grid{display:inline-grid}.md\:rt-r-display-none{display:none}.md\:rt-r-display-contents{display:contents}}@media (min-width: 1280px){.lg\:rt-r-display-block{display:block}.lg\:rt-r-display-inline{display:inline}.lg\:rt-r-display-inline-block{display:inline-block}.lg\:rt-r-display-flex{display:flex}.lg\:rt-r-display-inline-flex{display:inline-flex}.lg\:rt-r-display-grid{display:grid}.lg\:rt-r-display-inline-grid{display:inline-grid}.lg\:rt-r-display-none{display:none}.lg\:rt-r-display-contents{display:contents}}@media (min-width: 1640px){.xl\:rt-r-display-block{display:block}.xl\:rt-r-display-inline{display:inline}.xl\:rt-r-display-inline-block{display:inline-block}.xl\:rt-r-display-flex{display:flex}.xl\:rt-r-display-inline-flex{display:inline-flex}.xl\:rt-r-display-grid{display:grid}.xl\:rt-r-display-inline-grid{display:inline-grid}.xl\:rt-r-display-none{display:none}.xl\:rt-r-display-contents{display:contents}}.rt-r-fb{flex-basis:var(--flex-basis)}@media (min-width: 520px){.xs\:rt-r-fb{flex-basis:var(--flex-basis-xs)}}@media (min-width: 768px){.sm\:rt-r-fb{flex-basis:var(--flex-basis-sm)}}@media (min-width: 1024px){.md\:rt-r-fb{flex-basis:var(--flex-basis-md)}}@media (min-width: 1280px){.lg\:rt-r-fb{flex-basis:var(--flex-basis-lg)}}@media (min-width: 1640px){.xl\:rt-r-fb{flex-basis:var(--flex-basis-xl)}}.rt-r-fd-row{flex-direction:row}.rt-r-fd-column{flex-direction:column}.rt-r-fd-row-reverse{flex-direction:row-reverse}.rt-r-fd-column-reverse{flex-direction:column-reverse}@media (min-width: 520px){.xs\:rt-r-fd-row{flex-direction:row}.xs\:rt-r-fd-column{flex-direction:column}.xs\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xs\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 768px){.sm\:rt-r-fd-row{flex-direction:row}.sm\:rt-r-fd-column{flex-direction:column}.sm\:rt-r-fd-row-reverse{flex-direction:row-reverse}.sm\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1024px){.md\:rt-r-fd-row{flex-direction:row}.md\:rt-r-fd-column{flex-direction:column}.md\:rt-r-fd-row-reverse{flex-direction:row-reverse}.md\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1280px){.lg\:rt-r-fd-row{flex-direction:row}.lg\:rt-r-fd-column{flex-direction:column}.lg\:rt-r-fd-row-reverse{flex-direction:row-reverse}.lg\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1640px){.xl\:rt-r-fd-row{flex-direction:row}.xl\:rt-r-fd-column{flex-direction:column}.xl\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xl\:rt-r-fd-column-reverse{flex-direction:column-reverse}}.rt-r-fg{flex-grow:var(--flex-grow)}.rt-r-fg-0{flex-grow:0}.rt-r-fg-1{flex-grow:1}@media (min-width: 520px){.xs\:rt-r-fg{flex-grow:var(--flex-grow-xs)}.xs\:rt-r-fg-0{flex-grow:0}.xs\:rt-r-fg-1{flex-grow:1}}@media (min-width: 768px){.sm\:rt-r-fg{flex-grow:var(--flex-grow-sm)}.sm\:rt-r-fg-0{flex-grow:0}.sm\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1024px){.md\:rt-r-fg{flex-grow:var(--flex-grow-md)}.md\:rt-r-fg-0{flex-grow:0}.md\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1280px){.lg\:rt-r-fg{flex-grow:var(--flex-grow-lg)}.lg\:rt-r-fg-0{flex-grow:0}.lg\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1640px){.xl\:rt-r-fg{flex-grow:var(--flex-grow-xl)}.xl\:rt-r-fg-0{flex-grow:0}.xl\:rt-r-fg-1{flex-grow:1}}.rt-r-fs{flex-shrink:var(--flex-shrink)}.rt-r-fs-0{flex-shrink:0}.rt-r-fs-1{flex-shrink:1}@media (min-width: 520px){.xs\:rt-r-fs{flex-shrink:var(--flex-shrink-xs)}.xs\:rt-r-fs-0{flex-shrink:0}.xs\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 768px){.sm\:rt-r-fs{flex-shrink:var(--flex-shrink-sm)}.sm\:rt-r-fs-0{flex-shrink:0}.sm\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1024px){.md\:rt-r-fs{flex-shrink:var(--flex-shrink-md)}.md\:rt-r-fs-0{flex-shrink:0}.md\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1280px){.lg\:rt-r-fs{flex-shrink:var(--flex-shrink-lg)}.lg\:rt-r-fs-0{flex-shrink:0}.lg\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1640px){.xl\:rt-r-fs{flex-shrink:var(--flex-shrink-xl)}.xl\:rt-r-fs-0{flex-shrink:0}.xl\:rt-r-fs-1{flex-shrink:1}}.rt-r-fw-nowrap{flex-wrap:nowrap}.rt-r-fw-wrap{flex-wrap:wrap}.rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}@media (min-width: 520px){.xs\:rt-r-fw-nowrap{flex-wrap:nowrap}.xs\:rt-r-fw-wrap{flex-wrap:wrap}.xs\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 768px){.sm\:rt-r-fw-nowrap{flex-wrap:nowrap}.sm\:rt-r-fw-wrap{flex-wrap:wrap}.sm\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1024px){.md\:rt-r-fw-nowrap{flex-wrap:nowrap}.md\:rt-r-fw-wrap{flex-wrap:wrap}.md\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1280px){.lg\:rt-r-fw-nowrap{flex-wrap:nowrap}.lg\:rt-r-fw-wrap{flex-wrap:wrap}.lg\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1640px){.xl\:rt-r-fw-nowrap{flex-wrap:nowrap}.xl\:rt-r-fw-wrap{flex-wrap:wrap}.xl\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}.rt-r-gap{gap:var(--gap)}.rt-r-gap-0{gap:0}.rt-r-gap-1{gap:var(--space-1)}.rt-r-gap-2{gap:var(--space-2)}.rt-r-gap-3{gap:var(--space-3)}.rt-r-gap-4{gap:var(--space-4)}.rt-r-gap-5{gap:var(--space-5)}.rt-r-gap-6{gap:var(--space-6)}.rt-r-gap-7{gap:var(--space-7)}.rt-r-gap-8{gap:var(--space-8)}.rt-r-gap-9{gap:var(--space-9)}.rt-r-cg{column-gap:var(--column-gap)}.rt-r-cg-0{column-gap:0}.rt-r-cg-1{column-gap:var(--space-1)}.rt-r-cg-2{column-gap:var(--space-2)}.rt-r-cg-3{column-gap:var(--space-3)}.rt-r-cg-4{column-gap:var(--space-4)}.rt-r-cg-5{column-gap:var(--space-5)}.rt-r-cg-6{column-gap:var(--space-6)}.rt-r-cg-7{column-gap:var(--space-7)}.rt-r-cg-8{column-gap:var(--space-8)}.rt-r-cg-9{column-gap:var(--space-9)}.rt-r-rg{row-gap:var(--row-gap)}.rt-r-rg-0{row-gap:0}.rt-r-rg-1{row-gap:var(--space-1)}.rt-r-rg-2{row-gap:var(--space-2)}.rt-r-rg-3{row-gap:var(--space-3)}.rt-r-rg-4{row-gap:var(--space-4)}.rt-r-rg-5{row-gap:var(--space-5)}.rt-r-rg-6{row-gap:var(--space-6)}.rt-r-rg-7{row-gap:var(--space-7)}.rt-r-rg-8{row-gap:var(--space-8)}.rt-r-rg-9{row-gap:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-gap{gap:var(--gap-xs)}.xs\:rt-r-gap-0{gap:0}.xs\:rt-r-gap-1{gap:var(--space-1)}.xs\:rt-r-gap-2{gap:var(--space-2)}.xs\:rt-r-gap-3{gap:var(--space-3)}.xs\:rt-r-gap-4{gap:var(--space-4)}.xs\:rt-r-gap-5{gap:var(--space-5)}.xs\:rt-r-gap-6{gap:var(--space-6)}.xs\:rt-r-gap-7{gap:var(--space-7)}.xs\:rt-r-gap-8{gap:var(--space-8)}.xs\:rt-r-gap-9{gap:var(--space-9)}.xs\:rt-r-cg{column-gap:var(--column-gap-xs)}.xs\:rt-r-cg-0{column-gap:0}.xs\:rt-r-cg-1{column-gap:var(--space-1)}.xs\:rt-r-cg-2{column-gap:var(--space-2)}.xs\:rt-r-cg-3{column-gap:var(--space-3)}.xs\:rt-r-cg-4{column-gap:var(--space-4)}.xs\:rt-r-cg-5{column-gap:var(--space-5)}.xs\:rt-r-cg-6{column-gap:var(--space-6)}.xs\:rt-r-cg-7{column-gap:var(--space-7)}.xs\:rt-r-cg-8{column-gap:var(--space-8)}.xs\:rt-r-cg-9{column-gap:var(--space-9)}.xs\:rt-r-rg{row-gap:var(--row-gap-xs)}.xs\:rt-r-rg-0{row-gap:0}.xs\:rt-r-rg-1{row-gap:var(--space-1)}.xs\:rt-r-rg-2{row-gap:var(--space-2)}.xs\:rt-r-rg-3{row-gap:var(--space-3)}.xs\:rt-r-rg-4{row-gap:var(--space-4)}.xs\:rt-r-rg-5{row-gap:var(--space-5)}.xs\:rt-r-rg-6{row-gap:var(--space-6)}.xs\:rt-r-rg-7{row-gap:var(--space-7)}.xs\:rt-r-rg-8{row-gap:var(--space-8)}.xs\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-gap{gap:var(--gap-sm)}.sm\:rt-r-gap-0{gap:0}.sm\:rt-r-gap-1{gap:var(--space-1)}.sm\:rt-r-gap-2{gap:var(--space-2)}.sm\:rt-r-gap-3{gap:var(--space-3)}.sm\:rt-r-gap-4{gap:var(--space-4)}.sm\:rt-r-gap-5{gap:var(--space-5)}.sm\:rt-r-gap-6{gap:var(--space-6)}.sm\:rt-r-gap-7{gap:var(--space-7)}.sm\:rt-r-gap-8{gap:var(--space-8)}.sm\:rt-r-gap-9{gap:var(--space-9)}.sm\:rt-r-cg{column-gap:var(--column-gap-sm)}.sm\:rt-r-cg-0{column-gap:0}.sm\:rt-r-cg-1{column-gap:var(--space-1)}.sm\:rt-r-cg-2{column-gap:var(--space-2)}.sm\:rt-r-cg-3{column-gap:var(--space-3)}.sm\:rt-r-cg-4{column-gap:var(--space-4)}.sm\:rt-r-cg-5{column-gap:var(--space-5)}.sm\:rt-r-cg-6{column-gap:var(--space-6)}.sm\:rt-r-cg-7{column-gap:var(--space-7)}.sm\:rt-r-cg-8{column-gap:var(--space-8)}.sm\:rt-r-cg-9{column-gap:var(--space-9)}.sm\:rt-r-rg{row-gap:var(--row-gap-sm)}.sm\:rt-r-rg-0{row-gap:0}.sm\:rt-r-rg-1{row-gap:var(--space-1)}.sm\:rt-r-rg-2{row-gap:var(--space-2)}.sm\:rt-r-rg-3{row-gap:var(--space-3)}.sm\:rt-r-rg-4{row-gap:var(--space-4)}.sm\:rt-r-rg-5{row-gap:var(--space-5)}.sm\:rt-r-rg-6{row-gap:var(--space-6)}.sm\:rt-r-rg-7{row-gap:var(--space-7)}.sm\:rt-r-rg-8{row-gap:var(--space-8)}.sm\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-gap{gap:var(--gap-md)}.md\:rt-r-gap-0{gap:0}.md\:rt-r-gap-1{gap:var(--space-1)}.md\:rt-r-gap-2{gap:var(--space-2)}.md\:rt-r-gap-3{gap:var(--space-3)}.md\:rt-r-gap-4{gap:var(--space-4)}.md\:rt-r-gap-5{gap:var(--space-5)}.md\:rt-r-gap-6{gap:var(--space-6)}.md\:rt-r-gap-7{gap:var(--space-7)}.md\:rt-r-gap-8{gap:var(--space-8)}.md\:rt-r-gap-9{gap:var(--space-9)}.md\:rt-r-cg{column-gap:var(--column-gap-md)}.md\:rt-r-cg-0{column-gap:0}.md\:rt-r-cg-1{column-gap:var(--space-1)}.md\:rt-r-cg-2{column-gap:var(--space-2)}.md\:rt-r-cg-3{column-gap:var(--space-3)}.md\:rt-r-cg-4{column-gap:var(--space-4)}.md\:rt-r-cg-5{column-gap:var(--space-5)}.md\:rt-r-cg-6{column-gap:var(--space-6)}.md\:rt-r-cg-7{column-gap:var(--space-7)}.md\:rt-r-cg-8{column-gap:var(--space-8)}.md\:rt-r-cg-9{column-gap:var(--space-9)}.md\:rt-r-rg{row-gap:var(--row-gap-md)}.md\:rt-r-rg-0{row-gap:0}.md\:rt-r-rg-1{row-gap:var(--space-1)}.md\:rt-r-rg-2{row-gap:var(--space-2)}.md\:rt-r-rg-3{row-gap:var(--space-3)}.md\:rt-r-rg-4{row-gap:var(--space-4)}.md\:rt-r-rg-5{row-gap:var(--space-5)}.md\:rt-r-rg-6{row-gap:var(--space-6)}.md\:rt-r-rg-7{row-gap:var(--space-7)}.md\:rt-r-rg-8{row-gap:var(--space-8)}.md\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-gap{gap:var(--gap-lg)}.lg\:rt-r-gap-0{gap:0}.lg\:rt-r-gap-1{gap:var(--space-1)}.lg\:rt-r-gap-2{gap:var(--space-2)}.lg\:rt-r-gap-3{gap:var(--space-3)}.lg\:rt-r-gap-4{gap:var(--space-4)}.lg\:rt-r-gap-5{gap:var(--space-5)}.lg\:rt-r-gap-6{gap:var(--space-6)}.lg\:rt-r-gap-7{gap:var(--space-7)}.lg\:rt-r-gap-8{gap:var(--space-8)}.lg\:rt-r-gap-9{gap:var(--space-9)}.lg\:rt-r-cg{column-gap:var(--column-gap-lg)}.lg\:rt-r-cg-0{column-gap:0}.lg\:rt-r-cg-1{column-gap:var(--space-1)}.lg\:rt-r-cg-2{column-gap:var(--space-2)}.lg\:rt-r-cg-3{column-gap:var(--space-3)}.lg\:rt-r-cg-4{column-gap:var(--space-4)}.lg\:rt-r-cg-5{column-gap:var(--space-5)}.lg\:rt-r-cg-6{column-gap:var(--space-6)}.lg\:rt-r-cg-7{column-gap:var(--space-7)}.lg\:rt-r-cg-8{column-gap:var(--space-8)}.lg\:rt-r-cg-9{column-gap:var(--space-9)}.lg\:rt-r-rg{row-gap:var(--row-gap-lg)}.lg\:rt-r-rg-0{row-gap:0}.lg\:rt-r-rg-1{row-gap:var(--space-1)}.lg\:rt-r-rg-2{row-gap:var(--space-2)}.lg\:rt-r-rg-3{row-gap:var(--space-3)}.lg\:rt-r-rg-4{row-gap:var(--space-4)}.lg\:rt-r-rg-5{row-gap:var(--space-5)}.lg\:rt-r-rg-6{row-gap:var(--space-6)}.lg\:rt-r-rg-7{row-gap:var(--space-7)}.lg\:rt-r-rg-8{row-gap:var(--space-8)}.lg\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-gap{gap:var(--gap-xl)}.xl\:rt-r-gap-0{gap:0}.xl\:rt-r-gap-1{gap:var(--space-1)}.xl\:rt-r-gap-2{gap:var(--space-2)}.xl\:rt-r-gap-3{gap:var(--space-3)}.xl\:rt-r-gap-4{gap:var(--space-4)}.xl\:rt-r-gap-5{gap:var(--space-5)}.xl\:rt-r-gap-6{gap:var(--space-6)}.xl\:rt-r-gap-7{gap:var(--space-7)}.xl\:rt-r-gap-8{gap:var(--space-8)}.xl\:rt-r-gap-9{gap:var(--space-9)}.xl\:rt-r-cg{column-gap:var(--column-gap-xl)}.xl\:rt-r-cg-0{column-gap:0}.xl\:rt-r-cg-1{column-gap:var(--space-1)}.xl\:rt-r-cg-2{column-gap:var(--space-2)}.xl\:rt-r-cg-3{column-gap:var(--space-3)}.xl\:rt-r-cg-4{column-gap:var(--space-4)}.xl\:rt-r-cg-5{column-gap:var(--space-5)}.xl\:rt-r-cg-6{column-gap:var(--space-6)}.xl\:rt-r-cg-7{column-gap:var(--space-7)}.xl\:rt-r-cg-8{column-gap:var(--space-8)}.xl\:rt-r-cg-9{column-gap:var(--space-9)}.xl\:rt-r-rg{row-gap:var(--row-gap-xl)}.xl\:rt-r-rg-0{row-gap:0}.xl\:rt-r-rg-1{row-gap:var(--space-1)}.xl\:rt-r-rg-2{row-gap:var(--space-2)}.xl\:rt-r-rg-3{row-gap:var(--space-3)}.xl\:rt-r-rg-4{row-gap:var(--space-4)}.xl\:rt-r-rg-5{row-gap:var(--space-5)}.xl\:rt-r-rg-6{row-gap:var(--space-6)}.xl\:rt-r-rg-7{row-gap:var(--space-7)}.xl\:rt-r-rg-8{row-gap:var(--space-8)}.xl\:rt-r-rg-9{row-gap:var(--space-9)}}.rt-r-ga{grid-area:var(--grid-area)}@media (min-width: 520px){.xs\:rt-r-ga{grid-area:var(--grid-area-xs)}}@media (min-width: 768px){.sm\:rt-r-ga{grid-area:var(--grid-area-sm)}}@media (min-width: 1024px){.md\:rt-r-ga{grid-area:var(--grid-area-md)}}@media (min-width: 1280px){.lg\:rt-r-ga{grid-area:var(--grid-area-lg)}}@media (min-width: 1640px){.xl\:rt-r-ga{grid-area:var(--grid-area-xl)}}.rt-r-gaf-row{grid-auto-flow:row}.rt-r-gaf-column{grid-auto-flow:column}.rt-r-gaf-dense{grid-auto-flow:dense}.rt-r-gaf-row-dense{grid-auto-flow:row dense}.rt-r-gaf-column-dense{grid-auto-flow:column dense}@media (min-width: 520px){.xs\:rt-r-gaf-row{grid-auto-flow:row}.xs\:rt-r-gaf-column{grid-auto-flow:column}.xs\:rt-r-gaf-dense{grid-auto-flow:dense}.xs\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xs\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 768px){.sm\:rt-r-gaf-row{grid-auto-flow:row}.sm\:rt-r-gaf-column{grid-auto-flow:column}.sm\:rt-r-gaf-dense{grid-auto-flow:dense}.sm\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.sm\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1024px){.md\:rt-r-gaf-row{grid-auto-flow:row}.md\:rt-r-gaf-column{grid-auto-flow:column}.md\:rt-r-gaf-dense{grid-auto-flow:dense}.md\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.md\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1280px){.lg\:rt-r-gaf-row{grid-auto-flow:row}.lg\:rt-r-gaf-column{grid-auto-flow:column}.lg\:rt-r-gaf-dense{grid-auto-flow:dense}.lg\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.lg\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1640px){.xl\:rt-r-gaf-row{grid-auto-flow:row}.xl\:rt-r-gaf-column{grid-auto-flow:column}.xl\:rt-r-gaf-dense{grid-auto-flow:dense}.xl\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xl\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}.rt-r-gc{grid-column:var(--grid-column)}.rt-r-gc-1{grid-column:1}.rt-r-gc-2{grid-column:2}.rt-r-gc-3{grid-column:3}.rt-r-gc-4{grid-column:4}.rt-r-gc-5{grid-column:5}.rt-r-gc-6{grid-column:6}.rt-r-gc-7{grid-column:7}.rt-r-gc-8{grid-column:8}.rt-r-gc-9{grid-column:9}@media (min-width: 520px){.xs\:rt-r-gc{grid-column:var(--grid-column-xs)}.xs\:rt-r-gc-1{grid-column:1}.xs\:rt-r-gc-2{grid-column:2}.xs\:rt-r-gc-3{grid-column:3}.xs\:rt-r-gc-4{grid-column:4}.xs\:rt-r-gc-5{grid-column:5}.xs\:rt-r-gc-6{grid-column:6}.xs\:rt-r-gc-7{grid-column:7}.xs\:rt-r-gc-8{grid-column:8}.xs\:rt-r-gc-9{grid-column:9}}@media (min-width: 768px){.sm\:rt-r-gc{grid-column:var(--grid-column-sm)}.sm\:rt-r-gc-1{grid-column:1}.sm\:rt-r-gc-2{grid-column:2}.sm\:rt-r-gc-3{grid-column:3}.sm\:rt-r-gc-4{grid-column:4}.sm\:rt-r-gc-5{grid-column:5}.sm\:rt-r-gc-6{grid-column:6}.sm\:rt-r-gc-7{grid-column:7}.sm\:rt-r-gc-8{grid-column:8}.sm\:rt-r-gc-9{grid-column:9}}@media (min-width: 1024px){.md\:rt-r-gc{grid-column:var(--grid-column-md)}.md\:rt-r-gc-1{grid-column:1}.md\:rt-r-gc-2{grid-column:2}.md\:rt-r-gc-3{grid-column:3}.md\:rt-r-gc-4{grid-column:4}.md\:rt-r-gc-5{grid-column:5}.md\:rt-r-gc-6{grid-column:6}.md\:rt-r-gc-7{grid-column:7}.md\:rt-r-gc-8{grid-column:8}.md\:rt-r-gc-9{grid-column:9}}@media (min-width: 1280px){.lg\:rt-r-gc{grid-column:var(--grid-column-lg)}.lg\:rt-r-gc-1{grid-column:1}.lg\:rt-r-gc-2{grid-column:2}.lg\:rt-r-gc-3{grid-column:3}.lg\:rt-r-gc-4{grid-column:4}.lg\:rt-r-gc-5{grid-column:5}.lg\:rt-r-gc-6{grid-column:6}.lg\:rt-r-gc-7{grid-column:7}.lg\:rt-r-gc-8{grid-column:8}.lg\:rt-r-gc-9{grid-column:9}}@media (min-width: 1640px){.xl\:rt-r-gc{grid-column:var(--grid-column-xl)}.xl\:rt-r-gc-1{grid-column:1}.xl\:rt-r-gc-2{grid-column:2}.xl\:rt-r-gc-3{grid-column:3}.xl\:rt-r-gc-4{grid-column:4}.xl\:rt-r-gc-5{grid-column:5}.xl\:rt-r-gc-6{grid-column:6}.xl\:rt-r-gc-7{grid-column:7}.xl\:rt-r-gc-8{grid-column:8}.xl\:rt-r-gc-9{grid-column:9}}.rt-r-gcs{grid-column-start:var(--grid-column-start)}.rt-r-gcs-1{grid-column-start:1}.rt-r-gcs-2{grid-column-start:2}.rt-r-gcs-3{grid-column-start:3}.rt-r-gcs-4{grid-column-start:4}.rt-r-gcs-5{grid-column-start:5}.rt-r-gcs-6{grid-column-start:6}.rt-r-gcs-7{grid-column-start:7}.rt-r-gcs-8{grid-column-start:8}.rt-r-gcs-9{grid-column-start:9}@media (min-width: 520px){.xs\:rt-r-gcs{grid-column-start:var(--grid-column-start-xs)}.xs\:rt-r-gcs-1{grid-column-start:1}.xs\:rt-r-gcs-2{grid-column-start:2}.xs\:rt-r-gcs-3{grid-column-start:3}.xs\:rt-r-gcs-4{grid-column-start:4}.xs\:rt-r-gcs-5{grid-column-start:5}.xs\:rt-r-gcs-6{grid-column-start:6}.xs\:rt-r-gcs-7{grid-column-start:7}.xs\:rt-r-gcs-8{grid-column-start:8}.xs\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 768px){.sm\:rt-r-gcs{grid-column-start:var(--grid-column-start-sm)}.sm\:rt-r-gcs-1{grid-column-start:1}.sm\:rt-r-gcs-2{grid-column-start:2}.sm\:rt-r-gcs-3{grid-column-start:3}.sm\:rt-r-gcs-4{grid-column-start:4}.sm\:rt-r-gcs-5{grid-column-start:5}.sm\:rt-r-gcs-6{grid-column-start:6}.sm\:rt-r-gcs-7{grid-column-start:7}.sm\:rt-r-gcs-8{grid-column-start:8}.sm\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1024px){.md\:rt-r-gcs{grid-column-start:var(--grid-column-start-md)}.md\:rt-r-gcs-1{grid-column-start:1}.md\:rt-r-gcs-2{grid-column-start:2}.md\:rt-r-gcs-3{grid-column-start:3}.md\:rt-r-gcs-4{grid-column-start:4}.md\:rt-r-gcs-5{grid-column-start:5}.md\:rt-r-gcs-6{grid-column-start:6}.md\:rt-r-gcs-7{grid-column-start:7}.md\:rt-r-gcs-8{grid-column-start:8}.md\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1280px){.lg\:rt-r-gcs{grid-column-start:var(--grid-column-start-lg)}.lg\:rt-r-gcs-1{grid-column-start:1}.lg\:rt-r-gcs-2{grid-column-start:2}.lg\:rt-r-gcs-3{grid-column-start:3}.lg\:rt-r-gcs-4{grid-column-start:4}.lg\:rt-r-gcs-5{grid-column-start:5}.lg\:rt-r-gcs-6{grid-column-start:6}.lg\:rt-r-gcs-7{grid-column-start:7}.lg\:rt-r-gcs-8{grid-column-start:8}.lg\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1640px){.xl\:rt-r-gcs{grid-column-start:var(--grid-column-start-xl)}.xl\:rt-r-gcs-1{grid-column-start:1}.xl\:rt-r-gcs-2{grid-column-start:2}.xl\:rt-r-gcs-3{grid-column-start:3}.xl\:rt-r-gcs-4{grid-column-start:4}.xl\:rt-r-gcs-5{grid-column-start:5}.xl\:rt-r-gcs-6{grid-column-start:6}.xl\:rt-r-gcs-7{grid-column-start:7}.xl\:rt-r-gcs-8{grid-column-start:8}.xl\:rt-r-gcs-9{grid-column-start:9}}.rt-r-gce{grid-column-end:var(--grid-column-end)}.rt-r-gce-1{grid-column-end:1}.rt-r-gce-2{grid-column-end:2}.rt-r-gce-3{grid-column-end:3}.rt-r-gce-4{grid-column-end:4}.rt-r-gce-5{grid-column-end:5}.rt-r-gce-6{grid-column-end:6}.rt-r-gce-7{grid-column-end:7}.rt-r-gce-8{grid-column-end:8}.rt-r-gce-9{grid-column-end:9}@media (min-width: 520px){.xs\:rt-r-gce{grid-column-end:var(--grid-column-end-xs)}.xs\:rt-r-gce-1{grid-column-end:1}.xs\:rt-r-gce-2{grid-column-end:2}.xs\:rt-r-gce-3{grid-column-end:3}.xs\:rt-r-gce-4{grid-column-end:4}.xs\:rt-r-gce-5{grid-column-end:5}.xs\:rt-r-gce-6{grid-column-end:6}.xs\:rt-r-gce-7{grid-column-end:7}.xs\:rt-r-gce-8{grid-column-end:8}.xs\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 768px){.sm\:rt-r-gce{grid-column-end:var(--grid-column-end-sm)}.sm\:rt-r-gce-1{grid-column-end:1}.sm\:rt-r-gce-2{grid-column-end:2}.sm\:rt-r-gce-3{grid-column-end:3}.sm\:rt-r-gce-4{grid-column-end:4}.sm\:rt-r-gce-5{grid-column-end:5}.sm\:rt-r-gce-6{grid-column-end:6}.sm\:rt-r-gce-7{grid-column-end:7}.sm\:rt-r-gce-8{grid-column-end:8}.sm\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1024px){.md\:rt-r-gce{grid-column-end:var(--grid-column-end-md)}.md\:rt-r-gce-1{grid-column-end:1}.md\:rt-r-gce-2{grid-column-end:2}.md\:rt-r-gce-3{grid-column-end:3}.md\:rt-r-gce-4{grid-column-end:4}.md\:rt-r-gce-5{grid-column-end:5}.md\:rt-r-gce-6{grid-column-end:6}.md\:rt-r-gce-7{grid-column-end:7}.md\:rt-r-gce-8{grid-column-end:8}.md\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1280px){.lg\:rt-r-gce{grid-column-end:var(--grid-column-end-lg)}.lg\:rt-r-gce-1{grid-column-end:1}.lg\:rt-r-gce-2{grid-column-end:2}.lg\:rt-r-gce-3{grid-column-end:3}.lg\:rt-r-gce-4{grid-column-end:4}.lg\:rt-r-gce-5{grid-column-end:5}.lg\:rt-r-gce-6{grid-column-end:6}.lg\:rt-r-gce-7{grid-column-end:7}.lg\:rt-r-gce-8{grid-column-end:8}.lg\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1640px){.xl\:rt-r-gce{grid-column-end:var(--grid-column-end-xl)}.xl\:rt-r-gce-1{grid-column-end:1}.xl\:rt-r-gce-2{grid-column-end:2}.xl\:rt-r-gce-3{grid-column-end:3}.xl\:rt-r-gce-4{grid-column-end:4}.xl\:rt-r-gce-5{grid-column-end:5}.xl\:rt-r-gce-6{grid-column-end:6}.xl\:rt-r-gce-7{grid-column-end:7}.xl\:rt-r-gce-8{grid-column-end:8}.xl\:rt-r-gce-9{grid-column-end:9}}.rt-r-gr{grid-row:var(--grid-row)}.rt-r-gr-1{grid-row:1}.rt-r-gr-2{grid-row:2}.rt-r-gr-3{grid-row:3}.rt-r-gr-4{grid-row:4}.rt-r-gr-5{grid-row:5}.rt-r-gr-6{grid-row:6}.rt-r-gr-7{grid-row:7}.rt-r-gr-8{grid-row:8}.rt-r-gr-9{grid-row:9}@media (min-width: 520px){.xs\:rt-r-gr{grid-row:var(--grid-row-xs)}.xs\:rt-r-gr-1{grid-row:1}.xs\:rt-r-gr-2{grid-row:2}.xs\:rt-r-gr-3{grid-row:3}.xs\:rt-r-gr-4{grid-row:4}.xs\:rt-r-gr-5{grid-row:5}.xs\:rt-r-gr-6{grid-row:6}.xs\:rt-r-gr-7{grid-row:7}.xs\:rt-r-gr-8{grid-row:8}.xs\:rt-r-gr-9{grid-row:9}}@media (min-width: 768px){.sm\:rt-r-gr{grid-row:var(--grid-row-sm)}.sm\:rt-r-gr-1{grid-row:1}.sm\:rt-r-gr-2{grid-row:2}.sm\:rt-r-gr-3{grid-row:3}.sm\:rt-r-gr-4{grid-row:4}.sm\:rt-r-gr-5{grid-row:5}.sm\:rt-r-gr-6{grid-row:6}.sm\:rt-r-gr-7{grid-row:7}.sm\:rt-r-gr-8{grid-row:8}.sm\:rt-r-gr-9{grid-row:9}}@media (min-width: 1024px){.md\:rt-r-gr{grid-row:var(--grid-row-md)}.md\:rt-r-gr-1{grid-row:1}.md\:rt-r-gr-2{grid-row:2}.md\:rt-r-gr-3{grid-row:3}.md\:rt-r-gr-4{grid-row:4}.md\:rt-r-gr-5{grid-row:5}.md\:rt-r-gr-6{grid-row:6}.md\:rt-r-gr-7{grid-row:7}.md\:rt-r-gr-8{grid-row:8}.md\:rt-r-gr-9{grid-row:9}}@media (min-width: 1280px){.lg\:rt-r-gr{grid-row:var(--grid-row-lg)}.lg\:rt-r-gr-1{grid-row:1}.lg\:rt-r-gr-2{grid-row:2}.lg\:rt-r-gr-3{grid-row:3}.lg\:rt-r-gr-4{grid-row:4}.lg\:rt-r-gr-5{grid-row:5}.lg\:rt-r-gr-6{grid-row:6}.lg\:rt-r-gr-7{grid-row:7}.lg\:rt-r-gr-8{grid-row:8}.lg\:rt-r-gr-9{grid-row:9}}@media (min-width: 1640px){.xl\:rt-r-gr{grid-row:var(--grid-row-xl)}.xl\:rt-r-gr-1{grid-row:1}.xl\:rt-r-gr-2{grid-row:2}.xl\:rt-r-gr-3{grid-row:3}.xl\:rt-r-gr-4{grid-row:4}.xl\:rt-r-gr-5{grid-row:5}.xl\:rt-r-gr-6{grid-row:6}.xl\:rt-r-gr-7{grid-row:7}.xl\:rt-r-gr-8{grid-row:8}.xl\:rt-r-gr-9{grid-row:9}}.rt-r-grs{grid-row-start:var(--grid-row-start)}.rt-r-grs-1{grid-row-start:1}.rt-r-grs-2{grid-row-start:2}.rt-r-grs-3{grid-row-start:3}.rt-r-grs-4{grid-row-start:4}.rt-r-grs-5{grid-row-start:5}.rt-r-grs-6{grid-row-start:6}.rt-r-grs-7{grid-row-start:7}.rt-r-grs-8{grid-row-start:8}.rt-r-grs-9{grid-row-start:9}@media (min-width: 520px){.xs\:rt-r-grs{grid-row-start:var(--grid-row-start-xs)}.xs\:rt-r-grs-1{grid-row-start:1}.xs\:rt-r-grs-2{grid-row-start:2}.xs\:rt-r-grs-3{grid-row-start:3}.xs\:rt-r-grs-4{grid-row-start:4}.xs\:rt-r-grs-5{grid-row-start:5}.xs\:rt-r-grs-6{grid-row-start:6}.xs\:rt-r-grs-7{grid-row-start:7}.xs\:rt-r-grs-8{grid-row-start:8}.xs\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 768px){.sm\:rt-r-grs{grid-row-start:var(--grid-row-start-sm)}.sm\:rt-r-grs-1{grid-row-start:1}.sm\:rt-r-grs-2{grid-row-start:2}.sm\:rt-r-grs-3{grid-row-start:3}.sm\:rt-r-grs-4{grid-row-start:4}.sm\:rt-r-grs-5{grid-row-start:5}.sm\:rt-r-grs-6{grid-row-start:6}.sm\:rt-r-grs-7{grid-row-start:7}.sm\:rt-r-grs-8{grid-row-start:8}.sm\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1024px){.md\:rt-r-grs{grid-row-start:var(--grid-row-start-md)}.md\:rt-r-grs-1{grid-row-start:1}.md\:rt-r-grs-2{grid-row-start:2}.md\:rt-r-grs-3{grid-row-start:3}.md\:rt-r-grs-4{grid-row-start:4}.md\:rt-r-grs-5{grid-row-start:5}.md\:rt-r-grs-6{grid-row-start:6}.md\:rt-r-grs-7{grid-row-start:7}.md\:rt-r-grs-8{grid-row-start:8}.md\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1280px){.lg\:rt-r-grs{grid-row-start:var(--grid-row-start-lg)}.lg\:rt-r-grs-1{grid-row-start:1}.lg\:rt-r-grs-2{grid-row-start:2}.lg\:rt-r-grs-3{grid-row-start:3}.lg\:rt-r-grs-4{grid-row-start:4}.lg\:rt-r-grs-5{grid-row-start:5}.lg\:rt-r-grs-6{grid-row-start:6}.lg\:rt-r-grs-7{grid-row-start:7}.lg\:rt-r-grs-8{grid-row-start:8}.lg\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1640px){.xl\:rt-r-grs{grid-row-start:var(--grid-row-start-xl)}.xl\:rt-r-grs-1{grid-row-start:1}.xl\:rt-r-grs-2{grid-row-start:2}.xl\:rt-r-grs-3{grid-row-start:3}.xl\:rt-r-grs-4{grid-row-start:4}.xl\:rt-r-grs-5{grid-row-start:5}.xl\:rt-r-grs-6{grid-row-start:6}.xl\:rt-r-grs-7{grid-row-start:7}.xl\:rt-r-grs-8{grid-row-start:8}.xl\:rt-r-grs-9{grid-row-start:9}}.rt-r-gre{grid-row-end:var(--grid-row-end)}.rt-r-gre-1{grid-row-end:1}.rt-r-gre-2{grid-row-end:2}.rt-r-gre-3{grid-row-end:3}.rt-r-gre-4{grid-row-end:4}.rt-r-gre-5{grid-row-end:5}.rt-r-gre-6{grid-row-end:6}.rt-r-gre-7{grid-row-end:7}.rt-r-gre-8{grid-row-end:8}.rt-r-gre-9{grid-row-end:9}@media (min-width: 520px){.xs\:rt-r-gre{grid-row-end:var(--grid-row-end-xs)}.xs\:rt-r-gre-1{grid-row-end:1}.xs\:rt-r-gre-2{grid-row-end:2}.xs\:rt-r-gre-3{grid-row-end:3}.xs\:rt-r-gre-4{grid-row-end:4}.xs\:rt-r-gre-5{grid-row-end:5}.xs\:rt-r-gre-6{grid-row-end:6}.xs\:rt-r-gre-7{grid-row-end:7}.xs\:rt-r-gre-8{grid-row-end:8}.xs\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 768px){.sm\:rt-r-gre{grid-row-end:var(--grid-row-end-sm)}.sm\:rt-r-gre-1{grid-row-end:1}.sm\:rt-r-gre-2{grid-row-end:2}.sm\:rt-r-gre-3{grid-row-end:3}.sm\:rt-r-gre-4{grid-row-end:4}.sm\:rt-r-gre-5{grid-row-end:5}.sm\:rt-r-gre-6{grid-row-end:6}.sm\:rt-r-gre-7{grid-row-end:7}.sm\:rt-r-gre-8{grid-row-end:8}.sm\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1024px){.md\:rt-r-gre{grid-row-end:var(--grid-row-end-md)}.md\:rt-r-gre-1{grid-row-end:1}.md\:rt-r-gre-2{grid-row-end:2}.md\:rt-r-gre-3{grid-row-end:3}.md\:rt-r-gre-4{grid-row-end:4}.md\:rt-r-gre-5{grid-row-end:5}.md\:rt-r-gre-6{grid-row-end:6}.md\:rt-r-gre-7{grid-row-end:7}.md\:rt-r-gre-8{grid-row-end:8}.md\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1280px){.lg\:rt-r-gre{grid-row-end:var(--grid-row-end-lg)}.lg\:rt-r-gre-1{grid-row-end:1}.lg\:rt-r-gre-2{grid-row-end:2}.lg\:rt-r-gre-3{grid-row-end:3}.lg\:rt-r-gre-4{grid-row-end:4}.lg\:rt-r-gre-5{grid-row-end:5}.lg\:rt-r-gre-6{grid-row-end:6}.lg\:rt-r-gre-7{grid-row-end:7}.lg\:rt-r-gre-8{grid-row-end:8}.lg\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1640px){.xl\:rt-r-gre{grid-row-end:var(--grid-row-end-xl)}.xl\:rt-r-gre-1{grid-row-end:1}.xl\:rt-r-gre-2{grid-row-end:2}.xl\:rt-r-gre-3{grid-row-end:3}.xl\:rt-r-gre-4{grid-row-end:4}.xl\:rt-r-gre-5{grid-row-end:5}.xl\:rt-r-gre-6{grid-row-end:6}.xl\:rt-r-gre-7{grid-row-end:7}.xl\:rt-r-gre-8{grid-row-end:8}.xl\:rt-r-gre-9{grid-row-end:9}}.rt-r-gta{grid-template-areas:var(--grid-template-areas)}@media (min-width: 520px){.xs\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xs)}}@media (min-width: 768px){.sm\:rt-r-gta{grid-template-areas:var(--grid-template-areas-sm)}}@media (min-width: 1024px){.md\:rt-r-gta{grid-template-areas:var(--grid-template-areas-md)}}@media (min-width: 1280px){.lg\:rt-r-gta{grid-template-areas:var(--grid-template-areas-lg)}}@media (min-width: 1640px){.xl\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xl)}}.rt-r-gtc{grid-template-columns:var(--grid-template-columns)}.rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xs)}.xs\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xs\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-sm)}.sm\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.sm\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-md)}.md\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.md\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-lg)}.lg\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.lg\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xl)}.xl\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xl\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}.rt-r-gtr{grid-template-rows:var(--grid-template-rows)}.rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xs)}.xs\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xs\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-sm)}.sm\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.sm\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-md)}.md\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.md\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.md\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.md\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.md\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.md\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.md\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-lg)}.lg\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.lg\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xl)}.xl\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xl\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}.rt-r-h{height:var(--height)}@media (min-width: 520px){.xs\:rt-r-h{height:var(--height-xs)}}@media (min-width: 768px){.sm\:rt-r-h{height:var(--height-sm)}}@media (min-width: 1024px){.md\:rt-r-h{height:var(--height-md)}}@media (min-width: 1280px){.lg\:rt-r-h{height:var(--height-lg)}}@media (min-width: 1640px){.xl\:rt-r-h{height:var(--height-xl)}}.rt-r-min-h{min-height:var(--min-height)}@media (min-width: 520px){.xs\:rt-r-min-h{min-height:var(--min-height-xs)}}@media (min-width: 768px){.sm\:rt-r-min-h{min-height:var(--min-height-sm)}}@media (min-width: 1024px){.md\:rt-r-min-h{min-height:var(--min-height-md)}}@media (min-width: 1280px){.lg\:rt-r-min-h{min-height:var(--min-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-h{min-height:var(--min-height-xl)}}.rt-r-max-h{max-height:var(--max-height)}@media (min-width: 520px){.xs\:rt-r-max-h{max-height:var(--max-height-xs)}}@media (min-width: 768px){.sm\:rt-r-max-h{max-height:var(--max-height-sm)}}@media (min-width: 1024px){.md\:rt-r-max-h{max-height:var(--max-height-md)}}@media (min-width: 1280px){.lg\:rt-r-max-h{max-height:var(--max-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-h{max-height:var(--max-height-xl)}}.rt-r-inset{inset:var(--inset)}.rt-r-inset-0{inset:0}.rt-r-inset-1{inset:var(--space-1)}.rt-r-inset-2{inset:var(--space-2)}.rt-r-inset-3{inset:var(--space-3)}.rt-r-inset-4{inset:var(--space-4)}.rt-r-inset-5{inset:var(--space-5)}.rt-r-inset-6{inset:var(--space-6)}.rt-r-inset-7{inset:var(--space-7)}.rt-r-inset-8{inset:var(--space-8)}.rt-r-inset-9{inset:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-inset{inset:var(--inset-xs)}.xs\:rt-r-inset-0{inset:0}.xs\:rt-r-inset-1{inset:var(--space-1)}.xs\:rt-r-inset-2{inset:var(--space-2)}.xs\:rt-r-inset-3{inset:var(--space-3)}.xs\:rt-r-inset-4{inset:var(--space-4)}.xs\:rt-r-inset-5{inset:var(--space-5)}.xs\:rt-r-inset-6{inset:var(--space-6)}.xs\:rt-r-inset-7{inset:var(--space-7)}.xs\:rt-r-inset-8{inset:var(--space-8)}.xs\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-inset{inset:var(--inset-sm)}.sm\:rt-r-inset-0{inset:0}.sm\:rt-r-inset-1{inset:var(--space-1)}.sm\:rt-r-inset-2{inset:var(--space-2)}.sm\:rt-r-inset-3{inset:var(--space-3)}.sm\:rt-r-inset-4{inset:var(--space-4)}.sm\:rt-r-inset-5{inset:var(--space-5)}.sm\:rt-r-inset-6{inset:var(--space-6)}.sm\:rt-r-inset-7{inset:var(--space-7)}.sm\:rt-r-inset-8{inset:var(--space-8)}.sm\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-inset{inset:var(--inset-md)}.md\:rt-r-inset-0{inset:0}.md\:rt-r-inset-1{inset:var(--space-1)}.md\:rt-r-inset-2{inset:var(--space-2)}.md\:rt-r-inset-3{inset:var(--space-3)}.md\:rt-r-inset-4{inset:var(--space-4)}.md\:rt-r-inset-5{inset:var(--space-5)}.md\:rt-r-inset-6{inset:var(--space-6)}.md\:rt-r-inset-7{inset:var(--space-7)}.md\:rt-r-inset-8{inset:var(--space-8)}.md\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-inset{inset:var(--inset-lg)}.lg\:rt-r-inset-0{inset:0}.lg\:rt-r-inset-1{inset:var(--space-1)}.lg\:rt-r-inset-2{inset:var(--space-2)}.lg\:rt-r-inset-3{inset:var(--space-3)}.lg\:rt-r-inset-4{inset:var(--space-4)}.lg\:rt-r-inset-5{inset:var(--space-5)}.lg\:rt-r-inset-6{inset:var(--space-6)}.lg\:rt-r-inset-7{inset:var(--space-7)}.lg\:rt-r-inset-8{inset:var(--space-8)}.lg\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-inset{inset:var(--inset-xl)}.xl\:rt-r-inset-0{inset:0}.xl\:rt-r-inset-1{inset:var(--space-1)}.xl\:rt-r-inset-2{inset:var(--space-2)}.xl\:rt-r-inset-3{inset:var(--space-3)}.xl\:rt-r-inset-4{inset:var(--space-4)}.xl\:rt-r-inset-5{inset:var(--space-5)}.xl\:rt-r-inset-6{inset:var(--space-6)}.xl\:rt-r-inset-7{inset:var(--space-7)}.xl\:rt-r-inset-8{inset:var(--space-8)}.xl\:rt-r-inset-9{inset:var(--space-9)}}.rt-r-top{top:var(--top)}.rt-r-top-0{top:0}.rt-r-top-1{top:var(--space-1)}.rt-r-top-2{top:var(--space-2)}.rt-r-top-3{top:var(--space-3)}.rt-r-top-4{top:var(--space-4)}.rt-r-top-5{top:var(--space-5)}.rt-r-top-6{top:var(--space-6)}.rt-r-top-7{top:var(--space-7)}.rt-r-top-8{top:var(--space-8)}.rt-r-top-9{top:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-top{top:var(--top-xs)}.xs\:rt-r-top-0{top:0}.xs\:rt-r-top-1{top:var(--space-1)}.xs\:rt-r-top-2{top:var(--space-2)}.xs\:rt-r-top-3{top:var(--space-3)}.xs\:rt-r-top-4{top:var(--space-4)}.xs\:rt-r-top-5{top:var(--space-5)}.xs\:rt-r-top-6{top:var(--space-6)}.xs\:rt-r-top-7{top:var(--space-7)}.xs\:rt-r-top-8{top:var(--space-8)}.xs\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-top{top:var(--top-sm)}.sm\:rt-r-top-0{top:0}.sm\:rt-r-top-1{top:var(--space-1)}.sm\:rt-r-top-2{top:var(--space-2)}.sm\:rt-r-top-3{top:var(--space-3)}.sm\:rt-r-top-4{top:var(--space-4)}.sm\:rt-r-top-5{top:var(--space-5)}.sm\:rt-r-top-6{top:var(--space-6)}.sm\:rt-r-top-7{top:var(--space-7)}.sm\:rt-r-top-8{top:var(--space-8)}.sm\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-top{top:var(--top-md)}.md\:rt-r-top-0{top:0}.md\:rt-r-top-1{top:var(--space-1)}.md\:rt-r-top-2{top:var(--space-2)}.md\:rt-r-top-3{top:var(--space-3)}.md\:rt-r-top-4{top:var(--space-4)}.md\:rt-r-top-5{top:var(--space-5)}.md\:rt-r-top-6{top:var(--space-6)}.md\:rt-r-top-7{top:var(--space-7)}.md\:rt-r-top-8{top:var(--space-8)}.md\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-top{top:var(--top-lg)}.lg\:rt-r-top-0{top:0}.lg\:rt-r-top-1{top:var(--space-1)}.lg\:rt-r-top-2{top:var(--space-2)}.lg\:rt-r-top-3{top:var(--space-3)}.lg\:rt-r-top-4{top:var(--space-4)}.lg\:rt-r-top-5{top:var(--space-5)}.lg\:rt-r-top-6{top:var(--space-6)}.lg\:rt-r-top-7{top:var(--space-7)}.lg\:rt-r-top-8{top:var(--space-8)}.lg\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-top{top:var(--top-xl)}.xl\:rt-r-top-0{top:0}.xl\:rt-r-top-1{top:var(--space-1)}.xl\:rt-r-top-2{top:var(--space-2)}.xl\:rt-r-top-3{top:var(--space-3)}.xl\:rt-r-top-4{top:var(--space-4)}.xl\:rt-r-top-5{top:var(--space-5)}.xl\:rt-r-top-6{top:var(--space-6)}.xl\:rt-r-top-7{top:var(--space-7)}.xl\:rt-r-top-8{top:var(--space-8)}.xl\:rt-r-top-9{top:var(--space-9)}}.rt-r-right{right:var(--right)}.rt-r-right-0{right:0}.rt-r-right-1{right:var(--space-1)}.rt-r-right-2{right:var(--space-2)}.rt-r-right-3{right:var(--space-3)}.rt-r-right-4{right:var(--space-4)}.rt-r-right-5{right:var(--space-5)}.rt-r-right-6{right:var(--space-6)}.rt-r-right-7{right:var(--space-7)}.rt-r-right-8{right:var(--space-8)}.rt-r-right-9{right:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-right{right:var(--right-xs)}.xs\:rt-r-right-0{right:0}.xs\:rt-r-right-1{right:var(--space-1)}.xs\:rt-r-right-2{right:var(--space-2)}.xs\:rt-r-right-3{right:var(--space-3)}.xs\:rt-r-right-4{right:var(--space-4)}.xs\:rt-r-right-5{right:var(--space-5)}.xs\:rt-r-right-6{right:var(--space-6)}.xs\:rt-r-right-7{right:var(--space-7)}.xs\:rt-r-right-8{right:var(--space-8)}.xs\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-right{right:var(--right-sm)}.sm\:rt-r-right-0{right:0}.sm\:rt-r-right-1{right:var(--space-1)}.sm\:rt-r-right-2{right:var(--space-2)}.sm\:rt-r-right-3{right:var(--space-3)}.sm\:rt-r-right-4{right:var(--space-4)}.sm\:rt-r-right-5{right:var(--space-5)}.sm\:rt-r-right-6{right:var(--space-6)}.sm\:rt-r-right-7{right:var(--space-7)}.sm\:rt-r-right-8{right:var(--space-8)}.sm\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-right{right:var(--right-md)}.md\:rt-r-right-0{right:0}.md\:rt-r-right-1{right:var(--space-1)}.md\:rt-r-right-2{right:var(--space-2)}.md\:rt-r-right-3{right:var(--space-3)}.md\:rt-r-right-4{right:var(--space-4)}.md\:rt-r-right-5{right:var(--space-5)}.md\:rt-r-right-6{right:var(--space-6)}.md\:rt-r-right-7{right:var(--space-7)}.md\:rt-r-right-8{right:var(--space-8)}.md\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-right{right:var(--right-lg)}.lg\:rt-r-right-0{right:0}.lg\:rt-r-right-1{right:var(--space-1)}.lg\:rt-r-right-2{right:var(--space-2)}.lg\:rt-r-right-3{right:var(--space-3)}.lg\:rt-r-right-4{right:var(--space-4)}.lg\:rt-r-right-5{right:var(--space-5)}.lg\:rt-r-right-6{right:var(--space-6)}.lg\:rt-r-right-7{right:var(--space-7)}.lg\:rt-r-right-8{right:var(--space-8)}.lg\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-right{right:var(--right-xl)}.xl\:rt-r-right-0{right:0}.xl\:rt-r-right-1{right:var(--space-1)}.xl\:rt-r-right-2{right:var(--space-2)}.xl\:rt-r-right-3{right:var(--space-3)}.xl\:rt-r-right-4{right:var(--space-4)}.xl\:rt-r-right-5{right:var(--space-5)}.xl\:rt-r-right-6{right:var(--space-6)}.xl\:rt-r-right-7{right:var(--space-7)}.xl\:rt-r-right-8{right:var(--space-8)}.xl\:rt-r-right-9{right:var(--space-9)}}.rt-r-bottom{bottom:var(--bottom)}.rt-r-bottom-0{bottom:0}.rt-r-bottom-1{bottom:var(--space-1)}.rt-r-bottom-2{bottom:var(--space-2)}.rt-r-bottom-3{bottom:var(--space-3)}.rt-r-bottom-4{bottom:var(--space-4)}.rt-r-bottom-5{bottom:var(--space-5)}.rt-r-bottom-6{bottom:var(--space-6)}.rt-r-bottom-7{bottom:var(--space-7)}.rt-r-bottom-8{bottom:var(--space-8)}.rt-r-bottom-9{bottom:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-bottom{bottom:var(--bottom-xs)}.xs\:rt-r-bottom-0{bottom:0}.xs\:rt-r-bottom-1{bottom:var(--space-1)}.xs\:rt-r-bottom-2{bottom:var(--space-2)}.xs\:rt-r-bottom-3{bottom:var(--space-3)}.xs\:rt-r-bottom-4{bottom:var(--space-4)}.xs\:rt-r-bottom-5{bottom:var(--space-5)}.xs\:rt-r-bottom-6{bottom:var(--space-6)}.xs\:rt-r-bottom-7{bottom:var(--space-7)}.xs\:rt-r-bottom-8{bottom:var(--space-8)}.xs\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-bottom{bottom:var(--bottom-sm)}.sm\:rt-r-bottom-0{bottom:0}.sm\:rt-r-bottom-1{bottom:var(--space-1)}.sm\:rt-r-bottom-2{bottom:var(--space-2)}.sm\:rt-r-bottom-3{bottom:var(--space-3)}.sm\:rt-r-bottom-4{bottom:var(--space-4)}.sm\:rt-r-bottom-5{bottom:var(--space-5)}.sm\:rt-r-bottom-6{bottom:var(--space-6)}.sm\:rt-r-bottom-7{bottom:var(--space-7)}.sm\:rt-r-bottom-8{bottom:var(--space-8)}.sm\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-bottom{bottom:var(--bottom-md)}.md\:rt-r-bottom-0{bottom:0}.md\:rt-r-bottom-1{bottom:var(--space-1)}.md\:rt-r-bottom-2{bottom:var(--space-2)}.md\:rt-r-bottom-3{bottom:var(--space-3)}.md\:rt-r-bottom-4{bottom:var(--space-4)}.md\:rt-r-bottom-5{bottom:var(--space-5)}.md\:rt-r-bottom-6{bottom:var(--space-6)}.md\:rt-r-bottom-7{bottom:var(--space-7)}.md\:rt-r-bottom-8{bottom:var(--space-8)}.md\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-bottom{bottom:var(--bottom-lg)}.lg\:rt-r-bottom-0{bottom:0}.lg\:rt-r-bottom-1{bottom:var(--space-1)}.lg\:rt-r-bottom-2{bottom:var(--space-2)}.lg\:rt-r-bottom-3{bottom:var(--space-3)}.lg\:rt-r-bottom-4{bottom:var(--space-4)}.lg\:rt-r-bottom-5{bottom:var(--space-5)}.lg\:rt-r-bottom-6{bottom:var(--space-6)}.lg\:rt-r-bottom-7{bottom:var(--space-7)}.lg\:rt-r-bottom-8{bottom:var(--space-8)}.lg\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-bottom{bottom:var(--bottom-xl)}.xl\:rt-r-bottom-0{bottom:0}.xl\:rt-r-bottom-1{bottom:var(--space-1)}.xl\:rt-r-bottom-2{bottom:var(--space-2)}.xl\:rt-r-bottom-3{bottom:var(--space-3)}.xl\:rt-r-bottom-4{bottom:var(--space-4)}.xl\:rt-r-bottom-5{bottom:var(--space-5)}.xl\:rt-r-bottom-6{bottom:var(--space-6)}.xl\:rt-r-bottom-7{bottom:var(--space-7)}.xl\:rt-r-bottom-8{bottom:var(--space-8)}.xl\:rt-r-bottom-9{bottom:var(--space-9)}}.rt-r-left{left:var(--left)}.rt-r-left-0{left:0}.rt-r-left-1{left:var(--space-1)}.rt-r-left-2{left:var(--space-2)}.rt-r-left-3{left:var(--space-3)}.rt-r-left-4{left:var(--space-4)}.rt-r-left-5{left:var(--space-5)}.rt-r-left-6{left:var(--space-6)}.rt-r-left-7{left:var(--space-7)}.rt-r-left-8{left:var(--space-8)}.rt-r-left-9{left:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-left{left:var(--left-xs)}.xs\:rt-r-left-0{left:0}.xs\:rt-r-left-1{left:var(--space-1)}.xs\:rt-r-left-2{left:var(--space-2)}.xs\:rt-r-left-3{left:var(--space-3)}.xs\:rt-r-left-4{left:var(--space-4)}.xs\:rt-r-left-5{left:var(--space-5)}.xs\:rt-r-left-6{left:var(--space-6)}.xs\:rt-r-left-7{left:var(--space-7)}.xs\:rt-r-left-8{left:var(--space-8)}.xs\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-left{left:var(--left-sm)}.sm\:rt-r-left-0{left:0}.sm\:rt-r-left-1{left:var(--space-1)}.sm\:rt-r-left-2{left:var(--space-2)}.sm\:rt-r-left-3{left:var(--space-3)}.sm\:rt-r-left-4{left:var(--space-4)}.sm\:rt-r-left-5{left:var(--space-5)}.sm\:rt-r-left-6{left:var(--space-6)}.sm\:rt-r-left-7{left:var(--space-7)}.sm\:rt-r-left-8{left:var(--space-8)}.sm\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-left{left:var(--left-md)}.md\:rt-r-left-0{left:0}.md\:rt-r-left-1{left:var(--space-1)}.md\:rt-r-left-2{left:var(--space-2)}.md\:rt-r-left-3{left:var(--space-3)}.md\:rt-r-left-4{left:var(--space-4)}.md\:rt-r-left-5{left:var(--space-5)}.md\:rt-r-left-6{left:var(--space-6)}.md\:rt-r-left-7{left:var(--space-7)}.md\:rt-r-left-8{left:var(--space-8)}.md\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-left{left:var(--left-lg)}.lg\:rt-r-left-0{left:0}.lg\:rt-r-left-1{left:var(--space-1)}.lg\:rt-r-left-2{left:var(--space-2)}.lg\:rt-r-left-3{left:var(--space-3)}.lg\:rt-r-left-4{left:var(--space-4)}.lg\:rt-r-left-5{left:var(--space-5)}.lg\:rt-r-left-6{left:var(--space-6)}.lg\:rt-r-left-7{left:var(--space-7)}.lg\:rt-r-left-8{left:var(--space-8)}.lg\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-left{left:var(--left-xl)}.xl\:rt-r-left-0{left:0}.xl\:rt-r-left-1{left:var(--space-1)}.xl\:rt-r-left-2{left:var(--space-2)}.xl\:rt-r-left-3{left:var(--space-3)}.xl\:rt-r-left-4{left:var(--space-4)}.xl\:rt-r-left-5{left:var(--space-5)}.xl\:rt-r-left-6{left:var(--space-6)}.xl\:rt-r-left-7{left:var(--space-7)}.xl\:rt-r-left-8{left:var(--space-8)}.xl\:rt-r-left-9{left:var(--space-9)}}.rt-r-jc-start{justify-content:flex-start}.rt-r-jc-center{justify-content:center}.rt-r-jc-end{justify-content:flex-end}.rt-r-jc-space-between{justify-content:space-between}@media (min-width: 520px){.xs\:rt-r-jc-start{justify-content:flex-start}.xs\:rt-r-jc-center{justify-content:center}.xs\:rt-r-jc-end{justify-content:flex-end}.xs\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 768px){.sm\:rt-r-jc-start{justify-content:flex-start}.sm\:rt-r-jc-center{justify-content:center}.sm\:rt-r-jc-end{justify-content:flex-end}.sm\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1024px){.md\:rt-r-jc-start{justify-content:flex-start}.md\:rt-r-jc-center{justify-content:center}.md\:rt-r-jc-end{justify-content:flex-end}.md\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1280px){.lg\:rt-r-jc-start{justify-content:flex-start}.lg\:rt-r-jc-center{justify-content:center}.lg\:rt-r-jc-end{justify-content:flex-end}.lg\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1640px){.xl\:rt-r-jc-start{justify-content:flex-start}.xl\:rt-r-jc-center{justify-content:center}.xl\:rt-r-jc-end{justify-content:flex-end}.xl\:rt-r-jc-space-between{justify-content:space-between}}.rt-r-m,.rt-r-m-0,.rt-r-m-1,.rt-r-m-2,.rt-r-m-3,.rt-r-m-4,.rt-r-m-5,.rt-r-m-6,.rt-r-m-7,.rt-r-m-8,.rt-r-m-9,.-rt-r-m-1,.-rt-r-m-2,.-rt-r-m-3,.-rt-r-m-4,.-rt-r-m-5,.-rt-r-m-6,.-rt-r-m-7,.-rt-r-m-8,.-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-m{--margin-top: var(--m);--margin-right: var(--m);--margin-bottom: var(--m);--margin-left: var(--m) }.rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-m,.xs\:rt-r-m-0,.xs\:rt-r-m-1,.xs\:rt-r-m-2,.xs\:rt-r-m-3,.xs\:rt-r-m-4,.xs\:rt-r-m-5,.xs\:rt-r-m-6,.xs\:rt-r-m-7,.xs\:rt-r-m-8,.xs\:rt-r-m-9,.xs\:-rt-r-m-1,.xs\:-rt-r-m-2,.xs\:-rt-r-m-3,.xs\:-rt-r-m-4,.xs\:-rt-r-m-5,.xs\:-rt-r-m-6,.xs\:-rt-r-m-7,.xs\:-rt-r-m-8,.xs\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-m{--margin-top: var(--m-xs);--margin-right: var(--m-xs);--margin-bottom: var(--m-xs);--margin-left: var(--m-xs) }.xs\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xs\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xs\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xs\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xs\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xs\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xs\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xs\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xs\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xs\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xs\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-m,.sm\:rt-r-m-0,.sm\:rt-r-m-1,.sm\:rt-r-m-2,.sm\:rt-r-m-3,.sm\:rt-r-m-4,.sm\:rt-r-m-5,.sm\:rt-r-m-6,.sm\:rt-r-m-7,.sm\:rt-r-m-8,.sm\:rt-r-m-9,.sm\:-rt-r-m-1,.sm\:-rt-r-m-2,.sm\:-rt-r-m-3,.sm\:-rt-r-m-4,.sm\:-rt-r-m-5,.sm\:-rt-r-m-6,.sm\:-rt-r-m-7,.sm\:-rt-r-m-8,.sm\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-m{--margin-top: var(--m-sm);--margin-right: var(--m-sm);--margin-bottom: var(--m-sm);--margin-left: var(--m-sm) }.sm\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.sm\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.sm\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.sm\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.sm\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.sm\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.sm\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.sm\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.sm\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.sm\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.sm\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-m,.md\:rt-r-m-0,.md\:rt-r-m-1,.md\:rt-r-m-2,.md\:rt-r-m-3,.md\:rt-r-m-4,.md\:rt-r-m-5,.md\:rt-r-m-6,.md\:rt-r-m-7,.md\:rt-r-m-8,.md\:rt-r-m-9,.md\:-rt-r-m-1,.md\:-rt-r-m-2,.md\:-rt-r-m-3,.md\:-rt-r-m-4,.md\:-rt-r-m-5,.md\:-rt-r-m-6,.md\:-rt-r-m-7,.md\:-rt-r-m-8,.md\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-m{--margin-top: var(--m-md);--margin-right: var(--m-md);--margin-bottom: var(--m-md);--margin-left: var(--m-md) }.md\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.md\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.md\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.md\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.md\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.md\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.md\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.md\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.md\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.md\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.md\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-m,.lg\:rt-r-m-0,.lg\:rt-r-m-1,.lg\:rt-r-m-2,.lg\:rt-r-m-3,.lg\:rt-r-m-4,.lg\:rt-r-m-5,.lg\:rt-r-m-6,.lg\:rt-r-m-7,.lg\:rt-r-m-8,.lg\:rt-r-m-9,.lg\:-rt-r-m-1,.lg\:-rt-r-m-2,.lg\:-rt-r-m-3,.lg\:-rt-r-m-4,.lg\:-rt-r-m-5,.lg\:-rt-r-m-6,.lg\:-rt-r-m-7,.lg\:-rt-r-m-8,.lg\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-m{--margin-top: var(--m-lg);--margin-right: var(--m-lg);--margin-bottom: var(--m-lg);--margin-left: var(--m-lg) }.lg\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.lg\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.lg\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.lg\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.lg\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.lg\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.lg\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.lg\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.lg\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.lg\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.lg\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-m,.xl\:rt-r-m-0,.xl\:rt-r-m-1,.xl\:rt-r-m-2,.xl\:rt-r-m-3,.xl\:rt-r-m-4,.xl\:rt-r-m-5,.xl\:rt-r-m-6,.xl\:rt-r-m-7,.xl\:rt-r-m-8,.xl\:rt-r-m-9,.xl\:-rt-r-m-1,.xl\:-rt-r-m-2,.xl\:-rt-r-m-3,.xl\:-rt-r-m-4,.xl\:-rt-r-m-5,.xl\:-rt-r-m-6,.xl\:-rt-r-m-7,.xl\:-rt-r-m-8,.xl\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-m{--margin-top: var(--m-xl);--margin-right: var(--m-xl);--margin-bottom: var(--m-xl);--margin-left: var(--m-xl) }.xl\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xl\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xl\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xl\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xl\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xl\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xl\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xl\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xl\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xl\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xl\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}.rt-r-mx,.rt-r-mx-0,.rt-r-mx-1,.rt-r-mx-2,.rt-r-mx-3,.rt-r-mx-4,.rt-r-mx-5,.rt-r-mx-6,.rt-r-mx-7,.rt-r-mx-8,.rt-r-mx-9,.-rt-r-mx-1,.-rt-r-mx-2,.-rt-r-mx-3,.-rt-r-mx-4,.-rt-r-mx-5,.-rt-r-mx-6,.-rt-r-mx-7,.-rt-r-mx-8,.-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mx{--margin-left: var(--ml);--margin-right: var(--mr) }.rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mx,.xs\:rt-r-mx-0,.xs\:rt-r-mx-1,.xs\:rt-r-mx-2,.xs\:rt-r-mx-3,.xs\:rt-r-mx-4,.xs\:rt-r-mx-5,.xs\:rt-r-mx-6,.xs\:rt-r-mx-7,.xs\:rt-r-mx-8,.xs\:rt-r-mx-9,.xs\:-rt-r-mx-1,.xs\:-rt-r-mx-2,.xs\:-rt-r-mx-3,.xs\:-rt-r-mx-4,.xs\:-rt-r-mx-5,.xs\:-rt-r-mx-6,.xs\:-rt-r-mx-7,.xs\:-rt-r-mx-8,.xs\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mx{--margin-left: var(--ml-xs);--margin-right: var(--mr-xs) }.xs\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xs\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xs\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xs\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xs\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xs\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xs\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xs\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xs\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xs\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xs\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mx,.sm\:rt-r-mx-0,.sm\:rt-r-mx-1,.sm\:rt-r-mx-2,.sm\:rt-r-mx-3,.sm\:rt-r-mx-4,.sm\:rt-r-mx-5,.sm\:rt-r-mx-6,.sm\:rt-r-mx-7,.sm\:rt-r-mx-8,.sm\:rt-r-mx-9,.sm\:-rt-r-mx-1,.sm\:-rt-r-mx-2,.sm\:-rt-r-mx-3,.sm\:-rt-r-mx-4,.sm\:-rt-r-mx-5,.sm\:-rt-r-mx-6,.sm\:-rt-r-mx-7,.sm\:-rt-r-mx-8,.sm\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.sm\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.sm\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.sm\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.sm\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.sm\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.sm\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.sm\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.sm\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.sm\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.sm\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.sm\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mx,.md\:rt-r-mx-0,.md\:rt-r-mx-1,.md\:rt-r-mx-2,.md\:rt-r-mx-3,.md\:rt-r-mx-4,.md\:rt-r-mx-5,.md\:rt-r-mx-6,.md\:rt-r-mx-7,.md\:rt-r-mx-8,.md\:rt-r-mx-9,.md\:-rt-r-mx-1,.md\:-rt-r-mx-2,.md\:-rt-r-mx-3,.md\:-rt-r-mx-4,.md\:-rt-r-mx-5,.md\:-rt-r-mx-6,.md\:-rt-r-mx-7,.md\:-rt-r-mx-8,.md\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.md\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.md\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.md\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.md\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.md\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.md\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.md\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.md\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.md\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.md\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.md\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mx,.lg\:rt-r-mx-0,.lg\:rt-r-mx-1,.lg\:rt-r-mx-2,.lg\:rt-r-mx-3,.lg\:rt-r-mx-4,.lg\:rt-r-mx-5,.lg\:rt-r-mx-6,.lg\:rt-r-mx-7,.lg\:rt-r-mx-8,.lg\:rt-r-mx-9,.lg\:-rt-r-mx-1,.lg\:-rt-r-mx-2,.lg\:-rt-r-mx-3,.lg\:-rt-r-mx-4,.lg\:-rt-r-mx-5,.lg\:-rt-r-mx-6,.lg\:-rt-r-mx-7,.lg\:-rt-r-mx-8,.lg\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mx{--margin-left: var(--ml-lg);--margin-right: var(--mr-lg) }.lg\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.lg\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.lg\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.lg\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.lg\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.lg\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.lg\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.lg\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.lg\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.lg\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.lg\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mx,.xl\:rt-r-mx-0,.xl\:rt-r-mx-1,.xl\:rt-r-mx-2,.xl\:rt-r-mx-3,.xl\:rt-r-mx-4,.xl\:rt-r-mx-5,.xl\:rt-r-mx-6,.xl\:rt-r-mx-7,.xl\:rt-r-mx-8,.xl\:rt-r-mx-9,.xl\:-rt-r-mx-1,.xl\:-rt-r-mx-2,.xl\:-rt-r-mx-3,.xl\:-rt-r-mx-4,.xl\:-rt-r-mx-5,.xl\:-rt-r-mx-6,.xl\:-rt-r-mx-7,.xl\:-rt-r-mx-8,.xl\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mx{--margin-left: var(--ml-xl);--margin-right: var(--mr-xl) }.xl\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xl\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xl\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xl\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xl\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xl\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xl\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xl\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xl\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xl\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xl\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}.rt-r-my,.rt-r-my-0,.rt-r-my-1,.rt-r-my-2,.rt-r-my-3,.rt-r-my-4,.rt-r-my-5,.rt-r-my-6,.rt-r-my-7,.rt-r-my-8,.rt-r-my-9,.-rt-r-my-1,.-rt-r-my-2,.-rt-r-my-3,.-rt-r-my-4,.-rt-r-my-5,.-rt-r-my-6,.-rt-r-my-7,.-rt-r-my-8,.-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-my{--margin-top: var(--mt);--margin-bottom: var(--mb) }.rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-my,.xs\:rt-r-my-0,.xs\:rt-r-my-1,.xs\:rt-r-my-2,.xs\:rt-r-my-3,.xs\:rt-r-my-4,.xs\:rt-r-my-5,.xs\:rt-r-my-6,.xs\:rt-r-my-7,.xs\:rt-r-my-8,.xs\:rt-r-my-9,.xs\:-rt-r-my-1,.xs\:-rt-r-my-2,.xs\:-rt-r-my-3,.xs\:-rt-r-my-4,.xs\:-rt-r-my-5,.xs\:-rt-r-my-6,.xs\:-rt-r-my-7,.xs\:-rt-r-my-8,.xs\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-my{--margin-top: var(--mt-xs);--margin-bottom: var(--mb-xs) }.xs\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xs\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xs\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xs\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xs\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xs\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xs\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xs\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xs\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xs\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xs\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-my,.sm\:rt-r-my-0,.sm\:rt-r-my-1,.sm\:rt-r-my-2,.sm\:rt-r-my-3,.sm\:rt-r-my-4,.sm\:rt-r-my-5,.sm\:rt-r-my-6,.sm\:rt-r-my-7,.sm\:rt-r-my-8,.sm\:rt-r-my-9,.sm\:-rt-r-my-1,.sm\:-rt-r-my-2,.sm\:-rt-r-my-3,.sm\:-rt-r-my-4,.sm\:-rt-r-my-5,.sm\:-rt-r-my-6,.sm\:-rt-r-my-7,.sm\:-rt-r-my-8,.sm\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-my{--margin-top: var(--mt-sm);--margin-bottom: var(--mb-sm) }.sm\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.sm\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.sm\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.sm\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.sm\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.sm\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.sm\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.sm\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.sm\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.sm\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.sm\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-my,.md\:rt-r-my-0,.md\:rt-r-my-1,.md\:rt-r-my-2,.md\:rt-r-my-3,.md\:rt-r-my-4,.md\:rt-r-my-5,.md\:rt-r-my-6,.md\:rt-r-my-7,.md\:rt-r-my-8,.md\:rt-r-my-9,.md\:-rt-r-my-1,.md\:-rt-r-my-2,.md\:-rt-r-my-3,.md\:-rt-r-my-4,.md\:-rt-r-my-5,.md\:-rt-r-my-6,.md\:-rt-r-my-7,.md\:-rt-r-my-8,.md\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-my{--margin-top: var(--mt-md);--margin-bottom: var(--mb-md) }.md\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.md\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.md\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.md\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.md\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.md\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.md\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.md\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.md\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.md\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.md\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-my,.lg\:rt-r-my-0,.lg\:rt-r-my-1,.lg\:rt-r-my-2,.lg\:rt-r-my-3,.lg\:rt-r-my-4,.lg\:rt-r-my-5,.lg\:rt-r-my-6,.lg\:rt-r-my-7,.lg\:rt-r-my-8,.lg\:rt-r-my-9,.lg\:-rt-r-my-1,.lg\:-rt-r-my-2,.lg\:-rt-r-my-3,.lg\:-rt-r-my-4,.lg\:-rt-r-my-5,.lg\:-rt-r-my-6,.lg\:-rt-r-my-7,.lg\:-rt-r-my-8,.lg\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-my{--margin-top: var(--mt-lg);--margin-bottom: var(--mb-lg) }.lg\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.lg\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.lg\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.lg\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.lg\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.lg\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.lg\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.lg\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.lg\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.lg\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.lg\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-my,.xl\:rt-r-my-0,.xl\:rt-r-my-1,.xl\:rt-r-my-2,.xl\:rt-r-my-3,.xl\:rt-r-my-4,.xl\:rt-r-my-5,.xl\:rt-r-my-6,.xl\:rt-r-my-7,.xl\:rt-r-my-8,.xl\:rt-r-my-9,.xl\:-rt-r-my-1,.xl\:-rt-r-my-2,.xl\:-rt-r-my-3,.xl\:-rt-r-my-4,.xl\:-rt-r-my-5,.xl\:-rt-r-my-6,.xl\:-rt-r-my-7,.xl\:-rt-r-my-8,.xl\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-my{--margin-top: var(--mt-xl);--margin-bottom: var(--mb-xl) }.xl\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xl\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xl\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xl\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xl\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xl\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xl\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xl\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xl\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xl\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xl\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-mt,.rt-r-mt-0,.rt-r-mt-1,.rt-r-mt-2,.rt-r-mt-3,.rt-r-mt-4,.rt-r-mt-5,.rt-r-mt-6,.rt-r-mt-7,.rt-r-mt-8,.rt-r-mt-9,.-rt-r-mt-1,.-rt-r-mt-2,.-rt-r-mt-3,.-rt-r-mt-4,.-rt-r-mt-5,.-rt-r-mt-6,.-rt-r-mt-7,.-rt-r-mt-8,.-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.rt-r-mt{--margin-top: var(--mt) }.rt-r-mt-0{--margin-top: 0px}.rt-r-mt-1{--margin-top: var(--space-1)}.rt-r-mt-2{--margin-top: var(--space-2)}.rt-r-mt-3{--margin-top: var(--space-3)}.rt-r-mt-4{--margin-top: var(--space-4)}.rt-r-mt-5{--margin-top: var(--space-5)}.rt-r-mt-6{--margin-top: var(--space-6)}.rt-r-mt-7{--margin-top: var(--space-7)}.rt-r-mt-8{--margin-top: var(--space-8)}.rt-r-mt-9{--margin-top: var(--space-9)}.-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mt,.xs\:rt-r-mt-0,.xs\:rt-r-mt-1,.xs\:rt-r-mt-2,.xs\:rt-r-mt-3,.xs\:rt-r-mt-4,.xs\:rt-r-mt-5,.xs\:rt-r-mt-6,.xs\:rt-r-mt-7,.xs\:rt-r-mt-8,.xs\:rt-r-mt-9,.xs\:-rt-r-mt-1,.xs\:-rt-r-mt-2,.xs\:-rt-r-mt-3,.xs\:-rt-r-mt-4,.xs\:-rt-r-mt-5,.xs\:-rt-r-mt-6,.xs\:-rt-r-mt-7,.xs\:-rt-r-mt-8,.xs\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xs\:rt-r-mt{--margin-top: var(--mt-xs) }.xs\:rt-r-mt-0{--margin-top: 0px}.xs\:rt-r-mt-1{--margin-top: var(--space-1)}.xs\:rt-r-mt-2{--margin-top: var(--space-2)}.xs\:rt-r-mt-3{--margin-top: var(--space-3)}.xs\:rt-r-mt-4{--margin-top: var(--space-4)}.xs\:rt-r-mt-5{--margin-top: var(--space-5)}.xs\:rt-r-mt-6{--margin-top: var(--space-6)}.xs\:rt-r-mt-7{--margin-top: var(--space-7)}.xs\:rt-r-mt-8{--margin-top: var(--space-8)}.xs\:rt-r-mt-9{--margin-top: var(--space-9)}.xs\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xs\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xs\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xs\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xs\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xs\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xs\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xs\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xs\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mt,.sm\:rt-r-mt-0,.sm\:rt-r-mt-1,.sm\:rt-r-mt-2,.sm\:rt-r-mt-3,.sm\:rt-r-mt-4,.sm\:rt-r-mt-5,.sm\:rt-r-mt-6,.sm\:rt-r-mt-7,.sm\:rt-r-mt-8,.sm\:rt-r-mt-9,.sm\:-rt-r-mt-1,.sm\:-rt-r-mt-2,.sm\:-rt-r-mt-3,.sm\:-rt-r-mt-4,.sm\:-rt-r-mt-5,.sm\:-rt-r-mt-6,.sm\:-rt-r-mt-7,.sm\:-rt-r-mt-8,.sm\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.sm\:rt-r-mt{--margin-top: var(--mt-sm) }.sm\:rt-r-mt-0{--margin-top: 0px}.sm\:rt-r-mt-1{--margin-top: var(--space-1)}.sm\:rt-r-mt-2{--margin-top: var(--space-2)}.sm\:rt-r-mt-3{--margin-top: var(--space-3)}.sm\:rt-r-mt-4{--margin-top: var(--space-4)}.sm\:rt-r-mt-5{--margin-top: var(--space-5)}.sm\:rt-r-mt-6{--margin-top: var(--space-6)}.sm\:rt-r-mt-7{--margin-top: var(--space-7)}.sm\:rt-r-mt-8{--margin-top: var(--space-8)}.sm\:rt-r-mt-9{--margin-top: var(--space-9)}.sm\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.sm\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.sm\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.sm\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.sm\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.sm\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.sm\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.sm\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.sm\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mt,.md\:rt-r-mt-0,.md\:rt-r-mt-1,.md\:rt-r-mt-2,.md\:rt-r-mt-3,.md\:rt-r-mt-4,.md\:rt-r-mt-5,.md\:rt-r-mt-6,.md\:rt-r-mt-7,.md\:rt-r-mt-8,.md\:rt-r-mt-9,.md\:-rt-r-mt-1,.md\:-rt-r-mt-2,.md\:-rt-r-mt-3,.md\:-rt-r-mt-4,.md\:-rt-r-mt-5,.md\:-rt-r-mt-6,.md\:-rt-r-mt-7,.md\:-rt-r-mt-8,.md\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.md\:rt-r-mt{--margin-top: var(--mt-md) }.md\:rt-r-mt-0{--margin-top: 0px}.md\:rt-r-mt-1{--margin-top: var(--space-1)}.md\:rt-r-mt-2{--margin-top: var(--space-2)}.md\:rt-r-mt-3{--margin-top: var(--space-3)}.md\:rt-r-mt-4{--margin-top: var(--space-4)}.md\:rt-r-mt-5{--margin-top: var(--space-5)}.md\:rt-r-mt-6{--margin-top: var(--space-6)}.md\:rt-r-mt-7{--margin-top: var(--space-7)}.md\:rt-r-mt-8{--margin-top: var(--space-8)}.md\:rt-r-mt-9{--margin-top: var(--space-9)}.md\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.md\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.md\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.md\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.md\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.md\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.md\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.md\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.md\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mt,.lg\:rt-r-mt-0,.lg\:rt-r-mt-1,.lg\:rt-r-mt-2,.lg\:rt-r-mt-3,.lg\:rt-r-mt-4,.lg\:rt-r-mt-5,.lg\:rt-r-mt-6,.lg\:rt-r-mt-7,.lg\:rt-r-mt-8,.lg\:rt-r-mt-9,.lg\:-rt-r-mt-1,.lg\:-rt-r-mt-2,.lg\:-rt-r-mt-3,.lg\:-rt-r-mt-4,.lg\:-rt-r-mt-5,.lg\:-rt-r-mt-6,.lg\:-rt-r-mt-7,.lg\:-rt-r-mt-8,.lg\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.lg\:rt-r-mt{--margin-top: var(--mt-lg) }.lg\:rt-r-mt-0{--margin-top: 0px}.lg\:rt-r-mt-1{--margin-top: var(--space-1)}.lg\:rt-r-mt-2{--margin-top: var(--space-2)}.lg\:rt-r-mt-3{--margin-top: var(--space-3)}.lg\:rt-r-mt-4{--margin-top: var(--space-4)}.lg\:rt-r-mt-5{--margin-top: var(--space-5)}.lg\:rt-r-mt-6{--margin-top: var(--space-6)}.lg\:rt-r-mt-7{--margin-top: var(--space-7)}.lg\:rt-r-mt-8{--margin-top: var(--space-8)}.lg\:rt-r-mt-9{--margin-top: var(--space-9)}.lg\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.lg\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.lg\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.lg\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.lg\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.lg\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.lg\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.lg\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.lg\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mt,.xl\:rt-r-mt-0,.xl\:rt-r-mt-1,.xl\:rt-r-mt-2,.xl\:rt-r-mt-3,.xl\:rt-r-mt-4,.xl\:rt-r-mt-5,.xl\:rt-r-mt-6,.xl\:rt-r-mt-7,.xl\:rt-r-mt-8,.xl\:rt-r-mt-9,.xl\:-rt-r-mt-1,.xl\:-rt-r-mt-2,.xl\:-rt-r-mt-3,.xl\:-rt-r-mt-4,.xl\:-rt-r-mt-5,.xl\:-rt-r-mt-6,.xl\:-rt-r-mt-7,.xl\:-rt-r-mt-8,.xl\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xl\:rt-r-mt{--margin-top: var(--mt-xl) }.xl\:rt-r-mt-0{--margin-top: 0px}.xl\:rt-r-mt-1{--margin-top: var(--space-1)}.xl\:rt-r-mt-2{--margin-top: var(--space-2)}.xl\:rt-r-mt-3{--margin-top: var(--space-3)}.xl\:rt-r-mt-4{--margin-top: var(--space-4)}.xl\:rt-r-mt-5{--margin-top: var(--space-5)}.xl\:rt-r-mt-6{--margin-top: var(--space-6)}.xl\:rt-r-mt-7{--margin-top: var(--space-7)}.xl\:rt-r-mt-8{--margin-top: var(--space-8)}.xl\:rt-r-mt-9{--margin-top: var(--space-9)}.xl\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xl\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xl\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xl\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xl\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xl\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xl\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xl\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xl\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}.rt-r-mr,.rt-r-mr-0,.rt-r-mr-1,.rt-r-mr-2,.rt-r-mr-3,.rt-r-mr-4,.rt-r-mr-5,.rt-r-mr-6,.rt-r-mr-7,.rt-r-mr-8,.rt-r-mr-9,.-rt-r-mr-1,.-rt-r-mr-2,.-rt-r-mr-3,.-rt-r-mr-4,.-rt-r-mr-5,.-rt-r-mr-6,.-rt-r-mr-7,.-rt-r-mr-8,.-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mr{--margin-right: var(--mr) }.rt-r-mr-0{--margin-right: 0px}.rt-r-mr-1{--margin-right: var(--space-1)}.rt-r-mr-2{--margin-right: var(--space-2)}.rt-r-mr-3{--margin-right: var(--space-3)}.rt-r-mr-4{--margin-right: var(--space-4)}.rt-r-mr-5{--margin-right: var(--space-5)}.rt-r-mr-6{--margin-right: var(--space-6)}.rt-r-mr-7{--margin-right: var(--space-7)}.rt-r-mr-8{--margin-right: var(--space-8)}.rt-r-mr-9{--margin-right: var(--space-9)}.-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mr,.xs\:rt-r-mr-0,.xs\:rt-r-mr-1,.xs\:rt-r-mr-2,.xs\:rt-r-mr-3,.xs\:rt-r-mr-4,.xs\:rt-r-mr-5,.xs\:rt-r-mr-6,.xs\:rt-r-mr-7,.xs\:rt-r-mr-8,.xs\:rt-r-mr-9,.xs\:-rt-r-mr-1,.xs\:-rt-r-mr-2,.xs\:-rt-r-mr-3,.xs\:-rt-r-mr-4,.xs\:-rt-r-mr-5,.xs\:-rt-r-mr-6,.xs\:-rt-r-mr-7,.xs\:-rt-r-mr-8,.xs\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mr{--margin-right: var(--mr-xs) }.xs\:rt-r-mr-0{--margin-right: 0px}.xs\:rt-r-mr-1{--margin-right: var(--space-1)}.xs\:rt-r-mr-2{--margin-right: var(--space-2)}.xs\:rt-r-mr-3{--margin-right: var(--space-3)}.xs\:rt-r-mr-4{--margin-right: var(--space-4)}.xs\:rt-r-mr-5{--margin-right: var(--space-5)}.xs\:rt-r-mr-6{--margin-right: var(--space-6)}.xs\:rt-r-mr-7{--margin-right: var(--space-7)}.xs\:rt-r-mr-8{--margin-right: var(--space-8)}.xs\:rt-r-mr-9{--margin-right: var(--space-9)}.xs\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mr,.sm\:rt-r-mr-0,.sm\:rt-r-mr-1,.sm\:rt-r-mr-2,.sm\:rt-r-mr-3,.sm\:rt-r-mr-4,.sm\:rt-r-mr-5,.sm\:rt-r-mr-6,.sm\:rt-r-mr-7,.sm\:rt-r-mr-8,.sm\:rt-r-mr-9,.sm\:-rt-r-mr-1,.sm\:-rt-r-mr-2,.sm\:-rt-r-mr-3,.sm\:-rt-r-mr-4,.sm\:-rt-r-mr-5,.sm\:-rt-r-mr-6,.sm\:-rt-r-mr-7,.sm\:-rt-r-mr-8,.sm\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mr{--margin-right: var(--mr-sm) }.sm\:rt-r-mr-0{--margin-right: 0px}.sm\:rt-r-mr-1{--margin-right: var(--space-1)}.sm\:rt-r-mr-2{--margin-right: var(--space-2)}.sm\:rt-r-mr-3{--margin-right: var(--space-3)}.sm\:rt-r-mr-4{--margin-right: var(--space-4)}.sm\:rt-r-mr-5{--margin-right: var(--space-5)}.sm\:rt-r-mr-6{--margin-right: var(--space-6)}.sm\:rt-r-mr-7{--margin-right: var(--space-7)}.sm\:rt-r-mr-8{--margin-right: var(--space-8)}.sm\:rt-r-mr-9{--margin-right: var(--space-9)}.sm\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mr,.md\:rt-r-mr-0,.md\:rt-r-mr-1,.md\:rt-r-mr-2,.md\:rt-r-mr-3,.md\:rt-r-mr-4,.md\:rt-r-mr-5,.md\:rt-r-mr-6,.md\:rt-r-mr-7,.md\:rt-r-mr-8,.md\:rt-r-mr-9,.md\:-rt-r-mr-1,.md\:-rt-r-mr-2,.md\:-rt-r-mr-3,.md\:-rt-r-mr-4,.md\:-rt-r-mr-5,.md\:-rt-r-mr-6,.md\:-rt-r-mr-7,.md\:-rt-r-mr-8,.md\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mr{--margin-right: var(--mr-md) }.md\:rt-r-mr-0{--margin-right: 0px}.md\:rt-r-mr-1{--margin-right: var(--space-1)}.md\:rt-r-mr-2{--margin-right: var(--space-2)}.md\:rt-r-mr-3{--margin-right: var(--space-3)}.md\:rt-r-mr-4{--margin-right: var(--space-4)}.md\:rt-r-mr-5{--margin-right: var(--space-5)}.md\:rt-r-mr-6{--margin-right: var(--space-6)}.md\:rt-r-mr-7{--margin-right: var(--space-7)}.md\:rt-r-mr-8{--margin-right: var(--space-8)}.md\:rt-r-mr-9{--margin-right: var(--space-9)}.md\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mr,.lg\:rt-r-mr-0,.lg\:rt-r-mr-1,.lg\:rt-r-mr-2,.lg\:rt-r-mr-3,.lg\:rt-r-mr-4,.lg\:rt-r-mr-5,.lg\:rt-r-mr-6,.lg\:rt-r-mr-7,.lg\:rt-r-mr-8,.lg\:rt-r-mr-9,.lg\:-rt-r-mr-1,.lg\:-rt-r-mr-2,.lg\:-rt-r-mr-3,.lg\:-rt-r-mr-4,.lg\:-rt-r-mr-5,.lg\:-rt-r-mr-6,.lg\:-rt-r-mr-7,.lg\:-rt-r-mr-8,.lg\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mr{--margin-right: var(--mr-lg) }.lg\:rt-r-mr-0{--margin-right: 0px}.lg\:rt-r-mr-1{--margin-right: var(--space-1)}.lg\:rt-r-mr-2{--margin-right: var(--space-2)}.lg\:rt-r-mr-3{--margin-right: var(--space-3)}.lg\:rt-r-mr-4{--margin-right: var(--space-4)}.lg\:rt-r-mr-5{--margin-right: var(--space-5)}.lg\:rt-r-mr-6{--margin-right: var(--space-6)}.lg\:rt-r-mr-7{--margin-right: var(--space-7)}.lg\:rt-r-mr-8{--margin-right: var(--space-8)}.lg\:rt-r-mr-9{--margin-right: var(--space-9)}.lg\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mr,.xl\:rt-r-mr-0,.xl\:rt-r-mr-1,.xl\:rt-r-mr-2,.xl\:rt-r-mr-3,.xl\:rt-r-mr-4,.xl\:rt-r-mr-5,.xl\:rt-r-mr-6,.xl\:rt-r-mr-7,.xl\:rt-r-mr-8,.xl\:rt-r-mr-9,.xl\:-rt-r-mr-1,.xl\:-rt-r-mr-2,.xl\:-rt-r-mr-3,.xl\:-rt-r-mr-4,.xl\:-rt-r-mr-5,.xl\:-rt-r-mr-6,.xl\:-rt-r-mr-7,.xl\:-rt-r-mr-8,.xl\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mr{--margin-right: var(--mr-xl) }.xl\:rt-r-mr-0{--margin-right: 0px}.xl\:rt-r-mr-1{--margin-right: var(--space-1)}.xl\:rt-r-mr-2{--margin-right: var(--space-2)}.xl\:rt-r-mr-3{--margin-right: var(--space-3)}.xl\:rt-r-mr-4{--margin-right: var(--space-4)}.xl\:rt-r-mr-5{--margin-right: var(--space-5)}.xl\:rt-r-mr-6{--margin-right: var(--space-6)}.xl\:rt-r-mr-7{--margin-right: var(--space-7)}.xl\:rt-r-mr-8{--margin-right: var(--space-8)}.xl\:rt-r-mr-9{--margin-right: var(--space-9)}.xl\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}.rt-r-mb,.rt-r-mb-0,.rt-r-mb-1,.rt-r-mb-2,.rt-r-mb-3,.rt-r-mb-4,.rt-r-mb-5,.rt-r-mb-6,.rt-r-mb-7,.rt-r-mb-8,.rt-r-mb-9,.-rt-r-mb-1,.-rt-r-mb-2,.-rt-r-mb-3,.-rt-r-mb-4,.-rt-r-mb-5,.-rt-r-mb-6,.-rt-r-mb-7,.-rt-r-mb-8,.-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-mb{--margin-bottom: var(--mb) }.rt-r-mb-0{--margin-bottom: 0px}.rt-r-mb-1{--margin-bottom: var(--space-1)}.rt-r-mb-2{--margin-bottom: var(--space-2)}.rt-r-mb-3{--margin-bottom: var(--space-3)}.rt-r-mb-4{--margin-bottom: var(--space-4)}.rt-r-mb-5{--margin-bottom: var(--space-5)}.rt-r-mb-6{--margin-bottom: var(--space-6)}.rt-r-mb-7{--margin-bottom: var(--space-7)}.rt-r-mb-8{--margin-bottom: var(--space-8)}.rt-r-mb-9{--margin-bottom: var(--space-9)}.-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mb,.xs\:rt-r-mb-0,.xs\:rt-r-mb-1,.xs\:rt-r-mb-2,.xs\:rt-r-mb-3,.xs\:rt-r-mb-4,.xs\:rt-r-mb-5,.xs\:rt-r-mb-6,.xs\:rt-r-mb-7,.xs\:rt-r-mb-8,.xs\:rt-r-mb-9,.xs\:-rt-r-mb-1,.xs\:-rt-r-mb-2,.xs\:-rt-r-mb-3,.xs\:-rt-r-mb-4,.xs\:-rt-r-mb-5,.xs\:-rt-r-mb-6,.xs\:-rt-r-mb-7,.xs\:-rt-r-mb-8,.xs\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-mb{--margin-bottom: var(--mb-xs) }.xs\:rt-r-mb-0{--margin-bottom: 0px}.xs\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xs\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xs\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xs\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xs\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xs\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xs\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xs\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xs\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xs\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mb,.sm\:rt-r-mb-0,.sm\:rt-r-mb-1,.sm\:rt-r-mb-2,.sm\:rt-r-mb-3,.sm\:rt-r-mb-4,.sm\:rt-r-mb-5,.sm\:rt-r-mb-6,.sm\:rt-r-mb-7,.sm\:rt-r-mb-8,.sm\:rt-r-mb-9,.sm\:-rt-r-mb-1,.sm\:-rt-r-mb-2,.sm\:-rt-r-mb-3,.sm\:-rt-r-mb-4,.sm\:-rt-r-mb-5,.sm\:-rt-r-mb-6,.sm\:-rt-r-mb-7,.sm\:-rt-r-mb-8,.sm\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-mb{--margin-bottom: var(--mb-sm) }.sm\:rt-r-mb-0{--margin-bottom: 0px}.sm\:rt-r-mb-1{--margin-bottom: var(--space-1)}.sm\:rt-r-mb-2{--margin-bottom: var(--space-2)}.sm\:rt-r-mb-3{--margin-bottom: var(--space-3)}.sm\:rt-r-mb-4{--margin-bottom: var(--space-4)}.sm\:rt-r-mb-5{--margin-bottom: var(--space-5)}.sm\:rt-r-mb-6{--margin-bottom: var(--space-6)}.sm\:rt-r-mb-7{--margin-bottom: var(--space-7)}.sm\:rt-r-mb-8{--margin-bottom: var(--space-8)}.sm\:rt-r-mb-9{--margin-bottom: var(--space-9)}.sm\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mb,.md\:rt-r-mb-0,.md\:rt-r-mb-1,.md\:rt-r-mb-2,.md\:rt-r-mb-3,.md\:rt-r-mb-4,.md\:rt-r-mb-5,.md\:rt-r-mb-6,.md\:rt-r-mb-7,.md\:rt-r-mb-8,.md\:rt-r-mb-9,.md\:-rt-r-mb-1,.md\:-rt-r-mb-2,.md\:-rt-r-mb-3,.md\:-rt-r-mb-4,.md\:-rt-r-mb-5,.md\:-rt-r-mb-6,.md\:-rt-r-mb-7,.md\:-rt-r-mb-8,.md\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-mb{--margin-bottom: var(--mb-md) }.md\:rt-r-mb-0{--margin-bottom: 0px}.md\:rt-r-mb-1{--margin-bottom: var(--space-1)}.md\:rt-r-mb-2{--margin-bottom: var(--space-2)}.md\:rt-r-mb-3{--margin-bottom: var(--space-3)}.md\:rt-r-mb-4{--margin-bottom: var(--space-4)}.md\:rt-r-mb-5{--margin-bottom: var(--space-5)}.md\:rt-r-mb-6{--margin-bottom: var(--space-6)}.md\:rt-r-mb-7{--margin-bottom: var(--space-7)}.md\:rt-r-mb-8{--margin-bottom: var(--space-8)}.md\:rt-r-mb-9{--margin-bottom: var(--space-9)}.md\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mb,.lg\:rt-r-mb-0,.lg\:rt-r-mb-1,.lg\:rt-r-mb-2,.lg\:rt-r-mb-3,.lg\:rt-r-mb-4,.lg\:rt-r-mb-5,.lg\:rt-r-mb-6,.lg\:rt-r-mb-7,.lg\:rt-r-mb-8,.lg\:rt-r-mb-9,.lg\:-rt-r-mb-1,.lg\:-rt-r-mb-2,.lg\:-rt-r-mb-3,.lg\:-rt-r-mb-4,.lg\:-rt-r-mb-5,.lg\:-rt-r-mb-6,.lg\:-rt-r-mb-7,.lg\:-rt-r-mb-8,.lg\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-mb{--margin-bottom: var(--mb-lg) }.lg\:rt-r-mb-0{--margin-bottom: 0px}.lg\:rt-r-mb-1{--margin-bottom: var(--space-1)}.lg\:rt-r-mb-2{--margin-bottom: var(--space-2)}.lg\:rt-r-mb-3{--margin-bottom: var(--space-3)}.lg\:rt-r-mb-4{--margin-bottom: var(--space-4)}.lg\:rt-r-mb-5{--margin-bottom: var(--space-5)}.lg\:rt-r-mb-6{--margin-bottom: var(--space-6)}.lg\:rt-r-mb-7{--margin-bottom: var(--space-7)}.lg\:rt-r-mb-8{--margin-bottom: var(--space-8)}.lg\:rt-r-mb-9{--margin-bottom: var(--space-9)}.lg\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mb,.xl\:rt-r-mb-0,.xl\:rt-r-mb-1,.xl\:rt-r-mb-2,.xl\:rt-r-mb-3,.xl\:rt-r-mb-4,.xl\:rt-r-mb-5,.xl\:rt-r-mb-6,.xl\:rt-r-mb-7,.xl\:rt-r-mb-8,.xl\:rt-r-mb-9,.xl\:-rt-r-mb-1,.xl\:-rt-r-mb-2,.xl\:-rt-r-mb-3,.xl\:-rt-r-mb-4,.xl\:-rt-r-mb-5,.xl\:-rt-r-mb-6,.xl\:-rt-r-mb-7,.xl\:-rt-r-mb-8,.xl\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-mb{--margin-bottom: var(--mb-xl) }.xl\:rt-r-mb-0{--margin-bottom: 0px}.xl\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xl\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xl\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xl\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xl\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xl\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xl\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xl\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xl\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xl\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-ml,.rt-r-ml-0,.rt-r-ml-1,.rt-r-ml-2,.rt-r-ml-3,.rt-r-ml-4,.rt-r-ml-5,.rt-r-ml-6,.rt-r-ml-7,.rt-r-ml-8,.rt-r-ml-9,.-rt-r-ml-1,.-rt-r-ml-2,.-rt-r-ml-3,.-rt-r-ml-4,.-rt-r-ml-5,.-rt-r-ml-6,.-rt-r-ml-7,.-rt-r-ml-8,.-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-ml{--margin-left: var(--ml) }.rt-r-ml-0{--margin-left: 0px}.rt-r-ml-1{--margin-left: var(--space-1)}.rt-r-ml-2{--margin-left: var(--space-2)}.rt-r-ml-3{--margin-left: var(--space-3)}.rt-r-ml-4{--margin-left: var(--space-4)}.rt-r-ml-5{--margin-left: var(--space-5)}.rt-r-ml-6{--margin-left: var(--space-6)}.rt-r-ml-7{--margin-left: var(--space-7)}.rt-r-ml-8{--margin-left: var(--space-8)}.rt-r-ml-9{--margin-left: var(--space-9)}.-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-ml,.xs\:rt-r-ml-0,.xs\:rt-r-ml-1,.xs\:rt-r-ml-2,.xs\:rt-r-ml-3,.xs\:rt-r-ml-4,.xs\:rt-r-ml-5,.xs\:rt-r-ml-6,.xs\:rt-r-ml-7,.xs\:rt-r-ml-8,.xs\:rt-r-ml-9,.xs\:-rt-r-ml-1,.xs\:-rt-r-ml-2,.xs\:-rt-r-ml-3,.xs\:-rt-r-ml-4,.xs\:-rt-r-ml-5,.xs\:-rt-r-ml-6,.xs\:-rt-r-ml-7,.xs\:-rt-r-ml-8,.xs\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-ml{--margin-left: var(--ml-xs) }.xs\:rt-r-ml-0{--margin-left: 0px}.xs\:rt-r-ml-1{--margin-left: var(--space-1)}.xs\:rt-r-ml-2{--margin-left: var(--space-2)}.xs\:rt-r-ml-3{--margin-left: var(--space-3)}.xs\:rt-r-ml-4{--margin-left: var(--space-4)}.xs\:rt-r-ml-5{--margin-left: var(--space-5)}.xs\:rt-r-ml-6{--margin-left: var(--space-6)}.xs\:rt-r-ml-7{--margin-left: var(--space-7)}.xs\:rt-r-ml-8{--margin-left: var(--space-8)}.xs\:rt-r-ml-9{--margin-left: var(--space-9)}.xs\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-ml,.sm\:rt-r-ml-0,.sm\:rt-r-ml-1,.sm\:rt-r-ml-2,.sm\:rt-r-ml-3,.sm\:rt-r-ml-4,.sm\:rt-r-ml-5,.sm\:rt-r-ml-6,.sm\:rt-r-ml-7,.sm\:rt-r-ml-8,.sm\:rt-r-ml-9,.sm\:-rt-r-ml-1,.sm\:-rt-r-ml-2,.sm\:-rt-r-ml-3,.sm\:-rt-r-ml-4,.sm\:-rt-r-ml-5,.sm\:-rt-r-ml-6,.sm\:-rt-r-ml-7,.sm\:-rt-r-ml-8,.sm\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-ml{--margin-left: var(--ml-sm) }.sm\:rt-r-ml-0{--margin-left: 0px}.sm\:rt-r-ml-1{--margin-left: var(--space-1)}.sm\:rt-r-ml-2{--margin-left: var(--space-2)}.sm\:rt-r-ml-3{--margin-left: var(--space-3)}.sm\:rt-r-ml-4{--margin-left: var(--space-4)}.sm\:rt-r-ml-5{--margin-left: var(--space-5)}.sm\:rt-r-ml-6{--margin-left: var(--space-6)}.sm\:rt-r-ml-7{--margin-left: var(--space-7)}.sm\:rt-r-ml-8{--margin-left: var(--space-8)}.sm\:rt-r-ml-9{--margin-left: var(--space-9)}.sm\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-ml,.md\:rt-r-ml-0,.md\:rt-r-ml-1,.md\:rt-r-ml-2,.md\:rt-r-ml-3,.md\:rt-r-ml-4,.md\:rt-r-ml-5,.md\:rt-r-ml-6,.md\:rt-r-ml-7,.md\:rt-r-ml-8,.md\:rt-r-ml-9,.md\:-rt-r-ml-1,.md\:-rt-r-ml-2,.md\:-rt-r-ml-3,.md\:-rt-r-ml-4,.md\:-rt-r-ml-5,.md\:-rt-r-ml-6,.md\:-rt-r-ml-7,.md\:-rt-r-ml-8,.md\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-ml{--margin-left: var(--ml-md) }.md\:rt-r-ml-0{--margin-left: 0px}.md\:rt-r-ml-1{--margin-left: var(--space-1)}.md\:rt-r-ml-2{--margin-left: var(--space-2)}.md\:rt-r-ml-3{--margin-left: var(--space-3)}.md\:rt-r-ml-4{--margin-left: var(--space-4)}.md\:rt-r-ml-5{--margin-left: var(--space-5)}.md\:rt-r-ml-6{--margin-left: var(--space-6)}.md\:rt-r-ml-7{--margin-left: var(--space-7)}.md\:rt-r-ml-8{--margin-left: var(--space-8)}.md\:rt-r-ml-9{--margin-left: var(--space-9)}.md\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-ml,.lg\:rt-r-ml-0,.lg\:rt-r-ml-1,.lg\:rt-r-ml-2,.lg\:rt-r-ml-3,.lg\:rt-r-ml-4,.lg\:rt-r-ml-5,.lg\:rt-r-ml-6,.lg\:rt-r-ml-7,.lg\:rt-r-ml-8,.lg\:rt-r-ml-9,.lg\:-rt-r-ml-1,.lg\:-rt-r-ml-2,.lg\:-rt-r-ml-3,.lg\:-rt-r-ml-4,.lg\:-rt-r-ml-5,.lg\:-rt-r-ml-6,.lg\:-rt-r-ml-7,.lg\:-rt-r-ml-8,.lg\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-ml{--margin-left: var(--ml-lg) }.lg\:rt-r-ml-0{--margin-left: 0px}.lg\:rt-r-ml-1{--margin-left: var(--space-1)}.lg\:rt-r-ml-2{--margin-left: var(--space-2)}.lg\:rt-r-ml-3{--margin-left: var(--space-3)}.lg\:rt-r-ml-4{--margin-left: var(--space-4)}.lg\:rt-r-ml-5{--margin-left: var(--space-5)}.lg\:rt-r-ml-6{--margin-left: var(--space-6)}.lg\:rt-r-ml-7{--margin-left: var(--space-7)}.lg\:rt-r-ml-8{--margin-left: var(--space-8)}.lg\:rt-r-ml-9{--margin-left: var(--space-9)}.lg\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-ml,.xl\:rt-r-ml-0,.xl\:rt-r-ml-1,.xl\:rt-r-ml-2,.xl\:rt-r-ml-3,.xl\:rt-r-ml-4,.xl\:rt-r-ml-5,.xl\:rt-r-ml-6,.xl\:rt-r-ml-7,.xl\:rt-r-ml-8,.xl\:rt-r-ml-9,.xl\:-rt-r-ml-1,.xl\:-rt-r-ml-2,.xl\:-rt-r-ml-3,.xl\:-rt-r-ml-4,.xl\:-rt-r-ml-5,.xl\:-rt-r-ml-6,.xl\:-rt-r-ml-7,.xl\:-rt-r-ml-8,.xl\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-ml{--margin-left: var(--ml-xl) }.xl\:rt-r-ml-0{--margin-left: 0px}.xl\:rt-r-ml-1{--margin-left: var(--space-1)}.xl\:rt-r-ml-2{--margin-left: var(--space-2)}.xl\:rt-r-ml-3{--margin-left: var(--space-3)}.xl\:rt-r-ml-4{--margin-left: var(--space-4)}.xl\:rt-r-ml-5{--margin-left: var(--space-5)}.xl\:rt-r-ml-6{--margin-left: var(--space-6)}.xl\:rt-r-ml-7{--margin-left: var(--space-7)}.xl\:rt-r-ml-8{--margin-left: var(--space-8)}.xl\:rt-r-ml-9{--margin-left: var(--space-9)}.xl\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}.rt-r-overflow-visible{overflow:visible}.rt-r-overflow-hidden{overflow:hidden}.rt-r-overflow-clip{overflow:clip}.rt-r-overflow-scroll{overflow:scroll}.rt-r-overflow-auto{overflow:auto}.rt-r-ox-visible{overflow-x:visible}.rt-r-ox-hidden{overflow-x:hidden}.rt-r-ox-clip{overflow-x:clip}.rt-r-ox-scroll{overflow-x:scroll}.rt-r-ox-auto{overflow-x:auto}.rt-r-oy-visible{overflow-y:visible}.rt-r-oy-hidden{overflow-y:hidden}.rt-r-oy-clip{overflow-y:clip}.rt-r-oy-scroll{overflow-y:scroll}.rt-r-oy-auto{overflow-y:auto}@media (min-width: 520px){.xs\:rt-r-overflow-visible{overflow:visible}.xs\:rt-r-overflow-hidden{overflow:hidden}.xs\:rt-r-overflow-clip{overflow:clip}.xs\:rt-r-overflow-scroll{overflow:scroll}.xs\:rt-r-overflow-auto{overflow:auto}.xs\:rt-r-ox-visible{overflow-x:visible}.xs\:rt-r-ox-hidden{overflow-x:hidden}.xs\:rt-r-ox-clip{overflow-x:clip}.xs\:rt-r-ox-scroll{overflow-x:scroll}.xs\:rt-r-ox-auto{overflow-x:auto}.xs\:rt-r-oy-visible{overflow-y:visible}.xs\:rt-r-oy-hidden{overflow-y:hidden}.xs\:rt-r-oy-clip{overflow-y:clip}.xs\:rt-r-oy-scroll{overflow-y:scroll}.xs\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 768px){.sm\:rt-r-overflow-visible{overflow:visible}.sm\:rt-r-overflow-hidden{overflow:hidden}.sm\:rt-r-overflow-clip{overflow:clip}.sm\:rt-r-overflow-scroll{overflow:scroll}.sm\:rt-r-overflow-auto{overflow:auto}.sm\:rt-r-ox-visible{overflow-x:visible}.sm\:rt-r-ox-hidden{overflow-x:hidden}.sm\:rt-r-ox-clip{overflow-x:clip}.sm\:rt-r-ox-scroll{overflow-x:scroll}.sm\:rt-r-ox-auto{overflow-x:auto}.sm\:rt-r-oy-visible{overflow-y:visible}.sm\:rt-r-oy-hidden{overflow-y:hidden}.sm\:rt-r-oy-clip{overflow-y:clip}.sm\:rt-r-oy-scroll{overflow-y:scroll}.sm\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1024px){.md\:rt-r-overflow-visible{overflow:visible}.md\:rt-r-overflow-hidden{overflow:hidden}.md\:rt-r-overflow-clip{overflow:clip}.md\:rt-r-overflow-scroll{overflow:scroll}.md\:rt-r-overflow-auto{overflow:auto}.md\:rt-r-ox-visible{overflow-x:visible}.md\:rt-r-ox-hidden{overflow-x:hidden}.md\:rt-r-ox-clip{overflow-x:clip}.md\:rt-r-ox-scroll{overflow-x:scroll}.md\:rt-r-ox-auto{overflow-x:auto}.md\:rt-r-oy-visible{overflow-y:visible}.md\:rt-r-oy-hidden{overflow-y:hidden}.md\:rt-r-oy-clip{overflow-y:clip}.md\:rt-r-oy-scroll{overflow-y:scroll}.md\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1280px){.lg\:rt-r-overflow-visible{overflow:visible}.lg\:rt-r-overflow-hidden{overflow:hidden}.lg\:rt-r-overflow-clip{overflow:clip}.lg\:rt-r-overflow-scroll{overflow:scroll}.lg\:rt-r-overflow-auto{overflow:auto}.lg\:rt-r-ox-visible{overflow-x:visible}.lg\:rt-r-ox-hidden{overflow-x:hidden}.lg\:rt-r-ox-clip{overflow-x:clip}.lg\:rt-r-ox-scroll{overflow-x:scroll}.lg\:rt-r-ox-auto{overflow-x:auto}.lg\:rt-r-oy-visible{overflow-y:visible}.lg\:rt-r-oy-hidden{overflow-y:hidden}.lg\:rt-r-oy-clip{overflow-y:clip}.lg\:rt-r-oy-scroll{overflow-y:scroll}.lg\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1640px){.xl\:rt-r-overflow-visible{overflow:visible}.xl\:rt-r-overflow-hidden{overflow:hidden}.xl\:rt-r-overflow-clip{overflow:clip}.xl\:rt-r-overflow-scroll{overflow:scroll}.xl\:rt-r-overflow-auto{overflow:auto}.xl\:rt-r-ox-visible{overflow-x:visible}.xl\:rt-r-ox-hidden{overflow-x:hidden}.xl\:rt-r-ox-clip{overflow-x:clip}.xl\:rt-r-ox-scroll{overflow-x:scroll}.xl\:rt-r-ox-auto{overflow-x:auto}.xl\:rt-r-oy-visible{overflow-y:visible}.xl\:rt-r-oy-hidden{overflow-y:hidden}.xl\:rt-r-oy-clip{overflow-y:clip}.xl\:rt-r-oy-scroll{overflow-y:scroll}.xl\:rt-r-oy-auto{overflow-y:auto}}.rt-r-p{padding:var(--p)}.rt-r-p-0{padding:0}.rt-r-p-1{padding:var(--space-1)}.rt-r-p-2{padding:var(--space-2)}.rt-r-p-3{padding:var(--space-3)}.rt-r-p-4{padding:var(--space-4)}.rt-r-p-5{padding:var(--space-5)}.rt-r-p-6{padding:var(--space-6)}.rt-r-p-7{padding:var(--space-7)}.rt-r-p-8{padding:var(--space-8)}.rt-r-p-9{padding:var(--space-9)}.rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-p{padding:var(--p-xs)}.xs\:rt-r-p-0{padding:0}.xs\:rt-r-p-1{padding:var(--space-1)}.xs\:rt-r-p-2{padding:var(--space-2)}.xs\:rt-r-p-3{padding:var(--space-3)}.xs\:rt-r-p-4{padding:var(--space-4)}.xs\:rt-r-p-5{padding:var(--space-5)}.xs\:rt-r-p-6{padding:var(--space-6)}.xs\:rt-r-p-7{padding:var(--space-7)}.xs\:rt-r-p-8{padding:var(--space-8)}.xs\:rt-r-p-9{padding:var(--space-9)}.xs\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-p{padding:var(--p-sm)}.sm\:rt-r-p-0{padding:0}.sm\:rt-r-p-1{padding:var(--space-1)}.sm\:rt-r-p-2{padding:var(--space-2)}.sm\:rt-r-p-3{padding:var(--space-3)}.sm\:rt-r-p-4{padding:var(--space-4)}.sm\:rt-r-p-5{padding:var(--space-5)}.sm\:rt-r-p-6{padding:var(--space-6)}.sm\:rt-r-p-7{padding:var(--space-7)}.sm\:rt-r-p-8{padding:var(--space-8)}.sm\:rt-r-p-9{padding:var(--space-9)}.sm\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-p{padding:var(--p-md)}.md\:rt-r-p-0{padding:0}.md\:rt-r-p-1{padding:var(--space-1)}.md\:rt-r-p-2{padding:var(--space-2)}.md\:rt-r-p-3{padding:var(--space-3)}.md\:rt-r-p-4{padding:var(--space-4)}.md\:rt-r-p-5{padding:var(--space-5)}.md\:rt-r-p-6{padding:var(--space-6)}.md\:rt-r-p-7{padding:var(--space-7)}.md\:rt-r-p-8{padding:var(--space-8)}.md\:rt-r-p-9{padding:var(--space-9)}.md\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-p{padding:var(--p-lg)}.lg\:rt-r-p-0{padding:0}.lg\:rt-r-p-1{padding:var(--space-1)}.lg\:rt-r-p-2{padding:var(--space-2)}.lg\:rt-r-p-3{padding:var(--space-3)}.lg\:rt-r-p-4{padding:var(--space-4)}.lg\:rt-r-p-5{padding:var(--space-5)}.lg\:rt-r-p-6{padding:var(--space-6)}.lg\:rt-r-p-7{padding:var(--space-7)}.lg\:rt-r-p-8{padding:var(--space-8)}.lg\:rt-r-p-9{padding:var(--space-9)}.lg\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-p{padding:var(--p-xl)}.xl\:rt-r-p-0{padding:0}.xl\:rt-r-p-1{padding:var(--space-1)}.xl\:rt-r-p-2{padding:var(--space-2)}.xl\:rt-r-p-3{padding:var(--space-3)}.xl\:rt-r-p-4{padding:var(--space-4)}.xl\:rt-r-p-5{padding:var(--space-5)}.xl\:rt-r-p-6{padding:var(--space-6)}.xl\:rt-r-p-7{padding:var(--space-7)}.xl\:rt-r-p-8{padding:var(--space-8)}.xl\:rt-r-p-9{padding:var(--space-9)}.xl\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}.rt-r-px{padding-left:var(--pl);padding-right:var(--pr)}.rt-r-px-0{padding-left:0;padding-right:0}.rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-px{padding-left:var(--pl-xs);padding-right:var(--pr-xs)}.xs\:rt-r-px-0{padding-left:0;padding-right:0}.xs\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xs\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xs\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xs\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xs\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xs\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xs\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xs\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xs\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xs\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-px{padding-left:var(--pl-sm);padding-right:var(--pr-sm)}.sm\:rt-r-px-0{padding-left:0;padding-right:0}.sm\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.sm\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.sm\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.sm\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.sm\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.sm\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.sm\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.sm\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.sm\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.sm\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-px{padding-left:var(--pl-md);padding-right:var(--pr-md)}.md\:rt-r-px-0{padding-left:0;padding-right:0}.md\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.md\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.md\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.md\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.md\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.md\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.md\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.md\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.md\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.md\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-px{padding-left:var(--pl-lg);padding-right:var(--pr-lg)}.lg\:rt-r-px-0{padding-left:0;padding-right:0}.lg\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.lg\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.lg\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.lg\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.lg\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.lg\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.lg\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.lg\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.lg\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.lg\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-px{padding-left:var(--pl-xl);padding-right:var(--pr-xl)}.xl\:rt-r-px-0{padding-left:0;padding-right:0}.xl\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xl\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xl\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xl\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xl\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xl\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xl\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xl\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xl\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xl\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}.rt-r-py{padding-top:var(--pt);padding-bottom:var(--pb)}.rt-r-py-0{padding-top:0;padding-bottom:0}.rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-py{padding-top:var(--pt-xs);padding-bottom:var(--pb-xs)}.xs\:rt-r-py-0{padding-top:0;padding-bottom:0}.xs\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xs\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xs\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xs\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xs\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xs\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xs\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xs\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xs\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xs\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-py{padding-top:var(--pt-sm);padding-bottom:var(--pb-sm)}.sm\:rt-r-py-0{padding-top:0;padding-bottom:0}.sm\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.sm\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.sm\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.sm\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.sm\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.sm\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.sm\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.sm\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.sm\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.sm\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-py{padding-top:var(--pt-md);padding-bottom:var(--pb-md)}.md\:rt-r-py-0{padding-top:0;padding-bottom:0}.md\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.md\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.md\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.md\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.md\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.md\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.md\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.md\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.md\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.md\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-py{padding-top:var(--pt-lg);padding-bottom:var(--pb-lg)}.lg\:rt-r-py-0{padding-top:0;padding-bottom:0}.lg\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.lg\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.lg\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.lg\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.lg\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.lg\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.lg\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.lg\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.lg\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.lg\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-py{padding-top:var(--pt-xl);padding-bottom:var(--pb-xl)}.xl\:rt-r-py-0{padding-top:0;padding-bottom:0}.xl\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xl\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xl\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xl\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xl\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xl\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xl\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xl\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xl\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xl\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}.rt-r-pt{padding-top:var(--pt)}.rt-r-pt-0{padding-top:0}.rt-r-pt-1{padding-top:var(--space-1)}.rt-r-pt-2{padding-top:var(--space-2)}.rt-r-pt-3{padding-top:var(--space-3)}.rt-r-pt-4{padding-top:var(--space-4)}.rt-r-pt-5{padding-top:var(--space-5)}.rt-r-pt-6{padding-top:var(--space-6)}.rt-r-pt-7{padding-top:var(--space-7)}.rt-r-pt-8{padding-top:var(--space-8)}.rt-r-pt-9{padding-top:var(--space-9)}.rt-r-pt-inset{padding-top:var(--inset-padding-top)}@media (min-width: 520px){.xs\:rt-r-pt{padding-top:var(--pt-xs)}.xs\:rt-r-pt-0{padding-top:0}.xs\:rt-r-pt-1{padding-top:var(--space-1)}.xs\:rt-r-pt-2{padding-top:var(--space-2)}.xs\:rt-r-pt-3{padding-top:var(--space-3)}.xs\:rt-r-pt-4{padding-top:var(--space-4)}.xs\:rt-r-pt-5{padding-top:var(--space-5)}.xs\:rt-r-pt-6{padding-top:var(--space-6)}.xs\:rt-r-pt-7{padding-top:var(--space-7)}.xs\:rt-r-pt-8{padding-top:var(--space-8)}.xs\:rt-r-pt-9{padding-top:var(--space-9)}.xs\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 768px){.sm\:rt-r-pt{padding-top:var(--pt-sm)}.sm\:rt-r-pt-0{padding-top:0}.sm\:rt-r-pt-1{padding-top:var(--space-1)}.sm\:rt-r-pt-2{padding-top:var(--space-2)}.sm\:rt-r-pt-3{padding-top:var(--space-3)}.sm\:rt-r-pt-4{padding-top:var(--space-4)}.sm\:rt-r-pt-5{padding-top:var(--space-5)}.sm\:rt-r-pt-6{padding-top:var(--space-6)}.sm\:rt-r-pt-7{padding-top:var(--space-7)}.sm\:rt-r-pt-8{padding-top:var(--space-8)}.sm\:rt-r-pt-9{padding-top:var(--space-9)}.sm\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1024px){.md\:rt-r-pt{padding-top:var(--pt-md)}.md\:rt-r-pt-0{padding-top:0}.md\:rt-r-pt-1{padding-top:var(--space-1)}.md\:rt-r-pt-2{padding-top:var(--space-2)}.md\:rt-r-pt-3{padding-top:var(--space-3)}.md\:rt-r-pt-4{padding-top:var(--space-4)}.md\:rt-r-pt-5{padding-top:var(--space-5)}.md\:rt-r-pt-6{padding-top:var(--space-6)}.md\:rt-r-pt-7{padding-top:var(--space-7)}.md\:rt-r-pt-8{padding-top:var(--space-8)}.md\:rt-r-pt-9{padding-top:var(--space-9)}.md\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1280px){.lg\:rt-r-pt{padding-top:var(--pt-lg)}.lg\:rt-r-pt-0{padding-top:0}.lg\:rt-r-pt-1{padding-top:var(--space-1)}.lg\:rt-r-pt-2{padding-top:var(--space-2)}.lg\:rt-r-pt-3{padding-top:var(--space-3)}.lg\:rt-r-pt-4{padding-top:var(--space-4)}.lg\:rt-r-pt-5{padding-top:var(--space-5)}.lg\:rt-r-pt-6{padding-top:var(--space-6)}.lg\:rt-r-pt-7{padding-top:var(--space-7)}.lg\:rt-r-pt-8{padding-top:var(--space-8)}.lg\:rt-r-pt-9{padding-top:var(--space-9)}.lg\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1640px){.xl\:rt-r-pt{padding-top:var(--pt-xl)}.xl\:rt-r-pt-0{padding-top:0}.xl\:rt-r-pt-1{padding-top:var(--space-1)}.xl\:rt-r-pt-2{padding-top:var(--space-2)}.xl\:rt-r-pt-3{padding-top:var(--space-3)}.xl\:rt-r-pt-4{padding-top:var(--space-4)}.xl\:rt-r-pt-5{padding-top:var(--space-5)}.xl\:rt-r-pt-6{padding-top:var(--space-6)}.xl\:rt-r-pt-7{padding-top:var(--space-7)}.xl\:rt-r-pt-8{padding-top:var(--space-8)}.xl\:rt-r-pt-9{padding-top:var(--space-9)}.xl\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}.rt-r-pr{padding-right:var(--pr)}.rt-r-pr-0{padding-right:0}.rt-r-pr-1{padding-right:var(--space-1)}.rt-r-pr-2{padding-right:var(--space-2)}.rt-r-pr-3{padding-right:var(--space-3)}.rt-r-pr-4{padding-right:var(--space-4)}.rt-r-pr-5{padding-right:var(--space-5)}.rt-r-pr-6{padding-right:var(--space-6)}.rt-r-pr-7{padding-right:var(--space-7)}.rt-r-pr-8{padding-right:var(--space-8)}.rt-r-pr-9{padding-right:var(--space-9)}.rt-r-pr-inset{padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-pr{padding-right:var(--pr-xs)}.xs\:rt-r-pr-0{padding-right:0}.xs\:rt-r-pr-1{padding-right:var(--space-1)}.xs\:rt-r-pr-2{padding-right:var(--space-2)}.xs\:rt-r-pr-3{padding-right:var(--space-3)}.xs\:rt-r-pr-4{padding-right:var(--space-4)}.xs\:rt-r-pr-5{padding-right:var(--space-5)}.xs\:rt-r-pr-6{padding-right:var(--space-6)}.xs\:rt-r-pr-7{padding-right:var(--space-7)}.xs\:rt-r-pr-8{padding-right:var(--space-8)}.xs\:rt-r-pr-9{padding-right:var(--space-9)}.xs\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-pr{padding-right:var(--pr-sm)}.sm\:rt-r-pr-0{padding-right:0}.sm\:rt-r-pr-1{padding-right:var(--space-1)}.sm\:rt-r-pr-2{padding-right:var(--space-2)}.sm\:rt-r-pr-3{padding-right:var(--space-3)}.sm\:rt-r-pr-4{padding-right:var(--space-4)}.sm\:rt-r-pr-5{padding-right:var(--space-5)}.sm\:rt-r-pr-6{padding-right:var(--space-6)}.sm\:rt-r-pr-7{padding-right:var(--space-7)}.sm\:rt-r-pr-8{padding-right:var(--space-8)}.sm\:rt-r-pr-9{padding-right:var(--space-9)}.sm\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-pr{padding-right:var(--pr-md)}.md\:rt-r-pr-0{padding-right:0}.md\:rt-r-pr-1{padding-right:var(--space-1)}.md\:rt-r-pr-2{padding-right:var(--space-2)}.md\:rt-r-pr-3{padding-right:var(--space-3)}.md\:rt-r-pr-4{padding-right:var(--space-4)}.md\:rt-r-pr-5{padding-right:var(--space-5)}.md\:rt-r-pr-6{padding-right:var(--space-6)}.md\:rt-r-pr-7{padding-right:var(--space-7)}.md\:rt-r-pr-8{padding-right:var(--space-8)}.md\:rt-r-pr-9{padding-right:var(--space-9)}.md\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-pr{padding-right:var(--pr-lg)}.lg\:rt-r-pr-0{padding-right:0}.lg\:rt-r-pr-1{padding-right:var(--space-1)}.lg\:rt-r-pr-2{padding-right:var(--space-2)}.lg\:rt-r-pr-3{padding-right:var(--space-3)}.lg\:rt-r-pr-4{padding-right:var(--space-4)}.lg\:rt-r-pr-5{padding-right:var(--space-5)}.lg\:rt-r-pr-6{padding-right:var(--space-6)}.lg\:rt-r-pr-7{padding-right:var(--space-7)}.lg\:rt-r-pr-8{padding-right:var(--space-8)}.lg\:rt-r-pr-9{padding-right:var(--space-9)}.lg\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-pr{padding-right:var(--pr-xl)}.xl\:rt-r-pr-0{padding-right:0}.xl\:rt-r-pr-1{padding-right:var(--space-1)}.xl\:rt-r-pr-2{padding-right:var(--space-2)}.xl\:rt-r-pr-3{padding-right:var(--space-3)}.xl\:rt-r-pr-4{padding-right:var(--space-4)}.xl\:rt-r-pr-5{padding-right:var(--space-5)}.xl\:rt-r-pr-6{padding-right:var(--space-6)}.xl\:rt-r-pr-7{padding-right:var(--space-7)}.xl\:rt-r-pr-8{padding-right:var(--space-8)}.xl\:rt-r-pr-9{padding-right:var(--space-9)}.xl\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}.rt-r-pb{padding-bottom:var(--pb)}.rt-r-pb-0{padding-bottom:0}.rt-r-pb-1{padding-bottom:var(--space-1)}.rt-r-pb-2{padding-bottom:var(--space-2)}.rt-r-pb-3{padding-bottom:var(--space-3)}.rt-r-pb-4{padding-bottom:var(--space-4)}.rt-r-pb-5{padding-bottom:var(--space-5)}.rt-r-pb-6{padding-bottom:var(--space-6)}.rt-r-pb-7{padding-bottom:var(--space-7)}.rt-r-pb-8{padding-bottom:var(--space-8)}.rt-r-pb-9{padding-bottom:var(--space-9)}.rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-pb{padding-bottom:var(--pb-xs)}.xs\:rt-r-pb-0{padding-bottom:0}.xs\:rt-r-pb-1{padding-bottom:var(--space-1)}.xs\:rt-r-pb-2{padding-bottom:var(--space-2)}.xs\:rt-r-pb-3{padding-bottom:var(--space-3)}.xs\:rt-r-pb-4{padding-bottom:var(--space-4)}.xs\:rt-r-pb-5{padding-bottom:var(--space-5)}.xs\:rt-r-pb-6{padding-bottom:var(--space-6)}.xs\:rt-r-pb-7{padding-bottom:var(--space-7)}.xs\:rt-r-pb-8{padding-bottom:var(--space-8)}.xs\:rt-r-pb-9{padding-bottom:var(--space-9)}.xs\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-pb{padding-bottom:var(--pb-sm)}.sm\:rt-r-pb-0{padding-bottom:0}.sm\:rt-r-pb-1{padding-bottom:var(--space-1)}.sm\:rt-r-pb-2{padding-bottom:var(--space-2)}.sm\:rt-r-pb-3{padding-bottom:var(--space-3)}.sm\:rt-r-pb-4{padding-bottom:var(--space-4)}.sm\:rt-r-pb-5{padding-bottom:var(--space-5)}.sm\:rt-r-pb-6{padding-bottom:var(--space-6)}.sm\:rt-r-pb-7{padding-bottom:var(--space-7)}.sm\:rt-r-pb-8{padding-bottom:var(--space-8)}.sm\:rt-r-pb-9{padding-bottom:var(--space-9)}.sm\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-pb{padding-bottom:var(--pb-md)}.md\:rt-r-pb-0{padding-bottom:0}.md\:rt-r-pb-1{padding-bottom:var(--space-1)}.md\:rt-r-pb-2{padding-bottom:var(--space-2)}.md\:rt-r-pb-3{padding-bottom:var(--space-3)}.md\:rt-r-pb-4{padding-bottom:var(--space-4)}.md\:rt-r-pb-5{padding-bottom:var(--space-5)}.md\:rt-r-pb-6{padding-bottom:var(--space-6)}.md\:rt-r-pb-7{padding-bottom:var(--space-7)}.md\:rt-r-pb-8{padding-bottom:var(--space-8)}.md\:rt-r-pb-9{padding-bottom:var(--space-9)}.md\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-pb{padding-bottom:var(--pb-lg)}.lg\:rt-r-pb-0{padding-bottom:0}.lg\:rt-r-pb-1{padding-bottom:var(--space-1)}.lg\:rt-r-pb-2{padding-bottom:var(--space-2)}.lg\:rt-r-pb-3{padding-bottom:var(--space-3)}.lg\:rt-r-pb-4{padding-bottom:var(--space-4)}.lg\:rt-r-pb-5{padding-bottom:var(--space-5)}.lg\:rt-r-pb-6{padding-bottom:var(--space-6)}.lg\:rt-r-pb-7{padding-bottom:var(--space-7)}.lg\:rt-r-pb-8{padding-bottom:var(--space-8)}.lg\:rt-r-pb-9{padding-bottom:var(--space-9)}.lg\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-pb{padding-bottom:var(--pb-xl)}.xl\:rt-r-pb-0{padding-bottom:0}.xl\:rt-r-pb-1{padding-bottom:var(--space-1)}.xl\:rt-r-pb-2{padding-bottom:var(--space-2)}.xl\:rt-r-pb-3{padding-bottom:var(--space-3)}.xl\:rt-r-pb-4{padding-bottom:var(--space-4)}.xl\:rt-r-pb-5{padding-bottom:var(--space-5)}.xl\:rt-r-pb-6{padding-bottom:var(--space-6)}.xl\:rt-r-pb-7{padding-bottom:var(--space-7)}.xl\:rt-r-pb-8{padding-bottom:var(--space-8)}.xl\:rt-r-pb-9{padding-bottom:var(--space-9)}.xl\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}.rt-r-pl{padding-left:var(--pl)}.rt-r-pl-0{padding-left:0}.rt-r-pl-1{padding-left:var(--space-1)}.rt-r-pl-2{padding-left:var(--space-2)}.rt-r-pl-3{padding-left:var(--space-3)}.rt-r-pl-4{padding-left:var(--space-4)}.rt-r-pl-5{padding-left:var(--space-5)}.rt-r-pl-6{padding-left:var(--space-6)}.rt-r-pl-7{padding-left:var(--space-7)}.rt-r-pl-8{padding-left:var(--space-8)}.rt-r-pl-9{padding-left:var(--space-9)}.rt-r-pl-inset{padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-pl{padding-left:var(--pl-xs)}.xs\:rt-r-pl-0{padding-left:0}.xs\:rt-r-pl-1{padding-left:var(--space-1)}.xs\:rt-r-pl-2{padding-left:var(--space-2)}.xs\:rt-r-pl-3{padding-left:var(--space-3)}.xs\:rt-r-pl-4{padding-left:var(--space-4)}.xs\:rt-r-pl-5{padding-left:var(--space-5)}.xs\:rt-r-pl-6{padding-left:var(--space-6)}.xs\:rt-r-pl-7{padding-left:var(--space-7)}.xs\:rt-r-pl-8{padding-left:var(--space-8)}.xs\:rt-r-pl-9{padding-left:var(--space-9)}.xs\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-pl{padding-left:var(--pl-sm)}.sm\:rt-r-pl-0{padding-left:0}.sm\:rt-r-pl-1{padding-left:var(--space-1)}.sm\:rt-r-pl-2{padding-left:var(--space-2)}.sm\:rt-r-pl-3{padding-left:var(--space-3)}.sm\:rt-r-pl-4{padding-left:var(--space-4)}.sm\:rt-r-pl-5{padding-left:var(--space-5)}.sm\:rt-r-pl-6{padding-left:var(--space-6)}.sm\:rt-r-pl-7{padding-left:var(--space-7)}.sm\:rt-r-pl-8{padding-left:var(--space-8)}.sm\:rt-r-pl-9{padding-left:var(--space-9)}.sm\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-pl{padding-left:var(--pl-md)}.md\:rt-r-pl-0{padding-left:0}.md\:rt-r-pl-1{padding-left:var(--space-1)}.md\:rt-r-pl-2{padding-left:var(--space-2)}.md\:rt-r-pl-3{padding-left:var(--space-3)}.md\:rt-r-pl-4{padding-left:var(--space-4)}.md\:rt-r-pl-5{padding-left:var(--space-5)}.md\:rt-r-pl-6{padding-left:var(--space-6)}.md\:rt-r-pl-7{padding-left:var(--space-7)}.md\:rt-r-pl-8{padding-left:var(--space-8)}.md\:rt-r-pl-9{padding-left:var(--space-9)}.md\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-pl{padding-left:var(--pl-lg)}.lg\:rt-r-pl-0{padding-left:0}.lg\:rt-r-pl-1{padding-left:var(--space-1)}.lg\:rt-r-pl-2{padding-left:var(--space-2)}.lg\:rt-r-pl-3{padding-left:var(--space-3)}.lg\:rt-r-pl-4{padding-left:var(--space-4)}.lg\:rt-r-pl-5{padding-left:var(--space-5)}.lg\:rt-r-pl-6{padding-left:var(--space-6)}.lg\:rt-r-pl-7{padding-left:var(--space-7)}.lg\:rt-r-pl-8{padding-left:var(--space-8)}.lg\:rt-r-pl-9{padding-left:var(--space-9)}.lg\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-pl{padding-left:var(--pl-xl)}.xl\:rt-r-pl-0{padding-left:0}.xl\:rt-r-pl-1{padding-left:var(--space-1)}.xl\:rt-r-pl-2{padding-left:var(--space-2)}.xl\:rt-r-pl-3{padding-left:var(--space-3)}.xl\:rt-r-pl-4{padding-left:var(--space-4)}.xl\:rt-r-pl-5{padding-left:var(--space-5)}.xl\:rt-r-pl-6{padding-left:var(--space-6)}.xl\:rt-r-pl-7{padding-left:var(--space-7)}.xl\:rt-r-pl-8{padding-left:var(--space-8)}.xl\:rt-r-pl-9{padding-left:var(--space-9)}.xl\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}.rt-r-position-static{position:static}.rt-r-position-absolute{position:absolute}.rt-r-position-relative{position:relative}.rt-r-position-fixed{position:fixed}.rt-r-position-sticky{position:sticky}@media (min-width: 520px){.xs\:rt-r-position-static{position:static}.xs\:rt-r-position-absolute{position:absolute}.xs\:rt-r-position-relative{position:relative}.xs\:rt-r-position-fixed{position:fixed}.xs\:rt-r-position-sticky{position:sticky}}@media (min-width: 768px){.sm\:rt-r-position-static{position:static}.sm\:rt-r-position-absolute{position:absolute}.sm\:rt-r-position-relative{position:relative}.sm\:rt-r-position-fixed{position:fixed}.sm\:rt-r-position-sticky{position:sticky}}@media (min-width: 1024px){.md\:rt-r-position-static{position:static}.md\:rt-r-position-absolute{position:absolute}.md\:rt-r-position-relative{position:relative}.md\:rt-r-position-fixed{position:fixed}.md\:rt-r-position-sticky{position:sticky}}@media (min-width: 1280px){.lg\:rt-r-position-static{position:static}.lg\:rt-r-position-absolute{position:absolute}.lg\:rt-r-position-relative{position:relative}.lg\:rt-r-position-fixed{position:fixed}.lg\:rt-r-position-sticky{position:sticky}}@media (min-width: 1640px){.xl\:rt-r-position-static{position:static}.xl\:rt-r-position-absolute{position:absolute}.xl\:rt-r-position-relative{position:relative}.xl\:rt-r-position-fixed{position:fixed}.xl\:rt-r-position-sticky{position:sticky}}.rt-r-w{width:var(--width)}@media (min-width: 520px){.xs\:rt-r-w{width:var(--width-xs)}}@media (min-width: 768px){.sm\:rt-r-w{width:var(--width-sm)}}@media (min-width: 1024px){.md\:rt-r-w{width:var(--width-md)}}@media (min-width: 1280px){.lg\:rt-r-w{width:var(--width-lg)}}@media (min-width: 1640px){.xl\:rt-r-w{width:var(--width-xl)}}.rt-r-min-w{min-width:var(--min-width)}@media (min-width: 520px){.xs\:rt-r-min-w{min-width:var(--min-width-xs)}}@media (min-width: 768px){.sm\:rt-r-min-w{min-width:var(--min-width-sm)}}@media (min-width: 1024px){.md\:rt-r-min-w{min-width:var(--min-width-md)}}@media (min-width: 1280px){.lg\:rt-r-min-w{min-width:var(--min-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-w{min-width:var(--min-width-xl)}}.rt-r-max-w{max-width:var(--max-width)}@media (min-width: 520px){.xs\:rt-r-max-w{max-width:var(--max-width-xs)}}@media (min-width: 768px){.sm\:rt-r-max-w{max-width:var(--max-width-sm)}}@media (min-width: 1024px){.md\:rt-r-max-w{max-width:var(--max-width-md)}}@media (min-width: 1280px){.lg\:rt-r-max-w{max-width:var(--max-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-w{max-width:var(--max-width-xl)}}.rt-r-weight-light{font-weight:var(--font-weight-light)}.rt-r-weight-regular{font-weight:var(--font-weight-regular)}.rt-r-weight-medium{font-weight:var(--font-weight-medium)}.rt-r-weight-bold{font-weight:var(--font-weight-bold)}@media (min-width: 520px){.xs\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xs\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xs\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xs\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 768px){.sm\:rt-r-weight-light{font-weight:var(--font-weight-light)}.sm\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.sm\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.sm\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1024px){.md\:rt-r-weight-light{font-weight:var(--font-weight-light)}.md\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.md\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.md\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1280px){.lg\:rt-r-weight-light{font-weight:var(--font-weight-light)}.lg\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.lg\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.lg\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1640px){.xl\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xl\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xl\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xl\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}.rt-r-lt-normal:before,.rt-r-lt-end:before,.rt-r-lt-normal:after,.rt-r-lt-start:after{content:none}.rt-r-lt-start:before,.rt-r-lt-both:before,.rt-r-lt-end:after,.rt-r-lt-both:after{content:"";display:table}.rt-r-lt-start:before,.rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.rt-r-lt-end:after,.rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}@media (min-width: 520px){.xs\:rt-r-lt-normal:before,.xs\:rt-r-lt-end:before,.xs\:rt-r-lt-normal:after,.xs\:rt-r-lt-start:after{content:none}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before,.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{content:"";display:table}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 768px){.sm\:rt-r-lt-normal:before,.sm\:rt-r-lt-end:before,.sm\:rt-r-lt-normal:after,.sm\:rt-r-lt-start:after{content:none}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before,.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{content:"";display:table}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1024px){.md\:rt-r-lt-normal:before,.md\:rt-r-lt-end:before,.md\:rt-r-lt-normal:after,.md\:rt-r-lt-start:after{content:none}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before,.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{content:"";display:table}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1280px){.lg\:rt-r-lt-normal:before,.lg\:rt-r-lt-end:before,.lg\:rt-r-lt-normal:after,.lg\:rt-r-lt-start:after{content:none}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before,.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{content:"";display:table}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1640px){.xl\:rt-r-lt-normal:before,.xl\:rt-r-lt-end:before,.xl\:rt-r-lt-normal:after,.xl\:rt-r-lt-start:after{content:none}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before,.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{content:"";display:table}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}.rt-r-resize-none{resize:none}.rt-r-resize-vertical{resize:vertical}.rt-r-resize-horizontal{resize:horizontal}.rt-r-resize-both{resize:both}@media (min-width: 520px){.xs\:rt-r-resize-none{resize:none}.xs\:rt-r-resize-vertical{resize:vertical}.xs\:rt-r-resize-horizontal{resize:horizontal}.xs\:rt-r-resize-both{resize:both}}@media (min-width: 768px){.sm\:rt-r-resize-none{resize:none}.sm\:rt-r-resize-vertical{resize:vertical}.sm\:rt-r-resize-horizontal{resize:horizontal}.sm\:rt-r-resize-both{resize:both}}@media (min-width: 1024px){.md\:rt-r-resize-none{resize:none}.md\:rt-r-resize-vertical{resize:vertical}.md\:rt-r-resize-horizontal{resize:horizontal}.md\:rt-r-resize-both{resize:both}}@media (min-width: 1280px){.lg\:rt-r-resize-none{resize:none}.lg\:rt-r-resize-vertical{resize:vertical}.lg\:rt-r-resize-horizontal{resize:horizontal}.lg\:rt-r-resize-both{resize:both}}@media (min-width: 1640px){.xl\:rt-r-resize-none{resize:none}.xl\:rt-r-resize-vertical{resize:vertical}.xl\:rt-r-resize-horizontal{resize:horizontal}.xl\:rt-r-resize-both{resize:both}}.rt-r-tl-auto{table-layout:auto}.rt-r-tl-fixed{table-layout:fixed}@media (min-width: 520px){.xs\:rt-r-tl-auto{table-layout:auto}.xs\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 768px){.sm\:rt-r-tl-auto{table-layout:auto}.sm\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1024px){.md\:rt-r-tl-auto{table-layout:auto}.md\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1280px){.lg\:rt-r-tl-auto{table-layout:auto}.lg\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1640px){.xl\:rt-r-tl-auto{table-layout:auto}.xl\:rt-r-tl-fixed{table-layout:fixed}}.rt-r-ta-left{text-align:left}.rt-r-ta-center{text-align:center}.rt-r-ta-right{text-align:right}@media (min-width: 520px){.xs\:rt-r-ta-left{text-align:left}.xs\:rt-r-ta-center{text-align:center}.xs\:rt-r-ta-right{text-align:right}}@media (min-width: 768px){.sm\:rt-r-ta-left{text-align:left}.sm\:rt-r-ta-center{text-align:center}.sm\:rt-r-ta-right{text-align:right}}@media (min-width: 1024px){.md\:rt-r-ta-left{text-align:left}.md\:rt-r-ta-center{text-align:center}.md\:rt-r-ta-right{text-align:right}}@media (min-width: 1280px){.lg\:rt-r-ta-left{text-align:left}.lg\:rt-r-ta-center{text-align:center}.lg\:rt-r-ta-right{text-align:right}}@media (min-width: 1640px){.xl\:rt-r-ta-left{text-align:left}.xl\:rt-r-ta-center{text-align:center}.xl\:rt-r-ta-right{text-align:right}}.rt-r-tw-wrap{white-space:normal}.rt-r-tw-nowrap{white-space:nowrap}.rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.rt-r-tw-balance{white-space:normal;text-wrap:balance}@media (min-width: 520px){.xs\:rt-r-tw-wrap{white-space:normal}.xs\:rt-r-tw-nowrap{white-space:nowrap}.xs\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xs\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 768px){.sm\:rt-r-tw-wrap{white-space:normal}.sm\:rt-r-tw-nowrap{white-space:nowrap}.sm\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.sm\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1024px){.md\:rt-r-tw-wrap{white-space:normal}.md\:rt-r-tw-nowrap{white-space:nowrap}.md\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.md\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1280px){.lg\:rt-r-tw-wrap{white-space:normal}.lg\:rt-r-tw-nowrap{white-space:nowrap}.lg\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.lg\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1640px){.xl\:rt-r-tw-wrap{white-space:normal}.xl\:rt-r-tw-nowrap{white-space:nowrap}.xl\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xl\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}.rt-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-r-va-baseline{vertical-align:baseline}.rt-r-va-top{vertical-align:top}.rt-r-va-middle{vertical-align:middle}.rt-r-va-bottom{vertical-align:bottom}@media (min-width: 520px){.xs\:rt-r-va-baseline{vertical-align:baseline}.xs\:rt-r-va-top{vertical-align:top}.xs\:rt-r-va-middle{vertical-align:middle}.xs\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 768px){.sm\:rt-r-va-baseline{vertical-align:baseline}.sm\:rt-r-va-top{vertical-align:top}.sm\:rt-r-va-middle{vertical-align:middle}.sm\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1024px){.md\:rt-r-va-baseline{vertical-align:baseline}.md\:rt-r-va-top{vertical-align:top}.md\:rt-r-va-middle{vertical-align:middle}.md\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1280px){.lg\:rt-r-va-baseline{vertical-align:baseline}.lg\:rt-r-va-top{vertical-align:top}.lg\:rt-r-va-middle{vertical-align:middle}.lg\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1640px){.xl\:rt-r-va-baseline{vertical-align:baseline}.xl\:rt-r-va-top{vertical-align:top}.xl\:rt-r-va-middle{vertical-align:middle}.xl\:rt-r-va-bottom{vertical-align:bottom}}#app{--color-background: #070b14;--default-font-family: "Inter Tight", sans-serif;font-family:Inter Tight,NotoFlagsOnly,sans-serif;font-display:optional;--scaling: .875;--cursor-button: pointer;--line-height: 1.2;--white-heading: #f7f8f8;--green-live: #3cff73;font-variant-numeric:tabular-nums;overflow:hidden}.rt-TooltipContent{background:#131923;border:1px solid #2e343e;border-radius:8px}.rt-TooltipText{color:var(--regular-text-color);user-select:auto}.rt-TooltipArrow{fill:#131923}.rt-Separator{background:#65677a}.sticky{position:sticky;background:var(--color-background)}.app-width-container{max-width:1920px;margin:0 auto}.blur{position:absolute;inset:0;background:#0000008a;backdrop-filter:blur(2px)}.sankey-label{pointer-events:none;white-space:pre-line;font-size:14px;font-family:Inter Tight}.mono-text{font-family:Roboto Mono,monospace}._outer-container_13cf2_1{height:100vh;width:100%;position:absolute;z-index:100;display:flex;justify-content:center;align-items:center;container:outer-container / inline-size}._inner-container_13cf2_12{min-width:410px}@container outer-container (width < 430px){._inner-container_13cf2_12{min-width:310px}}._text_o41r7_1{color:var(--startup-text-color);line-height:normal}._container_o41r7_6{padding-left:40px}._container_1tszc_1{padding:8px 14px;border-radius:12px;border:1px solid var(--container-border-color);background:var(--container-background-color);display:grid;grid:auto-flow / auto 1fr;column-gap:10px;row-gap:6px;._text_1tszc_11{color:#dedede;font-weight:500;line-height:normal}}._text_1ont6_1{color:var(--startup-complete-step-color);font-weight:500;line-height:normal}._container_1ont6_7{padding:0 20px}._label_1ojid_1{color:#686868;font-size:12px}._value_1ojid_6{color:var(--startup-text-color);font-size:12px}._progress_gtr5g_1{height:9px;width:120px;background:var(--startup-progress-background-color);div{background:var(--startup-progress-teal-color)}}._text_gtr5g_11{color:var(--startup-text-color);font-size:8px;line-height:normal}._container_e8h4h_1{transition:filter .5s;&._blur_e8h4h_4{filter:blur(10px)}}._container_1z0wf_1{--collapse-duration: .3s;--collapse-location-time: .2s;--transform-origin: top right;position:fixed;inset:0;overscroll-behavior:none;z-index:20;background-color:var(--startup-background-color);--color-background: var(--startup-background-color);--slot-nav-background-color: var(--startup-background-color);transform-origin:var(--transform-origin);transition:opacity var(--collapse-duration) linear,transform var(--collapse-duration) linear,background-color .2s linear;&._collapsed_1z0wf_22{transform:scale(0);opacity:.5;overflow:hidden}&._gossip_1z0wf_28{--startup-background-color: var(--boot-progress-gossip-background-color)}&._full-snapshot_1z0wf_32{--startup-background-color: var( --boot-progress-full-snapshot-background-color )}&._incr-snapshot_1z0wf_38{--startup-background-color: var( --boot-progress-incr-snapshot-background-color )}&._catching-up_1z0wf_44{--startup-background-color: var(--boot-progress-catchup-background-color)}&._supermajority_1z0wf_48{background-color:var(--boot-progress-supermajority-background-color)}}@media (min-width: 800px){._startup-content-indentation_1z0wf_54{margin-left:67px;margin-right:67px}}._container_j432f_1{min-width:28px;&._pointer_j432f_4{cursor:pointer}._label_j432f_8{color:var(--header-label-text-color);font-size:10px}._value_j432f_13{color:var(--dropdown-button-text-color);font-size:12px;._value-suffix_j432f_17{color:var(--header-label-text-color)}}&._dropdown-menu_j432f_22{._label_j432f_8{color:var(--popover-secondary-color)}._value_j432f_13{color:var(--popover-primary-color);._value-suffix_j432f_17{color:var(--popover-secondary-color)}}}}._horizontal_j432f_37{display:flex;justify-content:space-between;align-items:center;gap:8px;background-color:var(--color-background);._value_j432f_13{font-weight:600}}._hide_1etvv_1{display:none}._popover-content_e49l0_1{box-sizing:border-box;max-width:var(--radix-popover-content-available-width);background:var(--popover-background-color);color:var(--popover-primary-color);padding:10px;border:1px solid var(--gray-4, #2a2a2a);border-radius:5px;box-shadow:0 4px 4px #00000040;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,opacity;--popover-trigger-color: var(--popover-secondary-color);--popover-trigger-hover-color: var(--popover-primary-color)}._popover-content_e49l0_1:focus{box-shadow:0 0 0 2px var(--violet-7)}._popover-content_e49l0_1[data-state=open][data-side=top]{animation-name:_slideDownAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=right]{animation-name:_slideLeftAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=bottom]{animation-name:_slideUpAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=left]{animation-name:_slideRightAndFade_e49l0_1}._popover-arrow_e49l0_41{fill:var(--popover-background-color)}@keyframes _slideUpAndFade_e49l0_1{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideRightAndFade_e49l0_1{0%{opacity:0;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes _slideDownAndFade_e49l0_1{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideLeftAndFade_e49l0_1{0%{opacity:0;transform:translate(2px)}to{opacity:1;transform:translate(0)}}._copy-button_1km2g_1{position:relative;width:fit-content;max-width:100%;--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;._icon_1km2g_8{flex-shrink:0}&._hide-icon-until-hover_1km2g_12{._icon_1km2g_8{display:none}&:hover ._icon_1km2g_8{display:inherit;position:absolute;right:0;background:#1b3150bf;padding:4px 2px;border-radius:2px;box-shadow:-4px 0 8px #1e3a5fcc,0 2px 8px #0000004d}}}._nav-link_tb1ax_1{font-size:14px;font-weight:400;color:var(--nav-button-inactive-text-color);border-radius:5px;background-color:transparent;gap:5px;padding:0 15px;flex-shrink:1;min-width:50px;._icon_tb1ax_14{height:14px;width:14px}._dropdown-icon_tb1ax_19{height:18px;width:18px}&:hover,&._focus_tb1ax_25{filter:brightness(1.2)}&._active_tb1ax_29{font-weight:600;background-color:#ffffff14}}@media (max-width: 416px){._nav-link_tb1ax_1{padding:0 4px}}._nav-dropdown-content_tb1ax_41{display:flex;flex-direction:column;background-color:#1c2129;border:1px solid rgba(250,250,250,.08);border-radius:5px;min-width:var(--radix-dropdown-menu-trigger-width)}._logo_1ml9x_1{height:27px}._cluster-container_7aa6c_1{height:28px;justify-content:space-between;align-items:center;flex-grow:1;border-radius:5px;background:#fafafa1a;._cluster_7aa6c_1{padding:0 3px;border-radius:3px;color:#000;font-size:10px;font-weight:500}._cluster-name_7aa6c_19{font-size:12px;font-weight:700;margin-bottom:-3px}}._nav-filter-toggle-group_148xa_1{display:flex;flex-wrap:nowrap;width:100%;button{cursor:pointer;flex-grow:1;height:21px;border:none;padding:3px 5px;color:var(--nav-button-inactive-text-color);background-color:#ffffff1a;&:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}&:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}&[data-state=on]{background-color:var(--slot-nav-filter-background-color);color:var(--nav-button-text-color)}&:hover{filter:brightness(1.2)}span{cursor:inherit;font-size:12px;font-style:normal;font-weight:400;line-height:normal}}}._toggle-button-size_148xa_43{height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}}._toggle-button_148xa_43{border-radius:5px;background-color:var(--epoch-slider-progress-color);&:hover{filter:brightness(1.2)}&._floating_148xa_61{box-shadow:0 4px 4px #000000bf}svg{fill:var(--nav-button-text-color);height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}&._mirror_148xa_75{transform:scaleX(-1)}}}._slot-nav-container_148xa_81{transition:width .3s;box-sizing:border-box;&._nav-background_148xa_85{background-color:var(--slot-nav-background-color)}}._nav-background_1sjct_1{background-color:var(--slot-nav-background-color)}._health-pane_hbx15_1{background:none;margin:0;padding:0;border:0;height:28px;display:flex;justify-content:space-between;align-items:center;row-gap:2px;column-gap:3px;&._vertical_hbx15_14{flex-direction:column;max-width:24px;min-width:24px;&._narrow_hbx15_18{min-width:14px}}._health-box_hbx15_22{height:100%;padding:0;margin:0;display:flex;justify-content:center;align-items:center;max-width:24px;min-width:14px;background:var(--green-5);border-radius:3px;border:1px solid transparent;cursor:pointer;&._stacked_hbx15_36{width:100%}svg{fill:var(--green-11)}&._alerting_hbx15_44{background:var(--red-8);border-color:var(--red-11);svg{fill:var(--red-12)}}&:hover{filter:brightness(1.2)}}}._popover_hbx15_58{max-width:160px;padding:6px;._title_hbx15_62{font-size:12px;color:var(--gray-12)}._status_hbx15_67{font-size:12px;font-weight:600;color:var(--green-10);&._alerting_hbx15_44{color:var(--red-10)}}._content_hbx15_77{font-size:10px;color:var(--gray-9)}}._logo-container_1po46_1{--logo-transition-time: 1.5s;z-index:20;position:fixed;inset:0;justify-content:center;align-items:center;background-color:var(--startup-background-color);background-image:url("data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2024.9971C13.4992%2024.8907%2024.4505%2014.0877%2024.791%200.645508L24.7988%200C24.7988%2013.7398%2035.8824%2024.8887%2049.5967%2024.9971C36.0977%2025.1037%2025.1471%2035.9075%2024.8066%2049.3496L24.7988%2049.9951C24.7988%2036.2551%2013.7145%2025.1052%200%2024.9971Z'%20fill='%2303030C'/%3e%3c/svg%3e"),radial-gradient(160.38% 98.82% at 50% 50%,#1ce7c229,#1ce7c203 41.16%,#1ce7c200);background-position:center;background-repeat:repeat;transition:opacity var(--logo-transition-time) linear;img{height:76px}&._hidden_1po46_30{opacity:0;pointer-events:none;user-select:none}}._secondary-color_2x9jp_1{color:var(--boot-progress-snapshot-units-color)}._ellipsis_2x9jp_5{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._card_2x9jp_11{min-height:150px;padding:10px;border:1px solid rgba(255,255,255,.1);background:#ea67670d;color:var(--boot-progress-primary-text-color)}._sparkline-card_2x9jp_19{display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;._snapshot-tile-title_2x9jp_25{color:var(--boot-progress-primary-text-color);font-size:18px;font-weight:400}._snapshot-tile-busy_2x9jp_31{font-size:18px;font-weight:400}._sparkline-container_2x9jp_36{position:relative;flex-shrink:0;background-image:linear-gradient(to right,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px),linear-gradient(to bottom,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px)}}._bars-card_2x9jp_54{flex-grow:1;display:flex;min-width:250px;flex-direction:column;justify-content:space-between;gap:10px;._card-header_2x9jp_62{font-size:18px;line-height:normal;font-weight:400}._title_2x9jp_68{font-size:28px;font-weight:400;min-width:0}._accounts-rate_2x9jp_74{min-width:165px;text-align:center}._total_2x9jp_79{min-width:170px;text-align:center}._throughput_2x9jp_84{min-width:114px;text-align:right;&._with-prefix_2x9jp_87{min-width:140px;white-space:nowrap;flex-wrap:wrap}}}._reading-card_2x9jp_95{._read-path-container_2x9jp_96{color:var(--app-teal);font-size:16px;svg{flex-shrink:0;width:16px;height:16px;fill:var(--app-teal)}._read-path_2x9jp_96{min-width:0}}}@media (max-width: 876px){._reading-card_2x9jp_95{._total_2x9jp_79{text-align:right}._throughput_2x9jp_84{text-align:left}}}@media (max-width: 1190px){._decompressing-card_2x9jp_124{justify-content:space-between;._decompressing-card-left_2x9jp_127{flex-direction:column;flex-grow:0;align-items:flex-start;._title_2x9jp_68,._total_2x9jp_79{text-align:left}}._decompressing-card-right_2x9jp_137{flex-direction:column;flex-grow:0;text-align:right}}}@media (max-width: 1063px){._inserting-card_2x9jp_146{._throughput_2x9jp_84{text-align:left}}}@media (max-width: 936px){._inserting-card_2x9jp_146{._total_2x9jp_79{text-align:left}._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:right}}}@media (max-width: 846px){._reading-card_2x9jp_95,._decompressing-card_2x9jp_124,._inserting-card_2x9jp_146{._card-header_2x9jp_62,._decompressing-card-left_2x9jp_127,._decompressing-card-right_2x9jp_137{flex-direction:column;align-items:flex-start}._total_2x9jp_79,._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:left}}}@media (max-width: 560px){._sparkline-card_2x9jp_19{width:100%}}._busy_1fw9w_1{color:#c8cacd;font-size:10px;min-width:27px;text-align:end;line-height:10px}._range-label_14i5c_1{position:absolute;right:2px;font-size:10px;font-weight:400;color:var(--tile-sparkline-range-text-color)}._top_14i5c_9{top:0}._bottom_14i5c_13{bottom:0}._g-transform_14i5c_17{will-change:transform}._bars_1d34t_1{--container-width: 100%;position:relative;width:var(--container-width);height:var(--bar-height, 50px);--step: calc(var(--bar-width) + var(--bar-gap));--used-width: max( 0px, calc( round(down, var(--container-width) + var(--bar-gap), var(--step)) - var(--bar-gap) ) );--threshold-start: max( 0px, calc( round( nearest, var(--pct) * (var(--used-width) + var(--bar-gap)), var(--step) ) - var(--step) ) );--threshold-visible: sign(var(--pct));mask-image:repeating-linear-gradient(to right,black 0 var(--bar-width),transparent var(--bar-width) var(--step));mask-size:var(--used-width) 100%;mask-repeat:no-repeat;background:linear-gradient(to right,var(--boot-progress-gossip-bars-color) 85%,var(--boot-progress-gossip-mid-bar-color) 85% 95%,var(--boot-progress-gossip-high-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat;&:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) + var(--bar-width)) 0 0);background:linear-gradient(to right,var(--boot-progress-gossip-filled-bar-color) 85%,var(--boot-progress-gossip-mid-filled-bar-color) 85% 95%,var(--boot-progress-gossip-high-filled-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}&:after{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) - var(--bar-width)) 0 var(--threshold-start));opacity:var(--threshold-visible, 0);background:linear-gradient(to right,var(--app-teal) 85%,var(--boot-progress-gossip-mid-threshold-bar-color) 85% 95%,var(--boot-progress-gossip-high-threshold-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}}._secondary-text_1iskf_1{color:var(--boot-progress-secondary-text-color)}._phase-header-container_1iskf_5{color:var(--boot-progress-primary-text-color);font-size:28px;font-weight:400;line-height:normal;._phase-name_1iskf_11{font-weight:600}._no-wrap_1iskf_15{white-space:nowrap}._complete-pct-container_1iskf_19{white-space:pre;display:inline-flex;align-items:center}}._progress-bar_drgbz_1{align-items:center;width:100%;>*:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}>*:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}._current_drgbz_14{height:40px;border-width:1px;border-style:solid;border-radius:5px;overflow:hidden;._progressing-bar_drgbz_21{width:100%;height:100%;transform-origin:left;transition:transform .2s linear}}div{height:25px}._gossip_drgbz_33{background:var(--progress-bar-incomplete-gossip-color);&._complete_drgbz_35{background:var(--progress-bar-complete-gossip-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-gossip-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-gossip-background)}}}._full-snapshot_drgbz_46{background:var(--progress-bar-incomplete-full-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-full-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-full-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-full-snapshot-background)}}}._incr-snapshot_drgbz_59{background:var(--progress-bar-incomplete-inc-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-inc-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-inc-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-inc-snapshot-background)}}}._catching-up_drgbz_72{background:var(--progress-bar-incomplete-catchup-color);&._complete_drgbz_35{background:var(--progress-bar-complete-catchup-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-catchup-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-catchup-background)}}}._supermajority_drgbz_85{background:var(--progress-bar-incomplete-supermajority-color);&._complete_drgbz_35{background:var(--progress-bar-complete-supermajority-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-supermajority-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-supermajority-background)}}}}._uplot_1swaw_1{.u-over{touch-action:pan-y}}._card_1yavk_1{flex-grow:1;display:flex;flex-direction:column;padding:14px;gap:14px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#fafafa0d;color:var(--boot-progress-primary-text-color)}._secondary-color_1yavk_13{color:#858585}._bold_1yavk_17{font-weight:700}._ellipsis_1yavk_21{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._labels-row_1yavk_27{flex-wrap:nowrap;font-size:14px;width:calc(var(--turbine-head-x, 0px) + var(--turbine-head-label-width, 0px) / 2);min-width:max(var(--turbine-start-label-width, 0px),var(--turbine-head-label-width, 0px));max-width:100%;._labels-left_1yavk_39{width:calc(var(--turbine-start-x, 0px) + var(--turbine-start-label-width, 0px) / 2);min-width:calc(var(--turbine-start-label-width, 0px) + 4px)}._turbine-label_1yavk_46{white-space:nowrap;flex-shrink:0;border-radius:3px;padding:2px;text-align:center;color:#000;&._start_1yavk_54{background-color:var(--first-turbine-slot-color)}&._head_1yavk_58{background-color:var(--latest-turbine-slot-color)}}}._footer-row_1yavk_64{gap:4px;font-size:14px;color:#ccc;>*{flex-wrap:nowrap;background-color:#2c2c2c;border-radius:3px;padding:4px;text-align:center;&._left-footer_1yavk_76{width:var(--turbine-start-x, 0px);gap:4px;flex-shrink:0}}._footer-title_1yavk_83{flex-grow:1;font-weight:700}._footer-value_1yavk_88{color:#bcbcbc;flex-shrink:10000;direction:rtl}}._bars-stats-container_1yavk_95{font-size:14px;line-height:normal;._bars-stats-row_1yavk_99{>*{min-width:0}._replayed_1yavk_104{color:var(--replayed-slots-text-color);._bold_1yavk_17{color:var(--replayed-slots-bold-text-color)}}._speed_1yavk_111{color:var(--gray-10);._bold_1yavk_17{color:var(--gray-8)}}._to-replay_1yavk_118{color:var(--turbine-slots-text-color);._bold_1yavk_17{color:var(--turbine-slots-bold-text-color)}}}}._slot-group-label_mfowj_1{--group-x: -100000px;--group-name-opacity: 0;opacity:.8;background-color:#080b13;border-radius:2px;border:1px solid #3c4652;border-top-width:0;will-change:transform;transform:translate(var(--group-x));&._you_mfowj_13{border:1px solid #2a7edf}._slot-group-top-container_mfowj_17{width:100%;background-color:#101318;&._skipped_mfowj_21{background-color:var(--red-2)}._slot-group-name-container_mfowj_25{opacity:var(--group-name-opacity);transition:opacity .6s;will-change:opacity;._name_mfowj_30{font-size:10px;line-height:normal;color:#949494;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}}._slot-bars-container_mfowj_41{flex-shrink:0;._slot-bar_mfowj_41{--slot-x: 0;position:absolute;will-change:transform;transform:translate(var(--slot-x));height:100%;border-radius:3px;&:nth-child(1){background-color:var(--blue-7)}&:nth-child(2){background-color:var(--blue-6)}&:nth-child(3){background-color:var(--blue-5)}&:nth-child(4){background-color:var(--blue-4)}&._skipped_mfowj_21{background-color:var(--red-7)}}}}._legend-color-box_mfowj_72{width:10px;height:10px;border-radius:1px}._legend-label_mfowj_78{font-size:10px;color:var(--header-label-text-color)}._card_1vnw5_1{padding:10px;border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);&._narrow_1vnw5_7{padding:4px}}._header_10qjn_1{color:var(--dropdown-button-text-color)}._full-width_10qjn_5{width:100%}._dark_10qjn_9{background:#171b24;border-color:transparent}._subHeader_10qjn_14{color:var(--tile-sub-header-color);font-size:12px;line-height:12px}._tile-container_10qjn_20{display:flex;flex-wrap:wrap;flex-flow:wrap-reverse;gap:2px;flex-grow:1;._tile_10qjn_20{width:6px;height:6px;border-radius:1px;background:color-mix(in oklab,var(--tile-background-red-color) var(--busy),var(--tile-background-blue-color))}}._stat-container_1hzk8_1{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;border-radius:3px;background:#141528;._label_1hzk8_10{color:#dddee0;font-size:10px}._value-container_1hzk8_15{display:flex;align-items:baseline;justify-content:center;gap:1px;min-width:35px;._value_1hzk8_15{color:var(--tile-primary-stat-value-color);font-size:12px;text-align:center}._pct_1hzk8_29{color:var(--tile-primary-stat-value-color);font-size:8px}}}._btn_1lb0v_1{all:unset;cursor:var(--cursor-button);display:flex;gap:var(--space-1);&:hover{filter:brightness(1.4)}}._secondary-color_1cuvx_1{color:var(--gray-11)}._card_1cuvx_5{padding:20px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d}@property --progress-pct{syntax: ""; initial-value: 0%; inherits: false;}._pie-chart-title_1cuvx_18{white-space:nowrap;font-size:28px;color:var(--gray-8)}._pie-chart-container_1cuvx_24{width:100%;min-height:0;aspect-ratio:1/1}@keyframes _shimmer_1cuvx_58{to{transform:rotate(360deg)}}._pie-chart_1cuvx_18{aspect-ratio:1/1;container-type:size;background:conic-gradient(#4d4d4d 0,#8b2e11 80%);border-radius:50%;._threshold-marker_1cuvx_43{transform:rotate(108deg);transform-origin:center top;._marker-line_1cuvx_47{border-left:3px solid #4c4c4c}._marker-icon_1cuvx_51{height:5%;aspect-ratio:1/1}}._shimmer_1cuvx_58{position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 145deg,rgba(255,255,255,.05) 158deg,rgba(255,255,255,.18) 180deg,rgba(255,255,255,.05) 202deg,transparent 215deg);will-change:transform;animation:_shimmer_1cuvx_58 2s linear infinite}._overlay_1cuvx_74{--progress-pct: 0%;transition:--progress-pct .2s linear;position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 0 var(--progress-pct),var(--supermajority-pie-chart-unfilled-color) var(--progress-pct) 100%)}._pie-chart-content_1cuvx_86{background:var(--boot-progress-supermajority-background-color);border-radius:50%;font-size:4.5cqi;color:var(--supermajority-pie-chart-text-color);._lg_1cuvx_93{font-size:9cqi}._eighty_1cuvx_97{color:var(--progress-bar-in-progress-supermajority-border)}}}._details-box_1cuvx_103{&,._copyButton_1cuvx_105{text-align:start;font-size:12px;color:var(--gray-9)}._label_1cuvx_111{font-size:10px;color:var(--gray-7)}._snapshot-source_1cuvx_116{color:var(--blue-7);font-size:12px;word-break:break-all}}._container_1vhtf_1{max-width:100%;flex-grow:1;&._horizontal_1vhtf_4{flex-basis:70%;min-height:188px;min-width:475px}&._vertical_1vhtf_9{flex-shrink:0;height:516px}}._table-card_1vhtf_15{width:100%;display:flex;flex-direction:column;overflow:hidden;&._narrow_1vhtf_21{padding:10px}}._rows-container_1vhtf_26{overflow-x:hidden;overflow-y:auto;flex-basis:50%;flex-grow:1}._row_1vhtf_26{box-sizing:border-box;height:var(--row-height);border:0px solid var(--supermajority-table-border-color);border-bottom-width:1px;column-gap:20px;padding:0 20px 0 5px;&._narrow_1vhtf_21{column-gap:15px}&._xnarrow_1vhtf_44{column-gap:5px}&._online_1vhtf_48{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-online-primary-color);font-size:14px}._peer_1vhtf_56{img{opacity:.5}}._status_1vhtf_62{color:var(--green-8)}._version_1vhtf_66 ._client-icon_1vhtf_66:not(._client-icon-placeholder_1vhtf_66){opacity:.5}._suffix_1vhtf_70{color:var(--supermajority-table-online-secondary-color)}}&._offline_1vhtf_75{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-offline-primary-color);font-size:14px}._status_1vhtf_62{color:var(--red-9)}._suffix_1vhtf_70{color:var(--supermajority-table-offline-secondary-color)}}&._header-row_1vhtf_92{height:auto;border:0}&._toggle-row_1vhtf_97{border-width:1px 0;display:flex;column-gap:8px;cursor:pointer;&:hover{filter:brightness(1.1)}&._offline_1vhtf_75{color:var(--red-9);background:#e5484d0d}&._online_1vhtf_48{color:var(--green-9);background:#30a46c0d}}}._cell_1vhtf_116{height:100%;&._header_1vhtf_92{height:22px;color:var(--table-header-color)}}._peer_1vhtf_56{column-gap:4px;min-width:108px;flex:10 1 170px;&._narrow_1vhtf_21{min-width:80px;flex:10 1 80px}&._xnarrow_1vhtf_44{min-width:70px;flex:10 1 70px}}._status_1vhtf_62{column-gap:8px;min-width:62px;flex:1 1 62px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{min-width:12px;flex:0 1 12px}}._pubkey_1vhtf_51{min-width:50px;flex:1 20 370px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:10 1 50px}}._version_1vhtf_66{column-gap:8px;min-width:100px;flex:1 1 134px;&._narrow_1vhtf_21{min-width:80px;flex:1 10 80px}&._xnarrow_1vhtf_44{min-width:35px;flex:0 10 35px}}._stake_1vhtf_174{justify-content:flex-end;min-width:72px;flex:1 1 72px;&._narrow_1vhtf_21{min-width:52px;flex:0 1 52px}&._xnarrow_1vhtf_44{display:none}}._stake-pct_1vhtf_187{min-width:62px;flex:1 1 62px;justify-content:flex-end;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:0 1 52px}}._small-icon_imn4j_1{height:12px}._medium-icon_imn4j_5{height:14px}._large-icon_imn4j_9{height:16px}._xlarge-icon_imn4j_13{height:20px}._digit_1rfzd_1{height:50%;display:flex;align-items:center;&._hidden_1rfzd_5{visibility:hidden}}._selection-text_1rfzd_10{color:transparent!important;background:transparent!important}._container_zkl3s_1{font-size:10px;color:var(--gray-8)}._added_zkl3s_6{color:#436c48}._removed_zkl3s_10{color:#925959}._container_1i8oq_1{position:absolute;top:14px;transform:translate(round(down,-50%,1px));left:50%;display:flex;justify-content:center;z-index:100;._toast_1i8oq_10{border-radius:10px;padding:8px;min-width:180px;display:flex;justify-content:center;align-items:center;z-index:100;&._disconnected_1i8oq_19{background:repeating-linear-gradient(115deg,var(--failure-color),var(--failure-color) 7px,var(--toast-disconnected-color) 7px,var(--toast-disconnected-color) 8px)}&._connecting_1i8oq_29{background:repeating-linear-gradient(115deg,var(--toast-connecting-start-color),var(--toast-connecting-start-color) 7px,var(--toast-connecting-end-color) 7px,var(--toast-connecting-end-color) 8px)}._text_1i8oq_39{color:#000;font-size:18px;font-style:normal;font-weight:600;text-align:center}}}._slots-list_1sk8v_1{scrollbar-width:none;&._hidden_1sk8v_3{visibility:hidden}}._no-slots-text_1sk8v_8{font-size:12px;color:var(--regular-text-color);text-align:center}._slot-group-container_1sejw_1{padding-bottom:5px;background:var(--slot-nav-background-color)}._slot-group_1sejw_1{column-gap:4px;row-gap:3px;border-radius:5px;background:var(--slots-list-slot-background-color);font-size:10px}._left-column_1sejw_14{flex-grow:1;min-width:0;gap:4px}._future_1sejw_20{padding:3px;background:var(--slots-list-future-slot-background-color);color:var(--slots-list-future-slot-color);img{filter:grayscale(100%)}&._you_1sejw_28{border:solid var(--slots-list-not-processed-my-slots-border-color);border-width:2px 1px 1px 1px;padding:2px 3px 3px;background:var(--slots-list-my-slot-background-color)}}._current_1sejw_36{padding:2px;border:1px solid var(--container-border-color);background-color:var(--container-background-color);color:var(--slots-list-slot-color);box-shadow:0 0 16px 0 var(--slots-list-current-slot-box-shadow-color) inset;._slot-name_1sejw_43{font-size:18px}&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{border-width:3px 1px 1px 1px;border-color:var(--slots-list-my-slots-selected-border-color)}}._current-slot-row_1sejw_57{background-color:var(--slots-list-current-slot-number-background-color);border-radius:5px;padding:3px}._past_1sejw_63{padding:3px;color:var(--slots-list-past-slot-color);&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{background:var(--slots-list-my-slot-background-color);&._processed_1sejw_74{text-decoration:none;padding:2px;border:solid var(--slots-list-my-slots-border-color);border-width:3px 1px 1px 1px;background:var(--slots-list-my-slot-background-color);color:var(--slots-list-past-slot-color);&:hover,&:active{border-color:var(--slots-list-my-slots-selected-border-color)}&._selected_1sejw_87{background:var(--slots-list-selected-background-color);border-color:var(--slots-list-my-slots-selected-border-color)}&._skipped_1sejw_47,&._selected_1sejw_87._skipped_1sejw_47{background:var(--slots-list-skipped-selected-background-color)}}}}._slot-name_1sejw_43{font-size:12px;font-weight:400}._ellipsis_1sejw_105{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._slot-item-content_1sejw_111{align-items:center;gap:4px;font-size:10px;font-weight:400;color:var(--slots-list-past-slot-number-color)}._placeholder_1sejw_119{height:42px}._slot-statuses_1sejw_123{._slot-status_1sejw_123{width:4px;height:6px;background:var(--slot-status-gray);border:1px solid transparent;border-radius:2px;align-items:flex-end;._slot-status-progress_1sejw_132{width:100%;height:100%;transform-origin:bottom;will-change:transform;animation:_fillProgress_1sejw_1 var(--slot-duration) ease-in-out forwards;background-color:var(--slot-status-blue)}}&._tall_1sejw_142{gap:3px;._slot-status_1sejw_123{flex-grow:1}}&._short_1sejw_149 ._slot-status_1sejw_123{height:3px;border-radius:1px}}@keyframes _fillProgress_1sejw_1{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes _shimmer_1sejw_184{0%{transform:translate(0)}to{transform:translate(200%)}}._scroll-slots-placeholder_1sejw_173{background:var(--slots-list-slot-background-color);._absolute-full-size_1sejw_176{position:absolute;top:0;left:0;width:100%;height:100%}._shimmer_1sejw_184{margin-left:-100%;will-change:transform;background:linear-gradient(to right,#fff0,#fff6f60d,#fff0);animation:_shimmer_1sejw_184 1.5s infinite}}._scroll-placeholder-item_1sejw_197{height:46px;margin-bottom:5px;border-radius:5px;box-shadow:0 0 0 4px var(--slot-nav-background-color)}._progress_51hag_1{background:var(--progress-gutter-background-color);flex-grow:0;div{background:var(--progress-background-color)}}._container_1l1zm_1{display:flex;justify-content:center;._button_1l1zm_5{position:absolute;width:100px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._epoch-progress_niwu5_1{width:100%;background:var(--epoch-slider-progress-color);position:absolute;bottom:0}._clickable_niwu5_8{cursor:pointer}._leader-slot_niwu5_12{width:100%;background:#2a7edf;height:5px;position:absolute;opacity:.5;&:hover{filter:brightness(1.5)}&._before-start_niwu5_21{filter:brightness(.5)}}._skipped-slot_niwu5_26{width:100%;background:#ff5353;height:3px;position:absolute;&:hover{filter:brightness(1.5)}}._skipped-slot-icon_niwu5_36{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._first-processed-slot_niwu5_45{width:100%;background:#bdf3ff;height:3px;position:absolute;right:0;&:hover{filter:brightness(1.5)}}._first-processed-slot-icon_niwu5_56{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._slider-root_niwu5_65{position:relative;flex-grow:1;width:10px;display:flex;flex-direction:column;align-items:center;user-select:none;touch-action:none}._slider-track_niwu5_76{background:#24262b;flex-grow:1;width:100%}._slider-thumb_niwu5_82{display:block;position:relative;height:10px;width:20px;background:#64656580;border:1px solid #a4a4a4;border-radius:2px;cursor:grab;&._collapsed_niwu5_92{border-left-width:0;transition:border-width 0s linear .2s}}._slider-thumb_niwu5_82:hover{background:#6465654d}._slider-thumb_niwu5_82:focus{outline:none;box-shadow:0 0 0 2px var(--gray-a8)}._tooltip_niwu5_106{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap}._hide_niwu5_114{opacity:0;display:none;transition:opacity .5s ease-out 1s,display 0s 1.5s;transition-behavior:allow-discrete}._show_niwu5_123{opacity:1;display:block}._text_nk1yn_1{color:var(--primary-text-color);font-size:18px;font-weight:500}._container_k3j09_1{gap:var(--space-2);display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}._container_k6h1w_1{position:absolute;right:0;top:8px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:1;._stats-container_k6h1w_12{padding:5px 5px 5px 7px;border-radius:8px;background:#111111e6;._slot-stats-toggle-button_k6h1w_17{margin:-2px -4px;align-self:flex-end;display:flex;padding:0 4px;box-shadow:unset;color:var(--icon-button-color);gap:4px;height:16px}._stats_k6h1w_12{display:grid;grid:auto auto / auto auto;column-gap:10px;row-gap:4px;min-width:203px;font-variant-numeric:tabular-nums;color:var(--sankey-base-label-color);font-size:12px;line-height:normal;._success-rate_k6h1w_40{color:var(--sankey-success-rate-color)}}}._toggle-group_k6h1w_46{display:inline-flex;button{all:unset}._toggle-group-item_k6h1w_53{background:var(--toggle-item-background-color);color:#747575;padding:2px 4px;align-items:center;justify-content:center;margin-left:1px;cursor:pointer}._toggle-group-item_k6h1w_53:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}._toggle-group-item_k6h1w_53:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}._toggle-group-item_k6h1w_53:hover{filter:brightness(1.2)}._toggle-group-item_k6h1w_53[data-state=on]{background-color:#6184a4;color:#1f1f1f}}}._slot-performance-container_6u4bp_1{container:slot-performance / inline-size}._sankey-container_6u4bp_5{position:relative;aspect-ratio:4;min-height:450px;overflow:hidden;._slot-sankey-container_6u4bp_11{height:100%}}@container slot-performance (width < 600px){._sankey-container_6u4bp_5{aspect-ratio:1 / 3;overflow-x:clip;._slot-sankey-container_6u4bp_11 svg{transform:rotate(90deg) translateY(-100%) translate(15px);transform-origin:top left}}}._tooltip_102uq_1{padding:4px;border-radius:5px;background:#121212;display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_102uq_17{color:#754d12}._compute-units_102uq_21{color:var(--compute-units-color)}._elapsed-time_102uq_25{color:var(--elapsed-time-color)}._prio-fee_102uq_29{color:var(--fees-color)}._tips_102uq_33{color:var(--tips-color)}._label_102uq_37{font-weight:600;text-align:left}}._chart_102uq_43{flex-grow:1;height:25vw;min-height:250px;max-height:600px;position:relative;margin-left:-8px;margin-right:-8px}._chart_1hpd4_1{.uplot .legend .series:first-child,.uplot .legend .series th:after,.uplot .legend .series td{display:none}.lib-toggles{margin-top:20px;text-align:center}.u-select{background:#ffffff1a}.hidden{color:silver}.u-cursor-pt{border-radius:0}.uplot{margin-bottom:20px;padding:10px;box-shadow:0 0 10px #0000004d}}._focused_1hpd4_32{.u-over{border:1px solid var(--focused-border-color)}}._icon-container_1i4gu_1{display:none}._tooltip_h8khk_1{z-index:1;position:absolute;background:var(--Colors-Gray-1, #111);padding:6px 8px;border-radius:8px;max-height:none!important;max-width:none!important}._tooltip_11ays_1{display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_11ays_14{color:#754d12}._compute-units_11ays_18{color:var(--compute-units-color)}._elapsed-time_11ays_22{color:var(--elapsed-time-color)}._fees_11ays_26{color:var(--fees-color)}._tips_11ays_30{color:var(--tips-color)}._label_11ays_34{font-weight:600;text-align:left}}._button_1b3a4_1{all:unset;background:var(--toggle-item-background-color);color:var(--toggle-item-text-color);font-weight:510;height:23px;padding:0 8px;display:flex;font-size:12px;line-height:16px;align-items:center;justify-content:center;user-select:none;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:not([data-disabled]):hover{background:#3e62bd52}&[data-disabled]{cursor:not-allowed;font-weight:400;filter:brightness(.7)}}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}._group-label_1cg9k_1{margin-right:8px;&._min-text-width_1cg9k_4{min-width:50px}}._group_1cg9k_1{display:inline-flex;background-color:var(--mauve-6);border-radius:4px;box-shadow:0 2px 10px var(--black-a7);&._tooltip-open_1cg9k_15{box-shadow:0 0 0 2px var(--slot-details-chart-controls-triggered);._item_1cg9k_18:focus-visible{box-shadow:unset}}}._item_1cg9k_18{all:unset;background-color:var(--toggle-item-background-color);color:var(--toggle-item-text-color);height:22px;padding:0 8px;display:flex;font-size:12px;align-items:center;justify-content:center;margin-left:1px;user-select:none;font-weight:400;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:hover{background:#3e62bd52}&[data-state=on]{background-color:#4a4a4a;color:#f0f0f0;font-weight:510}&:focus-visible{position:relative;box-shadow:0 0 0 2px var(--focus-8)}._item-color_1cg9k_65{width:4px;height:16px;margin-right:4px}}._slider_zs58s_1{width:190px;flex-grow:1;position:relative;.rt-SliderRoot{&:before{position:absolute;content:"";height:calc(100% + 4px);top:-2px;left:calc(var(--slot-start-pct) - .5px);width:1px;background:var(--toggle-item-text-color);z-index:1}&:after{position:absolute;content:"0ms";font-size:10px;height:12px;bottom:-16px;left:calc(var(--slot-start-pct) - .5px);transform:translate(-50%);color:#fff;z-index:1}span:has(>.rt-SliderThumb){z-index:2}span:has(>[aria-label=Minimum]):after{content:var(--min-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}span:has(>[aria-label=Maximum]):after{content:var(--max-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}}}._arrival-label_zs58s_68{color:#fff}._slider-label_zs58s_72{color:#fff;font-size:12px}._minimize-button_zs58s_77{position:absolute;top:4px;right:4px}._chart-control-tooltip_zs58s_83{background:var(--blue-11);color:#111113;.rt-TooltipText{font-size:12px;overflow-wrap:break-word}.rt-TooltipArrow{fill:var(--blue-11)}}._label_1q3ew_1{font-size:14px;color:#fff}._dropdownButton_1yasw_1{border-top-right-radius:0;border-bottom-right-radius:0}._input-container_1yasw_6{box-sizing:border-box;--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:0 var(--text-field-border-radius) var(--text-field-border-radius) 0;font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);width:240px;&._sm_1yasw_20{width:180px}button{box-sizing:content-box;--margin-left-override: 0px;--margin-right-override: 0px}@supports selector(:has(*)){&:has(input:focus){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){&:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}[cmdk-input]{flex:1;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));border:none;outline:none;width:100%;padding:0 var(--space-2);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);background:#0000;border-radius:0;caret-color:#6e5ed2;margin:0;&::placeholder{color:var(--gray-a10)}}}._content_1yasw_68{background:var(--gray-4);width:var(--radix-popover-trigger-width);max-height:400px;&:has(>[cmdk-list]>[cmdk-list-sizer]:not(:empty)){padding-bottom:var(--space-1)}[cmdk-list]{height:min(300px,var(--cmdk-list-height));max-height:400px;overflow:auto;overscroll-behavior:contain}[cmdk-group-heading]{user-select:none;font-size:14px;color:var(--slate-11);padding:0 8px;display:flex;align-items:center;padding:var(--space-1) var(--space-3)}[cmdk-empty],[cmdk-loading]{color:#f1f7feb5;padding-bottom:0!important}[cmdk-item],[cmdk-empty],[cmdk-loading]{content-visibility:auto;cursor:pointer;font-size:var(--font-size-2);text-wrap:nowrap;display:flex;align-items:center;gap:12px;padding:var(--space-1) var(--space-3);border-radius:4px;user-select:none;position:relative;&[data-selected=true]{background:var(--teal-5)}&[data-disabled=true]{color:var(--gray-8);cursor:not-allowed}&:active{background:var(--gray-4)}+[cmdk-item]{margin-top:4px}}}._tooltip-open_1yasw_135{outline-offset:-1px;outline:2px solid var(--slot-details-chart-controls-triggered)!important}._text_1k6sv_1{span{color:var(--gray-12);font-size:var(--font-size-2);text-wrap:nowrap;&._faded_1k6sv_7{color:var(--faded-text)}&._ellipsis_1k6sv_11{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}}._container_14qh6_1{position:absolute;z-index:3;right:5px;top:5px;display:flex;align-items:center;gap:8px;._label_14qh6_10{user-select:none;color:#60646c;font-size:12px}}#txn-bars-tooltip{z-index:3;position:absolute;background:var(--Colors-Gray-1, #111);border-radius:8px;max-height:none!important;max-width:none!important;margin:6px 8px;._state_1bdpv_11{font-weight:700;color:var(--Colors-Neutral-Neutral-10, #777b84)}span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;color:var(--color-override, #777b84)}._cu-bars_1bdpv_24{flex:1;width:0;padding:4px 0}._duration-container_1bdpv_30{flex:1;background:#363a3f80;padding:4px 0;margin:4px 0;width:0}._value-text_1bdpv_38{overflow-wrap:anywhere}._unit_1bdpv_42{font-family:Roboto Mono,monospace;margin-left:2px;flex-shrink:0;white-space:nowrap}}._separator_1pgc5_1{background:var(--row-separator-background-color)}._search-grid_gudx6_1{align-content:center}._search-label_gudx6_5{font-size:16px;font-weight:500;color:var(--slot-details-search-label-color)}._search-field_gudx6_11{width:100%}._error-text_gudx6_15{color:var(--failure-color)}._quick-search-card_gudx6_19{border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);color:var(--slot-details-quick-search-text-color)}._quick-search-header_gudx6_26{color:var(--quick-search-color);font-size:18px;svg{width:32px;height:32px;fill:var(--quick-search-color)}}._quick-search-slot_gudx6_37{font-size:12px;&._clickable_gudx6_40{cursor:pointer;color:var(--slot-details-clickable-slot-color)}&:not(._clickable_gudx6_40){cursor:not-allowed;pointer-events:none}}._quick-search-metric_gudx6_51{font-size:12px}._slot-item-group_p1cnp_1{gap:4px;padding:2px;border-radius:5px;border:1px solid var(--slot-details-my-slots-not-selected-color);border-top-width:3px;&._disabled_p1cnp_8{border:1px solid var(--slot-details-disabled-slot-border-color);border-top-width:3px}&._is-selected_p1cnp_13{border:1px solid var(--slots-list-my-slots-selected-border-color);border-top-width:3px}}._slot-item_p1cnp_1{text-decoration:none;display:flex;justify-content:center;align-items:center;padding:3px 10px;gap:10px;font-size:12px;font-weight:400;border-radius:3px;box-sizing:border-box;width:var(--item-width);background:var(--slot-details-background-color);color:var(--slot-details-color);&._selected-slot_p1cnp_35{font-weight:600;background:var(--slot-details-selected-background-color);color:var(--slot-details-selected-color)}&._skipped-slot_p1cnp_41{background:var(--slot-details-skipped-background-color)}&._skipped-slot_p1cnp_41._selected-slot_p1cnp_35{background:var(--slot-details-skipped-selected-background-color)}}._fade_p1cnp_50{position:absolute;top:0;bottom:0;width:clamp(32px,8vw,96px);pointer-events:none;&._fade-left_p1cnp_57{left:0;background:linear-gradient(to left,transparent 0%,black 100%)}&._fade-right_p1cnp_62{right:0;background:linear-gradient(to right,transparent 0%,black 100%)}}._small-icon_1vpxu_1{width:14px;height:14px}._large-icon_1vpxu_6{width:15px;height:15px}._header_1s5d9_1{font-size:14px;font-weight:600;color:var(--slot-details-stats-tertiary)}._subheader_1s5d9_7{font-size:12px;color:var(--slot-details-stats-tertiary)}._label_1s5d9_12{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap}._value_1s5d9_18{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;--popover-trigger-color: var(--slot-details-stats-secondary);--popover-trigger-hover-color: var(--slot-details-stats-primary)}._table-header_1s5d9_26{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap}._table-row-label_1s5d9_32{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-tertiary)}}._table-cell-value_1s5d9_42{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-primary)}}._grid_1s5d9_52{padding:5px 10px;border-radius:8px;border-bottom:1px solid rgba(250,250,250,.12);background:linear-gradient(0deg,#fafafa0d,#fafafa00);._label_1s5d9_12,._value_1s5d9_18{font-size:14px}._name_1s5d9_67{font-weight:600;color:#ccc;&._lg_1s5d9_70{font-size:18px;contain:inline-size;width:100%}}}._copy-button_1s5d9_79{flex-shrink:1;min-width:0;color:var(--slot-details-stats-primary)}._time-popover_1s5d9_85{flex-shrink:1;min-width:0;max-width:fit-content}._container_1w2fb_1{height:13px;border-radius:4px;._label_1w2fb_5{font-size:10px;color:var(--slot-details-stats-primary);pointer-events:none}}._clickable_1w2fb_12{appearance:none;border:none;padding:0;cursor:pointer;transition:all .3s ease;&:hover{height:15px;transform:translateY(-2px);filter:brightness(1.2);box-shadow:0 4px 8px #0006;outline:.5px solid #e5e7eb;z-index:1}}._container_id19r_1{font-size:12px;padding:0 5px}._label_id19r_6{color:var(--popover-secondary-color)}._value_id19r_10{color:var(--popover-primary-color);text-align:end}._popover-trigger_id19r_15{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;font:inherit;color:inherit}._popover-underline-overlay_id19r_23{position:absolute;inset:0;&:hover ._popover-text-underline_id19r_27{text-decoration-color:var( --popover-trigger-hover-color, var(--primary-text-color) )}}._popover-text-underline_id19r_27{color:transparent!important;text-overflow:clip;transition:text-decoration-color .2s ease;text-decoration:underline dotted var(--popover-trigger-color, var(--secondary-text-color))}._card_ybszl_1{padding:10px;border-radius:8px;border:1px solid #1c1e2b;background:#101123;color:var(--primary-text-color);._name-text_ybszl_8{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._pubkey-text_ybszl_14{flex-grow:1;min-width:390px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._narrow-screen_ybszl_21{flex-grow:0;min-width:inherit}}&._two-away_ybszl_27{border:1px solid #2a2c38;background:#131524;opacity:1.6}&._one-away_ybszl_33{border:1px solid #295060;background:#142432}._time-till_ybszl_38{min-width:250px;&._narrow-screen_ybszl_21{min-width:inherit}}}._my-slots_kxi8u_1{border-color:#2a7edfa6!important;box-shadow:inset 0 4px #2a7edfa6;background:#2a7edf33}._scroll_kxi8u_7{touch-action:none;& *{touch-action:none}span{user-select:text}}._card_zlaiw_1{border-radius:8px;border:1px solid #30323a;background:#151b25;padding:9px 10px 5px;&._late-vote_zlaiw_7{border:1px solid #2f1e7c;background:#120f2e}&._skipped_zlaiw_12{border:1px solid rgba(255,71,71,.38);background:#bd3e3e26}}._grid_1feao_1{display:grid;grid:auto-flow / minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto);overflow-x:auto;min-width:80px;touch-action:pan-x;& *{touch-action:pan-x}scrollbar-width:thin;scrollbar-color:#cbcbcb20 #cbcbcb01;width:100%;&._firedancer-grid_1feao_16{grid:auto-flow / minMax(80px,auto) minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto)}}._header-text_1feao_24{font-size:12px;color:var(--slot-card-header-text-color);padding:3px 0}._vote-latency-header_1feao_30{color:var(--vote-latency-color)}._votes-header_1feao_33{color:var(--votes-color)}._non-votes-header_1feao_36{color:var(--success-color)}._fees-header_1feao_39{color:var(--fees-color)}._tips-header_1feao_42{color:var(--tips-color)}._compute-units-header_1feao_45{color:var(--compute-units-color);padding:0}._compute-units-pct_1feao_50{width:50px;display:inline-block}._row-text_1feao_55{white-space:nowrap;color:var(--slot-card-section-secondary-color);font-variant-numeric:tabular-nums;border-top:1px solid rgba(250,250,250,.12);padding:1px 0 0;&._active_1feao_62{background:var(--container-background-color);color:var(--slot-card-section-primary-color)}}._slot-text_1feao_68{color:var(--slot-card-section-primary-color);border-right:1px solid rgba(250,250,250,.12);padding-right:5px}.CircularProgressbar{width:100%;vertical-align:middle}.CircularProgressbar .CircularProgressbar-path{stroke:#3e98c7;stroke-linecap:round;-webkit-transition:stroke-dashoffset .5s ease 0s;transition:stroke-dashoffset .5s ease 0s}.CircularProgressbar .CircularProgressbar-trail{stroke:#d6d6d6;stroke-linecap:round}.CircularProgressbar .CircularProgressbar-text{fill:#3e98c7;font-size:20px;dominant-baseline:middle;text-anchor:middle}.CircularProgressbar .CircularProgressbar-background{fill:#d6d6d6}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background{fill:#3e98c7}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text{fill:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path{stroke:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail{stroke:transparent}._slot-text_j49it_1{user-select:text;a:link{text-decoration:none;color:var(--slot-text-link-color)}a:visited{text-decoration:none;color:var(--slot-text-visited-link-color)}a:active,a:hover{text-decoration:none;color:var(--slot-text-active-link-color)}}._my-slots_476vd_1{color:var(--summary-my-slots-color);border-radius:10px;background:var(--container-background-color);padding:2px 5px}._summary-container_476vd_8{width:40%;min-width:500px}._name_476vd_13{color:var(--summary-primary-text-color);font-size:24px;min-width:30px;line-height:30px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._you_476vd_22{color:var(--gray-12)}&._mobile_476vd_26{font-size:inherit;line-height:16px}}._primary-text_476vd_32{font-style:normal;color:var(--summary-primary-text-color);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._secondary-text_476vd_40{color:var(--summary-secondary-text-color);>span{line-height:normal}}._divider_476vd_47{color:var(--summary-primary-text-color)}._mobile_476vd_26{font-size:12px}._firedancer_476vd_55{color:var(--summary-firedancer-text-color)}._frankendancer_476vd_59{color:var(--summary-frankendancer-text-color)}._agave_476vd_63{color:var(--summary-agave-text-color)}._jito_476vd_67{color:var(--summary-jito-text-color)}._paladin_476vd_71{color:var(--summary-paladin-text-color)}._bam_476vd_75{color:var(--summary-bam-text-color)}._sig_476vd_79{color:var(--summary-sig-text-color)}._rakurai_476vd_83{background:var(--summary-rakurai-text-color);background-clip:text;color:transparent}._harmonic_476vd_89{color:var(--summary-harmonic-text-color)}._major-minor-version-text_476vd_93{flex-shrink:0}._remaining-version-text_476vd_97{min-width:1em;flex-shrink:2}._time-ago_476vd_102{text-align:left;&._right-aligned_476vd_105{text-align:right}}._arrow-dropdown_mvcj2_1{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px}._card_wweyx_1{border-radius:8px;border:2px solid rgba(96,215,193,.65);background:#1b2432;box-shadow:0 0 4px #1ce7c291;padding:10px}._preload_1uziq_1{display:none}._container_1hof6_1{display:flex;justify-content:center;._button_1hof6_5{position:absolute;width:115px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._label_14v9a_1{color:#737373}._value_14v9a_5{color:var(--next-slot-value-color);min-width:50px}._container_bc437_1{margin-bottom:16px;margin-left:24px;container:search / inline-size;input:placeholder-shown{text-overflow:ellipsis}}@media (max-width: 700px){._container_bc437_1{margin-bottom:8px;margin-left:0}}._search-box_bc437_18{justify-self:"center";min-width:400px}@container search (width < 600px){._search-box_bc437_18{min-width:100%}}._label_bc437_29{color:"#766A6A"}._search-button_bc437_33{display:flex;height:100%;padding:4px 10px;align-items:center;gap:8px;align-self:stretch;border-radius:8px;&:focus{box-shadow:0 0 0 2px #000}._label_bc437_29{color:#717171}&:hover,&[data-state=on]{._label_bc437_29{color:#a1a1a1}&._disabled_bc437_56{._label_bc437_29{color:#717171}}}}._my-slots_bc437_64{border-radius:8px;border:1px solid #1c4f8f;border-top-width:3px;background:#0d1c36;color:#4497f7;&:hover{border-color:#2a7edf;background:#0d3059;color:#2a7edf}&[data-state=on]{border-color:#2a7edf;background:#073c7b;color:#2a7edf}}._late-vote-slots_bc437_84{border:1px solid #2f1e7c;background:#130f33;color:#896fec;&:hover{border-color:#341f92;background:#1b1450;color:#896fec}&[data-state=on]{border-color:#5530e4;background:#38218f;color:#896fec}}._skipped-slots_bc437_102{border:1px solid #461e1f;background:#1f0a0b;color:var(--failure-color);&:hover{border-color:#752626;background:#321112}&[data-state=on]{border-color:#823737;background:#501717}}._disabled_bc437_56{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color);&:hover{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color)}}._skip-rate-label_bc437_130{color:var(--skip-rate-label-color);line-height:normal}._skip-rate-value_bc437_135{color:var(--failure-color);line-height:normal}._header-text_n52ov_1{color:var(--primary-text-color);font-size:18px}._storage-stats-container_n52ov_6{contain:size}._root_n52ov_11{min-height:0;thead{th{font-size:12px;font-weight:400;color:var(--gossip-table-header-color)}}tbody{th,td{font-size:14px;color:var(--gossip-table-body-color)}}td,th{white-space:nowrap}td{text-align:right}}._align-right_n52ov_39{text-align:right}._label_1nl74_1{color:#a2a2a2;font-size:14px}._value_1nl74_6{color:#9f9f9f;font-size:28px}._header-text_uidb2_1{color:var(--primary-text-color);font-size:18px}div:has(>._tooltip_uidb2_8){width:1px;height:1px}._tooltip_uidb2_8{width:fit-content;transform:translate(calc(-100% - 5px));padding:4px;background:#131923;border:1px solid #2e343e;border-radius:4px 8px;color:var(--regular-text-color);span{white-space:nowrap}}._header-text_1ozln_1{color:var(--primary-text-color);font-size:18px}._peer-table_1ozln_6{thead{tr{font-size:12px;color:var(--gossip-table-header-color)}}tbody{tr{font-size:14px;color:var(--gossip-table-body-color)}}}._header-cell_1ozln_22{padding:var(--table-cell-padding)}._header-separator_1ozln_26{background:var(--gray-7)}._body-cell_1ozln_30{outline-offset:-2px;&._selected_1ozln_33{outline:1px dashed var(--gray-10);&._copied_1ozln_36{outline:1px dashed var(--gray-11)}}}._header-text_skmjj_1{color:var(--primary-text-color);font-size:18px}._total-text_skmjj_6{color:var(--gray-7);font-size:18px}._throughput-text_skmjj_11{color:var(--gray-10);font-size:18px}._leaf_skmjj_16{border-radius:2px;cursor:pointer;background-color:var(--leaf-color);&:hover{background-color:color-mix(in hsl,var(--leaf-color),#ffffff1a)}._leaf-content_skmjj_24{font-size:10px;._name_skmjj_27{color:#ccc;align-self:stretch;&._large_skmjj_30{font-size:12px}}._stats_skmjj_34{color:var(--table-body-color)}}}._tooltip_skmjj_40{.rt-TooltipArrow{display:none!important}}._axis-text_juf3d_1{color:var(--transaction-axis-text-color);font-size:8px;line-height:normal}._container_muoex_1{font-size:10px;color:var(--regular-text-color)}._label_muoex_6{font-size:12px;line-height:normal;text-wrap:nowrap}._value_muoex_12{line-height:normal;color:var(--value-color, var(--regular-text-color));overflow:hidden;&._small_muoex_17{font-size:18px;font-weight:500}&._medium_muoex_21{font-size:28px;letter-spacing:-1.12px}&._large_muoex_25{font-size:32px;line-height:16px}}._append-value_muoex_31{line-height:normal;color:var(--append-value-color)}._vote-tps_kqvrt_1{min-width:90px}._stat-row_1ia1g_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;&:first-child{flex-grow:0;min-width:80px}}}._stat-row_11bim_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1;min-width:180px}}._stat-row_kmlhn_1{display:flex;flex-wrap:wrap;gap:8px;width:100%;>div{flex:1 1 auto;min-width:180px}}._progress_kmlhn_13{min-width:140px}._chart_7b67t_1{padding-top:0;padding-bottom:0;vertical-align:middle}._table_7b67t_7 table tbody ._row_7b67t_7{&._total-row_7b67t_8{border-top:1px solid rgba(250,250,250,.5)}th,td{color:var(--table-body-color)}}._group-header_1lbrc_1{text-align:center;padding:5px}._header_1lbrc_6{th{vertical-align:bottom;&._wrap_1lbrc_9{white-space:normal}}}._table_1lbrc_15{table{table-layout:fixed;._data-row_1lbrc_19{._green_1lbrc_20{color:var(--green-9)}._red_1lbrc_24{color:var(--red-9)}td{.rt-Text{line-height:inherit}color:var(--table-body-color);text-align:left;&[align=right]{text-align:right}vertical-align:middle;&._pct-gradient_1lbrc_43{color:color-mix(in srgb,var(--tile-busy-green-color),var(--tile-busy-red-color) var(--pct))}&._no-padding_1lbrc_51{padding-top:0;padding-bottom:0}._increment-text_1lbrc_56{min-width:5ch;display:inline-block;font-variant-numeric:tabular-nums;&._low-increment_1lbrc_61{color:var(--low-increment-text-color)}&._mid-increment_1lbrc_64{color:var(--mid-increment-text-color)}&._high-increment_1lbrc_67{color:var(--high-increment-text-color)}}}}tr{border:solid rgba(250,250,250,.12);border-width:1px 0px}._light-border-bottom_1lbrc_79{border-bottom:1px solid rgba(250,250,250,.36)}._right-border_1lbrc_83{border-right:1px solid rgba(250,250,250,.36)}td._right-border_1lbrc_83{padding-right:10px}td,th{box-shadow:none}}}._table-description-dialog_1shm8_1{overflow-y:auto;._table_1shm8_1{padding:var(--space-3) 8px;--table-cell-padding: 5px;._th_1shm8_8{font-size:12px;font-weight:400;color:var(--table-header-color)}._tr_1shm8_14{font-size:14px;color:var(--table-body-color);&:last-child td{box-shadow:none}._name_1shm8_22{white-space:nowrap}}}._close-button_1shm8_28{cursor:pointer}}._slot-label-card_1pson_1{border-radius:3px;padding:2px 3px;background-color:var(--gray-3);color:var(--slot-timeline-text-color);.rt-Text{font-size:12px;line-height:normal}}._slot-label-name_1pson_13{flex-shrink:100000000}._slot-label-dt_1pson_16{display:flex;white-space:pre;._dt-sign_1pson_19{line-height:14px}}._slot-bar_1pson_24{border-radius:2px;background:var(--bar-color, #3f434b);pointer-events:none;&._dim_1pson_29{background:#2d3138}}._slot-bar-track_1pson_34{height:90px}._next-leader-container_1pson_38{container-type:inline-size;container-name:next-leader-container}@container next-leader-container (width < 300px){._next-leader-timer-label_1pson_44{display:none}}@container next-leader-container (width < 130px){._next-leader-timer-container_1pson_50{display:none}}._stat-row_1xsdi_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;min-width:100px;&._storage-stat-container_1xsdi_10{min-width:160px}}}._trailing_1bhfc_1{color:var(--gray-9)}._fraction_1bhfc_5{color:var(--gray-9);text-align:center}._fraction-line_1bhfc_10{align-self:stretch;border-color:var(--gray-9);margin:0}._cards_hn4o1_1{grid-template-columns:minmax(300px,1fr)}._txns-card_hn4o1_5{grid-column:1 / -1}@media (min-width: 900px){._cards_hn4o1_1{grid-template-columns:1fr 1fr}._txns-card_hn4o1_5{grid-column:1 / -1}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:2}}}@media (min-width: 1512px){._cards_hn4o1_1{grid-template-columns:1fr 1fr 1fr}._txns-card_hn4o1_5{grid-column:span 2}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:span 3}}}@media (min-width: 1850px){._cards_hn4o1_1{grid-template-columns:1fr 1.5fr 1.7fr 2fr;&._frankendancer_hn4o1_18{grid-template-columns:1fr 1fr 1fr}}._txns-card_hn4o1_5{grid-column:1 / -1}}body{margin:0;min-width:320px;min-height:100vh} +@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2) format("woff2"),url(/assets/inter-tight-latin-400-normal-BLrFJfvD.woff) format("woff")}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-latin-400-normal-GekRknry.woff2) format("woff2"),url(/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff) format("woff")}:root,.light,.light-theme{--gray-1: #fcfcfc;--gray-2: #f9f9f9;--gray-3: #f0f0f0;--gray-4: #e8e8e8;--gray-5: #e0e0e0;--gray-6: #d9d9d9;--gray-7: #cecece;--gray-8: #bbbbbb;--gray-9: #8d8d8d;--gray-10: #838383;--gray-11: #646464;--gray-12: #202020;--gray-a1: #00000003;--gray-a2: #00000006;--gray-a3: #0000000f;--gray-a4: #00000017;--gray-a5: #0000001f;--gray-a6: #00000026;--gray-a7: #00000031;--gray-a8: #00000044;--gray-a9: #00000072;--gray-a10: #0000007c;--gray-a11: #0000009b;--gray-a12: #000000df;--mauve-1: #fdfcfd;--mauve-2: #faf9fb;--mauve-3: #f2eff3;--mauve-4: #eae7ec;--mauve-5: #e3dfe6;--mauve-6: #dbd8e0;--mauve-7: #d0cdd7;--mauve-8: #bcbac7;--mauve-9: #8e8c99;--mauve-10: #84828e;--mauve-11: #65636d;--mauve-12: #211f26;--mauve-a1: #55005503;--mauve-a2: #2b005506;--mauve-a3: #30004010;--mauve-a4: #20003618;--mauve-a5: #20003820;--mauve-a6: #14003527;--mauve-a7: #10003332;--mauve-a8: #08003145;--mauve-a9: #05001d73;--mauve-a10: #0500197d;--mauve-a11: #0400119c;--mauve-a12: #020008e0;--slate-1: #fcfcfd;--slate-2: #f9f9fb;--slate-3: #f0f0f3;--slate-4: #e8e8ec;--slate-5: #e0e1e6;--slate-6: #d9d9e0;--slate-7: #cdced6;--slate-8: #b9bbc6;--slate-9: #8b8d98;--slate-10: #80838d;--slate-11: #60646c;--slate-12: #1c2024;--slate-a1: #00005503;--slate-a2: #00005506;--slate-a3: #0000330f;--slate-a4: #00002d17;--slate-a5: #0009321f;--slate-a6: #00002f26;--slate-a7: #00062e32;--slate-a8: #00083046;--slate-a9: #00051d74;--slate-a10: #00071b7f;--slate-a11: #0007149f;--slate-a12: #000509e3;--sage-1: #fbfdfc;--sage-2: #f7f9f8;--sage-3: #eef1f0;--sage-4: #e6e9e8;--sage-5: #dfe2e0;--sage-6: #d7dad9;--sage-7: #cbcfcd;--sage-8: #b8bcba;--sage-9: #868e8b;--sage-10: #7c8481;--sage-11: #5f6563;--sage-12: #1a211e;--sage-a1: #00804004;--sage-a2: #00402008;--sage-a3: #002d1e11;--sage-a4: #001f1519;--sage-a5: #00180820;--sage-a6: #00140d28;--sage-a7: #00140a34;--sage-a8: #000f0847;--sage-a9: #00110b79;--sage-a10: #00100a83;--sage-a11: #000a07a0;--sage-a12: #000805e5;--olive-1: #fcfdfc;--olive-2: #f8faf8;--olive-3: #eff1ef;--olive-4: #e7e9e7;--olive-5: #dfe2df;--olive-6: #d7dad7;--olive-7: #cccfcc;--olive-8: #b9bcb8;--olive-9: #898e87;--olive-10: #7f847d;--olive-11: #60655f;--olive-12: #1d211c;--olive-a1: #00550003;--olive-a2: #00490007;--olive-a3: #00200010;--olive-a4: #00160018;--olive-a5: #00180020;--olive-a6: #00140028;--olive-a7: #000f0033;--olive-a8: #040f0047;--olive-a9: #050f0078;--olive-a10: #040e0082;--olive-a11: #020a00a0;--olive-a12: #010600e3;--sand-1: #fdfdfc;--sand-2: #f9f9f8;--sand-3: #f1f0ef;--sand-4: #e9e8e6;--sand-5: #e2e1de;--sand-6: #dad9d6;--sand-7: #cfceca;--sand-8: #bcbbb5;--sand-9: #8d8d86;--sand-10: #82827c;--sand-11: #63635e;--sand-12: #21201c;--sand-a1: #55550003;--sand-a2: #25250007;--sand-a3: #20100010;--sand-a4: #1f150019;--sand-a5: #1f180021;--sand-a6: #19130029;--sand-a7: #19140035;--sand-a8: #1915014a;--sand-a9: #0f0f0079;--sand-a10: #0c0c0083;--sand-a11: #080800a1;--sand-a12: #060500e3;--amber-1: #fefdfb;--amber-2: #fefbe9;--amber-3: #fff7c2;--amber-4: #ffee9c;--amber-5: #fbe577;--amber-6: #f3d673;--amber-7: #e9c162;--amber-8: #e2a336;--amber-9: #ffc53d;--amber-10: #ffba18;--amber-11: #ab6400;--amber-12: #4f3422;--amber-a1: #c0800004;--amber-a2: #f4d10016;--amber-a3: #ffde003d;--amber-a4: #ffd40063;--amber-a5: #f8cf0088;--amber-a6: #eab5008c;--amber-a7: #dc9b009d;--amber-a8: #da8a00c9;--amber-a9: #ffb300c2;--amber-a10: #ffb300e7;--amber-a11: #ab6400;--amber-a12: #341500dd;--blue-1: #fbfdff;--blue-2: #f4faff;--blue-3: #e6f4fe;--blue-4: #d5efff;--blue-5: #c2e5ff;--blue-6: #acd8fc;--blue-7: #8ec8f6;--blue-8: #5eb1ef;--blue-9: #0090ff;--blue-10: #0588f0;--blue-11: #0d74ce;--blue-12: #113264;--blue-a1: #0080ff04;--blue-a2: #008cff0b;--blue-a3: #008ff519;--blue-a4: #009eff2a;--blue-a5: #0093ff3d;--blue-a6: #0088f653;--blue-a7: #0083eb71;--blue-a8: #0084e6a1;--blue-a9: #0090ff;--blue-a10: #0086f0fa;--blue-a11: #006dcbf2;--blue-a12: #002359ee;--bronze-1: #fdfcfc;--bronze-2: #fdf7f5;--bronze-3: #f6edea;--bronze-4: #efe4df;--bronze-5: #e7d9d3;--bronze-6: #dfcdc5;--bronze-7: #d3bcb3;--bronze-8: #c2a499;--bronze-9: #a18072;--bronze-10: #957468;--bronze-11: #7d5e54;--bronze-12: #43302b;--bronze-a1: #55000003;--bronze-a2: #cc33000a;--bronze-a3: #92250015;--bronze-a4: #80280020;--bronze-a5: #7423002c;--bronze-a6: #7324003a;--bronze-a7: #6c1f004c;--bronze-a8: #671c0066;--bronze-a9: #551a008d;--bronze-a10: #4c150097;--bronze-a11: #3d0f00ab;--bronze-a12: #1d0600d4;--brown-1: #fefdfc;--brown-2: #fcf9f6;--brown-3: #f6eee7;--brown-4: #f0e4d9;--brown-5: #ebdaca;--brown-6: #e4cdb7;--brown-7: #dcbc9f;--brown-8: #cea37e;--brown-9: #ad7f58;--brown-10: #a07553;--brown-11: #815e46;--brown-12: #3e332e;--brown-a1: #aa550003;--brown-a2: #aa550009;--brown-a3: #a04b0018;--brown-a4: #9b4a0026;--brown-a5: #9f4d0035;--brown-a6: #a04e0048;--brown-a7: #a34e0060;--brown-a8: #9f4a0081;--brown-a9: #823c00a7;--brown-a10: #723300ac;--brown-a11: #522100b9;--brown-a12: #140600d1;--crimson-1: #fffcfd;--crimson-2: #fef7f9;--crimson-3: #ffe9f0;--crimson-4: #fedce7;--crimson-5: #facedd;--crimson-6: #f3bed1;--crimson-7: #eaacc3;--crimson-8: #e093b2;--crimson-9: #e93d82;--crimson-10: #df3478;--crimson-11: #cb1d63;--crimson-12: #621639;--crimson-a1: #ff005503;--crimson-a2: #e0004008;--crimson-a3: #ff005216;--crimson-a4: #f8005123;--crimson-a5: #e5004f31;--crimson-a6: #d0004b41;--crimson-a7: #bf004753;--crimson-a8: #b6004a6c;--crimson-a9: #e2005bc2;--crimson-a10: #d70056cb;--crimson-a11: #c4004fe2;--crimson-a12: #530026e9;--cyan-1: #fafdfe;--cyan-2: #f2fafb;--cyan-3: #def7f9;--cyan-4: #caf1f6;--cyan-5: #b5e9f0;--cyan-6: #9ddde7;--cyan-7: #7dcedc;--cyan-8: #3db9cf;--cyan-9: #00a2c7;--cyan-10: #0797b9;--cyan-11: #107d98;--cyan-12: #0d3c48;--cyan-a1: #0099cc05;--cyan-a2: #009db10d;--cyan-a3: #00c2d121;--cyan-a4: #00bcd435;--cyan-a5: #01b4cc4a;--cyan-a6: #00a7c162;--cyan-a7: #009fbb82;--cyan-a8: #00a3c0c2;--cyan-a9: #00a2c7;--cyan-a10: #0094b7f8;--cyan-a11: #007491ef;--cyan-a12: #00323ef2;--gold-1: #fdfdfc;--gold-2: #faf9f2;--gold-3: #f2f0e7;--gold-4: #eae6db;--gold-5: #e1dccf;--gold-6: #d8d0bf;--gold-7: #cbc0aa;--gold-8: #b9a88d;--gold-9: #978365;--gold-10: #8c7a5e;--gold-11: #71624b;--gold-12: #3b352b;--gold-a1: #55550003;--gold-a2: #9d8a000d;--gold-a3: #75600018;--gold-a4: #6b4e0024;--gold-a5: #60460030;--gold-a6: #64440040;--gold-a7: #63420055;--gold-a8: #633d0072;--gold-a9: #5332009a;--gold-a10: #492d00a1;--gold-a11: #362100b4;--gold-a12: #130c00d4;--grass-1: #fbfefb;--grass-2: #f5fbf5;--grass-3: #e9f6e9;--grass-4: #daf1db;--grass-5: #c9e8ca;--grass-6: #b2ddb5;--grass-7: #94ce9a;--grass-8: #65ba74;--grass-9: #46a758;--grass-10: #3e9b4f;--grass-11: #2a7e3b;--grass-12: #203c25;--grass-a1: #00c00004;--grass-a2: #0099000a;--grass-a3: #00970016;--grass-a4: #009f0725;--grass-a5: #00930536;--grass-a6: #008f0a4d;--grass-a7: #018b0f6b;--grass-a8: #008d199a;--grass-a9: #008619b9;--grass-a10: #007b17c1;--grass-a11: #006514d5;--grass-a12: #002006df;--green-1: #fbfefc;--green-2: #f4fbf6;--green-3: #e6f6eb;--green-4: #d6f1df;--green-5: #c4e8d1;--green-6: #adddc0;--green-7: #8eceaa;--green-8: #5bb98b;--green-9: #30a46c;--green-10: #2b9a66;--green-11: #218358;--green-12: #193b2d;--green-a1: #00c04004;--green-a2: #00a32f0b;--green-a3: #00a43319;--green-a4: #00a83829;--green-a5: #019c393b;--green-a6: #00963c52;--green-a7: #00914071;--green-a8: #00924ba4;--green-a9: #008f4acf;--green-a10: #008647d4;--green-a11: #00713fde;--green-a12: #002616e6;--indigo-1: #fdfdfe;--indigo-2: #f7f9ff;--indigo-3: #edf2fe;--indigo-4: #e1e9ff;--indigo-5: #d2deff;--indigo-6: #c1d0ff;--indigo-7: #abbdf9;--indigo-8: #8da4ef;--indigo-9: #3e63dd;--indigo-10: #3358d4;--indigo-11: #3a5bc7;--indigo-12: #1f2d5c;--indigo-a1: #00008002;--indigo-a2: #0040ff08;--indigo-a3: #0047f112;--indigo-a4: #0044ff1e;--indigo-a5: #0044ff2d;--indigo-a6: #003eff3e;--indigo-a7: #0037ed54;--indigo-a8: #0034dc72;--indigo-a9: #0031d2c1;--indigo-a10: #002ec9cc;--indigo-a11: #002bb7c5;--indigo-a12: #001046e0;--iris-1: #fdfdff;--iris-2: #f8f8ff;--iris-3: #f0f1fe;--iris-4: #e6e7ff;--iris-5: #dadcff;--iris-6: #cbcdff;--iris-7: #b8baf8;--iris-8: #9b9ef0;--iris-9: #5b5bd6;--iris-10: #5151cd;--iris-11: #5753c6;--iris-12: #272962;--iris-a1: #0000ff02;--iris-a2: #0000ff07;--iris-a3: #0011ee0f;--iris-a4: #000bff19;--iris-a5: #000eff25;--iris-a6: #000aff34;--iris-a7: #0008e647;--iris-a8: #0008d964;--iris-a9: #0000c0a4;--iris-a10: #0000b6ae;--iris-a11: #0600abac;--iris-a12: #000246d8;--jade-1: #fbfefd;--jade-2: #f4fbf7;--jade-3: #e6f7ed;--jade-4: #d6f1e3;--jade-5: #c3e9d7;--jade-6: #acdec8;--jade-7: #8bceb6;--jade-8: #56ba9f;--jade-9: #29a383;--jade-10: #26997b;--jade-11: #208368;--jade-12: #1d3b31;--jade-a1: #00c08004;--jade-a2: #00a3460b;--jade-a3: #00ae4819;--jade-a4: #00a85129;--jade-a5: #00a2553c;--jade-a6: #009a5753;--jade-a7: #00945f74;--jade-a8: #00976ea9;--jade-a9: #00916bd6;--jade-a10: #008764d9;--jade-a11: #007152df;--jade-a12: #002217e2;--lime-1: #fcfdfa;--lime-2: #f8faf3;--lime-3: #eef6d6;--lime-4: #e2f0bd;--lime-5: #d3e7a6;--lime-6: #c2da91;--lime-7: #abc978;--lime-8: #8db654;--lime-9: #bdee63;--lime-10: #b0e64c;--lime-11: #5c7c2f;--lime-12: #37401c;--lime-a1: #66990005;--lime-a2: #6b95000c;--lime-a3: #96c80029;--lime-a4: #8fc60042;--lime-a5: #81bb0059;--lime-a6: #72aa006e;--lime-a7: #61990087;--lime-a8: #559200ab;--lime-a9: #93e4009c;--lime-a10: #8fdc00b3;--lime-a11: #375f00d0;--lime-a12: #1e2900e3;--mint-1: #f9fefd;--mint-2: #f2fbf9;--mint-3: #ddf9f2;--mint-4: #c8f4e9;--mint-5: #b3ecde;--mint-6: #9ce0d0;--mint-7: #7ecfbd;--mint-8: #4cbba5;--mint-9: #86ead4;--mint-10: #7de0cb;--mint-11: #027864;--mint-12: #16433c;--mint-a1: #00d5aa06;--mint-a2: #00b18a0d;--mint-a3: #00d29e22;--mint-a4: #00cc9937;--mint-a5: #00c0914c;--mint-a6: #00b08663;--mint-a7: #00a17d81;--mint-a8: #009e7fb3;--mint-a9: #00d3a579;--mint-a10: #00c39982;--mint-a11: #007763fd;--mint-a12: #00312ae9;--orange-1: #fefcfb;--orange-2: #fff7ed;--orange-3: #ffefd6;--orange-4: #ffdfb5;--orange-5: #ffd19a;--orange-6: #ffc182;--orange-7: #f5ae73;--orange-8: #ec9455;--orange-9: #f76b15;--orange-10: #ef5f00;--orange-11: #cc4e00;--orange-12: #582d1d;--orange-a1: #c0400004;--orange-a2: #ff8e0012;--orange-a3: #ff9c0029;--orange-a4: #ff91014a;--orange-a5: #ff8b0065;--orange-a6: #ff81007d;--orange-a7: #ed6c008c;--orange-a8: #e35f00aa;--orange-a9: #f65e00ea;--orange-a10: #ef5f00;--orange-a11: #cc4e00;--orange-a12: #431200e2;--pink-1: #fffcfe;--pink-2: #fef7fb;--pink-3: #fee9f5;--pink-4: #fbdcef;--pink-5: #f6cee7;--pink-6: #efbfdd;--pink-7: #e7acd0;--pink-8: #dd93c2;--pink-9: #d6409f;--pink-10: #cf3897;--pink-11: #c2298a;--pink-12: #651249;--pink-a1: #ff00aa03;--pink-a2: #e0008008;--pink-a3: #f4008c16;--pink-a4: #e2008b23;--pink-a5: #d1008331;--pink-a6: #c0007840;--pink-a7: #b6006f53;--pink-a8: #af006f6c;--pink-a9: #c8007fbf;--pink-a10: #c2007ac7;--pink-a11: #b60074d6;--pink-a12: #59003bed;--plum-1: #fefcff;--plum-2: #fdf7fd;--plum-3: #fbebfb;--plum-4: #f7def8;--plum-5: #f2d1f3;--plum-6: #e9c2ec;--plum-7: #deade3;--plum-8: #cf91d8;--plum-9: #ab4aba;--plum-10: #a144af;--plum-11: #953ea3;--plum-12: #53195d;--plum-a1: #aa00ff03;--plum-a2: #c000c008;--plum-a3: #cc00cc14;--plum-a4: #c200c921;--plum-a5: #b700bd2e;--plum-a6: #a400b03d;--plum-a7: #9900a852;--plum-a8: #9000a56e;--plum-a9: #89009eb5;--plum-a10: #7f0092bb;--plum-a11: #730086c1;--plum-a12: #40004be6;--purple-1: #fefcfe;--purple-2: #fbf7fe;--purple-3: #f7edfe;--purple-4: #f2e2fc;--purple-5: #ead5f9;--purple-6: #e0c4f4;--purple-7: #d1afec;--purple-8: #be93e4;--purple-9: #8e4ec6;--purple-10: #8347b9;--purple-11: #8145b5;--purple-12: #402060;--purple-a1: #aa00aa03;--purple-a2: #8000e008;--purple-a3: #8e00f112;--purple-a4: #8d00e51d;--purple-a5: #8000db2a;--purple-a6: #7a01d03b;--purple-a7: #6d00c350;--purple-a8: #6600c06c;--purple-a9: #5c00adb1;--purple-a10: #53009eb8;--purple-a11: #52009aba;--purple-a12: #250049df;--red-1: #fffcfc;--red-2: #fff7f7;--red-3: #feebec;--red-4: #ffdbdc;--red-5: #ffcdce;--red-6: #fdbdbe;--red-7: #f4a9aa;--red-8: #eb8e90;--red-9: #e5484d;--red-10: #dc3e42;--red-11: #ce2c31;--red-12: #641723;--red-a1: #ff000003;--red-a2: #ff000008;--red-a3: #f3000d14;--red-a4: #ff000824;--red-a5: #ff000632;--red-a6: #f8000442;--red-a7: #df000356;--red-a8: #d2000571;--red-a9: #db0007b7;--red-a10: #d10005c1;--red-a11: #c40006d3;--red-a12: #55000de8;--ruby-1: #fffcfd;--ruby-2: #fff7f8;--ruby-3: #feeaed;--ruby-4: #ffdce1;--ruby-5: #ffced6;--ruby-6: #f8bfc8;--ruby-7: #efacb8;--ruby-8: #e592a3;--ruby-9: #e54666;--ruby-10: #dc3b5d;--ruby-11: #ca244d;--ruby-12: #64172b;--ruby-a1: #ff005503;--ruby-a2: #ff002008;--ruby-a3: #f3002515;--ruby-a4: #ff002523;--ruby-a5: #ff002a31;--ruby-a6: #e4002440;--ruby-a7: #ce002553;--ruby-a8: #c300286d;--ruby-a9: #db002cb9;--ruby-a10: #d2002cc4;--ruby-a11: #c10030db;--ruby-a12: #550016e8;--sky-1: #f9feff;--sky-2: #f1fafd;--sky-3: #e1f6fd;--sky-4: #d1f0fa;--sky-5: #bee7f5;--sky-6: #a9daed;--sky-7: #8dcae3;--sky-8: #60b3d7;--sky-9: #7ce2fe;--sky-10: #74daf8;--sky-11: #00749e;--sky-12: #1d3e56;--sky-a1: #00d5ff06;--sky-a2: #00a4db0e;--sky-a3: #00b3ee1e;--sky-a4: #00ace42e;--sky-a5: #00a1d841;--sky-a6: #0092ca56;--sky-a7: #0089c172;--sky-a8: #0085bf9f;--sky-a9: #00c7fe83;--sky-a10: #00bcf38b;--sky-a11: #00749e;--sky-a12: #002540e2;--teal-1: #fafefd;--teal-2: #f3fbf9;--teal-3: #e0f8f3;--teal-4: #ccf3ea;--teal-5: #b8eae0;--teal-6: #a1ded2;--teal-7: #83cdc1;--teal-8: #53b9ab;--teal-9: #12a594;--teal-10: #0d9b8a;--teal-11: #008573;--teal-12: #0d3d38;--teal-a1: #00cc9905;--teal-a2: #00aa800c;--teal-a3: #00c69d1f;--teal-a4: #00c39633;--teal-a5: #00b49047;--teal-a6: #00a6855e;--teal-a7: #0099807c;--teal-a8: #009783ac;--teal-a9: #009e8ced;--teal-a10: #009684f2;--teal-a11: #008573;--teal-a12: #00332df2;--tomato-1: #fffcfc;--tomato-2: #fff8f7;--tomato-3: #feebe7;--tomato-4: #ffdcd3;--tomato-5: #ffcdc2;--tomato-6: #fdbdaf;--tomato-7: #f5a898;--tomato-8: #ec8e7b;--tomato-9: #e54d2e;--tomato-10: #dd4425;--tomato-11: #d13415;--tomato-12: #5c271f;--tomato-a1: #ff000003;--tomato-a2: #ff200008;--tomato-a3: #f52b0018;--tomato-a4: #ff35002c;--tomato-a5: #ff2e003d;--tomato-a6: #f92d0050;--tomato-a7: #e7280067;--tomato-a8: #db250084;--tomato-a9: #df2600d1;--tomato-a10: #d72400da;--tomato-a11: #cd2200ea;--tomato-a12: #460900e0;--violet-1: #fdfcfe;--violet-2: #faf8ff;--violet-3: #f4f0fe;--violet-4: #ebe4ff;--violet-5: #e1d9ff;--violet-6: #d4cafe;--violet-7: #c2b5f5;--violet-8: #aa99ec;--violet-9: #6e56cf;--violet-10: #654dc4;--violet-11: #6550b9;--violet-12: #2f265f;--violet-a1: #5500aa03;--violet-a2: #4900ff07;--violet-a3: #4400ee0f;--violet-a4: #4300ff1b;--violet-a5: #3600ff26;--violet-a6: #3100fb35;--violet-a7: #2d01dd4a;--violet-a8: #2b00d066;--violet-a9: #2400b7a9;--violet-a10: #2300abb2;--violet-a11: #1f0099af;--violet-a12: #0b0043d9;--yellow-1: #fdfdf9;--yellow-2: #fefce9;--yellow-3: #fffab8;--yellow-4: #fff394;--yellow-5: #ffe770;--yellow-6: #f3d768;--yellow-7: #e4c767;--yellow-8: #d5ae39;--yellow-9: #ffe629;--yellow-10: #ffdc00;--yellow-11: #9e6c00;--yellow-12: #473b1f;--yellow-a1: #aaaa0006;--yellow-a2: #f4dd0016;--yellow-a3: #ffee0047;--yellow-a4: #ffe3016b;--yellow-a5: #ffd5008f;--yellow-a6: #ebbc0097;--yellow-a7: #d2a10098;--yellow-a8: #c99700c6;--yellow-a9: #ffe100d6;--yellow-a10: #ffdc00;--yellow-a11: #9e6c00;--yellow-a12: #2e2000e0;--gray-surface: #ffffffcc;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #ffffffcc;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #ffffffcc;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #ffffffcc;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #ffffffcc;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #ffffffcc;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #fefae4cc;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #f1f9ffcc;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #fdf5f3cc;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #fbf8f4cc;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #fef5f8cc;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #eff9facc;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #f9f8efcc;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #f3faf3cc;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #f1faf4cc;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #f5f8ffcc;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #f6f6ffcc;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #f1faf5cc;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #f6f9f0cc;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #effaf8cc;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #fff5e9cc;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #fef5facc;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #fdf5fdcc;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #faf5fecc;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #fff5f5cc;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #fff5f6cc;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #eef9fdcc;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #f0faf8cc;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #fff6f5cc;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #f9f6ffcc;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #fefbe4cc;--yellow-indicator: var(--yellow-10);--yellow-track: var(--yellow-10)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root,.light,.light-theme{--gray-1: color(display-p3 .988 .988 .988);--gray-2: color(display-p3 .975 .975 .975);--gray-3: color(display-p3 .939 .939 .939);--gray-4: color(display-p3 .908 .908 .908);--gray-5: color(display-p3 .88 .88 .88);--gray-6: color(display-p3 .849 .849 .849);--gray-7: color(display-p3 .807 .807 .807);--gray-8: color(display-p3 .732 .732 .732);--gray-9: color(display-p3 .553 .553 .553);--gray-10: color(display-p3 .512 .512 .512);--gray-11: color(display-p3 .392 .392 .392);--gray-12: color(display-p3 .125 .125 .125);--gray-a1: color(display-p3 0 0 0 / .012);--gray-a2: color(display-p3 0 0 0 / .024);--gray-a3: color(display-p3 0 0 0 / .063);--gray-a4: color(display-p3 0 0 0 / .09);--gray-a5: color(display-p3 0 0 0 / .122);--gray-a6: color(display-p3 0 0 0 / .153);--gray-a7: color(display-p3 0 0 0 / .192);--gray-a8: color(display-p3 0 0 0 / .267);--gray-a9: color(display-p3 0 0 0 / .447);--gray-a10: color(display-p3 0 0 0 / .486);--gray-a11: color(display-p3 0 0 0 / .608);--gray-a12: color(display-p3 0 0 0 / .875);--mauve-1: color(display-p3 .991 .988 .992);--mauve-2: color(display-p3 .98 .976 .984);--mauve-3: color(display-p3 .946 .938 .952);--mauve-4: color(display-p3 .915 .906 .925);--mauve-5: color(display-p3 .886 .876 .901);--mauve-6: color(display-p3 .856 .846 .875);--mauve-7: color(display-p3 .814 .804 .84);--mauve-8: color(display-p3 .735 .728 .777);--mauve-9: color(display-p3 .555 .549 .596);--mauve-10: color(display-p3 .514 .508 .552);--mauve-11: color(display-p3 .395 .388 .424);--mauve-12: color(display-p3 .128 .122 .147);--mauve-a1: color(display-p3 .349 .024 .349 / .012);--mauve-a2: color(display-p3 .184 .024 .349 / .024);--mauve-a3: color(display-p3 .129 .008 .255 / .063);--mauve-a4: color(display-p3 .094 .012 .216 / .095);--mauve-a5: color(display-p3 .098 .008 .224 / .126);--mauve-a6: color(display-p3 .055 .004 .18 / .153);--mauve-a7: color(display-p3 .067 .008 .184 / .197);--mauve-a8: color(display-p3 .02 .004 .176 / .271);--mauve-a9: color(display-p3 .02 .004 .106 / .451);--mauve-a10: color(display-p3 .012 .004 .09 / .491);--mauve-a11: color(display-p3 .016 0 .059 / .612);--mauve-a12: color(display-p3 .008 0 .027 / .879);--slate-1: color(display-p3 .988 .988 .992);--slate-2: color(display-p3 .976 .976 .984);--slate-3: color(display-p3 .94 .941 .953);--slate-4: color(display-p3 .908 .909 .925);--slate-5: color(display-p3 .88 .881 .901);--slate-6: color(display-p3 .85 .852 .876);--slate-7: color(display-p3 .805 .808 .838);--slate-8: color(display-p3 .727 .733 .773);--slate-9: color(display-p3 .547 .553 .592);--slate-10: color(display-p3 .503 .512 .549);--slate-11: color(display-p3 .379 .392 .421);--slate-12: color(display-p3 .113 .125 .14);--slate-a1: color(display-p3 .024 .024 .349 / .012);--slate-a2: color(display-p3 .024 .024 .349 / .024);--slate-a3: color(display-p3 .004 .004 .204 / .059);--slate-a4: color(display-p3 .012 .012 .184 / .091);--slate-a5: color(display-p3 .004 .039 .2 / .122);--slate-a6: color(display-p3 .008 .008 .165 / .15);--slate-a7: color(display-p3 .008 .027 .184 / .197);--slate-a8: color(display-p3 .004 .031 .176 / .275);--slate-a9: color(display-p3 .004 .02 .106 / .455);--slate-a10: color(display-p3 .004 .027 .098 / .499);--slate-a11: color(display-p3 0 .02 .063 / .62);--slate-a12: color(display-p3 0 .012 .031 / .887);--sage-1: color(display-p3 .986 .992 .988);--sage-2: color(display-p3 .97 .977 .974);--sage-3: color(display-p3 .935 .944 .94);--sage-4: color(display-p3 .904 .913 .909);--sage-5: color(display-p3 .875 .885 .88);--sage-6: color(display-p3 .844 .854 .849);--sage-7: color(display-p3 .8 .811 .806);--sage-8: color(display-p3 .725 .738 .732);--sage-9: color(display-p3 .531 .556 .546);--sage-10: color(display-p3 .492 .515 .506);--sage-11: color(display-p3 .377 .395 .389);--sage-12: color(display-p3 .107 .129 .118);--sage-a1: color(display-p3 .024 .514 .267 / .016);--sage-a2: color(display-p3 .02 .267 .145 / .032);--sage-a3: color(display-p3 .008 .184 .125 / .067);--sage-a4: color(display-p3 .012 .094 .051 / .095);--sage-a5: color(display-p3 .008 .098 .035 / .126);--sage-a6: color(display-p3 .004 .078 .027 / .157);--sage-a7: color(display-p3 0 .059 .039 / .2);--sage-a8: color(display-p3 .004 .047 .031 / .275);--sage-a9: color(display-p3 .004 .059 .035 / .471);--sage-a10: color(display-p3 0 .047 .031 / .51);--sage-a11: color(display-p3 0 .031 .02 / .624);--sage-a12: color(display-p3 0 .027 .012 / .895);--olive-1: color(display-p3 .989 .992 .989);--olive-2: color(display-p3 .974 .98 .973);--olive-3: color(display-p3 .939 .945 .937);--olive-4: color(display-p3 .907 .914 .905);--olive-5: color(display-p3 .878 .885 .875);--olive-6: color(display-p3 .846 .855 .843);--olive-7: color(display-p3 .803 .812 .8);--olive-8: color(display-p3 .727 .738 .723);--olive-9: color(display-p3 .541 .556 .532);--olive-10: color(display-p3 .5 .515 .491);--olive-11: color(display-p3 .38 .395 .374);--olive-12: color(display-p3 .117 .129 .111);--olive-a1: color(display-p3 .024 .349 .024 / .012);--olive-a2: color(display-p3 .024 .302 .024 / .028);--olive-a3: color(display-p3 .008 .129 .008 / .063);--olive-a4: color(display-p3 .012 .094 .012 / .095);--olive-a5: color(display-p3 .035 .098 .008 / .126);--olive-a6: color(display-p3 .027 .078 .004 / .157);--olive-a7: color(display-p3 .02 .059 0 / .2);--olive-a8: color(display-p3 .02 .059 .004 / .279);--olive-a9: color(display-p3 .02 .051 .004 / .467);--olive-a10: color(display-p3 .024 .047 0 / .51);--olive-a11: color(display-p3 .012 .039 0 / .628);--olive-a12: color(display-p3 .008 .024 0 / .891);--sand-1: color(display-p3 .992 .992 .989);--sand-2: color(display-p3 .977 .977 .973);--sand-3: color(display-p3 .943 .942 .936);--sand-4: color(display-p3 .913 .912 .903);--sand-5: color(display-p3 .885 .883 .873);--sand-6: color(display-p3 .854 .852 .839);--sand-7: color(display-p3 .813 .81 .794);--sand-8: color(display-p3 .738 .734 .713);--sand-9: color(display-p3 .553 .553 .528);--sand-10: color(display-p3 .511 .511 .488);--sand-11: color(display-p3 .388 .388 .37);--sand-12: color(display-p3 .129 .126 .111);--sand-a1: color(display-p3 .349 .349 .024 / .012);--sand-a2: color(display-p3 .161 .161 .024 / .028);--sand-a3: color(display-p3 .067 .067 .008 / .063);--sand-a4: color(display-p3 .129 .129 .012 / .099);--sand-a5: color(display-p3 .098 .067 .008 / .126);--sand-a6: color(display-p3 .102 .075 .004 / .161);--sand-a7: color(display-p3 .098 .098 .004 / .208);--sand-a8: color(display-p3 .086 .075 .004 / .287);--sand-a9: color(display-p3 .051 .051 .004 / .471);--sand-a10: color(display-p3 .047 .047 0 / .514);--sand-a11: color(display-p3 .031 .031 0 / .632);--sand-a12: color(display-p3 .024 .02 0 / .891);--amber-1: color(display-p3 .995 .992 .985);--amber-2: color(display-p3 .994 .986 .921);--amber-3: color(display-p3 .994 .969 .782);--amber-4: color(display-p3 .989 .937 .65);--amber-5: color(display-p3 .97 .902 .527);--amber-6: color(display-p3 .936 .844 .506);--amber-7: color(display-p3 .89 .762 .443);--amber-8: color(display-p3 .85 .65 .3);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 .959 .741 .274);--amber-11: color(display-p3 .64 .4 0);--amber-12: color(display-p3 .294 .208 .145);--amber-a1: color(display-p3 .757 .514 .024 / .016);--amber-a2: color(display-p3 .902 .804 .008 / .079);--amber-a3: color(display-p3 .965 .859 .004 / .22);--amber-a4: color(display-p3 .969 .82 .004 / .35);--amber-a5: color(display-p3 .933 .796 .004 / .475);--amber-a6: color(display-p3 .875 .682 .004 / .495);--amber-a7: color(display-p3 .804 .573 0 / .557);--amber-a8: color(display-p3 .788 .502 0 / .699);--amber-a9: color(display-p3 1 .686 0 / .742);--amber-a10: color(display-p3 .945 .643 0 / .726);--amber-a11: color(display-p3 .64 .4 0);--amber-a12: color(display-p3 .294 .208 .145);--blue-1: color(display-p3 .986 .992 .999);--blue-2: color(display-p3 .96 .979 .998);--blue-3: color(display-p3 .912 .956 .991);--blue-4: color(display-p3 .853 .932 1);--blue-5: color(display-p3 .788 .894 .998);--blue-6: color(display-p3 .709 .843 .976);--blue-7: color(display-p3 .606 .777 .947);--blue-8: color(display-p3 .451 .688 .917);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .234 .523 .912);--blue-11: color(display-p3 .15 .44 .84);--blue-12: color(display-p3 .102 .193 .379);--blue-a1: color(display-p3 .024 .514 1 / .016);--blue-a2: color(display-p3 .024 .514 .906 / .04);--blue-a3: color(display-p3 .012 .506 .914 / .087);--blue-a4: color(display-p3 .008 .545 1 / .146);--blue-a5: color(display-p3 .004 .502 .984 / .212);--blue-a6: color(display-p3 .004 .463 .922 / .291);--blue-a7: color(display-p3 .004 .431 .863 / .393);--blue-a8: color(display-p3 0 .427 .851 / .55);--blue-a9: color(display-p3 0 .412 .961 / .753);--blue-a10: color(display-p3 0 .376 .886 / .765);--blue-a11: color(display-p3 .15 .44 .84);--blue-a12: color(display-p3 .102 .193 .379);--bronze-1: color(display-p3 .991 .988 .988);--bronze-2: color(display-p3 .989 .97 .961);--bronze-3: color(display-p3 .958 .932 .919);--bronze-4: color(display-p3 .929 .894 .877);--bronze-5: color(display-p3 .898 .853 .832);--bronze-6: color(display-p3 .861 .805 .778);--bronze-7: color(display-p3 .812 .739 .706);--bronze-8: color(display-p3 .741 .647 .606);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .563 .461 .414);--bronze-11: color(display-p3 .471 .373 .336);--bronze-12: color(display-p3 .251 .191 .172);--bronze-a1: color(display-p3 .349 .024 .024 / .012);--bronze-a2: color(display-p3 .71 .22 .024 / .04);--bronze-a3: color(display-p3 .482 .2 .008 / .083);--bronze-a4: color(display-p3 .424 .133 .004 / .122);--bronze-a5: color(display-p3 .4 .145 .004 / .169);--bronze-a6: color(display-p3 .388 .125 .004 / .224);--bronze-a7: color(display-p3 .365 .11 .004 / .295);--bronze-a8: color(display-p3 .341 .102 .004 / .393);--bronze-a9: color(display-p3 .29 .094 0 / .546);--bronze-a10: color(display-p3 .255 .082 0 / .585);--bronze-a11: color(display-p3 .471 .373 .336);--bronze-a12: color(display-p3 .251 .191 .172);--brown-1: color(display-p3 .995 .992 .989);--brown-2: color(display-p3 .987 .976 .964);--brown-3: color(display-p3 .959 .936 .909);--brown-4: color(display-p3 .934 .897 .855);--brown-5: color(display-p3 .909 .856 .798);--brown-6: color(display-p3 .88 .808 .73);--brown-7: color(display-p3 .841 .742 .639);--brown-8: color(display-p3 .782 .647 .514);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .601 .465 .344);--brown-11: color(display-p3 .485 .374 .288);--brown-12: color(display-p3 .236 .202 .183);--brown-a1: color(display-p3 .675 .349 .024 / .012);--brown-a2: color(display-p3 .675 .349 .024 / .036);--brown-a3: color(display-p3 .573 .314 .012 / .091);--brown-a4: color(display-p3 .545 .302 .008 / .146);--brown-a5: color(display-p3 .561 .29 .004 / .204);--brown-a6: color(display-p3 .553 .294 .004 / .271);--brown-a7: color(display-p3 .557 .286 .004 / .361);--brown-a8: color(display-p3 .549 .275 .004 / .487);--brown-a9: color(display-p3 .447 .22 0 / .632);--brown-a10: color(display-p3 .388 .188 0 / .655);--brown-a11: color(display-p3 .485 .374 .288);--brown-a12: color(display-p3 .236 .202 .183);--crimson-1: color(display-p3 .998 .989 .992);--crimson-2: color(display-p3 .991 .969 .976);--crimson-3: color(display-p3 .987 .917 .941);--crimson-4: color(display-p3 .975 .866 .904);--crimson-5: color(display-p3 .953 .813 .864);--crimson-6: color(display-p3 .921 .755 .817);--crimson-7: color(display-p3 .88 .683 .761);--crimson-8: color(display-p3 .834 .592 .694);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .807 .266 .468);--crimson-11: color(display-p3 .731 .195 .388);--crimson-12: color(display-p3 .352 .111 .221);--crimson-a1: color(display-p3 .675 .024 .349 / .012);--crimson-a2: color(display-p3 .757 .02 .267 / .032);--crimson-a3: color(display-p3 .859 .008 .294 / .083);--crimson-a4: color(display-p3 .827 .008 .298 / .134);--crimson-a5: color(display-p3 .753 .008 .275 / .189);--crimson-a6: color(display-p3 .682 .004 .247 / .244);--crimson-a7: color(display-p3 .62 .004 .251 / .318);--crimson-a8: color(display-p3 .6 .004 .251 / .408);--crimson-a9: color(display-p3 .776 0 .298 / .702);--crimson-a10: color(display-p3 .737 0 .275 / .734);--crimson-a11: color(display-p3 .731 .195 .388);--crimson-a12: color(display-p3 .352 .111 .221);--cyan-1: color(display-p3 .982 .992 .996);--cyan-2: color(display-p3 .955 .981 .984);--cyan-3: color(display-p3 .888 .965 .975);--cyan-4: color(display-p3 .821 .941 .959);--cyan-5: color(display-p3 .751 .907 .935);--cyan-6: color(display-p3 .671 .862 .9);--cyan-7: color(display-p3 .564 .8 .854);--cyan-8: color(display-p3 .388 .715 .798);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .264 .583 .71);--cyan-11: color(display-p3 .08 .48 .63);--cyan-12: color(display-p3 .108 .232 .277);--cyan-a1: color(display-p3 .02 .608 .804 / .02);--cyan-a2: color(display-p3 .02 .557 .647 / .044);--cyan-a3: color(display-p3 .004 .694 .796 / .114);--cyan-a4: color(display-p3 .004 .678 .784 / .181);--cyan-a5: color(display-p3 .004 .624 .733 / .248);--cyan-a6: color(display-p3 .004 .584 .706 / .33);--cyan-a7: color(display-p3 .004 .541 .667 / .436);--cyan-a8: color(display-p3 0 .533 .667 / .612);--cyan-a9: color(display-p3 0 .482 .675 / .718);--cyan-a10: color(display-p3 0 .435 .608 / .738);--cyan-a11: color(display-p3 .08 .48 .63);--cyan-a12: color(display-p3 .108 .232 .277);--gold-1: color(display-p3 .992 .992 .989);--gold-2: color(display-p3 .98 .976 .953);--gold-3: color(display-p3 .947 .94 .909);--gold-4: color(display-p3 .914 .904 .865);--gold-5: color(display-p3 .88 .865 .816);--gold-6: color(display-p3 .84 .818 .756);--gold-7: color(display-p3 .788 .753 .677);--gold-8: color(display-p3 .715 .66 .565);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .538 .479 .38);--gold-11: color(display-p3 .433 .386 .305);--gold-12: color(display-p3 .227 .209 .173);--gold-a1: color(display-p3 .349 .349 .024 / .012);--gold-a2: color(display-p3 .592 .514 .024 / .048);--gold-a3: color(display-p3 .4 .357 .012 / .091);--gold-a4: color(display-p3 .357 .298 .008 / .134);--gold-a5: color(display-p3 .345 .282 .004 / .185);--gold-a6: color(display-p3 .341 .263 .004 / .244);--gold-a7: color(display-p3 .345 .235 .004 / .322);--gold-a8: color(display-p3 .345 .22 .004 / .436);--gold-a9: color(display-p3 .286 .18 0 / .589);--gold-a10: color(display-p3 .255 .161 0 / .62);--gold-a11: color(display-p3 .433 .386 .305);--gold-a12: color(display-p3 .227 .209 .173);--grass-1: color(display-p3 .986 .996 .985);--grass-2: color(display-p3 .966 .983 .964);--grass-3: color(display-p3 .923 .965 .917);--grass-4: color(display-p3 .872 .94 .865);--grass-5: color(display-p3 .811 .908 .802);--grass-6: color(display-p3 .733 .864 .724);--grass-7: color(display-p3 .628 .803 .622);--grass-8: color(display-p3 .477 .72 .482);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .344 .598 .342);--grass-11: color(display-p3 .263 .488 .261);--grass-12: color(display-p3 .151 .233 .153);--grass-a1: color(display-p3 .024 .757 .024 / .016);--grass-a2: color(display-p3 .024 .565 .024 / .036);--grass-a3: color(display-p3 .059 .576 .008 / .083);--grass-a4: color(display-p3 .035 .565 .008 / .134);--grass-a5: color(display-p3 .047 .545 .008 / .197);--grass-a6: color(display-p3 .031 .502 .004 / .275);--grass-a7: color(display-p3 .012 .482 .004 / .377);--grass-a8: color(display-p3 0 .467 .008 / .522);--grass-a9: color(display-p3 .008 .435 0 / .624);--grass-a10: color(display-p3 .008 .388 0 / .659);--grass-a11: color(display-p3 .263 .488 .261);--grass-a12: color(display-p3 .151 .233 .153);--green-1: color(display-p3 .986 .996 .989);--green-2: color(display-p3 .963 .983 .967);--green-3: color(display-p3 .913 .964 .925);--green-4: color(display-p3 .859 .94 .879);--green-5: color(display-p3 .796 .907 .826);--green-6: color(display-p3 .718 .863 .761);--green-7: color(display-p3 .61 .801 .675);--green-8: color(display-p3 .451 .715 .559);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .308 .595 .417);--green-11: color(display-p3 .19 .5 .32);--green-12: color(display-p3 .132 .228 .18);--green-a1: color(display-p3 .024 .757 .267 / .016);--green-a2: color(display-p3 .024 .565 .129 / .036);--green-a3: color(display-p3 .012 .596 .145 / .087);--green-a4: color(display-p3 .008 .588 .145 / .142);--green-a5: color(display-p3 .004 .541 .157 / .204);--green-a6: color(display-p3 .004 .518 .157 / .283);--green-a7: color(display-p3 .004 .486 .165 / .389);--green-a8: color(display-p3 0 .478 .2 / .55);--green-a9: color(display-p3 0 .455 .165 / .667);--green-a10: color(display-p3 0 .416 .153 / .691);--green-a11: color(display-p3 .19 .5 .32);--green-a12: color(display-p3 .132 .228 .18);--indigo-1: color(display-p3 .992 .992 .996);--indigo-2: color(display-p3 .971 .977 .998);--indigo-3: color(display-p3 .933 .948 .992);--indigo-4: color(display-p3 .885 .914 1);--indigo-5: color(display-p3 .831 .87 1);--indigo-6: color(display-p3 .767 .814 .995);--indigo-7: color(display-p3 .685 .74 .957);--indigo-8: color(display-p3 .569 .639 .916);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .234 .343 .801);--indigo-11: color(display-p3 .256 .354 .755);--indigo-12: color(display-p3 .133 .175 .348);--indigo-a1: color(display-p3 .02 .02 .51 / .008);--indigo-a2: color(display-p3 .024 .161 .863 / .028);--indigo-a3: color(display-p3 .008 .239 .886 / .067);--indigo-a4: color(display-p3 .004 .247 1 / .114);--indigo-a5: color(display-p3 .004 .235 1 / .169);--indigo-a6: color(display-p3 .004 .208 .984 / .232);--indigo-a7: color(display-p3 .004 .176 .863 / .314);--indigo-a8: color(display-p3 .004 .165 .812 / .432);--indigo-a9: color(display-p3 0 .153 .773 / .726);--indigo-a10: color(display-p3 0 .137 .737 / .765);--indigo-a11: color(display-p3 .256 .354 .755);--indigo-a12: color(display-p3 .133 .175 .348);--iris-1: color(display-p3 .992 .992 .999);--iris-2: color(display-p3 .972 .973 .998);--iris-3: color(display-p3 .943 .945 .992);--iris-4: color(display-p3 .902 .906 1);--iris-5: color(display-p3 .857 .861 1);--iris-6: color(display-p3 .799 .805 .987);--iris-7: color(display-p3 .721 .727 .955);--iris-8: color(display-p3 .61 .619 .918);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .318 .318 .774);--iris-11: color(display-p3 .337 .326 .748);--iris-12: color(display-p3 .154 .161 .371);--iris-a1: color(display-p3 .02 .02 1 / .008);--iris-a2: color(display-p3 .024 .024 .863 / .028);--iris-a3: color(display-p3 .004 .071 .871 / .059);--iris-a4: color(display-p3 .012 .051 1 / .099);--iris-a5: color(display-p3 .008 .035 1 / .142);--iris-a6: color(display-p3 0 .02 .941 / .2);--iris-a7: color(display-p3 .004 .02 .847 / .279);--iris-a8: color(display-p3 .004 .024 .788 / .389);--iris-a9: color(display-p3 0 0 .706 / .644);--iris-a10: color(display-p3 0 0 .667 / .683);--iris-a11: color(display-p3 .337 .326 .748);--iris-a12: color(display-p3 .154 .161 .371);--jade-1: color(display-p3 .986 .996 .992);--jade-2: color(display-p3 .962 .983 .969);--jade-3: color(display-p3 .912 .965 .932);--jade-4: color(display-p3 .858 .941 .893);--jade-5: color(display-p3 .795 .909 .847);--jade-6: color(display-p3 .715 .864 .791);--jade-7: color(display-p3 .603 .802 .718);--jade-8: color(display-p3 .44 .72 .629);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .299 .592 .488);--jade-11: color(display-p3 .15 .5 .37);--jade-12: color(display-p3 .142 .229 .194);--jade-a1: color(display-p3 .024 .757 .514 / .016);--jade-a2: color(display-p3 .024 .612 .22 / .04);--jade-a3: color(display-p3 .012 .596 .235 / .087);--jade-a4: color(display-p3 .008 .588 .255 / .142);--jade-a5: color(display-p3 .004 .561 .251 / .204);--jade-a6: color(display-p3 .004 .525 .278 / .287);--jade-a7: color(display-p3 .004 .506 .29 / .397);--jade-a8: color(display-p3 0 .506 .337 / .561);--jade-a9: color(display-p3 0 .459 .298 / .683);--jade-a10: color(display-p3 0 .42 .271 / .702);--jade-a11: color(display-p3 .15 .5 .37);--jade-a12: color(display-p3 .142 .229 .194);--lime-1: color(display-p3 .989 .992 .981);--lime-2: color(display-p3 .975 .98 .954);--lime-3: color(display-p3 .939 .965 .851);--lime-4: color(display-p3 .896 .94 .76);--lime-5: color(display-p3 .843 .903 .678);--lime-6: color(display-p3 .778 .852 .599);--lime-7: color(display-p3 .694 .784 .508);--lime-8: color(display-p3 .585 .707 .378);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .734 .896 .397);--lime-11: color(display-p3 .386 .482 .227);--lime-12: color(display-p3 .222 .25 .128);--lime-a1: color(display-p3 .412 .608 .02 / .02);--lime-a2: color(display-p3 .514 .592 .024 / .048);--lime-a3: color(display-p3 .584 .765 .008 / .15);--lime-a4: color(display-p3 .561 .757 .004 / .24);--lime-a5: color(display-p3 .514 .698 .004 / .322);--lime-a6: color(display-p3 .443 .627 0 / .4);--lime-a7: color(display-p3 .376 .561 .004 / .491);--lime-a8: color(display-p3 .333 .529 0 / .624);--lime-a9: color(display-p3 .588 .867 0 / .534);--lime-a10: color(display-p3 .561 .827 0 / .604);--lime-a11: color(display-p3 .386 .482 .227);--lime-a12: color(display-p3 .222 .25 .128);--mint-1: color(display-p3 .98 .995 .992);--mint-2: color(display-p3 .957 .985 .977);--mint-3: color(display-p3 .888 .972 .95);--mint-4: color(display-p3 .819 .951 .916);--mint-5: color(display-p3 .747 .918 .873);--mint-6: color(display-p3 .668 .87 .818);--mint-7: color(display-p3 .567 .805 .744);--mint-8: color(display-p3 .42 .724 .649);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .585 .871 .797);--mint-11: color(display-p3 .203 .463 .397);--mint-12: color(display-p3 .136 .259 .236);--mint-a1: color(display-p3 .02 .804 .608 / .02);--mint-a2: color(display-p3 .02 .647 .467 / .044);--mint-a3: color(display-p3 .004 .761 .553 / .114);--mint-a4: color(display-p3 .004 .741 .545 / .181);--mint-a5: color(display-p3 .004 .678 .51 / .255);--mint-a6: color(display-p3 .004 .616 .463 / .334);--mint-a7: color(display-p3 .004 .549 .412 / .432);--mint-a8: color(display-p3 0 .529 .392 / .581);--mint-a9: color(display-p3 .004 .765 .569 / .381);--mint-a10: color(display-p3 .004 .69 .51 / .416);--mint-a11: color(display-p3 .203 .463 .397);--mint-a12: color(display-p3 .136 .259 .236);--orange-1: color(display-p3 .995 .988 .985);--orange-2: color(display-p3 .994 .968 .934);--orange-3: color(display-p3 .989 .938 .85);--orange-4: color(display-p3 1 .874 .687);--orange-5: color(display-p3 1 .821 .583);--orange-6: color(display-p3 .975 .767 .545);--orange-7: color(display-p3 .919 .693 .486);--orange-8: color(display-p3 .877 .597 .379);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .87 .409 .164);--orange-11: color(display-p3 .76 .34 0);--orange-12: color(display-p3 .323 .185 .127);--orange-a1: color(display-p3 .757 .267 .024 / .016);--orange-a2: color(display-p3 .886 .533 .008 / .067);--orange-a3: color(display-p3 .922 .584 .008 / .15);--orange-a4: color(display-p3 1 .604 .004 / .314);--orange-a5: color(display-p3 1 .569 .004 / .416);--orange-a6: color(display-p3 .949 .494 .004 / .455);--orange-a7: color(display-p3 .839 .408 0 / .514);--orange-a8: color(display-p3 .804 .349 0 / .62);--orange-a9: color(display-p3 .878 .314 0 / .8);--orange-a10: color(display-p3 .843 .29 0 / .836);--orange-a11: color(display-p3 .76 .34 0);--orange-a12: color(display-p3 .323 .185 .127);--pink-1: color(display-p3 .998 .989 .996);--pink-2: color(display-p3 .992 .97 .985);--pink-3: color(display-p3 .981 .917 .96);--pink-4: color(display-p3 .963 .867 .932);--pink-5: color(display-p3 .939 .815 .899);--pink-6: color(display-p3 .907 .756 .859);--pink-7: color(display-p3 .869 .683 .81);--pink-8: color(display-p3 .825 .59 .751);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .748 .27 .581);--pink-11: color(display-p3 .698 .219 .528);--pink-12: color(display-p3 .363 .101 .279);--pink-a1: color(display-p3 .675 .024 .675 / .012);--pink-a2: color(display-p3 .757 .02 .51 / .032);--pink-a3: color(display-p3 .765 .008 .529 / .083);--pink-a4: color(display-p3 .737 .008 .506 / .134);--pink-a5: color(display-p3 .663 .004 .451 / .185);--pink-a6: color(display-p3 .616 .004 .424 / .244);--pink-a7: color(display-p3 .596 .004 .412 / .318);--pink-a8: color(display-p3 .573 .004 .404 / .412);--pink-a9: color(display-p3 .682 0 .447 / .702);--pink-a10: color(display-p3 .655 0 .424 / .73);--pink-a11: color(display-p3 .698 .219 .528);--pink-a12: color(display-p3 .363 .101 .279);--plum-1: color(display-p3 .995 .988 .999);--plum-2: color(display-p3 .988 .971 .99);--plum-3: color(display-p3 .973 .923 .98);--plum-4: color(display-p3 .953 .875 .966);--plum-5: color(display-p3 .926 .825 .945);--plum-6: color(display-p3 .89 .765 .916);--plum-7: color(display-p3 .84 .686 .877);--plum-8: color(display-p3 .775 .58 .832);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .587 .29 .667);--plum-11: color(display-p3 .543 .263 .619);--plum-12: color(display-p3 .299 .114 .352);--plum-a1: color(display-p3 .675 .024 1 / .012);--plum-a2: color(display-p3 .58 .024 .58 / .028);--plum-a3: color(display-p3 .655 .008 .753 / .079);--plum-a4: color(display-p3 .627 .008 .722 / .126);--plum-a5: color(display-p3 .58 .004 .69 / .177);--plum-a6: color(display-p3 .537 .004 .655 / .236);--plum-a7: color(display-p3 .49 .004 .616 / .314);--plum-a8: color(display-p3 .471 .004 .6 / .42);--plum-a9: color(display-p3 .451 0 .576 / .687);--plum-a10: color(display-p3 .42 0 .529 / .71);--plum-a11: color(display-p3 .543 .263 .619);--plum-a12: color(display-p3 .299 .114 .352);--purple-1: color(display-p3 .995 .988 .996);--purple-2: color(display-p3 .983 .971 .993);--purple-3: color(display-p3 .963 .931 .989);--purple-4: color(display-p3 .937 .888 .981);--purple-5: color(display-p3 .904 .837 .966);--purple-6: color(display-p3 .86 .774 .942);--purple-7: color(display-p3 .799 .69 .91);--purple-8: color(display-p3 .719 .583 .874);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .483 .289 .7);--purple-11: color(display-p3 .473 .281 .687);--purple-12: color(display-p3 .234 .132 .363);--purple-a1: color(display-p3 .675 .024 .675 / .012);--purple-a2: color(display-p3 .443 .024 .722 / .028);--purple-a3: color(display-p3 .506 .008 .835 / .071);--purple-a4: color(display-p3 .451 .004 .831 / .114);--purple-a5: color(display-p3 .431 .004 .788 / .165);--purple-a6: color(display-p3 .384 .004 .745 / .228);--purple-a7: color(display-p3 .357 .004 .71 / .31);--purple-a8: color(display-p3 .322 .004 .702 / .416);--purple-a9: color(display-p3 .298 0 .639 / .683);--purple-a10: color(display-p3 .271 0 .58 / .71);--purple-a11: color(display-p3 .473 .281 .687);--purple-a12: color(display-p3 .234 .132 .363);--red-1: color(display-p3 .998 .989 .988);--red-2: color(display-p3 .995 .971 .971);--red-3: color(display-p3 .985 .925 .925);--red-4: color(display-p3 .999 .866 .866);--red-5: color(display-p3 .984 .812 .811);--red-6: color(display-p3 .955 .751 .749);--red-7: color(display-p3 .915 .675 .672);--red-8: color(display-p3 .872 .575 .572);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .798 .294 .285);--red-11: color(display-p3 .744 .234 .222);--red-12: color(display-p3 .36 .115 .143);--red-a1: color(display-p3 .675 .024 .024 / .012);--red-a2: color(display-p3 .863 .024 .024 / .028);--red-a3: color(display-p3 .792 .008 .008 / .075);--red-a4: color(display-p3 1 .008 .008 / .134);--red-a5: color(display-p3 .918 .008 .008 / .189);--red-a6: color(display-p3 .831 .02 .004 / .251);--red-a7: color(display-p3 .741 .016 .004 / .33);--red-a8: color(display-p3 .698 .012 .004 / .428);--red-a9: color(display-p3 .749 .008 0 / .675);--red-a10: color(display-p3 .714 .012 0 / .714);--red-a11: color(display-p3 .744 .234 .222);--red-a12: color(display-p3 .36 .115 .143);--ruby-1: color(display-p3 .998 .989 .992);--ruby-2: color(display-p3 .995 .971 .974);--ruby-3: color(display-p3 .983 .92 .928);--ruby-4: color(display-p3 .987 .869 .885);--ruby-5: color(display-p3 .968 .817 .839);--ruby-6: color(display-p3 .937 .758 .786);--ruby-7: color(display-p3 .897 .685 .721);--ruby-8: color(display-p3 .851 .588 .639);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .795 .286 .375);--ruby-11: color(display-p3 .728 .211 .311);--ruby-12: color(display-p3 .36 .115 .171);--ruby-a1: color(display-p3 .675 .024 .349 / .012);--ruby-a2: color(display-p3 .863 .024 .024 / .028);--ruby-a3: color(display-p3 .804 .008 .11 / .079);--ruby-a4: color(display-p3 .91 .008 .125 / .13);--ruby-a5: color(display-p3 .831 .004 .133 / .185);--ruby-a6: color(display-p3 .745 .004 .118 / .244);--ruby-a7: color(display-p3 .678 .004 .114 / .314);--ruby-a8: color(display-p3 .639 .004 .125 / .412);--ruby-a9: color(display-p3 .753 0 .129 / .679);--ruby-a10: color(display-p3 .714 0 .125 / .714);--ruby-a11: color(display-p3 .728 .211 .311);--ruby-a12: color(display-p3 .36 .115 .171);--sky-1: color(display-p3 .98 .995 .999);--sky-2: color(display-p3 .953 .98 .99);--sky-3: color(display-p3 .899 .963 .989);--sky-4: color(display-p3 .842 .937 .977);--sky-5: color(display-p3 .777 .9 .954);--sky-6: color(display-p3 .701 .851 .921);--sky-7: color(display-p3 .604 .785 .879);--sky-8: color(display-p3 .457 .696 .829);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .555 .845 .959);--sky-11: color(display-p3 .193 .448 .605);--sky-12: color(display-p3 .145 .241 .329);--sky-a1: color(display-p3 .02 .804 1 / .02);--sky-a2: color(display-p3 .024 .592 .757 / .048);--sky-a3: color(display-p3 .004 .655 .886 / .102);--sky-a4: color(display-p3 .004 .604 .851 / .157);--sky-a5: color(display-p3 .004 .565 .792 / .224);--sky-a6: color(display-p3 .004 .502 .737 / .299);--sky-a7: color(display-p3 .004 .459 .694 / .397);--sky-a8: color(display-p3 0 .435 .682 / .542);--sky-a9: color(display-p3 .004 .71 .965 / .416);--sky-a10: color(display-p3 .004 .647 .914 / .444);--sky-a11: color(display-p3 .193 .448 .605);--sky-a12: color(display-p3 .145 .241 .329);--teal-1: color(display-p3 .983 .996 .992);--teal-2: color(display-p3 .958 .983 .976);--teal-3: color(display-p3 .895 .971 .952);--teal-4: color(display-p3 .831 .949 .92);--teal-5: color(display-p3 .761 .914 .878);--teal-6: color(display-p3 .682 .864 .825);--teal-7: color(display-p3 .581 .798 .756);--teal-8: color(display-p3 .433 .716 .671);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .275 .599 .542);--teal-11: color(display-p3 .08 .5 .43);--teal-12: color(display-p3 .11 .235 .219);--teal-a1: color(display-p3 .024 .757 .514 / .016);--teal-a2: color(display-p3 .02 .647 .467 / .044);--teal-a3: color(display-p3 .004 .741 .557 / .106);--teal-a4: color(display-p3 .004 .702 .537 / .169);--teal-a5: color(display-p3 .004 .643 .494 / .24);--teal-a6: color(display-p3 .004 .569 .447 / .318);--teal-a7: color(display-p3 .004 .518 .424 / .42);--teal-a8: color(display-p3 0 .506 .424 / .569);--teal-a9: color(display-p3 0 .482 .404 / .702);--teal-a10: color(display-p3 0 .451 .369 / .726);--teal-a11: color(display-p3 .08 .5 .43);--teal-a12: color(display-p3 .11 .235 .219);--tomato-1: color(display-p3 .998 .989 .988);--tomato-2: color(display-p3 .994 .974 .969);--tomato-3: color(display-p3 .985 .924 .909);--tomato-4: color(display-p3 .996 .868 .835);--tomato-5: color(display-p3 .98 .812 .77);--tomato-6: color(display-p3 .953 .75 .698);--tomato-7: color(display-p3 .917 .673 .611);--tomato-8: color(display-p3 .875 .575 .502);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .802 .313 .2);--tomato-11: color(display-p3 .755 .259 .152);--tomato-12: color(display-p3 .335 .165 .132);--tomato-a1: color(display-p3 .675 .024 .024 / .012);--tomato-a2: color(display-p3 .757 .145 .02 / .032);--tomato-a3: color(display-p3 .831 .184 .012 / .091);--tomato-a4: color(display-p3 .976 .192 .004 / .165);--tomato-a5: color(display-p3 .918 .192 .004 / .232);--tomato-a6: color(display-p3 .847 .173 .004 / .302);--tomato-a7: color(display-p3 .788 .165 .004 / .389);--tomato-a8: color(display-p3 .749 .153 .004 / .499);--tomato-a9: color(display-p3 .78 .149 0 / .769);--tomato-a10: color(display-p3 .757 .141 0 / .8);--tomato-a11: color(display-p3 .755 .259 .152);--tomato-a12: color(display-p3 .335 .165 .132);--violet-1: color(display-p3 .991 .988 .995);--violet-2: color(display-p3 .978 .974 .998);--violet-3: color(display-p3 .953 .943 .993);--violet-4: color(display-p3 .916 .897 1);--violet-5: color(display-p3 .876 .851 1);--violet-6: color(display-p3 .825 .793 .981);--violet-7: color(display-p3 .752 .712 .943);--violet-8: color(display-p3 .654 .602 .902);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .381 .306 .741);--violet-11: color(display-p3 .383 .317 .702);--violet-12: color(display-p3 .179 .15 .359);--violet-a1: color(display-p3 .349 .024 .675 / .012);--violet-a2: color(display-p3 .161 .024 .863 / .028);--violet-a3: color(display-p3 .204 .004 .871 / .059);--violet-a4: color(display-p3 .196 .004 1 / .102);--violet-a5: color(display-p3 .165 .008 1 / .15);--violet-a6: color(display-p3 .153 .004 .906 / .208);--violet-a7: color(display-p3 .141 .004 .796 / .287);--violet-a8: color(display-p3 .133 .004 .753 / .397);--violet-a9: color(display-p3 .114 0 .675 / .659);--violet-a10: color(display-p3 .11 0 .627 / .695);--violet-a11: color(display-p3 .383 .317 .702);--violet-a12: color(display-p3 .179 .15 .359);--yellow-1: color(display-p3 .992 .992 .978);--yellow-2: color(display-p3 .995 .99 .922);--yellow-3: color(display-p3 .997 .982 .749);--yellow-4: color(display-p3 .992 .953 .627);--yellow-5: color(display-p3 .984 .91 .51);--yellow-6: color(display-p3 .934 .847 .474);--yellow-7: color(display-p3 .876 .785 .46);--yellow-8: color(display-p3 .811 .689 .313);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 .977 .868 .291);--yellow-11: color(display-p3 .6 .44 0);--yellow-12: color(display-p3 .271 .233 .137);--yellow-a1: color(display-p3 .675 .675 .024 / .024);--yellow-a2: color(display-p3 .953 .855 .008 / .079);--yellow-a3: color(display-p3 .988 .925 .004 / .251);--yellow-a4: color(display-p3 .98 .875 .004 / .373);--yellow-a5: color(display-p3 .969 .816 .004 / .491);--yellow-a6: color(display-p3 .875 .71 0 / .526);--yellow-a7: color(display-p3 .769 .604 0 / .542);--yellow-a8: color(display-p3 .725 .549 0 / .687);--yellow-a9: color(display-p3 1 .898 0 / .781);--yellow-a10: color(display-p3 .969 .812 0 / .71);--yellow-a11: color(display-p3 .6 .44 0);--yellow-a12: color(display-p3 .271 .233 .137);--gray-surface: color(display-p3 1 1 1 / .8);--mauve-surface: color(display-p3 1 1 1 / .8);--slate-surface: color(display-p3 1 1 1 / .8);--sage-surface: color(display-p3 1 1 1 / .8);--olive-surface: color(display-p3 1 1 1 / .8);--sand-surface: color(display-p3 1 1 1 / .8);--amber-surface: color(display-p3 .9922 .9843 .902 / .8);--blue-surface: color(display-p3 .9529 .9765 .9961 / .8);--bronze-surface: color(display-p3 .9843 .9608 .9529 / .8);--brown-surface: color(display-p3 .9843 .9725 .9569 / .8);--crimson-surface: color(display-p3 .9922 .9608 .9725 / .8);--cyan-surface: color(display-p3 .9412 .9765 .9804 / .8);--gold-surface: color(display-p3 .9765 .9725 .9412 / .8);--grass-surface: color(display-p3 .9569 .9804 .9569 / .8);--green-surface: color(display-p3 .9569 .9804 .9608 / .8);--indigo-surface: color(display-p3 .9647 .9725 .9961 / .8);--iris-surface: color(display-p3 .9647 .9647 .9961 / .8);--jade-surface: color(display-p3 .9529 .9804 .9608 / .8);--lime-surface: color(display-p3 .9725 .9765 .9412 / .8);--mint-surface: color(display-p3 .9451 .9804 .9725 / .8);--orange-surface: color(display-p3 .9961 .9608 .9176 / .8);--pink-surface: color(display-p3 .9922 .9608 .9804 / .8);--plum-surface: color(display-p3 .9843 .9647 .9843 / .8);--purple-surface: color(display-p3 .9804 .9647 .9922 / .8);--red-surface: color(display-p3 .9961 .9647 .9647 / .8);--ruby-surface: color(display-p3 .9961 .9647 .9647 / .8);--sky-surface: color(display-p3 .9412 .9765 .9843 / .8);--teal-surface: color(display-p3 .9451 .9804 .9725 / .8);--tomato-surface: color(display-p3 .9922 .9647 .9608 / .8);--violet-surface: color(display-p3 .9725 .9647 .9961 / .8);--yellow-surface: color(display-p3 .9961 .9922 .902 / .8)}}}.dark,.dark-theme{--gray-1: #111111;--gray-2: #191919;--gray-3: #222222;--gray-4: #2a2a2a;--gray-5: #313131;--gray-6: #3a3a3a;--gray-7: #484848;--gray-8: #606060;--gray-9: #6e6e6e;--gray-10: #7b7b7b;--gray-11: #b4b4b4;--gray-12: #eeeeee;--gray-a1: #00000000;--gray-a2: #ffffff09;--gray-a3: #ffffff12;--gray-a4: #ffffff1b;--gray-a5: #ffffff22;--gray-a6: #ffffff2c;--gray-a7: #ffffff3b;--gray-a8: #ffffff55;--gray-a9: #ffffff64;--gray-a10: #ffffff72;--gray-a11: #ffffffaf;--gray-a12: #ffffffed;--mauve-1: #121113;--mauve-2: #1a191b;--mauve-3: #232225;--mauve-4: #2b292d;--mauve-5: #323035;--mauve-6: #3c393f;--mauve-7: #49474e;--mauve-8: #625f69;--mauve-9: #6f6d78;--mauve-10: #7c7a85;--mauve-11: #b5b2bc;--mauve-12: #eeeef0;--mauve-a1: #00000000;--mauve-a2: #f5f4f609;--mauve-a3: #ebeaf814;--mauve-a4: #eee5f81d;--mauve-a5: #efe6fe25;--mauve-a6: #f1e6fd30;--mauve-a7: #eee9ff40;--mauve-a8: #eee7ff5d;--mauve-a9: #eae6fd6e;--mauve-a10: #ece9fd7c;--mauve-a11: #f5f1ffb7;--mauve-a12: #fdfdffef;--slate-1: #111113;--slate-2: #18191b;--slate-3: #212225;--slate-4: #272a2d;--slate-5: #2e3135;--slate-6: #363a3f;--slate-7: #43484e;--slate-8: #5a6169;--slate-9: #696e77;--slate-10: #777b84;--slate-11: #b0b4ba;--slate-12: #edeef0;--slate-a1: #00000000;--slate-a2: #d8f4f609;--slate-a3: #ddeaf814;--slate-a4: #d3edf81d;--slate-a5: #d9edfe25;--slate-a6: #d6ebfd30;--slate-a7: #d9edff40;--slate-a8: #d9edff5d;--slate-a9: #dfebfd6d;--slate-a10: #e5edfd7b;--slate-a11: #f1f7feb5;--slate-a12: #fcfdffef;--sage-1: #101211;--sage-2: #171918;--sage-3: #202221;--sage-4: #272a29;--sage-5: #2e3130;--sage-6: #373b39;--sage-7: #444947;--sage-8: #5b625f;--sage-9: #63706b;--sage-10: #717d79;--sage-11: #adb5b2;--sage-12: #eceeed;--sage-a1: #00000000;--sage-a2: #f0f2f108;--sage-a3: #f3f5f412;--sage-a4: #f2fefd1a;--sage-a5: #f1fbfa22;--sage-a6: #edfbf42d;--sage-a7: #edfcf73c;--sage-a8: #ebfdf657;--sage-a9: #dffdf266;--sage-a10: #e5fdf674;--sage-a11: #f4fefbb0;--sage-a12: #fdfffeed;--olive-1: #111210;--olive-2: #181917;--olive-3: #212220;--olive-4: #282a27;--olive-5: #2f312e;--olive-6: #383a36;--olive-7: #454843;--olive-8: #5c625b;--olive-9: #687066;--olive-10: #767d74;--olive-11: #afb5ad;--olive-12: #eceeec;--olive-a1: #00000000;--olive-a2: #f1f2f008;--olive-a3: #f4f5f312;--olive-a4: #f3fef21a;--olive-a5: #f2fbf122;--olive-a6: #f4faed2c;--olive-a7: #f2fced3b;--olive-a8: #edfdeb57;--olive-a9: #ebfde766;--olive-a10: #f0fdec74;--olive-a11: #f6fef4b0;--olive-a12: #fdfffded;--sand-1: #111110;--sand-2: #191918;--sand-3: #222221;--sand-4: #2a2a28;--sand-5: #31312e;--sand-6: #3b3a37;--sand-7: #494844;--sand-8: #62605b;--sand-9: #6f6d66;--sand-10: #7c7b74;--sand-11: #b5b3ad;--sand-12: #eeeeec;--sand-a1: #00000000;--sand-a2: #f4f4f309;--sand-a3: #f6f6f513;--sand-a4: #fefef31b;--sand-a5: #fbfbeb23;--sand-a6: #fffaed2d;--sand-a7: #fffbed3c;--sand-a8: #fff9eb57;--sand-a9: #fffae965;--sand-a10: #fffdee73;--sand-a11: #fffcf4b0;--sand-a12: #fffffded;--amber-1: #16120c;--amber-2: #1d180f;--amber-3: #302008;--amber-4: #3f2700;--amber-5: #4d3000;--amber-6: #5c3d05;--amber-7: #714f19;--amber-8: #8f6424;--amber-9: #ffc53d;--amber-10: #ffd60a;--amber-11: #ffca16;--amber-12: #ffe7b3;--amber-a1: #e63c0006;--amber-a2: #fd9b000d;--amber-a3: #fa820022;--amber-a4: #fc820032;--amber-a5: #fd8b0041;--amber-a6: #fd9b0051;--amber-a7: #ffab2567;--amber-a8: #ffae3587;--amber-a9: #ffc53d;--amber-a10: #ffd60a;--amber-a11: #ffca16;--amber-a12: #ffe7b3;--blue-1: #0d1520;--blue-2: #111927;--blue-3: #0d2847;--blue-4: #003362;--blue-5: #004074;--blue-6: #104d87;--blue-7: #205d9e;--blue-8: #2870bd;--blue-9: #0090ff;--blue-10: #3b9eff;--blue-11: #70b8ff;--blue-12: #c2e6ff;--blue-a1: #004df211;--blue-a2: #1166fb18;--blue-a3: #0077ff3a;--blue-a4: #0075ff57;--blue-a5: #0081fd6b;--blue-a6: #0f89fd7f;--blue-a7: #2a91fe98;--blue-a8: #3094feb9;--blue-a9: #0090ff;--blue-a10: #3b9eff;--blue-a11: #70b8ff;--blue-a12: #c2e6ff;--bronze-1: #141110;--bronze-2: #1c1917;--bronze-3: #262220;--bronze-4: #302a27;--bronze-5: #3b3330;--bronze-6: #493e3a;--bronze-7: #5a4c47;--bronze-8: #6f5f58;--bronze-9: #a18072;--bronze-10: #ae8c7e;--bronze-11: #d4b3a5;--bronze-12: #ede0d9;--bronze-a1: #d1110004;--bronze-a2: #fbbc910c;--bronze-a3: #faceb817;--bronze-a4: #facdb622;--bronze-a5: #ffd2c12d;--bronze-a6: #ffd1c03c;--bronze-a7: #fdd0c04f;--bronze-a8: #ffd6c565;--bronze-a9: #fec7b09b;--bronze-a10: #fecab5a9;--bronze-a11: #ffd7c6d1;--bronze-a12: #fff1e9ec;--brown-1: #12110f;--brown-2: #1c1816;--brown-3: #28211d;--brown-4: #322922;--brown-5: #3e3128;--brown-6: #4d3c2f;--brown-7: #614a39;--brown-8: #7c5f46;--brown-9: #ad7f58;--brown-10: #b88c67;--brown-11: #dbb594;--brown-12: #f2e1ca;--brown-a1: #91110002;--brown-a2: #fba67c0c;--brown-a3: #fcb58c19;--brown-a4: #fbbb8a24;--brown-a5: #fcb88931;--brown-a6: #fdba8741;--brown-a7: #ffbb8856;--brown-a8: #ffbe8773;--brown-a9: #feb87da8;--brown-a10: #ffc18cb3;--brown-a11: #fed1aad9;--brown-a12: #feecd4f2;--crimson-1: #191114;--crimson-2: #201318;--crimson-3: #381525;--crimson-4: #4d122f;--crimson-5: #5c1839;--crimson-6: #6d2545;--crimson-7: #873356;--crimson-8: #b0436e;--crimson-9: #e93d82;--crimson-10: #ee518a;--crimson-11: #ff92ad;--crimson-12: #fdd3e8;--crimson-a1: #f4126709;--crimson-a2: #f22f7a11;--crimson-a3: #fe2a8b2a;--crimson-a4: #fd158741;--crimson-a5: #fd278f51;--crimson-a6: #fe459763;--crimson-a7: #fd559b7f;--crimson-a8: #fe5b9bab;--crimson-a9: #fe418de8;--crimson-a10: #ff5693ed;--crimson-a11: #ff92ad;--crimson-a12: #ffd5eafd;--cyan-1: #0b161a;--cyan-2: #101b20;--cyan-3: #082c36;--cyan-4: #003848;--cyan-5: #004558;--cyan-6: #045468;--cyan-7: #12677e;--cyan-8: #11809c;--cyan-9: #00a2c7;--cyan-10: #23afd0;--cyan-11: #4ccce6;--cyan-12: #b6ecf7;--cyan-a1: #0091f70a;--cyan-a2: #02a7f211;--cyan-a3: #00befd28;--cyan-a4: #00baff3b;--cyan-a5: #00befd4d;--cyan-a6: #00c7fd5e;--cyan-a7: #14cdff75;--cyan-a8: #11cfff95;--cyan-a9: #00cfffc3;--cyan-a10: #28d6ffcd;--cyan-a11: #52e1fee5;--cyan-a12: #bbf3fef7;--gold-1: #121211;--gold-2: #1b1a17;--gold-3: #24231f;--gold-4: #2d2b26;--gold-5: #38352e;--gold-6: #444039;--gold-7: #544f46;--gold-8: #696256;--gold-9: #978365;--gold-10: #a39073;--gold-11: #cbb99f;--gold-12: #e8e2d9;--gold-a1: #91911102;--gold-a2: #f9e29d0b;--gold-a3: #f8ecbb15;--gold-a4: #ffeec41e;--gold-a5: #feecc22a;--gold-a6: #feebcb37;--gold-a7: #ffedcd48;--gold-a8: #fdeaca5f;--gold-a9: #ffdba690;--gold-a10: #fedfb09d;--gold-a11: #fee7c6c8;--gold-a12: #fef7ede7;--grass-1: #0e1511;--grass-2: #141a15;--grass-3: #1b2a1e;--grass-4: #1d3a24;--grass-5: #25482d;--grass-6: #2d5736;--grass-7: #366740;--grass-8: #3e7949;--grass-9: #46a758;--grass-10: #53b365;--grass-11: #71d083;--grass-12: #c2f0c2;--grass-a1: #00de1205;--grass-a2: #5ef7780a;--grass-a3: #70fe8c1b;--grass-a4: #57ff802c;--grass-a5: #68ff8b3b;--grass-a6: #71ff8f4b;--grass-a7: #77fd925d;--grass-a8: #77fd9070;--grass-a9: #65ff82a1;--grass-a10: #72ff8dae;--grass-a11: #89ff9fcd;--grass-a12: #ceffceef;--green-1: #0e1512;--green-2: #121b17;--green-3: #132d21;--green-4: #113b29;--green-5: #174933;--green-6: #20573e;--green-7: #28684a;--green-8: #2f7c57;--green-9: #30a46c;--green-10: #33b074;--green-11: #3dd68c;--green-12: #b1f1cb;--green-a1: #00de4505;--green-a2: #29f99d0b;--green-a3: #22ff991e;--green-a4: #11ff992d;--green-a5: #2bffa23c;--green-a6: #44ffaa4b;--green-a7: #50fdac5e;--green-a8: #54ffad73;--green-a9: #44ffa49e;--green-a10: #43fea4ab;--green-a11: #46fea5d4;--green-a12: #bbffd7f0;--indigo-1: #11131f;--indigo-2: #141726;--indigo-3: #182449;--indigo-4: #1d2e62;--indigo-5: #253974;--indigo-6: #304384;--indigo-7: #3a4f97;--indigo-8: #435db1;--indigo-9: #3e63dd;--indigo-10: #5472e4;--indigo-11: #9eb1ff;--indigo-12: #d6e1ff;--indigo-a1: #1133ff0f;--indigo-a2: #3354fa17;--indigo-a3: #2f62ff3c;--indigo-a4: #3566ff57;--indigo-a5: #4171fd6b;--indigo-a6: #5178fd7c;--indigo-a7: #5a7fff90;--indigo-a8: #5b81feac;--indigo-a9: #4671ffdb;--indigo-a10: #5c7efee3;--indigo-a11: #9eb1ff;--indigo-a12: #d6e1ff;--iris-1: #13131e;--iris-2: #171625;--iris-3: #202248;--iris-4: #262a65;--iris-5: #303374;--iris-6: #3d3e82;--iris-7: #4a4a95;--iris-8: #5958b1;--iris-9: #5b5bd6;--iris-10: #6e6ade;--iris-11: #b1a9ff;--iris-12: #e0dffe;--iris-a1: #3636fe0e;--iris-a2: #564bf916;--iris-a3: #525bff3b;--iris-a4: #4d58ff5a;--iris-a5: #5b62fd6b;--iris-a6: #6d6ffd7a;--iris-a7: #7777fe8e;--iris-a8: #7b7afeac;--iris-a9: #6a6afed4;--iris-a10: #7d79ffdc;--iris-a11: #b1a9ff;--iris-a12: #e1e0fffe;--jade-1: #0d1512;--jade-2: #121c18;--jade-3: #0f2e22;--jade-4: #0b3b2c;--jade-5: #114837;--jade-6: #1b5745;--jade-7: #246854;--jade-8: #2a7e68;--jade-9: #29a383;--jade-10: #27b08b;--jade-11: #1fd8a4;--jade-12: #adf0d4;--jade-a1: #00de4505;--jade-a2: #27fba60c;--jade-a3: #02f99920;--jade-a4: #00ffaa2d;--jade-a5: #11ffb63b;--jade-a6: #34ffc24b;--jade-a7: #45fdc75e;--jade-a8: #48ffcf75;--jade-a9: #38feca9d;--jade-a10: #31fec7ab;--jade-a11: #21fec0d6;--jade-a12: #b8ffe1ef;--lime-1: #11130c;--lime-2: #151a10;--lime-3: #1f2917;--lime-4: #29371d;--lime-5: #334423;--lime-6: #3d522a;--lime-7: #496231;--lime-8: #577538;--lime-9: #bdee63;--lime-10: #d4ff70;--lime-11: #bde56c;--lime-12: #e3f7ba;--lime-a1: #11bb0003;--lime-a2: #78f7000a;--lime-a3: #9bfd4c1a;--lime-a4: #a7fe5c29;--lime-a5: #affe6537;--lime-a6: #b2fe6d46;--lime-a7: #b6ff6f57;--lime-a8: #b6fd6d6c;--lime-a9: #caff69ed;--lime-a10: #d4ff70;--lime-a11: #d1fe77e4;--lime-a12: #e9febff7;--mint-1: #0e1515;--mint-2: #0f1b1b;--mint-3: #092c2b;--mint-4: #003a38;--mint-5: #004744;--mint-6: #105650;--mint-7: #1e685f;--mint-8: #277f70;--mint-9: #86ead4;--mint-10: #a8f5e5;--mint-11: #58d5ba;--mint-12: #c4f5e1;--mint-a1: #00dede05;--mint-a2: #00f9f90b;--mint-a3: #00fff61d;--mint-a4: #00fff42c;--mint-a5: #00fff23a;--mint-a6: #0effeb4a;--mint-a7: #34fde55e;--mint-a8: #41ffdf76;--mint-a9: #92ffe7e9;--mint-a10: #aefeedf5;--mint-a11: #67ffded2;--mint-a12: #cbfee9f5;--orange-1: #17120e;--orange-2: #1e160f;--orange-3: #331e0b;--orange-4: #462100;--orange-5: #562800;--orange-6: #66350c;--orange-7: #7e451d;--orange-8: #a35829;--orange-9: #f76b15;--orange-10: #ff801f;--orange-11: #ffa057;--orange-12: #ffe0c2;--orange-a1: #ec360007;--orange-a2: #fe6d000e;--orange-a3: #fb6a0025;--orange-a4: #ff590039;--orange-a5: #ff61004a;--orange-a6: #fd75045c;--orange-a7: #ff832c75;--orange-a8: #fe84389d;--orange-a9: #fe6d15f7;--orange-a10: #ff801f;--orange-a11: #ffa057;--orange-a12: #ffe0c2;--pink-1: #191117;--pink-2: #21121d;--pink-3: #37172f;--pink-4: #4b143d;--pink-5: #591c47;--pink-6: #692955;--pink-7: #833869;--pink-8: #a84885;--pink-9: #d6409f;--pink-10: #de51a8;--pink-11: #ff8dcc;--pink-12: #fdd1ea;--pink-a1: #f412bc09;--pink-a2: #f420bb12;--pink-a3: #fe37cc29;--pink-a4: #fc1ec43f;--pink-a5: #fd35c24e;--pink-a6: #fd51c75f;--pink-a7: #fd62c87b;--pink-a8: #ff68c8a2;--pink-a9: #fe49bcd4;--pink-a10: #ff5cc0dc;--pink-a11: #ff8dcc;--pink-a12: #ffd3ecfd;--plum-1: #181118;--plum-2: #201320;--plum-3: #351a35;--plum-4: #451d47;--plum-5: #512454;--plum-6: #5e3061;--plum-7: #734079;--plum-8: #92549c;--plum-9: #ab4aba;--plum-10: #b658c4;--plum-11: #e796f3;--plum-12: #f4d4f4;--plum-a1: #f112f108;--plum-a2: #f22ff211;--plum-a3: #fd4cfd27;--plum-a4: #f646ff3a;--plum-a5: #f455ff48;--plum-a6: #f66dff56;--plum-a7: #f07cfd70;--plum-a8: #ee84ff95;--plum-a9: #e961feb6;--plum-a10: #ed70ffc0;--plum-a11: #f19cfef3;--plum-a12: #feddfef4;--purple-1: #18111b;--purple-2: #1e1523;--purple-3: #301c3b;--purple-4: #3d224e;--purple-5: #48295c;--purple-6: #54346b;--purple-7: #664282;--purple-8: #8457aa;--purple-9: #8e4ec6;--purple-10: #9a5cd0;--purple-11: #d19dff;--purple-12: #ecd9fa;--purple-a1: #b412f90b;--purple-a2: #b744f714;--purple-a3: #c150ff2d;--purple-a4: #bb53fd42;--purple-a5: #be5cfd51;--purple-a6: #c16dfd61;--purple-a7: #c378fd7a;--purple-a8: #c47effa4;--purple-a9: #b661ffc2;--purple-a10: #bc6fffcd;--purple-a11: #d19dff;--purple-a12: #f1ddfffa;--red-1: #191111;--red-2: #201314;--red-3: #3b1219;--red-4: #500f1c;--red-5: #611623;--red-6: #72232d;--red-7: #8c333a;--red-8: #b54548;--red-9: #e5484d;--red-10: #ec5d5e;--red-11: #ff9592;--red-12: #ffd1d9;--red-a1: #f4121209;--red-a2: #f22f3e11;--red-a3: #ff173f2d;--red-a4: #fe0a3b44;--red-a5: #ff204756;--red-a6: #ff3e5668;--red-a7: #ff536184;--red-a8: #ff5d61b0;--red-a9: #fe4e54e4;--red-a10: #ff6465eb;--red-a11: #ff9592;--red-a12: #ffd1d9;--ruby-1: #191113;--ruby-2: #1e1517;--ruby-3: #3a141e;--ruby-4: #4e1325;--ruby-5: #5e1a2e;--ruby-6: #6f2539;--ruby-7: #883447;--ruby-8: #b3445a;--ruby-9: #e54666;--ruby-10: #ec5a72;--ruby-11: #ff949d;--ruby-12: #fed2e1;--ruby-a1: #f4124a09;--ruby-a2: #fe5a7f0e;--ruby-a3: #ff235d2c;--ruby-a4: #fd195e42;--ruby-a5: #fe2d6b53;--ruby-a6: #ff447665;--ruby-a7: #ff577d80;--ruby-a8: #ff5c7cae;--ruby-a9: #fe4c70e4;--ruby-a10: #ff617beb;--ruby-a11: #ff949d;--ruby-a12: #ffd3e2fe;--sky-1: #0d141f;--sky-2: #111a27;--sky-3: #112840;--sky-4: #113555;--sky-5: #154467;--sky-6: #1b537b;--sky-7: #1f6692;--sky-8: #197cae;--sky-9: #7ce2fe;--sky-10: #a8eeff;--sky-11: #75c7f0;--sky-12: #c2f3ff;--sky-a1: #0044ff0f;--sky-a2: #1171fb18;--sky-a3: #1184fc33;--sky-a4: #128fff49;--sky-a5: #1c9dfd5d;--sky-a6: #28a5ff72;--sky-a7: #2badfe8b;--sky-a8: #1db2fea9;--sky-a9: #7ce3fffe;--sky-a10: #a8eeff;--sky-a11: #7cd3ffef;--sky-a12: #c2f3ff;--teal-1: #0d1514;--teal-2: #111c1b;--teal-3: #0d2d2a;--teal-4: #023b37;--teal-5: #084843;--teal-6: #145750;--teal-7: #1c6961;--teal-8: #207e73;--teal-9: #12a594;--teal-10: #0eb39e;--teal-11: #0bd8b6;--teal-12: #adf0dd;--teal-a1: #00deab05;--teal-a2: #12fbe60c;--teal-a3: #00ffe61e;--teal-a4: #00ffe92d;--teal-a5: #00ffea3b;--teal-a6: #1cffe84b;--teal-a7: #2efde85f;--teal-a8: #32ffe775;--teal-a9: #13ffe49f;--teal-a10: #0dffe0ae;--teal-a11: #0afed5d6;--teal-a12: #b8ffebef;--tomato-1: #181111;--tomato-2: #1f1513;--tomato-3: #391714;--tomato-4: #4e1511;--tomato-5: #5e1c16;--tomato-6: #6e2920;--tomato-7: #853a2d;--tomato-8: #ac4d39;--tomato-9: #e54d2e;--tomato-10: #ec6142;--tomato-11: #ff977d;--tomato-12: #fbd3cb;--tomato-a1: #f1121208;--tomato-a2: #ff55330f;--tomato-a3: #ff35232b;--tomato-a4: #fd201142;--tomato-a5: #fe332153;--tomato-a6: #ff4f3864;--tomato-a7: #fd644a7d;--tomato-a8: #fe6d4ea7;--tomato-a9: #fe5431e4;--tomato-a10: #ff6847eb;--tomato-a11: #ff977d;--tomato-a12: #ffd6cefb;--violet-1: #14121f;--violet-2: #1b1525;--violet-3: #291f43;--violet-4: #33255b;--violet-5: #3c2e69;--violet-6: #473876;--violet-7: #56468b;--violet-8: #6958ad;--violet-9: #6e56cf;--violet-10: #7d66d9;--violet-11: #baa7ff;--violet-12: #e2ddfe;--violet-a1: #4422ff0f;--violet-a2: #853ff916;--violet-a3: #8354fe36;--violet-a4: #7d51fd50;--violet-a5: #845ffd5f;--violet-a6: #8f6cfd6d;--violet-a7: #9879ff83;--violet-a8: #977dfea8;--violet-a9: #8668ffcc;--violet-a10: #9176fed7;--violet-a11: #baa7ff;--violet-a12: #e3defffe;--yellow-1: #14120b;--yellow-2: #1b180f;--yellow-3: #2d2305;--yellow-4: #362b00;--yellow-5: #433500;--yellow-6: #524202;--yellow-7: #665417;--yellow-8: #836a21;--yellow-9: #ffe629;--yellow-10: #ffff57;--yellow-11: #f5e147;--yellow-12: #f6eeb4;--yellow-a1: #d1510004;--yellow-a2: #f9b4000b;--yellow-a3: #ffaa001e;--yellow-a4: #fdb70028;--yellow-a5: #febb0036;--yellow-a6: #fec40046;--yellow-a7: #fdcb225c;--yellow-a8: #fdca327b;--yellow-a9: #ffe629;--yellow-a10: #ffff57;--yellow-a11: #fee949f5;--yellow-a12: #fef6baf6;--gray-surface: #21212180;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #22212380;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #1f212380;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #1e201f80;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #1f201e80;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #21212080;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #271f1380;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #11213d80;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #27211d80;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #271f1b80;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #2f151f80;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #11252d80;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #25231d80;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #19231b80;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #15251d80;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #171d3b80;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #1d1b3980;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #13271f80;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #1b211580;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #15272780;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #271d1380;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #31132980;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #2f152f80;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #2b173580;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #2f151780;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #2b191d80;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #13233b80;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #13272580;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #2d191580;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #25193980;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #231f1380;--yellow-indicator: var(--yellow-9);--yellow-track: var(--yellow-9)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.dark,.dark-theme{--gray-1: color(display-p3 .067 .067 .067);--gray-2: color(display-p3 .098 .098 .098);--gray-3: color(display-p3 .135 .135 .135);--gray-4: color(display-p3 .163 .163 .163);--gray-5: color(display-p3 .192 .192 .192);--gray-6: color(display-p3 .228 .228 .228);--gray-7: color(display-p3 .283 .283 .283);--gray-8: color(display-p3 .375 .375 .375);--gray-9: color(display-p3 .431 .431 .431);--gray-10: color(display-p3 .484 .484 .484);--gray-11: color(display-p3 .706 .706 .706);--gray-12: color(display-p3 .933 .933 .933);--gray-a1: color(display-p3 0 0 0 / 0);--gray-a2: color(display-p3 1 1 1 / .034);--gray-a3: color(display-p3 1 1 1 / .071);--gray-a4: color(display-p3 1 1 1 / .105);--gray-a5: color(display-p3 1 1 1 / .134);--gray-a6: color(display-p3 1 1 1 / .172);--gray-a7: color(display-p3 1 1 1 / .231);--gray-a8: color(display-p3 1 1 1 / .332);--gray-a9: color(display-p3 1 1 1 / .391);--gray-a10: color(display-p3 1 1 1 / .445);--gray-a11: color(display-p3 1 1 1 / .685);--gray-a12: color(display-p3 1 1 1 / .929);--mauve-1: color(display-p3 .07 .067 .074);--mauve-2: color(display-p3 .101 .098 .105);--mauve-3: color(display-p3 .138 .134 .144);--mauve-4: color(display-p3 .167 .161 .175);--mauve-5: color(display-p3 .196 .189 .206);--mauve-6: color(display-p3 .232 .225 .245);--mauve-7: color(display-p3 .286 .277 .302);--mauve-8: color(display-p3 .383 .373 .408);--mauve-9: color(display-p3 .434 .428 .467);--mauve-10: color(display-p3 .487 .48 .519);--mauve-11: color(display-p3 .707 .7 .735);--mauve-12: color(display-p3 .933 .933 .94);--mauve-a1: color(display-p3 0 0 0 / 0);--mauve-a2: color(display-p3 .996 .992 1 / .034);--mauve-a3: color(display-p3 .937 .933 .992 / .077);--mauve-a4: color(display-p3 .957 .918 .996 / .111);--mauve-a5: color(display-p3 .937 .906 .996 / .145);--mauve-a6: color(display-p3 .953 .925 .996 / .183);--mauve-a7: color(display-p3 .945 .929 1 / .246);--mauve-a8: color(display-p3 .937 .918 1 / .361);--mauve-a9: color(display-p3 .933 .918 1 / .424);--mauve-a10: color(display-p3 .941 .925 1 / .479);--mauve-a11: color(display-p3 .965 .961 1 / .712);--mauve-a12: color(display-p3 .992 .992 1 / .937);--slate-1: color(display-p3 .067 .067 .074);--slate-2: color(display-p3 .095 .098 .105);--slate-3: color(display-p3 .13 .135 .145);--slate-4: color(display-p3 .156 .163 .176);--slate-5: color(display-p3 .183 .191 .206);--slate-6: color(display-p3 .215 .226 .244);--slate-7: color(display-p3 .265 .28 .302);--slate-8: color(display-p3 .357 .381 .409);--slate-9: color(display-p3 .415 .431 .463);--slate-10: color(display-p3 .469 .483 .514);--slate-11: color(display-p3 .692 .704 .728);--slate-12: color(display-p3 .93 .933 .94);--slate-a1: color(display-p3 0 0 0 / 0);--slate-a2: color(display-p3 .875 .992 1 / .034);--slate-a3: color(display-p3 .882 .933 .992 / .077);--slate-a4: color(display-p3 .882 .953 .996 / .111);--slate-a5: color(display-p3 .878 .929 .996 / .145);--slate-a6: color(display-p3 .882 .949 .996 / .183);--slate-a7: color(display-p3 .882 .929 1 / .246);--slate-a8: color(display-p3 .871 .937 1 / .361);--slate-a9: color(display-p3 .898 .937 1 / .42);--slate-a10: color(display-p3 .918 .945 1 / .475);--slate-a11: color(display-p3 .949 .969 .996 / .708);--slate-a12: color(display-p3 .988 .992 1 / .937);--sage-1: color(display-p3 .064 .07 .067);--sage-2: color(display-p3 .092 .098 .094);--sage-3: color(display-p3 .128 .135 .131);--sage-4: color(display-p3 .155 .164 .159);--sage-5: color(display-p3 .183 .193 .188);--sage-6: color(display-p3 .218 .23 .224);--sage-7: color(display-p3 .269 .285 .277);--sage-8: color(display-p3 .362 .382 .373);--sage-9: color(display-p3 .398 .438 .421);--sage-10: color(display-p3 .453 .49 .474);--sage-11: color(display-p3 .685 .709 .697);--sage-12: color(display-p3 .927 .933 .93);--sage-a1: color(display-p3 0 0 0 / 0);--sage-a2: color(display-p3 .976 .988 .984 / .03);--sage-a3: color(display-p3 .992 .945 .941 / .072);--sage-a4: color(display-p3 .988 .996 .992 / .102);--sage-a5: color(display-p3 .992 1 .996 / .131);--sage-a6: color(display-p3 .973 1 .976 / .173);--sage-a7: color(display-p3 .957 1 .976 / .233);--sage-a8: color(display-p3 .957 1 .984 / .334);--sage-a9: color(display-p3 .902 1 .957 / .397);--sage-a10: color(display-p3 .929 1 .973 / .452);--sage-a11: color(display-p3 .969 1 .988 / .688);--sage-a12: color(display-p3 .992 1 .996 / .929);--olive-1: color(display-p3 .067 .07 .063);--olive-2: color(display-p3 .095 .098 .091);--olive-3: color(display-p3 .131 .135 .126);--olive-4: color(display-p3 .158 .163 .153);--olive-5: color(display-p3 .186 .192 .18);--olive-6: color(display-p3 .221 .229 .215);--olive-7: color(display-p3 .273 .284 .266);--olive-8: color(display-p3 .365 .382 .359);--olive-9: color(display-p3 .414 .438 .404);--olive-10: color(display-p3 .467 .49 .458);--olive-11: color(display-p3 .69 .709 .682);--olive-12: color(display-p3 .927 .933 .926);--olive-a1: color(display-p3 0 0 0 / 0);--olive-a2: color(display-p3 .984 .988 .976 / .03);--olive-a3: color(display-p3 .992 .996 .988 / .068);--olive-a4: color(display-p3 .953 .996 .949 / .102);--olive-a5: color(display-p3 .969 1 .965 / .131);--olive-a6: color(display-p3 .973 1 .969 / .169);--olive-a7: color(display-p3 .98 1 .961 / .228);--olive-a8: color(display-p3 .961 1 .957 / .334);--olive-a9: color(display-p3 .949 1 .922 / .397);--olive-a10: color(display-p3 .953 1 .941 / .452);--olive-a11: color(display-p3 .976 1 .965 / .688);--olive-a12: color(display-p3 .992 1 .992 / .929);--sand-1: color(display-p3 .067 .067 .063);--sand-2: color(display-p3 .098 .098 .094);--sand-3: color(display-p3 .135 .135 .129);--sand-4: color(display-p3 .164 .163 .156);--sand-5: color(display-p3 .193 .192 .183);--sand-6: color(display-p3 .23 .229 .217);--sand-7: color(display-p3 .285 .282 .267);--sand-8: color(display-p3 .384 .378 .357);--sand-9: color(display-p3 .434 .428 .403);--sand-10: color(display-p3 .487 .481 .456);--sand-11: color(display-p3 .707 .703 .68);--sand-12: color(display-p3 .933 .933 .926);--sand-a1: color(display-p3 0 0 0 / 0);--sand-a2: color(display-p3 .992 .992 .988 / .034);--sand-a3: color(display-p3 .996 .996 .992 / .072);--sand-a4: color(display-p3 .992 .992 .953 / .106);--sand-a5: color(display-p3 1 1 .965 / .135);--sand-a6: color(display-p3 1 .976 .929 / .177);--sand-a7: color(display-p3 1 .984 .929 / .236);--sand-a8: color(display-p3 1 .976 .925 / .341);--sand-a9: color(display-p3 1 .98 .925 / .395);--sand-a10: color(display-p3 1 .992 .933 / .45);--sand-a11: color(display-p3 1 .996 .961 / .685);--sand-a12: color(display-p3 1 1 .992 / .929);--amber-1: color(display-p3 .082 .07 .05);--amber-2: color(display-p3 .111 .094 .064);--amber-3: color(display-p3 .178 .128 .049);--amber-4: color(display-p3 .239 .156 0);--amber-5: color(display-p3 .29 .193 0);--amber-6: color(display-p3 .344 .245 .076);--amber-7: color(display-p3 .422 .314 .141);--amber-8: color(display-p3 .535 .399 .189);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 1 .87 .15);--amber-11: color(display-p3 1 .8 .29);--amber-12: color(display-p3 .984 .909 .726);--amber-a1: color(display-p3 .992 .298 0 / .017);--amber-a2: color(display-p3 .988 .651 0 / .047);--amber-a3: color(display-p3 1 .6 0 / .118);--amber-a4: color(display-p3 1 .557 0 / .185);--amber-a5: color(display-p3 1 .592 0 / .24);--amber-a6: color(display-p3 1 .659 .094 / .299);--amber-a7: color(display-p3 1 .714 .263 / .383);--amber-a8: color(display-p3 .996 .729 .306 / .5);--amber-a9: color(display-p3 1 .769 .259);--amber-a10: color(display-p3 1 .871 .149);--amber-a11: color(display-p3 1 .8 .29);--amber-a12: color(display-p3 .984 .909 .726);--blue-1: color(display-p3 .057 .081 .122);--blue-2: color(display-p3 .072 .098 .147);--blue-3: color(display-p3 .078 .154 .27);--blue-4: color(display-p3 .033 .197 .37);--blue-5: color(display-p3 .08 .245 .441);--blue-6: color(display-p3 .14 .298 .511);--blue-7: color(display-p3 .195 .361 .6);--blue-8: color(display-p3 .239 .434 .72);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .344 .612 .973);--blue-11: color(display-p3 .49 .72 1);--blue-12: color(display-p3 .788 .898 .99);--blue-a1: color(display-p3 0 .333 1 / .059);--blue-a2: color(display-p3 .114 .435 .988 / .085);--blue-a3: color(display-p3 .122 .463 1 / .219);--blue-a4: color(display-p3 0 .467 1 / .324);--blue-a5: color(display-p3 .098 .51 1 / .4);--blue-a6: color(display-p3 .224 .557 1 / .475);--blue-a7: color(display-p3 .294 .584 1 / .572);--blue-a8: color(display-p3 .314 .592 1 / .702);--blue-a9: color(display-p3 .251 .573 .996 / .967);--blue-a10: color(display-p3 .357 .631 1 / .971);--blue-a11: color(display-p3 .49 .72 1);--blue-a12: color(display-p3 .788 .898 .99);--bronze-1: color(display-p3 .076 .067 .063);--bronze-2: color(display-p3 .106 .097 .093);--bronze-3: color(display-p3 .147 .132 .125);--bronze-4: color(display-p3 .185 .166 .156);--bronze-5: color(display-p3 .227 .202 .19);--bronze-6: color(display-p3 .278 .246 .23);--bronze-7: color(display-p3 .343 .302 .281);--bronze-8: color(display-p3 .426 .374 .347);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .66 .556 .504);--bronze-11: color(display-p3 .81 .707 .655);--bronze-12: color(display-p3 .921 .88 .854);--bronze-a1: color(display-p3 .941 .067 0 / .009);--bronze-a2: color(display-p3 .98 .8 .706 / .043);--bronze-a3: color(display-p3 .988 .851 .761 / .085);--bronze-a4: color(display-p3 .996 .839 .78 / .127);--bronze-a5: color(display-p3 .996 .863 .773 / .173);--bronze-a6: color(display-p3 1 .863 .796 / .227);--bronze-a7: color(display-p3 1 .867 .8 / .295);--bronze-a8: color(display-p3 1 .859 .788 / .387);--bronze-a9: color(display-p3 1 .82 .733 / .585);--bronze-a10: color(display-p3 1 .839 .761 / .635);--bronze-a11: color(display-p3 .81 .707 .655);--bronze-a12: color(display-p3 .921 .88 .854);--brown-1: color(display-p3 .071 .067 .059);--brown-2: color(display-p3 .107 .095 .087);--brown-3: color(display-p3 .151 .13 .115);--brown-4: color(display-p3 .191 .161 .138);--brown-5: color(display-p3 .235 .194 .162);--brown-6: color(display-p3 .291 .237 .192);--brown-7: color(display-p3 .365 .295 .232);--brown-8: color(display-p3 .469 .377 .287);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .697 .557 .423);--brown-11: color(display-p3 .835 .715 .597);--brown-12: color(display-p3 .938 .885 .802);--brown-a1: color(display-p3 .855 .071 0 / .005);--brown-a2: color(display-p3 .98 .706 .525 / .043);--brown-a3: color(display-p3 .996 .745 .576 / .093);--brown-a4: color(display-p3 1 .765 .592 / .135);--brown-a5: color(display-p3 1 .761 .588 / .181);--brown-a6: color(display-p3 1 .773 .592 / .24);--brown-a7: color(display-p3 .996 .776 .58 / .32);--brown-a8: color(display-p3 1 .78 .573 / .433);--brown-a9: color(display-p3 1 .769 .549 / .627);--brown-a10: color(display-p3 1 .792 .596 / .677);--brown-a11: color(display-p3 .835 .715 .597);--brown-a12: color(display-p3 .938 .885 .802);--crimson-1: color(display-p3 .093 .068 .078);--crimson-2: color(display-p3 .117 .078 .095);--crimson-3: color(display-p3 .203 .091 .143);--crimson-4: color(display-p3 .277 .087 .182);--crimson-5: color(display-p3 .332 .115 .22);--crimson-6: color(display-p3 .394 .162 .268);--crimson-7: color(display-p3 .489 .222 .336);--crimson-8: color(display-p3 .638 .289 .429);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .864 .364 .539);--crimson-11: color(display-p3 1 .56 .66);--crimson-12: color(display-p3 .966 .834 .906);--crimson-a1: color(display-p3 .984 .071 .463 / .03);--crimson-a2: color(display-p3 .996 .282 .569 / .055);--crimson-a3: color(display-p3 .996 .227 .573 / .148);--crimson-a4: color(display-p3 1 .157 .569 / .227);--crimson-a5: color(display-p3 1 .231 .604 / .286);--crimson-a6: color(display-p3 1 .337 .643 / .349);--crimson-a7: color(display-p3 1 .416 .663 / .454);--crimson-a8: color(display-p3 .996 .427 .651 / .614);--crimson-a9: color(display-p3 1 .345 .596 / .832);--crimson-a10: color(display-p3 1 .42 .62 / .853);--crimson-a11: color(display-p3 1 .56 .66);--crimson-a12: color(display-p3 .966 .834 .906);--cyan-1: color(display-p3 .053 .085 .098);--cyan-2: color(display-p3 .072 .105 .122);--cyan-3: color(display-p3 .073 .168 .209);--cyan-4: color(display-p3 .063 .216 .277);--cyan-5: color(display-p3 .091 .267 .336);--cyan-6: color(display-p3 .137 .324 .4);--cyan-7: color(display-p3 .186 .398 .484);--cyan-8: color(display-p3 .23 .496 .6);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .331 .675 .801);--cyan-11: color(display-p3 .446 .79 .887);--cyan-12: color(display-p3 .757 .919 .962);--cyan-a1: color(display-p3 0 .647 .992 / .034);--cyan-a2: color(display-p3 .133 .733 1 / .059);--cyan-a3: color(display-p3 .122 .741 .996 / .152);--cyan-a4: color(display-p3 .051 .725 1 / .227);--cyan-a5: color(display-p3 .149 .757 1 / .29);--cyan-a6: color(display-p3 .267 .792 1 / .358);--cyan-a7: color(display-p3 .333 .808 1 / .446);--cyan-a8: color(display-p3 .357 .816 1 / .572);--cyan-a9: color(display-p3 .357 .82 1 / .748);--cyan-a10: color(display-p3 .4 .839 1 / .786);--cyan-a11: color(display-p3 .446 .79 .887);--cyan-a12: color(display-p3 .757 .919 .962);--gold-1: color(display-p3 .071 .071 .067);--gold-2: color(display-p3 .104 .101 .09);--gold-3: color(display-p3 .141 .136 .122);--gold-4: color(display-p3 .177 .17 .152);--gold-5: color(display-p3 .217 .207 .185);--gold-6: color(display-p3 .265 .252 .225);--gold-7: color(display-p3 .327 .31 .277);--gold-8: color(display-p3 .407 .384 .342);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .628 .566 .463);--gold-11: color(display-p3 .784 .728 .635);--gold-12: color(display-p3 .906 .887 .855);--gold-a1: color(display-p3 .855 .855 .071 / .005);--gold-a2: color(display-p3 .98 .89 .616 / .043);--gold-a3: color(display-p3 1 .949 .753 / .08);--gold-a4: color(display-p3 1 .933 .8 / .118);--gold-a5: color(display-p3 1 .949 .804 / .16);--gold-a6: color(display-p3 1 .925 .8 / .215);--gold-a7: color(display-p3 1 .945 .831 / .278);--gold-a8: color(display-p3 1 .937 .82 / .366);--gold-a9: color(display-p3 .996 .882 .69 / .551);--gold-a10: color(display-p3 1 .894 .725 / .601);--gold-a11: color(display-p3 .784 .728 .635);--gold-a12: color(display-p3 .906 .887 .855);--grass-1: color(display-p3 .062 .083 .067);--grass-2: color(display-p3 .083 .103 .085);--grass-3: color(display-p3 .118 .163 .122);--grass-4: color(display-p3 .142 .225 .15);--grass-5: color(display-p3 .178 .279 .186);--grass-6: color(display-p3 .217 .337 .224);--grass-7: color(display-p3 .258 .4 .264);--grass-8: color(display-p3 .302 .47 .305);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .426 .694 .426);--grass-11: color(display-p3 .535 .807 .542);--grass-12: color(display-p3 .797 .936 .776);--grass-a1: color(display-p3 0 .992 .071 / .017);--grass-a2: color(display-p3 .482 .996 .584 / .038);--grass-a3: color(display-p3 .549 .992 .588 / .106);--grass-a4: color(display-p3 .51 .996 .557 / .169);--grass-a5: color(display-p3 .553 1 .588 / .227);--grass-a6: color(display-p3 .584 1 .608 / .29);--grass-a7: color(display-p3 .604 1 .616 / .358);--grass-a8: color(display-p3 .608 1 .62 / .433);--grass-a9: color(display-p3 .573 1 .569 / .622);--grass-a10: color(display-p3 .6 .996 .6 / .673);--grass-a11: color(display-p3 .535 .807 .542);--grass-a12: color(display-p3 .797 .936 .776);--green-1: color(display-p3 .062 .083 .071);--green-2: color(display-p3 .079 .106 .09);--green-3: color(display-p3 .1 .173 .133);--green-4: color(display-p3 .115 .229 .166);--green-5: color(display-p3 .147 .282 .206);--green-6: color(display-p3 .185 .338 .25);--green-7: color(display-p3 .227 .403 .298);--green-8: color(display-p3 .27 .479 .351);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .357 .682 .474);--green-11: color(display-p3 .434 .828 .573);--green-12: color(display-p3 .747 .938 .807);--green-a1: color(display-p3 0 .992 .298 / .017);--green-a2: color(display-p3 .341 .98 .616 / .043);--green-a3: color(display-p3 .376 .996 .655 / .114);--green-a4: color(display-p3 .341 .996 .635 / .173);--green-a5: color(display-p3 .408 1 .678 / .232);--green-a6: color(display-p3 .475 1 .706 / .29);--green-a7: color(display-p3 .514 1 .706 / .362);--green-a8: color(display-p3 .529 1 .718 / .442);--green-a9: color(display-p3 .502 .996 .682 / .61);--green-a10: color(display-p3 .506 1 .682 / .66);--green-a11: color(display-p3 .434 .828 .573);--green-a12: color(display-p3 .747 .938 .807);--indigo-1: color(display-p3 .068 .074 .118);--indigo-2: color(display-p3 .081 .089 .144);--indigo-3: color(display-p3 .105 .141 .275);--indigo-4: color(display-p3 .129 .18 .369);--indigo-5: color(display-p3 .163 .22 .439);--indigo-6: color(display-p3 .203 .262 .5);--indigo-7: color(display-p3 .245 .309 .575);--indigo-8: color(display-p3 .285 .362 .674);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .354 .445 .866);--indigo-11: color(display-p3 .63 .69 1);--indigo-12: color(display-p3 .848 .881 .99);--indigo-a1: color(display-p3 .071 .212 .996 / .055);--indigo-a2: color(display-p3 .251 .345 .988 / .085);--indigo-a3: color(display-p3 .243 .404 1 / .223);--indigo-a4: color(display-p3 .263 .42 1 / .324);--indigo-a5: color(display-p3 .314 .451 1 / .4);--indigo-a6: color(display-p3 .361 .49 1 / .467);--indigo-a7: color(display-p3 .388 .51 1 / .547);--indigo-a8: color(display-p3 .404 .518 1 / .652);--indigo-a9: color(display-p3 .318 .451 1 / .824);--indigo-a10: color(display-p3 .404 .506 1 / .858);--indigo-a11: color(display-p3 .63 .69 1);--indigo-a12: color(display-p3 .848 .881 .99);--iris-1: color(display-p3 .075 .075 .114);--iris-2: color(display-p3 .089 .086 .14);--iris-3: color(display-p3 .128 .134 .272);--iris-4: color(display-p3 .153 .165 .382);--iris-5: color(display-p3 .192 .201 .44);--iris-6: color(display-p3 .239 .241 .491);--iris-7: color(display-p3 .291 .289 .565);--iris-8: color(display-p3 .35 .345 .673);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .428 .416 .843);--iris-11: color(display-p3 .685 .662 1);--iris-12: color(display-p3 .878 .875 .986);--iris-a1: color(display-p3 .224 .224 .992 / .051);--iris-a2: color(display-p3 .361 .314 1 / .08);--iris-a3: color(display-p3 .357 .373 1 / .219);--iris-a4: color(display-p3 .325 .361 1 / .337);--iris-a5: color(display-p3 .38 .4 1 / .4);--iris-a6: color(display-p3 .447 .447 1 / .454);--iris-a7: color(display-p3 .486 .486 1 / .534);--iris-a8: color(display-p3 .502 .494 1 / .652);--iris-a9: color(display-p3 .431 .431 1 / .799);--iris-a10: color(display-p3 .502 .486 1 / .832);--iris-a11: color(display-p3 .685 .662 1);--iris-a12: color(display-p3 .878 .875 .986);--jade-1: color(display-p3 .059 .083 .071);--jade-2: color(display-p3 .078 .11 .094);--jade-3: color(display-p3 .091 .176 .138);--jade-4: color(display-p3 .102 .228 .177);--jade-5: color(display-p3 .133 .279 .221);--jade-6: color(display-p3 .174 .334 .273);--jade-7: color(display-p3 .219 .402 .335);--jade-8: color(display-p3 .263 .488 .411);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .338 .68 .555);--jade-11: color(display-p3 .4 .835 .656);--jade-12: color(display-p3 .734 .934 .838);--jade-a1: color(display-p3 0 .992 .298 / .017);--jade-a2: color(display-p3 .318 .988 .651 / .047);--jade-a3: color(display-p3 .267 1 .667 / .118);--jade-a4: color(display-p3 .275 .996 .702 / .173);--jade-a5: color(display-p3 .361 1 .741 / .227);--jade-a6: color(display-p3 .439 1 .796 / .286);--jade-a7: color(display-p3 .49 1 .804 / .362);--jade-a8: color(display-p3 .506 1 .835 / .45);--jade-a9: color(display-p3 .478 .996 .816 / .606);--jade-a10: color(display-p3 .478 1 .816 / .656);--jade-a11: color(display-p3 .4 .835 .656);--jade-a12: color(display-p3 .734 .934 .838);--lime-1: color(display-p3 .067 .073 .048);--lime-2: color(display-p3 .086 .1 .067);--lime-3: color(display-p3 .13 .16 .099);--lime-4: color(display-p3 .172 .214 .126);--lime-5: color(display-p3 .213 .266 .153);--lime-6: color(display-p3 .257 .321 .182);--lime-7: color(display-p3 .307 .383 .215);--lime-8: color(display-p3 .365 .456 .25);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .865 .995 .519);--lime-11: color(display-p3 .771 .893 .485);--lime-12: color(display-p3 .905 .966 .753);--lime-a1: color(display-p3 .067 .941 0 / .009);--lime-a2: color(display-p3 .584 .996 .071 / .038);--lime-a3: color(display-p3 .69 1 .38 / .101);--lime-a4: color(display-p3 .729 1 .435 / .16);--lime-a5: color(display-p3 .745 1 .471 / .215);--lime-a6: color(display-p3 .769 1 .482 / .274);--lime-a7: color(display-p3 .769 1 .506 / .341);--lime-a8: color(display-p3 .784 1 .51 / .416);--lime-a9: color(display-p3 .839 1 .502 / .925);--lime-a10: color(display-p3 .871 1 .522 / .996);--lime-a11: color(display-p3 .771 .893 .485);--lime-a12: color(display-p3 .905 .966 .753);--mint-1: color(display-p3 .059 .082 .081);--mint-2: color(display-p3 .068 .104 .105);--mint-3: color(display-p3 .077 .17 .168);--mint-4: color(display-p3 .068 .224 .22);--mint-5: color(display-p3 .104 .275 .264);--mint-6: color(display-p3 .154 .332 .313);--mint-7: color(display-p3 .207 .403 .373);--mint-8: color(display-p3 .258 .49 .441);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .725 .954 .898);--mint-11: color(display-p3 .482 .825 .733);--mint-12: color(display-p3 .807 .955 .887);--mint-a1: color(display-p3 0 .992 .992 / .017);--mint-a2: color(display-p3 .071 .98 .98 / .043);--mint-a3: color(display-p3 .176 .996 .996 / .11);--mint-a4: color(display-p3 .071 .996 .973 / .169);--mint-a5: color(display-p3 .243 1 .949 / .223);--mint-a6: color(display-p3 .369 1 .933 / .286);--mint-a7: color(display-p3 .459 1 .914 / .362);--mint-a8: color(display-p3 .49 1 .89 / .454);--mint-a9: color(display-p3 .678 .996 .914 / .904);--mint-a10: color(display-p3 .761 1 .941 / .95);--mint-a11: color(display-p3 .482 .825 .733);--mint-a12: color(display-p3 .807 .955 .887);--orange-1: color(display-p3 .088 .07 .057);--orange-2: color(display-p3 .113 .089 .061);--orange-3: color(display-p3 .189 .12 .056);--orange-4: color(display-p3 .262 .132 0);--orange-5: color(display-p3 .315 .168 .016);--orange-6: color(display-p3 .376 .219 .088);--orange-7: color(display-p3 .465 .283 .147);--orange-8: color(display-p3 .601 .359 .201);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .98 .51 .23);--orange-11: color(display-p3 1 .63 .38);--orange-12: color(display-p3 .98 .883 .775);--orange-a1: color(display-p3 .961 .247 0 / .022);--orange-a2: color(display-p3 .992 .529 0 / .051);--orange-a3: color(display-p3 .996 .486 0 / .131);--orange-a4: color(display-p3 .996 .384 0 / .211);--orange-a5: color(display-p3 1 .455 0 / .265);--orange-a6: color(display-p3 1 .529 .129 / .332);--orange-a7: color(display-p3 1 .569 .251 / .429);--orange-a8: color(display-p3 1 .584 .302 / .572);--orange-a9: color(display-p3 1 .494 .216 / .895);--orange-a10: color(display-p3 1 .522 .235 / .979);--orange-a11: color(display-p3 1 .63 .38);--orange-a12: color(display-p3 .98 .883 .775);--pink-1: color(display-p3 .093 .068 .089);--pink-2: color(display-p3 .121 .073 .11);--pink-3: color(display-p3 .198 .098 .179);--pink-4: color(display-p3 .271 .095 .231);--pink-5: color(display-p3 .32 .127 .273);--pink-6: color(display-p3 .382 .177 .326);--pink-7: color(display-p3 .477 .238 .405);--pink-8: color(display-p3 .612 .304 .51);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .808 .356 .645);--pink-11: color(display-p3 1 .535 .78);--pink-12: color(display-p3 .964 .826 .912);--pink-a1: color(display-p3 .984 .071 .855 / .03);--pink-a2: color(display-p3 1 .2 .8 / .059);--pink-a3: color(display-p3 1 .294 .886 / .139);--pink-a4: color(display-p3 1 .192 .82 / .219);--pink-a5: color(display-p3 1 .282 .827 / .274);--pink-a6: color(display-p3 1 .396 .835 / .337);--pink-a7: color(display-p3 1 .459 .831 / .442);--pink-a8: color(display-p3 1 .478 .827 / .585);--pink-a9: color(display-p3 1 .373 .784 / .761);--pink-a10: color(display-p3 1 .435 .792 / .795);--pink-a11: color(display-p3 1 .535 .78);--pink-a12: color(display-p3 .964 .826 .912);--plum-1: color(display-p3 .09 .068 .092);--plum-2: color(display-p3 .118 .077 .121);--plum-3: color(display-p3 .192 .105 .202);--plum-4: color(display-p3 .25 .121 .271);--plum-5: color(display-p3 .293 .152 .319);--plum-6: color(display-p3 .343 .198 .372);--plum-7: color(display-p3 .424 .262 .461);--plum-8: color(display-p3 .54 .341 .595);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .666 .365 .748);--plum-11: color(display-p3 .86 .602 .933);--plum-12: color(display-p3 .936 .836 .949);--plum-a1: color(display-p3 .973 .071 .973 / .026);--plum-a2: color(display-p3 .933 .267 1 / .059);--plum-a3: color(display-p3 .918 .333 .996 / .148);--plum-a4: color(display-p3 .91 .318 1 / .219);--plum-a5: color(display-p3 .914 .388 1 / .269);--plum-a6: color(display-p3 .906 .463 1 / .328);--plum-a7: color(display-p3 .906 .529 1 / .425);--plum-a8: color(display-p3 .906 .553 1 / .568);--plum-a9: color(display-p3 .875 .427 1 / .69);--plum-a10: color(display-p3 .886 .471 .996 / .732);--plum-a11: color(display-p3 .86 .602 .933);--plum-a12: color(display-p3 .936 .836 .949);--purple-1: color(display-p3 .09 .068 .103);--purple-2: color(display-p3 .113 .082 .134);--purple-3: color(display-p3 .175 .112 .224);--purple-4: color(display-p3 .224 .137 .297);--purple-5: color(display-p3 .264 .167 .349);--purple-6: color(display-p3 .311 .208 .406);--purple-7: color(display-p3 .381 .266 .496);--purple-8: color(display-p3 .49 .349 .649);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .57 .373 .791);--purple-11: color(display-p3 .8 .62 1);--purple-12: color(display-p3 .913 .854 .971);--purple-a1: color(display-p3 .686 .071 .996 / .038);--purple-a2: color(display-p3 .722 .286 .996 / .072);--purple-a3: color(display-p3 .718 .349 .996 / .169);--purple-a4: color(display-p3 .702 .353 1 / .248);--purple-a5: color(display-p3 .718 .404 1 / .303);--purple-a6: color(display-p3 .733 .455 1 / .366);--purple-a7: color(display-p3 .753 .506 1 / .458);--purple-a8: color(display-p3 .749 .522 1 / .622);--purple-a9: color(display-p3 .686 .408 1 / .736);--purple-a10: color(display-p3 .71 .459 1 / .778);--purple-a11: color(display-p3 .8 .62 1);--purple-a12: color(display-p3 .913 .854 .971);--red-1: color(display-p3 .093 .068 .067);--red-2: color(display-p3 .118 .077 .079);--red-3: color(display-p3 .211 .081 .099);--red-4: color(display-p3 .287 .079 .113);--red-5: color(display-p3 .348 .11 .142);--red-6: color(display-p3 .414 .16 .183);--red-7: color(display-p3 .508 .224 .236);--red-8: color(display-p3 .659 .298 .297);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .861 .403 .387);--red-11: color(display-p3 1 .57 .55);--red-12: color(display-p3 .971 .826 .852);--red-a1: color(display-p3 .984 .071 .071 / .03);--red-a2: color(display-p3 .996 .282 .282 / .055);--red-a3: color(display-p3 1 .169 .271 / .156);--red-a4: color(display-p3 1 .118 .267 / .236);--red-a5: color(display-p3 1 .212 .314 / .303);--red-a6: color(display-p3 1 .318 .38 / .374);--red-a7: color(display-p3 1 .4 .424 / .475);--red-a8: color(display-p3 1 .431 .431 / .635);--red-a9: color(display-p3 1 .388 .384 / .82);--red-a10: color(display-p3 1 .463 .447 / .853);--red-a11: color(display-p3 1 .57 .55);--red-a12: color(display-p3 .971 .826 .852);--ruby-1: color(display-p3 .093 .068 .074);--ruby-2: color(display-p3 .113 .083 .089);--ruby-3: color(display-p3 .208 .088 .117);--ruby-4: color(display-p3 .279 .092 .147);--ruby-5: color(display-p3 .337 .12 .18);--ruby-6: color(display-p3 .401 .166 .223);--ruby-7: color(display-p3 .495 .224 .281);--ruby-8: color(display-p3 .652 .295 .359);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .857 .392 .455);--ruby-11: color(display-p3 1 .57 .59);--ruby-12: color(display-p3 .968 .83 .88);--ruby-a1: color(display-p3 .984 .071 .329 / .03);--ruby-a2: color(display-p3 .992 .376 .529 / .051);--ruby-a3: color(display-p3 .996 .196 .404 / .152);--ruby-a4: color(display-p3 1 .173 .416 / .227);--ruby-a5: color(display-p3 1 .259 .459 / .29);--ruby-a6: color(display-p3 1 .341 .506 / .358);--ruby-a7: color(display-p3 1 .412 .541 / .458);--ruby-a8: color(display-p3 1 .431 .537 / .627);--ruby-a9: color(display-p3 1 .376 .482 / .82);--ruby-a10: color(display-p3 1 .447 .522 / .849);--ruby-a11: color(display-p3 1 .57 .59);--ruby-a12: color(display-p3 .968 .83 .88);--sky-1: color(display-p3 .056 .078 .116);--sky-2: color(display-p3 .075 .101 .149);--sky-3: color(display-p3 .089 .154 .244);--sky-4: color(display-p3 .106 .207 .323);--sky-5: color(display-p3 .135 .261 .394);--sky-6: color(display-p3 .17 .322 .469);--sky-7: color(display-p3 .205 .394 .557);--sky-8: color(display-p3 .232 .48 .665);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .718 .925 .991);--sky-11: color(display-p3 .536 .772 .924);--sky-12: color(display-p3 .799 .947 .993);--sky-a1: color(display-p3 0 .282 .996 / .055);--sky-a2: color(display-p3 .157 .467 .992 / .089);--sky-a3: color(display-p3 .192 .522 .996 / .19);--sky-a4: color(display-p3 .212 .584 1 / .274);--sky-a5: color(display-p3 .259 .631 1 / .349);--sky-a6: color(display-p3 .302 .655 1 / .433);--sky-a7: color(display-p3 .329 .686 1 / .526);--sky-a8: color(display-p3 .325 .71 1 / .643);--sky-a9: color(display-p3 .592 .894 1 / .984);--sky-a10: color(display-p3 .722 .933 1 / .992);--sky-a11: color(display-p3 .536 .772 .924);--sky-a12: color(display-p3 .799 .947 .993);--teal-1: color(display-p3 .059 .083 .079);--teal-2: color(display-p3 .075 .11 .107);--teal-3: color(display-p3 .087 .175 .165);--teal-4: color(display-p3 .087 .227 .214);--teal-5: color(display-p3 .12 .277 .261);--teal-6: color(display-p3 .162 .335 .314);--teal-7: color(display-p3 .205 .406 .379);--teal-8: color(display-p3 .245 .489 .453);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .319 .69 .62);--teal-11: color(display-p3 .388 .835 .719);--teal-12: color(display-p3 .734 .934 .87);--teal-a1: color(display-p3 0 .992 .761 / .017);--teal-a2: color(display-p3 .235 .988 .902 / .047);--teal-a3: color(display-p3 .235 1 .898 / .118);--teal-a4: color(display-p3 .18 .996 .929 / .173);--teal-a5: color(display-p3 .31 1 .933 / .227);--teal-a6: color(display-p3 .396 1 .933 / .286);--teal-a7: color(display-p3 .443 1 .925 / .366);--teal-a8: color(display-p3 .459 1 .925 / .454);--teal-a9: color(display-p3 .443 .996 .906 / .61);--teal-a10: color(display-p3 .439 .996 .89 / .669);--teal-a11: color(display-p3 .388 .835 .719);--teal-a12: color(display-p3 .734 .934 .87);--tomato-1: color(display-p3 .09 .068 .067);--tomato-2: color(display-p3 .115 .084 .076);--tomato-3: color(display-p3 .205 .097 .083);--tomato-4: color(display-p3 .282 .099 .077);--tomato-5: color(display-p3 .339 .129 .101);--tomato-6: color(display-p3 .398 .179 .141);--tomato-7: color(display-p3 .487 .245 .194);--tomato-8: color(display-p3 .629 .322 .248);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .862 .415 .298);--tomato-11: color(display-p3 1 .585 .455);--tomato-12: color(display-p3 .959 .833 .802);--tomato-a1: color(display-p3 .973 .071 .071 / .026);--tomato-a2: color(display-p3 .992 .376 .224 / .051);--tomato-a3: color(display-p3 .996 .282 .176 / .148);--tomato-a4: color(display-p3 1 .204 .118 / .232);--tomato-a5: color(display-p3 1 .286 .192 / .29);--tomato-a6: color(display-p3 1 .392 .278 / .353);--tomato-a7: color(display-p3 1 .459 .349 / .45);--tomato-a8: color(display-p3 1 .49 .369 / .601);--tomato-a9: color(display-p3 1 .408 .267 / .82);--tomato-a10: color(display-p3 1 .478 .341 / .853);--tomato-a11: color(display-p3 1 .585 .455);--tomato-a12: color(display-p3 .959 .833 .802);--violet-1: color(display-p3 .077 .071 .118);--violet-2: color(display-p3 .101 .084 .141);--violet-3: color(display-p3 .154 .123 .256);--violet-4: color(display-p3 .191 .148 .345);--violet-5: color(display-p3 .226 .182 .396);--violet-6: color(display-p3 .269 .223 .449);--violet-7: color(display-p3 .326 .277 .53);--violet-8: color(display-p3 .399 .346 .656);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .477 .402 .823);--violet-11: color(display-p3 .72 .65 1);--violet-12: color(display-p3 .883 .867 .986);--violet-a1: color(display-p3 .282 .141 .996 / .055);--violet-a2: color(display-p3 .51 .263 1 / .08);--violet-a3: color(display-p3 .494 .337 .996 / .202);--violet-a4: color(display-p3 .49 .345 1 / .299);--violet-a5: color(display-p3 .525 .392 1 / .353);--violet-a6: color(display-p3 .569 .455 1 / .408);--violet-a7: color(display-p3 .588 .494 1 / .496);--violet-a8: color(display-p3 .596 .51 1 / .631);--violet-a9: color(display-p3 .522 .424 1 / .769);--violet-a10: color(display-p3 .576 .482 1 / .811);--violet-a11: color(display-p3 .72 .65 1);--violet-a12: color(display-p3 .883 .867 .986);--yellow-1: color(display-p3 .078 .069 .047);--yellow-2: color(display-p3 .103 .094 .063);--yellow-3: color(display-p3 .168 .137 .039);--yellow-4: color(display-p3 .209 .169 0);--yellow-5: color(display-p3 .255 .209 0);--yellow-6: color(display-p3 .31 .261 .07);--yellow-7: color(display-p3 .389 .331 .135);--yellow-8: color(display-p3 .497 .42 .182);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 1 1 .456);--yellow-11: color(display-p3 .948 .885 .392);--yellow-12: color(display-p3 .959 .934 .731);--yellow-a1: color(display-p3 .973 .369 0 / .013);--yellow-a2: color(display-p3 .996 .792 0 / .038);--yellow-a3: color(display-p3 .996 .71 0 / .11);--yellow-a4: color(display-p3 .996 .741 0 / .152);--yellow-a5: color(display-p3 .996 .765 0 / .202);--yellow-a6: color(display-p3 .996 .816 .082 / .261);--yellow-a7: color(display-p3 1 .831 .263 / .345);--yellow-a8: color(display-p3 1 .831 .314 / .463);--yellow-a9: color(display-p3 1 .922 .22);--yellow-a10: color(display-p3 1 1 .455);--yellow-a11: color(display-p3 .948 .885 .392);--yellow-a12: color(display-p3 .959 .934 .731);--gray-surface: color(display-p3 .1255 .1255 .1255 / .5);--mauve-surface: color(display-p3 .1333 .1255 .1333 / .5);--slate-surface: color(display-p3 .1176 .1255 .1333 / .5);--sage-surface: color(display-p3 .1176 .1255 .1176 / .5);--olive-surface: color(display-p3 .1176 .1255 .1176 / .5);--sand-surface: color(display-p3 .1255 .1255 .1255 / .5);--amber-surface: color(display-p3 .1412 .1176 .0784 / .5);--blue-surface: color(display-p3 .0706 .1255 .2196 / .5);--bronze-surface: color(display-p3 .1412 .1255 .1176 / .5);--brown-surface: color(display-p3 .1412 .1176 .102 / .5);--crimson-surface: color(display-p3 .1647 .0863 .1176 / .5);--cyan-surface: color(display-p3 .0784 .1412 .1725 / .5);--gold-surface: color(display-p3 .1412 .1333 .1098 / .5);--grass-surface: color(display-p3 .102 .1333 .102 / .5);--green-surface: color(display-p3 .0941 .1412 .1098 / .5);--indigo-surface: color(display-p3 .0941 .1098 .2196 / .5);--iris-surface: color(display-p3 .1098 .102 .2118 / .5);--jade-surface: color(display-p3 .0863 .149 .1176 / .5);--lime-surface: color(display-p3 .1098 .1255 .0784 / .5);--mint-surface: color(display-p3 .0941 .149 .1412 / .5);--orange-surface: color(display-p3 .1412 .1098 .0706 / .5);--pink-surface: color(display-p3 .1725 .0784 .149 / .5);--plum-surface: color(display-p3 .1647 .0863 .1725 / .5);--purple-surface: color(display-p3 .149 .0941 .1961 / .5);--red-surface: color(display-p3 .1647 .0863 .0863 / .5);--ruby-surface: color(display-p3 .1569 .0941 .1098 / .5);--sky-surface: color(display-p3 .0863 .1333 .2196 / .5);--teal-surface: color(display-p3 .0863 .149 .1412 / .5);--tomato-surface: color(display-p3 .1569 .0941 .0784 / .5);--violet-surface: color(display-p3 .1333 .102 .2118 / .5);--yellow-surface: color(display-p3 .1333 .1176 .0706 / .5)}}}:root{--gray-contrast: white;--mauve-contrast: white;--slate-contrast: white;--sage-contrast: white;--olive-contrast: white;--sand-contrast: white;--amber-contrast: #21201c;--blue-contrast: white;--bronze-contrast: white;--brown-contrast: white;--crimson-contrast: white;--cyan-contrast: white;--gold-contrast: white;--grass-contrast: white;--green-contrast: white;--indigo-contrast: white;--iris-contrast: white;--jade-contrast: white;--lime-contrast: #1d211c;--mint-contrast: #1a211e;--orange-contrast: white;--pink-contrast: white;--plum-contrast: white;--purple-contrast: white;--red-contrast: white;--ruby-contrast: white;--sky-contrast: #1c2024;--teal-contrast: white;--tomato-contrast: white;--violet-contrast: white;--yellow-contrast: #21201c;--black-a1: rgba(0, 0, 0, .05);--black-a2: rgba(0, 0, 0, .1);--black-a3: rgba(0, 0, 0, .15);--black-a4: rgba(0, 0, 0, .2);--black-a5: rgba(0, 0, 0, .3);--black-a6: rgba(0, 0, 0, .4);--black-a7: rgba(0, 0, 0, .5);--black-a8: rgba(0, 0, 0, .6);--black-a9: rgba(0, 0, 0, .7);--black-a10: rgba(0, 0, 0, .8);--black-a11: rgba(0, 0, 0, .9);--black-a12: rgba(0, 0, 0, .95);--white-a1: rgba(255, 255, 255, .05);--white-a2: rgba(255, 255, 255, .1);--white-a3: rgba(255, 255, 255, .15);--white-a4: rgba(255, 255, 255, .2);--white-a5: rgba(255, 255, 255, .3);--white-a6: rgba(255, 255, 255, .4);--white-a7: rgba(255, 255, 255, .5);--white-a8: rgba(255, 255, 255, .6);--white-a9: rgba(255, 255, 255, .7);--white-a10: rgba(255, 255, 255, .8);--white-a11: rgba(255, 255, 255, .9);--white-a12: rgba(255, 255, 255, .95)}@supports (color: color-mix(in oklab,white,black)){.dark,.dark-theme{--amber-track: color-mix(in oklab, var(--amber-8), var(--amber-9) 75%);--lime-track: color-mix(in oklab, var(--lime-8), var(--lime-9) 65%);--mint-track: color-mix(in oklab, var(--mint-8), var(--mint-9) 65%);--sky-track: color-mix(in oklab, var(--sky-8), var(--sky-9) 65%);--yellow-track: color-mix(in oklab, var(--yellow-8), var(--yellow-9) 65%)}}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root{--black-a1: color(display-p3 0 0 0 / .05);--black-a2: color(display-p3 0 0 0 / .1);--black-a3: color(display-p3 0 0 0 / .15);--black-a4: color(display-p3 0 0 0 / .2);--black-a5: color(display-p3 0 0 0 / .3);--black-a6: color(display-p3 0 0 0 / .4);--black-a7: color(display-p3 0 0 0 / .5);--black-a8: color(display-p3 0 0 0 / .6);--black-a9: color(display-p3 0 0 0 / .7);--black-a10: color(display-p3 0 0 0 / .8);--black-a11: color(display-p3 0 0 0 / .9);--black-a12: color(display-p3 0 0 0 / .95);--white-a1: color(display-p3 1 1 1 / .05);--white-a2: color(display-p3 1 1 1 / .1);--white-a3: color(display-p3 1 1 1 / .15);--white-a4: color(display-p3 1 1 1 / .2);--white-a5: color(display-p3 1 1 1 / .3);--white-a6: color(display-p3 1 1 1 / .4);--white-a7: color(display-p3 1 1 1 / .5);--white-a8: color(display-p3 1 1 1 / .6);--white-a9: color(display-p3 1 1 1 / .7);--white-a10: color(display-p3 1 1 1 / .8);--white-a11: color(display-p3 1 1 1 / .9);--white-a12: color(display-p3 1 1 1 / .95)}}}:where(.radix-themes){--color-background: white;--color-overlay: var(--black-a6);--color-panel-solid: white;--color-panel-translucent: rgba(255, 255, 255, .7);--color-surface: rgba(255, 255, 255, .85);--color-transparent: rgb(0 0 0 / 0);--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px var(--gray-a3), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px var(--gray-a3), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px var(--gray-a3), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-button-classic-after-inset: 2px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--gray-a4), inset 0 -2px 1px var(--gray-a3);--base-button-classic-box-shadow-bottom: inset 0 4px 2px -2px var(--white-a9), inset 0 2px 1px -1px var(--white-a9);--base-button-classic-disabled-box-shadow: var(--base-button-classic-box-shadow-top), var(--base-button-classic-box-shadow-bottom);--base-button-classic-active-filter: brightness(.92) saturate(1.1);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-classic-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--base-button-solid-active-filter: brightness(.92) saturate(1.1);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-solid-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a2), inset 0 .05em var(--white-a12), inset 0 .25em .5em var(--gray-a2), inset 0 -.05em var(--gray-a6), 0 0 0 .05em var(--gray-a5), 0 .08em .17em var(--gray-a7);--progress-indicator-after-linear-gradient: var(--white-a5), var(--white-a9), var(--white-a5);--segmented-control-indicator-background-color: var(--color-background);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 2px 1px var(--white-a11), inset 0 -2px 1px var(--gray-a4) ;--slider-range-high-contrast-background-image: linear-gradient(var(--black-a8), var(--black-a8));--slider-disabled-blend-mode: multiply;--switch-disabled-blend-mode: multiply;--switch-high-contrast-checked-color-overlay: var(--black-a8);--switch-high-contrast-checked-active-before-filter: contrast(.82) saturate(1.2) brightness(1.16);--switch-surface-checked-active-filter: brightness(.92) saturate(1.1);--base-card-surface-box-shadow: 0 0 0 1px var(--gray-a5);--base-card-surface-hover-box-shadow: 0 0 0 1px var(--gray-a7);--base-card-surface-active-box-shadow: 0 0 0 1px var(--gray-a6);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a2), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 1px 1px 1px var(--black-a1), 0 2px 1px -1px var(--gray-a3), 0 2px 3px -2px var(--black-a1), 0 3px 12px -4px var(--gray-a3), 0 4px 16px -8px var(--black-a1);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 1px 1px 0 var(--black-a1), 0 2px 1px -2px var(--gray-a3), 0 2px 3px -3px var(--black-a1), 0 3px 12px -5px var(--gray-a3), 0 4px 16px -9px var(--black-a1);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a4), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a4), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-border-color: var(--gray-a3);--base-card-classic-hover-border-color: var(--gray-a3);--base-card-classic-active-border-color: var(--gray-a4)}:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--color-background: var(--gray-1);--color-overlay: var(--black-a8);--color-panel-solid: var(--gray-2);--color-panel-translucent: var(--gray-a2);--color-surface: rgba(0, 0, 0, .25);--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px var(--gray-a6), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px var(--gray-a6), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px var(--gray-a6), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-button-classic-after-inset: 1px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--white-a2), inset 0 4px 2px -2px var(--white-a3), inset 0 1px 1px var(--white-a6), inset 0 -1px 1px var(--black-a6);--base-button-classic-box-shadow-bottom: 0 0 transparent;--base-button-classic-disabled-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 4px 2px -2px var(--gray-a2), inset 0 1px 1px var(--gray-a5), inset 0 -1px 1px var(--black-a3), inset 0 0 0 1px var(--gray-a2);--base-button-classic-active-filter: brightness(1.08);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.14);--base-button-classic-high-contrast-active-filter: brightness(.95) saturate(1.2);--base-button-solid-active-filter: brightness(1.08);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.18);--base-button-solid-high-contrast-active-filter: brightness(.95) saturate(1.2);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a3), inset 0 .05em var(--gray-a11), inset 0 .25em .5em var(--gray-a2), inset 0 -.1em var(--black-a11), 0 0 0 .075em var(--gray-a7), 0 .08em .17em var(--black-a12);--progress-indicator-after-linear-gradient: var(--white-a3), var(--white-a6), var(--white-a3);--segmented-control-indicator-background-color: var(--gray-a3);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--white-a4), inset 0 1px 1px var(--white-a4), inset 0 -1px 1px var(--black-a9) ;--slider-range-high-contrast-background-image: none;--slider-disabled-blend-mode: screen;--switch-disabled-blend-mode: screen;--switch-high-contrast-checked-color-overlay: transparent;--switch-high-contrast-checked-active-before-filter: brightness(1.08);--switch-surface-checked-active-filter: brightness(1.08);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 0 1px 1px var(--gray-a4), 0 0 1px -1px var(--gray-a4), 0 0 3px -2px var(--gray-a3), 0 0 12px -2px var(--gray-a3), 0 0 16px -8px var(--gray-a7);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 0 1px 0 var(--gray-a4), 0 0 1px -2px var(--gray-a4), 0 0 3px -3px var(--gray-a3), 0 0 12px -3px var(--gray-a3), 0 0 16px -9px var(--gray-a7);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-border-color: var(--gray-a6);--base-card-classic-hover-border-color: var(--gray-a6);--base-card-classic-active-border-color: var(--gray-a6)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.radix-themes{--color-transparent: color(display-p3 0 0 0 / 0)}}}.radix-themes:where(.light,.light-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.light,.light-theme))){color-scheme:light}.radix-themes:where(.dark,.dark-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.dark,.dark-theme))){color-scheme:dark}.radix-themes,[data-accent-color]:where(:not([data-accent-color=""],[data-accent-color=gray])){--focus-1: var(--accent-1);--focus-2: var(--accent-2);--focus-3: var(--accent-3);--focus-4: var(--accent-4);--focus-5: var(--accent-5);--focus-6: var(--accent-6);--focus-7: var(--accent-7);--focus-8: var(--accent-8);--focus-9: var(--accent-9);--focus-10: var(--accent-10);--focus-11: var(--accent-11);--focus-12: var(--accent-12);--focus-a1: var(--accent-a1);--focus-a2: var(--accent-a2);--focus-a3: var(--accent-a3);--focus-a4: var(--accent-a4);--focus-a5: var(--accent-a5);--focus-a6: var(--accent-a6);--focus-a7: var(--accent-a7);--focus-a8: var(--accent-a8);--focus-a9: var(--accent-a9);--focus-a10: var(--accent-a10);--focus-a11: var(--accent-a11);--focus-a12: var(--accent-a12)}.radix-themes ::selection{background-color:var(--focus-a5)}.radix-themes:where([data-has-background=true]){background-color:var(--color-background)}.radix-themes:where([data-panel-background=solid]){--color-panel: var(--color-panel-solid);--backdrop-filter-panel: none}.radix-themes:where([data-panel-background=translucent]){--color-panel: var(--color-panel-translucent);--backdrop-filter-panel: blur(64px)}[data-accent-color=amber]{--accent-1: var(--amber-1);--accent-2: var(--amber-2);--accent-3: var(--amber-3);--accent-4: var(--amber-4);--accent-5: var(--amber-5);--accent-6: var(--amber-6);--accent-7: var(--amber-7);--accent-8: var(--amber-8);--accent-9: var(--amber-9);--accent-10: var(--amber-10);--accent-11: var(--amber-11);--accent-12: var(--amber-12);--accent-a1: var(--amber-a1);--accent-a2: var(--amber-a2);--accent-a3: var(--amber-a3);--accent-a4: var(--amber-a4);--accent-a5: var(--amber-a5);--accent-a6: var(--amber-a6);--accent-a7: var(--amber-a7);--accent-a8: var(--amber-a8);--accent-a9: var(--amber-a9);--accent-a10: var(--amber-a10);--accent-a11: var(--amber-a11);--accent-a12: var(--amber-a12);--accent-contrast: var(--amber-contrast);--accent-surface: var(--amber-surface);--accent-indicator: var(--amber-indicator);--accent-track: var(--amber-track)}[data-accent-color=blue]{--accent-1: var(--blue-1);--accent-2: var(--blue-2);--accent-3: var(--blue-3);--accent-4: var(--blue-4);--accent-5: var(--blue-5);--accent-6: var(--blue-6);--accent-7: var(--blue-7);--accent-8: var(--blue-8);--accent-9: var(--blue-9);--accent-10: var(--blue-10);--accent-11: var(--blue-11);--accent-12: var(--blue-12);--accent-a1: var(--blue-a1);--accent-a2: var(--blue-a2);--accent-a3: var(--blue-a3);--accent-a4: var(--blue-a4);--accent-a5: var(--blue-a5);--accent-a6: var(--blue-a6);--accent-a7: var(--blue-a7);--accent-a8: var(--blue-a8);--accent-a9: var(--blue-a9);--accent-a10: var(--blue-a10);--accent-a11: var(--blue-a11);--accent-a12: var(--blue-a12);--accent-contrast: var(--blue-contrast);--accent-surface: var(--blue-surface);--accent-indicator: var(--blue-indicator);--accent-track: var(--blue-track)}[data-accent-color=bronze]{--accent-1: var(--bronze-1);--accent-2: var(--bronze-2);--accent-3: var(--bronze-3);--accent-4: var(--bronze-4);--accent-5: var(--bronze-5);--accent-6: var(--bronze-6);--accent-7: var(--bronze-7);--accent-8: var(--bronze-8);--accent-9: var(--bronze-9);--accent-10: var(--bronze-10);--accent-11: var(--bronze-11);--accent-12: var(--bronze-12);--accent-a1: var(--bronze-a1);--accent-a2: var(--bronze-a2);--accent-a3: var(--bronze-a3);--accent-a4: var(--bronze-a4);--accent-a5: var(--bronze-a5);--accent-a6: var(--bronze-a6);--accent-a7: var(--bronze-a7);--accent-a8: var(--bronze-a8);--accent-a9: var(--bronze-a9);--accent-a10: var(--bronze-a10);--accent-a11: var(--bronze-a11);--accent-a12: var(--bronze-a12);--accent-contrast: var(--bronze-contrast);--accent-surface: var(--bronze-surface);--accent-indicator: var(--bronze-indicator);--accent-track: var(--bronze-track)}[data-accent-color=brown]{--accent-1: var(--brown-1);--accent-2: var(--brown-2);--accent-3: var(--brown-3);--accent-4: var(--brown-4);--accent-5: var(--brown-5);--accent-6: var(--brown-6);--accent-7: var(--brown-7);--accent-8: var(--brown-8);--accent-9: var(--brown-9);--accent-10: var(--brown-10);--accent-11: var(--brown-11);--accent-12: var(--brown-12);--accent-a1: var(--brown-a1);--accent-a2: var(--brown-a2);--accent-a3: var(--brown-a3);--accent-a4: var(--brown-a4);--accent-a5: var(--brown-a5);--accent-a6: var(--brown-a6);--accent-a7: var(--brown-a7);--accent-a8: var(--brown-a8);--accent-a9: var(--brown-a9);--accent-a10: var(--brown-a10);--accent-a11: var(--brown-a11);--accent-a12: var(--brown-a12);--accent-contrast: var(--brown-contrast);--accent-surface: var(--brown-surface);--accent-indicator: var(--brown-indicator);--accent-track: var(--brown-track)}[data-accent-color=crimson]{--accent-1: var(--crimson-1);--accent-2: var(--crimson-2);--accent-3: var(--crimson-3);--accent-4: var(--crimson-4);--accent-5: var(--crimson-5);--accent-6: var(--crimson-6);--accent-7: var(--crimson-7);--accent-8: var(--crimson-8);--accent-9: var(--crimson-9);--accent-10: var(--crimson-10);--accent-11: var(--crimson-11);--accent-12: var(--crimson-12);--accent-a1: var(--crimson-a1);--accent-a2: var(--crimson-a2);--accent-a3: var(--crimson-a3);--accent-a4: var(--crimson-a4);--accent-a5: var(--crimson-a5);--accent-a6: var(--crimson-a6);--accent-a7: var(--crimson-a7);--accent-a8: var(--crimson-a8);--accent-a9: var(--crimson-a9);--accent-a10: var(--crimson-a10);--accent-a11: var(--crimson-a11);--accent-a12: var(--crimson-a12);--accent-contrast: var(--crimson-contrast);--accent-surface: var(--crimson-surface);--accent-indicator: var(--crimson-indicator);--accent-track: var(--crimson-track)}[data-accent-color=cyan]{--accent-1: var(--cyan-1);--accent-2: var(--cyan-2);--accent-3: var(--cyan-3);--accent-4: var(--cyan-4);--accent-5: var(--cyan-5);--accent-6: var(--cyan-6);--accent-7: var(--cyan-7);--accent-8: var(--cyan-8);--accent-9: var(--cyan-9);--accent-10: var(--cyan-10);--accent-11: var(--cyan-11);--accent-12: var(--cyan-12);--accent-a1: var(--cyan-a1);--accent-a2: var(--cyan-a2);--accent-a3: var(--cyan-a3);--accent-a4: var(--cyan-a4);--accent-a5: var(--cyan-a5);--accent-a6: var(--cyan-a6);--accent-a7: var(--cyan-a7);--accent-a8: var(--cyan-a8);--accent-a9: var(--cyan-a9);--accent-a10: var(--cyan-a10);--accent-a11: var(--cyan-a11);--accent-a12: var(--cyan-a12);--accent-contrast: var(--cyan-contrast);--accent-surface: var(--cyan-surface);--accent-indicator: var(--cyan-indicator);--accent-track: var(--cyan-track)}[data-accent-color=gold]{--accent-1: var(--gold-1);--accent-2: var(--gold-2);--accent-3: var(--gold-3);--accent-4: var(--gold-4);--accent-5: var(--gold-5);--accent-6: var(--gold-6);--accent-7: var(--gold-7);--accent-8: var(--gold-8);--accent-9: var(--gold-9);--accent-10: var(--gold-10);--accent-11: var(--gold-11);--accent-12: var(--gold-12);--accent-a1: var(--gold-a1);--accent-a2: var(--gold-a2);--accent-a3: var(--gold-a3);--accent-a4: var(--gold-a4);--accent-a5: var(--gold-a5);--accent-a6: var(--gold-a6);--accent-a7: var(--gold-a7);--accent-a8: var(--gold-a8);--accent-a9: var(--gold-a9);--accent-a10: var(--gold-a10);--accent-a11: var(--gold-a11);--accent-a12: var(--gold-a12);--accent-contrast: var(--gold-contrast);--accent-surface: var(--gold-surface);--accent-indicator: var(--gold-indicator);--accent-track: var(--gold-track)}[data-accent-color=grass]{--accent-1: var(--grass-1);--accent-2: var(--grass-2);--accent-3: var(--grass-3);--accent-4: var(--grass-4);--accent-5: var(--grass-5);--accent-6: var(--grass-6);--accent-7: var(--grass-7);--accent-8: var(--grass-8);--accent-9: var(--grass-9);--accent-10: var(--grass-10);--accent-11: var(--grass-11);--accent-12: var(--grass-12);--accent-a1: var(--grass-a1);--accent-a2: var(--grass-a2);--accent-a3: var(--grass-a3);--accent-a4: var(--grass-a4);--accent-a5: var(--grass-a5);--accent-a6: var(--grass-a6);--accent-a7: var(--grass-a7);--accent-a8: var(--grass-a8);--accent-a9: var(--grass-a9);--accent-a10: var(--grass-a10);--accent-a11: var(--grass-a11);--accent-a12: var(--grass-a12);--accent-contrast: var(--grass-contrast);--accent-surface: var(--grass-surface);--accent-indicator: var(--grass-indicator);--accent-track: var(--grass-track)}[data-accent-color=gray]{--accent-1: var(--gray-1);--accent-2: var(--gray-2);--accent-3: var(--gray-3);--accent-4: var(--gray-4);--accent-5: var(--gray-5);--accent-6: var(--gray-6);--accent-7: var(--gray-7);--accent-8: var(--gray-8);--accent-9: var(--gray-9);--accent-10: var(--gray-10);--accent-11: var(--gray-11);--accent-12: var(--gray-12);--accent-a1: var(--gray-a1);--accent-a2: var(--gray-a2);--accent-a3: var(--gray-a3);--accent-a4: var(--gray-a4);--accent-a5: var(--gray-a5);--accent-a6: var(--gray-a6);--accent-a7: var(--gray-a7);--accent-a8: var(--gray-a8);--accent-a9: var(--gray-a9);--accent-a10: var(--gray-a10);--accent-a11: var(--gray-a11);--accent-a12: var(--gray-a12);--accent-contrast: var(--gray-contrast);--accent-surface: var(--gray-surface);--accent-indicator: var(--gray-indicator);--accent-track: var(--gray-track)}[data-accent-color=green]{--accent-1: var(--green-1);--accent-2: var(--green-2);--accent-3: var(--green-3);--accent-4: var(--green-4);--accent-5: var(--green-5);--accent-6: var(--green-6);--accent-7: var(--green-7);--accent-8: var(--green-8);--accent-9: var(--green-9);--accent-10: var(--green-10);--accent-11: var(--green-11);--accent-12: var(--green-12);--accent-a1: var(--green-a1);--accent-a2: var(--green-a2);--accent-a3: var(--green-a3);--accent-a4: var(--green-a4);--accent-a5: var(--green-a5);--accent-a6: var(--green-a6);--accent-a7: var(--green-a7);--accent-a8: var(--green-a8);--accent-a9: var(--green-a9);--accent-a10: var(--green-a10);--accent-a11: var(--green-a11);--accent-a12: var(--green-a12);--accent-contrast: var(--green-contrast);--accent-surface: var(--green-surface);--accent-indicator: var(--green-indicator);--accent-track: var(--green-track)}[data-accent-color=indigo]{--accent-1: var(--indigo-1);--accent-2: var(--indigo-2);--accent-3: var(--indigo-3);--accent-4: var(--indigo-4);--accent-5: var(--indigo-5);--accent-6: var(--indigo-6);--accent-7: var(--indigo-7);--accent-8: var(--indigo-8);--accent-9: var(--indigo-9);--accent-10: var(--indigo-10);--accent-11: var(--indigo-11);--accent-12: var(--indigo-12);--accent-a1: var(--indigo-a1);--accent-a2: var(--indigo-a2);--accent-a3: var(--indigo-a3);--accent-a4: var(--indigo-a4);--accent-a5: var(--indigo-a5);--accent-a6: var(--indigo-a6);--accent-a7: var(--indigo-a7);--accent-a8: var(--indigo-a8);--accent-a9: var(--indigo-a9);--accent-a10: var(--indigo-a10);--accent-a11: var(--indigo-a11);--accent-a12: var(--indigo-a12);--accent-contrast: var(--indigo-contrast);--accent-surface: var(--indigo-surface);--accent-indicator: var(--indigo-indicator);--accent-track: var(--indigo-track)}[data-accent-color=iris]{--accent-1: var(--iris-1);--accent-2: var(--iris-2);--accent-3: var(--iris-3);--accent-4: var(--iris-4);--accent-5: var(--iris-5);--accent-6: var(--iris-6);--accent-7: var(--iris-7);--accent-8: var(--iris-8);--accent-9: var(--iris-9);--accent-10: var(--iris-10);--accent-11: var(--iris-11);--accent-12: var(--iris-12);--accent-a1: var(--iris-a1);--accent-a2: var(--iris-a2);--accent-a3: var(--iris-a3);--accent-a4: var(--iris-a4);--accent-a5: var(--iris-a5);--accent-a6: var(--iris-a6);--accent-a7: var(--iris-a7);--accent-a8: var(--iris-a8);--accent-a9: var(--iris-a9);--accent-a10: var(--iris-a10);--accent-a11: var(--iris-a11);--accent-a12: var(--iris-a12);--accent-contrast: var(--iris-contrast);--accent-surface: var(--iris-surface);--accent-indicator: var(--iris-indicator);--accent-track: var(--iris-track)}[data-accent-color=jade]{--accent-1: var(--jade-1);--accent-2: var(--jade-2);--accent-3: var(--jade-3);--accent-4: var(--jade-4);--accent-5: var(--jade-5);--accent-6: var(--jade-6);--accent-7: var(--jade-7);--accent-8: var(--jade-8);--accent-9: var(--jade-9);--accent-10: var(--jade-10);--accent-11: var(--jade-11);--accent-12: var(--jade-12);--accent-a1: var(--jade-a1);--accent-a2: var(--jade-a2);--accent-a3: var(--jade-a3);--accent-a4: var(--jade-a4);--accent-a5: var(--jade-a5);--accent-a6: var(--jade-a6);--accent-a7: var(--jade-a7);--accent-a8: var(--jade-a8);--accent-a9: var(--jade-a9);--accent-a10: var(--jade-a10);--accent-a11: var(--jade-a11);--accent-a12: var(--jade-a12);--accent-contrast: var(--jade-contrast);--accent-surface: var(--jade-surface);--accent-indicator: var(--jade-indicator);--accent-track: var(--jade-track)}[data-accent-color=lime]{--accent-1: var(--lime-1);--accent-2: var(--lime-2);--accent-3: var(--lime-3);--accent-4: var(--lime-4);--accent-5: var(--lime-5);--accent-6: var(--lime-6);--accent-7: var(--lime-7);--accent-8: var(--lime-8);--accent-9: var(--lime-9);--accent-10: var(--lime-10);--accent-11: var(--lime-11);--accent-12: var(--lime-12);--accent-a1: var(--lime-a1);--accent-a2: var(--lime-a2);--accent-a3: var(--lime-a3);--accent-a4: var(--lime-a4);--accent-a5: var(--lime-a5);--accent-a6: var(--lime-a6);--accent-a7: var(--lime-a7);--accent-a8: var(--lime-a8);--accent-a9: var(--lime-a9);--accent-a10: var(--lime-a10);--accent-a11: var(--lime-a11);--accent-a12: var(--lime-a12);--accent-contrast: var(--lime-contrast);--accent-surface: var(--lime-surface);--accent-indicator: var(--lime-indicator);--accent-track: var(--lime-track)}[data-accent-color=mint]{--accent-1: var(--mint-1);--accent-2: var(--mint-2);--accent-3: var(--mint-3);--accent-4: var(--mint-4);--accent-5: var(--mint-5);--accent-6: var(--mint-6);--accent-7: var(--mint-7);--accent-8: var(--mint-8);--accent-9: var(--mint-9);--accent-10: var(--mint-10);--accent-11: var(--mint-11);--accent-12: var(--mint-12);--accent-a1: var(--mint-a1);--accent-a2: var(--mint-a2);--accent-a3: var(--mint-a3);--accent-a4: var(--mint-a4);--accent-a5: var(--mint-a5);--accent-a6: var(--mint-a6);--accent-a7: var(--mint-a7);--accent-a8: var(--mint-a8);--accent-a9: var(--mint-a9);--accent-a10: var(--mint-a10);--accent-a11: var(--mint-a11);--accent-a12: var(--mint-a12);--accent-contrast: var(--mint-contrast);--accent-surface: var(--mint-surface);--accent-indicator: var(--mint-indicator);--accent-track: var(--mint-track)}[data-accent-color=orange]{--accent-1: var(--orange-1);--accent-2: var(--orange-2);--accent-3: var(--orange-3);--accent-4: var(--orange-4);--accent-5: var(--orange-5);--accent-6: var(--orange-6);--accent-7: var(--orange-7);--accent-8: var(--orange-8);--accent-9: var(--orange-9);--accent-10: var(--orange-10);--accent-11: var(--orange-11);--accent-12: var(--orange-12);--accent-a1: var(--orange-a1);--accent-a2: var(--orange-a2);--accent-a3: var(--orange-a3);--accent-a4: var(--orange-a4);--accent-a5: var(--orange-a5);--accent-a6: var(--orange-a6);--accent-a7: var(--orange-a7);--accent-a8: var(--orange-a8);--accent-a9: var(--orange-a9);--accent-a10: var(--orange-a10);--accent-a11: var(--orange-a11);--accent-a12: var(--orange-a12);--accent-contrast: var(--orange-contrast);--accent-surface: var(--orange-surface);--accent-indicator: var(--orange-indicator);--accent-track: var(--orange-track)}[data-accent-color=pink]{--accent-1: var(--pink-1);--accent-2: var(--pink-2);--accent-3: var(--pink-3);--accent-4: var(--pink-4);--accent-5: var(--pink-5);--accent-6: var(--pink-6);--accent-7: var(--pink-7);--accent-8: var(--pink-8);--accent-9: var(--pink-9);--accent-10: var(--pink-10);--accent-11: var(--pink-11);--accent-12: var(--pink-12);--accent-a1: var(--pink-a1);--accent-a2: var(--pink-a2);--accent-a3: var(--pink-a3);--accent-a4: var(--pink-a4);--accent-a5: var(--pink-a5);--accent-a6: var(--pink-a6);--accent-a7: var(--pink-a7);--accent-a8: var(--pink-a8);--accent-a9: var(--pink-a9);--accent-a10: var(--pink-a10);--accent-a11: var(--pink-a11);--accent-a12: var(--pink-a12);--accent-contrast: var(--pink-contrast);--accent-surface: var(--pink-surface);--accent-indicator: var(--pink-indicator);--accent-track: var(--pink-track)}[data-accent-color=plum]{--accent-1: var(--plum-1);--accent-2: var(--plum-2);--accent-3: var(--plum-3);--accent-4: var(--plum-4);--accent-5: var(--plum-5);--accent-6: var(--plum-6);--accent-7: var(--plum-7);--accent-8: var(--plum-8);--accent-9: var(--plum-9);--accent-10: var(--plum-10);--accent-11: var(--plum-11);--accent-12: var(--plum-12);--accent-a1: var(--plum-a1);--accent-a2: var(--plum-a2);--accent-a3: var(--plum-a3);--accent-a4: var(--plum-a4);--accent-a5: var(--plum-a5);--accent-a6: var(--plum-a6);--accent-a7: var(--plum-a7);--accent-a8: var(--plum-a8);--accent-a9: var(--plum-a9);--accent-a10: var(--plum-a10);--accent-a11: var(--plum-a11);--accent-a12: var(--plum-a12);--accent-contrast: var(--plum-contrast);--accent-surface: var(--plum-surface);--accent-indicator: var(--plum-indicator);--accent-track: var(--plum-track)}[data-accent-color=purple]{--accent-1: var(--purple-1);--accent-2: var(--purple-2);--accent-3: var(--purple-3);--accent-4: var(--purple-4);--accent-5: var(--purple-5);--accent-6: var(--purple-6);--accent-7: var(--purple-7);--accent-8: var(--purple-8);--accent-9: var(--purple-9);--accent-10: var(--purple-10);--accent-11: var(--purple-11);--accent-12: var(--purple-12);--accent-a1: var(--purple-a1);--accent-a2: var(--purple-a2);--accent-a3: var(--purple-a3);--accent-a4: var(--purple-a4);--accent-a5: var(--purple-a5);--accent-a6: var(--purple-a6);--accent-a7: var(--purple-a7);--accent-a8: var(--purple-a8);--accent-a9: var(--purple-a9);--accent-a10: var(--purple-a10);--accent-a11: var(--purple-a11);--accent-a12: var(--purple-a12);--accent-contrast: var(--purple-contrast);--accent-surface: var(--purple-surface);--accent-indicator: var(--purple-indicator);--accent-track: var(--purple-track)}[data-accent-color=red]{--accent-1: var(--red-1);--accent-2: var(--red-2);--accent-3: var(--red-3);--accent-4: var(--red-4);--accent-5: var(--red-5);--accent-6: var(--red-6);--accent-7: var(--red-7);--accent-8: var(--red-8);--accent-9: var(--red-9);--accent-10: var(--red-10);--accent-11: var(--red-11);--accent-12: var(--red-12);--accent-a1: var(--red-a1);--accent-a2: var(--red-a2);--accent-a3: var(--red-a3);--accent-a4: var(--red-a4);--accent-a5: var(--red-a5);--accent-a6: var(--red-a6);--accent-a7: var(--red-a7);--accent-a8: var(--red-a8);--accent-a9: var(--red-a9);--accent-a10: var(--red-a10);--accent-a11: var(--red-a11);--accent-a12: var(--red-a12);--accent-contrast: var(--red-contrast);--accent-surface: var(--red-surface);--accent-indicator: var(--red-indicator);--accent-track: var(--red-track)}[data-accent-color=ruby]{--accent-1: var(--ruby-1);--accent-2: var(--ruby-2);--accent-3: var(--ruby-3);--accent-4: var(--ruby-4);--accent-5: var(--ruby-5);--accent-6: var(--ruby-6);--accent-7: var(--ruby-7);--accent-8: var(--ruby-8);--accent-9: var(--ruby-9);--accent-10: var(--ruby-10);--accent-11: var(--ruby-11);--accent-12: var(--ruby-12);--accent-a1: var(--ruby-a1);--accent-a2: var(--ruby-a2);--accent-a3: var(--ruby-a3);--accent-a4: var(--ruby-a4);--accent-a5: var(--ruby-a5);--accent-a6: var(--ruby-a6);--accent-a7: var(--ruby-a7);--accent-a8: var(--ruby-a8);--accent-a9: var(--ruby-a9);--accent-a10: var(--ruby-a10);--accent-a11: var(--ruby-a11);--accent-a12: var(--ruby-a12);--accent-contrast: var(--ruby-contrast);--accent-surface: var(--ruby-surface);--accent-indicator: var(--ruby-indicator);--accent-track: var(--ruby-track)}[data-accent-color=sky]{--accent-1: var(--sky-1);--accent-2: var(--sky-2);--accent-3: var(--sky-3);--accent-4: var(--sky-4);--accent-5: var(--sky-5);--accent-6: var(--sky-6);--accent-7: var(--sky-7);--accent-8: var(--sky-8);--accent-9: var(--sky-9);--accent-10: var(--sky-10);--accent-11: var(--sky-11);--accent-12: var(--sky-12);--accent-a1: var(--sky-a1);--accent-a2: var(--sky-a2);--accent-a3: var(--sky-a3);--accent-a4: var(--sky-a4);--accent-a5: var(--sky-a5);--accent-a6: var(--sky-a6);--accent-a7: var(--sky-a7);--accent-a8: var(--sky-a8);--accent-a9: var(--sky-a9);--accent-a10: var(--sky-a10);--accent-a11: var(--sky-a11);--accent-a12: var(--sky-a12);--accent-contrast: var(--sky-contrast);--accent-surface: var(--sky-surface);--accent-indicator: var(--sky-indicator);--accent-track: var(--sky-track)}[data-accent-color=teal]{--accent-1: var(--teal-1);--accent-2: var(--teal-2);--accent-3: var(--teal-3);--accent-4: var(--teal-4);--accent-5: var(--teal-5);--accent-6: var(--teal-6);--accent-7: var(--teal-7);--accent-8: var(--teal-8);--accent-9: var(--teal-9);--accent-10: var(--teal-10);--accent-11: var(--teal-11);--accent-12: var(--teal-12);--accent-a1: var(--teal-a1);--accent-a2: var(--teal-a2);--accent-a3: var(--teal-a3);--accent-a4: var(--teal-a4);--accent-a5: var(--teal-a5);--accent-a6: var(--teal-a6);--accent-a7: var(--teal-a7);--accent-a8: var(--teal-a8);--accent-a9: var(--teal-a9);--accent-a10: var(--teal-a10);--accent-a11: var(--teal-a11);--accent-a12: var(--teal-a12);--accent-contrast: var(--teal-contrast);--accent-surface: var(--teal-surface);--accent-indicator: var(--teal-indicator);--accent-track: var(--teal-track)}[data-accent-color=tomato]{--accent-1: var(--tomato-1);--accent-2: var(--tomato-2);--accent-3: var(--tomato-3);--accent-4: var(--tomato-4);--accent-5: var(--tomato-5);--accent-6: var(--tomato-6);--accent-7: var(--tomato-7);--accent-8: var(--tomato-8);--accent-9: var(--tomato-9);--accent-10: var(--tomato-10);--accent-11: var(--tomato-11);--accent-12: var(--tomato-12);--accent-a1: var(--tomato-a1);--accent-a2: var(--tomato-a2);--accent-a3: var(--tomato-a3);--accent-a4: var(--tomato-a4);--accent-a5: var(--tomato-a5);--accent-a6: var(--tomato-a6);--accent-a7: var(--tomato-a7);--accent-a8: var(--tomato-a8);--accent-a9: var(--tomato-a9);--accent-a10: var(--tomato-a10);--accent-a11: var(--tomato-a11);--accent-a12: var(--tomato-a12);--accent-contrast: var(--tomato-contrast);--accent-surface: var(--tomato-surface);--accent-indicator: var(--tomato-indicator);--accent-track: var(--tomato-track)}[data-accent-color=violet]{--accent-1: var(--violet-1);--accent-2: var(--violet-2);--accent-3: var(--violet-3);--accent-4: var(--violet-4);--accent-5: var(--violet-5);--accent-6: var(--violet-6);--accent-7: var(--violet-7);--accent-8: var(--violet-8);--accent-9: var(--violet-9);--accent-10: var(--violet-10);--accent-11: var(--violet-11);--accent-12: var(--violet-12);--accent-a1: var(--violet-a1);--accent-a2: var(--violet-a2);--accent-a3: var(--violet-a3);--accent-a4: var(--violet-a4);--accent-a5: var(--violet-a5);--accent-a6: var(--violet-a6);--accent-a7: var(--violet-a7);--accent-a8: var(--violet-a8);--accent-a9: var(--violet-a9);--accent-a10: var(--violet-a10);--accent-a11: var(--violet-a11);--accent-a12: var(--violet-a12);--accent-contrast: var(--violet-contrast);--accent-surface: var(--violet-surface);--accent-indicator: var(--violet-indicator);--accent-track: var(--violet-track)}[data-accent-color=yellow]{--accent-1: var(--yellow-1);--accent-2: var(--yellow-2);--accent-3: var(--yellow-3);--accent-4: var(--yellow-4);--accent-5: var(--yellow-5);--accent-6: var(--yellow-6);--accent-7: var(--yellow-7);--accent-8: var(--yellow-8);--accent-9: var(--yellow-9);--accent-10: var(--yellow-10);--accent-11: var(--yellow-11);--accent-12: var(--yellow-12);--accent-a1: var(--yellow-a1);--accent-a2: var(--yellow-a2);--accent-a3: var(--yellow-a3);--accent-a4: var(--yellow-a4);--accent-a5: var(--yellow-a5);--accent-a6: var(--yellow-a6);--accent-a7: var(--yellow-a7);--accent-a8: var(--yellow-a8);--accent-a9: var(--yellow-a9);--accent-a10: var(--yellow-a10);--accent-a11: var(--yellow-a11);--accent-a12: var(--yellow-a12);--accent-contrast: var(--yellow-contrast);--accent-surface: var(--yellow-surface);--accent-indicator: var(--yellow-indicator);--accent-track: var(--yellow-track)}.radix-themes:where([data-gray-color=mauve]){--gray-1: var(--mauve-1);--gray-2: var(--mauve-2);--gray-3: var(--mauve-3);--gray-4: var(--mauve-4);--gray-5: var(--mauve-5);--gray-6: var(--mauve-6);--gray-7: var(--mauve-7);--gray-8: var(--mauve-8);--gray-9: var(--mauve-9);--gray-10: var(--mauve-10);--gray-11: var(--mauve-11);--gray-12: var(--mauve-12);--gray-a1: var(--mauve-a1);--gray-a2: var(--mauve-a2);--gray-a3: var(--mauve-a3);--gray-a4: var(--mauve-a4);--gray-a5: var(--mauve-a5);--gray-a6: var(--mauve-a6);--gray-a7: var(--mauve-a7);--gray-a8: var(--mauve-a8);--gray-a9: var(--mauve-a9);--gray-a10: var(--mauve-a10);--gray-a11: var(--mauve-a11);--gray-a12: var(--mauve-a12);--gray-contrast: var(--mauve-contrast);--gray-surface: var(--mauve-surface);--gray-indicator: var(--mauve-indicator);--gray-track: var(--mauve-track)}.radix-themes:where([data-gray-color=olive]){--gray-1: var(--olive-1);--gray-2: var(--olive-2);--gray-3: var(--olive-3);--gray-4: var(--olive-4);--gray-5: var(--olive-5);--gray-6: var(--olive-6);--gray-7: var(--olive-7);--gray-8: var(--olive-8);--gray-9: var(--olive-9);--gray-10: var(--olive-10);--gray-11: var(--olive-11);--gray-12: var(--olive-12);--gray-a1: var(--olive-a1);--gray-a2: var(--olive-a2);--gray-a3: var(--olive-a3);--gray-a4: var(--olive-a4);--gray-a5: var(--olive-a5);--gray-a6: var(--olive-a6);--gray-a7: var(--olive-a7);--gray-a8: var(--olive-a8);--gray-a9: var(--olive-a9);--gray-a10: var(--olive-a10);--gray-a11: var(--olive-a11);--gray-a12: var(--olive-a12);--gray-contrast: var(--olive-contrast);--gray-surface: var(--olive-surface);--gray-indicator: var(--olive-indicator);--gray-track: var(--olive-track)}.radix-themes:where([data-gray-color=sage]){--gray-1: var(--sage-1);--gray-2: var(--sage-2);--gray-3: var(--sage-3);--gray-4: var(--sage-4);--gray-5: var(--sage-5);--gray-6: var(--sage-6);--gray-7: var(--sage-7);--gray-8: var(--sage-8);--gray-9: var(--sage-9);--gray-10: var(--sage-10);--gray-11: var(--sage-11);--gray-12: var(--sage-12);--gray-a1: var(--sage-a1);--gray-a2: var(--sage-a2);--gray-a3: var(--sage-a3);--gray-a4: var(--sage-a4);--gray-a5: var(--sage-a5);--gray-a6: var(--sage-a6);--gray-a7: var(--sage-a7);--gray-a8: var(--sage-a8);--gray-a9: var(--sage-a9);--gray-a10: var(--sage-a10);--gray-a11: var(--sage-a11);--gray-a12: var(--sage-a12);--gray-contrast: var(--sage-contrast);--gray-surface: var(--sage-surface);--gray-indicator: var(--sage-indicator);--gray-track: var(--sage-track)}.radix-themes:where([data-gray-color=sand]){--gray-1: var(--sand-1);--gray-2: var(--sand-2);--gray-3: var(--sand-3);--gray-4: var(--sand-4);--gray-5: var(--sand-5);--gray-6: var(--sand-6);--gray-7: var(--sand-7);--gray-8: var(--sand-8);--gray-9: var(--sand-9);--gray-10: var(--sand-10);--gray-11: var(--sand-11);--gray-12: var(--sand-12);--gray-a1: var(--sand-a1);--gray-a2: var(--sand-a2);--gray-a3: var(--sand-a3);--gray-a4: var(--sand-a4);--gray-a5: var(--sand-a5);--gray-a6: var(--sand-a6);--gray-a7: var(--sand-a7);--gray-a8: var(--sand-a8);--gray-a9: var(--sand-a9);--gray-a10: var(--sand-a10);--gray-a11: var(--sand-a11);--gray-a12: var(--sand-a12);--gray-contrast: var(--sand-contrast);--gray-surface: var(--sand-surface);--gray-indicator: var(--sand-indicator);--gray-track: var(--sand-track)}.radix-themes:where([data-gray-color=slate]){--gray-1: var(--slate-1);--gray-2: var(--slate-2);--gray-3: var(--slate-3);--gray-4: var(--slate-4);--gray-5: var(--slate-5);--gray-6: var(--slate-6);--gray-7: var(--slate-7);--gray-8: var(--slate-8);--gray-9: var(--slate-9);--gray-10: var(--slate-10);--gray-11: var(--slate-11);--gray-12: var(--slate-12);--gray-a1: var(--slate-a1);--gray-a2: var(--slate-a2);--gray-a3: var(--slate-a3);--gray-a4: var(--slate-a4);--gray-a5: var(--slate-a5);--gray-a6: var(--slate-a6);--gray-a7: var(--slate-a7);--gray-a8: var(--slate-a8);--gray-a9: var(--slate-a9);--gray-a10: var(--slate-a10);--gray-a11: var(--slate-a11);--gray-a12: var(--slate-a12);--gray-contrast: var(--slate-contrast);--gray-surface: var(--slate-surface);--gray-indicator: var(--slate-indicator);--gray-track: var(--slate-track)}.radix-themes{--cursor-button: default;--cursor-checkbox: default;--cursor-disabled: not-allowed;--cursor-link: pointer;--cursor-menu-item: default;--cursor-radio: default;--cursor-slider-thumb: default;--cursor-slider-thumb-active: default;--cursor-switch: default;--space-1: calc(4px * var(--scaling));--space-2: calc(8px * var(--scaling));--space-3: calc(12px * var(--scaling));--space-4: calc(16px * var(--scaling));--space-5: calc(24px * var(--scaling));--space-6: calc(32px * var(--scaling));--space-7: calc(40px * var(--scaling));--space-8: calc(48px * var(--scaling));--space-9: calc(64px * var(--scaling));--font-size-1: calc(12px * var(--scaling));--font-size-2: calc(14px * var(--scaling));--font-size-3: calc(16px * var(--scaling));--font-size-4: calc(18px * var(--scaling));--font-size-5: calc(20px * var(--scaling));--font-size-6: calc(24px * var(--scaling));--font-size-7: calc(28px * var(--scaling));--font-size-8: calc(35px * var(--scaling));--font-size-9: calc(60px * var(--scaling));--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-1: calc(16px * var(--scaling));--line-height-2: calc(20px * var(--scaling));--line-height-3: calc(24px * var(--scaling));--line-height-4: calc(26px * var(--scaling));--line-height-5: calc(28px * var(--scaling));--line-height-6: calc(30px * var(--scaling));--line-height-7: calc(36px * var(--scaling));--line-height-8: calc(40px * var(--scaling));--line-height-9: calc(60px * var(--scaling));--letter-spacing-1: .0025em;--letter-spacing-2: 0em;--letter-spacing-3: 0em;--letter-spacing-4: -.0025em;--letter-spacing-5: -.005em;--letter-spacing-6: -.00625em;--letter-spacing-7: -.0075em;--letter-spacing-8: -.01em;--letter-spacing-9: -.025em;--default-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI (Custom)", Roboto, "Helvetica Neue", "Open Sans (Custom)", system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--default-font-size: var(--font-size-3);--default-font-style: normal;--default-font-weight: var(--font-weight-regular);--default-line-height: 1.5;--default-letter-spacing: 0em;--default-leading-trim-start: .42em;--default-leading-trim-end: .36em;--heading-font-family: var(--default-font-family);--heading-font-size-adjust: 1;--heading-font-style: normal;--heading-leading-trim-start: var(--default-leading-trim-start);--heading-leading-trim-end: var(--default-leading-trim-end);--heading-letter-spacing: 0em;--heading-line-height-1: calc(16px * var(--scaling));--heading-line-height-2: calc(18px * var(--scaling));--heading-line-height-3: calc(22px * var(--scaling));--heading-line-height-4: calc(24px * var(--scaling));--heading-line-height-5: calc(26px * var(--scaling));--heading-line-height-6: calc(30px * var(--scaling));--heading-line-height-7: calc(36px * var(--scaling));--heading-line-height-8: calc(40px * var(--scaling));--heading-line-height-9: calc(60px * var(--scaling));--code-font-family: "Menlo", "Consolas (Custom)", "Bitstream Vera Sans Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji";--code-font-size-adjust: .95;--code-font-style: normal;--code-font-weight: inherit;--code-letter-spacing: -.007em;--code-padding-top: .1em;--code-padding-bottom: .1em;--code-padding-left: .25em;--code-padding-right: .25em;--strong-font-family: var(--default-font-family);--strong-font-size-adjust: 1;--strong-font-style: inherit;--strong-font-weight: var(--font-weight-bold);--strong-letter-spacing: 0em;--em-font-family: "Times New Roman", "Times", serif;--em-font-size-adjust: 1.18;--em-font-style: italic;--em-font-weight: inherit;--em-letter-spacing: -.025em;--quote-font-family: "Times New Roman", "Times", serif;--quote-font-size-adjust: 1.18;--quote-font-style: italic;--quote-font-weight: inherit;--quote-letter-spacing: -.025em;--tab-active-letter-spacing: -.01em;--tab-active-word-spacing: 0em;--tab-inactive-letter-spacing: 0em;--tab-inactive-word-spacing: 0em;overflow-wrap:break-word;font-family:var(--default-font-family);font-size:var(--default-font-size);font-weight:var(--default-font-weight);font-style:var(--default-font-style);line-height:var(--default-line-height);letter-spacing:var(--default-letter-spacing);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--container-1: 448px;--container-2: 688px;--container-3: 880px;--container-4: 1136px;--scrollarea-scrollbar-horizontal-margin-top: var(--space-1);--scrollarea-scrollbar-horizontal-margin-bottom: var(--space-1);--scrollarea-scrollbar-horizontal-margin-left: var(--space-1);--scrollarea-scrollbar-horizontal-margin-right: var(--space-1);--scrollarea-scrollbar-vertical-margin-top: var(--space-1);--scrollarea-scrollbar-vertical-margin-bottom: var(--space-1);--scrollarea-scrollbar-vertical-margin-left: var(--space-1);--scrollarea-scrollbar-vertical-margin-right: var(--space-1);--segmented-control-transition-duration: .1s;--spinner-animation-duration: .8s;--spinner-opacity: .65;color:var(--gray-12)}.radix-themes:where([data-scaling="90%"]){--scaling: .9}.radix-themes:where([data-scaling="95%"]){--scaling: .95}.radix-themes:where([data-scaling="100%"]){--scaling: 1}.radix-themes:where([data-scaling="105%"]){--scaling: 1.05}.radix-themes:where([data-scaling="110%"]){--scaling: 1.1}[data-radius]{--radius-1: calc(3px * var(--scaling) * var(--radius-factor));--radius-2: calc(4px * var(--scaling) * var(--radius-factor));--radius-3: calc(6px * var(--scaling) * var(--radius-factor));--radius-4: calc(8px * var(--scaling) * var(--radius-factor));--radius-5: calc(12px * var(--scaling) * var(--radius-factor));--radius-6: calc(16px * var(--scaling) * var(--radius-factor))}[data-radius=none]{--radius-factor: 0;--radius-full: 0px;--radius-thumb: .5px}[data-radius=small]{--radius-factor: .75;--radius-full: 0px;--radius-thumb: .5px}[data-radius=medium]{--radius-factor: 1;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=large]{--radius-factor: 1.5;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=full]{--radius-factor: 1.5;--radius-full: 9999px;--radius-thumb: 9999px}@supports (color: color-mix(in oklab,white,black)){:where(.radix-themes){--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-card-surface-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a5), var(--gray-5) 25%);--base-card-surface-hover-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a7), var(--gray-7) 25%);--base-card-surface-active-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a4), var(--gray-4) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%)}}@supports (color: color-mix(in oklab,white,black)){:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%)}}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;descent-override:35%;src:local("Open Sans Light"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;font-style:italic;descent-override:35%;src:local("Open Sans Light Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;descent-override:35%;src:local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;font-style:italic;descent-override:35%;src:local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;descent-override:35%;src:local("Open Sans Medium"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;font-style:italic;descent-override:35%;src:local("Open Sans Medium Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;descent-override:35%;src:local("Open Sans Bold")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;font-style:italic;descent-override:35%;src:local("Open Sans Bold Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:400;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas")}@font-face{font-family:"Consolas (Custom)";font-weight:400;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:700;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold")}@font-face{font-family:"Consolas (Custom)";font-weight:700;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold Italic")}.rt-reset:where(body,blockquote,dl,dd,figure,p){margin:0}.rt-reset:where(address,b,cite,code,dfn,em,i,kbd,q,samp,small,strong,var){font:unset}.rt-reset:where(h1,h2,h3,h4,h5,h6){font:unset;margin:0}.rt-reset:where(a){all:unset;-webkit-tap-highlight-color:transparent}.rt-reset:where(button,select,[type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range]){all:unset;display:inline-block;font-weight:400;font-style:normal;text-indent:initial;-webkit-tap-highlight-color:transparent}.rt-reset:where(label){-webkit-tap-highlight-color:transparent}.rt-reset:where(select){font-weight:400;font-style:normal;text-align:start}.rt-reset:where(textarea,input:not([type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range])){all:unset;display:block;width:-webkit-fill-available;width:-moz-available;width:stretch;font-weight:400;font-style:normal;text-align:start;text-indent:initial;-webkit-tap-highlight-color:transparent;cursor:text;white-space:pre-wrap}.rt-reset:where(:focus){outline:none}.rt-reset::placeholder{color:unset;opacity:unset;-webkit-user-select:none;user-select:none}.rt-reset:where(table){all:unset;display:table;text-indent:initial}.rt-reset:where(caption){text-align:inherit}.rt-reset:where(td){padding:0}.rt-reset:where(th){font-weight:unset;text-align:inherit;padding:0}.rt-reset:where(abbr,acronym){text-decoration:none}.rt-reset:where(canvas,object,picture,summary){display:block}.rt-reset:where(del,s){text-decoration:unset}.rt-reset:where(fieldset,hr){all:unset;display:block}.rt-reset:where(legend){padding:0;border:none;cursor:default}.rt-reset:where(li){display:block;text-align:unset}.rt-reset:where(ol,ul){list-style:none;margin:0;padding:0}.rt-reset:where(iframe){display:block;border:none;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(ins,u){text-decoration:none}.rt-reset:where(img){display:block;max-width:100%}.rt-reset:where(svg){display:block;max-width:100%;flex-shrink:0}.rt-reset:where(mark){all:unset}.rt-reset:where(pre){font:unset;margin:unset}.rt-reset:where(q):before,.rt-reset:where(q):after{content:""}.rt-reset:where(sub,sup){font:unset;vertical-align:unset}.rt-reset:where(details) ::marker,.rt-reset:where(summary)::marker{content:none}.rt-reset:where(video){display:block;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(:any-link){cursor:var(--cursor-link)}.rt-reset:where(button){cursor:var(--cursor-button)}.rt-reset:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-reset:where(input[type=checkbox]){cursor:var(--cursor-checkbox)}.rt-reset:where(input[type=radio]){cursor:var(--cursor-radio)}.rt-reset,.rt-reset:before,.rt-reset:after{box-sizing:border-box}@keyframes rt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rt-fade-out{0%{opacity:1}to{opacity:0}}@keyframes rt-slide-from-top{0%{transform:translateY(4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-top{0%{transform:translateY(0) scale(1)}to{transform:translateY(4px) scale(.97)}}@keyframes rt-slide-from-bottom{0%{transform:translateY(-4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-bottom{0%{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(.97)}}@keyframes rt-slide-from-left{0%{transform:translate(4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-left{0%{transform:translate(0) scale(1)}to{transform:translate(4px) scale(.97)}}@keyframes rt-slide-from-right{0%{transform:translate(-4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-right{0%{transform:translate(0) scale(1)}to{transform:translate(-4px) scale(.97)}}@media (prefers-reduced-motion: no-preference){.rt-PopperContent{animation-timing-function:cubic-bezier(.16,1,.3,1)}.rt-PopperContent:where([data-state=open]){animation-duration:.16s}.rt-PopperContent:where([data-state=open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}.rt-PopperContent:where([data-state=closed]){animation-duration:.1s}.rt-PopperContent:where([data-state=closed]):where([data-side=top]){animation-name:rt-slide-to-top,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=bottom]){animation-name:rt-slide-to-bottom,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=left]){animation-name:rt-slide-to-left,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=right]){animation-name:rt-slide-to-right,rt-fade-out}}.rt-Box{box-sizing:border-box;display:block}.rt-Flex{box-sizing:border-box;display:flex;justify-content:flex-start}.rt-Grid{box-sizing:border-box;display:grid;align-items:stretch;justify-content:flex-start;grid-template-columns:minmax(0,1fr);grid-template-rows:none}.rt-Section{box-sizing:border-box;flex-shrink:0}.rt-Section:where(.rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}@media (min-width: 520px){.rt-Section:where(.xs\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xs\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xs\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xs\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 768px){.rt-Section:where(.sm\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.sm\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.sm\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.sm\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1024px){.rt-Section:where(.md\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.md\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.md\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.md\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1280px){.rt-Section:where(.lg\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.lg\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.lg\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.lg\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1640px){.rt-Section:where(.xl\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xl\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xl\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xl\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}.rt-Container{display:flex;box-sizing:border-box;flex-direction:column;align-items:center;flex-shrink:0;flex-grow:1}.rt-ContainerInner{width:100%}:where(.rt-Container.rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}@media (min-width: 520px){:where(.rt-Container.xs\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xs\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xs\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xs\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 768px){:where(.rt-Container.sm\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.sm\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.sm\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.sm\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1024px){:where(.rt-Container.md\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.md\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.md\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.md\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1280px){:where(.rt-Container.lg\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.lg\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.lg\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.lg\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1640px){:where(.rt-Container.xl\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xl\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xl\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xl\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}.rt-Skeleton{--skeleton-radius: var(--skeleton-radius-override);--skeleton-height: var(--skeleton-height-override);border-radius:var(--radius-1);animation:rt-skeleton-pulse 1s infinite alternate-reverse!important;background-image:none!important;background-clip:border-box!important;border:none!important;box-shadow:none!important;-webkit-box-decoration-break:clone!important;box-decoration-break:clone!important;color:transparent!important;outline:none!important;pointer-events:none!important;-webkit-user-select:none!important;user-select:none!important;cursor:default!important}.rt-Skeleton:where([data-inline-skeleton]){line-height:0;font-family:Arial,sans-serif!important}:where(.rt-Skeleton:empty){display:block;height:var(--space-3)}.rt-Skeleton>*,.rt-Skeleton:after,.rt-Skeleton:before{visibility:hidden!important}@keyframes rt-skeleton-pulse{0%{background-color:var(--gray-a3)}to{background-color:var(--gray-a4)}}.rt-Text{line-height:var(--line-height, var(--default-line-height));letter-spacing:var(--letter-spacing, inherit)}:where(.rt-Text){margin:0}.rt-Text:where([data-accent-color]){color:var(--accent-a11)}.rt-Text:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Text:where(.rt-high-contrast){color:var(--accent-12)}@media (pointer: coarse){.rt-Text:where(label){-webkit-tap-highlight-color:transparent}.rt-Text:where(label):where(:active){outline:.75em solid var(--gray-a4);outline-offset:-.6em}}.rt-Text:where(.rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Text:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xs\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xs\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xs\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xs\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xs\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xs\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Text:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.sm\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.sm\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.sm\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.sm\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.sm\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.sm\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Text:where(.md\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.md\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.md\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.md\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.md\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.md\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.md\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Text:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.lg\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.lg\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.lg\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.lg\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.lg\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.lg\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Text:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xl\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xl\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xl\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xl\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xl\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xl\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-BaseDialogOverlay{position:fixed;inset:0}.rt-BaseDialogOverlay:before{position:fixed;content:"";inset:0;background-color:var(--color-overlay)}.rt-BaseDialogScroll{display:flex;overflow:auto;position:absolute;inset:0}.rt-BaseDialogScrollPadding{flex-grow:1;margin:auto;padding-top:var(--space-6);padding-bottom:max(var(--space-6),6vh);padding-left:var(--space-4);padding-right:var(--space-4)}.rt-BaseDialogScrollPadding:where(.rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.rt-r-align-center){margin-top:auto}@media (min-width: 520px){.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-center){margin-top:auto}}@media (min-width: 768px){.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-center){margin-top:auto}}@media (min-width: 1024px){.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-center){margin-top:auto}}@media (min-width: 1280px){.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-center){margin-top:auto}}@media (min-width: 1640px){.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-center){margin-top:auto}}.rt-BaseDialogContent{margin:auto;width:100%;z-index:1;position:relative;overflow:auto;--inset-padding-top: var(--dialog-content-padding);--inset-padding-right: var(--dialog-content-padding);--inset-padding-bottom: var(--dialog-content-padding);--inset-padding-left: var(--dialog-content-padding);padding:var(--dialog-content-padding);box-sizing:border-box;background-color:var(--color-panel-solid);box-shadow:var(--shadow-6);outline:none}.rt-BaseDialogContent:where(.rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-BaseDialogContent:where(.xs\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xs\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-BaseDialogContent:where(.sm\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.sm\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-BaseDialogContent:where(.md\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.md\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-BaseDialogContent:where(.lg\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.lg\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-BaseDialogContent:where(.xl\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xl\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (prefers-reduced-motion: no-preference){@keyframes rt-dialog-overlay-no-op{0%{opacity:1}to{opacity:1}}@keyframes rt-dialog-content-show{0%{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rt-dialog-content-hide{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(5px) scale(.99)}}.rt-BaseDialogOverlay:where([data-state=closed]){animation:rt-dialog-overlay-no-op .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=open]):before{animation:rt-fade-in .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=closed]):before{opacity:0;animation:rt-fade-out .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=open]){animation:rt-dialog-content-show .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=closed]){opacity:0;animation:rt-dialog-content-hide .1s cubic-bezier(.16,1,.3,1)}}.rt-AvatarRoot{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;-webkit-user-select:none;user-select:none;width:var(--avatar-size);height:var(--avatar-size);flex-shrink:0}.rt-AvatarImage{width:100%;height:100%;object-fit:cover;border-radius:inherit}.rt-AvatarFallback{font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;z-index:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:inherit;text-transform:uppercase}.rt-AvatarFallback:where(.rt-one-letter){font-size:var(--avatar-fallback-one-letter-font-size)}.rt-AvatarFallback:where(.rt-two-letters){font-size:var(--avatar-fallback-two-letters-font-size, var(--avatar-fallback-one-letter-font-size))}.rt-AvatarRoot:where(.rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}@media (min-width: 520px){.rt-AvatarRoot:where(.xs\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xs\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xs\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xs\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xs\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xs\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xs\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 768px){.rt-AvatarRoot:where(.sm\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.sm\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.sm\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.sm\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.sm\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.sm\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.sm\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-AvatarRoot:where(.md\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.md\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.md\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.md\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.md\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.md\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.md\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-AvatarRoot:where(.lg\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.lg\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.lg\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.lg\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.lg\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.lg\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.lg\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-AvatarRoot:where(.xl\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xl\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xl\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xl\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xl\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xl\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xl\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}.rt-AvatarRoot:where(.rt-variant-solid) :where(.rt-AvatarFallback){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-AvatarRoot:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-AvatarFallback){background-color:var(--accent-12);color:var(--accent-1)}.rt-AvatarRoot:where(.rt-variant-soft) :where(.rt-AvatarFallback){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-AvatarRoot:where(.rt-variant-soft):where(.rt-high-contrast) :where(.rt-AvatarFallback){color:var(--accent-12)}.rt-Badge{display:inline-flex;align-items:center;white-space:nowrap;font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;flex-shrink:0;line-height:1;height:-moz-fit-content;height:fit-content}.rt-Badge:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}@media (min-width: 520px){.rt-Badge:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 768px){.rt-Badge:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1024px){.rt-Badge:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1280px){.rt-Badge:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1640px){.rt-Badge:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}.rt-Badge:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-Badge:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}.rt-Badge:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a6);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-Blockquote{box-sizing:border-box;border-left:max(var(--space-1),.25em) solid var(--accent-a6);padding-left:min(var(--space-5),max(var(--space-3),.5em))}.rt-BaseButton{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;font-family:var(--default-font-family);font-style:normal;text-align:center}.rt-BaseButton:where([data-disabled]){--spinner-opacity: 1}.rt-BaseButton:where(.rt-loading){position:relative}.rt-BaseButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height)}.rt-BaseButton:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content}.rt-BaseButton:where(.rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}@media (min-width: 520px){.rt-BaseButton:where(.xs\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 768px){.rt-BaseButton:where(.sm\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1024px){.rt-BaseButton:where(.md\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1280px){.rt-BaseButton:where(.lg\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1640px){.rt-BaseButton:where(.xl\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}.rt-BaseButton:where(.rt-variant-classic){background-color:var(--accent-9);color:var(--accent-contrast);position:relative;z-index:0;background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-9) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-9),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):after{content:"";position:absolute;border-radius:inherit;pointer-events:none;inset:0;z-index:-1;border:var(--base-button-classic-after-inset) solid transparent;background-clip:content-box;background-color:inherit;background-image:linear-gradient(var(--black-a1),transparent,var(--white-a2));box-shadow:inset 0 2px 3px -1px var(--white-a4)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1);background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-12) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-12),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a3),transparent,var(--white-a2))}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-classic):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-classic):where(:hover):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])){background-color:var(--accent-9);background-image:linear-gradient(var(--black-a1),transparent);padding-top:var(--base-button-classic-active-padding-top);box-shadow:inset 0 4px 2px -2px var(--gray-a4),inset 0 1px 1px var(--gray-a7),inset 0 0 0 1px var(--gray-a5),inset 0 0 0 1px var(--accent-9),inset 0 3px 2px var(--gray-a3),inset 0 0 0 1px var(--white-a7),inset 0 -2px 1px var(--white-a5)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):after{box-shadow:none;background-color:inherit;background-image:linear-gradient(var(--black-a2),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast){background-color:var(--accent-12);filter:var(--base-button-classic-high-contrast-active-filter);box-shadow:var(--base-button__classic-active__shadow-front-layer),inset 0 0 0 1px var(--accent-12),var(--base-button__classic-active__shadow-bottom-layer)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a5),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]):after{box-shadow:none;background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-BaseButton:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(:hover){background-color:var(--accent-10)}}.rt-BaseButton:where(.rt-variant-solid):where([data-state=open]){background-color:var(--accent-10)}.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){background-color:var(--accent-10);filter:var(--base-button-solid-active-filter)}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-solid):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where([data-state=open]){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:active:not([data-state=open])){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-active-filter)}.rt-BaseButton:where(.rt-variant-solid):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost){color:var(--accent-a11)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}.rt-BaseButton:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-soft):where(:focus-visible){outline:2px solid var(--accent-8);outline-offset:-1px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-BaseButton:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-soft):where(:active:not([data-state=open])){background-color:var(--accent-a5)}.rt-BaseButton:where(.rt-variant-soft):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-BaseButton:where(.rt-variant-ghost):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-ghost):where(:active:not([data-state=open])){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:transparent}.rt-BaseButton:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-outline):where(:hover){background-color:var(--accent-a2)}}.rt-BaseButton:where(.rt-variant-outline):where([data-state=open]){background-color:var(--accent-a2)}.rt-BaseButton:where(.rt-variant-outline):where(:active:not([data-state=open])){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-outline):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-outline):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a7);background-color:transparent}.rt-BaseButton:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a7);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--accent-a8)}}.rt-BaseButton:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:active:not([data-state=open])){background-color:var(--accent-a3);box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-surface):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a2)}.rt-Button:where(:not(.rt-variant-ghost)) :where(svg){opacity:.9}.rt-Button:where(.rt-variant-ghost){padding:var(--button-ghost-padding-y) var(--button-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--button-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--button-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--button-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--button-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-Button:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Button:where(.rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}@media (min-width: 520px){.rt-Button:where(.xs\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xs\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xs\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xs\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 768px){.rt-Button:where(.sm\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.sm\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.sm\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.sm\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1024px){.rt-Button:where(.md\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.md\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.md\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.md\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.md\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.md\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.md\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1280px){.rt-Button:where(.lg\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.lg\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.lg\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.lg\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1640px){.rt-Button:where(.xl\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xl\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xl\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xl\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}.rt-Button:where(:not(.rt-variant-ghost)){font-weight:var(--font-weight-medium)}.rt-CalloutRoot{box-sizing:border-box;display:grid;align-items:flex-start;justify-content:flex-start;text-align:left;color:var(--accent-a11)}.rt-CalloutRoot:where(.rt-high-contrast){color:var(--accent-12)}.rt-CalloutIcon{display:flex;align-items:center;grid-column-start:-2;height:var(--callout-icon-height)}.rt-CalloutRoot>:where(:not(.rt-CalloutIcon)){grid-column-start:-1}.rt-CalloutRoot:where(.rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}@media (min-width: 520px){.rt-CalloutRoot:where(.xs\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 768px){.rt-CalloutRoot:where(.sm\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1024px){.rt-CalloutRoot:where(.md\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1280px){.rt-CalloutRoot:where(.lg\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1640px){.rt-CalloutRoot:where(.xl\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}.rt-CalloutRoot:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-CalloutRoot:where(.rt-variant-surface){box-shadow:inset 0 0 0 1px var(--accent-a6);background-color:var(--accent-a2)}.rt-CalloutRoot:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a7)}.rt-BaseCard{display:block;position:relative;overflow:hidden;border-radius:var(--base-card-border-radius);font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--inset-border-width: var(--base-card-border-width);--inset-border-radius: var(--base-card-border-radius);padding-top:var(--base-card-padding-top);padding-right:var(--base-card-padding-right);padding-bottom:var(--base-card-padding-bottom);padding-left:var(--base-card-padding-left);box-sizing:border-box;--inset-padding-top: calc(var(--base-card-padding-top) - var(--base-card-border-width));--inset-padding-right: calc(var(--base-card-padding-right) - var(--base-card-border-width));--inset-padding-bottom: calc(var(--base-card-padding-bottom) - var(--base-card-border-width));--inset-padding-left: calc(var(--base-card-padding-left) - var(--base-card-border-width));contain:paint}.rt-BaseCard:before,.rt-BaseCard:after{content:"";position:absolute;pointer-events:none;transition:inherit;border-radius:calc(var(--base-card-border-radius) - var(--base-card-border-width));inset:var(--base-card-border-width)}.rt-BaseCard:before{z-index:-1}.rt-Card{--base-card-padding-top: var(--card-padding);--base-card-padding-right: var(--card-padding);--base-card-padding-bottom: var(--card-padding);--base-card-padding-left: var(--card-padding);--base-card-border-radius: var(--card-border-radius);--base-card-border-width: var(--card-border-width)}.rt-Card:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-Card:where(:focus-visible):after{outline:inherit}.rt-Card:where(:focus-visible):where(:active:not([data-state=open])):before{background-image:linear-gradient(var(--focus-a2),var(--focus-a2))}.rt-Card:where(.rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}@media (min-width: 520px){.rt-Card:where(.xs\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 768px){.rt-Card:where(.sm\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1024px){.rt-Card:where(.md\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1280px){.rt-Card:where(.lg\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1640px){.rt-Card:where(.xl\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}.rt-Card:where(.rt-variant-surface){--card-border-width: 1px;--card-background-color: var(--color-panel)}.rt-Card:where(.rt-variant-surface):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-surface):after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-surface-hover-box-shadow)}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-surface-active-box-shadow)}.rt-Card:where(.rt-variant-classic){--card-border-width: 1px;--card-background-color: var(--color-panel);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-classic):after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])){transition-duration:40ms;box-shadow:var(--base-card-classic-active-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-classic-active-box-shadow-inner)}.rt-Card:where(.rt-variant-ghost){--card-border-width: 0px;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--card-padding));--margin-right-override: calc(var(--margin-right) - var(--card-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--card-padding));--margin-left-override: calc(var(--margin-left) - var(--card-padding));margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Card:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}@media (hover: hover){.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover):where(:focus-visible){background-color:var(--focus-a2)}}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]):where(:focus-visible){background-color:var(--focus-a2)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])){background-color:var(--gray-a4)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])):where(:focus-visible){background-color:var(--focus-a2)}@media (pointer: coarse){.rt-Card:where(:any-link,button,label):where(:active:not(:focus-visible,[data-state=open])):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-BaseCheckboxRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-checkbox);height:var(--skeleton-height, var(--line-height, var(--checkbox-size)));--skeleton-height-override: var(--checkbox-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--checkbox-border-radius)}.rt-BaseCheckboxRoot:before{content:"";display:block;height:var(--checkbox-size);width:var(--checkbox-size);border-radius:var(--checkbox-border-radius)}.rt-BaseCheckboxIndicator{position:absolute;width:var(--checkbox-indicator-size);height:var(--checkbox-indicator-size);transform:translate(-50%,-50%);top:50%;left:50%}.rt-BaseCheckboxRoot:where(.rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}@media (min-width: 520px){.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 768px){.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1024px){.rt-BaseCheckboxRoot:where(.md\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1280px){.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1640px){.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a3),var(--shadow-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a1));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled):before{box-shadow:var(--shadow-1);background-color:transparent;background-image:none}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):before{background-color:var(--accent-a5)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-a11)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled):before{background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-CheckboxCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-CheckboxCardsItem:where(:has(:focus-visible)){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-CheckboxCardsItem:where(:has(:focus-visible)):after{outline:inherit}.rt-CheckboxCardsItem>*{pointer-events:none}.rt-CheckboxCardsItem>:where(svg){flex-shrink:0}.rt-CheckboxCardCheckbox{position:absolute;right:var(--checkbox-cards-item-padding-left)}.rt-CheckboxCardsItem{--checkbox-cards-item-padding-right: calc(var(--checkbox-cards-item-padding-left) * 2 + var(--checkbox-cards-item-checkbox-size));--base-card-padding-top: var(--checkbox-cards-item-padding-top);--base-card-padding-right: var(--checkbox-cards-item-padding-right);--base-card-padding-bottom: var(--checkbox-cards-item-padding-bottom);--base-card-padding-left: var(--checkbox-cards-item-padding-left);--base-card-border-radius: var(--checkbox-cards-item-border-radius);--base-card-border-width: var(--checkbox-cards-item-border-width);display:flex;align-items:center;gap:var(--space-2);cursor:var(--cursor-button);-webkit-tap-highlight-color:transparent}.rt-CheckboxCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-CheckboxCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}@media (pointer: coarse){.rt-CheckboxCardsItem:where(:active:not(:focus-visible)):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-CheckboxCardsItem:where(:has(:disabled)){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-CheckboxCardsItem:where(:has(:disabled)):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-CheckboxCardsItem:where(:has(:disabled))::selection{background-color:var(--gray-a5)}.rt-CheckboxGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-CheckboxGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-CheckboxGroupItemCheckbox:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxGroupItemCheckbox:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxGroupItemCheckbox:where(:disabled):before{background-color:var(--gray-a3)}.rt-CheckboxGroupItemInner{min-width:0}.rt-CheckboxRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxRoot:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxRoot:where(:disabled):before{background-color:var(--gray-a3)}.rt-Code{--code-variant-font-size-adjust: calc(var(--code-font-size-adjust) * .95);font-family:var(--code-font-family);font-size:calc(var(--code-variant-font-size-adjust) * 1em);font-style:var(--code-font-style);font-weight:var(--code-font-weight);line-height:1.25;letter-spacing:calc(var(--code-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));border-radius:calc((.5px + .2em) * var(--radius-factor));box-sizing:border-box;padding-top:var(--code-padding-top);padding-left:var(--code-padding-left);padding-bottom:var(--code-padding-bottom);padding-right:var(--code-padding-right);height:-moz-fit-content;height:fit-content}.rt-Code :where(.rt-Code){font-size:inherit}.rt-Code:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Code:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Code:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Code:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Code:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Code:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-Code:where(.rt-variant-ghost){--code-variant-font-size-adjust: var(--code-font-size-adjust);padding:0}.rt-Code:where(.rt-variant-ghost):where([data-accent-color]){color:var(--accent-a11)}.rt-Code:where(.rt-variant-ghost):where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Code:where(.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-Code:where(.rt-variant-solid){background-color:var(--accent-a9);color:var(--accent-contrast)}.rt-Code:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid),.rt-Code:where(.rt-variant-solid):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(:hover){background-color:var(--accent-10)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(.rt-high-contrast:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(.rt-high-contrast:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-Code:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Code:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-soft),.rt-Code:where(.rt-variant-soft):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-soft):where(:hover),.rt-Code:where(.rt-variant-soft):where(:any-link,button):where(:hover){background-color:var(--accent-a4)}}.rt-Code:where(.rt-variant-outline){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a8);color:var(--accent-a11)}.rt-Code:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a7),inset 0 0 0 max(1px,.033em) var(--gray-a11);color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-outline),.rt-Code:where(.rt-variant-outline):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-outline):where(:hover),.rt-Code:where(.rt-variant-outline):where(:any-link,button):where(:hover){background-color:var(--accent-a2)}}.rt-BaseMenuContent{--scrollarea-scrollbar-vertical-margin-top: var(--base-menu-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--base-menu-content-padding);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background-color:var(--base-menu-bg);--base-menu-bg: var(--color-panel-solid);box-shadow:var(--shadow-5)}.rt-BaseMenuViewport{flex:1 1 0%;display:flex;flex-direction:column;overflow:auto;padding:var(--base-menu-content-padding);box-sizing:border-box}:where(.rt-BaseMenuContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-BaseMenuViewport{padding-right:var(--space-3)}.rt-BaseMenuItem{display:flex;align-items:center;gap:var(--space-2);height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;position:relative;outline:none;scroll-margin:var(--base-menu-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-BaseMenuShortcut{display:flex;align-items:center;margin-left:auto;padding-left:var(--space-4);color:var(--gray-a11)}.rt-BaseMenuSubTriggerIcon{color:var(--gray-12);margin-right:calc(-2px * var(--scaling))}.rt-BaseMenuItemIndicator{position:absolute;left:0;width:var(--base-menu-item-padding-left);display:inline-flex;align-items:center;justify-content:center}.rt-BaseMenuSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--base-menu-item-padding-left);margin-right:var(--base-menu-item-padding-right);background-color:var(--gray-a6)}.rt-BaseMenuLabel{display:flex;align-items:center;height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-BaseMenuItem)+.rt-BaseMenuLabel{margin-top:var(--space-2)}.rt-BaseMenuArrow{fill:var(--base-menu-bg)}.rt-BaseMenuContent:where(.rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}@media (min-width: 520px){.rt-BaseMenuContent:where(.xs\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 768px){.rt-BaseMenuContent:where(.sm\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1024px){.rt-BaseMenuContent:where(.md\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1280px){.rt-BaseMenuContent:where(.lg\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1640px){.rt-BaseMenuContent:where(.xl\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}.rt-BaseMenuItem:where([data-accent-color]){color:var(--accent-a11)}.rt-BaseMenuItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-BaseMenuItem:where([data-disabled],[data-highlighted]) :where(.rt-BaseMenuShortcut),.rt-BaseMenuSubTrigger:where([data-state=open]) :where(.rt-BaseMenuShortcut){color:inherit}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--gray-a3)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]):where([data-accent-color]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--accent-a3)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-a4)}.rt-ContextMenuContent{max-height:var(--radix-context-menu-content-available-height);transform-origin:var(--radix-context-menu-content-transform-origin)}.rt-DataListRoot{overflow-wrap:anywhere;font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--data-list-leading-trim-start: calc(var(--default-leading-trim-start) - var(--line-height) / 2);--data-list-leading-trim-end: calc(var(--default-leading-trim-end) - var(--line-height) / 2)}.rt-DataListLabel{display:flex;color:var(--gray-a11)}.rt-DataListLabel:where(.rt-high-contrast){color:var(--gray-12)}.rt-DataListLabel:where([data-accent-color]){color:var(--accent-a11)}.rt-DataListLabel:where([data-accent-color]):where(.rt-high-contrast){color:var(--accent-12)}.rt-DataListValue{display:flex;margin:0;min-width:0px;margin-top:var(--data-list-value-margin-top);margin-bottom:var(--data-list-value-margin-bottom)}.rt-DataListItem{--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}:where(.rt-DataListItem:first-child) .rt-DataListValue{margin-top:var(--data-list-first-item-value-margin-top)}:where(.rt-DataListItem:last-child) .rt-DataListValue{margin-bottom:var(--data-list-last-item-value-margin-bottom)}.rt-DataListRoot:where(.rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.rt-r-size-3){gap:calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xs\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xs\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.sm\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.sm\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.md\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.md\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.lg\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.lg\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xl\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xl\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}.rt-DataListRoot:where(.rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}.rt-DataListLabel:before,.rt-DataListValue:before{content:"‍"}.rt-DataListItem:where(.rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}@media (min-width: 520px){.rt-DataListItem:where(.xs\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xs\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 768px){.rt-DataListItem:where(.sm\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.sm\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1024px){.rt-DataListItem:where(.md\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.md\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1280px){.rt-DataListItem:where(.lg\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.lg\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1640px){.rt-DataListItem:where(.xl\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xl\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}.rt-DataListItem:where(:first-child){margin-top:var(--leading-trim-start)}.rt-DataListItem:where(:last-child){margin-bottom:var(--leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xs\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.sm\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.md\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.lg\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xl\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}.rt-DropdownMenuContent{max-height:var(--radix-dropdown-menu-content-available-height);transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.rt-Em{box-sizing:border-box;font-family:var(--em-font-family);font-size:calc(var(--em-font-size-adjust) * 1em);font-style:var(--em-font-style);font-weight:var(--em-font-weight);line-height:1.25;letter-spacing:calc(var(--em-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Em :where(.rt-Em){font-size:inherit}.rt-Heading{--leading-trim-start: var(--heading-leading-trim-start);--leading-trim-end: var(--heading-leading-trim-end);font-family:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--font-weight-bold);line-height:var(--line-height)}:where(.rt-Heading){margin:0}.rt-Heading:where([data-accent-color]){color:var(--accent-a11)}.rt-Heading:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Heading:where(.rt-high-contrast){color:var(--accent-12)}.rt-Heading:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}@media (min-width: 520px){.rt-Heading:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 768px){.rt-Heading:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1024px){.rt-Heading:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1280px){.rt-Heading:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1640px){.rt-Heading:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}.rt-HoverCardContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-4);overflow:auto;position:relative;--inset-padding-top: var(--hover-card-content-padding);--inset-padding-right: var(--hover-card-content-padding);--inset-padding-bottom: var(--hover-card-content-padding);--inset-padding-left: var(--hover-card-content-padding);padding:var(--hover-card-content-padding);box-sizing:border-box;transform-origin:var(--radix-hover-card-content-transform-origin)}.rt-HoverCardContent:where(.rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-HoverCardContent:where(.xs\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-HoverCardContent:where(.sm\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-HoverCardContent:where(.md\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-HoverCardContent:where(.lg\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-HoverCardContent:where(.xl\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}.rt-IconButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height);width:var(--base-button-height)}.rt-IconButton:where(.rt-variant-ghost){padding:var(--icon-button-ghost-padding);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--icon-button-ghost-padding));--margin-right-override: calc(var(--margin-right) - var(--icon-button-ghost-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--icon-button-ghost-padding));--margin-left-override: calc(var(--margin-left) - var(--icon-button-ghost-padding));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-IconButton:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}@media (min-width: 520px){.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 768px){.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1024px){.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1280px){.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1640px){.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}.rt-Inset{box-sizing:border-box;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;overflow:hidden;margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Inset)>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Inset:where(.rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}@media (min-width: 520px){.rt-Inset:where(.xs\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xs\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xs\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xs\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xs\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 768px){.rt-Inset:where(.sm\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.sm\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.sm\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.sm\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.sm\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1024px){.rt-Inset:where(.md\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.md\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.md\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.md\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.md\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1280px){.rt-Inset:where(.lg\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.lg\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.lg\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.lg\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.lg\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1640px){.rt-Inset:where(.xl\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xl\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xl\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xl\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xl\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}.rt-Kbd{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--default-font-family);font-weight:400;vertical-align:text-top;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;top:-.03em;font-size:.75em;min-width:1.75em;line-height:1.7em;box-sizing:border-box;padding-left:.5em;padding-right:.5em;padding-bottom:.05em;word-spacing:-.1em;border-radius:calc(var(--radius-factor) * .35em);letter-spacing:var(--letter-spacing, var(--default-letter-spacing));height:-moz-fit-content;height:fit-content;color:var(--gray-12);background-color:var(--gray-1);box-shadow:var(--kbd-box-shadow);transition:box-shadow .12s,background-color .12s}@media (hover: hover){.rt-Kbd:where(:any-link,button):where(:hover){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}}.rt-Kbd:where(:any-link,button):where([data-state=open]){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}.rt-Kbd:where(:any-link,button):where(:active:not([data-state=open])){padding-top:.05em;padding-bottom:0;transition-duration:40ms,40ms;background-color:var(--gray-2);box-shadow:inset 0 .05em var(--black-a3),0 0 0 .05em var(--gray-a7)}.rt-Kbd:where(:any-link,button):where(:focus-visible){outline:2px solid var(--focus-8)}.rt-Kbd:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Kbd:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Kbd:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Kbd:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Kbd:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Kbd:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}.rt-Link:where(:any-link,button){cursor:var(--cursor-link);text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:min(2px,max(1px,.05em));text-underline-offset:calc(.025em + 2px);text-decoration-color:var(--accent-a5)}.rt-Link:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where([data-accent-color=""]){color:var(--accent-12)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button){text-decoration-color:color-mix(in oklab,var(--accent-a5),var(--gray-a6))}}@media (pointer: coarse){.rt-Link:where(:any-link,button):where(:active:not(:focus-visible,[data-state=open])){outline:.75em solid var(--accent-a4);outline-offset:-.6em}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-line:underline;text-decoration-color:var(--accent-a6)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-color:color-mix(in oklab,var(--accent-a6),var(--gray-a6))}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-hover):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-always){text-decoration-line:underline}.rt-Link:where(:focus-visible){text-decoration-line:none;border-radius:calc(.07em * var(--radius-factor));outline-color:var(--focus-8);outline-width:2px;outline-style:solid;outline-offset:2px}.rt-Link:where(:has(.rt-Code:not(.rt-variant-ghost):only-child)){text-decoration-color:transparent}.rt-PopoverContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-5);min-width:var(--radix-popover-trigger-width);outline:0;overflow:auto;position:relative;--inset-padding-top: var(--popover-content-padding);--inset-padding-right: var(--popover-content-padding);--inset-padding-bottom: var(--popover-content-padding);--inset-padding-left: var(--popover-content-padding);padding:var(--popover-content-padding);box-sizing:border-box;transform-origin:var(--radix-popover-content-transform-origin)}.rt-PopoverContent:where(.rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-PopoverContent:where(.xs\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xs\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-PopoverContent:where(.sm\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.sm\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-PopoverContent:where(.md\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.md\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-PopoverContent:where(.lg\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.lg\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-PopoverContent:where(.xl\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xl\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}.rt-ProgressRoot{--progress-value: 0;--progress-max: 100;--progress-duration: 5s;pointer-events:none;position:relative;overflow:hidden;flex-grow:1;height:var(--progress-height);border-radius:max(calc(var(--radius-factor) * var(--progress-height) / 3),calc(var(--radius-factor) * var(--radius-thumb)))}.rt-ProgressRoot:after{position:absolute;inset:0;content:"";border-radius:inherit}.rt-ProgressIndicator{display:block;height:100%;width:100%;transform:scaleX(calc(var(--progress-value) / var(--progress-max)));transform-origin:left center;transition:transform .12s}.rt-ProgressIndicator:where([data-state=indeterminate]){animation-name:rt-progress-indicator-indeterminate-grow,var(--progress-indicator-indeterminate-animation-start),var(--progress-indicator-indeterminate-animation-repeat);animation-delay:0s,calc(var(--progress-duration) + 5s),calc(var(--progress-duration) + 7.5s);animation-duration:var(--progress-duration),2.5s,5s;animation-iteration-count:1,1,infinite;animation-fill-mode:both,none,none;animation-direction:normal,normal,alternate}.rt-ProgressIndicator:where([data-state=indeterminate]):after{position:absolute;inset:0;content:"";width:400%;animation-name:rt-progress-indicator-indeterminate-shine-from-left;animation-delay:calc(var(--progress-duration) + 5s);animation-duration:5s;animation-fill-mode:backwards;animation-iteration-count:infinite;background-image:linear-gradient(to right,transparent 25%,var(--progress-indicator-after-linear-gradient),transparent 75%)}@keyframes rt-progress-indicator-indeterminate-grow{0%{transform:scaleX(.01)}20%{transform:scaleX(.1)}30%{transform:scaleX(.6)}40%,50%{transform:scaleX(.9)}to{transform:scaleX(1)}}@keyframes rt-progress-indicator-indeterminate-shine-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.rt-ProgressRoot:where(.rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.rt-r-size-3){--progress-height: var(--space-2)}@media (min-width: 520px){.rt-ProgressRoot:where(.xs\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xs\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xs\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 768px){.rt-ProgressRoot:where(.sm\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.sm\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.sm\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1024px){.rt-ProgressRoot:where(.md\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.md\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.md\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1280px){.rt-ProgressRoot:where(.lg\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.lg\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.lg\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1640px){.rt-ProgressRoot:where(.xl\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xl\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xl\:rt-r-size-3){--progress-height: var(--space-2)}}.rt-ProgressRoot:where(.rt-variant-surface){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-surface-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-surface-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-surface):after{box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-ProgressRoot:where(.rt-variant-surface) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-surface-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-surface-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-classic){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-classic-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-classic-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-classic):after{box-shadow:var(--shadow-1)}.rt-ProgressRoot:where(.rt-variant-classic) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-classic-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-classic-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-soft){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-soft-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-soft-indeterminate-pulse;background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator){background-image:linear-gradient(var(--accent-a5),var(--accent-a5));background-color:var(--accent-8)}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-soft-indeterminate-fade{to{background-color:var(--accent-5)}}@keyframes rt-progress-indicator-soft-indeterminate-pulse{0%{background-color:var(--accent-5)}to{background-color:var(--accent-7)}}.rt-ProgressRoot:where(.rt-high-contrast){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-high-contrast-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-high-contrast-indeterminate-pulse}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator){background-color:var(--accent-12)}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-high-contrast-indeterminate-fade{to{opacity:.8}}@keyframes rt-progress-indicator-high-contrast-indeterminate-pulse{0%{opacity:.8}to{opacity:1}}.rt-Quote{box-sizing:border-box;font-family:var(--quote-font-family);font-size:calc(var(--quote-font-size-adjust) * 1em);font-style:var(--quote-font-style);font-weight:var(--quote-font-weight);line-height:1.25;letter-spacing:calc(var(--quote-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Quote :where(.rt-Quote){font-size:inherit}.rt-RadioCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-RadioCardsItem{--base-card-padding-top: var(--radio-cards-item-padding-y);--base-card-padding-right: var(--radio-cards-item-padding-x);--base-card-padding-bottom: var(--radio-cards-item-padding-y);--base-card-padding-left: var(--radio-cards-item-padding-x);--base-card-border-radius: var(--radio-cards-item-border-radius);--base-card-border-width: var(--radio-cards-item-border-width);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.rt-RadioCardsItem>*{pointer-events:none}.rt-RadioCardsItem>:where(svg){flex-shrink:0}.rt-RadioCardsItem:after{outline-offset:-1px}.rt-RadioCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}@media (min-width: 520px){.rt-RadioCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 768px){.rt-RadioCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1024px){.rt-RadioCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1280px){.rt-RadioCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1640px){.rt-RadioCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-RadioCardsItem:where([data-state=checked]):after{outline:2px solid var(--accent-indicator)}:where(.rt-RadioCardsRoot.rt-high-contrast) .rt-RadioCardsItem:where([data-state=checked]):after{outline-color:var(--accent-12)}.rt-RadioCardsItem:where(:focus-visible):after{outline:2px solid var(--focus-8)}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):before{background-image:linear-gradient(var(--focus-a3),var(--focus-a3))}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):after{outline-color:var(--focus-10)}.rt-RadioCardsItem:where(:disabled){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-RadioCardsItem:where(:disabled)::selection{background-color:var(--gray-a5)}.rt-RadioCardsItem:where(:disabled):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-RadioCardsItem:where(:disabled):after{outline-color:var(--gray-8)}.rt-RadioGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-RadioGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-RadioGroupItemInner{min-width:0}.rt-BaseRadioRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-radio);height:var(--skeleton-height, var(--line-height, var(--radio-size)));--skeleton-height-override: var(--radio-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: 100%}.rt-BaseRadioRoot:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-BaseRadioRoot:before{content:"";display:block;height:var(--radio-size);width:var(--radio-size);border-radius:100%}.rt-BaseRadioRoot:after{pointer-events:none;position:absolute;height:var(--radio-size);width:var(--radio-size);border-radius:100%;transform:scale(.4)}.rt-BaseRadioRoot:where(:checked,[data-state=checked]):after{content:""}.rt-BaseRadioRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseRadioRoot:where(.rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-BaseRadioRoot:where(.xs\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-BaseRadioRoot:where(.sm\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-BaseRadioRoot:where(.md\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.md\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.md\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-BaseRadioRoot:where(.lg\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-BaseRadioRoot:where(.xl\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator)}.rt-BaseRadioRoot:where(.rt-variant-surface):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-7),var(--shadow-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a3));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseRadioRoot:where(.rt-variant-classic):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):before{box-shadow:var(--shadow-1);background-color:var(--gray-a3);background-image:none}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):before{background-color:var(--accent-a4)}.rt-BaseRadioRoot:where(.rt-variant-soft):after{background-color:var(--accent-a11)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(.rt-high-contrast):after{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:focus-visible):before{outline-color:var(--accent-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):before{background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-ScrollAreaRoot{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%}.rt-ScrollAreaViewport{display:flex;flex-direction:column;width:100%;height:100%}.rt-ScrollAreaViewport:where(:focus-visible)+:where(.rt-ScrollAreaViewportFocusRing){position:absolute;inset:0;pointer-events:none;outline:2px solid var(--focus-8);outline-offset:-2px}.rt-ScrollAreaViewport:where(:has(.rt-ScrollAreaScrollbar[data-orientation=horizontal])){overscroll-behavior-x:contain}.rt-ScrollAreaViewport>*{display:block!important;width:-moz-fit-content;width:fit-content;flex-grow:1}.rt-ScrollAreaScrollbar{display:flex;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--gray-a3);border-radius:var(--scrollarea-scrollbar-border-radius);animation-duration:.12s;animation-timing-function:ease-out}.rt-ScrollAreaScrollbar:where([data-orientation=vertical]){flex-direction:column;width:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-vertical-margin-top);margin-bottom:var(--scrollarea-scrollbar-vertical-margin-bottom);margin-left:var(--scrollarea-scrollbar-vertical-margin-left);margin-right:var(--scrollarea-scrollbar-vertical-margin-right)}.rt-ScrollAreaScrollbar:where([data-orientation=horizontal]){flex-direction:row;height:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-horizontal-margin-top);margin-bottom:var(--scrollarea-scrollbar-horizontal-margin-bottom);margin-left:var(--scrollarea-scrollbar-horizontal-margin-left);margin-right:var(--scrollarea-scrollbar-horizontal-margin-right)}.rt-ScrollAreaThumb{position:relative;background-color:var(--gray-a8);border-radius:inherit;transition:background-color .1s}.rt-ScrollAreaThumb:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;min-width:var(--space-4);min-height:var(--space-4)}.rt-ScrollAreaScrollbar:where(.rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}@media (min-width: 520px){.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 768px){.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1024px){.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1280px){.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1640px){.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}.rt-ScrollAreaScrollbar:where([data-state=visible]){animation-name:rt-fade-in}.rt-ScrollAreaScrollbar:where([data-state=hidden]){animation-name:rt-fade-out}@media (hover: hover){.rt-ScrollAreaThumb:where(:hover){background-color:var(--gray-a9)}}.rt-SegmentedControlRoot{display:inline-grid;vertical-align:top;grid-auto-flow:column;grid-auto-columns:1fr;align-items:stretch;color:var(--gray-12);background-color:var(--color-surface);background-image:linear-gradient(var(--gray-a3),var(--gray-a3));position:relative;min-width:max-content;font-family:var(--default-font-family);font-style:normal;text-align:center;isolation:isolate;border-radius:var(--segmented-control-border-radius)}.rt-SegmentedControlRoot:where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-3)}.rt-SegmentedControlItem{display:flex;align-items:stretch;-webkit-user-select:none;user-select:none}.rt-SegmentedControlItem:where(:first-child){border-top-left-radius:inherit;border-bottom-left-radius:inherit}.rt-SegmentedControlItem:where(:nth-last-child(2)){border-top-right-radius:inherit;border-bottom-right-radius:inherit}.rt-SegmentedControlItem:where(:focus-visible){border-radius:inherit;outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SegmentedControlItemLabel :where(svg){flex-shrink:0}@media (hover: hover){:where(.rt-SegmentedControlItem[data-state=off]:not([disabled]):hover) .rt-SegmentedControlItemLabel{background-color:var(--gray-a2)}}.rt-SegmentedControlItemLabelInactive{position:absolute;transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-regular);letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing);opacity:1;transition-timing-function:ease-out}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelInactive{opacity:0;transition-timing-function:ease-in}.rt-SegmentedControlItemLabelActive{transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing);opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelActive{opacity:1;transition-timing-function:ease-out}.rt-SegmentedControlItemSeparator{z-index:-1;margin:3px -.5px;width:1px;background-color:var(--gray-a4);transition:opacity calc(.8 * var(--segmented-control-transition-duration));transition-timing-function:ease-out}:where(.rt-SegmentedControlItem:first-child) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible)) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible))+* .rt-SegmentedControlItemSeparator{opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlRoot:has(:focus-visible)) .rt-SegmentedControlItemSeparator{transition-duration:0ms}.rt-SegmentedControlIndicator{display:none;position:absolute;z-index:-1;top:0;left:0;height:100%;pointer-events:none;transition-property:transform;transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-duration:var(--segmented-control-transition-duration)}.rt-SegmentedControlIndicator:before{inset:1px;position:absolute;border-radius:max(.5px,calc(var(--segmented-control-border-radius) - 1px));background-color:var(--segmented-control-indicator-background-color);content:""}:where(.rt-SegmentedControlItem[data-state=on])~.rt-SegmentedControlIndicator{display:block}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator{--segmented-control-indicator-background-color: var(--gray-a3)}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator:before{inset:0;box-shadow:none}.rt-SegmentedControlIndicator:where(:nth-child(2)){width:100%}.rt-SegmentedControlIndicator:where(:nth-child(3)){width:50%}.rt-SegmentedControlIndicator:where(:nth-child(4)){width:calc(100% / 3)}.rt-SegmentedControlIndicator:where(:nth-child(5)){width:25%}.rt-SegmentedControlIndicator:where(:nth-child(6)){width:20%}.rt-SegmentedControlIndicator:where(:nth-child(7)){width:calc(100% / 6)}.rt-SegmentedControlIndicator:where(:nth-child(8)){width:calc(100% / 7)}.rt-SegmentedControlIndicator:where(:nth-child(9)){width:12.5%}.rt-SegmentedControlIndicator:where(:nth-child(10)){width:calc(100% / 9)}.rt-SegmentedControlIndicator:where(:nth-child(11)){width:10%}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(1))~.rt-SegmentedControlIndicator{transform:translate(0)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(2))~.rt-SegmentedControlIndicator{transform:translate(100%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(3))~.rt-SegmentedControlIndicator{transform:translate(200%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(4))~.rt-SegmentedControlIndicator{transform:translate(300%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(5))~.rt-SegmentedControlIndicator{transform:translate(400%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(6))~.rt-SegmentedControlIndicator{transform:translate(500%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(7))~.rt-SegmentedControlIndicator{transform:translate(600%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(8))~.rt-SegmentedControlIndicator{transform:translate(700%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(9))~.rt-SegmentedControlIndicator{transform:translate(800%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(10))~.rt-SegmentedControlIndicator{transform:translate(900%)}.rt-SegmentedControlItemLabel{box-sizing:border-box;display:flex;flex-grow:1;align-items:center;justify-content:center;border-radius:inherit}.rt-SegmentedControlRoot:where(.rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}@media (min-width: 520px){.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 768px){.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1024px){.rt-SegmentedControlRoot:where(.md\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1280px){.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1640px){.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}.rt-SegmentedControlRoot:where(.rt-variant-surface) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:0 0 0 1px var(--gray-a4)}.rt-SegmentedControlRoot:where(.rt-variant-classic) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:var(--shadow-2)}.rt-SelectTrigger{display:inline-flex;align-items:center;justify-content:space-between;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;line-height:var(--height);font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;color:var(--gray-12)}.rt-SelectTrigger:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SelectTriggerInner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-SelectIcon{flex-shrink:0}:where(.rt-SelectTrigger:not(.rt-variant-ghost)) .rt-SelectIcon{opacity:.9}.rt-SelectContent:where([data-side]){min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height);transform-origin:var(--radix-select-content-transform-origin)}.rt-SelectViewport{box-sizing:border-box;padding:var(--select-content-padding)}:where(.rt-SelectContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-SelectViewport{padding-right:var(--space-3)}.rt-SelectItem{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);position:relative;box-sizing:border-box;outline:none;scroll-margin:var(--select-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-SelectItemIndicator{position:absolute;left:0;width:var(--select-item-indicator-width);display:inline-flex;align-items:center;justify-content:center}.rt-SelectSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--select-item-indicator-width);margin-right:var(--select-separator-margin-right);background-color:var(--gray-a6)}.rt-SelectLabel{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-SelectItem)+.rt-SelectLabel{margin-top:var(--space-2)}.rt-SelectTrigger:where(:not(.rt-variant-ghost)){box-sizing:border-box;height:var(--select-trigger-height)}.rt-SelectTrigger:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content;padding:var(--select-trigger-ghost-padding-y) var(--select-trigger-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--select-trigger-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--select-trigger-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--select-trigger-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--select-trigger-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-SelectTrigger:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-SelectTrigger:where(.rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}@media (min-width: 520px){.rt-SelectTrigger:where(.xs\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xs\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 768px){.rt-SelectTrigger:where(.sm\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.sm\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1024px){.rt-SelectTrigger:where(.md\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.md\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1280px){.rt-SelectTrigger:where(.lg\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.lg\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1640px){.rt-SelectTrigger:where(.xl\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xl\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}.rt-SelectContent:where(.rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}@media (min-width: 520px){.rt-SelectContent:where(.xs\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 768px){.rt-SelectContent:where(.sm\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1024px){.rt-SelectContent:where(.md\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1280px){.rt-SelectContent:where(.lg\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1640px){.rt-SelectContent:where(.xl\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}.rt-SelectTrigger:where(.rt-variant-surface){color:var(--gray-12);background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a8)}}.rt-SelectTrigger:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a8)}.rt-SelectTrigger:where(.rt-variant-surface):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a2);box-shadow:inset 0 0 0 1px var(--gray-a6)}.rt-SelectTrigger:where(.rt-variant-surface):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-classic){color:var(--gray-12);background-image:linear-gradient(var(--gray-2),var(--gray-1));box-shadow:var(--select-trigger-classic-box-shadow);position:relative;z-index:0}.rt-SelectTrigger:where(.rt-variant-classic):before{content:"";position:absolute;z-index:-1;inset:0;border:2px solid transparent;background-clip:content-box;border-radius:inherit;pointer-events:none;background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1) 130%),linear-gradient(var(--color-surface),transparent)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-classic):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:hover):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled){color:var(--gray-a11);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled):before{background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-SelectTrigger:where(.rt-variant-classic):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-soft),.rt-SelectTrigger:where(.rt-variant-ghost){color:var(--accent-12)}.rt-SelectTrigger:where(.rt-variant-soft):where([data-placeholder]) :where(.rt-SelectTriggerInner),.rt-SelectTrigger:where(.rt-variant-ghost):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--accent-12);opacity:.6}.rt-SelectTrigger:where(.rt-variant-soft){background-color:var(--accent-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-SelectTrigger:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-SelectTrigger:where(.rt-variant-soft):where(:focus-visible){outline-color:var(--accent-8)}.rt-SelectTrigger:where(.rt-variant-soft):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-SelectTrigger:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-SelectTrigger:where(.rt-variant-ghost):where(:disabled){color:var(--gray-a11);background-color:transparent}.rt-SelectTrigger:where(:disabled) :where(.rt-SelectIcon){color:var(--gray-a9)}.rt-SelectContent{box-shadow:var(--shadow-5);--scrollarea-scrollbar-vertical-margin-top: var(--select-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--select-content-padding);overflow:hidden;background-color:var(--color-panel-solid)}.rt-SelectItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-SelectContent:where(.rt-variant-solid) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-SelectContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-SelectContent:where(.rt-variant-soft) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-a4)}.rt-Separator{display:block;background-color:var(--accent-a6)}.rt-Separator:where(.rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.rt-r-orientation-vertical){width:1px;height:var(--separator-size)}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xs\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.sm\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.md\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.lg\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xl\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}.rt-Separator:where(.rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.rt-r-size-4){--separator-size: 100%}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xs\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xs\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xs\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.sm\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.sm\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.sm\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.md\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.md\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.md\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.lg\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.lg\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.lg\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xl\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xl\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xl\:rt-r-size-4){--separator-size: 100%}}.rt-SliderRoot{--slider-thumb-size: calc(var(--slider-track-size) + var(--space-1));position:relative;display:flex;align-items:center;flex-grow:1;border-radius:max(calc(var(--radius-factor) * var(--slider-track-size) / 3),calc(var(--radius-factor) * var(--radius-thumb)));-webkit-user-select:none;user-select:none;touch-action:none}.rt-SliderRoot:where([data-orientation=horizontal]){width:-webkit-fill-available;width:-moz-available;width:stretch;height:var(--slider-track-size)}.rt-SliderRoot:where([data-orientation=vertical]){height:-webkit-fill-available;height:-moz-available;height:stretch;flex-direction:column;width:var(--slider-track-size)}.rt-SliderTrack{overflow:hidden;position:relative;flex-grow:1;border-radius:inherit}.rt-SliderTrack:where([data-orientation=horizontal]){height:var(--slider-track-size)}.rt-SliderTrack:where([data-orientation=vertical]){width:var(--slider-track-size)}.rt-SliderRange{position:absolute;border-radius:inherit}.rt-SliderRange:where([data-orientation=horizontal]){height:100%}.rt-SliderRange:where([data-orientation=vertical]){width:100%}.rt-SliderThumb{display:block;width:var(--slider-thumb-size);height:var(--slider-thumb-size);outline:0}.rt-SliderThumb:before{content:"";position:absolute;z-index:-1;width:calc(var(--slider-thumb-size) * 3);height:calc(var(--slider-thumb-size) * 3);top:50%;left:50%;transform:translate(-50%,-50%)}.rt-SliderThumb:after{content:"";position:absolute;inset:calc(-.25 * var(--slider-track-size));background-color:#fff;border-radius:max(var(--radius-1),var(--radius-thumb));box-shadow:var(--slider-thumb-box-shadow);cursor:var(--cursor-slider-thumb)}.rt-SliderThumb:where(:focus-visible):after{box-shadow:var(--slider-thumb-box-shadow),0 0 0 3px var(--accent-3),0 0 0 5px var(--focus-8)}.rt-SliderThumb:where(:active){cursor:var(--cursor-slider-thumb-active)}.rt-SliderRoot:where(.rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}@media (min-width: 520px){.rt-SliderRoot:where(.xs\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xs\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xs\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 768px){.rt-SliderRoot:where(.sm\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.sm\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.sm\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1024px){.rt-SliderRoot:where(.md\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.md\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.md\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1280px){.rt-SliderRoot:where(.lg\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.lg\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.lg\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1640px){.rt-SliderRoot:where(.xl\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xl\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xl\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack){background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack):where([data-disabled]){box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack){background-color:var(--gray-a3);position:relative}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):before{content:"";inset:0;position:absolute;border-radius:inherit;box-shadow:var(--shadow-1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):where([data-disabled]):before{opacity:.5}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 1px 3px var(--black-a1), 0 2px 4px -1px var(--black-a1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack){background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack):where([data-disabled]){background-color:var(--gray-a4);background-image:none}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderRange){background-image:linear-gradient(var(--accent-a5),var(--accent-a5)),var(--slider-range-high-contrast-background-image);background-color:var(--accent-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 0 0 1px var(--gray-a2), 0 0 0 1px var(--accent-a2), 0 1px 2px var(--gray-a4), 0 1px 3px -.5px var(--gray-a3)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-5)}.rt-SliderRoot:where(:not(.rt-high-contrast)){--slider-range-high-contrast-background-image: none}.rt-SliderRoot:where([data-disabled]){cursor:var(--cursor-disabled);mix-blend-mode:var(--slider-disabled-blend-mode)}.rt-SliderRange:where([data-disabled]){background-color:transparent;background-image:none;box-shadow:none}.rt-SliderThumb:where([data-disabled]),.rt-SliderThumb:where([data-disabled]):after{cursor:var(--cursor-disabled)}.rt-Spinner{display:block;position:relative;opacity:var(--spinner-opacity)}.rt-SpinnerLeaf{position:absolute;top:0;left:43.75%;width:12.5%;height:100%;animation:rt-spinner-leaf-fade var(--spinner-animation-duration) linear infinite}.rt-SpinnerLeaf:before{content:"";display:block;width:100%;height:30%;border-radius:var(--radius-1);background-color:currentColor}.rt-SpinnerLeaf:where(:nth-child(1)){transform:rotate(0);animation-delay:calc(-8 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(2)){transform:rotate(45deg);animation-delay:calc(-7 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(3)){transform:rotate(90deg);animation-delay:calc(-6 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(4)){transform:rotate(135deg);animation-delay:calc(-5 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(5)){transform:rotate(180deg);animation-delay:calc(-4 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(6)){transform:rotate(225deg);animation-delay:calc(-3 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(7)){transform:rotate(270deg);animation-delay:calc(-2 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(8)){transform:rotate(315deg);animation-delay:calc(-1 / 8 * var(--spinner-animation-duration))}@keyframes rt-spinner-leaf-fade{0%{opacity:1}to{opacity:.25}}.rt-Spinner:where(.rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}@media (min-width: 520px){.rt-Spinner:where(.xs\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xs\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xs\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 768px){.rt-Spinner:where(.sm\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.sm\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.sm\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1024px){.rt-Spinner:where(.md\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.md\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.md\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1280px){.rt-Spinner:where(.lg\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.lg\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.lg\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1640px){.rt-Spinner:where(.xl\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xl\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xl\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}.rt-Strong{font-family:var(--strong-font-family);font-size:calc(var(--strong-font-size-adjust) * 1em);font-style:var(--strong-font-style);font-weight:var(--strong-font-weight);letter-spacing:calc(var(--strong-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)))}.rt-Strong :where(.rt-Strong){font-size:inherit}.rt-SwitchRoot{position:relative;display:inline-flex;align-items:center;vertical-align:top;flex-shrink:0;height:var(--skeleton-height, var(--line-height, var(--switch-height)));--skeleton-height-override: var(--switch-height);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--switch-border-radius);--switch-width: calc(var(--switch-height) * 1.75);--switch-thumb-inset: 1px;--switch-thumb-size: calc(var(--switch-height) - var(--switch-thumb-inset) * 2);--switch-thumb-translate-x: calc(var(--switch-width) - var(--switch-height))}.rt-SwitchRoot:before{content:"";display:block;width:var(--switch-width);height:var(--switch-height);border-radius:var(--switch-border-radius);transition:background-position,background-color,box-shadow,filter;transition-timing-function:linear,ease-in-out,ease-in-out,ease-in-out;background-repeat:no-repeat;background-size:calc(var(--switch-width) * 2 + var(--switch-height)) 100%;cursor:var(--cursor-switch)}.rt-SwitchRoot:where([data-state=unchecked]):before{transition-duration:.12s,.14s,.14s,.14s;background-position-x:100%}.rt-SwitchRoot:where([data-state=checked]):before{transition-duration:.16s,.14s,.14s,.14s;background-position:0%}.rt-SwitchRoot:where(:active):before{transition-duration:30ms}.rt-SwitchRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-SwitchRoot:where([data-disabled]):before{cursor:var(--cursor-disabled)}.rt-SwitchThumb{background-color:#fff;position:absolute;left:var(--switch-thumb-inset);width:var(--switch-thumb-size);height:var(--switch-thumb-size);border-radius:calc(var(--switch-border-radius) - var(--switch-thumb-inset));transition:transform .14s cubic-bezier(.45,.05,.55,.95),box-shadow .14s ease-in-out}.rt-SwitchThumb:where([data-state=checked]){transform:translate(var(--switch-thumb-translate-x))}.rt-SwitchRoot:where(.rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}@media (min-width: 520px){.rt-SwitchRoot:where(.xs\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 768px){.rt-SwitchRoot:where(.sm\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1024px){.rt-SwitchRoot:where(.md\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1280px){.rt-SwitchRoot:where(.lg\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1640px){.rt-SwitchRoot:where(.xl\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}.rt-SwitchRoot:where(.rt-variant-surface):before{background-color:var(--gray-a3);background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-surface):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 1px 1px var(--black-a2),0 1px 1px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-classic):before{background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);background-color:var(--gray-a4);box-shadow:var(--shadow-1)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=unchecked]:active):before{background-color:var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2);background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a5);box-shadow:var(--shadow-1);opacity:.5}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 1px 3px var(--black-a3),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-soft):before{background-image:linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--gray-a2) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-state=unchecked]):before{background-color:var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-soft):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--accent-a3) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb){filter:saturate(.45)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a1),0 1px 3px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a2),0 1px 3px var(--accent-a3),0 2px 4px -1px var(--accent-a3)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-disabled]){filter:none;background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-BaseTabList::-webkit-scrollbar{display:none}.rt-BaseTabListTrigger{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;-webkit-user-select:none;user-select:none;box-sizing:border-box;height:var(--tab-height);padding-left:var(--tab-padding-x);padding-right:var(--tab-padding-x);color:var(--gray-a11)}.rt-BaseTabListTriggerInner,.rt-BaseTabListTriggerInnerHidden{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--tab-inner-padding-y) var(--tab-inner-padding-x);border-radius:var(--tab-inner-border-radius)}.rt-BaseTabListTriggerInner{position:absolute}:where(.rt-BaseTabListTrigger[data-state=inactive],.rt-TabNavLink:not([data-active])) .rt-BaseTabListTriggerInner{letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing)}:where(.rt-BaseTabListTrigger[data-state=active],.rt-TabNavLink[data-active]) .rt-BaseTabListTriggerInner{font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabListTriggerInnerHidden{visibility:hidden;font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabList:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}@media (min-width: 520px){.rt-BaseTabList:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 768px){.rt-BaseTabList:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1024px){.rt-BaseTabList:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.md\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1280px){.rt-BaseTabList:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1640px){.rt-BaseTabList:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}.rt-BaseTabList{box-shadow:inset 0 -1px 0 0 var(--gray-a5);display:flex;justify-content:flex-start;overflow-x:auto;white-space:nowrap;font-family:var(--default-font-family);font-style:normal;scrollbar-width:none}@media (hover: hover){.rt-BaseTabListTrigger:where(:hover){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--gray-a3)}.rt-BaseTabListTrigger:where(:focus-visible:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--accent-a3)}}.rt-BaseTabListTrigger:where([data-state=active],[data-active]){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:focus-visible) :where(.rt-BaseTabListTriggerInner){outline:2px solid var(--focus-8);outline-offset:-2px}.rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{box-sizing:border-box;content:"";height:2px;position:absolute;bottom:0;left:0;right:0;background-color:var(--accent-indicator)}:where(.rt-BaseTabList.rt-high-contrast) .rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{background-color:var(--accent-12)}.rt-TabNavItem{display:flex}.rt-TableRootTable{--table-row-background-color: transparent;--table-row-box-shadow: inset 0 -1px var(--gray-a5);width:100%;text-align:left;vertical-align:top;border-collapse:collapse;border-radius:calc(var(--table-border-radius) - 1px);border-spacing:0;box-sizing:border-box;height:0}.rt-TableHeader,.rt-TableBody{vertical-align:inherit}.rt-TableRow{vertical-align:inherit;color:var(--gray-12)}.rt-TableCell{background-color:var(--table-row-background-color);box-shadow:var(--table-row-box-shadow);box-sizing:border-box;vertical-align:inherit;padding:var(--table-cell-padding);height:var(--table-cell-min-height)}.rt-Inset :where(.rt-TableCell:first-child){padding-left:var(--inset-padding-left, var(--table-cell-padding))}.rt-Inset :where(.rt-TableCell:last-child){padding-right:var(--inset-padding-right, var(--table-cell-padding))}.rt-TableColumnHeaderCell{font-weight:700}.rt-TableRowHeaderCell{font-weight:400}.rt-TableRoot:where(.rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}@media (min-width: 520px){.rt-TableRoot:where(.xs\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xs\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 768px){.rt-TableRoot:where(.sm\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.sm\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1024px){.rt-TableRoot:where(.md\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.md\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1280px){.rt-TableRoot:where(.lg\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.lg\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1640px){.rt-TableRoot:where(.xl\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xl\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}.rt-TableRoot:where(.rt-variant-surface){box-sizing:border-box;border:1px solid var(--gray-a5);border-radius:var(--table-border-radius);background-color:var(--color-panel);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel);background-clip:padding-box;position:relative}@supports (box-shadow: 0 0 0 1px color-mix(in oklab,white,black)){.rt-TableRoot:where(.rt-variant-surface){border-color:color-mix(in oklab,var(--gray-a5),var(--gray-6))}}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable){overflow:hidden}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableHeader){--table-row-background-color: var(--gray-a2)}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableBody) :where(.rt-TableRow:last-child){--table-row-box-shadow: none}.rt-TableRoot:where(.rt-variant-ghost){--scrollarea-scrollbar-horizontal-margin-left: 0;--scrollarea-scrollbar-horizontal-margin-right: 0}.rt-TabsContent{position:relative;outline:0}.rt-TabsContent:where(:focus-visible){outline:2px solid var(--focus-8)}.rt-TextAreaRoot:where(:focus-within){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-TextAreaInput::-webkit-scrollbar{width:var(--space-3);height:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track,.rt-TextAreaInput::-webkit-scrollbar-thumb{background-clip:content-box;border:var(--space-1) solid transparent;border-radius:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track{background-color:var(--gray-a3)}.rt-TextAreaInput::-webkit-scrollbar-thumb{background-color:var(--gray-a8)}@media (hover: hover){:where(.rt-TextAreaInput:not(:disabled))::-webkit-scrollbar-thumb:hover{background-color:var(--gray-a9)}}.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}.rt-TextAreaRoot{padding:var(--text-area-border-width);display:flex;flex-direction:column;box-sizing:border-box;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;overflow:hidden}.rt-TextAreaInput{padding:var(--text-area-padding-y) var(--text-area-padding-x);border-radius:inherit;resize:none;display:block;width:100%;flex-grow:1;cursor:auto}.rt-TextAreaRoot:where(.rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}@media (min-width: 520px){.rt-TextAreaRoot:where(.xs\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 768px){.rt-TextAreaRoot:where(.sm\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1024px){.rt-TextAreaRoot:where(.md\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.md\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.md\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1280px){.rt-TextAreaRoot:where(.lg\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1640px){.rt-TextAreaRoot:where(.xl\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}.rt-TextAreaRoot:where(.rt-variant-surface){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-surface) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a6)}.rt-TextAreaRoot:where(.rt-variant-classic){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-classic) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextAreaRoot:where(.rt-variant-soft){--text-area-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::selection{background-color:var(--accent-a5)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::placeholder{color:var(--accent-12);opacity:.65}.rt-TextAreaRoot:where(.rt-variant-soft):where(:focus-within){outline-color:var(--accent-8)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextAreaInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextAreaInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextAreaInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextAreaInput:where(:disabled,:read-only)::selection{background-color:var(--gray-a5)}.rt-TextAreaRoot:where(:focus-within:has(.rt-TextAreaInput:where(:disabled,:read-only))){outline-color:var(--gray-8)}@supports selector(:has(*)){.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:focus)){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){.rt-TextFieldRoot:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}.rt-TextFieldRoot::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput{width:100%;display:flex;align-items:center;text-align:inherit;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));text-indent:var(--text-field-padding)}.rt-TextFieldInput:where([type=number]){-moz-appearance:textfield}.rt-TextFieldInput::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput::-webkit-calendar-picker-indicator{box-sizing:content-box;width:var(--text-field-native-icon-size);height:var(--text-field-native-icon-size);padding:var(--space-1);margin-left:0;margin-right:calc(var(--space-1) * -1);border-radius:calc(var(--text-field-border-radius) - 2px)}.rt-TextFieldInput:where(:not([type=time]))::-webkit-calendar-picker-indicator{margin-left:var(--space-1)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:hover){background-color:var(--gray-a3)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:focus-visible){outline:2px solid var(--text-field-focus-color)}.rt-TextFieldInput::-webkit-datetime-edit-ampm-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-day-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-hour-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-millisecond-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-minute-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-month-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-second-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-week-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-year-field:where(:focus){background-color:var(--text-field-selection-color);color:inherit;outline:none}@supports selector(:has(*)){.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}}.rt-TextFieldSlot{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;cursor:text}.rt-TextFieldSlot:where(:not([data-side=right])){order:-1;margin-left:calc(var(--text-field-border-width) * -1);margin-right:0}.rt-TextFieldSlot:where([data-side=right]),:where(.rt-TextFieldSlot:not([data-side=right]))~.rt-TextFieldSlot:where(:not([data-side=left])){order:0;margin-left:0;margin-right:calc(var(--text-field-border-width) * -1)}.rt-TextFieldRoot{box-sizing:border-box;height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:var(--text-field-border-radius);display:flex;align-items:stretch;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start}.rt-TextFieldInput:where([type=date],[type=datetime-local],[type=time],[type=week],[type=month]){text-indent:0;padding-left:var(--text-field-padding);padding-right:var(--text-field-padding)}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot:not([data-side=right]))){text-indent:0;padding-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot[data-side=right],~.rt-TextFieldSlot:not([data-side=right])~.rt-TextFieldSlot:not([data-side=left]))){padding-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.rt-TextFieldRoot:where(.rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}@media (min-width: 520px){.rt-TextFieldRoot:where(.xs\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 768px){.rt-TextFieldRoot:where(.sm\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1024px){.rt-TextFieldRoot:where(.md\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.md\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1280px){.rt-TextFieldRoot:where(.lg\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1640px){.rt-TextFieldRoot:where(.xl\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}.rt-TextFieldRoot:where(.rt-variant-surface){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a6)}.rt-TextFieldRoot:where(.rt-variant-classic){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextFieldRoot:where(.rt-variant-soft){--text-field-selection-color: var(--accent-a5);--text-field-focus-color: var(--accent-8);--text-field-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldInput)::placeholder{color:var(--accent-12);opacity:.6}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot){color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextFieldInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextFieldInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown)~:where(.rt-TextFieldSlot){cursor:var(--cursor-disabled)}.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){--text-field-selection-color: var(--gray-a5);--text-field-focus-color: var(--gray-8)}.rt-ThemePanelShortcut:where(:focus-visible){outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--accent-9)}.rt-ThemePanelSwatch,.rt-ThemePanelRadioCard{position:relative}.rt-ThemePanelSwatchInput,.rt-ThemePanelRadioCardInput{-webkit-appearance:none;appearance:none;margin:0;outline:none;outline-width:2px;position:absolute;inset:0;border-radius:inherit;width:100%;height:100%}.rt-ThemePanelSwatch{width:var(--space-5);height:var(--space-5);border-radius:100%}.rt-ThemePanelSwatchInput{outline-offset:2px}.rt-ThemePanelSwatchInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelSwatchInput:where(:focus-visible){outline-style:solid;outline-color:var(--accent-9)}.rt-ThemePanelRadioCard{border-radius:var(--radius-1);box-shadow:0 0 0 1px var(--gray-7)}.rt-ThemePanelRadioCardInput{outline-offset:-1px}.rt-ThemePanelRadioCardInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelRadioCardInput:where(:focus-visible){background-color:var(--accent-a3);outline-style:solid;outline-color:var(--accent-9)}.rt-TooltipContent{box-sizing:border-box;padding:var(--space-1) var(--space-2);background-color:var(--gray-12);border-radius:var(--radius-2);transform-origin:var(--radix-tooltip-content-transform-origin);animation-duration:.14s;animation-timing-function:cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion: no-preference){.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}}.rt-TooltipText{color:var(--gray-1);-webkit-user-select:none;user-select:none;cursor:default}.rt-TooltipArrow{fill:var(--gray-12)}.radix-themes:where([data-is-root-theme=true]){position:relative;z-index:0;min-height:100vh}@supports (min-height: 100dvh){.radix-themes:where([data-is-root-theme=true]){min-height:100dvh}}.rt-r-ai-start{align-items:flex-start}.rt-r-ai-center{align-items:center}.rt-r-ai-end{align-items:flex-end}.rt-r-ai-baseline{align-items:baseline}.rt-r-ai-stretch{align-items:stretch}@media (min-width: 520px){.xs\:rt-r-ai-start{align-items:flex-start}.xs\:rt-r-ai-center{align-items:center}.xs\:rt-r-ai-end{align-items:flex-end}.xs\:rt-r-ai-baseline{align-items:baseline}.xs\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 768px){.sm\:rt-r-ai-start{align-items:flex-start}.sm\:rt-r-ai-center{align-items:center}.sm\:rt-r-ai-end{align-items:flex-end}.sm\:rt-r-ai-baseline{align-items:baseline}.sm\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1024px){.md\:rt-r-ai-start{align-items:flex-start}.md\:rt-r-ai-center{align-items:center}.md\:rt-r-ai-end{align-items:flex-end}.md\:rt-r-ai-baseline{align-items:baseline}.md\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1280px){.lg\:rt-r-ai-start{align-items:flex-start}.lg\:rt-r-ai-center{align-items:center}.lg\:rt-r-ai-end{align-items:flex-end}.lg\:rt-r-ai-baseline{align-items:baseline}.lg\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1640px){.xl\:rt-r-ai-start{align-items:flex-start}.xl\:rt-r-ai-center{align-items:center}.xl\:rt-r-ai-end{align-items:flex-end}.xl\:rt-r-ai-baseline{align-items:baseline}.xl\:rt-r-ai-stretch{align-items:stretch}}.rt-r-as-start{align-self:flex-start}.rt-r-as-center{align-self:center}.rt-r-as-end{align-self:flex-end}.rt-r-as-baseline{align-self:baseline}.rt-r-as-stretch{align-self:stretch}@media (min-width: 520px){.xs\:rt-r-as-start{align-self:flex-start}.xs\:rt-r-as-center{align-self:center}.xs\:rt-r-as-end{align-self:flex-end}.xs\:rt-r-as-baseline{align-self:baseline}.xs\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 768px){.sm\:rt-r-as-start{align-self:flex-start}.sm\:rt-r-as-center{align-self:center}.sm\:rt-r-as-end{align-self:flex-end}.sm\:rt-r-as-baseline{align-self:baseline}.sm\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1024px){.md\:rt-r-as-start{align-self:flex-start}.md\:rt-r-as-center{align-self:center}.md\:rt-r-as-end{align-self:flex-end}.md\:rt-r-as-baseline{align-self:baseline}.md\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1280px){.lg\:rt-r-as-start{align-self:flex-start}.lg\:rt-r-as-center{align-self:center}.lg\:rt-r-as-end{align-self:flex-end}.lg\:rt-r-as-baseline{align-self:baseline}.lg\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1640px){.xl\:rt-r-as-start{align-self:flex-start}.xl\:rt-r-as-center{align-self:center}.xl\:rt-r-as-end{align-self:flex-end}.xl\:rt-r-as-baseline{align-self:baseline}.xl\:rt-r-as-stretch{align-self:stretch}}.rt-r-display-block{display:block}.rt-r-display-inline{display:inline}.rt-r-display-inline-block{display:inline-block}.rt-r-display-flex{display:flex}.rt-r-display-inline-flex{display:inline-flex}.rt-r-display-grid{display:grid}.rt-r-display-inline-grid{display:inline-grid}.rt-r-display-none{display:none}.rt-r-display-contents{display:contents}@media (min-width: 520px){.xs\:rt-r-display-block{display:block}.xs\:rt-r-display-inline{display:inline}.xs\:rt-r-display-inline-block{display:inline-block}.xs\:rt-r-display-flex{display:flex}.xs\:rt-r-display-inline-flex{display:inline-flex}.xs\:rt-r-display-grid{display:grid}.xs\:rt-r-display-inline-grid{display:inline-grid}.xs\:rt-r-display-none{display:none}.xs\:rt-r-display-contents{display:contents}}@media (min-width: 768px){.sm\:rt-r-display-block{display:block}.sm\:rt-r-display-inline{display:inline}.sm\:rt-r-display-inline-block{display:inline-block}.sm\:rt-r-display-flex{display:flex}.sm\:rt-r-display-inline-flex{display:inline-flex}.sm\:rt-r-display-grid{display:grid}.sm\:rt-r-display-inline-grid{display:inline-grid}.sm\:rt-r-display-none{display:none}.sm\:rt-r-display-contents{display:contents}}@media (min-width: 1024px){.md\:rt-r-display-block{display:block}.md\:rt-r-display-inline{display:inline}.md\:rt-r-display-inline-block{display:inline-block}.md\:rt-r-display-flex{display:flex}.md\:rt-r-display-inline-flex{display:inline-flex}.md\:rt-r-display-grid{display:grid}.md\:rt-r-display-inline-grid{display:inline-grid}.md\:rt-r-display-none{display:none}.md\:rt-r-display-contents{display:contents}}@media (min-width: 1280px){.lg\:rt-r-display-block{display:block}.lg\:rt-r-display-inline{display:inline}.lg\:rt-r-display-inline-block{display:inline-block}.lg\:rt-r-display-flex{display:flex}.lg\:rt-r-display-inline-flex{display:inline-flex}.lg\:rt-r-display-grid{display:grid}.lg\:rt-r-display-inline-grid{display:inline-grid}.lg\:rt-r-display-none{display:none}.lg\:rt-r-display-contents{display:contents}}@media (min-width: 1640px){.xl\:rt-r-display-block{display:block}.xl\:rt-r-display-inline{display:inline}.xl\:rt-r-display-inline-block{display:inline-block}.xl\:rt-r-display-flex{display:flex}.xl\:rt-r-display-inline-flex{display:inline-flex}.xl\:rt-r-display-grid{display:grid}.xl\:rt-r-display-inline-grid{display:inline-grid}.xl\:rt-r-display-none{display:none}.xl\:rt-r-display-contents{display:contents}}.rt-r-fb{flex-basis:var(--flex-basis)}@media (min-width: 520px){.xs\:rt-r-fb{flex-basis:var(--flex-basis-xs)}}@media (min-width: 768px){.sm\:rt-r-fb{flex-basis:var(--flex-basis-sm)}}@media (min-width: 1024px){.md\:rt-r-fb{flex-basis:var(--flex-basis-md)}}@media (min-width: 1280px){.lg\:rt-r-fb{flex-basis:var(--flex-basis-lg)}}@media (min-width: 1640px){.xl\:rt-r-fb{flex-basis:var(--flex-basis-xl)}}.rt-r-fd-row{flex-direction:row}.rt-r-fd-column{flex-direction:column}.rt-r-fd-row-reverse{flex-direction:row-reverse}.rt-r-fd-column-reverse{flex-direction:column-reverse}@media (min-width: 520px){.xs\:rt-r-fd-row{flex-direction:row}.xs\:rt-r-fd-column{flex-direction:column}.xs\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xs\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 768px){.sm\:rt-r-fd-row{flex-direction:row}.sm\:rt-r-fd-column{flex-direction:column}.sm\:rt-r-fd-row-reverse{flex-direction:row-reverse}.sm\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1024px){.md\:rt-r-fd-row{flex-direction:row}.md\:rt-r-fd-column{flex-direction:column}.md\:rt-r-fd-row-reverse{flex-direction:row-reverse}.md\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1280px){.lg\:rt-r-fd-row{flex-direction:row}.lg\:rt-r-fd-column{flex-direction:column}.lg\:rt-r-fd-row-reverse{flex-direction:row-reverse}.lg\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1640px){.xl\:rt-r-fd-row{flex-direction:row}.xl\:rt-r-fd-column{flex-direction:column}.xl\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xl\:rt-r-fd-column-reverse{flex-direction:column-reverse}}.rt-r-fg{flex-grow:var(--flex-grow)}.rt-r-fg-0{flex-grow:0}.rt-r-fg-1{flex-grow:1}@media (min-width: 520px){.xs\:rt-r-fg{flex-grow:var(--flex-grow-xs)}.xs\:rt-r-fg-0{flex-grow:0}.xs\:rt-r-fg-1{flex-grow:1}}@media (min-width: 768px){.sm\:rt-r-fg{flex-grow:var(--flex-grow-sm)}.sm\:rt-r-fg-0{flex-grow:0}.sm\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1024px){.md\:rt-r-fg{flex-grow:var(--flex-grow-md)}.md\:rt-r-fg-0{flex-grow:0}.md\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1280px){.lg\:rt-r-fg{flex-grow:var(--flex-grow-lg)}.lg\:rt-r-fg-0{flex-grow:0}.lg\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1640px){.xl\:rt-r-fg{flex-grow:var(--flex-grow-xl)}.xl\:rt-r-fg-0{flex-grow:0}.xl\:rt-r-fg-1{flex-grow:1}}.rt-r-fs{flex-shrink:var(--flex-shrink)}.rt-r-fs-0{flex-shrink:0}.rt-r-fs-1{flex-shrink:1}@media (min-width: 520px){.xs\:rt-r-fs{flex-shrink:var(--flex-shrink-xs)}.xs\:rt-r-fs-0{flex-shrink:0}.xs\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 768px){.sm\:rt-r-fs{flex-shrink:var(--flex-shrink-sm)}.sm\:rt-r-fs-0{flex-shrink:0}.sm\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1024px){.md\:rt-r-fs{flex-shrink:var(--flex-shrink-md)}.md\:rt-r-fs-0{flex-shrink:0}.md\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1280px){.lg\:rt-r-fs{flex-shrink:var(--flex-shrink-lg)}.lg\:rt-r-fs-0{flex-shrink:0}.lg\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1640px){.xl\:rt-r-fs{flex-shrink:var(--flex-shrink-xl)}.xl\:rt-r-fs-0{flex-shrink:0}.xl\:rt-r-fs-1{flex-shrink:1}}.rt-r-fw-nowrap{flex-wrap:nowrap}.rt-r-fw-wrap{flex-wrap:wrap}.rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}@media (min-width: 520px){.xs\:rt-r-fw-nowrap{flex-wrap:nowrap}.xs\:rt-r-fw-wrap{flex-wrap:wrap}.xs\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 768px){.sm\:rt-r-fw-nowrap{flex-wrap:nowrap}.sm\:rt-r-fw-wrap{flex-wrap:wrap}.sm\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1024px){.md\:rt-r-fw-nowrap{flex-wrap:nowrap}.md\:rt-r-fw-wrap{flex-wrap:wrap}.md\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1280px){.lg\:rt-r-fw-nowrap{flex-wrap:nowrap}.lg\:rt-r-fw-wrap{flex-wrap:wrap}.lg\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1640px){.xl\:rt-r-fw-nowrap{flex-wrap:nowrap}.xl\:rt-r-fw-wrap{flex-wrap:wrap}.xl\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}.rt-r-gap{gap:var(--gap)}.rt-r-gap-0{gap:0}.rt-r-gap-1{gap:var(--space-1)}.rt-r-gap-2{gap:var(--space-2)}.rt-r-gap-3{gap:var(--space-3)}.rt-r-gap-4{gap:var(--space-4)}.rt-r-gap-5{gap:var(--space-5)}.rt-r-gap-6{gap:var(--space-6)}.rt-r-gap-7{gap:var(--space-7)}.rt-r-gap-8{gap:var(--space-8)}.rt-r-gap-9{gap:var(--space-9)}.rt-r-cg{column-gap:var(--column-gap)}.rt-r-cg-0{column-gap:0}.rt-r-cg-1{column-gap:var(--space-1)}.rt-r-cg-2{column-gap:var(--space-2)}.rt-r-cg-3{column-gap:var(--space-3)}.rt-r-cg-4{column-gap:var(--space-4)}.rt-r-cg-5{column-gap:var(--space-5)}.rt-r-cg-6{column-gap:var(--space-6)}.rt-r-cg-7{column-gap:var(--space-7)}.rt-r-cg-8{column-gap:var(--space-8)}.rt-r-cg-9{column-gap:var(--space-9)}.rt-r-rg{row-gap:var(--row-gap)}.rt-r-rg-0{row-gap:0}.rt-r-rg-1{row-gap:var(--space-1)}.rt-r-rg-2{row-gap:var(--space-2)}.rt-r-rg-3{row-gap:var(--space-3)}.rt-r-rg-4{row-gap:var(--space-4)}.rt-r-rg-5{row-gap:var(--space-5)}.rt-r-rg-6{row-gap:var(--space-6)}.rt-r-rg-7{row-gap:var(--space-7)}.rt-r-rg-8{row-gap:var(--space-8)}.rt-r-rg-9{row-gap:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-gap{gap:var(--gap-xs)}.xs\:rt-r-gap-0{gap:0}.xs\:rt-r-gap-1{gap:var(--space-1)}.xs\:rt-r-gap-2{gap:var(--space-2)}.xs\:rt-r-gap-3{gap:var(--space-3)}.xs\:rt-r-gap-4{gap:var(--space-4)}.xs\:rt-r-gap-5{gap:var(--space-5)}.xs\:rt-r-gap-6{gap:var(--space-6)}.xs\:rt-r-gap-7{gap:var(--space-7)}.xs\:rt-r-gap-8{gap:var(--space-8)}.xs\:rt-r-gap-9{gap:var(--space-9)}.xs\:rt-r-cg{column-gap:var(--column-gap-xs)}.xs\:rt-r-cg-0{column-gap:0}.xs\:rt-r-cg-1{column-gap:var(--space-1)}.xs\:rt-r-cg-2{column-gap:var(--space-2)}.xs\:rt-r-cg-3{column-gap:var(--space-3)}.xs\:rt-r-cg-4{column-gap:var(--space-4)}.xs\:rt-r-cg-5{column-gap:var(--space-5)}.xs\:rt-r-cg-6{column-gap:var(--space-6)}.xs\:rt-r-cg-7{column-gap:var(--space-7)}.xs\:rt-r-cg-8{column-gap:var(--space-8)}.xs\:rt-r-cg-9{column-gap:var(--space-9)}.xs\:rt-r-rg{row-gap:var(--row-gap-xs)}.xs\:rt-r-rg-0{row-gap:0}.xs\:rt-r-rg-1{row-gap:var(--space-1)}.xs\:rt-r-rg-2{row-gap:var(--space-2)}.xs\:rt-r-rg-3{row-gap:var(--space-3)}.xs\:rt-r-rg-4{row-gap:var(--space-4)}.xs\:rt-r-rg-5{row-gap:var(--space-5)}.xs\:rt-r-rg-6{row-gap:var(--space-6)}.xs\:rt-r-rg-7{row-gap:var(--space-7)}.xs\:rt-r-rg-8{row-gap:var(--space-8)}.xs\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-gap{gap:var(--gap-sm)}.sm\:rt-r-gap-0{gap:0}.sm\:rt-r-gap-1{gap:var(--space-1)}.sm\:rt-r-gap-2{gap:var(--space-2)}.sm\:rt-r-gap-3{gap:var(--space-3)}.sm\:rt-r-gap-4{gap:var(--space-4)}.sm\:rt-r-gap-5{gap:var(--space-5)}.sm\:rt-r-gap-6{gap:var(--space-6)}.sm\:rt-r-gap-7{gap:var(--space-7)}.sm\:rt-r-gap-8{gap:var(--space-8)}.sm\:rt-r-gap-9{gap:var(--space-9)}.sm\:rt-r-cg{column-gap:var(--column-gap-sm)}.sm\:rt-r-cg-0{column-gap:0}.sm\:rt-r-cg-1{column-gap:var(--space-1)}.sm\:rt-r-cg-2{column-gap:var(--space-2)}.sm\:rt-r-cg-3{column-gap:var(--space-3)}.sm\:rt-r-cg-4{column-gap:var(--space-4)}.sm\:rt-r-cg-5{column-gap:var(--space-5)}.sm\:rt-r-cg-6{column-gap:var(--space-6)}.sm\:rt-r-cg-7{column-gap:var(--space-7)}.sm\:rt-r-cg-8{column-gap:var(--space-8)}.sm\:rt-r-cg-9{column-gap:var(--space-9)}.sm\:rt-r-rg{row-gap:var(--row-gap-sm)}.sm\:rt-r-rg-0{row-gap:0}.sm\:rt-r-rg-1{row-gap:var(--space-1)}.sm\:rt-r-rg-2{row-gap:var(--space-2)}.sm\:rt-r-rg-3{row-gap:var(--space-3)}.sm\:rt-r-rg-4{row-gap:var(--space-4)}.sm\:rt-r-rg-5{row-gap:var(--space-5)}.sm\:rt-r-rg-6{row-gap:var(--space-6)}.sm\:rt-r-rg-7{row-gap:var(--space-7)}.sm\:rt-r-rg-8{row-gap:var(--space-8)}.sm\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-gap{gap:var(--gap-md)}.md\:rt-r-gap-0{gap:0}.md\:rt-r-gap-1{gap:var(--space-1)}.md\:rt-r-gap-2{gap:var(--space-2)}.md\:rt-r-gap-3{gap:var(--space-3)}.md\:rt-r-gap-4{gap:var(--space-4)}.md\:rt-r-gap-5{gap:var(--space-5)}.md\:rt-r-gap-6{gap:var(--space-6)}.md\:rt-r-gap-7{gap:var(--space-7)}.md\:rt-r-gap-8{gap:var(--space-8)}.md\:rt-r-gap-9{gap:var(--space-9)}.md\:rt-r-cg{column-gap:var(--column-gap-md)}.md\:rt-r-cg-0{column-gap:0}.md\:rt-r-cg-1{column-gap:var(--space-1)}.md\:rt-r-cg-2{column-gap:var(--space-2)}.md\:rt-r-cg-3{column-gap:var(--space-3)}.md\:rt-r-cg-4{column-gap:var(--space-4)}.md\:rt-r-cg-5{column-gap:var(--space-5)}.md\:rt-r-cg-6{column-gap:var(--space-6)}.md\:rt-r-cg-7{column-gap:var(--space-7)}.md\:rt-r-cg-8{column-gap:var(--space-8)}.md\:rt-r-cg-9{column-gap:var(--space-9)}.md\:rt-r-rg{row-gap:var(--row-gap-md)}.md\:rt-r-rg-0{row-gap:0}.md\:rt-r-rg-1{row-gap:var(--space-1)}.md\:rt-r-rg-2{row-gap:var(--space-2)}.md\:rt-r-rg-3{row-gap:var(--space-3)}.md\:rt-r-rg-4{row-gap:var(--space-4)}.md\:rt-r-rg-5{row-gap:var(--space-5)}.md\:rt-r-rg-6{row-gap:var(--space-6)}.md\:rt-r-rg-7{row-gap:var(--space-7)}.md\:rt-r-rg-8{row-gap:var(--space-8)}.md\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-gap{gap:var(--gap-lg)}.lg\:rt-r-gap-0{gap:0}.lg\:rt-r-gap-1{gap:var(--space-1)}.lg\:rt-r-gap-2{gap:var(--space-2)}.lg\:rt-r-gap-3{gap:var(--space-3)}.lg\:rt-r-gap-4{gap:var(--space-4)}.lg\:rt-r-gap-5{gap:var(--space-5)}.lg\:rt-r-gap-6{gap:var(--space-6)}.lg\:rt-r-gap-7{gap:var(--space-7)}.lg\:rt-r-gap-8{gap:var(--space-8)}.lg\:rt-r-gap-9{gap:var(--space-9)}.lg\:rt-r-cg{column-gap:var(--column-gap-lg)}.lg\:rt-r-cg-0{column-gap:0}.lg\:rt-r-cg-1{column-gap:var(--space-1)}.lg\:rt-r-cg-2{column-gap:var(--space-2)}.lg\:rt-r-cg-3{column-gap:var(--space-3)}.lg\:rt-r-cg-4{column-gap:var(--space-4)}.lg\:rt-r-cg-5{column-gap:var(--space-5)}.lg\:rt-r-cg-6{column-gap:var(--space-6)}.lg\:rt-r-cg-7{column-gap:var(--space-7)}.lg\:rt-r-cg-8{column-gap:var(--space-8)}.lg\:rt-r-cg-9{column-gap:var(--space-9)}.lg\:rt-r-rg{row-gap:var(--row-gap-lg)}.lg\:rt-r-rg-0{row-gap:0}.lg\:rt-r-rg-1{row-gap:var(--space-1)}.lg\:rt-r-rg-2{row-gap:var(--space-2)}.lg\:rt-r-rg-3{row-gap:var(--space-3)}.lg\:rt-r-rg-4{row-gap:var(--space-4)}.lg\:rt-r-rg-5{row-gap:var(--space-5)}.lg\:rt-r-rg-6{row-gap:var(--space-6)}.lg\:rt-r-rg-7{row-gap:var(--space-7)}.lg\:rt-r-rg-8{row-gap:var(--space-8)}.lg\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-gap{gap:var(--gap-xl)}.xl\:rt-r-gap-0{gap:0}.xl\:rt-r-gap-1{gap:var(--space-1)}.xl\:rt-r-gap-2{gap:var(--space-2)}.xl\:rt-r-gap-3{gap:var(--space-3)}.xl\:rt-r-gap-4{gap:var(--space-4)}.xl\:rt-r-gap-5{gap:var(--space-5)}.xl\:rt-r-gap-6{gap:var(--space-6)}.xl\:rt-r-gap-7{gap:var(--space-7)}.xl\:rt-r-gap-8{gap:var(--space-8)}.xl\:rt-r-gap-9{gap:var(--space-9)}.xl\:rt-r-cg{column-gap:var(--column-gap-xl)}.xl\:rt-r-cg-0{column-gap:0}.xl\:rt-r-cg-1{column-gap:var(--space-1)}.xl\:rt-r-cg-2{column-gap:var(--space-2)}.xl\:rt-r-cg-3{column-gap:var(--space-3)}.xl\:rt-r-cg-4{column-gap:var(--space-4)}.xl\:rt-r-cg-5{column-gap:var(--space-5)}.xl\:rt-r-cg-6{column-gap:var(--space-6)}.xl\:rt-r-cg-7{column-gap:var(--space-7)}.xl\:rt-r-cg-8{column-gap:var(--space-8)}.xl\:rt-r-cg-9{column-gap:var(--space-9)}.xl\:rt-r-rg{row-gap:var(--row-gap-xl)}.xl\:rt-r-rg-0{row-gap:0}.xl\:rt-r-rg-1{row-gap:var(--space-1)}.xl\:rt-r-rg-2{row-gap:var(--space-2)}.xl\:rt-r-rg-3{row-gap:var(--space-3)}.xl\:rt-r-rg-4{row-gap:var(--space-4)}.xl\:rt-r-rg-5{row-gap:var(--space-5)}.xl\:rt-r-rg-6{row-gap:var(--space-6)}.xl\:rt-r-rg-7{row-gap:var(--space-7)}.xl\:rt-r-rg-8{row-gap:var(--space-8)}.xl\:rt-r-rg-9{row-gap:var(--space-9)}}.rt-r-ga{grid-area:var(--grid-area)}@media (min-width: 520px){.xs\:rt-r-ga{grid-area:var(--grid-area-xs)}}@media (min-width: 768px){.sm\:rt-r-ga{grid-area:var(--grid-area-sm)}}@media (min-width: 1024px){.md\:rt-r-ga{grid-area:var(--grid-area-md)}}@media (min-width: 1280px){.lg\:rt-r-ga{grid-area:var(--grid-area-lg)}}@media (min-width: 1640px){.xl\:rt-r-ga{grid-area:var(--grid-area-xl)}}.rt-r-gaf-row{grid-auto-flow:row}.rt-r-gaf-column{grid-auto-flow:column}.rt-r-gaf-dense{grid-auto-flow:dense}.rt-r-gaf-row-dense{grid-auto-flow:row dense}.rt-r-gaf-column-dense{grid-auto-flow:column dense}@media (min-width: 520px){.xs\:rt-r-gaf-row{grid-auto-flow:row}.xs\:rt-r-gaf-column{grid-auto-flow:column}.xs\:rt-r-gaf-dense{grid-auto-flow:dense}.xs\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xs\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 768px){.sm\:rt-r-gaf-row{grid-auto-flow:row}.sm\:rt-r-gaf-column{grid-auto-flow:column}.sm\:rt-r-gaf-dense{grid-auto-flow:dense}.sm\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.sm\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1024px){.md\:rt-r-gaf-row{grid-auto-flow:row}.md\:rt-r-gaf-column{grid-auto-flow:column}.md\:rt-r-gaf-dense{grid-auto-flow:dense}.md\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.md\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1280px){.lg\:rt-r-gaf-row{grid-auto-flow:row}.lg\:rt-r-gaf-column{grid-auto-flow:column}.lg\:rt-r-gaf-dense{grid-auto-flow:dense}.lg\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.lg\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1640px){.xl\:rt-r-gaf-row{grid-auto-flow:row}.xl\:rt-r-gaf-column{grid-auto-flow:column}.xl\:rt-r-gaf-dense{grid-auto-flow:dense}.xl\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xl\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}.rt-r-gc{grid-column:var(--grid-column)}.rt-r-gc-1{grid-column:1}.rt-r-gc-2{grid-column:2}.rt-r-gc-3{grid-column:3}.rt-r-gc-4{grid-column:4}.rt-r-gc-5{grid-column:5}.rt-r-gc-6{grid-column:6}.rt-r-gc-7{grid-column:7}.rt-r-gc-8{grid-column:8}.rt-r-gc-9{grid-column:9}@media (min-width: 520px){.xs\:rt-r-gc{grid-column:var(--grid-column-xs)}.xs\:rt-r-gc-1{grid-column:1}.xs\:rt-r-gc-2{grid-column:2}.xs\:rt-r-gc-3{grid-column:3}.xs\:rt-r-gc-4{grid-column:4}.xs\:rt-r-gc-5{grid-column:5}.xs\:rt-r-gc-6{grid-column:6}.xs\:rt-r-gc-7{grid-column:7}.xs\:rt-r-gc-8{grid-column:8}.xs\:rt-r-gc-9{grid-column:9}}@media (min-width: 768px){.sm\:rt-r-gc{grid-column:var(--grid-column-sm)}.sm\:rt-r-gc-1{grid-column:1}.sm\:rt-r-gc-2{grid-column:2}.sm\:rt-r-gc-3{grid-column:3}.sm\:rt-r-gc-4{grid-column:4}.sm\:rt-r-gc-5{grid-column:5}.sm\:rt-r-gc-6{grid-column:6}.sm\:rt-r-gc-7{grid-column:7}.sm\:rt-r-gc-8{grid-column:8}.sm\:rt-r-gc-9{grid-column:9}}@media (min-width: 1024px){.md\:rt-r-gc{grid-column:var(--grid-column-md)}.md\:rt-r-gc-1{grid-column:1}.md\:rt-r-gc-2{grid-column:2}.md\:rt-r-gc-3{grid-column:3}.md\:rt-r-gc-4{grid-column:4}.md\:rt-r-gc-5{grid-column:5}.md\:rt-r-gc-6{grid-column:6}.md\:rt-r-gc-7{grid-column:7}.md\:rt-r-gc-8{grid-column:8}.md\:rt-r-gc-9{grid-column:9}}@media (min-width: 1280px){.lg\:rt-r-gc{grid-column:var(--grid-column-lg)}.lg\:rt-r-gc-1{grid-column:1}.lg\:rt-r-gc-2{grid-column:2}.lg\:rt-r-gc-3{grid-column:3}.lg\:rt-r-gc-4{grid-column:4}.lg\:rt-r-gc-5{grid-column:5}.lg\:rt-r-gc-6{grid-column:6}.lg\:rt-r-gc-7{grid-column:7}.lg\:rt-r-gc-8{grid-column:8}.lg\:rt-r-gc-9{grid-column:9}}@media (min-width: 1640px){.xl\:rt-r-gc{grid-column:var(--grid-column-xl)}.xl\:rt-r-gc-1{grid-column:1}.xl\:rt-r-gc-2{grid-column:2}.xl\:rt-r-gc-3{grid-column:3}.xl\:rt-r-gc-4{grid-column:4}.xl\:rt-r-gc-5{grid-column:5}.xl\:rt-r-gc-6{grid-column:6}.xl\:rt-r-gc-7{grid-column:7}.xl\:rt-r-gc-8{grid-column:8}.xl\:rt-r-gc-9{grid-column:9}}.rt-r-gcs{grid-column-start:var(--grid-column-start)}.rt-r-gcs-1{grid-column-start:1}.rt-r-gcs-2{grid-column-start:2}.rt-r-gcs-3{grid-column-start:3}.rt-r-gcs-4{grid-column-start:4}.rt-r-gcs-5{grid-column-start:5}.rt-r-gcs-6{grid-column-start:6}.rt-r-gcs-7{grid-column-start:7}.rt-r-gcs-8{grid-column-start:8}.rt-r-gcs-9{grid-column-start:9}@media (min-width: 520px){.xs\:rt-r-gcs{grid-column-start:var(--grid-column-start-xs)}.xs\:rt-r-gcs-1{grid-column-start:1}.xs\:rt-r-gcs-2{grid-column-start:2}.xs\:rt-r-gcs-3{grid-column-start:3}.xs\:rt-r-gcs-4{grid-column-start:4}.xs\:rt-r-gcs-5{grid-column-start:5}.xs\:rt-r-gcs-6{grid-column-start:6}.xs\:rt-r-gcs-7{grid-column-start:7}.xs\:rt-r-gcs-8{grid-column-start:8}.xs\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 768px){.sm\:rt-r-gcs{grid-column-start:var(--grid-column-start-sm)}.sm\:rt-r-gcs-1{grid-column-start:1}.sm\:rt-r-gcs-2{grid-column-start:2}.sm\:rt-r-gcs-3{grid-column-start:3}.sm\:rt-r-gcs-4{grid-column-start:4}.sm\:rt-r-gcs-5{grid-column-start:5}.sm\:rt-r-gcs-6{grid-column-start:6}.sm\:rt-r-gcs-7{grid-column-start:7}.sm\:rt-r-gcs-8{grid-column-start:8}.sm\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1024px){.md\:rt-r-gcs{grid-column-start:var(--grid-column-start-md)}.md\:rt-r-gcs-1{grid-column-start:1}.md\:rt-r-gcs-2{grid-column-start:2}.md\:rt-r-gcs-3{grid-column-start:3}.md\:rt-r-gcs-4{grid-column-start:4}.md\:rt-r-gcs-5{grid-column-start:5}.md\:rt-r-gcs-6{grid-column-start:6}.md\:rt-r-gcs-7{grid-column-start:7}.md\:rt-r-gcs-8{grid-column-start:8}.md\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1280px){.lg\:rt-r-gcs{grid-column-start:var(--grid-column-start-lg)}.lg\:rt-r-gcs-1{grid-column-start:1}.lg\:rt-r-gcs-2{grid-column-start:2}.lg\:rt-r-gcs-3{grid-column-start:3}.lg\:rt-r-gcs-4{grid-column-start:4}.lg\:rt-r-gcs-5{grid-column-start:5}.lg\:rt-r-gcs-6{grid-column-start:6}.lg\:rt-r-gcs-7{grid-column-start:7}.lg\:rt-r-gcs-8{grid-column-start:8}.lg\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1640px){.xl\:rt-r-gcs{grid-column-start:var(--grid-column-start-xl)}.xl\:rt-r-gcs-1{grid-column-start:1}.xl\:rt-r-gcs-2{grid-column-start:2}.xl\:rt-r-gcs-3{grid-column-start:3}.xl\:rt-r-gcs-4{grid-column-start:4}.xl\:rt-r-gcs-5{grid-column-start:5}.xl\:rt-r-gcs-6{grid-column-start:6}.xl\:rt-r-gcs-7{grid-column-start:7}.xl\:rt-r-gcs-8{grid-column-start:8}.xl\:rt-r-gcs-9{grid-column-start:9}}.rt-r-gce{grid-column-end:var(--grid-column-end)}.rt-r-gce-1{grid-column-end:1}.rt-r-gce-2{grid-column-end:2}.rt-r-gce-3{grid-column-end:3}.rt-r-gce-4{grid-column-end:4}.rt-r-gce-5{grid-column-end:5}.rt-r-gce-6{grid-column-end:6}.rt-r-gce-7{grid-column-end:7}.rt-r-gce-8{grid-column-end:8}.rt-r-gce-9{grid-column-end:9}@media (min-width: 520px){.xs\:rt-r-gce{grid-column-end:var(--grid-column-end-xs)}.xs\:rt-r-gce-1{grid-column-end:1}.xs\:rt-r-gce-2{grid-column-end:2}.xs\:rt-r-gce-3{grid-column-end:3}.xs\:rt-r-gce-4{grid-column-end:4}.xs\:rt-r-gce-5{grid-column-end:5}.xs\:rt-r-gce-6{grid-column-end:6}.xs\:rt-r-gce-7{grid-column-end:7}.xs\:rt-r-gce-8{grid-column-end:8}.xs\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 768px){.sm\:rt-r-gce{grid-column-end:var(--grid-column-end-sm)}.sm\:rt-r-gce-1{grid-column-end:1}.sm\:rt-r-gce-2{grid-column-end:2}.sm\:rt-r-gce-3{grid-column-end:3}.sm\:rt-r-gce-4{grid-column-end:4}.sm\:rt-r-gce-5{grid-column-end:5}.sm\:rt-r-gce-6{grid-column-end:6}.sm\:rt-r-gce-7{grid-column-end:7}.sm\:rt-r-gce-8{grid-column-end:8}.sm\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1024px){.md\:rt-r-gce{grid-column-end:var(--grid-column-end-md)}.md\:rt-r-gce-1{grid-column-end:1}.md\:rt-r-gce-2{grid-column-end:2}.md\:rt-r-gce-3{grid-column-end:3}.md\:rt-r-gce-4{grid-column-end:4}.md\:rt-r-gce-5{grid-column-end:5}.md\:rt-r-gce-6{grid-column-end:6}.md\:rt-r-gce-7{grid-column-end:7}.md\:rt-r-gce-8{grid-column-end:8}.md\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1280px){.lg\:rt-r-gce{grid-column-end:var(--grid-column-end-lg)}.lg\:rt-r-gce-1{grid-column-end:1}.lg\:rt-r-gce-2{grid-column-end:2}.lg\:rt-r-gce-3{grid-column-end:3}.lg\:rt-r-gce-4{grid-column-end:4}.lg\:rt-r-gce-5{grid-column-end:5}.lg\:rt-r-gce-6{grid-column-end:6}.lg\:rt-r-gce-7{grid-column-end:7}.lg\:rt-r-gce-8{grid-column-end:8}.lg\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1640px){.xl\:rt-r-gce{grid-column-end:var(--grid-column-end-xl)}.xl\:rt-r-gce-1{grid-column-end:1}.xl\:rt-r-gce-2{grid-column-end:2}.xl\:rt-r-gce-3{grid-column-end:3}.xl\:rt-r-gce-4{grid-column-end:4}.xl\:rt-r-gce-5{grid-column-end:5}.xl\:rt-r-gce-6{grid-column-end:6}.xl\:rt-r-gce-7{grid-column-end:7}.xl\:rt-r-gce-8{grid-column-end:8}.xl\:rt-r-gce-9{grid-column-end:9}}.rt-r-gr{grid-row:var(--grid-row)}.rt-r-gr-1{grid-row:1}.rt-r-gr-2{grid-row:2}.rt-r-gr-3{grid-row:3}.rt-r-gr-4{grid-row:4}.rt-r-gr-5{grid-row:5}.rt-r-gr-6{grid-row:6}.rt-r-gr-7{grid-row:7}.rt-r-gr-8{grid-row:8}.rt-r-gr-9{grid-row:9}@media (min-width: 520px){.xs\:rt-r-gr{grid-row:var(--grid-row-xs)}.xs\:rt-r-gr-1{grid-row:1}.xs\:rt-r-gr-2{grid-row:2}.xs\:rt-r-gr-3{grid-row:3}.xs\:rt-r-gr-4{grid-row:4}.xs\:rt-r-gr-5{grid-row:5}.xs\:rt-r-gr-6{grid-row:6}.xs\:rt-r-gr-7{grid-row:7}.xs\:rt-r-gr-8{grid-row:8}.xs\:rt-r-gr-9{grid-row:9}}@media (min-width: 768px){.sm\:rt-r-gr{grid-row:var(--grid-row-sm)}.sm\:rt-r-gr-1{grid-row:1}.sm\:rt-r-gr-2{grid-row:2}.sm\:rt-r-gr-3{grid-row:3}.sm\:rt-r-gr-4{grid-row:4}.sm\:rt-r-gr-5{grid-row:5}.sm\:rt-r-gr-6{grid-row:6}.sm\:rt-r-gr-7{grid-row:7}.sm\:rt-r-gr-8{grid-row:8}.sm\:rt-r-gr-9{grid-row:9}}@media (min-width: 1024px){.md\:rt-r-gr{grid-row:var(--grid-row-md)}.md\:rt-r-gr-1{grid-row:1}.md\:rt-r-gr-2{grid-row:2}.md\:rt-r-gr-3{grid-row:3}.md\:rt-r-gr-4{grid-row:4}.md\:rt-r-gr-5{grid-row:5}.md\:rt-r-gr-6{grid-row:6}.md\:rt-r-gr-7{grid-row:7}.md\:rt-r-gr-8{grid-row:8}.md\:rt-r-gr-9{grid-row:9}}@media (min-width: 1280px){.lg\:rt-r-gr{grid-row:var(--grid-row-lg)}.lg\:rt-r-gr-1{grid-row:1}.lg\:rt-r-gr-2{grid-row:2}.lg\:rt-r-gr-3{grid-row:3}.lg\:rt-r-gr-4{grid-row:4}.lg\:rt-r-gr-5{grid-row:5}.lg\:rt-r-gr-6{grid-row:6}.lg\:rt-r-gr-7{grid-row:7}.lg\:rt-r-gr-8{grid-row:8}.lg\:rt-r-gr-9{grid-row:9}}@media (min-width: 1640px){.xl\:rt-r-gr{grid-row:var(--grid-row-xl)}.xl\:rt-r-gr-1{grid-row:1}.xl\:rt-r-gr-2{grid-row:2}.xl\:rt-r-gr-3{grid-row:3}.xl\:rt-r-gr-4{grid-row:4}.xl\:rt-r-gr-5{grid-row:5}.xl\:rt-r-gr-6{grid-row:6}.xl\:rt-r-gr-7{grid-row:7}.xl\:rt-r-gr-8{grid-row:8}.xl\:rt-r-gr-9{grid-row:9}}.rt-r-grs{grid-row-start:var(--grid-row-start)}.rt-r-grs-1{grid-row-start:1}.rt-r-grs-2{grid-row-start:2}.rt-r-grs-3{grid-row-start:3}.rt-r-grs-4{grid-row-start:4}.rt-r-grs-5{grid-row-start:5}.rt-r-grs-6{grid-row-start:6}.rt-r-grs-7{grid-row-start:7}.rt-r-grs-8{grid-row-start:8}.rt-r-grs-9{grid-row-start:9}@media (min-width: 520px){.xs\:rt-r-grs{grid-row-start:var(--grid-row-start-xs)}.xs\:rt-r-grs-1{grid-row-start:1}.xs\:rt-r-grs-2{grid-row-start:2}.xs\:rt-r-grs-3{grid-row-start:3}.xs\:rt-r-grs-4{grid-row-start:4}.xs\:rt-r-grs-5{grid-row-start:5}.xs\:rt-r-grs-6{grid-row-start:6}.xs\:rt-r-grs-7{grid-row-start:7}.xs\:rt-r-grs-8{grid-row-start:8}.xs\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 768px){.sm\:rt-r-grs{grid-row-start:var(--grid-row-start-sm)}.sm\:rt-r-grs-1{grid-row-start:1}.sm\:rt-r-grs-2{grid-row-start:2}.sm\:rt-r-grs-3{grid-row-start:3}.sm\:rt-r-grs-4{grid-row-start:4}.sm\:rt-r-grs-5{grid-row-start:5}.sm\:rt-r-grs-6{grid-row-start:6}.sm\:rt-r-grs-7{grid-row-start:7}.sm\:rt-r-grs-8{grid-row-start:8}.sm\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1024px){.md\:rt-r-grs{grid-row-start:var(--grid-row-start-md)}.md\:rt-r-grs-1{grid-row-start:1}.md\:rt-r-grs-2{grid-row-start:2}.md\:rt-r-grs-3{grid-row-start:3}.md\:rt-r-grs-4{grid-row-start:4}.md\:rt-r-grs-5{grid-row-start:5}.md\:rt-r-grs-6{grid-row-start:6}.md\:rt-r-grs-7{grid-row-start:7}.md\:rt-r-grs-8{grid-row-start:8}.md\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1280px){.lg\:rt-r-grs{grid-row-start:var(--grid-row-start-lg)}.lg\:rt-r-grs-1{grid-row-start:1}.lg\:rt-r-grs-2{grid-row-start:2}.lg\:rt-r-grs-3{grid-row-start:3}.lg\:rt-r-grs-4{grid-row-start:4}.lg\:rt-r-grs-5{grid-row-start:5}.lg\:rt-r-grs-6{grid-row-start:6}.lg\:rt-r-grs-7{grid-row-start:7}.lg\:rt-r-grs-8{grid-row-start:8}.lg\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1640px){.xl\:rt-r-grs{grid-row-start:var(--grid-row-start-xl)}.xl\:rt-r-grs-1{grid-row-start:1}.xl\:rt-r-grs-2{grid-row-start:2}.xl\:rt-r-grs-3{grid-row-start:3}.xl\:rt-r-grs-4{grid-row-start:4}.xl\:rt-r-grs-5{grid-row-start:5}.xl\:rt-r-grs-6{grid-row-start:6}.xl\:rt-r-grs-7{grid-row-start:7}.xl\:rt-r-grs-8{grid-row-start:8}.xl\:rt-r-grs-9{grid-row-start:9}}.rt-r-gre{grid-row-end:var(--grid-row-end)}.rt-r-gre-1{grid-row-end:1}.rt-r-gre-2{grid-row-end:2}.rt-r-gre-3{grid-row-end:3}.rt-r-gre-4{grid-row-end:4}.rt-r-gre-5{grid-row-end:5}.rt-r-gre-6{grid-row-end:6}.rt-r-gre-7{grid-row-end:7}.rt-r-gre-8{grid-row-end:8}.rt-r-gre-9{grid-row-end:9}@media (min-width: 520px){.xs\:rt-r-gre{grid-row-end:var(--grid-row-end-xs)}.xs\:rt-r-gre-1{grid-row-end:1}.xs\:rt-r-gre-2{grid-row-end:2}.xs\:rt-r-gre-3{grid-row-end:3}.xs\:rt-r-gre-4{grid-row-end:4}.xs\:rt-r-gre-5{grid-row-end:5}.xs\:rt-r-gre-6{grid-row-end:6}.xs\:rt-r-gre-7{grid-row-end:7}.xs\:rt-r-gre-8{grid-row-end:8}.xs\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 768px){.sm\:rt-r-gre{grid-row-end:var(--grid-row-end-sm)}.sm\:rt-r-gre-1{grid-row-end:1}.sm\:rt-r-gre-2{grid-row-end:2}.sm\:rt-r-gre-3{grid-row-end:3}.sm\:rt-r-gre-4{grid-row-end:4}.sm\:rt-r-gre-5{grid-row-end:5}.sm\:rt-r-gre-6{grid-row-end:6}.sm\:rt-r-gre-7{grid-row-end:7}.sm\:rt-r-gre-8{grid-row-end:8}.sm\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1024px){.md\:rt-r-gre{grid-row-end:var(--grid-row-end-md)}.md\:rt-r-gre-1{grid-row-end:1}.md\:rt-r-gre-2{grid-row-end:2}.md\:rt-r-gre-3{grid-row-end:3}.md\:rt-r-gre-4{grid-row-end:4}.md\:rt-r-gre-5{grid-row-end:5}.md\:rt-r-gre-6{grid-row-end:6}.md\:rt-r-gre-7{grid-row-end:7}.md\:rt-r-gre-8{grid-row-end:8}.md\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1280px){.lg\:rt-r-gre{grid-row-end:var(--grid-row-end-lg)}.lg\:rt-r-gre-1{grid-row-end:1}.lg\:rt-r-gre-2{grid-row-end:2}.lg\:rt-r-gre-3{grid-row-end:3}.lg\:rt-r-gre-4{grid-row-end:4}.lg\:rt-r-gre-5{grid-row-end:5}.lg\:rt-r-gre-6{grid-row-end:6}.lg\:rt-r-gre-7{grid-row-end:7}.lg\:rt-r-gre-8{grid-row-end:8}.lg\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1640px){.xl\:rt-r-gre{grid-row-end:var(--grid-row-end-xl)}.xl\:rt-r-gre-1{grid-row-end:1}.xl\:rt-r-gre-2{grid-row-end:2}.xl\:rt-r-gre-3{grid-row-end:3}.xl\:rt-r-gre-4{grid-row-end:4}.xl\:rt-r-gre-5{grid-row-end:5}.xl\:rt-r-gre-6{grid-row-end:6}.xl\:rt-r-gre-7{grid-row-end:7}.xl\:rt-r-gre-8{grid-row-end:8}.xl\:rt-r-gre-9{grid-row-end:9}}.rt-r-gta{grid-template-areas:var(--grid-template-areas)}@media (min-width: 520px){.xs\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xs)}}@media (min-width: 768px){.sm\:rt-r-gta{grid-template-areas:var(--grid-template-areas-sm)}}@media (min-width: 1024px){.md\:rt-r-gta{grid-template-areas:var(--grid-template-areas-md)}}@media (min-width: 1280px){.lg\:rt-r-gta{grid-template-areas:var(--grid-template-areas-lg)}}@media (min-width: 1640px){.xl\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xl)}}.rt-r-gtc{grid-template-columns:var(--grid-template-columns)}.rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xs)}.xs\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xs\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-sm)}.sm\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.sm\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-md)}.md\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.md\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-lg)}.lg\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.lg\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xl)}.xl\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xl\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}.rt-r-gtr{grid-template-rows:var(--grid-template-rows)}.rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xs)}.xs\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xs\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-sm)}.sm\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.sm\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-md)}.md\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.md\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.md\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.md\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.md\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.md\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.md\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-lg)}.lg\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.lg\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xl)}.xl\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xl\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}.rt-r-h{height:var(--height)}@media (min-width: 520px){.xs\:rt-r-h{height:var(--height-xs)}}@media (min-width: 768px){.sm\:rt-r-h{height:var(--height-sm)}}@media (min-width: 1024px){.md\:rt-r-h{height:var(--height-md)}}@media (min-width: 1280px){.lg\:rt-r-h{height:var(--height-lg)}}@media (min-width: 1640px){.xl\:rt-r-h{height:var(--height-xl)}}.rt-r-min-h{min-height:var(--min-height)}@media (min-width: 520px){.xs\:rt-r-min-h{min-height:var(--min-height-xs)}}@media (min-width: 768px){.sm\:rt-r-min-h{min-height:var(--min-height-sm)}}@media (min-width: 1024px){.md\:rt-r-min-h{min-height:var(--min-height-md)}}@media (min-width: 1280px){.lg\:rt-r-min-h{min-height:var(--min-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-h{min-height:var(--min-height-xl)}}.rt-r-max-h{max-height:var(--max-height)}@media (min-width: 520px){.xs\:rt-r-max-h{max-height:var(--max-height-xs)}}@media (min-width: 768px){.sm\:rt-r-max-h{max-height:var(--max-height-sm)}}@media (min-width: 1024px){.md\:rt-r-max-h{max-height:var(--max-height-md)}}@media (min-width: 1280px){.lg\:rt-r-max-h{max-height:var(--max-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-h{max-height:var(--max-height-xl)}}.rt-r-inset{inset:var(--inset)}.rt-r-inset-0{inset:0}.rt-r-inset-1{inset:var(--space-1)}.rt-r-inset-2{inset:var(--space-2)}.rt-r-inset-3{inset:var(--space-3)}.rt-r-inset-4{inset:var(--space-4)}.rt-r-inset-5{inset:var(--space-5)}.rt-r-inset-6{inset:var(--space-6)}.rt-r-inset-7{inset:var(--space-7)}.rt-r-inset-8{inset:var(--space-8)}.rt-r-inset-9{inset:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-inset{inset:var(--inset-xs)}.xs\:rt-r-inset-0{inset:0}.xs\:rt-r-inset-1{inset:var(--space-1)}.xs\:rt-r-inset-2{inset:var(--space-2)}.xs\:rt-r-inset-3{inset:var(--space-3)}.xs\:rt-r-inset-4{inset:var(--space-4)}.xs\:rt-r-inset-5{inset:var(--space-5)}.xs\:rt-r-inset-6{inset:var(--space-6)}.xs\:rt-r-inset-7{inset:var(--space-7)}.xs\:rt-r-inset-8{inset:var(--space-8)}.xs\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-inset{inset:var(--inset-sm)}.sm\:rt-r-inset-0{inset:0}.sm\:rt-r-inset-1{inset:var(--space-1)}.sm\:rt-r-inset-2{inset:var(--space-2)}.sm\:rt-r-inset-3{inset:var(--space-3)}.sm\:rt-r-inset-4{inset:var(--space-4)}.sm\:rt-r-inset-5{inset:var(--space-5)}.sm\:rt-r-inset-6{inset:var(--space-6)}.sm\:rt-r-inset-7{inset:var(--space-7)}.sm\:rt-r-inset-8{inset:var(--space-8)}.sm\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-inset{inset:var(--inset-md)}.md\:rt-r-inset-0{inset:0}.md\:rt-r-inset-1{inset:var(--space-1)}.md\:rt-r-inset-2{inset:var(--space-2)}.md\:rt-r-inset-3{inset:var(--space-3)}.md\:rt-r-inset-4{inset:var(--space-4)}.md\:rt-r-inset-5{inset:var(--space-5)}.md\:rt-r-inset-6{inset:var(--space-6)}.md\:rt-r-inset-7{inset:var(--space-7)}.md\:rt-r-inset-8{inset:var(--space-8)}.md\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-inset{inset:var(--inset-lg)}.lg\:rt-r-inset-0{inset:0}.lg\:rt-r-inset-1{inset:var(--space-1)}.lg\:rt-r-inset-2{inset:var(--space-2)}.lg\:rt-r-inset-3{inset:var(--space-3)}.lg\:rt-r-inset-4{inset:var(--space-4)}.lg\:rt-r-inset-5{inset:var(--space-5)}.lg\:rt-r-inset-6{inset:var(--space-6)}.lg\:rt-r-inset-7{inset:var(--space-7)}.lg\:rt-r-inset-8{inset:var(--space-8)}.lg\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-inset{inset:var(--inset-xl)}.xl\:rt-r-inset-0{inset:0}.xl\:rt-r-inset-1{inset:var(--space-1)}.xl\:rt-r-inset-2{inset:var(--space-2)}.xl\:rt-r-inset-3{inset:var(--space-3)}.xl\:rt-r-inset-4{inset:var(--space-4)}.xl\:rt-r-inset-5{inset:var(--space-5)}.xl\:rt-r-inset-6{inset:var(--space-6)}.xl\:rt-r-inset-7{inset:var(--space-7)}.xl\:rt-r-inset-8{inset:var(--space-8)}.xl\:rt-r-inset-9{inset:var(--space-9)}}.rt-r-top{top:var(--top)}.rt-r-top-0{top:0}.rt-r-top-1{top:var(--space-1)}.rt-r-top-2{top:var(--space-2)}.rt-r-top-3{top:var(--space-3)}.rt-r-top-4{top:var(--space-4)}.rt-r-top-5{top:var(--space-5)}.rt-r-top-6{top:var(--space-6)}.rt-r-top-7{top:var(--space-7)}.rt-r-top-8{top:var(--space-8)}.rt-r-top-9{top:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-top{top:var(--top-xs)}.xs\:rt-r-top-0{top:0}.xs\:rt-r-top-1{top:var(--space-1)}.xs\:rt-r-top-2{top:var(--space-2)}.xs\:rt-r-top-3{top:var(--space-3)}.xs\:rt-r-top-4{top:var(--space-4)}.xs\:rt-r-top-5{top:var(--space-5)}.xs\:rt-r-top-6{top:var(--space-6)}.xs\:rt-r-top-7{top:var(--space-7)}.xs\:rt-r-top-8{top:var(--space-8)}.xs\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-top{top:var(--top-sm)}.sm\:rt-r-top-0{top:0}.sm\:rt-r-top-1{top:var(--space-1)}.sm\:rt-r-top-2{top:var(--space-2)}.sm\:rt-r-top-3{top:var(--space-3)}.sm\:rt-r-top-4{top:var(--space-4)}.sm\:rt-r-top-5{top:var(--space-5)}.sm\:rt-r-top-6{top:var(--space-6)}.sm\:rt-r-top-7{top:var(--space-7)}.sm\:rt-r-top-8{top:var(--space-8)}.sm\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-top{top:var(--top-md)}.md\:rt-r-top-0{top:0}.md\:rt-r-top-1{top:var(--space-1)}.md\:rt-r-top-2{top:var(--space-2)}.md\:rt-r-top-3{top:var(--space-3)}.md\:rt-r-top-4{top:var(--space-4)}.md\:rt-r-top-5{top:var(--space-5)}.md\:rt-r-top-6{top:var(--space-6)}.md\:rt-r-top-7{top:var(--space-7)}.md\:rt-r-top-8{top:var(--space-8)}.md\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-top{top:var(--top-lg)}.lg\:rt-r-top-0{top:0}.lg\:rt-r-top-1{top:var(--space-1)}.lg\:rt-r-top-2{top:var(--space-2)}.lg\:rt-r-top-3{top:var(--space-3)}.lg\:rt-r-top-4{top:var(--space-4)}.lg\:rt-r-top-5{top:var(--space-5)}.lg\:rt-r-top-6{top:var(--space-6)}.lg\:rt-r-top-7{top:var(--space-7)}.lg\:rt-r-top-8{top:var(--space-8)}.lg\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-top{top:var(--top-xl)}.xl\:rt-r-top-0{top:0}.xl\:rt-r-top-1{top:var(--space-1)}.xl\:rt-r-top-2{top:var(--space-2)}.xl\:rt-r-top-3{top:var(--space-3)}.xl\:rt-r-top-4{top:var(--space-4)}.xl\:rt-r-top-5{top:var(--space-5)}.xl\:rt-r-top-6{top:var(--space-6)}.xl\:rt-r-top-7{top:var(--space-7)}.xl\:rt-r-top-8{top:var(--space-8)}.xl\:rt-r-top-9{top:var(--space-9)}}.rt-r-right{right:var(--right)}.rt-r-right-0{right:0}.rt-r-right-1{right:var(--space-1)}.rt-r-right-2{right:var(--space-2)}.rt-r-right-3{right:var(--space-3)}.rt-r-right-4{right:var(--space-4)}.rt-r-right-5{right:var(--space-5)}.rt-r-right-6{right:var(--space-6)}.rt-r-right-7{right:var(--space-7)}.rt-r-right-8{right:var(--space-8)}.rt-r-right-9{right:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-right{right:var(--right-xs)}.xs\:rt-r-right-0{right:0}.xs\:rt-r-right-1{right:var(--space-1)}.xs\:rt-r-right-2{right:var(--space-2)}.xs\:rt-r-right-3{right:var(--space-3)}.xs\:rt-r-right-4{right:var(--space-4)}.xs\:rt-r-right-5{right:var(--space-5)}.xs\:rt-r-right-6{right:var(--space-6)}.xs\:rt-r-right-7{right:var(--space-7)}.xs\:rt-r-right-8{right:var(--space-8)}.xs\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-right{right:var(--right-sm)}.sm\:rt-r-right-0{right:0}.sm\:rt-r-right-1{right:var(--space-1)}.sm\:rt-r-right-2{right:var(--space-2)}.sm\:rt-r-right-3{right:var(--space-3)}.sm\:rt-r-right-4{right:var(--space-4)}.sm\:rt-r-right-5{right:var(--space-5)}.sm\:rt-r-right-6{right:var(--space-6)}.sm\:rt-r-right-7{right:var(--space-7)}.sm\:rt-r-right-8{right:var(--space-8)}.sm\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-right{right:var(--right-md)}.md\:rt-r-right-0{right:0}.md\:rt-r-right-1{right:var(--space-1)}.md\:rt-r-right-2{right:var(--space-2)}.md\:rt-r-right-3{right:var(--space-3)}.md\:rt-r-right-4{right:var(--space-4)}.md\:rt-r-right-5{right:var(--space-5)}.md\:rt-r-right-6{right:var(--space-6)}.md\:rt-r-right-7{right:var(--space-7)}.md\:rt-r-right-8{right:var(--space-8)}.md\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-right{right:var(--right-lg)}.lg\:rt-r-right-0{right:0}.lg\:rt-r-right-1{right:var(--space-1)}.lg\:rt-r-right-2{right:var(--space-2)}.lg\:rt-r-right-3{right:var(--space-3)}.lg\:rt-r-right-4{right:var(--space-4)}.lg\:rt-r-right-5{right:var(--space-5)}.lg\:rt-r-right-6{right:var(--space-6)}.lg\:rt-r-right-7{right:var(--space-7)}.lg\:rt-r-right-8{right:var(--space-8)}.lg\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-right{right:var(--right-xl)}.xl\:rt-r-right-0{right:0}.xl\:rt-r-right-1{right:var(--space-1)}.xl\:rt-r-right-2{right:var(--space-2)}.xl\:rt-r-right-3{right:var(--space-3)}.xl\:rt-r-right-4{right:var(--space-4)}.xl\:rt-r-right-5{right:var(--space-5)}.xl\:rt-r-right-6{right:var(--space-6)}.xl\:rt-r-right-7{right:var(--space-7)}.xl\:rt-r-right-8{right:var(--space-8)}.xl\:rt-r-right-9{right:var(--space-9)}}.rt-r-bottom{bottom:var(--bottom)}.rt-r-bottom-0{bottom:0}.rt-r-bottom-1{bottom:var(--space-1)}.rt-r-bottom-2{bottom:var(--space-2)}.rt-r-bottom-3{bottom:var(--space-3)}.rt-r-bottom-4{bottom:var(--space-4)}.rt-r-bottom-5{bottom:var(--space-5)}.rt-r-bottom-6{bottom:var(--space-6)}.rt-r-bottom-7{bottom:var(--space-7)}.rt-r-bottom-8{bottom:var(--space-8)}.rt-r-bottom-9{bottom:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-bottom{bottom:var(--bottom-xs)}.xs\:rt-r-bottom-0{bottom:0}.xs\:rt-r-bottom-1{bottom:var(--space-1)}.xs\:rt-r-bottom-2{bottom:var(--space-2)}.xs\:rt-r-bottom-3{bottom:var(--space-3)}.xs\:rt-r-bottom-4{bottom:var(--space-4)}.xs\:rt-r-bottom-5{bottom:var(--space-5)}.xs\:rt-r-bottom-6{bottom:var(--space-6)}.xs\:rt-r-bottom-7{bottom:var(--space-7)}.xs\:rt-r-bottom-8{bottom:var(--space-8)}.xs\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-bottom{bottom:var(--bottom-sm)}.sm\:rt-r-bottom-0{bottom:0}.sm\:rt-r-bottom-1{bottom:var(--space-1)}.sm\:rt-r-bottom-2{bottom:var(--space-2)}.sm\:rt-r-bottom-3{bottom:var(--space-3)}.sm\:rt-r-bottom-4{bottom:var(--space-4)}.sm\:rt-r-bottom-5{bottom:var(--space-5)}.sm\:rt-r-bottom-6{bottom:var(--space-6)}.sm\:rt-r-bottom-7{bottom:var(--space-7)}.sm\:rt-r-bottom-8{bottom:var(--space-8)}.sm\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-bottom{bottom:var(--bottom-md)}.md\:rt-r-bottom-0{bottom:0}.md\:rt-r-bottom-1{bottom:var(--space-1)}.md\:rt-r-bottom-2{bottom:var(--space-2)}.md\:rt-r-bottom-3{bottom:var(--space-3)}.md\:rt-r-bottom-4{bottom:var(--space-4)}.md\:rt-r-bottom-5{bottom:var(--space-5)}.md\:rt-r-bottom-6{bottom:var(--space-6)}.md\:rt-r-bottom-7{bottom:var(--space-7)}.md\:rt-r-bottom-8{bottom:var(--space-8)}.md\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-bottom{bottom:var(--bottom-lg)}.lg\:rt-r-bottom-0{bottom:0}.lg\:rt-r-bottom-1{bottom:var(--space-1)}.lg\:rt-r-bottom-2{bottom:var(--space-2)}.lg\:rt-r-bottom-3{bottom:var(--space-3)}.lg\:rt-r-bottom-4{bottom:var(--space-4)}.lg\:rt-r-bottom-5{bottom:var(--space-5)}.lg\:rt-r-bottom-6{bottom:var(--space-6)}.lg\:rt-r-bottom-7{bottom:var(--space-7)}.lg\:rt-r-bottom-8{bottom:var(--space-8)}.lg\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-bottom{bottom:var(--bottom-xl)}.xl\:rt-r-bottom-0{bottom:0}.xl\:rt-r-bottom-1{bottom:var(--space-1)}.xl\:rt-r-bottom-2{bottom:var(--space-2)}.xl\:rt-r-bottom-3{bottom:var(--space-3)}.xl\:rt-r-bottom-4{bottom:var(--space-4)}.xl\:rt-r-bottom-5{bottom:var(--space-5)}.xl\:rt-r-bottom-6{bottom:var(--space-6)}.xl\:rt-r-bottom-7{bottom:var(--space-7)}.xl\:rt-r-bottom-8{bottom:var(--space-8)}.xl\:rt-r-bottom-9{bottom:var(--space-9)}}.rt-r-left{left:var(--left)}.rt-r-left-0{left:0}.rt-r-left-1{left:var(--space-1)}.rt-r-left-2{left:var(--space-2)}.rt-r-left-3{left:var(--space-3)}.rt-r-left-4{left:var(--space-4)}.rt-r-left-5{left:var(--space-5)}.rt-r-left-6{left:var(--space-6)}.rt-r-left-7{left:var(--space-7)}.rt-r-left-8{left:var(--space-8)}.rt-r-left-9{left:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-left{left:var(--left-xs)}.xs\:rt-r-left-0{left:0}.xs\:rt-r-left-1{left:var(--space-1)}.xs\:rt-r-left-2{left:var(--space-2)}.xs\:rt-r-left-3{left:var(--space-3)}.xs\:rt-r-left-4{left:var(--space-4)}.xs\:rt-r-left-5{left:var(--space-5)}.xs\:rt-r-left-6{left:var(--space-6)}.xs\:rt-r-left-7{left:var(--space-7)}.xs\:rt-r-left-8{left:var(--space-8)}.xs\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-left{left:var(--left-sm)}.sm\:rt-r-left-0{left:0}.sm\:rt-r-left-1{left:var(--space-1)}.sm\:rt-r-left-2{left:var(--space-2)}.sm\:rt-r-left-3{left:var(--space-3)}.sm\:rt-r-left-4{left:var(--space-4)}.sm\:rt-r-left-5{left:var(--space-5)}.sm\:rt-r-left-6{left:var(--space-6)}.sm\:rt-r-left-7{left:var(--space-7)}.sm\:rt-r-left-8{left:var(--space-8)}.sm\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-left{left:var(--left-md)}.md\:rt-r-left-0{left:0}.md\:rt-r-left-1{left:var(--space-1)}.md\:rt-r-left-2{left:var(--space-2)}.md\:rt-r-left-3{left:var(--space-3)}.md\:rt-r-left-4{left:var(--space-4)}.md\:rt-r-left-5{left:var(--space-5)}.md\:rt-r-left-6{left:var(--space-6)}.md\:rt-r-left-7{left:var(--space-7)}.md\:rt-r-left-8{left:var(--space-8)}.md\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-left{left:var(--left-lg)}.lg\:rt-r-left-0{left:0}.lg\:rt-r-left-1{left:var(--space-1)}.lg\:rt-r-left-2{left:var(--space-2)}.lg\:rt-r-left-3{left:var(--space-3)}.lg\:rt-r-left-4{left:var(--space-4)}.lg\:rt-r-left-5{left:var(--space-5)}.lg\:rt-r-left-6{left:var(--space-6)}.lg\:rt-r-left-7{left:var(--space-7)}.lg\:rt-r-left-8{left:var(--space-8)}.lg\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-left{left:var(--left-xl)}.xl\:rt-r-left-0{left:0}.xl\:rt-r-left-1{left:var(--space-1)}.xl\:rt-r-left-2{left:var(--space-2)}.xl\:rt-r-left-3{left:var(--space-3)}.xl\:rt-r-left-4{left:var(--space-4)}.xl\:rt-r-left-5{left:var(--space-5)}.xl\:rt-r-left-6{left:var(--space-6)}.xl\:rt-r-left-7{left:var(--space-7)}.xl\:rt-r-left-8{left:var(--space-8)}.xl\:rt-r-left-9{left:var(--space-9)}}.rt-r-jc-start{justify-content:flex-start}.rt-r-jc-center{justify-content:center}.rt-r-jc-end{justify-content:flex-end}.rt-r-jc-space-between{justify-content:space-between}@media (min-width: 520px){.xs\:rt-r-jc-start{justify-content:flex-start}.xs\:rt-r-jc-center{justify-content:center}.xs\:rt-r-jc-end{justify-content:flex-end}.xs\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 768px){.sm\:rt-r-jc-start{justify-content:flex-start}.sm\:rt-r-jc-center{justify-content:center}.sm\:rt-r-jc-end{justify-content:flex-end}.sm\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1024px){.md\:rt-r-jc-start{justify-content:flex-start}.md\:rt-r-jc-center{justify-content:center}.md\:rt-r-jc-end{justify-content:flex-end}.md\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1280px){.lg\:rt-r-jc-start{justify-content:flex-start}.lg\:rt-r-jc-center{justify-content:center}.lg\:rt-r-jc-end{justify-content:flex-end}.lg\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1640px){.xl\:rt-r-jc-start{justify-content:flex-start}.xl\:rt-r-jc-center{justify-content:center}.xl\:rt-r-jc-end{justify-content:flex-end}.xl\:rt-r-jc-space-between{justify-content:space-between}}.rt-r-m,.rt-r-m-0,.rt-r-m-1,.rt-r-m-2,.rt-r-m-3,.rt-r-m-4,.rt-r-m-5,.rt-r-m-6,.rt-r-m-7,.rt-r-m-8,.rt-r-m-9,.-rt-r-m-1,.-rt-r-m-2,.-rt-r-m-3,.-rt-r-m-4,.-rt-r-m-5,.-rt-r-m-6,.-rt-r-m-7,.-rt-r-m-8,.-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-m{--margin-top: var(--m);--margin-right: var(--m);--margin-bottom: var(--m);--margin-left: var(--m) }.rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-m,.xs\:rt-r-m-0,.xs\:rt-r-m-1,.xs\:rt-r-m-2,.xs\:rt-r-m-3,.xs\:rt-r-m-4,.xs\:rt-r-m-5,.xs\:rt-r-m-6,.xs\:rt-r-m-7,.xs\:rt-r-m-8,.xs\:rt-r-m-9,.xs\:-rt-r-m-1,.xs\:-rt-r-m-2,.xs\:-rt-r-m-3,.xs\:-rt-r-m-4,.xs\:-rt-r-m-5,.xs\:-rt-r-m-6,.xs\:-rt-r-m-7,.xs\:-rt-r-m-8,.xs\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-m{--margin-top: var(--m-xs);--margin-right: var(--m-xs);--margin-bottom: var(--m-xs);--margin-left: var(--m-xs) }.xs\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xs\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xs\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xs\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xs\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xs\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xs\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xs\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xs\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xs\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xs\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-m,.sm\:rt-r-m-0,.sm\:rt-r-m-1,.sm\:rt-r-m-2,.sm\:rt-r-m-3,.sm\:rt-r-m-4,.sm\:rt-r-m-5,.sm\:rt-r-m-6,.sm\:rt-r-m-7,.sm\:rt-r-m-8,.sm\:rt-r-m-9,.sm\:-rt-r-m-1,.sm\:-rt-r-m-2,.sm\:-rt-r-m-3,.sm\:-rt-r-m-4,.sm\:-rt-r-m-5,.sm\:-rt-r-m-6,.sm\:-rt-r-m-7,.sm\:-rt-r-m-8,.sm\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-m{--margin-top: var(--m-sm);--margin-right: var(--m-sm);--margin-bottom: var(--m-sm);--margin-left: var(--m-sm) }.sm\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.sm\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.sm\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.sm\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.sm\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.sm\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.sm\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.sm\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.sm\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.sm\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.sm\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-m,.md\:rt-r-m-0,.md\:rt-r-m-1,.md\:rt-r-m-2,.md\:rt-r-m-3,.md\:rt-r-m-4,.md\:rt-r-m-5,.md\:rt-r-m-6,.md\:rt-r-m-7,.md\:rt-r-m-8,.md\:rt-r-m-9,.md\:-rt-r-m-1,.md\:-rt-r-m-2,.md\:-rt-r-m-3,.md\:-rt-r-m-4,.md\:-rt-r-m-5,.md\:-rt-r-m-6,.md\:-rt-r-m-7,.md\:-rt-r-m-8,.md\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-m{--margin-top: var(--m-md);--margin-right: var(--m-md);--margin-bottom: var(--m-md);--margin-left: var(--m-md) }.md\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.md\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.md\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.md\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.md\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.md\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.md\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.md\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.md\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.md\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.md\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-m,.lg\:rt-r-m-0,.lg\:rt-r-m-1,.lg\:rt-r-m-2,.lg\:rt-r-m-3,.lg\:rt-r-m-4,.lg\:rt-r-m-5,.lg\:rt-r-m-6,.lg\:rt-r-m-7,.lg\:rt-r-m-8,.lg\:rt-r-m-9,.lg\:-rt-r-m-1,.lg\:-rt-r-m-2,.lg\:-rt-r-m-3,.lg\:-rt-r-m-4,.lg\:-rt-r-m-5,.lg\:-rt-r-m-6,.lg\:-rt-r-m-7,.lg\:-rt-r-m-8,.lg\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-m{--margin-top: var(--m-lg);--margin-right: var(--m-lg);--margin-bottom: var(--m-lg);--margin-left: var(--m-lg) }.lg\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.lg\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.lg\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.lg\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.lg\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.lg\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.lg\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.lg\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.lg\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.lg\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.lg\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-m,.xl\:rt-r-m-0,.xl\:rt-r-m-1,.xl\:rt-r-m-2,.xl\:rt-r-m-3,.xl\:rt-r-m-4,.xl\:rt-r-m-5,.xl\:rt-r-m-6,.xl\:rt-r-m-7,.xl\:rt-r-m-8,.xl\:rt-r-m-9,.xl\:-rt-r-m-1,.xl\:-rt-r-m-2,.xl\:-rt-r-m-3,.xl\:-rt-r-m-4,.xl\:-rt-r-m-5,.xl\:-rt-r-m-6,.xl\:-rt-r-m-7,.xl\:-rt-r-m-8,.xl\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-m{--margin-top: var(--m-xl);--margin-right: var(--m-xl);--margin-bottom: var(--m-xl);--margin-left: var(--m-xl) }.xl\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xl\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xl\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xl\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xl\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xl\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xl\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xl\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xl\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xl\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xl\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}.rt-r-mx,.rt-r-mx-0,.rt-r-mx-1,.rt-r-mx-2,.rt-r-mx-3,.rt-r-mx-4,.rt-r-mx-5,.rt-r-mx-6,.rt-r-mx-7,.rt-r-mx-8,.rt-r-mx-9,.-rt-r-mx-1,.-rt-r-mx-2,.-rt-r-mx-3,.-rt-r-mx-4,.-rt-r-mx-5,.-rt-r-mx-6,.-rt-r-mx-7,.-rt-r-mx-8,.-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mx{--margin-left: var(--ml);--margin-right: var(--mr) }.rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mx,.xs\:rt-r-mx-0,.xs\:rt-r-mx-1,.xs\:rt-r-mx-2,.xs\:rt-r-mx-3,.xs\:rt-r-mx-4,.xs\:rt-r-mx-5,.xs\:rt-r-mx-6,.xs\:rt-r-mx-7,.xs\:rt-r-mx-8,.xs\:rt-r-mx-9,.xs\:-rt-r-mx-1,.xs\:-rt-r-mx-2,.xs\:-rt-r-mx-3,.xs\:-rt-r-mx-4,.xs\:-rt-r-mx-5,.xs\:-rt-r-mx-6,.xs\:-rt-r-mx-7,.xs\:-rt-r-mx-8,.xs\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mx{--margin-left: var(--ml-xs);--margin-right: var(--mr-xs) }.xs\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xs\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xs\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xs\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xs\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xs\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xs\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xs\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xs\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xs\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xs\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mx,.sm\:rt-r-mx-0,.sm\:rt-r-mx-1,.sm\:rt-r-mx-2,.sm\:rt-r-mx-3,.sm\:rt-r-mx-4,.sm\:rt-r-mx-5,.sm\:rt-r-mx-6,.sm\:rt-r-mx-7,.sm\:rt-r-mx-8,.sm\:rt-r-mx-9,.sm\:-rt-r-mx-1,.sm\:-rt-r-mx-2,.sm\:-rt-r-mx-3,.sm\:-rt-r-mx-4,.sm\:-rt-r-mx-5,.sm\:-rt-r-mx-6,.sm\:-rt-r-mx-7,.sm\:-rt-r-mx-8,.sm\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.sm\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.sm\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.sm\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.sm\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.sm\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.sm\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.sm\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.sm\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.sm\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.sm\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.sm\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mx,.md\:rt-r-mx-0,.md\:rt-r-mx-1,.md\:rt-r-mx-2,.md\:rt-r-mx-3,.md\:rt-r-mx-4,.md\:rt-r-mx-5,.md\:rt-r-mx-6,.md\:rt-r-mx-7,.md\:rt-r-mx-8,.md\:rt-r-mx-9,.md\:-rt-r-mx-1,.md\:-rt-r-mx-2,.md\:-rt-r-mx-3,.md\:-rt-r-mx-4,.md\:-rt-r-mx-5,.md\:-rt-r-mx-6,.md\:-rt-r-mx-7,.md\:-rt-r-mx-8,.md\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.md\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.md\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.md\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.md\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.md\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.md\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.md\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.md\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.md\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.md\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.md\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mx,.lg\:rt-r-mx-0,.lg\:rt-r-mx-1,.lg\:rt-r-mx-2,.lg\:rt-r-mx-3,.lg\:rt-r-mx-4,.lg\:rt-r-mx-5,.lg\:rt-r-mx-6,.lg\:rt-r-mx-7,.lg\:rt-r-mx-8,.lg\:rt-r-mx-9,.lg\:-rt-r-mx-1,.lg\:-rt-r-mx-2,.lg\:-rt-r-mx-3,.lg\:-rt-r-mx-4,.lg\:-rt-r-mx-5,.lg\:-rt-r-mx-6,.lg\:-rt-r-mx-7,.lg\:-rt-r-mx-8,.lg\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mx{--margin-left: var(--ml-lg);--margin-right: var(--mr-lg) }.lg\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.lg\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.lg\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.lg\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.lg\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.lg\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.lg\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.lg\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.lg\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.lg\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.lg\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mx,.xl\:rt-r-mx-0,.xl\:rt-r-mx-1,.xl\:rt-r-mx-2,.xl\:rt-r-mx-3,.xl\:rt-r-mx-4,.xl\:rt-r-mx-5,.xl\:rt-r-mx-6,.xl\:rt-r-mx-7,.xl\:rt-r-mx-8,.xl\:rt-r-mx-9,.xl\:-rt-r-mx-1,.xl\:-rt-r-mx-2,.xl\:-rt-r-mx-3,.xl\:-rt-r-mx-4,.xl\:-rt-r-mx-5,.xl\:-rt-r-mx-6,.xl\:-rt-r-mx-7,.xl\:-rt-r-mx-8,.xl\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mx{--margin-left: var(--ml-xl);--margin-right: var(--mr-xl) }.xl\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xl\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xl\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xl\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xl\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xl\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xl\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xl\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xl\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xl\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xl\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}.rt-r-my,.rt-r-my-0,.rt-r-my-1,.rt-r-my-2,.rt-r-my-3,.rt-r-my-4,.rt-r-my-5,.rt-r-my-6,.rt-r-my-7,.rt-r-my-8,.rt-r-my-9,.-rt-r-my-1,.-rt-r-my-2,.-rt-r-my-3,.-rt-r-my-4,.-rt-r-my-5,.-rt-r-my-6,.-rt-r-my-7,.-rt-r-my-8,.-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-my{--margin-top: var(--mt);--margin-bottom: var(--mb) }.rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-my,.xs\:rt-r-my-0,.xs\:rt-r-my-1,.xs\:rt-r-my-2,.xs\:rt-r-my-3,.xs\:rt-r-my-4,.xs\:rt-r-my-5,.xs\:rt-r-my-6,.xs\:rt-r-my-7,.xs\:rt-r-my-8,.xs\:rt-r-my-9,.xs\:-rt-r-my-1,.xs\:-rt-r-my-2,.xs\:-rt-r-my-3,.xs\:-rt-r-my-4,.xs\:-rt-r-my-5,.xs\:-rt-r-my-6,.xs\:-rt-r-my-7,.xs\:-rt-r-my-8,.xs\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-my{--margin-top: var(--mt-xs);--margin-bottom: var(--mb-xs) }.xs\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xs\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xs\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xs\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xs\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xs\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xs\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xs\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xs\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xs\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xs\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-my,.sm\:rt-r-my-0,.sm\:rt-r-my-1,.sm\:rt-r-my-2,.sm\:rt-r-my-3,.sm\:rt-r-my-4,.sm\:rt-r-my-5,.sm\:rt-r-my-6,.sm\:rt-r-my-7,.sm\:rt-r-my-8,.sm\:rt-r-my-9,.sm\:-rt-r-my-1,.sm\:-rt-r-my-2,.sm\:-rt-r-my-3,.sm\:-rt-r-my-4,.sm\:-rt-r-my-5,.sm\:-rt-r-my-6,.sm\:-rt-r-my-7,.sm\:-rt-r-my-8,.sm\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-my{--margin-top: var(--mt-sm);--margin-bottom: var(--mb-sm) }.sm\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.sm\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.sm\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.sm\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.sm\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.sm\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.sm\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.sm\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.sm\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.sm\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.sm\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-my,.md\:rt-r-my-0,.md\:rt-r-my-1,.md\:rt-r-my-2,.md\:rt-r-my-3,.md\:rt-r-my-4,.md\:rt-r-my-5,.md\:rt-r-my-6,.md\:rt-r-my-7,.md\:rt-r-my-8,.md\:rt-r-my-9,.md\:-rt-r-my-1,.md\:-rt-r-my-2,.md\:-rt-r-my-3,.md\:-rt-r-my-4,.md\:-rt-r-my-5,.md\:-rt-r-my-6,.md\:-rt-r-my-7,.md\:-rt-r-my-8,.md\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-my{--margin-top: var(--mt-md);--margin-bottom: var(--mb-md) }.md\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.md\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.md\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.md\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.md\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.md\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.md\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.md\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.md\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.md\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.md\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-my,.lg\:rt-r-my-0,.lg\:rt-r-my-1,.lg\:rt-r-my-2,.lg\:rt-r-my-3,.lg\:rt-r-my-4,.lg\:rt-r-my-5,.lg\:rt-r-my-6,.lg\:rt-r-my-7,.lg\:rt-r-my-8,.lg\:rt-r-my-9,.lg\:-rt-r-my-1,.lg\:-rt-r-my-2,.lg\:-rt-r-my-3,.lg\:-rt-r-my-4,.lg\:-rt-r-my-5,.lg\:-rt-r-my-6,.lg\:-rt-r-my-7,.lg\:-rt-r-my-8,.lg\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-my{--margin-top: var(--mt-lg);--margin-bottom: var(--mb-lg) }.lg\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.lg\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.lg\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.lg\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.lg\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.lg\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.lg\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.lg\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.lg\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.lg\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.lg\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-my,.xl\:rt-r-my-0,.xl\:rt-r-my-1,.xl\:rt-r-my-2,.xl\:rt-r-my-3,.xl\:rt-r-my-4,.xl\:rt-r-my-5,.xl\:rt-r-my-6,.xl\:rt-r-my-7,.xl\:rt-r-my-8,.xl\:rt-r-my-9,.xl\:-rt-r-my-1,.xl\:-rt-r-my-2,.xl\:-rt-r-my-3,.xl\:-rt-r-my-4,.xl\:-rt-r-my-5,.xl\:-rt-r-my-6,.xl\:-rt-r-my-7,.xl\:-rt-r-my-8,.xl\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-my{--margin-top: var(--mt-xl);--margin-bottom: var(--mb-xl) }.xl\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xl\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xl\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xl\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xl\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xl\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xl\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xl\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xl\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xl\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xl\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-mt,.rt-r-mt-0,.rt-r-mt-1,.rt-r-mt-2,.rt-r-mt-3,.rt-r-mt-4,.rt-r-mt-5,.rt-r-mt-6,.rt-r-mt-7,.rt-r-mt-8,.rt-r-mt-9,.-rt-r-mt-1,.-rt-r-mt-2,.-rt-r-mt-3,.-rt-r-mt-4,.-rt-r-mt-5,.-rt-r-mt-6,.-rt-r-mt-7,.-rt-r-mt-8,.-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.rt-r-mt{--margin-top: var(--mt) }.rt-r-mt-0{--margin-top: 0px}.rt-r-mt-1{--margin-top: var(--space-1)}.rt-r-mt-2{--margin-top: var(--space-2)}.rt-r-mt-3{--margin-top: var(--space-3)}.rt-r-mt-4{--margin-top: var(--space-4)}.rt-r-mt-5{--margin-top: var(--space-5)}.rt-r-mt-6{--margin-top: var(--space-6)}.rt-r-mt-7{--margin-top: var(--space-7)}.rt-r-mt-8{--margin-top: var(--space-8)}.rt-r-mt-9{--margin-top: var(--space-9)}.-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mt,.xs\:rt-r-mt-0,.xs\:rt-r-mt-1,.xs\:rt-r-mt-2,.xs\:rt-r-mt-3,.xs\:rt-r-mt-4,.xs\:rt-r-mt-5,.xs\:rt-r-mt-6,.xs\:rt-r-mt-7,.xs\:rt-r-mt-8,.xs\:rt-r-mt-9,.xs\:-rt-r-mt-1,.xs\:-rt-r-mt-2,.xs\:-rt-r-mt-3,.xs\:-rt-r-mt-4,.xs\:-rt-r-mt-5,.xs\:-rt-r-mt-6,.xs\:-rt-r-mt-7,.xs\:-rt-r-mt-8,.xs\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xs\:rt-r-mt{--margin-top: var(--mt-xs) }.xs\:rt-r-mt-0{--margin-top: 0px}.xs\:rt-r-mt-1{--margin-top: var(--space-1)}.xs\:rt-r-mt-2{--margin-top: var(--space-2)}.xs\:rt-r-mt-3{--margin-top: var(--space-3)}.xs\:rt-r-mt-4{--margin-top: var(--space-4)}.xs\:rt-r-mt-5{--margin-top: var(--space-5)}.xs\:rt-r-mt-6{--margin-top: var(--space-6)}.xs\:rt-r-mt-7{--margin-top: var(--space-7)}.xs\:rt-r-mt-8{--margin-top: var(--space-8)}.xs\:rt-r-mt-9{--margin-top: var(--space-9)}.xs\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xs\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xs\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xs\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xs\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xs\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xs\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xs\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xs\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mt,.sm\:rt-r-mt-0,.sm\:rt-r-mt-1,.sm\:rt-r-mt-2,.sm\:rt-r-mt-3,.sm\:rt-r-mt-4,.sm\:rt-r-mt-5,.sm\:rt-r-mt-6,.sm\:rt-r-mt-7,.sm\:rt-r-mt-8,.sm\:rt-r-mt-9,.sm\:-rt-r-mt-1,.sm\:-rt-r-mt-2,.sm\:-rt-r-mt-3,.sm\:-rt-r-mt-4,.sm\:-rt-r-mt-5,.sm\:-rt-r-mt-6,.sm\:-rt-r-mt-7,.sm\:-rt-r-mt-8,.sm\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.sm\:rt-r-mt{--margin-top: var(--mt-sm) }.sm\:rt-r-mt-0{--margin-top: 0px}.sm\:rt-r-mt-1{--margin-top: var(--space-1)}.sm\:rt-r-mt-2{--margin-top: var(--space-2)}.sm\:rt-r-mt-3{--margin-top: var(--space-3)}.sm\:rt-r-mt-4{--margin-top: var(--space-4)}.sm\:rt-r-mt-5{--margin-top: var(--space-5)}.sm\:rt-r-mt-6{--margin-top: var(--space-6)}.sm\:rt-r-mt-7{--margin-top: var(--space-7)}.sm\:rt-r-mt-8{--margin-top: var(--space-8)}.sm\:rt-r-mt-9{--margin-top: var(--space-9)}.sm\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.sm\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.sm\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.sm\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.sm\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.sm\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.sm\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.sm\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.sm\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mt,.md\:rt-r-mt-0,.md\:rt-r-mt-1,.md\:rt-r-mt-2,.md\:rt-r-mt-3,.md\:rt-r-mt-4,.md\:rt-r-mt-5,.md\:rt-r-mt-6,.md\:rt-r-mt-7,.md\:rt-r-mt-8,.md\:rt-r-mt-9,.md\:-rt-r-mt-1,.md\:-rt-r-mt-2,.md\:-rt-r-mt-3,.md\:-rt-r-mt-4,.md\:-rt-r-mt-5,.md\:-rt-r-mt-6,.md\:-rt-r-mt-7,.md\:-rt-r-mt-8,.md\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.md\:rt-r-mt{--margin-top: var(--mt-md) }.md\:rt-r-mt-0{--margin-top: 0px}.md\:rt-r-mt-1{--margin-top: var(--space-1)}.md\:rt-r-mt-2{--margin-top: var(--space-2)}.md\:rt-r-mt-3{--margin-top: var(--space-3)}.md\:rt-r-mt-4{--margin-top: var(--space-4)}.md\:rt-r-mt-5{--margin-top: var(--space-5)}.md\:rt-r-mt-6{--margin-top: var(--space-6)}.md\:rt-r-mt-7{--margin-top: var(--space-7)}.md\:rt-r-mt-8{--margin-top: var(--space-8)}.md\:rt-r-mt-9{--margin-top: var(--space-9)}.md\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.md\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.md\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.md\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.md\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.md\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.md\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.md\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.md\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mt,.lg\:rt-r-mt-0,.lg\:rt-r-mt-1,.lg\:rt-r-mt-2,.lg\:rt-r-mt-3,.lg\:rt-r-mt-4,.lg\:rt-r-mt-5,.lg\:rt-r-mt-6,.lg\:rt-r-mt-7,.lg\:rt-r-mt-8,.lg\:rt-r-mt-9,.lg\:-rt-r-mt-1,.lg\:-rt-r-mt-2,.lg\:-rt-r-mt-3,.lg\:-rt-r-mt-4,.lg\:-rt-r-mt-5,.lg\:-rt-r-mt-6,.lg\:-rt-r-mt-7,.lg\:-rt-r-mt-8,.lg\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.lg\:rt-r-mt{--margin-top: var(--mt-lg) }.lg\:rt-r-mt-0{--margin-top: 0px}.lg\:rt-r-mt-1{--margin-top: var(--space-1)}.lg\:rt-r-mt-2{--margin-top: var(--space-2)}.lg\:rt-r-mt-3{--margin-top: var(--space-3)}.lg\:rt-r-mt-4{--margin-top: var(--space-4)}.lg\:rt-r-mt-5{--margin-top: var(--space-5)}.lg\:rt-r-mt-6{--margin-top: var(--space-6)}.lg\:rt-r-mt-7{--margin-top: var(--space-7)}.lg\:rt-r-mt-8{--margin-top: var(--space-8)}.lg\:rt-r-mt-9{--margin-top: var(--space-9)}.lg\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.lg\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.lg\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.lg\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.lg\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.lg\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.lg\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.lg\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.lg\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mt,.xl\:rt-r-mt-0,.xl\:rt-r-mt-1,.xl\:rt-r-mt-2,.xl\:rt-r-mt-3,.xl\:rt-r-mt-4,.xl\:rt-r-mt-5,.xl\:rt-r-mt-6,.xl\:rt-r-mt-7,.xl\:rt-r-mt-8,.xl\:rt-r-mt-9,.xl\:-rt-r-mt-1,.xl\:-rt-r-mt-2,.xl\:-rt-r-mt-3,.xl\:-rt-r-mt-4,.xl\:-rt-r-mt-5,.xl\:-rt-r-mt-6,.xl\:-rt-r-mt-7,.xl\:-rt-r-mt-8,.xl\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xl\:rt-r-mt{--margin-top: var(--mt-xl) }.xl\:rt-r-mt-0{--margin-top: 0px}.xl\:rt-r-mt-1{--margin-top: var(--space-1)}.xl\:rt-r-mt-2{--margin-top: var(--space-2)}.xl\:rt-r-mt-3{--margin-top: var(--space-3)}.xl\:rt-r-mt-4{--margin-top: var(--space-4)}.xl\:rt-r-mt-5{--margin-top: var(--space-5)}.xl\:rt-r-mt-6{--margin-top: var(--space-6)}.xl\:rt-r-mt-7{--margin-top: var(--space-7)}.xl\:rt-r-mt-8{--margin-top: var(--space-8)}.xl\:rt-r-mt-9{--margin-top: var(--space-9)}.xl\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xl\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xl\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xl\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xl\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xl\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xl\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xl\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xl\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}.rt-r-mr,.rt-r-mr-0,.rt-r-mr-1,.rt-r-mr-2,.rt-r-mr-3,.rt-r-mr-4,.rt-r-mr-5,.rt-r-mr-6,.rt-r-mr-7,.rt-r-mr-8,.rt-r-mr-9,.-rt-r-mr-1,.-rt-r-mr-2,.-rt-r-mr-3,.-rt-r-mr-4,.-rt-r-mr-5,.-rt-r-mr-6,.-rt-r-mr-7,.-rt-r-mr-8,.-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mr{--margin-right: var(--mr) }.rt-r-mr-0{--margin-right: 0px}.rt-r-mr-1{--margin-right: var(--space-1)}.rt-r-mr-2{--margin-right: var(--space-2)}.rt-r-mr-3{--margin-right: var(--space-3)}.rt-r-mr-4{--margin-right: var(--space-4)}.rt-r-mr-5{--margin-right: var(--space-5)}.rt-r-mr-6{--margin-right: var(--space-6)}.rt-r-mr-7{--margin-right: var(--space-7)}.rt-r-mr-8{--margin-right: var(--space-8)}.rt-r-mr-9{--margin-right: var(--space-9)}.-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mr,.xs\:rt-r-mr-0,.xs\:rt-r-mr-1,.xs\:rt-r-mr-2,.xs\:rt-r-mr-3,.xs\:rt-r-mr-4,.xs\:rt-r-mr-5,.xs\:rt-r-mr-6,.xs\:rt-r-mr-7,.xs\:rt-r-mr-8,.xs\:rt-r-mr-9,.xs\:-rt-r-mr-1,.xs\:-rt-r-mr-2,.xs\:-rt-r-mr-3,.xs\:-rt-r-mr-4,.xs\:-rt-r-mr-5,.xs\:-rt-r-mr-6,.xs\:-rt-r-mr-7,.xs\:-rt-r-mr-8,.xs\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mr{--margin-right: var(--mr-xs) }.xs\:rt-r-mr-0{--margin-right: 0px}.xs\:rt-r-mr-1{--margin-right: var(--space-1)}.xs\:rt-r-mr-2{--margin-right: var(--space-2)}.xs\:rt-r-mr-3{--margin-right: var(--space-3)}.xs\:rt-r-mr-4{--margin-right: var(--space-4)}.xs\:rt-r-mr-5{--margin-right: var(--space-5)}.xs\:rt-r-mr-6{--margin-right: var(--space-6)}.xs\:rt-r-mr-7{--margin-right: var(--space-7)}.xs\:rt-r-mr-8{--margin-right: var(--space-8)}.xs\:rt-r-mr-9{--margin-right: var(--space-9)}.xs\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mr,.sm\:rt-r-mr-0,.sm\:rt-r-mr-1,.sm\:rt-r-mr-2,.sm\:rt-r-mr-3,.sm\:rt-r-mr-4,.sm\:rt-r-mr-5,.sm\:rt-r-mr-6,.sm\:rt-r-mr-7,.sm\:rt-r-mr-8,.sm\:rt-r-mr-9,.sm\:-rt-r-mr-1,.sm\:-rt-r-mr-2,.sm\:-rt-r-mr-3,.sm\:-rt-r-mr-4,.sm\:-rt-r-mr-5,.sm\:-rt-r-mr-6,.sm\:-rt-r-mr-7,.sm\:-rt-r-mr-8,.sm\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mr{--margin-right: var(--mr-sm) }.sm\:rt-r-mr-0{--margin-right: 0px}.sm\:rt-r-mr-1{--margin-right: var(--space-1)}.sm\:rt-r-mr-2{--margin-right: var(--space-2)}.sm\:rt-r-mr-3{--margin-right: var(--space-3)}.sm\:rt-r-mr-4{--margin-right: var(--space-4)}.sm\:rt-r-mr-5{--margin-right: var(--space-5)}.sm\:rt-r-mr-6{--margin-right: var(--space-6)}.sm\:rt-r-mr-7{--margin-right: var(--space-7)}.sm\:rt-r-mr-8{--margin-right: var(--space-8)}.sm\:rt-r-mr-9{--margin-right: var(--space-9)}.sm\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mr,.md\:rt-r-mr-0,.md\:rt-r-mr-1,.md\:rt-r-mr-2,.md\:rt-r-mr-3,.md\:rt-r-mr-4,.md\:rt-r-mr-5,.md\:rt-r-mr-6,.md\:rt-r-mr-7,.md\:rt-r-mr-8,.md\:rt-r-mr-9,.md\:-rt-r-mr-1,.md\:-rt-r-mr-2,.md\:-rt-r-mr-3,.md\:-rt-r-mr-4,.md\:-rt-r-mr-5,.md\:-rt-r-mr-6,.md\:-rt-r-mr-7,.md\:-rt-r-mr-8,.md\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mr{--margin-right: var(--mr-md) }.md\:rt-r-mr-0{--margin-right: 0px}.md\:rt-r-mr-1{--margin-right: var(--space-1)}.md\:rt-r-mr-2{--margin-right: var(--space-2)}.md\:rt-r-mr-3{--margin-right: var(--space-3)}.md\:rt-r-mr-4{--margin-right: var(--space-4)}.md\:rt-r-mr-5{--margin-right: var(--space-5)}.md\:rt-r-mr-6{--margin-right: var(--space-6)}.md\:rt-r-mr-7{--margin-right: var(--space-7)}.md\:rt-r-mr-8{--margin-right: var(--space-8)}.md\:rt-r-mr-9{--margin-right: var(--space-9)}.md\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mr,.lg\:rt-r-mr-0,.lg\:rt-r-mr-1,.lg\:rt-r-mr-2,.lg\:rt-r-mr-3,.lg\:rt-r-mr-4,.lg\:rt-r-mr-5,.lg\:rt-r-mr-6,.lg\:rt-r-mr-7,.lg\:rt-r-mr-8,.lg\:rt-r-mr-9,.lg\:-rt-r-mr-1,.lg\:-rt-r-mr-2,.lg\:-rt-r-mr-3,.lg\:-rt-r-mr-4,.lg\:-rt-r-mr-5,.lg\:-rt-r-mr-6,.lg\:-rt-r-mr-7,.lg\:-rt-r-mr-8,.lg\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mr{--margin-right: var(--mr-lg) }.lg\:rt-r-mr-0{--margin-right: 0px}.lg\:rt-r-mr-1{--margin-right: var(--space-1)}.lg\:rt-r-mr-2{--margin-right: var(--space-2)}.lg\:rt-r-mr-3{--margin-right: var(--space-3)}.lg\:rt-r-mr-4{--margin-right: var(--space-4)}.lg\:rt-r-mr-5{--margin-right: var(--space-5)}.lg\:rt-r-mr-6{--margin-right: var(--space-6)}.lg\:rt-r-mr-7{--margin-right: var(--space-7)}.lg\:rt-r-mr-8{--margin-right: var(--space-8)}.lg\:rt-r-mr-9{--margin-right: var(--space-9)}.lg\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mr,.xl\:rt-r-mr-0,.xl\:rt-r-mr-1,.xl\:rt-r-mr-2,.xl\:rt-r-mr-3,.xl\:rt-r-mr-4,.xl\:rt-r-mr-5,.xl\:rt-r-mr-6,.xl\:rt-r-mr-7,.xl\:rt-r-mr-8,.xl\:rt-r-mr-9,.xl\:-rt-r-mr-1,.xl\:-rt-r-mr-2,.xl\:-rt-r-mr-3,.xl\:-rt-r-mr-4,.xl\:-rt-r-mr-5,.xl\:-rt-r-mr-6,.xl\:-rt-r-mr-7,.xl\:-rt-r-mr-8,.xl\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mr{--margin-right: var(--mr-xl) }.xl\:rt-r-mr-0{--margin-right: 0px}.xl\:rt-r-mr-1{--margin-right: var(--space-1)}.xl\:rt-r-mr-2{--margin-right: var(--space-2)}.xl\:rt-r-mr-3{--margin-right: var(--space-3)}.xl\:rt-r-mr-4{--margin-right: var(--space-4)}.xl\:rt-r-mr-5{--margin-right: var(--space-5)}.xl\:rt-r-mr-6{--margin-right: var(--space-6)}.xl\:rt-r-mr-7{--margin-right: var(--space-7)}.xl\:rt-r-mr-8{--margin-right: var(--space-8)}.xl\:rt-r-mr-9{--margin-right: var(--space-9)}.xl\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}.rt-r-mb,.rt-r-mb-0,.rt-r-mb-1,.rt-r-mb-2,.rt-r-mb-3,.rt-r-mb-4,.rt-r-mb-5,.rt-r-mb-6,.rt-r-mb-7,.rt-r-mb-8,.rt-r-mb-9,.-rt-r-mb-1,.-rt-r-mb-2,.-rt-r-mb-3,.-rt-r-mb-4,.-rt-r-mb-5,.-rt-r-mb-6,.-rt-r-mb-7,.-rt-r-mb-8,.-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-mb{--margin-bottom: var(--mb) }.rt-r-mb-0{--margin-bottom: 0px}.rt-r-mb-1{--margin-bottom: var(--space-1)}.rt-r-mb-2{--margin-bottom: var(--space-2)}.rt-r-mb-3{--margin-bottom: var(--space-3)}.rt-r-mb-4{--margin-bottom: var(--space-4)}.rt-r-mb-5{--margin-bottom: var(--space-5)}.rt-r-mb-6{--margin-bottom: var(--space-6)}.rt-r-mb-7{--margin-bottom: var(--space-7)}.rt-r-mb-8{--margin-bottom: var(--space-8)}.rt-r-mb-9{--margin-bottom: var(--space-9)}.-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mb,.xs\:rt-r-mb-0,.xs\:rt-r-mb-1,.xs\:rt-r-mb-2,.xs\:rt-r-mb-3,.xs\:rt-r-mb-4,.xs\:rt-r-mb-5,.xs\:rt-r-mb-6,.xs\:rt-r-mb-7,.xs\:rt-r-mb-8,.xs\:rt-r-mb-9,.xs\:-rt-r-mb-1,.xs\:-rt-r-mb-2,.xs\:-rt-r-mb-3,.xs\:-rt-r-mb-4,.xs\:-rt-r-mb-5,.xs\:-rt-r-mb-6,.xs\:-rt-r-mb-7,.xs\:-rt-r-mb-8,.xs\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-mb{--margin-bottom: var(--mb-xs) }.xs\:rt-r-mb-0{--margin-bottom: 0px}.xs\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xs\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xs\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xs\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xs\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xs\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xs\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xs\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xs\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xs\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mb,.sm\:rt-r-mb-0,.sm\:rt-r-mb-1,.sm\:rt-r-mb-2,.sm\:rt-r-mb-3,.sm\:rt-r-mb-4,.sm\:rt-r-mb-5,.sm\:rt-r-mb-6,.sm\:rt-r-mb-7,.sm\:rt-r-mb-8,.sm\:rt-r-mb-9,.sm\:-rt-r-mb-1,.sm\:-rt-r-mb-2,.sm\:-rt-r-mb-3,.sm\:-rt-r-mb-4,.sm\:-rt-r-mb-5,.sm\:-rt-r-mb-6,.sm\:-rt-r-mb-7,.sm\:-rt-r-mb-8,.sm\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-mb{--margin-bottom: var(--mb-sm) }.sm\:rt-r-mb-0{--margin-bottom: 0px}.sm\:rt-r-mb-1{--margin-bottom: var(--space-1)}.sm\:rt-r-mb-2{--margin-bottom: var(--space-2)}.sm\:rt-r-mb-3{--margin-bottom: var(--space-3)}.sm\:rt-r-mb-4{--margin-bottom: var(--space-4)}.sm\:rt-r-mb-5{--margin-bottom: var(--space-5)}.sm\:rt-r-mb-6{--margin-bottom: var(--space-6)}.sm\:rt-r-mb-7{--margin-bottom: var(--space-7)}.sm\:rt-r-mb-8{--margin-bottom: var(--space-8)}.sm\:rt-r-mb-9{--margin-bottom: var(--space-9)}.sm\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mb,.md\:rt-r-mb-0,.md\:rt-r-mb-1,.md\:rt-r-mb-2,.md\:rt-r-mb-3,.md\:rt-r-mb-4,.md\:rt-r-mb-5,.md\:rt-r-mb-6,.md\:rt-r-mb-7,.md\:rt-r-mb-8,.md\:rt-r-mb-9,.md\:-rt-r-mb-1,.md\:-rt-r-mb-2,.md\:-rt-r-mb-3,.md\:-rt-r-mb-4,.md\:-rt-r-mb-5,.md\:-rt-r-mb-6,.md\:-rt-r-mb-7,.md\:-rt-r-mb-8,.md\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-mb{--margin-bottom: var(--mb-md) }.md\:rt-r-mb-0{--margin-bottom: 0px}.md\:rt-r-mb-1{--margin-bottom: var(--space-1)}.md\:rt-r-mb-2{--margin-bottom: var(--space-2)}.md\:rt-r-mb-3{--margin-bottom: var(--space-3)}.md\:rt-r-mb-4{--margin-bottom: var(--space-4)}.md\:rt-r-mb-5{--margin-bottom: var(--space-5)}.md\:rt-r-mb-6{--margin-bottom: var(--space-6)}.md\:rt-r-mb-7{--margin-bottom: var(--space-7)}.md\:rt-r-mb-8{--margin-bottom: var(--space-8)}.md\:rt-r-mb-9{--margin-bottom: var(--space-9)}.md\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mb,.lg\:rt-r-mb-0,.lg\:rt-r-mb-1,.lg\:rt-r-mb-2,.lg\:rt-r-mb-3,.lg\:rt-r-mb-4,.lg\:rt-r-mb-5,.lg\:rt-r-mb-6,.lg\:rt-r-mb-7,.lg\:rt-r-mb-8,.lg\:rt-r-mb-9,.lg\:-rt-r-mb-1,.lg\:-rt-r-mb-2,.lg\:-rt-r-mb-3,.lg\:-rt-r-mb-4,.lg\:-rt-r-mb-5,.lg\:-rt-r-mb-6,.lg\:-rt-r-mb-7,.lg\:-rt-r-mb-8,.lg\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-mb{--margin-bottom: var(--mb-lg) }.lg\:rt-r-mb-0{--margin-bottom: 0px}.lg\:rt-r-mb-1{--margin-bottom: var(--space-1)}.lg\:rt-r-mb-2{--margin-bottom: var(--space-2)}.lg\:rt-r-mb-3{--margin-bottom: var(--space-3)}.lg\:rt-r-mb-4{--margin-bottom: var(--space-4)}.lg\:rt-r-mb-5{--margin-bottom: var(--space-5)}.lg\:rt-r-mb-6{--margin-bottom: var(--space-6)}.lg\:rt-r-mb-7{--margin-bottom: var(--space-7)}.lg\:rt-r-mb-8{--margin-bottom: var(--space-8)}.lg\:rt-r-mb-9{--margin-bottom: var(--space-9)}.lg\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mb,.xl\:rt-r-mb-0,.xl\:rt-r-mb-1,.xl\:rt-r-mb-2,.xl\:rt-r-mb-3,.xl\:rt-r-mb-4,.xl\:rt-r-mb-5,.xl\:rt-r-mb-6,.xl\:rt-r-mb-7,.xl\:rt-r-mb-8,.xl\:rt-r-mb-9,.xl\:-rt-r-mb-1,.xl\:-rt-r-mb-2,.xl\:-rt-r-mb-3,.xl\:-rt-r-mb-4,.xl\:-rt-r-mb-5,.xl\:-rt-r-mb-6,.xl\:-rt-r-mb-7,.xl\:-rt-r-mb-8,.xl\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-mb{--margin-bottom: var(--mb-xl) }.xl\:rt-r-mb-0{--margin-bottom: 0px}.xl\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xl\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xl\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xl\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xl\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xl\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xl\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xl\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xl\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xl\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-ml,.rt-r-ml-0,.rt-r-ml-1,.rt-r-ml-2,.rt-r-ml-3,.rt-r-ml-4,.rt-r-ml-5,.rt-r-ml-6,.rt-r-ml-7,.rt-r-ml-8,.rt-r-ml-9,.-rt-r-ml-1,.-rt-r-ml-2,.-rt-r-ml-3,.-rt-r-ml-4,.-rt-r-ml-5,.-rt-r-ml-6,.-rt-r-ml-7,.-rt-r-ml-8,.-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-ml{--margin-left: var(--ml) }.rt-r-ml-0{--margin-left: 0px}.rt-r-ml-1{--margin-left: var(--space-1)}.rt-r-ml-2{--margin-left: var(--space-2)}.rt-r-ml-3{--margin-left: var(--space-3)}.rt-r-ml-4{--margin-left: var(--space-4)}.rt-r-ml-5{--margin-left: var(--space-5)}.rt-r-ml-6{--margin-left: var(--space-6)}.rt-r-ml-7{--margin-left: var(--space-7)}.rt-r-ml-8{--margin-left: var(--space-8)}.rt-r-ml-9{--margin-left: var(--space-9)}.-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-ml,.xs\:rt-r-ml-0,.xs\:rt-r-ml-1,.xs\:rt-r-ml-2,.xs\:rt-r-ml-3,.xs\:rt-r-ml-4,.xs\:rt-r-ml-5,.xs\:rt-r-ml-6,.xs\:rt-r-ml-7,.xs\:rt-r-ml-8,.xs\:rt-r-ml-9,.xs\:-rt-r-ml-1,.xs\:-rt-r-ml-2,.xs\:-rt-r-ml-3,.xs\:-rt-r-ml-4,.xs\:-rt-r-ml-5,.xs\:-rt-r-ml-6,.xs\:-rt-r-ml-7,.xs\:-rt-r-ml-8,.xs\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-ml{--margin-left: var(--ml-xs) }.xs\:rt-r-ml-0{--margin-left: 0px}.xs\:rt-r-ml-1{--margin-left: var(--space-1)}.xs\:rt-r-ml-2{--margin-left: var(--space-2)}.xs\:rt-r-ml-3{--margin-left: var(--space-3)}.xs\:rt-r-ml-4{--margin-left: var(--space-4)}.xs\:rt-r-ml-5{--margin-left: var(--space-5)}.xs\:rt-r-ml-6{--margin-left: var(--space-6)}.xs\:rt-r-ml-7{--margin-left: var(--space-7)}.xs\:rt-r-ml-8{--margin-left: var(--space-8)}.xs\:rt-r-ml-9{--margin-left: var(--space-9)}.xs\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-ml,.sm\:rt-r-ml-0,.sm\:rt-r-ml-1,.sm\:rt-r-ml-2,.sm\:rt-r-ml-3,.sm\:rt-r-ml-4,.sm\:rt-r-ml-5,.sm\:rt-r-ml-6,.sm\:rt-r-ml-7,.sm\:rt-r-ml-8,.sm\:rt-r-ml-9,.sm\:-rt-r-ml-1,.sm\:-rt-r-ml-2,.sm\:-rt-r-ml-3,.sm\:-rt-r-ml-4,.sm\:-rt-r-ml-5,.sm\:-rt-r-ml-6,.sm\:-rt-r-ml-7,.sm\:-rt-r-ml-8,.sm\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-ml{--margin-left: var(--ml-sm) }.sm\:rt-r-ml-0{--margin-left: 0px}.sm\:rt-r-ml-1{--margin-left: var(--space-1)}.sm\:rt-r-ml-2{--margin-left: var(--space-2)}.sm\:rt-r-ml-3{--margin-left: var(--space-3)}.sm\:rt-r-ml-4{--margin-left: var(--space-4)}.sm\:rt-r-ml-5{--margin-left: var(--space-5)}.sm\:rt-r-ml-6{--margin-left: var(--space-6)}.sm\:rt-r-ml-7{--margin-left: var(--space-7)}.sm\:rt-r-ml-8{--margin-left: var(--space-8)}.sm\:rt-r-ml-9{--margin-left: var(--space-9)}.sm\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-ml,.md\:rt-r-ml-0,.md\:rt-r-ml-1,.md\:rt-r-ml-2,.md\:rt-r-ml-3,.md\:rt-r-ml-4,.md\:rt-r-ml-5,.md\:rt-r-ml-6,.md\:rt-r-ml-7,.md\:rt-r-ml-8,.md\:rt-r-ml-9,.md\:-rt-r-ml-1,.md\:-rt-r-ml-2,.md\:-rt-r-ml-3,.md\:-rt-r-ml-4,.md\:-rt-r-ml-5,.md\:-rt-r-ml-6,.md\:-rt-r-ml-7,.md\:-rt-r-ml-8,.md\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-ml{--margin-left: var(--ml-md) }.md\:rt-r-ml-0{--margin-left: 0px}.md\:rt-r-ml-1{--margin-left: var(--space-1)}.md\:rt-r-ml-2{--margin-left: var(--space-2)}.md\:rt-r-ml-3{--margin-left: var(--space-3)}.md\:rt-r-ml-4{--margin-left: var(--space-4)}.md\:rt-r-ml-5{--margin-left: var(--space-5)}.md\:rt-r-ml-6{--margin-left: var(--space-6)}.md\:rt-r-ml-7{--margin-left: var(--space-7)}.md\:rt-r-ml-8{--margin-left: var(--space-8)}.md\:rt-r-ml-9{--margin-left: var(--space-9)}.md\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-ml,.lg\:rt-r-ml-0,.lg\:rt-r-ml-1,.lg\:rt-r-ml-2,.lg\:rt-r-ml-3,.lg\:rt-r-ml-4,.lg\:rt-r-ml-5,.lg\:rt-r-ml-6,.lg\:rt-r-ml-7,.lg\:rt-r-ml-8,.lg\:rt-r-ml-9,.lg\:-rt-r-ml-1,.lg\:-rt-r-ml-2,.lg\:-rt-r-ml-3,.lg\:-rt-r-ml-4,.lg\:-rt-r-ml-5,.lg\:-rt-r-ml-6,.lg\:-rt-r-ml-7,.lg\:-rt-r-ml-8,.lg\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-ml{--margin-left: var(--ml-lg) }.lg\:rt-r-ml-0{--margin-left: 0px}.lg\:rt-r-ml-1{--margin-left: var(--space-1)}.lg\:rt-r-ml-2{--margin-left: var(--space-2)}.lg\:rt-r-ml-3{--margin-left: var(--space-3)}.lg\:rt-r-ml-4{--margin-left: var(--space-4)}.lg\:rt-r-ml-5{--margin-left: var(--space-5)}.lg\:rt-r-ml-6{--margin-left: var(--space-6)}.lg\:rt-r-ml-7{--margin-left: var(--space-7)}.lg\:rt-r-ml-8{--margin-left: var(--space-8)}.lg\:rt-r-ml-9{--margin-left: var(--space-9)}.lg\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-ml,.xl\:rt-r-ml-0,.xl\:rt-r-ml-1,.xl\:rt-r-ml-2,.xl\:rt-r-ml-3,.xl\:rt-r-ml-4,.xl\:rt-r-ml-5,.xl\:rt-r-ml-6,.xl\:rt-r-ml-7,.xl\:rt-r-ml-8,.xl\:rt-r-ml-9,.xl\:-rt-r-ml-1,.xl\:-rt-r-ml-2,.xl\:-rt-r-ml-3,.xl\:-rt-r-ml-4,.xl\:-rt-r-ml-5,.xl\:-rt-r-ml-6,.xl\:-rt-r-ml-7,.xl\:-rt-r-ml-8,.xl\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-ml{--margin-left: var(--ml-xl) }.xl\:rt-r-ml-0{--margin-left: 0px}.xl\:rt-r-ml-1{--margin-left: var(--space-1)}.xl\:rt-r-ml-2{--margin-left: var(--space-2)}.xl\:rt-r-ml-3{--margin-left: var(--space-3)}.xl\:rt-r-ml-4{--margin-left: var(--space-4)}.xl\:rt-r-ml-5{--margin-left: var(--space-5)}.xl\:rt-r-ml-6{--margin-left: var(--space-6)}.xl\:rt-r-ml-7{--margin-left: var(--space-7)}.xl\:rt-r-ml-8{--margin-left: var(--space-8)}.xl\:rt-r-ml-9{--margin-left: var(--space-9)}.xl\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}.rt-r-overflow-visible{overflow:visible}.rt-r-overflow-hidden{overflow:hidden}.rt-r-overflow-clip{overflow:clip}.rt-r-overflow-scroll{overflow:scroll}.rt-r-overflow-auto{overflow:auto}.rt-r-ox-visible{overflow-x:visible}.rt-r-ox-hidden{overflow-x:hidden}.rt-r-ox-clip{overflow-x:clip}.rt-r-ox-scroll{overflow-x:scroll}.rt-r-ox-auto{overflow-x:auto}.rt-r-oy-visible{overflow-y:visible}.rt-r-oy-hidden{overflow-y:hidden}.rt-r-oy-clip{overflow-y:clip}.rt-r-oy-scroll{overflow-y:scroll}.rt-r-oy-auto{overflow-y:auto}@media (min-width: 520px){.xs\:rt-r-overflow-visible{overflow:visible}.xs\:rt-r-overflow-hidden{overflow:hidden}.xs\:rt-r-overflow-clip{overflow:clip}.xs\:rt-r-overflow-scroll{overflow:scroll}.xs\:rt-r-overflow-auto{overflow:auto}.xs\:rt-r-ox-visible{overflow-x:visible}.xs\:rt-r-ox-hidden{overflow-x:hidden}.xs\:rt-r-ox-clip{overflow-x:clip}.xs\:rt-r-ox-scroll{overflow-x:scroll}.xs\:rt-r-ox-auto{overflow-x:auto}.xs\:rt-r-oy-visible{overflow-y:visible}.xs\:rt-r-oy-hidden{overflow-y:hidden}.xs\:rt-r-oy-clip{overflow-y:clip}.xs\:rt-r-oy-scroll{overflow-y:scroll}.xs\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 768px){.sm\:rt-r-overflow-visible{overflow:visible}.sm\:rt-r-overflow-hidden{overflow:hidden}.sm\:rt-r-overflow-clip{overflow:clip}.sm\:rt-r-overflow-scroll{overflow:scroll}.sm\:rt-r-overflow-auto{overflow:auto}.sm\:rt-r-ox-visible{overflow-x:visible}.sm\:rt-r-ox-hidden{overflow-x:hidden}.sm\:rt-r-ox-clip{overflow-x:clip}.sm\:rt-r-ox-scroll{overflow-x:scroll}.sm\:rt-r-ox-auto{overflow-x:auto}.sm\:rt-r-oy-visible{overflow-y:visible}.sm\:rt-r-oy-hidden{overflow-y:hidden}.sm\:rt-r-oy-clip{overflow-y:clip}.sm\:rt-r-oy-scroll{overflow-y:scroll}.sm\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1024px){.md\:rt-r-overflow-visible{overflow:visible}.md\:rt-r-overflow-hidden{overflow:hidden}.md\:rt-r-overflow-clip{overflow:clip}.md\:rt-r-overflow-scroll{overflow:scroll}.md\:rt-r-overflow-auto{overflow:auto}.md\:rt-r-ox-visible{overflow-x:visible}.md\:rt-r-ox-hidden{overflow-x:hidden}.md\:rt-r-ox-clip{overflow-x:clip}.md\:rt-r-ox-scroll{overflow-x:scroll}.md\:rt-r-ox-auto{overflow-x:auto}.md\:rt-r-oy-visible{overflow-y:visible}.md\:rt-r-oy-hidden{overflow-y:hidden}.md\:rt-r-oy-clip{overflow-y:clip}.md\:rt-r-oy-scroll{overflow-y:scroll}.md\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1280px){.lg\:rt-r-overflow-visible{overflow:visible}.lg\:rt-r-overflow-hidden{overflow:hidden}.lg\:rt-r-overflow-clip{overflow:clip}.lg\:rt-r-overflow-scroll{overflow:scroll}.lg\:rt-r-overflow-auto{overflow:auto}.lg\:rt-r-ox-visible{overflow-x:visible}.lg\:rt-r-ox-hidden{overflow-x:hidden}.lg\:rt-r-ox-clip{overflow-x:clip}.lg\:rt-r-ox-scroll{overflow-x:scroll}.lg\:rt-r-ox-auto{overflow-x:auto}.lg\:rt-r-oy-visible{overflow-y:visible}.lg\:rt-r-oy-hidden{overflow-y:hidden}.lg\:rt-r-oy-clip{overflow-y:clip}.lg\:rt-r-oy-scroll{overflow-y:scroll}.lg\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1640px){.xl\:rt-r-overflow-visible{overflow:visible}.xl\:rt-r-overflow-hidden{overflow:hidden}.xl\:rt-r-overflow-clip{overflow:clip}.xl\:rt-r-overflow-scroll{overflow:scroll}.xl\:rt-r-overflow-auto{overflow:auto}.xl\:rt-r-ox-visible{overflow-x:visible}.xl\:rt-r-ox-hidden{overflow-x:hidden}.xl\:rt-r-ox-clip{overflow-x:clip}.xl\:rt-r-ox-scroll{overflow-x:scroll}.xl\:rt-r-ox-auto{overflow-x:auto}.xl\:rt-r-oy-visible{overflow-y:visible}.xl\:rt-r-oy-hidden{overflow-y:hidden}.xl\:rt-r-oy-clip{overflow-y:clip}.xl\:rt-r-oy-scroll{overflow-y:scroll}.xl\:rt-r-oy-auto{overflow-y:auto}}.rt-r-p{padding:var(--p)}.rt-r-p-0{padding:0}.rt-r-p-1{padding:var(--space-1)}.rt-r-p-2{padding:var(--space-2)}.rt-r-p-3{padding:var(--space-3)}.rt-r-p-4{padding:var(--space-4)}.rt-r-p-5{padding:var(--space-5)}.rt-r-p-6{padding:var(--space-6)}.rt-r-p-7{padding:var(--space-7)}.rt-r-p-8{padding:var(--space-8)}.rt-r-p-9{padding:var(--space-9)}.rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-p{padding:var(--p-xs)}.xs\:rt-r-p-0{padding:0}.xs\:rt-r-p-1{padding:var(--space-1)}.xs\:rt-r-p-2{padding:var(--space-2)}.xs\:rt-r-p-3{padding:var(--space-3)}.xs\:rt-r-p-4{padding:var(--space-4)}.xs\:rt-r-p-5{padding:var(--space-5)}.xs\:rt-r-p-6{padding:var(--space-6)}.xs\:rt-r-p-7{padding:var(--space-7)}.xs\:rt-r-p-8{padding:var(--space-8)}.xs\:rt-r-p-9{padding:var(--space-9)}.xs\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-p{padding:var(--p-sm)}.sm\:rt-r-p-0{padding:0}.sm\:rt-r-p-1{padding:var(--space-1)}.sm\:rt-r-p-2{padding:var(--space-2)}.sm\:rt-r-p-3{padding:var(--space-3)}.sm\:rt-r-p-4{padding:var(--space-4)}.sm\:rt-r-p-5{padding:var(--space-5)}.sm\:rt-r-p-6{padding:var(--space-6)}.sm\:rt-r-p-7{padding:var(--space-7)}.sm\:rt-r-p-8{padding:var(--space-8)}.sm\:rt-r-p-9{padding:var(--space-9)}.sm\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-p{padding:var(--p-md)}.md\:rt-r-p-0{padding:0}.md\:rt-r-p-1{padding:var(--space-1)}.md\:rt-r-p-2{padding:var(--space-2)}.md\:rt-r-p-3{padding:var(--space-3)}.md\:rt-r-p-4{padding:var(--space-4)}.md\:rt-r-p-5{padding:var(--space-5)}.md\:rt-r-p-6{padding:var(--space-6)}.md\:rt-r-p-7{padding:var(--space-7)}.md\:rt-r-p-8{padding:var(--space-8)}.md\:rt-r-p-9{padding:var(--space-9)}.md\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-p{padding:var(--p-lg)}.lg\:rt-r-p-0{padding:0}.lg\:rt-r-p-1{padding:var(--space-1)}.lg\:rt-r-p-2{padding:var(--space-2)}.lg\:rt-r-p-3{padding:var(--space-3)}.lg\:rt-r-p-4{padding:var(--space-4)}.lg\:rt-r-p-5{padding:var(--space-5)}.lg\:rt-r-p-6{padding:var(--space-6)}.lg\:rt-r-p-7{padding:var(--space-7)}.lg\:rt-r-p-8{padding:var(--space-8)}.lg\:rt-r-p-9{padding:var(--space-9)}.lg\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-p{padding:var(--p-xl)}.xl\:rt-r-p-0{padding:0}.xl\:rt-r-p-1{padding:var(--space-1)}.xl\:rt-r-p-2{padding:var(--space-2)}.xl\:rt-r-p-3{padding:var(--space-3)}.xl\:rt-r-p-4{padding:var(--space-4)}.xl\:rt-r-p-5{padding:var(--space-5)}.xl\:rt-r-p-6{padding:var(--space-6)}.xl\:rt-r-p-7{padding:var(--space-7)}.xl\:rt-r-p-8{padding:var(--space-8)}.xl\:rt-r-p-9{padding:var(--space-9)}.xl\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}.rt-r-px{padding-left:var(--pl);padding-right:var(--pr)}.rt-r-px-0{padding-left:0;padding-right:0}.rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-px{padding-left:var(--pl-xs);padding-right:var(--pr-xs)}.xs\:rt-r-px-0{padding-left:0;padding-right:0}.xs\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xs\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xs\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xs\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xs\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xs\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xs\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xs\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xs\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xs\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-px{padding-left:var(--pl-sm);padding-right:var(--pr-sm)}.sm\:rt-r-px-0{padding-left:0;padding-right:0}.sm\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.sm\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.sm\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.sm\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.sm\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.sm\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.sm\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.sm\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.sm\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.sm\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-px{padding-left:var(--pl-md);padding-right:var(--pr-md)}.md\:rt-r-px-0{padding-left:0;padding-right:0}.md\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.md\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.md\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.md\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.md\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.md\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.md\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.md\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.md\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.md\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-px{padding-left:var(--pl-lg);padding-right:var(--pr-lg)}.lg\:rt-r-px-0{padding-left:0;padding-right:0}.lg\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.lg\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.lg\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.lg\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.lg\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.lg\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.lg\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.lg\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.lg\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.lg\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-px{padding-left:var(--pl-xl);padding-right:var(--pr-xl)}.xl\:rt-r-px-0{padding-left:0;padding-right:0}.xl\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xl\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xl\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xl\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xl\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xl\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xl\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xl\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xl\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xl\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}.rt-r-py{padding-top:var(--pt);padding-bottom:var(--pb)}.rt-r-py-0{padding-top:0;padding-bottom:0}.rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-py{padding-top:var(--pt-xs);padding-bottom:var(--pb-xs)}.xs\:rt-r-py-0{padding-top:0;padding-bottom:0}.xs\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xs\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xs\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xs\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xs\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xs\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xs\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xs\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xs\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xs\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-py{padding-top:var(--pt-sm);padding-bottom:var(--pb-sm)}.sm\:rt-r-py-0{padding-top:0;padding-bottom:0}.sm\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.sm\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.sm\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.sm\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.sm\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.sm\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.sm\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.sm\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.sm\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.sm\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-py{padding-top:var(--pt-md);padding-bottom:var(--pb-md)}.md\:rt-r-py-0{padding-top:0;padding-bottom:0}.md\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.md\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.md\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.md\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.md\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.md\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.md\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.md\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.md\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.md\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-py{padding-top:var(--pt-lg);padding-bottom:var(--pb-lg)}.lg\:rt-r-py-0{padding-top:0;padding-bottom:0}.lg\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.lg\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.lg\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.lg\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.lg\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.lg\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.lg\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.lg\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.lg\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.lg\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-py{padding-top:var(--pt-xl);padding-bottom:var(--pb-xl)}.xl\:rt-r-py-0{padding-top:0;padding-bottom:0}.xl\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xl\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xl\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xl\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xl\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xl\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xl\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xl\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xl\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xl\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}.rt-r-pt{padding-top:var(--pt)}.rt-r-pt-0{padding-top:0}.rt-r-pt-1{padding-top:var(--space-1)}.rt-r-pt-2{padding-top:var(--space-2)}.rt-r-pt-3{padding-top:var(--space-3)}.rt-r-pt-4{padding-top:var(--space-4)}.rt-r-pt-5{padding-top:var(--space-5)}.rt-r-pt-6{padding-top:var(--space-6)}.rt-r-pt-7{padding-top:var(--space-7)}.rt-r-pt-8{padding-top:var(--space-8)}.rt-r-pt-9{padding-top:var(--space-9)}.rt-r-pt-inset{padding-top:var(--inset-padding-top)}@media (min-width: 520px){.xs\:rt-r-pt{padding-top:var(--pt-xs)}.xs\:rt-r-pt-0{padding-top:0}.xs\:rt-r-pt-1{padding-top:var(--space-1)}.xs\:rt-r-pt-2{padding-top:var(--space-2)}.xs\:rt-r-pt-3{padding-top:var(--space-3)}.xs\:rt-r-pt-4{padding-top:var(--space-4)}.xs\:rt-r-pt-5{padding-top:var(--space-5)}.xs\:rt-r-pt-6{padding-top:var(--space-6)}.xs\:rt-r-pt-7{padding-top:var(--space-7)}.xs\:rt-r-pt-8{padding-top:var(--space-8)}.xs\:rt-r-pt-9{padding-top:var(--space-9)}.xs\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 768px){.sm\:rt-r-pt{padding-top:var(--pt-sm)}.sm\:rt-r-pt-0{padding-top:0}.sm\:rt-r-pt-1{padding-top:var(--space-1)}.sm\:rt-r-pt-2{padding-top:var(--space-2)}.sm\:rt-r-pt-3{padding-top:var(--space-3)}.sm\:rt-r-pt-4{padding-top:var(--space-4)}.sm\:rt-r-pt-5{padding-top:var(--space-5)}.sm\:rt-r-pt-6{padding-top:var(--space-6)}.sm\:rt-r-pt-7{padding-top:var(--space-7)}.sm\:rt-r-pt-8{padding-top:var(--space-8)}.sm\:rt-r-pt-9{padding-top:var(--space-9)}.sm\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1024px){.md\:rt-r-pt{padding-top:var(--pt-md)}.md\:rt-r-pt-0{padding-top:0}.md\:rt-r-pt-1{padding-top:var(--space-1)}.md\:rt-r-pt-2{padding-top:var(--space-2)}.md\:rt-r-pt-3{padding-top:var(--space-3)}.md\:rt-r-pt-4{padding-top:var(--space-4)}.md\:rt-r-pt-5{padding-top:var(--space-5)}.md\:rt-r-pt-6{padding-top:var(--space-6)}.md\:rt-r-pt-7{padding-top:var(--space-7)}.md\:rt-r-pt-8{padding-top:var(--space-8)}.md\:rt-r-pt-9{padding-top:var(--space-9)}.md\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1280px){.lg\:rt-r-pt{padding-top:var(--pt-lg)}.lg\:rt-r-pt-0{padding-top:0}.lg\:rt-r-pt-1{padding-top:var(--space-1)}.lg\:rt-r-pt-2{padding-top:var(--space-2)}.lg\:rt-r-pt-3{padding-top:var(--space-3)}.lg\:rt-r-pt-4{padding-top:var(--space-4)}.lg\:rt-r-pt-5{padding-top:var(--space-5)}.lg\:rt-r-pt-6{padding-top:var(--space-6)}.lg\:rt-r-pt-7{padding-top:var(--space-7)}.lg\:rt-r-pt-8{padding-top:var(--space-8)}.lg\:rt-r-pt-9{padding-top:var(--space-9)}.lg\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1640px){.xl\:rt-r-pt{padding-top:var(--pt-xl)}.xl\:rt-r-pt-0{padding-top:0}.xl\:rt-r-pt-1{padding-top:var(--space-1)}.xl\:rt-r-pt-2{padding-top:var(--space-2)}.xl\:rt-r-pt-3{padding-top:var(--space-3)}.xl\:rt-r-pt-4{padding-top:var(--space-4)}.xl\:rt-r-pt-5{padding-top:var(--space-5)}.xl\:rt-r-pt-6{padding-top:var(--space-6)}.xl\:rt-r-pt-7{padding-top:var(--space-7)}.xl\:rt-r-pt-8{padding-top:var(--space-8)}.xl\:rt-r-pt-9{padding-top:var(--space-9)}.xl\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}.rt-r-pr{padding-right:var(--pr)}.rt-r-pr-0{padding-right:0}.rt-r-pr-1{padding-right:var(--space-1)}.rt-r-pr-2{padding-right:var(--space-2)}.rt-r-pr-3{padding-right:var(--space-3)}.rt-r-pr-4{padding-right:var(--space-4)}.rt-r-pr-5{padding-right:var(--space-5)}.rt-r-pr-6{padding-right:var(--space-6)}.rt-r-pr-7{padding-right:var(--space-7)}.rt-r-pr-8{padding-right:var(--space-8)}.rt-r-pr-9{padding-right:var(--space-9)}.rt-r-pr-inset{padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-pr{padding-right:var(--pr-xs)}.xs\:rt-r-pr-0{padding-right:0}.xs\:rt-r-pr-1{padding-right:var(--space-1)}.xs\:rt-r-pr-2{padding-right:var(--space-2)}.xs\:rt-r-pr-3{padding-right:var(--space-3)}.xs\:rt-r-pr-4{padding-right:var(--space-4)}.xs\:rt-r-pr-5{padding-right:var(--space-5)}.xs\:rt-r-pr-6{padding-right:var(--space-6)}.xs\:rt-r-pr-7{padding-right:var(--space-7)}.xs\:rt-r-pr-8{padding-right:var(--space-8)}.xs\:rt-r-pr-9{padding-right:var(--space-9)}.xs\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-pr{padding-right:var(--pr-sm)}.sm\:rt-r-pr-0{padding-right:0}.sm\:rt-r-pr-1{padding-right:var(--space-1)}.sm\:rt-r-pr-2{padding-right:var(--space-2)}.sm\:rt-r-pr-3{padding-right:var(--space-3)}.sm\:rt-r-pr-4{padding-right:var(--space-4)}.sm\:rt-r-pr-5{padding-right:var(--space-5)}.sm\:rt-r-pr-6{padding-right:var(--space-6)}.sm\:rt-r-pr-7{padding-right:var(--space-7)}.sm\:rt-r-pr-8{padding-right:var(--space-8)}.sm\:rt-r-pr-9{padding-right:var(--space-9)}.sm\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-pr{padding-right:var(--pr-md)}.md\:rt-r-pr-0{padding-right:0}.md\:rt-r-pr-1{padding-right:var(--space-1)}.md\:rt-r-pr-2{padding-right:var(--space-2)}.md\:rt-r-pr-3{padding-right:var(--space-3)}.md\:rt-r-pr-4{padding-right:var(--space-4)}.md\:rt-r-pr-5{padding-right:var(--space-5)}.md\:rt-r-pr-6{padding-right:var(--space-6)}.md\:rt-r-pr-7{padding-right:var(--space-7)}.md\:rt-r-pr-8{padding-right:var(--space-8)}.md\:rt-r-pr-9{padding-right:var(--space-9)}.md\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-pr{padding-right:var(--pr-lg)}.lg\:rt-r-pr-0{padding-right:0}.lg\:rt-r-pr-1{padding-right:var(--space-1)}.lg\:rt-r-pr-2{padding-right:var(--space-2)}.lg\:rt-r-pr-3{padding-right:var(--space-3)}.lg\:rt-r-pr-4{padding-right:var(--space-4)}.lg\:rt-r-pr-5{padding-right:var(--space-5)}.lg\:rt-r-pr-6{padding-right:var(--space-6)}.lg\:rt-r-pr-7{padding-right:var(--space-7)}.lg\:rt-r-pr-8{padding-right:var(--space-8)}.lg\:rt-r-pr-9{padding-right:var(--space-9)}.lg\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-pr{padding-right:var(--pr-xl)}.xl\:rt-r-pr-0{padding-right:0}.xl\:rt-r-pr-1{padding-right:var(--space-1)}.xl\:rt-r-pr-2{padding-right:var(--space-2)}.xl\:rt-r-pr-3{padding-right:var(--space-3)}.xl\:rt-r-pr-4{padding-right:var(--space-4)}.xl\:rt-r-pr-5{padding-right:var(--space-5)}.xl\:rt-r-pr-6{padding-right:var(--space-6)}.xl\:rt-r-pr-7{padding-right:var(--space-7)}.xl\:rt-r-pr-8{padding-right:var(--space-8)}.xl\:rt-r-pr-9{padding-right:var(--space-9)}.xl\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}.rt-r-pb{padding-bottom:var(--pb)}.rt-r-pb-0{padding-bottom:0}.rt-r-pb-1{padding-bottom:var(--space-1)}.rt-r-pb-2{padding-bottom:var(--space-2)}.rt-r-pb-3{padding-bottom:var(--space-3)}.rt-r-pb-4{padding-bottom:var(--space-4)}.rt-r-pb-5{padding-bottom:var(--space-5)}.rt-r-pb-6{padding-bottom:var(--space-6)}.rt-r-pb-7{padding-bottom:var(--space-7)}.rt-r-pb-8{padding-bottom:var(--space-8)}.rt-r-pb-9{padding-bottom:var(--space-9)}.rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-pb{padding-bottom:var(--pb-xs)}.xs\:rt-r-pb-0{padding-bottom:0}.xs\:rt-r-pb-1{padding-bottom:var(--space-1)}.xs\:rt-r-pb-2{padding-bottom:var(--space-2)}.xs\:rt-r-pb-3{padding-bottom:var(--space-3)}.xs\:rt-r-pb-4{padding-bottom:var(--space-4)}.xs\:rt-r-pb-5{padding-bottom:var(--space-5)}.xs\:rt-r-pb-6{padding-bottom:var(--space-6)}.xs\:rt-r-pb-7{padding-bottom:var(--space-7)}.xs\:rt-r-pb-8{padding-bottom:var(--space-8)}.xs\:rt-r-pb-9{padding-bottom:var(--space-9)}.xs\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-pb{padding-bottom:var(--pb-sm)}.sm\:rt-r-pb-0{padding-bottom:0}.sm\:rt-r-pb-1{padding-bottom:var(--space-1)}.sm\:rt-r-pb-2{padding-bottom:var(--space-2)}.sm\:rt-r-pb-3{padding-bottom:var(--space-3)}.sm\:rt-r-pb-4{padding-bottom:var(--space-4)}.sm\:rt-r-pb-5{padding-bottom:var(--space-5)}.sm\:rt-r-pb-6{padding-bottom:var(--space-6)}.sm\:rt-r-pb-7{padding-bottom:var(--space-7)}.sm\:rt-r-pb-8{padding-bottom:var(--space-8)}.sm\:rt-r-pb-9{padding-bottom:var(--space-9)}.sm\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-pb{padding-bottom:var(--pb-md)}.md\:rt-r-pb-0{padding-bottom:0}.md\:rt-r-pb-1{padding-bottom:var(--space-1)}.md\:rt-r-pb-2{padding-bottom:var(--space-2)}.md\:rt-r-pb-3{padding-bottom:var(--space-3)}.md\:rt-r-pb-4{padding-bottom:var(--space-4)}.md\:rt-r-pb-5{padding-bottom:var(--space-5)}.md\:rt-r-pb-6{padding-bottom:var(--space-6)}.md\:rt-r-pb-7{padding-bottom:var(--space-7)}.md\:rt-r-pb-8{padding-bottom:var(--space-8)}.md\:rt-r-pb-9{padding-bottom:var(--space-9)}.md\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-pb{padding-bottom:var(--pb-lg)}.lg\:rt-r-pb-0{padding-bottom:0}.lg\:rt-r-pb-1{padding-bottom:var(--space-1)}.lg\:rt-r-pb-2{padding-bottom:var(--space-2)}.lg\:rt-r-pb-3{padding-bottom:var(--space-3)}.lg\:rt-r-pb-4{padding-bottom:var(--space-4)}.lg\:rt-r-pb-5{padding-bottom:var(--space-5)}.lg\:rt-r-pb-6{padding-bottom:var(--space-6)}.lg\:rt-r-pb-7{padding-bottom:var(--space-7)}.lg\:rt-r-pb-8{padding-bottom:var(--space-8)}.lg\:rt-r-pb-9{padding-bottom:var(--space-9)}.lg\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-pb{padding-bottom:var(--pb-xl)}.xl\:rt-r-pb-0{padding-bottom:0}.xl\:rt-r-pb-1{padding-bottom:var(--space-1)}.xl\:rt-r-pb-2{padding-bottom:var(--space-2)}.xl\:rt-r-pb-3{padding-bottom:var(--space-3)}.xl\:rt-r-pb-4{padding-bottom:var(--space-4)}.xl\:rt-r-pb-5{padding-bottom:var(--space-5)}.xl\:rt-r-pb-6{padding-bottom:var(--space-6)}.xl\:rt-r-pb-7{padding-bottom:var(--space-7)}.xl\:rt-r-pb-8{padding-bottom:var(--space-8)}.xl\:rt-r-pb-9{padding-bottom:var(--space-9)}.xl\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}.rt-r-pl{padding-left:var(--pl)}.rt-r-pl-0{padding-left:0}.rt-r-pl-1{padding-left:var(--space-1)}.rt-r-pl-2{padding-left:var(--space-2)}.rt-r-pl-3{padding-left:var(--space-3)}.rt-r-pl-4{padding-left:var(--space-4)}.rt-r-pl-5{padding-left:var(--space-5)}.rt-r-pl-6{padding-left:var(--space-6)}.rt-r-pl-7{padding-left:var(--space-7)}.rt-r-pl-8{padding-left:var(--space-8)}.rt-r-pl-9{padding-left:var(--space-9)}.rt-r-pl-inset{padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-pl{padding-left:var(--pl-xs)}.xs\:rt-r-pl-0{padding-left:0}.xs\:rt-r-pl-1{padding-left:var(--space-1)}.xs\:rt-r-pl-2{padding-left:var(--space-2)}.xs\:rt-r-pl-3{padding-left:var(--space-3)}.xs\:rt-r-pl-4{padding-left:var(--space-4)}.xs\:rt-r-pl-5{padding-left:var(--space-5)}.xs\:rt-r-pl-6{padding-left:var(--space-6)}.xs\:rt-r-pl-7{padding-left:var(--space-7)}.xs\:rt-r-pl-8{padding-left:var(--space-8)}.xs\:rt-r-pl-9{padding-left:var(--space-9)}.xs\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-pl{padding-left:var(--pl-sm)}.sm\:rt-r-pl-0{padding-left:0}.sm\:rt-r-pl-1{padding-left:var(--space-1)}.sm\:rt-r-pl-2{padding-left:var(--space-2)}.sm\:rt-r-pl-3{padding-left:var(--space-3)}.sm\:rt-r-pl-4{padding-left:var(--space-4)}.sm\:rt-r-pl-5{padding-left:var(--space-5)}.sm\:rt-r-pl-6{padding-left:var(--space-6)}.sm\:rt-r-pl-7{padding-left:var(--space-7)}.sm\:rt-r-pl-8{padding-left:var(--space-8)}.sm\:rt-r-pl-9{padding-left:var(--space-9)}.sm\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-pl{padding-left:var(--pl-md)}.md\:rt-r-pl-0{padding-left:0}.md\:rt-r-pl-1{padding-left:var(--space-1)}.md\:rt-r-pl-2{padding-left:var(--space-2)}.md\:rt-r-pl-3{padding-left:var(--space-3)}.md\:rt-r-pl-4{padding-left:var(--space-4)}.md\:rt-r-pl-5{padding-left:var(--space-5)}.md\:rt-r-pl-6{padding-left:var(--space-6)}.md\:rt-r-pl-7{padding-left:var(--space-7)}.md\:rt-r-pl-8{padding-left:var(--space-8)}.md\:rt-r-pl-9{padding-left:var(--space-9)}.md\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-pl{padding-left:var(--pl-lg)}.lg\:rt-r-pl-0{padding-left:0}.lg\:rt-r-pl-1{padding-left:var(--space-1)}.lg\:rt-r-pl-2{padding-left:var(--space-2)}.lg\:rt-r-pl-3{padding-left:var(--space-3)}.lg\:rt-r-pl-4{padding-left:var(--space-4)}.lg\:rt-r-pl-5{padding-left:var(--space-5)}.lg\:rt-r-pl-6{padding-left:var(--space-6)}.lg\:rt-r-pl-7{padding-left:var(--space-7)}.lg\:rt-r-pl-8{padding-left:var(--space-8)}.lg\:rt-r-pl-9{padding-left:var(--space-9)}.lg\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-pl{padding-left:var(--pl-xl)}.xl\:rt-r-pl-0{padding-left:0}.xl\:rt-r-pl-1{padding-left:var(--space-1)}.xl\:rt-r-pl-2{padding-left:var(--space-2)}.xl\:rt-r-pl-3{padding-left:var(--space-3)}.xl\:rt-r-pl-4{padding-left:var(--space-4)}.xl\:rt-r-pl-5{padding-left:var(--space-5)}.xl\:rt-r-pl-6{padding-left:var(--space-6)}.xl\:rt-r-pl-7{padding-left:var(--space-7)}.xl\:rt-r-pl-8{padding-left:var(--space-8)}.xl\:rt-r-pl-9{padding-left:var(--space-9)}.xl\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}.rt-r-position-static{position:static}.rt-r-position-absolute{position:absolute}.rt-r-position-relative{position:relative}.rt-r-position-fixed{position:fixed}.rt-r-position-sticky{position:sticky}@media (min-width: 520px){.xs\:rt-r-position-static{position:static}.xs\:rt-r-position-absolute{position:absolute}.xs\:rt-r-position-relative{position:relative}.xs\:rt-r-position-fixed{position:fixed}.xs\:rt-r-position-sticky{position:sticky}}@media (min-width: 768px){.sm\:rt-r-position-static{position:static}.sm\:rt-r-position-absolute{position:absolute}.sm\:rt-r-position-relative{position:relative}.sm\:rt-r-position-fixed{position:fixed}.sm\:rt-r-position-sticky{position:sticky}}@media (min-width: 1024px){.md\:rt-r-position-static{position:static}.md\:rt-r-position-absolute{position:absolute}.md\:rt-r-position-relative{position:relative}.md\:rt-r-position-fixed{position:fixed}.md\:rt-r-position-sticky{position:sticky}}@media (min-width: 1280px){.lg\:rt-r-position-static{position:static}.lg\:rt-r-position-absolute{position:absolute}.lg\:rt-r-position-relative{position:relative}.lg\:rt-r-position-fixed{position:fixed}.lg\:rt-r-position-sticky{position:sticky}}@media (min-width: 1640px){.xl\:rt-r-position-static{position:static}.xl\:rt-r-position-absolute{position:absolute}.xl\:rt-r-position-relative{position:relative}.xl\:rt-r-position-fixed{position:fixed}.xl\:rt-r-position-sticky{position:sticky}}.rt-r-w{width:var(--width)}@media (min-width: 520px){.xs\:rt-r-w{width:var(--width-xs)}}@media (min-width: 768px){.sm\:rt-r-w{width:var(--width-sm)}}@media (min-width: 1024px){.md\:rt-r-w{width:var(--width-md)}}@media (min-width: 1280px){.lg\:rt-r-w{width:var(--width-lg)}}@media (min-width: 1640px){.xl\:rt-r-w{width:var(--width-xl)}}.rt-r-min-w{min-width:var(--min-width)}@media (min-width: 520px){.xs\:rt-r-min-w{min-width:var(--min-width-xs)}}@media (min-width: 768px){.sm\:rt-r-min-w{min-width:var(--min-width-sm)}}@media (min-width: 1024px){.md\:rt-r-min-w{min-width:var(--min-width-md)}}@media (min-width: 1280px){.lg\:rt-r-min-w{min-width:var(--min-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-w{min-width:var(--min-width-xl)}}.rt-r-max-w{max-width:var(--max-width)}@media (min-width: 520px){.xs\:rt-r-max-w{max-width:var(--max-width-xs)}}@media (min-width: 768px){.sm\:rt-r-max-w{max-width:var(--max-width-sm)}}@media (min-width: 1024px){.md\:rt-r-max-w{max-width:var(--max-width-md)}}@media (min-width: 1280px){.lg\:rt-r-max-w{max-width:var(--max-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-w{max-width:var(--max-width-xl)}}.rt-r-weight-light{font-weight:var(--font-weight-light)}.rt-r-weight-regular{font-weight:var(--font-weight-regular)}.rt-r-weight-medium{font-weight:var(--font-weight-medium)}.rt-r-weight-bold{font-weight:var(--font-weight-bold)}@media (min-width: 520px){.xs\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xs\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xs\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xs\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 768px){.sm\:rt-r-weight-light{font-weight:var(--font-weight-light)}.sm\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.sm\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.sm\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1024px){.md\:rt-r-weight-light{font-weight:var(--font-weight-light)}.md\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.md\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.md\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1280px){.lg\:rt-r-weight-light{font-weight:var(--font-weight-light)}.lg\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.lg\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.lg\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1640px){.xl\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xl\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xl\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xl\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}.rt-r-lt-normal:before,.rt-r-lt-end:before,.rt-r-lt-normal:after,.rt-r-lt-start:after{content:none}.rt-r-lt-start:before,.rt-r-lt-both:before,.rt-r-lt-end:after,.rt-r-lt-both:after{content:"";display:table}.rt-r-lt-start:before,.rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.rt-r-lt-end:after,.rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}@media (min-width: 520px){.xs\:rt-r-lt-normal:before,.xs\:rt-r-lt-end:before,.xs\:rt-r-lt-normal:after,.xs\:rt-r-lt-start:after{content:none}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before,.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{content:"";display:table}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 768px){.sm\:rt-r-lt-normal:before,.sm\:rt-r-lt-end:before,.sm\:rt-r-lt-normal:after,.sm\:rt-r-lt-start:after{content:none}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before,.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{content:"";display:table}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1024px){.md\:rt-r-lt-normal:before,.md\:rt-r-lt-end:before,.md\:rt-r-lt-normal:after,.md\:rt-r-lt-start:after{content:none}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before,.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{content:"";display:table}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1280px){.lg\:rt-r-lt-normal:before,.lg\:rt-r-lt-end:before,.lg\:rt-r-lt-normal:after,.lg\:rt-r-lt-start:after{content:none}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before,.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{content:"";display:table}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1640px){.xl\:rt-r-lt-normal:before,.xl\:rt-r-lt-end:before,.xl\:rt-r-lt-normal:after,.xl\:rt-r-lt-start:after{content:none}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before,.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{content:"";display:table}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}.rt-r-resize-none{resize:none}.rt-r-resize-vertical{resize:vertical}.rt-r-resize-horizontal{resize:horizontal}.rt-r-resize-both{resize:both}@media (min-width: 520px){.xs\:rt-r-resize-none{resize:none}.xs\:rt-r-resize-vertical{resize:vertical}.xs\:rt-r-resize-horizontal{resize:horizontal}.xs\:rt-r-resize-both{resize:both}}@media (min-width: 768px){.sm\:rt-r-resize-none{resize:none}.sm\:rt-r-resize-vertical{resize:vertical}.sm\:rt-r-resize-horizontal{resize:horizontal}.sm\:rt-r-resize-both{resize:both}}@media (min-width: 1024px){.md\:rt-r-resize-none{resize:none}.md\:rt-r-resize-vertical{resize:vertical}.md\:rt-r-resize-horizontal{resize:horizontal}.md\:rt-r-resize-both{resize:both}}@media (min-width: 1280px){.lg\:rt-r-resize-none{resize:none}.lg\:rt-r-resize-vertical{resize:vertical}.lg\:rt-r-resize-horizontal{resize:horizontal}.lg\:rt-r-resize-both{resize:both}}@media (min-width: 1640px){.xl\:rt-r-resize-none{resize:none}.xl\:rt-r-resize-vertical{resize:vertical}.xl\:rt-r-resize-horizontal{resize:horizontal}.xl\:rt-r-resize-both{resize:both}}.rt-r-tl-auto{table-layout:auto}.rt-r-tl-fixed{table-layout:fixed}@media (min-width: 520px){.xs\:rt-r-tl-auto{table-layout:auto}.xs\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 768px){.sm\:rt-r-tl-auto{table-layout:auto}.sm\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1024px){.md\:rt-r-tl-auto{table-layout:auto}.md\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1280px){.lg\:rt-r-tl-auto{table-layout:auto}.lg\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1640px){.xl\:rt-r-tl-auto{table-layout:auto}.xl\:rt-r-tl-fixed{table-layout:fixed}}.rt-r-ta-left{text-align:left}.rt-r-ta-center{text-align:center}.rt-r-ta-right{text-align:right}@media (min-width: 520px){.xs\:rt-r-ta-left{text-align:left}.xs\:rt-r-ta-center{text-align:center}.xs\:rt-r-ta-right{text-align:right}}@media (min-width: 768px){.sm\:rt-r-ta-left{text-align:left}.sm\:rt-r-ta-center{text-align:center}.sm\:rt-r-ta-right{text-align:right}}@media (min-width: 1024px){.md\:rt-r-ta-left{text-align:left}.md\:rt-r-ta-center{text-align:center}.md\:rt-r-ta-right{text-align:right}}@media (min-width: 1280px){.lg\:rt-r-ta-left{text-align:left}.lg\:rt-r-ta-center{text-align:center}.lg\:rt-r-ta-right{text-align:right}}@media (min-width: 1640px){.xl\:rt-r-ta-left{text-align:left}.xl\:rt-r-ta-center{text-align:center}.xl\:rt-r-ta-right{text-align:right}}.rt-r-tw-wrap{white-space:normal}.rt-r-tw-nowrap{white-space:nowrap}.rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.rt-r-tw-balance{white-space:normal;text-wrap:balance}@media (min-width: 520px){.xs\:rt-r-tw-wrap{white-space:normal}.xs\:rt-r-tw-nowrap{white-space:nowrap}.xs\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xs\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 768px){.sm\:rt-r-tw-wrap{white-space:normal}.sm\:rt-r-tw-nowrap{white-space:nowrap}.sm\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.sm\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1024px){.md\:rt-r-tw-wrap{white-space:normal}.md\:rt-r-tw-nowrap{white-space:nowrap}.md\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.md\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1280px){.lg\:rt-r-tw-wrap{white-space:normal}.lg\:rt-r-tw-nowrap{white-space:nowrap}.lg\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.lg\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1640px){.xl\:rt-r-tw-wrap{white-space:normal}.xl\:rt-r-tw-nowrap{white-space:nowrap}.xl\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xl\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}.rt-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-r-va-baseline{vertical-align:baseline}.rt-r-va-top{vertical-align:top}.rt-r-va-middle{vertical-align:middle}.rt-r-va-bottom{vertical-align:bottom}@media (min-width: 520px){.xs\:rt-r-va-baseline{vertical-align:baseline}.xs\:rt-r-va-top{vertical-align:top}.xs\:rt-r-va-middle{vertical-align:middle}.xs\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 768px){.sm\:rt-r-va-baseline{vertical-align:baseline}.sm\:rt-r-va-top{vertical-align:top}.sm\:rt-r-va-middle{vertical-align:middle}.sm\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1024px){.md\:rt-r-va-baseline{vertical-align:baseline}.md\:rt-r-va-top{vertical-align:top}.md\:rt-r-va-middle{vertical-align:middle}.md\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1280px){.lg\:rt-r-va-baseline{vertical-align:baseline}.lg\:rt-r-va-top{vertical-align:top}.lg\:rt-r-va-middle{vertical-align:middle}.lg\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1640px){.xl\:rt-r-va-baseline{vertical-align:baseline}.xl\:rt-r-va-top{vertical-align:top}.xl\:rt-r-va-middle{vertical-align:middle}.xl\:rt-r-va-bottom{vertical-align:bottom}}#app{--color-background: #070b14;--default-font-family: "Inter Tight", sans-serif;font-family:Inter Tight,NotoFlagsOnly,sans-serif;font-display:optional;--scaling: .875;--cursor-button: pointer;--line-height: 1.2;--white-heading: #f7f8f8;--green-live: #3cff73;font-variant-numeric:tabular-nums;overflow:hidden}.rt-TooltipContent{background:#131923;border:1px solid #2e343e;border-radius:8px}.rt-TooltipText{color:var(--regular-text-color);user-select:auto}.rt-TooltipArrow{fill:#131923}.rt-Separator{background:#65677a}.sticky{position:sticky;background:var(--color-background)}.app-width-container{max-width:1920px;margin:0 auto}.blur{position:absolute;inset:0;background:#0000008a;backdrop-filter:blur(2px)}.sankey-label{pointer-events:none;white-space:pre-line;font-size:14px;font-family:Inter Tight}.mono-text{font-family:Roboto Mono,monospace}._outer-container_13cf2_1{height:100vh;width:100%;position:absolute;z-index:100;display:flex;justify-content:center;align-items:center;container:outer-container / inline-size}._inner-container_13cf2_12{min-width:410px}@container outer-container (width < 430px){._inner-container_13cf2_12{min-width:310px}}._text_o41r7_1{color:var(--startup-text-color);line-height:normal}._container_o41r7_6{padding-left:40px}._container_1tszc_1{padding:8px 14px;border-radius:12px;border:1px solid var(--container-border-color);background:var(--container-background-color);display:grid;grid:auto-flow / auto 1fr;column-gap:10px;row-gap:6px;._text_1tszc_11{color:#dedede;font-weight:500;line-height:normal}}._text_1ont6_1{color:var(--startup-complete-step-color);font-weight:500;line-height:normal}._container_1ont6_7{padding:0 20px}._label_1ojid_1{color:#686868;font-size:12px}._value_1ojid_6{color:var(--startup-text-color);font-size:12px}._progress_gtr5g_1{height:9px;width:120px;background:var(--startup-progress-background-color);div{background:var(--startup-progress-teal-color)}}._text_gtr5g_11{color:var(--startup-text-color);font-size:8px;line-height:normal}._container_e8h4h_1{transition:filter .5s;&._blur_e8h4h_4{filter:blur(10px)}}._container_1z0wf_1{--collapse-duration: .3s;--collapse-location-time: .2s;--transform-origin: top right;position:fixed;inset:0;overscroll-behavior:none;z-index:20;background-color:var(--startup-background-color);--color-background: var(--startup-background-color);--slot-nav-background-color: var(--startup-background-color);transform-origin:var(--transform-origin);transition:opacity var(--collapse-duration) linear,transform var(--collapse-duration) linear,background-color .2s linear;&._collapsed_1z0wf_22{transform:scale(0);opacity:.5;overflow:hidden}&._gossip_1z0wf_28{--startup-background-color: var(--boot-progress-gossip-background-color)}&._full-snapshot_1z0wf_32{--startup-background-color: var( --boot-progress-full-snapshot-background-color )}&._incr-snapshot_1z0wf_38{--startup-background-color: var( --boot-progress-incr-snapshot-background-color )}&._catching-up_1z0wf_44{--startup-background-color: var(--boot-progress-catchup-background-color)}&._supermajority_1z0wf_48{background-color:var(--boot-progress-supermajority-background-color)}}@media (min-width: 800px){._startup-content-indentation_1z0wf_54{margin-left:67px;margin-right:67px}}._container_j432f_1{min-width:28px;&._pointer_j432f_4{cursor:pointer}._label_j432f_8{color:var(--header-label-text-color);font-size:10px}._value_j432f_13{color:var(--dropdown-button-text-color);font-size:12px;._value-suffix_j432f_17{color:var(--header-label-text-color)}}&._dropdown-menu_j432f_22{._label_j432f_8{color:var(--popover-secondary-color)}._value_j432f_13{color:var(--popover-primary-color);._value-suffix_j432f_17{color:var(--popover-secondary-color)}}}}._horizontal_j432f_37{display:flex;justify-content:space-between;align-items:center;gap:8px;background-color:var(--color-background);._value_j432f_13{font-weight:600}}._hide_1etvv_1{display:none}._popover-content_e49l0_1{box-sizing:border-box;max-width:var(--radix-popover-content-available-width);background:var(--popover-background-color);color:var(--popover-primary-color);padding:10px;border:1px solid var(--gray-4, #2a2a2a);border-radius:5px;box-shadow:0 4px 4px #00000040;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,opacity;--popover-trigger-color: var(--popover-secondary-color);--popover-trigger-hover-color: var(--popover-primary-color)}._popover-content_e49l0_1:focus{box-shadow:0 0 0 2px var(--violet-7)}._popover-content_e49l0_1[data-state=open][data-side=top]{animation-name:_slideDownAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=right]{animation-name:_slideLeftAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=bottom]{animation-name:_slideUpAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=left]{animation-name:_slideRightAndFade_e49l0_1}._popover-arrow_e49l0_41{fill:var(--popover-background-color)}@keyframes _slideUpAndFade_e49l0_1{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideRightAndFade_e49l0_1{0%{opacity:0;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes _slideDownAndFade_e49l0_1{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideLeftAndFade_e49l0_1{0%{opacity:0;transform:translate(2px)}to{opacity:1;transform:translate(0)}}._copy-button_1km2g_1{position:relative;width:fit-content;max-width:100%;--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;._icon_1km2g_8{flex-shrink:0}&._hide-icon-until-hover_1km2g_12{._icon_1km2g_8{display:none}&:hover ._icon_1km2g_8{display:inherit;position:absolute;right:0;background:#1b3150bf;padding:4px 2px;border-radius:2px;box-shadow:-4px 0 8px #1e3a5fcc,0 2px 8px #0000004d}}}._nav-link_tb1ax_1{font-size:14px;font-weight:400;color:var(--nav-button-inactive-text-color);border-radius:5px;background-color:transparent;gap:5px;padding:0 15px;flex-shrink:1;min-width:50px;._icon_tb1ax_14{height:14px;width:14px}._dropdown-icon_tb1ax_19{height:18px;width:18px}&:hover,&._focus_tb1ax_25{filter:brightness(1.2)}&._active_tb1ax_29{font-weight:600;background-color:#ffffff14}}@media (max-width: 416px){._nav-link_tb1ax_1{padding:0 4px}}._nav-dropdown-content_tb1ax_41{display:flex;flex-direction:column;background-color:#1c2129;border:1px solid rgba(250,250,250,.08);border-radius:5px;min-width:var(--radix-dropdown-menu-trigger-width)}._logo_1ml9x_1{height:27px}._cluster-container_7aa6c_1{height:28px;justify-content:space-between;align-items:center;flex-grow:1;border-radius:5px;background:#fafafa1a;._cluster_7aa6c_1{padding:0 3px;border-radius:3px;color:#000;font-size:10px;font-weight:500}._cluster-name_7aa6c_19{font-size:12px;font-weight:700;margin-bottom:-3px}}._nav-filter-toggle-group_148xa_1{display:flex;flex-wrap:nowrap;width:100%;button{cursor:pointer;flex-grow:1;height:21px;border:none;padding:3px 5px;color:var(--nav-button-inactive-text-color);background-color:#ffffff1a;&:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}&:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}&[data-state=on]{background-color:var(--slot-nav-filter-background-color);color:var(--nav-button-text-color)}&:hover{filter:brightness(1.2)}span{cursor:inherit;font-size:12px;font-style:normal;font-weight:400;line-height:normal}}}._toggle-button-size_148xa_43{height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}}._toggle-button_148xa_43{border-radius:5px;background-color:var(--epoch-slider-progress-color);&:hover{filter:brightness(1.2)}&._floating_148xa_61{box-shadow:0 4px 4px #000000bf}svg{fill:var(--nav-button-text-color);height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}&._mirror_148xa_75{transform:scaleX(-1)}}}._slot-nav-container_148xa_81{transition:width .3s;box-sizing:border-box;&._nav-background_148xa_85{background-color:var(--slot-nav-background-color)}}._nav-background_1sjct_1{background-color:var(--slot-nav-background-color)}._health-pane_hbx15_1{background:none;margin:0;padding:0;border:0;height:28px;display:flex;justify-content:space-between;align-items:center;row-gap:2px;column-gap:3px;&._vertical_hbx15_14{flex-direction:column;max-width:24px;min-width:24px;&._narrow_hbx15_18{min-width:14px}}._health-box_hbx15_22{height:100%;padding:0;margin:0;display:flex;justify-content:center;align-items:center;max-width:24px;min-width:14px;background:var(--green-5);border-radius:3px;border:1px solid transparent;cursor:pointer;&._stacked_hbx15_36{width:100%}svg{fill:var(--green-11)}&._alerting_hbx15_44{background:var(--red-8);border-color:var(--red-11);svg{fill:var(--red-12)}}&:hover{filter:brightness(1.2)}}}._popover_hbx15_58{max-width:160px;padding:6px;._title_hbx15_62{font-size:12px;color:var(--gray-12)}._status_hbx15_67{font-size:12px;font-weight:600;color:var(--green-10);&._alerting_hbx15_44{color:var(--red-10)}}._content_hbx15_77{font-size:10px;color:var(--gray-9)}}._logo-container_1po46_1{--logo-transition-time: 1.5s;z-index:20;position:fixed;inset:0;justify-content:center;align-items:center;background-color:var(--startup-background-color);background-image:url("data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2024.9971C13.4992%2024.8907%2024.4505%2014.0877%2024.791%200.645508L24.7988%200C24.7988%2013.7398%2035.8824%2024.8887%2049.5967%2024.9971C36.0977%2025.1037%2025.1471%2035.9075%2024.8066%2049.3496L24.7988%2049.9951C24.7988%2036.2551%2013.7145%2025.1052%200%2024.9971Z'%20fill='%2303030C'/%3e%3c/svg%3e"),radial-gradient(160.38% 98.82% at 50% 50%,#1ce7c229,#1ce7c203 41.16%,#1ce7c200);background-position:center;background-repeat:repeat;transition:opacity var(--logo-transition-time) linear;img{height:76px}&._hidden_1po46_30{opacity:0;pointer-events:none;user-select:none}}._secondary-color_2x9jp_1{color:var(--boot-progress-snapshot-units-color)}._ellipsis_2x9jp_5{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._card_2x9jp_11{min-height:150px;padding:10px;border:1px solid rgba(255,255,255,.1);background:#ea67670d;color:var(--boot-progress-primary-text-color)}._sparkline-card_2x9jp_19{display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;._snapshot-tile-title_2x9jp_25{color:var(--boot-progress-primary-text-color);font-size:18px;font-weight:400}._snapshot-tile-busy_2x9jp_31{font-size:18px;font-weight:400}._sparkline-container_2x9jp_36{position:relative;flex-shrink:0;background-image:linear-gradient(to right,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px),linear-gradient(to bottom,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px)}}._bars-card_2x9jp_54{flex-grow:1;display:flex;min-width:250px;flex-direction:column;justify-content:space-between;gap:10px;._card-header_2x9jp_62{font-size:18px;line-height:normal;font-weight:400}._title_2x9jp_68{font-size:28px;font-weight:400;min-width:0}._accounts-rate_2x9jp_74{min-width:165px;text-align:center}._total_2x9jp_79{min-width:170px;text-align:center}._throughput_2x9jp_84{min-width:114px;text-align:right;&._with-prefix_2x9jp_87{min-width:140px;white-space:nowrap;flex-wrap:wrap}}}._reading-card_2x9jp_95{._read-path-container_2x9jp_96{color:var(--app-teal);font-size:16px;svg{flex-shrink:0;width:16px;height:16px;fill:var(--app-teal)}._read-path_2x9jp_96{min-width:0}}}@media (max-width: 876px){._reading-card_2x9jp_95{._total_2x9jp_79{text-align:right}._throughput_2x9jp_84{text-align:left}}}@media (max-width: 1190px){._decompressing-card_2x9jp_124{justify-content:space-between;._decompressing-card-left_2x9jp_127{flex-direction:column;flex-grow:0;align-items:flex-start;._title_2x9jp_68,._total_2x9jp_79{text-align:left}}._decompressing-card-right_2x9jp_137{flex-direction:column;flex-grow:0;text-align:right}}}@media (max-width: 1063px){._inserting-card_2x9jp_146{._throughput_2x9jp_84{text-align:left}}}@media (max-width: 936px){._inserting-card_2x9jp_146{._total_2x9jp_79{text-align:left}._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:right}}}@media (max-width: 846px){._reading-card_2x9jp_95,._decompressing-card_2x9jp_124,._inserting-card_2x9jp_146{._card-header_2x9jp_62,._decompressing-card-left_2x9jp_127,._decompressing-card-right_2x9jp_137{flex-direction:column;align-items:flex-start}._total_2x9jp_79,._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:left}}}@media (max-width: 560px){._sparkline-card_2x9jp_19{width:100%}}._busy_1fw9w_1{color:#c8cacd;font-size:10px;min-width:27px;text-align:end;line-height:10px}._range-label_14i5c_1{position:absolute;right:2px;font-size:10px;font-weight:400;color:var(--tile-sparkline-range-text-color)}._top_14i5c_9{top:0}._bottom_14i5c_13{bottom:0}._g-transform_14i5c_17{will-change:transform}._bars_1d34t_1{--container-width: 100%;position:relative;width:var(--container-width);height:var(--bar-height, 50px);--step: calc(var(--bar-width) + var(--bar-gap));--used-width: max( 0px, calc( round(down, var(--container-width) + var(--bar-gap), var(--step)) - var(--bar-gap) ) );--threshold-start: max( 0px, calc( round( nearest, var(--pct) * (var(--used-width) + var(--bar-gap)), var(--step) ) - var(--step) ) );--threshold-visible: sign(var(--pct));mask-image:repeating-linear-gradient(to right,black 0 var(--bar-width),transparent var(--bar-width) var(--step));mask-size:var(--used-width) 100%;mask-repeat:no-repeat;background:linear-gradient(to right,var(--boot-progress-gossip-bars-color) 85%,var(--boot-progress-gossip-mid-bar-color) 85% 95%,var(--boot-progress-gossip-high-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat;&:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) + var(--bar-width)) 0 0);background:linear-gradient(to right,var(--boot-progress-gossip-filled-bar-color) 85%,var(--boot-progress-gossip-mid-filled-bar-color) 85% 95%,var(--boot-progress-gossip-high-filled-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}&:after{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) - var(--bar-width)) 0 var(--threshold-start));opacity:var(--threshold-visible, 0);background:linear-gradient(to right,var(--app-teal) 85%,var(--boot-progress-gossip-mid-threshold-bar-color) 85% 95%,var(--boot-progress-gossip-high-threshold-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}}._secondary-text_1iskf_1{color:var(--boot-progress-secondary-text-color)}._phase-header-container_1iskf_5{color:var(--boot-progress-primary-text-color);font-size:28px;font-weight:400;line-height:normal;._phase-name_1iskf_11{font-weight:600}._no-wrap_1iskf_15{white-space:nowrap}._complete-pct-container_1iskf_19{white-space:pre;display:inline-flex;align-items:center}}._progress-bar_drgbz_1{align-items:center;width:100%;>*:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}>*:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}._current_drgbz_14{height:40px;border-width:1px;border-style:solid;border-radius:5px;overflow:hidden;._progressing-bar_drgbz_21{width:100%;height:100%;transform-origin:left;transition:transform .2s linear}}div{height:25px}._gossip_drgbz_33{background:var(--progress-bar-incomplete-gossip-color);&._complete_drgbz_35{background:var(--progress-bar-complete-gossip-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-gossip-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-gossip-background)}}}._full-snapshot_drgbz_46{background:var(--progress-bar-incomplete-full-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-full-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-full-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-full-snapshot-background)}}}._incr-snapshot_drgbz_59{background:var(--progress-bar-incomplete-inc-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-inc-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-inc-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-inc-snapshot-background)}}}._catching-up_drgbz_72{background:var(--progress-bar-incomplete-catchup-color);&._complete_drgbz_35{background:var(--progress-bar-complete-catchup-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-catchup-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-catchup-background)}}}._supermajority_drgbz_85{background:var(--progress-bar-incomplete-supermajority-color);&._complete_drgbz_35{background:var(--progress-bar-complete-supermajority-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-supermajority-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-supermajority-background)}}}}._uplot_1swaw_1{.u-over{touch-action:pan-y}}._card_1yavk_1{flex-grow:1;display:flex;flex-direction:column;padding:14px;gap:14px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#fafafa0d;color:var(--boot-progress-primary-text-color)}._secondary-color_1yavk_13{color:#858585}._bold_1yavk_17{font-weight:700}._ellipsis_1yavk_21{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._labels-row_1yavk_27{flex-wrap:nowrap;font-size:14px;width:calc(var(--turbine-head-x, 0px) + var(--turbine-head-label-width, 0px) / 2);min-width:max(var(--turbine-start-label-width, 0px),var(--turbine-head-label-width, 0px));max-width:100%;._labels-left_1yavk_39{width:calc(var(--turbine-start-x, 0px) + var(--turbine-start-label-width, 0px) / 2);min-width:calc(var(--turbine-start-label-width, 0px) + 4px)}._turbine-label_1yavk_46{white-space:nowrap;flex-shrink:0;border-radius:3px;padding:2px;text-align:center;color:#000;&._start_1yavk_54{background-color:var(--first-turbine-slot-color)}&._head_1yavk_58{background-color:var(--latest-turbine-slot-color)}}}._footer-row_1yavk_64{gap:4px;font-size:14px;color:#ccc;>*{flex-wrap:nowrap;background-color:#2c2c2c;border-radius:3px;padding:4px;text-align:center;&._left-footer_1yavk_76{width:var(--turbine-start-x, 0px);gap:4px;flex-shrink:0}}._footer-title_1yavk_83{flex-grow:1;font-weight:700}._footer-value_1yavk_88{color:#bcbcbc;flex-shrink:10000;direction:rtl}}._bars-stats-container_1yavk_95{font-size:14px;line-height:normal;._bars-stats-row_1yavk_99{>*{min-width:0}._replayed_1yavk_104{color:var(--replayed-slots-text-color);._bold_1yavk_17{color:var(--replayed-slots-bold-text-color)}}._speed_1yavk_111{color:var(--gray-10);._bold_1yavk_17{color:var(--gray-8)}}._to-replay_1yavk_118{color:var(--turbine-slots-text-color);._bold_1yavk_17{color:var(--turbine-slots-bold-text-color)}}}}._slot-group-label_mfowj_1{--group-x: -100000px;--group-name-opacity: 0;opacity:.8;background-color:#080b13;border-radius:2px;border:1px solid #3c4652;border-top-width:0;will-change:transform;transform:translate(var(--group-x));&._you_mfowj_13{border:1px solid #2a7edf}._slot-group-top-container_mfowj_17{width:100%;background-color:#101318;&._skipped_mfowj_21{background-color:var(--red-2)}._slot-group-name-container_mfowj_25{opacity:var(--group-name-opacity);transition:opacity .6s;will-change:opacity;._name_mfowj_30{font-size:10px;line-height:normal;color:#949494;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}}._slot-bars-container_mfowj_41{flex-shrink:0;._slot-bar_mfowj_41{--slot-x: 0;position:absolute;will-change:transform;transform:translate(var(--slot-x));height:100%;border-radius:3px;&:nth-child(1){background-color:var(--blue-7)}&:nth-child(2){background-color:var(--blue-6)}&:nth-child(3){background-color:var(--blue-5)}&:nth-child(4){background-color:var(--blue-4)}&._skipped_mfowj_21{background-color:var(--red-7)}}}}._legend-color-box_mfowj_72{width:10px;height:10px;border-radius:1px}._legend-label_mfowj_78{font-size:10px;color:var(--header-label-text-color)}._card_1vnw5_1{padding:10px;border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);&._narrow_1vnw5_7{padding:4px}}._header_10qjn_1{color:var(--dropdown-button-text-color)}._full-width_10qjn_5{width:100%}._dark_10qjn_9{background:#171b24;border-color:transparent}._subHeader_10qjn_14{color:var(--tile-sub-header-color);font-size:12px;line-height:12px}._tile-container_10qjn_20{display:flex;flex-wrap:wrap;flex-flow:wrap-reverse;gap:2px;flex-grow:1;._tile_10qjn_20{width:6px;height:6px;border-radius:1px;background:color-mix(in oklab,var(--tile-background-red-color) var(--busy),var(--tile-background-blue-color))}}._stat-container_1hzk8_1{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;border-radius:3px;background:#141528;._label_1hzk8_10{color:#dddee0;font-size:10px}._value-container_1hzk8_15{display:flex;align-items:baseline;justify-content:center;gap:1px;min-width:35px;._value_1hzk8_15{color:var(--tile-primary-stat-value-color);font-size:12px;text-align:center}._pct_1hzk8_29{color:var(--tile-primary-stat-value-color);font-size:8px}}}._btn_1lb0v_1{all:unset;cursor:var(--cursor-button);display:flex;gap:var(--space-1);&:hover{filter:brightness(1.4)}}._secondary-color_1cuvx_1{color:var(--gray-11)}._card_1cuvx_5{padding:20px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d}@property --progress-pct{syntax: ""; initial-value: 0%; inherits: false;}._pie-chart-title_1cuvx_18{white-space:nowrap;font-size:28px;color:var(--gray-8)}._pie-chart-container_1cuvx_24{width:100%;min-height:0;aspect-ratio:1/1}@keyframes _shimmer_1cuvx_58{to{transform:rotate(360deg)}}._pie-chart_1cuvx_18{aspect-ratio:1/1;container-type:size;background:conic-gradient(#4d4d4d 0,#8b2e11 80%);border-radius:50%;._threshold-marker_1cuvx_43{transform:rotate(108deg);transform-origin:center top;._marker-line_1cuvx_47{border-left:3px solid #4c4c4c}._marker-icon_1cuvx_51{height:5%;aspect-ratio:1/1}}._shimmer_1cuvx_58{position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 145deg,rgba(255,255,255,.05) 158deg,rgba(255,255,255,.18) 180deg,rgba(255,255,255,.05) 202deg,transparent 215deg);will-change:transform;animation:_shimmer_1cuvx_58 2s linear infinite}._overlay_1cuvx_74{--progress-pct: 0%;transition:--progress-pct .2s linear;position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 0 var(--progress-pct),var(--supermajority-pie-chart-unfilled-color) var(--progress-pct) 100%)}._pie-chart-content_1cuvx_86{background:var(--boot-progress-supermajority-background-color);border-radius:50%;font-size:4.5cqi;color:var(--supermajority-pie-chart-text-color);._lg_1cuvx_93{font-size:9cqi}._eighty_1cuvx_97{color:var(--progress-bar-in-progress-supermajority-border)}}}._details-box_1cuvx_103{&,._copyButton_1cuvx_105{text-align:start;font-size:12px;color:var(--gray-9)}._label_1cuvx_111{font-size:10px;color:var(--gray-7)}._snapshot-source_1cuvx_116{color:var(--blue-7);font-size:12px;word-break:break-all}}._container_1vhtf_1{max-width:100%;flex-grow:1;&._horizontal_1vhtf_4{flex-basis:70%;min-height:188px;min-width:475px}&._vertical_1vhtf_9{flex-shrink:0;height:516px}}._table-card_1vhtf_15{width:100%;display:flex;flex-direction:column;overflow:hidden;&._narrow_1vhtf_21{padding:10px}}._rows-container_1vhtf_26{overflow-x:hidden;overflow-y:auto;flex-basis:50%;flex-grow:1}._row_1vhtf_26{box-sizing:border-box;height:var(--row-height);border:0px solid var(--supermajority-table-border-color);border-bottom-width:1px;column-gap:20px;padding:0 20px 0 5px;&._narrow_1vhtf_21{column-gap:15px}&._xnarrow_1vhtf_44{column-gap:5px}&._online_1vhtf_48{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-online-primary-color);font-size:14px}._peer_1vhtf_56{img{opacity:.5}}._status_1vhtf_62{color:var(--green-8)}._version_1vhtf_66 ._client-icon_1vhtf_66:not(._client-icon-placeholder_1vhtf_66){opacity:.5}._suffix_1vhtf_70{color:var(--supermajority-table-online-secondary-color)}}&._offline_1vhtf_75{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-offline-primary-color);font-size:14px}._status_1vhtf_62{color:var(--red-9)}._suffix_1vhtf_70{color:var(--supermajority-table-offline-secondary-color)}}&._header-row_1vhtf_92{height:auto;border:0}&._toggle-row_1vhtf_97{border-width:1px 0;display:flex;column-gap:8px;cursor:pointer;&:hover{filter:brightness(1.1)}&._offline_1vhtf_75{color:var(--red-9);background:#e5484d0d}&._online_1vhtf_48{color:var(--green-9);background:#30a46c0d}}}._cell_1vhtf_116{height:100%;&._header_1vhtf_92{height:22px;color:var(--table-header-color)}}._peer_1vhtf_56{column-gap:4px;min-width:108px;flex:10 1 170px;&._narrow_1vhtf_21{min-width:80px;flex:10 1 80px}&._xnarrow_1vhtf_44{min-width:70px;flex:10 1 70px}}._status_1vhtf_62{column-gap:8px;min-width:62px;flex:1 1 62px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{min-width:12px;flex:0 1 12px}}._pubkey_1vhtf_51{min-width:50px;flex:1 20 370px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:10 1 50px}}._version_1vhtf_66{column-gap:8px;min-width:100px;flex:1 1 134px;&._narrow_1vhtf_21{min-width:80px;flex:1 10 80px}&._xnarrow_1vhtf_44{min-width:35px;flex:0 10 35px}}._stake_1vhtf_174{justify-content:flex-end;min-width:72px;flex:1 1 72px;&._narrow_1vhtf_21{min-width:52px;flex:0 1 52px}&._xnarrow_1vhtf_44{display:none}}._stake-pct_1vhtf_187{min-width:62px;flex:1 1 62px;justify-content:flex-end;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:0 1 52px}}._small-icon_imn4j_1{height:12px}._medium-icon_imn4j_5{height:14px}._large-icon_imn4j_9{height:16px}._xlarge-icon_imn4j_13{height:20px}._digit_1rfzd_1{height:50%;display:flex;align-items:center;&._hidden_1rfzd_5{visibility:hidden}}._selection-text_1rfzd_10{color:transparent!important;background:transparent!important}._container_zkl3s_1{font-size:10px;color:var(--gray-8)}._added_zkl3s_6{color:#436c48}._removed_zkl3s_10{color:#925959}._container_1i8oq_1{position:absolute;top:14px;transform:translate(round(down,-50%,1px));left:50%;display:flex;justify-content:center;z-index:100;._toast_1i8oq_10{border-radius:10px;padding:8px;min-width:180px;display:flex;justify-content:center;align-items:center;z-index:100;&._disconnected_1i8oq_19{background:repeating-linear-gradient(115deg,var(--failure-color),var(--failure-color) 7px,var(--toast-disconnected-color) 7px,var(--toast-disconnected-color) 8px)}&._connecting_1i8oq_29{background:repeating-linear-gradient(115deg,var(--toast-connecting-start-color),var(--toast-connecting-start-color) 7px,var(--toast-connecting-end-color) 7px,var(--toast-connecting-end-color) 8px)}._text_1i8oq_39{color:#000;font-size:18px;font-style:normal;font-weight:600;text-align:center}}}._slots-list_1sk8v_1{scrollbar-width:none;&._hidden_1sk8v_3{visibility:hidden}}._no-slots-text_1sk8v_8{font-size:12px;color:var(--regular-text-color);text-align:center}._slot-group-container_1sejw_1{padding-bottom:5px;background:var(--slot-nav-background-color)}._slot-group_1sejw_1{column-gap:4px;row-gap:3px;border-radius:5px;background:var(--slots-list-slot-background-color);font-size:10px}._left-column_1sejw_14{flex-grow:1;min-width:0;gap:4px}._future_1sejw_20{padding:3px;background:var(--slots-list-future-slot-background-color);color:var(--slots-list-future-slot-color);img{filter:grayscale(100%)}&._you_1sejw_28{border:solid var(--slots-list-not-processed-my-slots-border-color);border-width:2px 1px 1px 1px;padding:2px 3px 3px;background:var(--slots-list-my-slot-background-color)}}._current_1sejw_36{padding:2px;border:1px solid var(--container-border-color);background-color:var(--container-background-color);color:var(--slots-list-slot-color);box-shadow:0 0 16px 0 var(--slots-list-current-slot-box-shadow-color) inset;._slot-name_1sejw_43{font-size:18px}&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{border-width:3px 1px 1px 1px;border-color:var(--slots-list-my-slots-selected-border-color)}}._current-slot-row_1sejw_57{background-color:var(--slots-list-current-slot-number-background-color);border-radius:5px;padding:3px}._past_1sejw_63{padding:3px;color:var(--slots-list-past-slot-color);&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{background:var(--slots-list-my-slot-background-color);&._processed_1sejw_74{text-decoration:none;padding:2px;border:solid var(--slots-list-my-slots-border-color);border-width:3px 1px 1px 1px;background:var(--slots-list-my-slot-background-color);color:var(--slots-list-past-slot-color);&:hover,&:active{border-color:var(--slots-list-my-slots-selected-border-color)}&._selected_1sejw_87{background:var(--slots-list-selected-background-color);border-color:var(--slots-list-my-slots-selected-border-color)}&._skipped_1sejw_47,&._selected_1sejw_87._skipped_1sejw_47{background:var(--slots-list-skipped-selected-background-color)}}}}._slot-name_1sejw_43{font-size:12px;font-weight:400}._ellipsis_1sejw_105{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._slot-item-content_1sejw_111{align-items:center;gap:4px;font-size:10px;font-weight:400;color:var(--slots-list-past-slot-number-color)}._placeholder_1sejw_119{height:42px}._slot-statuses_1sejw_123{._slot-status_1sejw_123{width:4px;height:6px;background:var(--slot-status-gray);border:1px solid transparent;border-radius:2px;align-items:flex-end;._slot-status-progress_1sejw_132{width:100%;height:100%;transform-origin:bottom;will-change:transform;animation:_fillProgress_1sejw_1 var(--slot-duration) ease-in-out forwards;background-color:var(--slot-status-blue)}}&._tall_1sejw_142{gap:3px;._slot-status_1sejw_123{flex-grow:1}}&._short_1sejw_149 ._slot-status_1sejw_123{height:3px;border-radius:1px}}@keyframes _fillProgress_1sejw_1{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes _shimmer_1sejw_184{0%{transform:translate(0)}to{transform:translate(200%)}}._scroll-slots-placeholder_1sejw_173{background:var(--slots-list-slot-background-color);._absolute-full-size_1sejw_176{position:absolute;top:0;left:0;width:100%;height:100%}._shimmer_1sejw_184{margin-left:-100%;will-change:transform;background:linear-gradient(to right,#fff0,#fff6f60d,#fff0);animation:_shimmer_1sejw_184 1.5s infinite}}._scroll-placeholder-item_1sejw_197{height:46px;margin-bottom:5px;border-radius:5px;box-shadow:0 0 0 4px var(--slot-nav-background-color)}._progress_51hag_1{background:var(--progress-gutter-background-color);flex-grow:0;div{background:var(--progress-background-color)}}._container_1l1zm_1{display:flex;justify-content:center;._button_1l1zm_5{position:absolute;width:100px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._epoch-progress_niwu5_1{width:100%;background:var(--epoch-slider-progress-color);position:absolute;bottom:0}._clickable_niwu5_8{cursor:pointer}._leader-slot_niwu5_12{width:100%;background:#2a7edf;height:5px;position:absolute;opacity:.5;&:hover{filter:brightness(1.5)}&._before-start_niwu5_21{filter:brightness(.5)}}._skipped-slot_niwu5_26{width:100%;background:#ff5353;height:3px;position:absolute;&:hover{filter:brightness(1.5)}}._skipped-slot-icon_niwu5_36{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._first-processed-slot_niwu5_45{width:100%;background:#bdf3ff;height:3px;position:absolute;right:0;&:hover{filter:brightness(1.5)}}._first-processed-slot-icon_niwu5_56{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._slider-root_niwu5_65{position:relative;flex-grow:1;width:10px;display:flex;flex-direction:column;align-items:center;user-select:none;touch-action:none}._slider-track_niwu5_76{background:#24262b;flex-grow:1;width:100%}._slider-thumb_niwu5_82{display:block;position:relative;height:10px;width:20px;background:#64656580;border:1px solid #a4a4a4;border-radius:2px;cursor:grab;&._collapsed_niwu5_92{border-left-width:0;transition:border-width 0s linear .2s}}._slider-thumb_niwu5_82:hover{background:#6465654d}._slider-thumb_niwu5_82:focus{outline:none;box-shadow:0 0 0 2px var(--gray-a8)}._tooltip_niwu5_106{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap}._hide_niwu5_114{opacity:0;display:none;transition:opacity .5s ease-out 1s,display 0s 1.5s;transition-behavior:allow-discrete}._show_niwu5_123{opacity:1;display:block}._text_nk1yn_1{color:var(--primary-text-color);font-size:18px;font-weight:500}._container_k3j09_1{gap:var(--space-2);display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}._container_k6h1w_1{position:absolute;right:0;top:8px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:1;._stats-container_k6h1w_12{padding:5px 5px 5px 7px;border-radius:8px;background:#111111e6;._slot-stats-toggle-button_k6h1w_17{margin:-2px -4px;align-self:flex-end;display:flex;padding:0 4px;box-shadow:unset;color:var(--icon-button-color);gap:4px;height:16px}._stats_k6h1w_12{display:grid;grid:auto auto / auto auto;column-gap:10px;row-gap:4px;min-width:203px;font-variant-numeric:tabular-nums;color:var(--sankey-base-label-color);font-size:12px;line-height:normal;._success-rate_k6h1w_40{color:var(--sankey-success-rate-color)}}}._toggle-group_k6h1w_46{display:inline-flex;button{all:unset}._toggle-group-item_k6h1w_53{background:var(--toggle-item-background-color);color:#747575;padding:2px 4px;align-items:center;justify-content:center;margin-left:1px;cursor:pointer}._toggle-group-item_k6h1w_53:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}._toggle-group-item_k6h1w_53:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}._toggle-group-item_k6h1w_53:hover{filter:brightness(1.2)}._toggle-group-item_k6h1w_53[data-state=on]{background-color:#6184a4;color:#1f1f1f}}}._slot-performance-container_6u4bp_1{container:slot-performance / inline-size}._sankey-container_6u4bp_5{position:relative;aspect-ratio:4;min-height:450px;overflow:hidden;._slot-sankey-container_6u4bp_11{height:100%}}@container slot-performance (width < 600px){._sankey-container_6u4bp_5{aspect-ratio:1 / 3;overflow-x:clip;._slot-sankey-container_6u4bp_11 svg{transform:rotate(90deg) translateY(-100%) translate(15px);transform-origin:top left}}}._tooltip_102uq_1{padding:4px;border-radius:5px;background:#121212;display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_102uq_17{color:#754d12}._compute-units_102uq_21{color:var(--compute-units-color)}._elapsed-time_102uq_25{color:var(--elapsed-time-color)}._prio-fee_102uq_29{color:var(--fees-color)}._tips_102uq_33{color:var(--tips-color)}._label_102uq_37{font-weight:600;text-align:left}}._chart_102uq_43{flex-grow:1;height:25vw;min-height:250px;max-height:600px;position:relative;margin-left:-8px;margin-right:-8px}._chart_1hpd4_1{.uplot .legend .series:first-child,.uplot .legend .series th:after,.uplot .legend .series td{display:none}.lib-toggles{margin-top:20px;text-align:center}.u-select{background:#ffffff1a}.hidden{color:silver}.u-cursor-pt{border-radius:0}.uplot{margin-bottom:20px;padding:10px;box-shadow:0 0 10px #0000004d}}._focused_1hpd4_32{.u-over{border:1px solid var(--focused-border-color)}}._icon-container_1i4gu_1{display:none}._tooltip_h8khk_1{z-index:1;position:absolute;background:var(--Colors-Gray-1, #111);padding:6px 8px;border-radius:8px;max-height:none!important;max-width:none!important}._tooltip_11ays_1{display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_11ays_14{color:#754d12}._compute-units_11ays_18{color:var(--compute-units-color)}._elapsed-time_11ays_22{color:var(--elapsed-time-color)}._fees_11ays_26{color:var(--fees-color)}._tips_11ays_30{color:var(--tips-color)}._label_11ays_34{font-weight:600;text-align:left}}._button_1b3a4_1{all:unset;background:var(--toggle-item-background-color);color:var(--toggle-item-text-color);font-weight:510;height:23px;padding:0 8px;display:flex;font-size:12px;line-height:16px;align-items:center;justify-content:center;user-select:none;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:not([data-disabled]):hover{background:#3e62bd52}&[data-disabled]{cursor:not-allowed;font-weight:400;filter:brightness(.7)}}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}._group-label_1cg9k_1{margin-right:8px;&._min-text-width_1cg9k_4{min-width:50px}}._group_1cg9k_1{display:inline-flex;background-color:var(--mauve-6);border-radius:4px;box-shadow:0 2px 10px var(--black-a7);&._tooltip-open_1cg9k_15{box-shadow:0 0 0 2px var(--slot-details-chart-controls-triggered);._item_1cg9k_18:focus-visible{box-shadow:unset}}}._item_1cg9k_18{all:unset;background-color:var(--toggle-item-background-color);color:var(--toggle-item-text-color);height:22px;padding:0 8px;display:flex;font-size:12px;align-items:center;justify-content:center;margin-left:1px;user-select:none;font-weight:400;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:hover{background:#3e62bd52}&[data-state=on]{background-color:#4a4a4a;color:#f0f0f0;font-weight:510}&:focus-visible{position:relative;box-shadow:0 0 0 2px var(--focus-8)}._item-color_1cg9k_65{width:4px;height:16px;margin-right:4px}}._slider_zs58s_1{width:190px;flex-grow:1;position:relative;.rt-SliderRoot{&:before{position:absolute;content:"";height:calc(100% + 4px);top:-2px;left:calc(var(--slot-start-pct) - .5px);width:1px;background:var(--toggle-item-text-color);z-index:1}&:after{position:absolute;content:"0ms";font-size:10px;height:12px;bottom:-16px;left:calc(var(--slot-start-pct) - .5px);transform:translate(-50%);color:#fff;z-index:1}span:has(>.rt-SliderThumb){z-index:2}span:has(>[aria-label=Minimum]):after{content:var(--min-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}span:has(>[aria-label=Maximum]):after{content:var(--max-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}}}._arrival-label_zs58s_68{color:#fff}._slider-label_zs58s_72{color:#fff;font-size:12px}._minimize-button_zs58s_77{position:absolute;top:4px;right:4px}._chart-control-tooltip_zs58s_83{background:var(--blue-11);color:#111113;.rt-TooltipText{font-size:12px;overflow-wrap:break-word}.rt-TooltipArrow{fill:var(--blue-11)}}._label_1q3ew_1{font-size:14px;color:#fff}._dropdownButton_1yasw_1{border-top-right-radius:0;border-bottom-right-radius:0}._input-container_1yasw_6{box-sizing:border-box;--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:0 var(--text-field-border-radius) var(--text-field-border-radius) 0;font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);width:240px;&._sm_1yasw_20{width:180px}button{box-sizing:content-box;--margin-left-override: 0px;--margin-right-override: 0px}@supports selector(:has(*)){&:has(input:focus){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){&:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}[cmdk-input]{flex:1;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));border:none;outline:none;width:100%;padding:0 var(--space-2);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);background:#0000;border-radius:0;caret-color:#6e5ed2;margin:0;&::placeholder{color:var(--gray-a10)}}}._content_1yasw_68{background:var(--gray-4);width:var(--radix-popover-trigger-width);max-height:400px;&:has(>[cmdk-list]>[cmdk-list-sizer]:not(:empty)){padding-bottom:var(--space-1)}[cmdk-list]{height:min(300px,var(--cmdk-list-height));max-height:400px;overflow:auto;overscroll-behavior:contain}[cmdk-group-heading]{user-select:none;font-size:14px;color:var(--slate-11);padding:0 8px;display:flex;align-items:center;padding:var(--space-1) var(--space-3)}[cmdk-empty],[cmdk-loading]{color:#f1f7feb5;padding-bottom:0!important}[cmdk-item],[cmdk-empty],[cmdk-loading]{content-visibility:auto;cursor:pointer;font-size:var(--font-size-2);text-wrap:nowrap;display:flex;align-items:center;gap:12px;padding:var(--space-1) var(--space-3);border-radius:4px;user-select:none;position:relative;&[data-selected=true]{background:var(--teal-5)}&[data-disabled=true]{color:var(--gray-8);cursor:not-allowed}&:active{background:var(--gray-4)}+[cmdk-item]{margin-top:4px}}}._tooltip-open_1yasw_135{outline-offset:-1px;outline:2px solid var(--slot-details-chart-controls-triggered)!important}._text_1k6sv_1{span{color:var(--gray-12);font-size:var(--font-size-2);text-wrap:nowrap;&._faded_1k6sv_7{color:var(--faded-text)}&._ellipsis_1k6sv_11{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}}._container_14qh6_1{position:absolute;z-index:3;right:5px;top:5px;display:flex;align-items:center;gap:8px;._label_14qh6_10{user-select:none;color:#60646c;font-size:12px}}#txn-bars-tooltip{z-index:3;position:absolute;background:var(--Colors-Gray-1, #111);border-radius:8px;max-height:none!important;max-width:none!important;margin:6px 8px;._state_1bdpv_11{font-weight:700;color:var(--Colors-Neutral-Neutral-10, #777b84)}span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;color:var(--color-override, #777b84)}._cu-bars_1bdpv_24{flex:1;width:0;padding:4px 0}._duration-container_1bdpv_30{flex:1;background:#363a3f80;padding:4px 0;margin:4px 0;width:0}._value-text_1bdpv_38{overflow-wrap:anywhere}._unit_1bdpv_42{font-family:Roboto Mono,monospace;margin-left:2px;flex-shrink:0;white-space:nowrap}}._separator_1pgc5_1{background:var(--row-separator-background-color)}._search-grid_gudx6_1{align-content:center}._search-label_gudx6_5{font-size:16px;font-weight:500;color:var(--slot-details-search-label-color)}._search-field_gudx6_11{width:100%}._error-text_gudx6_15{color:var(--failure-color)}._quick-search-card_gudx6_19{border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);color:var(--slot-details-quick-search-text-color)}._quick-search-header_gudx6_26{color:var(--quick-search-color);font-size:18px;svg{width:32px;height:32px;fill:var(--quick-search-color)}}._quick-search-slot_gudx6_37{font-size:12px;&._clickable_gudx6_40{cursor:pointer;color:var(--slot-details-clickable-slot-color)}&:not(._clickable_gudx6_40){cursor:not-allowed;pointer-events:none}}._quick-search-metric_gudx6_51{font-size:12px}._slot-item-group_p1cnp_1{gap:4px;padding:2px;border-radius:5px;border:1px solid var(--slot-details-my-slots-not-selected-color);border-top-width:3px;&._disabled_p1cnp_8{border:1px solid var(--slot-details-disabled-slot-border-color);border-top-width:3px}&._is-selected_p1cnp_13{border:1px solid var(--slots-list-my-slots-selected-border-color);border-top-width:3px}}._slot-item_p1cnp_1{text-decoration:none;display:flex;justify-content:center;align-items:center;padding:3px 10px;gap:10px;font-size:12px;font-weight:400;border-radius:3px;box-sizing:border-box;width:var(--item-width);background:var(--slot-details-background-color);color:var(--slot-details-color);&._selected-slot_p1cnp_35{font-weight:600;background:var(--slot-details-selected-background-color);color:var(--slot-details-selected-color)}&._skipped-slot_p1cnp_41{background:var(--slot-details-skipped-background-color)}&._skipped-slot_p1cnp_41._selected-slot_p1cnp_35{background:var(--slot-details-skipped-selected-background-color)}}._fade_p1cnp_50{position:absolute;top:0;bottom:0;width:clamp(32px,8vw,96px);pointer-events:none;&._fade-left_p1cnp_57{left:0;background:linear-gradient(to left,transparent 0%,black 100%)}&._fade-right_p1cnp_62{right:0;background:linear-gradient(to right,transparent 0%,black 100%)}}._small-icon_1vpxu_1{width:14px;height:14px}._large-icon_1vpxu_6{width:15px;height:15px}._header_1s5d9_1{font-size:14px;font-weight:600;color:var(--slot-details-stats-tertiary)}._subheader_1s5d9_7{font-size:12px;color:var(--slot-details-stats-tertiary)}._label_1s5d9_12{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap}._value_1s5d9_18{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;--popover-trigger-color: var(--slot-details-stats-secondary);--popover-trigger-hover-color: var(--slot-details-stats-primary)}._table-header_1s5d9_26{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap}._table-row-label_1s5d9_32{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-tertiary)}}._table-cell-value_1s5d9_42{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-primary)}}._grid_1s5d9_52{padding:5px 10px;border-radius:8px;border-bottom:1px solid rgba(250,250,250,.12);background:linear-gradient(0deg,#fafafa0d,#fafafa00);._label_1s5d9_12,._value_1s5d9_18{font-size:14px}._name_1s5d9_67{font-weight:600;color:#ccc;&._lg_1s5d9_70{font-size:18px;contain:inline-size;width:100%}}}._copy-button_1s5d9_79{flex-shrink:1;min-width:0;color:var(--slot-details-stats-primary)}._time-popover_1s5d9_85{flex-shrink:1;min-width:0;max-width:fit-content}._container_1w2fb_1{height:13px;border-radius:4px;._label_1w2fb_5{font-size:10px;color:var(--slot-details-stats-primary);pointer-events:none}}._clickable_1w2fb_12{appearance:none;border:none;padding:0;cursor:pointer;transition:all .3s ease;&:hover{height:15px;transform:translateY(-2px);filter:brightness(1.2);box-shadow:0 4px 8px #0006;outline:.5px solid #e5e7eb;z-index:1}}._container_id19r_1{font-size:12px;padding:0 5px}._label_id19r_6{color:var(--popover-secondary-color)}._value_id19r_10{color:var(--popover-primary-color);text-align:end}._popover-trigger_id19r_15{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;font:inherit;color:inherit}._popover-underline-overlay_id19r_23{position:absolute;inset:0;&:hover ._popover-text-underline_id19r_27{text-decoration-color:var( --popover-trigger-hover-color, var(--primary-text-color) )}}._popover-text-underline_id19r_27{color:transparent!important;text-overflow:clip;transition:text-decoration-color .2s ease;text-decoration:underline dotted var(--popover-trigger-color, var(--secondary-text-color))}._card_ybszl_1{padding:10px;border-radius:8px;border:1px solid #1c1e2b;background:#101123;color:var(--primary-text-color);._name-text_ybszl_8{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._pubkey-text_ybszl_14{flex-grow:1;min-width:390px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._narrow-screen_ybszl_21{flex-grow:0;min-width:inherit}}&._two-away_ybszl_27{border:1px solid #2a2c38;background:#131524;opacity:1.6}&._one-away_ybszl_33{border:1px solid #295060;background:#142432}._time-till_ybszl_38{min-width:250px;&._narrow-screen_ybszl_21{min-width:inherit}}}._my-slots_kxi8u_1{border-color:#2a7edfa6!important;box-shadow:inset 0 4px #2a7edfa6;background:#2a7edf33}._scroll_kxi8u_7{touch-action:none;& *{touch-action:none}span{user-select:text}}._card_zlaiw_1{border-radius:8px;border:1px solid #30323a;background:#151b25;padding:9px 10px 5px;&._late-vote_zlaiw_7{border:1px solid #2f1e7c;background:#120f2e}&._skipped_zlaiw_12{border:1px solid rgba(255,71,71,.38);background:#bd3e3e26}}._grid_1feao_1{display:grid;grid:auto-flow / minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto);overflow-x:auto;min-width:80px;touch-action:pan-x;& *{touch-action:pan-x}scrollbar-width:thin;scrollbar-color:#cbcbcb20 #cbcbcb01;width:100%;&._firedancer-grid_1feao_16{grid:auto-flow / minMax(80px,auto) minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto)}}._header-text_1feao_24{font-size:12px;color:var(--slot-card-header-text-color);padding:3px 0}._vote-latency-header_1feao_30{color:var(--vote-latency-color)}._votes-header_1feao_33{color:var(--votes-color)}._non-votes-header_1feao_36{color:var(--success-color)}._fees-header_1feao_39{color:var(--fees-color)}._tips-header_1feao_42{color:var(--tips-color)}._compute-units-header_1feao_45{color:var(--compute-units-color);padding:0}._compute-units-pct_1feao_50{width:50px;display:inline-block}._row-text_1feao_55{white-space:nowrap;color:var(--slot-card-section-secondary-color);font-variant-numeric:tabular-nums;border-top:1px solid rgba(250,250,250,.12);padding:1px 0 0;&._active_1feao_62{background:var(--container-background-color);color:var(--slot-card-section-primary-color)}}._slot-text_1feao_68{color:var(--slot-card-section-primary-color);border-right:1px solid rgba(250,250,250,.12);padding-right:5px}.CircularProgressbar{width:100%;vertical-align:middle}.CircularProgressbar .CircularProgressbar-path{stroke:#3e98c7;stroke-linecap:round;-webkit-transition:stroke-dashoffset .5s ease 0s;transition:stroke-dashoffset .5s ease 0s}.CircularProgressbar .CircularProgressbar-trail{stroke:#d6d6d6;stroke-linecap:round}.CircularProgressbar .CircularProgressbar-text{fill:#3e98c7;font-size:20px;dominant-baseline:middle;text-anchor:middle}.CircularProgressbar .CircularProgressbar-background{fill:#d6d6d6}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background{fill:#3e98c7}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text{fill:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path{stroke:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail{stroke:transparent}._slot-text_j49it_1{user-select:text;a:link{text-decoration:none;color:var(--slot-text-link-color)}a:visited{text-decoration:none;color:var(--slot-text-visited-link-color)}a:active,a:hover{text-decoration:none;color:var(--slot-text-active-link-color)}}._my-slots_476vd_1{color:var(--summary-my-slots-color);border-radius:10px;background:var(--container-background-color);padding:2px 5px}._summary-container_476vd_8{width:40%;min-width:500px}._name_476vd_13{color:var(--summary-primary-text-color);font-size:24px;min-width:30px;line-height:30px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._you_476vd_22{color:var(--gray-12)}&._mobile_476vd_26{font-size:inherit;line-height:16px}}._primary-text_476vd_32{font-style:normal;color:var(--summary-primary-text-color);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._secondary-text_476vd_40{color:var(--summary-secondary-text-color);>span{line-height:normal}}._divider_476vd_47{color:var(--summary-primary-text-color)}._mobile_476vd_26{font-size:12px}._firedancer_476vd_55{color:var(--summary-firedancer-text-color)}._frankendancer_476vd_59{color:var(--summary-frankendancer-text-color)}._agave_476vd_63{color:var(--summary-agave-text-color)}._jito_476vd_67{color:var(--summary-jito-text-color)}._paladin_476vd_71{color:var(--summary-paladin-text-color)}._bam_476vd_75{color:var(--summary-bam-text-color)}._sig_476vd_79{color:var(--summary-sig-text-color)}._rakurai_476vd_83{background:var(--summary-rakurai-text-color);background-clip:text;color:transparent}._harmonic_476vd_89{color:var(--summary-harmonic-text-color)}._major-minor-version-text_476vd_93{flex-shrink:0}._remaining-version-text_476vd_97{min-width:1em;flex-shrink:2}._time-ago_476vd_102{text-align:left;&._right-aligned_476vd_105{text-align:right}}._arrow-dropdown_mvcj2_1{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px}._card_wweyx_1{border-radius:8px;border:2px solid rgba(96,215,193,.65);background:#1b2432;box-shadow:0 0 4px #1ce7c291;padding:10px}._preload_1uziq_1{display:none}._container_1hof6_1{display:flex;justify-content:center;._button_1hof6_5{position:absolute;width:115px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._label_14v9a_1{color:#737373}._value_14v9a_5{color:var(--next-slot-value-color);min-width:50px}._container_bc437_1{margin-bottom:16px;margin-left:24px;container:search / inline-size;input:placeholder-shown{text-overflow:ellipsis}}@media (max-width: 700px){._container_bc437_1{margin-bottom:8px;margin-left:0}}._search-box_bc437_18{justify-self:"center";min-width:400px}@container search (width < 600px){._search-box_bc437_18{min-width:100%}}._label_bc437_29{color:"#766A6A"}._search-button_bc437_33{display:flex;height:100%;padding:4px 10px;align-items:center;gap:8px;align-self:stretch;border-radius:8px;&:focus{box-shadow:0 0 0 2px #000}._label_bc437_29{color:#717171}&:hover,&[data-state=on]{._label_bc437_29{color:#a1a1a1}&._disabled_bc437_56{._label_bc437_29{color:#717171}}}}._my-slots_bc437_64{border-radius:8px;border:1px solid #1c4f8f;border-top-width:3px;background:#0d1c36;color:#4497f7;&:hover{border-color:#2a7edf;background:#0d3059;color:#2a7edf}&[data-state=on]{border-color:#2a7edf;background:#073c7b;color:#2a7edf}}._late-vote-slots_bc437_84{border:1px solid #2f1e7c;background:#130f33;color:#896fec;&:hover{border-color:#341f92;background:#1b1450;color:#896fec}&[data-state=on]{border-color:#5530e4;background:#38218f;color:#896fec}}._skipped-slots_bc437_102{border:1px solid #461e1f;background:#1f0a0b;color:var(--failure-color);&:hover{border-color:#752626;background:#321112}&[data-state=on]{border-color:#823737;background:#501717}}._disabled_bc437_56{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color);&:hover{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color)}}._skip-rate-label_bc437_130{color:var(--skip-rate-label-color);line-height:normal}._skip-rate-value_bc437_135{color:var(--failure-color);line-height:normal}._header-text_n52ov_1{color:var(--primary-text-color);font-size:18px}._storage-stats-container_n52ov_6{contain:size}._root_n52ov_11{min-height:0;thead{th{font-size:12px;font-weight:400;color:var(--gossip-table-header-color)}}tbody{th,td{font-size:14px;color:var(--gossip-table-body-color)}}td,th{white-space:nowrap}td{text-align:right}}._align-right_n52ov_39{text-align:right}._label_1nl74_1{color:#a2a2a2;font-size:14px}._value_1nl74_6{color:#9f9f9f;font-size:28px}._header-text_uidb2_1{color:var(--primary-text-color);font-size:18px}div:has(>._tooltip_uidb2_8){width:1px;height:1px}._tooltip_uidb2_8{width:fit-content;transform:translate(calc(-100% - 5px));padding:4px;background:#131923;border:1px solid #2e343e;border-radius:4px 8px;color:var(--regular-text-color);span{white-space:nowrap}}._header-text_1ozln_1{color:var(--primary-text-color);font-size:18px}._peer-table_1ozln_6{thead{tr{font-size:12px;color:var(--gossip-table-header-color)}}tbody{tr{font-size:14px;color:var(--gossip-table-body-color)}}}._header-cell_1ozln_22{padding:var(--table-cell-padding)}._header-separator_1ozln_26{background:var(--gray-7)}._body-cell_1ozln_30{outline-offset:-2px;&._selected_1ozln_33{outline:1px dashed var(--gray-10);&._copied_1ozln_36{outline:1px dashed var(--gray-11)}}}._header-text_skmjj_1{color:var(--primary-text-color);font-size:18px}._total-text_skmjj_6{color:var(--gray-7);font-size:18px}._throughput-text_skmjj_11{color:var(--gray-10);font-size:18px}._leaf_skmjj_16{border-radius:2px;cursor:pointer;background-color:var(--leaf-color);&:hover{background-color:color-mix(in hsl,var(--leaf-color),#ffffff1a)}._leaf-content_skmjj_24{font-size:10px;._name_skmjj_27{color:#ccc;align-self:stretch;&._large_skmjj_30{font-size:12px}}._stats_skmjj_34{color:var(--table-body-color)}}}._tooltip_skmjj_40{.rt-TooltipArrow{display:none!important}}._axis-text_juf3d_1{color:var(--transaction-axis-text-color);font-size:8px;line-height:normal}._container_muoex_1{font-size:10px;color:var(--regular-text-color)}._label_muoex_6{font-size:12px;line-height:normal;text-wrap:nowrap}._value_muoex_12{line-height:normal;color:var(--value-color, var(--regular-text-color));overflow:hidden;&._small_muoex_17{font-size:18px;font-weight:500}&._medium_muoex_21{font-size:28px;letter-spacing:-1.12px}&._large_muoex_25{font-size:32px;line-height:16px}}._append-value_muoex_31{line-height:normal;color:var(--append-value-color)}._vote-tps_kqvrt_1{min-width:90px}._stat-row_1ia1g_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;&:first-child{flex-grow:0;min-width:80px}}}._stat-row_11bim_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1;min-width:180px}}._stat-row_kmlhn_1{display:flex;flex-wrap:wrap;gap:8px;width:100%;>div{flex:1 1 auto;min-width:180px}}._progress_kmlhn_13{min-width:140px}._chart_7b67t_1{padding-top:0;padding-bottom:0;vertical-align:middle}._table_7b67t_7 table tbody ._row_7b67t_7{&._total-row_7b67t_8{border-top:1px solid rgba(250,250,250,.5)}th,td{color:var(--table-body-color)}}._group-header_1lbrc_1{text-align:center;padding:5px}._header_1lbrc_6{th{vertical-align:bottom;&._wrap_1lbrc_9{white-space:normal}}}._table_1lbrc_15{table{table-layout:fixed;._data-row_1lbrc_19{._green_1lbrc_20{color:var(--green-9)}._red_1lbrc_24{color:var(--red-9)}td{.rt-Text{line-height:inherit}color:var(--table-body-color);text-align:left;&[align=right]{text-align:right}vertical-align:middle;&._pct-gradient_1lbrc_43{color:color-mix(in srgb,var(--tile-busy-green-color),var(--tile-busy-red-color) var(--pct))}&._no-padding_1lbrc_51{padding-top:0;padding-bottom:0}._increment-text_1lbrc_56{min-width:5ch;display:inline-block;font-variant-numeric:tabular-nums;&._low-increment_1lbrc_61{color:var(--low-increment-text-color)}&._mid-increment_1lbrc_64{color:var(--mid-increment-text-color)}&._high-increment_1lbrc_67{color:var(--high-increment-text-color)}}}}tr{border:solid rgba(250,250,250,.12);border-width:1px 0px}._light-border-bottom_1lbrc_79{border-bottom:1px solid rgba(250,250,250,.36)}._right-border_1lbrc_83{border-right:1px solid rgba(250,250,250,.36)}td._right-border_1lbrc_83{padding-right:10px}td,th{box-shadow:none}}}._table-description-dialog_1shm8_1{overflow-y:auto;._table_1shm8_1{padding:var(--space-3) 8px;--table-cell-padding: 5px;._th_1shm8_8{font-size:12px;font-weight:400;color:var(--table-header-color)}._tr_1shm8_14{font-size:14px;color:var(--table-body-color);&:last-child td{box-shadow:none}._name_1shm8_22{white-space:nowrap}}}._close-button_1shm8_28{cursor:pointer}}._slot-label-card_1pson_1{border-radius:3px;padding:2px 3px;background-color:var(--gray-3);color:var(--slot-timeline-text-color);.rt-Text{font-size:12px;line-height:normal}}._slot-label-name_1pson_13{flex-shrink:100000000}._slot-label-dt_1pson_16{display:flex;white-space:pre;._dt-sign_1pson_19{line-height:14px}}._slot-bar_1pson_24{border-radius:2px;background:var(--bar-color, #3f434b);pointer-events:none;&._dim_1pson_29{background:#2d3138}}._slot-bar-track_1pson_34{height:90px}._next-leader-container_1pson_38{container-type:inline-size;container-name:next-leader-container}@container next-leader-container (width < 300px){._next-leader-timer-label_1pson_44{display:none}}@container next-leader-container (width < 130px){._next-leader-timer-container_1pson_50{display:none}}._stat-row_1xsdi_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;min-width:100px;&._storage-stat-container_1xsdi_10{min-width:160px}}}._trailing_10pox_1{color:var(--gray-9)}._cards_hn4o1_1{grid-template-columns:minmax(300px,1fr)}._txns-card_hn4o1_5{grid-column:1 / -1}@media (min-width: 900px){._cards_hn4o1_1{grid-template-columns:1fr 1fr}._txns-card_hn4o1_5{grid-column:1 / -1}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:2}}}@media (min-width: 1512px){._cards_hn4o1_1{grid-template-columns:1fr 1fr 1fr}._txns-card_hn4o1_5{grid-column:span 2}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:span 3}}}@media (min-width: 1850px){._cards_hn4o1_1{grid-template-columns:1fr 1.5fr 1.7fr 2fr;&._frankendancer_hn4o1_18{grid-template-columns:1fr 1fr 1fr}}._txns-card_hn4o1_5{grid-column:1 / -1}}body{margin:0;min-width:320px;min-height:100vh} diff --git a/src/disco/gui/dist_dev/assets/wsWorker-D3WzW2i7.js b/src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js similarity index 97% rename from src/disco/gui/dist_dev/assets/wsWorker-D3WzW2i7.js rename to src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js index c4bab3fcca3..ba83348597e 100644 --- a/src/disco/gui/dist_dev/assets/wsWorker-D3WzW2i7.js +++ b/src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js @@ -35,4 +35,4 @@ `)}j.write("payload.value = newResult;"),j.write("return payload;");const pA=j.compile();return(MA,xA)=>pA($,MA,xA)};let a;const h=Hn,w=!Vo.jitless,v=w&&$I.value,F=i.catchall;let x;r._zod.parse=($,j)=>{x??(x=E.value);const P=$.value;return h(P)?w&&v&&j?.async===!1&&j.jitless!==!0?(a||(a=g(i.shape)),$=a($,j),F?rB([],P,$,j,x,r):$):u($,j):($.issues.push({expected:"object",code:"invalid_type",input:P,inst:r}),$)}});function oB(r,i,u,E){for(const a of r)if(a.issues.length===0)return i.value=a.value,i;const g=r.filter(a=>!nn(a));return g.length===1?(i.value=g[0].value,g[0]):(i.issues.push({code:"invalid_union",input:i.value,inst:u,errors:r.map(a=>a.issues.map(h=>Gt(h,E,it())))}),i)}const Us=H("$ZodUnion",(r,i)=>{HA.init(r,i),te(r._zod,"optin",()=>i.options.some(g=>g._zod.optin==="optional")?"optional":void 0),te(r._zod,"optout",()=>i.options.some(g=>g._zod.optout==="optional")?"optional":void 0),te(r._zod,"values",()=>{if(i.options.every(g=>g._zod.values))return new Set(i.options.flatMap(g=>Array.from(g._zod.values)))}),te(r._zod,"pattern",()=>{if(i.options.every(g=>g._zod.pattern)){const g=i.options.map(a=>a._zod.pattern);return new RegExp(`^(${g.map(a=>ea(a.source)).join("|")})$`)}});const u=i.options.length===1,E=i.options[0]._zod.run;r._zod.parse=(g,a)=>{if(u)return E(g,a);let h=!1;const w=[];for(const k of i.options){const v=k._zod.run({value:g.value,issues:[]},a);if(v instanceof Promise)w.push(v),h=!0;else{if(v.issues.length===0)return v;w.push(v)}}return h?Promise.all(w).then(k=>oB(k,g,r,a)):oB(w,g,r,a)}}),aB=H("$ZodDiscriminatedUnion",(r,i)=>{Us.init(r,i);const u=r._zod.parse;te(r._zod,"propValues",()=>{const g={};for(const a of i.options){const h=a._zod.propValues;if(!h||Object.keys(h).length===0)throw new Error(`Invalid discriminated union option at index "${i.options.indexOf(a)}"`);for(const[w,k]of Object.entries(h)){g[w]||(g[w]=new Set);for(const v of k)g[w].add(v)}}return g});const E=Pi(()=>{const g=i.options,a=new Map;for(const h of g){const w=h._zod.propValues?.[i.discriminator];if(!w||w.size===0)throw new Error(`Invalid discriminated union option at index "${i.options.indexOf(h)}"`);for(const k of w){if(a.has(k))throw new Error(`Duplicate discriminator value "${String(k)}"`);a.set(k,h)}}return a});r._zod.parse=(g,a)=>{const h=g.value;if(!Hn(h))return g.issues.push({code:"invalid_type",expected:"object",input:h,inst:r}),g;const w=E.value.get(h?.[i.discriminator]);return w?w._zod.run(g,a):i.unionFallback?u(g,a):(g.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:i.discriminator,input:h,path:[i.discriminator],inst:r}),g)}}),sB=H("$ZodIntersection",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value,a=i.left._zod.run({value:g,issues:[]},E),h=i.right._zod.run({value:g,issues:[]},E);return a instanceof Promise||h instanceof Promise?Promise.all([a,h]).then(([k,v])=>gB(u,k,v)):gB(u,a,h)}});function Gs(r,i){if(r===i)return{valid:!0,data:r};if(r instanceof Date&&i instanceof Date&&+r==+i)return{valid:!0,data:r};if(rn(r)&&rn(i)){const u=Object.keys(i),E=Object.keys(r).filter(a=>u.indexOf(a)!==-1),g={...r,...i};for(const a of E){const h=Gs(r[a],i[a]);if(!h.valid)return{valid:!1,mergeErrorPath:[a,...h.mergeErrorPath]};g[a]=h.data}return{valid:!0,data:g}}if(Array.isArray(r)&&Array.isArray(i)){if(r.length!==i.length)return{valid:!1,mergeErrorPath:[]};const u=[];for(let E=0;E{HA.init(r,i);const u=i.items;r._zod.parse=(E,g)=>{const a=E.value;if(!Array.isArray(a))return E.issues.push({input:a,inst:r,expected:"tuple",code:"invalid_type"}),E;E.value=[];const h=[],w=[...u].reverse().findIndex(F=>F._zod.optin!=="optional"),k=w===-1?0:u.length-w;if(!i.rest){const F=a.length>u.length,x=a.length=a.length&&v>=k)continue;const x=F._zod.run({value:a[v],issues:[]},g);x instanceof Promise?h.push(x.then($=>aa($,E,v))):aa(x,E,v)}if(i.rest){const F=a.slice(u.length);for(const x of F){v++;const $=i.rest._zod.run({value:x,issues:[]},g);$ instanceof Promise?h.push($.then(j=>aa(j,E,v))):aa($,E,v)}}return h.length?Promise.all(h).then(()=>E):E}});function aa(r,i,u){r.issues.length&&i.issues.push(...Ut(u,r.issues)),i.value[u]=r.value}const cB=H("$ZodRecord",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;if(!rn(g))return u.issues.push({expected:"record",code:"invalid_type",input:g,inst:r}),u;const a=[],h=i.keyType._zod.values;if(h){u.value={};const w=new Set;for(const v of h)if(typeof v=="string"||typeof v=="number"||typeof v=="symbol"){w.add(typeof v=="number"?v.toString():v);const F=i.valueType._zod.run({value:g[v],issues:[]},E);F instanceof Promise?a.push(F.then(x=>{x.issues.length&&u.issues.push(...Ut(v,x.issues)),u.value[v]=x.value})):(F.issues.length&&u.issues.push(...Ut(v,F.issues)),u.value[v]=F.value)}let k;for(const v in g)w.has(v)||(k=k??[],k.push(v));k&&k.length>0&&u.issues.push({code:"unrecognized_keys",input:g,inst:r,keys:k})}else{u.value={};for(const w of Reflect.ownKeys(g)){if(w==="__proto__")continue;const k=i.keyType._zod.run({value:w,issues:[]},E);if(k instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(k.issues.length){u.issues.push({code:"invalid_key",origin:"record",issues:k.issues.map(F=>Gt(F,E,it())),input:w,path:[w],inst:r}),u.value[k.value]=k.value;continue}const v=i.valueType._zod.run({value:g[w],issues:[]},E);v instanceof Promise?a.push(v.then(F=>{F.issues.length&&u.issues.push(...Ut(w,F.issues)),u.value[k.value]=F.value})):(v.issues.length&&u.issues.push(...Ut(w,v.issues)),u.value[k.value]=v.value)}}return a.length?Promise.all(a).then(()=>u):u}}),uB=H("$ZodMap",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;if(!(g instanceof Map))return u.issues.push({expected:"map",code:"invalid_type",input:g,inst:r}),u;const a=[];u.value=new Map;for(const[h,w]of g){const k=i.keyType._zod.run({value:h,issues:[]},E),v=i.valueType._zod.run({value:w,issues:[]},E);k instanceof Promise||v instanceof Promise?a.push(Promise.all([k,v]).then(([F,x])=>{IB(F,x,u,h,g,r,E)})):IB(k,v,u,h,g,r,E)}return a.length?Promise.all(a).then(()=>u):u}});function IB(r,i,u,E,g,a,h){r.issues.length&&(ra.has(typeof E)?u.issues.push(...Ut(E,r.issues)):u.issues.push({code:"invalid_key",origin:"map",input:g,inst:a,issues:r.issues.map(w=>Gt(w,h,it()))})),i.issues.length&&(ra.has(typeof E)?u.issues.push(...Ut(E,i.issues)):u.issues.push({origin:"map",code:"invalid_element",input:g,inst:a,key:E,issues:i.issues.map(w=>Gt(w,h,it()))})),u.value.set(r.value,i.value)}const EB=H("$ZodSet",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;if(!(g instanceof Set))return u.issues.push({input:g,inst:r,expected:"set",code:"invalid_type"}),u;const a=[];u.value=new Set;for(const h of g){const w=i.valueType._zod.run({value:h,issues:[]},E);w instanceof Promise?a.push(w.then(k=>lB(k,u))):lB(w,u)}return a.length?Promise.all(a).then(()=>u):u}});function lB(r,i){r.issues.length&&i.issues.push(...r.issues),i.value.add(r.value)}const BB=H("$ZodEnum",(r,i)=>{HA.init(r,i);const u=Es(i.entries),E=new Set(u);r._zod.values=E,r._zod.pattern=new RegExp(`^(${u.filter(g=>ra.has(typeof g)).map(g=>typeof g=="string"?Br(g):g.toString()).join("|")})$`),r._zod.parse=(g,a)=>{const h=g.value;return E.has(h)||g.issues.push({code:"invalid_value",values:u,input:h,inst:r}),g}}),CB=H("$ZodLiteral",(r,i)=>{if(HA.init(r,i),i.values.length===0)throw new Error("Cannot create literal schema with no valid values");const u=new Set(i.values);r._zod.values=u,r._zod.pattern=new RegExp(`^(${i.values.map(E=>typeof E=="string"?Br(E):E?Br(E.toString()):String(E)).join("|")})$`),r._zod.parse=(E,g)=>{const a=E.value;return u.has(a)||E.issues.push({code:"invalid_value",values:i.values,input:a,inst:r}),E}}),QB=H("$ZodFile",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;return g instanceof File||u.issues.push({expected:"file",code:"invalid_type",input:g,inst:r}),u}}),fB=H("$ZodTransform",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo(r.constructor.name);const g=i.transform(u.value,u);if(E.async)return(g instanceof Promise?g:Promise.resolve(g)).then(h=>(u.value=h,u));if(g instanceof Promise)throw new en;return u.value=g,u}});function dB(r,i){return r.issues.length&&i===void 0?{issues:[],value:void 0}:r}const hB=H("$ZodOptional",(r,i)=>{HA.init(r,i),r._zod.optin="optional",r._zod.optout="optional",te(r._zod,"values",()=>i.innerType._zod.values?new Set([...i.innerType._zod.values,void 0]):void 0),te(r._zod,"pattern",()=>{const u=i.innerType._zod.pattern;return u?new RegExp(`^(${ea(u.source)})?$`):void 0}),r._zod.parse=(u,E)=>{if(i.innerType._zod.optin==="optional"){const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>dB(a,u.value)):dB(g,u.value)}return u.value===void 0?u:i.innerType._zod.run(u,E)}}),mB=H("$ZodNullable",(r,i)=>{HA.init(r,i),te(r._zod,"optin",()=>i.innerType._zod.optin),te(r._zod,"optout",()=>i.innerType._zod.optout),te(r._zod,"pattern",()=>{const u=i.innerType._zod.pattern;return u?new RegExp(`^(${ea(u.source)}|null)$`):void 0}),te(r._zod,"values",()=>i.innerType._zod.values?new Set([...i.innerType._zod.values,null]):void 0),r._zod.parse=(u,E)=>u.value===null?u:i.innerType._zod.run(u,E)}),pB=H("$ZodDefault",(r,i)=>{HA.init(r,i),r._zod.optin="optional",te(r._zod,"values",()=>i.innerType._zod.values),r._zod.parse=(u,E)=>{if(E.direction==="backward")return i.innerType._zod.run(u,E);if(u.value===void 0)return u.value=i.defaultValue,u;const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>yB(a,i)):yB(g,i)}});function yB(r,i){return r.value===void 0&&(r.value=i.defaultValue),r}const bB=H("$ZodPrefault",(r,i)=>{HA.init(r,i),r._zod.optin="optional",te(r._zod,"values",()=>i.innerType._zod.values),r._zod.parse=(u,E)=>(E.direction==="backward"||u.value===void 0&&(u.value=i.defaultValue),i.innerType._zod.run(u,E))}),DB=H("$ZodNonOptional",(r,i)=>{HA.init(r,i),te(r._zod,"values",()=>{const u=i.innerType._zod.values;return u?new Set([...u].filter(E=>E!==void 0)):void 0}),r._zod.parse=(u,E)=>{const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>wB(a,r)):wB(g,r)}});function wB(r,i){return!r.issues.length&&r.value===void 0&&r.issues.push({code:"invalid_type",expected:"nonoptional",input:r.value,inst:i}),r}const kB=H("$ZodSuccess",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo("ZodSuccess");const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>(u.value=a.issues.length===0,u)):(u.value=g.issues.length===0,u)}}),_B=H("$ZodCatch",(r,i)=>{HA.init(r,i),te(r._zod,"optin",()=>i.innerType._zod.optin),te(r._zod,"optout",()=>i.innerType._zod.optout),te(r._zod,"values",()=>i.innerType._zod.values),r._zod.parse=(u,E)=>{if(E.direction==="backward")return i.innerType._zod.run(u,E);const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>(u.value=a.value,a.issues.length&&(u.value=i.catchValue({...u,error:{issues:a.issues.map(h=>Gt(h,E,it()))},input:u.value}),u.issues=[]),u)):(u.value=g.value,g.issues.length&&(u.value=i.catchValue({...u,error:{issues:g.issues.map(a=>Gt(a,E,it()))},input:u.value}),u.issues=[]),u)}}),SB=H("$ZodNaN",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>((typeof u.value!="number"||!Number.isNaN(u.value))&&u.issues.push({input:u.value,inst:r,expected:"nan",code:"invalid_type"}),u)}),vB=H("$ZodPipe",(r,i)=>{HA.init(r,i),te(r._zod,"values",()=>i.in._zod.values),te(r._zod,"optin",()=>i.in._zod.optin),te(r._zod,"optout",()=>i.out._zod.optout),te(r._zod,"propValues",()=>i.in._zod.propValues),r._zod.parse=(u,E)=>{if(E.direction==="backward"){const a=i.out._zod.run(u,E);return a instanceof Promise?a.then(h=>sa(h,i.in,E)):sa(a,i.in,E)}const g=i.in._zod.run(u,E);return g instanceof Promise?g.then(a=>sa(a,i.out,E)):sa(g,i.out,E)}});function sa(r,i,u){return r.issues.length?(r.aborted=!0,r):i._zod.run({value:r.value,issues:r.issues},u)}const Ls=H("$ZodCodec",(r,i)=>{HA.init(r,i),te(r._zod,"values",()=>i.in._zod.values),te(r._zod,"optin",()=>i.in._zod.optin),te(r._zod,"optout",()=>i.out._zod.optout),te(r._zod,"propValues",()=>i.in._zod.propValues),r._zod.parse=(u,E)=>{if((E.direction||"forward")==="forward"){const a=i.in._zod.run(u,E);return a instanceof Promise?a.then(h=>ga(h,i,E)):ga(a,i,E)}else{const a=i.out._zod.run(u,E);return a instanceof Promise?a.then(h=>ga(h,i,E)):ga(a,i,E)}}});function ga(r,i,u){if(r.issues.length)return r.aborted=!0,r;if((u.direction||"forward")==="forward"){const g=i.transform(r.value,r);return g instanceof Promise?g.then(a=>ca(r,a,i.out,u)):ca(r,g,i.out,u)}else{const g=i.reverseTransform(r.value,r);return g instanceof Promise?g.then(a=>ca(r,a,i.in,u)):ca(r,g,i.in,u)}}function ca(r,i,u,E){return r.issues.length?(r.aborted=!0,r):u._zod.run({value:i,issues:r.issues},E)}const RB=H("$ZodReadonly",(r,i)=>{HA.init(r,i),te(r._zod,"propValues",()=>i.innerType._zod.propValues),te(r._zod,"values",()=>i.innerType._zod.values),te(r._zod,"optin",()=>i.innerType?._zod?.optin),te(r._zod,"optout",()=>i.innerType?._zod?.optout),r._zod.parse=(u,E)=>{if(E.direction==="backward")return i.innerType._zod.run(u,E);const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(TB):TB(g)}});function TB(r){return r.value=Object.freeze(r.value),r}const FB=H("$ZodTemplateLiteral",(r,i)=>{HA.init(r,i);const u=[];for(const E of i.parts)if(typeof E=="object"&&E!==null){if(!E._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...E._zod.traits].shift()}`);const g=E._zod.pattern instanceof RegExp?E._zod.pattern.source:E._zod.pattern;if(!g)throw new Error(`Invalid template literal part: ${E._zod.traits}`);const a=g.startsWith("^")?1:0,h=g.endsWith("$")?g.length-1:g.length;u.push(g.slice(a,h))}else if(E===null||XI.has(typeof E))u.push(Br(`${E}`));else throw new Error(`Invalid template literal part: ${E}`);r._zod.pattern=new RegExp(`^${u.join("")}$`),r._zod.parse=(E,g)=>typeof E.value!="string"?(E.issues.push({input:E.value,inst:r,expected:"template_literal",code:"invalid_type"}),E):(r._zod.pattern.lastIndex=0,r._zod.pattern.test(E.value)||E.issues.push({input:E.value,inst:r,code:"invalid_format",format:i.format??"template_literal",pattern:r._zod.pattern.source}),E)}),MB=H("$ZodFunction",(r,i)=>(HA.init(r,i),r._def=i,r._zod.def=i,r.implement=u=>{if(typeof u!="function")throw new Error("implement() must be called with a function");return function(...E){const g=r._def.input?ds(r._def.input,E):E,a=Reflect.apply(u,this,g);return r._def.output?ds(r._def.output,a):a}},r.implementAsync=u=>{if(typeof u!="function")throw new Error("implementAsync() must be called with a function");return async function(...E){const g=r._def.input?await hs(r._def.input,E):E,a=await Reflect.apply(u,this,g);return r._def.output?await hs(r._def.output,a):a}},r._zod.parse=(u,E)=>typeof u.value!="function"?(u.issues.push({code:"invalid_type",expected:"function",input:u.value,inst:r}),u):(r._def.output&&r._def.output._zod.def.type==="promise"?u.value=r.implementAsync(u.value):u.value=r.implement(u.value),u),r.input=(...u)=>{const E=r.constructor;return Array.isArray(u[0])?new E({type:"function",input:new xs({type:"tuple",items:u[0],rest:u[1]}),output:r._def.output}):new E({type:"function",input:u[0],output:r._def.output})},r.output=u=>{const E=r.constructor;return new E({type:"function",input:r._def.input,output:u})},r)),OB=H("$ZodPromise",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>Promise.resolve(u.value).then(g=>i.innerType._zod.run({value:g,issues:[]},E))}),NB=H("$ZodLazy",(r,i)=>{HA.init(r,i),te(r._zod,"innerType",()=>i.getter()),te(r._zod,"pattern",()=>r._zod.innerType?._zod?.pattern),te(r._zod,"propValues",()=>r._zod.innerType?._zod?.propValues),te(r._zod,"optin",()=>r._zod.innerType?._zod?.optin??void 0),te(r._zod,"optout",()=>r._zod.innerType?._zod?.optout??void 0),r._zod.parse=(u,E)=>r._zod.innerType._zod.run(u,E)}),UB=H("$ZodCustom",(r,i)=>{we.init(r,i),HA.init(r,i),r._zod.parse=(u,E)=>u,r._zod.check=u=>{const E=u.value,g=i.fn(E);if(g instanceof Promise)return g.then(a=>GB(a,u,E,r));GB(g,u,E,r)}});function GB(r,i,u,E){if(!r){const g={code:"custom",input:u,inst:E,path:[...E._zod.def.path??[]],continue:!E._zod.def.abort};E._zod.def.params&&(g.params=E._zod.def.params),i.issues.push($n(g))}}const A4=()=>{const r={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",jwt:"JWT",template_literal:"مدخل"};return g=>{switch(g.code){case"invalid_type":return`مدخلات غير مقبولة: يفترض إدخال ${g.expected}، ولكن تم إدخال ${u(g.input)}`;case"invalid_value":return g.values.length===1?`مدخلات غير مقبولة: يفترض إدخال ${YA(g.values[0])}`:`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?` أكبر من اللازم: يفترض أن تكون ${g.origin??"القيمة"} ${a} ${g.maximum.toString()} ${h.unit??"عنصر"}`:`أكبر من اللازم: يفترض أن تكون ${g.origin??"القيمة"} ${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`أصغر من اللازم: يفترض لـ ${g.origin} أن يكون ${a} ${g.minimum.toString()} ${h.unit}`:`أصغر من اللازم: يفترض لـ ${g.origin} أن يكون ${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`نَص غير مقبول: يجب أن يبدأ بـ "${g.prefix}"`:a.format==="ends_with"?`نَص غير مقبول: يجب أن ينتهي بـ "${a.suffix}"`:a.format==="includes"?`نَص غير مقبول: يجب أن يتضمَّن "${a.includes}"`:a.format==="regex"?`نَص غير مقبول: يجب أن يطابق النمط ${a.pattern}`:`${E[a.format]??g.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${g.divisor}`;case"unrecognized_keys":return`معرف${g.keys.length>1?"ات":""} غريب${g.keys.length>1?"ة":""}: ${cA(g.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${g.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${g.origin}`;default:return"مدخل غير مقبول"}}};function e4(){return{localeError:A4()}}const t4=()=>{const r={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Yanlış dəyər: gözlənilən ${g.expected}, daxil olan ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Yanlış dəyər: gözlənilən ${YA(g.values[0])}`:`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Çox böyük: gözlənilən ${g.origin??"dəyər"} ${a}${g.maximum.toString()} ${h.unit??"element"}`:`Çox böyük: gözlənilən ${g.origin??"dəyər"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Çox kiçik: gözlənilən ${g.origin} ${a}${g.minimum.toString()} ${h.unit}`:`Çox kiçik: gözlənilən ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Yanlış mətn: "${a.prefix}" ilə başlamalıdır`:a.format==="ends_with"?`Yanlış mətn: "${a.suffix}" ilə bitməlidir`:a.format==="includes"?`Yanlış mətn: "${a.includes}" daxil olmalıdır`:a.format==="regex"?`Yanlış mətn: ${a.pattern} şablonuna uyğun olmalıdır`:`Yanlış ${E[a.format]??g.format}`}case"not_multiple_of":return`Yanlış ədəd: ${g.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${g.keys.length>1?"lar":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${g.origin} daxilində yanlış dəyər`;default:return"Yanlış dəyər"}}};function r4(){return{localeError:t4()}}function xB(r,i,u,E){const g=Math.abs(r),a=g%10,h=g%100;return h>=11&&h<=19?E:a===1?i:a>=2&&a<=4?u:E}const n4=()=>{const r={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"лік";case"object":{if(Array.isArray(g))return"масіў";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",jwt:"JWT",template_literal:"увод"};return g=>{switch(g.code){case"invalid_type":return`Няправільны ўвод: чакаўся ${g.expected}, атрымана ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Няправільны ўвод: чакалася ${YA(g.values[0])}`:`Няправільны варыянт: чакаўся адзін з ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);if(h){const w=Number(g.maximum),k=xB(w,h.unit.one,h.unit.few,h.unit.many);return`Занадта вялікі: чакалася, што ${g.origin??"значэнне"} павінна ${h.verb} ${a}${g.maximum.toString()} ${k}`}return`Занадта вялікі: чакалася, што ${g.origin??"значэнне"} павінна быць ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);if(h){const w=Number(g.minimum),k=xB(w,h.unit.one,h.unit.few,h.unit.many);return`Занадта малы: чакалася, што ${g.origin} павінна ${h.verb} ${a}${g.minimum.toString()} ${k}`}return`Занадта малы: чакалася, што ${g.origin} павінна быць ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Няправільны радок: павінен пачынацца з "${a.prefix}"`:a.format==="ends_with"?`Няправільны радок: павінен заканчвацца на "${a.suffix}"`:a.format==="includes"?`Няправільны радок: павінен змяшчаць "${a.includes}"`:a.format==="regex"?`Няправільны радок: павінен адпавядаць шаблону ${a.pattern}`:`Няправільны ${E[a.format]??g.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${g.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${g.keys.length>1?"ключы":"ключ"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${g.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${g.origin}`;default:return"Няправільны ўвод"}}};function i4(){return{localeError:n4()}}const o4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"число";case"object":{if(Array.isArray(r))return"масив";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},a4=()=>{const r={string:{unit:"символа",verb:"да съдържа"},file:{unit:"байта",verb:"да съдържа"},array:{unit:"елемента",verb:"да съдържа"},set:{unit:"елемента",verb:"да съдържа"}};function i(E){return r[E]??null}const u={regex:"вход",email:"имейл адрес",url:"URL",emoji:"емоджи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO време",date:"ISO дата",time:"ISO време",duration:"ISO продължителност",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"base64-кодиран низ",base64url:"base64url-кодиран низ",json_string:"JSON низ",e164:"E.164 номер",jwt:"JWT",template_literal:"вход"};return E=>{switch(E.code){case"invalid_type":return`Невалиден вход: очакван ${E.expected}, получен ${o4(E.input)}`;case"invalid_value":return E.values.length===1?`Невалиден вход: очакван ${YA(E.values[0])}`:`Невалидна опция: очаквано едно от ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Твърде голямо: очаква се ${E.origin??"стойност"} да съдържа ${g}${E.maximum.toString()} ${a.unit??"елемента"}`:`Твърде голямо: очаква се ${E.origin??"стойност"} да бъде ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Твърде малко: очаква се ${E.origin} да съдържа ${g}${E.minimum.toString()} ${a.unit}`:`Твърде малко: очаква се ${E.origin} да бъде ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;if(g.format==="starts_with")return`Невалиден низ: трябва да започва с "${g.prefix}"`;if(g.format==="ends_with")return`Невалиден низ: трябва да завършва с "${g.suffix}"`;if(g.format==="includes")return`Невалиден низ: трябва да включва "${g.includes}"`;if(g.format==="regex")return`Невалиден низ: трябва да съвпада с ${g.pattern}`;let a="Невалиден";return g.format==="emoji"&&(a="Невалидно"),g.format==="datetime"&&(a="Невалидно"),g.format==="date"&&(a="Невалидна"),g.format==="time"&&(a="Невалидно"),g.format==="duration"&&(a="Невалидна"),`${a} ${u[g.format]??E.format}`}case"not_multiple_of":return`Невалидно число: трябва да бъде кратно на ${E.divisor}`;case"unrecognized_keys":return`Неразпознат${E.keys.length>1?"и":""} ключ${E.keys.length>1?"ове":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`Невалиден ключ в ${E.origin}`;case"invalid_union":return"Невалиден вход";case"invalid_element":return`Невалидна стойност в ${E.origin}`;default:return"Невалиден вход"}}};function s4(){return{localeError:a4()}}const g4=()=>{const r={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return g=>{switch(g.code){case"invalid_type":return`Tipus invàlid: s'esperava ${g.expected}, s'ha rebut ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Valor invàlid: s'esperava ${YA(g.values[0])}`:`Opció invàlida: s'esperava una de ${cA(g.values," o ")}`;case"too_big":{const a=g.inclusive?"com a màxim":"menys de",h=i(g.origin);return h?`Massa gran: s'esperava que ${g.origin??"el valor"} contingués ${a} ${g.maximum.toString()} ${h.unit??"elements"}`:`Massa gran: s'esperava que ${g.origin??"el valor"} fos ${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?"com a mínim":"més de",h=i(g.origin);return h?`Massa petit: s'esperava que ${g.origin} contingués ${a} ${g.minimum.toString()} ${h.unit}`:`Massa petit: s'esperava que ${g.origin} fos ${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Format invàlid: ha de començar amb "${a.prefix}"`:a.format==="ends_with"?`Format invàlid: ha d'acabar amb "${a.suffix}"`:a.format==="includes"?`Format invàlid: ha d'incloure "${a.includes}"`:a.format==="regex"?`Format invàlid: ha de coincidir amb el patró ${a.pattern}`:`Format invàlid per a ${E[a.format]??g.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${g.divisor}`;case"unrecognized_keys":return`Clau${g.keys.length>1?"s":""} no reconeguda${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${g.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${g.origin}`;default:return"Entrada invàlida"}}};function c4(){return{localeError:g4()}}const u4=()=>{const r={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"číslo";case"string":return"řetězec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(g))return"pole";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",jwt:"JWT",template_literal:"vstup"};return g=>{switch(g.code){case"invalid_type":return`Neplatný vstup: očekáváno ${g.expected}, obdrženo ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Neplatný vstup: očekáváno ${YA(g.values[0])}`:`Neplatná možnost: očekávána jedna z hodnot ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Hodnota je příliš velká: ${g.origin??"hodnota"} musí mít ${a}${g.maximum.toString()} ${h.unit??"prvků"}`:`Hodnota je příliš velká: ${g.origin??"hodnota"} musí být ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Hodnota je příliš malá: ${g.origin??"hodnota"} musí mít ${a}${g.minimum.toString()} ${h.unit??"prvků"}`:`Hodnota je příliš malá: ${g.origin??"hodnota"} musí být ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Neplatný řetězec: musí začínat na "${a.prefix}"`:a.format==="ends_with"?`Neplatný řetězec: musí končit na "${a.suffix}"`:a.format==="includes"?`Neplatný řetězec: musí obsahovat "${a.includes}"`:a.format==="regex"?`Neplatný řetězec: musí odpovídat vzoru ${a.pattern}`:`Neplatný formát ${E[a.format]??g.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${g.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${cA(g.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${g.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${g.origin}`;default:return"Neplatný vstup"}}};function I4(){return{localeError:u4()}}const E4=()=>{const r={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}},i={string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"sæt",file:"fil"};function u(h){return r[h]??null}function E(h){return i[h]??h}const g=h=>{const w=typeof h;switch(w){case"number":return Number.isNaN(h)?"NaN":"tal";case"object":return Array.isArray(h)?"liste":h===null?"null":Object.getPrototypeOf(h)!==Object.prototype&&h.constructor?h.constructor.name:"objekt"}return w},a={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslæt",date:"ISO-dato",time:"ISO-klokkeslæt",duration:"ISO-varighed",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return h=>{switch(h.code){case"invalid_type":return`Ugyldigt input: forventede ${E(h.expected)}, fik ${E(g(h.input))}`;case"invalid_value":return h.values.length===1?`Ugyldig værdi: forventede ${YA(h.values[0])}`:`Ugyldigt valg: forventede en af følgende ${cA(h.values,"|")}`;case"too_big":{const w=h.inclusive?"<=":"<",k=u(h.origin),v=E(h.origin);return k?`For stor: forventede ${v??"value"} ${k.verb} ${w} ${h.maximum.toString()} ${k.unit??"elementer"}`:`For stor: forventede ${v??"value"} havde ${w} ${h.maximum.toString()}`}case"too_small":{const w=h.inclusive?">=":">",k=u(h.origin),v=E(h.origin);return k?`For lille: forventede ${v} ${k.verb} ${w} ${h.minimum.toString()} ${k.unit}`:`For lille: forventede ${v} havde ${w} ${h.minimum.toString()}`}case"invalid_format":{const w=h;return w.format==="starts_with"?`Ugyldig streng: skal starte med "${w.prefix}"`:w.format==="ends_with"?`Ugyldig streng: skal ende med "${w.suffix}"`:w.format==="includes"?`Ugyldig streng: skal indeholde "${w.includes}"`:w.format==="regex"?`Ugyldig streng: skal matche mønsteret ${w.pattern}`:`Ugyldig ${a[w.format]??h.format}`}case"not_multiple_of":return`Ugyldigt tal: skal være deleligt med ${h.divisor}`;case"unrecognized_keys":return`${h.keys.length>1?"Ukendte nøgler":"Ukendt nøgle"}: ${cA(h.keys,", ")}`;case"invalid_key":return`Ugyldig nøgle i ${h.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig værdi i ${h.origin}`;default:return"Ugyldigt input"}}};function l4(){return{localeError:E4()}}const B4=()=>{const r={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"Zahl";case"object":{if(Array.isArray(g))return"Array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return g=>{switch(g.code){case"invalid_type":return`Ungültige Eingabe: erwartet ${g.expected}, erhalten ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ungültige Eingabe: erwartet ${YA(g.values[0])}`:`Ungültige Option: erwartet eine von ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Zu groß: erwartet, dass ${g.origin??"Wert"} ${a}${g.maximum.toString()} ${h.unit??"Elemente"} hat`:`Zu groß: erwartet, dass ${g.origin??"Wert"} ${a}${g.maximum.toString()} ist`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Zu klein: erwartet, dass ${g.origin} ${a}${g.minimum.toString()} ${h.unit} hat`:`Zu klein: erwartet, dass ${g.origin} ${a}${g.minimum.toString()} ist`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ungültiger String: muss mit "${a.prefix}" beginnen`:a.format==="ends_with"?`Ungültiger String: muss mit "${a.suffix}" enden`:a.format==="includes"?`Ungültiger String: muss "${a.includes}" enthalten`:a.format==="regex"?`Ungültiger String: muss dem Muster ${a.pattern} entsprechen`:`Ungültig: ${E[a.format]??g.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${g.divisor} sein`;case"unrecognized_keys":return`${g.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${g.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${g.origin}`;default:return"Ungültige Eingabe"}}};function C4(){return{localeError:B4()}}const Q4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"number";case"object":{if(Array.isArray(r))return"array";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},f4=()=>{const r={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function i(E){return r[E]??null}const u={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return E=>{switch(E.code){case"invalid_type":return`Invalid input: expected ${E.expected}, received ${Q4(E.input)}`;case"invalid_value":return E.values.length===1?`Invalid input: expected ${YA(E.values[0])}`:`Invalid option: expected one of ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Too big: expected ${E.origin??"value"} to have ${g}${E.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${E.origin??"value"} to be ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Too small: expected ${E.origin} to have ${g}${E.minimum.toString()} ${a.unit}`:`Too small: expected ${E.origin} to be ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Invalid string: must start with "${g.prefix}"`:g.format==="ends_with"?`Invalid string: must end with "${g.suffix}"`:g.format==="includes"?`Invalid string: must include "${g.includes}"`:g.format==="regex"?`Invalid string: must match pattern ${g.pattern}`:`Invalid ${u[g.format]??E.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${E.divisor}`;case"unrecognized_keys":return`Unrecognized key${E.keys.length>1?"s":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`Invalid key in ${E.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${E.origin}`;default:return"Invalid input"}}};function LB(){return{localeError:f4()}}const d4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"nombro";case"object":{if(Array.isArray(r))return"tabelo";if(r===null)return"senvalora";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},h4=()=>{const r={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function i(E){return r[E]??null}const u={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return E=>{switch(E.code){case"invalid_type":return`Nevalida enigo: atendiĝis ${E.expected}, riceviĝis ${d4(E.input)}`;case"invalid_value":return E.values.length===1?`Nevalida enigo: atendiĝis ${YA(E.values[0])}`:`Nevalida opcio: atendiĝis unu el ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Tro granda: atendiĝis ke ${E.origin??"valoro"} havu ${g}${E.maximum.toString()} ${a.unit??"elementojn"}`:`Tro granda: atendiĝis ke ${E.origin??"valoro"} havu ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Tro malgranda: atendiĝis ke ${E.origin} havu ${g}${E.minimum.toString()} ${a.unit}`:`Tro malgranda: atendiĝis ke ${E.origin} estu ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Nevalida karaktraro: devas komenciĝi per "${g.prefix}"`:g.format==="ends_with"?`Nevalida karaktraro: devas finiĝi per "${g.suffix}"`:g.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${g.includes}"`:g.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${g.pattern}`:`Nevalida ${u[g.format]??E.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${E.divisor}`;case"unrecognized_keys":return`Nekonata${E.keys.length>1?"j":""} ŝlosilo${E.keys.length>1?"j":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${E.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${E.origin}`;default:return"Nevalida enigo"}}};function m4(){return{localeError:h4()}}const p4=()=>{const r={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}},i={string:"texto",number:"número",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"número grande",symbol:"símbolo",undefined:"indefinido",null:"nulo",function:"función",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeración",union:"unión",literal:"literal",promise:"promesa",void:"vacío",never:"nunca",unknown:"desconocido",any:"cualquiera"};function u(h){return r[h]??null}function E(h){return i[h]??h}const g=h=>{const w=typeof h;switch(w){case"number":return Number.isNaN(h)?"NaN":"number";case"object":return Array.isArray(h)?"array":h===null?"null":Object.getPrototypeOf(h)!==Object.prototype?h.constructor.name:"object"}return w},a={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return h=>{switch(h.code){case"invalid_type":return`Entrada inválida: se esperaba ${E(h.expected)}, recibido ${E(g(h.input))}`;case"invalid_value":return h.values.length===1?`Entrada inválida: se esperaba ${YA(h.values[0])}`:`Opción inválida: se esperaba una de ${cA(h.values,"|")}`;case"too_big":{const w=h.inclusive?"<=":"<",k=u(h.origin),v=E(h.origin);return k?`Demasiado grande: se esperaba que ${v??"valor"} tuviera ${w}${h.maximum.toString()} ${k.unit??"elementos"}`:`Demasiado grande: se esperaba que ${v??"valor"} fuera ${w}${h.maximum.toString()}`}case"too_small":{const w=h.inclusive?">=":">",k=u(h.origin),v=E(h.origin);return k?`Demasiado pequeño: se esperaba que ${v} tuviera ${w}${h.minimum.toString()} ${k.unit}`:`Demasiado pequeño: se esperaba que ${v} fuera ${w}${h.minimum.toString()}`}case"invalid_format":{const w=h;return w.format==="starts_with"?`Cadena inválida: debe comenzar con "${w.prefix}"`:w.format==="ends_with"?`Cadena inválida: debe terminar en "${w.suffix}"`:w.format==="includes"?`Cadena inválida: debe incluir "${w.includes}"`:w.format==="regex"?`Cadena inválida: debe coincidir con el patrón ${w.pattern}`:`Inválido ${a[w.format]??h.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${h.divisor}`;case"unrecognized_keys":return`Llave${h.keys.length>1?"s":""} desconocida${h.keys.length>1?"s":""}: ${cA(h.keys,", ")}`;case"invalid_key":return`Llave inválida en ${E(h.origin)}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${E(h.origin)}`;default:return"Entrada inválida"}}};function y4(){return{localeError:p4()}}const b4=()=>{const r={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"عدد";case"object":{if(Array.isArray(g))return"آرایه";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",jwt:"JWT",template_literal:"ورودی"};return g=>{switch(g.code){case"invalid_type":return`ورودی نامعتبر: می‌بایست ${g.expected} می‌بود، ${u(g.input)} دریافت شد`;case"invalid_value":return g.values.length===1?`ورودی نامعتبر: می‌بایست ${YA(g.values[0])} می‌بود`:`گزینه نامعتبر: می‌بایست یکی از ${cA(g.values,"|")} می‌بود`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`خیلی بزرگ: ${g.origin??"مقدار"} باید ${a}${g.maximum.toString()} ${h.unit??"عنصر"} باشد`:`خیلی بزرگ: ${g.origin??"مقدار"} باید ${a}${g.maximum.toString()} باشد`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`خیلی کوچک: ${g.origin} باید ${a}${g.minimum.toString()} ${h.unit} باشد`:`خیلی کوچک: ${g.origin} باید ${a}${g.minimum.toString()} باشد`}case"invalid_format":{const a=g;return a.format==="starts_with"?`رشته نامعتبر: باید با "${a.prefix}" شروع شود`:a.format==="ends_with"?`رشته نامعتبر: باید با "${a.suffix}" تمام شود`:a.format==="includes"?`رشته نامعتبر: باید شامل "${a.includes}" باشد`:a.format==="regex"?`رشته نامعتبر: باید با الگوی ${a.pattern} مطابقت داشته باشد`:`${E[a.format]??g.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${g.divisor} باشد`;case"unrecognized_keys":return`کلید${g.keys.length>1?"های":""} ناشناس: ${cA(g.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${g.origin}`;case"invalid_union":return"ورودی نامعتبر";case"invalid_element":return`مقدار نامعتبر در ${g.origin}`;default:return"ورودی نامعتبر"}}};function D4(){return{localeError:b4()}}const w4=()=>{const r={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return g=>{switch(g.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${g.expected}, oli ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Virheellinen syöte: täytyy olla ${YA(g.values[0])}`:`Virheellinen valinta: täytyy olla yksi seuraavista: ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Liian suuri: ${h.subject} täytyy olla ${a}${g.maximum.toString()} ${h.unit}`.trim():`Liian suuri: arvon täytyy olla ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Liian pieni: ${h.subject} täytyy olla ${a}${g.minimum.toString()} ${h.unit}`.trim():`Liian pieni: arvon täytyy olla ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Virheellinen syöte: täytyy alkaa "${a.prefix}"`:a.format==="ends_with"?`Virheellinen syöte: täytyy loppua "${a.suffix}"`:a.format==="includes"?`Virheellinen syöte: täytyy sisältää "${a.includes}"`:a.format==="regex"?`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${a.pattern}`:`Virheellinen ${E[a.format]??g.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${g.divisor} monikerta`;case"unrecognized_keys":return`${g.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${cA(g.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen syöte"}}};function k4(){return{localeError:w4()}}const _4=()=>{const r={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"nombre";case"object":{if(Array.isArray(g))return"tableau";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"entrée",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"};return g=>{switch(g.code){case"invalid_type":return`Entrée invalide : ${g.expected} attendu, ${u(g.input)} reçu`;case"invalid_value":return g.values.length===1?`Entrée invalide : ${YA(g.values[0])} attendu`:`Option invalide : une valeur parmi ${cA(g.values,"|")} attendue`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Trop grand : ${g.origin??"valeur"} doit ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"élément(s)"}`:`Trop grand : ${g.origin??"valeur"} doit être ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Trop petit : ${g.origin} doit ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Trop petit : ${g.origin} doit être ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Chaîne invalide : doit commencer par "${a.prefix}"`:a.format==="ends_with"?`Chaîne invalide : doit se terminer par "${a.suffix}"`:a.format==="includes"?`Chaîne invalide : doit inclure "${a.includes}"`:a.format==="regex"?`Chaîne invalide : doit correspondre au modèle ${a.pattern}`:`${E[a.format]??g.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${g.divisor}`;case"unrecognized_keys":return`Clé${g.keys.length>1?"s":""} non reconnue${g.keys.length>1?"s":""} : ${cA(g.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${g.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${g.origin}`;default:return"Entrée invalide"}}};function S4(){return{localeError:_4()}}const v4=()=>{const r={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"};return g=>{switch(g.code){case"invalid_type":return`Entrée invalide : attendu ${g.expected}, reçu ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Entrée invalide : attendu ${YA(g.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"≤":"<",h=i(g.origin);return h?`Trop grand : attendu que ${g.origin??"la valeur"} ait ${a}${g.maximum.toString()} ${h.unit}`:`Trop grand : attendu que ${g.origin??"la valeur"} soit ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?"≥":">",h=i(g.origin);return h?`Trop petit : attendu que ${g.origin} ait ${a}${g.minimum.toString()} ${h.unit}`:`Trop petit : attendu que ${g.origin} soit ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Chaîne invalide : doit commencer par "${a.prefix}"`:a.format==="ends_with"?`Chaîne invalide : doit se terminer par "${a.suffix}"`:a.format==="includes"?`Chaîne invalide : doit inclure "${a.includes}"`:a.format==="regex"?`Chaîne invalide : doit correspondre au motif ${a.pattern}`:`${E[a.format]??g.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${g.divisor}`;case"unrecognized_keys":return`Clé${g.keys.length>1?"s":""} non reconnue${g.keys.length>1?"s":""} : ${cA(g.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${g.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${g.origin}`;default:return"Entrée invalide"}}};function R4(){return{localeError:v4()}}const T4=()=>{const r={string:{label:"מחרוזת",gender:"f"},number:{label:"מספר",gender:"m"},boolean:{label:"ערך בוליאני",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"תאריך",gender:"m"},array:{label:"מערך",gender:"m"},object:{label:"אובייקט",gender:"m"},null:{label:"ערך ריק (null)",gender:"m"},undefined:{label:"ערך לא מוגדר (undefined)",gender:"m"},symbol:{label:"סימבול (Symbol)",gender:"m"},function:{label:"פונקציה",gender:"f"},map:{label:"מפה (Map)",gender:"f"},set:{label:"קבוצה (Set)",gender:"f"},file:{label:"קובץ",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"ערך לא ידוע",gender:"m"},value:{label:"ערך",gender:"m"}},i={string:{unit:"תווים",shortLabel:"קצר",longLabel:"ארוך"},file:{unit:"בייטים",shortLabel:"קטן",longLabel:"גדול"},array:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},set:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},number:{unit:"",shortLabel:"קטן",longLabel:"גדול"}},u=v=>v?r[v]:void 0,E=v=>{const F=u(v);return F?F.label:v??r.unknown.label},g=v=>`ה${E(v)}`,a=v=>(u(v)?.gender??"m")==="f"?"צריכה להיות":"צריך להיות",h=v=>v?i[v]??null:null,w=v=>{const F=typeof v;switch(F){case"number":return Number.isNaN(v)?"NaN":"number";case"object":return Array.isArray(v)?"array":v===null?"null":Object.getPrototypeOf(v)!==Object.prototype&&v.constructor?v.constructor.name:"object";default:return F}},k={regex:{label:"קלט",gender:"m"},email:{label:"כתובת אימייל",gender:"f"},url:{label:"כתובת רשת",gender:"f"},emoji:{label:"אימוג'י",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"תאריך וזמן ISO",gender:"m"},date:{label:"תאריך ISO",gender:"m"},time:{label:"זמן ISO",gender:"m"},duration:{label:"משך זמן ISO",gender:"m"},ipv4:{label:"כתובת IPv4",gender:"f"},ipv6:{label:"כתובת IPv6",gender:"f"},cidrv4:{label:"טווח IPv4",gender:"m"},cidrv6:{label:"טווח IPv6",gender:"m"},base64:{label:"מחרוזת בבסיס 64",gender:"f"},base64url:{label:"מחרוזת בבסיס 64 לכתובות רשת",gender:"f"},json_string:{label:"מחרוזת JSON",gender:"f"},e164:{label:"מספר E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"קלט",gender:"m"},includes:{label:"קלט",gender:"m"},lowercase:{label:"קלט",gender:"m"},starts_with:{label:"קלט",gender:"m"},uppercase:{label:"קלט",gender:"m"}};return v=>{switch(v.code){case"invalid_type":{const F=v.expected,x=E(F),$=w(v.input),j=r[$]?.label??$;return`קלט לא תקין: צריך להיות ${x}, התקבל ${j}`}case"invalid_value":{if(v.values.length===1)return`ערך לא תקין: הערך חייב להיות ${YA(v.values[0])}`;const F=v.values.map(j=>YA(j));if(v.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${F[0]} או ${F[1]}`;const x=F[F.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${F.slice(0,-1).join(", ")} או ${x}`}case"too_big":{const F=h(v.origin),x=g(v.origin??"value");if(v.origin==="string")return`${F?.longLabel??"ארוך"} מדי: ${x} צריכה להכיל ${v.maximum.toString()} ${F?.unit??""} ${v.inclusive?"או פחות":"לכל היותר"}`.trim();if(v.origin==="number"){const P=v.inclusive?`קטן או שווה ל-${v.maximum}`:`קטן מ-${v.maximum}`;return`גדול מדי: ${x} צריך להיות ${P}`}if(v.origin==="array"||v.origin==="set"){const P=v.origin==="set"?"צריכה":"צריך",rA=v.inclusive?`${v.maximum} ${F?.unit??""} או פחות`:`פחות מ-${v.maximum} ${F?.unit??""}`;return`גדול מדי: ${x} ${P} להכיל ${rA}`.trim()}const $=v.inclusive?"<=":"<",j=a(v.origin??"value");return F?.unit?`${F.longLabel} מדי: ${x} ${j} ${$}${v.maximum.toString()} ${F.unit}`:`${F?.longLabel??"גדול"} מדי: ${x} ${j} ${$}${v.maximum.toString()}`}case"too_small":{const F=h(v.origin),x=g(v.origin??"value");if(v.origin==="string")return`${F?.shortLabel??"קצר"} מדי: ${x} צריכה להכיל ${v.minimum.toString()} ${F?.unit??""} ${v.inclusive?"או יותר":"לפחות"}`.trim();if(v.origin==="number"){const P=v.inclusive?`גדול או שווה ל-${v.minimum}`:`גדול מ-${v.minimum}`;return`קטן מדי: ${x} צריך להיות ${P}`}if(v.origin==="array"||v.origin==="set"){const P=v.origin==="set"?"צריכה":"צריך";if(v.minimum===1&&v.inclusive){const iA=(v.origin==="set","לפחות פריט אחד");return`קטן מדי: ${x} ${P} להכיל ${iA}`}const rA=v.inclusive?`${v.minimum} ${F?.unit??""} או יותר`:`יותר מ-${v.minimum} ${F?.unit??""}`;return`קטן מדי: ${x} ${P} להכיל ${rA}`.trim()}const $=v.inclusive?">=":">",j=a(v.origin??"value");return F?.unit?`${F.shortLabel} מדי: ${x} ${j} ${$}${v.minimum.toString()} ${F.unit}`:`${F?.shortLabel??"קטן"} מדי: ${x} ${j} ${$}${v.minimum.toString()}`}case"invalid_format":{const F=v;if(F.format==="starts_with")return`המחרוזת חייבת להתחיל ב "${F.prefix}"`;if(F.format==="ends_with")return`המחרוזת חייבת להסתיים ב "${F.suffix}"`;if(F.format==="includes")return`המחרוזת חייבת לכלול "${F.includes}"`;if(F.format==="regex")return`המחרוזת חייבת להתאים לתבנית ${F.pattern}`;const x=k[F.format],$=x?.label??F.format,P=(x?.gender??"m")==="f"?"תקינה":"תקין";return`${$} לא ${P}`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${v.divisor}`;case"unrecognized_keys":return`מפתח${v.keys.length>1?"ות":""} לא מזוה${v.keys.length>1?"ים":"ה"}: ${cA(v.keys,", ")}`;case"invalid_key":return"שדה לא תקין באובייקט";case"invalid_union":return"קלט לא תקין";case"invalid_element":return`ערך לא תקין ב${g(v.origin??"array")}`;default:return"קלט לא תקין"}}};function F4(){return{localeError:T4()}}const M4=()=>{const r={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"szám";case"object":{if(Array.isArray(g))return"tömb";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",jwt:"JWT",template_literal:"bemenet"};return g=>{switch(g.code){case"invalid_type":return`Érvénytelen bemenet: a várt érték ${g.expected}, a kapott érték ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Érvénytelen bemenet: a várt érték ${YA(g.values[0])}`:`Érvénytelen opció: valamelyik érték várt ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Túl nagy: ${g.origin??"érték"} mérete túl nagy ${a}${g.maximum.toString()} ${h.unit??"elem"}`:`Túl nagy: a bemeneti érték ${g.origin??"érték"} túl nagy: ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Túl kicsi: a bemeneti érték ${g.origin} mérete túl kicsi ${a}${g.minimum.toString()} ${h.unit}`:`Túl kicsi: a bemeneti érték ${g.origin} túl kicsi ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Érvénytelen string: "${a.prefix}" értékkel kell kezdődnie`:a.format==="ends_with"?`Érvénytelen string: "${a.suffix}" értékkel kell végződnie`:a.format==="includes"?`Érvénytelen string: "${a.includes}" értéket kell tartalmaznia`:a.format==="regex"?`Érvénytelen string: ${a.pattern} mintának kell megfelelnie`:`Érvénytelen ${E[a.format]??g.format}`}case"not_multiple_of":return`Érvénytelen szám: ${g.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${g.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${g.origin}`;default:return"Érvénytelen bemenet"}}};function O4(){return{localeError:M4()}}const N4=()=>{const r={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Input tidak valid: diharapkan ${g.expected}, diterima ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Input tidak valid: diharapkan ${YA(g.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Terlalu besar: diharapkan ${g.origin??"value"} memiliki ${a}${g.maximum.toString()} ${h.unit??"elemen"}`:`Terlalu besar: diharapkan ${g.origin??"value"} menjadi ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Terlalu kecil: diharapkan ${g.origin} memiliki ${a}${g.minimum.toString()} ${h.unit}`:`Terlalu kecil: diharapkan ${g.origin} menjadi ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`String tidak valid: harus dimulai dengan "${a.prefix}"`:a.format==="ends_with"?`String tidak valid: harus berakhir dengan "${a.suffix}"`:a.format==="includes"?`String tidak valid: harus menyertakan "${a.includes}"`:a.format==="regex"?`String tidak valid: harus sesuai pola ${a.pattern}`:`${E[a.format]??g.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${g.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${g.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${g.origin}`;default:return"Input tidak valid"}}};function U4(){return{localeError:N4()}}const G4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"númer";case"object":{if(Array.isArray(r))return"fylki";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},x4=()=>{const r={string:{unit:"stafi",verb:"að hafa"},file:{unit:"bæti",verb:"að hafa"},array:{unit:"hluti",verb:"að hafa"},set:{unit:"hluti",verb:"að hafa"}};function i(E){return r[E]??null}const u={regex:"gildi",email:"netfang",url:"vefslóð",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og tími",date:"ISO dagsetning",time:"ISO tími",duration:"ISO tímalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 tölugildi",jwt:"JWT",template_literal:"gildi"};return E=>{switch(E.code){case"invalid_type":return`Rangt gildi: Þú slóst inn ${G4(E.input)} þar sem á að vera ${E.expected}`;case"invalid_value":return E.values.length===1?`Rangt gildi: gert ráð fyrir ${YA(E.values[0])}`:`Ógilt val: má vera eitt af eftirfarandi ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Of stórt: gert er ráð fyrir að ${E.origin??"gildi"} hafi ${g}${E.maximum.toString()} ${a.unit??"hluti"}`:`Of stórt: gert er ráð fyrir að ${E.origin??"gildi"} sé ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Of lítið: gert er ráð fyrir að ${E.origin} hafi ${g}${E.minimum.toString()} ${a.unit}`:`Of lítið: gert er ráð fyrir að ${E.origin} sé ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Ógildur strengur: verður að byrja á "${g.prefix}"`:g.format==="ends_with"?`Ógildur strengur: verður að enda á "${g.suffix}"`:g.format==="includes"?`Ógildur strengur: verður að innihalda "${g.includes}"`:g.format==="regex"?`Ógildur strengur: verður að fylgja mynstri ${g.pattern}`:`Rangt ${u[g.format]??E.format}`}case"not_multiple_of":return`Röng tala: verður að vera margfeldi af ${E.divisor}`;case"unrecognized_keys":return`Óþekkt ${E.keys.length>1?"ir lyklar":"ur lykill"}: ${cA(E.keys,", ")}`;case"invalid_key":return`Rangur lykill í ${E.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi í ${E.origin}`;default:return"Rangt gildi"}}};function L4(){return{localeError:x4()}}const P4=()=>{const r={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"numero";case"object":{if(Array.isArray(g))return"vettore";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Input non valido: atteso ${g.expected}, ricevuto ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Input non valido: atteso ${YA(g.values[0])}`:`Opzione non valida: atteso uno tra ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Troppo grande: ${g.origin??"valore"} deve avere ${a}${g.maximum.toString()} ${h.unit??"elementi"}`:`Troppo grande: ${g.origin??"valore"} deve essere ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Troppo piccolo: ${g.origin} deve avere ${a}${g.minimum.toString()} ${h.unit}`:`Troppo piccolo: ${g.origin} deve essere ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Stringa non valida: deve iniziare con "${a.prefix}"`:a.format==="ends_with"?`Stringa non valida: deve terminare con "${a.suffix}"`:a.format==="includes"?`Stringa non valida: deve includere "${a.includes}"`:a.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${a.pattern}`:`Invalid ${E[a.format]??g.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${g.divisor}`;case"unrecognized_keys":return`Chiav${g.keys.length>1?"i":"e"} non riconosciut${g.keys.length>1?"e":"a"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${g.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${g.origin}`;default:return"Input non valido"}}};function Y4(){return{localeError:P4()}}const j4=()=>{const r={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"数値";case"object":{if(Array.isArray(g))return"配列";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",jwt:"JWT",template_literal:"入力値"};return g=>{switch(g.code){case"invalid_type":return`無効な入力: ${g.expected}が期待されましたが、${u(g.input)}が入力されました`;case"invalid_value":return g.values.length===1?`無効な入力: ${YA(g.values[0])}が期待されました`:`無効な選択: ${cA(g.values,"、")}のいずれかである必要があります`;case"too_big":{const a=g.inclusive?"以下である":"より小さい",h=i(g.origin);return h?`大きすぎる値: ${g.origin??"値"}は${g.maximum.toString()}${h.unit??"要素"}${a}必要があります`:`大きすぎる値: ${g.origin??"値"}は${g.maximum.toString()}${a}必要があります`}case"too_small":{const a=g.inclusive?"以上である":"より大きい",h=i(g.origin);return h?`小さすぎる値: ${g.origin}は${g.minimum.toString()}${h.unit}${a}必要があります`:`小さすぎる値: ${g.origin}は${g.minimum.toString()}${a}必要があります`}case"invalid_format":{const a=g;return a.format==="starts_with"?`無効な文字列: "${a.prefix}"で始まる必要があります`:a.format==="ends_with"?`無効な文字列: "${a.suffix}"で終わる必要があります`:a.format==="includes"?`無効な文字列: "${a.includes}"を含む必要があります`:a.format==="regex"?`無効な文字列: パターン${a.pattern}に一致する必要があります`:`無効な${E[a.format]??g.format}`}case"not_multiple_of":return`無効な数値: ${g.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${g.keys.length>1?"群":""}: ${cA(g.keys,"、")}`;case"invalid_key":return`${g.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${g.origin}内の無効な値`;default:return"無効な入力"}}};function J4(){return{localeError:j4()}}const Z4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"რიცხვი";case"object":{if(Array.isArray(r))return"მასივი";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return{string:"სტრინგი",boolean:"ბულეანი",undefined:"undefined",bigint:"bigint",symbol:"symbol",function:"ფუნქცია"}[i]??i},H4=()=>{const r={string:{unit:"სიმბოლო",verb:"უნდა შეიცავდეს"},file:{unit:"ბაიტი",verb:"უნდა შეიცავდეს"},array:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},set:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"}};function i(E){return r[E]??null}const u={regex:"შეყვანა",email:"ელ-ფოსტის მისამართი",url:"URL",emoji:"ემოჯი",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"თარიღი-დრო",date:"თარიღი",time:"დრო",duration:"ხანგრძლივობა",ipv4:"IPv4 მისამართი",ipv6:"IPv6 მისამართი",cidrv4:"IPv4 დიაპაზონი",cidrv6:"IPv6 დიაპაზონი",base64:"base64-კოდირებული სტრინგი",base64url:"base64url-კოდირებული სტრინგი",json_string:"JSON სტრინგი",e164:"E.164 ნომერი",jwt:"JWT",template_literal:"შეყვანა"};return E=>{switch(E.code){case"invalid_type":return`არასწორი შეყვანა: მოსალოდნელი ${E.expected}, მიღებული ${Z4(E.input)}`;case"invalid_value":return E.values.length===1?`არასწორი შეყვანა: მოსალოდნელი ${YA(E.values[0])}`:`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${cA(E.values,"|")}-დან`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`ზედმეტად დიდი: მოსალოდნელი ${E.origin??"მნიშვნელობა"} ${a.verb} ${g}${E.maximum.toString()} ${a.unit}`:`ზედმეტად დიდი: მოსალოდნელი ${E.origin??"მნიშვნელობა"} იყოს ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`ზედმეტად პატარა: მოსალოდნელი ${E.origin} ${a.verb} ${g}${E.minimum.toString()} ${a.unit}`:`ზედმეტად პატარა: მოსალოდნელი ${E.origin} იყოს ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`არასწორი სტრინგი: უნდა იწყებოდეს "${g.prefix}"-ით`:g.format==="ends_with"?`არასწორი სტრინგი: უნდა მთავრდებოდეს "${g.suffix}"-ით`:g.format==="includes"?`არასწორი სტრინგი: უნდა შეიცავდეს "${g.includes}"-ს`:g.format==="regex"?`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${g.pattern}`:`არასწორი ${u[g.format]??E.format}`}case"not_multiple_of":return`არასწორი რიცხვი: უნდა იყოს ${E.divisor}-ის ჯერადი`;case"unrecognized_keys":return`უცნობი გასაღებ${E.keys.length>1?"ები":"ი"}: ${cA(E.keys,", ")}`;case"invalid_key":return`არასწორი გასაღები ${E.origin}-ში`;case"invalid_union":return"არასწორი შეყვანა";case"invalid_element":return`არასწორი მნიშვნელობა ${E.origin}-ში`;default:return"არასწორი შეყვანა"}}};function $4(){return{localeError:H4()}}const X4=()=>{const r={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"មិនមែនជាលេខ (NaN)":"លេខ";case"object":{if(Array.isArray(g))return"អារេ (Array)";if(g===null)return"គ្មានតម្លៃ (null)";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"};return g=>{switch(g.code){case"invalid_type":return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${g.expected} ប៉ុន្តែទទួលបាន ${u(g.input)}`;case"invalid_value":return g.values.length===1?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${YA(g.values[0])}`:`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`ធំពេក៖ ត្រូវការ ${g.origin??"តម្លៃ"} ${a} ${g.maximum.toString()} ${h.unit??"ធាតុ"}`:`ធំពេក៖ ត្រូវការ ${g.origin??"តម្លៃ"} ${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`តូចពេក៖ ត្រូវការ ${g.origin} ${a} ${g.minimum.toString()} ${h.unit}`:`តូចពេក៖ ត្រូវការ ${g.origin} ${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${a.prefix}"`:a.format==="ends_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${a.suffix}"`:a.format==="includes"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${a.includes}"`:a.format==="regex"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${a.pattern}`:`មិនត្រឹមត្រូវ៖ ${E[a.format]??g.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${g.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${cA(g.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${g.origin}`;case"invalid_union":return"ទិន្នន័យមិនត្រឹមត្រូវ";case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${g.origin}`;default:return"ទិន្នន័យមិនត្រឹមត្រូវ"}}};function PB(){return{localeError:X4()}}function z4(){return PB()}const K4=()=>{const r={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",jwt:"JWT",template_literal:"입력"};return g=>{switch(g.code){case"invalid_type":return`잘못된 입력: 예상 타입은 ${g.expected}, 받은 타입은 ${u(g.input)}입니다`;case"invalid_value":return g.values.length===1?`잘못된 입력: 값은 ${YA(g.values[0])} 이어야 합니다`:`잘못된 옵션: ${cA(g.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{const a=g.inclusive?"이하":"미만",h=a==="미만"?"이어야 합니다":"여야 합니다",w=i(g.origin),k=w?.unit??"요소";return w?`${g.origin??"값"}이 너무 큽니다: ${g.maximum.toString()}${k} ${a}${h}`:`${g.origin??"값"}이 너무 큽니다: ${g.maximum.toString()} ${a}${h}`}case"too_small":{const a=g.inclusive?"이상":"초과",h=a==="이상"?"이어야 합니다":"여야 합니다",w=i(g.origin),k=w?.unit??"요소";return w?`${g.origin??"값"}이 너무 작습니다: ${g.minimum.toString()}${k} ${a}${h}`:`${g.origin??"값"}이 너무 작습니다: ${g.minimum.toString()} ${a}${h}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`잘못된 문자열: "${a.prefix}"(으)로 시작해야 합니다`:a.format==="ends_with"?`잘못된 문자열: "${a.suffix}"(으)로 끝나야 합니다`:a.format==="includes"?`잘못된 문자열: "${a.includes}"을(를) 포함해야 합니다`:a.format==="regex"?`잘못된 문자열: 정규식 ${a.pattern} 패턴과 일치해야 합니다`:`잘못된 ${E[a.format]??g.format}`}case"not_multiple_of":return`잘못된 숫자: ${g.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${cA(g.keys,", ")}`;case"invalid_key":return`잘못된 키: ${g.origin}`;case"invalid_union":return"잘못된 입력";case"invalid_element":return`잘못된 값: ${g.origin}`;default:return"잘못된 입력"}}};function W4(){return{localeError:K4()}}const q4=r=>Wi(typeof r,r),Wi=(r,i=void 0)=>{switch(r){case"number":return Number.isNaN(i)?"NaN":"skaičius";case"bigint":return"sveikasis skaičius";case"string":return"eilutė";case"boolean":return"loginė reikšmė";case"undefined":case"void":return"neapibrėžta reikšmė";case"function":return"funkcija";case"symbol":return"simbolis";case"object":return i===void 0?"nežinomas objektas":i===null?"nulinė reikšmė":Array.isArray(i)?"masyvas":Object.getPrototypeOf(i)!==Object.prototype&&i.constructor?i.constructor.name:"objektas";case"null":return"nulinė reikšmė"}return r},qi=r=>r.charAt(0).toUpperCase()+r.slice(1);function YB(r){const i=Math.abs(r),u=i%10,E=i%100;return E>=11&&E<=19||u===0?"many":u===1?"one":"few"}const V4=()=>{const r={string:{unit:{one:"simbolis",few:"simboliai",many:"simbolių"},verb:{smaller:{inclusive:"turi būti ne ilgesnė kaip",notInclusive:"turi būti trumpesnė kaip"},bigger:{inclusive:"turi būti ne trumpesnė kaip",notInclusive:"turi būti ilgesnė kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"baitų"},verb:{smaller:{inclusive:"turi būti ne didesnis kaip",notInclusive:"turi būti mažesnis kaip"},bigger:{inclusive:"turi būti ne mažesnis kaip",notInclusive:"turi būti didesnis kaip"}}},array:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}},set:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}}};function i(E,g,a,h){const w=r[E]??null;return w===null?w:{unit:w.unit[g],verb:w.verb[h][a?"inclusive":"notInclusive"]}}const u={regex:"įvestis",email:"el. pašto adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukmė",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 užkoduota eilutė",base64url:"base64url užkoduota eilutė",json_string:"JSON eilutė",e164:"E.164 numeris",jwt:"JWT",template_literal:"įvestis"};return E=>{switch(E.code){case"invalid_type":return`Gautas tipas ${q4(E.input)}, o tikėtasi - ${Wi(E.expected)}`;case"invalid_value":return E.values.length===1?`Privalo būti ${YA(E.values[0])}`:`Privalo būti vienas iš ${cA(E.values,"|")} pasirinkimų`;case"too_big":{const g=Wi(E.origin),a=i(E.origin,YB(Number(E.maximum)),E.inclusive??!1,"smaller");if(a?.verb)return`${qi(g??E.origin??"reikšmė")} ${a.verb} ${E.maximum.toString()} ${a.unit??"elementų"}`;const h=E.inclusive?"ne didesnis kaip":"mažesnis kaip";return`${qi(g??E.origin??"reikšmė")} turi būti ${h} ${E.maximum.toString()} ${a?.unit}`}case"too_small":{const g=Wi(E.origin),a=i(E.origin,YB(Number(E.minimum)),E.inclusive??!1,"bigger");if(a?.verb)return`${qi(g??E.origin??"reikšmė")} ${a.verb} ${E.minimum.toString()} ${a.unit??"elementų"}`;const h=E.inclusive?"ne mažesnis kaip":"didesnis kaip";return`${qi(g??E.origin??"reikšmė")} turi būti ${h} ${E.minimum.toString()} ${a?.unit}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Eilutė privalo prasidėti "${g.prefix}"`:g.format==="ends_with"?`Eilutė privalo pasibaigti "${g.suffix}"`:g.format==="includes"?`Eilutė privalo įtraukti "${g.includes}"`:g.format==="regex"?`Eilutė privalo atitikti ${g.pattern}`:`Neteisingas ${u[g.format]??E.format}`}case"not_multiple_of":return`Skaičius privalo būti ${E.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpažint${E.keys.length>1?"i":"as"} rakt${E.keys.length>1?"ai":"as"}: ${cA(E.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga įvestis";case"invalid_element":{const g=Wi(E.origin);return`${qi(g??E.origin??"reikšmė")} turi klaidingą įvestį`}default:return"Klaidinga įvestis"}}};function Ay(){return{localeError:V4()}}const ey=()=>{const r={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"број";case"object":{if(Array.isArray(g))return"низа";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",jwt:"JWT",template_literal:"внес"};return g=>{switch(g.code){case"invalid_type":return`Грешен внес: се очекува ${g.expected}, примено ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Invalid input: expected ${YA(g.values[0])}`:`Грешана опција: се очекува една ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Премногу голем: се очекува ${g.origin??"вредноста"} да има ${a}${g.maximum.toString()} ${h.unit??"елементи"}`:`Премногу голем: се очекува ${g.origin??"вредноста"} да биде ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Премногу мал: се очекува ${g.origin} да има ${a}${g.minimum.toString()} ${h.unit}`:`Премногу мал: се очекува ${g.origin} да биде ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Неважечка низа: мора да започнува со "${a.prefix}"`:a.format==="ends_with"?`Неважечка низа: мора да завршува со "${a.suffix}"`:a.format==="includes"?`Неважечка низа: мора да вклучува "${a.includes}"`:a.format==="regex"?`Неважечка низа: мора да одгоара на патернот ${a.pattern}`:`Invalid ${E[a.format]??g.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${g.divisor}`;case"unrecognized_keys":return`${g.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${g.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${g.origin}`;default:return"Грешен внес"}}};function ty(){return{localeError:ey()}}const ry=()=>{const r={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"nombor";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Input tidak sah: dijangka ${g.expected}, diterima ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Input tidak sah: dijangka ${YA(g.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Terlalu besar: dijangka ${g.origin??"nilai"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"elemen"}`:`Terlalu besar: dijangka ${g.origin??"nilai"} adalah ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Terlalu kecil: dijangka ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Terlalu kecil: dijangka ${g.origin} adalah ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`String tidak sah: mesti bermula dengan "${a.prefix}"`:a.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${a.suffix}"`:a.format==="includes"?`String tidak sah: mesti mengandungi "${a.includes}"`:a.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${a.pattern}`:`${E[a.format]??g.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${g.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${cA(g.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${g.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${g.origin}`;default:return"Input tidak sah"}}};function ny(){return{localeError:ry()}}const iy=()=>{const r={string:{unit:"tekens",verb:"te hebben"},file:{unit:"bytes",verb:"te hebben"},array:{unit:"elementen",verb:"te hebben"},set:{unit:"elementen",verb:"te hebben"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"getal";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return g=>{switch(g.code){case"invalid_type":return`Ongeldige invoer: verwacht ${g.expected}, ontving ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ongeldige invoer: verwacht ${YA(g.values[0])}`:`Ongeldige optie: verwacht één van ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Te groot: verwacht dat ${g.origin??"waarde"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"elementen"}`:`Te groot: verwacht dat ${g.origin??"waarde"} ${a}${g.maximum.toString()} is`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Te klein: verwacht dat ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Te klein: verwacht dat ${g.origin} ${a}${g.minimum.toString()} is`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ongeldige tekst: moet met "${a.prefix}" beginnen`:a.format==="ends_with"?`Ongeldige tekst: moet op "${a.suffix}" eindigen`:a.format==="includes"?`Ongeldige tekst: moet "${a.includes}" bevatten`:a.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${a.pattern}`:`Ongeldig: ${E[a.format]??g.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${g.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${g.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${g.origin}`;default:return"Ongeldige invoer"}}};function oy(){return{localeError:iy()}}const ay=()=>{const r={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"tall";case"object":{if(Array.isArray(g))return"liste";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Ugyldig input: forventet ${g.expected}, fikk ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ugyldig verdi: forventet ${YA(g.values[0])}`:`Ugyldig valg: forventet en av ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`For stor(t): forventet ${g.origin??"value"} til å ha ${a}${g.maximum.toString()} ${h.unit??"elementer"}`:`For stor(t): forventet ${g.origin??"value"} til å ha ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`For lite(n): forventet ${g.origin} til å ha ${a}${g.minimum.toString()} ${h.unit}`:`For lite(n): forventet ${g.origin} til å ha ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ugyldig streng: må starte med "${a.prefix}"`:a.format==="ends_with"?`Ugyldig streng: må ende med "${a.suffix}"`:a.format==="includes"?`Ugyldig streng: må inneholde "${a.includes}"`:a.format==="regex"?`Ugyldig streng: må matche mønsteret ${a.pattern}`:`Ugyldig ${E[a.format]??g.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${g.divisor}`;case"unrecognized_keys":return`${g.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${g.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${g.origin}`;default:return"Ugyldig input"}}};function sy(){return{localeError:ay()}}const gy=()=>{const r={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"numara";case"object":{if(Array.isArray(g))return"saf";if(g===null)return"gayb";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",jwt:"JWT",template_literal:"giren"};return g=>{switch(g.code){case"invalid_type":return`Fâsit giren: umulan ${g.expected}, alınan ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Fâsit giren: umulan ${YA(g.values[0])}`:`Fâsit tercih: mûteberler ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Fazla büyük: ${g.origin??"value"}, ${a}${g.maximum.toString()} ${h.unit??"elements"} sahip olmalıydı.`:`Fazla büyük: ${g.origin??"value"}, ${a}${g.maximum.toString()} olmalıydı.`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Fazla küçük: ${g.origin}, ${a}${g.minimum.toString()} ${h.unit} sahip olmalıydı.`:`Fazla küçük: ${g.origin}, ${a}${g.minimum.toString()} olmalıydı.`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Fâsit metin: "${a.prefix}" ile başlamalı.`:a.format==="ends_with"?`Fâsit metin: "${a.suffix}" ile bitmeli.`:a.format==="includes"?`Fâsit metin: "${a.includes}" ihtivâ etmeli.`:a.format==="regex"?`Fâsit metin: ${a.pattern} nakşına uymalı.`:`Fâsit ${E[a.format]??g.format}`}case"not_multiple_of":return`Fâsit sayı: ${g.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${g.origin} için tanınmayan kıymet var.`;default:return"Kıymet tanınamadı."}}};function cy(){return{localeError:gy()}}const uy=()=>{const r={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"عدد";case"object":{if(Array.isArray(g))return"ارې";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",jwt:"JWT",template_literal:"ورودي"};return g=>{switch(g.code){case"invalid_type":return`ناسم ورودي: باید ${g.expected} وای, مګر ${u(g.input)} ترلاسه شو`;case"invalid_value":return g.values.length===1?`ناسم ورودي: باید ${YA(g.values[0])} وای`:`ناسم انتخاب: باید یو له ${cA(g.values,"|")} څخه وای`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`ډیر لوی: ${g.origin??"ارزښت"} باید ${a}${g.maximum.toString()} ${h.unit??"عنصرونه"} ولري`:`ډیر لوی: ${g.origin??"ارزښت"} باید ${a}${g.maximum.toString()} وي`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`ډیر کوچنی: ${g.origin} باید ${a}${g.minimum.toString()} ${h.unit} ولري`:`ډیر کوچنی: ${g.origin} باید ${a}${g.minimum.toString()} وي`}case"invalid_format":{const a=g;return a.format==="starts_with"?`ناسم متن: باید د "${a.prefix}" سره پیل شي`:a.format==="ends_with"?`ناسم متن: باید د "${a.suffix}" سره پای ته ورسيږي`:a.format==="includes"?`ناسم متن: باید "${a.includes}" ولري`:a.format==="regex"?`ناسم متن: باید د ${a.pattern} سره مطابقت ولري`:`${E[a.format]??g.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${g.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${g.keys.length>1?"کلیډونه":"کلیډ"}: ${cA(g.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${g.origin} کې`;case"invalid_union":return"ناسمه ورودي";case"invalid_element":return`ناسم عنصر په ${g.origin} کې`;default:return"ناسمه ورودي"}}};function Iy(){return{localeError:uy()}}const Ey=()=>{const r={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"liczba";case"object":{if(Array.isArray(g))return"tablica";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wejście"};return g=>{switch(g.code){case"invalid_type":return`Nieprawidłowe dane wejściowe: oczekiwano ${g.expected}, otrzymano ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Nieprawidłowe dane wejściowe: oczekiwano ${YA(g.values[0])}`:`Nieprawidłowa opcja: oczekiwano jednej z wartości ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Za duża wartość: oczekiwano, że ${g.origin??"wartość"} będzie mieć ${a}${g.maximum.toString()} ${h.unit??"elementów"}`:`Zbyt duż(y/a/e): oczekiwano, że ${g.origin??"wartość"} będzie wynosić ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Za mała wartość: oczekiwano, że ${g.origin??"wartość"} będzie mieć ${a}${g.minimum.toString()} ${h.unit??"elementów"}`:`Zbyt mał(y/a/e): oczekiwano, że ${g.origin??"wartość"} będzie wynosić ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Nieprawidłowy ciąg znaków: musi zaczynać się od "${a.prefix}"`:a.format==="ends_with"?`Nieprawidłowy ciąg znaków: musi kończyć się na "${a.suffix}"`:a.format==="includes"?`Nieprawidłowy ciąg znaków: musi zawierać "${a.includes}"`:a.format==="regex"?`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${a.pattern}`:`Nieprawidłow(y/a/e) ${E[a.format]??g.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${g.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${g.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${g.origin}`;default:return"Nieprawidłowe dane wejściowe"}}};function ly(){return{localeError:Ey()}}const By=()=>{const r={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"número";case"object":{if(Array.isArray(g))return"array";if(g===null)return"nulo";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"padrão",email:"endereço de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"duração ISO",ipv4:"endereço IPv4",ipv6:"endereço IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return g=>{switch(g.code){case"invalid_type":return`Tipo inválido: esperado ${g.expected}, recebido ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Entrada inválida: esperado ${YA(g.values[0])}`:`Opção inválida: esperada uma das ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Muito grande: esperado que ${g.origin??"valor"} tivesse ${a}${g.maximum.toString()} ${h.unit??"elementos"}`:`Muito grande: esperado que ${g.origin??"valor"} fosse ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Muito pequeno: esperado que ${g.origin} tivesse ${a}${g.minimum.toString()} ${h.unit}`:`Muito pequeno: esperado que ${g.origin} fosse ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Texto inválido: deve começar com "${a.prefix}"`:a.format==="ends_with"?`Texto inválido: deve terminar com "${a.suffix}"`:a.format==="includes"?`Texto inválido: deve incluir "${a.includes}"`:a.format==="regex"?`Texto inválido: deve corresponder ao padrão ${a.pattern}`:`${E[a.format]??g.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${g.divisor}`;case"unrecognized_keys":return`Chave${g.keys.length>1?"s":""} desconhecida${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Chave inválida em ${g.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido em ${g.origin}`;default:return"Campo inválido"}}};function Cy(){return{localeError:By()}}function jB(r,i,u,E){const g=Math.abs(r),a=g%10,h=g%100;return h>=11&&h<=19?E:a===1?i:a>=2&&a<=4?u:E}const Qy=()=>{const r={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"число";case"object":{if(Array.isArray(g))return"массив";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",jwt:"JWT",template_literal:"ввод"};return g=>{switch(g.code){case"invalid_type":return`Неверный ввод: ожидалось ${g.expected}, получено ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Неверный ввод: ожидалось ${YA(g.values[0])}`:`Неверный вариант: ожидалось одно из ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);if(h){const w=Number(g.maximum),k=jB(w,h.unit.one,h.unit.few,h.unit.many);return`Слишком большое значение: ожидалось, что ${g.origin??"значение"} будет иметь ${a}${g.maximum.toString()} ${k}`}return`Слишком большое значение: ожидалось, что ${g.origin??"значение"} будет ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);if(h){const w=Number(g.minimum),k=jB(w,h.unit.one,h.unit.few,h.unit.many);return`Слишком маленькое значение: ожидалось, что ${g.origin} будет иметь ${a}${g.minimum.toString()} ${k}`}return`Слишком маленькое значение: ожидалось, что ${g.origin} будет ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Неверная строка: должна начинаться с "${a.prefix}"`:a.format==="ends_with"?`Неверная строка: должна заканчиваться на "${a.suffix}"`:a.format==="includes"?`Неверная строка: должна содержать "${a.includes}"`:a.format==="regex"?`Неверная строка: должна соответствовать шаблону ${a.pattern}`:`Неверный ${E[a.format]??g.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${g.divisor}`;case"unrecognized_keys":return`Нераспознанн${g.keys.length>1?"ые":"ый"} ключ${g.keys.length>1?"и":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${g.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${g.origin}`;default:return"Неверные входные данные"}}};function fy(){return{localeError:Qy()}}const dy=()=>{const r={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"število";case"object":{if(Array.isArray(g))return"tabela";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",jwt:"JWT",template_literal:"vnos"};return g=>{switch(g.code){case"invalid_type":return`Neveljaven vnos: pričakovano ${g.expected}, prejeto ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Neveljaven vnos: pričakovano ${YA(g.values[0])}`:`Neveljavna možnost: pričakovano eno izmed ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Preveliko: pričakovano, da bo ${g.origin??"vrednost"} imelo ${a}${g.maximum.toString()} ${h.unit??"elementov"}`:`Preveliko: pričakovano, da bo ${g.origin??"vrednost"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Premajhno: pričakovano, da bo ${g.origin} imelo ${a}${g.minimum.toString()} ${h.unit}`:`Premajhno: pričakovano, da bo ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Neveljaven niz: mora se začeti z "${a.prefix}"`:a.format==="ends_with"?`Neveljaven niz: mora se končati z "${a.suffix}"`:a.format==="includes"?`Neveljaven niz: mora vsebovati "${a.includes}"`:a.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${a.pattern}`:`Neveljaven ${E[a.format]??g.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${g.divisor}`;case"unrecognized_keys":return`Neprepoznan${g.keys.length>1?"i ključi":" ključ"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${g.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${g.origin}`;default:return"Neveljaven vnos"}}};function hy(){return{localeError:dy()}}const my=()=>{const r={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"antal";case"object":{if(Array.isArray(g))return"lista";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return g=>{switch(g.code){case"invalid_type":return`Ogiltig inmatning: förväntat ${g.expected}, fick ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ogiltig inmatning: förväntat ${YA(g.values[0])}`:`Ogiltigt val: förväntade en av ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`För stor(t): förväntade ${g.origin??"värdet"} att ha ${a}${g.maximum.toString()} ${h.unit??"element"}`:`För stor(t): förväntat ${g.origin??"värdet"} att ha ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`För lite(t): förväntade ${g.origin??"värdet"} att ha ${a}${g.minimum.toString()} ${h.unit}`:`För lite(t): förväntade ${g.origin??"värdet"} att ha ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ogiltig sträng: måste börja med "${a.prefix}"`:a.format==="ends_with"?`Ogiltig sträng: måste sluta med "${a.suffix}"`:a.format==="includes"?`Ogiltig sträng: måste innehålla "${a.includes}"`:a.format==="regex"?`Ogiltig sträng: måste matcha mönstret "${a.pattern}"`:`Ogiltig(t) ${E[a.format]??g.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${g.divisor}`;case"unrecognized_keys":return`${g.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${g.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${g.origin??"värdet"}`;default:return"Ogiltig input"}}};function py(){return{localeError:my()}}const yy=()=>{const r={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"எண் அல்லாதது":"எண்";case"object":{if(Array.isArray(g))return"அணி";if(g===null)return"வெறுமை";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${g.expected}, பெறப்பட்டது ${u(g.input)}`;case"invalid_value":return g.values.length===1?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${YA(g.values[0])}`:`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${cA(g.values,"|")} இல் ஒன்று`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${g.origin??"மதிப்பு"} ${a}${g.maximum.toString()} ${h.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`:`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${g.origin??"மதிப்பு"} ${a}${g.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${g.origin} ${a}${g.minimum.toString()} ${h.unit} ஆக இருக்க வேண்டும்`:`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${g.origin} ${a}${g.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{const a=g;return a.format==="starts_with"?`தவறான சரம்: "${a.prefix}" இல் தொடங்க வேண்டும்`:a.format==="ends_with"?`தவறான சரம்: "${a.suffix}" இல் முடிவடைய வேண்டும்`:a.format==="includes"?`தவறான சரம்: "${a.includes}" ஐ உள்ளடக்க வேண்டும்`:a.format==="regex"?`தவறான சரம்: ${a.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`:`தவறான ${E[a.format]??g.format}`}case"not_multiple_of":return`தவறான எண்: ${g.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${g.keys.length>1?"கள்":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${g.origin} இல் தவறான மதிப்பு`;default:return"தவறான உள்ளீடு"}}};function by(){return{localeError:yy()}}const Dy=()=>{const r={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"ไม่ใช่ตัวเลข (NaN)":"ตัวเลข";case"object":{if(Array.isArray(g))return"อาร์เรย์ (Array)";if(g===null)return"ไม่มีค่า (null)";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"};return g=>{switch(g.code){case"invalid_type":return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${g.expected} แต่ได้รับ ${u(g.input)}`;case"invalid_value":return g.values.length===1?`ค่าไม่ถูกต้อง: ควรเป็น ${YA(g.values[0])}`:`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"ไม่เกิน":"น้อยกว่า",h=i(g.origin);return h?`เกินกำหนด: ${g.origin??"ค่า"} ควรมี${a} ${g.maximum.toString()} ${h.unit??"รายการ"}`:`เกินกำหนด: ${g.origin??"ค่า"} ควรมี${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?"อย่างน้อย":"มากกว่า",h=i(g.origin);return h?`น้อยกว่ากำหนด: ${g.origin} ควรมี${a} ${g.minimum.toString()} ${h.unit}`:`น้อยกว่ากำหนด: ${g.origin} ควรมี${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${a.prefix}"`:a.format==="ends_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${a.suffix}"`:a.format==="includes"?`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${a.includes}" อยู่ในข้อความ`:a.format==="regex"?`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${a.pattern}`:`รูปแบบไม่ถูกต้อง: ${E[a.format]??g.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${g.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${cA(g.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${g.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${g.origin}`;default:return"ข้อมูลไม่ถูกต้อง"}}};function wy(){return{localeError:Dy()}}const ky=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"number";case"object":{if(Array.isArray(r))return"array";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},_y=()=>{const r={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"}};function i(E){return r[E]??null}const u={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",jwt:"JWT",template_literal:"Şablon dizesi"};return E=>{switch(E.code){case"invalid_type":return`Geçersiz değer: beklenen ${E.expected}, alınan ${ky(E.input)}`;case"invalid_value":return E.values.length===1?`Geçersiz değer: beklenen ${YA(E.values[0])}`:`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Çok büyük: beklenen ${E.origin??"değer"} ${g}${E.maximum.toString()} ${a.unit??"öğe"}`:`Çok büyük: beklenen ${E.origin??"değer"} ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Çok küçük: beklenen ${E.origin} ${g}${E.minimum.toString()} ${a.unit}`:`Çok küçük: beklenen ${E.origin} ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Geçersiz metin: "${g.prefix}" ile başlamalı`:g.format==="ends_with"?`Geçersiz metin: "${g.suffix}" ile bitmeli`:g.format==="includes"?`Geçersiz metin: "${g.includes}" içermeli`:g.format==="regex"?`Geçersiz metin: ${g.pattern} desenine uymalı`:`Geçersiz ${u[g.format]??E.format}`}case"not_multiple_of":return`Geçersiz sayı: ${E.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${E.keys.length>1?"lar":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`${E.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${E.origin} içinde geçersiz değer`;default:return"Geçersiz değer"}}};function Sy(){return{localeError:_y()}}const vy=()=>{const r={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"число";case"object":{if(Array.isArray(g))return"масив";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",jwt:"JWT",template_literal:"вхідні дані"};return g=>{switch(g.code){case"invalid_type":return`Неправильні вхідні дані: очікується ${g.expected}, отримано ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Неправильні вхідні дані: очікується ${YA(g.values[0])}`:`Неправильна опція: очікується одне з ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Занадто велике: очікується, що ${g.origin??"значення"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"елементів"}`:`Занадто велике: очікується, що ${g.origin??"значення"} буде ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Занадто мале: очікується, що ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Занадто мале: очікується, що ${g.origin} буде ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Неправильний рядок: повинен починатися з "${a.prefix}"`:a.format==="ends_with"?`Неправильний рядок: повинен закінчуватися на "${a.suffix}"`:a.format==="includes"?`Неправильний рядок: повинен містити "${a.includes}"`:a.format==="regex"?`Неправильний рядок: повинен відповідати шаблону ${a.pattern}`:`Неправильний ${E[a.format]??g.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${g.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${g.keys.length>1?"і":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${g.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${g.origin}`;default:return"Неправильні вхідні дані"}}};function JB(){return{localeError:vy()}}function Ry(){return JB()}const Ty=()=>{const r={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"نمبر";case"object":{if(Array.isArray(g))return"آرے";if(g===null)return"نل";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"};return g=>{switch(g.code){case"invalid_type":return`غلط ان پٹ: ${g.expected} متوقع تھا، ${u(g.input)} موصول ہوا`;case"invalid_value":return g.values.length===1?`غلط ان پٹ: ${YA(g.values[0])} متوقع تھا`:`غلط آپشن: ${cA(g.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`بہت بڑا: ${g.origin??"ویلیو"} کے ${a}${g.maximum.toString()} ${h.unit??"عناصر"} ہونے متوقع تھے`:`بہت بڑا: ${g.origin??"ویلیو"} کا ${a}${g.maximum.toString()} ہونا متوقع تھا`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`بہت چھوٹا: ${g.origin} کے ${a}${g.minimum.toString()} ${h.unit} ہونے متوقع تھے`:`بہت چھوٹا: ${g.origin} کا ${a}${g.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{const a=g;return a.format==="starts_with"?`غلط سٹرنگ: "${a.prefix}" سے شروع ہونا چاہیے`:a.format==="ends_with"?`غلط سٹرنگ: "${a.suffix}" پر ختم ہونا چاہیے`:a.format==="includes"?`غلط سٹرنگ: "${a.includes}" شامل ہونا چاہیے`:a.format==="regex"?`غلط سٹرنگ: پیٹرن ${a.pattern} سے میچ ہونا چاہیے`:`غلط ${E[a.format]??g.format}`}case"not_multiple_of":return`غلط نمبر: ${g.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${g.keys.length>1?"ز":""}: ${cA(g.keys,"، ")}`;case"invalid_key":return`${g.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${g.origin} میں غلط ویلیو`;default:return"غلط ان پٹ"}}};function Fy(){return{localeError:Ty()}}const My=()=>{const r={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"số";case"object":{if(Array.isArray(g))return"mảng";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",jwt:"JWT",template_literal:"đầu vào"};return g=>{switch(g.code){case"invalid_type":return`Đầu vào không hợp lệ: mong đợi ${g.expected}, nhận được ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Đầu vào không hợp lệ: mong đợi ${YA(g.values[0])}`:`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Quá lớn: mong đợi ${g.origin??"giá trị"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"phần tử"}`:`Quá lớn: mong đợi ${g.origin??"giá trị"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Quá nhỏ: mong đợi ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Quá nhỏ: mong đợi ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Chuỗi không hợp lệ: phải bắt đầu bằng "${a.prefix}"`:a.format==="ends_with"?`Chuỗi không hợp lệ: phải kết thúc bằng "${a.suffix}"`:a.format==="includes"?`Chuỗi không hợp lệ: phải bao gồm "${a.includes}"`:a.format==="regex"?`Chuỗi không hợp lệ: phải khớp với mẫu ${a.pattern}`:`${E[a.format]??g.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${g.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${cA(g.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${g.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${g.origin}`;default:return"Đầu vào không hợp lệ"}}};function Oy(){return{localeError:My()}}const Ny=()=>{const r={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"非数字(NaN)":"数字";case"object":{if(Array.isArray(g))return"数组";if(g===null)return"空值(null)";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",jwt:"JWT",template_literal:"输入"};return g=>{switch(g.code){case"invalid_type":return`无效输入:期望 ${g.expected},实际接收 ${u(g.input)}`;case"invalid_value":return g.values.length===1?`无效输入:期望 ${YA(g.values[0])}`:`无效选项:期望以下之一 ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`数值过大:期望 ${g.origin??"值"} ${a}${g.maximum.toString()} ${h.unit??"个元素"}`:`数值过大:期望 ${g.origin??"值"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`数值过小:期望 ${g.origin} ${a}${g.minimum.toString()} ${h.unit}`:`数值过小:期望 ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`无效字符串:必须以 "${a.prefix}" 开头`:a.format==="ends_with"?`无效字符串:必须以 "${a.suffix}" 结尾`:a.format==="includes"?`无效字符串:必须包含 "${a.includes}"`:a.format==="regex"?`无效字符串:必须满足正则表达式 ${a.pattern}`:`无效${E[a.format]??g.format}`}case"not_multiple_of":return`无效数字:必须是 ${g.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${g.origin} 中包含无效值(value)`;default:return"无效输入"}}};function Uy(){return{localeError:Ny()}}const Gy=()=>{const r={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",jwt:"JWT",template_literal:"輸入"};return g=>{switch(g.code){case"invalid_type":return`無效的輸入值:預期為 ${g.expected},但收到 ${u(g.input)}`;case"invalid_value":return g.values.length===1?`無效的輸入值:預期為 ${YA(g.values[0])}`:`無效的選項:預期為以下其中之一 ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`數值過大:預期 ${g.origin??"值"} 應為 ${a}${g.maximum.toString()} ${h.unit??"個元素"}`:`數值過大:預期 ${g.origin??"值"} 應為 ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`數值過小:預期 ${g.origin} 應為 ${a}${g.minimum.toString()} ${h.unit}`:`數值過小:預期 ${g.origin} 應為 ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`無效的字串:必須以 "${a.prefix}" 開頭`:a.format==="ends_with"?`無效的字串:必須以 "${a.suffix}" 結尾`:a.format==="includes"?`無效的字串:必須包含 "${a.includes}"`:a.format==="regex"?`無效的字串:必須符合格式 ${a.pattern}`:`無效的 ${E[a.format]??g.format}`}case"not_multiple_of":return`無效的數字:必須為 ${g.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${g.keys.length>1?"們":""}:${cA(g.keys,"、")}`;case"invalid_key":return`${g.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${g.origin} 中有無效的值`;default:return"無效的輸入值"}}};function xy(){return{localeError:Gy()}}const Ly=()=>{const r={string:{unit:"àmi",verb:"ní"},file:{unit:"bytes",verb:"ní"},array:{unit:"nkan",verb:"ní"},set:{unit:"nkan",verb:"ní"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"nọ́mbà";case"object":{if(Array.isArray(g))return"akopọ";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ẹ̀rọ ìbáwọlé",email:"àdírẹ́sì ìmẹ́lì",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"àkókò ISO",date:"ọjọ́ ISO",time:"àkókò ISO",duration:"àkókò tó pé ISO",ipv4:"àdírẹ́sì IPv4",ipv6:"àdírẹ́sì IPv6",cidrv4:"àgbègbè IPv4",cidrv6:"àgbègbè IPv6",base64:"ọ̀rọ̀ tí a kọ́ ní base64",base64url:"ọ̀rọ̀ base64url",json_string:"ọ̀rọ̀ JSON",e164:"nọ́mbà E.164",jwt:"JWT",template_literal:"ẹ̀rọ ìbáwọlé"};return g=>{switch(g.code){case"invalid_type":return`Ìbáwọlé aṣìṣe: a ní láti fi ${g.expected}, àmọ̀ a rí ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ìbáwọlé aṣìṣe: a ní láti fi ${YA(g.values[0])}`:`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Tó pọ̀ jù: a ní láti jẹ́ pé ${g.origin??"iye"} ${h.verb} ${a}${g.maximum} ${h.unit}`:`Tó pọ̀ jù: a ní láti jẹ́ ${a}${g.maximum}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Kéré ju: a ní láti jẹ́ pé ${g.origin} ${h.verb} ${a}${g.minimum} ${h.unit}`:`Kéré ju: a ní láti jẹ́ ${a}${g.minimum}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${a.prefix}"`:a.format==="ends_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${a.suffix}"`:a.format==="includes"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${a.includes}"`:a.format==="regex"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${a.pattern}`:`Aṣìṣe: ${E[a.format]??g.format}`}case"not_multiple_of":return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${g.divisor}`;case"unrecognized_keys":return`Bọtìnì àìmọ̀: ${cA(g.keys,", ")}`;case"invalid_key":return`Bọtìnì aṣìṣe nínú ${g.origin}`;case"invalid_union":return"Ìbáwọlé aṣìṣe";case"invalid_element":return`Iye aṣìṣe nínú ${g.origin}`;default:return"Ìbáwọlé aṣìṣe"}}};function Py(){return{localeError:Ly()}}var ZB=Object.freeze({__proto__:null,ar:e4,az:r4,be:i4,bg:s4,ca:c4,cs:I4,da:l4,de:C4,en:LB,eo:m4,es:y4,fa:D4,fi:k4,fr:S4,frCA:R4,he:F4,hu:O4,id:U4,is:L4,it:Y4,ja:J4,ka:$4,kh:z4,km:PB,ko:W4,lt:Ay,mk:ty,ms:ny,nl:oy,no:sy,ota:cy,pl:ly,ps:Iy,pt:Cy,ru:fy,sl:hy,sv:py,ta:by,th:wy,tr:Sy,ua:Ry,uk:JB,ur:Fy,vi:Oy,yo:Py,zhCN:Uy,zhTW:xy}),HB;const $B=Symbol("ZodOutput"),XB=Symbol("ZodInput");class Ps{constructor(){this._map=new WeakMap,this._idmap=new Map}add(i,...u){const E=u[0];if(this._map.set(i,E),E&&typeof E=="object"&&"id"in E){if(this._idmap.has(E.id))throw new Error(`ID ${E.id} already exists in the registry`);this._idmap.set(E.id,i)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(i){const u=this._map.get(i);return u&&typeof u=="object"&&"id"in u&&this._idmap.delete(u.id),this._map.delete(i),this}get(i){const u=i._zod.parent;if(u){const E={...this.get(u)??{}};delete E.id;const g={...E,...this._map.get(i)};return Object.keys(g).length?g:void 0}return this._map.get(i)}has(i){return this._map.has(i)}}function Ys(){return new Ps}(HB=globalThis).__zod_globalRegistry??(HB.__zod_globalRegistry=Ys());const xt=globalThis.__zod_globalRegistry;function zB(r,i){return new r({type:"string",...tA(i)})}function KB(r,i){return new r({type:"string",coerce:!0,...tA(i)})}function js(r,i){return new r({type:"string",format:"email",check:"string_format",abort:!1,...tA(i)})}function ua(r,i){return new r({type:"string",format:"guid",check:"string_format",abort:!1,...tA(i)})}function Js(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,...tA(i)})}function Zs(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...tA(i)})}function Hs(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...tA(i)})}function $s(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...tA(i)})}function Ia(r,i){return new r({type:"string",format:"url",check:"string_format",abort:!1,...tA(i)})}function Xs(r,i){return new r({type:"string",format:"emoji",check:"string_format",abort:!1,...tA(i)})}function zs(r,i){return new r({type:"string",format:"nanoid",check:"string_format",abort:!1,...tA(i)})}function Ks(r,i){return new r({type:"string",format:"cuid",check:"string_format",abort:!1,...tA(i)})}function Ws(r,i){return new r({type:"string",format:"cuid2",check:"string_format",abort:!1,...tA(i)})}function qs(r,i){return new r({type:"string",format:"ulid",check:"string_format",abort:!1,...tA(i)})}function Vs(r,i){return new r({type:"string",format:"xid",check:"string_format",abort:!1,...tA(i)})}function Ag(r,i){return new r({type:"string",format:"ksuid",check:"string_format",abort:!1,...tA(i)})}function eg(r,i){return new r({type:"string",format:"ipv4",check:"string_format",abort:!1,...tA(i)})}function tg(r,i){return new r({type:"string",format:"ipv6",check:"string_format",abort:!1,...tA(i)})}function WB(r,i){return new r({type:"string",format:"mac",check:"string_format",abort:!1,...tA(i)})}function rg(r,i){return new r({type:"string",format:"cidrv4",check:"string_format",abort:!1,...tA(i)})}function ng(r,i){return new r({type:"string",format:"cidrv6",check:"string_format",abort:!1,...tA(i)})}function ig(r,i){return new r({type:"string",format:"base64",check:"string_format",abort:!1,...tA(i)})}function og(r,i){return new r({type:"string",format:"base64url",check:"string_format",abort:!1,...tA(i)})}function ag(r,i){return new r({type:"string",format:"e164",check:"string_format",abort:!1,...tA(i)})}function sg(r,i){return new r({type:"string",format:"jwt",check:"string_format",abort:!1,...tA(i)})}const qB={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function VB(r,i){return new r({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...tA(i)})}function AC(r,i){return new r({type:"string",format:"date",check:"string_format",...tA(i)})}function eC(r,i){return new r({type:"string",format:"time",check:"string_format",precision:null,...tA(i)})}function tC(r,i){return new r({type:"string",format:"duration",check:"string_format",...tA(i)})}function rC(r,i){return new r({type:"number",checks:[],...tA(i)})}function nC(r,i){return new r({type:"number",coerce:!0,checks:[],...tA(i)})}function iC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"safeint",...tA(i)})}function oC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"float32",...tA(i)})}function aC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"float64",...tA(i)})}function sC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"int32",...tA(i)})}function gC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"uint32",...tA(i)})}function cC(r,i){return new r({type:"boolean",...tA(i)})}function uC(r,i){return new r({type:"boolean",coerce:!0,...tA(i)})}function IC(r,i){return new r({type:"bigint",...tA(i)})}function EC(r,i){return new r({type:"bigint",coerce:!0,...tA(i)})}function lC(r,i){return new r({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...tA(i)})}function BC(r,i){return new r({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...tA(i)})}function CC(r,i){return new r({type:"symbol",...tA(i)})}function QC(r,i){return new r({type:"undefined",...tA(i)})}function fC(r,i){return new r({type:"null",...tA(i)})}function dC(r){return new r({type:"any"})}function hC(r){return new r({type:"unknown"})}function mC(r,i){return new r({type:"never",...tA(i)})}function pC(r,i){return new r({type:"void",...tA(i)})}function yC(r,i){return new r({type:"date",...tA(i)})}function bC(r,i){return new r({type:"date",coerce:!0,...tA(i)})}function DC(r,i){return new r({type:"nan",...tA(i)})}function on(r,i){return new Rs({check:"less_than",...tA(i),value:r,inclusive:!1})}function Lt(r,i){return new Rs({check:"less_than",...tA(i),value:r,inclusive:!0})}function an(r,i){return new Ts({check:"greater_than",...tA(i),value:r,inclusive:!1})}function Qt(r,i){return new Ts({check:"greater_than",...tA(i),value:r,inclusive:!0})}function wC(r){return an(0,r)}function kC(r){return on(0,r)}function _C(r){return Lt(0,r)}function SC(r){return Qt(0,r)}function Vi(r,i){return new KE({check:"multiple_of",...tA(i),value:r})}function Ea(r,i){return new VE({check:"max_size",...tA(i),maximum:r})}function Ao(r,i){return new Al({check:"min_size",...tA(i),minimum:r})}function gg(r,i){return new el({check:"size_equals",...tA(i),size:r})}function la(r,i){return new tl({check:"max_length",...tA(i),maximum:r})}function zn(r,i){return new rl({check:"min_length",...tA(i),minimum:r})}function Ba(r,i){return new nl({check:"length_equals",...tA(i),length:r})}function cg(r,i){return new il({check:"string_format",format:"regex",...tA(i),pattern:r})}function ug(r){return new ol({check:"string_format",format:"lowercase",...tA(r)})}function Ig(r){return new al({check:"string_format",format:"uppercase",...tA(r)})}function Eg(r,i){return new sl({check:"string_format",format:"includes",...tA(i),includes:r})}function lg(r,i){return new gl({check:"string_format",format:"starts_with",...tA(i),prefix:r})}function Bg(r,i){return new cl({check:"string_format",format:"ends_with",...tA(i),suffix:r})}function vC(r,i,u){return new Il({check:"property",property:r,schema:i,...tA(u)})}function Cg(r,i){return new El({check:"mime_type",mime:r,...tA(i)})}function Mr(r){return new ll({check:"overwrite",tx:r})}function Qg(r){return Mr(i=>i.normalize(r))}function fg(){return Mr(r=>r.trim())}function dg(){return Mr(r=>r.toLowerCase())}function hg(){return Mr(r=>r.toUpperCase())}function mg(){return Mr(r=>HI(r))}function RC(r,i,u){return new r({type:"array",element:i,...tA(u)})}function Yy(r,i,u){return new r({type:"union",options:i,...tA(u)})}function jy(r,i,u,E){return new r({type:"union",options:u,discriminator:i,...tA(E)})}function Jy(r,i,u){return new r({type:"intersection",left:i,right:u})}function Zy(r,i,u,E){const g=u instanceof HA,a=g?E:u,h=g?u:null;return new r({type:"tuple",items:i,rest:h,...tA(a)})}function Hy(r,i,u,E){return new r({type:"record",keyType:i,valueType:u,...tA(E)})}function $y(r,i,u,E){return new r({type:"map",keyType:i,valueType:u,...tA(E)})}function Xy(r,i,u){return new r({type:"set",valueType:i,...tA(u)})}function zy(r,i,u){const E=Array.isArray(i)?Object.fromEntries(i.map(g=>[g,g])):i;return new r({type:"enum",entries:E,...tA(u)})}function Ky(r,i,u){return new r({type:"enum",entries:i,...tA(u)})}function Wy(r,i,u){return new r({type:"literal",values:Array.isArray(i)?i:[i],...tA(u)})}function TC(r,i){return new r({type:"file",...tA(i)})}function qy(r,i){return new r({type:"transform",transform:i})}function Vy(r,i){return new r({type:"optional",innerType:i})}function Ab(r,i){return new r({type:"nullable",innerType:i})}function eb(r,i,u){return new r({type:"default",innerType:i,get defaultValue(){return typeof u=="function"?u():ta(u)}})}function tb(r,i,u){return new r({type:"nonoptional",innerType:i,...tA(u)})}function rb(r,i){return new r({type:"success",innerType:i})}function nb(r,i,u){return new r({type:"catch",innerType:i,catchValue:typeof u=="function"?u:()=>u})}function ib(r,i,u){return new r({type:"pipe",in:i,out:u})}function ob(r,i){return new r({type:"readonly",innerType:i})}function ab(r,i,u){return new r({type:"template_literal",parts:i,...tA(u)})}function sb(r,i){return new r({type:"lazy",getter:i})}function gb(r,i){return new r({type:"promise",innerType:i})}function FC(r,i,u){const E=tA(u);return E.abort??(E.abort=!0),new r({type:"custom",check:"custom",fn:i,...E})}function MC(r,i,u){return new r({type:"custom",check:"custom",fn:i,...tA(u)})}function OC(r){const i=NC(u=>(u.addIssue=E=>{if(typeof E=="string")u.issues.push($n(E,u.value,i._zod.def));else{const g=E;g.fatal&&(g.continue=!1),g.code??(g.code="custom"),g.input??(g.input=u.value),g.inst??(g.inst=i),g.continue??(g.continue=!i._zod.def.abort),u.issues.push($n(g))}},r(u.value,u)));return i}function NC(r,i){const u=new we({check:"custom",...tA(i)});return u._zod.check=r,u}function UC(r){const i=new we({check:"describe"});return i._zod.onattach=[u=>{const E=xt.get(u)??{};xt.add(u,{...E,description:r})}],i._zod.check=()=>{},i}function GC(r){const i=new we({check:"meta"});return i._zod.onattach=[u=>{const E=xt.get(u)??{};xt.add(u,{...E,...r})}],i._zod.check=()=>{},i}function xC(r,i){const u=tA(i);let E=u.truthy??["true","1","yes","on","y","enabled"],g=u.falsy??["false","0","no","off","n","disabled"];u.case!=="sensitive"&&(E=E.map(j=>typeof j=="string"?j.toLowerCase():j),g=g.map(j=>typeof j=="string"?j.toLowerCase():j));const a=new Set(E),h=new Set(g),w=r.Codec??Ls,k=r.Boolean??Os,v=r.String??Ki,F=new v({type:"string",error:u.error}),x=new k({type:"boolean",error:u.error}),$=new w({type:"pipe",in:F,out:x,transform:(j,P)=>{let rA=j;return u.case!=="sensitive"&&(rA=rA.toLowerCase()),a.has(rA)?!0:h.has(rA)?!1:(P.issues.push({code:"invalid_value",expected:"stringbool",values:[...a,...h],input:P.value,inst:$,continue:!1}),{})},reverseTransform:(j,P)=>j===!0?E[0]||"true":g[0]||"false",error:u.error});return $}function eo(r,i,u,E={}){const g=tA(E),a={...tA(E),check:"string_format",type:"string",format:i,fn:typeof u=="function"?u:w=>u.test(w),...g};return u instanceof RegExp&&(a.pattern=u),new r(a)}class pg{constructor(i){this.counter=0,this.metadataRegistry=i?.metadata??xt,this.target=i?.target??"draft-2020-12",this.unrepresentable=i?.unrepresentable??"throw",this.override=i?.override??(()=>{}),this.io=i?.io??"output",this.seen=new Map}process(i,u={path:[],schemaPath:[]}){var E;const g=i._zod.def,a={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},h=this.seen.get(i);if(h)return h.count++,u.schemaPath.includes(i)&&(h.cycle=u.path),h.schema;const w={schema:{},count:1,cycle:void 0,path:u.path};this.seen.set(i,w);const k=i._zod.toJSONSchema?.();if(k)w.schema=k;else{const x={...u,schemaPath:[...u.schemaPath,i],path:u.path},$=i._zod.parent;if($)w.ref=$,this.process($,x),this.seen.get($).isParent=!0;else{const j=w.schema;switch(g.type){case"string":{const P=j;P.type="string";const{minimum:rA,maximum:iA,format:TA,patterns:pA,contentEncoding:MA}=i._zod.bag;if(typeof rA=="number"&&(P.minLength=rA),typeof iA=="number"&&(P.maxLength=iA),TA&&(P.format=a[TA]??TA,P.format===""&&delete P.format),MA&&(P.contentEncoding=MA),pA&&pA.size>0){const xA=[...pA];xA.length===1?P.pattern=xA[0].source:xA.length>1&&(w.schema.allOf=[...xA.map(ce=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:ce.source}))])}break}case"number":{const P=j,{minimum:rA,maximum:iA,format:TA,multipleOf:pA,exclusiveMaximum:MA,exclusiveMinimum:xA}=i._zod.bag;typeof TA=="string"&&TA.includes("int")?P.type="integer":P.type="number",typeof xA=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(P.minimum=xA,P.exclusiveMinimum=!0):P.exclusiveMinimum=xA),typeof rA=="number"&&(P.minimum=rA,typeof xA=="number"&&this.target!=="draft-4"&&(xA>=rA?delete P.minimum:delete P.exclusiveMinimum)),typeof MA=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(P.maximum=MA,P.exclusiveMaximum=!0):P.exclusiveMaximum=MA),typeof iA=="number"&&(P.maximum=iA,typeof MA=="number"&&this.target!=="draft-4"&&(MA<=iA?delete P.maximum:delete P.exclusiveMaximum)),typeof pA=="number"&&(P.multipleOf=pA);break}case"boolean":{const P=j;P.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{this.target==="openapi-3.0"?(j.type="string",j.nullable=!0,j.enum=[null]):j.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{j.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const P=j,{minimum:rA,maximum:iA}=i._zod.bag;typeof rA=="number"&&(P.minItems=rA),typeof iA=="number"&&(P.maxItems=iA),P.type="array",P.items=this.process(g.element,{...x,path:[...x.path,"items"]});break}case"object":{const P=j;P.type="object",P.properties={};const rA=g.shape;for(const pA in rA)P.properties[pA]=this.process(rA[pA],{...x,path:[...x.path,"properties",pA]});const iA=new Set(Object.keys(rA)),TA=new Set([...iA].filter(pA=>{const MA=g.shape[pA]._zod;return this.io==="input"?MA.optin===void 0:MA.optout===void 0}));TA.size>0&&(P.required=Array.from(TA)),g.catchall?._zod.def.type==="never"?P.additionalProperties=!1:g.catchall?g.catchall&&(P.additionalProperties=this.process(g.catchall,{...x,path:[...x.path,"additionalProperties"]})):this.io==="output"&&(P.additionalProperties=!1);break}case"union":{const P=j,rA=g.discriminator!==void 0,iA=g.options.map((TA,pA)=>this.process(TA,{...x,path:[...x.path,rA?"oneOf":"anyOf",pA]}));rA?P.oneOf=iA:P.anyOf=iA;break}case"intersection":{const P=j,rA=this.process(g.left,{...x,path:[...x.path,"allOf",0]}),iA=this.process(g.right,{...x,path:[...x.path,"allOf",1]}),TA=MA=>"allOf"in MA&&Object.keys(MA).length===1,pA=[...TA(rA)?rA.allOf:[rA],...TA(iA)?iA.allOf:[iA]];P.allOf=pA;break}case"tuple":{const P=j;P.type="array";const rA=this.target==="draft-2020-12"?"prefixItems":"items",iA=this.target==="draft-2020-12"||this.target==="openapi-3.0"?"items":"additionalItems",TA=g.items.map((ce,se)=>this.process(ce,{...x,path:[...x.path,rA,se]})),pA=g.rest?this.process(g.rest,{...x,path:[...x.path,iA,...this.target==="openapi-3.0"?[g.items.length]:[]]}):null;this.target==="draft-2020-12"?(P.prefixItems=TA,pA&&(P.items=pA)):this.target==="openapi-3.0"?(P.items={anyOf:TA},pA&&P.items.anyOf.push(pA),P.minItems=TA.length,pA||(P.maxItems=TA.length)):(P.items=TA,pA&&(P.additionalItems=pA));const{minimum:MA,maximum:xA}=i._zod.bag;typeof MA=="number"&&(P.minItems=MA),typeof xA=="number"&&(P.maxItems=xA);break}case"record":{const P=j;P.type="object",(this.target==="draft-7"||this.target==="draft-2020-12")&&(P.propertyNames=this.process(g.keyType,{...x,path:[...x.path,"propertyNames"]})),P.additionalProperties=this.process(g.valueType,{...x,path:[...x.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const P=j,rA=Es(g.entries);rA.every(iA=>typeof iA=="number")&&(P.type="number"),rA.every(iA=>typeof iA=="string")&&(P.type="string"),P.enum=rA;break}case"literal":{const P=j,rA=[];for(const iA of g.values)if(iA===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof iA=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");rA.push(Number(iA))}else rA.push(iA);if(rA.length!==0)if(rA.length===1){const iA=rA[0];P.type=iA===null?"null":typeof iA,this.target==="draft-4"||this.target==="openapi-3.0"?P.enum=[iA]:P.const=iA}else rA.every(iA=>typeof iA=="number")&&(P.type="number"),rA.every(iA=>typeof iA=="string")&&(P.type="string"),rA.every(iA=>typeof iA=="boolean")&&(P.type="string"),rA.every(iA=>iA===null)&&(P.type="null"),P.enum=rA;break}case"file":{const P=j,rA={type:"string",format:"binary",contentEncoding:"binary"},{minimum:iA,maximum:TA,mime:pA}=i._zod.bag;iA!==void 0&&(rA.minLength=iA),TA!==void 0&&(rA.maxLength=TA),pA?pA.length===1?(rA.contentMediaType=pA[0],Object.assign(P,rA)):P.anyOf=pA.map(MA=>({...rA,contentMediaType:MA})):Object.assign(P,rA);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const P=this.process(g.innerType,x);this.target==="openapi-3.0"?(w.ref=g.innerType,j.nullable=!0):j.anyOf=[P,{type:"null"}];break}case"nonoptional":{this.process(g.innerType,x),w.ref=g.innerType;break}case"success":{const P=j;P.type="boolean";break}case"default":{this.process(g.innerType,x),w.ref=g.innerType,j.default=JSON.parse(JSON.stringify(g.defaultValue));break}case"prefault":{this.process(g.innerType,x),w.ref=g.innerType,this.io==="input"&&(j._prefault=JSON.parse(JSON.stringify(g.defaultValue)));break}case"catch":{this.process(g.innerType,x),w.ref=g.innerType;let P;try{P=g.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}j.default=P;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const P=j,rA=i._zod.pattern;if(!rA)throw new Error("Pattern not found in template literal");P.type="string",P.pattern=rA.source;break}case"pipe":{const P=this.io==="input"?g.in._zod.def.type==="transform"?g.out:g.in:g.out;this.process(P,x),w.ref=P;break}case"readonly":{this.process(g.innerType,x),w.ref=g.innerType,j.readOnly=!0;break}case"promise":{this.process(g.innerType,x),w.ref=g.innerType;break}case"optional":{this.process(g.innerType,x),w.ref=g.innerType;break}case"lazy":{const P=i._zod.innerType;this.process(P,x),w.ref=P;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema");break}}}}const v=this.metadataRegistry.get(i);return v&&Object.assign(w.schema,v),this.io==="input"&&ot(i)&&(delete w.schema.examples,delete w.schema.default),this.io==="input"&&w.schema._prefault&&((E=w.schema).default??(E.default=w.schema._prefault)),delete w.schema._prefault,this.seen.get(i).schema}emit(i,u){const E={cycles:u?.cycles??"ref",reused:u?.reused??"inline",external:u?.external??void 0},g=this.seen.get(i);if(!g)throw new Error("Unprocessed schema. This is a bug in Zod.");const a=F=>{const x=this.target==="draft-2020-12"?"$defs":"definitions";if(E.external){const rA=E.external.registry.get(F[0])?.id,iA=E.external.uri??(pA=>pA);if(rA)return{ref:iA(rA)};const TA=F[1].defId??F[1].schema.id??`schema${this.counter++}`;return F[1].defId=TA,{defId:TA,ref:`${iA("__shared")}#/${x}/${TA}`}}if(F[1]===g)return{ref:"#"};const j=`#/${x}/`,P=F[1].schema.id??`__schema${this.counter++}`;return{defId:P,ref:j+P}},h=F=>{if(F[1].schema.$ref)return;const x=F[1],{ref:$,defId:j}=a(F);x.def={...x.schema},j&&(x.defId=j);const P=x.schema;for(const rA in P)delete P[rA];P.$ref=$};if(E.cycles==="throw")for(const F of this.seen.entries()){const x=F[1];if(x.cycle)throw new Error(`Cycle detected: #/${x.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const F of this.seen.entries()){const x=F[1];if(i===F[0]){h(F);continue}if(E.external){const j=E.external.registry.get(F[0])?.id;if(i!==F[0]&&j){h(F);continue}}if(this.metadataRegistry.get(F[0])?.id){h(F);continue}if(x.cycle){h(F);continue}if(x.count>1&&E.reused==="ref"){h(F);continue}}const w=(F,x)=>{const $=this.seen.get(F),j=$.def??$.schema,P={...j};if($.ref===null)return;const rA=$.ref;if($.ref=null,rA){w(rA,x);const iA=this.seen.get(rA).schema;iA.$ref&&(x.target==="draft-7"||x.target==="draft-4"||x.target==="openapi-3.0")?(j.allOf=j.allOf??[],j.allOf.push(iA)):(Object.assign(j,iA),Object.assign(j,P))}$.isParent||this.override({zodSchema:F,jsonSchema:j,path:$.path??[]})};for(const F of[...this.seen.entries()].reverse())w(F[0],{target:this.target});const k={};if(this.target==="draft-2020-12"?k.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?k.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?k.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),E.external?.uri){const F=E.external.registry.get(i)?.id;if(!F)throw new Error("Schema is missing an `id` property");k.$id=E.external.uri(F)}Object.assign(k,g.def);const v=E.external?.defs??{};for(const F of this.seen.entries()){const x=F[1];x.def&&x.defId&&(v[x.defId]=x.def)}E.external||Object.keys(v).length>0&&(this.target==="draft-2020-12"?k.$defs=v:k.definitions=v);try{return JSON.parse(JSON.stringify(k))}catch{throw new Error("Error converting schema to JSON.")}}}function LC(r,i){if(r instanceof Ps){const E=new pg(i),g={};for(const w of r._idmap.entries()){const[k,v]=w;E.process(v)}const a={},h={registry:r,uri:i?.uri,defs:g};for(const w of r._idmap.entries()){const[k,v]=w;a[k]=E.emit(v,{...i,external:h})}if(Object.keys(g).length>0){const w=E.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[w]:g}}return{schemas:a}}const u=new pg(i);return u.process(r),u.emit(r,i)}function ot(r,i){const u=i??{seen:new Set};if(u.seen.has(r))return!1;u.seen.add(r);const E=r._zod.def;if(E.type==="transform")return!0;if(E.type==="array")return ot(E.element,u);if(E.type==="set")return ot(E.valueType,u);if(E.type==="lazy")return ot(E.getter(),u);if(E.type==="promise"||E.type==="optional"||E.type==="nonoptional"||E.type==="nullable"||E.type==="readonly"||E.type==="default"||E.type==="prefault")return ot(E.innerType,u);if(E.type==="intersection")return ot(E.left,u)||ot(E.right,u);if(E.type==="record"||E.type==="map")return ot(E.keyType,u)||ot(E.valueType,u);if(E.type==="pipe")return ot(E.in,u)||ot(E.out,u);if(E.type==="object"){for(const g in E.shape)if(ot(E.shape[g],u))return!0;return!1}if(E.type==="union"){for(const g of E.options)if(ot(g,u))return!0;return!1}if(E.type==="tuple"){for(const g of E.items)if(ot(g,u))return!0;return!!(E.rest&&ot(E.rest,u))}return!1}var cb=Object.freeze({__proto__:null}),ub=Object.freeze({__proto__:null,$ZodAny:zl,$ZodArray:eB,$ZodAsyncError:en,$ZodBase64:Ul,$ZodBase64URL:xl,$ZodBigInt:Ns,$ZodBigIntFormat:Zl,$ZodBoolean:Os,$ZodCIDRv4:Ol,$ZodCIDRv6:Nl,$ZodCUID:yl,$ZodCUID2:bl,$ZodCatch:_B,$ZodCheck:we,$ZodCheckBigIntFormat:qE,$ZodCheckEndsWith:cl,$ZodCheckGreaterThan:Ts,$ZodCheckIncludes:sl,$ZodCheckLengthEquals:nl,$ZodCheckLessThan:Rs,$ZodCheckLowerCase:ol,$ZodCheckMaxLength:tl,$ZodCheckMaxSize:VE,$ZodCheckMimeType:El,$ZodCheckMinLength:rl,$ZodCheckMinSize:Al,$ZodCheckMultipleOf:KE,$ZodCheckNumberFormat:WE,$ZodCheckOverwrite:ll,$ZodCheckProperty:Il,$ZodCheckRegex:il,$ZodCheckSizeEquals:el,$ZodCheckStartsWith:gl,$ZodCheckStringFormat:zi,$ZodCheckUpperCase:al,$ZodCodec:Ls,$ZodCustom:UB,$ZodCustomStringFormat:jl,$ZodDate:Vl,$ZodDefault:pB,$ZodDiscriminatedUnion:aB,$ZodE164:Ll,$ZodEmail:dl,$ZodEmoji:ml,$ZodEncodeError:qo,$ZodEnum:BB,$ZodError:Cs,$ZodFile:QB,$ZodFunction:MB,$ZodGUID:Ql,$ZodIPv4:Tl,$ZodIPv6:Fl,$ZodISODate:Sl,$ZodISODateTime:_l,$ZodISODuration:Rl,$ZodISOTime:vl,$ZodIntersection:sB,$ZodJWT:Yl,$ZodKSUID:kl,$ZodLazy:NB,$ZodLiteral:CB,$ZodMAC:Ml,$ZodMap:uB,$ZodNaN:SB,$ZodNanoID:pl,$ZodNever:Wl,$ZodNonOptional:DB,$ZodNull:Xl,$ZodNullable:mB,$ZodNumber:Ms,$ZodNumberFormat:Jl,$ZodObject:nB,$ZodObjectJIT:iB,$ZodOptional:hB,$ZodPipe:vB,$ZodPrefault:bB,$ZodPromise:OB,$ZodReadonly:RB,$ZodRealError:Ct,$ZodRecord:cB,$ZodRegistry:Ps,$ZodSet:EB,$ZodString:Ki,$ZodStringFormat:Qe,$ZodSuccess:kB,$ZodSymbol:Hl,$ZodTemplateLiteral:FB,$ZodTransform:fB,$ZodTuple:xs,$ZodType:HA,$ZodULID:Dl,$ZodURL:hl,$ZodUUID:fl,$ZodUndefined:$l,$ZodUnion:Us,$ZodUnknown:Kl,$ZodVoid:ql,$ZodXID:wl,$brand:jI,$constructor:H,$input:XB,$output:$B,Doc:Bl,JSONSchema:cb,JSONSchemaGenerator:pg,NEVER:YI,TimePrecision:qB,_any:dC,_array:RC,_base64:ig,_base64url:og,_bigint:IC,_boolean:cC,_catch:nb,_check:NC,_cidrv4:rg,_cidrv6:ng,_coercedBigint:EC,_coercedBoolean:uC,_coercedDate:bC,_coercedNumber:nC,_coercedString:KB,_cuid:Ks,_cuid2:Ws,_custom:FC,_date:yC,_decode:ps,_decodeAsync:bs,_default:eb,_discriminatedUnion:jy,_e164:ag,_email:js,_emoji:Xs,_encode:ms,_encodeAsync:ys,_endsWith:Bg,_enum:zy,_file:TC,_float32:oC,_float64:aC,_gt:an,_gte:Qt,_guid:ua,_includes:Eg,_int:iC,_int32:sC,_int64:lC,_intersection:Jy,_ipv4:eg,_ipv6:tg,_isoDate:AC,_isoDateTime:VB,_isoDuration:tC,_isoTime:eC,_jwt:sg,_ksuid:Ag,_lazy:sb,_length:Ba,_literal:Wy,_lowercase:ug,_lt:on,_lte:Lt,_mac:WB,_map:$y,_max:Lt,_maxLength:la,_maxSize:Ea,_mime:Cg,_min:Qt,_minLength:zn,_minSize:Ao,_multipleOf:Vi,_nan:DC,_nanoid:zs,_nativeEnum:Ky,_negative:kC,_never:mC,_nonnegative:SC,_nonoptional:tb,_nonpositive:_C,_normalize:Qg,_null:fC,_nullable:Ab,_number:rC,_optional:Vy,_overwrite:Mr,_parse:ji,_parseAsync:Ji,_pipe:ib,_positive:wC,_promise:gb,_property:vC,_readonly:ob,_record:Hy,_refine:MC,_regex:cg,_safeDecode:ws,_safeDecodeAsync:_s,_safeEncode:Ds,_safeEncodeAsync:ks,_safeParse:Zi,_safeParseAsync:Hi,_set:Xy,_size:gg,_slugify:mg,_startsWith:lg,_string:zB,_stringFormat:eo,_stringbool:xC,_success:rb,_superRefine:OC,_symbol:CC,_templateLiteral:ab,_toLowerCase:dg,_toUpperCase:hg,_transform:qy,_trim:fg,_tuple:Zy,_uint32:gC,_uint64:BC,_ulid:qs,_undefined:QC,_union:Yy,_unknown:hC,_uppercase:Ig,_url:Ia,_uuid:Js,_uuidv4:Zs,_uuidv6:Hs,_uuidv7:$s,_void:pC,_xid:Vs,clone:St,config:it,decode:Gp,decodeAsync:Lp,describe:UC,encode:Up,encodeAsync:xp,flattenError:Qs,formatError:fs,globalConfig:Vo,globalRegistry:xt,isValidBase64:Fs,isValidBase64URL:Gl,isValidJWT:Pl,locales:ZB,meta:GC,parse:ds,parseAsync:hs,prettifyError:uE,regexes:vs,registry:Ys,safeDecode:Yp,safeDecodeAsync:Jp,safeEncode:Pp,safeEncodeAsync:jp,safeParse:IE,safeParseAsync:EE,toDotPath:cE,toJSONSchema:LC,treeifyError:gE,util:aE,version:Cl});const yg=H("ZodISODateTime",(r,i)=>{_l.init(r,i),fe.init(r,i)});function PC(r){return VB(yg,r)}const bg=H("ZodISODate",(r,i)=>{Sl.init(r,i),fe.init(r,i)});function YC(r){return AC(bg,r)}const Dg=H("ZodISOTime",(r,i)=>{vl.init(r,i),fe.init(r,i)});function jC(r){return eC(Dg,r)}const wg=H("ZodISODuration",(r,i)=>{Rl.init(r,i),fe.init(r,i)});function JC(r){return tC(wg,r)}var Ib=Object.freeze({__proto__:null,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,date:YC,datetime:PC,duration:JC,time:jC});const ZC=(r,i)=>{Cs.init(r,i),r.name="ZodError",Object.defineProperties(r,{format:{value:u=>fs(r,u)},flatten:{value:u=>Qs(r,u)},addIssue:{value:u=>{r.issues.push(u),r.message=JSON.stringify(r.issues,Aa,2)}},addIssues:{value:u=>{r.issues.push(...u),r.message=JSON.stringify(r.issues,Aa,2)}},isEmpty:{get(){return r.issues.length===0}}})},Eb=H("ZodError",ZC),ft=H("ZodError",ZC,{Parent:Error}),HC=ji(ft),$C=Ji(ft),XC=Zi(ft),zC=Hi(ft),KC=ms(ft),WC=ps(ft),qC=ys(ft),VC=bs(ft),AQ=Ds(ft),eQ=ws(ft),tQ=ks(ft),rQ=_s(ft),qA=H("ZodType",(r,i)=>(HA.init(r,i),r.def=i,r.type=i.type,Object.defineProperty(r,"_def",{value:i}),r.check=(...u)=>r.clone(lr(i,{checks:[...i.checks??[],...u.map(E=>typeof E=="function"?{_zod:{check:E,def:{check:"custom"},onattach:[]}}:E)]})),r.clone=(u,E)=>St(r,u,E),r.brand=()=>r,r.register=(u,E)=>(u.add(r,E),r),r.parse=(u,E)=>HC(r,u,E,{callee:r.parse}),r.safeParse=(u,E)=>XC(r,u,E),r.parseAsync=async(u,E)=>$C(r,u,E,{callee:r.parseAsync}),r.safeParseAsync=async(u,E)=>zC(r,u,E),r.spa=r.safeParseAsync,r.encode=(u,E)=>KC(r,u,E),r.decode=(u,E)=>WC(r,u,E),r.encodeAsync=async(u,E)=>qC(r,u,E),r.decodeAsync=async(u,E)=>VC(r,u,E),r.safeEncode=(u,E)=>AQ(r,u,E),r.safeDecode=(u,E)=>eQ(r,u,E),r.safeEncodeAsync=async(u,E)=>tQ(r,u,E),r.safeDecodeAsync=async(u,E)=>rQ(r,u,E),r.refine=(u,E)=>r.check(LQ(u,E)),r.superRefine=u=>r.check(PQ(u)),r.overwrite=u=>r.check(Mr(u)),r.optional=()=>ba(r),r.nullable=()=>dt(r),r.nullish=()=>ba(dt(r)),r.nonoptional=u=>kQ(r,u),r.array=()=>be(r),r.or=u=>ya([r,u]),r.and=u=>BQ(r,u),r.transform=u=>Da(r,qg(u)),r.default=u=>bQ(r,u),r.prefault=u=>wQ(r,u),r.catch=u=>vQ(r,u),r.pipe=u=>Da(r,u),r.readonly=()=>FQ(r),r.describe=u=>{const E=r.clone();return xt.add(E,{description:u}),E},Object.defineProperty(r,"description",{get(){return xt.get(r)?.description},configurable:!0}),r.meta=(...u)=>{if(u.length===0)return xt.get(r);const E=r.clone();return xt.add(E,u[0]),E},r.isOptional=()=>r.safeParse(void 0).success,r.isNullable=()=>r.safeParse(null).success,r)),kg=H("_ZodString",(r,i)=>{Ki.init(r,i),qA.init(r,i);const u=r._zod.bag;r.format=u.format??null,r.minLength=u.minimum??null,r.maxLength=u.maximum??null,r.regex=(...E)=>r.check(cg(...E)),r.includes=(...E)=>r.check(Eg(...E)),r.startsWith=(...E)=>r.check(lg(...E)),r.endsWith=(...E)=>r.check(Bg(...E)),r.min=(...E)=>r.check(zn(...E)),r.max=(...E)=>r.check(la(...E)),r.length=(...E)=>r.check(Ba(...E)),r.nonempty=(...E)=>r.check(zn(1,...E)),r.lowercase=E=>r.check(ug(E)),r.uppercase=E=>r.check(Ig(E)),r.trim=()=>r.check(fg()),r.normalize=(...E)=>r.check(Qg(...E)),r.toLowerCase=()=>r.check(dg()),r.toUpperCase=()=>r.check(hg()),r.slugify=()=>r.check(mg())}),Ca=H("ZodString",(r,i)=>{Ki.init(r,i),kg.init(r,i),r.email=u=>r.check(js(_g,u)),r.url=u=>r.check(Ia(fa,u)),r.jwt=u=>r.check(sg(jg,u)),r.emoji=u=>r.check(Xs(Sg,u)),r.guid=u=>r.check(ua(Qa,u)),r.uuid=u=>r.check(Js(Cr,u)),r.uuidv4=u=>r.check(Zs(Cr,u)),r.uuidv6=u=>r.check(Hs(Cr,u)),r.uuidv7=u=>r.check($s(Cr,u)),r.nanoid=u=>r.check(zs(vg,u)),r.guid=u=>r.check(ua(Qa,u)),r.cuid=u=>r.check(Ks(Rg,u)),r.cuid2=u=>r.check(Ws(Tg,u)),r.ulid=u=>r.check(qs(Fg,u)),r.base64=u=>r.check(ig(Lg,u)),r.base64url=u=>r.check(og(Pg,u)),r.xid=u=>r.check(Vs(Mg,u)),r.ksuid=u=>r.check(Ag(Og,u)),r.ipv4=u=>r.check(eg(Ng,u)),r.ipv6=u=>r.check(tg(Ug,u)),r.cidrv4=u=>r.check(rg(Gg,u)),r.cidrv6=u=>r.check(ng(xg,u)),r.e164=u=>r.check(ag(Yg,u)),r.datetime=u=>r.check(PC(u)),r.date=u=>r.check(YC(u)),r.time=u=>r.check(jC(u)),r.duration=u=>r.check(JC(u))});function GA(r){return zB(Ca,r)}const fe=H("ZodStringFormat",(r,i)=>{Qe.init(r,i),kg.init(r,i)}),_g=H("ZodEmail",(r,i)=>{dl.init(r,i),fe.init(r,i)});function lb(r){return js(_g,r)}const Qa=H("ZodGUID",(r,i)=>{Ql.init(r,i),fe.init(r,i)});function Bb(r){return ua(Qa,r)}const Cr=H("ZodUUID",(r,i)=>{fl.init(r,i),fe.init(r,i)});function Cb(r){return Js(Cr,r)}function Qb(r){return Zs(Cr,r)}function fb(r){return Hs(Cr,r)}function db(r){return $s(Cr,r)}const fa=H("ZodURL",(r,i)=>{hl.init(r,i),fe.init(r,i)});function hb(r){return Ia(fa,r)}function mb(r){return Ia(fa,{protocol:/^https?$/,hostname:TE,...tA(r)})}const Sg=H("ZodEmoji",(r,i)=>{ml.init(r,i),fe.init(r,i)});function pb(r){return Xs(Sg,r)}const vg=H("ZodNanoID",(r,i)=>{pl.init(r,i),fe.init(r,i)});function yb(r){return zs(vg,r)}const Rg=H("ZodCUID",(r,i)=>{yl.init(r,i),fe.init(r,i)});function bb(r){return Ks(Rg,r)}const Tg=H("ZodCUID2",(r,i)=>{bl.init(r,i),fe.init(r,i)});function Db(r){return Ws(Tg,r)}const Fg=H("ZodULID",(r,i)=>{Dl.init(r,i),fe.init(r,i)});function wb(r){return qs(Fg,r)}const Mg=H("ZodXID",(r,i)=>{wl.init(r,i),fe.init(r,i)});function kb(r){return Vs(Mg,r)}const Og=H("ZodKSUID",(r,i)=>{kl.init(r,i),fe.init(r,i)});function _b(r){return Ag(Og,r)}const Ng=H("ZodIPv4",(r,i)=>{Tl.init(r,i),fe.init(r,i)});function Sb(r){return eg(Ng,r)}const nQ=H("ZodMAC",(r,i)=>{Ml.init(r,i),fe.init(r,i)});function vb(r){return WB(nQ,r)}const Ug=H("ZodIPv6",(r,i)=>{Fl.init(r,i),fe.init(r,i)});function Rb(r){return tg(Ug,r)}const Gg=H("ZodCIDRv4",(r,i)=>{Ol.init(r,i),fe.init(r,i)});function Tb(r){return rg(Gg,r)}const xg=H("ZodCIDRv6",(r,i)=>{Nl.init(r,i),fe.init(r,i)});function Fb(r){return ng(xg,r)}const Lg=H("ZodBase64",(r,i)=>{Ul.init(r,i),fe.init(r,i)});function Mb(r){return ig(Lg,r)}const Pg=H("ZodBase64URL",(r,i)=>{xl.init(r,i),fe.init(r,i)});function Ob(r){return og(Pg,r)}const Yg=H("ZodE164",(r,i)=>{Ll.init(r,i),fe.init(r,i)});function Nb(r){return ag(Yg,r)}const jg=H("ZodJWT",(r,i)=>{Yl.init(r,i),fe.init(r,i)});function Ub(r){return sg(jg,r)}const to=H("ZodCustomStringFormat",(r,i)=>{jl.init(r,i),fe.init(r,i)});function Gb(r,i,u={}){return eo(to,r,i,u)}function xb(r){return eo(to,"hostname",RE,r)}function Lb(r){return eo(to,"hex",XE,r)}function Pb(r,i){const u=i?.enc??"hex",E=`${r}_${u}`,g=vs[E];if(!g)throw new Error(`Unrecognized hash format: ${E}`);return eo(to,E,g,i)}const da=H("ZodNumber",(r,i)=>{Ms.init(r,i),qA.init(r,i),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.int=E=>r.check(Jg(E)),r.safe=E=>r.check(Jg(E)),r.positive=E=>r.check(an(0,E)),r.nonnegative=E=>r.check(Qt(0,E)),r.negative=E=>r.check(on(0,E)),r.nonpositive=E=>r.check(Lt(0,E)),r.multipleOf=(E,g)=>r.check(Vi(E,g)),r.step=(E,g)=>r.check(Vi(E,g)),r.finite=()=>r;const u=r._zod.bag;r.minValue=Math.max(u.minimum??Number.NEGATIVE_INFINITY,u.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,r.maxValue=Math.min(u.maximum??Number.POSITIVE_INFINITY,u.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,r.isInt=(u.format??"").includes("int")||Number.isSafeInteger(u.multipleOf??.5),r.isFinite=!0,r.format=u.format??null});function G(r){return rC(da,r)}const Kn=H("ZodNumberFormat",(r,i)=>{Jl.init(r,i),da.init(r,i)});function Jg(r){return iC(Kn,r)}function Yb(r){return oC(Kn,r)}function jb(r){return aC(Kn,r)}function Jb(r){return sC(Kn,r)}function Zb(r){return gC(Kn,r)}const ha=H("ZodBoolean",(r,i)=>{Os.init(r,i),qA.init(r,i)});function Qr(r){return cC(ha,r)}const ma=H("ZodBigInt",(r,i)=>{Ns.init(r,i),qA.init(r,i),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.positive=E=>r.check(an(BigInt(0),E)),r.negative=E=>r.check(on(BigInt(0),E)),r.nonpositive=E=>r.check(Lt(BigInt(0),E)),r.nonnegative=E=>r.check(Qt(BigInt(0),E)),r.multipleOf=(E,g)=>r.check(Vi(E,g));const u=r._zod.bag;r.minValue=u.minimum??null,r.maxValue=u.maximum??null,r.format=u.format??null});function Hb(r){return IC(ma,r)}const Zg=H("ZodBigIntFormat",(r,i)=>{Zl.init(r,i),ma.init(r,i)});function $b(r){return lC(Zg,r)}function Xb(r){return BC(Zg,r)}const iQ=H("ZodSymbol",(r,i)=>{Hl.init(r,i),qA.init(r,i)});function zb(r){return CC(iQ,r)}const oQ=H("ZodUndefined",(r,i)=>{$l.init(r,i),qA.init(r,i)});function Kb(r){return QC(oQ,r)}const aQ=H("ZodNull",(r,i)=>{Xl.init(r,i),qA.init(r,i)});function Hg(r){return fC(aQ,r)}const sQ=H("ZodAny",(r,i)=>{zl.init(r,i),qA.init(r,i)});function Wb(){return dC(sQ)}const gQ=H("ZodUnknown",(r,i)=>{Kl.init(r,i),qA.init(r,i)});function Wn(){return hC(gQ)}const cQ=H("ZodNever",(r,i)=>{Wl.init(r,i),qA.init(r,i)});function $g(r){return mC(cQ,r)}const uQ=H("ZodVoid",(r,i)=>{ql.init(r,i),qA.init(r,i)});function qb(r){return pC(uQ,r)}const Xg=H("ZodDate",(r,i)=>{Vl.init(r,i),qA.init(r,i),r.min=(E,g)=>r.check(Qt(E,g)),r.max=(E,g)=>r.check(Lt(E,g));const u=r._zod.bag;r.minDate=u.minimum?new Date(u.minimum):null,r.maxDate=u.maximum?new Date(u.maximum):null});function Vb(r){return yC(Xg,r)}const IQ=H("ZodArray",(r,i)=>{eB.init(r,i),qA.init(r,i),r.element=i.element,r.min=(u,E)=>r.check(zn(u,E)),r.nonempty=u=>r.check(zn(1,u)),r.max=(u,E)=>r.check(la(u,E)),r.length=(u,E)=>r.check(Ba(u,E)),r.unwrap=()=>r.element});function be(r,i){return RC(IQ,r,i)}function AD(r){const i=r._zod.def.shape;return vt(Object.keys(i))}const pa=H("ZodObject",(r,i)=>{iB.init(r,i),qA.init(r,i),te(r,"shape",()=>i.shape),r.keyof=()=>vt(Object.keys(r._zod.def.shape)),r.catchall=u=>r.clone({...r._zod.def,catchall:u}),r.passthrough=()=>r.clone({...r._zod.def,catchall:Wn()}),r.loose=()=>r.clone({...r._zod.def,catchall:Wn()}),r.strict=()=>r.clone({...r._zod.def,catchall:$g()}),r.strip=()=>r.clone({...r._zod.def,catchall:void 0}),r.extend=u=>AE(r,u),r.safeExtend=u=>eE(r,u),r.merge=u=>tE(r,u),r.pick=u=>qI(r,u),r.omit=u=>VI(r,u),r.partial=(...u)=>rE(Vg,r,u[0]),r.required=(...u)=>nE(Ac,r,u[0])});function NA(r,i){const u={type:"object",shape:r??{},...tA(i)};return new pa(u)}function eD(r,i){return new pa({type:"object",shape:r,catchall:$g(),...tA(i)})}function tD(r,i){return new pa({type:"object",shape:r,catchall:Wn(),...tA(i)})}const zg=H("ZodUnion",(r,i)=>{Us.init(r,i),qA.init(r,i),r.options=i.options});function ya(r,i){return new zg({type:"union",options:r,...tA(i)})}const EQ=H("ZodDiscriminatedUnion",(r,i)=>{zg.init(r,i),aB.init(r,i)});function fr(r,i,u){return new EQ({type:"union",options:i,discriminator:r,...tA(u)})}const lQ=H("ZodIntersection",(r,i)=>{sB.init(r,i),qA.init(r,i)});function BQ(r,i){return new lQ({type:"intersection",left:r,right:i})}const CQ=H("ZodTuple",(r,i)=>{xs.init(r,i),qA.init(r,i),r.rest=u=>r.clone({...r._zod.def,rest:u})});function Kg(r,i,u){const E=i instanceof HA,g=E?u:i,a=E?i:null;return new CQ({type:"tuple",items:r,rest:a,...tA(g)})}const Wg=H("ZodRecord",(r,i)=>{cB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function ro(r,i,u){return new Wg({type:"record",keyType:r,valueType:i,...tA(u)})}function rD(r,i,u){const E=St(r);return E._zod.values=void 0,new Wg({type:"record",keyType:E,valueType:i,...tA(u)})}const QQ=H("ZodMap",(r,i)=>{uB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function nD(r,i,u){return new QQ({type:"map",keyType:r,valueType:i,...tA(u)})}const fQ=H("ZodSet",(r,i)=>{EB.init(r,i),qA.init(r,i),r.min=(...u)=>r.check(Ao(...u)),r.nonempty=u=>r.check(Ao(1,u)),r.max=(...u)=>r.check(Ea(...u)),r.size=(...u)=>r.check(gg(...u))});function iD(r,i){return new fQ({type:"set",valueType:r,...tA(i)})}const no=H("ZodEnum",(r,i)=>{BB.init(r,i),qA.init(r,i),r.enum=i.entries,r.options=Object.values(i.entries);const u=new Set(Object.keys(i.entries));r.extract=(E,g)=>{const a={};for(const h of E)if(u.has(h))a[h]=i.entries[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})},r.exclude=(E,g)=>{const a={...i.entries};for(const h of E)if(u.has(h))delete a[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})}});function vt(r,i){const u=Array.isArray(r)?Object.fromEntries(r.map(E=>[E,E])):r;return new no({type:"enum",entries:u,...tA(i)})}function oD(r,i){return new no({type:"enum",entries:r,...tA(i)})}const dQ=H("ZodLiteral",(r,i)=>{CB.init(r,i),qA.init(r,i),r.values=new Set(i.values),Object.defineProperty(r,"value",{get(){if(i.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return i.values[0]}})});function DA(r,i){return new dQ({type:"literal",values:Array.isArray(r)?r:[r],...tA(i)})}const hQ=H("ZodFile",(r,i)=>{QB.init(r,i),qA.init(r,i),r.min=(u,E)=>r.check(Ao(u,E)),r.max=(u,E)=>r.check(Ea(u,E)),r.mime=(u,E)=>r.check(Cg(Array.isArray(u)?u:[u],E))});function aD(r){return TC(hQ,r)}const mQ=H("ZodTransform",(r,i)=>{fB.init(r,i),qA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo(r.constructor.name);u.addIssue=a=>{if(typeof a=="string")u.issues.push($n(a,u.value,i));else{const h=a;h.fatal&&(h.continue=!1),h.code??(h.code="custom"),h.input??(h.input=u.value),h.inst??(h.inst=r),u.issues.push($n(h))}};const g=i.transform(u.value,u);return g instanceof Promise?g.then(a=>(u.value=a,u)):(u.value=g,u)}});function qg(r){return new mQ({type:"transform",transform:r})}const Vg=H("ZodOptional",(r,i)=>{hB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ba(r){return new Vg({type:"optional",innerType:r})}const pQ=H("ZodNullable",(r,i)=>{mB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function dt(r){return new pQ({type:"nullable",innerType:r})}function sD(r){return ba(dt(r))}const yQ=H("ZodDefault",(r,i)=>{pB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeDefault=r.unwrap});function bQ(r,i){return new yQ({type:"default",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const DQ=H("ZodPrefault",(r,i)=>{bB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function wQ(r,i){return new DQ({type:"prefault",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const Ac=H("ZodNonOptional",(r,i)=>{DB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function kQ(r,i){return new Ac({type:"nonoptional",innerType:r,...tA(i)})}const _Q=H("ZodSuccess",(r,i)=>{kB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function gD(r){return new _Q({type:"success",innerType:r})}const SQ=H("ZodCatch",(r,i)=>{_B.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeCatch=r.unwrap});function vQ(r,i){return new SQ({type:"catch",innerType:r,catchValue:typeof i=="function"?i:()=>i})}const RQ=H("ZodNaN",(r,i)=>{SB.init(r,i),qA.init(r,i)});function cD(r){return DC(RQ,r)}const ec=H("ZodPipe",(r,i)=>{vB.init(r,i),qA.init(r,i),r.in=i.in,r.out=i.out});function Da(r,i){return new ec({type:"pipe",in:r,out:i})}const tc=H("ZodCodec",(r,i)=>{ec.init(r,i),Ls.init(r,i)});function uD(r,i,u){return new tc({type:"pipe",in:r,out:i,transform:u.decode,reverseTransform:u.encode})}const TQ=H("ZodReadonly",(r,i)=>{RB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function FQ(r){return new TQ({type:"readonly",innerType:r})}const MQ=H("ZodTemplateLiteral",(r,i)=>{FB.init(r,i),qA.init(r,i)});function ID(r,i){return new MQ({type:"template_literal",parts:r,...tA(i)})}const OQ=H("ZodLazy",(r,i)=>{NB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.getter()});function NQ(r){return new OQ({type:"lazy",getter:r})}const UQ=H("ZodPromise",(r,i)=>{OB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ED(r){return new UQ({type:"promise",innerType:r})}const GQ=H("ZodFunction",(r,i)=>{MB.init(r,i),qA.init(r,i)});function xQ(r){return new GQ({type:"function",input:Array.isArray(r?.input)?Kg(r?.input):r?.input??be(Wn()),output:r?.output??Wn()})}const wa=H("ZodCustom",(r,i)=>{UB.init(r,i),qA.init(r,i)});function lD(r){const i=new we({check:"custom"});return i._zod.check=r,i}function BD(r,i){return FC(wa,r??(()=>!0),i)}function LQ(r,i={}){return MC(wa,r,i)}function PQ(r){return OC(r)}const CD=UC,QD=GC;function fD(r,i={error:`Input not instance of ${r.name}`}){const u=new wa({type:"custom",check:"custom",fn:E=>E instanceof r,abort:!0,...tA(i)});return u._zod.bag.Class=r,u}const dD=(...r)=>xC({Codec:tc,Boolean:ha,String:Ca},...r);function hD(r){const i=NQ(()=>ya([GA(r),G(),Qr(),Hg(),be(i),ro(GA(),i)]));return i}function YQ(r,i){return Da(qg(r),i)}const mD={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function pD(r){it({customError:r})}function yD(){return it().customError}var rc;rc||(rc={});function bD(r){return KB(Ca,r)}function Je(r){return nC(da,r)}function DD(r){return uC(ha,r)}function XA(r){return EC(ma,r)}function wD(r){return bC(Xg,r)}var kD=Object.freeze({__proto__:null,bigint:XA,boolean:DD,date:wD,number:Je,string:bD});it(LB());var _D=Object.freeze({__proto__:null,$brand:jI,$input:XB,$output:$B,NEVER:YI,TimePrecision:qB,ZodAny:sQ,ZodArray:IQ,ZodBase64:Lg,ZodBase64URL:Pg,ZodBigInt:ma,ZodBigIntFormat:Zg,ZodBoolean:ha,ZodCIDRv4:Gg,ZodCIDRv6:xg,ZodCUID:Rg,ZodCUID2:Tg,ZodCatch:SQ,ZodCodec:tc,ZodCustom:wa,ZodCustomStringFormat:to,ZodDate:Xg,ZodDefault:yQ,ZodDiscriminatedUnion:EQ,ZodE164:Yg,ZodEmail:_g,ZodEmoji:Sg,ZodEnum:no,ZodError:Eb,ZodFile:hQ,get ZodFirstPartyTypeKind(){return rc},ZodFunction:GQ,ZodGUID:Qa,ZodIPv4:Ng,ZodIPv6:Ug,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,ZodIntersection:lQ,ZodIssueCode:mD,ZodJWT:jg,ZodKSUID:Og,ZodLazy:OQ,ZodLiteral:dQ,ZodMAC:nQ,ZodMap:QQ,ZodNaN:RQ,ZodNanoID:vg,ZodNever:cQ,ZodNonOptional:Ac,ZodNull:aQ,ZodNullable:pQ,ZodNumber:da,ZodNumberFormat:Kn,ZodObject:pa,ZodOptional:Vg,ZodPipe:ec,ZodPrefault:DQ,ZodPromise:UQ,ZodReadonly:TQ,ZodRealError:ft,ZodRecord:Wg,ZodSet:fQ,ZodString:Ca,ZodStringFormat:fe,ZodSuccess:_Q,ZodSymbol:iQ,ZodTemplateLiteral:MQ,ZodTransform:mQ,ZodTuple:CQ,ZodType:qA,ZodULID:Fg,ZodURL:fa,ZodUUID:Cr,ZodUndefined:oQ,ZodUnion:zg,ZodUnknown:gQ,ZodVoid:uQ,ZodXID:Mg,_ZodString:kg,_default:bQ,_function:xQ,any:Wb,array:be,base64:Mb,base64url:Ob,bigint:Hb,boolean:Qr,catch:vQ,check:lD,cidrv4:Tb,cidrv6:Fb,clone:St,codec:uD,coerce:kD,config:it,core:ub,cuid:bb,cuid2:Db,custom:BD,date:Vb,decode:WC,decodeAsync:VC,describe:CD,discriminatedUnion:fr,e164:Nb,email:lb,emoji:pb,encode:KC,encodeAsync:qC,endsWith:Bg,enum:vt,file:aD,flattenError:Qs,float32:Yb,float64:jb,formatError:fs,function:xQ,getErrorMap:yD,globalRegistry:xt,gt:an,gte:Qt,guid:Bb,hash:Pb,hex:Lb,hostname:xb,httpUrl:mb,includes:Eg,instanceof:fD,int:Jg,int32:Jb,int64:$b,intersection:BQ,ipv4:Sb,ipv6:Rb,iso:Ib,json:hD,jwt:Ub,keyof:AD,ksuid:_b,lazy:NQ,length:Ba,literal:DA,locales:ZB,looseObject:tD,lowercase:ug,lt:on,lte:Lt,mac:vb,map:nD,maxLength:la,maxSize:Ea,meta:QD,mime:Cg,minLength:zn,minSize:Ao,multipleOf:Vi,nan:cD,nanoid:yb,nativeEnum:oD,negative:kC,never:$g,nonnegative:SC,nonoptional:kQ,nonpositive:_C,normalize:Qg,null:Hg,nullable:dt,nullish:sD,number:G,object:NA,optional:ba,overwrite:Mr,parse:HC,parseAsync:$C,partialRecord:rD,pipe:Da,positive:wC,prefault:wQ,preprocess:YQ,prettifyError:uE,promise:ED,property:vC,readonly:FQ,record:ro,refine:LQ,regex:cg,regexes:vs,registry:Ys,safeDecode:eQ,safeDecodeAsync:rQ,safeEncode:AQ,safeEncodeAsync:tQ,safeParse:XC,safeParseAsync:zC,set:iD,setErrorMap:pD,size:gg,slugify:mg,startsWith:lg,strictObject:eD,string:GA,stringFormat:Gb,stringbool:dD,success:gD,superRefine:PQ,symbol:zb,templateLiteral:ID,toJSONSchema:LC,toLowerCase:dg,toUpperCase:hg,transform:qg,treeifyError:gE,trim:fg,tuple:Kg,uint32:Zb,uint64:Xb,ulid:wb,undefined:Kb,union:ya,unknown:Wn,uppercase:Ig,url:hb,util:aE,uuid:Cb,uuidv4:Qb,uuidv6:fb,uuidv7:db,void:qb,xid:kb});const jQ=vt(["Frankendancer","Firedancer"]),nc=jQ.enum,VA=NA({topic:DA("summary")}),JQ=NA({topic:DA("epoch")}),qn=NA({topic:DA("gossip")}),ZQ=NA({topic:DA("peers")}),Wt=NA({topic:DA("slot")}),HQ=NA({topic:DA("block_engine")}),ka=NA({topic:DA("wait_for_supermajority")});fr("topic",[VA,JQ,qn,ZQ,Wt,HQ,ka]);const SD=GA(),vD=vt(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),RD=GA(),TD=GA(),FD=GA(),MD=XA(),$Q=vt(["perf","balanced","revenue"]);$Q.enum,vt(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","cswtch","genesi","diag","event"]);const OD=NA({kind:GA(),kind_id:G()}),XQ=XA();XA();const ND=G(),UD=G(),GD=G(),xD=G().nullable(),LD=G().nullable(),PD=NA({repair:G().array(),turbine:G().array()}),YD=Je(),jD=G(),JD=G().nullable(),ZD=G().nullable(),HD=G(),$D=G().nullable(),XD=G(),zD=G(),KD=NA({total:G(),vote:G(),nonvote_success:G(),nonvote_failed:G()}),WD=NA({ingress:be(G()),egress:be(G())}),qD=NA({pack_cranked:G(),pack_retained:G(),resolv_retained:G(),quic:G(),udp:G(),gossip:G(),block_engine:G()}),VD=NA({net_overrun:G(),quic_overrun:G(),quic_frag_drop:G(),quic_abandoned:G(),tpu_quic_invalid:G(),tpu_udp_invalid:G(),verify_overrun:G(),verify_parse:G(),verify_failed:G(),verify_duplicate:G(),dedup_duplicate:G(),resolv_lut_failed:G(),resolv_expired:G(),resolv_no_ledger:G(),resolv_ancient:G(),resolv_retained:G(),pack_invalid:G(),pack_already_executed:G(),pack_invalid_bundle:G(),pack_retained:G(),pack_leader_slow:G(),pack_wait_full:G(),pack_expired:G(),bank_invalid:G(),bank_nonce_already_advanced:G(),bank_nonce_advance_failed:G(),bank_nonce_wrong_blockhash:G(),block_success:G(),block_fail:G()}),zQ=NA({in:qD,out:VD}),Aw=NA({next_leader_slot:G().nullable(),waterfall:zQ}),KQ=NA({net_in:G(),quic:G(),verify:G(),bundle_rtt_smoothed_millis:G(),bundle_rx_delay_millis_p90:G(),dedup:G(),pack:G(),bank:G(),poh:G(),shred:G(),store:G(),net_out:G()}),ew=NA({next_leader_slot:G().nullable(),tile_primary_metric:KQ}),tw=NA({timers:be(be(G()).nullable()),sched_timers:be(be(G()).nullable()),in_backp:be(Qr().nullable()),backp_msgs:be(G().nullable()),alive:be(G().nullable()),nvcsw:be(G().nullable()),nivcsw:be(G().nullable()),last_cpu:be(G().nullable()),minflt:be(G().nullable()),majflt:be(G().nullable())});NA({tile:GA(),kind_id:G(),idle:G()});const rw=vt(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),nw=NA({phase:rw,downloading_full_snapshot_slot:G().nullable(),downloading_full_snapshot_peer:GA().nullable(),downloading_full_snapshot_elapsed_secs:G().nullable(),downloading_full_snapshot_remaining_secs:G().nullable(),downloading_full_snapshot_throughput:G().nullable(),downloading_full_snapshot_total_bytes:Je().nullable(),downloading_full_snapshot_current_bytes:Je().nullable(),downloading_incremental_snapshot_slot:G().nullable(),downloading_incremental_snapshot_peer:GA().nullable(),downloading_incremental_snapshot_elapsed_secs:G().nullable(),downloading_incremental_snapshot_remaining_secs:G().nullable(),downloading_incremental_snapshot_throughput:G().nullable(),downloading_incremental_snapshot_total_bytes:Je().nullable(),downloading_incremental_snapshot_current_bytes:Je().nullable(),ledger_slot:G().nullable(),ledger_max_slot:G().nullable(),waiting_for_supermajority_slot:G().nullable(),waiting_for_supermajority_stake_percent:G().nullable()}),WQ=vt(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]);WQ.enum;const iw=NA({phase:WQ,joining_gossip_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_reset_count:G().nullable().optional(),loading_full_snapshot_slot:G().nullable().optional(),loading_full_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_path:GA().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_insert_accounts:G().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:G().nullable().optional(),loading_incremental_snapshot_reset_count:G().nullable().optional(),loading_incremental_snapshot_slot:G().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_path:GA().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_insert_accounts:G().nullable().optional(),wait_for_supermajority_bank_hash:GA().nullable().optional(),wait_for_supermajority_shred_version:GA().nullable().optional(),wait_for_supermajority_attempt:G().nullable().optional(),wait_for_supermajority_total_stake:XA().nullable().optional(),wait_for_supermajority_connected_stake:XA().nullable().optional(),wait_for_supermajority_total_peers:G().nullable().optional(),wait_for_supermajority_connected_peers:G().nullable().optional(),catching_up_elapsed_seconds:G().nullable().optional(),catching_up_first_replay_slot:G().nullable().optional()}),ow=YQ(r=>{if(!r||typeof r!="object"||Array.isArray(r))return r;const i=r;return{...i,txn_preload_end_timestamps_nanos:i.txn_preload_end_timestamps_nanos??i.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:i.txn_start_timestamps_nanos??i.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:i.txn_load_end_timestamps_nanos??i.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:i.txn_end_timestamps_nanos??i.txn_commit_start_timestamps_nanos}},NA({start_timestamp_nanos:XA(),target_end_timestamp_nanos:XA(),txn_mb_start_timestamps_nanos:XA().array(),txn_mb_end_timestamps_nanos:XA().array(),txn_compute_units_requested:G().array(),txn_compute_units_consumed:G().array(),txn_transaction_fee:XA().array(),txn_priority_fee:XA().array(),txn_tips:XA().array(),txn_error_code:G().array(),txn_from_bundle:Qr().array(),txn_is_simple_vote:Qr().array(),txn_bank_idx:G().array(),txn_preload_end_timestamps_nanos:XA().array(),txn_start_timestamps_nanos:XA().array(),txn_load_end_timestamps_nanos:XA().array(),txn_end_timestamps_nanos:XA().array(),txn_commit_end_timestamps_nanos:XA().array().optional(),txn_arrival_timestamps_nanos:XA().array(),txn_microblock_id:G().array(),txn_landed:Qr().array(),txn_signature:GA().array(),txn_source_ipv4:GA().array(),txn_source_tpu:GA().array()})),aw=vt(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),sw=NA({slot:G(),mine:Qr(),skipped:Qr(),level:aw,success_nonvote_transaction_cnt:G().nullable(),failed_nonvote_transaction_cnt:G().nullable(),success_vote_transaction_cnt:G().nullable(),failed_vote_transaction_cnt:G().nullable(),priority_fee:XA().nullable(),transaction_fee:XA().nullable(),tips:XA().nullable(),max_compute_units:G().nullable(),compute_units:G().nullable(),duration_nanos:G().nullable(),completed_time_nanos:XA().nullable(),vote_latency:G().nullable()}),gw=be(Kg([G(),G(),G(),G()])),cw=vt(["voting","non-voting","delinquent"]),uw=G(),Iw=NA({epoch:G(),skip_rate:G()}),Ew=NA({hits:G(),lookups:G(),insertions:G(),insertion_bytes:G(),evictions:G(),eviction_bytes:G(),spills:G(),spill_bytes:G(),free_bytes:G(),size_bytes:G()}),lw=fr("key",[VA.extend({key:DA("ping"),value:Hg(),id:G()}),VA.extend({key:DA("version"),value:SD}),VA.extend({key:DA("cluster"),value:vD}),VA.extend({key:DA("commit_hash"),value:RD}),VA.extend({key:DA("identity_key"),value:TD}),VA.extend({key:DA("vote_key"),value:FD}),VA.extend({key:DA("startup_time_nanos"),value:MD}),VA.extend({key:DA("schedule_strategy"),value:$Q}),VA.extend({key:DA("tiles"),value:OD.array()}),VA.extend({key:DA("identity_balance"),value:XQ}),VA.extend({key:DA("vote_balance"),value:XQ}),VA.extend({key:DA("root_slot"),value:ND}),VA.extend({key:DA("optimistically_confirmed_slot"),value:UD}),VA.extend({key:DA("completed_slot"),value:GD}),VA.extend({key:DA("estimated_slot"),value:jD}),VA.extend({key:DA("reset_slot"),value:JD}),VA.extend({key:DA("storage_slot"),value:ZD}),VA.extend({key:DA("vote_slot"),value:HD}),VA.extend({key:DA("slot_caught_up"),value:$D}),VA.extend({key:DA("active_fork_count"),value:XD}),VA.extend({key:DA("estimated_slot_duration_nanos"),value:zD}),VA.extend({key:DA("estimated_tps"),value:KD}),VA.extend({key:DA("live_network_metrics"),value:WD}),VA.extend({key:DA("live_txn_waterfall"),value:Aw}),VA.extend({key:DA("live_tile_primary_metric"),value:ew}),VA.extend({key:DA("live_tile_metrics"),value:tw}),VA.extend({key:DA("live_tile_timers"),value:G().array()}),VA.extend({key:DA("startup_progress"),value:nw}),VA.extend({key:DA("boot_progress"),value:iw}),VA.extend({key:DA("tps_history"),value:gw}),VA.extend({key:DA("vote_state"),value:cw}),VA.extend({key:DA("vote_distance"),value:uw}),VA.extend({key:DA("skip_rate"),value:Iw}),VA.extend({key:DA("turbine_slot"),value:xD}),VA.extend({key:DA("repair_slot"),value:LD}),VA.extend({key:DA("catch_up_history"),value:PD}),VA.extend({key:DA("server_time_nanos"),value:YD}),VA.extend({key:DA("live_program_cache"),value:Ew})]),Bw=NA({epoch:G(),start_time_nanos:GA().nullable(),end_time_nanos:GA().nullable(),start_slot:G(),end_slot:G(),excluded_stake_lamports:XA(),staked_pubkeys:GA().array(),staked_lamports:XA().array(),leader_slots:G().array()}),Cw=fr("key",[JQ.extend({key:DA("new"),value:Bw})]),Qw=NA({num_push_messages_rx_success:G(),num_push_messages_rx_failure:G(),num_push_entries_rx_success:G(),num_push_entries_rx_failure:G(),num_push_entries_rx_duplicate:G(),num_pull_response_messages_rx_success:G(),num_pull_response_messages_rx_failure:G(),num_pull_response_entries_rx_success:G(),num_pull_response_entries_rx_failure:G(),num_pull_response_entries_rx_duplicate:G(),total_peers:G(),total_stake:XA(),connected_stake:XA(),connected_staked_peers:G(),connected_unstaked_peers:G()}),qQ=NA({total_throughput:G(),peer_names:GA().array(),peer_identities:GA().array(),peer_throughput:G().array()}),fw=NA({capacity:G(),expired_count:G(),evicted_count:G(),count:G().array(),count_tx:G().array(),bytes_tx:G().array()}),dw=NA({num_bytes_rx:G().array(),num_bytes_tx:G().array(),num_messages_rx:G().array(),num_messages_tx:G().array()}),hw=NA({health:Qw,ingress:qQ,egress:qQ,storage:fw,messages:dw}),mw=G(),VQ=ya([GA(),G()]),Af=ro(GA(),ro(GA(),VQ)).nullable(),pw=NA({changes:be(NA({row_index:G(),column_name:GA(),new_value:VQ}))}),yw=fr("key",[qn.extend({key:DA("network_stats"),value:hw}),qn.extend({key:DA("peers_size_update"),value:mw}),qn.extend({key:DA("query_scroll"),value:Af}),qn.extend({key:DA("query_sort"),value:Af}),qn.extend({key:DA("view_update"),value:pw})]),bw=NA({client_id:G().nullable().optional(),wallclock:G(),shred_version:G(),version:GA().nullable(),feature_set:G().nullable(),sockets:ro(GA(),GA()),country_code:GA().nullable().optional(),city_name:GA().nullable().optional()}),Dw=NA({vote_account:GA(),activated_stake:XA(),last_vote:dt(G()),root_slot:dt(G()),epoch_credits:G(),commission:G(),delinquent:Qr()}),ef=NA({name:dt(GA()),details:dt(GA()),website:dt(GA()),icon_url:dt(GA()),keybase_username:dt(GA())}),tf=NA({identity_pubkey:GA(),gossip:dt(bw),vote:be(Dw),info:dt(ef)}),ww=NA({identity_pubkey:GA()}),kw=NA({add:be(tf).optional(),update:be(tf).optional(),remove:be(ww).optional()}),_w=fr("key",[ZQ.extend({key:DA("update"),value:kw})]),Sw=NA({timestamp_nanos:GA(),tile_timers:G().array()}),vw=NA({timestamp_nanos:XA(),regular:G(),votes:G(),conflicting:G(),bundles:G()}),Rw=NA({account:GA(),cost:G()}),Tw=NA({used_total_block_cost:G(),used_total_vote_cost:G(),used_account_write_costs:Rw.array(),used_total_bytes:G(),used_total_microblocks:G(),max_total_block_cost:G(),max_total_vote_cost:G(),max_account_write_cost:G(),max_total_bytes:G(),max_total_microblocks:G()}),Fw=NA({block_hash:GA().optional(),end_slot_reason:GA().optional(),slot_schedule_counts:G().array(),end_slot_schedule_counts:G().array(),pending_smallest_cost:G().nullable(),pending_smallest_bytes:G().nullable(),pending_vote_smallest_cost:G().nullable(),pending_vote_smallest_bytes:G().nullable()}),_a=NA({publish:sw,waterfall:zQ.nullable().optional(),tile_primary_metric:KQ.nullable().optional(),tile_timers:Sw.array().nullable().optional(),scheduler_counts:vw.array().nullable().optional(),transactions:ow.nullable().optional(),limits:Tw.nullable().optional(),scheduler_stats:Fw.nullable().optional()}),Mw=G().array(),Ow=G().array(),Nw=NA({slots_largest_tips:G().array(),vals_largest_tips:XA().array(),slots_smallest_tips:G().array(),vals_smallest_tips:XA().array(),slots_largest_fees:G().array(),vals_largest_fees:XA().array(),slots_smallest_fees:G().array(),vals_smallest_fees:XA().array(),slots_largest_rewards:G().array(),vals_largest_rewards:XA().array(),slots_smallest_rewards:G().array(),vals_smallest_rewards:XA().array(),slots_largest_duration:G().array(),vals_largest_duration:XA().array(),slots_smallest_duration:G().array(),vals_smallest_duration:XA().array(),slots_largest_compute_units:G().array(),vals_largest_compute_units:XA().array(),slots_smallest_compute_units:G().array(),vals_smallest_compute_units:XA().array(),slots_largest_skipped:G().array(),vals_largest_skipped:XA().array(),slots_smallest_skipped:G().array(),vals_smallest_skipped:XA().array()}),Uw=NA({reference_slot:G(),reference_ts:XA(),slot_delta:G().array(),shred_idx:G().nullable().array(),event:G().array(),event_ts_delta:Je().array()}),Gw=fr("key",[Wt.extend({key:DA("skipped_history"),value:Mw}),Wt.extend({key:DA("skipped_history_cluster"),value:Ow}),Wt.extend({key:DA("update"),value:_a}),Wt.extend({key:DA("query"),value:_a.nullable()}),Wt.extend({key:DA("query_detailed"),value:_a.nullable()}),Wt.extend({key:DA("query_transactions"),value:_a.nullable()}),Wt.extend({key:DA("query_rankings"),value:Nw}),Wt.extend({key:DA("live_shreds"),value:Uw}),Wt.extend({key:DA("late_votes_history"),value:NA({slot:G().array(),latency:G().nullable().array()})})]),xw=vt(["disconnected","connecting","connected"]),Lw=NA({name:GA(),url:GA(),ip:GA().optional(),status:xw}),Pw=fr("key",[HQ.extend({key:DA("update"),value:Lw})]),Yw=NA({staked_pubkeys:GA().array(),staked_lamports:XA().array(),infos:be(ef.nullable())}),jw=GA().array(),Jw=GA().array(),Zw=fr("key",[ka.extend({key:DA("stakes"),value:Yw}),ka.extend({key:DA("peer_add"),value:jw}),ka.extend({key:DA("peer_remove"),value:Jw})]),Hw=_D.discriminatedUnion("topic",[lw,Cw,yw,_w,Gw,Pw,Zw]);function ic(r){if(r<1)throw new Error("Ring buffer size must be at least 1");const i=new Array(r);let u=0,E=0;return{get length(){return E},push(g){i[u]=g,u=(u+1)%r,E"u")return!1;const r=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(r)||"ontouchstart"in window&&!!matchMedia?.("(hover: none)").matches}$w();var Xw={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},zw=Array.prototype.slice;function Sa(r){var i=r.length;return i?i===1?[r[0]]:i===2?[r[0],r[1]]:i===3?[r[0],r[1],r[2]]:zw.call(r,0):[]}function Kw(r){var i={};for(var u in r)Xw[u]||(i[u]=r[u]);return i}function Ww(r){return typeof r=="function"&&r.isMemoized}function qw(r,i){return r===i||r!==r&&i!==i}function rf(r,i){var u={};for(var E in r)u[E]=r[E];for(var E in i)u[E]=i[E];return u}var Vw=function(){function r(i){this.keys=[],this.values=[],this.options=i;var u=typeof i.isMatchingKey=="function";u?this.getKeyIndex=this._getKeyIndexFromMatchingKey:i.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof i.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||u,this.shouldUpdateOnAdd=typeof i.onCacheAdd=="function",this.shouldUpdateOnChange=typeof i.onCacheChange=="function",this.shouldUpdateOnHit=typeof i.onCacheHit=="function"}return Object.defineProperty(r.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"snapshot",{get:function(){return{keys:Sa(this.keys),size:this.size,values:Sa(this.values)}},enumerable:!1,configurable:!0}),r.prototype._getKeyIndexFromMatchingKey=function(i){var u=this.options,E=u.isMatchingKey,g=u.maxSize,a=this.keys,h=a.length;if(!h)return-1;if(E(a[0],i))return 0;if(g>1){for(var w=1;w1){for(var k=0;k1){for(var h=0;h=k&&(g.length=a.length=k)},r.prototype.updateAsyncCache=function(i){var u=this,E=this.options,g=E.onCacheChange,a=E.onCacheHit,h=this.keys[0],w=this.values[0];this.values[0]=w.then(function(k){return u.shouldUpdateOnHit&&a(u,u.options,i),u.shouldUpdateOnChange&&g(u,u.options,i),k},function(k){var v=u.getKeyIndex(h);throw v!==-1&&(u.keys.splice(v,1),u.values.splice(v,1)),k})},r}();function nf(r,i){if(i===void 0&&(i={}),Ww(r))return nf(r.fn,rf(r.options,i));if(typeof r!="function")throw new TypeError("You must pass a function to `memoize`.");var u=i.isEqual,E=u===void 0?qw:u,g=i.isMatchingKey,a=i.isPromise,h=a===void 0?!1:a,w=i.maxSize,k=w===void 0?1:w,v=i.onCacheAdd,F=i.onCacheChange,x=i.onCacheHit,$=i.transformKey,j=rf({isEqual:E,isMatchingKey:g,isPromise:h,maxSize:k,onCacheAdd:v,onCacheChange:F,onCacheHit:x,transformKey:$},Kw(i)),P=new Vw(j),rA=P.keys,iA=P.values,TA=P.canTransformKey,pA=P.shouldCloneArguments,MA=P.shouldUpdateOnAdd,xA=P.shouldUpdateOnChange,ce=P.shouldUpdateOnHit,se=function(){var Ue=pA?Sa(arguments):arguments;TA&&(Ue=$(Ue));var at=rA.length?P.getKeyIndex(Ue):-1;if(at!==-1)ce&&x(P,j,se),at&&(P.orderByLru(rA[at],iA[at],at),xA&&F(P,j,se));else{var OA=r.apply(this,arguments),je=pA?Ue:Sa(arguments);P.orderByLru(je,OA,rA.length),h&&P.updateAsyncCache(se),MA&&v(P,j,se),xA&&F(P,j,se)}return iA[0]};return se.cache=P,se.fn=r,se.isMemoized=!0,se.options=j,se}const of=jQ.safeParse("Firedancer".trim()),af=of.error?nc.Frankendancer:of.data;nc.Frankendancer,nc.Firedancer,PA.now(),setInterval(()=>{PA.now()},1e3);function Ak(r){return r!==void 0}nf(r=>{if(r)return r.toUpperCase().split("").map(E=>String.fromCodePoint(E.charCodeAt(0)-65+127462)).join("")},{maxSize:100});function oc(r){const i=new Map;let u;function E(h,w){let k=i.get(h);return k||(k=r.createEntry(h,w),i.set(h,k)),k}function g(h){return h.lastPublishMs+h.publishIntervalMs}function a(){if(u)return;const h=performance.now();let w=1/0;for(const k of i.values()){if(!k.subscribed)continue;const v=Math.max(0,g(k)-h);v{u=void 0;const k=performance.now(),v=[];for(const F of i.values()){if(!F.subscribed||k{const k=E(h,w);k.subscribed||(k.subscribed=!0,a())},unsubscribe:h=>{const w=i.get(h);w&&(w.subscribed=!1);let k=!1;for(const v of i.values())if(v.subscribed){k=!0;break}!k&&u&&(clearTimeout(u),u=void 0)},get:h=>i.get(h),reset:h=>{const w=h?[i.get(h)].filter(Ak):i.values();for(const k of w)r.onReset?.(k),k.lastPublishMs=0},stop:()=>{u&&(clearTimeout(u),u=void 0);for(const h of i.values())h.subscribed=!1}}}function sf(r){const i=r.halfLifeMs/Math.log(2),{initMinSamples:u,warmupMs:E}=r;let g,a,h=0,w;function k(){a=void 0,h=0,g=void 0,w=void 0}function v(x){if(!E||!w)return i;const $=Math.max(.2,Math.min(1,(x-w)/E));return i*$}function F(x,$){if(!a)return x!=null&&(a={value:x,tsMs:$}),!1;x??=a.value;const j=$-a.tsMs;if(!isFinite(j)||j<=0)return!1;const P=x-a.value;if(!isFinite(P)||P<0)return k(),a={value:x,tsMs:$},!1;if(a={value:x,tsMs:$},g===void 0)return P<=0||(h+=1,hk.ema??0)),w}for(;i.lengthk.ema??0)),w}return{get ema(){return u},reset:E,tick:g}}function tk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,calc:ek(E),history:ic(g)}},collect:(u,E)=>{if(u.calc.ema.length>0){const g=[...u.calc.ema];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.calc.reset(),u.history.clear()}});return{...i,update(u,E,g){const a=i.get(u);a&&a.calc.tick(E,g)},get(u){return i.get(u)?.calc.ema}}}function rk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,values:[],history:ic(g)}},collect:(u,E)=>{if(u.values.length>0){const g=[...u.values];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.values=[],u.history.clear()}});return{...i,update(u,E){const g=i.get(u);g&&(g.values=E)},get(u){return i.get(u)?.values}}}function nk(r){function i(E){const g={};let a=!1;for(const h of E.fields)g[h]=E.calcs[h].ema??0,E.calcs[h].ema!==void 0&&(a=!0);return{value:g,hasValue:a}}const u=oc({createEntry:(E,g)=>{const a={};for(const w of g.fields)a[w]=sf(g);const h=Math.ceil(g.historyWindowMs/g.publishIntervalMs);return{key:E,subscribed:!1,lastPublishMs:0,publishIntervalMs:g.publishIntervalMs,fields:g.fields,calcs:a,history:ic(h)}},collect:(E,g)=>{const{value:a,hasValue:h}=i(E);if(h)return E.history.push({ts:g,value:a}),{key:E.key,value:a,history:E.history.toArray()}},post:r,onReset:E=>{for(const g of E.fields)E.calcs[g].reset();E.history.clear()}});return{...u,update(E,g,a){const h=u.get(E);if(h)for(const w of h.fields){const k=g[w];typeof k=="number"&&h.calcs[w].tick(k,a)}},get(E){const g=u.get(E);if(g){const{value:a,hasValue:h}=i(g);if(h)return a}}}}const ik=100,ok=3e4,ak=5e3,gf=500,cf=6e4,uf=5e3,If=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"];Object.fromEntries(If.map(r=>[r,0]));const sk={halfLifeMs:5e3,initMinSamples:10,warmupMs:1e4,publishIntervalMs:ik,historyWindowMs:ok+ak,fields:[...If]},Ef={halfLifeMs:1e3,initMinSamples:5,warmupMs:5e3,publishIntervalMs:gf,historyWindowMs:cf+uf},gk={publishIntervalMs:gf,historyWindowMs:cf+uf};function ac(r,i,u){return r.topic===i&&r.key===u}function ck(r){const i=tk(g=>r({type:"emaHistoryArray",items:g})),u=nk(g=>r({type:"emaHistoryObject",items:g})),E=rk(g=>r({type:"historyArray",items:g}));return{onMessage(g){const a=performance.now();ac(g,"gossip","network_stats")&&(u.subscribe("gossipHealth",sk),u.update("gossipHealth",g.value.health,a)),ac(g,"summary","live_network_metrics")&&(i.subscribe("ingress",Ef),i.subscribe("egress",Ef),i.update("ingress",g.value.ingress,a),i.update("egress",g.value.egress,a)),ac(g,"summary","live_tile_timers")&&(E.subscribe("tileTimers",gk),E.update("tileTimers",g.value))}}}const lf=3e3,uk=32,Vn=self;let It=null,sc,gc=!1;const io=new Map,Ik=ck(r=>Vn.postMessage(r));function Ek(r){Ik.onMessage(r);const i=`${r.topic}:${r.key}`;io.has(i)?io.get(i)?.push(r):io.set(i,[r]),gc||(gc=!0,setTimeout(lk,uk))}function lk(){gc=!1;const r=[];for(const i of io.values())for(const u of i)r.push(u);io.clear(),r.length&&Vn.postMessage({type:"kvb",items:r})}function Bf(r,i){Zn("WS",`Connecting to API WebSocket ${r.toString()}`),Vn.postMessage({type:"connecting"}),It=new WebSocket(r,i?["compress-zstd"]:void 0),It.binaryType="arraybuffer",It.onopen=function(){this===It&&(Zn("WS","Connected to API WebSocket"),Vn.postMessage({type:"connected"}))},It.onclose=function(){this===It&&(Zn("WS",`Disconnected API WebSocket, reconnecting in ${lf}ms`),Vn.postMessage({type:"disconnected"}),clearTimeout(sc),sc=setTimeout(()=>Bf(r,i),lf))};const u=new TextDecoder;It.onmessage=function(g){if(this===It)try{const a=g.data;let h;if(typeof a=="string"?h=JSON.parse(a):a instanceof ArrayBuffer&&i&&(h=JSON.parse(u.decode(i.ZstdStream.decompress(new Uint8Array(a))))),h!==void 0){const w=Hw.safeParse(h);if(!w.success){Zn("zod",h),Zn("Zod",w.error.message),Zn("Zod",w.error.issues);return}Ek(w.data)}}catch(a){Is("WS",a)}}}Vn.onmessage=r=>{const i=r.data;switch(i.type){case"connect":(async()=>{let u;if(i.compress)try{u=await dh()}catch(E){Is("WS","Failed to initialize Zstd, falling back to uncompressed",E)}Bf(i.websocketUrl,u)})();break;case"disconnect":if(clearTimeout(sc),It){try{It.close()}catch{Is("WS","Error closing WebSocket")}It=null}break;case"send":It&&It.readyState===WebSocket.OPEN?It.send(JSON.stringify(i.value)):Qp("WS","Attempting to send on closed WebSocket",i.value);break}}})(); +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const F of this.seen.entries()){const x=F[1];if(i===F[0]){h(F);continue}if(E.external){const j=E.external.registry.get(F[0])?.id;if(i!==F[0]&&j){h(F);continue}}if(this.metadataRegistry.get(F[0])?.id){h(F);continue}if(x.cycle){h(F);continue}if(x.count>1&&E.reused==="ref"){h(F);continue}}const w=(F,x)=>{const $=this.seen.get(F),j=$.def??$.schema,P={...j};if($.ref===null)return;const rA=$.ref;if($.ref=null,rA){w(rA,x);const iA=this.seen.get(rA).schema;iA.$ref&&(x.target==="draft-7"||x.target==="draft-4"||x.target==="openapi-3.0")?(j.allOf=j.allOf??[],j.allOf.push(iA)):(Object.assign(j,iA),Object.assign(j,P))}$.isParent||this.override({zodSchema:F,jsonSchema:j,path:$.path??[]})};for(const F of[...this.seen.entries()].reverse())w(F[0],{target:this.target});const k={};if(this.target==="draft-2020-12"?k.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?k.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?k.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),E.external?.uri){const F=E.external.registry.get(i)?.id;if(!F)throw new Error("Schema is missing an `id` property");k.$id=E.external.uri(F)}Object.assign(k,g.def);const v=E.external?.defs??{};for(const F of this.seen.entries()){const x=F[1];x.def&&x.defId&&(v[x.defId]=x.def)}E.external||Object.keys(v).length>0&&(this.target==="draft-2020-12"?k.$defs=v:k.definitions=v);try{return JSON.parse(JSON.stringify(k))}catch{throw new Error("Error converting schema to JSON.")}}}function LC(r,i){if(r instanceof Ps){const E=new pg(i),g={};for(const w of r._idmap.entries()){const[k,v]=w;E.process(v)}const a={},h={registry:r,uri:i?.uri,defs:g};for(const w of r._idmap.entries()){const[k,v]=w;a[k]=E.emit(v,{...i,external:h})}if(Object.keys(g).length>0){const w=E.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[w]:g}}return{schemas:a}}const u=new pg(i);return u.process(r),u.emit(r,i)}function ot(r,i){const u=i??{seen:new Set};if(u.seen.has(r))return!1;u.seen.add(r);const E=r._zod.def;if(E.type==="transform")return!0;if(E.type==="array")return ot(E.element,u);if(E.type==="set")return ot(E.valueType,u);if(E.type==="lazy")return ot(E.getter(),u);if(E.type==="promise"||E.type==="optional"||E.type==="nonoptional"||E.type==="nullable"||E.type==="readonly"||E.type==="default"||E.type==="prefault")return ot(E.innerType,u);if(E.type==="intersection")return ot(E.left,u)||ot(E.right,u);if(E.type==="record"||E.type==="map")return ot(E.keyType,u)||ot(E.valueType,u);if(E.type==="pipe")return ot(E.in,u)||ot(E.out,u);if(E.type==="object"){for(const g in E.shape)if(ot(E.shape[g],u))return!0;return!1}if(E.type==="union"){for(const g of E.options)if(ot(g,u))return!0;return!1}if(E.type==="tuple"){for(const g of E.items)if(ot(g,u))return!0;return!!(E.rest&&ot(E.rest,u))}return!1}var cb=Object.freeze({__proto__:null}),ub=Object.freeze({__proto__:null,$ZodAny:zl,$ZodArray:eB,$ZodAsyncError:en,$ZodBase64:Ul,$ZodBase64URL:xl,$ZodBigInt:Ns,$ZodBigIntFormat:Zl,$ZodBoolean:Os,$ZodCIDRv4:Ol,$ZodCIDRv6:Nl,$ZodCUID:yl,$ZodCUID2:bl,$ZodCatch:_B,$ZodCheck:we,$ZodCheckBigIntFormat:qE,$ZodCheckEndsWith:cl,$ZodCheckGreaterThan:Ts,$ZodCheckIncludes:sl,$ZodCheckLengthEquals:nl,$ZodCheckLessThan:Rs,$ZodCheckLowerCase:ol,$ZodCheckMaxLength:tl,$ZodCheckMaxSize:VE,$ZodCheckMimeType:El,$ZodCheckMinLength:rl,$ZodCheckMinSize:Al,$ZodCheckMultipleOf:KE,$ZodCheckNumberFormat:WE,$ZodCheckOverwrite:ll,$ZodCheckProperty:Il,$ZodCheckRegex:il,$ZodCheckSizeEquals:el,$ZodCheckStartsWith:gl,$ZodCheckStringFormat:zi,$ZodCheckUpperCase:al,$ZodCodec:Ls,$ZodCustom:UB,$ZodCustomStringFormat:jl,$ZodDate:Vl,$ZodDefault:pB,$ZodDiscriminatedUnion:aB,$ZodE164:Ll,$ZodEmail:dl,$ZodEmoji:ml,$ZodEncodeError:qo,$ZodEnum:BB,$ZodError:Cs,$ZodFile:QB,$ZodFunction:MB,$ZodGUID:Ql,$ZodIPv4:Tl,$ZodIPv6:Fl,$ZodISODate:Sl,$ZodISODateTime:_l,$ZodISODuration:Rl,$ZodISOTime:vl,$ZodIntersection:sB,$ZodJWT:Yl,$ZodKSUID:kl,$ZodLazy:NB,$ZodLiteral:CB,$ZodMAC:Ml,$ZodMap:uB,$ZodNaN:SB,$ZodNanoID:pl,$ZodNever:Wl,$ZodNonOptional:DB,$ZodNull:Xl,$ZodNullable:mB,$ZodNumber:Ms,$ZodNumberFormat:Jl,$ZodObject:nB,$ZodObjectJIT:iB,$ZodOptional:hB,$ZodPipe:vB,$ZodPrefault:bB,$ZodPromise:OB,$ZodReadonly:RB,$ZodRealError:Ct,$ZodRecord:cB,$ZodRegistry:Ps,$ZodSet:EB,$ZodString:Ki,$ZodStringFormat:Qe,$ZodSuccess:kB,$ZodSymbol:Hl,$ZodTemplateLiteral:FB,$ZodTransform:fB,$ZodTuple:xs,$ZodType:HA,$ZodULID:Dl,$ZodURL:hl,$ZodUUID:fl,$ZodUndefined:$l,$ZodUnion:Us,$ZodUnknown:Kl,$ZodVoid:ql,$ZodXID:wl,$brand:jI,$constructor:H,$input:XB,$output:$B,Doc:Bl,JSONSchema:cb,JSONSchemaGenerator:pg,NEVER:YI,TimePrecision:qB,_any:dC,_array:RC,_base64:ig,_base64url:og,_bigint:IC,_boolean:cC,_catch:nb,_check:NC,_cidrv4:rg,_cidrv6:ng,_coercedBigint:EC,_coercedBoolean:uC,_coercedDate:bC,_coercedNumber:nC,_coercedString:KB,_cuid:Ks,_cuid2:Ws,_custom:FC,_date:yC,_decode:ps,_decodeAsync:bs,_default:eb,_discriminatedUnion:jy,_e164:ag,_email:js,_emoji:Xs,_encode:ms,_encodeAsync:ys,_endsWith:Bg,_enum:zy,_file:TC,_float32:oC,_float64:aC,_gt:an,_gte:Qt,_guid:ua,_includes:Eg,_int:iC,_int32:sC,_int64:lC,_intersection:Jy,_ipv4:eg,_ipv6:tg,_isoDate:AC,_isoDateTime:VB,_isoDuration:tC,_isoTime:eC,_jwt:sg,_ksuid:Ag,_lazy:sb,_length:Ba,_literal:Wy,_lowercase:ug,_lt:on,_lte:Lt,_mac:WB,_map:$y,_max:Lt,_maxLength:la,_maxSize:Ea,_mime:Cg,_min:Qt,_minLength:zn,_minSize:Ao,_multipleOf:Vi,_nan:DC,_nanoid:zs,_nativeEnum:Ky,_negative:kC,_never:mC,_nonnegative:SC,_nonoptional:tb,_nonpositive:_C,_normalize:Qg,_null:fC,_nullable:Ab,_number:rC,_optional:Vy,_overwrite:Mr,_parse:ji,_parseAsync:Ji,_pipe:ib,_positive:wC,_promise:gb,_property:vC,_readonly:ob,_record:Hy,_refine:MC,_regex:cg,_safeDecode:ws,_safeDecodeAsync:_s,_safeEncode:Ds,_safeEncodeAsync:ks,_safeParse:Zi,_safeParseAsync:Hi,_set:Xy,_size:gg,_slugify:mg,_startsWith:lg,_string:zB,_stringFormat:eo,_stringbool:xC,_success:rb,_superRefine:OC,_symbol:CC,_templateLiteral:ab,_toLowerCase:dg,_toUpperCase:hg,_transform:qy,_trim:fg,_tuple:Zy,_uint32:gC,_uint64:BC,_ulid:qs,_undefined:QC,_union:Yy,_unknown:hC,_uppercase:Ig,_url:Ia,_uuid:Js,_uuidv4:Zs,_uuidv6:Hs,_uuidv7:$s,_void:pC,_xid:Vs,clone:St,config:it,decode:Gp,decodeAsync:Lp,describe:UC,encode:Up,encodeAsync:xp,flattenError:Qs,formatError:fs,globalConfig:Vo,globalRegistry:xt,isValidBase64:Fs,isValidBase64URL:Gl,isValidJWT:Pl,locales:ZB,meta:GC,parse:ds,parseAsync:hs,prettifyError:uE,regexes:vs,registry:Ys,safeDecode:Yp,safeDecodeAsync:Jp,safeEncode:Pp,safeEncodeAsync:jp,safeParse:IE,safeParseAsync:EE,toDotPath:cE,toJSONSchema:LC,treeifyError:gE,util:aE,version:Cl});const yg=H("ZodISODateTime",(r,i)=>{_l.init(r,i),fe.init(r,i)});function PC(r){return VB(yg,r)}const bg=H("ZodISODate",(r,i)=>{Sl.init(r,i),fe.init(r,i)});function YC(r){return AC(bg,r)}const Dg=H("ZodISOTime",(r,i)=>{vl.init(r,i),fe.init(r,i)});function jC(r){return eC(Dg,r)}const wg=H("ZodISODuration",(r,i)=>{Rl.init(r,i),fe.init(r,i)});function JC(r){return tC(wg,r)}var Ib=Object.freeze({__proto__:null,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,date:YC,datetime:PC,duration:JC,time:jC});const ZC=(r,i)=>{Cs.init(r,i),r.name="ZodError",Object.defineProperties(r,{format:{value:u=>fs(r,u)},flatten:{value:u=>Qs(r,u)},addIssue:{value:u=>{r.issues.push(u),r.message=JSON.stringify(r.issues,Aa,2)}},addIssues:{value:u=>{r.issues.push(...u),r.message=JSON.stringify(r.issues,Aa,2)}},isEmpty:{get(){return r.issues.length===0}}})},Eb=H("ZodError",ZC),ft=H("ZodError",ZC,{Parent:Error}),HC=ji(ft),$C=Ji(ft),XC=Zi(ft),zC=Hi(ft),KC=ms(ft),WC=ps(ft),qC=ys(ft),VC=bs(ft),AQ=Ds(ft),eQ=ws(ft),tQ=ks(ft),rQ=_s(ft),qA=H("ZodType",(r,i)=>(HA.init(r,i),r.def=i,r.type=i.type,Object.defineProperty(r,"_def",{value:i}),r.check=(...u)=>r.clone(lr(i,{checks:[...i.checks??[],...u.map(E=>typeof E=="function"?{_zod:{check:E,def:{check:"custom"},onattach:[]}}:E)]})),r.clone=(u,E)=>St(r,u,E),r.brand=()=>r,r.register=(u,E)=>(u.add(r,E),r),r.parse=(u,E)=>HC(r,u,E,{callee:r.parse}),r.safeParse=(u,E)=>XC(r,u,E),r.parseAsync=async(u,E)=>$C(r,u,E,{callee:r.parseAsync}),r.safeParseAsync=async(u,E)=>zC(r,u,E),r.spa=r.safeParseAsync,r.encode=(u,E)=>KC(r,u,E),r.decode=(u,E)=>WC(r,u,E),r.encodeAsync=async(u,E)=>qC(r,u,E),r.decodeAsync=async(u,E)=>VC(r,u,E),r.safeEncode=(u,E)=>AQ(r,u,E),r.safeDecode=(u,E)=>eQ(r,u,E),r.safeEncodeAsync=async(u,E)=>tQ(r,u,E),r.safeDecodeAsync=async(u,E)=>rQ(r,u,E),r.refine=(u,E)=>r.check(LQ(u,E)),r.superRefine=u=>r.check(PQ(u)),r.overwrite=u=>r.check(Mr(u)),r.optional=()=>ba(r),r.nullable=()=>dt(r),r.nullish=()=>ba(dt(r)),r.nonoptional=u=>kQ(r,u),r.array=()=>be(r),r.or=u=>ya([r,u]),r.and=u=>BQ(r,u),r.transform=u=>Da(r,qg(u)),r.default=u=>bQ(r,u),r.prefault=u=>wQ(r,u),r.catch=u=>vQ(r,u),r.pipe=u=>Da(r,u),r.readonly=()=>FQ(r),r.describe=u=>{const E=r.clone();return xt.add(E,{description:u}),E},Object.defineProperty(r,"description",{get(){return xt.get(r)?.description},configurable:!0}),r.meta=(...u)=>{if(u.length===0)return xt.get(r);const E=r.clone();return xt.add(E,u[0]),E},r.isOptional=()=>r.safeParse(void 0).success,r.isNullable=()=>r.safeParse(null).success,r)),kg=H("_ZodString",(r,i)=>{Ki.init(r,i),qA.init(r,i);const u=r._zod.bag;r.format=u.format??null,r.minLength=u.minimum??null,r.maxLength=u.maximum??null,r.regex=(...E)=>r.check(cg(...E)),r.includes=(...E)=>r.check(Eg(...E)),r.startsWith=(...E)=>r.check(lg(...E)),r.endsWith=(...E)=>r.check(Bg(...E)),r.min=(...E)=>r.check(zn(...E)),r.max=(...E)=>r.check(la(...E)),r.length=(...E)=>r.check(Ba(...E)),r.nonempty=(...E)=>r.check(zn(1,...E)),r.lowercase=E=>r.check(ug(E)),r.uppercase=E=>r.check(Ig(E)),r.trim=()=>r.check(fg()),r.normalize=(...E)=>r.check(Qg(...E)),r.toLowerCase=()=>r.check(dg()),r.toUpperCase=()=>r.check(hg()),r.slugify=()=>r.check(mg())}),Ca=H("ZodString",(r,i)=>{Ki.init(r,i),kg.init(r,i),r.email=u=>r.check(js(_g,u)),r.url=u=>r.check(Ia(fa,u)),r.jwt=u=>r.check(sg(jg,u)),r.emoji=u=>r.check(Xs(Sg,u)),r.guid=u=>r.check(ua(Qa,u)),r.uuid=u=>r.check(Js(Cr,u)),r.uuidv4=u=>r.check(Zs(Cr,u)),r.uuidv6=u=>r.check(Hs(Cr,u)),r.uuidv7=u=>r.check($s(Cr,u)),r.nanoid=u=>r.check(zs(vg,u)),r.guid=u=>r.check(ua(Qa,u)),r.cuid=u=>r.check(Ks(Rg,u)),r.cuid2=u=>r.check(Ws(Tg,u)),r.ulid=u=>r.check(qs(Fg,u)),r.base64=u=>r.check(ig(Lg,u)),r.base64url=u=>r.check(og(Pg,u)),r.xid=u=>r.check(Vs(Mg,u)),r.ksuid=u=>r.check(Ag(Og,u)),r.ipv4=u=>r.check(eg(Ng,u)),r.ipv6=u=>r.check(tg(Ug,u)),r.cidrv4=u=>r.check(rg(Gg,u)),r.cidrv6=u=>r.check(ng(xg,u)),r.e164=u=>r.check(ag(Yg,u)),r.datetime=u=>r.check(PC(u)),r.date=u=>r.check(YC(u)),r.time=u=>r.check(jC(u)),r.duration=u=>r.check(JC(u))});function GA(r){return zB(Ca,r)}const fe=H("ZodStringFormat",(r,i)=>{Qe.init(r,i),kg.init(r,i)}),_g=H("ZodEmail",(r,i)=>{dl.init(r,i),fe.init(r,i)});function lb(r){return js(_g,r)}const Qa=H("ZodGUID",(r,i)=>{Ql.init(r,i),fe.init(r,i)});function Bb(r){return ua(Qa,r)}const Cr=H("ZodUUID",(r,i)=>{fl.init(r,i),fe.init(r,i)});function Cb(r){return Js(Cr,r)}function Qb(r){return Zs(Cr,r)}function fb(r){return Hs(Cr,r)}function db(r){return $s(Cr,r)}const fa=H("ZodURL",(r,i)=>{hl.init(r,i),fe.init(r,i)});function hb(r){return Ia(fa,r)}function mb(r){return Ia(fa,{protocol:/^https?$/,hostname:TE,...tA(r)})}const Sg=H("ZodEmoji",(r,i)=>{ml.init(r,i),fe.init(r,i)});function pb(r){return Xs(Sg,r)}const vg=H("ZodNanoID",(r,i)=>{pl.init(r,i),fe.init(r,i)});function yb(r){return zs(vg,r)}const Rg=H("ZodCUID",(r,i)=>{yl.init(r,i),fe.init(r,i)});function bb(r){return Ks(Rg,r)}const Tg=H("ZodCUID2",(r,i)=>{bl.init(r,i),fe.init(r,i)});function Db(r){return Ws(Tg,r)}const Fg=H("ZodULID",(r,i)=>{Dl.init(r,i),fe.init(r,i)});function wb(r){return qs(Fg,r)}const Mg=H("ZodXID",(r,i)=>{wl.init(r,i),fe.init(r,i)});function kb(r){return Vs(Mg,r)}const Og=H("ZodKSUID",(r,i)=>{kl.init(r,i),fe.init(r,i)});function _b(r){return Ag(Og,r)}const Ng=H("ZodIPv4",(r,i)=>{Tl.init(r,i),fe.init(r,i)});function Sb(r){return eg(Ng,r)}const nQ=H("ZodMAC",(r,i)=>{Ml.init(r,i),fe.init(r,i)});function vb(r){return WB(nQ,r)}const Ug=H("ZodIPv6",(r,i)=>{Fl.init(r,i),fe.init(r,i)});function Rb(r){return tg(Ug,r)}const Gg=H("ZodCIDRv4",(r,i)=>{Ol.init(r,i),fe.init(r,i)});function Tb(r){return rg(Gg,r)}const xg=H("ZodCIDRv6",(r,i)=>{Nl.init(r,i),fe.init(r,i)});function Fb(r){return ng(xg,r)}const Lg=H("ZodBase64",(r,i)=>{Ul.init(r,i),fe.init(r,i)});function Mb(r){return ig(Lg,r)}const Pg=H("ZodBase64URL",(r,i)=>{xl.init(r,i),fe.init(r,i)});function Ob(r){return og(Pg,r)}const Yg=H("ZodE164",(r,i)=>{Ll.init(r,i),fe.init(r,i)});function Nb(r){return ag(Yg,r)}const jg=H("ZodJWT",(r,i)=>{Yl.init(r,i),fe.init(r,i)});function Ub(r){return sg(jg,r)}const to=H("ZodCustomStringFormat",(r,i)=>{jl.init(r,i),fe.init(r,i)});function Gb(r,i,u={}){return eo(to,r,i,u)}function xb(r){return eo(to,"hostname",RE,r)}function Lb(r){return eo(to,"hex",XE,r)}function Pb(r,i){const u=i?.enc??"hex",E=`${r}_${u}`,g=vs[E];if(!g)throw new Error(`Unrecognized hash format: ${E}`);return eo(to,E,g,i)}const da=H("ZodNumber",(r,i)=>{Ms.init(r,i),qA.init(r,i),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.int=E=>r.check(Jg(E)),r.safe=E=>r.check(Jg(E)),r.positive=E=>r.check(an(0,E)),r.nonnegative=E=>r.check(Qt(0,E)),r.negative=E=>r.check(on(0,E)),r.nonpositive=E=>r.check(Lt(0,E)),r.multipleOf=(E,g)=>r.check(Vi(E,g)),r.step=(E,g)=>r.check(Vi(E,g)),r.finite=()=>r;const u=r._zod.bag;r.minValue=Math.max(u.minimum??Number.NEGATIVE_INFINITY,u.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,r.maxValue=Math.min(u.maximum??Number.POSITIVE_INFINITY,u.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,r.isInt=(u.format??"").includes("int")||Number.isSafeInteger(u.multipleOf??.5),r.isFinite=!0,r.format=u.format??null});function G(r){return rC(da,r)}const Kn=H("ZodNumberFormat",(r,i)=>{Jl.init(r,i),da.init(r,i)});function Jg(r){return iC(Kn,r)}function Yb(r){return oC(Kn,r)}function jb(r){return aC(Kn,r)}function Jb(r){return sC(Kn,r)}function Zb(r){return gC(Kn,r)}const ha=H("ZodBoolean",(r,i)=>{Os.init(r,i),qA.init(r,i)});function Qr(r){return cC(ha,r)}const ma=H("ZodBigInt",(r,i)=>{Ns.init(r,i),qA.init(r,i),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.positive=E=>r.check(an(BigInt(0),E)),r.negative=E=>r.check(on(BigInt(0),E)),r.nonpositive=E=>r.check(Lt(BigInt(0),E)),r.nonnegative=E=>r.check(Qt(BigInt(0),E)),r.multipleOf=(E,g)=>r.check(Vi(E,g));const u=r._zod.bag;r.minValue=u.minimum??null,r.maxValue=u.maximum??null,r.format=u.format??null});function Hb(r){return IC(ma,r)}const Zg=H("ZodBigIntFormat",(r,i)=>{Zl.init(r,i),ma.init(r,i)});function $b(r){return lC(Zg,r)}function Xb(r){return BC(Zg,r)}const iQ=H("ZodSymbol",(r,i)=>{Hl.init(r,i),qA.init(r,i)});function zb(r){return CC(iQ,r)}const oQ=H("ZodUndefined",(r,i)=>{$l.init(r,i),qA.init(r,i)});function Kb(r){return QC(oQ,r)}const aQ=H("ZodNull",(r,i)=>{Xl.init(r,i),qA.init(r,i)});function Hg(r){return fC(aQ,r)}const sQ=H("ZodAny",(r,i)=>{zl.init(r,i),qA.init(r,i)});function Wb(){return dC(sQ)}const gQ=H("ZodUnknown",(r,i)=>{Kl.init(r,i),qA.init(r,i)});function Wn(){return hC(gQ)}const cQ=H("ZodNever",(r,i)=>{Wl.init(r,i),qA.init(r,i)});function $g(r){return mC(cQ,r)}const uQ=H("ZodVoid",(r,i)=>{ql.init(r,i),qA.init(r,i)});function qb(r){return pC(uQ,r)}const Xg=H("ZodDate",(r,i)=>{Vl.init(r,i),qA.init(r,i),r.min=(E,g)=>r.check(Qt(E,g)),r.max=(E,g)=>r.check(Lt(E,g));const u=r._zod.bag;r.minDate=u.minimum?new Date(u.minimum):null,r.maxDate=u.maximum?new Date(u.maximum):null});function Vb(r){return yC(Xg,r)}const IQ=H("ZodArray",(r,i)=>{eB.init(r,i),qA.init(r,i),r.element=i.element,r.min=(u,E)=>r.check(zn(u,E)),r.nonempty=u=>r.check(zn(1,u)),r.max=(u,E)=>r.check(la(u,E)),r.length=(u,E)=>r.check(Ba(u,E)),r.unwrap=()=>r.element});function be(r,i){return RC(IQ,r,i)}function AD(r){const i=r._zod.def.shape;return vt(Object.keys(i))}const pa=H("ZodObject",(r,i)=>{iB.init(r,i),qA.init(r,i),te(r,"shape",()=>i.shape),r.keyof=()=>vt(Object.keys(r._zod.def.shape)),r.catchall=u=>r.clone({...r._zod.def,catchall:u}),r.passthrough=()=>r.clone({...r._zod.def,catchall:Wn()}),r.loose=()=>r.clone({...r._zod.def,catchall:Wn()}),r.strict=()=>r.clone({...r._zod.def,catchall:$g()}),r.strip=()=>r.clone({...r._zod.def,catchall:void 0}),r.extend=u=>AE(r,u),r.safeExtend=u=>eE(r,u),r.merge=u=>tE(r,u),r.pick=u=>qI(r,u),r.omit=u=>VI(r,u),r.partial=(...u)=>rE(Vg,r,u[0]),r.required=(...u)=>nE(Ac,r,u[0])});function NA(r,i){const u={type:"object",shape:r??{},...tA(i)};return new pa(u)}function eD(r,i){return new pa({type:"object",shape:r,catchall:$g(),...tA(i)})}function tD(r,i){return new pa({type:"object",shape:r,catchall:Wn(),...tA(i)})}const zg=H("ZodUnion",(r,i)=>{Us.init(r,i),qA.init(r,i),r.options=i.options});function ya(r,i){return new zg({type:"union",options:r,...tA(i)})}const EQ=H("ZodDiscriminatedUnion",(r,i)=>{zg.init(r,i),aB.init(r,i)});function fr(r,i,u){return new EQ({type:"union",options:i,discriminator:r,...tA(u)})}const lQ=H("ZodIntersection",(r,i)=>{sB.init(r,i),qA.init(r,i)});function BQ(r,i){return new lQ({type:"intersection",left:r,right:i})}const CQ=H("ZodTuple",(r,i)=>{xs.init(r,i),qA.init(r,i),r.rest=u=>r.clone({...r._zod.def,rest:u})});function Kg(r,i,u){const E=i instanceof HA,g=E?u:i,a=E?i:null;return new CQ({type:"tuple",items:r,rest:a,...tA(g)})}const Wg=H("ZodRecord",(r,i)=>{cB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function ro(r,i,u){return new Wg({type:"record",keyType:r,valueType:i,...tA(u)})}function rD(r,i,u){const E=St(r);return E._zod.values=void 0,new Wg({type:"record",keyType:E,valueType:i,...tA(u)})}const QQ=H("ZodMap",(r,i)=>{uB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function nD(r,i,u){return new QQ({type:"map",keyType:r,valueType:i,...tA(u)})}const fQ=H("ZodSet",(r,i)=>{EB.init(r,i),qA.init(r,i),r.min=(...u)=>r.check(Ao(...u)),r.nonempty=u=>r.check(Ao(1,u)),r.max=(...u)=>r.check(Ea(...u)),r.size=(...u)=>r.check(gg(...u))});function iD(r,i){return new fQ({type:"set",valueType:r,...tA(i)})}const no=H("ZodEnum",(r,i)=>{BB.init(r,i),qA.init(r,i),r.enum=i.entries,r.options=Object.values(i.entries);const u=new Set(Object.keys(i.entries));r.extract=(E,g)=>{const a={};for(const h of E)if(u.has(h))a[h]=i.entries[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})},r.exclude=(E,g)=>{const a={...i.entries};for(const h of E)if(u.has(h))delete a[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})}});function vt(r,i){const u=Array.isArray(r)?Object.fromEntries(r.map(E=>[E,E])):r;return new no({type:"enum",entries:u,...tA(i)})}function oD(r,i){return new no({type:"enum",entries:r,...tA(i)})}const dQ=H("ZodLiteral",(r,i)=>{CB.init(r,i),qA.init(r,i),r.values=new Set(i.values),Object.defineProperty(r,"value",{get(){if(i.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return i.values[0]}})});function DA(r,i){return new dQ({type:"literal",values:Array.isArray(r)?r:[r],...tA(i)})}const hQ=H("ZodFile",(r,i)=>{QB.init(r,i),qA.init(r,i),r.min=(u,E)=>r.check(Ao(u,E)),r.max=(u,E)=>r.check(Ea(u,E)),r.mime=(u,E)=>r.check(Cg(Array.isArray(u)?u:[u],E))});function aD(r){return TC(hQ,r)}const mQ=H("ZodTransform",(r,i)=>{fB.init(r,i),qA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo(r.constructor.name);u.addIssue=a=>{if(typeof a=="string")u.issues.push($n(a,u.value,i));else{const h=a;h.fatal&&(h.continue=!1),h.code??(h.code="custom"),h.input??(h.input=u.value),h.inst??(h.inst=r),u.issues.push($n(h))}};const g=i.transform(u.value,u);return g instanceof Promise?g.then(a=>(u.value=a,u)):(u.value=g,u)}});function qg(r){return new mQ({type:"transform",transform:r})}const Vg=H("ZodOptional",(r,i)=>{hB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ba(r){return new Vg({type:"optional",innerType:r})}const pQ=H("ZodNullable",(r,i)=>{mB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function dt(r){return new pQ({type:"nullable",innerType:r})}function sD(r){return ba(dt(r))}const yQ=H("ZodDefault",(r,i)=>{pB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeDefault=r.unwrap});function bQ(r,i){return new yQ({type:"default",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const DQ=H("ZodPrefault",(r,i)=>{bB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function wQ(r,i){return new DQ({type:"prefault",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const Ac=H("ZodNonOptional",(r,i)=>{DB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function kQ(r,i){return new Ac({type:"nonoptional",innerType:r,...tA(i)})}const _Q=H("ZodSuccess",(r,i)=>{kB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function gD(r){return new _Q({type:"success",innerType:r})}const SQ=H("ZodCatch",(r,i)=>{_B.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeCatch=r.unwrap});function vQ(r,i){return new SQ({type:"catch",innerType:r,catchValue:typeof i=="function"?i:()=>i})}const RQ=H("ZodNaN",(r,i)=>{SB.init(r,i),qA.init(r,i)});function cD(r){return DC(RQ,r)}const ec=H("ZodPipe",(r,i)=>{vB.init(r,i),qA.init(r,i),r.in=i.in,r.out=i.out});function Da(r,i){return new ec({type:"pipe",in:r,out:i})}const tc=H("ZodCodec",(r,i)=>{ec.init(r,i),Ls.init(r,i)});function uD(r,i,u){return new tc({type:"pipe",in:r,out:i,transform:u.decode,reverseTransform:u.encode})}const TQ=H("ZodReadonly",(r,i)=>{RB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function FQ(r){return new TQ({type:"readonly",innerType:r})}const MQ=H("ZodTemplateLiteral",(r,i)=>{FB.init(r,i),qA.init(r,i)});function ID(r,i){return new MQ({type:"template_literal",parts:r,...tA(i)})}const OQ=H("ZodLazy",(r,i)=>{NB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.getter()});function NQ(r){return new OQ({type:"lazy",getter:r})}const UQ=H("ZodPromise",(r,i)=>{OB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ED(r){return new UQ({type:"promise",innerType:r})}const GQ=H("ZodFunction",(r,i)=>{MB.init(r,i),qA.init(r,i)});function xQ(r){return new GQ({type:"function",input:Array.isArray(r?.input)?Kg(r?.input):r?.input??be(Wn()),output:r?.output??Wn()})}const wa=H("ZodCustom",(r,i)=>{UB.init(r,i),qA.init(r,i)});function lD(r){const i=new we({check:"custom"});return i._zod.check=r,i}function BD(r,i){return FC(wa,r??(()=>!0),i)}function LQ(r,i={}){return MC(wa,r,i)}function PQ(r){return OC(r)}const CD=UC,QD=GC;function fD(r,i={error:`Input not instance of ${r.name}`}){const u=new wa({type:"custom",check:"custom",fn:E=>E instanceof r,abort:!0,...tA(i)});return u._zod.bag.Class=r,u}const dD=(...r)=>xC({Codec:tc,Boolean:ha,String:Ca},...r);function hD(r){const i=NQ(()=>ya([GA(r),G(),Qr(),Hg(),be(i),ro(GA(),i)]));return i}function YQ(r,i){return Da(qg(r),i)}const mD={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function pD(r){it({customError:r})}function yD(){return it().customError}var rc;rc||(rc={});function bD(r){return KB(Ca,r)}function Je(r){return nC(da,r)}function DD(r){return uC(ha,r)}function XA(r){return EC(ma,r)}function wD(r){return bC(Xg,r)}var kD=Object.freeze({__proto__:null,bigint:XA,boolean:DD,date:wD,number:Je,string:bD});it(LB());var _D=Object.freeze({__proto__:null,$brand:jI,$input:XB,$output:$B,NEVER:YI,TimePrecision:qB,ZodAny:sQ,ZodArray:IQ,ZodBase64:Lg,ZodBase64URL:Pg,ZodBigInt:ma,ZodBigIntFormat:Zg,ZodBoolean:ha,ZodCIDRv4:Gg,ZodCIDRv6:xg,ZodCUID:Rg,ZodCUID2:Tg,ZodCatch:SQ,ZodCodec:tc,ZodCustom:wa,ZodCustomStringFormat:to,ZodDate:Xg,ZodDefault:yQ,ZodDiscriminatedUnion:EQ,ZodE164:Yg,ZodEmail:_g,ZodEmoji:Sg,ZodEnum:no,ZodError:Eb,ZodFile:hQ,get ZodFirstPartyTypeKind(){return rc},ZodFunction:GQ,ZodGUID:Qa,ZodIPv4:Ng,ZodIPv6:Ug,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,ZodIntersection:lQ,ZodIssueCode:mD,ZodJWT:jg,ZodKSUID:Og,ZodLazy:OQ,ZodLiteral:dQ,ZodMAC:nQ,ZodMap:QQ,ZodNaN:RQ,ZodNanoID:vg,ZodNever:cQ,ZodNonOptional:Ac,ZodNull:aQ,ZodNullable:pQ,ZodNumber:da,ZodNumberFormat:Kn,ZodObject:pa,ZodOptional:Vg,ZodPipe:ec,ZodPrefault:DQ,ZodPromise:UQ,ZodReadonly:TQ,ZodRealError:ft,ZodRecord:Wg,ZodSet:fQ,ZodString:Ca,ZodStringFormat:fe,ZodSuccess:_Q,ZodSymbol:iQ,ZodTemplateLiteral:MQ,ZodTransform:mQ,ZodTuple:CQ,ZodType:qA,ZodULID:Fg,ZodURL:fa,ZodUUID:Cr,ZodUndefined:oQ,ZodUnion:zg,ZodUnknown:gQ,ZodVoid:uQ,ZodXID:Mg,_ZodString:kg,_default:bQ,_function:xQ,any:Wb,array:be,base64:Mb,base64url:Ob,bigint:Hb,boolean:Qr,catch:vQ,check:lD,cidrv4:Tb,cidrv6:Fb,clone:St,codec:uD,coerce:kD,config:it,core:ub,cuid:bb,cuid2:Db,custom:BD,date:Vb,decode:WC,decodeAsync:VC,describe:CD,discriminatedUnion:fr,e164:Nb,email:lb,emoji:pb,encode:KC,encodeAsync:qC,endsWith:Bg,enum:vt,file:aD,flattenError:Qs,float32:Yb,float64:jb,formatError:fs,function:xQ,getErrorMap:yD,globalRegistry:xt,gt:an,gte:Qt,guid:Bb,hash:Pb,hex:Lb,hostname:xb,httpUrl:mb,includes:Eg,instanceof:fD,int:Jg,int32:Jb,int64:$b,intersection:BQ,ipv4:Sb,ipv6:Rb,iso:Ib,json:hD,jwt:Ub,keyof:AD,ksuid:_b,lazy:NQ,length:Ba,literal:DA,locales:ZB,looseObject:tD,lowercase:ug,lt:on,lte:Lt,mac:vb,map:nD,maxLength:la,maxSize:Ea,meta:QD,mime:Cg,minLength:zn,minSize:Ao,multipleOf:Vi,nan:cD,nanoid:yb,nativeEnum:oD,negative:kC,never:$g,nonnegative:SC,nonoptional:kQ,nonpositive:_C,normalize:Qg,null:Hg,nullable:dt,nullish:sD,number:G,object:NA,optional:ba,overwrite:Mr,parse:HC,parseAsync:$C,partialRecord:rD,pipe:Da,positive:wC,prefault:wQ,preprocess:YQ,prettifyError:uE,promise:ED,property:vC,readonly:FQ,record:ro,refine:LQ,regex:cg,regexes:vs,registry:Ys,safeDecode:eQ,safeDecodeAsync:rQ,safeEncode:AQ,safeEncodeAsync:tQ,safeParse:XC,safeParseAsync:zC,set:iD,setErrorMap:pD,size:gg,slugify:mg,startsWith:lg,strictObject:eD,string:GA,stringFormat:Gb,stringbool:dD,success:gD,superRefine:PQ,symbol:zb,templateLiteral:ID,toJSONSchema:LC,toLowerCase:dg,toUpperCase:hg,transform:qg,treeifyError:gE,trim:fg,tuple:Kg,uint32:Zb,uint64:Xb,ulid:wb,undefined:Kb,union:ya,unknown:Wn,uppercase:Ig,url:hb,util:aE,uuid:Cb,uuidv4:Qb,uuidv6:fb,uuidv7:db,void:qb,xid:kb});const jQ=vt(["Frankendancer","Firedancer"]),nc=jQ.enum,VA=NA({topic:DA("summary")}),JQ=NA({topic:DA("epoch")}),qn=NA({topic:DA("gossip")}),ZQ=NA({topic:DA("peers")}),Wt=NA({topic:DA("slot")}),HQ=NA({topic:DA("block_engine")}),ka=NA({topic:DA("wait_for_supermajority")});fr("topic",[VA,JQ,qn,ZQ,Wt,HQ,ka]);const SD=GA(),vD=vt(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),RD=GA(),TD=GA(),FD=GA(),MD=XA(),$Q=vt(["perf","balanced","revenue"]);$Q.enum,vt(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","genesi","diag","event"]);const OD=NA({kind:GA(),kind_id:G()}),XQ=XA();XA();const ND=G(),UD=G(),GD=G(),xD=G().nullable(),LD=G().nullable(),PD=NA({repair:G().array(),turbine:G().array()}),YD=Je(),jD=G(),JD=G().nullable(),ZD=G().nullable(),HD=G(),$D=G().nullable(),XD=G(),zD=G(),KD=NA({total:G(),vote:G(),nonvote_success:G(),nonvote_failed:G()}),WD=NA({ingress:be(G()),egress:be(G())}),qD=NA({pack_cranked:G(),pack_retained:G(),resolv_retained:G(),quic:G(),udp:G(),gossip:G(),block_engine:G()}),VD=NA({net_overrun:G(),quic_overrun:G(),quic_frag_drop:G(),quic_abandoned:G(),tpu_quic_invalid:G(),tpu_udp_invalid:G(),verify_overrun:G(),verify_parse:G(),verify_failed:G(),verify_duplicate:G(),dedup_duplicate:G(),resolv_lut_failed:G(),resolv_expired:G(),resolv_no_ledger:G(),resolv_ancient:G(),resolv_retained:G(),pack_invalid:G(),pack_already_executed:G(),pack_invalid_bundle:G(),pack_retained:G(),pack_leader_slow:G(),pack_wait_full:G(),pack_expired:G(),bank_invalid:G(),bank_nonce_already_advanced:G(),bank_nonce_advance_failed:G(),bank_nonce_wrong_blockhash:G(),block_success:G(),block_fail:G()}),zQ=NA({in:qD,out:VD}),Aw=NA({next_leader_slot:G().nullable(),waterfall:zQ}),KQ=NA({net_in:G(),quic:G(),verify:G(),bundle_rtt_smoothed_millis:G(),bundle_rx_delay_millis_p90:G(),dedup:G(),pack:G(),bank:G(),poh:G(),shred:G(),store:G(),net_out:G()}),ew=NA({next_leader_slot:G().nullable(),tile_primary_metric:KQ}),tw=NA({timers:be(be(G()).nullable()),sched_timers:be(be(G()).nullable()),in_backp:be(Qr().nullable()),backp_msgs:be(G().nullable()),alive:be(G().nullable()),nvcsw:be(G().nullable()),nivcsw:be(G().nullable()),last_cpu:be(G().nullable()),minflt:be(G().nullable()),majflt:be(G().nullable())});NA({tile:GA(),kind_id:G(),idle:G()});const rw=vt(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),nw=NA({phase:rw,downloading_full_snapshot_slot:G().nullable(),downloading_full_snapshot_peer:GA().nullable(),downloading_full_snapshot_elapsed_secs:G().nullable(),downloading_full_snapshot_remaining_secs:G().nullable(),downloading_full_snapshot_throughput:G().nullable(),downloading_full_snapshot_total_bytes:Je().nullable(),downloading_full_snapshot_current_bytes:Je().nullable(),downloading_incremental_snapshot_slot:G().nullable(),downloading_incremental_snapshot_peer:GA().nullable(),downloading_incremental_snapshot_elapsed_secs:G().nullable(),downloading_incremental_snapshot_remaining_secs:G().nullable(),downloading_incremental_snapshot_throughput:G().nullable(),downloading_incremental_snapshot_total_bytes:Je().nullable(),downloading_incremental_snapshot_current_bytes:Je().nullable(),ledger_slot:G().nullable(),ledger_max_slot:G().nullable(),waiting_for_supermajority_slot:G().nullable(),waiting_for_supermajority_stake_percent:G().nullable()}),WQ=vt(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]);WQ.enum;const iw=NA({phase:WQ,joining_gossip_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_reset_count:G().nullable().optional(),loading_full_snapshot_slot:G().nullable().optional(),loading_full_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_path:GA().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_insert_accounts:G().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:G().nullable().optional(),loading_incremental_snapshot_reset_count:G().nullable().optional(),loading_incremental_snapshot_slot:G().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_path:GA().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_insert_accounts:G().nullable().optional(),wait_for_supermajority_bank_hash:GA().nullable().optional(),wait_for_supermajority_shred_version:GA().nullable().optional(),wait_for_supermajority_attempt:G().nullable().optional(),wait_for_supermajority_total_stake:XA().nullable().optional(),wait_for_supermajority_connected_stake:XA().nullable().optional(),wait_for_supermajority_total_peers:G().nullable().optional(),wait_for_supermajority_connected_peers:G().nullable().optional(),catching_up_elapsed_seconds:G().nullable().optional(),catching_up_first_replay_slot:G().nullable().optional()}),ow=YQ(r=>{if(!r||typeof r!="object"||Array.isArray(r))return r;const i=r;return{...i,txn_preload_end_timestamps_nanos:i.txn_preload_end_timestamps_nanos??i.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:i.txn_start_timestamps_nanos??i.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:i.txn_load_end_timestamps_nanos??i.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:i.txn_end_timestamps_nanos??i.txn_commit_start_timestamps_nanos}},NA({start_timestamp_nanos:XA(),target_end_timestamp_nanos:XA(),txn_mb_start_timestamps_nanos:XA().array(),txn_mb_end_timestamps_nanos:XA().array(),txn_compute_units_requested:G().array(),txn_compute_units_consumed:G().array(),txn_transaction_fee:XA().array(),txn_priority_fee:XA().array(),txn_tips:XA().array(),txn_error_code:G().array(),txn_from_bundle:Qr().array(),txn_is_simple_vote:Qr().array(),txn_bank_idx:G().array(),txn_preload_end_timestamps_nanos:XA().array(),txn_start_timestamps_nanos:XA().array(),txn_load_end_timestamps_nanos:XA().array(),txn_end_timestamps_nanos:XA().array(),txn_commit_end_timestamps_nanos:XA().array().optional(),txn_arrival_timestamps_nanos:XA().array(),txn_microblock_id:G().array(),txn_landed:Qr().array(),txn_signature:GA().array(),txn_source_ipv4:GA().array(),txn_source_tpu:GA().array()})),aw=vt(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),sw=NA({slot:G(),mine:Qr(),skipped:Qr(),level:aw,success_nonvote_transaction_cnt:G().nullable(),failed_nonvote_transaction_cnt:G().nullable(),success_vote_transaction_cnt:G().nullable(),failed_vote_transaction_cnt:G().nullable(),priority_fee:XA().nullable(),transaction_fee:XA().nullable(),tips:XA().nullable(),max_compute_units:G().nullable(),compute_units:G().nullable(),duration_nanos:G().nullable(),completed_time_nanos:XA().nullable(),vote_latency:G().nullable()}),gw=be(Kg([G(),G(),G(),G()])),cw=vt(["voting","non-voting","delinquent"]),uw=G(),Iw=NA({epoch:G(),skip_rate:G()}),Ew=NA({hits:G(),lookups:G(),insertions:G(),insertion_bytes:G(),evictions:G(),eviction_bytes:G(),spills:G(),spill_bytes:G(),free_bytes:G(),size_bytes:G()}),lw=fr("key",[VA.extend({key:DA("ping"),value:Hg(),id:G()}),VA.extend({key:DA("version"),value:SD}),VA.extend({key:DA("cluster"),value:vD}),VA.extend({key:DA("commit_hash"),value:RD}),VA.extend({key:DA("identity_key"),value:TD}),VA.extend({key:DA("vote_key"),value:FD}),VA.extend({key:DA("startup_time_nanos"),value:MD}),VA.extend({key:DA("schedule_strategy"),value:$Q}),VA.extend({key:DA("tiles"),value:OD.array()}),VA.extend({key:DA("identity_balance"),value:XQ}),VA.extend({key:DA("vote_balance"),value:XQ}),VA.extend({key:DA("root_slot"),value:ND}),VA.extend({key:DA("optimistically_confirmed_slot"),value:UD}),VA.extend({key:DA("completed_slot"),value:GD}),VA.extend({key:DA("estimated_slot"),value:jD}),VA.extend({key:DA("reset_slot"),value:JD}),VA.extend({key:DA("storage_slot"),value:ZD}),VA.extend({key:DA("vote_slot"),value:HD}),VA.extend({key:DA("slot_caught_up"),value:$D}),VA.extend({key:DA("active_fork_count"),value:XD}),VA.extend({key:DA("estimated_slot_duration_nanos"),value:zD}),VA.extend({key:DA("estimated_tps"),value:KD}),VA.extend({key:DA("live_network_metrics"),value:WD}),VA.extend({key:DA("live_txn_waterfall"),value:Aw}),VA.extend({key:DA("live_tile_primary_metric"),value:ew}),VA.extend({key:DA("live_tile_metrics"),value:tw}),VA.extend({key:DA("live_tile_timers"),value:G().array()}),VA.extend({key:DA("startup_progress"),value:nw}),VA.extend({key:DA("boot_progress"),value:iw}),VA.extend({key:DA("tps_history"),value:gw}),VA.extend({key:DA("vote_state"),value:cw}),VA.extend({key:DA("vote_distance"),value:uw}),VA.extend({key:DA("skip_rate"),value:Iw}),VA.extend({key:DA("turbine_slot"),value:xD}),VA.extend({key:DA("repair_slot"),value:LD}),VA.extend({key:DA("catch_up_history"),value:PD}),VA.extend({key:DA("server_time_nanos"),value:YD}),VA.extend({key:DA("live_program_cache"),value:Ew})]),Bw=NA({epoch:G(),start_time_nanos:GA().nullable(),end_time_nanos:GA().nullable(),start_slot:G(),end_slot:G(),excluded_stake_lamports:XA(),staked_pubkeys:GA().array(),staked_lamports:XA().array(),leader_slots:G().array()}),Cw=fr("key",[JQ.extend({key:DA("new"),value:Bw})]),Qw=NA({num_push_messages_rx_success:G(),num_push_messages_rx_failure:G(),num_push_entries_rx_success:G(),num_push_entries_rx_failure:G(),num_push_entries_rx_duplicate:G(),num_pull_response_messages_rx_success:G(),num_pull_response_messages_rx_failure:G(),num_pull_response_entries_rx_success:G(),num_pull_response_entries_rx_failure:G(),num_pull_response_entries_rx_duplicate:G(),total_peers:G(),total_stake:XA(),connected_stake:XA(),connected_staked_peers:G(),connected_unstaked_peers:G()}),qQ=NA({total_throughput:G(),peer_names:GA().array(),peer_identities:GA().array(),peer_throughput:G().array()}),fw=NA({capacity:G(),expired_count:G(),evicted_count:G(),count:G().array(),count_tx:G().array(),bytes_tx:G().array()}),dw=NA({num_bytes_rx:G().array(),num_bytes_tx:G().array(),num_messages_rx:G().array(),num_messages_tx:G().array()}),hw=NA({health:Qw,ingress:qQ,egress:qQ,storage:fw,messages:dw}),mw=G(),VQ=ya([GA(),G()]),Af=ro(GA(),ro(GA(),VQ)).nullable(),pw=NA({changes:be(NA({row_index:G(),column_name:GA(),new_value:VQ}))}),yw=fr("key",[qn.extend({key:DA("network_stats"),value:hw}),qn.extend({key:DA("peers_size_update"),value:mw}),qn.extend({key:DA("query_scroll"),value:Af}),qn.extend({key:DA("query_sort"),value:Af}),qn.extend({key:DA("view_update"),value:pw})]),bw=NA({client_id:G().nullable().optional(),wallclock:G(),shred_version:G(),version:GA().nullable(),feature_set:G().nullable(),sockets:ro(GA(),GA()),country_code:GA().nullable().optional(),city_name:GA().nullable().optional()}),Dw=NA({vote_account:GA(),activated_stake:XA(),last_vote:dt(G()),root_slot:dt(G()),epoch_credits:G(),commission:G(),delinquent:Qr()}),ef=NA({name:dt(GA()),details:dt(GA()),website:dt(GA()),icon_url:dt(GA()),keybase_username:dt(GA())}),tf=NA({identity_pubkey:GA(),gossip:dt(bw),vote:be(Dw),info:dt(ef)}),ww=NA({identity_pubkey:GA()}),kw=NA({add:be(tf).optional(),update:be(tf).optional(),remove:be(ww).optional()}),_w=fr("key",[ZQ.extend({key:DA("update"),value:kw})]),Sw=NA({timestamp_nanos:GA(),tile_timers:G().array()}),vw=NA({timestamp_nanos:XA(),regular:G(),votes:G(),conflicting:G(),bundles:G()}),Rw=NA({account:GA(),cost:G()}),Tw=NA({used_total_block_cost:G(),used_total_vote_cost:G(),used_account_write_costs:Rw.array(),used_total_bytes:G(),used_total_microblocks:G(),max_total_block_cost:G(),max_total_vote_cost:G(),max_account_write_cost:G(),max_total_bytes:G(),max_total_microblocks:G()}),Fw=NA({block_hash:GA().optional(),end_slot_reason:GA().optional(),slot_schedule_counts:G().array(),end_slot_schedule_counts:G().array(),pending_smallest_cost:G().nullable(),pending_smallest_bytes:G().nullable(),pending_vote_smallest_cost:G().nullable(),pending_vote_smallest_bytes:G().nullable()}),_a=NA({publish:sw,waterfall:zQ.nullable().optional(),tile_primary_metric:KQ.nullable().optional(),tile_timers:Sw.array().nullable().optional(),scheduler_counts:vw.array().nullable().optional(),transactions:ow.nullable().optional(),limits:Tw.nullable().optional(),scheduler_stats:Fw.nullable().optional()}),Mw=G().array(),Ow=G().array(),Nw=NA({slots_largest_tips:G().array(),vals_largest_tips:XA().array(),slots_smallest_tips:G().array(),vals_smallest_tips:XA().array(),slots_largest_fees:G().array(),vals_largest_fees:XA().array(),slots_smallest_fees:G().array(),vals_smallest_fees:XA().array(),slots_largest_rewards:G().array(),vals_largest_rewards:XA().array(),slots_smallest_rewards:G().array(),vals_smallest_rewards:XA().array(),slots_largest_duration:G().array(),vals_largest_duration:XA().array(),slots_smallest_duration:G().array(),vals_smallest_duration:XA().array(),slots_largest_compute_units:G().array(),vals_largest_compute_units:XA().array(),slots_smallest_compute_units:G().array(),vals_smallest_compute_units:XA().array(),slots_largest_skipped:G().array(),vals_largest_skipped:XA().array(),slots_smallest_skipped:G().array(),vals_smallest_skipped:XA().array()}),Uw=NA({reference_slot:G(),reference_ts:XA(),slot_delta:G().array(),shred_idx:G().nullable().array(),event:G().array(),event_ts_delta:Je().array()}),Gw=fr("key",[Wt.extend({key:DA("skipped_history"),value:Mw}),Wt.extend({key:DA("skipped_history_cluster"),value:Ow}),Wt.extend({key:DA("update"),value:_a}),Wt.extend({key:DA("query"),value:_a.nullable()}),Wt.extend({key:DA("query_detailed"),value:_a.nullable()}),Wt.extend({key:DA("query_transactions"),value:_a.nullable()}),Wt.extend({key:DA("query_rankings"),value:Nw}),Wt.extend({key:DA("live_shreds"),value:Uw}),Wt.extend({key:DA("late_votes_history"),value:NA({slot:G().array(),latency:G().nullable().array()})})]),xw=vt(["disconnected","connecting","connected","sleeping"]),Lw=NA({name:GA(),url:GA(),ip:GA().optional(),status:xw}),Pw=fr("key",[HQ.extend({key:DA("update"),value:Lw})]),Yw=NA({staked_pubkeys:GA().array(),staked_lamports:XA().array(),infos:be(ef.nullable())}),jw=GA().array(),Jw=GA().array(),Zw=fr("key",[ka.extend({key:DA("stakes"),value:Yw}),ka.extend({key:DA("peer_add"),value:jw}),ka.extend({key:DA("peer_remove"),value:Jw})]),Hw=_D.discriminatedUnion("topic",[lw,Cw,yw,_w,Gw,Pw,Zw]);function ic(r){if(r<1)throw new Error("Ring buffer size must be at least 1");const i=new Array(r);let u=0,E=0;return{get length(){return E},push(g){i[u]=g,u=(u+1)%r,E"u")return!1;const r=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(r)||"ontouchstart"in window&&!!matchMedia?.("(hover: none)").matches}$w();var Xw={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},zw=Array.prototype.slice;function Sa(r){var i=r.length;return i?i===1?[r[0]]:i===2?[r[0],r[1]]:i===3?[r[0],r[1],r[2]]:zw.call(r,0):[]}function Kw(r){var i={};for(var u in r)Xw[u]||(i[u]=r[u]);return i}function Ww(r){return typeof r=="function"&&r.isMemoized}function qw(r,i){return r===i||r!==r&&i!==i}function rf(r,i){var u={};for(var E in r)u[E]=r[E];for(var E in i)u[E]=i[E];return u}var Vw=function(){function r(i){this.keys=[],this.values=[],this.options=i;var u=typeof i.isMatchingKey=="function";u?this.getKeyIndex=this._getKeyIndexFromMatchingKey:i.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof i.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||u,this.shouldUpdateOnAdd=typeof i.onCacheAdd=="function",this.shouldUpdateOnChange=typeof i.onCacheChange=="function",this.shouldUpdateOnHit=typeof i.onCacheHit=="function"}return Object.defineProperty(r.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"snapshot",{get:function(){return{keys:Sa(this.keys),size:this.size,values:Sa(this.values)}},enumerable:!1,configurable:!0}),r.prototype._getKeyIndexFromMatchingKey=function(i){var u=this.options,E=u.isMatchingKey,g=u.maxSize,a=this.keys,h=a.length;if(!h)return-1;if(E(a[0],i))return 0;if(g>1){for(var w=1;w1){for(var k=0;k1){for(var h=0;h=k&&(g.length=a.length=k)},r.prototype.updateAsyncCache=function(i){var u=this,E=this.options,g=E.onCacheChange,a=E.onCacheHit,h=this.keys[0],w=this.values[0];this.values[0]=w.then(function(k){return u.shouldUpdateOnHit&&a(u,u.options,i),u.shouldUpdateOnChange&&g(u,u.options,i),k},function(k){var v=u.getKeyIndex(h);throw v!==-1&&(u.keys.splice(v,1),u.values.splice(v,1)),k})},r}();function nf(r,i){if(i===void 0&&(i={}),Ww(r))return nf(r.fn,rf(r.options,i));if(typeof r!="function")throw new TypeError("You must pass a function to `memoize`.");var u=i.isEqual,E=u===void 0?qw:u,g=i.isMatchingKey,a=i.isPromise,h=a===void 0?!1:a,w=i.maxSize,k=w===void 0?1:w,v=i.onCacheAdd,F=i.onCacheChange,x=i.onCacheHit,$=i.transformKey,j=rf({isEqual:E,isMatchingKey:g,isPromise:h,maxSize:k,onCacheAdd:v,onCacheChange:F,onCacheHit:x,transformKey:$},Kw(i)),P=new Vw(j),rA=P.keys,iA=P.values,TA=P.canTransformKey,pA=P.shouldCloneArguments,MA=P.shouldUpdateOnAdd,xA=P.shouldUpdateOnChange,ce=P.shouldUpdateOnHit,se=function(){var Ue=pA?Sa(arguments):arguments;TA&&(Ue=$(Ue));var at=rA.length?P.getKeyIndex(Ue):-1;if(at!==-1)ce&&x(P,j,se),at&&(P.orderByLru(rA[at],iA[at],at),xA&&F(P,j,se));else{var OA=r.apply(this,arguments),je=pA?Ue:Sa(arguments);P.orderByLru(je,OA,rA.length),h&&P.updateAsyncCache(se),MA&&v(P,j,se),xA&&F(P,j,se)}return iA[0]};return se.cache=P,se.fn=r,se.isMemoized=!0,se.options=j,se}const of=jQ.safeParse("Firedancer".trim()),af=of.error?nc.Frankendancer:of.data;nc.Frankendancer,nc.Firedancer,PA.now(),setInterval(()=>{PA.now()},1e3);function Ak(r){return r!==void 0}nf(r=>{if(r)return r.toUpperCase().split("").map(E=>String.fromCodePoint(E.charCodeAt(0)-65+127462)).join("")},{maxSize:100});function oc(r){const i=new Map;let u;function E(h,w){let k=i.get(h);return k||(k=r.createEntry(h,w),i.set(h,k)),k}function g(h){return h.lastPublishMs+h.publishIntervalMs}function a(){if(u)return;const h=performance.now();let w=1/0;for(const k of i.values()){if(!k.subscribed)continue;const v=Math.max(0,g(k)-h);v{u=void 0;const k=performance.now(),v=[];for(const F of i.values()){if(!F.subscribed||k{const k=E(h,w);k.subscribed||(k.subscribed=!0,a())},unsubscribe:h=>{const w=i.get(h);w&&(w.subscribed=!1);let k=!1;for(const v of i.values())if(v.subscribed){k=!0;break}!k&&u&&(clearTimeout(u),u=void 0)},get:h=>i.get(h),reset:h=>{const w=h?[i.get(h)].filter(Ak):i.values();for(const k of w)r.onReset?.(k),k.lastPublishMs=0},stop:()=>{u&&(clearTimeout(u),u=void 0);for(const h of i.values())h.subscribed=!1}}}function sf(r){const i=r.halfLifeMs/Math.log(2),{initMinSamples:u,warmupMs:E}=r;let g,a,h=0,w;function k(){a=void 0,h=0,g=void 0,w=void 0}function v(x){if(!E||!w)return i;const $=Math.max(.2,Math.min(1,(x-w)/E));return i*$}function F(x,$){if(!a)return x!=null&&(a={value:x,tsMs:$}),!1;x??=a.value;const j=$-a.tsMs;if(!isFinite(j)||j<=0)return!1;const P=x-a.value;if(!isFinite(P)||P<0)return k(),a={value:x,tsMs:$},!1;if(a={value:x,tsMs:$},g===void 0)return P<=0||(h+=1,hk.ema??0)),w}for(;i.lengthk.ema??0)),w}return{get ema(){return u},reset:E,tick:g}}function tk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,calc:ek(E),history:ic(g)}},collect:(u,E)=>{if(u.calc.ema.length>0){const g=[...u.calc.ema];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.calc.reset(),u.history.clear()}});return{...i,update(u,E,g){const a=i.get(u);a&&a.calc.tick(E,g)},get(u){return i.get(u)?.calc.ema}}}function rk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,values:[],history:ic(g)}},collect:(u,E)=>{if(u.values.length>0){const g=[...u.values];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.values=[],u.history.clear()}});return{...i,update(u,E){const g=i.get(u);g&&(g.values=E)},get(u){return i.get(u)?.values}}}function nk(r){function i(E){const g={};let a=!1;for(const h of E.fields)g[h]=E.calcs[h].ema??0,E.calcs[h].ema!==void 0&&(a=!0);return{value:g,hasValue:a}}const u=oc({createEntry:(E,g)=>{const a={};for(const w of g.fields)a[w]=sf(g);const h=Math.ceil(g.historyWindowMs/g.publishIntervalMs);return{key:E,subscribed:!1,lastPublishMs:0,publishIntervalMs:g.publishIntervalMs,fields:g.fields,calcs:a,history:ic(h)}},collect:(E,g)=>{const{value:a,hasValue:h}=i(E);if(h)return E.history.push({ts:g,value:a}),{key:E.key,value:a,history:E.history.toArray()}},post:r,onReset:E=>{for(const g of E.fields)E.calcs[g].reset();E.history.clear()}});return{...u,update(E,g,a){const h=u.get(E);if(h)for(const w of h.fields){const k=g[w];typeof k=="number"&&h.calcs[w].tick(k,a)}},get(E){const g=u.get(E);if(g){const{value:a,hasValue:h}=i(g);if(h)return a}}}}const ik=100,ok=3e4,ak=5e3,gf=500,cf=6e4,uf=5e3,If=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"];Object.fromEntries(If.map(r=>[r,0]));const sk={halfLifeMs:5e3,initMinSamples:10,warmupMs:1e4,publishIntervalMs:ik,historyWindowMs:ok+ak,fields:[...If]},Ef={halfLifeMs:1e3,initMinSamples:5,warmupMs:5e3,publishIntervalMs:gf,historyWindowMs:cf+uf},gk={publishIntervalMs:gf,historyWindowMs:cf+uf};function ac(r,i,u){return r.topic===i&&r.key===u}function ck(r){const i=tk(g=>r({type:"emaHistoryArray",items:g})),u=nk(g=>r({type:"emaHistoryObject",items:g})),E=rk(g=>r({type:"historyArray",items:g}));return{onMessage(g){const a=performance.now();ac(g,"gossip","network_stats")&&(u.subscribe("gossipHealth",sk),u.update("gossipHealth",g.value.health,a)),ac(g,"summary","live_network_metrics")&&(i.subscribe("ingress",Ef),i.subscribe("egress",Ef),i.update("ingress",g.value.ingress,a),i.update("egress",g.value.egress,a)),ac(g,"summary","live_tile_timers")&&(E.subscribe("tileTimers",gk),E.update("tileTimers",g.value))}}}const lf=3e3,uk=32,Vn=self;let It=null,sc,gc=!1;const io=new Map,Ik=ck(r=>Vn.postMessage(r));function Ek(r){Ik.onMessage(r);const i=`${r.topic}:${r.key}`;io.has(i)?io.get(i)?.push(r):io.set(i,[r]),gc||(gc=!0,setTimeout(lk,uk))}function lk(){gc=!1;const r=[];for(const i of io.values())for(const u of i)r.push(u);io.clear(),r.length&&Vn.postMessage({type:"kvb",items:r})}function Bf(r,i){Zn("WS",`Connecting to API WebSocket ${r.toString()}`),Vn.postMessage({type:"connecting"}),It=new WebSocket(r,i?["compress-zstd"]:void 0),It.binaryType="arraybuffer",It.onopen=function(){this===It&&(Zn("WS","Connected to API WebSocket"),Vn.postMessage({type:"connected"}))},It.onclose=function(){this===It&&(Zn("WS",`Disconnected API WebSocket, reconnecting in ${lf}ms`),Vn.postMessage({type:"disconnected"}),clearTimeout(sc),sc=setTimeout(()=>Bf(r,i),lf))};const u=new TextDecoder;It.onmessage=function(g){if(this===It)try{const a=g.data;let h;if(typeof a=="string"?h=JSON.parse(a):a instanceof ArrayBuffer&&i&&(h=JSON.parse(u.decode(i.ZstdStream.decompress(new Uint8Array(a))))),h!==void 0){const w=Hw.safeParse(h);if(!w.success){Zn("zod",h),Zn("Zod",w.error.message),Zn("Zod",w.error.issues);return}Ek(w.data)}}catch(a){Is("WS",a)}}}Vn.onmessage=r=>{const i=r.data;switch(i.type){case"connect":(async()=>{let u;if(i.compress)try{u=await dh()}catch(E){Is("WS","Failed to initialize Zstd, falling back to uncompressed",E)}Bf(i.websocketUrl,u)})();break;case"disconnect":if(clearTimeout(sc),It){try{It.close()}catch{Is("WS","Error closing WebSocket")}It=null}break;case"send":It&&It.readyState===WebSocket.OPEN?It.send(JSON.stringify(i.value)):Qp("WS","Attempting to send on closed WebSocket",i.value);break}}})(); diff --git a/src/disco/gui/dist_dev/index.html b/src/disco/gui/dist_dev/index.html index c2b189f34c6..fa1133c3036 100644 --- a/src/disco/gui/dist_dev/index.html +++ b/src/disco/gui/dist_dev/index.html @@ -54,8 +54,8 @@ /> Firedancer - - + + diff --git a/src/disco/gui/dist_dev/version b/src/disco/gui/dist_dev/version index edec9f3ccbe..8c5f8a3e00d 100644 --- a/src/disco/gui/dist_dev/version +++ b/src/disco/gui/dist_dev/version @@ -1 +1 @@ -dc78fa04483d8daa2af6b3f68c6024830b8b4ee7 +bf17bea95d95e2484c35d3e69078dd8447b9a989 diff --git a/src/disco/gui/fd_gui_metrics.h b/src/disco/gui/fd_gui_metrics.h index 560d2a3dbf7..4b83ee32fa9 100644 --- a/src/disco/gui/fd_gui_metrics.h +++ b/src/disco/gui/fd_gui_metrics.h @@ -41,7 +41,9 @@ fd_gui_metrics_gossip_total_ingress_bytes( fd_topo_t const * topo, ulong gossvf_ + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PRUNE_DESTINATION) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PRUNE_WALLCLOCK) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PRUNE_SIGNATURE) ) + + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PUSH_LOOPBACK) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PUSH_NO_VALID_CRDS) ) + + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_LOOPBACK) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_NO_VALID_CRDS) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PING_SIGNATURE) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PONG_SIGNATURE) ); diff --git a/src/disco/gui/fd_gui_peers.c b/src/disco/gui/fd_gui_peers.c index a11fcabb51c..4cda764b6a7 100644 --- a/src/disco/gui/fd_gui_peers.c +++ b/src/disco/gui/fd_gui_peers.c @@ -310,11 +310,13 @@ fd_gui_peers_gossip_stats_snap( fd_gui_peers_ctx_t * peers, gossip_stats->network_health_pull_response_msg_rx_success = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PULL_RESPONSE ) ); gossip_stats->network_health_pull_response_msg_rx_failure = - fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_NO_VALID_CRDS ) ); + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_LOOPBACK ) ) + + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_NO_VALID_CRDS ) ); gossip_stats->network_health_push_msg_rx_success = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PUSH ) ); gossip_stats->network_health_push_msg_rx_failure = - fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_NO_VALID_CRDS ) ); + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_LOOPBACK ) ) + + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_NO_VALID_CRDS ) ); gossip_stats->network_health_push_crds_rx_success = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, CRDS_RX_COUNT_UPSERTED_PUSH ) ); gossip_stats->network_health_push_crds_rx_failure = @@ -518,9 +520,11 @@ fd_gui_peers_gossip_stats_snap( fd_gui_peers_ctx_t * peers, + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_REQUEST_MASK_BITS ) ); gossip_stats->messages_count_rx[ FD_METRICS_ENUM_GOSSIP_MESSAGE_V_PULL_RESPONSE_IDX ] = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PULL_RESPONSE ) ) + + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_LOOPBACK ) ) + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_NO_VALID_CRDS ) ); gossip_stats->messages_count_rx[ FD_METRICS_ENUM_GOSSIP_MESSAGE_V_PUSH_IDX ] = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PUSH ) ) + + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_LOOPBACK ) ) + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_NO_VALID_CRDS ) ); gossip_stats->messages_count_rx[ FD_METRICS_ENUM_GOSSIP_MESSAGE_V_PING_IDX ] = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PING ) ) diff --git a/src/disco/gui/fd_gui_printf.c b/src/disco/gui/fd_gui_printf.c index 0b21450c2f6..9d906d92919 100644 --- a/src/disco/gui/fd_gui_printf.c +++ b/src/disco/gui/fd_gui_printf.c @@ -635,9 +635,9 @@ fd_gui_printf_block_engine( fd_gui_t * gui ) { jsonp_string( gui->http, "name", gui->block_engine.name ); jsonp_string( gui->http, "url", gui->block_engine.url ); jsonp_string( gui->http, "ip", gui->block_engine.ip_cstr ); - /* TODO: fix FD_BUNDLE_STATE_SLEEPING after adding frontend support */ if( FD_LIKELY( gui->block_engine.status==FD_BUNDLE_STATE_CONNECTING ) ) jsonp_string( gui->http, "status", "connecting" ); else if( FD_LIKELY( gui->block_engine.status==FD_BUNDLE_STATE_CONNECTED ) ) jsonp_string( gui->http, "status", "connected" ); + else if( FD_LIKELY( gui->block_engine.status==FD_BUNDLE_STATE_SLEEPING ) ) jsonp_string( gui->http, "status", "sleeping" ); else jsonp_string( gui->http, "status", "disconnected" ); jsonp_close_object( gui->http ); jsonp_close_envelope( gui->http ); @@ -1192,6 +1192,16 @@ fd_gui_printf_health( fd_gui_t * gui ) { turbine_status = metrics[ MIDX( GAUGE, DIAG, TURBINE_STATUS ) ]; } + if( FD_UNLIKELY( !gui->summary.is_full_client ) ) { + switch( gui->summary.vote_state ) { + case FD_GUI_VOTE_STATE_VOTING: vote_status = FD_DIAG_VOTE_STATUS_VOTING; break; + case FD_GUI_VOTE_STATE_DELINQUENT: vote_status = FD_DIAG_VOTE_STATUS_DELINQUENT; break; + default: vote_status = FD_DIAG_VOTE_STATUS_DISABLED; break; + } + replay_status = FD_DIAG_REPLAY_STATUS_DISABLED; + turbine_status = FD_DIAG_TURBINE_STATUS_DISABLED; + } + /* Map bundle status to string */ char const * bundle_str; switch( bundle_status ) { diff --git a/src/disco/gui/generated/http_import_dist.c b/src/disco/gui/generated/http_import_dist.c index e58a229f2ea..9b1a021a743 100644 --- a/src/disco/gui/generated/http_import_dist.c +++ b/src/disco/gui/generated/http_import_dist.c @@ -147,12 +147,12 @@ FD_IMPORT_BINARY( file_dev8_gzip, "src/disco/gui/dist_dev_cmp/assets/frankendanc FD_IMPORT_BINARY( file_dev9, "src/disco/gui/dist_dev/assets/frankendancer_logo-CHyfJ772.svg" ); FD_IMPORT_BINARY( file_dev9_zstd, "src/disco/gui/dist_dev_cmp/assets/frankendancer_logo-CHyfJ772.svg.zst" ); FD_IMPORT_BINARY( file_dev9_gzip, "src/disco/gui/dist_dev_cmp/assets/frankendancer_logo-CHyfJ772.svg.gz" ); -FD_IMPORT_BINARY( file_dev10, "src/disco/gui/dist_dev/assets/index-CKTbDeLd.js" ); -FD_IMPORT_BINARY( file_dev10_zstd, "src/disco/gui/dist_dev_cmp/assets/index-CKTbDeLd.js.zst" ); -FD_IMPORT_BINARY( file_dev10_gzip, "src/disco/gui/dist_dev_cmp/assets/index-CKTbDeLd.js.gz" ); -FD_IMPORT_BINARY( file_dev11, "src/disco/gui/dist_dev/assets/index-ColMY7Rf.css" ); -FD_IMPORT_BINARY( file_dev11_zstd, "src/disco/gui/dist_dev_cmp/assets/index-ColMY7Rf.css.zst" ); -FD_IMPORT_BINARY( file_dev11_gzip, "src/disco/gui/dist_dev_cmp/assets/index-ColMY7Rf.css.gz" ); +FD_IMPORT_BINARY( file_dev10, "src/disco/gui/dist_dev/assets/index-C054xcgF.js" ); +FD_IMPORT_BINARY( file_dev10_zstd, "src/disco/gui/dist_dev_cmp/assets/index-C054xcgF.js.zst" ); +FD_IMPORT_BINARY( file_dev10_gzip, "src/disco/gui/dist_dev_cmp/assets/index-C054xcgF.js.gz" ); +FD_IMPORT_BINARY( file_dev11, "src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css" ); +FD_IMPORT_BINARY( file_dev11_zstd, "src/disco/gui/dist_dev_cmp/assets/index-qV0ZL8w9.css.zst" ); +FD_IMPORT_BINARY( file_dev11_gzip, "src/disco/gui/dist_dev_cmp/assets/index-qV0ZL8w9.css.gz" ); FD_IMPORT_BINARY( file_dev12, "src/disco/gui/dist_dev/assets/inter-tight-latin-400-normal-BLrFJfvD.woff" ); FD_IMPORT_BINARY( file_dev12_zstd, "src/disco/gui/dist_dev_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.zst" ); FD_IMPORT_BINARY( file_dev12_gzip, "src/disco/gui/dist_dev_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.gz" ); @@ -168,9 +168,9 @@ FD_IMPORT_BINARY( file_dev15_gzip, "src/disco/gui/dist_dev_cmp/assets/roboto-mon FD_IMPORT_BINARY( file_dev16, "src/disco/gui/dist_dev/assets/roboto-mono-latin-400-normal-GekRknry.woff2" ); FD_IMPORT_BINARY( file_dev16_zstd, "src/disco/gui/dist_dev_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.zst" ); FD_IMPORT_BINARY( file_dev16_gzip, "src/disco/gui/dist_dev_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.gz" ); -FD_IMPORT_BINARY( file_dev17, "src/disco/gui/dist_dev/assets/wsWorker-D3WzW2i7.js" ); -FD_IMPORT_BINARY( file_dev17_zstd, "src/disco/gui/dist_dev_cmp/assets/wsWorker-D3WzW2i7.js.zst" ); -FD_IMPORT_BINARY( file_dev17_gzip, "src/disco/gui/dist_dev_cmp/assets/wsWorker-D3WzW2i7.js.gz" ); +FD_IMPORT_BINARY( file_dev17, "src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js" ); +FD_IMPORT_BINARY( file_dev17_zstd, "src/disco/gui/dist_dev_cmp/assets/wsWorker-CiLy8ipA.js.zst" ); +FD_IMPORT_BINARY( file_dev17_gzip, "src/disco/gui/dist_dev_cmp/assets/wsWorker-CiLy8ipA.js.gz" ); FD_IMPORT_BINARY( file_dev18, "src/disco/gui/dist_dev/index.html" ); FD_IMPORT_BINARY( file_dev18_zstd, "src/disco/gui/dist_dev_cmp/index.html.zst" ); FD_IMPORT_BINARY( file_dev18_gzip, "src/disco/gui/dist_dev_cmp/index.html.gz" ); @@ -621,7 +621,7 @@ fd_http_static_file_t STATIC_FILES_DEV[] = { .gzip_data_len = &file_dev9_gzip_sz, }, { - .name = "/assets/index-CKTbDeLd.js", + .name = "/assets/index-C054xcgF.js", .data = file_dev10, .data_len = &file_dev10_sz, .zstd_data = file_dev10_zstd, @@ -630,7 +630,7 @@ fd_http_static_file_t STATIC_FILES_DEV[] = { .gzip_data_len = &file_dev10_gzip_sz, }, { - .name = "/assets/index-ColMY7Rf.css", + .name = "/assets/index-qV0ZL8w9.css", .data = file_dev11, .data_len = &file_dev11_sz, .zstd_data = file_dev11_zstd, @@ -684,7 +684,7 @@ fd_http_static_file_t STATIC_FILES_DEV[] = { .gzip_data_len = &file_dev16_gzip_sz, }, { - .name = "/assets/wsWorker-D3WzW2i7.js", + .name = "/assets/wsWorker-CiLy8ipA.js", .data = file_dev17, .data_len = &file_dev17_sz, .zstd_data = file_dev17_zstd, diff --git a/src/disco/keyguard/Local.mk b/src/disco/keyguard/Local.mk index 8d03de76092..f62f6213bc6 100644 --- a/src/disco/keyguard/Local.mk +++ b/src/disco/keyguard/Local.mk @@ -18,8 +18,6 @@ $(call make-unit-test,test_keyload,test_keyload,fd_disco fd_flamenco fd_tls fd_b $(call run-unit-test,test_keyload) $(call make-proof,proof_authorize,fd_keyguard_proofs.c) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_sign_tile,fd_disco) endif endif -endif diff --git a/src/disco/metrics/Local.mk b/src/disco/metrics/Local.mk index 31cad154ec9..466721e9140 100644 --- a/src/disco/metrics/Local.mk +++ b/src/disco/metrics/Local.mk @@ -1,7 +1,5 @@ ifdef FD_HAS_HOSTED $(call add-hdrs,fd_prometheus.h fd_metrics.h) $(call add-objs,fd_prometheus fd_metrics ,fd_disco) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_metric_tile,fd_disco) endif -endif diff --git a/src/disco/metrics/generated/fd_metrics_enums.h b/src/disco/metrics/generated/fd_metrics_enums.h index 44728d73e6d..ea3b2c008f6 100644 --- a/src/disco/metrics/generated/fd_metrics_enums.h +++ b/src/disco/metrics/generated/fd_metrics_enums.h @@ -712,7 +712,7 @@ #define FD_METRICS_ENUM_GOSSIP_CRDS_OUTCOME_V_DROPPED_PUSH_DUPLICATE_NAME "dropped_push_duplicate" #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_NAME "gossvf_message_outcome" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_CNT (21UL) +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_CNT (23UL) #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_SUCCESS_PULL_REQUEST_IDX 0 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_SUCCESS_PULL_REQUEST_NAME "success_pull_request" #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_SUCCESS_PULL_RESPONSE_IDX 1 @@ -747,13 +747,17 @@ #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PRUNE_WALLCLOCK_NAME "dropped_prune_wallclock" #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PRUNE_SIGNATURE_IDX 16 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PRUNE_SIGNATURE_NAME "dropped_prune_signature" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_NO_VALID_CRDS_IDX 17 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_LOOPBACK_IDX 17 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_LOOPBACK_NAME "dropped_push_loopback" +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_NO_VALID_CRDS_IDX 18 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_NO_VALID_CRDS_NAME "dropped_push_no_valid_crds" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_IDX 18 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_LOOPBACK_IDX 19 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_LOOPBACK_NAME "dropped_pull_response_loopback" +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_IDX 20 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_NAME "dropped_pull_response_no_valid_crds" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PING_SIGNATURE_IDX 19 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PING_SIGNATURE_IDX 21 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PING_SIGNATURE_NAME "dropped_ping_signature" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PONG_SIGNATURE_IDX 20 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PONG_SIGNATURE_IDX 22 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PONG_SIGNATURE_NAME "dropped_pong_signature" #define FD_METRICS_ENUM_GOSSVF_CRDS_OUTCOME_NAME "gossvf_crds_outcome" diff --git a/src/disco/metrics/generated/fd_metrics_gossvf.c b/src/disco/metrics/generated/fd_metrics_gossvf.c index 888c9053311..6d9d21a59eb 100644 --- a/src/disco/metrics/generated/fd_metrics_gossvf.c +++ b/src/disco/metrics/generated/fd_metrics_gossvf.c @@ -19,7 +19,9 @@ const fd_metrics_meta_t FD_METRICS_GOSSVF[FD_METRICS_GOSSVF_TOTAL] = { DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_DESTINATION ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_WALLCLOCK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_SIGNATURE ), + DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PUSH_LOOPBACK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PUSH_NO_VALID_CRDS ), + DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PULL_RESPONSE_LOOPBACK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PULL_RESPONSE_NO_VALID_CRDS ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PING_SIGNATURE ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PONG_SIGNATURE ), @@ -40,7 +42,9 @@ const fd_metrics_meta_t FD_METRICS_GOSSVF[FD_METRICS_GOSSVF_TOTAL] = { DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_DESTINATION ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_WALLCLOCK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_SIGNATURE ), + DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PUSH_LOOPBACK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PUSH_NO_VALID_CRDS ), + DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PULL_RESPONSE_LOOPBACK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PULL_RESPONSE_NO_VALID_CRDS ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PING_SIGNATURE ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PONG_SIGNATURE ), diff --git a/src/disco/metrics/generated/fd_metrics_gossvf.h b/src/disco/metrics/generated/fd_metrics_gossvf.h index f14aee0dfac..c3a24d5256d 100644 --- a/src/disco/metrics/generated/fd_metrics_gossvf.h +++ b/src/disco/metrics/generated/fd_metrics_gossvf.h @@ -25,7 +25,9 @@ enum { FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PRUNE_DESTINATION_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PRUNE_WALLCLOCK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PRUNE_SIGNATURE_OFF, + FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PUSH_LOOPBACK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PUSH_NO_VALID_CRDS_OFF, + FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_LOOPBACK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PING_SIGNATURE_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PONG_SIGNATURE_OFF, @@ -47,7 +49,9 @@ enum { FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PRUNE_DESTINATION_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PRUNE_WALLCLOCK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PRUNE_SIGNATURE_OFF, + FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PUSH_LOOPBACK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PUSH_NO_VALID_CRDS_OFF, + FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_LOOPBACK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PING_SIGNATURE_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PONG_SIGNATURE_OFF, @@ -85,13 +89,13 @@ enum { #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_TYPE (FD_METRICS_TYPE_COUNTER) #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DESC "Number of gossip messages processed" #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_CNT (21UL) +#define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_CNT (23UL) #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_NAME "gossvf_message_rx_bytes" #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_TYPE (FD_METRICS_TYPE_COUNTER) #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DESC "Total wire bytes of gossip messages processed" #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_CNT (21UL) +#define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_CNT (23UL) #define FD_METRICS_COUNTER_GOSSVF_CRDS_RX_COUNT_NAME "gossvf_crds_rx_count" #define FD_METRICS_COUNTER_GOSSVF_CRDS_RX_COUNT_TYPE (FD_METRICS_TYPE_COUNTER) @@ -105,7 +109,7 @@ enum { #define FD_METRICS_COUNTER_GOSSVF_CRDS_RX_BYTES_CVT (FD_METRICS_CONVERTER_NONE) #define FD_METRICS_COUNTER_GOSSVF_CRDS_RX_BYTES_CNT (13UL) -#define FD_METRICS_GOSSVF_TOTAL (68UL) +#define FD_METRICS_GOSSVF_TOTAL (72UL) extern const fd_metrics_meta_t FD_METRICS_GOSSVF[FD_METRICS_GOSSVF_TOTAL]; #endif /* HEADER_fd_src_disco_metrics_generated_fd_metrics_gossvf_h */ diff --git a/src/disco/metrics/metrics.xml b/src/disco/metrics/metrics.xml index d3edcf9a1d5..443b1d71faf 100644 --- a/src/disco/metrics/metrics.xml +++ b/src/disco/metrics/metrics.xml @@ -1059,13 +1059,15 @@ metric introduced. - + + - + + - + - + diff --git a/src/disco/net/Local.mk b/src/disco/net/Local.mk index b66397403d6..d4f924a616d 100644 --- a/src/disco/net/Local.mk +++ b/src/disco/net/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_net_tile.h) $(call add-objs,fd_net_tile_topo,fd_disco) endif ifdef FD_HAS_LINUX $(call add-objs,fd_linux_bond,fd_disco) endif -endif diff --git a/src/disco/net/fd_net_tile_topo.c b/src/disco/net/fd_net_tile_topo.c index c00a4d247be..3d98204889e 100644 --- a/src/disco/net/fd_net_tile_topo.c +++ b/src/disco/net/fd_net_tile_topo.c @@ -112,6 +112,10 @@ fd_topos_net_tiles( fd_topo_t * topo, for( slave_cnt=0U; /* */ !fd_bonding_slave_iter_done( iter ); slave_cnt++, fd_bonding_slave_iter_next( iter ) ) { + if( FD_UNLIKELY( slave_cnt>=FD_NET_BOND_SLAVE_MAX ) ) { + FD_LOG_ERR(( "bond interface %s has too many slave devices; max is %u (see [net.xdp.native_bond])", + net_cfg->interface, FD_NET_BOND_SLAVE_MAX )); + } uint if_idx = if_nametoindex( fd_bonding_slave_iter_ele( iter ) ); if( FD_UNLIKELY( !if_idx ) ) FD_LOG_ERR(( "if_nametoindex(%s) failed", fd_bonding_slave_iter_ele( iter ) )); devices[ slave_cnt ] = if_idx; diff --git a/src/disco/net/sock/Local.mk b/src/disco/net/sock/Local.mk index e24b980f95c..a3e0c5b4455 100644 --- a/src/disco/net/sock/Local.mk +++ b/src/disco/net/sock/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_sock_tile,fd_disco) endif -endif diff --git a/src/disco/net/xdp/Local.mk b/src/disco/net/xdp/Local.mk index e4b5c25c3d3..333c849d0fc 100644 --- a/src/disco/net/xdp/Local.mk +++ b/src/disco/net/xdp/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_xdp_tile,fd_disco) ifdef FD_ARCH_SUPPORTS_SANDBOX $(call make-unit-test,test_xdp_tile,test_xdp_tile,fd_disco fd_tango fd_waltz fd_util) $(call run-unit-test,test_xdp_tile) endif endif -endif diff --git a/src/disco/quic/Local.mk b/src/disco/quic/Local.mk index 15dc58e4ad0..7673055aff1 100644 --- a/src/disco/quic/Local.mk +++ b/src/disco/quic/Local.mk @@ -9,8 +9,6 @@ $(OBJDIR)/obj/disco/quic/test_quic_metrics.o: src/disco/quic/test_quic_metrics.t endif ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_quic_tile.h) $(call add-objs,fd_quic_tile,fd_disco) endif -endif diff --git a/src/disco/shred/Local.mk b/src/disco/shred/Local.mk index e614652ecc4..9cbdbc8da9e 100644 --- a/src/disco/shred/Local.mk +++ b/src/disco/shred/Local.mk @@ -3,9 +3,7 @@ $(call add-objs,fd_shredder,fd_disco) $(call add-objs,fd_stake_ci,fd_disco) ifdef FD_HAS_HOSTED $(call add-objs,fd_fec_resolver,fd_disco) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_shred_tile,fd_disco) -endif $(call make-unit-test,test_fec_resolver,test_fec_resolver,fd_flamenco fd_disco fd_ballet fd_util fd_tango fd_reedsol) $(call run-unit-test,test_fec_resolver) endif diff --git a/src/disco/stem/fd_stem.c b/src/disco/stem/fd_stem.c index 6d5364f9716..9737e97e1b8 100644 --- a/src/disco/stem/fd_stem.c +++ b/src/disco/stem/fd_stem.c @@ -165,10 +165,6 @@ This callback is not called when an overrun is detected in during_frag. */ -#if !FD_HAS_ALLOCA -#error "fd_stem requires alloca" -#endif - #include "../../util/log/fd_log.h" #include "../topo/fd_topo.h" #include "../metrics/fd_metrics.h" @@ -823,6 +819,8 @@ STEM_(run)( fd_topo_t * topo, STEM_CALLBACK_CONTEXT_TYPE * ctx = (STEM_CALLBACK_CONTEXT_TYPE*)fd_ulong_align_up( (ulong)fd_topo_obj_laddr( topo, tile->tile_obj_id ), STEM_CALLBACK_CONTEXT_ALIGN ); + uchar __attribute__((aligned(FD_STEM_SCRATCH_ALIGN))) stem_scratch[ STEM_(scratch_footprint)( polled_in_cnt, tile->out_cnt, reliable_cons_cnt ) ]; + STEM_(run1)( polled_in_cnt, in_mcache, in_fseq, @@ -835,7 +833,7 @@ STEM_(run)( fd_topo_t * topo, STEM_BURST, STEM_LAZY, rng, - fd_alloca( FD_STEM_SCRATCH_ALIGN, STEM_(scratch_footprint)( polled_in_cnt, tile->out_cnt, reliable_cons_cnt ) ), + stem_scratch, ctx ); #ifdef STEM_CALLBACK_METRICS_WRITE diff --git a/src/disco/store/Local.mk b/src/disco/store/Local.mk index 0c18e69d51f..d1b0a286cd1 100644 --- a/src/disco/store/Local.mk +++ b/src/disco/store/Local.mk @@ -1,8 +1,6 @@ -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_store.h) $(call add-objs,fd_store,fd_disco) ifdef FD_HAS_HOSTED $(call make-unit-test,test_store,test_store,fd_disco fd_flamenco fd_tango fd_ballet fd_util) $(call run-unit-test,test_store) endif -endif diff --git a/src/disco/store/fd_store.c b/src/disco/store/fd_store.c index 55fa0c353f6..d07e4ab614a 100644 --- a/src/disco/store/fd_store.c +++ b/src/disco/store/fd_store.c @@ -203,7 +203,6 @@ fd_store_insert( fd_store_t * store, if( FD_UNLIKELY( !fec ) ) FD_LOG_CRIT(( "fd_store_pool_acquire failed" )); fec->key.merkle_root = *merkle_root; fec->key.part_idx = part_idx; - fec->cmr = (fd_hash_t){ 0 }; fec->next = null; fec->data_sz = 0UL; diff --git a/src/disco/store/fd_store.h b/src/disco/store/fd_store.h index 4c120e5f90f..c84c2dadb96 100644 --- a/src/disco/store/fd_store.h +++ b/src/disco/store/fd_store.h @@ -176,7 +176,6 @@ typedef struct fd_store_key fd_store_key_t; struct __attribute__((aligned(FD_STORE_ALIGN))) fd_store_fec { fd_store_key_t key; /* map key, merkle root of the FEC set + a partition index */ ulong next; /* reserved for internal use by fd_pool, fd_map_chain */ - fd_hash_t cmr; /* parent's map key, chained merkle root of the FEC set */ uint shred_offs[FD_FEC_SHRED_CNT]; /* shred_offs[ i ] is the total size of data shreds [0, i], up to FD_FEC_SHRED_CNT */ ulong data_sz; /* sz of the FEC set payload, guaranteed <= store->fec_data_max */ ulong data_gaddr; /* wksp gaddr of this element's data buffer */ diff --git a/src/disco/topo/fd_topo.h b/src/disco/topo/fd_topo.h index b12598f9c9d..7bf72cfc06e 100644 --- a/src/disco/topo/fd_topo.h +++ b/src/disco/topo/fd_topo.h @@ -221,6 +221,9 @@ struct fd_topo_tile { ushort shred_version; int allow_private_address; + + fd_ip4_port_t gossip_addr; + fd_ip4_port_t src_addr; } gossvf; struct { diff --git a/src/disco/verify/Local.mk b/src/disco/verify/Local.mk index 522b9eaa640..5ae7051e705 100644 --- a/src/disco/verify/Local.mk +++ b/src/disco/verify/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_verify_tile,fd_disco) $(call make-unit-test,test_verify,test_verify,fd_ballet fd_tango fd_util) $(call make-unit-test,test_verify_tile,test_verify_tile,fd_disco fd_ballet fd_tango fd_util) $(call run-unit-test,test_verify) $(call run-unit-test,test_verify_tile) endif -endif diff --git a/src/disco/verify/verify_synth_load.c b/src/disco/verify/verify_synth_load.c deleted file mode 100644 index 9a8135dcf94..00000000000 --- a/src/disco/verify/verify_synth_load.c +++ /dev/null @@ -1,449 +0,0 @@ -#include - -int -fd_app_verify_task( int argc, - char ** argv ) { - (void)argc; - fd_log_thread_set( argv[0] ); - char const * verify_name = argv[0]; - FD_LOG_INFO(( "verify.%s init", verify_name )); - - /* Parse "command line" arguments */ - - char const * pod_gaddr = argv[1]; - - /* Load up the configuration for this app instance */ - - FD_LOG_INFO(( "using configuration in pod %s at path %s", pod_gaddr, cfg_path )); - uchar const * pod = fd_wksp_pod_attach( pod_gaddr ); - uchar const * cfg_pod = fd_pod_query_subpod( pod, cfg_path ); - if( FD_UNLIKELY( !cfg_pod ) ) FD_LOG_ERR(( "path not found" )); - - uchar const * verify_pods = fd_pod_query_subpod( cfg_pod, "verify" ); - if( FD_UNLIKELY( !verify_pods ) ) FD_LOG_ERR(( "%s.verify path not found", cfg_path )); - - uchar const * verify_pod = fd_pod_query_subpod( verify_pods, verify_name ); - if( FD_UNLIKELY( !verify_pod ) ) FD_LOG_ERR(( "%s.verify.%s path not found", cfg_path, verify_name )); - - /* Join the IPC objects needed this tile instance */ - - FD_LOG_INFO(( "joining %s.verify.%s.cnc", cfg_path, verify_name )); - fd_cnc_t * cnc = fd_cnc_join( fd_wksp_pod_map( verify_pod, "cnc" ) ); - if( FD_UNLIKELY( !cnc ) ) FD_LOG_ERR(( "fd_cnc_join failed" )); - if( FD_UNLIKELY( fd_cnc_signal_query( cnc )!=FD_CNC_SIGNAL_BOOT ) ) FD_LOG_ERR(( "cnc not in boot state" )); - ulong * cnc_diag = (ulong *)fd_cnc_app_laddr( cnc ); - if( FD_UNLIKELY( !cnc_diag ) ) FD_LOG_ERR(( "fd_cnc_app_laddr failed" )); - int in_backp = 1; - - FD_COMPILER_MFENCE(); - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_IN_BACKP ] ) = 1UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_BACKP_CNT ] ) = 0UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_CNT ] ) = 0UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_SZ ] ) = 0UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_CNT ] ) = 0UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_SZ ] ) = 0UL; - FD_COMPILER_MFENCE(); - - FD_LOG_INFO(( "joining %s.verify.%s.mcache", cfg_path, verify_name )); - fd_frag_meta_t * mcache = fd_mcache_join( fd_wksp_pod_map( verify_pod, "mcache" ) ); - if( FD_UNLIKELY( !mcache ) ) FD_LOG_ERR(( "fd_mcache_join failed" )); - ulong depth = fd_mcache_depth( mcache ); - ulong * sync = fd_mcache_seq_laddr( mcache ); - ulong seq = fd_mcache_seq_query( sync ); - - FD_LOG_INFO(( "joining %s.verify.%s.dcache", cfg_path, verify_name )); - uchar * dcache = fd_dcache_join( fd_wksp_pod_map( verify_pod, "dcache" ) ); - if( FD_UNLIKELY( !dcache ) ) FD_LOG_ERR(( "fd_dcache_join failed" )); - fd_wksp_t * wksp = fd_wksp_containing( dcache ); /* chunks are referenced relative to the containing workspace */ - if( FD_UNLIKELY( !wksp ) ) FD_LOG_ERR(( "fd_wksp_containing failed" )); - ulong chunk0 = fd_dcache_compact_chunk0( wksp, dcache ); - ulong wmark = fd_dcache_compact_wmark ( wksp, dcache, 1542UL ); /* FIXME: MTU? SAFETY CHECK THE FOOTPRINT? */ - ulong chunk = chunk0; - - FD_LOG_INFO(( "joining %s.verify.%s.fseq", cfg_path, verify_name )); - ulong * fseq = fd_fseq_join( fd_wksp_pod_map( verify_pod, "fseq" ) ); - if( FD_UNLIKELY( !fseq ) ) FD_LOG_ERR(( "fd_fseq_join failed" )); - ulong * fseq_diag = (ulong *)fd_fseq_app_laddr( fseq ); - if( FD_UNLIKELY( !fseq_diag ) ) FD_LOG_ERR(( "fd_fseq_app_laddr failed" )); - FD_VOLATILE( fseq_diag[ FD_FSEQ_DIAG_SLOW_CNT ] ) = 0UL; /* Managed by the fctl */ - - /* Setup local objects used by this tile */ - - FD_LOG_INFO(( "configuring flow control" )); - ulong cr_max = fd_pod_query_ulong( verify_pod, "cr_max", 0UL ); - ulong cr_resume = fd_pod_query_ulong( verify_pod, "cr_resume", 0UL ); - ulong cr_refill = fd_pod_query_ulong( verify_pod, "cr_refill", 0UL ); - long lazy = fd_pod_query_long ( verify_pod, "lazy", 0L ); - FD_LOG_INFO(( "%s.verify.%s.cr_max %lu", cfg_path, verify_name, cr_max )); - FD_LOG_INFO(( "%s.verify.%s.cr_resume %lu", cfg_path, verify_name, cr_resume )); - FD_LOG_INFO(( "%s.verify.%s.cr_refill %lu", cfg_path, verify_name, cr_refill )); - FD_LOG_INFO(( "%s.verify.%s.lazy %li", cfg_path, verify_name, lazy )); - - fd_fctl_t * fctl = fd_fctl_cfg_done( fd_fctl_cfg_rx_add( fd_fctl_join( fd_fctl_new( fd_alloca( FD_FCTL_ALIGN, - fd_fctl_footprint( 1UL ) ), - 1UL ) ), - depth, fseq, &fseq_diag[ FD_FSEQ_DIAG_SLOW_CNT ] ), - 1UL /*cr_burst*/, cr_max, cr_resume, cr_refill ); - if( FD_UNLIKELY( !fctl ) ) FD_LOG_ERR(( "Unable to create flow control" )); - FD_LOG_INFO(( "using cr_burst %lu, cr_max %lu, cr_resume %lu, cr_refill %lu", - fd_fctl_cr_burst( fctl ), fd_fctl_cr_max( fctl ), fd_fctl_cr_resume( fctl ), fd_fctl_cr_refill( fctl ) )); - - ulong cr_avail = 0UL; - - if( lazy<=0L ) lazy = fd_tempo_lazy_default( depth ); - FD_LOG_INFO(( "using lazy %li ns", lazy )); - ulong async_min = fd_tempo_async_min( lazy, 1UL /*event_cnt*/, (float)fd_tempo_tick_per_ns( NULL ) ); - if( FD_UNLIKELY( !async_min ) ) FD_LOG_ERR(( "bad lazy" )); - - uint seed = fd_pod_query_uint( verify_pod, "seed", (uint)fd_tile_id() ); /* use app tile_id as default */ - FD_LOG_INFO(( "creating rng (%s.verify.%s.seed %u)", cfg_path, verify_name, seed )); - fd_rng_t _rng[ 1 ]; - fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, seed, 0UL ) ); - if( FD_UNLIKELY( !rng ) ) FD_LOG_ERR(( "fd_rng_join failed" )); - - /* FIXME: PROBABLY SHOULD PUT THIS IN WORKSPACE */ -# define TCACHE_DEPTH (16UL) /* Should be ~1/2-1/4 MAP_CNT */ -# define TCACHE_MAP_CNT (64UL) /* Power of two */ - uchar tcache_mem[ FD_TCACHE_FOOTPRINT( TCACHE_DEPTH, TCACHE_MAP_CNT ) ] __attribute__((aligned(FD_TCACHE_ALIGN))); - fd_tcache_t * tcache = fd_tcache_join( fd_tcache_new( tcache_mem, TCACHE_DEPTH, TCACHE_MAP_CNT ) ); - ulong tcache_depth = fd_tcache_depth ( tcache ); - ulong tcache_map_cnt = fd_tcache_map_cnt ( tcache ); - ulong * _tcache_sync = fd_tcache_oldest_laddr( tcache ); - ulong * _tcache_ring = fd_tcache_ring_laddr ( tcache ); - ulong * _tcache_map = fd_tcache_map_laddr ( tcache ); - ulong tcache_oldest = FD_VOLATILE_CONST( *_tcache_sync ); - - ulong accum_ha_filt_cnt = 0UL; ulong accum_ha_filt_sz = 0UL; - - fd_sha512_t _sha[1]; - fd_sha512_t * sha = fd_sha512_join( fd_sha512_new( _sha ) ); - if( FD_UNLIKELY( !sha ) ) FD_LOG_ERR(( "fd_sha512 join failed" )); - - ulong accum_sv_filt_cnt = 0UL; ulong accum_sv_filt_sz = 0UL; - - /* Start verifying */ - - FD_LOG_INFO(( "verify.%s run", verify_name )); - -# define SYNTH_LOAD 1 -# if SYNTH_LOAD - - /* We assume that the distribution layer has parsed the incoming - packets and stripped them down to a 32 byte public key, 64 byte - signature (just 1 signature, which is typical though there are - bursts where averages up to ~1.4 signatures are seen). (FIXME: - PROBABLY SHOULD DEDUCT SOME EXTRA BYTES FOR THE QUIC HEADER - OVERHEAD AND SIGNATURE CNT FROM THE WORST CASE HERE.) For every - possible size then, we precomp a packet for each size with a valid - signature to serve as our reference traffic. */ - -# define MSG_SZ_MIN (0UL) -# define MSG_SZ_MAX (1232UL-64UL-32UL) - ulong ref_msg_mem_footprint = 0UL; - for( ulong msg_sz=MSG_SZ_MIN; msg_sz<=MSG_SZ_MAX; msg_sz++ ) ref_msg_mem_footprint += fd_ulong_align_up( msg_sz + 96UL, 128UL ); - uchar * ref_msg_mem = fd_alloca( 128UL, ref_msg_mem_footprint ); - if( FD_UNLIKELY( !ref_msg_mem ) ) FD_LOG_ERR(( "fd_alloc failed" )); - - uchar * ref_msg[ MSG_SZ_MAX - MSG_SZ_MIN + 1UL ]; - for( ulong msg_sz=MSG_SZ_MIN; msg_sz<=MSG_SZ_MAX; msg_sz++ ) { - ref_msg[ msg_sz - MSG_SZ_MIN ] = ref_msg_mem; - uchar * public_key = ref_msg_mem; - uchar * sig = public_key + 32UL; - uchar * msg = sig + 64UL; - ref_msg_mem += fd_ulong_align_up( msg_sz + 96UL, 128UL ); - - /* Generate a public_key / private_key pair for this message */ - - ulong private_key[4]; for( ulong i=0UL; i<4UL; i++ ) private_key[i] = fd_rng_ulong( rng ); - fd_ed25519_public_from_private( public_key, private_key, sha ); - - /* Make a random message */ - for( ulong b=0UL; b=0L ) ) { - - /* Send synchronization info */ - fd_mcache_seq_update( sync, seq ); - FD_COMPILER_MFENCE(); - FD_VOLATILE( *_tcache_sync ) = tcache_oldest; - FD_COMPILER_MFENCE(); - - /* Send diagnostic info */ - fd_cnc_heartbeat( cnc, now ); - FD_COMPILER_MFENCE(); - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_CNT ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_CNT ] ) + accum_ha_filt_cnt; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_SZ ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_SZ ] ) + accum_ha_filt_sz; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_CNT ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_CNT ] ) + accum_sv_filt_cnt; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_SZ ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_SZ ] ) + accum_sv_filt_sz; - FD_COMPILER_MFENCE(); - accum_ha_filt_cnt = 0UL; - accum_ha_filt_sz = 0UL; - accum_sv_filt_cnt = 0UL; - accum_sv_filt_sz = 0UL; - - /* Receive command-and-control signals */ - ulong s = fd_cnc_signal_query( cnc ); - if( FD_UNLIKELY( s!=FD_CNC_SIGNAL_RUN ) ) { - if( FD_UNLIKELY( s!=FD_CNC_SIGNAL_HALT ) ) FD_LOG_ERR(( "Unexpected signal" )); - break; - } - - /* Receive flow control credits */ - cr_avail = fd_fctl_tx_cr_update( fctl, cr_avail, seq ); - if( FD_UNLIKELY( in_backp ) ) { - if( FD_LIKELY( cr_avail ) ) { - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_IN_BACKP ] ) = 0UL; - in_backp = 0; - } - } - - /* Reload housekeeping timer */ - then = now + (long)fd_tempo_async_reload( rng, async_min ); - } - - /* Check if we are backpressured */ - if( FD_UNLIKELY( !cr_avail ) ) { - if( FD_UNLIKELY( !in_backp ) ) { - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_IN_BACKP ] ) = 1UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_BACKP_CNT ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_BACKP_CNT ] )+1UL; - in_backp = 1; - } - FD_SPIN_PAUSE(); - now = fd_tickcount(); - continue; - } - -# if SYNTH_LOAD - /* Check if we are waiting for the next burst to start */ - - if( FD_LIKELY( ctl_som ) ) { - if( FD_UNLIKELY( nowreading_slot = manifest->slot; ctx->start_slot = manifest->slot; FD_MGAUGE_SET( BACKT, START_SLOT, ctx->start_slot ); - FD_LOG_NOTICE(( "Replaying from slot %lu to %lu", ctx->start_slot, ctx->end_slot )); + FD_LOG_NOTICE(( "replaying from slot %lu to %lu", ctx->start_slot, ctx->end_slot )); break; } case IN_KIND_GENESI: { @@ -308,7 +308,7 @@ returnable_frag( fd_backt_tile_t * ctx, FD_MGAUGE_SET( BACKT, START_SLOT, ctx->start_slot ); ctx->replay_time = -fd_log_wallclock(); ctx->publish_time = -fd_log_wallclock(); - FD_LOG_NOTICE(( "Replaying from slot %lu to %lu", ctx->start_slot, ctx->end_slot )); + FD_LOG_NOTICE(( "replaying from slot %lu to %lu", ctx->start_slot, ctx->end_slot )); } break; } diff --git a/src/discof/backtest/fd_libc_zstd.c b/src/discof/backtest/fd_libc_zstd.c index c32b82b1472..e6c67698525 100644 --- a/src/discof/backtest/fd_libc_zstd.c +++ b/src/discof/backtest/fd_libc_zstd.c @@ -53,9 +53,9 @@ rstream_read( void * cookie, } static int -rstream_seek( void * cookie, - off64_t * pos, - int w ) { +rstream_seek( void * cookie, + long * pos, + int w ) { fd_zstd_rstream_t * zs = cookie; if( FD_UNLIKELY( *pos ) ) { FD_LOG_WARNING(( "Invalid seek(%ld,%i) on fd_libc_zstd_rstream handle", *pos, w )); @@ -203,9 +203,9 @@ wstream_close( void * cookie ) { } static int -wstream_seek( void * cookie, - off64_t * pos, - int w ) { +wstream_seek( void * cookie, + long * pos, + int w ) { fd_zstd_wstream_t * zs = cookie; if( FD_UNLIKELY( !( w==SEEK_CUR && *pos==0 ) ) ) { FD_LOG_WARNING(( "Attempted to seek in fd_libc_zstd_wstream handle" )); diff --git a/src/discof/capture/Local.mk b/src/discof/capture/Local.mk index cb971c3ff15..21bcebe385c 100644 --- a/src/discof/capture/Local.mk +++ b/src/discof/capture/Local.mk @@ -1,7 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 -ifdef FD_HAS_ALLOCA $(call add-objs,fd_solcap_tile,fd_discof) endif -endif -endif diff --git a/src/discof/execle/Local.mk b/src/discof/execle/Local.mk index c414672a5e1..a2e615d82f4 100644 --- a/src/discof/execle/Local.mk +++ b/src/discof/execle/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_ATOMIC $(call add-objs,fd_execle_tile,fd_discof) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_execle_tile,test_execle_tile,fd_discof fd_disco fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util) $(call run-unit-test,test_execle_tile) endif endif -endif diff --git a/src/discof/execle/test_execle_tile.c b/src/discof/execle/test_execle_tile.c index b77470a0cf3..a43919c1f78 100644 --- a/src/discof/execle/test_execle_tile.c +++ b/src/discof/execle/test_execle_tile.c @@ -8,28 +8,34 @@ #include "../../ballet/txn/fd_txn_build.h" #include "../../disco/topo/fd_topob.h" #include "../../flamenco/accdb/fd_accdb_impl_v1.h" +#include "../../flamenco/accdb/fd_accdb_sync.h" #include "../../flamenco/runtime/tests/fd_svm_mini.h" #include "../../flamenco/runtime/fd_system_ids_pp.h" +#include "../../flamenco/runtime/program/fd_system_program.h" +#include "../../flamenco/runtime/program/fd_bpf_loader_program.h" +#include "../../flamenco/runtime/program/vote/fd_vote_codec.h" +#include "../../ballet/txn/fd_compact_u16.h" #include "../../util/tmpl/fd_unit_test.c" -#include +#include #define MAX_LIVE_SLOTS 32 #define MAX_TXN_PER_SLOT 32 +#define TOPO_TAG 2UL + int volatile const fd_startup_skip_checks = 1; /* fd_startup.c */ static fd_svm_mini_t * mini; static fd_topo_t topo[1]; static uchar metrics_scratch[ FD_METRICS_FOOTPRINT( 0UL ) ] __attribute__((aligned(FD_METRICS_ALIGN))); +FD_IMPORT_BINARY( test_bpf_program, "src/ballet/sbpf/fixtures/hello_solana_program.so" ); + struct test_env { void * tile_mem; fd_svm_mini_t * mini; fd_execle_tile_t * execle; ulong bank_idx; - - void * allocs[ 16 ]; - ulong alloc_cnt; }; typedef struct test_env test_env_t; @@ -47,52 +53,35 @@ test_mock_validator_keys( fd_pubkey_t * identity_key, fd_rng_delete( fd_rng_leave( rng ) ); } -static void * -test_env_alloc( test_env_t * env, - ulong align, - ulong footprint ) { - FD_TEST( env->alloc_cntallocs)/sizeof(env->allocs[0]) ); - void * mem = aligned_alloc( align, footprint ); - FD_TEST( mem ); - env->allocs[ env->alloc_cnt++ ] = mem; - return mem; -} - -static void -test_topo_obj_set_laddr( fd_topo_obj_t * obj, - void * laddr ) { - obj->offset = (ulong)laddr; -} - static fd_topo_obj_t * test_topo_obj_laddr( fd_topo_t * topo, char const * obj_type, char const * wksp_name, void * laddr ) { fd_topo_obj_t * obj = fd_topob_obj( topo, obj_type, wksp_name ); - test_topo_obj_set_laddr( obj, laddr ); + obj->offset = (ulong)fd_wksp_gaddr_fast( topo->workspaces[ obj->wksp_id ].wksp, laddr ); return obj; } static void -test_topo_link_init( test_env_t * env, - fd_topo_t * topo, +test_topo_link_init( test_env_t * env, + fd_topo_t * topo, fd_topo_link_t * link ) { ulong mcache_footprint = fd_mcache_footprint( link->depth, 0UL ); - void * mcache_mem = test_env_alloc( env, fd_mcache_align(), mcache_footprint ); + void * mcache_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_mcache_align(), mcache_footprint, TOPO_TAG ); FD_TEST( fd_mcache_new( mcache_mem, link->depth, 0UL, 0UL ) ); link->mcache = fd_mcache_join( mcache_mem ); FD_TEST( link->mcache ); - test_topo_obj_set_laddr( &topo->objs[ link->mcache_obj_id ], mcache_mem ); + topo->objs[ link->mcache_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, mcache_mem ); if( link->mtu ) { ulong data_sz = fd_dcache_req_data_sz( link->mtu, link->depth, link->burst, 1 ); ulong dcache_footprint = fd_dcache_footprint( data_sz, 0UL ); - void * dcache_mem = test_env_alloc( env, fd_dcache_align(), dcache_footprint ); + void * dcache_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_dcache_align(), dcache_footprint, TOPO_TAG ); FD_TEST( fd_dcache_new( dcache_mem, data_sz, 0UL ) ); link->dcache = fd_dcache_join( dcache_mem ); FD_TEST( link->dcache ); - test_topo_obj_set_laddr( &topo->objs[ link->dcache_obj_id ], dcache_mem ); + topo->objs[ link->dcache_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, dcache_mem ); } } @@ -106,7 +95,7 @@ test_topo_link( char const * name ) { static test_env_t * test_env_create( void ) { - test_env_t * env = aligned_alloc( alignof(test_env_t), sizeof(test_env_t) ); + test_env_t * env = fd_wksp_alloc_laddr( mini->wksp, alignof(test_env_t), sizeof(test_env_t), TOPO_TAG ); FD_TEST( env ); memset( env, 0, sizeof(test_env_t) ); @@ -118,14 +107,16 @@ test_env_create( void ) { env->bank_idx = fd_svm_mini_attach_child( env->mini, root_idx, 2UL ); fd_topob_new( topo, "execle" ); - fd_topob_wksp( topo, "execle" ); + fd_topo_wksp_t * topo_wksp = fd_topob_wksp( topo, "execle" ); + topo_wksp->wksp = env->mini->wksp; fd_topo_tile_t * topo_tile = fd_topob_tile( topo, "execle", "execle", "execle", 0UL, 0, 0, 0 ); topo_tile->execle.max_live_slots = MAX_LIVE_SLOTS; topo_tile->execle.accdb_max_depth = MAX_LIVE_SLOTS; - void * tile_mem = test_env_alloc( env, scratch_align(), scratch_footprint( topo_tile ) ); + void * tile_mem = fd_wksp_alloc_laddr( env->mini->wksp, scratch_align(), scratch_footprint( topo_tile ), TOPO_TAG ); + FD_TEST( tile_mem ); env->tile_mem = tile_mem; - test_topo_obj_set_laddr( &topo->objs[ topo_tile->tile_obj_id ], tile_mem ); + topo->objs[ topo_tile->tile_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, tile_mem ); fd_topo_link_t * pack_execle = fd_topob_link( topo, "pack_execle", "execle", 4UL, MAX_MICROBLOCK_SZ, 1UL ); fd_topo_link_t * execle_poh = fd_topob_link( topo, "execle_poh", "execle", 4UL, MAX_MICROBLOCK_SZ, 1UL ); @@ -149,7 +140,7 @@ test_env_create( void ) { FD_TEST( fd_pod_insertf_ulong( topo->props, progcache_obj->id, "progcache" ) ); FD_TEST( fd_pod_insertf_ulong( topo->props, banks_obj->id, "banks" ) ); - void * busy_fseq_mem = test_env_alloc( env, fd_fseq_align(), fd_fseq_footprint() ); + void * busy_fseq_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_fseq_align(), fd_fseq_footprint(), TOPO_TAG ); FD_TEST( fd_fseq_new( busy_fseq_mem, 0UL ) ); fd_topo_obj_t * busy_fseq_obj = test_topo_obj_laddr( topo, "fseq", "execle", busy_fseq_mem ); FD_TEST( fd_pod_insertf_ulong( topo->props, busy_fseq_obj->id, "execle_busy.%lu", topo_tile->kind_id ) ); @@ -178,8 +169,8 @@ test_env_create( void ) { static void test_env_destroy( test_env_t * env ) { - for( ulong i=env->alloc_cnt; i>0UL; i-- ) free( env->allocs[ i-1UL ] ); - free( env ); + ulong tag = TOPO_TAG; + fd_wksp_tag_free( env->mini->wksp, &tag, 1UL ); } static void @@ -215,6 +206,333 @@ test_build_vote_txn( fd_txn_p_t * out, fd_txn_builder_delete( builder ); } +static void +test_build_vote_authorize_txn( fd_txn_p_t * out, + fd_bank_t * bank ) { + fd_pubkey_t identity_key; + fd_pubkey_t vote_key; + test_mock_validator_keys( &identity_key, &vote_key ); + + fd_pubkey_t new_authority = { .ul = { 0xa17a0UL } }; + fd_acct_addr_t const vote_prog_id = { .b = { VOTE_PROG_ID } }; + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + uchar instr_data[ 40UL ]; + uint discriminant = fd_vote_instruction_enum_authorize; + uint authorization_type = fd_vote_authorize_enum_voter; + fd_memcpy( instr_data, &discriminant, sizeof(uint) ); + fd_memcpy( instr_data+4UL, &new_authority, sizeof(fd_pubkey_t) ); + fd_memcpy( instr_data+36UL, &authorization_type, sizeof(uint) ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 2UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &identity_key ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &vote_prog_id, instr_data, sizeof(instr_data) ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &vote_key, FD_TXN_ACCT_CAT_WRITABLE ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &fd_sysvar_clock_id, 0U ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &identity_key, FD_TXN_ACCT_CAT_SIGNER ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + FD_TEST( fd_txn_is_simple_vote_transaction( TXN(out), out->payload ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + out->flags = FD_TXN_P_FLAGS_IS_SIMPLE_VOTE; + fd_txn_builder_delete( builder ); +} + +#define TEST_CHECKED_ADD_TO_TXN_DATA( _begin, _cur_data, _to_add, _sz ) __extension__({ \ + if( FD_UNLIKELY( (*_cur_data)+(_sz)>(_begin)+FD_TXN_MTU ) ) return ULONG_MAX; \ + fd_memcpy( *_cur_data, _to_add, (_sz) ); \ + *_cur_data += (_sz); \ +}) + +#define TEST_CHECKED_ADD_CU16_TO_TXN_DATA( _begin, _cur_data, _to_add ) __extension__({ \ + do { \ + uchar _buf[3]; \ + ulong _sz = (ulong)fd_cu16_enc( (ushort)(_to_add), _buf ); \ + TEST_CHECKED_ADD_TO_TXN_DATA( _begin, _cur_data, _buf, _sz ); \ + } while(0); \ +}) + +static ulong +test_txn_serialize_empty( uchar * txn_raw_begin, + fd_signature_t * signature, + ulong readonly_signed_cnt, + ulong readonly_unsigned_cnt, + fd_pubkey_t * account_keys, + ulong account_key_cnt, + fd_hash_t const * recent_blockhash ) { + uchar * txn_raw_cur = txn_raw_begin; + + uchar signature_cnt = 1U; + FD_TEST( readonly_signed_cnt <=(ulong)UCHAR_MAX ); + FD_TEST( readonly_unsigned_cnt<=(ulong)UCHAR_MAX ); + uchar header_readonly_signed_cnt = (uchar)readonly_signed_cnt; + uchar header_readonly_unsigned_cnt = (uchar)readonly_unsigned_cnt; + + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &signature_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, signature, FD_TXN_SIGNATURE_SZ ); + + uchar header_b0 = (uchar)0x80UL; + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &header_b0, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &signature_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &header_readonly_signed_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &header_readonly_unsigned_cnt, sizeof(uchar) ); + + TEST_CHECKED_ADD_CU16_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, account_key_cnt ); + for( ulong i=0UL; if.block_hash_queue ); + FD_TEST( recent_blockhash ); + ulong sz = test_txn_serialize_empty( out->payload, &signature, 0UL, (ulong)!!extra_readonly, + account_keys, 2UL, recent_blockhash ); + FD_TEST( sz!=ULONG_MAX ); + FD_TEST( fd_txn_parse( out->payload, sz, TXN( out ), NULL ) ); + out->payload_sz = (ushort)sz; + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; +} + +static void +test_build_system_transfer_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t from, + fd_pubkey_t to, + ulong lamports ) { + fd_system_program_instruction_t instr = { + .discriminant = FD_SYSTEM_PROGRAM_INSTR_TRANSFER, + .inner.transfer = lamports + }; + uchar instr_data[ 16 ]; + ulong instr_data_sz = 0UL; + FD_TEST( !fd_system_program_instruction_encode( &instr, instr_data, sizeof(instr_data), &instr_data_sz ) ); + + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 2UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &from ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &fd_solana_system_program_id, instr_data, instr_data_sz ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &from, FD_TXN_ACCT_CAT_WRITABLE | FD_TXN_ACCT_CAT_SIGNER ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &to, FD_TXN_ACCT_CAT_WRITABLE ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_build_missing_program_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t fee_payer, + fd_pubkey_t missing_program ) { + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 5UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &fee_payer ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &missing_program, NULL, 0UL ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_durable_nonce_from_blockhash( fd_hash_t * out, + fd_hash_t const * blockhash ) { + uchar buf[ 13UL + sizeof(fd_hash_t) ]; + fd_memcpy( buf, "DURABLE_NONCE", 13UL ); + fd_memcpy( buf+13UL, blockhash, sizeof(fd_hash_t) ); + fd_sha256_hash( buf, sizeof(buf), out ); +} + +static void +test_build_durable_nonce_transfer_txn( fd_txn_p_t * out, + fd_pubkey_t fee_payer, + fd_pubkey_t nonce_key, + fd_pubkey_t recipient, + fd_hash_t const * durable_nonce, + ulong lamports, + ulong seed ) { + fd_system_program_instruction_t instr = { + .discriminant = FD_SYSTEM_PROGRAM_INSTR_TRANSFER, + .inner.transfer = lamports + }; + uchar instr_data[ 16 ]; + ulong instr_data_sz = 0UL; + FD_TEST( !fd_system_program_instruction_encode( &instr, instr_data, sizeof(instr_data), &instr_data_sz ) ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, seed ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &fee_payer ) ); + fd_txn_builder_blockhash_set( builder, durable_nonce ); + FD_TEST( fd_txn_builder_nonce_set( builder, &nonce_key, &fee_payer ) ); + FD_TEST( fd_txn_builder_instr_open( builder, &fd_solana_system_program_id, instr_data, instr_data_sz ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &fee_payer, FD_TXN_ACCT_CAT_WRITABLE | FD_TXN_ACCT_CAT_SIGNER ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &recipient, FD_TXN_ACCT_CAT_WRITABLE ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + out->flags = FD_TXN_P_FLAGS_DURABLE_NONCE; + fd_txn_builder_delete( builder ); +} + +static void +test_build_bpf_close_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t authority, + fd_pubkey_t recipient, + fd_pubkey_t program, + fd_pubkey_t programdata ) { + fd_bpf_instruction_t instr = { .discriminant = FD_BPF_INSTR_CLOSE }; + uchar instr_data[ 4 ]; + ulong instr_data_sz = 0UL; + FD_TEST( !fd_bpf_instruction_encode( &instr, instr_data, sizeof(instr_data), &instr_data_sz ) ); + + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 3UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &authority ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &fd_solana_bpf_loader_upgradeable_program_id, instr_data, instr_data_sz ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &programdata, FD_TXN_ACCT_CAT_WRITABLE ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &recipient, FD_TXN_ACCT_CAT_WRITABLE ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &authority, FD_TXN_ACCT_CAT_SIGNER ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &program, FD_TXN_ACCT_CAT_WRITABLE ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_build_program_invoke_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t fee_payer, + fd_pubkey_t program ) { + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 4UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &fee_payer ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &program, NULL, 0UL ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_fund_account( test_env_t * env, + fd_pubkey_t const * pubkey, + ulong lamports ) { + fd_xid_t xid = fd_svm_mini_xid( env->mini, env->bank_idx ); + fd_svm_mini_add_lamports( env->mini, &xid, pubkey, lamports ); +} + +static void +test_put_account_rooted( test_env_t * env, + fd_pubkey_t const * pubkey, + fd_pubkey_t const * owner, + ulong lamports, + ulong slot, + int executable, + uchar const * data, + ulong data_sz ) { + fd_account_meta_t meta = {0}; + meta.lamports = lamports; + meta.slot = slot; + meta.dlen = (uint)data_sz; + meta.executable = !!executable; + fd_memcpy( meta.owner, owner, sizeof(fd_pubkey_t) ); + + fd_accdb_ro_t ro[1]; + fd_accdb_ro_init_nodb_oob( ro, pubkey, &meta, data ); + fd_svm_mini_put_account_rooted( env->mini, ro ); +} + +static void +test_put_nonce_account_rooted( test_env_t * env, + fd_pubkey_t const * nonce_key, + fd_pubkey_t const * authority, + fd_hash_t const * durable_nonce, + ulong lamports ) { + fd_nonce_state_versions_t state = { + .version = FD_NONCE_VERSION_CURRENT, + .kind = FD_NONCE_STATE_INITIALIZED, + .authority = *authority, + .durable_nonce = *durable_nonce, + }; + uchar data[ FD_SYSTEM_PROGRAM_NONCE_DLEN ] = {0}; + ulong written = 0UL; + FD_TEST( !fd_nonce_state_versions_encode( &state, data, FD_SYSTEM_PROGRAM_NONCE_DLEN, &written ) ); + test_put_account_rooted( env, nonce_key, &fd_solana_system_program_id, lamports, 0UL, 0, + data, FD_SYSTEM_PROGRAM_NONCE_DLEN ); +} + +static ulong +test_read_lamports( test_env_t * env, + fd_pubkey_t const * pubkey ) { + fd_xid_t xid = fd_svm_mini_xid( env->mini, env->bank_idx ); + fd_accdb_ro_t ro[1]; + FD_TEST( fd_accdb_open_ro( env->mini->accdb, ro, &xid, pubkey ) ); + ulong lamports = fd_accdb_ref_lamports( ro ); + fd_accdb_close_ro( env->mini->accdb, ro ); + return lamports; +} + static fd_stem_context_t * test_stem( fd_execle_tile_t * ctx, fd_stem_context_t * stem ) { @@ -250,7 +568,127 @@ test_stem( fd_execle_tile_t * ctx, return stem; } +static void +test_execle_run( test_env_t * env, + fd_txn_p_t * txns, + ulong txn_cnt, + uint pack_idx, + ulong pack_txn_idx, + int is_bundle ) { + FD_TEST( txn_cnt<=MAX_TXN_PER_SLOT ); + + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + FD_TEST( bank ); + + ulong in_chunk = env->execle->pack_in_chunk0; + fd_txn_e_t * in_txn = fd_chunk_to_laddr( env->execle->pack_in_mem, in_chunk ); + for( ulong i=0UL; iflags |= FD_TXN_P_FLAGS_BUNDLE; + } + + fd_microblock_execle_trailer_t * in_trailer = (fd_microblock_execle_trailer_t *)( in_txn+txn_cnt ); + *in_trailer = (fd_microblock_execle_trailer_t) { + .bank_idx = env->bank_idx, + .microblock_idx = 0UL, + .pack_idx = pack_idx, + .pack_txn_idx = pack_txn_idx, + .is_bundle = is_bundle, + }; + + ulong sig = fd_disco_poh_sig( bank->f.slot, POH_PKT_TYPE_MICROBLOCK, env->execle->kind_id ); + ulong sz = txn_cnt*sizeof(fd_txn_e_t) + sizeof(fd_microblock_execle_trailer_t); + FD_TEST( !before_frag( env->execle, 0UL, 0UL, sig ) ); + during_frag( env->execle, 0UL, 0UL, sig, in_chunk, sz, 0UL ); + + fd_stem_context_t stem[1]; + after_frag( env->execle, 0UL, 0UL, sig, sz, 0UL, fd_frag_meta_ts_comp( fd_tickcount() ), test_stem( env->execle, stem ) ); + FD_TEST( fd_fseq_query( env->execle->busy_fseq )==0UL ); +} + +static fd_frag_meta_t const * +test_out_poh_meta( ulong seq ) { + fd_topo_link_t const * execle_poh = test_topo_link( "execle_poh" ); + return execle_poh->mcache + fd_mcache_line_idx( seq, execle_poh->depth ); +} + +static fd_frag_meta_t const * +test_out_pack_meta( ulong seq ) { + fd_topo_link_t const * execle_pack = test_topo_link( "execle_pack" ); + return execle_pack->mcache + fd_mcache_line_idx( seq, execle_pack->depth ); +} + +static void +test_assert_nonbundle_out( test_env_t * env, + ulong txn_cnt, + uint pack_idx ) { + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + fd_frag_meta_t const * meta = test_out_poh_meta( 0UL ); + FD_TEST( fd_frag_meta_seq_query( meta )==0UL ); + FD_TEST( meta->sig==fd_disco_execle_sig( bank->f.slot, pack_idx ) ); + FD_TEST( meta->sz==txn_cnt*sizeof(fd_txn_p_t)+sizeof(fd_microblock_trailer_t) ); +} + +static void +test_assert_bundle_out( test_env_t * env, + ulong txn_cnt, + uint pack_idx ) { + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + for( ulong i=0UL; isig==fd_disco_execle_sig( bank->f.slot, pack_idx+(uint)i ) ); + FD_TEST( meta->sz==sizeof(fd_txn_p_t)+sizeof(fd_microblock_trailer_t) ); + } +} + +static fd_microblock_trailer_t const * +test_out_poh_trailer_nonbundle( test_env_t * env, + ulong txn_cnt ) { + fd_frag_meta_t const * meta = test_out_poh_meta( 0UL ); + fd_txn_p_t const * txns = fd_chunk_to_laddr( env->execle->out_poh->mem, meta->chunk ); + return (fd_microblock_trailer_t const *)( txns + txn_cnt ); +} + +static fd_microblock_trailer_t const * +test_out_poh_trailer_bundle( test_env_t * env, + ulong seq ) { + fd_frag_meta_t const * meta = test_out_poh_meta( seq ); + fd_txn_p_t const * txns = fd_chunk_to_laddr( env->execle->out_poh->mem, meta->chunk ); + return (fd_microblock_trailer_t const *)( txns + 1UL ); +} + +static void +test_compute_expected_hash( fd_txn_p_t * txns, + ulong txn_cnt, + uchar expected_hash[32] ) { + uchar bmtree_mem[ FD_BMTREE_COMMIT_FOOTPRINT(0) ] __attribute__((aligned(FD_BMTREE_COMMIT_ALIGN))); + hash_transactions( bmtree_mem, txns, txn_cnt, expected_hash ); +} + +static void +test_assert_txn_ns_dt_ordered( fd_txn_ns_dt_t const * dt ) { + FD_TEST( dt->load_start >= 0.f ); + FD_TEST( dt->check_start >= dt->load_start ); + FD_TEST( dt->exec_start >= dt->check_start ); + FD_TEST( dt->commit_start >= dt->exec_start ); + FD_TEST( dt->commit_end >= dt->commit_start ); +} + +FD_UNIT_TEST( execle_seccomp ) { + int out_fds[2]; + ulong nfds = populate_allowed_fds( NULL, NULL, 2UL, out_fds ); + FD_TEST( nfds>=1 && nfds<=2 ); + FD_TEST( out_fds[0]==STDERR_FILENO ); + if( nfds==2 ) FD_TEST( out_fds[1]==fd_log_private_logfile_fd() ); + + struct sock_filter filter[ 32 ]; + populate_allowed_seccomp( NULL, NULL, 32UL, filter ); +} + FD_UNIT_TEST( execle_vote ) { + /* Simple vote transaction */ test_env_t * env = test_env_create(); FD_TEST( env->execle->banks==env->mini->banks ); @@ -298,6 +736,802 @@ FD_UNIT_TEST( execle_vote ) { FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == in_txn->txnp->pack_cu.non_execution_cus + in_txn->txnp->pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==(uint)FD_PACK_FIXED_SIMPLE_VOTE_COST ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==0UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_FAILED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_vote_authorize ) { + /* Simple vote transaction in a bundle */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + FD_TEST( bank ); + + fd_txn_p_t txn[1]; + test_build_vote_authorize_txn( txn, bank ); + test_execle_run( env, txn, 1UL, 2U, 16UL, 1 ); + + test_assert_bundle_out( env, 1UL, 2U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( fd_txn_is_simple_vote_transaction( TXN(out_txn), out_txn->payload ) ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==(uint)FD_PACK_FIXED_SIMPLE_VOTE_COST ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus - (uint)FD_PACK_FIXED_SIMPLE_VOTE_COST ); + FD_TEST( !env->execle->txn_out[0].err.is_fees_only ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, 0UL ); + FD_TEST( trailer->pack_txn_idx==16UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_SUCCESS_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_SUCCESS_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_simple_ok ) { + /* Simple system program transfer */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x1111UL } }; + fd_pubkey_t recipient = { .ul = { 0x2222UL } }; + ulong const payer_start = 1000000000UL; + ulong const recipient_start = 1UL; + ulong const transfer = 1234567UL; + ulong const fee = 5000UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient, recipient_start ); + + fd_txn_p_t txn[1]; + test_build_system_transfer_txn( txn, bank, fee_payer, recipient, transfer ); + test_execle_run( env, txn, 1UL, 3U, 17UL, 0 ); + + test_assert_nonbundle_out( env, 1UL, 3U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==0U ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee-transfer ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start+transfer ); + FD_TEST( !env->execle->txn_out[0].err.is_fees_only ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus >= txn->pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==17UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_SUCCESS_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_SUCCESS_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_simple_fee_payer_fail ) { + /* Transaction failed */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t missing_fee_payer = { .ul = { 0x3333UL } }; + fd_pubkey_t data_acct = { .ul = { 0x4444UL } }; + ulong const data_acct_start = 777UL; + test_fund_account( env, &data_acct, data_acct_start ); + + fd_txn_p_t txn[1]; + test_build_empty_txn( txn, bank, missing_fee_payer, data_acct, 12UL, 0 ); + test_execle_run( env, txn, 1UL, 4U, 18UL, 0 ); + + test_assert_nonbundle_out( env, 1UL, 4U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( !env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_TXN_ERR_ACCOUNT_NOT_FOUND ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_ACCOUNT_NOT_FOUND)<<24) ); + FD_TEST( test_read_lamports( env, &data_acct )==data_acct_start ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==18UL ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + FD_TEST( trailer->txn_ns_dt.load_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.check_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.exec_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.commit_start==0.f ); + FD_TEST( trailer->txn_ns_dt.commit_end ==0.f ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_ACCOUNT_NOT_FOUND_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_simple_error ) { + /* System transfer fails during execution */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x5151UL } }; + fd_pubkey_t recipient = { .ul = { 0x6262UL } }; + ulong const payer_start = 1000000UL; + ulong const recipient_start = 1234UL; + ulong const fee = 5000UL; + ulong const transfer = payer_start; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient, recipient_start ); + + fd_txn_p_t txn[1]; + test_build_system_transfer_txn( txn, bank, fee_payer, recipient, transfer ); + test_execle_run( env, txn, 1UL, 5U, 19UL, 0 ); + + test_assert_nonbundle_out( env, 1UL, 5U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( !env->execle->txn_out[0].err.is_fees_only ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR)<<24) ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus >= txn->pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==19UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_FAILED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_simple_fees_only ) { + /* Account loading fails after fees are validated */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x7171UL } }; + fd_pubkey_t missing_program = { .ul = { 0x7272UL } }; + ulong const payer_start = 1000000UL; + ulong const fee = 5000UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + + fd_txn_p_t txn[1]; + test_build_missing_program_txn( txn, bank, fee_payer, missing_program ); + test_execle_run( env, txn, 1UL, 6U, 20UL, 0 ); + + test_assert_nonbundle_out( env, 1UL, 6U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.is_fees_only ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_TXN_ERR_PROGRAM_ACCOUNT_NOT_FOUND ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_PROGRAM_ACCOUNT_NOT_FOUND)<<24) ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_FEES_ONLY_IDX ]==1UL ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus >= txn->pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==20UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_PROGRAM_ACCOUNT_NOT_FOUND_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_ok ) { + /* Successful bundle */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x5555UL } }; + fd_pubkey_t recipient0 = { .ul = { 0x6666UL } }; + fd_pubkey_t recipient1 = { .ul = { 0x6667UL } }; + ulong const fee = 5000UL; + ulong const payer_start = 1000000000UL; + ulong const recipient0_start = 111UL; + ulong const recipient1_start = 222UL; + ulong const transfer0 = 1234567UL; + ulong const transfer1 = 7654321UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + + fd_txn_p_t txns[2]; + test_build_system_transfer_txn( &txns[0], bank, fee_payer, recipient0, transfer0 ); + test_build_system_transfer_txn( &txns[1], bank, fee_payer, recipient1, transfer1 ); + test_execle_run( env, txns, 2UL, 8U, 21UL, 1 ); + + test_assert_bundle_out( env, 2UL, 8U ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[1].err.is_committable ); + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==0U ); + FD_TEST( !env->execle->txn_out[i].err.is_fees_only ); + FD_TEST( env->execle->txn_out[i].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == + txns[i].pack_cu.non_execution_cus + txns[i].pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus >= txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==21UL+i ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start - 2UL*fee - transfer0 - transfer1 ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start + transfer0 ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start + transfer1 ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_SUCCESS_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_SUCCESS_IDX ]==2UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_fail ) { + /* Instruction in a bundle reverts the whole bundle */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x7777UL } }; + fd_pubkey_t recipient0 = { .ul = { 0x8888UL } }; + fd_pubkey_t recipient1 = { .ul = { 0x9999UL } }; + ulong const fee = 5000UL; + ulong const payer_start = 1000000000UL; + ulong const recipient0_start = 111UL; + ulong const recipient1_start = 222UL; + ulong const first_transfer = 100000000UL; + ulong const second_transfer = payer_start; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + + fd_txn_p_t txns[2]; + test_build_system_transfer_txn( &txns[0], bank, fee_payer, recipient0, first_transfer ); + test_build_system_transfer_txn( &txns[1], bank, fee_payer, recipient1, second_transfer ); + test_execle_run( env, txns, 2UL, 12U, 31UL, 1 ); + + test_assert_bundle_out( env, 2UL, 12U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( !env->execle->txn_out[i].err.is_committable ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==31UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + } + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR)<<24) ); + + fd_frag_meta_t const * rebate_meta = test_out_pack_meta( 0UL ); + FD_TEST( fd_frag_meta_seq_query( rebate_meta )==0UL ); + FD_TEST( rebate_meta->sig==bank->f.slot ); + FD_TEST( rebate_meta->sz>=FD_PACK_REBATE_MIN_SZ ); + fd_pack_rebate_t const * rebate = fd_chunk_to_laddr( env->execle->out_pack->mem, rebate_meta->chunk ); + ulong expected_rebated_cus = 0UL; + ulong expected_data_bytes = 2UL*48UL; + for( ulong i=0UL; i<2UL; i++ ) { + expected_rebated_cus += txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus; + expected_data_bytes += txns[i].payload_sz; + } + FD_TEST( rebate->total_cost_rebate ==expected_rebated_cus ); + FD_TEST( rebate->data_bytes_rebate ==expected_data_bytes ); + FD_TEST( rebate->microblock_cnt_rebate==2UL ); + FD_TEST( rebate->alloc_rebate ==0UL ); + FD_TEST( rebate->ib_result ==0 ); + + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_peer_fail ) { + /* A middle transaction failure skips the rest of the bundle. */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x7979UL } }; + fd_pubkey_t recipient0 = { .ul = { 0x8989UL } }; + fd_pubkey_t recipient1 = { .ul = { 0x9998UL } }; + fd_pubkey_t recipient2 = { .ul = { 0xa9a9UL } }; + ulong const fee = 5000UL; + ulong const payer_start = 1000000000UL; + ulong const recipient0_start = 111UL; + ulong const recipient1_start = 222UL; + ulong const recipient2_start = 333UL; + ulong const first_transfer = 100000000UL; + ulong const second_transfer = payer_start; + ulong const third_transfer = 1UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + test_fund_account( env, &recipient2, recipient2_start ); + + fd_txn_p_t txns[3]; + test_build_system_transfer_txn( &txns[0], bank, fee_payer, recipient0, first_transfer ); + test_build_system_transfer_txn( &txns[1], bank, fee_payer, recipient1, second_transfer ); + test_build_system_transfer_txn( &txns[2], bank, fee_payer, recipient2, third_transfer ); + test_execle_run( env, txns, 3UL, 14U, 35UL, 1 ); + + test_assert_bundle_out( env, 3UL, 14U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + FD_TEST( env->execle->txn_out[2].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[2].details.load_start_ticks ==LONG_MAX ); + FD_TEST( env->execle->txn_out[2].details.check_start_ticks ==LONG_MAX ); + FD_TEST( env->execle->txn_out[2].details.exec_start_ticks ==LONG_MAX ); + FD_TEST( env->execle->txn_out[2].details.commit_start_ticks==LONG_MAX ); + + for( ulong i=0UL; i<3UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( !env->execle->txn_out[i].err.is_committable ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==35UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + } + + /* Txns 0 and 1 were executed, ordering invariant holds */ + for( ulong i=0UL; i<2UL; i++ ) { + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + /* Txn 2 was never executed, all zeros */ + { + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, 2UL ); + FD_TEST( trailer->txn_ns_dt.load_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.check_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.exec_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.commit_start==0.f ); + FD_TEST( trailer->txn_ns_dt.commit_end ==0.f ); + } + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + fd_txn_p_t const * out_txn2 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 2UL )->chunk ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR)<<24) ); + FD_TEST( (out_txn2->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( out_txn0->flags & FD_TXN_P_FLAGS_BUNDLE ); + FD_TEST( out_txn1->flags & FD_TXN_P_FLAGS_BUNDLE ); + FD_TEST( out_txn2->flags & FD_TXN_P_FLAGS_BUNDLE ); + + fd_frag_meta_t const * rebate_meta = test_out_pack_meta( 0UL ); + FD_TEST( fd_frag_meta_seq_query( rebate_meta )==0UL ); + FD_TEST( rebate_meta->sig==bank->f.slot ); + FD_TEST( rebate_meta->sz>=FD_PACK_REBATE_MIN_SZ ); + fd_pack_rebate_t const * rebate = fd_chunk_to_laddr( env->execle->out_pack->mem, rebate_meta->chunk ); + ulong expected_rebated_cus = 0UL; + ulong expected_data_bytes = 3UL*48UL; + for( ulong i=0UL; i<3UL; i++ ) { + expected_rebated_cus += txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus; + expected_data_bytes += txns[i].payload_sz; + } + FD_TEST( rebate->total_cost_rebate ==expected_rebated_cus ); + FD_TEST( rebate->data_bytes_rebate ==expected_data_bytes ); + FD_TEST( rebate->microblock_cnt_rebate==3UL ); + FD_TEST( rebate->alloc_rebate ==0UL ); + FD_TEST( rebate->ib_result ==0 ); + + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start ); + FD_TEST( test_read_lamports( env, &recipient2 )==recipient2_start ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==3UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==2UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_progcache ) { + /* Close a deployed/rooted program in the first transaction, + then try to invoke it in the second transaction (should fail). */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t authority = { .ul = { 0xaaa0UL } }; + fd_pubkey_t recipient = { .ul = { 0xaaa1UL } }; + fd_pubkey_t program = { .ul = { 0xaaa3UL } }; + fd_pubkey_t programdata = { .ul = { 0xaaa4UL } }; + + ulong const authority_start = 1000000000UL; + ulong const recipient_start = 123UL; + ulong const program_lamports = 1000000UL; + ulong const programdata_lamports = 2000000UL; + + test_fund_account( env, &authority, authority_start ); + test_fund_account( env, &recipient, recipient_start ); + + uchar program_state_data[ SIZE_OF_PROGRAM ]; + fd_bpf_state_t program_state = { + .discriminant = FD_BPF_STATE_PROGRAM, + .inner.program.programdata_address = programdata + }; + ulong out_sz = 0UL; + FD_TEST( !fd_bpf_state_encode( &program_state, program_state_data, sizeof(program_state_data), &out_sz ) ); + + uchar programdata_state_data[ PROGRAMDATA_METADATA_SIZE + test_bpf_program_sz ]; + fd_bpf_state_t programdata_state = { + .discriminant = FD_BPF_STATE_PROGRAM_DATA, + .inner.program_data = { + .slot = bank->f.slot - 1UL, + .upgrade_authority_address = authority, + .has_upgrade_authority_address = 1 + } + }; + out_sz = 0UL; + FD_TEST( !fd_bpf_state_encode( &programdata_state, programdata_state_data, PROGRAMDATA_METADATA_SIZE, &out_sz ) ); + fd_memcpy( programdata_state_data + PROGRAMDATA_METADATA_SIZE, test_bpf_program, test_bpf_program_sz ); + + test_put_account_rooted( env, &program, &fd_solana_bpf_loader_upgradeable_program_id, + program_lamports, bank->f.slot-1UL, 1, program_state_data, sizeof(program_state_data) ); + test_put_account_rooted( env, &programdata, &fd_solana_bpf_loader_upgradeable_program_id, + programdata_lamports, bank->f.slot-1UL, 0, + programdata_state_data, sizeof(programdata_state_data) ); + + fd_txn_p_t txns[2]; + test_build_bpf_close_txn( &txns[0], bank, authority, recipient, program, programdata ); + test_build_program_invoke_txn( &txns[1], bank, authority, program ); + test_execle_run( env, txns, 2UL, 16U, 41UL, 1 ); + + test_assert_bundle_out( env, 2UL, 16U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( !env->execle->txn_out[i].err.is_committable ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==41UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + FD_TEST( test_read_lamports( env, &authority )==authority_start ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start ); + FD_TEST( test_read_lamports( env, &program )==program_lamports ); + FD_TEST( test_read_lamports( env, &programdata )==programdata_lamports ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_nonce_dup ) { + /* Advance the same durable nonce twice */ + test_env_t * env = test_env_create(); + + fd_pubkey_t fee_payer = { .ul = { 0xccc0UL } }; + fd_pubkey_t nonce_key = { .ul = { 0xccc1UL } }; + fd_pubkey_t recipient0 = { .ul = { 0xccc2UL } }; + fd_pubkey_t recipient1 = { .ul = { 0xccc3UL } }; + + ulong const fee_payer_start = 10000000000UL; + ulong const nonce_start = 10000000000UL; + ulong const recipient0_start = 1000000000UL; + ulong const recipient1_start = 1000000000UL; + ulong const transfer0 = 12345UL; + ulong const transfer1 = 67890UL; + ulong const fee = 5000UL; + + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + fd_hash_t stale_blockhash = {0}; + fd_memset( stale_blockhash.uc, 0x42, sizeof(fd_hash_t) ); + fd_hash_t durable_nonce; + test_durable_nonce_from_blockhash( &durable_nonce, &stale_blockhash ); + + test_fund_account( env, &fee_payer, fee_payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + test_put_nonce_account_rooted( env, &nonce_key, &fee_payer, &durable_nonce, nonce_start ); + + fd_txn_p_t txns[2]; + test_build_durable_nonce_transfer_txn( &txns[0], fee_payer, nonce_key, recipient0, &durable_nonce, transfer0, 51UL ); + test_build_durable_nonce_transfer_txn( &txns[1], fee_payer, nonce_key, recipient1, &durable_nonce, transfer1, 52UL ); + test_execle_run( env, txns, 2UL, 20U, 51UL, 1 ); + + test_assert_bundle_out( env, 2UL, 20U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_BLOCKHASH_FAIL_WRONG_NONCE ); + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + FD_TEST( !env->execle->txn_out[0].err.is_committable ); + FD_TEST( !env->execle->txn_out[1].err.is_committable ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( out_txn0->flags & FD_TXN_P_FLAGS_DURABLE_NONCE ); + FD_TEST( out_txn1->flags & FD_TXN_P_FLAGS_DURABLE_NONCE ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BLOCKHASH_FAIL_WRONG_NONCE)<<24) ); + + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==51UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + + FD_TEST( test_read_lamports( env, &fee_payer )==fee_payer_start ); + FD_TEST( test_read_lamports( env, &nonce_key )==nonce_start ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_NONCE_WRONG_BLOCKHASH_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_nonce_dup2 ) { + /* Advance the same nonce account twice with valid durable nonces */ + test_env_t * env = test_env_create(); + + fd_pubkey_t fee_payer = { .ul = { 0xcce0UL } }; + fd_pubkey_t nonce_key = { .ul = { 0xcce1UL } }; + fd_pubkey_t recipient0 = { .ul = { 0xcce2UL } }; + fd_pubkey_t recipient1 = { .ul = { 0xcce3UL } }; + + ulong const fee_payer_start = 10000000000UL; + ulong const nonce_start = 10000000000UL; + ulong const recipient0_start = 1000000000UL; + ulong const recipient1_start = 1000000000UL; + ulong const transfer0 = 12345UL; + ulong const transfer1 = 67890UL; + ulong const fee = 5000UL; + + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + fd_hash_t stale_blockhash = {0}; + fd_memset( stale_blockhash.uc, 0x43, sizeof(fd_hash_t) ); + fd_hash_t durable_nonce0; + test_durable_nonce_from_blockhash( &durable_nonce0, &stale_blockhash ); + + fd_hash_t const * last_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( last_blockhash ); + fd_hash_t durable_nonce1; + test_durable_nonce_from_blockhash( &durable_nonce1, last_blockhash ); + + test_fund_account( env, &fee_payer, fee_payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + test_put_nonce_account_rooted( env, &nonce_key, &fee_payer, &durable_nonce0, nonce_start ); + + fd_txn_p_t txns[2]; + test_build_durable_nonce_transfer_txn( &txns[0], fee_payer, nonce_key, recipient0, &durable_nonce0, transfer0, 53UL ); + test_build_durable_nonce_transfer_txn( &txns[1], fee_payer, nonce_key, recipient1, &durable_nonce1, transfer1, 54UL ); + test_execle_run( env, txns, 2UL, 22U, 53UL, 1 ); + + test_assert_bundle_out( env, 2UL, 22U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_BLOCKHASH_NONCE_ALREADY_ADVANCED ); + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + FD_TEST( !env->execle->txn_out[0].err.is_committable ); + FD_TEST( !env->execle->txn_out[1].err.is_committable ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( out_txn0->flags & FD_TXN_P_FLAGS_DURABLE_NONCE ); + FD_TEST( out_txn1->flags & FD_TXN_P_FLAGS_DURABLE_NONCE ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BLOCKHASH_NONCE_ALREADY_ADVANCED)<<24) ); + + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==53UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + + FD_TEST( test_read_lamports( env, &fee_payer )==fee_payer_start ); + FD_TEST( test_read_lamports( env, &nonce_key )==nonce_start ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_NONCE_ALREADY_ADVANCED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_dup ) { + /* Duplicate transaction in a bundle causing a status cache collision */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0xeeeeUL } }; + fd_pubkey_t shared = { .ul = { 0xffffUL } }; + test_fund_account( env, &fee_payer, 1000000000UL ); + + fd_txn_p_t txns[2]; + test_build_empty_txn( &txns[0], bank, fee_payer, shared, 61UL, 0 ); + txns[1] = txns[0]; + test_execle_run( env, txns, 2UL, 24U, 61UL, 1 ); + + test_assert_bundle_out( env, 2UL, 24U ); + FD_TEST( !env->execle->txn_out[0].err.is_committable ); + FD_TEST( !env->execle->txn_out[1].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_ALREADY_PROCESSED ); + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_ALREADY_PROCESSED)<<24) ); + + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==61UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_ALREADY_PROCESSED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); test_env_destroy( env ); } @@ -310,6 +1544,7 @@ main( int argc, limits->max_live_slots = MAX_LIVE_SLOTS; limits->max_txn_per_slot = MAX_TXN_PER_SLOT; limits->max_txn_write_locks = MAX_TX_ACCOUNT_LOCKS; + limits->wksp_addl_sz = 5UL<<30; mini = fd_svm_test_boot( &argc, &argv, limits ); fd_metrics_register( (ulong *)fd_metrics_new( metrics_scratch, 0UL ) ); diff --git a/src/discof/execrp/Local.mk b/src/discof/execrp/Local.mk index 85925614e1f..2b248bb8f59 100644 --- a/src/discof/execrp/Local.mk +++ b/src/discof/execrp/Local.mk @@ -1,5 +1,5 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_execrp_tile,fd_discof) -endif +$(call make-unit-test,test_execrp_tile,test_execrp_tile,fd_discof fd_disco fd_choreo fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util) +$(call run-unit-test,test_execrp_tile) endif diff --git a/src/discof/execrp/fd_execrp_tile.c b/src/discof/execrp/fd_execrp_tile.c index c5b6e19a61b..cfbb4dd227e 100644 --- a/src/discof/execrp/fd_execrp_tile.c +++ b/src/discof/execrp/fd_execrp_tile.c @@ -15,10 +15,7 @@ #include "../../flamenco/progcache/fd_progcache_user.h" #include "../../flamenco/log_collector/fd_log_collector_base.h" #include "../../disco/metrics/fd_metrics.h" -#include "../../util/sandbox/fd_pkeys.h" -#include "../../util/sandbox/fd_sandbox.h" #include -#include #include "generated/fd_execrp_tile_seccomp.h" /* The exec tile is responsible for executing single transactions. The @@ -38,9 +35,7 @@ typedef struct link_ctx { } link_ctx_t; struct fd_execrp_tile { - ulong tile_idx; - - int funk_pkey; /* memory protection key, -1 if unsupported */ + ulong tile_idx; /* link-related data structures. */ link_ctx_t replay_in[ 1 ]; @@ -203,23 +198,6 @@ publish_txn_finalized_msg( fd_execrp_tile_t * ctx, ctx->execrp_replay_out->chunk = fd_dcache_compact_next( ctx->execrp_replay_out->chunk, sizeof(*msg), ctx->execrp_replay_out->chunk0, ctx->execrp_replay_out->wmark ); } -/* funk_mprotect makes the funk wksp read-only / writable - (cheaply, using userland protection keys) */ - -static inline void -funk_mprotect( fd_execrp_tile_t * ctx, - int writable ) { - (void)ctx; (void)writable; -#if defined(__linux__) && defined(__x86_64__) - if( FD_LIKELY( ctx->funk_pkey>=0 ) ) { - fd_x86_pkey_update( ctx->funk_pkey, 0, !writable ); - } -#endif -} - -static inline void funk_mprotect_readonly( fd_execrp_tile_t * ctx ) { funk_mprotect( ctx, 0 ); } -static inline void funk_mprotect_writable( fd_execrp_tile_t * ctx ) { funk_mprotect( ctx, 1 ); } - static inline int returnable_frag( fd_execrp_tile_t * ctx, ulong in_idx, @@ -258,9 +236,7 @@ returnable_frag( fd_execrp_tile_t * ctx, ctx->metrics.txn_result[ fd_execle_err_from_runtime_err( ctx->txn_out.err.txn_err ) ]++; if( FD_LIKELY( ctx->txn_out.err.is_committable ) ) { - funk_mprotect_writable( ctx ); fd_runtime_commit_txn( ctx->runtime, ctx->bank, &ctx->txn_out ); - funk_mprotect_readonly( ctx ); } else { fd_runtime_cancel_txn( ctx->runtime, &ctx->txn_out ); } @@ -330,42 +306,6 @@ returnable_frag( fd_execrp_tile_t * ctx, extern FD_TL int fd_wksp_oom_silent; -static void -privileged_init( fd_topo_t const * topo, - fd_topo_tile_t const * tile ) { - fd_execrp_tile_t * ctx = fd_topo_obj_laddr( topo, tile->tile_obj_id ); - ctx->funk_pkey = -1; - - ulong funk_obj_id = fd_pod_query_ulong( topo->props, "funk", ULONG_MAX ); - FD_TEST( funk_obj_id!=ULONG_MAX ); - fd_wksp_t * funk_wksp = fd_wksp_containing( fd_topo_obj_laddr( topo, funk_obj_id ) ); - FD_TEST( funk_wksp ); - -#if defined(__linux__) && defined(__x86_64__) - if( FD_UNLIKELY( fd_sandbox_getpid()!=fd_sandbox_gettid() ) ) { - FD_LOG_INFO(( "userland memory protection disabled: not compatible with single-process mode" )); - return; - } - - int pkey = fd_syscall_pkey_alloc( 0, 0 ); - if( FD_UNLIKELY( pkey<0 ) ) { - FD_LOG_INFO(( "userland memory protection disabled: pkey_alloc(0,0) failed (%i-%s)", - errno, fd_io_strerror( errno ) )); - return; - } - - int err = fd_wksp_pkey_install( funk_wksp, pkey ); - if( FD_UNLIKELY( err ) ) { - FD_LOG_ERR(( "error while setting up userland memory protection: fd_wksp_pkey_install(funk_wksp,pkey=%d) failed (%i-%s)", - pkey, err, fd_io_strerror( err ) )); - } - - ctx->funk_pkey = pkey; - funk_mprotect_readonly( ctx ); - FD_LOG_INFO(( "userland memory protection enabled (pkey=%d)", pkey )); -# endif /* defined(__linux__) && defined(__x86_64__) */ -} - static void unprivileged_init( fd_topo_t const * topo, fd_topo_tile_t const * tile ) { @@ -598,7 +538,6 @@ fd_topo_run_tile_t fd_tile_execrp = { .populate_allowed_fds = populate_allowed_fds, .scratch_align = scratch_align, .scratch_footprint = scratch_footprint, - .privileged_init = privileged_init, .unprivileged_init = unprivileged_init, .run = stem_run, }; diff --git a/src/discof/execrp/test_execrp_tile.c b/src/discof/execrp/test_execrp_tile.c new file mode 100644 index 00000000000..92d244514a8 --- /dev/null +++ b/src/discof/execrp/test_execrp_tile.c @@ -0,0 +1,608 @@ +/* test_execrp_tile unit tests replay transaction execution by mocking an + execrp tile context and using fd_svm_mini for runtime state. */ + +#include "fd_execrp_tile.c" +#include "../../ballet/txn/fd_txn_build.h" +#include "../../ballet/txn/fd_compact_u16.h" +#include "../../disco/topo/fd_topob.h" +#include "../../flamenco/accdb/fd_accdb_impl_v1.h" +#include "../../flamenco/accdb/fd_accdb_sync.h" +#include "../../flamenco/runtime/tests/fd_svm_mini.h" +#include "../../flamenco/runtime/fd_system_ids_pp.h" +#include "../../flamenco/runtime/program/fd_system_program.h" +#include "../../util/tmpl/fd_unit_test.c" +#include + +#define MAX_LIVE_SLOTS 32 +#define MAX_TXN_PER_SLOT 32 + +#define TOPO_TAG 2UL + +int volatile const fd_startup_skip_checks = 1; /* fd_startup.c */ + +static fd_svm_mini_t * mini; +static fd_topo_t topo[1]; +static uchar metrics_scratch[ FD_METRICS_FOOTPRINT( 0UL ) ] __attribute__((aligned(FD_METRICS_ALIGN))); + +struct test_env { + void * tile_mem; + fd_svm_mini_t * mini; + fd_execrp_tile_t * execrp; + ulong bank_idx; + + void * allocs[ 16 ]; + ulong alloc_cnt; +}; + +typedef struct test_env test_env_t; + +static fd_topo_obj_t * +test_topo_obj_laddr( fd_topo_t * topo, + char const * obj_type, + char const * wksp_name, + void * laddr ) { + fd_topo_obj_t * obj = fd_topob_obj( topo, obj_type, wksp_name ); + obj->offset = (ulong)fd_wksp_gaddr_fast( topo->workspaces[ obj->wksp_id ].wksp, laddr ); + return obj; +} + +static void +test_topo_link_init( test_env_t * env, + fd_topo_t * topo, + fd_topo_link_t * link ) { + ulong mcache_footprint = fd_mcache_footprint( link->depth, 0UL ); + void * mcache_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_mcache_align(), mcache_footprint, TOPO_TAG ); + FD_TEST( fd_mcache_new( mcache_mem, link->depth, 0UL, 0UL ) ); + link->mcache = fd_mcache_join( mcache_mem ); + FD_TEST( link->mcache ); + topo->objs[ link->mcache_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, mcache_mem ); + + if( link->mtu ) { + ulong data_sz = fd_dcache_req_data_sz( link->mtu, link->depth, link->burst, 1 ); + ulong dcache_footprint = fd_dcache_footprint( data_sz, 0UL ); + void * dcache_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_dcache_align(), dcache_footprint, TOPO_TAG ); + FD_TEST( fd_dcache_new( dcache_mem, data_sz, 0UL ) ); + link->dcache = fd_dcache_join( dcache_mem ); + FD_TEST( link->dcache ); + topo->objs[ link->dcache_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, dcache_mem ); + } +} + +static fd_topo_link_t * +test_topo_link( char const * name ) { + for( ulong i=0UL; ilink_cnt; i++ ) { + if( !strcmp( topo->links[i].name, name ) ) return &topo->links[i]; + } + FD_LOG_ERR(( "missing test topo link %s", name )); +} + +static test_env_t * +test_env_create( void ) { + test_env_t * env = fd_wksp_alloc_laddr( mini->wksp, alignof(test_env_t), sizeof(test_env_t), TOPO_TAG ); + FD_TEST( env ); + memset( env, 0, sizeof(test_env_t) ); + + env->mini = mini; + + fd_svm_mini_params_t params[1]; + fd_svm_mini_params_default( params ); + ulong root_idx = fd_svm_mini_reset( env->mini, params ); + env->bank_idx = fd_svm_mini_attach_child( env->mini, root_idx, 2UL ); + + fd_topob_new( topo, "execrp" ); + fd_topo_wksp_t * topo_wksp = fd_topob_wksp( topo, "execrp" ); + topo_wksp->wksp = env->mini->wksp; + fd_topo_tile_t * topo_tile = fd_topob_tile( topo, "execrp", "execrp", "execrp", 0UL, 0, 0, 0 ); + topo_tile->execrp.max_live_slots = MAX_LIVE_SLOTS; + topo_tile->execrp.accdb_max_depth = MAX_LIVE_SLOTS; + + void * tile_mem = fd_wksp_alloc_laddr( env->mini->wksp, scratch_align(), scratch_footprint( topo_tile ), TOPO_TAG ); + FD_TEST( tile_mem ); + env->tile_mem = tile_mem; + topo->objs[ topo_tile->tile_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, tile_mem ); + + fd_topo_link_t * replay_execrp = fd_topob_link( topo, "replay_execrp", "execrp", 4UL, sizeof(fd_execrp_task_msg_t), 1UL ); + fd_topo_link_t * execrp_replay = fd_topob_link( topo, "execrp_replay", "execrp", 4UL, sizeof(fd_execrp_task_done_msg_t), 1UL ); + test_topo_link_init( env, topo, replay_execrp ); + test_topo_link_init( env, topo, execrp_replay ); + fd_topob_tile_in ( topo, "execrp", 0UL, "execrp", "replay_execrp", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); + fd_topob_tile_out( topo, "execrp", 0UL, "execrp_replay", 0UL ); + + fd_funk_t * funk = fd_accdb_user_v1_funk( env->mini->accdb ); + fd_topo_obj_t * funk_obj = test_topo_obj_laddr( topo, "funk", "execrp", funk->shmem ); + fd_topo_obj_t * funk_locks_obj = test_topo_obj_laddr( topo, "funk_locks", "execrp", (void *)funk->txn_lock ); + fd_topo_obj_t * progcache_obj = test_topo_obj_laddr( topo, "progcache", "execrp", env->mini->progcache->join->shmem ); + fd_topo_obj_t * banks_obj = test_topo_obj_laddr( topo, "banks", "execrp", env->mini->banks ); + fd_topo_obj_t * txncache_obj = test_topo_obj_laddr( topo, "txncache", "execrp", env->mini->txncache_shmem ); + fd_topo_obj_t * acc_pool_obj = test_topo_obj_laddr( topo, "acc_pool", "execrp", env->mini->acc_pool ); + FD_TEST( fd_pod_insertf_ulong( topo->props, funk_obj->id, "funk" ) ); + FD_TEST( fd_pod_insertf_ulong( topo->props, funk_locks_obj->id, "funk_locks" ) ); + FD_TEST( fd_pod_insertf_ulong( topo->props, progcache_obj->id, "progcache" ) ); + FD_TEST( fd_pod_insertf_ulong( topo->props, banks_obj->id, "banks" ) ); + + topo_tile->execrp.txncache_obj_id = txncache_obj->id; + topo_tile->execrp.acc_pool_obj_id = acc_pool_obj->id; + + unprivileged_init( topo, topo_tile ); + + env->execrp = tile_mem; + env->execrp->replay_in->mem = replay_execrp->dcache; + env->execrp->replay_in->chunk0 = fd_dcache_compact_chunk0( replay_execrp->dcache, replay_execrp->dcache ); + env->execrp->replay_in->wmark = fd_dcache_compact_wmark ( replay_execrp->dcache, replay_execrp->dcache, replay_execrp->mtu ); + env->execrp->replay_in->chunk = env->execrp->replay_in->chunk0; + + env->execrp->execrp_replay_out->mem = execrp_replay->dcache; + env->execrp->execrp_replay_out->chunk0 = fd_dcache_compact_chunk0( execrp_replay->dcache, execrp_replay->dcache ); + env->execrp->execrp_replay_out->wmark = fd_dcache_compact_wmark ( execrp_replay->dcache, execrp_replay->dcache, execrp_replay->mtu ); + env->execrp->execrp_replay_out->chunk = env->execrp->execrp_replay_out->chunk0; + return env; +} + +static void +test_env_destroy( test_env_t * env ) { + ulong tag = TOPO_TAG; + fd_wksp_tag_free( env->mini->wksp, &tag, 1UL ); +} + +#define TEST_CHECKED_ADD_TO_TXN_DATA( _begin, _cur_data, _to_add, _sz ) __extension__({ \ + if( FD_UNLIKELY( (*_cur_data)+(_sz)>(_begin)+FD_TXN_MTU ) ) return ULONG_MAX; \ + fd_memcpy( *_cur_data, _to_add, (_sz) ); \ + *_cur_data += (_sz); \ +}) + +#define TEST_CHECKED_ADD_CU16_TO_TXN_DATA( _begin, _cur_data, _to_add ) __extension__({ \ + do { \ + uchar _buf[3]; \ + ulong _sz = (ulong)fd_cu16_enc( (ushort)(_to_add), _buf ); \ + TEST_CHECKED_ADD_TO_TXN_DATA( _begin, _cur_data, _buf, _sz ); \ + } while(0); \ +}) + +static ulong +test_txn_serialize_empty( uchar * txn_raw_begin, + fd_signature_t * signature, + ulong readonly_signed_cnt, + ulong readonly_unsigned_cnt, + fd_pubkey_t * account_keys, + ulong account_key_cnt, + fd_hash_t const * recent_blockhash ) { + uchar * txn_raw_cur = txn_raw_begin; + + uchar signature_cnt = 1U; + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &signature_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, signature, FD_TXN_SIGNATURE_SZ ); + + uchar header_b0 = (uchar)0x80UL; + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &header_b0, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &signature_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &readonly_signed_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &readonly_unsigned_cnt, sizeof(uchar) ); + + TEST_CHECKED_ADD_CU16_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, account_key_cnt ); + for( ulong i=0UL; if.block_hash_queue ); + FD_TEST( recent_blockhash ); + ulong sz = test_txn_serialize_empty( out->payload, &signature, 0UL, (ulong)!!extra_readonly, + account_keys, 2UL, recent_blockhash ); + FD_TEST( sz!=ULONG_MAX ); + FD_TEST( fd_txn_parse( out->payload, sz, TXN( out ), NULL ) ); + out->payload_sz = (ushort)sz; + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; +} + +static void +test_build_system_transfer_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t from, + fd_pubkey_t to, + ulong lamports ) { + fd_system_program_instruction_t instr = { + .discriminant = FD_SYSTEM_PROGRAM_INSTR_TRANSFER, + .inner.transfer = lamports + }; + uchar instr_data[ 16 ]; + ulong instr_data_sz = 0UL; + FD_TEST( !fd_system_program_instruction_encode( &instr, instr_data, sizeof(instr_data), &instr_data_sz ) ); + + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 2UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &from ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &fd_solana_system_program_id, instr_data, instr_data_sz ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &from, FD_TXN_ACCT_CAT_WRITABLE | FD_TXN_ACCT_CAT_SIGNER ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &to, FD_TXN_ACCT_CAT_WRITABLE ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_build_missing_program_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t fee_payer, + fd_pubkey_t missing_program ) { + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 5UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &fee_payer ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &missing_program, NULL, 0UL ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_fund_account( test_env_t * env, + fd_pubkey_t const * pubkey, + ulong lamports ) { + fd_xid_t xid = fd_svm_mini_xid( env->mini, env->bank_idx ); + fd_svm_mini_add_lamports( env->mini, &xid, pubkey, lamports ); +} + +static ulong +test_read_lamports( test_env_t * env, + fd_pubkey_t const * pubkey ) { + fd_xid_t xid = fd_svm_mini_xid( env->mini, env->bank_idx ); + fd_accdb_ro_t ro[1]; + FD_TEST( fd_accdb_open_ro( env->mini->accdb, ro, &xid, pubkey ) ); + ulong lamports = fd_accdb_ref_lamports( ro ); + fd_accdb_close_ro( env->mini->accdb, ro ); + return lamports; +} + +static fd_stem_context_t * +test_stem( fd_execrp_tile_t * ctx, + fd_stem_context_t * stem ) { + static fd_frag_meta_t * mcaches[FD_TOPO_MAX_LINKS]; + static ulong seqs[FD_TOPO_MAX_LINKS]; + static ulong depths[FD_TOPO_MAX_LINKS]; + static ulong cr_avail[FD_TOPO_MAX_LINKS]; + static ulong min_cr_avail; + static int out_reliable[FD_TOPO_MAX_LINKS]; + + fd_topo_link_t const * execrp_replay = test_topo_link( "execrp_replay" ); + + memset( mcaches, 0, sizeof(mcaches) ); + memset( seqs, 0, sizeof(seqs) ); + memset( depths, 0, sizeof(depths) ); + memset( out_reliable, 0, sizeof(out_reliable) ); + for( ulong i=0UL; iexecrp_replay_out->idx ] = execrp_replay->mcache; + depths [ ctx->execrp_replay_out->idx ] = execrp_replay->depth; + seqs [ ctx->execrp_replay_out->idx ] = fd_mcache_seq_query( fd_mcache_seq_laddr_const( mcaches[ ctx->execrp_replay_out->idx ] ) ); + min_cr_avail = ULONG_MAX; + + *stem = (fd_stem_context_t) { + .mcaches = mcaches, + .seqs = seqs, + .depths = depths, + .cr_avail = cr_avail, + .min_cr_avail = &min_cr_avail, + .cr_decrement_amount = 1UL, + .out_reliable = out_reliable, + }; + return stem; +} + +static fd_frag_meta_t const * +test_out_meta( ulong seq ) { + fd_topo_link_t const * execrp_replay = test_topo_link( "execrp_replay" ); + return execrp_replay->mcache + fd_mcache_line_idx( seq, execrp_replay->depth ); +} + +static fd_execrp_task_done_msg_t const * +test_out_msg( test_env_t * env, + fd_frag_meta_t const * meta ) { + return fd_chunk_to_laddr( env->execrp->execrp_replay_out->mem, meta->chunk ); +} + +static fd_execrp_task_done_msg_t const * +test_assert_out_msg( test_env_t * env, + ulong seq, + ulong task_type ) { + fd_frag_meta_t const * meta = test_out_meta( seq ); + FD_TEST( fd_frag_meta_seq_query( meta )==seq ); + FD_TEST( meta->sig==((task_type<<32) | env->execrp->tile_idx) ); + FD_TEST( meta->sz==sizeof(fd_execrp_task_done_msg_t) ); + FD_TEST( meta->chunk>=env->execrp->execrp_replay_out->chunk0 ); + FD_TEST( meta->chunk<=env->execrp->execrp_replay_out->wmark ); + + fd_execrp_task_done_msg_t const * out_msg = test_out_msg( env, meta ); + FD_TEST( out_msg->bank_idx==env->bank_idx ); + return out_msg; +} + +static fd_execrp_task_done_msg_t const * +test_execrp_run( test_env_t * env, + fd_txn_p_t * txn, + ulong txn_idx ) { + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + FD_TEST( bank ); + + ulong in_chunk = env->execrp->replay_in->chunk0; + fd_execrp_txn_exec_msg_t * in_msg = fd_chunk_to_laddr( env->execrp->replay_in->mem, in_chunk ); + fd_memset( in_msg, 0, sizeof(fd_execrp_txn_exec_msg_t) ); + in_msg->bank_idx = env->bank_idx; + in_msg->txn_idx = txn_idx; + in_msg->capture_txn_idx = txn_idx; + fd_memcpy( in_msg->txn, txn, sizeof(fd_txn_p_t) ); + + fd_stem_context_t stem[1]; + ulong const sig = (FD_EXECRP_TT_TXN_EXEC<<32) | env->execrp->tile_idx; + FD_TEST( !returnable_frag( env->execrp, env->execrp->replay_in->idx, 0UL, sig, in_chunk, + sizeof(fd_execrp_txn_exec_msg_t), 0UL, 0UL, + fd_frag_meta_ts_comp( fd_tickcount() ), test_stem( env->execrp, stem ) ) ); + + fd_execrp_task_done_msg_t const * out_msg = test_assert_out_msg( env, 0UL, FD_EXECRP_TT_TXN_EXEC ); + FD_TEST( out_msg->txn_exec->txn_idx==txn_idx ); + FD_TEST( out_msg->txn_exec->slot==bank->f.slot ); + return out_msg; +} + +FD_UNIT_TEST( execrp_seccomp ) { + int out_fds[2]; + ulong nfds = populate_allowed_fds( NULL, NULL, 2UL, out_fds ); + FD_TEST( nfds>=1 && nfds<=2 ); + FD_TEST( out_fds[0]==STDERR_FILENO ); + if( nfds==2 ) FD_TEST( out_fds[1]==fd_log_private_logfile_fd() ); + + struct sock_filter filter[ 32 ]; + populate_allowed_seccomp( NULL, NULL, 32UL, filter ); +} + +FD_UNIT_TEST( execrp_metrics_write ) { + test_env_t * env = test_env_create(); + + env->execrp->metrics.sigverify_cnt = 2UL; + env->execrp->metrics.poh_hash_cnt = 3UL; + env->execrp->metrics.txn_load_cum_ticks = 5UL; + env->execrp->metrics.txn_check_cum_ticks = 7UL; + env->execrp->metrics.txn_exec_cum_ticks = 11UL; + env->execrp->metrics.txn_commit_cum_ticks = 13UL; + env->execrp->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_SUCCESS_IDX ] = 1UL; + env->execrp->runtime->metrics.cu_cum = 17UL; + env->execrp->runtime->metrics.vm_exec_cum_ticks = 19UL; + + metrics_write( env->execrp ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_sigverify ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x9191UL } }; + fd_pubkey_t data_acct = { .ul = { 0x9292UL } }; + + fd_txn_p_t txn[1]; + test_build_empty_txn( txn, bank, fee_payer, data_acct, 91UL, 0 ); + + ulong in_chunk = env->execrp->replay_in->chunk0; + fd_execrp_txn_sigverify_msg_t * in_msg = fd_chunk_to_laddr( env->execrp->replay_in->mem, in_chunk ); + fd_memset( in_msg, 0, sizeof(fd_execrp_txn_sigverify_msg_t) ); + in_msg->bank_idx = env->bank_idx; + in_msg->txn_idx = 91UL; + fd_memcpy( in_msg->txn, txn, sizeof(fd_txn_p_t) ); + + fd_stem_context_t stem[1]; + ulong const sig = (FD_EXECRP_TT_TXN_SIGVERIFY<<32) | env->execrp->tile_idx; + FD_TEST( !returnable_frag( env->execrp, env->execrp->replay_in->idx, 0UL, sig, in_chunk, + sizeof(fd_execrp_txn_sigverify_msg_t), 0UL, 0UL, 0UL, + test_stem( env->execrp, stem ) ) ); + + fd_execrp_task_done_msg_t const * out_msg = test_assert_out_msg( env, 0UL, FD_EXECRP_TT_TXN_SIGVERIFY ); + FD_TEST( out_msg->txn_sigverify->txn_idx==91UL ); + FD_TEST( out_msg->txn_sigverify->err ); + FD_TEST( env->execrp->metrics.sigverify_cnt==TXN(txn)->signature_cnt ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_poh_hash ) { + test_env_t * env = test_env_create(); + + ulong in_chunk = env->execrp->replay_in->chunk0; + fd_execrp_poh_hash_msg_t * in_msg = fd_chunk_to_laddr( env->execrp->replay_in->mem, in_chunk ); + fd_memset( in_msg, 0, sizeof(fd_execrp_poh_hash_msg_t) ); + in_msg->bank_idx = env->bank_idx; + in_msg->mblk_idx = 92UL; + in_msg->hashcnt = 3UL; + for( ulong i=0UL; ihash->uc[i] = (uchar)i; + + fd_hash_t expected[1]; + fd_sha256_hash_32_repeated( in_msg->hash, expected, in_msg->hashcnt ); + + fd_stem_context_t stem[1]; + ulong const sig = (FD_EXECRP_TT_POH_HASH<<32) | env->execrp->tile_idx; + FD_TEST( !returnable_frag( env->execrp, env->execrp->replay_in->idx, 0UL, sig, in_chunk, + sizeof(fd_execrp_poh_hash_msg_t), 0UL, 0UL, 0UL, + test_stem( env->execrp, stem ) ) ); + + fd_execrp_task_done_msg_t const * out_msg = test_assert_out_msg( env, 0UL, FD_EXECRP_TT_POH_HASH ); + FD_TEST( out_msg->poh_hash->mblk_idx==in_msg->mblk_idx ); + FD_TEST( out_msg->poh_hash->hashcnt ==in_msg->hashcnt ); + FD_TEST( !memcmp( out_msg->poh_hash->hash, expected, sizeof(fd_hash_t) ) ); + FD_TEST( env->execrp->metrics.poh_hash_cnt==in_msg->hashcnt ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_simple_ok ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x1111UL } }; + fd_pubkey_t recipient = { .ul = { 0x2222UL } }; + ulong const payer_start = 1000000000UL; + ulong const recipient_start = 1UL; + ulong const transfer = 1234567UL; + ulong const fee = 5000UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient, recipient_start ); + + fd_txn_p_t txn[1]; + test_build_system_transfer_txn( txn, bank, fee_payer, recipient, transfer ); + fd_execrp_task_done_msg_t const * out_msg = test_execrp_run( env, txn, 18UL ); + + FD_TEST( env->execrp->txn_out.err.is_committable ); + FD_TEST( env->execrp->txn_out.err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( out_msg->txn_exec->is_committable ); + FD_TEST( out_msg->txn_exec->txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee-transfer ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start+transfer ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_simple_fee_payer_fail ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t missing_fee_payer = { .ul = { 0x3333UL } }; + fd_pubkey_t data_acct = { .ul = { 0x4444UL } }; + ulong const data_acct_start = 777UL; + test_fund_account( env, &data_acct, data_acct_start ); + + fd_txn_p_t txn[1]; + test_build_empty_txn( txn, bank, missing_fee_payer, data_acct, 12UL, 0 ); + fd_execrp_task_done_msg_t const * out_msg = test_execrp_run( env, txn, 19UL ); + + FD_TEST( !env->execrp->txn_out.err.is_committable ); + FD_TEST( env->execrp->txn_out.err.txn_err==FD_RUNTIME_TXN_ERR_ACCOUNT_NOT_FOUND ); + FD_TEST( !out_msg->txn_exec->is_committable ); + FD_TEST( out_msg->txn_exec->txn_err==FD_RUNTIME_TXN_ERR_ACCOUNT_NOT_FOUND ); + FD_TEST( test_read_lamports( env, &data_acct )==data_acct_start ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_simple_error ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x5151UL } }; + fd_pubkey_t recipient = { .ul = { 0x6262UL } }; + ulong const payer_start = 1000000UL; + ulong const recipient_start = 1234UL; + ulong const fee = 5000UL; + ulong const transfer = payer_start; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient, recipient_start ); + + fd_txn_p_t txn[1]; + test_build_system_transfer_txn( txn, bank, fee_payer, recipient, transfer ); + fd_execrp_task_done_msg_t const * out_msg = test_execrp_run( env, txn, 20UL ); + + FD_TEST( env->execrp->txn_out.err.is_committable ); + FD_TEST( !env->execrp->txn_out.err.is_fees_only ); + FD_TEST( env->execrp->txn_out.err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + FD_TEST( out_msg->txn_exec->is_committable ); + FD_TEST( !out_msg->txn_exec->is_fees_only ); + FD_TEST( out_msg->txn_exec->txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_simple_fees_only ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x7171UL } }; + fd_pubkey_t missing_program = { .ul = { 0x7272UL } }; + ulong const payer_start = 1000000UL; + ulong const fee = 5000UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + + fd_txn_p_t txn[1]; + test_build_missing_program_txn( txn, bank, fee_payer, missing_program ); + fd_execrp_task_done_msg_t const * out_msg = test_execrp_run( env, txn, 21UL ); + + FD_TEST( env->execrp->txn_out.err.is_committable ); + FD_TEST( env->execrp->txn_out.err.is_fees_only ); + FD_TEST( env->execrp->txn_out.err.txn_err==FD_RUNTIME_TXN_ERR_PROGRAM_ACCOUNT_NOT_FOUND ); + FD_TEST( out_msg->txn_exec->is_committable ); + FD_TEST( out_msg->txn_exec->is_fees_only ); + FD_TEST( out_msg->txn_exec->txn_err==FD_RUNTIME_TXN_ERR_PROGRAM_ACCOUNT_NOT_FOUND ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee ); + + test_env_destroy( env ); +} + +int +main( int argc, + char ** argv ) { + fd_svm_mini_limits_t limits[1]; + fd_svm_mini_limits_default( limits ); + limits->max_live_slots = MAX_LIVE_SLOTS; + limits->max_txn_per_slot = MAX_TXN_PER_SLOT; + limits->max_txn_write_locks = MAX_TX_ACCOUNT_LOCKS; + limits->wksp_addl_sz = 5UL<<30; + + mini = fd_svm_test_boot( &argc, &argv, limits ); + fd_metrics_register( (ulong *)fd_metrics_new( metrics_scratch, 0UL ) ); + + fd_unit_tests( argc, argv ); + + FD_LOG_NOTICE(( "pass" )); + fd_svm_test_halt( mini ); + return 0; +} diff --git a/src/discof/forest/Local.mk b/src/discof/forest/Local.mk index bc8f3e99f5f..0737a5ae3ec 100644 --- a/src/discof/forest/Local.mk +++ b/src/discof/forest/Local.mk @@ -1,4 +1,5 @@ $(call add-objs,fd_forest,fd_discof) ifdef FD_HAS_HOSTED $(call make-unit-test,test_forest,test_forest,fd_discof fd_disco fd_flamenco fd_tango fd_ballet fd_util) +$(call run-unit-test,test_forest) endif diff --git a/src/discof/forest/test_forest.c b/src/discof/forest/test_forest.c index 653f84c6146..abfe13b9f83 100644 --- a/src/discof/forest/test_forest.c +++ b/src/discof/forest/test_forest.c @@ -1565,7 +1565,7 @@ test_eqvoc_blk_wrong_parent( fd_wksp_t * wksp ) { FD_TEST( !fd_forest_verify( forest ) ); fd_forest_fec_insert( forest, 3, 2, 63, 32, 1, 0, &mr_3_32_, &mr_3_0_ ); - FD_TEST( fd_forest_fec_chain_verify( forest, fd_forest_query( forest, 3 ), &mr_3_32_ ) ); + FD_TEST( !fd_forest_fec_chain_verify( forest, fd_forest_query( forest, 3 ), &mr_3_32_ ) ); FD_TEST( fd_forest_merkle_last_incorrect_idx( fd_forest_query( forest, 3 ) ) == 0UL ); } @@ -2132,6 +2132,7 @@ main( int argc, char ** argv ) { test_fec_insert_reject_oob_after_verify( wksp ); test_fec_insert_dup_confirm_larger_complete_idx( wksp ); + FD_LOG_NOTICE(( "pass" )); fd_halt(); return 0; } diff --git a/src/discof/genesis/Local.mk b/src/discof/genesis/Local.mk index 171f1ca5c75..cb2ae6cf92d 100644 --- a/src/discof/genesis/Local.mk +++ b/src/discof/genesis/Local.mk @@ -1,8 +1,4 @@ -ifdef FD_HAS_ALLOCA -ifdef FD_HAS_INT128 -$(call add-objs,fd_genesi_tile fd_genesis_client,fd_discof) ifdef FD_HAS_HOSTED +$(call add-objs,fd_genesi_tile fd_genesis_client,fd_discof) $(call make-fuzz-test,fuzz_genesis_client,fuzz_genesis_client,fd_discof fd_waltz fd_ballet fd_util) endif -endif -endif diff --git a/src/discof/genesis/fd_genesi_tile.c b/src/discof/genesis/fd_genesi_tile.c index 3b1c29f2e5c..a3107b19066 100644 --- a/src/discof/genesis/fd_genesi_tile.c +++ b/src/discof/genesis/fd_genesi_tile.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/discof/genesis/fd_genesis_client_private.h b/src/discof/genesis/fd_genesis_client_private.h index 4a09587f938..a91d9cb224e 100644 --- a/src/discof/genesis/fd_genesis_client_private.h +++ b/src/discof/genesis/fd_genesis_client_private.h @@ -3,7 +3,7 @@ #include "fd_genesis_client.h" #include "../../disco/topo/fd_topo.h" -#include +#include struct fd_genesis_client_peer { fd_ip4_port_t addr; diff --git a/src/discof/genesis/fuzz_genesis_client.c b/src/discof/genesis/fuzz_genesis_client.c index 6adaca1ddb6..15993e839e4 100644 --- a/src/discof/genesis/fuzz_genesis_client.c +++ b/src/discof/genesis/fuzz_genesis_client.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/discof/gossip/Local.mk b/src/discof/gossip/Local.mk index 438d477d5f0..e26d3e0bc13 100644 --- a/src/discof/gossip/Local.mk +++ b/src/discof/gossip/Local.mk @@ -1,6 +1,4 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_gossip_tile,fd_discof) $(call add-objs,fd_gossvf_tile,fd_discof) endif -endif diff --git a/src/discof/gossip/fd_gossvf_tile.c b/src/discof/gossip/fd_gossvf_tile.c index 81d28d36d01..818bbf5d283 100644 --- a/src/discof/gossip/fd_gossvf_tile.c +++ b/src/discof/gossip/fd_gossvf_tile.c @@ -124,6 +124,9 @@ struct fd_gossvf_tile_ctx { int allow_private_address; + fd_ip4_port_t gossip_addr; + fd_ip4_port_t src_addr; + fd_keyswitch_t * keyswitch; fd_pubkey_t identity_pubkey[1]; @@ -569,7 +572,7 @@ is_ping_active( fd_gossvf_tile_ctx_t * ctx, /* 2. If the node has actively ponged a ping, it is active */ ping_t * ping = ping_map_ele_query( ctx->ping_map, pubkey, NULL, ctx->pings ); - return ping!=NULL && ping->addr.l==addr.l; + return ping!=NULL && ping->addr.addr==addr.addr && ping->addr.port==addr.port; } static int @@ -606,6 +609,10 @@ verify_addresses( fd_gossvf_tile_ctx_t * ctx, fd_gossip_message_t * view, uchar * failed, fd_stem_context_t * stem ) { + int is_loopback_peer = (ctx->peer.addr==ctx->src_addr.addr && ctx->peer.port==ctx->src_addr.port) || + (ctx->peer.addr==ctx->gossip_addr.addr && ctx->peer.port==ctx->gossip_addr.port) || + (fd_ip4_addr_is_loopback( ctx->peer.addr ) && ctx->peer.port==ctx->src_addr.port); + ulong values_len; fd_gossip_value_t * values; switch( view->tag ) { @@ -615,13 +622,16 @@ verify_addresses( fd_gossvf_tile_ctx_t * ctx, return 0; case FD_GOSSIP_MESSAGE_PULL_REQUEST: if( FD_UNLIKELY( !check_addr( ctx->peer, ctx->allow_private_address ) ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_REQUEST_INACTIVE_IDX; + if( FD_UNLIKELY( is_loopback_peer ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_REQUEST_LOOPBACK_IDX; if( FD_UNLIKELY( ping_if_unponged( ctx, ctx->peer, view->pull_request->contact_info->origin, stem ) ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_REQUEST_INACTIVE_IDX; return 0; case FD_GOSSIP_MESSAGE_PUSH: + if( FD_UNLIKELY( is_loopback_peer ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_LOOPBACK_IDX; values_len = view->push->values_len; values = view->push->values; break; case FD_GOSSIP_MESSAGE_PULL_RESPONSE: + if( FD_UNLIKELY( is_loopback_peer ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_LOOPBACK_IDX; values_len = view->pull_response->values_len; values = view->pull_response->values; break; @@ -639,7 +649,6 @@ verify_addresses( fd_gossvf_tile_ctx_t * ctx, .addr = value->contact_info->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_GOSSIP ].is_ipv6 ? 0U : value->contact_info->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_GOSSIP ].ip4, .port = value->contact_info->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_GOSSIP ].port }; - int drop = !check_addr( addr, ctx->allow_private_address ) || ping_if_unponged( ctx, addr, value->origin, stem ); /* Sanitize sockets: zero out any with a multicast address. Matches Agave, which omits bad sockets from the cache but @@ -653,6 +662,14 @@ verify_addresses( fd_gossvf_tile_ctx_t * ctx, } } + /* Prevent ping loopback */ + if( FD_UNLIKELY( !memcmp( value->origin, ctx->identity_pubkey, 32UL ) ) ) continue; + + int is_self_addr = (addr.addr==ctx->gossip_addr.addr && addr.port==ctx->gossip_addr.port) || + (addr.addr==ctx->src_addr.addr && addr.port==ctx->src_addr.port); + int is_loopback = fd_ip4_addr_is_loopback( addr.addr ) && addr.port==ctx->gossip_addr.port; + int drop = (is_self_addr | is_loopback) || !check_addr( addr, ctx->allow_private_address ) || ping_if_unponged( ctx, addr, value->origin, stem ); + if( FD_UNLIKELY( drop ) ) { if( FD_LIKELY( view->tag==FD_GOSSIP_MESSAGE_PUSH ) ) { ctx->metrics.crds_rx[ FD_METRICS_ENUM_GOSSVF_CRDS_OUTCOME_V_DROPPED_PUSH_INACTIVE_IDX ]++; @@ -851,10 +868,12 @@ handle_net( fd_gossvf_tile_ctx_t * ctx, int result = filter_shred_version( ctx, message, failed ); if( FD_UNLIKELY( result ) ) return result; - result = verify_addresses( ctx, message, failed, stem ); + result = verify_signatures( ctx, message, payload, ctx->sha, failed ); if( FD_UNLIKELY( result ) ) return result; - result = verify_signatures( ctx, message, payload, ctx->sha, failed ); + /* verify_addresses includes validation checks against origin pubkey, + so it must come after verify_signatures. */ + result = verify_addresses( ctx, message, failed, stem ); if( FD_UNLIKELY( result ) ) return result; check_duplicate_instance( ctx, message ); @@ -1006,6 +1025,8 @@ unprivileged_init( fd_topo_t const * topo, ctx->round_robin_idx = tile->kind_id; ctx->allow_private_address = tile->gossvf.allow_private_address; + ctx->gossip_addr = tile->gossvf.gossip_addr; + ctx->src_addr = tile->gossvf.src_addr; ctx->keyswitch = fd_keyswitch_join( fd_topo_obj_laddr( topo, tile->id_keyswitch_obj_id ) ); FD_TEST( ctx->keyswitch ); diff --git a/src/discof/ipecho/Local.mk b/src/discof/ipecho/Local.mk index ec8cc8f3541..b1bebf4ee99 100644 --- a/src/discof/ipecho/Local.mk +++ b/src/discof/ipecho/Local.mk @@ -1,5 +1,4 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_ipecho_tile,fd_discof) $(call add-objs,fd_ipecho_client,fd_discof) $(call add-objs,fd_ipecho_server,fd_discof) @@ -9,4 +8,3 @@ $(call make-unit-test,test_ipecho_client,test_ipecho_client,fd_discof fd_disco f $(call make-fuzz-test,fuzz_ipecho_client,fuzz_ipecho_client,fd_discof fd_flamenco fd_ballet fd_util) $(call make-fuzz-test,fuzz_ipecho_server,fuzz_ipecho_server,fd_discof fd_flamenco fd_ballet fd_util) endif -endif diff --git a/src/discof/ipecho/fd_ipecho_client_private.h b/src/discof/ipecho/fd_ipecho_client_private.h index a1531a1bdae..314ffcf722b 100644 --- a/src/discof/ipecho/fd_ipecho_client_private.h +++ b/src/discof/ipecho/fd_ipecho_client_private.h @@ -3,7 +3,7 @@ #include "../../util/fd_util_base.h" -#include +#include struct fd_ipecho_client_peer { int writing; diff --git a/src/discof/ipecho/fd_ipecho_server.c b/src/discof/ipecho/fd_ipecho_server.c index 2bfc775b291..d27df74c272 100644 --- a/src/discof/ipecho/fd_ipecho_server.c +++ b/src/discof/ipecho/fd_ipecho_server.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include diff --git a/src/discof/ipecho/fd_ipecho_tile.c b/src/discof/ipecho/fd_ipecho_tile.c index e3260c2b3d7..b5b35130c63 100644 --- a/src/discof/ipecho/fd_ipecho_tile.c +++ b/src/discof/ipecho/fd_ipecho_tile.c @@ -9,7 +9,7 @@ #include #include -#include +#include #include "generated/fd_ipecho_tile_seccomp.h" diff --git a/src/discof/poh/Local.mk b/src/discof/poh/Local.mk index 5302d71685e..14b39695284 100644 --- a/src/discof/poh/Local.mk +++ b/src/discof/poh/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_poh_tile fd_poh,fd_discof) endif -endif diff --git a/src/discof/reasm/Local.mk b/src/discof/reasm/Local.mk index a2cae1a8874..563e9a07e33 100644 --- a/src/discof/reasm/Local.mk +++ b/src/discof/reasm/Local.mk @@ -1,7 +1,5 @@ -ifdef FD_HAS_ALLOCA $(call add-objs,fd_reasm,fd_discof) ifdef FD_HAS_HOSTED $(call make-unit-test,test_reasm,test_reasm,fd_discof fd_disco fd_flamenco fd_ballet fd_util) $(call run-unit-test,test_reasm) endif -endif diff --git a/src/discof/reasm/fd_reasm.c b/src/discof/reasm/fd_reasm.c index f6c51fc4ce4..79807b7b07e 100644 --- a/src/discof/reasm/fd_reasm.c +++ b/src/discof/reasm/fd_reasm.c @@ -232,42 +232,6 @@ fd_reasm_confirm( fd_reasm_t * reasm, } } -/* This is a gross case reasm needs to handle because Agave currently - does not validate chained merkle roots across slots ie. if a leader - sends a bad chained merkle root on a slot boundary, the cluster - might converge on the leader's block anyways. So we overwrite the - chained merkle root based on the slot and parent_off metadata. - There are two cases: 1. we receive the parent before the child. In - this case we just overwrite the child's CMR. 2. we receive the - child before the parent. In this case every time we receive a new - FEC set we need to check the orphan roots for whether we can link - the orphan to the new FEC via slot metadata, since the chained - merkle root metadata on that orphan root might be wrong. */ - -static int -overwrite_invalid_cmr( fd_reasm_t * reasm, - ulong slot, - ushort parent_off, - uint fec_set_idx, - fd_hash_t const * cmr, - fd_hash_t * out_cmr ) { - fd_reasm_fec_t * pool = reasm_pool( reasm ); - if( FD_UNLIKELY( fec_set_idx==0 && !fd_reasm_query( reasm, cmr ) ) ) { - xid_t * parent_bid = xid_query( reasm->xid, (slot - parent_off) << 32 | UINT_MAX, NULL ); - if( FD_LIKELY( parent_bid ) ) { - fd_reasm_fec_t * parent = pool_ele( pool, parent_bid->idx ); - if( FD_LIKELY( parent ) ) { - FD_BASE58_ENCODE_32_BYTES( cmr->key, cmr_b58 ); - FD_BASE58_ENCODE_32_BYTES( parent->key.key, parent_key_b58 ); - FD_LOG_INFO(( "overwriting invalid cmr for FEC slot: %lu fec_set_idx: %u from %s (CMR) to %s (parent's block id)", slot, fec_set_idx, cmr_b58, parent_key_b58 )); - *out_cmr = parent->key; /* use the parent's merkle root */ - return 1; - } - } - } - return 0; -} - /* Mark the entire subtree beginning from root as equivocating. This is linear in the number of descendants in the subtree, but amortizes because we can short-circuit the BFS at nodes that are already marked @@ -292,38 +256,25 @@ eqvoc( fd_reasm_t * reasm, } static int -validate( fd_reasm_fec_t const * parent, - uint child_fec_set_idx, - uint child_fec_parent_off, - ulong child_slot ) { - - if( FD_UNLIKELY( parent->slot!=child_slot ) ) { - /* If the connecting FECs cross the slot boundary: - - the parent must be complete - - the child fec_set_idx must be 0 - - the child's parent slot must match parent's slot - - the parent off is a sane value */ - if( FD_UNLIKELY( !parent->slot_complete || - child_fec_set_idx!=0U || - child_fec_parent_off==0U || - child_fec_parent_off>child_slot || - child_slot-child_fec_parent_off!=parent->slot ) ) { - FD_LOG_DEBUG(( "fec validation failed: parent->slot!=child->slot (slot=%lu,parent_idx=%u,child_idx=%u)", child_slot, parent->fec_set_idx, child_fec_set_idx )); - return -1; - } - } else { - /* If the connecting FECs don't cross the slot boundary: - - the child fec_set_idx must be greater than the parent's by 32 - - child and parent FEC must have the same parent_off - - the parent must not be slot complete */ - if( FD_UNLIKELY( child_fec_set_idx!=parent->fec_set_idx+FD_FEC_SHRED_CNT || - child_fec_parent_off!=parent->parent_off || - parent->slot_complete ) ) { - FD_LOG_DEBUG(( "fec validation failed: parent->slot==child->slot (slot=%lu,parent_idx=%u,child_idx=%u)", child_slot, parent->fec_set_idx, child_fec_set_idx )); - return -1; - } - } - return 0; +validate_intra( fd_reasm_fec_t const * parent, + fd_reasm_fec_t const * child ) { + return child->fec_set_idx==parent->fec_set_idx+FD_FEC_SHRED_CNT && + child->parent_off ==parent->parent_off && + !parent->slot_complete; +} + +static int +validate_inter( fd_reasm_fec_t const * parent, + fd_reasm_fec_t const * child ) { + return child->slot - child->parent_off==parent->slot && + child->fec_set_idx==0 && + parent->slot_complete; +} + +static inline int +validate_chained_block_id( fd_reasm_fec_t const * parent, + fd_reasm_fec_t const * child ) { + return fd_int_if( parent->slot==child->slot, validate_intra( parent, child ), validate_inter( parent, child ) ); } static void @@ -349,8 +300,7 @@ xid_update( fd_reasm_t * reasm, ulong slot, uint fec_set_idx, ulong pool_idx ) { fd_reasm_fec_t * new_fec = pool_ele( reasm_pool( reasm ), pool_idx ); xid_t * xid = xid_query( reasm->xid, (slot << 32) | fec_set_idx, NULL ); if( FD_UNLIKELY( xid ) ) { - if( FD_UNLIKELY( fec_set_idx==UINT_MAX ) ) new_fec->bid_next = xid->idx; - else new_fec->xid_next = xid->idx; + new_fec->xid_next = xid->idx; xid->idx = pool_idx; /* updates head ptr */ xid->cnt++; } else { @@ -368,20 +318,6 @@ clear_xid_metadata( fd_reasm_t * reasm, fd_reasm_fec_t * pool = reasm_pool( reasm ); ulong fec_idx = pool_idx( pool, fec ); - if( FD_UNLIKELY( fec->slot_complete ) ) { - xid_t * bid = xid_query( reasm->xid, (fec->slot << 32)|UINT_MAX, NULL ); - bid->cnt--; - if( FD_LIKELY( !bid->cnt ) ) { - xid_remove( reasm->xid, bid ); - } else if( FD_LIKELY( bid->idx==fec_idx ) ) { - bid->idx = fec->bid_next; - } else { - fd_reasm_fec_t * prev = pool_ele( pool, bid->idx ); - while( prev->bid_next!=fec_idx ) prev = pool_ele( pool, prev->bid_next ); - prev->bid_next = fec->bid_next; - } - } - xid_t * xid = xid_query( reasm->xid, (fec->slot << 32)|fec->fec_set_idx, NULL ); xid->cnt--; if( FD_LIKELY( !xid->cnt ) ) { @@ -398,9 +334,9 @@ clear_xid_metadata( fd_reasm_t * reasm, } static void -remove_orphan_subtree( fd_reasm_t * reasm, - fd_reasm_fec_t * root, - fd_store_t * opt_store ) { +subtrees_remove( fd_reasm_t * reasm, + fd_reasm_fec_t * root, + fd_store_t * opt_store ) { fd_reasm_fec_t * pool = reasm_pool( reasm ); ulong * bfs = reasm->bfs; @@ -768,7 +704,6 @@ fd_reasm_init( fd_reasm_t * reasm, FD_TEST( reasm->root==pool_idx_null( pool ) ); fec->confirmed = 1; fec->popped = 1; - /* */ xid_update( reasm, slot, UINT_MAX, pool_idx( pool, fec ) ); /* */ xid_update( reasm, slot, 0U, pool_idx( pool, fec ) ); reasm->root = pool_idx( pool, fec ); reasm->slot0 = slot; @@ -852,19 +787,6 @@ fd_reasm_insert( fd_reasm_t * reasm, *evicted = evicted_fec; } - /* If the new FEC set is a child of a FEC that already exists, - validate the new FEC set against the parent. If it fails - validation, remove the FEC from store. */ - - fd_hash_t new_cmr[1]; - if( overwrite_invalid_cmr( reasm, slot, parent_off, fec_set_idx, chained_merkle_root, new_cmr ) ) chained_merkle_root = new_cmr; - - fd_reasm_fec_t * parent = fd_reasm_query( reasm, chained_merkle_root ); - if( FD_UNLIKELY( parent && validate( parent, fec_set_idx, parent_off, slot )!=0 ) ) { - if( FD_LIKELY( opt_store ) ) fd_store_remove( opt_store, merkle_root ); - return NULL; - } - FD_TEST( pool_free( pool ) ); fd_reasm_fec_t * fec = pool_ele_acquire( pool ); fec->key = *merkle_root; @@ -893,21 +815,18 @@ fd_reasm_insert( fd_reasm_t * reasm, fec->out.prev = null; fec->in_out = 0; fec->xid_next = null; - fec->bid_next = null; fec->subtreel.next = null; fec->subtreel.prev = null; fec->cmr = *chained_merkle_root; - if( FD_UNLIKELY( slot_complete ) ) { - xid_t * bid = xid_query( reasm->xid, (slot << 32) | UINT_MAX, NULL ); - if( FD_UNLIKELY( bid ) ) { - fd_reasm_fec_t * orig_fec = pool_ele( pool, bid->idx ); - FD_BASE58_ENCODE_32_BYTES( orig_fec->key.key, prev_block_id_b58 ); - FD_BASE58_ENCODE_32_BYTES( fec->key.key, curr_block_id_b58 ); - FD_LOG_WARNING(( "equivocating block_id for FEC slot: %lu fec_set_idx: %u prev: %s curr: %s", fec->slot, fec->fec_set_idx, prev_block_id_b58, curr_block_id_b58 )); /* it's possible there's equivocation... */ - } - xid_update( reasm, slot, UINT_MAX, pool_idx( pool, fec ) ); + fd_reasm_fec_t * parent = fd_reasm_query( reasm, chained_merkle_root ); + if( FD_UNLIKELY( parent && !validate_chained_block_id( parent, fec ) ) ) { + FD_BASE58_ENCODE_32_BYTES( fec->key.key, child_key_cstr ); + FD_BASE58_ENCODE_32_BYTES( parent->key.key, parent_key_cstr ); + FD_LOG_INFO(( "[%s] failed to validate chained block id FEC: (%lu %u %s). parent (%lu %u %s).", __func__, fec->slot, fec->fec_set_idx, child_key_cstr, parent->slot, parent->fec_set_idx, parent_key_cstr )); + pool_ele_release( pool, fec ); + return NULL; } /* If the FEC's parent already exists link it correctly: the new FEC @@ -939,30 +858,31 @@ fd_reasm_insert( fd_reasm_t * reasm, By definition any children must be orphaned (a child cannot be part of a connected tree before its parent). Therefore, we only search through the orphaned subtrees. As part of this operation, we also - coalesce connected orphans into the same tree. This way we only - need to search the orphan tree roots (vs. all orphaned nodes). */ + coalesce orphans into orphan subtrees. An orphan may be connected + to its parent, but part of an orphaned subtree. This way we only + need to search for children the orphan subtree roots (vs. all + orphaned nodes). */ ulong min_descendant = ULONG_MAX; /* needed for eqvoc checks below */ FD_TEST( bfs_empty( bfs ) ); - for( ulong orphan_root_idx = subtreel_is_empty( subtreel, pool ) ? null : subtreel_idx_peek_head( subtreel, pool ); - orphan_root_idx != null; ) { /* link orphan subtrees to the new FEC */ - fd_reasm_fec_t * orphan_root = pool_ele( pool, orphan_root_idx ); - orphan_root_idx = orphan_root->subtreel.next; /* current root may be removed below */ - fd_hash_t new_cmr[1]; - /* if received child before parent that crosses a slot boundary, - overwrite the child's CMR */ - if( overwrite_invalid_cmr( reasm, orphan_root->slot, orphan_root->parent_off, orphan_root->fec_set_idx, &orphan_root->cmr, new_cmr ) ) orphan_root->cmr = *new_cmr; - /* Skip orphan_root if CMR doesn't chain to the new FEC's MR */ - if( FD_UNLIKELY( !fd_hash_eq1( orphan_root->cmr, fec->key ) ) ) continue; - if( FD_UNLIKELY( validate( fec, orphan_root->fec_set_idx, orphan_root->parent_off, orphan_root->slot )!=0 ) ) { - remove_orphan_subtree( reasm, orphan_root, opt_store ); + for( subtreel_iter_t iter = subtreel_iter_fwd_init( subtreel, pool ); + !subtreel_iter_done ( iter, subtreel, pool ); + iter = subtreel_iter_fwd_next( iter, subtreel, pool ) ) { + fd_reasm_fec_t * parent = fec; + fd_reasm_fec_t * child = subtreel_iter_ele( iter, subtreel, pool ); + if( FD_UNLIKELY( !fd_hash_eq( &parent->key, &child->cmr ) ) ) continue; + if( FD_UNLIKELY( !validate_chained_block_id( parent, child ) ) ) { + FD_BASE58_ENCODE_32_BYTES( child->key.key, child_key_cstr ); + FD_BASE58_ENCODE_32_BYTES( parent->key.key, parent_key_cstr ); + FD_LOG_INFO(( "[%s] failed to validate chained block id FEC: (%lu %u %s). parent (%lu %u %s).", __func__, child->slot, child->fec_set_idx, child_key_cstr, parent->slot, parent->fec_set_idx, parent_key_cstr )); + subtrees_remove( reasm, child, opt_store ); continue; } - link( reasm, fec, orphan_root ); - subtrees_ele_remove( subtrees, &orphan_root->key, NULL, pool ); - subtreel_ele_remove( subtreel, orphan_root, pool ); - orphaned_ele_insert( orphaned, orphan_root, pool ); - min_descendant = fd_ulong_min( min_descendant, orphan_root->slot ); + link( reasm, parent, child ); + subtrees_ele_remove( subtrees, &child->key, NULL, pool ); + subtreel_ele_remove( subtreel, child, pool ); + orphaned_ele_insert( orphaned, child, pool ); + min_descendant = fd_ulong_min( min_descendant, child->slot ); } /* Third, we advance the frontier outward beginning from fec as we may diff --git a/src/discof/reasm/fd_reasm.h b/src/discof/reasm/fd_reasm.h index 0ec05d933d5..e6afa20b71a 100644 --- a/src/discof/reasm/fd_reasm.h +++ b/src/discof/reasm/fd_reasm.h @@ -129,8 +129,7 @@ derive its direct child's key and therefore query for it. For the special case of the first FEC set in a slot, the reasm can - derive the parent key by subtracting the parent_off from the slot and - querying for (slot, UINT_MAX). + derive the parent key by subtracting the parent_off from the slot. CHAINING @@ -189,7 +188,6 @@ struct __attribute__((aligned(128UL))) fd_reasm_fec { int in_out; /* whether this FEC is currently present in the out dlist */ ulong xid_next; /* pool idx of next FEC with same (slot, fec_set_idx). ULONG_MAX if no next. Maintain the order of most recent to least recent. */ - ulong bid_next; /* pool idx of next FEC with same (slot, UINT_MAX). ULONG_MAX if no next. Maintain the order of most recent to least recent. */ /* Data (set by caller) */ diff --git a/src/discof/reasm/fd_reasm_private.h b/src/discof/reasm/fd_reasm_private.h index 635f8d2da3a..94a2cf7d62d 100644 --- a/src/discof/reasm/fd_reasm_private.h +++ b/src/discof/reasm/fd_reasm_private.h @@ -52,7 +52,7 @@ #include "../../util/tmpl/fd_deque_dynamic.c" struct xid { - ulong key; /* 32 msb slot | 32 lsb fec_set_idx. if fec_set_idx is UINT_MAX, then this xid represents the block id for this slot. */ + ulong key; /* 32 msb slot | 32 lsb fec_set_idx */ ulong idx; /* pool idx of first FEC seen. Updated only on confirmation. */ uint cnt; /* count of FECs with this xid key. If > 1, equivocation occurred on this FEC set */ }; diff --git a/src/discof/reasm/test_reasm.c b/src/discof/reasm/test_reasm.c index b129fb1675a..f9fea94cdae 100644 --- a/src/discof/reasm/test_reasm.c +++ b/src/discof/reasm/test_reasm.c @@ -182,44 +182,6 @@ test_publish( fd_wksp_t * wksp ) { fd_wksp_free_laddr( fd_reasm_delete( fd_reasm_leave( reasm ) ) ); } -void -test_slot_mr( fd_wksp_t * wksp ) { - ulong fec_max = 32; - void * mem = fd_wksp_alloc_laddr( wksp, fd_reasm_align(), fd_reasm_footprint( fec_max ), 1UL ); - fd_reasm_t * reasm = fd_reasm_join( fd_reasm_new( mem, fec_max, 0UL ) ); - FD_TEST( reasm ); - - fd_reasm_fec_t * pool = reasm_pool( reasm ); - // ulong null = pool_idx_null( pool ); - - ancestry_t * ancestry = reasm->ancestry; - frontier_t * frontier = reasm->frontier; - subtrees_t * subtrees = reasm->subtrees; - - fd_hash_t mr0[1] = {{{ 0 }}}; - fd_hash_t mr1[1] = {{{ 1 }}}; - fd_hash_t mr2[1] = {{{ 2 }}}; - fd_hash_t mr3[1] = {{{ 3 }}}; - fd_hash_t mr4[1] = {{{ 4 }}}; - fd_reasm_fec_t * ev[1]; - - fd_reasm_init( reasm, mr1, 1 ); /* set root */ - fd_reasm_fec_t * fec1 = fd_reasm_query( reasm, mr1 ); - FD_TEST( fec1 ); - FD_TEST( frontier_ele_query( frontier, &fec1->key, NULL, pool ) == fec1 ); - - fd_reasm_fec_t * fec2 = fd_reasm_insert( reasm, mr2, mr0, 2, 0, 1, 32, 0, 1, 0, NULL, ev ); /* insert with bad mr0 should be mr1 */ - FD_TEST( ancestry_ele_query( ancestry, &fec1->key, NULL, pool ) ); /* successfully chains anyways */ - FD_TEST( frontier_ele_query( frontier, &fec2->key, NULL, pool ) ); - - fd_reasm_fec_t * fec4 = fd_reasm_insert( reasm, mr4, mr0, 4, 0, 1, 32, 0, 1, 0 , NULL, ev ); /* insert with bad mr0 should be mr3 */ - FD_TEST( subtrees_ele_query( subtrees, &fec4->key, NULL, pool ) ); /* orphaned */ - - fd_reasm_fec_t * fec3 = fd_reasm_insert( reasm, mr3, mr2, 3, 0, 1, 32, 0, 1, 0, NULL, ev ); - FD_TEST( ancestry_ele_query( ancestry, &fec3->key, NULL, pool ) ); /* mr3 should chain to 2 */ - FD_TEST( frontier_ele_query( frontier, &fec4->key, NULL, pool ) ); /* mr4 should have chained */ -} - void test_eqvoc( fd_wksp_t * wksp ) { ulong fec_max = 32; @@ -306,8 +268,7 @@ test_eqvoc( fd_wksp_t * wksp ) { } void -test_eqvoc_xidbid( fd_wksp_t * wksp ) { - // checks the properties of the xid and bid maps are maintained correctly +test_eqvoc_xid( fd_wksp_t * wksp ) { ulong fec_max = 32; void * mem = fd_wksp_alloc_laddr( wksp, fd_reasm_align(), fd_reasm_footprint( fec_max ), 1UL ); fd_reasm_t * reasm = fd_reasm_join( fd_reasm_new( mem, fec_max, 0UL ) ); @@ -327,39 +288,27 @@ test_eqvoc_xidbid( fd_wksp_t * wksp ) { fd_reasm_fec_t * fec3 = fd_reasm_insert( reasm, mr3, mr2, 1, 64, 1, 32, 0, 1, 0, NULL, ev ); ulong last_xid = (1UL << 32) | 64UL; - ulong bid = (1UL << 32) | UINT_MAX; - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 1 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec3 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 1 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec3 ) ); fd_reasm_fec_t * fec4 = fd_reasm_insert( reasm, mr4, mr2, 1, 64, 1, 32, 0, 1, 0, NULL, ev ); /* equivocate on last fec set idx, gets placed at head of list*/ - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 2 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 2 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); fd_reasm_confirm( reasm, mr4 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 2 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 2 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); - /* publishing forward to mr4 (doesn't actually happen ... ) but should update the xid and bid maps to cnt 1 */ + /* publishing forward to mr4 should update the xid map to cnt 1 */ fd_reasm_publish( reasm, mr4, NULL ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 1 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 1 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); fd_hash_t mr5[1] = {{{ 1, 5 }}}; fd_reasm_insert( reasm, mr5, mr4, 2, 0, 1, 32, 0, 1, 0, NULL, ev ); fd_reasm_publish( reasm, mr5, NULL ); - ulong bid2 = (2UL << 32) | UINT_MAX; - FD_TEST( !xid_query( reasm->xid, bid, NULL ) ); FD_TEST( !xid_query( reasm->xid, last_xid, NULL ) ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->cnt == 1 ); } void @@ -1248,23 +1197,18 @@ test_eqvoc_xid_evict( fd_wksp_t * wksp ) { fd_reasm_fec_t * fec4 = fd_reasm_insert( reasm, mr4, mr2, 1, 64, 1, 32, 0, 1, 0, NULL, ev ); ulong last_xid = (1UL << 32) | 64UL; - ulong bid = (1UL << 32) | UINT_MAX; - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 2 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 2 ); /* Confirm fec4 (the second equivocating FEC). This moves fec4 to - the head of the xid/bid linked lists. */ + the head of the xid linked list. */ fd_reasm_confirm( reasm, mr4 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); /* Publish to mr4. This prunes fec3 (the unconfirmed equivocating FEC) via clear_slot_metadata. After publish, cnt should be 1 and idx should still point to fec4 (the confirmed survivor). */ fd_reasm_publish( reasm, mr4, NULL ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 1 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 1 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); @@ -1291,32 +1235,26 @@ test_eqvoc_xid_evict( fd_wksp_t * wksp ) { fd_reasm_fec_t * fecf = fd_reasm_insert( reasm, mrf, mrc, 1, 64, 1, 32, 0, 1, 0, NULL, ev ); /* first in list */ ulong xid2 = (1UL << 32) | 64UL; - ulong bid2 = (1UL << 32) | UINT_MAX; FD_TEST( xid_query( reasm->xid, xid2, NULL )->cnt == 3 ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->cnt == 3 ); /* Confirm fecd (the first equivocating FEC this time). Should not move head of list. */ fd_reasm_confirm( reasm, mrd ); FD_TEST( xid_query( reasm->xid, xid2, NULL )->idx == pool_idx( reasm_pool( reasm ), fecf ) ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->idx == pool_idx( reasm_pool( reasm ), fecf ) ); /* simulate eviction of fecf */ fd_reasm_remove( reasm, fecf, NULL ); fd_reasm_pool_release( reasm, fecf ); FD_TEST( xid_query( reasm->xid, xid2, NULL )->cnt == 2 ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->cnt == 2 ); FD_TEST( xid_query( reasm->xid, xid2, NULL )->idx == pool_idx( reasm_pool( reasm ), fecd ) ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->idx == pool_idx( reasm_pool( reasm ), fecd ) ); - /* Build forward from fecd so publish prunes fece, fec f */ + /* Build forward from fecd so publish prunes fece */ fd_reasm_insert( reasm, mrg, mrd, 2, 0, 1, 32, 0, 1, 0, NULL, ev ); fd_reasm_publish( reasm, mrg, NULL ); /* fece should have been pruned. fecd survives at cnt 1. */ FD_TEST( !xid_query( reasm->xid, xid2, NULL ) ); - FD_TEST( !xid_query( reasm->xid, bid2, NULL ) ); fd_wksp_free_laddr( fd_reasm_delete( fd_reasm_leave( reasm ) ) ); FD_LOG_NOTICE(( "test_eqvoc_xid_evict passed" )); @@ -1337,12 +1275,11 @@ main( int argc, char ** argv ) { test_insert( wksp ); test_publish( wksp ); - test_slot_mr( wksp ); test_eqvoc( wksp ); test_xid_capacity( wksp ); test_fec_after_eos( wksp ); test_eqvoc_transitive( wksp ); - test_eqvoc_xidbid( wksp ); + test_eqvoc_xid( wksp ); test_eqvoc_xid_evict( wksp ); test_evict( wksp ); test_validate_cross_slot( wksp ); diff --git a/src/discof/repair/Local.mk b/src/discof/repair/Local.mk index 4a7bd5a3d82..60f2a54f5c4 100644 --- a/src/discof/repair/Local.mk +++ b/src/discof/repair/Local.mk @@ -1,8 +1,8 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_repair_tile,fd_discof) endif -endif +$(call add-objs,fd_reqlim,fd_discof) +$(call add-hdrs,fd_reqlim.h) $(call add-objs,fd_policy,fd_discof) $(call add-hdrs,fd_policy.h) $(call add-objs,fd_inflight,fd_discof) diff --git a/src/discof/repair/fd_inflight.c b/src/discof/repair/fd_inflight.c index 921bf3ac319..ba96acf29f4 100644 --- a/src/discof/repair/fd_inflight.c +++ b/src/discof/repair/fd_inflight.c @@ -86,7 +86,7 @@ fd_inflights_request_insert( fd_inflights_t * table, } long -fd_inflights_request_remove( fd_inflights_t * table, +fd_inflights_request_match( fd_inflights_t * table, ulong nonce, ulong slot, ulong shred_idx, diff --git a/src/discof/repair/fd_inflight.h b/src/discof/repair/fd_inflight.h index caec59eabdf..889c14c05a6 100644 --- a/src/discof/repair/fd_inflight.h +++ b/src/discof/repair/fd_inflight.h @@ -35,7 +35,6 @@ struct __attribute__((aligned(128UL))) fd_inflight { long timestamp_ns; /* timestamp when request was created (nanoseconds) */ fd_pubkey_t pubkey; /* public key of the peer */ - /* Reserved for DLL eviction */ ulong prevll; /* pool index of previous element in DLL */ ulong nextll; /* pool index of next element in DLL */ @@ -117,14 +116,18 @@ fd_inflights_join( void * shmem ); void fd_inflights_request_insert( fd_inflights_t * table, ulong nonce, fd_pubkey_t const * pubkey, ulong slot, ulong shred_idx ); +/* Matches a shred response to an inflight entry. Returns the RTT in + nanoseconds if a match is found, 0 otherwise. This will remove all + entries with the same (nonce, slot, shred_idx) tuple from both the + outstanding and popped maps, and credits the response to the oldest + entry. */ long -fd_inflights_request_remove( fd_inflights_t * table, ulong nonce, ulong slot, ulong shred_idx, fd_pubkey_t * peer_out ); +fd_inflights_request_match( fd_inflights_t * table, ulong nonce, ulong slot, ulong shred_idx, fd_pubkey_t * peer_out ); /* Important! Caller must guarantee that the request list is not empty. This function cannot fail and will always try to populate the output parameters. Typical use should only call this after fd_inflights_should_drain returns true. */ - void fd_inflights_request_pop( fd_inflights_t * table, ulong * nonce_out, ulong * slot_out, ulong * shred_idx_out ); @@ -134,7 +137,7 @@ fd_inflights_should_drain( fd_inflights_t * table, long now ) { if( FD_UNLIKELY( fd_inflight_dlist_is_empty( table->outstanding_dl, table->pool ) ) ) return 0; fd_inflight_t * inflight_req = fd_inflight_dlist_ele_peek_head( table->outstanding_dl, table->pool ); - if( FD_UNLIKELY( inflight_req->timestamp_ns + FD_POLICY_DEDUP_TIMEOUT < now ) ) return 1; + if( FD_UNLIKELY( inflight_req->timestamp_ns + FD_REQLIM_DEDUP_TIMEOUT < now ) ) return 1; return 0; } diff --git a/src/discof/repair/fd_policy.c b/src/discof/repair/fd_policy.c index 743caeb7c0c..8e2830ed34a 100644 --- a/src/discof/repair/fd_policy.c +++ b/src/discof/repair/fd_policy.c @@ -7,7 +7,7 @@ #define MS_PER_TICK (400.0 / TARGET_TICK_PER_SLOT) void * -fd_policy_new( void * shmem, ulong dedup_max, ulong peer_max, ulong seed, fd_rnonce_ss_t const * rnonce_ss ) { +fd_policy_new( void * shmem, ulong peer_max, ulong seed, fd_rnonce_ss_t const * rnonce_ss ) { if( FD_UNLIKELY( !shmem ) ) { FD_LOG_WARNING(( "NULL mem" )); @@ -19,24 +19,18 @@ fd_policy_new( void * shmem, ulong dedup_max, ulong peer_max, ulong seed, fd_rno return NULL; } - ulong footprint = fd_policy_footprint( dedup_max, peer_max ); + ulong footprint = fd_policy_footprint( peer_max ); fd_memset( shmem, 0, footprint ); ulong peer_chain_cnt = fd_policy_peer_map_chain_cnt_est( peer_max ); FD_SCRATCH_ALLOC_INIT( l, shmem ); fd_policy_t * policy = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_align(), sizeof(fd_policy_t) ); - void * dedup_map = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_dedup_map_align(), fd_policy_dedup_map_footprint ( dedup_max ) ); - void * dedup_pool = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_dedup_pool_align(), fd_policy_dedup_pool_footprint( dedup_max ) ); - void * dedup_lru = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_dedup_lru_align(), fd_policy_dedup_lru_footprint() ); void * peers = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_peer_map_align(), fd_policy_peer_map_footprint( peer_chain_cnt ) ); void * peers_pool = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_peer_pool_align(), fd_policy_peer_pool_footprint( peer_max ) ); void * peers_fast = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_peer_dlist_align(), fd_policy_peer_dlist_footprint() ); void * peers_slow = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_peer_dlist_align(), fd_policy_peer_dlist_footprint() ); FD_TEST( FD_SCRATCH_ALLOC_FINI( l, fd_policy_align() ) == (ulong)shmem + footprint ); - policy->dedup.map = fd_policy_dedup_map_new ( dedup_map, dedup_max, seed ); - policy->dedup.pool = fd_policy_dedup_pool_new( dedup_pool, dedup_max ); - policy->dedup.lru = fd_policy_dedup_lru_new ( dedup_lru ); policy->peers.map = fd_policy_peer_map_new ( peers, peer_chain_cnt, seed ); policy->peers.pool = fd_policy_peer_pool_new ( peers_pool, peer_max ); policy->peers.fast = fd_policy_peer_dlist_new( peers_fast ); @@ -67,16 +61,14 @@ fd_policy_join( void * shpolicy ) { return NULL; } - policy->dedup.map = fd_policy_dedup_map_join ( policy->dedup.map ); - policy->dedup.pool = fd_policy_dedup_pool_join( policy->dedup.pool ); - policy->dedup.lru = fd_policy_dedup_lru_join ( policy->dedup.lru ); policy->peers.map = fd_policy_peer_map_join ( policy->peers.map ); policy->peers.pool = fd_policy_peer_pool_join ( policy->peers.pool ); policy->peers.fast = fd_policy_peer_dlist_join( policy->peers.fast ); policy->peers.slow = fd_policy_peer_dlist_join( policy->peers.slow ); - policy->peers.select.iter = fd_policy_peer_dlist_iter_fwd_init( policy->peers.slow, policy->peers.pool ); - policy->peers.select.stage = 0; + policy->peers.select.fast_iter = fd_policy_peer_dlist_iter_fwd_init( policy->peers.fast, policy->peers.pool ); + policy->peers.select.slow_iter = fd_policy_peer_dlist_iter_fwd_init( policy->peers.slow, policy->peers.pool ); + policy->peers.select.cnt = 0; return policy; } @@ -108,37 +100,6 @@ fd_policy_delete( void * policy ) { return policy; } -/* dedup_evict evicts the first element returned by the map iterator. */ - -static void -dedup_evict( fd_policy_t * policy ) { - fd_policy_dedup_ele_t * ele = fd_policy_dedup_lru_ele_pop_head( policy->dedup.lru, policy->dedup.pool ); - fd_policy_dedup_map_ele_remove( policy->dedup.map, &ele->key, NULL, policy->dedup.pool ); - fd_policy_dedup_pool_ele_release( policy->dedup.pool, ele ); -} - -/* dedup_next returns 1 if key is deduped, 0 otherwise. */ -static int -dedup_next( fd_policy_t * policy, ulong key, long now ) { - fd_policy_dedup_t * dedup = &policy->dedup; - fd_policy_dedup_ele_t * ele = fd_policy_dedup_map_ele_query( dedup->map, &key, NULL, dedup->pool ); - if( FD_UNLIKELY( !ele ) ) { - if( FD_UNLIKELY( !fd_policy_dedup_pool_free( dedup->pool ) ) ) dedup_evict( policy ); - ele = fd_policy_dedup_pool_ele_acquire( dedup->pool ); - ele->key = key; - ele->req_ts = 0; - fd_policy_dedup_map_ele_insert ( dedup->map, ele, dedup->pool ); - fd_policy_dedup_lru_ele_push_tail( dedup->lru, ele, dedup->pool ); - } - if( FD_LIKELY( now < ele->req_ts + (long)FD_POLICY_DEDUP_TIMEOUT ) ) { - fd_policy_dedup_lru_ele_remove( dedup->lru, ele, dedup->pool ); - fd_policy_dedup_lru_ele_push_tail( dedup->lru, ele, dedup->pool ); - return 1; - } - ele->req_ts = now; - return 0; -} - static ulong ts_ms( long wallclock ) { return (ulong)wallclock / (ulong)1e6; } @@ -159,28 +120,70 @@ passes_throttle_threshold( fd_policy_t * policy, fd_forest_blk_t * ele ) { return 0; } +static inline fd_policy_peer_dlist_iter_t +peer_iter_advance( fd_policy_peer_dlist_iter_t iter, + fd_policy_peer_dlist_t * dlist, + fd_policy_peer_t * pool ) { + iter = fd_policy_peer_dlist_iter_fwd_next( iter, dlist, pool ); + if( FD_UNLIKELY( fd_policy_peer_dlist_iter_done( iter, dlist, pool ) ) ) { + iter = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + } + return iter; +} + fd_pubkey_t const * fd_policy_peer_select( fd_policy_t * policy ) { - fd_policy_peer_dlist_t * best_dlist = policy->peers.fast; - fd_policy_peer_dlist_t * worst_dlist = policy->peers.slow; - fd_policy_peer_t * pool = policy->peers.pool; + fd_policy_peer_dlist_t * fast = policy->peers.fast; + fd_policy_peer_dlist_t * slow = policy->peers.slow; + fd_policy_peer_t * pool = policy->peers.pool; - if( FD_UNLIKELY( fd_policy_peer_pool_used( policy->peers.pool ) == 0 ) ) return NULL; + if( FD_UNLIKELY( fd_policy_peer_pool_used( pool ) == 0 ) ) return NULL; - fd_policy_peer_dlist_t * dlist = bucket_stages[policy->peers.select.stage] == FD_POLICY_LATENCY_FAST ? best_dlist : worst_dlist; + /* reinit stale iterators. happens when peers are inserted into a + previously-empty list after the iterator was initialized. */ + int fast_empty = fd_policy_peer_dlist_iter_done( fd_policy_peer_dlist_iter_fwd_init( fast, pool ), fast, pool ); + int slow_empty = fd_policy_peer_dlist_iter_done( fd_policy_peer_dlist_iter_fwd_init( slow, pool ), slow, pool ); - while( FD_UNLIKELY( fd_policy_peer_dlist_iter_done( policy->peers.select.iter, dlist, pool ) ) ) { - policy->peers.select.stage = (policy->peers.select.stage + 1) % (sizeof(bucket_stages) / sizeof(uint)); - dlist = bucket_stages[policy->peers.select.stage] == FD_POLICY_LATENCY_FAST ? best_dlist : worst_dlist; - policy->peers.select.iter = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + if( FD_UNLIKELY( !fast_empty && fd_policy_peer_dlist_iter_done( policy->peers.select.fast_iter, fast, pool ) ) ) { + policy->peers.select.fast_iter = fd_policy_peer_dlist_iter_fwd_init( fast, pool ); } - fd_policy_peer_t * select = fd_policy_peer_dlist_iter_ele( policy->peers.select.iter, dlist, pool ); - policy->peers.select.iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.iter, dlist, pool ); + if( FD_UNLIKELY( !slow_empty && fd_policy_peer_dlist_iter_done( policy->peers.select.slow_iter, slow, pool ) ) ) { + policy->peers.select.slow_iter = fd_policy_peer_dlist_iter_fwd_init( slow, pool ); + } + + fd_policy_peer_t * select; + + /* select will be set to current iterator status. Then iterator should + be advanced for the following peer_select call. */ + + if( FD_UNLIKELY( fast_empty ) ) { + select = fd_policy_peer_dlist_iter_ele( policy->peers.select.slow_iter, slow, pool ); + policy->peers.select.slow_iter = peer_iter_advance( policy->peers.select.slow_iter, slow, pool ); + return &select->key; + } + + if( FD_UNLIKELY( slow_empty ) ) { + select = fd_policy_peer_dlist_iter_ele( policy->peers.select.fast_iter, fast, pool ); + policy->peers.select.fast_iter = peer_iter_advance( policy->peers.select.fast_iter, fast, pool ); + return &select->key; + } + + /* interleave FD_POLICY_FAST_PER_SLOW fast, 1 slow. */ + if( FD_LIKELY( policy->peers.select.cnt < FD_POLICY_FAST_PER_SLOW ) ) { + select = fd_policy_peer_dlist_iter_ele( policy->peers.select.fast_iter, fast, pool ); + policy->peers.select.fast_iter = peer_iter_advance( policy->peers.select.fast_iter, fast, pool ); + policy->peers.select.cnt++; + return &select->key; + } + + select = fd_policy_peer_dlist_iter_ele( policy->peers.select.slow_iter, slow, pool ); + policy->peers.select.slow_iter = peer_iter_advance( policy->peers.select.slow_iter, slow, pool ); + policy->peers.select.cnt = 0; return &select->key; } fd_repair_msg_t const * -fd_policy_next( fd_policy_t * policy, fd_forest_t * forest, fd_repair_t * repair, long now, ulong highest_known_slot, int * charge_busy ) { +fd_policy_next( fd_policy_t * policy, fd_reqlim_t * dedup, fd_forest_t * forest, fd_repair_t * repair, long now, ulong highest_known_slot, int * charge_busy ) { fd_forest_blk_t * pool = fd_forest_pool( forest ); fd_forest_subtlist_t * subtlist = fd_forest_subtlist( forest ); *charge_busy = 0; @@ -196,8 +199,8 @@ fd_policy_next( fd_policy_t * policy, fd_forest_t * forest, fd_repair_t * repair iter = fd_forest_subtlist_iter_fwd_next( iter, subtlist, pool ) ) { *charge_busy = 1; fd_forest_blk_t * orphan = fd_forest_subtlist_iter_ele( iter, subtlist, pool ); - ulong key = fd_policy_dedup_key( FD_REPAIR_KIND_ORPHAN, orphan->slot, UINT_MAX ); - if( FD_UNLIKELY( !dedup_next( policy, key, now ) ) ) { + ulong key = fd_reqlim_key( FD_REPAIR_KIND_ORPHAN, orphan->slot, UINT_MAX ); + if( FD_UNLIKELY( !fd_reqlim_next( dedup, key, now ) ) ) { uint nonce = fd_rnonce_ss_compute( policy->rnonce_ss, 0, orphan->slot, 0U, now ); out = fd_repair_orphan( repair, fd_policy_peer_select( policy ), now_ms, nonce, orphan->slot ); return out; @@ -251,11 +254,15 @@ fd_policy_next( fd_policy_t * policy, fd_forest_t * forest, fd_repair_t * repair if( FD_UNLIKELY( iter->shred_idx == UINT_MAX ) ) { // We'll never know the the highest shred for the current turbine slot, so there's no point in requesting it. - if( FD_UNLIKELY( ele->slot < highest_known_slot && !dedup_next( policy, fd_policy_dedup_key( FD_REPAIR_KIND_HIGHEST_SHRED, ele->slot, UINT_MAX ), now ) ) ) { + if( FD_UNLIKELY( ele->slot < highest_known_slot && !fd_reqlim_next( dedup, fd_reqlim_key( FD_REPAIR_KIND_HIGHEST_SHRED, ele->slot, UINT_MAX ), now ) ) ) { uint nonce = fd_rnonce_ss_compute( policy->rnonce_ss, 0, ele->slot, 0U, now ); out = fd_repair_highest_shred( repair, fd_policy_peer_select( policy ), now_ms, nonce, ele->slot, 0 ); } } else { + /* Regular repair requests are not deduped. Any potential regular + shred request that will be made needs to be handled at the repair + tile level to allow repair tile to re-request the same shred if + it gets deduped. */ uint nonce = fd_rnonce_ss_compute( policy->rnonce_ss, 1, ele->slot, iter->shred_idx, now ); out = fd_repair_shred( repair, fd_policy_peer_select( policy ), now_ms, nonce, ele->slot, iter->shred_idx ); if( FD_UNLIKELY( ele->first_req_ts == 0 ) ) ele->first_req_ts = fd_tickcount(); @@ -280,7 +287,9 @@ fd_policy_peer_upsert( fd_policy_t * policy, fd_pubkey_t const * key, fd_ip4_por peer->first_resp_ts = 0; peer->last_resp_ts = 0; peer->total_lat = 0; + peer->ewma_lat = 0; peer->stake = 0; + peer->unanswered = 0; peer->ping = 0; fd_policy_peer_map_ele_insert( peer_map, peer, pool ); @@ -310,13 +319,18 @@ fd_policy_peer_remove( fd_policy_t * policy, fd_pubkey_t const * key ) { fd_policy_peer_t * peer = fd_policy_peer_map_ele_query( policy->peers.map, key, NULL, pool ); if( FD_UNLIKELY( !peer ) ) return 0; - if( FD_UNLIKELY( policy->peers.select.iter == fd_policy_peer_pool_idx( pool, peer ) ) ) { - /* In general removal during iteration is safe, except when the iterator is on the peer to be removed. */ - fd_policy_peer_dlist_t * dlist = bucket_stages[policy->peers.select.stage] == FD_POLICY_LATENCY_FAST ? policy->peers.fast : policy->peers.slow; - policy->peers.select.iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.iter, dlist, pool ); + ulong peer_idx = fd_policy_peer_pool_idx( pool, peer ); + fd_policy_peer_dlist_t * bucket = fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ); + + /* Advance iterators past the peer being removed while the dlist links + are still intact, so iter_fwd_next can follow the forward pointer. */ + if( FD_UNLIKELY( policy->peers.select.fast_iter == peer_idx ) ) { + policy->peers.select.fast_iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.fast_iter, bucket, pool ); + } + if( FD_UNLIKELY( policy->peers.select.slow_iter == peer_idx ) ) { + policy->peers.select.slow_iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.slow_iter, bucket, pool ); } - fd_policy_peer_dlist_t * bucket = fd_policy_peer_latency_bucket( policy, peer->total_lat, peer->res_cnt ); fd_policy_peer_dlist_ele_remove( bucket, peer, pool ); fd_policy_peer_map_ele_remove ( policy->peers.map, key, NULL, pool ); fd_policy_peer_pool_ele_release( pool, peer ); @@ -328,6 +342,7 @@ fd_policy_peer_request_update( fd_policy_t * policy, fd_pubkey_t const * to ) { fd_policy_peer_t * active = fd_policy_peer_query( policy, to ); if( FD_LIKELY( active ) ) { active->req_cnt++; + active->unanswered++; active->last_req_ts = fd_tickcount(); if( FD_UNLIKELY( active->first_req_ts == 0 ) ) active->first_req_ts = active->last_req_ts; } @@ -338,14 +353,26 @@ fd_policy_peer_response_update( fd_policy_t * policy, fd_pubkey_t const * to, lo fd_policy_peer_t * peer = fd_policy_peer_query( policy, to ); if( FD_LIKELY( peer ) ) { long now = fd_tickcount(); - fd_policy_peer_dlist_t * prev_bucket = fd_policy_peer_latency_bucket( policy, peer->total_lat, peer->res_cnt ); + fd_policy_peer_dlist_t * prev_bucket = fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ); peer->res_cnt++; + peer->unanswered = 0; if( FD_UNLIKELY( peer->first_resp_ts == 0 ) ) peer->first_resp_ts = now; peer->last_resp_ts = now; peer->total_lat += rtt; - fd_policy_peer_dlist_t * new_bucket = fd_policy_peer_latency_bucket( policy, peer->total_lat, peer->res_cnt ); + if( FD_UNLIKELY( peer->res_cnt == 1 ) ) { + peer->ewma_lat = rtt; + } else { + peer->ewma_lat = peer->ewma_lat - peer->ewma_lat / (long)FD_POLICY_EWMA_ALPHA_DENOM + + rtt / (long)FD_POLICY_EWMA_ALPHA_DENOM; + } + fd_policy_peer_dlist_t * new_bucket = fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ); if( prev_bucket != new_bucket ) { + /* Advance stale iterators */ + ulong peer_idx = fd_policy_peer_pool_idx( policy->peers.pool, peer ); + if( FD_UNLIKELY( policy->peers.select.fast_iter == peer_idx ) ) policy->peers.select.fast_iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.fast_iter, policy->peers.fast, policy->peers.pool ); + if( FD_UNLIKELY( policy->peers.select.slow_iter == peer_idx ) ) policy->peers.select.slow_iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.slow_iter, policy->peers.slow, policy->peers.pool ); + fd_policy_peer_dlist_ele_remove ( prev_bucket, peer, policy->peers.pool ); fd_policy_peer_dlist_ele_push_tail( new_bucket, peer, policy->peers.pool ); } diff --git a/src/discof/repair/fd_policy.h b/src/discof/repair/fd_policy.h index e855b43b4a2..4ef09bb8f0a 100644 --- a/src/discof/repair/fd_policy.h +++ b/src/discof/repair/fd_policy.h @@ -20,64 +20,9 @@ #include "../forest/fd_forest.h" #include "../../util/net/fd_net_headers.h" #include "fd_repair.h" +#include "fd_reqlim.h" #include "../../disco/shred/fd_rnonce_ss.h" -/* fd_policy_dedup implements a dedup cache for already sent Repair - requests. It is backed by a map and linked list, in which the least - recently used (oldest Repair request) in the map is evicted when the - map is full. */ - -typedef struct fd_policy_dedup fd_policy_dedup_t; /* forward decl */ - -/* fd_policy_dedup_ele describes an element in the dedup cache. The key - compactly encodes an fd_repair_req_t. - - | kind (2 bits) | slot (32 bits) | shred_idx (15 bits) | - | 0x0 (SHRED) | slot | shred_idx | - | 0x1 (HIGHEST_SHRED) | slot | >=shred_idx | - | 0x2 (ORPHAN) | orphan slot | N/A | - - Note the common header (sig, from, to, ts, nonce) is not included. */ - -struct fd_policy_dedup_ele { - ulong key; /* compact encoding of fd_repair_req_t detailed above */ - ulong prev; /* reserved by lru */ - ulong next; - ulong hash; /* reserved by pool and map_chain */ - long req_ts; /* timestamp when the request was sent */ -}; -typedef struct fd_policy_dedup_ele fd_policy_dedup_ele_t; - -FD_FN_CONST static inline ulong -fd_policy_dedup_key( uint kind, ulong slot, uint shred_idx ) { - slot = fd_ulong_extract_lsb( (ulong)slot, 32 ); - return (ulong)kind << 62 | slot << 30 | shred_idx << 15; -} - -FD_FN_CONST static inline uint fd_policy_dedup_key_kind ( ulong key ) { return (uint)fd_ulong_extract( key, 62, 63 ); } -FD_FN_CONST static inline uint fd_policy_dedup_key_shred_idx( ulong key ) { return (uint)fd_ulong_extract( key, 15, 29 ); } - -#define POOL_NAME fd_policy_dedup_pool -#define POOL_T fd_policy_dedup_ele_t -#define POOL_NEXT hash -#include "../../util/tmpl/fd_pool.c" - -#define MAP_NAME fd_policy_dedup_map -#define MAP_ELE_T fd_policy_dedup_ele_t -#define MAP_NEXT hash -#include "../../util/tmpl/fd_map_chain.c" - -#define DLIST_NAME fd_policy_dedup_lru -#define DLIST_ELE_T fd_policy_dedup_ele_t -#define DLIST_NEXT next -#define DLIST_PREV prev -#include "../../util/tmpl/fd_dlist.c" -struct fd_policy_dedup { - fd_policy_dedup_map_t * map; /* map of dedup elements */ - fd_policy_dedup_ele_t * pool; /* memory pool of dedup elements */ - fd_policy_dedup_lru_t * lru; /* singly-linked list of dedup elements by insertion order */ -}; - /* fd_policy_peer_t describes a peer validator that serves repairs. Peers are discovered through gossip, via a "ContactInfo" message that shares the validator's ip and repair server port. */ @@ -103,9 +48,11 @@ struct fd_policy_peer { long last_resp_ts; long total_lat; /* total RTT over all responses in ns */ + long ewma_lat; /* exponential weighted moving average of RTT in ns */ ulong stake; - uint ping; /* whether this peer currently has a ping in our sign queue */ + uint unanswered; /* requests sent since last response received */ + uint ping; /* whether this peer currently has a ping in our sign queue */ }; typedef struct fd_policy_peer fd_policy_peer_t; @@ -131,41 +78,24 @@ typedef struct fd_policy_peer fd_policy_peer_t; struct fd_policy_peers { fd_policy_peer_t * pool; /* memory pool of peers */ - fd_policy_peer_dlist_t * fast; /* [0, FD_POLICY_LATENCY_THRESH] ms latency group FD_POLICY_LATENCY_FAST */ - fd_policy_peer_dlist_t * slow; /* (FD_POLICY_LATENCY_THRESH, inf) ms latency group FD_POLICY_LATENCY_SLOW */ + fd_policy_peer_dlist_t * fast; /* peers with ewma RTT <= FD_POLICY_LATENCY_THRESH */ + fd_policy_peer_dlist_t * slow; /* peers with ewma RTT > FD_POLICY_LATENCY_THRESH or no RTT measured */ fd_policy_peer_map_t * map; /* map keyed by pubkey to peer data */ struct { - uint stage; /* < sizeof(bucket_stages) */ - fd_policy_peer_dlist_iter_t iter; /* round-robin index of next peer */ + uint cnt; /* fast selections since last slow, wraps at FD_POLICY_FAST_PER_SLOW */ + fd_policy_peer_dlist_iter_t fast_iter; /* round-robin iterator into fast list */ + fd_policy_peer_dlist_iter_t slow_iter; /* round-robin iterator into slow list */ } select; }; typedef struct fd_policy_peers fd_policy_peers_t; -#define FD_POLICY_LATENCY_FAST 1 -#define FD_POLICY_LATENCY_SLOW 3 - /* Policy parameters start */ -#define FD_POLICY_LATENCY_THRESH 80e6L /* less than this is a BEST peer, otherwise a WORST peer */ -#define FD_POLICY_DEDUP_TIMEOUT 80e6L /* how long wait to request the same shred */ - -/* Round robins through ALL the worst peers once, then round robins - through ALL the best peers once, then round robins through ALL the - best peers again, etc. All peers are initially added to the worst - bucket, and moved once round trip times have been recorded. */ - -static const uint bucket_stages[7] = { - FD_POLICY_LATENCY_SLOW, /* do a cycle through worst peers 1/7 times to see if any improvements are made */ - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, -}; +#define FD_POLICY_LATENCY_THRESH 100e6L /* less than this is a BEST peer, otherwise a WORST peer */ +#define FD_POLICY_FAST_PER_SLOW 6U /* pick 6 fast peers per 1 slow peer */ +#define FD_POLICY_EWMA_ALPHA_DENOM 8UL /* EWMA weight = 1/DENOM, i.e. ewma = 7/8*old + 1/8*sample */ /* Policy parameters end */ struct fd_policy { - fd_policy_dedup_t dedup; /* dedup cache of already sent requests */ fd_policy_peers_t peers; /* repair peers (strategy & data) */ long tsmax; /* maximum time for an iteration before resetting the DFS to root */ long tsref; /* reference timestamp for resetting DFS */ @@ -188,7 +118,7 @@ fd_policy_align( void ) { } FD_FN_CONST static inline ulong -fd_policy_footprint( ulong dedup_max, ulong peer_max ) { +fd_policy_footprint( ulong peer_max ) { ulong peer_chain_cnt = fd_policy_peer_map_chain_cnt_est( peer_max ); return FD_LAYOUT_FINI( FD_LAYOUT_APPEND( @@ -196,14 +126,8 @@ fd_policy_footprint( ulong dedup_max, ulong peer_max ) { FD_LAYOUT_APPEND( FD_LAYOUT_APPEND( FD_LAYOUT_APPEND( - FD_LAYOUT_APPEND( - FD_LAYOUT_APPEND( - FD_LAYOUT_APPEND( FD_LAYOUT_INIT, fd_policy_align(), sizeof(fd_policy_t) ), - fd_policy_dedup_map_align(), fd_policy_dedup_map_footprint ( dedup_max ) ), - fd_policy_dedup_pool_align(), fd_policy_dedup_pool_footprint( dedup_max ) ), - fd_policy_dedup_lru_align(), fd_policy_dedup_lru_footprint() ), fd_policy_peer_map_align(), fd_policy_peer_map_footprint ( peer_chain_cnt ) ), fd_policy_peer_pool_align(), fd_policy_peer_pool_footprint( peer_max ) ), fd_policy_peer_dlist_align(), fd_policy_peer_dlist_footprint() ), @@ -218,7 +142,7 @@ fd_policy_footprint( ulong dedup_max, ulong peer_max ) { returns. */ void * -fd_policy_new( void * shmem, ulong dedup_max, ulong peer_max, ulong seed, fd_rnonce_ss_t const * rnonce_ss ); +fd_policy_new( void * shmem, ulong peer_max, ulong seed, fd_rnonce_ss_t const * rnonce_ss ); /* fd_policy_join joins the caller to the policy. policy points to the first byte of the memory region backing the policy in the caller's @@ -245,10 +169,14 @@ void * fd_policy_delete( void * policy ); /* fd_policy_next returns the next repair request that should be made. - Currently implements the default round-robin DFS strategy. */ + Currently wraps on top of the forest iterator, but also handles + making orphan requests and highest shred requests. For non-normal + repair requests, policy uses the dedup cache to deduplicate requests. + For all normal requests, the caller must check the dedup cache before + making a request. */ fd_repair_msg_t const * -fd_policy_next( fd_policy_t * policy, fd_forest_t * forest, fd_repair_t * repair, long now, ulong highest_known_slot, int * charge_busy ); +fd_policy_next( fd_policy_t * policy, fd_reqlim_t * dedup, fd_forest_t * forest, fd_repair_t * repair, long now, ulong highest_known_slot, int * charge_busy ); /* fd_policy_peer_upsert upserts a peer into the policy. If the peer does not exist, it is created. If the peer already exists, it is @@ -270,8 +198,8 @@ void fd_policy_peer_request_update( fd_policy_t * policy, fd_pubkey_t const * to ); static inline fd_policy_peer_dlist_t * -fd_policy_peer_latency_bucket( fd_policy_t * policy, long total_rtt /* ns */, ulong res_cnt ) { - if( res_cnt == 0 || (long)(total_rtt / (long)res_cnt) > FD_POLICY_LATENCY_THRESH ) return policy->peers.slow; +fd_policy_peer_latency_bucket( fd_policy_t * policy, long lat, ulong res_cnt ) { + if( res_cnt == 0 || lat > FD_POLICY_LATENCY_THRESH ) return policy->peers.slow; return policy->peers.fast; } diff --git a/src/discof/repair/fd_repair_tile.c b/src/discof/repair/fd_repair_tile.c index 4b87f753617..053cf1a7544 100644 --- a/src/discof/repair/fd_repair_tile.c +++ b/src/discof/repair/fd_repair_tile.c @@ -170,7 +170,7 @@ get the dedup cache max. Since we are sizing the dedup cache for a generous margin, and this number not particularly fragile or sensitive, we can leave it static. */ -#define FD_DEDUP_CACHE_MAX (1<<15) +#define FD_REQLIM_CACHE_MAX (1<<20) /* static map from request type to metric array index */ static uint metric_index[FD_REPAIR_KIND_ORPHAN + 1] = { @@ -337,6 +337,7 @@ struct ctx { fd_forest_t * forest; fd_policy_t * policy; + fd_reqlim_t * dedup; fd_inflights_t * inflights; fd_repair_t * protocol; @@ -437,7 +438,8 @@ scratch_footprint( fd_topo_tile_t const * tile ) { l = FD_LAYOUT_APPEND( l, alignof(ctx_t), sizeof(ctx_t) ); l = FD_LAYOUT_APPEND( l, fd_repair_align(), fd_repair_footprint () ); l = FD_LAYOUT_APPEND( l, fd_forest_align(), fd_forest_footprint ( tile->repair.slot_max ) ); - l = FD_LAYOUT_APPEND( l, fd_policy_align(), fd_policy_footprint ( FD_DEDUP_CACHE_MAX, FD_REPAIR_PEER_MAX ) ); + l = FD_LAYOUT_APPEND( l, fd_policy_align(), fd_policy_footprint ( FD_REPAIR_PEER_MAX ) ); + l = FD_LAYOUT_APPEND( l, fd_reqlim_align(), fd_reqlim_footprint ( FD_REQLIM_CACHE_MAX ) ); l = FD_LAYOUT_APPEND( l, fd_inflights_align(), fd_inflights_footprint () ); l = FD_LAYOUT_APPEND( l, fd_signs_map_align(), fd_signs_map_footprint ( lg_sign_depth ) ); l = FD_LAYOUT_APPEND( l, fd_signs_queue_align(), fd_signs_queue_footprint() ); @@ -718,23 +720,13 @@ after_sign( ctx_t * ctx, we've sent it and let the inflight timeout request it down the line. */ - fd_policy_peer_t * active = fd_policy_peer_query( ctx->policy, &pending->msg.shred.to ); - int is_regular_req = pending->msg.kind == FD_REPAIR_KIND_SHRED && pending->msg.shred.nonce > 0; // not a highest/orphan request - + fd_policy_peer_t * active = fd_policy_peer_query( ctx->policy, &pending->msg.shred.to ); if( FD_UNLIKELY( !active ) ) { - if( FD_LIKELY( is_regular_req ) ) { - /* Artificially add to the inflights table, pretend we've sent it - and let the inflight timeout request it down the line. */ - fd_inflights_request_insert( ctx->inflights, pending->msg.shred.nonce, &pending->msg.shred.to, pending->msg.shred.slot, pending->msg.shred.shred_idx ); - } + /* Already added to the inflights table, pretend we've sent it + and let the inflight timeout request it down the line. */ return; } /* Happy path - all is well, our peer didn't drop out from beneath us. */ - if( FD_LIKELY( is_regular_req ) ) { - fd_inflights_request_insert( ctx->inflights, pending->msg.shred.nonce, &pending->msg.shred.to, pending->msg.shred.slot, pending->msg.shred.shred_idx ); - fd_policy_peer_request_update( ctx->policy, &pending->msg.shred.to ); - } - if( FD_UNLIKELY( pending->msg.kind == FD_REPAIR_KIND_ORPHAN ) ) ctx->metrics->last_requested_orphan = pending->msg.orphan.slot; else ctx->metrics->last_requested_slot = pending->msg.shred.slot; @@ -793,12 +785,11 @@ after_shred( ctx_t * ctx, if( FD_UNLIKELY( !blk_insert_check( ctx, blk, shred->slot, evicted ) ) ) return; if( FD_LIKELY( fd_forest_data_shred_insert( ctx->forest, shred->slot, shred->slot - shred->data.parent_off, shred->idx, shred->fec_set_idx, slot_complete, ref_tick, src, mr, cmr ) ) ) { - if( FD_UNLIKELY( src == SHRED_SRC_REPAIR && ( rtt = fd_inflights_request_remove( ctx->inflights, nonce, shred->slot, shred->idx, &peer ) ) > 0 ) ) { + if( FD_UNLIKELY( src == SHRED_SRC_REPAIR && ( rtt = fd_inflights_request_match( ctx->inflights, nonce, shred->slot, shred->idx, &peer ) ) > 0 ) ) { fd_policy_peer_response_update( ctx->policy, &peer, rtt ); fd_histf_sample( ctx->metrics->response_latency, (ulong)rtt ); } } - } else { fd_forest_code_shred_insert( ctx->forest, shred->slot, shred->idx ); } @@ -1115,6 +1106,67 @@ after_frag( ctx_t * ctx, } } +/* Defer a request by adding it to the outstanding inflights table so it + can be re-requested after a timeout window. Nonce is 0 because these + are not real requests made to the network, and cannot be matched + by a shred response. */ +static void +defer_inflight_request( ctx_t * ctx, ulong slot, ulong shred_idx ) { + fd_hash_t hash = { .ul[0] = 0 }; + fd_inflight_key_t inflight_req = { .slot = slot, .shred_idx = shred_idx, .nonce = 0 }; + if( FD_LIKELY( !fd_inflight_map_ele_query( ctx->inflights->map, &inflight_req, NULL, ctx->inflights->pool ) ) ) { + fd_inflights_request_insert( ctx->inflights, 0, &hash, slot, shred_idx ); + } +} + +/* Should be called for any regular FD_REPAIR_KIND_SHRED request made. */ +static void +record_inflight_request( ctx_t * ctx, ulong nonce, fd_pubkey_t const * peer, ulong slot, ulong shred_idx ) { + fd_inflights_request_insert( ctx->inflights, nonce, peer, slot, shred_idx ); + fd_policy_peer_request_update( ctx->policy, peer ); +} + + +/* Repair request invariants: + + Highest window index requests and orphan requests are much less + fragile than regular shred requests. This is because we request + orphans and highest window index requests whenever we "need" them, + i.e. we fire and forget them. + + But regular shred requests are only iterated once per shred per slot. + This is for performance reasons - we don't want to iterate over the + forest more than necessary. If we let knowledge of a regular shred + request get dropped, it's possible the request could get lost + forever. This is why any regular shred request that is conceived + needs to be handled at the repair tile level. All regular shred + requests must be added to the inflights outstanding table so it can + be re-requested after a timeout window. + + An inflight entry should only ever be permanently removed upon + receipt of a shred response. + + There are two methods through which we make regular shred requests: + 1. policy_next + 2. fd_inflights_request_pop + + In general, policy_next makes the first request for shred X, and + fd_inflights_request_pop makes all subsequent requests for shred X at + DEDUP_TIMEOUT intervals. This is to give each request a fair chance + to be received, but also to avoid colliding nonces. This is because + we want to be as accurate as possible when tracking per-peer response + latency. + + With eviction, it's possible for policy_next to make the same request + for shred X multiple times, in short timeout intervals. Therefore we + need to have both policy_next and fd_inflights_request_pop requests + pass through the same dedup cache. At the point of eviction, we + leave requests for that slot in the dedup cache and in the inflights + table. If an old request from before eviction happens to + dedup a request on the new insertion of the slot, these requests must + be queued up in inflights table so they can be re-requested after a + timeout window. */ + static inline void after_credit( ctx_t * ctx, fd_stem_context_t * stem FD_PARAM_UNUSED, @@ -1151,19 +1203,20 @@ after_credit( ctx_t * ctx, ulong nonce; ulong slot; ulong shred_idx; *charge_busy = 1; fd_inflights_request_pop( ctx->inflights, &nonce, &slot, &shred_idx ); + fd_forest_blk_t * blk = fd_forest_query( ctx->forest, slot ); if( FD_UNLIKELY( blk && !fd_forest_blk_idxs_test( blk->idxs, shred_idx ) ) ) { fd_pubkey_t const * peer = fd_policy_peer_select( ctx->policy ); - ctx->metrics->rerequest++; - nonce = fd_rnonce_ss_compute( ctx->repair_nonce_ss, 1, slot, (uint)shred_idx, now ); - if( FD_UNLIKELY( !peer ) ) { - /* No peers. But we CANNOT lose this request. */ - /* Add this request to the inflights table, pretend we've sent it and let the inflight timeout request it down the line. */ - fd_hash_t hash = { .ul[0] = 0 }; - fd_inflights_request_insert( ctx->inflights, nonce, &hash, slot, shred_idx ); + + if( FD_UNLIKELY( !peer || fd_reqlim_next( ctx->dedup, fd_reqlim_key( FD_REPAIR_KIND_SHRED, slot, (uint)shred_idx ), now ) ) ) { + /* No peers available, park the request in inflights. */ + defer_inflight_request( ctx, slot, shred_idx ); } else { + ctx->metrics->rerequest++; + nonce = fd_rnonce_ss_compute( ctx->repair_nonce_ss, 1, slot, (uint)shred_idx, now ); fd_repair_msg_t * msg = fd_repair_shred( ctx->protocol, peer, (ulong)now/(ulong)1e6, (uint)nonce, slot, shred_idx ); fd_repair_send_sign_request( ctx, sign_out, msg, NULL ); + record_inflight_request( ctx, nonce, peer, slot, shred_idx ); /* Request is definitely a regular shred request. */ return; } } @@ -1171,9 +1224,23 @@ after_credit( ctx_t * ctx, if( FD_UNLIKELY( fd_inflights_outstanding_free( ctx->inflights ) <= fd_signs_map_key_cnt( ctx->signs_map ) ) ) return; /* no new requests allowed */ - fd_repair_msg_t const * cout = fd_policy_next( ctx->policy, ctx->forest, ctx->protocol, now, ctx->metrics->current_slot, charge_busy ); + fd_repair_msg_t const * cout = fd_policy_next( ctx->policy, ctx->dedup, ctx->forest, ctx->protocol, now, ctx->metrics->current_slot, charge_busy ); if( FD_UNLIKELY( !cout ) ) return; + + if( ( cout->kind == FD_REPAIR_KIND_SHRED && fd_reqlim_next( ctx->dedup, fd_reqlim_key( FD_REPAIR_KIND_SHRED, cout->shred.slot, (uint)cout->shred.shred_idx ), now ) ) ) { + /* Here if policy_next is re-requesting a shred that's already been + requested. This could be happen during a race - imagine we make a + request for shred 0 in slot Y. Then eviction causes slot Y to be + removed and then readded. policy_next will re-request shred 0, + but if we let it get dropped here, it's possible the request + could get lost forever. */ + defer_inflight_request( ctx, cout->shred.slot, cout->shred.shred_idx ); + return; + } + + /* finally, send the request made by policy */ fd_repair_send_sign_request( ctx, sign_out, cout, NULL ); + if( FD_LIKELY( cout->kind == FD_REPAIR_KIND_SHRED ) ) record_inflight_request( ctx, cout->shred.nonce, &cout->shred.to, cout->shred.slot, cout->shred.shred_idx ); } static void @@ -1273,7 +1340,8 @@ unprivileged_init( fd_topo_t const * topo, ctx_t * ctx = FD_SCRATCH_ALLOC_APPEND( l, alignof(ctx_t), sizeof(ctx_t) ); ctx->protocol = FD_SCRATCH_ALLOC_APPEND( l, fd_repair_align(), fd_repair_footprint() ); ctx->forest = FD_SCRATCH_ALLOC_APPEND( l, fd_forest_align(), fd_forest_footprint( tile->repair.slot_max ) ); - ctx->policy = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_align(), fd_policy_footprint( FD_DEDUP_CACHE_MAX, FD_REPAIR_PEER_MAX ) ); + ctx->policy = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_align(), fd_policy_footprint( FD_REPAIR_PEER_MAX ) ); + ctx->dedup = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_align(), fd_reqlim_footprint( FD_REQLIM_CACHE_MAX ) ); ctx->inflights = FD_SCRATCH_ALLOC_APPEND( l, fd_inflights_align(), fd_inflights_footprint() ); ctx->signs_map = FD_SCRATCH_ALLOC_APPEND( l, fd_signs_map_align(), fd_signs_map_footprint( lg_sign_depth ) ); ctx->pong_queue = FD_SCRATCH_ALLOC_APPEND( l, fd_signs_queue_align(), fd_signs_queue_footprint() ); @@ -1282,9 +1350,10 @@ unprivileged_init( fd_topo_t const * topo, if( FD_UNLIKELY( scratch_top > (ulong)scratch + scratch_footprint( tile ) ) ) FD_LOG_ERR(( "scratch overflow %lu %lu %lu", scratch_top - (ulong)scratch - scratch_footprint( tile ), scratch_top, (ulong)scratch + scratch_footprint( tile ) )); - ctx->protocol = fd_repair_join ( fd_repair_new ( ctx->protocol, &ctx->identity_public_key ) ); - ctx->forest = fd_forest_join ( fd_forest_new ( ctx->forest, tile->repair.slot_max, ctx->repair_seed ) ); - ctx->policy = fd_policy_join ( fd_policy_new ( ctx->policy, FD_DEDUP_CACHE_MAX, FD_REPAIR_PEER_MAX, ctx->repair_seed, ctx->repair_nonce_ss ) ); + ctx->protocol = fd_repair_join ( fd_repair_new ( ctx->protocol, &ctx->identity_public_key ) ); + ctx->forest = fd_forest_join ( fd_forest_new ( ctx->forest, tile->repair.slot_max, ctx->repair_seed ) ); + ctx->policy = fd_policy_join ( fd_policy_new ( ctx->policy, FD_REPAIR_PEER_MAX, ctx->repair_seed, ctx->repair_nonce_ss ) ); + ctx->dedup = fd_reqlim_join ( fd_reqlim_new ( ctx->dedup, FD_REQLIM_CACHE_MAX, ctx->repair_seed ) ); ctx->inflights = fd_inflights_join ( fd_inflights_new ( ctx->inflights, ctx->repair_seed+1234UL ) ); ctx->signs_map = fd_signs_map_join ( fd_signs_map_new ( ctx->signs_map, lg_sign_depth, 0UL ) ); ctx->pong_queue = fd_signs_queue_join ( fd_signs_queue_new ( ctx->pong_queue ) ); diff --git a/src/discof/repair/fd_reqlim.c b/src/discof/repair/fd_reqlim.c new file mode 100644 index 00000000000..b8d0c29fc21 --- /dev/null +++ b/src/discof/repair/fd_reqlim.c @@ -0,0 +1,117 @@ +#include "fd_reqlim.h" + +void * +fd_reqlim_new( void * shmem, ulong dedup_max, ulong seed ) { + + if( FD_UNLIKELY( !shmem ) ) { + FD_LOG_WARNING(( "NULL mem" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)shmem, fd_reqlim_align() ) ) ) { + FD_LOG_WARNING(( "misaligned mem" )); + return NULL; + } + + ulong footprint = fd_reqlim_footprint( dedup_max ); + fd_memset( shmem, 0, footprint ); + + FD_SCRATCH_ALLOC_INIT( l, shmem ); + fd_reqlim_t * dedup = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_align(), sizeof(fd_reqlim_t) ); + void * map = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_map_align(), fd_reqlim_map_footprint ( dedup_max ) ); + void * pool = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_pool_align(), fd_reqlim_pool_footprint( dedup_max ) ); + void * lru = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_lru_align(), fd_reqlim_lru_footprint() ); + FD_TEST( FD_SCRATCH_ALLOC_FINI( l, fd_reqlim_align() ) == (ulong)shmem + footprint ); + + dedup->map = fd_reqlim_map_new ( map, dedup_max, seed ); + dedup->pool = fd_reqlim_pool_new( pool, dedup_max ); + dedup->lru = fd_reqlim_lru_new ( lru ); + + return shmem; +} + +fd_reqlim_t * +fd_reqlim_join( void * shdedup ) { + fd_reqlim_t * dedup = (fd_reqlim_t *)shdedup; + + if( FD_UNLIKELY( !dedup ) ) { + FD_LOG_WARNING(( "NULL dedup" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)dedup, fd_reqlim_align() ) ) ) { + FD_LOG_WARNING(( "misaligned dedup" )); + return NULL; + } + + dedup->map = fd_reqlim_map_join ( dedup->map ); + dedup->pool = fd_reqlim_pool_join( dedup->pool ); + dedup->lru = fd_reqlim_lru_join ( dedup->lru ); + + return dedup; +} + +void * +fd_reqlim_leave( fd_reqlim_t const * dedup ) { + + if( FD_UNLIKELY( !dedup ) ) { + FD_LOG_WARNING(( "NULL dedup" )); + return NULL; + } + + return (void *)dedup; +} + +void * +fd_reqlim_delete( void * dedup ) { + + if( FD_UNLIKELY( !dedup ) ) { + FD_LOG_WARNING(( "NULL dedup" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)dedup, fd_reqlim_align() ) ) ) { + FD_LOG_WARNING(( "misaligned dedup" )); + return NULL; + } + + return dedup; +} + +/* dedup_evict evicts the least recently used element from the cache. */ + +static void +dedup_evict( fd_reqlim_t * dedup ) { + fd_reqlim_ele_t * ele = fd_reqlim_lru_ele_pop_head( dedup->lru, dedup->pool ); + fd_reqlim_map_ele_remove( dedup->map, &ele->key, NULL, dedup->pool ); + fd_reqlim_pool_ele_release( dedup->pool, ele ); +} + +int +fd_reqlim_next( fd_reqlim_t * dedup, ulong key, long now ) { + fd_reqlim_ele_t * ele = fd_reqlim_map_ele_query( dedup->map, &key, NULL, dedup->pool ); + if( FD_UNLIKELY( !ele ) ) { + if( FD_UNLIKELY( !fd_reqlim_pool_free( dedup->pool ) ) ) dedup_evict( dedup ); + ele = fd_reqlim_pool_ele_acquire( dedup->pool ); + ele->key = key; + ele->req_ts = 0; + fd_reqlim_map_ele_insert ( dedup->map, ele, dedup->pool ); + fd_reqlim_lru_ele_push_tail( dedup->lru, ele, dedup->pool ); + } + if( FD_LIKELY( now < ele->req_ts + (long)FD_REQLIM_DEDUP_TIMEOUT ) ) { + fd_reqlim_lru_ele_remove ( dedup->lru, ele, dedup->pool ); + fd_reqlim_lru_ele_push_tail( dedup->lru, ele, dedup->pool ); + return 1; + } + ele->req_ts = now; + return 0; +} + +int +fd_reqlim_query( fd_reqlim_t const * dedup, ulong key, long now ) { + fd_reqlim_ele_t const * ele = fd_reqlim_map_ele_query_const( dedup->map, &key, NULL, dedup->pool ); + if( FD_LIKELY( ele && now < ele->req_ts + (long)FD_REQLIM_DEDUP_TIMEOUT ) ) { + return 1; + } + return 0; +} diff --git a/src/discof/repair/fd_reqlim.h b/src/discof/repair/fd_reqlim.h new file mode 100644 index 00000000000..a67bd7514a9 --- /dev/null +++ b/src/discof/repair/fd_reqlim.h @@ -0,0 +1,124 @@ +#ifndef HEADER_fd_src_discof_repair_fd_reqlim_h +#define HEADER_fd_src_discof_repair_fd_reqlim_h + +/* fd_reqlim implements a dedup cache for already sent Repair requests. + It is backed by a map and linked list, in which the least recently + used (oldest Repair request) in the map is evicted when the map is + full. */ + +#include "../../util/fd_util.h" + +#define FD_REQLIM_DEDUP_TIMEOUT 80000000L /* 80 ms - how long to wait before re-requesting the same shred */ + +FD_STATIC_ASSERT( 16000000L < FD_REQLIM_DEDUP_TIMEOUT, "DEDUP_TIMEOUT must be greater than 16ms to avoid rnonces from trivially clashing" ); + +/* fd_reqlim_ele describes an element in the dedup cache. The key + compactly encodes an fd_repair_req_t. + + | kind (4 bits) | slot (32 bits) | shred_idx (28 bits) | + | bits 63:60 | bits 59:28 | bits 27:0 | + + kind uses the FD_REPAIR_KIND_* wire values directly. + + Note the common header (sig, from, to, ts, nonce) is not included. */ + +struct fd_reqlim_ele { + ulong key; /* compact encoding of fd_repair_req_t detailed above */ + ulong prev; /* reserved by lru */ + ulong next; + ulong hash; /* reserved by pool and map_chain */ + long req_ts; /* timestamp when the request was sent */ +}; +typedef struct fd_reqlim_ele fd_reqlim_ele_t; + +FD_FN_CONST static inline ulong +fd_reqlim_key( uint kind, ulong slot, uint shred_idx ) { + ulong k = (ulong)fd_uint_extract_lsb( kind, 4 ); + ulong i = (ulong)fd_uint_extract_lsb( shred_idx, 28 ); + ulong s = fd_ulong_extract_lsb( slot, 32 ); + return k << 60 | s << 28 | i; +} + +#define POOL_NAME fd_reqlim_pool +#define POOL_T fd_reqlim_ele_t +#define POOL_NEXT hash +#include "../../util/tmpl/fd_pool.c" + +#define MAP_NAME fd_reqlim_map +#define MAP_ELE_T fd_reqlim_ele_t +#define MAP_NEXT hash +#include "../../util/tmpl/fd_map_chain.c" + +#define DLIST_NAME fd_reqlim_lru +#define DLIST_ELE_T fd_reqlim_ele_t +#define DLIST_NEXT next +#define DLIST_PREV prev +#include "../../util/tmpl/fd_dlist.c" + +struct fd_reqlim { + fd_reqlim_map_t * map; /* map of dedup elements */ + fd_reqlim_ele_t * pool; /* memory pool of dedup elements */ + fd_reqlim_lru_t * lru; /* linked list of dedup elements by insertion order */ +}; +typedef struct fd_reqlim fd_reqlim_t; + +/* Constructors */ + +FD_FN_CONST static inline ulong +fd_reqlim_align( void ) { + return 128UL; +} + +FD_FN_CONST static inline ulong +fd_reqlim_footprint( ulong dedup_max ) { + return FD_LAYOUT_FINI( + FD_LAYOUT_APPEND( + FD_LAYOUT_APPEND( + FD_LAYOUT_APPEND( + FD_LAYOUT_APPEND( + FD_LAYOUT_INIT, + fd_reqlim_align(), sizeof(fd_reqlim_t) ), + fd_reqlim_map_align(), fd_reqlim_map_footprint ( dedup_max ) ), + fd_reqlim_pool_align(), fd_reqlim_pool_footprint( dedup_max ) ), + fd_reqlim_lru_align(), fd_reqlim_lru_footprint() ), + fd_reqlim_align() ); +} + +/* fd_reqlim_new formats an unused memory region for use as a dedup + cache. mem is a non-NULL pointer to this region in the local address + space with the required footprint and alignment. */ + +void * +fd_reqlim_new( void * shmem, ulong dedup_max, ulong seed ); + +/* fd_reqlim_join joins the caller to the dedup cache. Returns a pointer + in the local address space to dedup on success. */ + +fd_reqlim_t * +fd_reqlim_join( void * shdedup ); + +/* fd_reqlim_leave leaves a current local join. */ + +void * +fd_reqlim_leave( fd_reqlim_t const * dedup ); + +/* fd_reqlim_delete unformats a memory region used as a dedup cache. */ + +void * +fd_reqlim_delete( void * dedup ); + +/* fd_reqlim_next returns 1 if key is deduped (already sent within the + dedup timeout window), 0 otherwise. When not deduped, the key is + inserted/refreshed in the cache with the current timestamp. */ + +int +fd_reqlim_next( fd_reqlim_t * dedup, ulong key, long now ); + +/* fd_reqlim_query returns 1 if key is in the dedup cache and was sent + within the dedup timeout window, 0 otherwise. Read-only: does not + insert or update any state. */ + +int +fd_reqlim_query( fd_reqlim_t const * dedup, ulong key, long now ); + +#endif /* HEADER_fd_src_discof_repair_fd_reqlim_h */ diff --git a/src/discof/repair/test_policy.c b/src/discof/repair/test_policy.c index 898a21c711e..94788761c4f 100644 --- a/src/discof/repair/test_policy.c +++ b/src/discof/repair/test_policy.c @@ -3,11 +3,11 @@ void test_peer_removal( fd_wksp_t * wksp ) { ulong peer_max = 1024; - ulong dedup_max = 1024; + fd_rnonce_ss_t rnonce[1]; fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); - void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( dedup_max, peer_max ), 1 ); - fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, dedup_max, peer_max, 0, rnonce ) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, peer_max, 0, rnonce ) ); FD_TEST( policy ); int num_slow = 0; @@ -17,7 +17,7 @@ test_peer_removal( fd_wksp_t * wksp ) { fd_ip4_port_t addr = { 0 }; fd_policy_peer_t const * peer = fd_policy_peer_upsert( policy, &key, &addr ); fd_policy_peer_response_update( policy, &key, (long)(i*10e6L)); - if ( i <= 8 ) num_fast++; + if ( i <= 10 ) num_fast++; else num_slow++; FD_TEST( peer ); } @@ -109,14 +109,475 @@ test_peer_removal( fd_wksp_t * wksp ) { FD_BASE58_ENCODE_32_BYTES( peer->key.key, p ); FD_TEST( memcmp( peer->key.key, key66.key, 32UL ) == 0 ); - /* move it to slow list */ - fd_policy_peer_response_update( policy, &key66, (long)(500e6L)); + /* move it to slow list (EWMA needs a large enough sample to cross threshold) */ + fd_policy_peer_response_update( policy, &key66, (long)(1000e6L)); peer = fd_policy_peer_dlist_ele_peek_tail( policy->peers.slow, policy->peers.pool ); FD_TEST( peer ); - FD_BASE58_ENCODE_32_BYTES( peer->key.key, p2 ); FD_TEST( memcmp( peer->key.key, key66.key, 32UL ) == 0 ); } +void +test_peer_interleave( fd_wksp_t * wksp ) { + ulong peer_max = 1024; + + fd_rnonce_ss_t rnonce[1]; + fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, peer_max, 0, rnonce ) ); + FD_TEST( policy ); + + /* Insert 6 fast peers (ids 1-6) and 6 slow peers (ids 7-12). */ + for( int i = 1; i <= 12; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &key, &addr ); + if( i <= 6 ) { + fd_policy_peer_response_update( policy, &key, (long)(10e6L) ); + } + } + + /* Verify 6:1 interleaving pattern over two full cycles (14 selects). */ + for( int cycle = 0; cycle < 2; cycle++ ) { + for( int j = 0; j < (int)FD_POLICY_FAST_PER_SLOW; j++ ) { + fd_pubkey_t const * sel = fd_policy_peer_select( policy ); + FD_TEST( sel ); + fd_policy_peer_t * p = fd_policy_peer_query( policy, sel ); + FD_TEST( p && p->res_cnt > 0 ); /* fast peer */ + } + fd_pubkey_t const * sel = fd_policy_peer_select( policy ); + FD_TEST( sel ); + fd_policy_peer_t * p = fd_policy_peer_query( policy, sel ); + FD_TEST( p && p->res_cnt == 0 ); /* slow peer */ + } + + /* Test all-slow: insert only slow peers. */ + void * mem2 = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy2 = fd_policy_join( fd_policy_new( mem2, peer_max, 0, rnonce ) ); + for( int i = 1; i <= 5; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy2, &key, &addr ); + } + for( int i = 0; i < 15; i++ ) { + fd_pubkey_t const * sel = fd_policy_peer_select( policy2 ); + FD_TEST( sel ); + } + + /* Test all-fast: insert only fast peers. */ + void * mem3 = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy3 = fd_policy_join( fd_policy_new( mem3, peer_max, 0, rnonce ) ); + for( int i = 1; i <= 5; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy3, &key, &addr ); + fd_policy_peer_response_update( policy3, &key, (long)(10e6L) ); + } + for( int i = 0; i < 15; i++ ) { + fd_pubkey_t const * sel = fd_policy_peer_select( policy3 ); + FD_TEST( sel ); + } +} + +void +test_ewma_latency( fd_wksp_t * wksp ) { + ulong peer_max = 1024; + + fd_rnonce_ss_t rnonce[1]; + fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, peer_max, 0, rnonce ) ); + FD_TEST( policy ); + + fd_pubkey_t key = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &key, &addr ); + + /* First response seeds EWMA. */ + fd_policy_peer_response_update( policy, &key, (long)(50e6L) ); + fd_policy_peer_t * peer = fd_policy_peer_query( policy, &key ); + FD_TEST( peer ); + FD_TEST( peer->ewma_lat == (long)(50e6L) ); + FD_TEST( fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ) == policy->peers.fast ); + + /* Several fast responses should keep it fast. */ + for( int i = 0; i < 10; i++ ) { + fd_policy_peer_response_update( policy, &key, (long)(40e6L) ); + } + peer = fd_policy_peer_query( policy, &key ); + FD_TEST( peer->ewma_lat < (long)FD_POLICY_LATENCY_THRESH ); + FD_TEST( fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ) == policy->peers.fast ); + + /* Sustained high-latency responses should eventually push to slow. */ + for( int i = 0; i < 30; i++ ) { + fd_policy_peer_response_update( policy, &key, (long)(200e6L) ); + } + peer = fd_policy_peer_query( policy, &key ); + FD_TEST( peer->ewma_lat > (long)FD_POLICY_LATENCY_THRESH ); + FD_TEST( fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ) == policy->peers.slow ); +} + +void +test_remove_sole_peer( fd_wksp_t * wksp ) { + ulong peer_max = 1024; + + fd_rnonce_ss_t rnonce[1]; + fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, peer_max, 0, rnonce ) ); + FD_TEST( policy ); + + /* Single slow peer — iterator sits on it. */ + fd_pubkey_t key1 = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &key1, &addr ); + fd_policy_peer_select( policy ); /* parks slow_iter on key1 */ + FD_TEST( fd_policy_peer_remove( policy, &key1 ) ); + + /* Iterator must not dangle — select should return NULL (no peers). */ + FD_TEST( fd_policy_peer_select( policy ) == NULL ); + + /* Re-insert a peer and verify select still works. */ + fd_pubkey_t key2 = { .key = { 2 } }; + fd_policy_peer_upsert( policy, &key2, &addr ); + fd_pubkey_t const * sel = fd_policy_peer_select( policy ); + FD_TEST( sel && memcmp( sel->key, key2.key, 32UL ) == 0 ); + + /* Single fast peer — same scenario. */ + fd_policy_peer_response_update( policy, &key2, (long)(10e6L) ); + fd_policy_peer_select( policy ); /* parks fast_iter on key2 */ + FD_TEST( fd_policy_peer_remove( policy, &key2 ) ); + FD_TEST( fd_policy_peer_select( policy ) == NULL ); +} + +/* Helper: count elements in a peer dlist. */ +static ulong +dlist_cnt( fd_policy_peer_dlist_t * dlist, fd_policy_peer_t * pool ) { + ulong cnt = 0; + for( fd_policy_peer_dlist_iter_t it = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + !fd_policy_peer_dlist_iter_done( it, dlist, pool ); + it = fd_policy_peer_dlist_iter_fwd_next( it, dlist, pool ) ) { + cnt++; + } + return cnt; +} + +/* Helper: return 1 if pubkey is found in dlist, 0 otherwise. */ +static int +dlist_contains( fd_policy_peer_dlist_t * dlist, fd_policy_peer_t * pool, fd_pubkey_t const * key ) { + for( fd_policy_peer_dlist_iter_t it = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + !fd_policy_peer_dlist_iter_done( it, dlist, pool ); + it = fd_policy_peer_dlist_iter_fwd_next( it, dlist, pool ) ) { + fd_policy_peer_t * p = fd_policy_peer_dlist_iter_ele( it, dlist, pool ); + if( !memcmp( p->key.key, key->key, 32UL ) ) return 1; + } + return 0; +} + +/* Helper: create a fresh policy on wksp. */ +static fd_policy_t * +new_policy( fd_wksp_t * wksp ) { + fd_rnonce_ss_t rnonce[1]; + fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( 1024UL ), 1 ); + return fd_policy_join( fd_policy_new( mem, 1024UL, 0, rnonce ) ); +} + +/* Verify dlist counts and map/pool counts stay in sync after removals. */ +void +test_dlist_consistency_after_remove( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + /* Insert 4 fast peers (low RTT) and 4 slow peers (no responses). */ + for( int i = 1; i <= 8; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { .addr = (uint)i, .port = (ushort)(8000+i) }; + fd_policy_peer_upsert( policy, &key, &addr ); + if( i <= 4 ) fd_policy_peer_response_update( policy, &key, (long)(10e6L) ); + } + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 4 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 4 ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 8 ); + + /* Remove one fast, one slow. */ + fd_pubkey_t k_fast = { .key = { 2 } }; + fd_pubkey_t k_slow = { .key = { 6 } }; + FD_TEST( fd_policy_peer_remove( policy, &k_fast ) ); + FD_TEST( fd_policy_peer_remove( policy, &k_slow ) ); + + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 3 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 3 ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 6 ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k_fast ) ); + FD_TEST( !dlist_contains( policy->peers.slow, policy->peers.pool, &k_slow ) ); + + /* Query must return NULL for removed peers. */ + FD_TEST( !fd_policy_peer_query( policy, &k_fast ) ); + FD_TEST( !fd_policy_peer_query( policy, &k_slow ) ); + + /* Remaining peers must still be queryable. */ + for( int i = 1; i <= 8; i++ ) { + if( i == 2 || i == 6 ) continue; + fd_pubkey_t key = { .key = { (uchar)i } }; + FD_TEST( fd_policy_peer_query( policy, &key ) ); + } + + /* Double-remove must return 0 (no-op). */ + FD_TEST( !fd_policy_peer_remove( policy, &k_fast ) ); +} + +/* Verify that response_update on a removed/unknown peer is a no-op and + does not corrupt dlist state. */ +void +test_response_update_unknown_peer( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_pubkey_t k1 = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &k1, &addr ); + + ulong fast_before = dlist_cnt( policy->peers.fast, policy->peers.pool ); + + /* Update a peer that was never inserted. */ + fd_pubkey_t k_unknown = { .key = { 99 } }; + fd_policy_peer_response_update( policy, &k_unknown, (long)(10e6L) ); + + /* Remove k1 then update it — should be a no-op. */ + fd_policy_peer_remove( policy, &k1 ); + fd_policy_peer_response_update( policy, &k1, (long)(10e6L) ); + + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == fast_before ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 0 ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 0 ); +} + +/* Verify the null pubkey guard returns NULL and does not crash. */ +void +test_null_pubkey_query( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_pubkey_t null_key; + fd_memset( &null_key, 0, sizeof(fd_pubkey_t) ); + FD_TEST( !fd_policy_peer_query( policy, &null_key ) ); + + /* Insert a real peer and verify null query still returns NULL. */ + fd_pubkey_t k1 = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &k1, &addr ); + FD_TEST( !fd_policy_peer_query( policy, &null_key ) ); + FD_TEST( fd_policy_peer_query( policy, &k1 ) ); + + /* request_update and response_update with null pubkey must be no-ops. */ + ulong used_before = fd_policy_peer_pool_used( policy->peers.pool ); + fd_policy_peer_request_update( policy, &null_key ); + fd_policy_peer_response_update( policy, &null_key, (long)(10e6L) ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == used_before ); +} + +/* Verify dlist integrity across slow->fast and fast->slow bucket + transitions. Each peer must be in exactly one dlist at all times. */ +void +test_bucket_transition_dlist_integrity( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_pubkey_t k1 = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &k1, &addr ); + + /* Starts in slow (no responses yet). */ + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 1 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 0 ); + + /* Fast response → should move to fast. */ + fd_policy_peer_response_update( policy, &k1, (long)(10e6L) ); + FD_TEST( !dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 0 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 1 ); + + /* Sustained high latency → should move back to slow. */ + for( int i = 0; i < 50; i++ ) { + fd_policy_peer_response_update( policy, &k1, (long)(300e6L) ); + } + fd_policy_peer_t * p = fd_policy_peer_query( policy, &k1 ); + FD_TEST( p && p->ewma_lat > (long)FD_POLICY_LATENCY_THRESH ); + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 1 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 0 ); + + /* Sustained fast again → back to fast. */ + for( int i = 0; i < 50; i++ ) { + fd_policy_peer_response_update( policy, &k1, (long)(5e6L) ); + } + p = fd_policy_peer_query( policy, &k1 ); + FD_TEST( p && p->ewma_lat < (long)FD_POLICY_LATENCY_THRESH ); + FD_TEST( !dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + + /* Total across both dlists must always equal pool used. */ + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) + + dlist_cnt( policy->peers.slow, policy->peers.pool ) + == fd_policy_peer_pool_used( policy->peers.pool ) ); +} + +/* Verify that removing the peer the select iterator is parked on does + not break subsequent selects from the same or opposite dlist. */ +void +test_remove_iter_peer_dlist_intact( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + /* 3 fast, 3 slow. */ + for( int i = 1; i <= 6; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &key, &addr ); + if( i <= 3 ) fd_policy_peer_response_update( policy, &key, (long)(10e6L) ); + } + + /* Park fast_iter on first fast peer via select. */ + fd_pubkey_t const * sel = fd_policy_peer_select( policy ); + FD_TEST( sel ); + fd_pubkey_t parked = *sel; + + /* Remove that peer. */ + FD_TEST( fd_policy_peer_remove( policy, &parked ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &parked ) ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 2 ); + + /* Subsequent selects must not return the removed peer and must not crash. */ + for( int i = 0; i < 20; i++ ) { + sel = fd_policy_peer_select( policy ); + FD_TEST( sel ); + FD_TEST( memcmp( sel->key, parked.key, 32UL ) != 0 ); + } + + /* Dlist totals must match pool. */ + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) + + dlist_cnt( policy->peers.slow, policy->peers.pool ) + == fd_policy_peer_pool_used( policy->peers.pool ) ); +} + +/* Verify dlist integrity after a peer is evicted by + fd_policy_peer_request_update (unanswered threshold). */ +void +test_eviction_dlist_integrity( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + /* Insert a fast peer and a slow peer. */ + fd_pubkey_t k_fast = { .key = { 1 } }; + fd_pubkey_t k_slow = { .key = { 2 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &k_fast, &addr ); + fd_policy_peer_response_update( policy, &k_fast, (long)(10e6L) ); + fd_policy_peer_upsert( policy, &k_slow, &addr ); + + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 1 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 1 ); + + /* Slow peer must be unaffected. */ + FD_TEST( fd_policy_peer_query( policy, &k_slow ) ); + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k_slow ) ); + + /* Pool used must match dlist totals. */ + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) + + dlist_cnt( policy->peers.slow, policy->peers.pool ) + == fd_policy_peer_pool_used( policy->peers.pool ) ); +} + +/* Verify that reinserting a previously removed peer places it into the + correct dlist and that the old state does not leak. */ +void +test_remove_and_reinsert( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_pubkey_t k1 = { .key = { 1 } }; + fd_ip4_port_t addr = { .addr = 0x01020304, .port = 8000 }; + fd_policy_peer_upsert( policy, &k1, &addr ); + fd_policy_peer_response_update( policy, &k1, (long)(10e6L) ); + FD_TEST( dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + + /* Remove it. */ + FD_TEST( fd_policy_peer_remove( policy, &k1 ) ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 0 ); + + /* Reinsert — should go to slow (fresh peer, no responses). */ + fd_policy_peer_upsert( policy, &k1, &addr ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 1 ); + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + + /* Counters should be reset. */ + fd_policy_peer_t * p = fd_policy_peer_query( policy, &k1 ); + FD_TEST( p ); + FD_TEST( p->req_cnt == 0 ); + FD_TEST( p->res_cnt == 0 ); + FD_TEST( p->ewma_lat == 0 ); + FD_TEST( p->unanswered == 0 ); + + /* Move to fast again and verify. */ + fd_policy_peer_response_update( policy, &k1, (long)(10e6L) ); + FD_TEST( dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); +} + +/* Verify that multiple peers can transition buckets independently + without corrupting each other's dlist membership. */ +void +test_multi_peer_bucket_transitions( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_ip4_port_t addr = { 0 }; + + /* Insert 5 peers, all start slow. */ + for( int i = 1; i <= 5; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_policy_peer_upsert( policy, &key, &addr ); + } + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 5 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 0 ); + + /* Move peers 1, 3, 5 to fast. */ + for( int i = 1; i <= 5; i += 2 ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_policy_peer_response_update( policy, &key, (long)(10e6L) ); + } + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 3 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 2 ); + + /* Remove peer 3 (fast) and peer 2 (slow). */ + fd_pubkey_t k3 = { .key = { 3 } }; + fd_pubkey_t k2 = { .key = { 2 } }; + fd_policy_peer_remove( policy, &k3 ); + fd_policy_peer_remove( policy, &k2 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 2 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 1 ); + + /* Move peer 1 from fast to slow with high latency. */ + fd_pubkey_t k1 = { .key = { 1 } }; + for( int i = 0; i < 50; i++ ) { + fd_policy_peer_response_update( policy, &k1, (long)(300e6L) ); + } + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 1 ); /* only peer 5 */ + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 2 ); /* peers 1, 4 */ + + /* Invariant: dlist total == pool used. */ + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) + + dlist_cnt( policy->peers.slow, policy->peers.pool ) + == fd_policy_peer_pool_used( policy->peers.pool ) ); +} + int main( int argc, char ** argv ) { fd_boot( &argc, &argv ); @@ -128,6 +589,17 @@ main( int argc, char ** argv ) { FD_TEST( wksp ); test_peer_removal( wksp ); + test_peer_interleave( wksp ); + test_ewma_latency( wksp ); + test_remove_sole_peer( wksp ); + test_dlist_consistency_after_remove( wksp ); + test_response_update_unknown_peer( wksp ); + test_null_pubkey_query( wksp ); + test_bucket_transition_dlist_integrity( wksp ); + test_remove_iter_peer_dlist_intact( wksp ); + test_eviction_dlist_integrity( wksp ); + test_remove_and_reinsert( wksp ); + test_multi_peer_bucket_transitions( wksp ); FD_LOG_NOTICE(( "pass" )); fd_halt(); diff --git a/src/discof/repair/test_repair_tile.c b/src/discof/repair/test_repair_tile.c index 6117aa25344..f57ad834ad5 100644 --- a/src/discof/repair/test_repair_tile.c +++ b/src/discof/repair/test_repair_tile.c @@ -28,7 +28,8 @@ setup_ctx( ctx_t * ctx, fd_wksp_t * wksp, ulong slot_max ) { FD_TEST( fd_rng_secure( ctx->repair_nonce_ss, sizeof(fd_rnonce_ss_t) ) ); void * forest_mem = fd_wksp_alloc_laddr( wksp, fd_forest_align(), fd_forest_footprint( slot_max ), 1UL ); - void * policy_mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( dedup_max, peer_max ), 1UL ); + void * policy_mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1UL ); + void * dedup_mem = fd_wksp_alloc_laddr( wksp, fd_reqlim_align(), fd_reqlim_footprint( dedup_max ), 1UL ); void * inflights_mem = fd_wksp_alloc_laddr( wksp, fd_inflights_align(), fd_inflights_footprint(), 1UL ); void * signs_map_mem = fd_wksp_alloc_laddr( wksp, fd_signs_map_align(), fd_signs_map_footprint( lg_sign_depth ), 1UL ); void * pong_queue_mem = fd_wksp_alloc_laddr( wksp, fd_signs_queue_align(), fd_signs_queue_footprint(), 1UL ); @@ -36,7 +37,8 @@ setup_ctx( ctx_t * ctx, fd_wksp_t * wksp, ulong slot_max ) { void * metrics_mem = fd_wksp_alloc_laddr( wksp, fd_repair_metrics_align(), fd_repair_metrics_footprint(), 1UL ); ctx->forest = fd_forest_join ( fd_forest_new ( forest_mem, slot_max, 0UL ) ); - ctx->policy = fd_policy_join ( fd_policy_new ( policy_mem, dedup_max, peer_max, 0UL, ctx->repair_nonce_ss ) ); + ctx->policy = fd_policy_join ( fd_policy_new ( policy_mem, peer_max, 0UL, ctx->repair_nonce_ss ) ); + ctx->dedup = fd_reqlim_join ( fd_reqlim_new ( dedup_mem, dedup_max, 0UL ) ); ctx->inflights = fd_inflights_join ( fd_inflights_new ( inflights_mem, 0UL ) ); ctx->signs_map = fd_signs_map_join ( fd_signs_map_new ( signs_map_mem, lg_sign_depth, 0UL ) ); ctx->pong_queue = fd_signs_queue_join ( fd_signs_queue_new ( pong_queue_mem ) ); diff --git a/src/discof/replay/Local.mk b/src/discof/replay/Local.mk index 299422acee4..21a6fc46451 100644 --- a/src/discof/replay/Local.mk +++ b/src/discof/replay/Local.mk @@ -2,8 +2,8 @@ $(call add-hdrs,fd_execrp.h) $(call add-objs,fd_rdisp,fd_discof) $(call make-unit-test,test_rdisp,test_rdisp,fd_discof fd_ballet fd_tango fd_util) $(call run-unit-test,test_rdisp) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_sched,fd_discof) +ifdef FD_HAS_HOSTED $(call make-fuzz-test,fuzz_sched_rdisp,fuzz_sched_rdisp,fd_discof fd_disco fd_flamenco fd_funk fd_ballet fd_tango fd_util) endif @@ -12,7 +12,6 @@ $(call add-objs,fd_replay_tile,fd_discof) $(call make-unit-test,test_replay_tile,test_replay_tile,fd_discof fd_choreo fd_disco fd_flamenco fd_vinyl fd_funk fd_tango fd_ballet fd_util) $(call add-hdrs,fd_vote_tracker.h) $(call add-objs,fd_vote_tracker,fd_discof) - else $(warning "zstd not installed, skipping replay") endif diff --git a/src/discof/replay/fd_replay_tile.c b/src/discof/replay/fd_replay_tile.c index 2d0f6cd4bcf..b659cee425d 100644 --- a/src/discof/replay/fd_replay_tile.c +++ b/src/discof/replay/fd_replay_tile.c @@ -1023,7 +1023,6 @@ store_xinsert( fd_store_t * store, if( FD_UNLIKELY( !fec ) ) FD_LOG_CRIT(( "fd_store_pool_acquire failed" )); fec->key.merkle_root = *merkle_root; fec->key.part_idx = 0; - fec->cmr = (fd_hash_t){ 0 }; fec->next = fd_store_pool_idx_null(); fec->data_sz = 0UL; @@ -2145,7 +2144,7 @@ process_fec_complete( fd_replay_tile_t * ctx, /* FEC set detected as invalid based on duplicate confirmations. Nothing to do except remove from store. If the FEC set is not in reasm, we can directly remove from store. If the FEC set is in - reasm, then we let the natural prune/publish process handle it. */ + reasm, then we let reasm_publish handle it. */ if( FD_LIKELY( !fd_reasm_query( ctx->reasm, merkle_root ) ) ) { fd_store_remove( ctx->store, merkle_root ); } diff --git a/src/discof/resolv/Local.mk b/src/discof/resolv/Local.mk index 8d7e40ecd06..ceabde1cb01 100644 --- a/src/discof/resolv/Local.mk +++ b/src/discof/resolv/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_resolv_tile,fd_discof) endif -endif diff --git a/src/discof/restore/Local.mk b/src/discof/restore/Local.mk index fe379fed67c..4292dbd6d8e 100644 --- a/src/discof/restore/Local.mk +++ b/src/discof/restore/Local.mk @@ -1,5 +1,4 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA ifdef FD_HAS_SSE $(call add-hdrs,fd_snapct_tile.h) $(call add-objs,fd_snapct_tile,fd_discof) @@ -13,16 +12,13 @@ $(call add-objs,fd_snapin_tile fd_snapin_tile_funk,fd_discof) $(call make-unit-test,test_snapin_tile,test_snapin_tile,fd_discof fd_disco fd_waltz fd_flamenco fd_funk fd_ballet fd_tango fd_util,$(OPENSSL_LIBS)) $(call run-unit-test,test_snapin_tile) endif # FD_HAS_SSE -endif # FD_HAS_ALLOCA $(call add-objs,utils/fd_ssparse,fd_discof) $(call add-objs,utils/fd_ssmanifest_parser,fd_discof) $(call add-objs,utils/fd_ssload,fd_discof) $(call add-objs,utils/fd_ssping,fd_discof) $(call add-objs,utils/fd_http_resolver,fd_discof) $(call add-objs,utils/fd_slot_delta_parser,fd_discof) -ifdef FD_HAS_INT128 $(call make-unit-test,test_ssmanifest_parser,utils/test_ssmanifest_parser,fd_discof fd_flamenco fd_funk fd_ballet fd_util) -endif $(call make-unit-test,test_slot_delta_parser,utils/test_slot_delta_parser,fd_discof fd_flamenco fd_ballet fd_util) $(call make-unit-test,test_sspeer_selector,utils/test_sspeer_selector,fd_discof fd_flamenco fd_ballet fd_util) $(call make-unit-test,test_ssping,utils/test_ssping,fd_discof fd_flamenco fd_ballet fd_util) @@ -36,9 +32,7 @@ $(call run-unit-test,test_ssparse) $(call run-unit-test,test_ssload) $(call make-fuzz-test,fuzz_snapshot_parser,utils/fuzz_snapshot_parser,fd_discof fd_flamenco fd_ballet fd_util) -ifdef FD_HAS_INT128 $(call make-fuzz-test,fuzz_ssmanifest_parser,utils/fuzz_ssmanifest_parser,fd_discof fd_flamenco fd_funk fd_ballet fd_util) -endif $(call make-fuzz-test,fuzz_ssarchive_parser,utils/fuzz_ssarchive_parser,fd_discof fd_flamenco fd_ballet fd_util) $(call make-fuzz-test,fuzz_slot_delta_parser,utils/fuzz_slot_delta_parser,fd_discof fd_flamenco fd_ballet fd_util) $(call make-fuzz-test,fuzz_sshttp,utils/fuzz_sshttp,fd_discof fd_waltz fd_flamenco fd_ballet fd_util,$(OPENSSL_LIBS)) diff --git a/src/discof/restore/fd_snapin_tile.c b/src/discof/restore/fd_snapin_tile.c index ddc2f615494..8db15de1c7f 100644 --- a/src/discof/restore/fd_snapin_tile.c +++ b/src/discof/restore/fd_snapin_tile.c @@ -433,7 +433,7 @@ populate_txncache( fd_snapin_tile_t * ctx, anything else is a nonce transaction which we do not insert, or an already expired transaction which can also be discarded. */ - uchar * _map = fd_alloca_check( alignof(blockhash_map_t), blockhash_map_footprint( 1024UL ) ); + uchar __attribute__((aligned(alignof(blockhash_map_t)))) _map[ blockhash_map_footprint( 1024UL ) ]; blockhash_map_t * blockhash_map = blockhash_map_join( blockhash_map_new( _map, 1024UL, ctx->seed ) ); if( FD_UNLIKELY( !blockhash_map ) ) FD_LOG_ERR(( "failed to create blockhash map" )); diff --git a/src/discof/restore/utils/fd_ssctrl.h b/src/discof/restore/utils/fd_ssctrl.h index 635e97e917c..b479bbfc562 100644 --- a/src/discof/restore/utils/fd_ssctrl.h +++ b/src/discof/restore/utils/fd_ssctrl.h @@ -110,8 +110,7 @@ #define FD_SNAPSHOT_MSG_CTRL_FINI (9UL) /* Current snapshot has been fully loaded, finish processing */ /* snapld -> snapct (via snapld_dc) */ -#define FD_SNAPSHOT_MSG_LOAD_COMPLETE (18UL) /* snapld finished reading/downloading all data */ - +#define FD_SNAPSHOT_MSG_LOAD_COMPLETE (10UL) /* snapld finished reading/downloading all data */ /* Sent by snapct to tell snapld whether to load a local file or download from a particular external peer. */ diff --git a/src/discof/restore/utils/fd_ssmanifest_parser.c b/src/discof/restore/utils/fd_ssmanifest_parser.c index cf54af5e56c..cb119d809e1 100644 --- a/src/discof/restore/utils/fd_ssmanifest_parser.c +++ b/src/discof/restore/utils/fd_ssmanifest_parser.c @@ -2048,9 +2048,6 @@ fd_ssmanifest_parser_init( fd_ssmanifest_parser_t * parser, manifest->epoch_stakes[i].total_stake = 0UL; manifest->epoch_stakes[i].vote_stakes_len = 0UL; } - - FD_SCRATCH_ALLOC_INIT( l, parser ); - FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_ssmanifest_parser_t), sizeof(fd_ssmanifest_parser_t) ); } /* Agave can serialize some optional "extra fields" at the diff --git a/src/discof/restore/utils/fd_ssping.c b/src/discof/restore/utils/fd_ssping.c index 3354e8e7aaf..e055550d92d 100644 --- a/src/discof/restore/utils/fd_ssping.c +++ b/src/discof/restore/utils/fd_ssping.c @@ -326,7 +326,7 @@ remove_fdesc_idx( fd_ssping_t * ssping, .sin_addr = { .s_addr = 0U }, .sin_port = 0 }}; - if( FD_UNLIKELY( connect( fdesc, addr, sizeof(addr) ) ) ) FD_LOG_ERR(( "connect(AF_UNSPEC) failed (%d-%s)", errno, fd_io_strerror( errno ) )); + if( FD_UNLIKELY( connect( fdesc, fd_type_pun_const( addr ), sizeof(addr) ) ) ) FD_LOG_ERR(( "connect(AF_UNSPEC) failed (%d-%s)", errno, fd_io_strerror( errno ) )); /* Mark that the pool element no longer has an associated index. */ ssping->pool[ pool_idx ].used_fd_idx = ULONG_MAX; @@ -477,7 +477,7 @@ send_pings( fd_ssping_t * ssping, .sin_port = peer->addr.port }}; - if( FD_UNLIKELY( connect( fdesc, addr, sizeof(addr) ) && errno!=EINPROGRESS ) ) { + if( FD_UNLIKELY( connect( fdesc, fd_type_pun_const( addr ), sizeof(addr) ) && errno!=EINPROGRESS ) ) { FD_LOG_WARNING(( "connect(" FD_IP4_ADDR_FMT ":%hu) failed (%d-%s)", FD_IP4_ADDR_FMT_ARGS( peer->addr.addr ), fd_ushort_bswap( peer->addr.port ), errno, fd_io_strerror( errno ) )); /* Nothing to do. It will get "reaped" later. */ } diff --git a/src/discof/rpc/Local.mk b/src/discof/rpc/Local.mk index 54a5d7415ba..fc131d14311 100644 --- a/src/discof/rpc/Local.mk +++ b/src/discof/rpc/Local.mk @@ -1,9 +1,6 @@ -ifdef FD_HAS_ALLOCA $(call add-objs,fd_rpc_tile,fd_discof) -$(call make-unit-test,test_rpc_tile,test_rpc_tile,fd_discof firedancer_version fd_disco fd_flamenco fd_waltz fd_funk fd_tango fd_ballet fd_util) - ifdef FD_HAS_HOSTED +$(call make-unit-test,test_rpc_tile,test_rpc_tile,fd_discof firedancer_version fd_disco fd_flamenco fd_waltz fd_funk fd_tango fd_ballet fd_util) $(call make-fuzz-test,fuzz_rpc,fuzz_rpc,fd_discof firedancer_version fd_disco fd_tango fd_flamenco fd_funk fd_waltz fd_ballet fd_util) $(call make-fuzz-test,fuzz_rpc_tarball,fuzz_rpc_tarball,fd_discof firedancer_version fd_disco fd_tango fd_flamenco fd_funk fd_waltz fd_ballet fd_util) endif -endif diff --git a/src/discof/tower/Local.mk b/src/discof/tower/Local.mk index 77fbd46542f..048a9b3b899 100644 --- a/src/discof/tower/Local.mk +++ b/src/discof/tower/Local.mk @@ -1,7 +1,4 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_tower_tile,fd_discof) $(call make-unit-test,test_tower_tile,test_tower_tile,fd_discof fd_choreo fd_disco fd_flamenco fd_funk fd_tango fd_ballet fd_util) -$(call run-unit-test,test_tower_tile) -endif endif diff --git a/src/discof/tower/fd_tower_tile.c b/src/discof/tower/fd_tower_tile.c index 04632f670e2..1abe603329d 100644 --- a/src/discof/tower/fd_tower_tile.c +++ b/src/discof/tower/fd_tower_tile.c @@ -337,20 +337,19 @@ struct fd_tower_tile { typedef struct fd_tower_tile fd_tower_tile_t; /* Compile-time dependency injection. This macro defaults to the - production implementation defined below. Tests can #define it - before #include-ing this file to substitute a mock. */ + production implementation defined below. Tests can #define it before + #include-ing this file to substitute a mock. */ -#ifndef QUERY_VOTE_ACCS -#define QUERY_VOTE_ACCS query_vote_accs +#ifndef QUERY_TOWERS +#define QUERY_TOWERS query_towers #endif -ulong QUERY_VOTE_ACCS( fd_tower_tile_t *, fd_replay_slot_completed_t *, fd_ghost_blk_t *, int *, ulong * ); - -#ifndef UPDATE_EPOCH_VTRS -#define UPDATE_EPOCH_VTRS update_epoch_vtrs +#ifndef QUERY_VOTERS +#define QUERY_VOTERS query_voters #endif -void UPDATE_EPOCH_VTRS( fd_tower_tile_t *, fd_replay_slot_completed_t *, ulong ); +ulong QUERY_TOWERS( fd_tower_tile_t *, fd_replay_slot_completed_t *, fd_ghost_blk_t *, int *, ulong * ); +void QUERY_VOTERS( fd_tower_tile_t *, fd_replay_slot_completed_t *, ulong ); static int deser_auth_vtr( fd_tower_tile_t * ctx, @@ -705,80 +704,110 @@ count_vote_acc( fd_tower_tile_t * ctx, ctx->vtr_cnt++; } -static ulong -update_epoch_vtr_map( fd_tower_tile_t * ctx, - epoch_vtr_t * pool, - epoch_vtr_map_t * map, - fd_top_votes_t const * top_votes, - fd_bank_t * bank, - ulong target_epoch, - uchar * iter_mem ) { - epoch_vtr_pool_reset( pool ); - epoch_vtr_map_reset( map ); - ulong total_stake = 0UL; - fd_funk_txn_xid_t xid = fd_bank_xid( bank ); - for( fd_top_votes_iter_t * iter = fd_top_votes_iter_init( top_votes, iter_mem ); - !fd_top_votes_iter_done( top_votes, iter ); - fd_top_votes_iter_next( top_votes, iter ) ) { - fd_pubkey_t pubkey; - ulong stake; - fd_top_votes_iter_ele( top_votes, iter, &pubkey, NULL, &stake, NULL, NULL, NULL, NULL ); - FD_TEST( stake>0UL ); /* top_votes only holds staked voters */ - total_stake += stake; - epoch_vtr_t * vtr = epoch_vtr_pool_ele_acquire( pool ); - vtr->vote_acc = pubkey; - vtr->stake = stake; - memset( &vtr->auth_vtr, 0, sizeof(fd_pubkey_t) ); +/* Query all the relevant towers for running Tower rules on this slot: - /* Cache the authorized voter for target_epoch. Leaves - auth_vtr all-zero if the vote account is unreadable — - count_vote_txn will reject txns whose signer can't match. */ + 1. staked voter set from banks + 2. vote accounts (for each staked voter, which contains their tower) + from accountsDB. */ - fd_accdb_ro_t ro[1]; - if( FD_LIKELY( fd_accdb_open_ro( ctx->accdb, ro, &xid, &pubkey ) ) ) { - ulong dummy_idx; - deser_auth_vtr( ctx, fd_accdb_ref_data_const( ro ), fd_accdb_ref_data_sz( ro ), target_epoch, 1, &vtr->auth_vtr, &dummy_idx ); - fd_accdb_close_ro( ctx->accdb, ro ); - } +FD_FN_UNUSED ulong +query_towers( fd_tower_tile_t * ctx, + fd_replay_slot_completed_t * slot_completed, + fd_ghost_blk_t * ghost_blk, + int * found_our_vote_acct, + ulong * our_vote_acct_bal ) { - epoch_vtr_map_ele_insert( map, vtr, pool ); - } - return total_stake; -} + ulong total_stake = 0UL; + ulong prev_voter_idx = ULONG_MAX; + ulong pending_cnt = 0UL; -void -update_epoch_vtrs( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed, - ulong epoch ) { fd_bank_t * bank = fd_banks_bank_query( ctx->banks, slot_completed->bank_idx ); if( FD_UNLIKELY( !bank ) ) FD_LOG_CRIT(( "invariant violation: bank %lu is missing", slot_completed->bank_idx )); + fd_top_votes_t const * top_votes_t_2 = fd_bank_top_votes_t_2_query( bank ); + fd_top_votes_iter_t * iter = fd_top_votes_iter_init( top_votes_t_2, ctx->iter_mem ); - ctx->root_epoch_total_stake = update_epoch_vtr_map( ctx, ctx->root_epoch_vtr_pool, ctx->root_epoch_vtr_map, fd_bank_top_votes_t_2_query( bank ), bank, epoch, ctx->iter_mem ); - ctx->next_epoch_total_stake = update_epoch_vtr_map( ctx, ctx->next_epoch_vtr_pool, ctx->next_epoch_vtr_map, fd_bank_top_votes_t_1_query( bank ), bank, epoch+1UL, ctx->iter_mem ); - ctx->root_epoch = epoch; -} + fd_accdb_ro_pipe_t ro_pipe[1]; + fd_funk_txn_xid_t xid = fd_bank_xid( bank ); + fd_accdb_ro_pipe_init( ro_pipe, ctx->accdb, &xid ); -static void -update_voters( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed, - ulong epoch ) { - fd_eqvoc_update_voters( ctx->eqvoc, ctx->id_keys, ctx->vtr_cnt ); - fd_hfork_update_voters( ctx->hfork, ctx->vote_accs, ctx->vtr_cnt ); - fd_votes_update_voters( ctx->votes, ctx->vote_accs, ctx->vtr_cnt ); + for(;;) { + if( FD_UNLIKELY( fd_top_votes_iter_done( top_votes_t_2, iter ) ) ) { + if( !pending_cnt ) break; + fd_accdb_ro_pipe_flush( ro_pipe ); + } else { + fd_pubkey_t vote_acc; + ulong stake; + uchar is_valid; + fd_top_votes_iter_ele( top_votes_t_2, iter, &vote_acc, NULL, &stake, NULL, NULL, NULL, &is_valid ); + fd_top_votes_iter_next( top_votes_t_2, iter ); + total_stake += stake; + if( FD_UNLIKELY( !is_valid ) ) continue; + + fd_accdb_ro_pipe_enqueue( ro_pipe, vote_acc.key ); + pending_cnt++; + } + + fd_accdb_ro_t * ro; + while( FD_LIKELY( ro = fd_accdb_ro_pipe_poll( ro_pipe ) ) ) { + pending_cnt--; + fd_pubkey_t const * vote_acc = fd_accdb_ref_address( ro ); + + ulong stake; + FD_TEST( fd_top_votes_query( top_votes_t_2, vote_acc, NULL, &stake, NULL, NULL, NULL, NULL ) ); + + FD_TEST( fd_accdb_ref_lamports( ro ) && fd_vsv_is_correct_size_owner_and_init( ro->meta ) ); + + uchar const * data = fd_accdb_ref_data_const( ro ); + + FD_TEST( stake > 0 ); + count_vote_acc( ctx, slot_completed, ghost_blk, vote_acc, stake, data, ro->meta->dlen ); + + prev_voter_idx = fd_tower_stakes_insert( ctx->tower, slot_completed->slot, vote_acc, stake, prev_voter_idx ); + } + } + fd_accdb_ro_pipe_fini( ro_pipe ); + + /* Reconcile our local tower with the on-chain tower (stored inside + our vote account). - UPDATE_EPOCH_VTRS( ctx, slot_completed, epoch ); + Skip reconciliation on the first replay_slot_completed if booted + with wait_for_supermajority. This prevents spurious lockout_check + failures (slot <= last_vote_slot) and threshold_check failures + (deep stale tower with no voter support) */ + + *our_vote_acct_bal = ULONG_MAX; + *found_our_vote_acct = 0; + fd_funk_txn_xid_t reconcile_xid = fd_bank_xid( bank ); + fd_accdb_ro_t reconcile_ro[1]; + if( FD_LIKELY( fd_accdb_open_ro( ctx->accdb, reconcile_ro, &reconcile_xid, ctx->vote_account ) ) ) { + *found_our_vote_acct = 1; + ctx->our_vote_acct_sz = fd_ulong_min( fd_accdb_ref_data_sz( reconcile_ro ), FD_VOTE_STATE_DATA_MAX ); + *our_vote_acct_bal = fd_accdb_ref_lamports( reconcile_ro ); + fd_memcpy( ctx->our_vote_acct, fd_accdb_ref_data_const( reconcile_ro ), ctx->our_vote_acct_sz ); + fd_accdb_close_ro( ctx->accdb, reconcile_ro ); + int skip_reconcile = !ctx->init && ctx->wfs; + if( FD_LIKELY( !skip_reconcile ) ) { + ulong root; + fd_tower_vote_remove_all( ctx->scratch_tower ); + fd_tower_from_vote_acc( ctx->scratch_tower, &root, ctx->our_vote_acct, ctx->our_vote_acct_sz ); + fd_tower_reconcile( ctx->tower, ctx->scratch_tower, root ); + } else { + FD_LOG_NOTICE(( "wait_for_supermajority: skipping tower reconcile on init slot %lu", slot_completed->slot )); + } + } + return total_stake; } -/* parse_vote_txn is the C equivalent of Agave's +/* validate_vote_txn is the C equivalent of Agave's parse_vote_transaction. Returns the vote account on success, NULL on failure. Deserializes the vote instruction into ctx->scratch_ix. https://github.com/anza-xyz/agave/blob/v2.3.7/sdk/src/transaction/versioned/mod.rs#L79 */ static fd_pubkey_t const * -parse_vote_txn( fd_tower_tile_t * ctx, - fd_txn_t const * txn, - uchar const * payload ) { +validate_vote_txn( fd_tower_tile_t * ctx, + fd_txn_t const * txn, + uchar const * payload ) { if( FD_UNLIKELY( !txn->instr_cnt ) ) return NULL; fd_txn_instr_t const * instr = &txn->instr[ 0 ]; @@ -820,7 +849,7 @@ count_vote_txn( fd_tower_tile_t * ctx, if( FD_UNLIKELY( !fd_txn_is_simple_vote_transaction( txn, payload ) ) ) { ctx->metrics.votes[ FD_METRICS_ENUM_VOTE_TXN_RESULT_V_NOT_SIMPLE_VOTE_IDX ]++; return; } - fd_pubkey_t const * vote_acc = parse_vote_txn( ctx, txn, payload ); + fd_pubkey_t const * vote_acc = validate_vote_txn( ctx, txn, payload ); if( FD_UNLIKELY( !vote_acc ) ) { ctx->metrics.votes[ FD_METRICS_ENUM_VOTE_TXN_RESULT_V_BAD_DESER_IDX ]++; return; } /* Filter any non-TowerSync vote instructions. For gossip / TPU this @@ -892,7 +921,7 @@ count_vote_txn( fd_tower_tile_t * ctx, /* Verify the authorized voter for this vote account at vote_epoch is among the txn signers. Mirrors Agave's cluster_info_vote_listener check. authorized_voter is cached on the epoch_vtr by - update_epoch_vtrs; an all-zero value means we couldn't read it. */ + query_voters; an all-zero value means we couldn't read it. */ if( FD_UNLIKELY( 0==memcmp( &vtr->auth_vtr, &pubkey_null, sizeof(fd_pubkey_t) ) ) ) { ctx->metrics.votes[ FD_METRICS_ENUM_VOTE_TXN_RESULT_V_BAD_SIGNER_IDX ]++; return; } fd_pubkey_t const * accs = (fd_pubkey_t const *)fd_type_pun_const( payload + txn->acct_addr_off ); @@ -914,10 +943,14 @@ count_vote_txn( fd_tower_tile_t * ctx, update_metrics_vote_slot( ctx, votes_err ); if( FD_LIKELY( votes_err==FD_VOTES_SUCCESS ) ) publish_slot_confirmed( ctx, their_last_vote->slot, their_block_id, total_stake ); - /* Agave decides to count intermediate vote slots in the tower only if - 1. they've replayed the slot and 2. their replay bank hash matches - the vote's bank hash. We do the same thing, but using block_ids - instead of bank hashes. + /* Agave decides to count intermediate vote slots in the tower iff: + + 1. they've replayed the slot + 2. their replay bank hash matches the vote's bank hash. + + This guarantees the intermediate slots they are counting are in + fact for the correct ancestry (in case of equivocation). We do the + same thing, but using block ids instead of bank hashes. It's possible we haven't yet replayed this slot being voted on because gossip votes can be ahead of our replay. @@ -979,93 +1012,83 @@ count_vote_txn( fd_tower_tile_t * ctx, } } -FD_FN_UNUSED ulong -query_vote_accs( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed, - fd_ghost_blk_t * ghost_blk, - int * found_our_vote_acct, - ulong * our_vote_acct_bal ) { +/* Query the staked voters in the provided epoch: - ulong total_stake = 0UL; - ulong prev_voter_idx = ULONG_MAX; - ulong pending_cnt = 0UL; + 1. identity keys (aka. node pubkeys) + 2. vote account addresses + 3. associated stake (for the epoch) + 4. authorized voter (for the epoch) */ - fd_bank_t * bank = fd_banks_bank_query( ctx->banks, slot_completed->bank_idx ); - if( FD_UNLIKELY( !bank ) ) FD_LOG_CRIT(( "invariant violation: bank %lu is missing", slot_completed->bank_idx )); - fd_top_votes_t const * top_votes_t_2 = fd_bank_top_votes_t_2_query( bank ); - fd_top_votes_iter_t * iter = fd_top_votes_iter_init( top_votes_t_2, ctx->iter_mem ); +static ulong +query_epoch_voters( fd_tower_tile_t * ctx, + ulong epoch, + fd_funk_txn_xid_t bank_xid, + fd_top_votes_t const * top_votes, + epoch_vtr_t * pool, + epoch_vtr_map_t * map, + int update_id_keys_vote_accs ) { - fd_accdb_ro_pipe_t ro_pipe[1]; - fd_funk_txn_xid_t xid = fd_bank_xid( bank ); - fd_accdb_ro_pipe_init( ro_pipe, ctx->accdb, &xid ); + epoch_vtr_pool_reset( pool ); + epoch_vtr_map_reset( map ); + ulong total_stake = 0UL; + for( fd_top_votes_iter_t * iter = fd_top_votes_iter_init( top_votes, ctx->iter_mem ); + !fd_top_votes_iter_done( top_votes, iter ); + fd_top_votes_iter_next( top_votes, iter ) ) { + fd_pubkey_t pubkey; + ulong stake; + fd_top_votes_iter_ele( top_votes, iter, &pubkey, NULL, &stake, NULL, NULL, NULL, NULL ); + FD_TEST( stake>0UL ); /* top_votes only holds staked voters */ + total_stake += stake; + epoch_vtr_t * vtr = epoch_vtr_pool_ele_acquire( pool ); + vtr->vote_acc = pubkey; + vtr->stake = stake; + memset( &vtr->auth_vtr, 0, sizeof(fd_pubkey_t) ); - for(;;) { - if( FD_UNLIKELY( fd_top_votes_iter_done( top_votes_t_2, iter ) ) ) { - if( !pending_cnt ) break; - fd_accdb_ro_pipe_flush( ro_pipe ); - } else { - fd_pubkey_t vote_acc; - ulong stake; - uchar is_valid; - fd_top_votes_iter_ele( top_votes_t_2, iter, &vote_acc, NULL, &stake, NULL, NULL, NULL, &is_valid ); - fd_top_votes_iter_next( top_votes_t_2, iter ); - total_stake += stake; - if( FD_UNLIKELY( !is_valid ) ) continue; + /* Cache the authorized voter for target_epoch. Leaves + auth_vtr all-zero if the vote account is unreadable — + count_vote_txn will reject txns whose signer can't match. */ - fd_accdb_ro_pipe_enqueue( ro_pipe, vote_acc.key ); - pending_cnt++; + fd_accdb_ro_t ro[1]; + if( FD_LIKELY( fd_accdb_open_ro( ctx->accdb, ro, &bank_xid, &pubkey ) ) ) { + uchar const * data = fd_accdb_ref_data_const( ro ); + ulong data_sz = fd_accdb_ref_data_sz( ro ); + ulong dummy_idx; + deser_auth_vtr( ctx, data, data_sz, epoch, 1, &vtr->auth_vtr, &dummy_idx ); + if( update_id_keys_vote_accs ) { + FD_TEST( 0==fd_vote_account_node_pubkey( data, data_sz, &ctx->id_keys[ctx->vtr_cnt] ) ); /* check vote account is not corrupt */ + ctx->vote_accs[ctx->vtr_cnt] = pubkey; + ctx->vtr_cnt++; + } + fd_accdb_close_ro( ctx->accdb, ro ); } - fd_accdb_ro_t * ro; - while( FD_LIKELY( ro = fd_accdb_ro_pipe_poll( ro_pipe ) ) ) { - pending_cnt--; - fd_pubkey_t const * vote_acc = fd_accdb_ref_address( ro ); - - ulong stake; - FD_TEST( fd_top_votes_query( top_votes_t_2, vote_acc, NULL, &stake, NULL, NULL, NULL, NULL ) ); - - FD_TEST( fd_accdb_ref_lamports( ro ) && fd_vsv_is_correct_size_owner_and_init( ro->meta ) ); - - uchar const * data = fd_accdb_ref_data_const( ro ); - - FD_TEST( stake > 0 ); - count_vote_acc( ctx, slot_completed, ghost_blk, vote_acc, stake, data, ro->meta->dlen ); - - prev_voter_idx = fd_tower_stakes_insert( ctx->tower, slot_completed->slot, vote_acc, stake, prev_voter_idx ); - } + epoch_vtr_map_ele_insert( map, vtr, pool ); } - fd_accdb_ro_pipe_fini( ro_pipe ); - - /* Reconcile our local tower with the on-chain tower (stored inside - our vote account). - - Skip reconciliation on the first replay_slot_completed if booted - with wait_for_supermajority. This prevents spurious lockout_check - failures (slot <= last_vote_slot) and threshold_check failures - (deep stale tower with no voter support) */ + return total_stake; +} - *our_vote_acct_bal = ULONG_MAX; - *found_our_vote_acct = 0; - fd_funk_txn_xid_t reconcile_xid = fd_bank_xid( bank ); - fd_accdb_ro_t reconcile_ro[1]; - if( FD_LIKELY( fd_accdb_open_ro( ctx->accdb, reconcile_ro, &reconcile_xid, ctx->vote_account ) ) ) { - *found_our_vote_acct = 1; - ctx->our_vote_acct_sz = fd_ulong_min( fd_accdb_ref_data_sz( reconcile_ro ), FD_VOTE_STATE_DATA_MAX ); - *our_vote_acct_bal = fd_accdb_ref_lamports( reconcile_ro ); - fd_memcpy( ctx->our_vote_acct, fd_accdb_ref_data_const( reconcile_ro ), ctx->our_vote_acct_sz ); - fd_accdb_close_ro( ctx->accdb, reconcile_ro ); - int skip_reconcile = !ctx->init && ctx->wfs; - if( FD_LIKELY( !skip_reconcile ) ) { - ulong root; - fd_tower_vote_remove_all( ctx->scratch_tower ); - fd_tower_from_vote_acc( ctx->scratch_tower, &root, ctx->our_vote_acct, ctx->our_vote_acct_sz ); - fd_tower_reconcile( ctx->tower, ctx->scratch_tower, root ); - } else { - FD_LOG_NOTICE(( "wait_for_supermajority: skipping tower reconcile on init slot %lu", slot_completed->slot )); - } +/* Update the cached voters for both the currently rooted epoch and the + next epoch, to allow processing vote transactions for vote slots that + span both these epochs. */ + +FD_FN_UNUSED void +query_voters( fd_tower_tile_t * ctx, + fd_replay_slot_completed_t * slot_completed, + ulong epoch ) { + if( FD_LIKELY( ctx->banks ) ) { + fd_bank_t * bank = fd_banks_bank_query( ctx->banks, slot_completed->bank_idx ); + if( FD_UNLIKELY( !bank ) ) FD_LOG_CRIT(( "invariant violation: bank %lu is missing", slot_completed->bank_idx )); + + fd_funk_txn_xid_t bank_xid = fd_bank_xid( bank ); + ctx->vtr_cnt = 0; + ctx->root_epoch_total_stake = query_epoch_voters( ctx, epoch, bank_xid, fd_bank_top_votes_t_2_query( bank ), ctx->root_epoch_vtr_pool, ctx->root_epoch_vtr_map, 1 ); + ctx->next_epoch_total_stake = query_epoch_voters( ctx, epoch+1UL, bank_xid, fd_bank_top_votes_t_1_query( bank ), ctx->next_epoch_vtr_pool, ctx->next_epoch_vtr_map, 0 ); } + ctx->root_epoch = epoch; - return total_stake; + fd_eqvoc_update_voters( ctx->eqvoc, ctx->id_keys, ctx->vtr_cnt ); + fd_hfork_update_voters( ctx->hfork, ctx->vote_accs, ctx->vtr_cnt ); + fd_votes_update_voters( ctx->votes, ctx->vote_accs, ctx->vtr_cnt ); } static void @@ -1217,39 +1240,31 @@ replay_slot_completed( fd_tower_tile_t * ctx, ulong our_vote_acct_bal = ULONG_MAX; int found = 0; - ghost_blk->total_stake = QUERY_VOTE_ACCS( ctx, slot_completed, ghost_blk, &found, &our_vote_acct_bal ); + ghost_blk->total_stake = QUERY_TOWERS( ctx, slot_completed, ghost_blk, &found, &our_vote_acct_bal ); /* The first replay_slot_completed msg is used to initialize the tower tile's various structures. */ if( FD_UNLIKELY( !ctx->init ) ) { ctx->init = 1; - update_voters( ctx, slot_completed, slot_completed->epoch ); + QUERY_VOTERS( ctx, slot_completed, slot_completed->epoch ); } /* Insert into hard fork detector. */ - fd_epoch_leaders_t const * hfork_lsched = fd_multi_epoch_leaders_get_lsched_for_slot( ctx->mleaders, slot_completed->slot ); - ulong hfork_total_stake = 0UL; - if( FD_LIKELY( hfork_lsched ) ) { - if( FD_LIKELY( hfork_lsched->epoch==ctx->root_epoch ) ) hfork_total_stake = ctx->root_epoch_total_stake; - else if( FD_LIKELY( hfork_lsched->epoch==ctx->root_epoch + 1 ) ) hfork_total_stake = ctx->next_epoch_total_stake; - } - int hfork_flag = fd_hfork_record_our_bank_hash( ctx->hfork, &slot_completed->block_id, &slot_completed->bank_hash, hfork_total_stake ); + fd_epoch_leaders_t const * lsched = fd_multi_epoch_leaders_get_lsched_for_slot( ctx->mleaders, slot_completed->slot ); + int hfork_flag = fd_hfork_record_our_bank_hash( ctx->hfork, &slot_completed->block_id, &slot_completed->bank_hash, fd_ulong_if( lsched->epoch==ctx->root_epoch, ctx->root_epoch_total_stake, ctx->next_epoch_total_stake ) ); update_metrics_hfork( ctx, hfork_flag, slot_completed->slot, &slot_completed->block_id ); /* Determine reset, vote, and root slots. There may not be a vote or root slot but there is always a reset slot. */ fd_tower_out_t out = { .vote_slot = ULONG_MAX, .root_slot = ULONG_MAX }; - out.flags = fd_tower_vote_and_reset( ctx->tower, ctx->ghost, ctx->votes, - &out.reset_slot, &out.reset_block_id, - &out.vote_slot, &out.vote_block_id, &out.vote_bank_hash, &out.vote_block_hash, - &out.root_slot, &out.root_block_id ); - if( FD_LIKELY( out.vote_slot!=ULONG_MAX ) ) { - - /* If there is a vote slot we record it. */ - + out.flags = fd_tower_vote_and_reset( ctx->tower, ctx->ghost, ctx->votes, + &out.reset_slot, &out.reset_block_id, + &out.vote_slot, &out.vote_block_id, &out.vote_bank_hash, &out.vote_block_hash, + &out.root_slot, &out.root_block_id ); + if( FD_LIKELY( out.vote_slot!=ULONG_MAX ) ) { /* if there is a vote slot we record it. */ fd_tower_blk_t * vote_tower_blk = fd_tower_blocks_query( ctx->tower, out.vote_slot ); vote_tower_blk->voted = 1; vote_tower_blk->voted_block_id = out.vote_block_id; @@ -1278,7 +1293,7 @@ replay_slot_completed( fd_tower_tile_t * ctx, if( FD_UNLIKELY( oldr_tower_blk->epoch+1==newr_tower_blk->epoch ) ) { FD_TEST( newr_tower_blk->epoch==slot_completed->epoch ); /* new root's epoch must be same as current slot_completed */ - update_voters( ctx, slot_completed, newr_tower_blk->epoch ); + QUERY_VOTERS( ctx, slot_completed, newr_tower_blk->epoch ); } fd_votes_publish( ctx->votes, out.root_slot ); @@ -1530,9 +1545,10 @@ metrics_write( fd_tower_tile_t * ctx ) { FD_MCNT_ENUM_COPY( TOWER, FORK_DECISION, ctx->metrics.fork ); FD_MCNT_ENUM_COPY( TOWER, VOTE_GATE, ctx->metrics.gate ); - FD_MCNT_ENUM_COPY( TOWER, VOTES, ctx->metrics.votes ); - FD_MCNT_ENUM_COPY( TOWER, VOTE_SLOTS, ctx->metrics.vote_slots ); + FD_MCNT_ENUM_COPY( TOWER, VOTES, ctx->metrics.votes ); + FD_MCNT_ENUM_COPY( TOWER, VOTE_SLOTS, ctx->metrics.vote_slots ); FD_MCNT_ENUM_COPY( TOWER, VOTE_INTERMEDIATE_GATE, ctx->metrics.gate_int ); + FD_MCNT_SET( TOWER, EQVOC_SUCCESS, ctx->metrics.eqvoc_success ); FD_MCNT_SET( TOWER, EQVOC_ERR, ctx->metrics.eqvoc_err ); diff --git a/src/discof/tower/test_tower_tile.c b/src/discof/tower/test_tower_tile.c index b8bf5442dc1..1688428b92f 100644 --- a/src/discof/tower/test_tower_tile.c +++ b/src/discof/tower/test_tower_tile.c @@ -1,15 +1,12 @@ -#define QUERY_VOTE_ACCS mock_query_vote_accs -#define UPDATE_EPOCH_VTRS mock_update_epoch_vtrs +#define QUERY_TOWERS mock_query_towers +#define QUERY_VOTERS mock_query_voters #include "fd_tower_tile.c" -/* Stub the bank-dependent epoch_vtr_t population for tests that don't - set up ctx->banks / ctx->accdb. */ - void -mock_update_epoch_vtrs( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed FD_PARAM_UNUSED, - ulong epoch ) { +mock_query_voters( fd_tower_tile_t * ctx, + fd_replay_slot_completed_t * slot_completed FD_PARAM_UNUSED, + ulong epoch ) { ctx->root_epoch = epoch; } @@ -235,15 +232,15 @@ test_count_vote_txn( void ) { #define FIXTURE_RECORD_SZ (32UL + 32UL + 8UL + 8UL + FD_VOTE_STATE_DATA_MAX) #define FIXTURE_FILE_SZ (FIXTURE_VTR_CNT * FIXTURE_RECORD_SZ) -/* mock_query_vote_accs: loads voter data from a fixture file for the +/* mock_query_towers: loads voter data from a fixture file for the current slot and calls count_vote_acc for each record. */ ulong -mock_query_vote_accs( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed, - fd_ghost_blk_t * ghost_blk, - int * found_our_vote_acct, - ulong * our_vote_acct_bal ) { +mock_query_towers( fd_tower_tile_t * ctx, + fd_replay_slot_completed_t * slot_completed, + fd_ghost_blk_t * ghost_blk, + int * found_our_vote_acct, + ulong * our_vote_acct_bal ) { /* Open the fixture file for this slot. */ @@ -275,6 +272,9 @@ mock_query_vote_accs( fd_tower_tile_t * ctx, count_vote_acc( ctx, slot_completed, ghost_blk, &vote_acc, stake, data, FD_VOTE_STATE_DATA_MAX ); + ctx->vote_accs[i] = vote_acc; + fd_vote_account_node_pubkey( data, FD_VOTE_STATE_DATA_MAX, &ctx->id_keys[i] ); + total_stake += stake; prev_voter_idx = fd_tower_stakes_insert( ctx->tower, slot_completed->slot, &vote_acc, stake, prev_voter_idx ); } @@ -327,6 +327,10 @@ test_fixture_replay( fd_wksp_t * wksp ) { ulong start_slot = 398915634UL; ulong num_slots = 32UL; + fd_vote_stake_weight_t fixture_stakes[1] = {{ .vote_key = {{0}}, .id_key = {{0}}, .stake = 1UL }}; + ctx->mleaders->lsched[0] = fd_epoch_leaders_join( fd_epoch_leaders_new( ctx->mleaders->_lsched[0], 0, start_slot - 1, num_slots + MOCK_SLOT_MAX + 100, 1UL, fixture_stakes, 0UL ) ); + ctx->mleaders->init_done[0] = 1; + for( ulong slot = start_slot; slot < start_slot + num_slots; slot++ ) { fd_replay_slot_completed_t sc; @@ -429,6 +433,11 @@ eqvoc_setup( fd_wksp_t * wksp ) { memset( ctx->identity_key, 0x11, sizeof(fd_pubkey_t) ); memset( ctx->vote_account, 0x22, sizeof(fd_pubkey_t) ); + fd_vote_stake_weight_t eqvoc_stakes[1] = {{ .vote_key = {{0}}, .id_key = {{0}}, .stake = 1UL }}; + ulong eqvoc_slot_cnt = EQVOC_BOOT_CNT + MOCK_SLOT_MAX + 100; + ctx->mleaders->lsched[0] = fd_epoch_leaders_join( fd_epoch_leaders_new( ctx->mleaders->_lsched[0], 0, EQVOC_START_SLOT - 1, eqvoc_slot_cnt, 1UL, eqvoc_stakes, 0UL ) ); + ctx->mleaders->init_done[0] = 1; + for( ulong slot = EQVOC_START_SLOT; slot < EQVOC_START_SLOT + EQVOC_BOOT_CNT; slot++ ) { fd_replay_slot_completed_t sc; memset( &sc, 0, sizeof(sc) ); diff --git a/src/discof/txsend/Local.mk b/src/discof/txsend/Local.mk index a865bebf55e..a9297945cc9 100644 --- a/src/discof/txsend/Local.mk +++ b/src/discof/txsend/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_txsend_tile,fd_discof) endif -endif diff --git a/src/discof/txsend/fd_txsend_tile.c b/src/discof/txsend/fd_txsend_tile.c index 8da7b2b1d03..8000bec6f5d 100644 --- a/src/discof/txsend/fd_txsend_tile.c +++ b/src/discof/txsend/fd_txsend_tile.c @@ -54,7 +54,7 @@ fd_quic_limits_t quic_limits = { #define MAP_KEY_T fd_pubkey_t #define MAP_NEXT map.next #define MAP_KEY_EQ(k0,k1) fd_pubkey_eq( k0, k1 ) -#define MAP_KEY_HASH(key,seed) fd_funk_rec_key_hash1( (key)->uc, (seed) ) +#define MAP_KEY_HASH(key,seed) fd_progcache_rec_key_hash1( (key)->uc, (seed) ) #define MAP_IMPL_STYLE 2 #include "../../util/tmpl/fd_map_chain.c" diff --git a/src/discof/txsend/fd_txsend_tile.h b/src/discof/txsend/fd_txsend_tile.h index 2650c35da79..a10b6755098 100644 --- a/src/discof/txsend/fd_txsend_tile.h +++ b/src/discof/txsend/fd_txsend_tile.h @@ -2,6 +2,7 @@ #define HEADER_fd_src_discof_txsend_fd_txsend_tile_h #include "../../waltz/quic/fd_quic.h" +#include "../../flamenco/progcache/fd_progcache_xid.h" #include "../../flamenco/leaders/fd_multi_epoch_leaders.h" #include "../../flamenco/gossip/fd_gossip_message.h" #include "../../disco/stem/fd_stem.h" @@ -78,7 +79,7 @@ typedef struct peer_entry peer_entry_t; #define MAP_KEY_T fd_pubkey_t #define MAP_NEXT map.next #define MAP_KEY_EQ(k0,k1) fd_pubkey_eq( k0, k1 ) -#define MAP_KEY_HASH(key,seed) fd_funk_rec_key_hash1( (key)->uc, (seed) ) +#define MAP_KEY_HASH(key,seed) fd_progcache_rec_key_hash1( (key)->uc, (seed) ) #define MAP_IMPL_STYLE 1 #include "../../util/tmpl/fd_map_chain.c" diff --git a/src/discoh/bank/fd_bank_abi.c b/src/discoh/bank/fd_bank_abi.c index 5fb407e19e0..a4b32876484 100644 --- a/src/discoh/bank/fd_bank_abi.c +++ b/src/discoh/bank/fd_bank_abi.c @@ -1,4 +1,3 @@ - #include "fd_bank_abi.h" #include "../../flamenco/runtime/fd_system_ids_pp.h" #include "../../flamenco/runtime/fd_system_ids.h" @@ -6,6 +5,8 @@ #include "../../disco/pack/fd_pack_unwritable.h" #include "../../disco/pack/fd_compute_budget_program.h" +#include + #define ABI_ALIGN( x ) __attribute__((packed)) __attribute__((aligned(x))) /* Lots of these types contain Rust structs with vectors in them. The diff --git a/src/discoh/plugin/Local.mk b/src/discoh/plugin/Local.mk index 6f95c02cad8..5bd417cd4b0 100644 --- a/src/discoh/plugin/Local.mk +++ b/src/discoh/plugin/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_plugin_tile,fd_disco,fd_flamenco) endif -endif diff --git a/src/discoh/pohh/Local.mk b/src/discoh/pohh/Local.mk index 24626f9ef63..8eb1a59c4ed 100644 --- a/src/discoh/pohh/Local.mk +++ b/src/discoh/pohh/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_pohh_tile,fd_discoh) endif -endif diff --git a/src/discoh/resolh/Local.mk b/src/discoh/resolh/Local.mk index bdf0d36c439..6ea370c605c 100644 --- a/src/discoh/resolh/Local.mk +++ b/src/discoh/resolh/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_resolh_tile,fd_discoh) endif -endif diff --git a/src/discoh/store/Local.mk b/src/discoh/store/Local.mk index c9aaf593b13..53cca4ac3d6 100644 --- a/src/discoh/store/Local.mk +++ b/src/discoh/store/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_store_tile,fd_discoh) endif -endif diff --git a/src/flamenco/accdb/Local.mk b/src/flamenco/accdb/Local.mk index aced04ffdd5..6049fb8849a 100644 --- a/src/flamenco/accdb/Local.mk +++ b/src/flamenco/accdb/Local.mk @@ -36,3 +36,27 @@ ifdef FD_HAS_RACESAN $(call make-unit-test,test_accdb_v1_racesan,test_accdb_v1_racesan,fd_flamenco fd_funk fd_ballet fd_util) endif endif + +# New accounts database (accdb v4) core library +ifdef FD_HAS_ATOMIC +ifdef FD_HAS_ALLOCA + +$(call add-hdrs,fd_accdb.h fd_accdb_cache.h fd_accdb_shmem.h) +$(call add-objs,fd_accdb fd_accdb_cache fd_accdb_shmem,fd_flamenco) + +$(call make-unit-test,test_accdb,test_accdb,fd_flamenco fd_ballet fd_util) +$(call run-unit-test,test_accdb) + +$(call make-unit-test,test_accdb_cache,test_accdb_cache,fd_flamenco fd_ballet fd_util) +$(call run-unit-test,test_accdb_cache) + +$(call make-unit-test,bench_accdb,bench_accdb,fd_flamenco fd_ballet fd_util) +$(call make-unit-test,bench_accdb_hotread,bench_accdb_hotread,fd_flamenco fd_ballet fd_util) +$(call make-unit-test,bench_accdb_txn,bench_accdb_txn,fd_flamenco fd_ballet fd_util) + +ifdef FD_HAS_RACESAN +$(call make-unit-test,test_accdb_racesan,test_accdb_racesan,fd_flamenco fd_ballet fd_util) +endif + +endif +endif diff --git a/src/flamenco/accdb/bench_accdb.c b/src/flamenco/accdb/bench_accdb.c new file mode 100644 index 00000000000..9988aacf2e1 --- /dev/null +++ b/src/flamenco/accdb/bench_accdb.c @@ -0,0 +1,523 @@ +#define _GNU_SOURCE + +#include "fd_accdb.h" +#include "../../util/fd_util.h" + +#include +#include +#include +#include + +/* Account size distribution modeled from Solana mainnet snapshot data. + ~996M accounts, ~285.5 GiB total. The cumulative distribution + function (CDF) is encoded as a table of (threshold, avg_size) pairs + so we can sample sizes that match real-world distribution. + + Key characteristics: + - 65% of accounts are 128-256 bytes (token accounts, 165 B) + - 91% of accounts are <= 256 bytes + - 99% of accounts are <= 1024 bytes + - Tail goes up to 10 MiB + + Weights below are parts-per-thousand (permille). They sum to + 1000 and are derived from the bin_cnt column of the histogram. */ + +struct size_bucket { + uint weight; /* permille (parts per 1000) */ + uint avg_size; /* representative size for this bucket */ +}; + +static struct size_bucket const SIZE_DIST[] = { + { 76, 0 }, /* 0 <= sz <= 0 : 7.6% */ + { 33, 1 }, /* 0 < sz <= 1 : 0.3% (cumul 7.9%) — grouped small */ + { 5, 2 }, /* 1 < sz <= 2 */ + { 4, 3 }, /* 2 < sz <= 4 */ + { 2, 7 }, /* 4 < sz <= 8 */ + { 8, 12 }, /* 8 < sz <= 16 */ + { 31, 22 }, /* 16 < sz <= 32 */ + { 27, 51 }, /* 32 < sz <= 64 */ + { 113, 88 }, /* 64 < sz <= 128 */ + { 653, 165 }, /* 128 < sz <= 256 : 65.3% — token accounts */ + { 20, 347 }, /* 256 < sz <= 512 */ + { 14, 638 }, /* 512 < sz <= 1024 — kept small so bench runs fast */ + /* remaining ~1.2% grouped into larger buckets, but omitted for + benchmark speed. We add the remaining weight to the 638 bucket + above so weights sum to ~1000. */ +}; + +#define SIZE_DIST_CNT (sizeof(SIZE_DIST)/sizeof(SIZE_DIST[0])) + +static ulong +sample_account_size( fd_rng_t * rng ) { + uint r = fd_rng_uint( rng ) % 1000U; + uint cumul = 0U; + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, fork, pubkey, i+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + total_bytes += sz; + } + dt += fd_log_wallclock(); + + double secs = (double)dt / 1e9; + FD_LOG_NOTICE(( "bench_write: %lu accounts, %.2f MiB data in %.3f s " + "(%.0f accts/s, %.2f MiB/s, %.0f ns/write)", + account_cnt, + (double)total_bytes / (double)(1UL<<20UL), + secs, + (double)account_cnt / secs, + (double)total_bytes / (double)(1UL<<20UL) / secs, + (double)dt / (double)account_cnt )); + + close( fd ); +} + +/* ------------------------------------------------------------------ */ + +/* bench_read: Populate N accounts, then read them all back in random + order, measuring read throughput. */ +static void +bench_read( ulong account_cnt, + fd_rng_t * rng ) { + int fd; + ulong partition_sz = 1UL<<30UL; + ulong partition_cnt = 1024UL; + fd_accdb_t * accdb = bench_setup( &fd, + account_cnt + 1024UL, + 64UL, + (uint)account_cnt + 1024U, + partition_cnt, + partition_sz ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t fork = fd_accdb_attach_child( accdb, root ); + + /* Populate */ + uchar pubkey[ 32 ]; + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, fork, pubkey, i+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + } + + /* Read in random order */ + ulong lamports; + uchar rdata[ BENCH_MAX_DATA_SZ ]; + ulong data_len; + uchar owner[ 32 ]; + ulong total_bytes = 0UL; + ulong found = 0UL; + + long dt = -fd_log_wallclock(); + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, cur, pubkey, (s*writes_per_slot + w)+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + total_write_bytes += sz; + total_writes++; + } + long t2 = fd_log_wallclock(); + dt_write += (t2 - t1); + + /* --- root previous slot --- */ + if( FD_LIKELY( s>0UL ) ) { + fd_accdb_advance_root( accdb, prev ); + { int b = 0; fd_accdb_background( accdb, &b ); } + } + long t3 = fd_log_wallclock(); + dt_root += (t3 - t2); + + prev = cur; + } + dt_total += fd_log_wallclock(); + + fd_accdb_shmem_metrics_t const * m = fd_accdb_shmetrics( accdb ); + + double total_secs = (double)dt_total / 1e9; + FD_LOG_NOTICE(( "bench_replay: %lu slots, %lu reads/slot, " + "%lu writes/slot, %.3f s total", + slot_cnt, reads_per_slot, writes_per_slot, + total_secs )); + FD_LOG_NOTICE(( " read: %lu queries (%lu hits, %.1f%% hit rate), " + "%.0f reads/s, %.0f ns/read", + total_reads, total_read_hits, + total_reads ? 100.0*(double)total_read_hits/(double)total_reads : 0.0, + (double)total_reads / ((double)dt_read/1e9), + dt_read ? (double)dt_read/(double)total_reads : 0.0 )); + FD_LOG_NOTICE(( " write: %lu writes, %.2f MiB, " + "%.0f writes/s, %.0f ns/write", + total_writes, + (double)total_write_bytes / (double)(1UL<<20UL), + (double)total_writes / ((double)dt_write/1e9), + dt_write ? (double)dt_write/(double)total_writes : 0.0 )); + FD_LOG_NOTICE(( " root: %.0f ns/root, %.3f s total " + "(%lu slots rooted)", + slot_cnt>1UL ? (double)dt_root/(double)(slot_cnt-1UL) : 0.0, + (double)dt_root / 1e9, + slot_cnt>1UL ? slot_cnt-1UL : 0UL )); + FD_LOG_NOTICE(( " slot: %.0f ns/slot (%.0f slots/s)", + (double)dt_total / (double)slot_cnt, + (double)slot_cnt / total_secs )); + FD_LOG_NOTICE(( " metrics: accounts_total=%lu disk_used=%.2f MiB " + "disk_alloc=%.2f MiB", + m->accounts_total, + (double)m->disk_used_bytes / (double)(1UL<<20UL), + (double)m->disk_allocated_bytes / (double)(1UL<<20UL) )); + + close( fd ); +} + +/* ------------------------------------------------------------------ */ + +/* bench_mixed: Mixed read-write workload. Populate a base set of + accounts, then run a workload that is read_pct% reads and the rest + writes, simulating transaction execution that reads many accounts + but updates fewer. */ +static void +bench_mixed( ulong base_cnt, + ulong op_cnt, + uint read_pct, + fd_rng_t * rng ) { + int fd; + ulong partition_sz = 1UL<<30UL; + ulong partition_cnt = 1024UL; + fd_accdb_t * accdb = bench_setup( &fd, + base_cnt + op_cnt + 1024UL, + 64UL, + (uint)(base_cnt + op_cnt) + 1024U, + partition_cnt, + partition_sz ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t fork = fd_accdb_attach_child( accdb, root ); + + /* Populate base set */ + uchar pubkey[ 32 ]; + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, fork, pubkey, i+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + } + + uchar rdata[ BENCH_MAX_DATA_SZ ]; + ulong lamports; + ulong data_len; + uchar owner[ 32 ]; + ulong reads = 0UL; + ulong writes = 0UL; + + long dt = -fd_log_wallclock(); + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, fork, pubkey, i+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + writes++; + } + } + dt += fd_log_wallclock(); + + double secs = (double)dt / 1e9; + FD_LOG_NOTICE(( "bench_mixed: %lu ops (%lu reads, %lu writes) in %.3f s " + "(%.0f ops/s, %.0f ns/op, read_pct=%u%%)", + op_cnt, reads, writes, secs, + (double)op_cnt / secs, + (double)dt / (double)op_cnt, + (uint)read_pct )); + + close( fd ); +} + +/* ------------------------------------------------------------------ */ + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + ulong account_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--accounts", NULL, 100000UL ); + ulong slot_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--slots", NULL, 100UL ); + ulong writes_per_slot = fd_env_strip_cmdline_ulong( &argc, &argv, "--writes-per-slot", NULL, 1200UL ); + ulong reads_per_slot = fd_env_strip_cmdline_ulong( &argc, &argv, "--reads-per-slot", NULL, 4800UL ); + ulong mixed_ops = fd_env_strip_cmdline_ulong( &argc, &argv, "--mixed-ops", NULL, 200000UL ); + uint read_pct = fd_env_strip_cmdline_uint ( &argc, &argv, "--read-pct", NULL, 80U ); + uint seed = fd_env_strip_cmdline_uint ( &argc, &argv, "--seed", NULL, 42U ); + + FD_LOG_NOTICE(( "accdb benchmark (accounts=%lu slots=%lu wpslot=%lu " + "rpslot=%lu mixed_ops=%lu read_pct=%u seed=%u)", + account_cnt, slot_cnt, writes_per_slot, reads_per_slot, + mixed_ops, read_pct, seed )); + + fd_rng_t _rng[1]; + fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, seed, 0UL ) ); + FD_TEST( rng ); + + FD_LOG_NOTICE(( "--- write throughput ---" )); + bench_write( account_cnt, rng ); + + FD_LOG_NOTICE(( "--- read throughput ---" )); + bench_read( account_cnt, rng ); + + FD_LOG_NOTICE(( "--- replay simulation ---" )); + bench_replay( slot_cnt, writes_per_slot, reads_per_slot, rng ); + + FD_LOG_NOTICE(( "--- mixed read/write (%u%% reads) ---", read_pct )); + bench_mixed( account_cnt, mixed_ops, read_pct, rng ); + + fd_rng_delete( fd_rng_leave( rng ) ); + + FD_LOG_NOTICE(( "pass" )); + fd_halt(); + return 0; +} diff --git a/src/flamenco/accdb/bench_accdb_hotread.c b/src/flamenco/accdb/bench_accdb_hotread.c new file mode 100644 index 00000000000..5bd320af935 --- /dev/null +++ b/src/flamenco/accdb/bench_accdb_hotread.c @@ -0,0 +1,158 @@ +#define _GNU_SOURCE + +#include "fd_accdb.h" +#include "../../util/fd_util.h" + +#include +#include +#include +#include + +/* bench_accdb_hotread: populate a small set of accounts so they all fit + in cache, then hammer acquire+release read-only in a tight loop for a + fixed duration. This isolates the hot-path cost of in-cache reads + without any disk I/O, eviction, or write-back noise. */ + +static uchar dummy_owner[ 32 ] = { 0xEE }; + +#define BENCH_MAX_DATA_SZ (256UL) /* token-account sized */ +#define BENCH_CACHE_FOOTPRINT (16UL<<30UL) + +static uchar data_buf[ BENCH_MAX_DATA_SZ ]; + +static void +make_pubkey( uchar pubkey[ static 32 ], + ulong idx ) { + fd_memset( pubkey, 0, 32UL ); + fd_memcpy( pubkey, &idx, sizeof(ulong) ); +} + +static fd_accdb_t * +bench_setup( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz ) { + int fd = memfd_create( "accdb_hotread", 0 ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + *out_fd = fd; + + ulong cache_fp = BENCH_CACHE_FOOTPRINT; + ulong shmem_fp = fd_accdb_shmem_footprint( max_accounts, max_live_slots, max_account_writes_per_slot, partition_cnt, cache_fp, 640UL, 1UL ); + FD_TEST( shmem_fp ); + void * shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( shmem_mem ); + fd_accdb_shmem_t * shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( shmem_mem, max_accounts, max_live_slots, + max_account_writes_per_slot, partition_cnt, + partition_sz, cache_fp, 640UL, 0, 42UL, 1UL ) ); + FD_TEST( shmem ); + + ulong accdb_fp = fd_accdb_footprint( max_live_slots ); + FD_TEST( accdb_fp ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, shmem, fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + ulong account_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--accounts", NULL, 10000UL ); + ulong duration_ns = fd_env_strip_cmdline_ulong( &argc, &argv, "--duration", NULL, 15000000000UL ); /* 15 s */ + uint seed = fd_env_strip_cmdline_uint ( &argc, &argv, "--seed", NULL, 42U ); + + FD_LOG_NOTICE(( "accdb hot-read bench (accounts=%lu duration=%.1f s seed=%u)", + account_cnt, (double)duration_ns/1e9, seed )); + + fd_rng_t _rng[1]; + fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, seed, 0UL ) ); + FD_TEST( rng ); + + /* Setup */ + int fd; + ulong partition_sz = 1UL<<30UL; + ulong partition_cnt = 1024UL; + fd_accdb_t * accdb = bench_setup( &fd, + account_cnt + 1024UL, + 64UL, + (uint)account_cnt + 1024U, + partition_cnt, + partition_sz ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t fork = fd_accdb_attach_child( accdb, root ); + + /* Populate accounts so they are all in cache */ + uchar pubkey[ 32 ]; + for( ulong i=0UL; i +#include +#include +#include + +/* bench_accdb_txn: Simulate realistic mainnet transaction patterns + against the accounts database in a tight loop. + + Each simulated transaction acquires a mix of read-only and read-write + accounts, optionally mutates the writable ones, then releases with + commit or revert based on measured mainnet failure rates. + + The transaction mix, account counts, data sizes, and commit/revert + ratios are derived from a 1000-slot mainnet replay + (slots 406545575-406546575, ~1.24M transactions). + + The benchmark pre-populates a pool of accounts with realistic sizes, + then runs the acquire/release loop for a configurable duration, + reporting aggregate throughput. + + This is NOT a full transaction execution benchmark — it purely + measures the accounts database hot path (cache hits, acquire/release, + commit/revert) under a realistic workload shape. */ + +static uchar dummy_owner[ 32 ] = { 0xEE }; + +/* Maximum data buffer for writes. Writable accounts need staging + space; we cap at a reasonable size for the benchmark. */ +#define BENCH_MAX_DATA_SZ (10UL<<20UL) /* 10 MiB max */ +#define BENCH_MAX_ACCTS_PER_TXN (64UL) +#define BENCH_CACHE_FOOTPRINT (16UL<<30UL) + +/* Transaction archetype: a representative mix of account access + patterns observed on mainnet. Each archetype specifies: + - ro_cnt / rw_cnt: number of read-only / read-write accounts + - ro_data_sz / rw_data_sz: representative per-account data size + - weight: frequency in parts per 10000 + - fail_rate: failure probability in parts per 10000 + + Derived from the per-transaction histograms measured on + mainnet-406545575-perf (1000 slots, 1.24M txns). The archetypes + cover ~99% of observed transactions. */ + +struct txn_archetype { + uint ro_cnt; + uint rw_cnt; + uint ro_data_sz; /* representative per-account read-only data size */ + uint rw_data_sz; /* representative per-account read-write data size */ + uint weight; /* parts per 10000 */ + uint fail_ppm; /* failure rate in parts per 10000 */ +}; + +/* Archetypes derived from the histogram data: + + ~62% of txns: 1 RO, 2 RW — simple transfers/token ops + - RO: mostly <128 B (program accounts) + - RW: mostly 165-500 B (token accounts) + - Fail rate: ~0.25% of these (very low) + + ~3% of txns: 2 RO, 2-3 RW — token swaps (simple) + - RO: 128-512 B + - RW: 165-512 B + - Fail rate: ~4% + + ~4% of txns: 4 RO, 4 RW — small DeFi interactions + - RO: 128-1K + - RW: 256-1K + - Fail rate: ~6% + + ~5% of txns: 5-8 RO, 5-8 RW — medium DeFi/AMM swaps + - RO: 1K-4K per account + - RW: 512-2K per account + - Fail rate: ~7% + + ~14% of txns: 12 RO, 12 RW — complex DeFi (Raydium, Orca, etc.) + - RO: 8K per account (64K-128K total / ~12 accounts) + - RW: 2K per account (16K-32K total / ~12 accounts) + - Fail rate: ~27% + + ~9% of txns: 24 RO, 24 RW — very complex DeFi, multi-hop routes + - RO: 8K per account (128K-256K total / ~24 accounts) + - RW: 2K per account (32K-64K total / ~24 accounts) + - Fail rate: ~34% + + ~4% of txns: 2 RO, 48 RW — bulk operations (token-2022, etc.) + - RO: 128 B + - RW: 165 B + - Fail rate: ~17% +*/ + +static struct txn_archetype const TXN_ARCHETYPES[] = { + /* ro rw ro_sz rw_sz weight fail */ + { 0, 1, 0, 165, 300, 25 }, /* single write (baseline) */ + { 1, 2, 82, 165, 5930, 25 }, /* simple transfer/token op */ + { 2, 3, 200, 300, 330, 400 }, /* simple swap */ + { 4, 4, 512, 512, 370, 600 }, /* small DeFi */ + { 6, 6, 2048, 1024, 505, 700 }, /* medium DeFi / AMM */ + { 12, 12, 8192, 2048, 1354, 2700 }, /* complex DeFi (12+12) */ + { 24, 24, 8192, 2048, 891, 3400 }, /* multi-hop DeFi (24+24) */ + { 2, 48, 128, 165, 320, 1700 }, /* bulk operations */ +}; + +#define TXN_ARCHETYPE_CNT (sizeof(TXN_ARCHETYPES)/sizeof(TXN_ARCHETYPES[0])) + +static void +make_pubkey( uchar pubkey[ static 32 ], + ulong idx ) { + fd_memset( pubkey, 0, 32UL ); + fd_memcpy( pubkey, &idx, sizeof(ulong) ); +} + +static fd_accdb_t * +bench_setup( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz ) { + int fd = memfd_create( "accdb_txn", 0 ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + *out_fd = fd; + + ulong cache_fp = BENCH_CACHE_FOOTPRINT; + ulong shmem_fp = fd_accdb_shmem_footprint( max_accounts, max_live_slots, + max_account_writes_per_slot, + partition_cnt, cache_fp, 640UL, 1UL ); + FD_TEST( shmem_fp ); + void * shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( shmem_mem ); + fd_accdb_shmem_t * shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( shmem_mem, max_accounts, max_live_slots, + max_account_writes_per_slot, partition_cnt, + partition_sz, cache_fp, 640UL, 0, 42UL, 1UL ) ); + FD_TEST( shmem ); + + ulong accdb_fp = fd_accdb_footprint( max_live_slots ); + FD_TEST( accdb_fp ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, shmem, fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + ulong account_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--accounts", NULL, 50000UL ); + ulong duration_ns = fd_env_strip_cmdline_ulong( &argc, &argv, "--duration", NULL, 15000000000UL ); + uint seed = fd_env_strip_cmdline_uint ( &argc, &argv, "--seed", NULL, 42U ); + + FD_LOG_NOTICE(( "accdb txn-pattern bench" + " (accounts=%lu duration=%.1f s seed=%u)", + account_cnt, (double)duration_ns/1e9, seed )); + + fd_rng_t _rng[1]; + fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, seed, 0UL ) ); + FD_TEST( rng ); + + /* Setup */ + int fd; + ulong partition_sz = 1UL<<30UL; + ulong partition_cnt = 8192UL; + fd_accdb_t * accdb = bench_setup( &fd, + 1200000000UL, + 4096UL, + (uint)account_cnt + 4096U, + partition_cnt, + partition_sz ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( + accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t fork = fd_accdb_attach_child( accdb, root ); + + /* Pre-populate accounts with a distribution of sizes matching + mainnet. Use a weighted mix: most accounts are 165 B (token + accounts), with some larger ones for DeFi state. */ + FD_LOG_NOTICE(( "populating %lu accounts ...", account_cnt )); + { + /* Size distribution for populating: weight/1000, avg_sz */ + static const struct { uint weight; uint sz; } pop_dist[] = { + { 650, 165 }, /* token accounts */ + { 200, 82 }, /* small / program-derived */ + { 50, 512 }, /* medium state */ + { 40, 2048 }, /* AMM pool state */ + { 40, 8192 }, /* large DeFi state (e.g. Raydium) */ + { 20, 165 }, /* misc */ + }; + ulong pop_dist_cnt = sizeof(pop_dist)/sizeof(pop_dist[0]); + + uchar pubkey[ 32 ]; + for( ulong i=0UL; iro_cnt + (ulong)arch->rw_cnt; + + /* 2. Pick unique random accounts for this txn. + RW accounts come first, then RO accounts. */ + for( ulong i=0UL; irw_cnt ) ? 1 : 0; + } + memset( accs, 0, total_cnt * sizeof(fd_acc_t) ); + + /* 3. Acquire */ + long t0 = fd_log_wallclock(); + fd_accdb_acquire( accdb, fork, total_cnt, + pubkey_ptrs, writable, accs ); + + /* 4. Decide commit or revert */ + int do_commit = ( (fd_rng_uint( rng ) % 10000U) >= arch->fail_ppm ); + + /* 5. For writable accs, set commit flag and touch data */ + for( ulong i=0UL; i<(ulong)arch->rw_cnt; i++ ) { + accs[ i ].commit = do_commit; + if( do_commit && accs[ i ].data ) { + /* Touch a byte to simulate mutation */ + accs[ i ].data[ 0 ] ^= 0x01; + } + } + + /* 6. Release */ + fd_accdb_release( accdb, total_cnt, accs ); + long t1 = fd_log_wallclock(); + + arch_txn_cnt[ arch_idx ]++; + arch_commit_cnt[ arch_idx ] += (ulong)do_commit; + arch_ns[ arch_idx ] += ( t1 - t0 ); + txn_cnt++; + } + } + + long elapsed = fd_log_wallclock() - start; + double secs = (double)elapsed / 1e9; + + /* Report per-archetype results */ + FD_LOG_NOTICE(( "--- bench_accdb_txn results" + " (%lu txns in %.3f s, %.0f txn/s) ---", + txn_cnt, secs, (double)txn_cnt / secs )); + FD_LOG_NOTICE(( " %-6s %4s %4s %7s %10s %8s %10s %10s %10s", + "Arch", "RO", "RW", "Wt%", "Txns", "Commit%", + "Txn/s", "ns/txn", "ns/acc" )); + + ulong total_commit = 0UL; + ulong total_accts = 0UL; + for( ulong i=0UL; i0.0 ) { + FD_LOG_NOTICE(( " Mainnet-weighted avg: %.0f ns/acc" + " (weighted by archetype frequency" + " x accounts per txn)", + weighted_ns_per_acc / weight_sum )); + } + } + + fd_rng_delete( fd_rng_leave( rng ) ); + close( fd ); + + FD_LOG_NOTICE(( "pass" )); + fd_halt(); + return 0; +} diff --git a/src/flamenco/accdb/fd_accdb.c b/src/flamenco/accdb/fd_accdb.c new file mode 100644 index 00000000000..6f95301bbf3 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb.c @@ -0,0 +1,3903 @@ +#define _GNU_SOURCE +#include "fd_accdb.h" +#include "fd_accdb_shmem.h" +#define FD_ACCDB_NO_FORK_ID +#include "fd_accdb_private.h" +#undef FD_ACCDB_NO_FORK_ID + +#if FD_TMPL_USE_HANDHOLDING +#include "../../ballet/txn/fd_txn.h" +#include "../../ballet/base58/fd_base58.h" +#endif +#include "../../util/racesan/fd_racesan_target.h" + +FD_STATIC_ASSERT( sizeof(fd_accdb_cache_line_t)==FD_ACCDB_CACHE_META_SZ, cache_meta_sz ); + +#if FD_HAS_RACESAN +/* Test-only telemetry: background_compact publishes the pubkey + dest + offset of the record it is about to relocation-CAS at the + accdb_compact:pre_offset_cas hook, so test_accdb_racesan can PROVE the + parked relocation is the account it set up (avoiding a vacuous test). + Zero-cost / absent in production (racesan off). */ +uchar fd_accdb_dbg_reloc_pubkey[ 32UL ]; +ulong fd_accdb_dbg_reloc_dest; +ulong fd_accdb_dbg_reloc_cnt; +#endif + +#include +#include +#include +#include +#include + +struct fd_accdb_fork { + fd_accdb_fork_shmem_t * shmem; + descends_set_t * descends; +}; + +typedef struct fd_accdb_fork fd_accdb_fork_t; + +#define FD_ACCDB_ACQUIRE_STATE_IDLE (0) +#define FD_ACCDB_ACQUIRE_STATE_PHASE_A (1) +#define FD_ACCDB_ACQUIRE_STATE_OPEN (2) + +struct __attribute__((aligned(FD_ACCDB_ALIGN))) fd_accdb_private { + int fd; + + int acquire_state; + + fd_accdb_shmem_t * shmem; + + fd_accdb_fork_t * fork_pool; + fork_pool_t fork_shmem_pool[1]; + + fd_accdb_accmeta_t * acc_pool; + acc_pool_t acc_pool_join[1]; + uint * acc_map; + + uchar * cache [ FD_ACCDB_CACHE_CLASS_CNT ]; + + fd_accdb_partition_t * partition_pool; + compaction_dlist_t * compaction_dlist[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + deferred_free_dlist_t * deferred_free_dlist; + + txn_pool_t txn_pool[1]; + + /* Pointer into shmem->joiner_epochs[ my_slot ].val for writer + joiners, or into a private per-tile fseq for read-only joiners. + Set to the current global epoch on entry to an epoch-protected + operation, and ULONG_MAX on exit. Used to determine when + deferred frees are safe. */ + ulong * my_epoch_slot; + + /* Read-only pointers to external epoch slots (e.g. fseqs owned by + RO consumer tiles like the rpc tile). Scanned in addition to + shmem->joiner_epochs[] by compaction's deferred-free + reclamation. Borrowed; the caller of fd_accdb_new owns the + storage. */ + ulong const * const * external_epoch_slots; + ulong external_epoch_cnt; + + /* Side buffer of acc pool indices that have been CAS-unlinked from + their hash chains but cannot be released back to acc_pool yet, + because concurrent readers (acquire / compact) may still be + traversing the removed nodes via map.next. The batch is released + once all joiner_epochs exceed shmem->deferred_acc_epoch. Indices + are written here (not into pool.next) until after the epoch drain + because pool.next is union-aliased to cache_idx, which a concurrent + cold_load_acc may still write through a captured pointer. Backed + by shmem->deferred_acc_buf_off; cnt and epoch live in shmem too. */ + uint * deferred_acc_buf; + + /* Chain of fork pool slots whose IDs are still potentially + referenced by concurrent readers (via descends_set_test or + root_fork_id snapshot). The chain is released back to fork_pool + once all joiner_epochs exceed deferred_fork_epoch. NULL head + means no deferred forks. */ + fd_accdb_fork_shmem_t * deferred_fork_head; + fd_accdb_fork_shmem_t * deferred_fork_tail; + ulong deferred_fork_epoch; + + fd_accdb_metrics_t metrics[1]; + + /* Set by fd_accdb_snapshot_load_begin/end. When non-zero, layer-0 + partition handoffs (in change_partition) re-tier the partitions + that fell out of the snapshot-load working set: P-2 to Warm and + P-3 to Cold. This backfills tiering for snapshot-loaded data + that never gets a second write (and therefore would otherwise + never be promoted by compaction). */ + int snapshot_loading; +}; + +static inline fd_accdb_cache_line_t * +cache_line( fd_accdb_t * accdb, + ulong cls, + ulong idx ) { + return (fd_accdb_cache_line_t *)( accdb->cache[ cls ] + idx * fd_accdb_cache_slot_sz[ cls ] ); +} + +/* Bump the per-partition read counters for the partition that contains + file_offset. Called at preadv2 sites. Writes are counted at + allocate time (see fd_accdb_partition_write_bump) so that they reflect + bytes committed to a partition rather than syscalls — the snapshot + loader bypasses pwritev2 entirely, but every write still goes through + allocate_next_write. */ +static inline void +fd_accdb_partition_read_bump( fd_accdb_t * accdb, + ulong file_offset, + ulong bytes ) { + if( FD_UNLIKELY( !bytes ) ) return; + /* Readonly joiners have no partition_pool join (see + fd_accdb_join_readonly) and do not contribute to per-partition + read telemetry today; their disk reads still show up in the + joiner-local fd_accdb_metrics_t bytes_read/read_ops. */ + if( FD_UNLIKELY( !accdb->partition_pool ) ) return; + ulong partition_idx = file_offset / accdb->shmem->partition_sz; + fd_accdb_partition_t * p = partition_pool_ele( accdb->partition_pool, partition_idx ); + if( FD_UNLIKELY( !p ) ) return; + FD_ATOMIC_FETCH_AND_ADD( &p->bytes_read, bytes ); + FD_ATOMIC_FETCH_AND_ADD( &p->read_ops, 1UL ); +} + +/* Bump the per-partition write counters at allocate time. bytes is the + reserved size, which equals the bytes that will land on this + partition. Called from allocate_next_write and + allocate_next_compaction_write. */ +static inline void +fd_accdb_partition_write_bump( fd_accdb_t * accdb, + ulong file_offset, + ulong bytes ) { + if( FD_UNLIKELY( !bytes ) ) return; + ulong partition_idx = file_offset / accdb->shmem->partition_sz; + fd_accdb_partition_t * p = partition_pool_ele( accdb->partition_pool, partition_idx ); + if( FD_UNLIKELY( !p ) ) return; + FD_ATOMIC_FETCH_AND_ADD( &p->bytes_written, bytes ); + FD_ATOMIC_FETCH_AND_ADD( &p->write_ops, 1UL ); +} + +static inline ulong +cache_line_idx( fd_accdb_t * accdb, + ulong cls, + fd_accdb_cache_line_t const * line ) { + return (ulong)( (uchar const *)line - accdb->cache[ cls ] ) / fd_accdb_cache_slot_sz[ cls ]; +} + +#if FD_TMPL_USE_HANDHOLDING +static inline int +fd_accdb_ptr_in_region( fd_accdb_t const * accdb, + ulong cls, + void const * ptr ) { + if( FD_UNLIKELY( cls>=FD_ACCDB_CACHE_CLASS_CNT ) ) return 0; + + uchar const * base = accdb->cache[ cls ]; + if( FD_UNLIKELY( !base ) ) return 0; + + ulong slot_sz = fd_accdb_cache_slot_sz[ cls ]; + ulong region_sz = accdb->shmem->cache_class_max[ cls ] * slot_sz; + uchar const * p = (uchar const *)ptr; + + if( FD_UNLIKELY( p=base+region_sz ) ) return 0; + return ( (ulong)( p - base ) % slot_sz )==FD_ACCDB_CACHE_META_SZ; +} +#endif + +FD_FN_CONST ulong +fd_accdb_align( void ) { + return FD_ACCDB_ALIGN; +} + +FD_FN_CONST ulong +fd_accdb_footprint( ulong max_live_slots ) { + ulong l; + l = FD_LAYOUT_INIT; + l = FD_LAYOUT_APPEND( l, FD_ACCDB_ALIGN, sizeof(fd_accdb_t) ); + l = FD_LAYOUT_APPEND( l, alignof(fd_accdb_fork_t), max_live_slots*sizeof(fd_accdb_fork_t) ); + return FD_LAYOUT_FINI( l, FD_ACCDB_ALIGN ); +} + +void * +fd_accdb_new( void * ljoin, + fd_accdb_shmem_t * shmem, + int fd, + ulong external_epoch_cnt, + ulong const ** external_epoch_slots ) { + if( FD_UNLIKELY( !ljoin ) ) { + FD_LOG_WARNING(( "NULL ljoin" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)ljoin, fd_accdb_align() ) ) ) { + FD_LOG_WARNING(( "misaligned ljoin" )); + return NULL; + } + + if( FD_UNLIKELY( fd<0 ) ) { + FD_LOG_WARNING(( "fd must be a valid file descriptor" )); + return NULL; + } + + ulong max_live_slots = shmem->max_live_slots; + ulong max_accounts = shmem->max_accounts; + ulong max_account_writes_per_slot = shmem->max_account_writes_per_slot; + ulong partition_cnt = shmem->partition_cnt; + + ulong chain_cnt = fd_ulong_pow2_up( (max_accounts>>1) + (max_accounts&1UL) ); + ulong txn_max = max_live_slots * max_account_writes_per_slot; + + FD_SCRATCH_ALLOC_INIT( l, shmem ); + FD_SCRATCH_ALLOC_APPEND( l, FD_ACCDB_SHMEM_ALIGN, sizeof(fd_accdb_shmem_t) ); + void * _fork_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, fork_pool_align(), fork_pool_footprint() ); + void * _fork_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_fork_shmem_t), max_live_slots*sizeof(fd_accdb_fork_shmem_t) ); + void * _descends_sets = FD_SCRATCH_ALLOC_APPEND( l, descends_set_align(), max_live_slots*descends_set_footprint( max_live_slots ) ); + void * _acc_map = FD_SCRATCH_ALLOC_APPEND( l, alignof(uint), chain_cnt*sizeof(uint) ); + void * _acc_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, acc_pool_align(), acc_pool_footprint() ); + void * _acc_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_accmeta_t), max_accounts*sizeof(fd_accdb_accmeta_t) ); + void * _txn_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, txn_pool_align(), txn_pool_footprint() ); + void * _txn_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_txn_t), txn_max*sizeof(fd_accdb_txn_t) ); + void * _partition_pool = FD_SCRATCH_ALLOC_APPEND( l, partition_pool_align(), partition_pool_footprint( partition_cnt ) ); + void * _compaction_dlists[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + for( ulong k=0UL; kfd = fd; + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_IDLE; + accdb->snapshot_loading = 0; + + accdb->shmem = (fd_accdb_shmem_t *)shmem; + FD_TEST( acc_pool_join( accdb->acc_pool_join, _acc_pool_shmem, _acc_pool_ele, max_accounts ) ); + accdb->acc_pool = accdb->acc_pool_join->ele; + accdb->acc_map = _acc_map; + FD_TEST( txn_pool_join( accdb->txn_pool, _txn_pool_shmem, _txn_pool_ele, txn_max ) ); + for( ulong c=0UL; ccache[ c ] = (uchar *)shmem + shmem->cache_region_off[ c ]; + accdb->partition_pool = partition_pool_join( _partition_pool ); + FD_TEST( accdb->partition_pool ); + for( ulong k=0UL; kcompaction_dlist[ k ] = compaction_dlist_join( _compaction_dlists[ k ] ); + FD_TEST( accdb->compaction_dlist[ k ] ); + } + accdb->deferred_free_dlist = deferred_free_dlist_join( _deferred_free_dlist ); + FD_TEST( accdb->deferred_free_dlist ); + + FD_TEST( fork_pool_join( accdb->fork_shmem_pool, _fork_pool_shmem, _fork_pool_ele, max_live_slots ) ); + accdb->fork_pool = _local_fork_pool; + for( ulong i=0UL; ifork_pool[ i ]; + fork->shmem = fork_pool_ele( accdb->fork_shmem_pool, i ); + fork->descends = descends_set_join( (uchar *)_descends_sets + i*descends_set_footprint( max_live_slots ) ); + FD_TEST( fork->shmem ); + FD_TEST( fork->descends ); + } + + ulong epoch_idx = FD_ATOMIC_FETCH_AND_ADD( &shmem->joiner_cnt, 1UL ); + FD_TEST( epoch_idxjoiner_cnt_max ); + accdb->my_epoch_slot = &shmem->joiner_epochs[ epoch_idx ].val; + + accdb->external_epoch_slots = external_epoch_slots; + accdb->external_epoch_cnt = external_epoch_cnt; + + accdb->deferred_acc_buf = (uint *)( (uchar *)shmem + shmem->deferred_acc_buf_off ); + + accdb->deferred_fork_head = NULL; + accdb->deferred_fork_tail = NULL; + accdb->deferred_fork_epoch = 0UL; + + memset( accdb->metrics, 0, sizeof(fd_accdb_metrics_t) ); + + return accdb; +} + +void +fd_accdb_snapshot_load_begin( fd_accdb_t * accdb ) { + accdb->snapshot_loading = 1; + FD_VOLATILE( accdb->shmem->snapshot_loading ) = 1; +} + +static inline void +change_partition( fd_accdb_t * accdb, + accdb_offset_t const * offset_before, + accdb_offset_t * out_offset, + int * has_partition, + uchar layer ); + +void +fd_accdb_snapshot_load_end( fd_accdb_t * accdb ) { + spin_lock_acquire( &accdb->shmem->partition_lock ); + + /* Force the next layer-0 write onto a fresh Hot partition so we do + not keep appending live execution writes to the tail of a partition + that was tagged Cold during snapshot load. Must run while + snapshot_loading is still set so the partition we just closed + (the snapshot-tagged Cold one) is not enqueued for compaction by + change_partition's tail-credit try_enqueue. change_partition will + retag the newly-allocated partition as Cold (because the flag is + still set), so we fix it back to Hot below. */ + if( FD_LIKELY( accdb->shmem->has_partition[ 0 ] ) ) { + change_partition( accdb, &accdb->shmem->whead[ 0 ], &accdb->shmem->whead[ 0 ], &accdb->shmem->has_partition[ 0 ], 0 ); + ulong new_idx = packed_partition_idx( &accdb->shmem->whead[ 0 ] ); + fd_accdb_partition_t * newp = partition_pool_ele( accdb->partition_pool, new_idx ); + FD_VOLATILE( newp->layer ) = 0; + } + + accdb->snapshot_loading = 0; + FD_VOLATILE( accdb->shmem->snapshot_loading ) = 0; + + /* Sweep all partitions written during the load — any that crossed + the fragmentation threshold while enqueue was suppressed are + re-checked now and pushed onto the compaction queue. */ + ulong partition_max = accdb->shmem->partition_max; + for( ulong p=0UL; pshmem, p ); + } + + spin_lock_release( &accdb->shmem->partition_lock ); +} + +fd_accdb_t * +fd_accdb_join( void * shaccdb ) { + if( FD_UNLIKELY( !shaccdb ) ) { + FD_LOG_WARNING(( "NULL shaccdb" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)shaccdb, fd_accdb_align() ) ) ) { + FD_LOG_WARNING(( "misaligned shaccdb" )); + return NULL; + } + + return (fd_accdb_t*)shaccdb; +} + +fd_accdb_t * +fd_accdb_join_readonly( void * ljoin, + fd_accdb_shmem_t * shmem, + ulong * my_epoch_slot_rw, + int fd_ro ) { + if( FD_UNLIKELY( !ljoin ) ) { + FD_LOG_WARNING(( "NULL ljoin" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)ljoin, fd_accdb_align() ) ) ) { + FD_LOG_WARNING(( "misaligned ljoin" )); + return NULL; + } + + if( FD_UNLIKELY( !my_epoch_slot_rw ) ) { + FD_LOG_WARNING(( "NULL my_epoch_slot_rw" )); + return NULL; + } + + ulong max_live_slots = shmem->max_live_slots; + ulong max_accounts = shmem->max_accounts; + ulong max_account_writes_per_slot = shmem->max_account_writes_per_slot; + ulong partition_cnt = shmem->partition_cnt; + + ulong chain_cnt = fd_ulong_pow2_up( (max_accounts>>1) + (max_accounts&1UL) ); + ulong txn_max = max_live_slots * max_account_writes_per_slot; + + /* Recompute the same shmem scratch layout that fd_accdb_shmem_new + used. All FD_SCRATCH_ALLOC_APPEND calls here only compute pointer + offsets — they do not write to shmem. */ + FD_SCRATCH_ALLOC_INIT( l, shmem ); + FD_SCRATCH_ALLOC_APPEND( l, FD_ACCDB_SHMEM_ALIGN, sizeof(fd_accdb_shmem_t) ); + void * _fork_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, fork_pool_align(), fork_pool_footprint() ); + void * _fork_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_fork_shmem_t), max_live_slots*sizeof(fd_accdb_fork_shmem_t) ); + void * _descends_sets = FD_SCRATCH_ALLOC_APPEND( l, descends_set_align(), max_live_slots*descends_set_footprint( max_live_slots ) ); + void * _acc_map = FD_SCRATCH_ALLOC_APPEND( l, alignof(uint), chain_cnt*sizeof(uint) ); + void * _acc_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, acc_pool_align(), acc_pool_footprint() ); + void * _acc_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_accmeta_t), max_accounts*sizeof(fd_accdb_accmeta_t) ); + FD_SCRATCH_ALLOC_APPEND( l, txn_pool_align(), txn_pool_footprint() ); + FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_txn_t), txn_max*sizeof(fd_accdb_txn_t) ); + FD_SCRATCH_ALLOC_APPEND( l, partition_pool_align(), partition_pool_footprint( partition_cnt ) ); + for( ulong k=0UL; kfd = fd_ro; + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_IDLE; + accdb->shmem = shmem; + FD_TEST( acc_pool_join( accdb->acc_pool_join, _acc_pool_shmem, _acc_pool_ele, max_accounts ) ); + accdb->acc_pool = accdb->acc_pool_join->ele; + accdb->acc_map = _acc_map; + for( ulong c=0UL; ccache[ c ] = (uchar *)shmem + shmem->cache_region_off[ c ]; + + /* Writer-only structures: leave NULL so any accidental writer-path + call from a readonly joiner crashes loudly rather than corrupting + state. */ + accdb->partition_pool = NULL; + for( ulong k=0UL; kcompaction_dlist[ k ] = NULL; + accdb->deferred_free_dlist = NULL; + + FD_TEST( fork_pool_join( accdb->fork_shmem_pool, _fork_pool_shmem, _fork_pool_ele, max_live_slots ) ); + accdb->fork_pool = _local_fork_pool; + for( ulong i=0UL; ifork_pool[ i ]; + fork->shmem = fork_pool_ele( accdb->fork_shmem_pool, i ); + fork->descends = descends_set_join( (uchar *)_descends_sets + i*descends_set_footprint( max_live_slots ) ); + FD_TEST( fork->shmem ); + FD_TEST( fork->descends ); + } + + /* my_epoch_slot_rw points at memory owned by this joiner (e.g. a + private per-tile fseq) that the joiner can write to. The + accdb tile sees it via its external_epoch_slots[] array (mapped + read-only) and includes it in its compaction epoch scan. + Storing through this pointer is the only side effect a readonly + joiner has on shared state. */ + accdb->my_epoch_slot = my_epoch_slot_rw; + + /* Readonly joiners do not own external slots themselves; only the + compaction tile / writer joiners do. */ + accdb->external_epoch_slots = NULL; + accdb->external_epoch_cnt = 0UL; + + accdb->deferred_acc_buf = NULL; + accdb->deferred_fork_head = NULL; + accdb->deferred_fork_tail = NULL; + accdb->deferred_fork_epoch = 0UL; + + memset( accdb->metrics, 0, sizeof(fd_accdb_metrics_t) ); + + return accdb; +} + +/* T1 -> T2 cmd channel. Two states on cmd_op: + + IDLE - no cmd in flight + non-IDLE - cmd pending; T2 will process it then flip back to IDLE + + T1 submits by writing fork_id then cmd_op (non-IDLE). T2 processes + by reading fork_id then writing cmd_op = IDLE. T1 waits for IDLE + before submitting again, so T2 never sees a half-written cmd and + never re-processes the same cmd. */ + +static inline void +wait_cmd( fd_accdb_t * accdb ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + while( FD_VOLATILE_CONST( shmem->cmd_op )!=FD_ACCDB_CMD_IDLE ) FD_SPIN_PAUSE(); + FD_COMPILER_MFENCE(); +} + +static inline void +submit_cmd( fd_accdb_t * accdb, + uint op, + ushort fork_id ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + FD_VOLATILE( shmem->cmd_fork_id ) = fork_id; + FD_COMPILER_MFENCE(); + FD_VOLATILE( shmem->cmd_op ) = op; +} + +fd_accdb_fork_id_t +fd_accdb_attach_child( fd_accdb_t * accdb, + fd_accdb_fork_id_t parent_fork_id ) { + /* fork_pool_acquire is not NULL-checked: replay gates attaches on + fd_banks_is_full, and wait_cmd ensures the prior advance_root has + fully run on T2, so live + deferred forks <= max_live_slots. */ + wait_cmd( accdb ); + + fd_accdb_fork_shmem_t * acquired = fork_pool_acquire( accdb->fork_shmem_pool ); + ulong idx = fork_pool_idx( accdb->fork_shmem_pool, acquired ); + + fd_accdb_fork_t * fork = &accdb->fork_pool[ idx ]; + fd_accdb_fork_id_t fork_id = { .val = (ushort)idx }; + + fork->shmem->child_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + + if( FD_LIKELY( parent_fork_id.val==USHORT_MAX ) ) { + fork->shmem->parent_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + fork->shmem->sibling_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + + descends_set_null( fork->descends ); + accdb->shmem->root_fork_id = fork_id; + } else { + fd_accdb_fork_t * parent = &accdb->fork_pool[ parent_fork_id.val ]; + fork->shmem->parent_id = parent_fork_id; + + descends_set_copy( fork->descends, parent->descends ); + descends_set_insert( fork->descends, parent_fork_id.val ); + + /* Atomically prepend to parent's child list. T2 (background_purge) + may concurrently unlink a different child from the same list, so + we must CAS here. */ + FD_COMPILER_MFENCE(); + for(;;) { + ushort old_head = FD_VOLATILE_CONST( parent->shmem->child_id.val ); + fork->shmem->sibling_id = (fd_accdb_fork_id_t){ .val = old_head }; + FD_COMPILER_MFENCE(); + if( FD_LIKELY( FD_ATOMIC_CAS( &parent->shmem->child_id.val, old_head, fork_id.val )==old_head ) ) break; + FD_SPIN_PAUSE(); + } + } + + fork->shmem->generation = accdb->shmem->generation++; + fork->shmem->txn_head = UINT_MAX; + + FD_TEST( !descends_set_test( fork->descends, fork_id.val ) ); + + return fork_id; +} + +/* evict_clear_acc_cache_ref atomically tears down acc->cache_idx and + acc->executable_size.CACHE_VALID for an acc that is being evicted + from cache line (size_class, line_idx). The caller must already + hold an exclusive claim on the line (line->refcnt == + FD_ACCDB_EVICT_SENTINEL) so that no concurrent thread can pin the + line. + + The naive sequence (clear cache_idx, clear VALID) lets a reader in + cold_load_acc see VALID=1 and read a stale INVAL cache_idx, which + decodes to an OOB cache_line pointer. The reverse sequence (clear + VALID, clear cache_idx) lets a concurrent cold_load_acc observe + VALID=0/CLAIM=0 and start publishing a *new* cache_idx + VALID=1 + between our two stores; our later cache_idx=INVAL would then + stomp on the cold-loader's published idx. + + We close both races by acquiring CACHE_CLAIM_BIT before mutating + acc->cache_idx. cold_load_acc spins while CLAIM is held, so it + cannot enter the publish path concurrently. If CLAIM is already + held, a cold-loader is already mid-publish; in that case + acc->cache_idx is being repointed away from our line, and we must + not touch it. After mutation we release CLAIM. + + Verifies acc->cache_idx still encodes (size_class, line_idx) before + clobbering, in case the acc was concurrently re-published into a + different line (e.g. by a previous cold_load_acc completing before + we arrived). */ + +static inline void +evict_clear_acc_cache_ref( fd_accdb_accmeta_t * accmeta, + ulong size_class, + ulong line_idx ) { + uint expected_cidx = FD_ACCDB_ACC_CIDX_PACK( (uint)size_class, (uint)line_idx ); + + /* CAS-acquire CLAIM. If a cold-loader already holds CLAIM, they + own the publish path; bail without touching accmeta fields (their + republish is repointing accmeta->cache_idx away from our line). */ + for(;;) { + uint cur = FD_VOLATILE_CONST( accmeta->executable_size ); + if( FD_UNLIKELY( cur & FD_ACCDB_SIZE_CACHE_CLAIM_BIT ) ) return; + uint nxt = cur | FD_ACCDB_SIZE_CACHE_CLAIM_BIT; + if( FD_LIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, cur, nxt )==cur ) ) break; + fd_racesan_hook( "accdb_evict_clear:claim_wait" ); + FD_SPIN_PAUSE(); + } + + fd_racesan_hook( "accdb_evict_clear:post_claim" ); + + /* CLAIM held. If accmeta->cache_idx still points at our line, clear + VALID and INVAL the cache_idx. Otherwise the accmeta was already + re-published into a different line; leave it alone. */ + if( FD_LIKELY( FD_VOLATILE_CONST( accmeta->cache_idx )==expected_cidx ) ) { + FD_ATOMIC_FETCH_AND_AND( &accmeta->executable_size, ~FD_ACCDB_SIZE_CACHE_VALID_BIT ); + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_INVAL; + } + + /* Release CLAIM. */ + FD_ATOMIC_FETCH_AND_AND( &accmeta->executable_size, ~FD_ACCDB_SIZE_CACHE_CLAIM_BIT ); +} + +/* cache_free_push pushes a fully-freed cache line onto the per-class + CAS free list (Treiber stack). The caller must have already + invalidated the line (key.generation==UINT_MAX) and set persisted=1 + before pushing. */ + +static inline void +cache_free_push( fd_accdb_t * accdb, + ulong size_class, + fd_accdb_cache_line_t * line ) { + ulong line_idx = cache_line_idx( accdb, size_class, line ); + for(;;) { + ulong old_vt = FD_VOLATILE_CONST( accdb->shmem->cache_free[ size_class ].ver_top ); + uint old_top = (uint)( old_vt & (ulong)UINT_MAX ); + uint old_ver = (uint)( old_vt >> 32 ); + line->next = old_top; + FD_COMPILER_MFENCE(); + ulong new_vt = ((ulong)(uint)( old_ver+1U ) << 32) | (ulong)(uint)line_idx; + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->shmem->cache_free[ size_class ].ver_top, old_vt, new_vt )==old_vt ) ) { + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->cache_free_cnt[ size_class ].val, 1UL ); + return; + } + FD_SPIN_PAUSE(); + } +} + +/* cache_free_pop pops a line from the per-class CAS free list. Returns + NULL if the list is empty. */ + +static inline fd_accdb_cache_line_t * +cache_free_pop( fd_accdb_t * accdb, + ulong size_class ) { + for(;;) { + ulong old_vt = FD_VOLATILE_CONST( accdb->shmem->cache_free[ size_class ].ver_top ); + uint old_top = (uint)( old_vt & (ulong)UINT_MAX ); + if( FD_UNLIKELY( old_top==UINT_MAX ) ) return NULL; + uint old_ver = (uint)( old_vt >> 32 ); + fd_accdb_cache_line_t * top = cache_line( accdb, size_class, (ulong)old_top ); + uint next = FD_VOLATILE_CONST( top->next ); + ulong new_vt = ((ulong)(uint)( old_ver+1U ) << 32) | (ulong)next; + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->shmem->cache_free[ size_class ].ver_top, old_vt, new_vt )==old_vt ) ) { + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->cache_free_cnt[ size_class ].val, 1UL ); + return top; + } + FD_SPIN_PAUSE(); + } +} + +/* cache_try_pin attempts a lock-free pin of a cache-hit line. Returns + the line if successfully pinned, or NULL if the line is being evicted + or was recycled (ABA). */ + +static inline fd_accdb_cache_line_t * +cache_try_pin( fd_accdb_cache_line_t * line, + uchar const pubkey[ 32 ], + uint generation ) { + for(;;) { + uint old_rc = FD_VOLATILE_CONST( line->refcnt ); + if( FD_UNLIKELY( old_rc==FD_ACCDB_EVICT_SENTINEL ) ) return NULL; + /* No saturation guard needed: refcnt is a uint and at most + FD_ACCDB_MAX_JOINERS (256) threads can pin concurrently, + so old_rc+1 can never reach FD_ACCDB_EVICT_SENTINEL + (UINT_MAX) or wrap. */ + if( FD_LIKELY( FD_ATOMIC_CAS( &line->refcnt, old_rc, old_rc+1U )==old_rc ) ) { + /* Pinned. ABA check: verify the key hasn't changed under us. */ + fd_racesan_hook( "accdb_try_pin:post_cas" ); + FD_COMPILER_MFENCE(); + if( FD_UNLIKELY( line->key.generation!=generation || + memcmp( line->key.pubkey, pubkey, 32UL ) ) ) { + FD_ATOMIC_FETCH_AND_SUB( &line->refcnt, 1U ); + return NULL; + } + line->referenced = 1; + fd_racesan_hook( "cache_try_pin:pinned" ); + return line; + } + FD_SPIN_PAUSE(); + } +} + +/* wait_for_epoch_drain spins until every joiner's published epoch + exceeds tag, meaning all readers that were active at epoch=tag have + since exited their critical sections. */ + +static void +wait_for_epoch_drain( fd_accdb_t * accdb, + ulong tag ) { + for(;;) { + ulong min_epoch = ULONG_MAX; + ulong joiner_cnt = FD_VOLATILE_CONST( accdb->shmem->joiner_cnt ); + for( ulong t=0UL; tshmem->joiner_epochs[ t ].val ); + if( FD_LIKELY( eexternal_epoch_cnt; t++ ) { + ulong e = FD_VOLATILE_CONST( *accdb->external_epoch_slots[ t ] ); + if( FD_LIKELY( edeferred_fork_head ) ) { + wait_for_epoch_drain( accdb, accdb->deferred_fork_epoch ); + fork_pool_release_chain( accdb->fork_shmem_pool, accdb->deferred_fork_head, accdb->deferred_fork_tail ); + accdb->deferred_fork_head = NULL; + accdb->deferred_fork_tail = NULL; + } + + ulong n = accdb->shmem->deferred_acc_buf_cnt; + if( FD_LIKELY( !n ) ) return; + wait_for_epoch_drain( accdb, accdb->shmem->deferred_acc_epoch ); + + /* All readers that could have been holding a captured pointer to any + of these accs at unlink time have now exited their epoch sections. + It is safe to materialize pool.next links and hand the chain to + acc_pool_release_chain. */ + uint * buf = accdb->deferred_acc_buf; + fd_accdb_accmeta_t * acc_pool = accdb->acc_pool; + + /* Late-publish sweep: a concurrent acquire evictor may have published + a new offset into one of these accmetas after acc_unlink's + xchg-to-INVAL but before exiting its epoch. Now that the epoch has + drained, any such publish is complete and visible. Free the + orphaned disk bytes here, before the accmeta is released to the + pool and its fields recycled. */ + ulong acc_pool_cap = acc_pool_ele_max( accdb->acc_pool_join ); + for( ulong i=0UL; iexecutable_size)+sizeof(fd_accdb_disk_meta_t); + fd_accdb_shmem_bytes_freed( accdb->shmem, off, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + } + + for( ulong i=0UL; i+1ULacc_pool_join, head, tail ); + accdb->shmem->deferred_acc_buf_cnt = 0UL; +} + +/* deferred_acc_append records an unlinked acc index in the side buffer + for later release after wait_for_epoch_drain. T2 is the sole writer. + The chain link from acc->pool.next is NOT laid down here: pool.next + is union-aliased to cache_idx, and a concurrent cold_load_acc may + still publish through a captured pointer until the epoch drains. + Materialization of the chain happens in drain_deferred_frees. */ + +static inline void +deferred_acc_append( fd_accdb_t * accdb, + uint acc_idx ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + FD_TEST( shmem->deferred_acc_buf_cntdeferred_acc_buf_max ); + accdb->deferred_acc_buf[ shmem->deferred_acc_buf_cnt++ ] = acc_idx; +} + +/* acc_unlink unlinks an account from its hash map chain, frees any + associated disk bytes, and invalidates a stale cache reference. Does + NOT release the acc pool slot — the caller is responsible for that + (or for batching releases). + + prev is the previous element in the map chain (UINT_MAX if acc_idx is + the head). + + CONCURRENCY: The chain link being removed is swapped out with a CAS + so that a concurrent fd_accdb_release prepending to the same chain + cannot lose its update. If a head-removal CAS fails (a new node was + prepended since we loaded the head), we re-walk from the new head to + find the target as an interior node. Interior CAS cannot fail from + inserts (inserts only touch the head) and only one remover exists at + a time (advance_root / purge are serialized). */ + +static inline void +acc_unlink( fd_accdb_t * accdb, + uint map_idx, + uint prev, + uint acc_idx ) { + fd_accdb_accmeta_t * accmeta = &accdb->acc_pool[ acc_idx ]; + + /* Atomically capture and clear the offset. Two races to defuse: + + (1) A concurrent fd_accdb_acquire_inner that is CLOCK-evicting the + cache line currently holding this acc's data may have already + xchg'd the offset to INVAL in step 5-6 and freed the old disk + bytes. Without atomicity we would re-read the old offset and + free those same bytes a second time. The xchg here serializes: + whoever wins sees the real offset and frees; the loser sees + INVAL and skips. + + (2) That same evictor may also be mid-flight to publish a NEW + offset in step 9 (after step 5-6's free but before step 9's + store). That late publish lands on an accmeta that is about + to be chain-unlinked and deferred-released. drain_deferred_ + frees sweeps the deferred buffer after epoch drain to catch + the late publish and free the orphaned bytes. */ + ulong entry_sz = (ulong)FD_ACCDB_SIZE_DATA(accmeta->executable_size)+sizeof(fd_accdb_disk_meta_t); + ulong old_offset = fd_accdb_acc_xchg_offset( accmeta, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_offset!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_offset, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->accounts_total, 1UL ); + accdb->metrics->accounts_deleted++; + + if( FD_LIKELY( prev==UINT_MAX ) ) { + /* Head removal — CAS may fail if a concurrent insert prepended a + new node. On failure the target is now interior. */ + for(;;) { + uint old_head = FD_VOLATILE_CONST( accdb->acc_map[ map_idx ] ); + if( FD_LIKELY( old_head==acc_idx ) ) { + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->acc_map[ map_idx ], acc_idx, accmeta->map.next )==acc_idx ) ) break; + FD_SPIN_PAUSE(); + continue; + } + /* Head changed — walk from new head to find prev for interior + removal. The target must still be in the chain because only + this thread removes elements. */ + prev = old_head; + while( FD_VOLATILE_CONST( accdb->acc_pool[ prev ].map.next )!=acc_idx ) prev = FD_VOLATILE_CONST( accdb->acc_pool[ prev ].map.next ); + FD_ATOMIC_CAS( &accdb->acc_pool[ prev ].map.next, acc_idx, accmeta->map.next ); + break; + } + } else { + FD_ATOMIC_CAS( &accdb->acc_pool[ prev ].map.next, acc_idx, accmeta->map.next ); + } + + fd_racesan_hook( "accdb_acc_unlink:post_splice" ); + + /* If the freed acc still has a cached location, invalidate it and + try to reclaim the cache line so the eviction path does not try + to write back stale data from a recycled pool slot. Lock-free: + CAS the refcnt 0 -> EVICT_SENTINEL to claim it exclusively, then + push to the CAS free list. If the line is pinned (refcnt>0), + skip, the pinner's release will handle it. + + Acquire CACHE_CLAIM_BIT before touching acc->cache_idx / + CACHE_VALID — see evict_clear_acc_cache_ref for the protocol. + Without CLAIM, a concurrent cold_load_acc can publish a fresh + (cache_idx, VALID=1) pair into this acc between our two stores, + and our subsequent cache_idx=INVAL stomps onto the freelist + pool.next field (the union sibling of cache_idx), corrupting the + pool. Unlike evict_clear_acc_cache_ref, we cannot bail when CLAIM + is held: this acc is being permanently unlinked, so we must + spin-wait for the cold-loader to release CLAIM and then invalidate + whatever cache_idx is current. */ + uint cur_es; + for(;;) { + cur_es = FD_VOLATILE_CONST( accmeta->executable_size ); + if( FD_UNLIKELY( cur_es & FD_ACCDB_SIZE_CACHE_CLAIM_BIT ) ) { FD_SPIN_PAUSE(); continue; } + uint nxt_es = cur_es | FD_ACCDB_SIZE_CACHE_CLAIM_BIT; + if( FD_LIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, cur_es, nxt_es )==cur_es ) ) break; + FD_SPIN_PAUSE(); + } + + uint cidx = FD_ACCDB_ACC_CIDX_INVAL; + int had_valid = FD_ACCDB_SIZE_CACHE_VALID( cur_es ); + if( FD_UNLIKELY( had_valid ) ) { + cidx = FD_VOLATILE_CONST( accmeta->cache_idx ); + /* Clear VALID before INVAL'ing cache_idx — matches the order in + evict_clear_acc_cache_ref so cold_load_acc's "VALID=1 + + cidx=INVAL" spin path resolves on the next iteration when it + observes VALID=0. */ + FD_ATOMIC_FETCH_AND_AND( &accmeta->executable_size, ~FD_ACCDB_SIZE_CACHE_VALID_BIT ); + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_INVAL; + } + + /* Release CLAIM. */ + FD_ATOMIC_FETCH_AND_AND( &accmeta->executable_size, ~FD_ACCDB_SIZE_CACHE_CLAIM_BIT ); + + if( FD_UNLIKELY( had_valid ) ) { + fd_accdb_cache_line_t * stale = cache_line( accdb, FD_ACCDB_ACC_CIDX_CLASS( cidx ), FD_ACCDB_ACC_CIDX_IDX( cidx ) ); + fd_racesan_hook( "acc_unlink:pre_reclaim_cas" ); + uint old_rc = FD_ATOMIC_CAS( &stale->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL ); + fd_racesan_hook( "acc_unlink:post_reclaim_cas" ); + if( FD_LIKELY( !old_rc ) ) { + /* Claimed. Validate key (ABA, slot could have been recycled + between our read of cache_idx and the CAS). */ + if( FD_LIKELY( stale->key.generation==accmeta->key.generation && + !memcmp( stale->key.pubkey, accmeta->key.pubkey, 32UL ) ) ) { + ulong sc = FD_ACCDB_ACC_CIDX_CLASS( cidx ); + stale->key.generation = UINT_MAX; + stale->persisted = 1; + stale->acc_idx = UINT_MAX; + stale->refcnt = 0; + cache_free_push( accdb, sc, stale ); + } else { + /* Wrong line (ABA). Release claim. */ + FD_VOLATILE( stale->refcnt ) = 0; + } + } + else if( FD_LIKELY( old_rc!=FD_ACCDB_EVICT_SENTINEL ) ) { + /* Pinned by an active reader. We cannot reclaim the line, but + its accmeta slot is about to be deferred-released and recycled. + If we just skipped, a later writeback of this still dirty line + would pair the recycled accmeta's pubkey with the old account's + owner and data, a silent corruption. Mark the line persisted so + the writeback gate never fires. + + This is the only case that needs neutralizing: a reader's pin + does not keep the slot alive, so the slot can recycle under it. + + A plain store is sufficient: the line is pinned (refcnt>0) so + CLOCK/preevict cannot claim it (their refcnt 0->SENTINEL CAS + fails), and the pinning reader only ever reads key/owner/data + and, post-pin, writes the unrelated `referenced` byte — never + `persisted`. So no other thread writes this byte while we do. + + Leave key/owner/data/acc_idx intact: the reader still reads them. + Once the pin drops the line is reclaimed by CLOCK (or by the + reader's own release). acc_idx still points at our now-recycled + slot, but CLOCK's evict_clear_acc_cache_ref on it is a no-op: + the recycled accmeta's cache_idx no longer matches this line's + packed cidx (same invariant the release path relies on, see the + refcnt-CAS-fail comment in fd_accdb_release). That reclaim is + lazy so the slot is briefly dark capacity. */ + FD_VOLATILE( stale->persisted ) = 1; + + /* The tombstone self-unlink an legitimately be pinned here, + old version and purge unlinks are never pinned. A live account + here means that invariant regressed. Reading is safe as the + unlinked accmeta is on a frozen bank and can't mutate. */ + FD_TEST( accmeta->lamports==0UL ); + } + else { + /* A foreground evictor already claimed this line. It holds its + epoch acquire and writeback, so drain_deferred_frees cannot + recycle the slot before it finishes. Its writeback names the old + account correctly, no poison. */ + } + } +} + +/* fork_slot_defer removes fork_id from every descends_set and chains + the fork pool slot onto the deferred fork chain for later release. + The slot must not be released immediately because concurrent readers + may still reference the fork ID via descends_set or stale chain + walks. + + The eager descends_set_remove here is safe despite being a + non-atomic RMW that races with concurrent descends_set_test in + fd_accdb_acquire, for two reasons: + + (a) Rooted parent forks: after advance_root publishes the new + root_fork_id, any acquire loads root_generation >= + parent->generation. Every account from the old parent has + generation <= parent->generation, so the + "generation > root_generation" gate in the chain walk is + never satisfied and the parent's bit is never tested. + + (b) Purged / pruned sibling forks: a purged fork is by + definition not an ancestor of any live fork, so its bit + was never set in any live fork's descends_set. Clearing + it is a literal no-op. + + Fork-id ABA after slot reuse is also safe: the fork pool slot + is not released until drain_deferred_frees, which waits until + all epoch-protected readers have exited. On x86 (TSO), the + synchronization chain (T2: bit clear -> epoch FAA; reader: + epoch load -> epoch_slot store -> mfence -> bit read) guarantees + that any reader entering a new epoch section after the drain + will observe the cleared bit before the slot is recycled by + attach_child. */ + +static inline void +fork_slot_defer( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + fd_accdb_fork_shmem_t ** fork_head, + fd_accdb_fork_shmem_t ** fork_tail ) { + for( ulong i=0UL; ishmem->max_live_slots; i++ ) descends_set_remove( accdb->fork_pool[ i ].descends, fork_id.val ); + fd_accdb_fork_shmem_t * shmem = fork_pool_ele( accdb->fork_shmem_pool, (ulong)fork_id.val ); + if( *fork_tail ) (*fork_tail)->pool.next = fork_pool_private_cidx( (ulong)fork_id.val ); + else *fork_head = shmem; + *fork_tail = shmem; +} + +static void +purge_inner( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + fd_accdb_fork_shmem_t ** fork_head, + fd_accdb_fork_shmem_t ** fork_tail ) { + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + + fd_accdb_fork_id_t child = fork->shmem->child_id; + while( child.val!=USHORT_MAX ) { + fd_accdb_fork_id_t next = accdb->fork_pool[ child.val ].shmem->sibling_id; + purge_inner( accdb, child, fork_head, fork_tail ); + child = next; + } + + uint txn = fork->shmem->txn_head; + if( txn!=UINT_MAX ) { + fd_accdb_txn_t * txn_head = txn_pool_ele( accdb->txn_pool, (ulong)txn ); + fd_accdb_txn_t * txn_tail = NULL; + while( txn!=UINT_MAX ) { + fd_accdb_txn_t * txne = txn_pool_ele( accdb->txn_pool, (ulong)txn ); + + uint acc_idx = txne->acc_pool_idx; + + uint prev = UINT_MAX; + uint cur = FD_VOLATILE_CONST( accdb->acc_map[ txne->acc_map_idx ] ); + while( cur!=acc_idx ) { + prev = cur; + cur = FD_VOLATILE_CONST( accdb->acc_pool[ cur ].map.next ); + } + + fd_racesan_hook( "accdb_purge:pre_unlink" ); + acc_unlink( accdb, txne->acc_map_idx, prev, acc_idx ); + deferred_acc_append( accdb, acc_idx ); + + txn_tail = txne; + txn = txne->fork.next; + } + txn_pool_release_chain( accdb->txn_pool, txn_head, txn_tail ); + } + + fork_slot_defer( accdb, fork_id, fork_head, fork_tail ); +} + +static inline void +remove_children( fd_accdb_t * accdb, + fd_accdb_fork_t * fork, + fd_accdb_fork_t * except, + fd_accdb_fork_shmem_t ** fork_head, + fd_accdb_fork_shmem_t ** fork_tail ) { + fd_accdb_fork_id_t sibling_idx = fork->shmem->child_id; + while( sibling_idx.val!=USHORT_MAX ) { + fd_accdb_fork_t * sibling = &accdb->fork_pool[ sibling_idx.val ]; + fd_accdb_fork_id_t cur_idx = sibling_idx; + + sibling_idx = sibling->shmem->sibling_id; + if( FD_UNLIKELY( sibling==except ) ) continue; + + purge_inner( accdb, cur_idx, fork_head, fork_tail ); + } +} + +static void +background_advance_root( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ) { + drain_deferred_frees( accdb ); + + /* The caller guarantees that rooting is sequential: each call + advances the root by exactly one slot (the immediate child of the + current root). Skipping levels is not supported. */ + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + FD_TEST( fork->shmem->parent_id.val==accdb->shmem->root_fork_id.val ); + FD_TEST( fork->shmem->parent_id.val!=USHORT_MAX ); + + fd_accdb_fork_t * parent_fork = &accdb->fork_pool[ fork->shmem->parent_id.val ]; + + /* Accumulate freed fork pool slots across remove_children and the + old-version cleanup below into a chain that will be deferred- + released after the epoch bump. Freed acc pool slots are recorded + in the shmem side buffer via deferred_acc_append (they cannot be + chained via pool.next yet — see comment on the side buffer). */ + fd_accdb_fork_shmem_t * fork_head = NULL; + fd_accdb_fork_shmem_t * fork_tail = NULL; + + /* When a fork is rooted, any competing forks can be immediately + removed as they will not be needed again. This includes child + forks of the pruned siblings as well. */ + remove_children( accdb, parent_fork, fork, &fork_head, &fork_tail ); + + /* And for any accounts which were updated in the newly rooted slot, + we will now never need to access any older version, so we can + discard any slots earlier than the one we are rooting. */ + uint txn = fork->shmem->txn_head; + if( txn!=UINT_MAX ) { + fd_accdb_txn_t * txn_head = txn_pool_ele( accdb->txn_pool, (ulong)txn ); + fd_accdb_txn_t * txn_tail = NULL; + while( txn!=UINT_MAX ) { + fd_accdb_txn_t * txne = txn_pool_ele( accdb->txn_pool, (ulong)txn ); + + fd_accdb_accmeta_t const * new_acc = &accdb->acc_pool[ txne->acc_pool_idx ]; + + uint prev = UINT_MAX; + uint new_acc_prev = UINT_MAX; /* prev of new_acc on the chain when we encounter it (UINT_MAX if head or never seen) */ + int new_acc_seen = 0; + uint acc = FD_VOLATILE_CONST( accdb->acc_map[ txne->acc_map_idx ] ); + FD_TEST( acc!=UINT_MAX ); + while( acc!=UINT_MAX ) { + fd_accdb_accmeta_t const * cur_acc = &accdb->acc_pool[ acc ]; + uint cur_next = FD_VOLATILE_CONST( cur_acc->map.next ); + + if( FD_LIKELY( acc==txne->acc_pool_idx ) ) { + new_acc_prev = prev; + new_acc_seen = 1; + prev = acc; + acc = cur_next; + continue; + } + + if( FD_LIKELY( (cur_acc->key.generation<=parent_fork->shmem->generation || descends_set_test( fork->descends, fd_accdb_acc_fork_id(cur_acc) ) ) && !memcmp( new_acc->key.pubkey, cur_acc->key.pubkey, 32UL ) ) ) { + uint next = cur_next; + fd_racesan_hook( "accdb_advance:pre_unlink" ); + acc_unlink( accdb, txne->acc_map_idx, prev, acc ); + deferred_acc_append( accdb, acc ); + acc = next; + } else { + prev = acc; + acc = cur_next; + } + } + + /* If the newly rooted version is a tombstone (lamports==0, e.g. + account was closed), drop it from the index too: no fork can + reach it anymore, and keeping it around just wastes a hash + slot and the disk bytes it occupies. + + If a later txn on this same fork wrote the same pubkey, that + txn's inner walk above would have already unlinked this txn's + new_acc as an "older version" - in that case new_acc_seen=0 + and we skip, since the freelist cleanup is already done. */ + if( FD_UNLIKELY( new_acc_seen && new_acc->lamports==0UL ) ) { + uint new_acc_idx = (uint)txne->acc_pool_idx; + acc_unlink( accdb, txne->acc_map_idx, new_acc_prev, new_acc_idx ); + deferred_acc_append( accdb, new_acc_idx ); + } + + txn_tail = txne; + txn = txne->fork.next; + } + txn_pool_release_chain( accdb->txn_pool, txn_head, txn_tail ); + } + + uint parent_txn = parent_fork->shmem->txn_head; + if( parent_txn!=UINT_MAX ) { + fd_accdb_txn_t * parent_head = txn_pool_ele( accdb->txn_pool, (ulong)parent_txn ); + fd_accdb_txn_t * parent_tail = NULL; + while( parent_txn!=UINT_MAX ) { + fd_accdb_txn_t * t = txn_pool_ele( accdb->txn_pool, (ulong)parent_txn ); + parent_tail = t; + parent_txn = t->fork.next; + } + txn_pool_release_chain( accdb->txn_pool, parent_head, parent_tail ); + } + + /* Remove the parent from all descends_sets and chain it for deferred + release, so that when the slot is eventually recycled to a new + fork, no concurrent reader can mistake the new fork for the old + ancestor. Entries from the freed parent are still visible via the + generation <= root_generation fast path in reads. */ + fd_accdb_fork_id_t old_parent_id = fork->shmem->parent_id; + fork_slot_defer( accdb, old_parent_id, &fork_head, &fork_tail ); + + fork->shmem->parent_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + fork->shmem->sibling_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + fork->shmem->txn_head = UINT_MAX; + descends_set_null( fork->descends ); + + /* Publish the new root_fork_id BEFORE bumping the epoch and deferring + the parent slot. On x86-64 (TSO) a concurrent reader that still + loads the old root_fork_id is guaranteed to see the parent shmem in + its original (not-yet-recycled) state because the slot has not been + released yet. A reader that loads the new root_fork_id uses the + new fork. */ + fd_racesan_hook( "accdb_advance:pre_publish_root" ); + accdb->shmem->root_fork_id = fork_id; + FD_COMPILER_MFENCE(); + fd_racesan_hook( "accdb_advance:post_publish_root" ); + + /* Bump epoch and defer both the acc batch and parent fork slot. They + will be released at the next drain_deferred_frees call once all + concurrent readers have exited. The acc batch lives in the shmem + side buffer; only its epoch tag needs setting here. */ + ulong tag = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->epoch, 1UL ); + if( FD_LIKELY( accdb->shmem->deferred_acc_buf_cnt ) ) { + accdb->shmem->deferred_acc_epoch = tag; + } + if( FD_LIKELY( fork_head ) ) { + accdb->deferred_fork_head = fork_head; + accdb->deferred_fork_tail = fork_tail; + accdb->deferred_fork_epoch = tag; + } +} + +void +fd_accdb_advance_root( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ) { + wait_cmd( accdb ); + submit_cmd( accdb, FD_ACCDB_CMD_ADVANCE_ROOT, fork_id.val ); +} + +/* background_purge does the heavy lifting of purge on T2: unlink the + fork from the parent's child list, drain deferred frees, recursively + purge the fork subtree, and defer-release the freed acc pool + elements. The sibling-list unlink is done here (not on T1) because + advance_root / remove_children also mutate sibling lists on T2, and + T2 is single-threaded so plain stores are safe. */ + +static void +background_purge( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ) { + /* Unlink fork_id from its parent's child list. This runs on T2 + which is the sole mutator of sibling lists (advance_root and + remove_children also run on T2), so plain stores are safe. */ + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + fd_accdb_fork_id_t parent_id = fork->shmem->parent_id; + if( FD_LIKELY( parent_id.val!=USHORT_MAX ) ) { + fd_accdb_fork_t * parent = &accdb->fork_pool[ parent_id.val ]; + if( FD_UNLIKELY( parent->shmem->child_id.val==fork_id.val ) ) { + parent->shmem->child_id = fork->shmem->sibling_id; + } else { + fd_accdb_fork_id_t prev_id = parent->shmem->child_id; + while( prev_id.val!=USHORT_MAX ) { + fd_accdb_fork_t * prev = &accdb->fork_pool[ prev_id.val ]; + if( prev->shmem->sibling_id.val==fork_id.val ) { + prev->shmem->sibling_id = fork->shmem->sibling_id; + break; + } + prev_id = prev->shmem->sibling_id; + } + } + } + + drain_deferred_frees( accdb ); + + fd_accdb_fork_shmem_t * fork_head = NULL; + fd_accdb_fork_shmem_t * fork_tail = NULL; + purge_inner( accdb, fork_id, &fork_head, &fork_tail ); + + ulong tag = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->epoch, 1UL ); + if( FD_LIKELY( accdb->shmem->deferred_acc_buf_cnt ) ) { + accdb->shmem->deferred_acc_epoch = tag; + } + if( FD_LIKELY( fork_head ) ) { + accdb->deferred_fork_head = fork_head; + accdb->deferred_fork_tail = fork_tail; + accdb->deferred_fork_epoch = tag; + } +} + +void +fd_accdb_purge( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ) { + FD_TEST( fork_id.val!=accdb->shmem->root_fork_id.val ); + + wait_cmd( accdb ); + submit_cmd( accdb, FD_ACCDB_CMD_PURGE, fork_id.val ); +} + +static inline fd_accdb_cache_line_t * +acquire_cache_line( fd_accdb_t * accdb, + ulong size_class, + uint * out_evicted_acc_idx ) { + /* Priority 1: CAS free list — already invalidated, + persisted==1, generation==UINT_MAX. Cheapest path. */ + fd_accdb_cache_line_t * result = cache_free_pop( accdb, size_class ); + if( FD_LIKELY( result ) ) { + result->refcnt = 1; + result->referenced = 0; + *out_evicted_acc_idx = UINT_MAX; + return result; + } + + /* Priority 2: Lazy initial allocation — atomic FAA with undo on + overflow. Safe for concurrent callers. */ + ulong old_init = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->cache_class_init[ size_class ].val, 1UL ); + if( FD_LIKELY( old_initshmem->cache_class_max[ size_class ] ) ) { + result = cache_line( accdb, size_class, old_init ); + result->refcnt = 1; + result->persisted = 1; + result->referenced = 0; + result->acc_idx = UINT_MAX; + result->key.generation = UINT_MAX; + *out_evicted_acc_idx = UINT_MAX; + return result; + } + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->cache_class_init[ size_class ].val, 1UL ); + + /* Priority 3: CLOCK sweep ... scan forward giving second chances. */ + for(;;) { + ulong hand = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->clock_hand[ size_class ].val, 1UL ) % accdb->shmem->cache_class_max[ size_class ]; + fd_accdb_cache_line_t * line = cache_line( accdb, size_class, hand ); + + if( FD_UNLIKELY( line->key.generation==UINT_MAX && line->acc_idx==UINT_MAX ) ) continue; + + uint rc = FD_VOLATILE_CONST( line->refcnt ); + if( FD_UNLIKELY( rc!=0U ) ) continue; /* Pinned or being evicted */ + + if( FD_UNLIKELY( line->referenced ) ) { + line->referenced = 0; + continue; /* Second chance */ + } + + if( FD_UNLIKELY( FD_ATOMIC_CAS( &line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )!=0U ) ) continue; + + /* The line is now claimed for eviction (refcnt==EVICT_SENTINEL). A + concurrent acc_unlink that targets this same line's accmeta will + observe the sentinel here and take its do-nothing branch — see the + test_accdb_racesan SENTINEL case. */ + fd_racesan_hook( "clock_evict:post_sentinel" ); + + if( FD_LIKELY( line->acc_idx!=UINT_MAX ) ) { + evict_clear_acc_cache_ref( &accdb->acc_pool[ line->acc_idx ], size_class, hand ); + } + *out_evicted_acc_idx = line->persisted ? UINT_MAX : line->acc_idx; + line->key.generation = UINT_MAX; + line->refcnt = 1; + line->referenced = 0; + return line; + } + + FD_TEST( 0 ); + return NULL; +} + +static inline void +change_partition( fd_accdb_t * accdb, + accdb_offset_t const * offset_before, + accdb_offset_t * out_offset, + int * has_partition, + uchar layer ) { + /* New data will not fit in the current partition, so we need to + move to the next one. */ + ulong partition_idx_before = packed_partition_idx( offset_before ); + ulong partition_offset_before = packed_partition_offset( offset_before ); + if( FD_LIKELY( *has_partition ) ) { + fd_accdb_partition_t * before = partition_pool_ele( accdb->partition_pool, partition_idx_before ); + before->write_offset = partition_offset_before; + } + + /* Single rdtsc per partition lifecycle event: stamp the closing + partition's filled time and the new partition's created time off + the same sample. */ + long now_ticks = (long)fd_tickcount(); + + ulong free_size = accdb->shmem->partition_sz - partition_offset_before; + if( FD_LIKELY( *has_partition ) ) { + fd_accdb_partition_t * old = partition_pool_ele( accdb->partition_pool, partition_idx_before ); + FD_ATOMIC_FETCH_AND_ADD( &old->bytes_freed, free_size ); + FD_VOLATILE( old->filled_ticks ) = now_ticks; + /* The tail slack is now committed dead — count it as current + (written-through) so fragmentation reflects it. */ + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_current_bytes, free_size ); + } + + if( FD_UNLIKELY( !partition_pool_free( accdb->partition_pool ) ) ) FD_LOG_ERR(( "accounts database file is at capacity" )); + fd_accdb_partition_t * partition = partition_pool_ele_acquire( accdb->partition_pool ); + partition->bytes_freed = 0UL; + partition->marked_compaction = 0; + partition->layer = layer; + partition->read_ops = 0UL; + partition->bytes_read = 0UL; + partition->write_ops = 0UL; + partition->bytes_written = 0UL; + partition->write_offset = 0UL; + partition->compaction_offset = 0UL; + partition->created_ticks = now_ticks; + partition->filled_ticks = 0L; + partition->queued = 0; + partition->compacting_now = 0; + + ulong new_partition_idx = partition_pool_idx( accdb->partition_pool, partition ); + int had_partition = *has_partition; + *out_offset = accdb_offset( new_partition_idx, 0UL ); + *has_partition = 1; + + /* Now that the write head has been rotated away from the old + partition, check if it should be enqueued for compaction. We call + try_enqueue directly because the caller already holds + partition_lock (calling fd_accdb_shmem_bytes_freed here would + deadlock on the non-reentrant lock). Skip when + has_partition was 0, because the sentinel partition_idx is + not a valid pool element. */ + if( FD_LIKELY( had_partition && partition_idx_before!=new_partition_idx ) ) { + fd_accdb_shmem_try_enqueue_compaction( accdb->shmem, partition_idx_before ); + } + + /* Snapshot-load tiering: accounts loaded from a snapshot never get + a second write, so compaction-driven promotion never fires and + they would otherwise live in Hot forever. When snapshot_loading + is set, tag the new partition as Cold up front. We do not set + has_partition[Cold] / whead[Cold] — those are owned by the + compaction tile and represent the live Cold write head, which is + independent of snapshot-loaded partitions that happen to be + labeled Cold. */ + if( FD_UNLIKELY( accdb->snapshot_loading && layer==0 ) ) { + FD_VOLATILE( partition->layer ) = FD_ACCDB_COMPACTION_LAYER_CNT-1UL; + } + + if( FD_UNLIKELY( new_partition_idx>=accdb->shmem->partition_max ) ) { + FD_LOG_INFO(( "growing accounts database from %lu GiB to %lu GiB", accdb->shmem->partition_max*accdb->shmem->partition_sz/(1UL<<30UL), (new_partition_idx+1UL)*accdb->shmem->partition_sz/(1UL<<30UL) )); + + int result = fallocate( accdb->fd, 0, (long)(new_partition_idx*accdb->shmem->partition_sz), (long)accdb->shmem->partition_sz ); + if( FD_UNLIKELY( -1==result ) ) { + if( FD_LIKELY( errno==ENOSPC ) ) FD_LOG_ERR(( "fallocate() failed (%d-%s). The accounts database filled " + "the disk it is on, trying to grow from %lu GiB to %lu GiB. Please " + "free up disk space and restart the validator.", + errno, fd_io_strerror( errno ), accdb->shmem->partition_max*accdb->shmem->partition_sz/(1UL<<30UL), (new_partition_idx+1UL)*accdb->shmem->partition_sz/(1UL<<30UL) )); + else FD_LOG_ERR(( "fallocate() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + } + + /* CAS loop: the compaction tile may also be growing the file + concurrently, so neither path may clobber the other. */ + for(;;) { + ulong cur = accdb->shmem->partition_max; + if( FD_LIKELY( new_partition_idx+1UL<=cur ) ) break; + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->shmem->partition_max, cur, new_partition_idx+1UL )==cur ) ) break; + } + accdb->shmem->shmetrics->disk_allocated_bytes = accdb->shmem->partition_max*accdb->shmem->partition_sz; + } +} + +static inline ulong +allocate_next_write( fd_accdb_t * accdb, + ulong sz ) { + for(;;) { + accdb_offset_t offset = { .val = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->whead[ 0 ].val, sz ) }; + if( FD_LIKELY( packed_partition_offset( &offset )+sz<=accdb->shmem->partition_sz ) ) { + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_current_bytes, sz ); + ulong file_offset = packed_partition_file_offset( &offset, accdb->shmem->partition_sz ); + fd_accdb_partition_write_bump( accdb, file_offset, sz ); + return file_offset; + } + + if( FD_UNLIKELY( packed_partition_offset( &offset )>accdb->shmem->partition_sz ) ) { + /* This can happen if another thread also raced to allocate the + next write and won. Wait for the partition switch to finish + before retrying, so we do not keep doing fetch-and-adds that + advance the offset further past the boundary. + + A switch is detected by the head moving to a different + partition index OR its offset dropping back to a valid position + (a switch resets the offset to 0). We must not key the wait + solely on the index changing: the initial write head is a + sentinel whose packed index can coincide with a real pool + index. */ + ulong stale_partition = packed_partition_idx( &offset ); + for(;;) { + accdb_offset_t cur = { .val = FD_VOLATILE_CONST( accdb->shmem->whead[ 0 ].val ) }; + if( packed_partition_idx( &cur )!=stale_partition ) break; + if( packed_partition_offset( &cur )<=accdb->shmem->partition_sz ) break; + FD_SPIN_PAUSE(); + } + continue; + } + + spin_lock_acquire( &accdb->shmem->partition_lock ); + change_partition( accdb, &offset, &accdb->shmem->whead[ 0 ], &accdb->shmem->has_partition[ 0 ], 0 ); + spin_lock_release( &accdb->shmem->partition_lock ); + } +} + +/* Compaction write allocation. Single-threaded: only the compaction + tile calls these, so the compaction write heads do not need atomic + fetch-and-add. dest_layer is the target layer (1..N-1). */ + +static inline ulong +allocate_next_compaction_write( fd_accdb_t * accdb, + ulong sz, + ulong dest_layer ) { + accdb_offset_t offset = accdb->shmem->whead[ dest_layer ]; + if( FD_UNLIKELY( !accdb->shmem->has_partition[ dest_layer ] || + packed_partition_offset( &offset )+sz>accdb->shmem->partition_sz ) ) { + spin_lock_acquire( &accdb->shmem->partition_lock ); + change_partition( accdb, &offset, &accdb->shmem->whead[ dest_layer ], &accdb->shmem->has_partition[ dest_layer ], (uchar)dest_layer ); + spin_lock_release( &accdb->shmem->partition_lock ); + offset = accdb->shmem->whead[ dest_layer ]; + } + accdb->shmem->whead[ dest_layer ].val += sz; + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_current_bytes, sz ); + ulong file_offset = packed_partition_file_offset( &offset, accdb->shmem->partition_sz ); + fd_accdb_partition_write_bump( accdb, file_offset, sz ); + return file_offset; +} + +/* fd_accdb_compact relocates one record from the oldest partition + queued for compaction at src_layer into the write head for the + next colder tier, or the same tier for the deepest layer. It is + designed to be called repeatedly from a dedicated compaction tile. + If there is work to do, *charge_busy is set to 1; otherwise 0 is + left unchanged and the call returns immediately. + + src_layer must be in 0..FD_ACCDB_COMPACTION_LAYER_CNT-1. */ + +static void +background_compact( fd_accdb_t * accdb, + ulong src_layer, + int * charge_busy ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); /* StoreLoad: epoch store must be globally visible + before any subsequent loads so the deferred + reclamation scan does not miss us. */ + + /* Reclaim any deferred-free partitions whose epoch has been observed + by all joiners (i.e. no epoch-publishing joiner could still be + referencing data in them). Scan writer slots [0, joiner_cnt) + plus each external (read-only) joiner's private epoch fseq. */ + ulong min_epoch = ULONG_MAX; + ulong joiner_cnt = FD_VOLATILE_CONST( accdb->shmem->joiner_cnt ); + for( ulong t=0UL; tshmem->joiner_epochs[ t ].val ); + if( FD_LIKELY( eexternal_epoch_cnt; t++ ) { + ulong e = FD_VOLATILE_CONST( *accdb->external_epoch_slots[ t ] ); + if( FD_LIKELY( edeferred_free_dlist, accdb->partition_pool ) ) ) break; + fd_accdb_partition_t * p = deferred_free_dlist_ele_peek_head( accdb->deferred_free_dlist, accdb->partition_pool ); + if( FD_LIKELY( p->epoch_tag>=min_epoch ) ) break; + + fd_racesan_hook( "accdb_reclaim:pre_free_partition" ); + + spin_lock_acquire( &accdb->shmem->partition_lock ); + deferred_free_dlist_ele_pop_head( accdb->deferred_free_dlist, accdb->partition_pool ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_current_bytes, accdb->shmem->partition_sz ); + partition_pool_ele_release( accdb->partition_pool, p ); + spin_lock_release( &accdb->shmem->partition_lock ); + } + + if( FD_LIKELY( compaction_dlist_is_empty( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ) ) ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + fd_accdb_partition_t * compact = compaction_dlist_ele_peek_head( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ); + if( FD_UNLIKELY( !compact ) ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + + /* Wait until all epoch-publishing joiners that were active when this + partition was enqueued for compaction have exited, ensuring any + in-flight pwritev2 to this partition has completed before we start + reading from it. */ + if( FD_UNLIKELY( compact->compaction_ready_epoch>=min_epoch ) ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + + *charge_busy = 1; + + /* Mark the head partition as actively compacting. */ + FD_VOLATILE( compact->queued ) = 0; + FD_VOLATILE( compact->compacting_now ) = 1; + + fd_accdb_disk_meta_t meta[1]; + + ulong compact_base = partition_pool_idx( accdb->partition_pool, compact )*accdb->shmem->partition_sz; + + /* Read the on-disk metadata header at the current compaction + cursor within the partition being compacted. */ + ulong bytes_read = 0UL; + while( FD_UNLIKELY( bytes_readfd, ((uchar *)meta)+bytes_read, sizeof(fd_accdb_disk_meta_t)-bytes_read, (long)(compact_base+compact->compaction_offset+bytes_read) ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "pread() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, data expected at offset %lu with size %lu exceeded file extents", + compact_base+compact->compaction_offset+bytes_read, sizeof(fd_accdb_disk_meta_t) )); + fd_accdb_partition_read_bump( accdb, compact_base+compact->compaction_offset, (ulong)result ); + bytes_read += (ulong)result; + } + + /* Walk the hash chain to find a live index entry whose on-disk + offset matches the record we are compacting. */ + fd_accdb_accmeta_t * accmeta = NULL; + ulong source_packed = 0UL; + uint acc_idx = FD_VOLATILE_CONST( accdb->acc_map[ fd_accdb_hash( meta->pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL) ] ); + while( acc_idx!=UINT_MAX ) { + fd_accdb_accmeta_t * candidate = &accdb->acc_pool[ acc_idx ]; + uint next_idx = FD_VOLATILE_CONST( candidate->map.next ); + ulong candidate_packed = FD_VOLATILE_CONST( candidate->offset_fork ); + if( FD_LIKELY( (candidate_packed & FD_ACCDB_OFF_MASK)==compact_base+compact->compaction_offset ) ) { + accmeta = candidate; + source_packed = candidate_packed; + break; + } + acc_idx = next_idx; + } + + ulong record_sz = sizeof(fd_accdb_disk_meta_t) + (ulong)meta->size; + ulong bytes_copied = 0UL; + if( FD_UNLIKELY( !accmeta ) ) { + /* Dead record — the index entry was already removed, so this + on-disk extent is garbage. Nothing to relocate. */ + } else { + ulong dest_layer = fd_ulong_min( src_layer+1UL, FD_ACCDB_COMPACTION_LAYER_CNT-1UL ); + ulong dest_offset = allocate_next_compaction_write( accdb, record_sz, dest_layer ); + + while( FD_UNLIKELY( bytes_copiedcompaction_offset + bytes_copied); + long out_off = (long)(dest_offset + bytes_copied); + + long result = copy_file_range( accdb->fd, &in_off, accdb->fd, &out_off, record_sz-bytes_copied, 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "copy_file_range() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, data expected at offset %lu with size %lu exceeded file extents", + compact_base+compact->compaction_offset+bytes_copied, record_sz )); + fd_accdb_partition_read_bump( accdb, compact_base+compact->compaction_offset+bytes_copied, (ulong)result ); + bytes_copied += (ulong)result; + accdb->metrics->copy_ops++; + } + + accdb->shmem->shmetrics->accounts_relocated++; + accdb->shmem->shmetrics->accounts_relocated_bytes += bytes_copied; + + /* Ensure the data is on disk before publishing the new offset, + so concurrent acquire threads do not preadv2 from a location + that hasn't been written yet. */ + FD_COMPILER_MFENCE(); + + /* CAS the offset from the exact source record we copied to the new + destination. If a concurrent release overwrote the offset to + FD_ACCDB_OFF_INVAL (dirty sentinel for a new commit), or later + published a newer on-disk location, the CAS fails and we treat + the relocated copy as stale. We CAS the full packed + offset_fork so the fork_id is preserved and so we only publish + the relocation if the copied source record is still current. */ + ulong new_packed = ( source_packed & ~FD_ACCDB_OFF_MASK ) | ( dest_offset & FD_ACCDB_OFF_MASK ); + +#if FD_HAS_RACESAN + fd_memcpy( fd_accdb_dbg_reloc_pubkey, accmeta->key.pubkey, 32UL ); + fd_accdb_dbg_reloc_dest = dest_offset; + fd_accdb_dbg_reloc_cnt++; +#endif + + fd_racesan_hook( "accdb_compact:pre_offset_cas" ); + if( FD_UNLIKELY( FD_ATOMIC_CAS( &accmeta->offset_fork, source_packed, new_packed )!=source_packed ) ) { + /* Record was superseded by a concurrent overwrite commit. + The disk space we just wrote is dead on arrival — account + it as freed so compaction can reclaim it later. */ + fd_accdb_shmem_bytes_freed( accdb->shmem, dest_offset, record_sz ); + bytes_copied = 0UL; + } + } + + fd_racesan_hook( "accdb_compact:post_relocate" ); + + compact->compaction_offset += record_sz; + + if( FD_UNLIKELY( compact->compaction_offset>=compact->write_offset ) ) { + FD_LOG_NOTICE(( "compaction of partition %lu completed", partition_pool_idx( accdb->partition_pool, compact ) )); + + /* Ensure the new acc->offset_fork stores above are visible to other + cores before the source partition is moved to the deferred-free + list. On x86 (TSO) hardware store ordering already guarantees + this, but the compiler fence prevents the compiler from sinking + the offset store past the inlined pool/dlist mutations below. */ + FD_COMPILER_MFENCE(); + + /* Bump the global epoch and tag this partition so the reclamation + scan knows when all epoch-publishing joiners that could reference + data in this partition have exited. */ + ulong tag = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->epoch, 1UL ); + compact->epoch_tag = tag; + + /* partition_lock serializes these dlist/pool mutations with + concurrent push_tail in fd_accdb_shmem_bytes_freed and + partition_pool_ele_acquire in change_partition. Neither fd_dlist + nor fd_pool are thread-safe, so all mutations must be under the + same lock. */ + spin_lock_acquire( &accdb->shmem->partition_lock ); + + accdb->shmem->shmetrics->partitions_freed++; + compaction_dlist_ele_pop_head( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ); + FD_VOLATILE( compact->compacting_now ) = 0; + FD_VOLATILE( compact->queued ) = 0; + deferred_free_dlist_ele_push_tail( accdb->deferred_free_dlist, compact, accdb->partition_pool ); + + accdb->shmem->shmetrics->compactions_completed++; + if( FD_LIKELY( compaction_dlist_is_empty( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ) ) ) { + accdb->shmem->shmetrics->in_compaction = 0; + } else { + fd_accdb_partition_t * next = compaction_dlist_ele_peek_head( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ); + FD_LOG_NOTICE(( "compaction of layer %lu partition %lu started", src_layer, partition_pool_idx( accdb->partition_pool, next ) )); + } + + spin_lock_release( &accdb->shmem->partition_lock ); + } + + accdb->metrics->bytes_read += bytes_read + bytes_copied; + accdb->metrics->bytes_written += bytes_copied; + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; +} + +/* cold_load_acc resolves the cache slot for `acc` when STEP 1's + cache_try_pin failed. It uses bit 29 of executable_size as a + single-claimer lock so that two concurrent acquirers cannot each + install their own cache slot for the same acc (which would orphan + one slot with a dangling line->acc_idx and eventually corrupt + acc->cache_valid via CLOCK). + + Protocol per acc: + - If cache_valid is set, retry cache_try_pin (another thread + finished the cold-load while we were here). On success, mark + exists_in_cache so STEP 4 will not write back the slot. + - If claim is set, spin (another thread is mid-cold-load). + - Otherwise CAS-set the claim bit. Winner allocates a cache + line, populates the placeholder (acc_idx=UINT_MAX), publishes + cache_idx, then atomically (CAS-loop) sets cache_valid and + clears claim. + + The eviction sites that clear cache_valid must use FETCH_AND with + ~CACHE_VALID_BIT (preserving the claim bit) to interact correctly + with this protocol. */ + +static fd_accdb_cache_line_t * +cold_load_acc( fd_accdb_t * accdb, + fd_accdb_accmeta_t * accmeta, + uchar const * pubkey, + int * out_exists_in_cache, + uint * out_evicted_acc_idx ) { + for(;;) { + uint old_es = FD_VOLATILE_CONST( accmeta->executable_size ); + int valid = FD_ACCDB_SIZE_CACHE_VALID( old_es ); + int claimed = FD_ACCDB_SIZE_CACHE_CLAIM( old_es ); + + if( FD_UNLIKELY( valid ) ) { + /* old_es snapshot saw VALID=1 but a concurrent + evict_clear_acc_cache_ref may have cleared VALID and stored + cache_idx=INVAL between our snapshot and this load. Decoding + INVAL would yield a wild cache_line pointer; retry the loop + instead (next iteration will see VALID=0). */ + uint cidx = FD_VOLATILE_CONST( accmeta->cache_idx ); + if( FD_UNLIKELY( cidx==FD_ACCDB_ACC_CIDX_INVAL ) ) { FD_SPIN_PAUSE(); continue; } + fd_accdb_cache_line_t * hit = cache_line( accdb, FD_ACCDB_ACC_CIDX_CLASS( cidx ), FD_ACCDB_ACC_CIDX_IDX( cidx ) ); + fd_racesan_hook( "accdb_cold_load:pre_try_pin" ); + fd_accdb_cache_line_t * pinned = cache_try_pin( hit, pubkey, accmeta->key.generation ); + if( FD_LIKELY( pinned ) ) { + *out_exists_in_cache = 1; + *out_evicted_acc_idx = UINT_MAX; + return pinned; + } + FD_SPIN_PAUSE(); + continue; + } + + if( FD_UNLIKELY( claimed ) ) { + fd_racesan_hook( "accdb_cold_load:claim_wait" ); + FD_SPIN_PAUSE(); + continue; + } + + if( FD_UNLIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, old_es, old_es | FD_ACCDB_SIZE_CACHE_CLAIM_BIT )!=old_es ) ) { + FD_SPIN_PAUSE(); + continue; + } + + /* We hold the claim. Allocate a cache line and publish. */ + ulong size_class = fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( old_es ) ); + fd_accdb_cache_line_t * line = acquire_cache_line( accdb, size_class, out_evicted_acc_idx ); + fd_memcpy( line->key.pubkey, accmeta->key.pubkey, 32UL ); + line->key.generation = accmeta->key.generation; + /* Leave acc_idx at UINT_MAX (the "loading" sentinel) until step 12 + publishes it after the preadv2 fence. Concurrent threads that + pin via cache_idx will spin on this in step 13. */ + line->acc_idx = UINT_MAX; + FD_COMPILER_MFENCE(); + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_PACK( (uint)size_class, (uint)cache_line_idx( accdb, size_class, line ) ); + FD_COMPILER_MFENCE(); + + fd_racesan_hook( "accdb_cold_load:pre_valid" ); + + /* Atomically set CACHE_VALID_BIT and clear CACHE_CLAIM_BIT. + Eviction may have flipped CACHE_VALID_BIT on us between our + claim and now (it preserves CLAIM but can clear VALID); the + CAS loop tolerates that. The data length and exec bits stay + unchanged. */ + for(;;) { + uint cur = FD_VOLATILE_CONST( accmeta->executable_size ); + uint nxt = (cur & ~FD_ACCDB_SIZE_CACHE_CLAIM_BIT) | FD_ACCDB_SIZE_CACHE_VALID_BIT; + if( FD_LIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, cur, nxt )==cur ) ) break; + FD_SPIN_PAUSE(); + } + + *out_exists_in_cache = 0; + return line; + } +} + +#define RESERVATION_TYPE_SIMPLE (0) +#define RESERVATION_TYPE_MAYBE_PROGRAMDATA (1) +#define RESERVATION_TYPE_ALREADY_RESERVED (2) + +static void +fd_accdb_acquire_inner( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + int reservation_type, + ulong reserved_cnt, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ) { + accdb->metrics->acquire_calls++; + + ulong max_acquire_cnt = accdb->shmem->bundle_enabled ? FD_ACCDB_MAX_ACQUIRE_CNT : FD_ACCDB_MAX_TX_ACCOUNT_LOCKS; + FD_TEST( pubkeys_cnt<=max_acquire_cnt ); + + FD_TEST( FD_VOLATILE_CONST( *accdb->my_epoch_slot )==ULONG_MAX ); + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); /* StoreLoad: epoch store must be globally visible + before any subsequent loads so the deferred + reclamation scan does not miss us */ + + // STEP 1. + // Locate each account in the fork and index structure, to determine + // if it already exists, its size and other metadata, and which + // specific slot (generation) it was last written in. + + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + uint root_generation = accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; + + fd_racesan_hook( "accdb_acquire:post_root_gen" ); + + fd_accdb_accmeta_t * accmetas[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + ulong acc_map_idxs[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + + /* Walk the hash chain for each pubkey and take the first visible + match. Correctness relies on newer entries always being prepended + to the chain head, which is guaranteed because replay processes + writes in slot order and release always inserts at the head. + + CONCURRENCY: This chain walk runs epoch-protected. A concurrent + fd_accdb_release may prepend a new node to the same chain while + we walk it. This is safe on x86-64 (TSO): the releasing thread + stores all acc fields (pubkey, generation, map.next, ...) before + publishing the new head via a CAS on acc_map[idx], and TSO + guarantees a reading core that observes the new head also observes + all prior stores to the node. A reader that does not yet see the + new head simply sees an older (still valid) version of the chain. + On weakly-ordered architectures an explicit acquire fence would be + needed before the chain walk and a release fence in + fd_accdb_release before the head-pointer store. Multiple + concurrent releases serialize on the CAS of the chain head. */ + for( ulong i=0UL; ishmem->seed )&(accdb->shmem->chain_cnt-1UL); + uint acc = FD_VOLATILE_CONST( accdb->acc_map[ acc_map_idxs[ i ] ] ); + while( acc!=UINT_MAX ) { + fd_accdb_accmeta_t const * candidate_acc = &accdb->acc_pool[ acc ]; + uint next_acc = FD_VOLATILE_CONST( candidate_acc->map.next ); + + fd_racesan_hook( "accdb_acquire:post_next" ); + + if( FD_UNLIKELY( (candidate_acc->key.generation>root_generation && + fd_accdb_acc_fork_id(candidate_acc)!=fork_id.val && + !descends_set_test( fork->descends, fd_accdb_acc_fork_id(candidate_acc) )) ) || + memcmp( pubkeys[ i ], candidate_acc->key.pubkey, 32UL ) ) { + acc = next_acc; + continue; + } + + break; + } + if( FD_UNLIKELY( acc==UINT_MAX ) ) accmetas[ i ] = NULL; + else accmetas[ i ] = &accdb->acc_pool[ acc ]; + +#if FD_TMPL_USE_HANDHOLDING + if( FD_UNLIKELY( accmetas[ i ] ) ) { + fd_accdb_accmeta_t const * sel = accmetas[ i ]; + FD_TEST( !memcmp( sel->key.pubkey, pubkeys[ i ], 32UL ) ); + FD_TEST( sel->key.generation<=root_generation || + fd_accdb_acc_fork_id( sel )==fork_id.val || + descends_set_test( fork->descends, fd_accdb_acc_fork_id( sel ) ) ); + FD_TEST( sel->key.generation<=FD_VOLATILE_CONST( accdb->shmem->generation ) ); + } +#endif + + if( FD_UNLIKELY( accmetas[ i ] && !writable[ i ] && !accmetas[ i ]->lamports ) ) accmetas[ i ] = NULL; + + /* Attribute this acquired account to a size class for per-class + rate metrics. Use the account's current size class when known; + otherwise (new account) bucket as class 0. */ + ulong acq_class = 0UL; + if( FD_LIKELY( accmetas[ i ] ) ) acq_class = fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ); + if( FD_LIKELY( writable[ i ] ) ) accdb->metrics->writable_accounts_acquired_per_class[ acq_class ]++; + else accdb->metrics->accounts_acquired_per_class[ acq_class ]++; + } + + // STEP 2. + // The two-phase programdata acquire (acquire_a then acquire_b) + // works as follows: acquire_a (RESERVATION_TYPE_MAYBE_PROGRAMDATA) + // over-reserves one slot in every live size class per candidate + // account (reserved_cnt total per class), because it does not yet + // know which accounts have programdata or what size class it lands + // in. acquire_b then resolves the actual programdata pubkeys and + // re-enters here with RESERVATION_TYPE_ALREADY_RESERVED to refund + // the surplus. Keep one reservation per found programdata account + // in its own size class (consumed later by release) and give the + // rest back. + if( FD_UNLIKELY( reservation_type==RESERVATION_TYPE_ALREADY_RESERVED ) ) { + ulong refund[ FD_ACCDB_CACHE_CLASS_CNT ] = {0}; + for( ulong j=0UL; jshmem->cache_class_used[ j ].val!=ULONG_MAX ) ) refund[ j ] = reserved_cnt; + } + for( ulong i=0UL; iexecutable_size ) ); + if( FD_LIKELY( accdb->shmem->cache_class_used[ cls ].val!=ULONG_MAX ) ) { + FD_TEST( refund[ cls ]>0UL ); + refund[ cls ]--; + } + } + } + for( ulong k=0UL; kshmem->cache_class_used[ k ].val, refund[ k ] ); + } + } + + // STEP 3. + // We are potentially going to need to read the account data off of + // disk into the cache, if the account(s) are not in the cache so + // reserve the necessary cache space. This is done with an "atomic + // subtract" spin loop on the cache class counters, which is + // actually faster than doing a real CAS on a packed ulong. + // + // For reads, we only need space to copy the account data into a + // single right-sized cache line, but for writes ... we need to + // reserve one of every size class. The reason is we are going to + // need a 10MiB staging buffer for the executor to write to (it may + // grow the account, so needs the max size class). Even if the + // account is already in the 10MiB cache class, we need another one + // because a transaction can fail half way, so we need scratch space + // to be able to unwind. + // + // So we acquire one of each size class. Then when the transaction + // finishes, if it succeeded, we will copy the data back to the + // whichever size-class is now right-sized post execution. + if( FD_LIKELY( reservation_type==RESERVATION_TYPE_SIMPLE || reservation_type==RESERVATION_TYPE_MAYBE_PROGRAMDATA ) ) { + ulong requested_buckets[ FD_ACCDB_CACHE_CLASS_CNT ] = {0}; + for( ulong i=0UL; ishmem->cache_class_used[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ) ].val!=ULONG_MAX ) ) { + requested_buckets[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ) ]++; + } + } + if( FD_UNLIKELY( writable[ i ] ) ) { + for( ulong j=0UL; jshmem->cache_class_used[ j ].val!=ULONG_MAX ) ) { + requested_buckets[ j ]++; + } + } + } + } + + if( FD_LIKELY( reservation_type==RESERVATION_TYPE_MAYBE_PROGRAMDATA ) ) { + /* Any account could also have an implied reference to a + programdata account, which we don't know yet ... so we need to + reserve worst case space if they all went to the same size + class. This reservation runs unconditionally per pubkey (not + gated on accmetas/writable) so that acquire_b can refund based on + pubkeys_cnt without needing to re-derive the live-account set. */ + for( ulong j=0UL; jshmem->cache_class_used[ j ].val!=ULONG_MAX ) ) { + requested_buckets[ j ]++; + } + } + } + } + + /* TODO: This over-reserves cache slots for writable accounts that + already exist. For each such account we reserve one line in the + account's size class (for the read into cache) AND one line in + every size class (for the write destination buffers). But if the + account is already resident in cache (which is the common case + for hot accounts), the read-into-cache line is unnecessary — we + will get a cache hit in step 4 and never use it. The fix is to + probe acc->cache_idx here and skip the per-account size class + reservation per-account size class reservation when a hit is + found. This would reduce peak reservation by up to one line per + writable account per acquire batch, lowering contention on the + cache class counters and allowing smaller cache provisioning. */ + + /* Reserve cache slots by atomically incrementing the shared used + counters. If any class exceeds its max, the reservation + overflowed — subtract back partial grabs and retry. */ + for(;;) { + int acquire_failed = 0; + ulong grabbed[ FD_ACCDB_CACHE_CLASS_CNT ] = {0}; + for( ulong i=0UL; ishmem->cache_class_used[ i ].val, requested_buckets[ i ] ); + if( FD_UNLIKELY( new_used>accdb->shmem->cache_class_max[ i ] ) ) { + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->cache_class_used[ i ].val, requested_buckets[ i ] ); + acquire_failed = 1; + } else { + grabbed[ i ] = requested_buckets[ i ]; + } + if( FD_UNLIKELY( acquire_failed ) ) { + accdb->metrics->acquire_failed++; + for( ulong j=0UL; jshmem->cache_class_used[ j ].val, grabbed[ j ] ); + } + FD_SPIN_PAUSE(); + break; + } + } + if( FD_LIKELY( !acquire_failed ) ) break; + } + } + + // STEP 4. + // For any accounts that are not in cache, we now need to actually + // retrieve the cache pointers from our structures. Space has been + // reserved already, so this step is guaranteed to succeed, and is + // just pulling the cache lines out of the free lists and marking + // them as in-use. + // + // This step is fully lock-free. Cache hits are pinned with an + // atomic CAS on refcnt (cache_try_pin). Eviction uses the CLOCK + // algorithm. The CAS free list provides immediate recycling of + // fully-freed lines. + + int exists_in_cache[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + fd_accdb_cache_line_t * original_cache_line[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + fd_accdb_cache_line_t * destination_cache_lines[ FD_ACCDB_MAX_ACQUIRE_CNT ][ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Saved acc_pool indices of evicted dirty cache lines. These are + captured before clearing acc_idx to UINT_MAX on the line struct, so + that the sentinel protocol (step 14) works correctly while the + evicted account metadata is still available for writeback in steps + 4 and 6. */ + uint evicted_dest_acc[ FD_ACCDB_MAX_ACQUIRE_CNT ][ FD_ACCDB_CACHE_CLASS_CNT ]; + uint evicted_orig_acc[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + + for( ulong i=0UL; iexecutable_size ) ) ) ) { + /* Concurrent evict_clear_acc_cache_ref clears VALID then stores + cache_idx=INVAL. We may have observed VALID=1 just before the + writer cleared it, so cidx can read as INVAL here; decoding it + would yield a wild cache_line pointer. Skip on INVAL. Any + other stale cidx is harmless: cache_try_pin's ABA generation + check rejects a recycled line. */ + uint cidx = FD_VOLATILE_CONST( accmetas[ i ]->cache_idx ); + if( FD_LIKELY( cidx!=FD_ACCDB_ACC_CIDX_INVAL ) ) { + fd_accdb_cache_line_t * hit = cache_line( accdb, FD_ACCDB_ACC_CIDX_CLASS( cidx ), FD_ACCDB_ACC_CIDX_IDX( cidx ) ); + fd_racesan_hook( "accdb_acquire:pre_try_pin" ); + original_cache_line[ i ] = cache_try_pin( hit, pubkeys[ i ], accmetas[ i ]->key.generation ); +#if FD_TMPL_USE_HANDHOLDING + if( FD_LIKELY( original_cache_line[ i ] ) ) { + FD_TEST( original_cache_line[ i ]->key.generation==accmetas[ i ]->key.generation && + !memcmp( original_cache_line[ i ]->key.pubkey, pubkeys[ i ], 32UL ) ); + uint rc = FD_VOLATILE_CONST( original_cache_line[ i ]->refcnt ); + FD_TEST( rc>0U && rc!=FD_ACCDB_EVICT_SENTINEL ); + } +#endif + } + } + } + exists_in_cache[ i ] = original_cache_line[ i ]!=NULL; + + if( FD_UNLIKELY( writable[ i ] ) ) { + for( ulong j=0UL; jmetrics->accounts_evicted++; + accdb->metrics->accounts_evicted_per_class[ j ]++; + + fd_accdb_accmeta_t const * evicted = &accdb->acc_pool[ evicted_dest_acc[ i ][ j ] ]; + fd_racesan_hook( "writeback:pre_synth" ); + total_write_sz += sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( evicted->executable_size ); + FD_TEST( write_meta_cnt<(int)(sizeof(write_metas)/sizeof(write_metas[0])) ); + fd_memcpy( write_metas[ write_meta_cnt ].pubkey, evicted->key.pubkey, 32UL ); + write_metas[ write_meta_cnt ].size = FD_ACCDB_SIZE_DATA( evicted->executable_size ); + fd_memcpy( write_metas[ write_meta_cnt ].owner, destination_cache_lines[ i ][ j ]->owner, 32UL ); + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = &write_metas[ write_meta_cnt ], .iov_len = sizeof(fd_accdb_disk_meta_t) }; + write_meta_cnt++; + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = destination_cache_lines[ i ][ j ]+1UL, .iov_len = FD_ACCDB_SIZE_DATA( evicted->executable_size ) }; + } + if( FD_UNLIKELY( accmetas[ i ] && !exists_in_cache[ i ] && evicted_orig_acc[ i ]!=UINT_MAX ) ) { + fd_accdb_accmeta_t const * evicted = &accdb->acc_pool[ evicted_orig_acc[ i ] ]; + accdb->metrics->accounts_evicted++; + accdb->metrics->accounts_evicted_per_class[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( evicted->executable_size ) ) ]++; + + total_write_sz += sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( evicted->executable_size ); + FD_TEST( write_meta_cnt<(int)(sizeof(write_metas)/sizeof(write_metas[0])) ); + fd_memcpy( write_metas[ write_meta_cnt ].pubkey, evicted->key.pubkey, 32UL ); + write_metas[ write_meta_cnt ].size = FD_ACCDB_SIZE_DATA( evicted->executable_size ); + fd_memcpy( write_metas[ write_meta_cnt ].owner, original_cache_line[ i ]->owner, 32UL ); + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = &write_metas[ write_meta_cnt ], .iov_len = sizeof(fd_accdb_disk_meta_t) }; + write_meta_cnt++; + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = original_cache_line[ i ]+1UL, .iov_len = FD_ACCDB_SIZE_DATA( evicted->executable_size ) }; + } + } else { + if( FD_LIKELY( exists_in_cache[ i ] || evicted_orig_acc[ i ]==UINT_MAX ) ) continue; + fd_accdb_accmeta_t const * evicted = &accdb->acc_pool[ evicted_orig_acc[ i ] ]; + accdb->metrics->accounts_evicted++; + accdb->metrics->accounts_evicted_per_class[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( evicted->executable_size ) ) ]++; + total_write_sz += sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( evicted->executable_size ); + FD_TEST( write_meta_cnt<(int)(sizeof(write_metas)/sizeof(write_metas[0])) ); + fd_memcpy( write_metas[ write_meta_cnt ].pubkey, evicted->key.pubkey, 32UL ); + write_metas[ write_meta_cnt ].size = FD_ACCDB_SIZE_DATA( evicted->executable_size ); + fd_memcpy( write_metas[ write_meta_cnt ].owner, original_cache_line[ i ]->owner, 32UL ); + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = &write_metas[ write_meta_cnt ], .iov_len = sizeof(fd_accdb_disk_meta_t) }; + write_meta_cnt++; + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = original_cache_line[ i ]+1UL, .iov_len = FD_ACCDB_SIZE_DATA( evicted->executable_size ) }; + } + } + + // STEP 6-7. + // Compute the file offset for the writes we are about to do and + // build the pending offset table. The common case is a single + // atomic fetch-add on the write head, reserving a contiguous + // region. If the total eviction batch is too large to fit in one + // partition (extremely unlikely — requires many dirty 10MiB + // evictions), fall back to per-entry allocation so that each + // individual write fits in a single partition. + // + // The actual stores to evicted->offset_fork and line->persisted + // are deferred until after pwritev2 completes (Step 9-10), so + // a concurrent acquire spinning on offset==FD_ACCDB_OFF_INVAL + // does not proceed to preadv2 from a location that hasn't been + // written. + int pending_cnt = 0; + fd_accdb_accmeta_t * pending_accs [ (FD_ACCDB_CACHE_CLASS_CNT+1UL)*FD_ACCDB_MAX_ACQUIRE_CNT ]; + ulong pending_offs [ (FD_ACCDB_CACHE_CLASS_CNT+1UL)*FD_ACCDB_MAX_ACQUIRE_CNT ]; + fd_accdb_cache_line_t * pending_lines[ (FD_ACCDB_CACHE_CLASS_CNT+1UL)*FD_ACCDB_MAX_ACQUIRE_CNT ]; + + ulong file_offset; + int batch_contiguous; + if( FD_LIKELY( total_write_sz && total_write_sz<=accdb->shmem->partition_sz ) ) { + file_offset = allocate_next_write( accdb, total_write_sz ); + batch_contiguous = 1; + } else { + file_offset = 0UL; + batch_contiguous = 0; + } + + ulong cumulative_offset = 0UL; + for( ulong i=0UL; iacc_pool[ evicted_dest_acc[ i ][ j ] ]; + ulong entry_sz = sizeof(fd_accdb_disk_meta_t) + (ulong)FD_ACCDB_SIZE_DATA( evicted->executable_size ); + /* xchg-to-INVAL atomically captures the old offset and prevents + a concurrent acc_unlink from also reading and freeing it (the + xchg there will see INVAL and skip). Step 10 republishes the + new offset; the spinner at line ~2082 tolerates the transient + INVAL. Same pattern as the overwrite path at line ~2388. */ + ulong old_off = fd_accdb_acc_xchg_offset( evicted, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_off!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_off, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + FD_TEST( pending_cnt<(int)(sizeof(pending_accs)/sizeof(pending_accs[0])) ); + pending_accs [ pending_cnt ] = evicted; + if( FD_LIKELY( batch_contiguous ) ) pending_offs[ pending_cnt ] = file_offset + cumulative_offset; + else pending_offs[ pending_cnt ] = allocate_next_write( accdb, entry_sz ); + pending_lines[ pending_cnt ] = destination_cache_lines[ i ][ j ]; + pending_cnt++; + cumulative_offset += entry_sz; + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + if( FD_UNLIKELY( accmetas[ i ] && !exists_in_cache[ i ] && evicted_orig_acc[ i ]!=UINT_MAX ) ) { + fd_accdb_accmeta_t * evicted = &accdb->acc_pool[ evicted_orig_acc[ i ] ]; + ulong entry_sz = sizeof(fd_accdb_disk_meta_t) + (ulong)FD_ACCDB_SIZE_DATA( evicted->executable_size ); + ulong old_off = fd_accdb_acc_xchg_offset( evicted, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_off!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_off, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + FD_TEST( pending_cnt<(int)(sizeof(pending_accs)/sizeof(pending_accs[0])) ); + pending_accs [ pending_cnt ] = evicted; + if( FD_LIKELY( batch_contiguous ) ) pending_offs[ pending_cnt ] = file_offset + cumulative_offset; + else pending_offs[ pending_cnt ] = allocate_next_write( accdb, entry_sz ); + pending_lines[ pending_cnt ] = original_cache_line[ i ]; + pending_cnt++; + cumulative_offset += entry_sz; + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + } else { + if( FD_LIKELY( exists_in_cache[ i ] || evicted_orig_acc[ i ]==UINT_MAX ) ) continue; + + fd_accdb_accmeta_t * evicted = &accdb->acc_pool[ evicted_orig_acc[ i ] ]; + ulong entry_sz = sizeof(fd_accdb_disk_meta_t) + (ulong)FD_ACCDB_SIZE_DATA( evicted->executable_size ); + ulong old_off = fd_accdb_acc_xchg_offset( evicted, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_off!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_off, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + FD_TEST( pending_cnt<(int)(sizeof(pending_accs)/sizeof(pending_accs[0])) ); + pending_accs [ pending_cnt ] = evicted; + if( FD_LIKELY( batch_contiguous ) ) pending_offs[ pending_cnt ] = file_offset + cumulative_offset; + else pending_offs[ pending_cnt ] = allocate_next_write( accdb, entry_sz ); + pending_lines[ pending_cnt ] = original_cache_line[ i ]; + pending_cnt++; + cumulative_offset += entry_sz; + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + } + + // STEP 8. + // Fill the output entries with cache pointers and metadata based on + // the accounts we have located and the cache lines we have + // reserved. + + for( ulong i=0UL; ilamports==0UL; + out_accs[ i ].data_len = ( accmetas[ i ] && !tombstone ) ? FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) : 0UL; + out_accs[ i ].executable = ( accmetas[ i ] && !tombstone ) ? FD_ACCDB_SIZE_EXEC( accmetas[ i ]->executable_size ) : 0; + fd_racesan_hook( "accdb_acquire:mid_step7_meta" ); + out_accs[ i ].lamports = accmetas[ i ] ? accmetas[ i ]->lamports : 0UL; + if( FD_UNLIKELY( !accmetas[ i ] ) ) memset( out_accs[ i ].owner, 0, 32UL ); + /* For accmetas[i] != NULL, the owner is copied from the cache line + below in step 15, after step 12 has populated it from disk for + cold loads. */ + + out_accs[ i ].prior_lamports = out_accs[ i ].lamports; + out_accs[ i ].prior_data_len = out_accs[ i ].data_len; + out_accs[ i ].prior_executable = out_accs[ i ].executable; + out_accs[ i ].prior_data = (uchar *)(original_cache_line[ i ] ? (original_cache_line[ i ]+1UL) : NULL); + + out_accs[ i ].commit = 0; + out_accs[ i ]._writable = writable[ i ]; + if( FD_UNLIKELY( writable[ i ] && accmetas[ i ] ) ) out_accs[ i ]._overwrite = accdb->fork_pool[ fork_id.val ].shmem->generation==accmetas[ i ]->key.generation; + else out_accs[ i ]._overwrite = 0; + + FD_TEST( out_accs[ i ].data_len<=(10UL<<20) ); + FD_TEST( !out_accs[ i ]._overwrite || accdb->fork_pool[ fork_id.val ].shmem->generation==accmetas[ i ]->key.generation ); + +#if FD_TMPL_USE_HANDHOLDING + if( FD_UNLIKELY( !writable[ i ] && accmetas[ i ] && !tombstone ) ) { + ulong cls = fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ); + FD_TEST( fd_accdb_ptr_in_region( accdb, cls, out_accs[ i ].data ) ); + } +#endif + + if( FD_UNLIKELY( writable[ i ] ) ) { + out_accs[ i ]._fork_id = fork_id.val; + out_accs[ i ]._generation = fork->shmem->generation; + out_accs[ i ]._acc_map_idx = acc_map_idxs[ i ]; + } + fd_memcpy( out_accs[ i ].pubkey, pubkeys[ i ], 32UL ); + + if( FD_UNLIKELY( !accmetas[ i ] ) ) { + out_accs[ i ]._original_size_class = ULONG_MAX; + out_accs[ i ]._original_cache_idx = ULONG_MAX; + } else { + out_accs[ i ]._original_size_class = fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ); + out_accs[ i ]._original_cache_idx = cache_line_idx( accdb, out_accs[ i ]._original_size_class, original_cache_line[ i ] ); + } + + if( FD_UNLIKELY( writable[ i ] ) ) { + for( ulong j=0UL; joffset is still FD_ACCDB_OFF_INVAL. + // The read-iovec loop below spin-waits on + // offset!=FD_ACCDB_OFF_INVAL, so publishing evicted offsets first + // prevents an intra-batch deadlock where the thread waits on an + // offset that only it can resolve. + if( FD_LIKELY( batch_contiguous ) ) { + /* Fast path: all evictions fit in one contiguous region. Use the + pre-built iovec array for a single batched pwritev2 call. */ + ulong bytes_written = 0UL; + struct iovec * write_ptr = write_ops; + while( FD_LIKELY( bytes_writtenfd, write_ptr, fd_int_min( write_ops_cnt, IOV_MAX ), (long)(file_offset+bytes_written), 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "pwritev2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, pwritev2() returned 0 at offset %lu with %lu bytes remaining", + file_offset+bytes_written, total_write_sz-bytes_written )); + bytes_written += (ulong)result; + accdb->metrics->bytes_written += (ulong)result; + accdb->metrics->write_ops++; + + while( write_ops_cnt && (ulong)result>=(ulong)write_ptr[ 0 ].iov_len ) { + result -= (long)write_ptr[ 0 ].iov_len; + write_ptr++; + write_ops_cnt--; + } + if( FD_LIKELY( write_ops_cnt ) ) { + write_ptr[ 0 ].iov_base = (uchar *)write_ptr[ 0 ].iov_base + result; + write_ptr[ 0 ].iov_len -= (ulong)result; + } + } + } else { + /* Slow path: total eviction batch exceeds a single partition. + Write each entry individually using its own allocated offset. + This path is only taken in extreme edge cases (many concurrent + dirty 10 MiB evictions). */ + struct iovec * wp = write_ops; + for( int k=0; kexecutable_size ); + ulong entry_off = pending_offs[ k ]; + struct iovec entry_iovs[2] = { wp[0], wp[1] }; + wp += 2; + + ulong written = 0UL; + while( FD_LIKELY( writtenfd, entry_iovs, 2, (long)(entry_off+written), 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "pwritev2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, pwritev2() returned 0 at offset %lu with %lu bytes remaining", entry_off+written, entry_sz-written )); + written += (ulong)result; + accdb->metrics->bytes_written += (ulong)result; + accdb->metrics->write_ops++; + + for( int v=0; v<2; v++ ) { + if( (ulong)result>=(ulong)entry_iovs[ v ].iov_len ) { + result -= (long)entry_iovs[ v ].iov_len; + entry_iovs[ v ].iov_len = 0UL; + } else { + entry_iovs[ v ].iov_base = (uchar *)entry_iovs[ v ].iov_base + result; + entry_iovs[ v ].iov_len -= (ulong)result; + break; + } + } + } + } + } + + // STEP 10. + // Now that the data is on disk, publish the evicted account offsets + // so concurrent acquire threads spinning on + // offset==FD_ACCDB_OFF_INVAL can proceed. The fence ensures + // pwritev2 data is globally visible before the offset stores. + FD_COMPILER_MFENCE(); + for( int k=0; koffset_fork = fd_accdb_acc_pack_offset_fork( pending_offs[ k ], fd_accdb_acc_fork_id(pending_accs[ k ]) ); + pending_lines[ k ]->persisted = 1; + } + + // STEP 11. + // Now construct iovecs for any reads we need to do of accounts into + // the cache. For reading accounts, we read them directly into the + // sole cache line we took (and maybe just evicted). For writing + // accounts, we read them into the right sized cache line, and later + // it will be copied to the staging buffer. This is to prevent + // repeatedly reading the same account off disk into cache, if it is + // being written cold multiple times and every write fails. + + ulong read_ops_cnt = 0UL; + ulong read_offsets[ FD_ACCDB_CACHE_CLASS_CNT*FD_ACCDB_MAX_ACQUIRE_CNT ]; + uchar * read_bases[ FD_ACCDB_CACHE_CLASS_CNT*FD_ACCDB_MAX_ACQUIRE_CNT ]; + ulong read_sizes[ FD_ACCDB_CACHE_CLASS_CNT*FD_ACCDB_MAX_ACQUIRE_CNT ]; + struct iovec read_ops[ FD_ACCDB_CACHE_CLASS_CNT*FD_ACCDB_MAX_ACQUIRE_CNT ]; + + for( ulong i=0UL; imetrics->accounts_not_found_per_class[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ) ]++; + + /* Tombstones (lamports==0) have no on-disk payload to read, and + background_advance_root may unlink the acc and never assign it a + disk offset, so the offset_fork spin below would hang forever. + Step 15's tombstone reset zeros the owner for these accounts. */ + if( FD_UNLIKELY( !accmetas[ i ]->lamports ) ) continue; + + /* We are guaranteed that if an account is in the cache, the bytes + are available (all cache operations are atomic via refcnt CAS), + but we are not guaranteed that if something is _not_ in the cache + that it has been written back to disk yet. In paticular, if we + are trying to read an account that another thread is in the + process of evicting, we know they removed it from the cache, but + we don't know exactly when they will have written it back fully + to disk, so we may need to wait for that here. + + Compaction may concurrently relocate this record, but + epoch-based safe reclamation guarantees the source partition + is not freed until all epoch-protected operations that could + have snapshotted the old offset have exited. So the data at the + snapshotted offset remains stable for the duration of our + read and no post-read validation is needed. */ + ulong off_packed = FD_VOLATILE_CONST( accmetas[ i ]->offset_fork ); + while( FD_UNLIKELY( (off_packed & FD_ACCDB_OFF_MASK)==FD_ACCDB_OFF_INVAL ) ) { + FD_SPIN_PAUSE(); + off_packed = FD_VOLATILE_CONST( accmetas[ i ]->offset_fork ); + } + fd_racesan_hook( "accdb_coldload:pre_iovec" ); + + read_offsets[ read_ops_cnt ] = fd_accdb_acc_offset(accmetas[ i ]) + offsetof(fd_accdb_disk_meta_t, owner); + read_bases[ read_ops_cnt ] = original_cache_line[ i ]->owner; + read_sizes[ read_ops_cnt ] = 32UL + FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ); + read_ops[ read_ops_cnt++ ] = (struct iovec){ .iov_base = original_cache_line[ i ]->owner, .iov_len = 32UL + FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) }; + } + + // STEP 12. + // Almost done... now do the actual reads of accounts into cache, + // using the iovecs we constructed. This is basically the same loop + // as the writes, but with preadv2 instead of pwritev2, and that the + // reads are not necessarily all contiguous, but occur at random + // offsets. + // + // CONCURRENCY: The compaction tile may concurrently relocate a + // record we are about to read (both are epoch-protected). Epoch- + // based safe reclamation guarantees the source partition is not + // freed until all epoch-protected operations that could have + // snapshotted the old offset have exited, so the data at the + // remains stable for the duration of this read — no post-read + // validation or retry is needed. + for( ulong i=0UL; ifd, &read_ops[ i ], 1, (long)(read_offsets[ i ]+bytes_read), 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "preadv2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, data expected at offset %lu with size %lu exceeded file extents", + read_offsets[ i ]+bytes_read, read_sizes[ i ] )); + fd_accdb_partition_read_bump( accdb, read_offsets[ i ]+bytes_read, (ulong)result ); + bytes_read += (ulong)result; + accdb->metrics->bytes_read += (ulong)result; + accdb->metrics->read_ops++; + + read_ops[ i ].iov_base = read_bases[ i ] + bytes_read; + read_ops[ i ].iov_len = read_sizes[ i ] - bytes_read; + } + } + + // STEP 13. + // Publish the real acc index for any cache lines we just loaded + // from disk, so concurrent threads spinning on acc_idx==UINT_MAX + // can proceed. The fence ensures all preadv2 data is visible + // before the sentinel is cleared. + FD_COMPILER_MFENCE(); + for( ulong i=0UL; iacc_idx ) = (uint)( accmetas[ i ] - accdb->acc_pool ); + FD_TEST( FD_VOLATILE_CONST( original_cache_line[ i ]->acc_idx )==(uint)( accmetas[ i ] - accdb->acc_pool ) ); + } + + // STEP 14. + // Spin-wait for any cache lines found via acc->cache_idx that are + // still being loaded by another thread's preadv2. The loading + // thread sets acc_idx to UINT_MAX before publishing cache_idx + // and publishes the real acc index after its read completes. + // This step is placed as late as possible to give the loading + // thread maximum time to finish before we need to spin. + for( ulong i=0UL; iacc_idx )!=UINT_MAX ) ) goto step13_check; + accdb->metrics->accounts_waited++; + while( FD_UNLIKELY( FD_VOLATILE_CONST( original_cache_line[ i ]->acc_idx )==UINT_MAX ) ) { + fd_racesan_hook( "accdb_acquire:step14_load_wait" ); + FD_SPIN_PAUSE(); + } + step13_check:; +#if FD_TMPL_USE_HANDHOLDING + FD_TEST( original_cache_line[ i ]->key.generation==accmetas[ i ]->key.generation && + !memcmp( original_cache_line[ i ]->key.pubkey, pubkeys[ i ], 32UL ) ); +#endif + } + + // STEP 15. + // Now that all reads from disk into original_cache_line have + // completed (and any concurrent loaders have published their + // acc_idx in step 14), copy the owner into the output entries. + // This must happen here rather than in step 8 because the cache + // line owner is only valid post-read for cold loads. + for( ulong i=0UL; ilamports==0UL ) ) { + memset( out_accs[ i ].owner, 0, 32UL ); + memset( out_accs[ i ].prior_owner, 0, 32UL ); + } else { + fd_memcpy( out_accs[ i ].owner, original_cache_line[ i ]->owner, 32UL ); + fd_memcpy( out_accs[ i ].prior_owner, original_cache_line[ i ]->owner, 32UL ); + } + } + + // STEP 16. + // Finally, copy any accounts we are writing into the staging + // buffers, so they occupy a 10MiB cache line for the execution + // system. + for( ulong i=0UL; iexecutable_size ); + fd_memcpy( destination_cache_lines[ i ][ 7UL ]+1UL, original_cache_line[ i ]+1UL, copy_sz ); + accdb->metrics->bytes_copied += copy_sz; + } + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; +} + +void +fd_accdb_acquire( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_IDLE ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_OPEN; + fd_accdb_acquire_inner( accdb, fork_id, RESERVATION_TYPE_SIMPLE, 0UL, pubkeys_cnt, pubkeys, writable, out_accs ); +} + +void +fd_accdb_acquire_a( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_IDLE ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_PHASE_A; + fd_accdb_acquire_inner( accdb, fork_id, RESERVATION_TYPE_MAYBE_PROGRAMDATA, 0UL, pubkeys_cnt, pubkeys, writable, out_accs ); +} + +void +fd_accdb_acquire_b( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong reserved_cnt, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_PHASE_A ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_OPEN; + fd_accdb_acquire_inner( accdb, fork_id, RESERVATION_TYPE_ALREADY_RESERVED, reserved_cnt, pubkeys_cnt, pubkeys, writable, out_accs ); +} + +/* release_inner drains one group of acquired accs but does NOT change the + handle's acquire_state. The public fd_accdb_release / fd_accdb_release_ab + wrappers below own the state transition (a single-phase release closes + the bracket; release_ab drains both phase groups then closes). */ +static void +release_inner( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_OPEN ); + + { + ulong prev = FD_VOLATILE_CONST( *accdb->my_epoch_slot ); + FD_TEST( prev==ULONG_MAX || prev<=FD_VOLATILE_CONST( accdb->shmem->epoch ) ); + } + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); /* StoreLoad: epoch store must be globally visible + before any subsequent loads so the deferred + reclamation scan does not miss us. */ + + // STEP 1. + // For each cache line which was written to in the 10MiB staging + // buffer, we may need to copy to the data out to a right sized + // cache line. Figuring out the target cache line is non-obvious, + // but follows the more complete logic below this, we just pull the + // memcpy out so they are not done inside the cache lock. + + for( ulong i=0UL; ishmem->cache_class_max[ accs[ i ]._original_size_class ] ); + } + if( FD_UNLIKELY( accs[ i ].commit ) ) FD_TEST( accs[ i ]._writable ); +#endif + + if( FD_LIKELY( !accs[ i ]._writable || !accs[ i ].commit ) ) continue; +#if FD_TMPL_USE_HANDHOLDING + if( FD_UNLIKELY( accs[ i ]._overwrite ) ) { + FD_TEST( accs[ i ]._writable ); + FD_TEST( accs[ i ]._original_cache_idx!=ULONG_MAX ); + FD_TEST( accs[ i ]._original_size_class!=ULONG_MAX ); + } +#endif + + ulong original_size_class = accs[ i ]._original_size_class; + ulong new_size_class = fd_accdb_cache_class( accs[ i ].data_len ); + if( FD_UNLIKELY( new_size_class==7UL ) ) continue; + + fd_accdb_cache_line_t * target_cache_line; + if( FD_LIKELY( original_size_class==new_size_class && accs[ i ]._overwrite ) ) target_cache_line = cache_line( accdb, original_size_class, accs[ i ]._original_cache_idx ); + else target_cache_line = cache_line( accdb, new_size_class, accs[ i ]._write.destination_cache_idx[ new_size_class ] ); + + fd_accdb_cache_line_t * staging_line = cache_line( accdb, 7UL, accs[ i ]._write.destination_cache_idx[ 7UL ] ); + + fd_racesan_hook( "accdb_commit:pre_owner_write" ); + +#if FD_TMPL_USE_HANDHOLDING + if( FD_UNLIKELY( original_size_class==new_size_class && accs[ i ]._overwrite ) ) { + uint rc = FD_VOLATILE_CONST( target_cache_line->refcnt ); + FD_TEST( target_cache_line->key.generation==accs[ i ]._generation && + !memcmp( target_cache_line->key.pubkey, accs[ i ].pubkey, 32UL ) && + rc>0U && + rc!=FD_ACCDB_EVICT_SENTINEL ); + } +#endif + + fd_memcpy( target_cache_line->owner, accs[ i ].owner, 32UL ); + fd_memcpy( target_cache_line+1UL, staging_line+1UL, accs[ i ].data_len ); + accdb->metrics->bytes_copied += accs[ i ].data_len; + } + + // STEP 2. + // Now update the metadata structures and free lists to reflect the + // fact that we are done with these cache lines. This is fully + // atomic with CLOCK. + + for( ulong i=0UL; irefcnt>0U ); +#endif + if( FD_LIKELY( !accs[ i ]._writable || !accs[ i ].commit || !accs[ i ]._overwrite ) ) { + FD_ATOMIC_FETCH_AND_SUB( &original_cache_line->refcnt, 1U ); + } + } + + if( FD_LIKELY( !accs[ i ]._writable ) ) { + /* For readonly accounts, mark as recently used so the CLOCK + algorithm gives it a second chance before eviction. */ +#if FD_TMPL_USE_HANDHOLDING + FD_TEST( original_cache_line ); +#endif + original_cache_line->referenced = 1; + continue; + } + + fd_accdb_cache_line_t * destination_cache_lines[ FD_ACCDB_CACHE_CLASS_CNT ]; + for( ulong j=0UL; jreferenced = 1; + for( ulong j=0UL; jacc_idx pointing + at the prior owner. cache_free_push consumers (CLOCK, + background_preevict) skip lines only when acc_idx==UINT_MAX + AND gen==UINT_MAX; if we leave the stale acc_idx, a future + CLOCK pick would call line 849/853 against the wrong acc + and corrupt its cache_idx/valid. */ + destination_cache_lines[ j ]->acc_idx = UINT_MAX; + destination_cache_lines[ j ]->key.generation = UINT_MAX; + destination_cache_lines[ j ]->refcnt = 0; + destination_cache_lines[ j ]->persisted = 1; + cache_free_push( accdb, j, destination_cache_lines[ j ] ); + } + continue; + } + + ulong new_size_class = fd_accdb_cache_class( accs[ i ].data_len ); + uint original_acc_idx = original_cache_line ? original_cache_line->acc_idx : UINT_MAX; + fd_accdb_cache_line_t * committed_line; + + /* For overwrites, invalidate the on-disk offset BEFORE removing + the cache acc. This ensures a concurrent acquire that misses + the cache will see offset==FD_ACCDB_OFF_INVAL and spin-wait, + rather than reading stale on-disk bytes from the old location. + The CAS-loop exchange also serializes with a concurrent + compaction CAS (old_offset -> dest_offset). */ + ulong old_offset = FD_ACCDB_OFF_INVAL; + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + fd_accdb_accmeta_t * ow_accmeta = &accdb->acc_pool[ original_acc_idx ]; + fd_racesan_hook( "accdb_overwrite:pre_xchg_offset" ); + old_offset = fd_accdb_acc_xchg_offset( ow_accmeta, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_offset!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_offset, (ulong)FD_ACCDB_SIZE_DATA(ow_accmeta->executable_size)+sizeof(fd_accdb_disk_meta_t) ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, (ulong)FD_ACCDB_SIZE_DATA(ow_accmeta->executable_size)+sizeof(fd_accdb_disk_meta_t) ); + } + } + + if( FD_UNLIKELY( new_size_class==7UL ) ) { + /* The account belongs in the largest size class, and we already + have it resident in a 10MiB buffer anyway, so no need to copy + back. If we are "overwriting" (same generation as the account + came from), then the original can be discarded (pushed to + the CAS free list) and removed from the cache. */ + destination_cache_lines[ 7UL ]->persisted = 0; + destination_committed[ 7UL ] = 1; + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + /* Atomically clear acc.VALID and acc.cache_idx BEFORE freeing + the line, so a reader cannot observe acc.VALID=1 with + acc.cache_idx pointing at a line that has been recycled to + another acc. evict_clear_acc_cache_ref uses the CLAIM + protocol to serialize with cold_load_acc. */ + evict_clear_acc_cache_ref( &accdb->acc_pool[ original_acc_idx ], original_size_class, accs[ i ]._original_cache_idx ); + + /* Drop our pin, then try to claim the line exclusively for + freeing. A concurrent reader that pinned the line via + cache_try_pin BEFORE evict_clear_acc_cache_ref completed + may still hold a reference here (its ABA check on + line->key.generation is not synchronized with our writes + to that field). CAS(refcnt, 0, EVICT_SENTINEL) succeeds + only when no such reader is outstanding; on failure we + must NOT free the line — leave acc_idx/key.generation + intact so CLOCK can reclaim it once the reader unpins. + At that point CLOCK's call to evict_clear_acc_cache_ref + is a no-op (acc.cache_idx no longer matches expected_cidx) + and the line is safely repurposed. */ + FD_ATOMIC_FETCH_AND_SUB( &original_cache_line->refcnt, 1U ); + if( FD_LIKELY( FD_ATOMIC_CAS( &original_cache_line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )==0U ) ) { + original_cache_line->persisted = 1; + original_cache_line->acc_idx = UINT_MAX; + original_cache_line->key.generation = UINT_MAX; + original_cache_line->refcnt = 0; + cache_free_push( accdb, original_size_class, original_cache_line ); + } + } + committed_line = destination_cache_lines[ 7UL ]; + } else { + /* The account started in some arbitrary size class, transited + through a 10MiB staging buffer, and is now being written back + to some arbitrary (non-10MiB) size class, so we need to copy it + there. The staging buffer is discarded. If we are going to + a different size class, and we are "overwriting" (same + generation), then the original can also be discarded, but if + we are staying in the same size class, we can reuse the cache + line in place. */ + fd_accdb_cache_line_t * target_cache_line; + if( FD_LIKELY( original_size_class==new_size_class ) ) { + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + FD_TEST( FD_VOLATILE_CONST( original_cache_line->refcnt )==1U ); + original_cache_line->key.generation = UINT_MAX; + /* Keep refcnt>=1 through the reuse window so CLOCK cannot + steal the line between invalidation and re-publish. The + pin is released in the destination cleanup loop after + acc->cache_idx has been republished. */ + original_cache_line->acc_idx = UINT_MAX; + target_cache_line = original_cache_line; + } else { + target_cache_line = destination_cache_lines[ new_size_class ]; + destination_committed[ new_size_class ] = 1; + } + } else { + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + /* Atomically clear acc.VALID and acc.cache_idx BEFORE freeing + the line, so a reader cannot observe acc.VALID=1 with + acc.cache_idx pointing at a line that has been recycled to + another acc. evict_clear_acc_cache_ref uses the CLAIM + protocol to serialize with cold_load_acc. See the + size_class==7 path above for the refcnt CAS rationale. */ + evict_clear_acc_cache_ref( &accdb->acc_pool[ original_acc_idx ], original_size_class, accs[ i ]._original_cache_idx ); + FD_ATOMIC_FETCH_AND_SUB( &original_cache_line->refcnt, 1U ); + if( FD_LIKELY( FD_ATOMIC_CAS( &original_cache_line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )==0U ) ) { + original_cache_line->persisted = 1; + original_cache_line->acc_idx = UINT_MAX; + original_cache_line->key.generation = UINT_MAX; + original_cache_line->refcnt = 0; + cache_free_push( accdb, original_size_class, original_cache_line ); + } + } + + destination_committed[ new_size_class ] = 1; + target_cache_line = destination_cache_lines[ new_size_class ]; + } + + target_cache_line->persisted = 0; + /* If target is the original cache line (overwrite, same size + class), mark as referenced directly since the cleanup loop + only handles destination lines. */ + if( FD_LIKELY( !destination_committed[ new_size_class ] ) ) target_cache_line->referenced = 1; + committed_line = target_cache_line; + } + + /* For non-overwrite commits, the original cache line (if any) still + holds valid ancestor data but is no longer pinned. Mark it as + recently used so the CLOCK algorithm retains it. */ + if( FD_UNLIKELY( !accs[ i ]._overwrite && original_cache_line ) ) { + original_cache_line->referenced = 1; + } + + /* Handle every destination cache line: committed ones keep + refcnt>=1 until acc->cache_idx is published (the deferred + unpin happens after the publish below), uncommitted ones are + fully freed to the CAS free list. */ + for( ulong j=0UL; jreferenced = 1; + } else { + /* See note above (no-commit path): clear stale acc_idx/gen + before pushing, otherwise CLOCK can pick this line and + stomp the prior owner's cache_idx/valid. */ + destination_cache_lines[ j ]->acc_idx = UINT_MAX; + destination_cache_lines[ j ]->key.generation = UINT_MAX; + destination_cache_lines[ j ]->refcnt = 0; + destination_cache_lines[ j ]->persisted = 1; + cache_free_push( accdb, j, destination_cache_lines[ j ] ); + } + } + + /* Update the accounts index for this committed write. For an + overwrite (same fork+generation), update the existing acc + acc in place. Otherwise allocate a new acc, prepend it + to the hash chain, and record the write in a txn linked to + the fork so advance_root can clean up old versions. */ + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + accdb->metrics->accounts_committed_overwrite_per_class[ new_size_class ]++; + committed_line->acc_idx = original_acc_idx; + + fd_accdb_accmeta_t * accmeta = &accdb->acc_pool[ original_acc_idx ]; + /* The offset was already atomically swapped to FD_ACCDB_OFF_INVAL + and bytes freed above, so just update the metadata and + re-publish the cache location. CAS-loop preserves CLAIM bit + (a concurrent evict_clear_acc_cache_ref or acc_unlink may + hold it) and clears VALID; a plain store would clobber CLAIM + and break those protocols. */ + for(;;) { + uint cur = FD_VOLATILE_CONST( accmeta->executable_size ); + uint nxt = (cur & FD_ACCDB_SIZE_CACHE_CLAIM_BIT) | FD_ACCDB_SIZE_PACK( (uint)accs[ i ].data_len, accs[ i ].executable ); + if( FD_LIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, cur, nxt )==cur ) ) break; + FD_SPIN_PAUSE(); + } + accmeta->lamports = accs[ i ].lamports; + fd_racesan_hook( "accdb_overwrite:mid_inplace" ); + + fd_memcpy( committed_line->owner, accs[ i ].owner, 32UL ); + fd_memcpy( committed_line->key.pubkey, accmeta->key.pubkey, 32UL ); + committed_line->key.generation = accmeta->key.generation; + committed_line->acc_idx = original_acc_idx; + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_PACK( (uint)new_size_class, (uint)cache_line_idx( accdb, new_size_class, committed_line ) ); + /* Atomic OR so a concurrent evict_clear_acc_cache_ref's CLAIM + clear (FETCH_AND_AND with ~CLAIM) cannot be lost by an RMW + race with a plain |= store. */ + FD_ATOMIC_FETCH_AND_OR( &accmeta->executable_size, FD_ACCDB_SIZE_CACHE_VALID_BIT ); + + /* Now that acc->cache_idx is published, unpin so CLOCK can + eventually evict it. For same-size overwrites, committed_line + IS the reused original_cache_line. For cross-size overwrites, + committed_line is a destination line whose refcnt decrement was + deferred from the cleanup loop. */ + FD_ATOMIC_FETCH_AND_SUB( &committed_line->refcnt, 1U ); + committed_line->referenced = 1; + } else { + accdb->metrics->accounts_committed_new_per_class[ new_size_class ]++; + fd_accdb_accmeta_t * accmeta = acc_pool_acquire( accdb->acc_pool_join ); + FD_TEST( accmeta ); + ulong acc_idx = acc_pool_idx( accdb->acc_pool_join, accmeta ); + fd_memcpy( accmeta->key.pubkey, accs[ i ].pubkey, 32UL ); + accmeta->lamports = accs[ i ].lamports; + accmeta->executable_size = FD_ACCDB_SIZE_PACK( (uint)accs[ i ].data_len, accs[ i ].executable ); + accmeta->key.generation = accs[ i ]._generation; + accmeta->offset_fork = fd_accdb_acc_pack_offset_fork( FD_ACCDB_OFF_INVAL, accs[ i ]._fork_id ); + + /* Publish in the cache BEFORE the acc_map head so that a + concurrent acquire that finds this acc in the hash chain will + also find a cache hit, rather than inserting a conflicting + placeholder cache acc. */ + committed_line->acc_idx = (uint)acc_idx; + fd_memcpy( committed_line->owner, accs[ i ].owner, 32UL ); + fd_memcpy( committed_line->key.pubkey, accmeta->key.pubkey, 32UL ); + committed_line->key.generation = accmeta->key.generation; + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_PACK( (uint)new_size_class, (uint)cache_line_idx( accdb, new_size_class, committed_line ) ); + /* Atomic OR so a concurrent evict_clear_acc_cache_ref's CLAIM + clear (FETCH_AND_AND with ~CLAIM) cannot be lost by an RMW + race with a plain |= store. */ + FD_ATOMIC_FETCH_AND_OR( &accmeta->executable_size, FD_ACCDB_SIZE_CACHE_VALID_BIT ); + + /* Now that acc->cache_idx is published, unpin it so + CLOCK can eventually evict it. */ + FD_ATOMIC_FETCH_AND_SUB( &committed_line->refcnt, 1U ); + committed_line->referenced = 1; + + /* CAS loop to prepend to the hash chain. Succeeds on the first + try in most cases, but a concurrent acc_unlink CAS removing + the old head can change acc_map[idx] between our load and + CAS. Multiple concurrent releases may also race on the head + pointer — the CAS retry handles this. */ + for(;;) { + uint old_head = FD_VOLATILE_CONST( accdb->acc_map[ accs[ i ]._acc_map_idx ] ); + accmeta->map.next = old_head; + FD_COMPILER_MFENCE(); + fd_racesan_hook( "accdb_release:pre_chain_cas" ); + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->acc_map[ accs[ i ]._acc_map_idx ], old_head, (uint)acc_idx )==old_head ) ) break; + FD_SPIN_PAUSE(); + } + + /* CONCURRENCY: The cache acc is published before the acc_map + head so that a concurrent fd_accdb_acquire reader that + observes the new head also finds a cache hit, preventing + duplicate cache insertion. + + (1) The CAS on acc_map[idx] serializes head-pointer mutations + from concurrent releases onto the same chain without any + external lock. + + (2) The FD_COMPILER_MFENCE above ensures stores to the acc node + fields (pubkey, lamports, size, generation, fork_id, + offset, map.next) are ordered before the CAS that publishes + the new head. On x86-64 (TSO), hardware also guarantees + this, but the compiler fence is needed to prevent the + compiler from reordering the stores. A reader that + observes the new head is guaranteed to see a fully + initialized node. A reader that has not yet seen the new + head simply traverses the previous (still valid) chain. + + (3) A concurrent acc_unlink (advance_root / purge) may CAS the + head away between our load and CAS here. The CAS retry + loop handles this. */ + + fd_accdb_txn_t * txn = txn_pool_acquire( accdb->txn_pool ); + FD_TEST( txn ); /* Sized so it always succeeds */ + txn->acc_map_idx = (uint)accs[ i ]._acc_map_idx; + txn->acc_pool_idx = (uint)acc_idx; + uint txn_idx = (uint)txn_pool_idx( accdb->txn_pool, txn ); + for(;;) { + uint old_head = FD_VOLATILE_CONST( accdb->fork_pool[ accs[ i ]._fork_id ].shmem->txn_head ); + txn->fork.next = old_head; + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->fork_pool[ accs[ i ]._fork_id ].shmem->txn_head, old_head, txn_idx )==old_head ) ) break; + FD_SPIN_PAUSE(); + } + + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->accounts_total, 1UL ); + } + } + + // STEP 3. + // Finally, we release the cache class reservations we took at the + // beginning when we acquired these cache lines. Credits return + // directly to the shared pool so other threads can use them + // immediately. + + ulong refund[ FD_ACCDB_CACHE_CLASS_CNT ] = {0}; + for( ulong i=0UL; ishmem->cache_class_used[ accs[ i ]._original_size_class ].val!=ULONG_MAX ) ) { + refund[ accs[ i ]._original_size_class ]++; + } + } + if( FD_UNLIKELY( accs[ i ]._writable ) ) { + for( ulong j=0UL; jshmem->cache_class_used[ j ].val!=ULONG_MAX ) ) { + refund[ j ]++; + } + } + } + } + for( ulong k=0UL; kshmem->cache_class_used[ k ].val, refund[ k ] ); + } + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; +} + +void +fd_accdb_release( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_OPEN ); + release_inner( accdb, accs_cnt, accs ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_IDLE; +} + +void +fd_accdb_release_ab( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs, + ulong execs_cnt, + fd_acc_t * execs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_OPEN ); + release_inner( accdb, accs_cnt, accs ); + if( FD_LIKELY( execs_cnt ) ) release_inner( accdb, execs_cnt, execs ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_IDLE; +} + +fd_acc_t +fd_accdb_read_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + fd_acc_t acc; + fd_accdb_acquire( accdb, fork_id, 1UL, &pubkey, (int[]){0}, &acc ); + return acc; +} + +void +fd_accdb_unread_one( fd_accdb_t * accdb, + fd_acc_t * acc ) { + fd_accdb_release( accdb, 1UL, acc ); +} + +fd_acc_t +fd_accdb_write_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + fd_acc_t acc; + fd_accdb_acquire( accdb, fork_id, 1UL, &pubkey, (int[]){1}, &acc ); + return acc; +} + +void +fd_accdb_unwrite_one( fd_accdb_t * accdb, + fd_acc_t * acc ) { + fd_accdb_release( accdb, 1UL, acc ); +} + +void +fd_accdb_read_one_nocache( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong * out_lamports, + int * out_executable, + uchar * out_owner, + uchar * out_data, + ulong * out_data_len ) { + /* Publish epoch — protects against compaction freeing the partition + under us during the preadv2 path. This is the only write the + readonly joiner makes into accdb shmem (and the pointer it stores + through is mapped through a separately-mmap'd writable page that + aliases shmem->joiner_epochs[idx]). */ + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); + + /// STEP 1. + /// Walk the hash chain at acc_map[hash(pubkey)] using the same + // visibility test as fd_accdb_acquire_inner. See that function + // for the detailed safety argument under concurrent prepend. + uint root_generation = accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + ulong hash = fd_accdb_hash( pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL); + uint acc_idx = FD_VOLATILE_CONST( accdb->acc_map[ hash ] ); + fd_accdb_accmeta_t const * accmeta = NULL; + while( acc_idx!=UINT_MAX ) { + fd_accdb_accmeta_t const * candidate = &accdb->acc_pool[ acc_idx ]; + uint next_idx = FD_VOLATILE_CONST( candidate->map.next ); + if( FD_UNLIKELY( (candidate->key.generation>root_generation && + fd_accdb_acc_fork_id(candidate)!=fork_id.val && + !descends_set_test( fork->descends, fd_accdb_acc_fork_id(candidate) )) ) || + memcmp( pubkey, candidate->key.pubkey, 32UL ) ) { + acc_idx = next_idx; + continue; + } + accmeta = candidate; + break; + } + + if( FD_UNLIKELY( !accmeta ) ) { + accdb->metrics->accounts_acquired_per_class[ 0 ]++; + *out_lamports = 0UL; + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + + /// STEP 2. + /// Snapshot acc fields. The acc element's metadata is effectively + /// immutable from the perspective of cross-fork readers (see the + /// comment block in fd_accdb.h about cross-fork reads). */ + uint snap_es = FD_VOLATILE_CONST( accmeta->executable_size ); + uint snap_gen = accmeta->key.generation; + ulong snap_lamports = accmeta->lamports; + uint snap_cidx = FD_VOLATILE_CONST( accmeta->cache_idx ); + ulong data_len = (ulong)FD_ACCDB_SIZE_DATA( snap_es ); + int executable = FD_ACCDB_SIZE_EXEC( snap_es ); + + accdb->metrics->accounts_acquired_per_class[ fd_accdb_cache_class( data_len ) ]++; + + if( FD_UNLIKELY( !snap_lamports ) ) { + *out_lamports = 0UL; + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + + /// STEP 3. + /// Cache hit fast path with try-read-test (ABA) loop. Same + /// primitives as cache_try_pin: re-check key.generation + pubkey + /// before and after the bulk copy, and bail to the disk path if the + /// line was claimed for eviction (refcnt == + /// FD_ACCDB_EVICT_SENTINEL). No CAS on refcnt, we never pin the + /// line. + if( FD_LIKELY( FD_ACCDB_SIZE_CACHE_VALID( snap_es ) && snap_cidx!=FD_ACCDB_ACC_CIDX_INVAL ) ) { + ulong cls = FD_ACCDB_ACC_CIDX_CLASS( snap_cidx ); + ulong idx = FD_ACCDB_ACC_CIDX_IDX ( snap_cidx ); + fd_accdb_cache_line_t * line = cache_line( accdb, cls, idx ); + + for(;;) { + uint gen0 = FD_VOLATILE_CONST( line->key.generation ); + uint rc0 = FD_VOLATILE_CONST( line->refcnt ); + uint ai0 = FD_VOLATILE_CONST( line->acc_idx ); + if( FD_UNLIKELY( rc0==FD_ACCDB_EVICT_SENTINEL ) ) goto miss; + if( FD_UNLIKELY( gen0!=snap_gen ) ) goto miss; + if( FD_UNLIKELY( memcmp( line->key.pubkey, pubkey, 32UL ) ) ) goto miss; + /* acc_idx==UINT_MAX is the "loading" sentinel set by cold_load_acc + before the preadv2 fills the line. CACHE_VALID can be observed + set while the bytes are still stale, so fall to the disk path + (which spins on offset_fork and reads from the file) rather + than copying garbage. */ + if( FD_UNLIKELY( ai0==UINT_MAX ) ) goto miss; + + FD_COMPILER_MFENCE(); + memcpy( out_owner, line->owner, 32UL ); + memcpy( out_data, (uchar const *)(line+1UL), data_len ); + FD_COMPILER_MFENCE(); + + uint gen1 = FD_VOLATILE_CONST( line->key.generation ); + uint rc1 = FD_VOLATILE_CONST( line->refcnt ); + uint ai1 = FD_VOLATILE_CONST( line->acc_idx ); + if( FD_UNLIKELY( rc1==FD_ACCDB_EVICT_SENTINEL ) ) goto miss; + if( FD_UNLIKELY( gen1!=snap_gen ) ) goto miss; + if( FD_UNLIKELY( memcmp( line->key.pubkey, pubkey, 32UL ) ) ) goto miss; + if( FD_UNLIKELY( ai1==UINT_MAX ) ) goto miss; + + *out_lamports = snap_lamports; + *out_executable = executable; + *out_data_len = data_len; + accdb->metrics->bytes_copied += data_len; + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + } + +miss:; + accdb->metrics->accounts_not_found_per_class[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( snap_es ) ) ]++; + + /// STEP 4. + /// Disk path. Spin until the writer publishes a real offset + /// (matches STEP 10 of fd_accdb_acquire_inner). Compaction may + /// concurrently relocate the record, but our published epoch + /// prevents the source partition from being freed until we exit + /// our critical section, so the bytes at the snapshotted offset + /// remain stable for the duration of the read. + fd_racesan_hook( "accdb_nocache:pre_offset" ); + ulong off_packed = FD_VOLATILE_CONST( accmeta->offset_fork ); + if( FD_UNLIKELY( (off_packed & FD_ACCDB_OFF_MASK)==FD_ACCDB_OFF_INVAL ) ) { + accdb->metrics->accounts_waited++; + while( FD_UNLIKELY( ((off_packed=FD_VOLATILE_CONST( accmeta->offset_fork )) & FD_ACCDB_OFF_MASK)==FD_ACCDB_OFF_INVAL ) ) FD_SPIN_PAUSE(); + } + ulong off = off_packed & FD_ACCDB_OFF_MASK; + fd_racesan_hook( "accdb_nocache:pre_preadv2" ); + + struct iovec iovs[ 2 ] = { + { .iov_base = out_owner, .iov_len = 32UL }, + { .iov_base = out_data, .iov_len = data_len }, + }; + ulong total = 32UL+data_len; + ulong start = off+offsetof( fd_accdb_disk_meta_t, owner ); + ulong got = 0UL; + int nio = data_len ? 2 : 1; + while( FD_LIKELY( gotfd, iovs, nio, (long)(start+got), 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "preadv2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, data expected at offset %lu with size %lu exceeded file extents", start+got, total )); + fd_accdb_partition_read_bump( accdb, start+got, (ulong)result ); + got += (ulong)result; + accdb->metrics->bytes_read += (ulong)result; + accdb->metrics->read_ops++; + + long r = result; + for( int v=0; v=iovs[ v ].iov_len ) { + r -= (long)iovs[ v ].iov_len; + iovs[ v ].iov_len = 0UL; + } else { + iovs[ v ].iov_base = (uchar *)iovs[ v ].iov_base + r; + iovs[ v ].iov_len -= (ulong)r; + break; + } + } + } + + *out_lamports = snap_lamports; + *out_executable = executable; + *out_data_len = data_len; + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; +} + +int +fd_accdb_exists( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); + + uint root_generation = accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + ulong hash = fd_accdb_hash( pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL); + uint acc = FD_VOLATILE_CONST( accdb->acc_map[ hash ] ); + while( acc!=UINT_MAX ) { + fd_accdb_accmeta_t const * candidate_acc = &accdb->acc_pool[ acc ]; + uint next_acc = FD_VOLATILE_CONST( candidate_acc->map.next ); + + if( FD_UNLIKELY( (candidate_acc->key.generation>root_generation && fd_accdb_acc_fork_id(candidate_acc)!=fork_id.val && !descends_set_test( fork->descends, fd_accdb_acc_fork_id(candidate_acc) )) ) || memcmp( pubkey, candidate_acc->key.pubkey, 32UL ) ) { + acc = next_acc; + continue; + } + + break; + } + + int result; + if( FD_UNLIKELY( acc==UINT_MAX ) ) result = 0; + else result = !!FD_VOLATILE_CONST( accdb->acc_pool[ acc ].lamports ); + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return result; +} + +ulong +fd_accdb_lamports( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); + + uint root_generation = accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + ulong hash = fd_accdb_hash( pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL); + uint acc = FD_VOLATILE_CONST( accdb->acc_map[ hash ] ); + while( acc!=UINT_MAX ) { + fd_accdb_accmeta_t const * candidate_acc = &accdb->acc_pool[ acc ]; + uint next_acc = FD_VOLATILE_CONST( candidate_acc->map.next ); + + if( FD_UNLIKELY( (candidate_acc->key.generation>root_generation && fd_accdb_acc_fork_id(candidate_acc)!=fork_id.val && !descends_set_test( fork->descends, fd_accdb_acc_fork_id(candidate_acc) )) ) || memcmp( pubkey, candidate_acc->key.pubkey, 32UL ) ) { + acc = next_acc; + continue; + } + + break; + } + + ulong result; + if( FD_UNLIKELY( acc==UINT_MAX ) ) result = 0UL; + else result = FD_VOLATILE_CONST( accdb->acc_pool[ acc ].lamports ); + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return result; +} + +/* cache_bg_evict pre-evicts cache lines in the background to keep the + per-class CAS free lists populated ahead of demand. For each class + whose immediately available capacity has dropped below low_water, + a bounded CLOCK sweep claims lines, writes dirty ones to disk, and + pushes them onto the free list until available capacity reaches + target. Immediately available capacity includes both the CAS free + list and the never-initialized tail of the class, since foreground + allocators can consume either path without evicting resident data. + + Budget: at most 256 CLOCK ticks per class per invocation to keep the + background loop responsive. The function is called every tick of + fd_accdb_background, so large refills happen across several ticks + rather than blocking. The low_water / target thresholds are static + per-class watermarks computed at initialization; pre-eviction only + converts resident lines into free-list entries and does not consume + cache-slot reservations. + + force: when non-zero, ignore the watermark and sweep every line in + every class. Always 0 in normal operation; used only by + test_accdb_racesan to deterministically exercise the writeback path + without manufacturing real cache pressure. */ + +static void +background_preevict( fd_accdb_t * accdb, + int * charge_busy, + int force ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + + for( ulong c=0UL; ccache_free_target[ c ]; + ulong max_c = shmem->cache_class_max[ c ]; + ulong init = fd_ulong_min( FD_VOLATILE_CONST( shmem->cache_class_init[ c ].val ), max_c ); + ulong freec = FD_VOLATILE_CONST( shmem->cache_free_cnt[ c ].val ); + ulong live = init>freec ? init-freec : 0UL; + ulong avail = max_c-live; + if( FD_LIKELY( !force && avail>=shmem->cache_free_low_water[ c ] ) ) continue; + + *charge_busy = 1; + + ulong budget = force ? init : 256UL; + ulong evicted = 0UL; + if( FD_UNLIKELY( force ) ) target = max_c; /* sweep everything */ + + for( ulong tick=0UL; tickcache_class_init[ c ].val ), max_c ); + if( FD_UNLIKELY( !init ) ) break; + + ulong hand = FD_ATOMIC_FETCH_AND_ADD( &shmem->clock_hand[ c ].val, 1UL ) % init; + + fd_accdb_cache_line_t * line = cache_line( accdb, c, hand ); + + if( FD_UNLIKELY( line->key.generation==UINT_MAX && line->acc_idx==UINT_MAX ) ) continue; + + uint rc = FD_VOLATILE_CONST( line->refcnt ); + if( FD_UNLIKELY( rc ) ) continue; + + if( FD_UNLIKELY( line->referenced ) ) { + line->referenced = 0; + continue; + } + + if( FD_UNLIKELY( FD_ATOMIC_CAS( &line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )!=0U ) ) continue; + + uint acc_idx = line->acc_idx; +#if FD_TMPL_USE_HANDHOLDING + uint line_gen FD_FN_UNUSED = line->key.generation; +#endif + if( FD_LIKELY( acc_idx!=UINT_MAX ) ) { + evict_clear_acc_cache_ref( &accdb->acc_pool[ acc_idx ], c, hand ); + } + line->key.generation = UINT_MAX; + if( FD_UNLIKELY( !line->persisted && acc_idx!=UINT_MAX ) ) { + fd_accdb_accmeta_t * accmeta = &accdb->acc_pool[ acc_idx ]; + fd_racesan_hook( "preevict:pre_synth" ); +#if FD_TMPL_USE_HANDHOLDING + FD_TEST( line_gen==accmeta->key.generation && + !memcmp( line->key.pubkey, accmeta->key.pubkey, 32UL ) ); +#endif + ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+(ulong)FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + + /* Atomically swap the old offset to FD_ACCDB_OFF_INVAL so that + a concurrent compaction CAS (old_offset -> dest_offset) + cannot succeed between our read and our later store of + the new file_off. Without the exchange, compaction could + relocate the record, then our plain store would overwrite + the relocated offset, leaving the compaction destination + as unreachable dead space whose bytes are never freed. */ + ulong old_offset = fd_accdb_acc_xchg_offset( accmeta, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_offset!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( shmem, old_offset, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &shmem->shmetrics->disk_used_bytes, entry_sz ); + } + + fd_accdb_disk_meta_t meta; + fd_memcpy( meta.pubkey, accmeta->key.pubkey, 32UL ); + meta.size = FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + fd_memcpy( meta.owner, line->owner, 32UL ); + + struct iovec iovs[ 2UL ] = { + { .iov_base = &meta, .iov_len = sizeof(fd_accdb_disk_meta_t) }, + { .iov_base = (void *)(line+1UL), .iov_len = FD_ACCDB_SIZE_DATA( accmeta->executable_size ) } + }; + + ulong file_off = allocate_next_write( accdb, entry_sz ); + ulong written = 0UL; + while( writtenfd, iovs, 2, (long)(file_off+written), 0 ); + if( FD_UNLIKELY( result==-1 && errno==EINTR ) ) continue; + else if( FD_UNLIKELY( result<=0 ) ) FD_LOG_ERR(( "pwritev2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + written += (ulong)result; + accdb->metrics->bytes_written += (ulong)result; + accdb->metrics->write_ops++; + + for( int v=0; v<2; v++ ) { + if( (ulong)result>=iovs[ v ].iov_len ) { + result -= (long)iovs[ v ].iov_len; + iovs[ v ].iov_len = 0UL; + } else { + iovs[ v ].iov_base = (uchar *)iovs[ v ].iov_base + result; + iovs[ v ].iov_len -= (ulong)result; + break; + } + } + } + + FD_COMPILER_MFENCE(); + accmeta->offset_fork = fd_accdb_acc_pack_offset_fork( file_off, fd_accdb_acc_fork_id(accmeta) ); + FD_ATOMIC_FETCH_AND_ADD( &shmem->shmetrics->disk_used_bytes, entry_sz ); + + accdb->metrics->accounts_preevicted++; + accdb->metrics->accounts_preevicted_per_class[ c ]++; + } + + line->persisted = 1; + line->acc_idx = UINT_MAX; + line->key.generation = UINT_MAX; + line->refcnt = 0; + cache_free_push( accdb, c, line ); + evicted++; + } + } +} + +int +fd_accdb_snapshot_write_one( fd_accdb_t * accdb, + uchar const * pubkey, + ulong slot, + ulong lamports, + ulong data_len, + int executable, + ulong * out_replaced_lamports ) { + /* Snapshot slots are stored in the 32-bit cache_idx scratch field + during loading. Reject anything that would truncate. */ + if( FD_UNLIKELY( slot>UINT_MAX ) ) FD_LOG_ERR(( "snapshot slot %lu exceeds 2^32-1, accdb format must be widened", slot )); + + ulong hash = fd_accdb_hash( pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL); + + *out_replaced_lamports = 0UL; + + fd_accdb_accmeta_t * accmeta = NULL; + + ulong next_acc = accdb->acc_map[ hash ]; + while( next_acc!=UINT_MAX ) { + fd_accdb_accmeta_t * candidate_acc = &accdb->acc_pool[ next_acc ]; + if( FD_UNLIKELY( !memcmp( pubkey, candidate_acc->key.pubkey, 32UL ) ) ) { + if( FD_LIKELY( (ulong)candidate_acc->cache_idx>slot ) ) { + /* Still advance the write head so snapwr and snapin stay in + sync — snapwr unconditionally writes every account to disk. + Mark the space as immediately freed since it is dead on + arrival. */ + ulong dead_sz = sizeof(fd_accdb_disk_meta_t)+data_len; + ulong dead_off = allocate_next_write( accdb, dead_sz ); + fd_accdb_shmem_bytes_freed( accdb->shmem, dead_off, dead_sz ); + return -1; + } else { + accmeta = candidate_acc; + break; + } + } + next_acc = candidate_acc->map.next; + } + + int replace = !!accmeta; + + if( FD_UNLIKELY( !accmeta ) ) { + accmeta = acc_pool_acquire( accdb->acc_pool_join ); + if( FD_UNLIKELY( !accmeta ) ) FD_LOG_ERR(( "accounts database ran out of space during snapshot loading, increase [accounts.max_accounts], current value is %lu", acc_pool_ele_max( accdb->acc_pool_join ) )); + + fd_memcpy( accmeta->key.pubkey, pubkey, 32UL ); + accmeta->key.generation = accdb->shmem->generation; + accmeta->map.next = accdb->acc_map[ hash ]; + accdb->acc_map[ hash ] = (uint)acc_pool_idx( accdb->acc_pool_join, accmeta ); + } + + if( FD_UNLIKELY( replace ) ) { + /* The old version's disk space is now dead. */ + ulong old_sz = sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + fd_accdb_shmem_bytes_freed( accdb->shmem, fd_accdb_acc_offset( accmeta ), old_sz ); + accdb->shmem->shmetrics->disk_used_bytes -= old_sz; + *out_replaced_lamports = accmeta->lamports; + } + + accmeta->cache_idx = (uint)slot; + accmeta->lamports = lamports; + accmeta->executable_size = FD_ACCDB_SIZE_PACK( (uint)data_len, executable ); + ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+data_len; + accmeta->offset_fork = allocate_next_write( accdb, entry_sz ); + accdb->shmem->shmetrics->disk_used_bytes += entry_sz; + if( !replace ) accdb->shmem->shmetrics->accounts_total++; + + return replace ? 2 : 1; +} + +int +fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, + ulong cnt, + uchar const * const pubkeys[], + ulong const slots[], + ulong const lamports[], + ulong const data_lens[], + int const executables[], + ulong * accounts_ignored, + ulong * accounts_replaced, + ulong * accounts_loaded, + ulong * out_replaced_lamports, + ulong * out_ignored_lamports ) { + ulong seed = accdb->shmem->seed; + ulong chain_msk = accdb->shmem->chain_cnt - 1UL; + uint gen = accdb->shmem->generation; + + ulong ignored = 0UL; + ulong replaced = 0UL; + ulong loaded = 0UL; + ulong replaced_lamports = 0UL; + ulong ignored_lamports = 0UL; + + /* Snapshot slots are stored in the 32-bit cache_idx scratch field + during loading. Reject anything that would truncate. */ + for( ulong i=0UL; iUINT_MAX ) ) FD_LOG_ERR(( "snapshot slot %lu exceeds 2^32-1, accdb format must be widened", slots[ i ] )); + } + + /* Phase 1: compute hashes and prefetch chain heads. */ + + ulong hashes[ 8 ]; + fd_accdb_accmeta_t * existing[ 8 ]; + int skip[ 8 ]; + + for( ulong i=0UL; iacc_map[ hashes[ i ] ], 1, 1 ); + } + + /* Phase 2: walk chains looking for duplicates. By now the chain + heads prefetched above should be warm in L1/L2. If the existing + entry has a higher slot, mark skip. Otherwise, save the existing + entry pointer for in-place update (matching write_one semantics). */ + + for( ulong i=0UL; iacc_map[ hashes[ i ] ]; + + if( FD_LIKELY( next_acc!=UINT_MAX ) ) { + __builtin_prefetch( &accdb->acc_pool[ next_acc ], 0, 1 ); + } + + while( next_acc!=UINT_MAX ) { + fd_accdb_accmeta_t * candidate = &accdb->acc_pool[ next_acc ]; + + if( FD_LIKELY( candidate->map.next!=UINT_MAX ) ) { + __builtin_prefetch( &accdb->acc_pool[ candidate->map.next ], 0, 1 ); + } + + if( FD_UNLIKELY( !memcmp( pubkeys[ i ], candidate->key.pubkey, 32UL ) ) ) { + if( FD_LIKELY( (ulong)candidate->cache_idx>slots[ i ] ) ) { + skip[ i ] = 1; + } else { + existing[ i ] = candidate; + } + break; + } + next_acc = candidate->map.next; + } + } + + /* Phase 2b: reject intra-batch duplicate pubkeys. Snapin always + populates a batch from a single AppendVec, so every slot in the + batch is identical and a duplicate pubkey means the same account + appears twice at the same slot — i.e. a corrupt snapshot per the + Agave spec. We have no principled way to pick a winner; return + -1 so the caller can flag the snapshot malformed. Batches are + bounded (<=8) so the O(n^2) scan is trivial. */ + + for( ulong i=1UL; ishmem, dead_off, dead_sz ); + ignored_lamports += lamports[ i ]; + ignored++; + continue; + } + + fd_accdb_accmeta_t * accmeta; + + if( FD_UNLIKELY( existing[ i ] ) ) { + accmeta = existing[ i ]; + /* The old version's disk space is now dead. */ + ulong old_sz = sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + fd_accdb_shmem_bytes_freed( accdb->shmem, fd_accdb_acc_offset( accmeta ), old_sz ); + accdb->shmem->shmetrics->disk_used_bytes -= old_sz; + replaced_lamports += accmeta->lamports; + replaced++; + } else { + accmeta = acc_pool_acquire( accdb->acc_pool_join ); + if( FD_UNLIKELY( !accmeta ) ) FD_LOG_ERR(( "accounts database ran out of space during snapshot loading" )); + fd_memcpy( accmeta->key.pubkey, pubkeys[ i ], 32UL ); + accmeta->key.generation = gen; + accmeta->map.next = accdb->acc_map[ hashes[ i ] ]; + accdb->acc_map[ hashes[ i ] ] = (uint)acc_pool_idx( accdb->acc_pool_join, accmeta ); + loaded++; + } + + accmeta->cache_idx = (uint)slots[ i ]; + accmeta->lamports = lamports[ i ]; + accmeta->executable_size = FD_ACCDB_SIZE_PACK( (uint)data_lens[ i ], executables[ i ] ); + ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+data_lens[ i ]; + accmeta->offset_fork = allocate_next_write( accdb, entry_sz ); + accdb->shmem->shmetrics->disk_used_bytes += entry_sz; + } + + accdb->shmem->shmetrics->accounts_total += loaded; + + *accounts_ignored = ignored; + *accounts_replaced = replaced; + *accounts_loaded = loaded; + *out_replaced_lamports = replaced_lamports; + *out_ignored_lamports = ignored_lamports; + + return 0; +} + +void +fd_accdb_background( fd_accdb_t * accdb, + int * charge_busy ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + uint op = FD_VOLATILE_CONST( shmem->cmd_op ); + if( FD_UNLIKELY( op!=FD_ACCDB_CMD_IDLE ) ) { + fd_accdb_fork_id_t fork_id = { .val = FD_VOLATILE_CONST( shmem->cmd_fork_id ) }; + + switch( op ) { + case FD_ACCDB_CMD_ADVANCE_ROOT: + background_advance_root( accdb, fork_id ); + break; + case FD_ACCDB_CMD_PURGE: + background_purge( accdb, fork_id ); + break; + default: + FD_LOG_ERR(( "unexpected accdb cmd_op %u", op )); + } + + FD_COMPILER_MFENCE(); + FD_VOLATILE( shmem->cmd_op ) = FD_ACCDB_CMD_IDLE; + *charge_busy = 1; + return; + } + + background_preevict( accdb, charge_busy, 0 ); + + for( ulong k=0UL; kshmem->shmetrics; +} + +fd_accdb_metrics_t const * +fd_accdb_metrics( fd_accdb_t * accdb ) { + return accdb->metrics; +} + +void +fd_accdb_cache_class_occupancy( fd_accdb_t * accdb, + ulong * used, + ulong * max, + ulong * reserved ) { + for( ulong c=0UL; cshmem->cache_class_max[ c ]; + ulong init = FD_VOLATILE_CONST( accdb->shmem->cache_class_init[ c ].val ); + ulong freec = FD_VOLATILE_CONST( accdb->shmem->cache_free_cnt [ c ].val ); + ulong live = init>freec ? init-freec : 0UL; + if( live>cap ) live = cap; + max [ c ] = cap; + used [ c ] = live; + reserved[ c ] = FD_VOLATILE_CONST( accdb->shmem->cache_class_used[ c ].val ); + } +} + +void +fd_accdb_cache_class_thresholds( fd_accdb_t * accdb, + ulong * target_used, + ulong * low_water_used ) { + for( ulong c=0UL; cshmem->cache_class_max [ c ]; + ulong free_tgt = accdb->shmem->cache_free_target [ c ]; + ulong free_lwm = accdb->shmem->cache_free_low_water[ c ]; + target_used [ c ] = max_c>free_tgt ? max_c-free_tgt : 0UL; + low_water_used[ c ] = max_c>free_lwm ? max_c-free_lwm : 0UL; + } +} + +#if FD_HAS_RACESAN + +/* Force pre-eviction (ignore the watermark) so a deterministic + single-threaded test can exercise the writeback path without + manufacturing real cache pressure. Sweeps several times: CLOCK needs + two visits to evict a recently-touched line (clear the "referenced" + bit, then evict), and the clock hand position carries across calls, so + one or two sweeps is not enough to guarantee every eligible line is + flushed back. */ +void +fd_accdb_debug_force_preevict( fd_accdb_t * accdb ) { + for( ulong iter=0UL; iter<8UL; iter++ ) { + int charge_busy = 0; + background_preevict( accdb, &charge_busy, 1 ); + } +} + +/* Locate the resident cache line currently holding `pubkey` (most recent + generation if multiple). Returns 1 and fills out_class/out_idx on a + hit, 0 if no resident line matches. Test-only helper so the test can + target a specific line without seeing the opaque fd_accdb struct. */ + +int +fd_accdb_debug_find_line( fd_accdb_t * accdb, + uchar const * pubkey, + ulong * out_class, + ulong * out_idx ) { + int found = 0; + uint best_gen = 0U; + for( ulong c=0UL; cshmem->cache_class_init[ c ].val ); + ulong max_c = accdb->shmem->cache_class_max[ c ]; + if( init>max_c ) init = max_c; + for( ulong idx=0UL; idxkey.generation==UINT_MAX ) continue; + if( memcmp( line->key.pubkey, pubkey, 32UL ) ) continue; + if( !found || line->key.generation>=best_gen ) { + best_gen = line->key.generation; + *out_class = c; + *out_idx = idx; + found = 1; + } + } + } + return found; +} + +/* Deterministically evict a single specified cache line via the + foreground evictor's claim sequence (CAS refcnt 0->EVICT_SENTINEL), + then write the dirty line back exactly as fd_accdb_acquire_inner's + STEP-4 / background_ preevict do (pubkey from accmeta, owner+data + from the line). Mirrors acquire_cache_line's CLOCK-claim path + (fd_accdb.c) so a racesan test can reproduce, without a 640+-slot + cache-pressure rig, the interleaving where acc_unlink observes + EVICT_SENTINEL on the line it is unlinking. + + The fd_racesan_hook("clock_evict:post_sentinel") fires right after + the sentinel is installed (matching the production foreground path), + so the test can suspend this fiber holding the sentinel while another + fiber drives acc_unlink to its reclaim CAS. Returns the captured + evicted acc_idx (UINT_MAX if the line was clean / unbound). */ + +uint +fd_accdb_debug_clock_evict_line( fd_accdb_t * accdb, + ulong size_class, + ulong line_idx ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + fd_accdb_cache_line_t * line = cache_line( accdb, size_class, line_idx ); + + /* Claim for eviction, same as acquire_cache_line's CLOCK path. */ + if( FD_UNLIKELY( FD_ATOMIC_CAS( &line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )!=0U ) ) return UINT_MAX; + + fd_racesan_hook( "clock_evict:post_sentinel" ); + + uint acc_idx = line->acc_idx; + if( FD_LIKELY( acc_idx!=UINT_MAX ) ) { + evict_clear_acc_cache_ref( &accdb->acc_pool[ acc_idx ], size_class, line_idx ); + } + uint evicted_acc_idx = line->persisted ? UINT_MAX : acc_idx; + line->key.generation = UINT_MAX; + + /* Write back the dirty line, exactly like the production writeback + sites: this is the synthesis that would emit a pubkey=NEW/owner=OLD + poison record if the accmeta slot had been recycled out from under + us. In the SENTINEL-vs-acc_unlink race this proves no poison: the + epoch the evictor holds blocks drain_deferred_frees, so the slot is + never recycled while we are here. */ + if( FD_UNLIKELY( !line->persisted && acc_idx!=UINT_MAX ) ) { + fd_accdb_accmeta_t * accmeta = &accdb->acc_pool[ acc_idx ]; + ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+(ulong)FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + + ulong old_offset = fd_accdb_acc_xchg_offset( accmeta, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_offset!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( shmem, old_offset, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &shmem->shmetrics->disk_used_bytes, entry_sz ); + } + + fd_accdb_disk_meta_t meta; + fd_memcpy( meta.pubkey, accmeta->key.pubkey, 32UL ); + meta.size = FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + fd_memcpy( meta.owner, line->owner, 32UL ); + + struct iovec iovs[ 2UL ] = { + { .iov_base = &meta, .iov_len = sizeof(fd_accdb_disk_meta_t) }, + { .iov_base = (void *)(line+1UL), .iov_len = FD_ACCDB_SIZE_DATA( accmeta->executable_size ) } + }; + ulong file_off = allocate_next_write( accdb, entry_sz ); + ulong written = 0UL; + while( writtenfd, iovs, 2, (long)(file_off+written), 0 ); + if( FD_UNLIKELY( result==-1 && errno==EINTR ) ) continue; + else if( FD_UNLIKELY( result<=0 ) ) FD_LOG_ERR(( "pwritev2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + written += (ulong)result; + for( int v=0; v<2; v++ ) { + if( (ulong)result>=iovs[ v ].iov_len ) { result -= (long)iovs[ v ].iov_len; iovs[ v ].iov_len = 0UL; } + else { iovs[ v ].iov_base = (uchar *)iovs[ v ].iov_base + result; iovs[ v ].iov_len -= (ulong)result; break; } + } + } + FD_COMPILER_MFENCE(); + accmeta->offset_fork = fd_accdb_acc_pack_offset_fork( file_off, fd_accdb_acc_fork_id(accmeta) ); + FD_ATOMIC_FETCH_AND_ADD( &shmem->shmetrics->disk_used_bytes, entry_sz ); + } + + line->persisted = 1; + line->acc_idx = UINT_MAX; + line->key.generation = UINT_MAX; + line->refcnt = 0; + cache_free_push( accdb, size_class, line ); + return evicted_acc_idx; +} + +#endif diff --git a/src/flamenco/accdb/fd_accdb.h b/src/flamenco/accdb/fd_accdb.h new file mode 100644 index 00000000000..afdb7e80f21 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb.h @@ -0,0 +1,612 @@ +#ifndef HEADER_fd_src_flamenco_accdb_fd_accdb_h +#define HEADER_fd_src_flamenco_accdb_fd_accdb_h + +#include "fd_accdb_shmem.h" +#include "../../util/bits/fd_bits.h" + +/* The accdb is a fork aware database that can be queried to get the + current state of any accounts as-of a given fork, and update them. */ + +#define FD_ACCDB_ALIGN (128UL) + +/* Well-known file descriptor numbers for the accounts database backing + file. Tiles inherit these from the parent process which dups the + accounts file to these fds before fork+exec, so seccomp filters can + pin syscalls to a fixed fd. fd 123462 is reserved by XDP. */ + +#define FD_ACCDB_FD_RW (123461) +#define FD_ACCDB_FD_RO (123460) + +struct fd_accdb_private; +typedef struct fd_accdb_private fd_accdb_t; + +struct fd_accdb_fork_id { ushort val; }; +typedef struct fd_accdb_fork_id fd_accdb_fork_id_t; + +struct fd_accdb_entry { + uchar pubkey[ 32UL ]; + uchar owner[ 32UL ]; + ulong lamports; + int executable; + + ulong data_len; + uchar * data; + + uchar prior_owner[ 32UL ]; + ulong prior_lamports; + int prior_executable; + ulong prior_data_len; + uchar * prior_data; + + int commit; + + int _writable; + int _overwrite; + + ushort _fork_id; + uint _generation; + ulong _acc_map_idx; + + ulong _original_size_class; + ulong _original_cache_idx; + + struct { + ulong destination_cache_idx[ 8UL ]; + } _write; +}; + +typedef struct fd_accdb_entry fd_acc_t; + +FD_PROTOTYPES_BEGIN + +#if FD_HAS_INT128 + +static inline ulong +fd_xxh3_mul128_fold64( ulong lhs, ulong rhs ) { + uint128 product = (uint128)lhs * (uint128)rhs; + return (ulong)product ^ (ulong)( product>>64 ); +} + +static inline ulong +fd_xxh3_mix16b( ulong i0, ulong i1, + ulong s0, ulong s1, + ulong seed ) { + return fd_xxh3_mul128_fold64( i0 ^ (s0 + seed), i1 ^ (s1 - seed) ); +} + +FD_FN_PURE static inline ulong +fd_accdb_hash( uchar const key[ 32 ], + ulong seed ) { + ulong k0 = FD_LOAD( ulong, key+ 0 ); + ulong k1 = FD_LOAD( ulong, key+ 8 ); + ulong k2 = FD_LOAD( ulong, key+16 ); + ulong k3 = FD_LOAD( ulong, key+24 ); + ulong acc = 32 * 0x9E3779B185EBCA87ULL; + acc += fd_xxh3_mix16b( k0, k1, 0xbe4ba423396cfeb8UL, 0x1cad21f72c81017cUL, seed ); + acc += fd_xxh3_mix16b( k2, k3, 0xdb979083e96dd4deUL, 0x1f67b3b7a4a44072UL, seed ); + acc = acc ^ (acc >> 37); + acc *= 0x165667919E3779F9ULL; + acc = acc ^ (acc >> 32); + return acc; +} + +#else + +/* If the target does not support xxHash3, fallback to the 'old' key + hash function. + + FIXME This version is vulnerable to HashDoS */ + +FD_FN_PURE static inline ulong +fd_accdb_hash( uchar const key[ 32 ], + ulong seed ) { + /* tons of ILP */ + return (fd_ulong_hash( seed ^ (1UL<<0) ^ FD_LOAD( ulong, key+ 0 ) ) ^ + fd_ulong_hash( seed ^ (1UL<<1) ^ FD_LOAD( ulong, key+ 8 ) ) ) ^ + (fd_ulong_hash( seed ^ (1UL<<2) ^ FD_LOAD( ulong, key+16 ) ) ^ + fd_ulong_hash( seed ^ (1UL<<3) ^ FD_LOAD( ulong, key+24 ) ) ); +} + +#endif /* FD_HAS_INT128 */ + +FD_FN_CONST ulong +fd_accdb_align( void ); + +FD_FN_CONST ulong +fd_accdb_footprint( ulong max_live_slots ); + +/* fd_accdb_new constructs the local joiner state for an accdb writer + (or compaction tile). fd is an O_RDWR fd of the on-disk file. + + external_epoch_cnt and external_epoch_slots provide a list of + additional epoch publish slots to scan during compaction's + deferred-free reclamation. These point at memory owned by other + processes (typically the per-tile fseq of read-only consumers like + the rpc tile), mapped read-only into this joiner's address space. + Each *external_epoch_slots[i] is updated by the owning RO joiner + on each epoch-protected operation (and reset to ULONG_MAX when + idle), and is used by this joiner's compaction scan to determine + when on-disk partitions can be safely reclaimed. + + For joiners that do not need to track external RO consumers (i.e. + any joiner that is not the compaction tile, or a writer-only + topology), pass external_epoch_cnt=0 and external_epoch_slots=NULL. + The pointer array is borrowed and must remain valid for the + lifetime of the join. */ + +void * +fd_accdb_new( void * ljoin, + fd_accdb_shmem_t * shmem, + int fd, + ulong external_epoch_cnt, + ulong const ** external_epoch_slots ); + +fd_accdb_t * +fd_accdb_join( void * shaccdb ); + +/* fd_accdb_join_readonly is the read-only counterpart of fd_accdb_new + + fd_accdb_join. shmem_ro may point into a read-only mapping of the + shmem region; the function will not write to it. my_epoch_slot_rw + must point at a ulong owned by this joiner that it can write to + (typically a private per-tile fseq that the accdb tile maps read-only + and passes through external_epoch_slots[] in fd_accdb_new). fd_ro + must be opened O_RDONLY on the same file the writer joiner opened RW. + + The joiner publishes its current epoch into *my_epoch_slot_rw on + entry to each epoch-protected operation (and resets to ULONG_MAX on + exit). The accdb tile's compaction scan observes this slot via its + external_epoch_slots[] pointer and defers partition reclamation + accordingly, the same way it does for in-shmem joiner_epochs[]. + + Only fd_accdb_read_one_nocache, fd_accdb_exists, and + fd_accdb_lamports are supported on a readonly join; any other API is + undefined behavior. */ + +fd_accdb_t * +fd_accdb_join_readonly( void * ljoin, + fd_accdb_shmem_t * shmem_ro, + ulong * my_epoch_slot_rw, + int fd_ro ); + +/* fd_accdb_snapshot_load_{begin,end} toggle a mode on this writer + joiner that causes layer-0 partition handoffs to backfill tiering + for older snapshot-loaded partitions. Specifically, when a new + partition P is opened at layer 0, the partition at P-2 is retiered + to Warm (layer 1) and the partition at P-3 is retiered to Cold + (layer 2). This compensates for the fact that snapshot-loaded + accounts never get a second write and therefore never get promoted + by normal compaction-driven tiering. + + Only the snapin tile is expected to use this. The flag is + per-joiner and is not visible across processes. */ + +void +fd_accdb_snapshot_load_begin( fd_accdb_t * accdb ); + +void +fd_accdb_snapshot_load_end( fd_accdb_t * accdb ); + +/* fd_accdb_attach_child allocates a new fork as a child of + parent_fork_id and returns the new fork's id. This must be done + any time a new fork is being inserted into the accounts database, + so that the accounts database can maintain ancestry information + in order to support queries correctly. + + To create the initial root fork, pass a sentinel value with + val==USHORT_MAX as parent_fork_id. This must be done exactly + once, before any other fork operations. + + For non-root forks, parent_fork_id must refer to a fork that has + already been attached. The ancestry must form a tree and it is + undefined behavior to create cycles. */ + +fd_accdb_fork_id_t +fd_accdb_attach_child( fd_accdb_t * accdb, + fd_accdb_fork_id_t parent_fork_id ); + +/* fd_accdb_advance_root advances the root of the accounts database to + the given fork_id. fork_id must be a direct child of the current + root (i.e. fork->parent_id equals the current root_fork_id). + + Any competing sibling forks (and their entire subtrees) are removed. + For accounts updated on the newly rooted fork, any older versions on + ancestor forks are tombstoned for later compaction. After this call + the old root fork slot is freed and fork_id becomes the new root. + + IMPORTANT: The caller must guarantee that all outstanding + acquire/release pairs on every sibling of fork_id (and their entire + subtrees) have completed before calling advance_root. advance_root + implicitly purges those sibling subtrees, which frees their fork pool + slots for recycling. + + Once a fork is rooted, its generation becomes the new + root_generation. Concurrent acquires that observe the new root will + use the generation fast path (generation <= root_generation) for all + accounts from that fork and its ancestors, bypassing descends_set + entirely. This is what makes fork pool slot recycling safe: by the + time a slot is freed and reusable, no reader will ever consult + descends_set for the old fork_id. */ + +void +fd_accdb_advance_root( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ); + +/* fd_accdb_purge removes the provided fork and all of its descendants + from the accounts database. This is an extremely rare operation, + used to handle cases where a leader equivocated and produced two + competing blocks for the same slot. + + All accounts written on the purged fork and any child or + grandchild forks are removed from the index, and their disk + space is freed for compaction. The ancestry information for all + purged forks is also removed. + + IMPORTANT: The caller must guarantee that all outstanding + acquire/release pairs on the purged fork and every descendant + have completed before calling purge. The same fork pool slot + recycling hazard described for advance_root applies here. */ + +void +fd_accdb_purge( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ); + +/* fd_accdb_acquire brings all of the requested accounts as-of the given + fork_idx into the cache, and refcnts them in the cache so they cannot + be evicted until later released. + + fork_idx is the fork index from replay to query as-of, and must exist + for the entire duration of the acquire call, meaning, whoever is + acquiring must have a refcnt on the bank corresponding to fork_idx, + and not release it until after the accounts are acquired. It is safe + to release the bank after the acquire call returns, and this will not + cause the acquired accounts to be evicted from the cache. + + pubkeys_cnt is the number of accounts to acquire, and pubkeys is an + array of pointers to the 32-byte pubkeys of the accounts to acquire. + writable is an array of flags indicating whether each corresponding + account in pubkeys is being acquired for read (0) or write (1). + Writes provide a temporary buffer of 10MiB in all cases, which the + caller can use for staging changes to the data, and this allows + account resizing, or cancelling of any data written (for example if a + transaction fails) without needing to restore it. If an account is + acquired for write, the caller must set the commit bit on the acc + to non-zero to have the changes written back to the database on + release, or leave it at zero to discard the changes. The commit bit + must be set even if only the metadata has changed. + + IMPORTANT: The caller must guarantee that for any given (pubkey, + fork) pair, there is no concurrent acquire that holds a writable + acc while another acquire for the same account on the same fork is + outstanding (whether readable or writable). Specifically: + + - Multiple concurrent read-only acquires of the same account on the + same fork are permitted. + - A writable acquire of an account on a given fork must not overlap + with any other acquire (read or write) of that same account on + that same fork. + - Acquires of the same account on _different_ forks are always safe + and may overlap freely, provided that all releases on an ancestor + fork have completed before any acquire on a descendant fork + begins. In particular, a fork must finish all of its transaction + execution (including committing or cancelling every writable + account) before a child fork is attached and begins acquiring. + This is naturally guaranteed by the replay scheduler, which does + not activate a child block until the parent block is fully done. + Concurrent acquires across unrelated sibling forks have no + ordering requirement. + + Violating this contract is undefined behavior and will likely crash + with an assertion failure inside the cache refcount logic. In + practice, these constraints are naturally satisfied by the Solana + execution model: each transaction has exclusive write locks on its + writable accounts within a slot, the scheduler ensures no two + concurrent transactions write to the same account on the same fork, + and the replay scheduler serializes parent block completion before + child block activation on the same fork chain. + + When a writable account is committed as an "overwrite" (same + fork), the acc pool element's metadata fields (size, lamports, + offset) are mutated in place, and the cache line's owner field is + updated. This is safe because these mutations + only happen on the acc element whose generation matches the + committing fork. A concurrent acquire on a different fork cannot + observe an in-place mutation of the same acc element for a child fork + to even exist, the parent must be frozen and no longer undergoing + modifications. All acc pool fields are effectively immutable from + the perspective of any concurrent cross-fork reader. + + out_accs is an array of pubkeys_cnt cache accs to be filled in + with the acquired accounts. The cache will fill the owner, lamports, + data_len, and data fields of each acc if the acquire is successful, + and the account exists. If the account does not exist, the lamports + field will be set to zero and other fields are undefined. */ + +void +fd_accdb_acquire( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ); + +void +fd_accdb_acquire_a( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ); + +void +fd_accdb_acquire_b( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong reserved_cnt, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ); + +/* fd_accdb_release releases previously acquired accounts back to the + cache, and if any of the released writable accounts have their commit + bit set, the cache will write the changes back to the database. The + caller must guarantee that the accs being released were previously + acquired and not yet released, and that the pubkeys in the accs + match the pubkeys of the acquired accounts. The accs need not be + a specific set that was acquired together, although this is + recommended. The fork that each acc refers to must still exist + (not yet purged or advanced past) at the time of release. This + includes forks that would be implicitly purged by a concurrent + advance_root on a sibling — the caller must ensure advance_root + is not called until all releases on affected forks have completed. + Releasing accounts for a fork that has been purged or recycled is + undefined behavior. */ + +void +fd_accdb_release( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs ); + +void +fd_accdb_release_ab( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs, + ulong execs_cnt, + fd_acc_t * execs ); + +fd_acc_t +fd_accdb_read_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ); + +fd_acc_t +fd_accdb_write_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ); + +void +fd_accdb_unwrite_one( fd_accdb_t * accdb, + fd_acc_t * acc ); + +void +fd_accdb_unread_one( fd_accdb_t * accdb, + fd_acc_t * acc ); + +int +fd_accdb_exists( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ); + +/* fd_accdb_read_one_nocache reads one account at fork_id into + caller-provided output buffers. Suitable for processes that mmap the + accdb data region read-only: it never mutates any cache line, index + entry, or record. The only write it makes into accdb shmem is + publishing this joiner's epoch (to hold off compaction for the + duration of the read), and that is done through a separately-mmap'd + writable page aliasing the joiner's own epoch slot, not the read-only + region. + + out_owner must point at a 32-byte buffer. out_data must point at a + buffer of at least FD_RUNTIME_ACC_SZ_MAX (10 MiB) bytes, the maximum + account data size; the function does not bound-check against the + account's actual length. On a cache hit the bytes are memcpy'd from + the cache slot using a try-read-test (ABA) loop; on a miss the owner + and data are preadv2'd from the disk fd passed at join time, scattered + into out_owner and out_data via iovec (looping on short reads). + + If the account does not exist, *out_lamports is set to zero and the + other outputs are undefined; otherwise *out_lamports is non-zero and + out_executable, out_owner, out_data, and out_data_len are all filled + in. + + The function takes no reference; nothing needs to be released. */ + +void +fd_accdb_read_one_nocache( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong * out_lamports, + int * out_executable, + uchar * out_owner, + uchar * out_data, + ulong * out_data_len ); + +/* fd_accdb_lamports returns the lamports of the account at fork_id, or + zero if the account does not exist. */ + +ulong +fd_accdb_lamports( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ); + +/* fd_accdb_snapshot_write_one inserts or replaces an account during + snapshot loading. Returns -1 if the write was ignored (an existing + acc has a higher slot), 1 if a new acc was inserted, 2 if an + existing acc was replaced. When 2 is returned, *out_replaced_lamports + is set to the lamports of the replaced acc. Otherwise it is set to + 0. out_replaced_lamports must be non-NULL. + + slot must be <= UINT_MAX. The slot is held in a 32-bit scratch field + during snapshot loading; the accdb format must be widened before + Solana reaches slot 2^32. Passing a larger slot crashes the + process. */ + +int +fd_accdb_snapshot_write_one( fd_accdb_t * accdb, + uchar const * pubkey, + ulong slot, + ulong lamports, + ulong data_len, + int executable, + ulong * out_replaced_lamports ); + +/* fd_accdb_snapshot_write_batch processes up to 8 accounts at once, + using software prefetching to overlap hash chain memory latency with + useful work. Each pubkey[i] points to a 32-byte public key. + *out_replaced_lamports is set to the sum of the lamports of all + accounts replaced by this batch (i.e. the previous lamports value of + each account whose acc was overwritten). *out_ignored_lamports is + set to the sum of the lamports of all accounts ignored by this batch + (i.e. the lamports of each input account whose write was dropped + because an acc with a higher slot already exists). Returns 0 on + success, -1 if the batch contained two entries with the same pubkey + (a corrupt-snapshot signal — the caller should flag the snapshot + malformed). Output counters are not meaningful when -1 is returned. + + Each slots[i] must be <= UINT_MAX (see fd_accdb_snapshot_write_one + for the rationale). Passing a larger slot crashes the process. */ + +int +fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, + ulong cnt, + uchar const * const pubkeys[], + ulong const slots[], + ulong const lamports[], + ulong const data_lens[], + int const executables[], + ulong * accounts_ignored, + ulong * accounts_replaced, + ulong * accounts_loaded, + ulong * out_replaced_lamports, + ulong * out_ignored_lamports ); + +/* fd_accdb_background performs one unit of background work. + + THREADING MODEL + + The accdb API is split across three thread roles: + + T1 (replay): calls attach_child, advance_root, purge, acquire, and + release. attach_child runs inline on T1. advance_root and + purge submit a command into a shared- memory slot and return + immediately; the heavy work is deferred to T2. + + T2 (accdb tile / background): calls fd_accdb_background repeatedly. + This is the only function T2 should call. + + T3 (executor tiles, 1..N): call acquire and release. + + acquire and release may be called concurrently from T1 and any number + of T3 threads. They must never be called concurrently with + advance_root or purge on the same fork. + + fd_accdb_background must be called from exactly one thread (T2). It + must not be called concurrently with itself. + + BEHAVIOR + + First checks for a pending advance_root or purge command from T1; if + one is present it executes the command, sets *charge_busy to 1, and + returns immediately without doing compaction. Otherwise, attempts one + step of compaction at each layer, setting *charge_busy if work was + done. */ + +void +fd_accdb_background( fd_accdb_t * accdb, + int * charge_busy ); + +/* fd_accdb_shmetrics returns a pointer to the shared metrics counters + for the given accdb instance. The returned pointer remains valid + for the lifetime of the underlying shmem. */ + +fd_accdb_shmem_metrics_t const * +fd_accdb_shmetrics( fd_accdb_t * accdb ); + +/* fd_accdb_metrics returns a pointer to the per-thread metrics counters + for the given accdb instance. The returned pointer remains valid + for the lifetime of the underlying shmem. */ + +fd_accdb_metrics_t const * +fd_accdb_metrics( fd_accdb_t * accdb ); + +/* fd_accdb_cache_class_occupancy snapshots the current per-size-class + cache occupancy and capacity into the caller-provided arrays, each + of which must have FD_ACCDB_CACHE_CLASS_CNT entries. used[c] is the + number of slots in class c that currently hold a cache acc (i.e. + slots that have been allocated lazily and are not sitting in the + free list). max[c] is the total slot capacity of class c. Reads + are done with relaxed (volatile) loads and may be momentarily + inconsistent with each other under contention. */ + +void +fd_accdb_cache_class_occupancy( fd_accdb_t * accdb, + ulong * used, + ulong * max, + ulong * reserved ); + +/* fd_accdb_cache_class_thresholds returns the per-size-class preeviction + thresholds, expressed as used-slot counts (so they're directly + comparable to occupancy.used and occupancy.max). Each output array + must have FD_ACCDB_CACHE_CLASS_CNT entries. target_used[c] is the + used count the background preevict pass tries to drive towards (max - + cache_free_target). low_water_used[c] is the used count at which the + preevict pass starts firing (max - cache_free_low_water). Both are + set once at init and are stable for the lifetime of the cache. */ + +void +fd_accdb_cache_class_thresholds( fd_accdb_t * accdb, + ulong * target_used, + ulong * low_water_used ); + +/* FD_ACCDB_METRICS_WRITE publishes the per-joiner accdb runtime metrics + for tile prefix TILE. TILE must be a tile that declares the + AccdbAccountsAcquired/... counters in metrics.xml (e.g. EXECLE, + EXECRP, REPLAY, TOWER, ACCDB). m must be a fd_accdb_metrics_t const * + for the joiner whose counters should be published. */ + +#define FD_ACCDB_METRICS_WRITE( TILE, m ) do { \ + fd_accdb_metrics_t const * _m = (m); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_ACQUIRED, _m->accounts_acquired_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_ACQUIRED_WRITABLE, _m->writable_accounts_acquired_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_EVICTED, _m->accounts_evicted_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_COMMITTED_NEW, _m->accounts_committed_new_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_COMMITTED_OVERWRITE, _m->accounts_committed_overwrite_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_NOT_FOUND, _m->accounts_not_found_per_class ); \ + FD_MCNT_SET( TILE, ACCDB_ACCOUNTS_WAITED, _m->accounts_waited ); \ + FD_MCNT_SET( TILE, ACCDB_ACQUIRE_CALLS, _m->acquire_calls ); \ + FD_MCNT_SET( TILE, ACCDB_ACQUIRE_FAILED, _m->acquire_failed ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_READ, _m->bytes_read ); \ + FD_MCNT_SET( TILE, ACCDB_READ_OPS, _m->read_ops ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_WRITTEN, _m->bytes_written ); \ + FD_MCNT_SET( TILE, ACCDB_WRITE_OPS, _m->write_ops ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_COPIED, _m->bytes_copied ); \ + } while(0) + +/* FD_ACCDB_METRICS_WRITE_RO is the read-only joiner subset of + FD_ACCDB_METRICS_WRITE. It only emits the counters that + fd_accdb_read_one_nocache touches; tiles that join readonly + (e.g. RPC) declare only this subset of counters in metrics.xml. */ + +#define FD_ACCDB_METRICS_WRITE_RO( TILE, m ) do { \ + fd_accdb_metrics_t const * _m = (m); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_ACQUIRED, _m->accounts_acquired_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_NOT_FOUND, _m->accounts_not_found_per_class ); \ + FD_MCNT_SET( TILE, ACCDB_ACCOUNTS_WAITED, _m->accounts_waited ); \ + FD_MCNT_SET( TILE, ACCDB_ACQUIRE_CALLS, _m->acquire_calls ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_READ, _m->bytes_read ); \ + FD_MCNT_SET( TILE, ACCDB_READ_OPS, _m->read_ops ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_COPIED, _m->bytes_copied ); \ + } while(0) + +FD_PROTOTYPES_END + +#endif /* HEADER_fd_src_flamenco_accdb_fd_accdb_h */ diff --git a/src/flamenco/accdb/fd_accdb_cache.c b/src/flamenco/accdb/fd_accdb_cache.c new file mode 100644 index 00000000000..273b5de94a7 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb_cache.c @@ -0,0 +1,272 @@ +#include "fd_accdb_cache.h" + +#include "../../util/bits/fd_bits.h" +#include "../../util/log/fd_log.h" + +int +fd_accdb_cache_class_cnt( ulong cache_footprint, + ulong min_reserved, + ulong * class_cnt ) { + /* Estimated max account population per class on mainnet. Based on a + full mainnet snapshot (1.118B accounts, 363.7 GiB, slot 393863972) + with ~20% headroom. */ + + static const ulong pop_max_raw[ FD_ACCDB_CACHE_CLASS_CNT ] = { + 215000000UL, /* class 0: ~16% of accounts */ + 1041000000UL, /* class 1: ~77.6% of accounts */ + 76000000UL, /* class 2: ~5.6% */ + 8000000UL, /* class 3: ~0.6% */ + 4000000UL, /* class 4: ~0.3% */ + 461000UL, /* class 5: ~0.03% */ + 244000UL, /* class 6: ~0.02% */ + 5000UL, /* class 7: ~0.0003% */ + }; + + /* Hard per-class ceiling: cidx packs only FD_ACCDB_CACHE_LINE_BITS + bits of line index, so a class with more than + FD_ACCDB_CACHE_LINE_MAX slots would let two distinct lines pack to + the same cidx and silently alias on read. Clamp pop_max[c] to that + representable bound before any phase of the allocator consults it. */ + ulong pop_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + for( ulong c=0UL; cULONG_MAX/slot_sz_sum ) ) { + FD_LOG_WARNING(( "cache_min_reserved %lu too large (overflows minimum cost)", min_reserved )); + for( ulong c=0UL; cclass_cnt[c] ? pop_max[c]-class_cnt[c] : 0UL ); + ulong cost = want * fd_accdb_cache_slot_sz[c]; + if( FD_UNLIKELY( cost>remaining ) ) { + class_cnt[c] += remaining / fd_accdb_cache_slot_sz[c]; + remaining = 0UL; + } else { + class_cnt[c] += want; + remaining -= cost; + } + } + + /* Phase 3: Iteratively allocate remaining budget proportional + to access density. When a class exceeds its population cap, + freeze it and redistribute surplus to uncapped classes. */ + + int capped[ FD_ACCDB_CACHE_CLASS_CNT ]; + for( ulong c=0UL; c= pop_max[c] ) { + ulong added = pop_max[c] - class_cnt[c]; + class_cnt[c] = pop_max[c]; + remaining -= added * fd_accdb_cache_slot_sz[c]; + capped[c] = 1; + any_capped = 1; + } + } + + if( !any_capped ) { + /* No caps hit. Final proportional allocation. */ + total_w = 0UL; + for( ulong c=0UL; c=FD_ACCDB_CACHE_LINE_MAX; + + for( ulong iter=0UL; iter= FD_ACCDB_CACHE_LINE_MAX ) { + ulong added = FD_ACCDB_CACHE_LINE_MAX - class_cnt[c]; + class_cnt[c] = FD_ACCDB_CACHE_LINE_MAX; + remaining -= added * fd_accdb_cache_slot_sz[c]; + capped[c] = 1; + any_capped = 1; + } + } + + if( !any_capped ) { + total_w = 0UL; + for( ulong c=0UL; c=FD_ACCDB_CACHE_LINE_MAX ) continue; + ulong room = FD_ACCDB_CACHE_LINE_MAX - class_cnt[c]; + ulong extra = fd_ulong_min( room, remaining / fd_accdb_cache_slot_sz[c] ); + class_cnt[c] += extra; + remaining -= extra * fd_accdb_cache_slot_sz[c]; + } + + /* Past FD_ACCDB_CACHE_LINE_MAX*slot_sz[c] (~6 TiB) the index space is + fully saturated and any further budget is unspendable on cache + lines. Warn the operator so they can size down. */ + ulong unspent = cache_footprint; + for( ulong c=0UL; c= fd_accdb_cache_slot_sz[ 0UL ] ) ) { + FD_LOG_WARNING(( "cache_footprint exceeds per-class index space; %lu GiB will be unused (raise FD_ACCDB_CACHE_LINE_BITS to use more)", + (unspent+(1UL<<30UL)-1UL)/(1UL<<30UL) )); + } + + return 1; +} + +ulong +fd_accdb_cache_class( ulong data_sz ) { + if( FD_LIKELY( data_sz<=128UL ) ) return 0UL; + else if( FD_LIKELY( data_sz<=512UL ) ) return 1UL; + else if( FD_LIKELY( data_sz<=2048UL ) ) return 2UL; + else if( FD_LIKELY( data_sz<=8192UL ) ) return 3UL; + else if( FD_LIKELY( data_sz<=32768UL ) ) return 4UL; + else if( FD_LIKELY( data_sz<=131072UL ) ) return 5UL; + else if( FD_LIKELY( data_sz<=1048576UL ) ) return 6UL; + return 7UL; +} diff --git a/src/flamenco/accdb/fd_accdb_cache.h b/src/flamenco/accdb/fd_accdb_cache.h new file mode 100644 index 00000000000..dfc9c195fa2 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb_cache.h @@ -0,0 +1,118 @@ +#ifndef HEADER_fd_src_flamenco_accdb_fd_accdb_cache_h +#define HEADER_fd_src_flamenco_accdb_fd_accdb_cache_h + +#include "../../util/fd_util_base.h" + +/* fd_accdb_cache.h provides a static algorithm for determining, given a + fixed size cache_footprint specified by an operator, how to allocate + that footprint into various account size classes to maximize expected + cache hit while executing. + + The cache has 8 size classes (to fit in a single cache line) with a + x4 geometric progression: + + Class 0: 0-128 B (slot: 216 B) + Class 1: 129-512 B (slot: 600 B) + Class 2: 513-2 KiB (slot: 2,136 B) + Class 3: 2K-8 KiB (slot: 8,280 B) + Class 4: 8K-32 KiB (slot: 32,856 B) + Class 5: 32K-128 KiB (slot: 131,160 B) + Class 6: 128K-1 MiB (slot: 1,048,664 B) + Class 7: 1M-10 MiB (slot: 10,485,848 B) + + Each slot has 88 bytes of fixed metadata overhead + (sizeof(fd_accdb_cache_line_t)) on top of the max data capacity + for its class. Slot sizes are 8-byte aligned. + + The allocation algorithm maximizes expected cache hit rate by + distributing budget proportional to access density (observed accesses + per byte of cache consumed), derived from empirical mainnet replay. + Classes are capped at estimated population maximums to avoid + over-provisioning. */ + +#define FD_ACCDB_CACHE_CLASS_CNT (8UL) +#define FD_ACCDB_CACHE_META_SZ (88UL) + +/* Per-class line count ceiling. The acc cache index packs (class, line) + into 32 bits as 3 bits of class and FD_ACCDB_CACHE_LINE_BITS bits of + line index (see FD_ACCDB_ACC_CIDX_* in fd_accdb_private.h). A class + may not be sized larger than FD_ACCDB_CACHE_LINE_MAX slots, or two + distinct lines would pack to the same cidx and reads would alias. */ + +#define FD_ACCDB_CACHE_LINE_BITS (29) +#define FD_ACCDB_CACHE_LINE_MAX (1UL< 128 is assumed never to + activate). FD_ACCDB_MAX_TXN_PER_ACQUIRE mirrors + FD_PACK_MAX_TXN_PER_BUNDLE, a bundle coalesces up to that many + transactions into one acquire. */ +#define FD_ACCDB_MAX_TX_ACCOUNT_LOCKS (64UL) +#define FD_ACCDB_MAX_TXN_PER_ACQUIRE (5UL) +#define FD_ACCDB_MAX_ACQUIRE_CNT (FD_ACCDB_MAX_TXN_PER_ACQUIRE*FD_ACCDB_MAX_TX_ACCOUNT_LOCKS) + +static inline void +spin_lock_acquire( int * lock ) { +# if FD_HAS_THREADS + for(;;) { + if( FD_LIKELY( !FD_ATOMIC_CAS( lock, 0, 1 ) ) ) break; + FD_SPIN_PAUSE(); + } +# else + *lock = 1; +# endif + FD_COMPILER_MFENCE(); +} + +static inline void +spin_lock_release( int * lock ) { + FD_COMPILER_MFENCE(); +# if FD_HAS_THREADS + FD_VOLATILE( *lock ) = 0; +# else + *lock = 0; +# endif +} + +#ifndef FD_ACCDB_NO_FORK_ID +struct fd_accdb_fork_id { ushort val; }; +typedef struct fd_accdb_fork_id fd_accdb_fork_id_t; +#endif + +struct __attribute__((packed)) fd_accdb_disk_meta { + uchar pubkey[ 32UL ]; + uint size; + uchar owner[ 32UL ]; +}; + +typedef struct fd_accdb_disk_meta fd_accdb_disk_meta_t; + +struct fd_accdb_txn { + union { + struct { uint next; } pool; + struct { uint next; } fork; + }; + + uint acc_map_idx; + uint acc_pool_idx; +}; + +typedef struct fd_accdb_txn fd_accdb_txn_t; + +#define POOL_NAME txn_pool +#define POOL_ELE_T fd_accdb_txn_t +#define POOL_NEXT pool.next +#define POOL_IDX_T uint +#define POOL_IDX_WIDTH 32 +#define POOL_IMPL_STYLE 0 +#define POOL_LAZY 1 + +#include "../../util/tmpl/fd_pool_para.c" + +#define SET_NAME descends_set +#define SET_IMPL_STYLE 1 +#include "../../util/tmpl/fd_set_dynamic.c" + +struct fd_accdb_fork_shmem { + uint generation; + + fd_accdb_fork_id_t parent_id; + fd_accdb_fork_id_t child_id; + fd_accdb_fork_id_t sibling_id; + + struct { + ulong next; + } pool; + + uint txn_head; +}; + +typedef struct fd_accdb_fork_shmem fd_accdb_fork_shmem_t; + +#define POOL_NAME fork_pool +#define POOL_ELE_T fd_accdb_fork_shmem_t +#define POOL_NEXT pool.next +#define POOL_IDX_T ulong +#define POOL_IMPL_STYLE 0 + +#include "../../util/tmpl/fd_pool_para.c" + +struct fd_accdb_partition { + ulong marked_compaction; + ulong write_offset; + ulong compaction_offset; + + ulong bytes_freed; + + uchar layer; /* compaction tier this partition belongs to. */ + + ulong read_ops; + ulong bytes_read; + ulong write_ops; + ulong bytes_written; + + /* Tickcount (fd_tickcount) of the partition's lifecycle events. Set + only at partition creation and again when the partition closes + (i.e. the layer's write head rotates off it). */ + long created_ticks; + long filled_ticks; + + /* Compaction lifecycle flags. queued is set when the partition is + pushed onto the compaction_dlist and cleared when it is popped. + compacting_now is set by the compaction tile around the actual + compaction work for this partition. */ + uchar queued; + uchar compacting_now; + + /* Epoch at which this partition was enqueued for compaction. Set by + fd_accdb_shmem_bytes_freed when the partition crosses the + freed-bytes threshold. The compaction tile will not begin reading + from this partition until all joiners that were in an + epoch-protected critical section at enqueue time have exited, + ensuring any in-flight pwritev2 to this partition has completed. */ + ulong compaction_ready_epoch; + + /* Epoch at which this partition was enqueued for deferred freeing. + Set by compaction when the partition finishes compaction, and + checked by the reclamation scan to determine when it is safe to + release the partition back to the pool. */ + ulong epoch_tag; + + ulong pool_next; + + ulong dlist_prev; + ulong dlist_next; +}; + +typedef struct fd_accdb_partition fd_accdb_partition_t; + +#define POOL_NAME partition_pool +#define POOL_T fd_accdb_partition_t +#define POOL_NEXT pool_next +#define POOL_IDX_T ulong +#define POOL_IMPL_STYLE 1 + +#include "../../util/tmpl/fd_pool.c" + +#define DLIST_NAME compaction_dlist +#define DLIST_ELE_T fd_accdb_partition_t +#define DLIST_PREV dlist_prev +#define DLIST_NEXT dlist_next +#define DLIST_IMPL_STYLE 1 + +#include "../../util/tmpl/fd_dlist.c" + +/* deferred_free_dlist reuses the same prev/next fields as + compaction_dlist. A partition is in at most one of the two lists at + any time: it is popped from compaction_dlist before being pushed onto + deferred_free_dlist. */ + +#define DLIST_NAME deferred_free_dlist +#define DLIST_ELE_T fd_accdb_partition_t +#define DLIST_PREV dlist_prev +#define DLIST_NEXT dlist_next +#define DLIST_IMPL_STYLE 1 + +#include "../../util/tmpl/fd_dlist.c" + +struct fd_accdb_cache_key { + uchar pubkey[ 32UL ]; + uint generation; +}; + +typedef struct fd_accdb_cache_key fd_accdb_cache_key_t; + +struct fd_accdb_accmeta { + fd_accdb_cache_key_t key; + + struct { + uint next; + } map; + + union { + struct { + uint next; + } pool; + uint cache_idx; + }; + + uint executable_size; + + ulong lamports; + + /* Pack offset and fork_id together into a single ulong to pack the + struct into a single 64 byte cache line. This is a performance win + of 2-3%. */ + ulong offset_fork; +}; + +typedef struct fd_accdb_accmeta fd_accdb_accmeta_t; + +#define FD_ACCDB_OFF_BITS 48UL +#define FD_ACCDB_OFF_MASK ((1UL< cache-line + binding, so concurrent readers and the evictor do not race. + + FD_ACCDB_SIZE_PACK sets only bit 31 and the 29-bit length (never bit + 30 or bit 29), so the on-disk representation carries neither in-memory + flag. The persisted bytes are thus unchanged and compaction's + copy_file_range preserves the record headers verbatim without + rewriting them. */ + +#define FD_ACCDB_SIZE_EXEC_BIT (1U<<31) +#define FD_ACCDB_SIZE_CACHE_VALID_BIT (1U<<30) +#define FD_ACCDB_SIZE_CACHE_CLAIM_BIT (1U<<29) +#define FD_ACCDB_SIZE_MASK ((1U<<29)-1U) +#define FD_ACCDB_SIZE_PACK(sz,exec) ((uint)(sz) | ((exec) ? FD_ACCDB_SIZE_EXEC_BIT : 0U)) +#define FD_ACCDB_SIZE_DATA(packed) ((packed) & FD_ACCDB_SIZE_MASK) +#define FD_ACCDB_SIZE_EXEC(packed) (!!((packed) & FD_ACCDB_SIZE_EXEC_BIT)) +#define FD_ACCDB_SIZE_CACHE_VALID(p) (!!((p) & FD_ACCDB_SIZE_CACHE_VALID_BIT)) +#define FD_ACCDB_SIZE_CACHE_CLAIM(p) (!!((p) & FD_ACCDB_SIZE_CACHE_CLAIM_BIT)) + +static inline ulong +fd_accdb_acc_offset( fd_accdb_accmeta_t const * acc ) { + return acc->offset_fork & FD_ACCDB_OFF_MASK; +} + +static inline ushort +fd_accdb_acc_fork_id( fd_accdb_accmeta_t const * acc ) { + return (ushort)( acc->offset_fork >> FD_ACCDB_OFF_BITS ); +} + +static inline ulong +fd_accdb_acc_pack_offset_fork( ulong offset, + ushort fork_id ) { + return ( (ulong)fork_id << FD_ACCDB_OFF_BITS ) | ( offset & FD_ACCDB_OFF_MASK ); +} + +/* fd_accdb_acc_xchg_offset atomically replaces the 48-bit offset + portion of acc->offset_fork with new_offset while preserving the + 16-bit fork_id, and returns the previous 48-bit offset. Uses a + CAS loop so that concurrent compaction CAS and release-overwrite + exchanges serialize correctly. */ + +static inline ulong +fd_accdb_acc_xchg_offset( fd_accdb_accmeta_t * acc, + ulong new_offset ) { + for(;;) { + ulong old_packed = FD_VOLATILE_CONST( acc->offset_fork ); + ulong new_packed = ( old_packed & ~FD_ACCDB_OFF_MASK ) | ( new_offset & FD_ACCDB_OFF_MASK ); + if( FD_LIKELY( FD_ATOMIC_CAS( &acc->offset_fork, old_packed, new_packed )==old_packed ) ) + return old_packed & FD_ACCDB_OFF_MASK; + FD_SPIN_PAUSE(); + } +} + +/* Packing helpers for the embedded acc cache index. 3 bits class + in bits 31-29, 29 bits line index. INVAL is the sentinel for + "no cached location known". FD_ACCDB_CACHE_LINE_MAX (defined in + fd_accdb_cache.h) is the exclusive upper bound on representable + line indices; per-class slot counts must not exceed it, or cidx + values would alias. */ + +#define FD_ACCDB_ACC_CIDX_IDX_MASK ((uint)(FD_ACCDB_CACHE_LINE_MAX-1UL)) +#define FD_ACCDB_ACC_CIDX_INVAL UINT_MAX +#define FD_ACCDB_ACC_CIDX_PACK(c,i) ((uint)( ((uint)(c)<> FD_ACCDB_CACHE_LINE_BITS)) +#define FD_ACCDB_ACC_CIDX_IDX(ci) ((ulong)((uint)(ci) & FD_ACCDB_ACC_CIDX_IDX_MASK)) + +#define POOL_NAME acc_pool +#define POOL_ELE_T fd_accdb_accmeta_t +#define POOL_NEXT pool.next +#define POOL_IDX_T uint +#define POOL_IDX_WIDTH 32 +#define POOL_IMPL_STYLE 0 +#define POOL_LAZY 1 + +#include "../../util/tmpl/fd_pool_para.c" + +struct fd_accdb_cache_line { + fd_accdb_cache_key_t key; + + uint acc_idx; + uint cache_idx; + + uint refcnt; + uchar persisted; + uchar referenced; + + uint next; + + uchar owner[ 32UL ]; +}; + +typedef struct fd_accdb_cache_line fd_accdb_cache_line_t; + +typedef struct __attribute__((aligned(64))) { ulong val; } accdb_offset_t; + +/* Partition offsets are packed into accdb_offset_t as: + bits 63..51: partition pool index + bits 50..0 : byte offset within the partition */ + +#define FD_ACCDB_PARTITION_OFF_BITS 51UL + +static FD_FN_CONST inline accdb_offset_t +accdb_offset( ulong partition_idx, + ulong partition_offset ) { + return (accdb_offset_t){ .val = (partition_idx<val>>FD_ACCDB_PARTITION_OFF_BITS; +} + +static FD_FN_PURE inline ulong +packed_partition_offset( accdb_offset_t const * offset ) { + return offset->val & ((1UL<generation are + unconditionally visible without consulting descends_set. For + entries with generation > root_fork->generation, the fork_id is + still valid and descends_set is used to check ancestry. + + KEY INVARIANT: descends_set is ONLY consulted when generation > + root_generation, which means the fork_id has NOT been rooted yet + and its pool slot is still live. This is what makes it safe for + fork_slot_defer to eagerly clear descends_set bits for retired + forks: rooted fork bits are dead (bypassed by the generation fast + path), and purged fork bits were already 0 in all live forks' + descends_sets (a purged fork is never an ancestor of a live fork). + */ + uint generation; + + /* Lazy initial-allocation counter per size class. Atomically + incremented by acquire_cache_line (with undo on overflow). Each + element is on its own cacheline to avoid false sharing between + classes. */ + struct __attribute__((aligned(64))) { ulong val; } cache_class_init[ FD_ACCDB_CACHE_CLASS_CNT ]; + + ulong cache_class_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Byte offsets from shmem base to the per-class cache regions. Each + region is cache_class_max[c] * fd_accdb_cache_slot_sz[c] bytes, + with each slot holding an fd_accdb_cache_line_t header followed by + up to (fd_accdb_cache_slot_sz[c] - META_SZ) bytes of account data. + */ + ulong cache_region_off[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Background pre-eviction watermarks (computed once in shmem_new). + cache_free_target[c]: desired free-list depth for class c. + cache_free_low_water[c]: trigger threshold ((target*3)/4). */ + ulong cache_free_target [ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong cache_free_low_water[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* cache_class_used[i].val holds the number of reserved cache + slots in size class i. Acquire atomically increments; if the + result exceeds cache_class_max[i] the reservation overflowed + and the thread subtracts back and retries. Release atomically + decrements. Each element is on its own cacheline to avoid + false sharing between classes. Invariant: + used[i].val + available[i] == cache_class_max[i] + at all times. */ + struct __attribute__((aligned(64))) { ulong val; } cache_class_used[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Per-layer write heads. whead[0] is the hot (execution) write + head, updated with atomic fetch-and-add by acquire/release + threads. whead[1..N-1] are compaction write heads, each + single-writer (compaction tile only). */ + accdb_offset_t whead[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + int has_partition[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + + ulong partition_cnt; + ulong partition_sz; + ulong partition_max; + + ulong chain_cnt; + ulong max_live_slots; + ulong max_accounts; + ulong max_account_writes_per_slot; + + /* Hard upper bound on concurrent joiners, set at construction. + Used to determine whether cache_class_used tracking can be + skipped for a given class (when max[c] >= MIN_RESERVED * + joiner_cnt, every reservation succeeds trivially). */ + ulong joiner_cnt_max; + + ulong partition_pool_off; + + /* compaction_dlist_off[k] is the byte offset (from shmem base) of + the dlist sentinel for layer k. Partitions at layer k that + reach the freed-bytes threshold are enqueued here for compaction + into layer k+1, or into layer k itself for the deepest layer. */ + ulong compaction_dlist_off[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + + /* Epoch-based safe reclamation for compacted partitions. + + epoch is a monotonically increasing counter incremented by the + compaction tile each time a partition finishes compaction. The + completed partition is tagged with the current epoch and pushed + onto a deferred-free list instead of being released immediately. + + joiner_epochs[i] holds the epoch observed by joiner i at the start + of its epoch-protected critical section, or ULONG_MAX when idle. + The compaction tile scans this array to find the minimum observed + epoch; any deferred partition tagged with an epoch strictly less + than that minimum is safe to release, because every epoch-protected + operation that could have snapshotted an offset into that partition + has since exited its critical section. + + joiner_cnt is claimed via atomic fetch-and-add in fd_accdb_new + and never decremented. */ + ulong epoch __attribute__((aligned(64))); + + /* Each joiner epoch is padded to a full cache line to prevent + false sharing between joiners writing to adjacent slots. */ + struct __attribute__((aligned(64))) { ulong val; } joiner_epochs[ FD_ACCDB_MAX_JOINERS ]; + ulong joiner_cnt __attribute__((aligned(64))); + ulong deferred_free_dlist_off; + + fd_accdb_shmem_metrics_t shmetrics[1]; + + /* Command slot for T1 -> T2 offloading of advance_root / purge. + Padded to its own cache line to avoid false sharing with the + hot epoch / joiner_epochs fields above. */ + +#define FD_ACCDB_CMD_IDLE (0U) +#define FD_ACCDB_CMD_ADVANCE_ROOT (1U) +#define FD_ACCDB_CMD_PURGE (2U) + + uint cmd_op __attribute__((aligned(64))); /* FD_ACCDB_CMD_* */ + ushort cmd_fork_id; /* argument */ + + /* T2-only side buffer for deferred acc unlinks. Holds the indices of + accs that have been CAS-unlinked from their map chains in the + current advance_root or purge call but cannot yet have pool.next + written: a concurrent cold_load_acc may stomp it via the cache_idx + union alias. After wait_for_epoch_drain the list is materialized + into pool.next links and released via acc_pool_release_chain. + + T2 is the sole writer (advance_root and purge both run on T2 via + the cmd offload above), so cnt is plain. Capacity is + txn_max = max_live_slots * max_account_writes_per_slot, the same + bound used to size txn_pool. Stored as a byte offset from shmem + base. */ + + ulong deferred_acc_buf_off; + ulong deferred_acc_buf_cnt; + ulong deferred_acc_buf_max; + ulong deferred_acc_epoch; + + ulong magic; /* ==FD_ACCDB_SHMEM_MAGIC */ +}; + +#endif /* HEADER_fd_src_flamenco_accdb_fd_accdb_private_h */ diff --git a/src/flamenco/accdb/fd_accdb_shmem.c b/src/flamenco/accdb/fd_accdb_shmem.c new file mode 100644 index 00000000000..b395c5b3006 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb_shmem.c @@ -0,0 +1,547 @@ +#include "fd_accdb_shmem.h" +#include "fd_accdb_private.h" + +#include "../../util/log/fd_log.h" + +#define POOL_NAME partition_pool +#define POOL_T fd_accdb_partition_t +#define POOL_NEXT pool_next +#define POOL_IDX_T ulong +#define POOL_IMPL_STYLE 2 + +#include "../../util/tmpl/fd_pool.c" + +#define DLIST_NAME compaction_dlist +#define DLIST_ELE_T fd_accdb_partition_t +#define DLIST_PREV dlist_prev +#define DLIST_NEXT dlist_next +#define DLIST_IMPL_STYLE 2 + +#include "../../util/tmpl/fd_dlist.c" + +#define DLIST_NAME deferred_free_dlist +#define DLIST_ELE_T fd_accdb_partition_t +#define DLIST_PREV dlist_prev +#define DLIST_NEXT dlist_next +#define DLIST_IMPL_STYLE 2 + +#include "../../util/tmpl/fd_dlist.c" + +FD_FN_CONST ulong +fd_accdb_shmem_align( void ) { + return FD_ACCDB_SHMEM_ALIGN; +} + +fd_accdb_shmem_t * +fd_accdb_shmem_join( void * shtc ) { + if( FD_UNLIKELY( !shtc ) ) { + FD_LOG_WARNING(( "NULL shtc" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)shtc, fd_accdb_shmem_align() ) ) ) { + FD_LOG_WARNING(( "misaligned shtc" )); + return NULL; + } + + fd_accdb_shmem_t * accdb = (fd_accdb_shmem_t *)shtc; + + if( FD_UNLIKELY( accdb->magic!=FD_ACCDB_SHMEM_MAGIC ) ) { + FD_LOG_WARNING(( "bad magic" )); + return NULL; + } + return accdb; +} + +ulong +fd_accdb_shmem_footprint( ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong cache_footprint, + ulong cache_min_reserved, + ulong joiner_cnt ) { + if( FD_UNLIKELY( !max_accounts ) ) return 0UL; + if( FD_UNLIKELY( !max_live_slots ) ) return 0UL; + if( FD_UNLIKELY( !max_account_writes_per_slot) ) return 0UL; + if( FD_UNLIKELY( !partition_cnt ) ) return 0UL; + if( FD_UNLIKELY( !cache_min_reserved ) ) return 0UL; + /* Partition indices are packed into 13 bits of accdb_offset_t + (bits 63..51), so partition_cnt==8192 uses indices 0..8191, the + full 13-bit range. The initial write-head sentinel encodes its + invalidity in the offset bits (partition_offset==partition_sz), + not the index, so it remains distinguishable even when no spare + index value is left. */ + if( FD_UNLIKELY( partition_cnt>(1UL<<13) ) ) return 0UL; + if( FD_UNLIKELY( !joiner_cnt || joiner_cnt>FD_ACCDB_MAX_JOINERS ) ) return 0UL; + + if( FD_UNLIKELY( max_accounts>=UINT_MAX ) ) return 0UL; + + if( FD_UNLIKELY( max_live_slots>=USHORT_MAX ) ) return 0UL; + + ulong txn_max = max_live_slots * max_account_writes_per_slot; + if( FD_UNLIKELY( txn_max/max_account_writes_per_slot!=max_live_slots ) ) return 0UL; + if( FD_UNLIKELY( txn_max>=UINT_MAX ) ) return 0UL; + + ulong descends_fp = descends_set_footprint( max_live_slots ); + if( FD_UNLIKELY( !descends_fp ) ) return 0UL; + if( FD_UNLIKELY( max_live_slots>ULONG_MAX/descends_fp ) ) return 0UL; + + ulong chain_cnt = fd_ulong_pow2_up( (max_accounts>>1) + (max_accounts&1UL) ); + + if( FD_UNLIKELY( chain_cnt>ULONG_MAX/sizeof(uint) ) ) return 0UL; + + if( FD_UNLIKELY( !cache_footprint ) ) return 0UL; + ulong cache_class_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + if( FD_UNLIKELY( !fd_accdb_cache_class_cnt( cache_footprint, cache_min_reserved, cache_class_max ) ) ) return 0UL; + + ulong l; + l = FD_LAYOUT_INIT; + l = FD_LAYOUT_APPEND( l, FD_ACCDB_SHMEM_ALIGN, sizeof(fd_accdb_shmem_t) ); + l = FD_LAYOUT_APPEND( l, fork_pool_align(), fork_pool_footprint() ); + l = FD_LAYOUT_APPEND( l, alignof(fd_accdb_fork_shmem_t), max_live_slots*sizeof(fd_accdb_fork_shmem_t) ); + l = FD_LAYOUT_APPEND( l, descends_set_align(), max_live_slots*descends_set_footprint( max_live_slots ) ); + l = FD_LAYOUT_APPEND( l, alignof(uint), chain_cnt*sizeof(uint) ); + l = FD_LAYOUT_APPEND( l, acc_pool_align(), acc_pool_footprint() ); + l = FD_LAYOUT_APPEND( l, alignof(fd_accdb_accmeta_t), max_accounts*sizeof(fd_accdb_accmeta_t) ); + l = FD_LAYOUT_APPEND( l, txn_pool_align(), txn_pool_footprint() ); + l = FD_LAYOUT_APPEND( l, alignof(fd_accdb_txn_t), txn_max*sizeof(fd_accdb_txn_t) ); + l = FD_LAYOUT_APPEND( l, partition_pool_align(), partition_pool_footprint( partition_cnt ) ); + for( ulong k=0UL; kFD_ACCDB_MAX_JOINERS ) ) { + FD_LOG_WARNING(( "joiner_cnt must be in [1, %lu]", FD_ACCDB_MAX_JOINERS )); + return NULL; + } + + if( FD_UNLIKELY( max_live_slots>=USHORT_MAX ) ) { + FD_LOG_WARNING(( "max_live_slots must be less than %u", (uint)USHORT_MAX )); + return NULL; + } + + if( FD_UNLIKELY( !partition_cnt ) ) { + FD_LOG_WARNING(( "partition_cnt must be non-zero" )); + return NULL; + } + + if( FD_UNLIKELY( partition_cnt>(1UL<<13) ) ) { + FD_LOG_WARNING(( "partition_cnt must be at most %lu", 1UL<<13 )); + return NULL; + } + + if( FD_UNLIKELY( !partition_sz ) ) { + FD_LOG_WARNING(( "partition_sz must be non-zero" )); + return NULL; + } + + /* Partition offsets are packed into the low 51 bits of accdb_offset_t + (see FD_ACCDB_PARTITION_OFF_BITS in fd_accdb.c). partition_sz must + be small enough that speculative fetch-and-adds from up to + FD_ACCDB_MAX_JOINERS concurrent threads in allocate_next_write + can never carry the offset field into the partition_idx bits. + Worst case: all joiners each do one FETCH_AND_ADD of partition_sz + before the partition switch completes, starting from an offset of + at most partition_sz-1. */ + if( FD_UNLIKELY( partition_sz>(1UL<<51)/(FD_ACCDB_MAX_JOINERS+1UL) ) ) { + FD_LOG_WARNING(( "partition_sz must be at most %lu", (1UL<<51)/(FD_ACCDB_MAX_JOINERS+1UL) )); + return NULL; + } + + /* The maximum file offset is (partition_cnt-1)*partition_sz + + partition_sz - 1, which must fit in a signed long (off_t) because + pwritev2, preadv2, and fallocate all take signed offsets. */ + if( FD_UNLIKELY( partition_cnt>=(ulong)LONG_MAX/partition_sz ) ) { + FD_LOG_WARNING(( "partition_cnt*partition_sz must be at most LONG_MAX" )); + return NULL; + } + + /* The total addressable file space (partition_cnt * partition_sz) + must not exceed 2^FD_ACCDB_OFF_BITS. File offsets are stored in + the 48-bit offset portion of acc->offset_fork, and the all-ones + value FD_ACCDB_OFF_INVAL is reserved as a dirty sentinel. The + allocator guarantees record start offsets are always at least + sizeof(fd_accdb_disk_meta_t) below a partition boundary, so a + total of exactly 2^48 is safe (no valid offset reaches the + sentinel), but exceeding it is not. */ + if( FD_UNLIKELY( partition_cnt>((1UL<=UINT_MAX ) ) { + FD_LOG_WARNING(( "max_accounts must be less than UINT_MAX" )); + return NULL; + } + + ulong txn_max = max_live_slots * max_account_writes_per_slot; + if( FD_UNLIKELY( txn_max/max_account_writes_per_slot!=max_live_slots ) ) { + FD_LOG_WARNING(( "max_live_slots*max_account_writes_per_slot overflows" )); + return NULL; + } + if( FD_UNLIKELY( txn_max>=UINT_MAX ) ) { + FD_LOG_WARNING(( "max_live_slots*max_account_writes_per_slot must be less than UINT_MAX" )); + return NULL; + } + + ulong descends_fp = descends_set_footprint( max_live_slots ); + if( FD_UNLIKELY( !descends_fp || max_live_slots>ULONG_MAX/descends_fp ) ) { + FD_LOG_WARNING(( "max_live_slots*descends_set_footprint overflows" )); + return NULL; + } + + ulong chain_cnt = fd_ulong_pow2_up( (max_accounts>>1) + (max_accounts&1UL) ); + + if( FD_UNLIKELY( chain_cnt>ULONG_MAX/sizeof(uint) ) ) { + FD_LOG_WARNING(( "chain_cnt*sizeof(uint) overflows" )); + return NULL; + } + + if( FD_UNLIKELY( !cache_min_reserved ) ) { + FD_LOG_WARNING(( "cache_min_reserved must be non-zero" )); + return NULL; + } + + ulong cache_class_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + if( FD_UNLIKELY( !fd_accdb_cache_class_cnt( cache_footprint, cache_min_reserved, cache_class_max ) ) ) { + FD_LOG_WARNING(( "invalid cache_footprint" )); + return NULL; + } + /* cidx packs only FD_ACCDB_CACHE_LINE_BITS bits of line index, so + cache_class_max[c]>FD_ACCDB_CACHE_LINE_MAX would let line indices + alias. fd_accdb_cache_class_cnt clamps this; assert here so any + future regression in the allocator is caught at shmem-new time + rather than as silent cache corruption at runtime. */ + for( ulong c=0UL; cseed = seed; + accdb->root_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + accdb->generation = 0U; + + accdb->partition_lock = 0; + accdb->snapshot_loading = 0; + accdb->bundle_enabled = bundle_enabled; + + for( ulong c=0UL; cclock_hand[ c ].val = 0UL; + for( ulong c=0UL; ccache_free[ c ].ver_top = (ulong)UINT_MAX; + for( ulong c=0UL; ccache_free_cnt[ c ].val = 0UL; + + for( ulong c=0UL; cfloor_c ) ? ( max_c - floor_c ) : 0UL; + ulong cap = fd_ulong_min( 8192UL, (64UL<<20) / fd_accdb_cache_slot_sz[ c ] ); + ulong burst_floor = fd_ulong_min( 512UL, headroom/2UL ); + ulong target = fd_ulong_min( cap, fd_ulong_max( headroom/10UL, burst_floor ) ); + accdb->cache_free_target [ c ] = target; + accdb->cache_free_low_water[ c ] = (target * 3UL) / 4UL; + } + + for( ulong k=0UL; kwhead[ k ] = accdb_offset( partition_cnt, partition_sz ); + accdb->has_partition[ k ] = 0; + } + + accdb->chain_cnt = chain_cnt; + accdb->max_live_slots = max_live_slots; + accdb->max_accounts = max_accounts; + accdb->max_account_writes_per_slot = max_account_writes_per_slot; + accdb->joiner_cnt_max = joiner_cnt; + accdb->partition_cnt = partition_cnt; + accdb->partition_sz = partition_sz; + accdb->partition_max = 0UL; + + accdb->partition_pool_off = (ulong)partition_pool - (ulong)shmem; + for( ulong k=0UL; kcompaction_dlist_off[ k ] = (ulong)_compaction_dlists[ k ] - (ulong)shmem; + } + accdb->deferred_free_dlist_off = (ulong)_deferred_free_dlist - (ulong)shmem; + + accdb->deferred_acc_buf_off = (ulong)_deferred_acc_buf - (ulong)shmem; + accdb->deferred_acc_buf_cnt = 0UL; + accdb->deferred_acc_buf_max = txn_max; + accdb->deferred_acc_epoch = 0UL; + + accdb->epoch = 1UL; + accdb->joiner_cnt = 0UL; + for( ulong i=0UL; ijoiner_epochs[ i ].val = ULONG_MAX; + + for( ulong c=0UL; ccache_class_init[ c ].val = 0UL; + for( ulong c=0UL; ccache_class_max[ c ] = cache_class_max[ c ]; + for( ulong c=0UL; ccache_region_off[ c ] = (ulong)_cache_regions[ c ] - (ulong)shmem; + + /* Pre-initialize every cache slot's metadata to the "empty" sentinel + (gen=UINT_MAX, acc_idx=UINT_MAX, refcnt=0). Without this, the + lazy-init path in acquire_cache_line bumps cache_class_init before + writing the sentinels into the freshly-claimed line; a concurrent + background_preevict reading the bumped init counter could then sweep + a slot whose memory still reads as zero, see (gen=0, acc_idx=0) + instead of the skip predicate, CAS refcnt 0->EVICT_SENTINEL, and + "evict" a line the lazy-init owner is about to publish. */ + for( ulong c=0UL; ckey.generation = UINT_MAX; + line->acc_idx = UINT_MAX; + line->refcnt = 0U; + line->referenced = 0; + line->persisted = 1; + } + } + + /* If a class has enough slots for every joiner's worst case + simultaneously (cache_min_reserved per joiner), no reservation can + ever overflow. Sentinel ULONG_MAX tells acquire/release to skip + the atomic counters entirely. */ + for( ulong c=0UL; c=cache_min_reserved*joiner_cnt ) accdb->cache_class_used[ c ].val = ULONG_MAX; + else accdb->cache_class_used[ c ].val = 0UL; + } + + memset( accdb->shmetrics, 0, sizeof( fd_accdb_shmem_metrics_t ) ); + accdb->shmetrics->accounts_capacity = max_accounts; + + accdb->cmd_op = FD_ACCDB_CMD_IDLE; + accdb->cmd_fork_id = USHORT_MAX; + + FD_COMPILER_MFENCE(); + FD_VOLATILE( accdb->magic ) = FD_ACCDB_SHMEM_MAGIC; + FD_COMPILER_MFENCE(); + + return (void *)accdb; +} + +void +fd_accdb_shmem_try_enqueue_compaction( fd_accdb_shmem_t * accdb, + ulong partition_idx ) { + /* Caller must hold partition_lock. */ + + fd_accdb_partition_t * partition_pool = (fd_accdb_partition_t *)( (uchar *)accdb + accdb->partition_pool_off ); + fd_accdb_partition_t * partition = partition_pool_ele( partition_pool, partition_idx ); + + if( FD_UNLIKELY( partition->bytes_freed<(accdb->partition_sz*3UL/10UL) ) ) return; + if( FD_UNLIKELY( partition->marked_compaction ) ) return; + + /* While a snapshot load is in flight, defer all compaction so the + compaction tile cannot race with the bulk loader. Anything that + crosses the threshold here will be re-checked by + fd_accdb_snapshot_load_end's sweep when loading completes. */ + if( FD_UNLIKELY( FD_VOLATILE_CONST( accdb->snapshot_loading ) ) ) return; + + /* Do not enqueue any currently active write-head partition. Its + write_offset is not yet finalized, so compaction cannot determine + the valid data range. The partition_lock serializes this check + with change_partition, so it is not racy. */ + for( ulong k=0UL; khas_partition[ k ] && packed_partition_idx( &accdb->whead[ k ] )==partition_idx ) ) return; + } + + uchar layer = partition->layer; + compaction_dlist_t * compaction_dlist = (compaction_dlist_t *)( (uchar *)accdb + accdb->compaction_dlist_off[ layer ] ); + + partition->marked_compaction = 1; + partition->compaction_offset = 0UL; + partition->compaction_ready_epoch = FD_ATOMIC_FETCH_AND_ADD( &accdb->epoch, 1UL ); + partition->queued = 1; + if( FD_LIKELY( compaction_dlist_is_empty( compaction_dlist, partition_pool ) ) ) { + FD_LOG_NOTICE(( "compaction of layer %u partition %lu started", (uint)layer, partition_pool_idx( partition_pool, partition ) )); + } + compaction_dlist_ele_push_tail( compaction_dlist, partition, partition_pool ); + accdb->shmetrics->in_compaction = 1; + accdb->shmetrics->compactions_requested++; +} + +void +fd_accdb_shmem_bytes_freed( fd_accdb_shmem_t * accdb, + ulong offset, + ulong sz ) { + fd_accdb_partition_t * partition_pool = (fd_accdb_partition_t *)( (uchar *)accdb + accdb->partition_pool_off ); + + ulong partition_idx = offset/accdb->partition_sz; + fd_accdb_partition_t * partition = partition_pool_ele( partition_pool, partition_idx ); + /* Launder the pointer: GCC derives partition from (accdb + off) and so + believes __builtin_object_size( &partition->bytes_freed )==0, which + trips a spurious -Wstringop-overflow on the atomic add below. */ + FD_COMPILER_FORGET( partition ); + FD_ATOMIC_FETCH_AND_ADD( &partition->bytes_freed, sz ); + + /* Fast-path exit: skip the lock if clearly below threshold or + already enqueued. */ + if( FD_LIKELY( partition->bytes_freed<(accdb->partition_sz*3UL/10UL) ) ) return; + if( FD_UNLIKELY( partition->marked_compaction ) ) return; + + spin_lock_acquire( &accdb->partition_lock ); + fd_accdb_shmem_try_enqueue_compaction( accdb, partition_idx ); + spin_lock_release( &accdb->partition_lock ); +} + +ulong +fd_accdb_shmem_partition_max( fd_accdb_shmem_t const * accdb ) { + return accdb->partition_max; +} + +ulong +fd_accdb_shmem_partition_sz( fd_accdb_shmem_t const * accdb ) { + return accdb->partition_sz; +} + +void +fd_accdb_shmem_partition_info( fd_accdb_shmem_t const * accdb, + ulong partition_idx, + fd_accdb_shmem_partition_info_t * out ) { + fd_accdb_partition_t const * partition_pool = (fd_accdb_partition_t const *)( (uchar const *)accdb + accdb->partition_pool_off ); + fd_accdb_partition_t const * p = partition_pool_ele_const( partition_pool, partition_idx ); + + out->file_offset = partition_idx * accdb->partition_sz; + out->write_offset = FD_VOLATILE_CONST( p->write_offset ); + out->is_write_head = 0; + /* If this partition is currently the active write head for any + layer, partition->write_offset is stale (it's only updated at + handoff in change_partition). The live tip lives in whead[layer]. + Surface the live value so the GUI shows real-time fill, not the + "0 until rolled" snapshot. */ + for( ulong k=0UL; khas_partition[ k ] ) ) continue; + accdb_offset_t whead = { .val = FD_VOLATILE_CONST( accdb->whead[ k ].val ) }; + if( packed_partition_idx( &whead )==partition_idx ) { + out->write_offset = packed_partition_offset( &whead ); + out->is_write_head = 1; + break; + } + } + out->bytes_freed = FD_VOLATILE_CONST( p->bytes_freed ); + out->compaction_offset = FD_VOLATILE_CONST( p->compaction_offset ); + out->read_ops = FD_VOLATILE_CONST( p->read_ops ); + out->bytes_read = FD_VOLATILE_CONST( p->bytes_read ); + out->write_ops = FD_VOLATILE_CONST( p->write_ops ); + out->bytes_written = FD_VOLATILE_CONST( p->bytes_written ); + out->created_ticks = (long)FD_VOLATILE_CONST( p->created_ticks ); + out->filled_ticks = (long)FD_VOLATILE_CONST( p->filled_ticks ); + out->layer = p->layer; + uchar compacting = FD_VOLATILE_CONST( p->compacting_now ); + uchar queued = FD_VOLATILE_CONST( p->queued ); + out->compaction_state = compacting ? 2 : ( queued ? 1 : 0 ); +} diff --git a/src/flamenco/accdb/fd_accdb_shmem.h b/src/flamenco/accdb/fd_accdb_shmem.h new file mode 100644 index 00000000000..ca786916bfc --- /dev/null +++ b/src/flamenco/accdb/fd_accdb_shmem.h @@ -0,0 +1,140 @@ +#ifndef HEADER_fd_src_flamenco_accdb_fd_accdb_shmem_h +#define HEADER_fd_src_flamenco_accdb_fd_accdb_shmem_h + +#include "../../util/fd_util_base.h" +#include "fd_accdb_cache.h" + +#define FD_ACCDB_SHMEM_ALIGN (128UL) + +#define FD_ACCDB_SHMEM_MAGIC (0xF17EDA2CE7ACCDB0UL) /* FIREDANCE ACCDB V0 */ + +typedef struct fd_accdb_shmem_private fd_accdb_shmem_t; + +struct fd_accdb_shmem_metrics { + ulong accounts_total; + ulong accounts_capacity; + ulong disk_allocated_bytes; + ulong disk_current_bytes; + ulong disk_used_bytes; + int in_compaction; + ulong compactions_requested; + ulong compactions_completed; + ulong accounts_relocated; + ulong accounts_relocated_bytes; + ulong partitions_freed; +}; + +typedef struct fd_accdb_shmem_metrics fd_accdb_shmem_metrics_t; + +struct fd_accdb_metrics { + ulong acquire_calls; + ulong accounts_acquired_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong writable_accounts_acquired_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_evicted; + ulong accounts_evicted_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_preevicted; + ulong accounts_preevicted_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_committed_new_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_committed_overwrite_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_not_found_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_waited; + ulong accounts_deleted; + + ulong acquire_failed; + + ulong bytes_read; + ulong read_ops; + ulong bytes_written; + ulong write_ops; + ulong copy_ops; + + ulong bytes_copied; +}; + +typedef struct fd_accdb_metrics fd_accdb_metrics_t; + +FD_PROTOTYPES_BEGIN + +FD_FN_CONST ulong +fd_accdb_shmem_align( void ); + +ulong +fd_accdb_shmem_footprint( ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong cache_footprint, + ulong cache_min_reserved, + ulong joiner_cnt ); + +void * +fd_accdb_shmem_new( void * shmem, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz, + ulong cache_footprint, + ulong cache_min_reserved, + int bundle_enabled, + ulong seed, + ulong joiner_cnt ); + +fd_accdb_shmem_t * +fd_accdb_shmem_join( void * shtc ); + +void +fd_accdb_shmem_bytes_freed( fd_accdb_shmem_t * accdb, + ulong offset, + ulong sz ); + +/* fd_accdb_shmem_try_enqueue_compaction checks whether the partition + at partition_idx has crossed the compaction threshold and, if so, + enqueues it for compaction. The caller MUST hold partition_lock. + This is factored out of fd_accdb_shmem_bytes_freed so that + change_partition (which already holds the lock) can call it after + updating the write head, avoiding a race where the old write head + is skipped for enqueue. */ + +void +fd_accdb_shmem_try_enqueue_compaction( fd_accdb_shmem_t * accdb, + ulong partition_idx ); + +/* Per-partition snapshot for read-only consumers (GUI tile). The + underlying per-partition state is updated with relaxed atomics by + writers, so the snapshot is best-effort consistent. compaction_state + is 0=idle, 1=queued, 2=compacting. */ + +struct fd_accdb_shmem_partition_info { + ulong file_offset; /* byte offset of partition start in the accdb file */ + ulong write_offset; /* current write head within the partition */ + ulong bytes_freed; /* bytes marked freed within the partition */ + ulong compaction_offset; /* current compaction read offset within partition */ + ulong read_ops; + ulong bytes_read; + ulong write_ops; + ulong bytes_written; + long created_ticks; /* fd_tickcount when the partition was opened */ + long filled_ticks; /* fd_tickcount when partition closed (0 if active) */ + uchar layer; /* compaction tier this partition belongs to */ + uchar compaction_state; /* 0=idle, 1=queued, 2=compacting */ + uchar is_write_head; /* non-zero if this partition is the active write */ + /* head for any layer at the time of the snapshot */ +}; + +typedef struct fd_accdb_shmem_partition_info fd_accdb_shmem_partition_info_t; + +ulong +fd_accdb_shmem_partition_max( fd_accdb_shmem_t const * accdb ); + +ulong +fd_accdb_shmem_partition_sz( fd_accdb_shmem_t const * accdb ); + +void +fd_accdb_shmem_partition_info( fd_accdb_shmem_t const * accdb, + ulong partition_idx, + fd_accdb_shmem_partition_info_t * out ); + +FD_PROTOTYPES_END + +#endif /* HEADER_fd_src_flamenco_accdb_fd_accdb_shmem_h */ diff --git a/src/flamenco/accdb/test_accdb.c b/src/flamenco/accdb/test_accdb.c new file mode 100644 index 00000000000..b573680b130 --- /dev/null +++ b/src/flamenco/accdb/test_accdb.c @@ -0,0 +1,1151 @@ +#define _GNU_SOURCE + +#include "fd_accdb.h" +#include "fd_accdb_cache.h" +#define FD_ACCDB_NO_FORK_ID +#include "fd_accdb_private.h" +#undef FD_ACCDB_NO_FORK_ID +#include "../../util/fd_util.h" + +#include +#include +#include +#include + +static uchar pubkey0[ 32UL ] = { 0 }; +static uchar pubkey1[ 32UL ] = { 1, 0 }; + +static uchar owner2[ 32UL ] = { 2, 0 }; +static uchar owner3[ 32UL ] = { 3, 0 }; + +#define SENTINEL ((fd_accdb_fork_id_t){ .val = USHORT_MAX }) + +/* Disk metadata is packed: pubkey[32] + size(uint,4) = 36 */ +#define META_SZ (36UL) + +/* Cache footprint for tests. Class 7 slots are 10 MiB each and the + allocator reserves cache_min_reserved of every class off the top + (Phase 1), so the footprint floor is roughly + cache_min_reserved * sum(slot_sz) ~= cache_min_reserved * 11.2 MiB. + These unit tests only ever acquire a handful of accounts at a time, + so a tiny min_reserved keeps the whole cache in the tens of MiB + (vs. the production-scale ~7 GiB a 640-slot reservation would need) + and avoids OOMing CI / dev machines. */ +#define TEST_CACHE_MIN_RESERVED (2UL) +#define TEST_CACHE_FOOTPRINT (32UL<<20UL) + +static fd_accdb_shmem_t * test_shmem_mem; + +static fd_accdb_t * +test_setup_ex( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz, + ulong cache_fp, + ulong cache_min_reserved, + ulong joiner_cnt ) { + int fd = memfd_create( "accdb_test", 0 ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + *out_fd = fd; + + ulong shmem_fp = fd_accdb_shmem_footprint( max_accounts, max_live_slots, max_account_writes_per_slot, partition_cnt, cache_fp, cache_min_reserved, joiner_cnt ); + FD_TEST( shmem_fp ); + void * shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( shmem_mem ); + fd_accdb_shmem_t * shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( shmem_mem, max_accounts, max_live_slots, + max_account_writes_per_slot, partition_cnt, + partition_sz, cache_fp, cache_min_reserved, 0, 42UL, joiner_cnt ) ); + FD_TEST( shmem ); + test_shmem_mem = shmem_mem; + + ulong accdb_fp = fd_accdb_footprint( max_live_slots ); + FD_TEST( accdb_fp ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, shmem, fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +static fd_accdb_t * +test_setup( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz ) { + return test_setup_ex( out_fd, max_accounts, max_live_slots, max_account_writes_per_slot, + partition_cnt, partition_sz, TEST_CACHE_FOOTPRINT, TEST_CACHE_MIN_RESERVED, 1UL ); +} + +static void +test_teardown( fd_accdb_t * accdb, + int fd ) { + free( test_shmem_mem ); + free( accdb ); + close( fd ); +} + +/* Process any pending advance_root / purge command submitted to the + background tile. Must be called after advance_root or purge in + single-threaded tests so that the next T1 operation does not + deadlock waiting for the command to complete. */ +static void +drain_background( fd_accdb_t * accdb ) { + int charge_busy = 0; + fd_accdb_background( accdb, &charge_busy ); +} + +/* Helper: read a single account via acquire/release. Returns 1 if + the account exists (lamports!=0), 0 otherwise. */ +static int +accdb_read( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong * out_lamports, + uchar * out_data, + ulong * out_data_len, + uchar * out_owner ) { + uchar const * pks[1] = { pubkey }; + int wr[1] = { 0 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( accdb, fork_id, 1UL, pks, wr, acc ); + int found = acc[0].lamports!=0UL; + if( found ) { + if( out_lamports ) *out_lamports = acc[0].lamports; + if( out_data_len ) *out_data_len = acc[0].data_len; + if( out_owner ) memcpy( out_owner, acc[0].owner, 32UL ); + if( out_data && acc[0].data && acc[0].data_len ) + memcpy( out_data, acc[0].data, acc[0].data_len ); + } + fd_accdb_release( accdb, 1UL, acc ); + return found; +} + +/* Helper: write a single account via acquire/release. */ +static void +accdb_write( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong lamports, + uchar const * data, + ulong data_len, + uchar const * owner ) { + uchar const * pks[1] = { pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( accdb, fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = lamports; + acc[0].data_len = data_len; + memcpy( acc[0].owner, owner, 32UL ); + if( data_len && data ) memcpy( acc[0].data, data, data_len ); + acc[0].commit = 1; + fd_accdb_release( accdb, 1UL, acc ); +} + +void +test_background_preevict_ignores_uninitialized_tail( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + uchar owner[ 32UL ] = { 9, 0 }; + accdb_write( accdb, slot1, pubkey0, 1UL, NULL, 0UL, owner ); + + ulong cache_used [ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong cache_max [ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong cache_reserved[ FD_ACCDB_CACHE_CLASS_CNT ]; + fd_accdb_cache_class_occupancy( accdb, cache_used, cache_max, cache_reserved ); + + FD_TEST( cache_used[ 0UL ]==1UL ); + FD_TEST( cache_max[ 0UL ]>1UL ); + FD_TEST( fd_accdb_metrics( accdb )->accounts_preevicted==0UL ); + + int charge_busy = 0; + fd_accdb_background( accdb, &charge_busy ); + + fd_accdb_cache_class_occupancy( accdb, cache_used, cache_max, cache_reserved ); + + FD_TEST( cache_used[ 0UL ]==1UL ); + FD_TEST( fd_accdb_metrics( accdb )->accounts_preevicted==0UL ); + + test_teardown( accdb, fd ); +} + +void +test_basic( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + FD_TEST( !accdb_read( accdb, slot1, pubkey0, NULL, NULL, NULL, owner ) ); + FD_TEST( !accdb_read( accdb, slot1, pubkey1, NULL, NULL, NULL, owner ) ); + accdb_write( accdb, slot1, pubkey1, 1UL, NULL, 0UL, owner2 ); + FD_TEST( !accdb_read( accdb, slot1, pubkey0, NULL, NULL, NULL, owner ) ); + FD_TEST( accdb_read( accdb, slot1, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==1UL ); + FD_TEST( data_len==0UL ); + FD_TEST( !memcmp( owner, owner2, 32UL ) ); + + test_teardown( accdb, fd ); +} + +void +test_missing_readonly_account_initializes_entry( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + uchar missing_pubkey[ 32UL ] = { 0xAB }; + uchar zeros[ 32UL ] = { 0 }; + uchar const * pks[ 1 ] = { missing_pubkey }; + int wr[ 1 ] = { 0 }; + fd_acc_t acc[ 1 ]; + + memset( acc, 0xA5, sizeof(acc) ); + fd_accdb_acquire( accdb, slot1, 1UL, pks, wr, acc ); + + FD_TEST( !memcmp( acc[ 0 ].pubkey, missing_pubkey, 32UL ) ); + FD_TEST( !memcmp( acc[ 0 ].owner, zeros, 32UL ) ); + FD_TEST( !memcmp( acc[ 0 ].prior_owner, zeros, 32UL ) ); + FD_TEST( acc[ 0 ].lamports==0UL ); + FD_TEST( acc[ 0 ].data_len==0UL ); + FD_TEST( acc[ 0 ].data==NULL ); + FD_TEST( acc[ 0 ].executable==0 ); + FD_TEST( acc[ 0 ].prior_lamports==0UL ); + FD_TEST( acc[ 0 ].prior_data_len==0UL ); + FD_TEST( acc[ 0 ].prior_data==NULL ); + FD_TEST( acc[ 0 ].prior_executable==0 ); + FD_TEST( acc[ 0 ]._writable==0 ); + FD_TEST( acc[ 0 ]._original_size_class==ULONG_MAX ); + FD_TEST( acc[ 0 ]._original_cache_idx==ULONG_MAX ); + + fd_accdb_release( accdb, 1UL, acc ); + test_teardown( accdb, fd ); +} + +void +test_fork_basic( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t f1 = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t f2 = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t f3 = fd_accdb_attach_child( accdb, root ); + + FD_TEST( !accdb_read( accdb, f1, pubkey0, NULL, NULL, NULL, owner ) ); + FD_TEST( !accdb_read( accdb, f2, pubkey0, NULL, NULL, NULL, owner ) ); + FD_TEST( !accdb_read( accdb, f3, pubkey0, NULL, NULL, NULL, owner ) ); + + accdb_write( accdb, f1, pubkey1, 1UL, NULL, 0UL, owner2 ); + FD_TEST( accdb_read( accdb, f1, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( !accdb_read( accdb, f2, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( !accdb_read( accdb, f3, pubkey1, &lamports, &d, &data_len, owner ) ); + + accdb_write( accdb, f2, pubkey1, 1UL, NULL, 0UL, owner2 ); + FD_TEST( accdb_read( accdb, f1, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( accdb_read( accdb, f2, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( !accdb_read( accdb, f3, pubkey1, &lamports, &d, &data_len, owner ) ); + + fd_accdb_fork_id_t f4 = fd_accdb_attach_child( accdb, f2 ); + fd_accdb_fork_id_t f5 = fd_accdb_attach_child( accdb, f3 ); + FD_TEST( accdb_read( accdb, f4, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( !accdb_read( accdb, f5, pubkey1, &lamports, &d, &data_len, owner ) ); + + test_teardown( accdb, fd ); +} + +void +test_root_forks( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t f1 = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t f2 = fd_accdb_attach_child( accdb, root ); + + accdb_write( accdb, f2, pubkey1, 1UL, NULL, 0UL, owner2 ); + accdb_write( accdb, f1, pubkey1, 2UL, NULL, 0UL, owner2 ); + fd_accdb_fork_id_t f3 = fd_accdb_attach_child( accdb, f1 ); + accdb_write( accdb, f3, pubkey1, 3UL, NULL, 0UL, owner2 ); + + FD_TEST( accdb_read( accdb, f1, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==2UL ); + FD_TEST( accdb_read( accdb, f2, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==1UL ); + FD_TEST( accdb_read( accdb, f3, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==3UL ); + + /* Root f2: f1 and f3 are on a competing fork and should be purged. */ + fd_accdb_advance_root( accdb, f2 ); + drain_background( accdb ); + FD_TEST( accdb_read( accdb, f2, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==1UL ); + + test_teardown( accdb, fd ); +} + +static uchar big_data[ 10UL*(1UL<<20) ]; + +void +test_compact( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + ulong acct_sz = 10UL*(1UL<<20UL); + ulong writes_fit_in_partition = (1UL<<30UL) / (acct_sz + META_SZ); + + /* Write-back model: committed data stays dirty in cache. Repeated + overwrites of the same account never touch disk, so disk_used_bytes + remains 0 and the partition write-head does not advance. */ + for( ulong i=0UL; iaccounts_total == 1UL ); + FD_TEST( metrics->accounts_capacity == 1024UL ); + FD_TEST( fd_accdb_metrics( accdb )->write_ops == 0UL ); + FD_TEST( metrics->disk_allocated_bytes == 0UL ); + FD_TEST( metrics->disk_used_bytes == 0UL ); + FD_TEST( metrics->in_compaction == 0 ); + FD_TEST( metrics->compactions_requested == 0UL ); + FD_TEST( metrics->compactions_completed == 0UL ); + FD_TEST( metrics->accounts_relocated == 0UL ); + FD_TEST( metrics->accounts_relocated_bytes == 0UL ); + FD_TEST( metrics->partitions_freed == 0UL ); + + test_teardown( accdb, fd ); +} + +/* Test that writing the same account multiple times on the same fork + correctly updates the data each time and that reads return the + latest version. */ +void +test_overwrite_same_fork( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d[4]; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + uchar data_a[4] = { 0xAA, 0xBB, 0xCC, 0xDD }; + uchar data_b[4] = { 0x11, 0x22, 0x33, 0x44 }; + uchar data_c[2] = { 0xFF, 0xEE }; + + accdb_write( accdb, slot1, pubkey1, 100UL, data_a, 4UL, owner2 ); + FD_TEST( accdb_read( accdb, slot1, pubkey1, &lamports, d, &data_len, owner ) ); + FD_TEST( lamports==100UL ); + FD_TEST( data_len==4UL ); + FD_TEST( !memcmp( d, data_a, 4UL ) ); + + accdb_write( accdb, slot1, pubkey1, 200UL, data_b, 4UL, owner3 ); + FD_TEST( accdb_read( accdb, slot1, pubkey1, &lamports, d, &data_len, owner ) ); + FD_TEST( lamports==200UL ); + FD_TEST( data_len==4UL ); + FD_TEST( !memcmp( d, data_b, 4UL ) ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + accdb_write( accdb, slot1, pubkey1, 300UL, data_c, 2UL, owner2 ); + FD_TEST( accdb_read( accdb, slot1, pubkey1, &lamports, d, &data_len, owner ) ); + FD_TEST( lamports==300UL ); + FD_TEST( data_len==2UL ); + FD_TEST( !memcmp( d, data_c, 2UL ) ); + FD_TEST( !memcmp( owner, owner2, 32UL ) ); + + fd_accdb_shmem_metrics_t const * metrics = fd_accdb_shmetrics( accdb ); + FD_TEST( metrics->accounts_total == 1UL ); + + test_teardown( accdb, fd ); +} + +/* Test that multiple distinct accounts can coexist and be read back + correctly on different forks. */ +void +test_multiple_accounts( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + uchar pk_a[ 32UL ] = { 10 }; + uchar pk_b[ 32UL ] = { 20 }; + uchar pk_c[ 32UL ] = { 30 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t f1 = fd_accdb_attach_child( accdb, root ); + + accdb_write( accdb, f1, pk_a, 10UL, NULL, 0UL, owner2 ); + accdb_write( accdb, f1, pk_b, 20UL, NULL, 0UL, owner2 ); + accdb_write( accdb, f1, pk_c, 30UL, NULL, 0UL, owner3 ); + + FD_TEST( accdb_read( accdb, f1, pk_a, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==10UL ); + FD_TEST( accdb_read( accdb, f1, pk_b, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==20UL ); + FD_TEST( accdb_read( accdb, f1, pk_c, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==30UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + fd_accdb_shmem_metrics_t const * metrics = fd_accdb_shmetrics( accdb ); + FD_TEST( metrics->accounts_total == 3UL ); + + test_teardown( accdb, fd ); +} + +/* Test advancing the root through a chain of slots: root->A->B->C, + root each one in sequence, then verify the last is still readable. */ +void +test_sequential_rooting( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t a = fd_accdb_attach_child( accdb, root ); + accdb_write( accdb, root, pubkey1, 1UL, NULL, 0UL, owner2 ); + accdb_write( accdb, a, pubkey1, 2UL, NULL, 0UL, owner2 ); + + fd_accdb_advance_root( accdb, a ); + drain_background( accdb ); + + fd_accdb_fork_id_t b = fd_accdb_attach_child( accdb, a ); + accdb_write( accdb, b, pubkey1, 3UL, NULL, 0UL, owner2 ); + FD_TEST( accdb_read( accdb, b, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==3UL ); + + fd_accdb_advance_root( accdb, b ); + drain_background( accdb ); + + fd_accdb_fork_id_t c = fd_accdb_attach_child( accdb, b ); + FD_TEST( accdb_read( accdb, c, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==3UL ); + + accdb_write( accdb, c, pubkey1, 4UL, NULL, 0UL, owner3 ); + FD_TEST( accdb_read( accdb, c, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==4UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + test_teardown( accdb, fd ); +} + +/* Test purge: create a fork, write to it, purge it, and verify the + account is no longer visible while accounts on the surviving fork + remain. */ +void +test_purge( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + uchar pk_a[ 32UL ] = { 0xA0 }; + uchar pk_b[ 32UL ] = { 0xB0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t keep = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t drop = fd_accdb_attach_child( accdb, root ); + + accdb_write( accdb, keep, pk_a, 100UL, NULL, 0UL, owner2 ); + accdb_write( accdb, drop, pk_b, 50UL, NULL, 0UL, owner2 ); + + FD_TEST( accdb_read( accdb, keep, pk_a, &lamports, &d, &data_len, owner ) ); + FD_TEST( accdb_read( accdb, drop, pk_b, &lamports, &d, &data_len, owner ) ); + + fd_accdb_purge( accdb, drop ); + drain_background( accdb ); + + /* The account on the kept fork should still be there. */ + FD_TEST( accdb_read( accdb, keep, pk_a, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==100UL ); + + fd_accdb_shmem_metrics_t const * metrics = fd_accdb_shmetrics( accdb ); + FD_TEST( metrics->accounts_total == 1UL ); + + test_teardown( accdb, fd ); +} + +/* Test that child forks inherit writes from their parent (ancestor + visibility) and that overwriting on the child does not affect the + parent's view. */ +void +test_child_inherits_parent( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t parent = fd_accdb_attach_child( accdb, root ); + accdb_write( accdb, parent, pubkey1, 10UL, NULL, 0UL, owner2 ); + + fd_accdb_fork_id_t child = fd_accdb_attach_child( accdb, parent ); + + /* Child can see parent's write */ + FD_TEST( accdb_read( accdb, child, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==10UL ); + + /* Overwrite on child */ + accdb_write( accdb, child, pubkey1, 99UL, NULL, 0UL, owner3 ); + FD_TEST( accdb_read( accdb, child, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==99UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + /* Parent still sees original */ + FD_TEST( accdb_read( accdb, parent, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==10UL ); + FD_TEST( !memcmp( owner, owner2, 32UL ) ); + + test_teardown( accdb, fd ); +} + +/* Build a deep linear chain (root -> s0 -> s1 -> ... -> s9), write + the same account at every level with increasing lamports, then + root halfway through the chain. Verify that reads on deeper forks + still see the correct ancestor value and that rooting cleans up + correctly. */ +void +test_deep_chain_rooting( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + +# define DEPTH (10UL) + fd_accdb_fork_id_t chain[ DEPTH ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + chain[ 0 ] = fd_accdb_attach_child( accdb, root ); + accdb_write( accdb, chain[ 0 ], pubkey1, 1UL, NULL, 0UL, owner2 ); + for( ulong i=1UL; iaccounts_total==6UL ); + +# undef DEPTH + test_teardown( accdb, fd ); +} + +/* Create a wide fan-out: one parent with 16 sibling children, each + writing the same pubkey with a unique lamports value. Verify + perfect fork isolation-each sibling reads only its own value. */ +void +test_wide_fanout_isolation( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + +# define SIBLINGS (16UL) + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t parent = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t sibs[ SIBLINGS ]; + + for( ulong i=0UL; iaccounts_total==SIBLINGS ); + +# undef SIBLINGS + test_teardown( accdb, fd ); +} + +/* Purge a fork that has children and grandchildren. Verify the + entire subtree is recursively removed, while a sibling subtree + survives. */ +void +test_purge_deep_subtree( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + uchar pk_a[ 32UL ] = { 0xDA }; + uchar pk_b[ 32UL ] = { 0xDB }; + uchar pk_c[ 32UL ] = { 0xDC }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t keep = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t drop = fd_accdb_attach_child( accdb, root ); + + /* Build a subtree under drop: drop -> child -> grandchild */ + fd_accdb_fork_id_t drop_child = fd_accdb_attach_child( accdb, drop ); + fd_accdb_fork_id_t drop_grandchild = fd_accdb_attach_child( accdb, drop_child ); + + accdb_write( accdb, drop, pk_a, 1UL, NULL, 0UL, owner2 ); + accdb_write( accdb, drop_child, pk_b, 2UL, NULL, 0UL, owner2 ); + accdb_write( accdb, drop_grandchild, pk_c, 3UL, NULL, 0UL, owner2 ); + accdb_write( accdb, keep, pk_a, 9UL, NULL, 0UL, owner3 ); + + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==4UL ); + + fd_accdb_purge( accdb, drop ); + drain_background( accdb ); + + /* Only the account on the kept fork should remain. */ + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==1UL ); + FD_TEST( accdb_read( accdb, keep, pk_a, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==9UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + test_teardown( accdb, fd ); +} + +/* Write an account on the root fork, then overwrite it on a child + fork. After rooting the child, verify accounts_total stays at 1 + (the older version is tombstoned by the rooting pass). */ +void +test_root_tombstones_old_version( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t a = fd_accdb_attach_child( accdb, root ); + + accdb_write( accdb, root, pubkey1, 10UL, NULL, 0UL, owner2 ); + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==1UL ); + + accdb_write( accdb, a, pubkey1, 20UL, NULL, 0UL, owner3 ); + /* Two index entries exist now: one for root, one for a. */ + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==2UL ); + + fd_accdb_advance_root( accdb, a ); + drain_background( accdb ); + + /* After rooting, the older version on root should have been + tombstoned, leaving exactly one live acc. */ + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==1UL ); + + FD_TEST( accdb_read( accdb, a, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==20UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + test_teardown( accdb, fd ); +} + +/* Populate many distinct accounts on a single fork to exercise the + hash-chain logic (multiple accounts sharing the same chain bucket). + Then verify every account can still be read back correctly. */ +void +test_many_accounts_hash_chains( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + +# define N_ACCTS (200UL) + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t f = fd_accdb_attach_child( accdb, root ); + + uchar pks[ N_ACCTS ][ 32UL ]; + for( ulong i=0UL; i> 8UL)& 0xFFUL); + pks[ i ][ 2 ] = (uchar)((i>>16UL)& 0xFFUL); + pks[ i ][ 3 ] = (uchar)((i>>24UL)& 0xFFUL); + + accdb_write( accdb, f, pks[ i ], i+1UL, NULL, 0UL, owner2 ); + } + + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==N_ACCTS ); + + /* Read every account back and verify. */ + for( ulong i=0UL; iaccounts_total==N_ACCTS ); + for( ulong i=0UL; i<50UL; i++ ) { + FD_TEST( accdb_read( accdb, f, pks[ i ], &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==(i+1UL)*1000UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + } + for( ulong i=50UL; i>1) + (max_accounts&1UL) ); + + ulong cache_class_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + FD_TEST( fd_accdb_cache_class_cnt( cache_footprint, 640UL, cache_class_max ) ); + + ulong total_cache_slots = 0UL; + for( ulong c=0UL; c0UL && rows[j-1UL].szfloor_c ) ? ( max_c - floor_c ) : 0UL; + ulong cap = fd_ulong_min( 8192UL, (64UL<<20) / fd_accdb_cache_slot_sz[ c ] ); + ulong burst_floor = fd_ulong_min( 512UL, headroom/2UL ); + ulong target = fd_ulong_min( cap, fd_ulong_max( headroom/10UL, burst_floor ) ); + ulong low = (target * 3UL) / 4UL; + FD_LOG_NOTICE(( " class %lu: target=%lu low_water=%lu " + "(max=%lu reserved=%lu headroom=%lu cap=%lu)", + c, target, low, max_c, floor_c, headroom, cap )); + } +} + +/* test_acquire_b_refund_accounting drives the two-phase programdata + acquire (acquire_a over-reserves one slot in every live size class per + candidate; acquire_b refunds the surplus, keeping one reservation per + found programdata account in its own size class) followed by release, + and asserts the per-class reservation counters (cache_class_used, + surfaced via fd_accdb_cache_class_occupancy's `reserved`) return EXACTLY + to their pre-cycle baseline. + + This locks in that acquire_b's refund accounting balances. The refund + was moved out of fd_accdb_acquire_b (where it walked the acc_map with + the joiner epoch idle) into acquire_inner's epoch-protected STEP-1 walk; + a miscount (over- or under-refund) leaves a class counter off baseline + and fails here. We exercise a found programdata account in a TRACKED + size class plus a missing one (no accmeta -> no decrement) so the + per-class arithmetic is covered. + + A class only tracks reservations when cache_class_max[c] < + cache_min_reserved*joiner_cnt (otherwise the counter is pinned to + ULONG_MAX and acquire/release skip it). A footprint just above the + Phase-1 minimum keeps the larger class maxes pinned at the + cache_min_reserved floor (=2); joiner_cnt=2 (threshold 4) makes class + 3 — where pd_big lands — tracked, while leaving 2 slots, enough for + the two-candidate over-reservation. The whole cache is ~32 MiB. */ +static void +test_acquire_b_refund_accounting( void ) { + int fd; + fd_accdb_t * accdb = test_setup_ex( &fd, 256UL, 16UL, 1024UL, 1024UL, 1UL<<30UL, + TEST_CACHE_FOOTPRINT, TEST_CACHE_MIN_RESERVED, 2UL ); + + fd_accdb_fork_id_t root0 = fd_accdb_attach_child( accdb, SENTINEL ); + + uchar cand0 [ 32 ] = { 'a', 0 }; + uchar cand1 [ 32 ] = { 'b', 0 }; + uchar owner [ 32 ] = { 0x11, 0 }; + uchar pd_big[ 32 ] = { 'G', 0 }; /* class 3 (4 KiB) -- a TRACKED class */ + uchar pd_none[ 32 ] = { 'N', 0 }; /* never committed -> no accmeta */ + + uchar bigdata[ 4096 ]; + memset( bigdata, 0xCD, sizeof(bigdata) ); + + accdb_write( accdb, root0, cand0, 100UL, NULL, 0UL, owner ); + accdb_write( accdb, root0, cand1, 100UL, NULL, 0UL, owner ); + accdb_write( accdb, root0, pd_big, 100UL, bigdata, sizeof(bigdata), owner ); + + ulong used0[ FD_ACCDB_CACHE_CLASS_CNT ], max0[ FD_ACCDB_CACHE_CLASS_CNT ], base[ FD_ACCDB_CACHE_CLASS_CNT ]; + fd_accdb_cache_class_occupancy( accdb, used0, max0, base ); + + /* Phase A: acquire the two candidates read-only (maybe-programdata + over-reservation: +1 to every tracked class per candidate). */ + uchar const * cand_pks[2] = { cand0, cand1 }; + int cand_wr [2] = { 0, 0 }; + fd_acc_t cand_acc[2]; + memset( cand_acc, 0, sizeof(cand_acc) ); + fd_accdb_acquire_a( accdb, root0, 2UL, cand_pks, cand_wr, cand_acc ); + + /* Phase B: resolve programdata and refund the surplus. reserved_cnt is + the candidate count (2), exactly as fd_executor.c passes + txn_out->accounts.cnt. */ + uchar const * pd_pks[2] = { pd_big, pd_none }; + int pd_wr [2] = { 0, 0 }; + fd_acc_t pd_acc[2]; + memset( pd_acc, 0, sizeof(pd_acc) ); + fd_accdb_acquire_b( accdb, root0, 2UL, 2UL, pd_pks, pd_wr, pd_acc ); + + fd_accdb_release_ab( accdb, 2UL, cand_acc, 2UL, pd_acc ); + + ulong used1[ FD_ACCDB_CACHE_CLASS_CNT ], max1[ FD_ACCDB_CACHE_CLASS_CNT ], post[ FD_ACCDB_CACHE_CLASS_CNT ]; + fd_accdb_cache_class_occupancy( accdb, used1, max1, post ); + int any_tracked = 0; + for( ulong c=0UL; c class not tracked */ + FD_TEST( post[ c ]==base[ c ] ); + } + /* Meaningful only if at least one class actually tracks reservations. */ + FD_TEST( any_tracked ); + + test_teardown( accdb, fd ); +} + +/* test_sentinel_index_wrap is a regression for issue #543: at the + maximum partition_cnt==8192 the initial write-head sentinel's packed + partition index (partition_cnt) does not fit in the 13-bit index + field and wraps to 0 -- a perfectly valid pool index. An earlier + allocate_next_write detected the first partition switch purely by + "the head's partition index changed away from the sentinel's", which + could spin forever when the freshly-acquired partition reused index 0. + + This test pins two things: + + 1. The wrap is real (documents the root cause): accdb_offset packs the + index in bits 63..51, so 8192<<51 wraps to an index of 0, while the + sentinel's invalidity actually lives in the offset bits + (partition_offset==partition_sz). + + 2. The switch-wait predicate is robust to that wrap. A writer parks in + the wait loop only after its own fetch-and-add returned an offset + strictly past partition_sz; the loop must terminate once the head's + offset drops back to <=partition_sz (a switch resets the offset to + 0), independent of whether the index changed. We assert that the + sentinel's own offset never satisfies the post-overrun predicate + (so a parked writer cannot mistake the pristine sentinel for a + completed switch) yet a switched head always does. + + It also drives a real first-partition overflow at partition_cnt==8192 + end-to-end to confirm the switch path runs to completion (no hang) + and accounts read back correctly. */ +static void +test_sentinel_index_wrap( void ) { + ulong const partition_sz = 1UL<<20; /* arbitrary, only its packing matters here */ + ulong const max_cnt = 1UL<<13; /* 8192 -- the maximum partition_cnt */ + + /* (1) The wrap is real (the root cause). accdb_offset packs the index + into bits 63..51, so the sentinel index (== partition_cnt == 8192) + does not fit in 13 bits and wraps to 0 -- a perfectly valid pool + index. The sentinel's invalidity therefore lives in the OFFSET + bits (partition_offset == partition_sz), not the index. */ + accdb_offset_t sentinel = accdb_offset( max_cnt, partition_sz ); + FD_TEST( packed_partition_idx ( &sentinel )==0UL ); /* wrapped! */ + FD_TEST( packed_partition_offset( &sentinel )==partition_sz ); + + /* (2) The switch-wait loop in allocate_next_write must not rely on the + head's partition index changing away from the sentinel's: a freshly + acquired partition can reuse index 0, colliding with the wrapped + sentinel index, and an index-only check would then spin forever + (the issue #543 deadlock). The fix also breaks when the head's + offset drops back to <= partition_sz (a switch resets it to 0). + Assert both halves of that reasoning. */ + + /* A parked writer reached the wait loop only after its own fetch-and-add + pushed the offset strictly past partition_sz. The pristine sentinel + offset (== partition_sz) must NOT satisfy the post-switch predicate, + or a writer could mistake the un-switched sentinel for a completed + switch. */ + FD_TEST( !(packed_partition_offset( &sentinel ) < partition_sz) ); + FD_TEST( packed_partition_offset( &sentinel )<=partition_sz ); /* boundary, exclusive of < */ + + /* A switched head that happens to reuse the sentinel's (wrapped) index + is indistinguishable by index alone, but its offset is back in range, + so the offset-based half of the predicate detects the switch. */ + accdb_offset_t switched = accdb_offset( 0UL /* pool handed back index 0 */, 0UL ); + FD_TEST( packed_partition_idx ( &switched )==packed_partition_idx( &sentinel ) ); /* index collision */ + FD_TEST( packed_partition_offset( &switched ) < partition_sz ); /* but detectable */ + + /* (3) The constructor accepts the maximum partition_cnt==8192 (the + default), so the wrap above is a reachable configuration, not a + rejected one. */ + ulong fp = fd_accdb_shmem_footprint( 1024UL, 64UL, 8192UL, max_cnt, + TEST_CACHE_FOOTPRINT, TEST_CACHE_MIN_RESERVED, 1UL ); + FD_TEST( fp ); /* 0 would mean partition_cnt==8192 was rejected */ +} + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + FD_LOG_NOTICE(( "test_basic ..." )); + test_basic(); + + FD_LOG_NOTICE(( "test_background_preevict_ignores_uninitialized_tail ..." )); + test_background_preevict_ignores_uninitialized_tail(); + + FD_LOG_NOTICE(( "test_missing_readonly_account_initializes_entry ..." )); + test_missing_readonly_account_initializes_entry(); + + FD_LOG_NOTICE(( "test_fork_basic ..." )); + test_fork_basic(); + + FD_LOG_NOTICE(( "test_root_forks ..." )); + test_root_forks(); + + FD_LOG_NOTICE(( "test_compact ..." )); + test_compact(); + + FD_LOG_NOTICE(( "test_overwrite_same_fork ..." )); + test_overwrite_same_fork(); + + FD_LOG_NOTICE(( "test_multiple_accounts ..." )); + test_multiple_accounts(); + + FD_LOG_NOTICE(( "test_sequential_rooting ..." )); + test_sequential_rooting(); + + FD_LOG_NOTICE(( "test_purge ..." )); + test_purge(); + + FD_LOG_NOTICE(( "test_child_inherits_parent ..." )); + test_child_inherits_parent(); + + FD_LOG_NOTICE(( "test_deep_chain_rooting ..." )); + test_deep_chain_rooting(); + + FD_LOG_NOTICE(( "test_wide_fanout_isolation ..." )); + test_wide_fanout_isolation(); + + FD_LOG_NOTICE(( "test_purge_deep_subtree ..." )); + test_purge_deep_subtree(); + + FD_LOG_NOTICE(( "test_root_tombstones_old_version ..." )); + test_root_tombstones_old_version(); + + FD_LOG_NOTICE(( "test_many_accounts_hash_chains ..." )); + test_many_accounts_hash_chains(); + + FD_LOG_NOTICE(( "test_mainnet_footprint ..." )); + test_mainnet_footprint(); + + FD_LOG_NOTICE(( "test_acquire_b_refund_accounting ..." )); + test_acquire_b_refund_accounting(); + + FD_LOG_NOTICE(( "test_sentinel_index_wrap ..." )); + test_sentinel_index_wrap(); + + FD_LOG_NOTICE(( "success" )); + + fd_halt(); + return 0; +} diff --git a/src/flamenco/accdb/test_accdb_cache.c b/src/flamenco/accdb/test_accdb_cache.c new file mode 100644 index 00000000000..022c69d5208 --- /dev/null +++ b/src/flamenco/accdb/test_accdb_cache.c @@ -0,0 +1,132 @@ +/* Smoke test for fd_accdb_cache_class_cnt. */ + +#include "fd_accdb_cache.h" +#include "../../util/fd_util.h" + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + ulong class_cnt[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Test a range of cache sizes. */ + + static const ulong test_gb[] = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 }; + + for( ulong t=0UL; t=640UL ); + } + + /* Verify total memory does not exceed budget. */ + + ulong total = 0UL; + for( ulong c=0UL; c=2500UL ); /* 8K must fit p99 ws + headroom */ + FD_TEST( class_cnt[5]<=16384UL ); /* 128K bounded (~8.8K observed) */ + FD_TEST( class_cnt[6]<=2048UL ); /* 1M bounded (~1.0K observed) */ + FD_TEST( class_cnt[7]<=2048UL ); /* 10M bounded (~0.7K observed) */ + } + + /* Log the allocation. */ + + for( ulong c=0UL; c=fd_ulong_min( pop_max[c], FD_ACCDB_CACHE_LINE_MAX ) ); + ulong mem_mib = class_cnt[c] * fd_accdb_cache_slot_sz[c] / (1UL<<20); + FD_LOG_NOTICE(( " class %lu: %12lu slots %8lu MiB", + c, class_cnt[c], mem_mib )); + total_caps += class_cnt[c] * fd_accdb_cache_slot_sz[c]; + } + FD_TEST( total_caps<=(all_caps_gib+1UL)*(1UL<<30) ); + FD_LOG_NOTICE(( " total: %lu MiB / %lu MiB (%.1f%% used)", + total_caps/(1UL<<20), + (all_caps_gib+1UL)*(1UL<<30)/(1UL<<20), + 100.0*(double)total_caps/ + (double)((all_caps_gib+1UL)*(1UL<<30)) )); + + FD_LOG_NOTICE(( "pass" )); + fd_halt(); + return 0; +} diff --git a/src/flamenco/accdb/test_accdb_racesan.c b/src/flamenco/accdb/test_accdb_racesan.c new file mode 100644 index 00000000000..ace6e3e1531 --- /dev/null +++ b/src/flamenco/accdb/test_accdb_racesan.c @@ -0,0 +1,2193 @@ +/* test_accdb_racesan.c deterministically weaves the concurrent accdb + operations to hunt for the live-only bank-hash mismatch. + + The accdb threading model (see fd_accdb.h) is: + + T1 (replay) : attach_child (inline), advance_root/purge (submit + a cmd, deferred to T2), acquire, release. + T2 (background): fd_accdb_background -> background_advance_root / + background_purge / compaction. + T3 (executors) : acquire, release. + + The bank-hash-mismatch mechanism is a reader (acquire) on some fork + pinning an account VERSION that is not actually visible to that fork + -- i.e. a version from a non-ancestor (cancelled sibling) fork, or a + stale version that has been superseded. The visibility predicate in + fd_accdb_acquire_inner (generation<=root_generation || same-fork || + descends_set_test) is the guard, and ASSERTIONS A1/A2/A3 in that + function fire if the chain is mutated under the reader such that a + non-visible version is selected. Those assertions ARE the oracle for + these tests; we additionally check structural metrics. + + The races weave fd_accdb_acquire (T3) against fd_accdb_background + running an advance_root / purge (T2), and against fd_accdb_release + (prepend). Hooks instrumented in fd_accdb.c: + accdb_acquire:post_root_gen (reader snapshotted root_generation) + accdb_acquire:post_next (reader holds candidate + map.next) + accdb_advance:pre_unlink (T2 about to unlink an old version) + accdb_advance:pre_publish_root (T2 about to publish new root) + accdb_advance:post_publish_root + accdb_release:pre_chain_cas (release about to prepend) */ + +#define _GNU_SOURCE + +#include "fd_accdb.h" +#include "fd_accdb_cache.h" +#define FD_ACCDB_NO_FORK_ID +#include "fd_accdb_private.h" +#undef FD_ACCDB_NO_FORK_ID +#include "../../util/fd_util.h" +#include "../../util/racesan/fd_racesan_async.h" +#include "../../util/racesan/fd_racesan_weave.h" + +#include +#include +#include +#include + +#define SENTINEL ((fd_accdb_fork_id_t){ .val = USHORT_MAX }) + +#define ITER_DEFAULT (4096UL) +#define STEP_MAX (100000UL) + +/* Cache footprint for tests. Must cover cache_min_reserved slots of + every size class (class 7 is 10 MiB each). We use cache_min_reserved + =4 here (vs replay's 640) since these tests have only a handful of + joiners and touch a single small account, keeping the one-time + allocation small enough to create per test cheaply. */ +#define TEST_CACHE_MIN_RESERVED (4UL) +#define TEST_CACHE_FOOTPRINT (256UL<<20UL) + +#define FIBER_STACK_MAX (1UL<<21) + +/* Test sizing. Small but enough live slots for a few forks. */ +#define T_MAX_ACCOUNTS (1024UL) +#define T_MAX_LIVE_SLOTS (64UL) +#define T_WRITES_PER_SLOT (8192UL) +#define T_PARTITION_CNT (8192UL) +#define T_PARTITION_SZ (1UL<<30UL) +#define T_JOINER_CNT (8UL) /* ctl + reader + background/writer, with headroom */ + +/* ------------------------------------------------------------------ */ +/* shmem + per-fiber join management */ +/* ------------------------------------------------------------------ */ + +static void * g_shmem_mem; +static fd_accdb_shmem_t * g_shmem; +static int g_fd; + +static fd_accdb_shmem_t * +test_shmem_new_cfg2( ulong cache_fp, + ulong cache_min_reserved, + ulong partition_sz ) { + g_fd = memfd_create( "accdb_racesan", 0 ); + if( FD_UNLIKELY( g_fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + + ulong shmem_fp = fd_accdb_shmem_footprint( T_MAX_ACCOUNTS, T_MAX_LIVE_SLOTS, T_WRITES_PER_SLOT, T_PARTITION_CNT, cache_fp, cache_min_reserved, T_JOINER_CNT ); + FD_TEST( shmem_fp ); + g_shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( g_shmem_mem ); + g_shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( g_shmem_mem, T_MAX_ACCOUNTS, T_MAX_LIVE_SLOTS, + T_WRITES_PER_SLOT, T_PARTITION_CNT, + partition_sz, cache_fp, cache_min_reserved, 0, 42UL, T_JOINER_CNT ) ); + FD_TEST( g_shmem ); + return g_shmem; +} + +static fd_accdb_shmem_t * +test_shmem_new_cfg( ulong cache_fp, + ulong cache_min_reserved ) { + return test_shmem_new_cfg2( cache_fp, cache_min_reserved, T_PARTITION_SZ ); +} + +static fd_accdb_shmem_t * +test_shmem_new( void ) { + return test_shmem_new_cfg( TEST_CACHE_FOOTPRINT, TEST_CACHE_MIN_RESERVED ); +} + +/* Small-partition config for compaction/reclamation tests. A partition + must be at least 10 MiB + header to fit a worst-case account, so the + smallest useful partition is ~12 MiB; with ~4 MiB records three + writes fill+rotate a partition and overwriting one frees >33%, + enqueuing it for compaction. */ +#define T_SMALL_PARTITION_SZ (12UL<<20UL) /* 12 MiB (>= 10 MiB min) */ + +/* Sizing for the compaction/epoch/owner-corruption tests. */ +#define EPOCH_ITER (32UL) /* compaction setup writes ~100 MB/iter; keep modest */ +#define BIG_DATA (4UL<<20) /* 4 MiB: 3 records fill a 12 MiB partition */ + +/* Minimal cache: set the footprint to EXACTLY cache_min_reserved * sum of + all class slot sizes. At that footprint the allocator's phase-1 gives + each class exactly cache_min_reserved slots and phase-2 has zero budget + left to top up — so class 0 has exactly cache_min_reserved slots. With + only a few class-0 slots, a handful of distinct class-0 accounts forces + CLOCK eviction, and re-reading an evicted account cold-loads from the + backing memfd. (Slot sizes mirror fd_accdb_cache_slot_sz in + fd_accdb_cache.c; META_SZ is FD_ACCDB_CACHE_META_SZ.) */ +#define TEST_TINY_CACHE_MIN_RESERVED (8UL) + +static ulong +test_tiny_cache_footprint( void ) { + ulong const data[ FD_ACCDB_CACHE_CLASS_CNT ] = + { 128UL, 512UL, 2048UL, 8192UL, 32768UL, 131072UL, 1048576UL, 10485760UL }; + ulong sum = 0UL; + for( ulong c=0UL; c (LAMP_A,TAG_A); 1 -> (LAMP_B,TAG_B) */ + } overwrite; + + struct { + int charge_busy; + } background; + + struct { + fd_accdb_fork_id_t fork_id; + uchar pubkey[ 32UL ]; + ulong expect_lamports; + uchar expect_owner0; /* expected owner[0] tag */ + ulong expect_data_len; + uchar expect_data_fill; /* expected data byte value */ + } nocache; + + struct { + int steps; /* number of fd_accdb_background calls to issue */ + } compact_loop; + }; +}; +typedef struct fiber fiber_t; + +/* Two self-consistent (lamports, owner-tag) states the overwrite writer + toggles between. LAMP_A is non-zero (live); the owner tag is encoded + in owner[0] so a reader can check (lamports,owner) consistency. We + also exercise the tombstone boundary by including a zero-lamport + state in the dedicated torn-tombstone test. */ +#define LAMP_A (2039280UL) /* SPL-token rent-exempt, like the real acct[32] */ +#define TAG_A (0x11) +#define LAMP_B (5000000UL) +#define TAG_B (0x22) + +static fiber_t g_fiber[ 4 ]; + +/* Mixed into each iteration's weave seed so the same build can sweep many + distinct interleaving schedules across runs (--seed-base N). */ +static ulong g_seed_base = 0UL; + +/* Set when the test was named explicitly on the command line. Used to + gate demonstration tests that intentionally FAIL (contract-violating + repros) so they don't break a default "run all" invocation. */ +static int g_explicit = 0; + +/* acquire fiber: a read-only acquire+release of one account. This is + the T3 reader whose visibility assertions (A1/A2/A3) are the oracle. */ + +static void +fiber_acquire_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->acquire.pubkey }; + int wr[1] = { 0 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->acquire.fork_id, 1UL, pks, wr, acc ); + /* Cold-load / eviction correctness oracle: the bytes the reader sees + must match what was committed for this (key, fork). A torn cold-load + or a wrong cache_try_pin (ABA that slipped the key recheck) would + surface here as a lamports/pubkey mismatch. */ + if( f->acquire.expect_lamports ) { + FD_TEST( acc[0].lamports==f->acquire.expect_lamports ); + FD_TEST( !memcmp( acc[0].pubkey, f->acquire.pubkey, 32UL ) ); + } + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_acquire_expect( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong expect_lamports ) { + fiber->accdb = accdb; + fiber->acquire.fork_id = fork_id; + fiber->acquire.expect_lamports = expect_lamports; + memcpy( fiber->acquire.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_acquire_exec, fiber ); + return fiber->async; +} + +static fd_racesan_async_t * +fiber_acquire( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + return fiber_acquire_expect( fiber, accdb, fork_id, pubkey, 0UL ); +} + +/* release fiber: a writable acquire+commit+release, which prepends a new + acc to the hash chain (the accdb_release:pre_chain_cas hook). */ + +static void +fiber_release_write_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->release_write.pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->release_write.fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = f->release_write.lamports; + acc[0].data_len = 0UL; + memcpy( acc[0].owner, g_zero_owner, 32UL ); + acc[0].commit = 1; + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_release_write( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong lamports ) { + fiber->accdb = accdb; + fiber->release_write.fork_id = fork_id; + fiber->release_write.lamports = lamports; + memcpy( fiber->release_write.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_release_write_exec, fiber ); + return fiber->async; +} + +/* consistent-reader fiber: read-only acquire that asserts the returned + (lamports, owner) form a self-consistent pair the overwrite writer + could have committed. This is the torn-read oracle for the proposed + acct[2]/[3]/[32] mechanism: lamports is read three times in + acquire_inner (STEP 7 tombstone, STEP 7 lamports, STEP 14 tombstone) + and the owner once (STEP 14); if any disagree, we observe a pair the + writer never committed. */ + +static void +fiber_acquire_consistent_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->acquire_consistent.pubkey }; + int wr[1] = { 0 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->acquire_consistent.fork_id, 1UL, pks, wr, acc ); + + ulong lam = acc[0].lamports; + uchar tag = acc[0].owner[0]; + /* Permitted observations: + (LAMP_A, TAG_A), (LAMP_B, TAG_B) -> a committed live state + (0, all-zero owner) -> tombstone reset (lamports==0) + Anything else is a torn read: e.g. lamports=LAMP_A with owner tag + TAG_B, or lamports==0 with a non-zero owner tag, or lamports!=0 with + a zero owner. */ + int ok = ( lam==LAMP_A && tag==TAG_A ) || + ( lam==LAMP_B && tag==TAG_B ) || + ( lam==0UL && tag==0x00 ); + if( FD_UNLIKELY( !ok ) ) { + FD_LOG_ERR(( "accdb torn read: lamports=%lu owner[0]=0x%02x (neither a committed pair nor a clean tombstone)", + lam, (uint)tag )); + } + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_acquire_consistent( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + fiber->accdb = accdb; + fiber->acquire_consistent.fork_id = fork_id; + memcpy( fiber->acquire_consistent.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_acquire_consistent_exec, fiber ); + return fiber->async; +} + +/* overwrite-writer fiber: writable acquire+commit+release on the SAME + (pubkey, fork) the reader uses, committing a self-consistent pair. + This deliberately overlaps a read-only acquire of the same account on + the same fork — which the public API forbids — to probe whether the + acquire path's multiple unsynchronized reads of accmeta->lamports tear + when the selected accmeta is overwritten in place (release STEP 1, + fd_accdb.c:3038). */ + +static void +fiber_overwrite_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->overwrite.pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->overwrite.fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = f->overwrite.state ? LAMP_B : LAMP_A; + acc[0].data_len = 0UL; + memset( acc[0].owner, 0, 32UL ); + acc[0].owner[0] = f->overwrite.state ? TAG_B : TAG_A; + acc[0].commit = 1; + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_overwrite( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + int state ) { + fiber->accdb = accdb; + fiber->overwrite.fork_id = fork_id; + fiber->overwrite.state = state; + memcpy( fiber->overwrite.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_overwrite_exec, fiber ); + return fiber->async; +} + +/* full-size overwrite fiber: a same-fork, SAME-size-class (BIG_DATA) + in-place overwrite of K with a distinct (owner0, data fill). The + in-place commit xchg's K's offset_fork to INVAL then re-publishes, and + rewrites the cache-line owner+data (offset 64+). Used to race a cold + reader's disk-read iovec build (accdb_coldload:pre_iovec): the cold + reader must never scatter a torn/INVAL on-disk record into its owner + field — the offset_fork!=INVAL spin is what guarantees this. */ +static void +fiber_overwrite_full_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->overwrite.pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->overwrite.fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = LAMP_B; + acc[0].data_len = BIG_DATA; + memset( acc[0].owner, 0, 32UL ); acc[0].owner[0] = TAG_B; + if( acc[0].data ) memset( acc[0].data, 0xBB, BIG_DATA ); + acc[0].commit = 1; + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_overwrite_full( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + fiber->accdb = accdb; + fiber->overwrite.fork_id = fork_id; + memcpy( fiber->overwrite.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_overwrite_full_exec, fiber ); + return fiber->async; +} + +/* background fiber: one unit of T2 work, which executes a pending + advance_root / purge command (where the advance hooks live). */ + +static void +fiber_background_exec( void * _ctx ) { + fiber_t * f = _ctx; + f->background.charge_busy = 0; + fd_accdb_background( f->accdb, &f->background.charge_busy ); +} + +static fd_racesan_async_t * +fiber_background( fiber_t * fiber, + fd_accdb_t * accdb ) { + fiber->accdb = accdb; + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_background_exec, fiber ); + return fiber->async; +} + +/* nocache reader fiber: drives fd_accdb_read_one_nocache, the RO disk + path with the epoch lifecycle (publish epoch -> snapshot offset_fork -> + preadv2 -> reset epoch). This is the reader the epoch-reclamation + protocol must protect against compaction freeing the source partition. + Oracle: the returned (lamports, owner[0], data_len, data bytes) must + match what was committed for this quiescent account — a freed/reused + partition read would surface as zeros or neighbor bytes. */ + +static uchar g_nocache_data[ 10UL<<20 ]; /* shared; fibers run cooperatively */ + +static void +fiber_nocache_exec( void * _ctx ) { + fiber_t * f = _ctx; + ulong lamports = 0UL; int executable = 0; ulong data_len = 0UL; + uchar owner[ 32UL ]; + memset( owner, 0xAB, 32UL ); /* poison so a skipped owner-write is visible */ + fd_accdb_read_one_nocache( f->accdb, f->nocache.fork_id, f->nocache.pubkey, + &lamports, &executable, owner, g_nocache_data, &data_len ); + if( FD_LIKELY( f->nocache.expect_lamports ) ) { + FD_TEST( lamports==f->nocache.expect_lamports ); + FD_TEST( data_len==f->nocache.expect_data_len ); + FD_TEST( owner[0]==f->nocache.expect_owner0 ); + /* spot-check the data bytes: all must equal the committed fill, never + zero/stale from a reclaimed-then-reused partition. */ + for( ulong z=0UL; znocache.expect_data_fill ); + if( data_len ) FD_TEST( g_nocache_data[ data_len-1UL ]==f->nocache.expect_data_fill ); + } else if( f->nocache.expect_owner0==0xFF /*consistency-only sentinel*/ && lamports ) { + /* The account is live; its (owner0, data) MUST be one of the two known + self-consistent committed states (TAG_A/0xAA or TAG_B/0xBB), never a + torn owner from a stale/INVAL cold-load offset. The key (offset + 0..36) is set by the cache line, so a torn read shows up as a + mismatched owner/data with a correct pubkey — exactly here. */ + uchar tag = owner[0]; uchar d0 = data_len? g_nocache_data[0] : 0; + uchar dz = data_len? g_nocache_data[ data_len-1UL ] : 0; + int ok = ( tag==TAG_A && data_len==BIG_DATA && d0==0xAA && dz==0xAA ) || + ( tag==TAG_B && data_len==BIG_DATA && d0==0xBB && dz==0xBB ); + if( FD_UNLIKELY( !ok ) ) { + FD_LOG_ERR(( "coldload torn read: live K owner0=0x%02x data_len=%lu d0=0x%02x dlast=0x%02x (neither committed TAG_A/0xAA nor TAG_B/0xBB)", + (uint)tag, data_len, (uint)d0, (uint)dz )); + } + } +} + +static fd_racesan_async_t * +fiber_nocache( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong expect_lamports, + uchar expect_owner0, + ulong expect_data_len, + uchar expect_data_fill ) { + fiber->accdb = accdb; + fiber->nocache.fork_id = fork_id; + fiber->nocache.expect_lamports = expect_lamports; + fiber->nocache.expect_owner0 = expect_owner0; + fiber->nocache.expect_data_len = expect_data_len; + fiber->nocache.expect_data_fill = expect_data_fill; + memcpy( fiber->nocache.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_nocache_exec, fiber ); + return fiber->async; +} + +/* compaction-loop fiber: issues N fd_accdb_background calls, driving + compaction (one record relocated per call per layer) and deferred-free + partition reclamation to completion within a single weave. */ + +static void +fiber_compact_loop_exec( void * _ctx ) { + fiber_t * f = _ctx; + for( int s=0; scompact_loop.steps; s++ ) { + int charge_busy = 0; + fd_accdb_background( f->accdb, &charge_busy ); + } +} + +static fd_racesan_async_t * +fiber_compact_loop( fiber_t * fiber, + fd_accdb_t * accdb, + int steps ) { + fiber->accdb = accdb; + fiber->compact_loop.steps = steps; + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_compact_loop_exec, fiber ); + return fiber->async; +} + +static void +fiber_done( fiber_t * fiber ) { + fd_racesan_async_delete( fiber->async ); +} + +/* ------------------------------------------------------------------ */ +/* tests */ +/* ------------------------------------------------------------------ */ + +/* LIFECYCLE NOTE. advance_root requires its argument to be a DIRECT + CHILD of the current root. So each test establishes the root ONCE + (attach_child(SENTINEL)) before the loop, and each iteration walks the + trunk forward by exactly one level: from the current root R it attaches + A=child(R) (plus any sibling/child needed for the race), runs the + weave (whose background fiber executes the submitted advance_root(A)), + and ends with A as the new root. Because the weave asserts + !w->rem_cnt, both fibers always run to completion, so by the end of the + iteration the advance has fully executed and A is the root for the next + iteration. Old root slots are deferred-freed and recycle, keeping the + live-slot count bounded across all iterations. */ + +/* test_acquire_vs_advance: the core bank-hash mechanism. + + R(current root) --> A --> A1 [reader's fork] + + key has a rooted version (written on R's trunk) and a NEW version on + A1. We submit advance_root(A) and race the T2 background that + executes it against a reader acquiring key on A1. The reader snapshots + the OLD root_generation, then T2 advances the root to A, recycles R's + slot, and unlinks superseded versions. If the reader selects a version + not visible to A1, ASSERTION A2 fires. */ + +static void +test_acquire_vs_advance( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* reader join */ + fd_accdb_t * jb = join_new(); /* background join */ + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* The weave executed advance_root(A), so A is now the root with A1 + as its only child. Collapse fully onto A1 so the trunk leaves no + dangling forks for the next iteration (keeping live slots bounded). */ + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jb ); + test_shmem_delete(); +} + +/* test_acquire_vs_advance_sibling: reader on the winning trunk while the + losing sibling subtree is removed by advance_root. + + R(current root) --> A --> A1 [reader's fork, winner] + \-> B [loser, DIFFERENT version of key] + + advance_root(A) removes B (and B's version of key). A reader on A1 + must never observe B's version. A2 is the oracle. */ + +static void +test_acquire_vs_advance_sibling( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); + fd_accdb_t * jb = join_new(); + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* weave executed advance_root(A) (dropping sibling B); collapse onto A1 */ + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jb ); + test_shmem_delete(); +} + +/* test_acquire_interior_unlink: force the reader to traverse PAST a chain + node that is concurrently being unlinked, and to SKIP a non-visible + head, so the visibility predicate is evaluated on an interior node + during the unlink window. + + Chain for key (head -> tail), built by writing in tail->head order: + B's v (head, sibling fork, NOT visible to A1 -> skipped by reader) + A's v (interior, visible to A1 -> the version reader must select) + R's v (tail, rooted base, unlinked by advance_root(A)) + + We submit advance_root(A): T2 first removes sibling B (purging B's + head node off the chain) and then unlinks the superseded R version on + the trunk, all while the reader on A1 walks B(skip) -> A(select). The + reader must end on A's version regardless of interleaving; A2 fires if + it ever pins B's (non-visible) or R's (unlinked) version. */ + +static void +test_acquire_interior_unlink( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); + fd_accdb_t * jb = join_new(); + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); /* R's v -> chain tail */ + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jb ); + test_shmem_delete(); +} + +/* test_acquire_vs_release: a reader walks the chain for key as-of A1 + while a concurrent writable release on a DIFFERENT fork (sibling B) + prepends a new acc to the SAME hash chain head. Exercises the + chain-mutated-mid-walk path (A1/A3) and the prepend-vs-walk race. + B is dropped at the end of the iteration by advancing the root to A. */ + +static void +test_acquire_vs_release( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); + fd_accdb_t * jw = join_new(); + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* drop sibling b by advancing onto the A trunk, then collapse to A1 */ + fd_accdb_advance_root( ctl, a ); + drain_background( ctl ); + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jw ); + test_shmem_delete(); +} + +/* test_acquire_vs_purge: a reader on fork A1 while a sibling subtree B is + purged (equivocation handling) by T2. The purge unlinks B's accounts + and recycles B's fork slot. The reader on A1 must be unaffected. */ + +static void +test_acquire_vs_purge( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); + fd_accdb_t * jb = join_new(); + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* purge of B has run (background fiber); advance onto A trunk, collapse to A1 */ + fd_accdb_advance_root( ctl, a ); + drain_background( ctl ); + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jb ); + test_shmem_delete(); +} + +/* ==================================================================== + Cache-layer races: eviction (CLOCK) and cold loads. + + These use a TINY class-0 cache (test_shmem_new_tiny) so that: + - reading an account whose cache line was evicted forces a + cold_load_acc (preadv2 from the backing memfd), and + - cold-loading / pinning a new line forces a CLOCK eviction of some + other resident line. + + Coverage of the cache hooks: + accdb_try_pin:post_cas (pin ABA window) + accdb_clock_evict:post_claim (CLOCK claimed a victim line) + accdb_evict_clear:post_claim (evictor holds the acc CLAIM bit) + accdb_cold_load:post_claim (cold-loader won the acc CLAIM) + accdb_cold_load:pre_valid (cache_idx published, VALID not yet set) + + Oracle: fiber_acquire_expect asserts the loaded lamports+pubkey match + what was committed, plus the always-on A1/A2/A3 asserts in acquire. */ + +/* test_cold_load_same: two readers concurrently acquire the SAME evicted + account, so both enter cold_load_acc for the same acc and race the + single-claimer CLAIM protocol (one wins post_claim/pre_valid, the other + pins via the freshly published cache_idx). Both must read the correct + bytes. */ + +static void +test_cold_load_same( void ) { + test_shmem_new_tiny(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr0 = join_new(); + fd_accdb_t * jr1 = join_new(); + + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + uchar key[ 32UL ]; mk_key( 1000UL, key ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr0 ); + join_delete( jr1 ); + test_shmem_delete(); +} + +/* test_cold_load_evict: two readers concurrently acquire DIFFERENT + evicted accounts. Each cold_load_acc allocates a cache line, which — + with the tiny cache full — forces a CLOCK eviction that may target the + line the other reader is simultaneously cold-loading into / pinning. + Exercises clock_evict:post_claim vs evict_clear:post_claim vs the other + reader's cold_load and try_pin. */ + +static void +test_cold_load_evict( void ) { + test_shmem_new_tiny(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr0 = join_new(); + fd_accdb_t * jr1 = join_new(); + + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + uchar key0[ 32UL ]; mk_key( 2000UL, key0 ); + uchar key1[ 32UL ]; mk_key( 2001UL, key1 ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr0 ); + join_delete( jr1 ); + test_shmem_delete(); +} + +/* test_pin_vs_evict: one reader acquires a cache-RESIDENT account (hits + cache_try_pin) while a second reader cold-loads a different evicted + account, whose cache-line allocation CLOCK-evicts lines — possibly the + resident line the first reader is racing to pin. Stresses the + try_pin:post_cas ABA recheck against clock_evict:post_claim. */ + +static void +test_pin_vs_evict( void ) { + test_shmem_new_tiny(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr0 = join_new(); + fd_accdb_t * jr1 = join_new(); + + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + uchar hot[ 32UL ]; mk_key( 3000UL, hot ); /* will be cache-resident */ + uchar cold[ 32UL ]; mk_key( 4000UL, cold ); /* will be evicted */ + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr0 ); + join_delete( jr1 ); + test_shmem_delete(); +} + +/* test_read_vs_overwrite: the proposed acct[2]/[3]/[32] torn-read + mechanism. A read-only acquire of key on fork R races a writable + overwrite of the SAME key on the SAME fork R (in-place, same + generation -> fd_accdb.c:3038 mutates accmeta->lamports / cache-line + owner under the reader). acquire_inner reads accmeta->lamports three + separate times (STEP 7 tombstone, STEP 7 lamports, STEP 14 tombstone) + and the owner once; if they straddle the overwrite, the reader + observes a (lamports, owner) pair the writer never committed. + + NOTE: this interleaving is forbidden by the accdb public API (no + concurrent acquire of the same (pubkey, fork) while a writable acquire + is outstanding). The test deliberately violates that contract to + determine whether acquire_inner's multi-read is the PROXIMATE + corruption site — i.e. whether, IF some upstream caller (bundle + coalescing, scheduler) ever lets a same-fork overwrite overlap a read, + the result is the observed lamports/owner corruption. A clean pass + means the multi-read alone cannot tear without the overlap; a failure + pinpoints the snapshot fix locus. */ + +static void +test_read_vs_overwrite( void ) { + /* Demonstration repro that intentionally FAILS (it violates the accdb + API contract on purpose). Skip unless named explicitly so a default + "run all" stays green. See the reframe in ACCDB_BANKHASH_BUG_REPORT.md: + the multi-read tear is a real fragility but NOT the production bug. */ + if( FD_UNLIKELY( !g_explicit ) ) { + FD_LOG_NOTICE(( " (skipped: contract-violating demo; run by name to exercise)" )); + return; + } + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* reader */ + fd_accdb_t * jw = join_new(); /* overwriter */ + + uchar key[ 32UL ]; mk_key( 42UL, key ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + /* seed a consistent committed state (LAMP_A, TAG_A) */ + { + uchar owner[ 32UL ]; memset( owner, 0, 32UL ); owner[0] = TAG_A; + seq_write( ctl, root, key, LAMP_A, owner ); + } + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jw ); + test_shmem_delete(); +} + +/* =================================================================== + EPOCH RECLAMATION TESTS + + These exercise the writer-free cold path implicated by the + "quiescent account, no concurrent writer" evidence: compaction + relocates a partition's live records and then deferred-frees + + recycles the source partition, while a reader cold-reads one of those + records from disk. The epoch protocol (reader publishes my_epoch on + entry; compaction tags the freed partition with epoch_tag and the + reclamation scan refuses to free while any joiner sits at + epoch<=epoch_tag) is the only thing keeping the reader's snapshotted + offset_fork valid across its preadv2. Oracle: reclamation assertion + H18 (in fd_accdb.c) + the reader's bytes are exactly what was + committed (fiber_nocache). + =================================================================== */ + +/* Fill partition 0 with [K + 2 fillers], rotate to partition 1 with a + 3rd filler, then overwrite one partition-0 filler to free >=30% of it, + enqueuing partition 0 for compaction. K (data filled with K_FILL) + survives in partition 0 and will be relocated as a passenger. */ +static void +epoch_setup_fragment( fd_accdb_t * ctl, + fd_accdb_fork_id_t fork, + uchar const * K, + uchar K_owner0, + uchar K_fill ) { + uchar owner[ 32UL ]; memset( owner, 0, 32UL ); owner[0] = K_owner0; + uchar f0[32], f1[32], f2[32]; + mk_key( 900001UL, f0 ); mk_key( 900002UL, f1 ); mk_key( 900003UL, f2 ); + + /* partition 0: K, filler0, filler1 (~60 KB of 64 KB) */ + seq_write_data( ctl, fork, K, LAMP_A, owner, BIG_DATA, K_fill ); + seq_write_data( ctl, fork, f0, 1UL, NULL, BIG_DATA, 0xF0 ); + seq_write_data( ctl, fork, f1, 1UL, NULL, BIG_DATA, 0xF1 ); + /* this write rotates the head to partition 1 */ + seq_write_data( ctl, fork, f2, 1UL, NULL, BIG_DATA, 0xF2 ); + /* overwrite filler0 on a CHILD fork so it becomes a NEW record (frees + the old partition-0 bytes), crossing the 30% threshold for part 0. + Use the same fork so it's an overwrite-in-place? No — in-place reuses + the slot and does NOT free disk bytes the same way; a fresh-version + write on the same fork frees the prior on-disk record. seq_write_data + on the same key/fork triggers the _overwrite path which xchg's the + old offset to INVAL and frees it (acc_unlink/commit). */ + seq_write_data( ctl, fork, f0, 2UL, NULL, BIG_DATA, 0xF0 ); + + /* Evict K from the cache so the reader takes the COLD disk path (the + epoch-protected preadv2). K is a 10 MiB-class line; the tiny cache + has only a few class-7 slots, so touching several throwaway class-7 + accounts forces K's line out via CLOCK. */ + for( ulong e=0UL; e<24UL; e++ ) { + uchar t[ 32UL ]; mk_key( 800000UL + e, t ); + uchar lam=0; uchar buf[1]; (void)buf; + /* a write churns a class-7 staging line + commits a class-7 line */ + seq_write_data( ctl, fork, t, 1UL, NULL, BIG_DATA, (uchar)(0xE0|e) ); + (void)lam; + } +} + +/* test_nocache_vs_compaction: a reader cold-reads quiescent account K + from disk while compaction relocates partition 0 (K's partition) to + layer 1 and reclaims the source partition. If the epoch protocol has + a hole, the source partition is freed/reused under the reader and the + preadv2 returns zeros/stale bytes -> fiber_nocache oracle fires; or + reclamation frees a partition still pinned -> H18 fires. */ + +/* test_epoch_reclaim_pin: DETERMINISTIC construction of the exact unsafe + window, instead of hoping a random weave hits it. Steps: + + 1. fragment partition 0 so K lives there and part 0 is enqueued. + 2. step the reader fiber until it parks at nocache:pre_preadv2 — at + that point it has PUBLISHED its epoch and SNAPSHOTTED K's (old, + partition-0) offset, but has not yet read. + 3. while the reader is parked, drive compaction to completion: it + relocates K to layer 1, tags partition 0 with epoch_tag >= the + reader's epoch, defers it, and the reclaim pass runs. + 4. ASSERTION H18 must hold: partition 0 must NOT be freed while the + reader is parked at epoch <= epoch_tag. The reclaim epoch gate + defers the free, so H18 (the use-after-free oracle) is satisfied. + 5. finish the reader (its preadv2 reads K's bytes, which under a + correct build are either still in part 0 [not yet freed] — correct + bytes; the fiber_nocache oracle checks them). + + This is the equivalent of progcache's test_inject_at_hook: it removes + the schedule-dependence so the test reliably exercises the protocol. */ + +static void +test_epoch_reclaim_pin( void ) { + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* reader */ + fd_accdb_t * jc = join_new(); /* compaction driver */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + (void)K; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jc ); + test_shmem_delete(); +} + +/* =================================================================== + COMPACTION RELOCATION TESTS + + The top remaining un-dispositioned suspect (see ACCDB_BANKHASH_BUG_ + REPORT.md 0.6/0.7): background_compact relocates a record + (copy_file_range to a new layer) and CAS-republishes offset_fork from + the snapshotted source offset to the destination. Two races: + + (a) compact relocate vs a concurrent same-fork in-place OVERWRITE of + the same accmeta: the overwrite xchg's offset_fork to INVAL (then a + new offset); the relocation CAS MUST then fail so the stale copy is + discarded and the overwrite wins. Hooks: accdb_compact: + pre_offset_cas and accdb_overwrite:pre_xchg_offset. + + (b) compact relocate vs a concurrent cold READER: the reader may + snapshot the OLD offset before the CAS; the source partition stays + valid (epoch-pinned) so the read is correct regardless. + =================================================================== */ + +/* Read K via a normal acquire and return its observed (lamports, + owner[0]). Single-threaded helper for post-weave verification. */ +static void +seq_read_check( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork, + uchar const * pubkey, + ulong * out_lamports, + uchar * out_owner0 ) { + uchar const * pks[1] = { pubkey }; + int wr[1] = { 0 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( accdb, fork, 1UL, pks, wr, acc ); + *out_lamports = acc[0].lamports; + *out_owner0 = acc[0].owner[0]; + fd_accdb_release( accdb, 1UL, acc ); +} + +#if FD_HAS_RACESAN +extern uchar fd_accdb_dbg_reloc_pubkey[ 32UL ]; +extern ulong fd_accdb_dbg_reloc_dest; +extern ulong fd_accdb_dbg_reloc_cnt; +#endif + +static uchar g_cold_data[ 10UL<<20 ]; + +/* NOTE on the in-place-overwrite-vs-relocation-CAS race (a separate + scenario we explored and could NOT make bite): it SELF-HEALS — an + in-place overwrite leaves offset_fork==INVAL, so even a faulty + unconditional relocation publish to dest_offset is harmless and is + repaired by the overwrite's next persist (eviction write-back). The + genuinely observable, non-self-healing relocation hazard is the + byte-integrity of the relocated copy, which is what the test below + checks. */ + +/* test_compact_reloc_integrity: DETERMINISTIC, fault-validated test of the + compaction RELOCATION byte-integrity — the report's top suspect + (copy_file_range correctness + record_sz from disk meta->size vs the + reader's size from the index). Each iter: + 1. fragment+evict K to disk (owner0=TAG_A, ALL data bytes 0xAA). + 2. drive compaction to COMPLETION, proving (via fd_accdb_dbg_reloc_cnt + and the dbg pubkey) that K was actually relocated to a new layer. + 3. evict K again, then COLD-read it (asserting the read hit disk) and + verify the FULL relocated copy: owner0==TAG_A and EVERY data byte + ==0xAA. A relocation that mis-copies, truncates (record_sz too + small), or over-copies would surface as a wrong/zero data byte. + + This does NOT self-heal (unlike the in-place-overwrite-vs-CAS race, + which leaves offset=INVAL and is repaired by the next persist — see + ACCDB_BANKHASH_BUG_REPORT.md): the relocation publishes a real + dest_offset whose bytes are whatever copy_file_range wrote, and the + cold read dereferences exactly that. */ +static void +test_compact_reloc_integrity( void ) { + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jc = join_new(); /* compaction driver */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + ulong relocated = 0UL; + for( ulong i=0UL; iread_ops; + g_cold_data[0]=0xEE; g_cold_data[ BIG_DATA-1UL ]=0xEE; + fd_accdb_read_one_nocache( ctl, root, Ki, &lamports, &executable, owner, g_cold_data, &data_len ); + int hit_disk = fd_accdb_metrics( ctl )->read_ops > ro0; + + if( FD_LIKELY( hit_disk ) ) { + /* Full byte integrity of the (relocated) on-disk copy. */ + if( FD_UNLIKELY( lamports!=LAMP_A || owner[0]!=TAG_A || data_len!=BIG_DATA ) ) { + FD_LOG_ERR(( "compact-reloc-integrity: K meta wrong after relocation: lamports=%lu owner0=0x%02x data_len=%lu (want LAMP_A=%lu TAG_A=0x%02x len=%lu)", + lamports, (uint)owner[0], data_len, LAMP_A, (uint)TAG_A, (ulong)BIG_DATA )); + } + for( ulong z=0UL; z0UL ); /* compaction must have relocated records */ + FD_LOG_NOTICE(( " test_compact_reloc_integrity: relocations occurred in %lu/%lu iters", relocated, EPOCH_ITER )); + + join_delete( ctl ); + join_delete( jc ); + test_shmem_delete(); +} + +/* test_compact_vs_overwrite: relocate K while a same-fork overwrite of K + commits concurrently. After the weave, K MUST read back as the + overwritten value (LAMP_B/TAG_B) — the newer commit always wins; the + relocation CAS must have failed and discarded the stale copy. A bug + where the relocation CAS wrongly succeeds (clobbering the overwrite's + offset with the stale relocated one) would surface as K reading back + the OLD value (LAMP_A/TAG_A) or a torn/zero owner. */ + +static void +test_compact_vs_overwrite( void ) { + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jw = join_new(); /* overwriter */ + fd_accdb_t * jc = join_new(); /* compaction driver */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* Oracle: the overwrite (newer commit) must have won. */ + ulong lam; uchar o0; + seq_read_check( ctl, root, Ki, &lam, &o0 ); + if( FD_UNLIKELY( !( lam==LAMP_B && o0==TAG_B ) ) ) { + FD_LOG_ERR(( "compact-vs-overwrite: K read back (lamports=%lu owner0=0x%02x), expected the overwrite (LAMP_B=%lu TAG_B=0x%02x) -- relocation CAS clobbered a newer commit?", + lam, (uint)o0, LAMP_B, (uint)TAG_B )); + } + } + + join_delete( ctl ); + join_delete( jw ); + join_delete( jc ); + test_shmem_delete(); +} + +/* test_compact_vs_coldread: relocate K while a cold reader reads K. The + reader may catch the old or new offset; either way the bytes must equal + what was committed (the source partition is epoch-pinned until the + reader exits, so the old offset stays valid). fiber_nocache is the + correctness oracle. */ + +static void +test_compact_vs_coldread( void ) { + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* cold reader */ + fd_accdb_t * jc = join_new(); /* compaction driver */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jc ); + test_shmem_delete(); +} + +/* =================================================================== + OWNER-CORRUPTION TESTS + + The live repro corrupts owner (offset 64) + data while leaving the key + (0..36) intact. Only two operations write starting at the owner field: + + (1) Cold-load disk read (fd_accdb.c ~2640): scatters 32+data bytes from + offset_fork into cache_line->owner. If offset_fork is torn/INVAL/ + stale when the iovec is built, the owner/data come from the wrong + on-disk record while the key (already in the cache line) is intact. + Guard: the offset_fork!=INVAL spin at ~2638. + + (2) Commit owner write (fd_accdb.c ~2961): memcpy(line->owner, + accs[i].owner,32)+data into the resolved target cache line. If that + line was recycled to a different account, it writes a wrong owner. + Guard: ASSERTION F11/F12 (key+gen+refcnt match) at ~2949. + =================================================================== */ + +/* test_coldload_vs_overwrite: a cold reader of K races a same-fork + SAME-size in-place overwrite of K (which transitions K's offset_fork + through INVAL and rewrites the cache-line owner+data). Under a correct + build the cold reader's offset_fork!=INVAL spin keeps its disk read + consistent; the reader's returned (owner, data) must be a committed + state (TAG_A/0xAA or TAG_B/0xBB) and never a torn owner. */ +static void +test_coldload_vs_overwrite( void ) { + /* Contract-violating demo (concurrent read + same-fork overwrite of the + same account): exercises the cold-load owner-read site and may trip an + in-tree guard (C7) by design. Opt-in only — see test_read_vs_overwrite. */ + if( FD_UNLIKELY( !g_explicit ) ) { FD_LOG_NOTICE(( " (skipped: contract-violating demo; run by name)" )); return; } + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* cold reader */ + fd_accdb_t * jw = join_new(); /* overwriter */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* Post-weave: K must be the overwrite value, internally consistent. */ + ulong lam; uchar o0; + seq_read_check( ctl, root, Ki, &lam, &o0 ); + if( FD_UNLIKELY( !( lam==LAMP_B && o0==TAG_B ) ) ) { + FD_LOG_ERR(( "coldload-vs-overwrite: K=(lamports=%lu owner0=0x%02x), expected overwrite (LAMP_B=%lu TAG_B=0x%02x)", + lam, (uint)o0, LAMP_B, (uint)TAG_B )); + } + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jw ); + test_shmem_delete(); +} + +/* test_commit_owner_vs_reader: the commit owner-write site (fd_accdb.c + ~2961, hook accdb_commit:pre_owner_write). A writer commits K in place + (rewriting line->owner at offset 64+) while a concurrent reader acquires + K read-only on a child fork. The in-tree F11/F12 assertion guards that + the commit's target line still holds K (key+gen) and is pinned — so a + commit can never write a wrong owner into a line a reader is using. + This test drives the interleaving; F11/F12 (+ the reader's own A1/B4/C7 + asserts) are the oracle. Passes because the refcnt pin makes recycling + the target line under a live commit impossible — i.e. this owner-write + site is safe by construction (see report). */ +static void +test_commit_owner_vs_reader( void ) { + /* Contract-violating demo (concurrent read + same-fork overwrite): drives + the commit owner-write site (~2961) and trips an in-tree guard (C7 / + F11-F12) by design, proving the site is protected. Opt-in only. */ + if( FD_UNLIKELY( !g_explicit ) ) { FD_LOG_NOTICE(( " (skipped: contract-violating demo; run by name)" )); return; } + test_shmem_new(); /* default cache; small data so the commit hits the + non-class-7 owner-write at ~2961 (class 7 skips it) */ + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jw = join_new(); /* committer (owner write) */ + fd_accdb_t * jr = join_new(); /* reader */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + uchar oa[ 32UL ]; memset( oa, 0, 32UL ); oa[0] = TAG_A; + + uchar K[ 32UL ]; mk_key( 333UL, K ); + seq_write( ctl, root, K, LAMP_A, oa ); /* data_len 0 -> class 0 */ + + for( ulong i=0UL; i hits the 2961 + owner memcpy); reader reads K on the same fork. Owner must always + read as a committed tag (TAG_A or TAG_B), never torn — F11/F12 is + accdb's own guard at the commit site, the reader's A1/B4 here too. */ + fd_racesan_weave_t w[1]; + fd_racesan_weave_new( w ); + fd_racesan_weave_add( w, fiber_overwrite( &g_fiber[0], jw, root, K, (int)(i&1UL) ) ); + fd_racesan_weave_add( w, fiber_acquire( &g_fiber[1], jr, root, K ) ); + + fd_racesan_weave_exec_rand( w, fd_ulong_hash( (i*0xA24BAED4UL) ^ g_seed_base ), STEP_MAX ); + FD_TEST( !w->rem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* post-weave: K's owner must be one of the two committed tags. */ + ulong lam; uchar o0; + seq_read_check( ctl, root, K, &lam, &o0 ); + if( FD_UNLIKELY( !( o0==TAG_A || o0==TAG_B ) ) ) + FD_LOG_ERR(( "commit-owner: K owner0=0x%02x is neither TAG_A nor TAG_B (torn owner write)", (uint)o0 )); + } + + join_delete( ctl ); + join_delete( jw ); + join_delete( jr ); + test_shmem_delete(); +} + +/* ------------------------------------------------------------------ */ + +/* ------------------------------------------------------------------ */ +/* Tests ported from the tombstone-orphan / EBR-poison branch */ +/* (HEAD harness: test_setup / test_join_extra / write_acc). */ +/* ------------------------------------------------------------------ */ + +#define HEAD_TEST_CACHE_FOOTPRINT (16UL<<30UL) + +static fd_accdb_shmem_t * test_shmem_mem; + +static fd_accdb_shmem_t * test_shmem; /* shared shmem, for extra joins */ +static int test_fd; /* shared backing fd, for extra joins */ +static ulong test_max_live_slots; + +static fd_accdb_t * +test_setup( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz ) { + int fd = memfd_create( "accdb_racesan", 0 ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + *out_fd = fd; + test_fd = fd; + test_max_live_slots = max_live_slots; + + /* joiner_cnt=2: the orphan/poison tests model TWO concurrent tiles (a + reader "D" holding a pin on one handle while a committer/advance_root + drives the other), so the shmem must admit a second joiner with its + own epoch slot. */ + ulong cache_fp = HEAD_TEST_CACHE_FOOTPRINT; + ulong shmem_fp = fd_accdb_shmem_footprint( max_accounts, max_live_slots, max_account_writes_per_slot, partition_cnt, cache_fp, 640UL, 2UL ); + FD_TEST( shmem_fp ); + void * shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( shmem_mem ); + fd_accdb_shmem_t * shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( shmem_mem, max_accounts, max_live_slots, + max_account_writes_per_slot, partition_cnt, + partition_sz, cache_fp, 640UL, 0, 42UL, 2UL ) ); + FD_TEST( shmem ); + test_shmem_mem = shmem_mem; + test_shmem = shmem; + + ulong accdb_fp = fd_accdb_footprint( max_live_slots ); + FD_TEST( accdb_fp ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, shmem, fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +/* test_join_extra creates a SECOND accdb handle on the same shmem (its own + joiner epoch slot), modelling a separate exec tile. Used so a reader + can hold an acquire bracket on one handle while the main handle commits + / advances root — mirroring production, where the one-bracket-per-handle + invariant holds because each tile has its own handle. */ +static fd_accdb_t * +test_join_extra( void ) { + ulong accdb_fp = fd_accdb_footprint( test_max_live_slots ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, test_shmem, test_fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +static void +test_teardown( fd_accdb_t * accdb, + int fd ) { + free( test_shmem_mem ); + free( accdb ); + close( fd ); +} + +/* drain_background_n drives the background tile until it reports no more + work (charge_busy stays 0) or a bounded number of iterations elapses. + Each call performs at most one unit of work (advance_root, purge, or a + pre-eviction sweep), so several calls are needed to flush a queued + command and then run pre-eviction. */ +static void +drain_background_n( fd_accdb_t * accdb, + ulong n ) { + for( ulong i=0UL; iEVICT_SENTINEL), suspendable at the + racesan hook "clock_evict:post_sentinel". Returns the captured evicted + acc_idx. */ +uint fd_accdb_debug_clock_evict_line( fd_accdb_t * accdb, ulong size_class, ulong line_idx ); + +static void +write_acc( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong lamports, + uchar const * owner, + uchar const * data, + ulong data_len ) { + uchar const * pks[1] = { pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( accdb, fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = lamports; + acc[0].data_len = data_len; + memcpy( acc[0].owner, owner, 32UL ); + if( data_len && data ) memcpy( acc[0].data, data, data_len ); + acc[0].commit = 1; + fd_accdb_release( accdb, 1UL, acc ); +} + +static void +test_tombstone_orphan_ebr_poison( void ) { + int fd; + /* Small pools so the recycled accmeta slot is reused quickly and the + cache pressure for pre-eviction is easy to trigger. */ + fd_accdb_t * accdb = test_setup( &fd, 256UL, 16UL, 1024UL, 1024UL, 1UL<<30UL ); + /* Separate handle for the "D reader" tile so its long-held acquire + bracket does not collide with the committer/advance_root bracket on + the main handle (one bracket per handle, as in production). */ + fd_accdb_t * accdb_d = test_join_extra(); + + uchar pubkey_P[ 32 ] = { 'P', 0 }; + uchar pubkey_B[ 32 ] = { 'B', 0 }; + uchar owner_P [ 32 ] = { 0xAA, 0 }; + uchar owner_B [ 32 ] = { 0xBB, 0 }; + + /* Fork tree: root0 -> F -> D + advance_root(F) requires F be a direct child of the current root. */ + fd_accdb_fork_id_t root0 = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t F = fd_accdb_attach_child( accdb, root0 ); + fd_accdb_fork_id_t D = fd_accdb_attach_child( accdb, F ); + + /* P open on root0. */ + write_acc( accdb, root0, pubkey_P, 100UL, owner_P, NULL, 0UL ); + + /* P closed (tombstone) on F. */ + write_acc( accdb, F, pubkey_P, 0UL, owner_P, NULL, 0UL ); + + /* D writably re-acquires P (the tombstone) and HOLDS the pin. After + this returns, D's epoch reads ULONG_MAX but the cache line stays + pinned (refcnt=1). */ + uchar const * pks_P[1] = { pubkey_P }; + int wr[1] = { 1 }; + fd_acc_t acc_D[1]; + memset( acc_D, 0, sizeof(acc_D) ); + fd_accdb_acquire( accdb_d, D, 1UL, pks_P, wr, acc_D ); + /* The re-acquire sees a closed account. */ + FD_TEST( acc_D[0].lamports==0UL ); + + /* Advance root to F. background_advance_root tombstone-unlinks F's + new_acc; the reclaim CAS fails under D's pin -> orphaned line; the + accmeta slot is deferred for release (deferred_acc_append). */ + fd_accdb_advance_root( accdb, F ); + drain_background_n( accdb, 4UL ); /* run the queued advance_root */ + + /* Advance root again (to D). drain_deferred_frees runs at the START of + background_advance_root; D's published epoch reads ULONG_MAX (D's + acquire returned), so wait_for_epoch_drain treats it as drained and + releases the orphaned accmeta slot back to acc_pool -- WHILE the + orphaned line still references it. */ + fd_accdb_advance_root( accdb, D ); + drain_background_n( accdb, 4UL ); + + /* Commit fresh accounts to consume the freed accmeta slots. The drain + released the orphaned slot back to the pool, so one of these fresh + accounts is handed the orphaned line's acc_idx and becomes the + poisoned victim. We commit two because the freed chain has two + slots (P's open + P's tombstone versions); the orphaned line aliases + the tombstone slot, which is the second one handed out. */ + write_acc( accdb, D, pubkey_B, 200UL, owner_B, NULL, 0UL ); + uchar pubkey_B2[ 32 ] = { 'C', 0 }; + uchar owner_B2 [ 32 ] = { 0xCC, 0 }; + write_acc( accdb, D, pubkey_B2, 300UL, owner_B2, NULL, 0UL ); + + /* Flush the recycled victims to disk WHILE D still pins the orphaned + line. The orphan (refcnt=1) is skipped by pre-eviction; the victims' + own correct cache lines (refcnt=0) are evicted and written back + correctly, so each victim's accmeta now points at a correct on-disk + record and has NO resident cache line. This models the mainnet + signature: the victim is "ancient/untouched" (cold, disk-only) by the + time the orphan is finally written back. */ + fd_accdb_debug_force_preevict( accdb ); + + /* D releases its pin (orphan refcnt -> 0). */ + fd_accdb_release( accdb_d, 1UL, acc_D ); + + /* Now pre-eviction writes the orphaned dirty line back to disk: + pubkey=victim (from the recycled accmeta) + owner=P (from the + orphaned line), and republishes the victim accmeta's offset_fork to + that poison record. There is no resident victim line left to correct + it afterward. */ + fd_accdb_debug_force_preevict( accdb ); + + /* Cold-load each victim from disk. If the poison fired, the victim + that aliased the orphaned slot reads back P's owner. */ + uchar const * victims[2] = { pubkey_B, pubkey_B2 }; + uchar const * vowner [2] = { owner_B, owner_B2 }; + int poisoned = 0; + for( int v=0; v<2; v++ ) { + uchar got_owner[ 32 ]; + uchar const * pks_v[1] = { victims[v] }; + int rd[1] = { 0 }; + fd_acc_t acc_v[1]; + memset( acc_v, 0, sizeof(acc_v) ); + fd_accdb_acquire( accdb, D, 1UL, pks_v, rd, acc_v ); + memcpy( got_owner, acc_v[0].owner, 32UL ); + fd_accdb_release( accdb, 1UL, acc_v ); + FD_LOG_NOTICE(( "victim %d pk0=%02x read owner0=%02x (expected %02x)", + v, victims[v][0], got_owner[0], vowner[v][0] )); + if( !memcmp( got_owner, owner_P, 32UL ) ) { + FD_LOG_WARNING(( "POISON: victim pk0=%02x read back P's owner (wrong-owner-valid-key)", victims[v][0] )); + poisoned = 1; + } else { + FD_TEST( !memcmp( got_owner, vowner[v], 32UL ) ); + } + } + if( poisoned ) { + FD_LOG_ERR(( "POISON CONFIRMED: tombstone-orphan / EBR-leak / writeback poison reproduced" )); + } + + free( accdb_d ); + test_teardown( accdb, fd ); +} + +/* ------------------------------------------------------------------ */ +/* SENTINEL case: acc_unlink observes a line already claimed for eviction */ +/* ------------------------------------------------------------------ */ + +/* Fiber context: evict (+ write back) one specific cache line, suspending + at clock_evict:post_sentinel while it holds EVICT_SENTINEL. */ +#define EVICT_FIBER_STACK_SZ (1UL<<21) +struct evict_fiber { + fd_racesan_async_t async[1]; + fd_accdb_t * accdb; + ulong size_class; + ulong line_idx; +}; +typedef struct evict_fiber evict_fiber_t; + +static void +evict_fiber_exec( void * _ctx ) { + evict_fiber_t * f = _ctx; + fd_accdb_debug_clock_evict_line( f->accdb, f->size_class, f->line_idx ); +} + +/* test_sentinel_unlink_no_poison proves the acc_unlink EVICT_SENTINEL + branch (the "do nothing" else) is correct. + + Schedule (single thread, one fiber): + 1. P open on root, closed (tombstone) on F, with P's tombstone line + resident + dirty. + 2. Fiber E begins evicting P's line: it CASes refcnt 0->EVICT_SENTINEL + and SUSPENDS at clock_evict:post_sentinel, BEFORE clearing + accmeta->cache_idx — so the accmeta still points at the line. + 3. Main thread runs advance_root(F): background_advance_root's + tombstone self-unlink calls acc_unlink(P). Its reclaim CAS finds + refcnt==EVICT_SENTINEL and takes the do-nothing else branch + (it must NOT sever / touch the line E owns). + 4. Fiber E resumes and finishes the writeback of P's record. + 5. Oracle: the on-disk record E wrote names P with P's own owner — the + slot was never recycled out from under E, so no pubkey=NEW/owner=OLD + poison. (In production the evictor's held EBR epoch is what blocks + the slot recycle; the single-threaded schedule here reproduces the + same ordering and shows the outcome is a correct, non-poison + writeback.) */ +static void +test_sentinel_unlink_no_poison( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 256UL, 16UL, 1024UL, 1024UL, 1UL<<30UL ); + + uchar pubkey_P[ 32 ] = { 'P', 0 }; + uchar owner_P [ 32 ] = { 0xAA, 0 }; + + fd_accdb_fork_id_t root0 = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t F = fd_accdb_attach_child( accdb, root0 ); + + /* P open on root0, then closed (tombstone) on F. The close commit + leaves P's tombstone version resident + dirty (persisted==0). */ + write_acc( accdb, root0, pubkey_P, 100UL, owner_P, NULL, 0UL ); + write_acc( accdb, F, pubkey_P, 0UL, owner_P, NULL, 0UL ); + + /* Locate P's resident tombstone line. */ + ulong cls, idx; + FD_TEST( fd_accdb_debug_find_line( accdb, pubkey_P, &cls, &idx ) ); + + /* Fiber E: claim P's line for eviction and suspend holding the + sentinel, before it clears the accmeta back-reference. */ + static evict_fiber_t e[1]; + e->accdb = accdb; + e->size_class = cls; + e->line_idx = idx; + void * e_stack = fd_racesan_stack_create( EVICT_FIBER_STACK_SZ ); + fd_racesan_async_new( e->async, e_stack, EVICT_FIBER_STACK_SZ, evict_fiber_exec, e ); + int r = fd_racesan_async_step_until( e->async, "clock_evict:post_sentinel", 100000UL ); + FD_TEST( r==FD_RACESAN_ASYNC_RET_HOOK ); + + /* Main thread: advance_root(F) -> acc_unlink(P) observes the sentinel + and must take the do-nothing else branch (no crash, no sever). */ + fd_accdb_advance_root( accdb, F ); + drain_background_n( accdb, 4UL ); + + /* Resume E: finish the writeback of P's record. */ + for(;;) { + r = fd_racesan_async_step( e->async ); + if( r==FD_RACESAN_ASYNC_RET_EXIT ) break; + FD_TEST( r==FD_RACESAN_ASYNC_RET_HOOK ); + } + fd_racesan_async_delete( e->async ); + fd_racesan_stack_destroy( e_stack, EVICT_FIBER_STACK_SZ ); + + /* Oracle: read P back. P is a tombstone (lamports==0), so acquire + zeroes the owner regardless; the meaningful check is that the on-disk + record E synthesized still names P (not a recycled foreign account). + Read it via a fresh cold load and assert no poison: a non-tombstone + foreign account would surface here as lamports!=0 with a foreign + owner. P must read back as closed. */ + uchar const * pks_P[1] = { pubkey_P }; + int rd[1] = { 0 }; + fd_acc_t acc_P[1]; + memset( acc_P, 0, sizeof(acc_P) ); + fd_accdb_acquire( accdb, F, 1UL, pks_P, rd, acc_P ); + FD_LOG_NOTICE(( "P read back lamports=%lu (expected 0, tombstone)", acc_P[0].lamports )); + FD_TEST( acc_P[0].lamports==0UL ); + fd_accdb_release( accdb, 1UL, acc_P ); + + test_teardown( accdb, fd ); +} + +/* ------------------------------------------------------------------ */ +/* STEP-14 case: acc_unlink must not strand a reader pinned mid-acquire */ +/* ------------------------------------------------------------------ */ + +/* Fiber context: read-acquire P on a fork, cache-hitting (and pinning) + P's resident line. Suspends at "cache_try_pin:pinned" (STEP 3 of + fd_accdb_acquire_inner) holding the pin, then runs to completion + through STEP 13/14/15. */ +#define READ_FIBER_STACK_SZ (1UL<<21) +struct read_fiber { + fd_racesan_async_t async[1]; + fd_accdb_t * accdb; + fd_accdb_fork_id_t fork_id; + uchar const * pubkey; + fd_acc_t acc[1]; +}; +typedef struct read_fiber read_fiber_t; + +static void +read_fiber_exec( void * _ctx ) { + read_fiber_t * f = _ctx; + uchar const * pks[1] = { f->pubkey }; + int wr[1] = { 1 }; + memset( f->acc, 0, sizeof(f->acc) ); + fd_accdb_acquire( f->accdb, f->fork_id, 1UL, pks, wr, f->acc ); + fd_accdb_release( f->accdb, 1UL, f->acc ); +} + +/* test_step14_orphan_no_hang proves the acc_unlink pinned-reader branch + does NOT strand a reader that pinned the line mid-acquire. + + Regression for the hang introduced when acc_unlink severed + line->acc_idx to UINT_MAX: that value is the cold-load "still loading" + sentinel, and acquire_inner STEP-14 spins `while(acc_idx==UINT_MAX)` + forever for a line nobody will ever re-publish. + + Schedule (single thread, one fiber): + 1. P open on root, closed (tombstone) on F, line resident + dirty. + 2. Fiber R writably re-acquires P; at STEP 3 it cache-hits and PINS + P's resident line (refcnt 0->1) and SUSPENDS at + "cache_try_pin:pinned" — i.e. between STEP 3 and STEP 14. + 3. Main thread runs advance_root(F): acc_unlink(P)'s reclaim CAS + fails under R's pin and takes the pinned-reader branch, which must + neutralize the writeback WITHOUT severing acc_idx. + 4. Fiber R resumes. STEP 14 must observe acc_idx!=UINT_MAX and + return promptly; the fiber EXITS. With the buggy sever, STEP 14 + spins forever (no hook inside the spin) and this never returns — + a hang, caught by the test timeout. */ +static void +test_step14_orphan_no_hang( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 256UL, 16UL, 1024UL, 1024UL, 1UL<<30UL ); + + uchar pubkey_P[ 32 ] = { 'P', 0 }; + uchar owner_P [ 32 ] = { 0xAA, 0 }; + + fd_accdb_fork_id_t root0 = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t F = fd_accdb_attach_child( accdb, root0 ); + + /* P open on root0, closed (tombstone) on F; tombstone line resident + + dirty (persisted==0). */ + write_acc( accdb, root0, pubkey_P, 100UL, owner_P, NULL, 0UL ); + write_acc( accdb, F, pubkey_P, 0UL, owner_P, NULL, 0UL ); + + /* Fiber R: writably re-acquire P (cache hit), pin the line, suspend at + STEP 3's pin hook holding refcnt=1. */ + static read_fiber_t rf[1]; + rf->accdb = accdb; + rf->fork_id = F; + rf->pubkey = pubkey_P; + void * rf_stack = fd_racesan_stack_create( READ_FIBER_STACK_SZ ); + fd_racesan_async_new( rf->async, rf_stack, READ_FIBER_STACK_SZ, read_fiber_exec, rf ); + int rc = fd_racesan_async_step_until( rf->async, "cache_try_pin:pinned", 100000UL ); + FD_TEST( rc==FD_RACESAN_ASYNC_RET_HOOK ); + + /* Main thread: advance_root(F) -> acc_unlink(P) sees R's pin and takes + the pinned-reader branch (must not sever acc_idx). */ + fd_accdb_advance_root( accdb, F ); + drain_background_n( accdb, 4UL ); + + /* Resume R to completion. If STEP-14 was stranded by an acc_idx sever, + this loop never terminates (the spin has no hook to yield on) and the + test hangs — the regression signal. With the persisted-only fix R + exits promptly. */ + for(;;) { + rc = fd_racesan_async_step( rf->async ); + if( rc==FD_RACESAN_ASYNC_RET_EXIT ) break; + FD_TEST( rc==FD_RACESAN_ASYNC_RET_HOOK ); + } + fd_racesan_async_delete( rf->async ); + fd_racesan_stack_destroy( rf_stack, READ_FIBER_STACK_SZ ); + + FD_LOG_NOTICE(( "STEP-14 reader resumed without hang" )); + + test_teardown( accdb, fd ); +} + +struct test_case { char const * name; void (*fn)( void ); }; + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + g_seed_base = fd_env_strip_cmdline_ulong( &argc, &argv, "--seed-base", NULL, 0UL ); + g_explicit = (argc>1); /* any test named on the command line */ + +# define TEST( name ) { #name, name } + struct test_case cases[] = { + TEST( test_acquire_vs_advance ), + TEST( test_acquire_vs_advance_sibling ), + TEST( test_acquire_interior_unlink ), + TEST( test_acquire_vs_release ), + TEST( test_acquire_vs_purge ), + TEST( test_cold_load_same ), + TEST( test_cold_load_evict ), + TEST( test_pin_vs_evict ), + TEST( test_read_vs_overwrite ), + TEST( test_epoch_reclaim_pin ), + TEST( test_nocache_vs_compaction ), + TEST( test_compact_reloc_integrity ), + TEST( test_compact_vs_overwrite ), + TEST( test_compact_vs_coldread ), + TEST( test_coldload_vs_overwrite ), + TEST( test_commit_owner_vs_reader ), + TEST( test_tombstone_orphan_ebr_poison ), + TEST( test_sentinel_unlink_no_poison ), + TEST( test_step14_orphan_no_hang ), + {0} + }; +# undef TEST + + for( struct test_case * tc = cases; tc->name; tc++ ) { + int run = 1; + if( argc>1 ) { + run = 0; + for( int a=1; aname ) ) run = 1; + } + if( run ) { + FD_LOG_NOTICE(( "Running %s", tc->name )); + tc->fn(); + } + } + + FD_LOG_NOTICE(( "pass" )); + fd_halt(); + return 0; +} diff --git a/src/flamenco/capture/Local.mk b/src/flamenco/capture/Local.mk index 054a48e2a50..dadebdbeac1 100644 --- a/src/flamenco/capture/Local.mk +++ b/src/flamenco/capture/Local.mk @@ -1,6 +1,4 @@ -ifdef FD_HAS_INT128 ifdef FD_HAS_HOSTED $(call add-objs,fd_solcap_writer fd_capture_ctx,fd_flamenco) $(call add-hdrs,fd_solcap_proto.h fd_solcap_writer.h fd_capture_ctx.h) endif -endif diff --git a/src/flamenco/fd_flamenco_base.h b/src/flamenco/fd_flamenco_base.h index fc869469d98..e3cb4aa1f96 100644 --- a/src/flamenco/fd_flamenco_base.h +++ b/src/flamenco/fd_flamenco_base.h @@ -11,7 +11,7 @@ union __attribute__((packed)) fd_w_u128 { uchar uc[16]; ulong ul[2]; -# if FD_HAS_INT128 +# ifdef __SIZEOF_INT128__ uint128 ud; # endif }; diff --git a/src/flamenco/features/fd_features_generated.c b/src/flamenco/features/fd_features_generated.c index 5d402f313b6..9c377c8886a 100644 --- a/src/flamenco/features/fd_features_generated.c +++ b/src/flamenco/features/fd_features_generated.c @@ -1889,6 +1889,12 @@ fd_feature_id_t const ids[] = { .name = "define_ltds_fee_only_semantics", .cleaned_up = 0 }, + { .index = offsetof(fd_features_t, validate_chained_block_id_2)>>3, + .id = {"\x0d\xbc\x3b\x68\xa2\x90\x42\x94\x71\x68\x24\xf6\xad\x2a\x32\xe9\x49\x30\x42\xa3\x80\x46\x91\x94\x6c\x28\x18\x33\xcd\x6f\x71\x55"}, + /* vcmrw431aNM8ngQ46derkZXipoTGQdbHkEygBDh12dA */ + .name = "validate_chained_block_id_2", + .cleaned_up = 0 }, + { .index = ULONG_MAX } }; @@ -2181,6 +2187,7 @@ typedef struct fd_feature_id_lookup_entry fd_feature_id_lookup_entry_t; #define MAP_PERFECT_273 0xd388d8dbc65e2dcbUL, .val = &ids[273] #define MAP_PERFECT_274 0xbe56a012b91e1808UL, .val = &ids[274] #define MAP_PERFECT_275 0x902a0ec624adfb04UL, .val = &ids[275] +#define MAP_PERFECT_276 0x944290a2683bbc0dUL, .val = &ids[276] #include "../../util/tmpl/fd_map_perfect.c" @@ -2467,4 +2474,5 @@ FD_STATIC_ASSERT( offsetof( fd_features_t, disable_sbpf_v0_v1_v2_deployment FD_STATIC_ASSERT( offsetof( fd_features_t, commission_rate_in_basis_points )>>3==273UL, layout ); FD_STATIC_ASSERT( offsetof( fd_features_t, loader_v3_minimum_extend_program_size )>>3==274UL, layout ); FD_STATIC_ASSERT( offsetof( fd_features_t, define_ltds_fee_only_semantics )>>3==275UL, layout ); +FD_STATIC_ASSERT( offsetof( fd_features_t, validate_chained_block_id_2 )>>3==276UL, layout ); FD_STATIC_ASSERT( sizeof( fd_features_t )>>3==FD_FEATURE_ID_CNT, layout ); diff --git a/src/flamenco/features/fd_features_generated.h b/src/flamenco/features/fd_features_generated.h index f4d43b33339..9e6393964f3 100644 --- a/src/flamenco/features/fd_features_generated.h +++ b/src/flamenco/features/fd_features_generated.h @@ -8,10 +8,10 @@ #endif /* FEATURE_ID_CNT is the number of features in ids */ -#define FD_FEATURE_ID_CNT (276UL) +#define FD_FEATURE_ID_CNT (277UL) /* Feature set ID calculated from all feature names */ -#define FD_FEATURE_SET_ID (41254028U) +#define FD_FEATURE_SET_ID (1668064299U) union fd_features { ulong f[ FD_FEATURE_ID_CNT ]; @@ -292,5 +292,6 @@ union fd_features { /* 0xd388d8dbc65e2dcb */ ulong commission_rate_in_basis_points; /* 0xbe56a012b91e1808 */ ulong loader_v3_minimum_extend_program_size; /* 0x902a0ec624adfb04 */ ulong define_ltds_fee_only_semantics; + /* 0x944290a2683bbc0d */ ulong validate_chained_block_id_2; }; }; diff --git a/src/flamenco/features/feature_map.json b/src/flamenco/features/feature_map.json index 1cde9beff51..681739a78b0 100644 --- a/src/flamenco/features/feature_map.json +++ b/src/flamenco/features/feature_map.json @@ -274,5 +274,6 @@ {"name":"disable_sbpf_v0_v1_v2_deployment","pubkey":"B8JJXCy5amZyWG9r7EnUYLwzXSXTxG7GZ1qZ1qggo83g"}, {"name":"commission_rate_in_basis_points","pubkey":"Eg7tXEwMZzS98xaZ1YHUbdRHsaYZiCsSaR6sKgxreoaj"}, {"name":"loader_v3_minimum_extend_program_size","pubkey":"YbbRLkvenrocjGPGyoQE4wjnvYzTgfsk38NFmcYK7a5"}, - {"name":"define_ltds_fee_only_semantics","pubkey":"LTDSzjZKFJMKHYpNycG1FrWwGGTaFFwqEFjB5GGLNVD"} + {"name":"define_ltds_fee_only_semantics","pubkey":"LTDSzjZKFJMKHYpNycG1FrWwGGTaFFwqEFjB5GGLNVD"}, + {"name":"validate_chained_block_id_2","pubkey":"vcmrw431aNM8ngQ46derkZXipoTGQdbHkEygBDh12dA"} ] diff --git a/src/flamenco/gossip/Local.mk b/src/flamenco/gossip/Local.mk index aea07fc29f8..ccbb5a601a7 100644 --- a/src/flamenco/gossip/Local.mk +++ b/src/flamenco/gossip/Local.mk @@ -1,7 +1,5 @@ $(call add-hdrs,fd_gossip.h fd_gossip_message.h fd_crds.h fd_gossip_out.h fd_gossip_txbuild.h fd_gossip_purged.h fd_prune_finder.h) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_gossip fd_gossip_message fd_gossip_out fd_gossip_txbuild fd_gossip_purged fd_prune_finder,fd_flamenco) -endif $(call add-hdrs,fd_bloom.h fd_gossip_wsample.h) $(call add-objs,fd_bloom fd_crds fd_active_set fd_ping_tracker fd_gossip_wsample,fd_flamenco) diff --git a/src/flamenco/gossip/fd_ping_tracker.c b/src/flamenco/gossip/fd_ping_tracker.c index c9b1e437319..748985f8a44 100644 --- a/src/flamenco/gossip/fd_ping_tracker.c +++ b/src/flamenco/gossip/fd_ping_tracker.c @@ -400,7 +400,7 @@ fd_ping_tracker_active( fd_ping_tracker_t * ping_tracker, if( FD_UNLIKELY( !peer_address.addr ) ) return 0; fd_ping_peer_t * peer = peer_map_ele_query( ping_tracker->peers, fd_type_pun_const( peer_pubkey ), NULL, ping_tracker->pool ); if( FD_UNLIKELY( !peer ) ) return 0; - return (peer->state==FD_PING_TRACKER_STATE_VALID || peer->state==FD_PING_TRACKER_STATE_VALID_REFRESHING) && peer->address.l==peer_address.l; + return (peer->state==FD_PING_TRACKER_STATE_VALID || peer->state==FD_PING_TRACKER_STATE_VALID_REFRESHING) && peer->address.addr==peer_address.addr && peer->address.port==peer_address.port; } int diff --git a/src/flamenco/progcache/Local.mk b/src/flamenco/progcache/Local.mk index d13084d5bba..55243e87091 100644 --- a/src/flamenco/progcache/Local.mk +++ b/src/flamenco/progcache/Local.mk @@ -19,14 +19,12 @@ $(call add-objs,fd_progcache_rec,fd_flamenco) $(call add-objs,fd_progcache_reclaim,fd_flamenco) ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 $(call make-unit-test,test_progcache,test_progcache,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_progcache) ifdef FD_HAS_RACESAN $(call make-unit-test,test_progcache_racesan,test_progcache_racesan,fd_flamenco fd_funk fd_ballet fd_util) endif endif -endif # Internals $(call add-objs,fd_progcache_rec,fd_flamenco) diff --git a/src/flamenco/progcache/fd_progcache.h b/src/flamenco/progcache/fd_progcache.h index f91895fe2a2..c07bed1154f 100644 --- a/src/flamenco/progcache/fd_progcache.h +++ b/src/flamenco/progcache/fd_progcache.h @@ -10,6 +10,7 @@ #include "fd_progcache_xid.h" #include "../fd_rwlock.h" #include "../runtime/fd_runtime_const.h" +#include "fd_progcache_xid.h" /* fd_progcache_shmem_t is the top-level shared memory data structure of the progcache. */ diff --git a/src/flamenco/progcache/fd_progcache_rec.c b/src/flamenco/progcache/fd_progcache_rec.c index 78b81e508c3..30c9d81281b 100644 --- a/src/flamenco/progcache/fd_progcache_rec.c +++ b/src/flamenco/progcache/fd_progcache_rec.c @@ -1,6 +1,7 @@ #include "fd_progcache.h" #include "../vm/fd_vm.h" /* fd_vm_syscall_register_slot, fd_vm_validate */ #include "../../util/alloc/fd_alloc.h" + #include /* Can be overridden by test executables */ diff --git a/src/flamenco/progcache/fd_progcache_xid.h b/src/flamenco/progcache/fd_progcache_xid.h index 637a87c7674..7962cfbe1df 100644 --- a/src/flamenco/progcache/fd_progcache_xid.h +++ b/src/flamenco/progcache/fd_progcache_xid.h @@ -14,7 +14,7 @@ #if FD_HAS_INT128 -/* If the target supports uint128, fd_progcache_rec_key_hash is seeded +/* If the target has fast uint128, fd_progcache_rec_key_hash is seeded xxHash3 with 64-bit output size. (open source BSD licensed) */ static inline ulong diff --git a/src/flamenco/rewards/Local.mk b/src/flamenco/rewards/Local.mk index 2891adf67bc..f170a1aeaf7 100644 --- a/src/flamenco/rewards/Local.mk +++ b/src/flamenco/rewards/Local.mk @@ -1,5 +1,3 @@ -ifdef FD_HAS_INT128 - $(call add-hdrs,fd_rewards_base.h) $(call add-hdrs,fd_stake_rewards.h) @@ -7,4 +5,3 @@ $(call add-objs,fd_stake_rewards,fd_flamenco) $(call add-hdrs,fd_rewards.h) $(call add-objs,fd_rewards,fd_flamenco) -endif diff --git a/src/flamenco/runtime/Local.mk b/src/flamenco/runtime/Local.mk index 663238fd896..56ed0219729 100644 --- a/src/flamenco/runtime/Local.mk +++ b/src/flamenco/runtime/Local.mk @@ -10,34 +10,26 @@ $(call add-objs,fd_blockhashes,fd_flamenco) $(call add-objs,fd_core_bpf_migration,fd_flamenco) $(call add-hdrs,fd_executor.h) -ifdef FD_HAS_INT128 $(call add-objs,fd_executor,fd_flamenco) -endif $(call add-hdrs,fd_hashes.h) $(call add-objs,fd_hashes,fd_flamenco) ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 $(call make-unit-test,test_hashes,test_hashes,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_hashes) endif -endif $(call add-hdrs,fd_pubkey_utils.h) $(call add-objs,fd_pubkey_utils,fd_flamenco) ifdef FD_HAS_ATOMIC -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_txncache_shmem.h fd_txncache.h) $(call add-objs,fd_txncache_shmem fd_txncache,fd_flamenco) -endif $(call add-hdrs,fd_cost_tracker.h) $(call add-objs,fd_cost_tracker,fd_flamenco) -ifdef FD_HAS_INT128 $(call make-unit-test,test_cost_tracker,test_cost_tracker,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_cost_tracker) endif -endif $(call add-hdrs,fd_compute_budget_details.h) $(call add-objs,fd_compute_budget_details,fd_flamenco) @@ -49,31 +41,26 @@ $(call add-hdrs,fd_acc_pool.h) $(call add-objs,fd_acc_pool,fd_flamenco) ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 $(call make-unit-test,test_bundle_exec,test_bundle_exec,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_bundle_exec) $(call make-unit-test,test_runtime_alut,test_runtime_alut,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_runtime_alut) endif -endif ifdef FD_HAS_ATOMIC $(call add-hdrs,fd_bank.h) $(call add-objs,fd_bank,fd_flamenco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_bank,test_bank,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_bank) endif endif -endif -ifdef FD_HAS_ALLOCA +ifdef FD_HAS_HOSTED $(call make-unit-test,test_txncache,test_txncache,fd_flamenco fd_ballet fd_util) endif ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 $(call add-hdrs,fd_runtime.h fd_runtime_err.h fd_runtime_const.h fd_runtime_stack.h fd_runtime_helpers.h) $(call add-objs,fd_runtime,fd_flamenco) ifdef FD_HAS_HOSTED @@ -99,7 +86,6 @@ $(call make-unit-test,test_feature_activation,tests/test_feature_activation,fd_f $(call run-unit-test,test_feature_activation) endif endif -endif $(call add-hdrs,fd_system_ids.h) $(call add-objs,fd_system_ids,fd_flamenco) diff --git a/src/flamenco/runtime/program/Local.mk b/src/flamenco/runtime/program/Local.mk index 9067e3d54db..06dec7d9430 100644 --- a/src/flamenco/runtime/program/Local.mk +++ b/src/flamenco/runtime/program/Local.mk @@ -34,7 +34,6 @@ $(call add-objs,fd_native_cpi,fd_flamenco) ### Unit tests ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 ifdef FD_HAS_HOSTED $(call make-unit-test,test_bpf_loader_serialization,test_bpf_loader_serialization,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_bpf_loader_serialization) @@ -49,7 +48,6 @@ $(call make-unit-test,test_create_account_allow_prefund,test_create_account_allo $(call run-unit-test,test_create_account_allow_prefund) endif endif -endif $(call make-unit-test,test_compute_budget_decode,test_compute_budget_decode,fd_flamenco fd_ballet fd_util) $(call run-unit-test,test_compute_budget_decode) diff --git a/src/flamenco/runtime/program/fd_compute_budget_program.c b/src/flamenco/runtime/program/fd_compute_budget_program.c index e3f79a68ed5..9a75777ff52 100644 --- a/src/flamenco/runtime/program/fd_compute_budget_program.c +++ b/src/flamenco/runtime/program/fd_compute_budget_program.c @@ -6,6 +6,7 @@ #include "../fd_executor.h" #include "fd_builtin_programs.h" #include "../fd_compute_budget_details.h" +#include "../../vm/fd_vm_base.h" /* https://github.com/anza-xyz/agave/blob/v4.0.0-beta.7/program-runtime/src/execution_budget.rs#L44 */ #define DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT (200000UL) diff --git a/src/flamenco/runtime/program/vote/fd_vote_utils.h b/src/flamenco/runtime/program/vote/fd_vote_utils.h index e2a44e1d1ff..8983b91a6ed 100644 --- a/src/flamenco/runtime/program/vote/fd_vote_utils.h +++ b/src/flamenco/runtime/program/vote/fd_vote_utils.h @@ -2,7 +2,7 @@ #define HEADER_fd_src_flamenco_runtime_program_vote_fd_vote_utils_h #include "fd_vote_codec.h" -#include "../../fd_executor.h" +#include "../../../../ballet/txn/fd_txn.h" /* Vote utility functions shared across vote program logic. Merged from the former fd_vote_common.h and fd_vote_lockout.h. */ diff --git a/src/flamenco/runtime/sysvar/Local.mk b/src/flamenco/runtime/sysvar/Local.mk index c9467d2101a..fbed051e699 100644 --- a/src/flamenco/runtime/sysvar/Local.mk +++ b/src/flamenco/runtime/sysvar/Local.mk @@ -4,13 +4,11 @@ $(call add-objs,fd_sysvar,fd_flamenco) $(call add-hdrs,fd_sysvar_cache.h) $(call add-objs,fd_sysvar_cache fd_sysvar_cache_db,fd_flamenco) -ifdef FD_HAS_INT128 $(call add-hdrs,fd_sysvar_clock.h) $(call add-objs,fd_sysvar_clock,fd_flamenco) $(call add-hdrs,fd_sysvar_epoch_rewards.h) $(call add-objs,fd_sysvar_epoch_rewards,fd_flamenco) -endif $(call add-hdrs,fd_sysvar_epoch_schedule.h) $(call add-objs,fd_sysvar_epoch_schedule,fd_flamenco) @@ -40,8 +38,6 @@ $(call add-hdrs,fd_sysvar_stake_history.h) $(call add-objs,fd_sysvar_stake_history,fd_flamenco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_sysvar,test_sysvar,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_sysvar) endif -endif diff --git a/src/flamenco/runtime/sysvar/fd_sysvar_base.h b/src/flamenco/runtime/sysvar/fd_sysvar_base.h index 88b3ed43bb3..ac1ad9cfe45 100644 --- a/src/flamenco/runtime/sysvar/fd_sysvar_base.h +++ b/src/flamenco/runtime/sysvar/fd_sysvar_base.h @@ -2,7 +2,6 @@ #define HEADER_fd_src_flamenco_runtime_sysvar_fd_sysvar_base_h #include "../../fd_flamenco_base.h" -#include "../../accdb/fd_accdb_base.h" #define FD_SYSVAR_ALIGN_MAX (16UL) diff --git a/src/flamenco/runtime/sysvar/fd_sysvar_cache.c b/src/flamenco/runtime/sysvar/fd_sysvar_cache.c index 021a5d7e1d1..39bd339df41 100644 --- a/src/flamenco/runtime/sysvar/fd_sysvar_cache.c +++ b/src/flamenco/runtime/sysvar/fd_sysvar_cache.c @@ -4,6 +4,7 @@ #include "fd_sysvar_slot_hashes.h" #include "fd_sysvar_slot_history.h" #include "fd_sysvar_stake_history.h" + #include void * diff --git a/src/flamenco/runtime/sysvar/fd_sysvar_rent1.c b/src/flamenco/runtime/sysvar/fd_sysvar_rent1.c index e6f3a0f53e1..da1ef7eed59 100644 --- a/src/flamenco/runtime/sysvar/fd_sysvar_rent1.c +++ b/src/flamenco/runtime/sysvar/fd_sysvar_rent1.c @@ -1,6 +1,5 @@ #include "fd_sysvar_rent.h" - -/* Moved into a separate compile unit to minimize dependencies on fd_funk */ +#include "../../types/fd_cast.h" /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/rent.rs#L36 */ #define ACCOUNT_STORAGE_OVERHEAD (128) diff --git a/src/flamenco/runtime/sysvar/test_sysvar.c b/src/flamenco/runtime/sysvar/test_sysvar.c index 1ab7e852cda..c65e9d774d6 100644 --- a/src/flamenco/runtime/sysvar/test_sysvar.c +++ b/src/flamenco/runtime/sysvar/test_sysvar.c @@ -1,8 +1,6 @@ #include "test_sysvar_cache.c" #include "test_sysvar_clock.c" -#if FD_HAS_INT128 #include "test_sysvar_epoch_rewards.c" -#endif #include "test_sysvar_epoch_schedule.c" #include "test_sysvar_last_restart_slot.c" #include "test_sysvar_recent_hashes.c" @@ -28,9 +26,7 @@ main( int argc, test_sysvar_cache(); -# if FD_HAS_INT128 test_sysvar_epoch_rewards( wksp ); -# endif test_sysvar_epoch_schedule( wksp ); test_sysvar_last_restart_slot(); test_sysvar_recent_hashes( wksp ); diff --git a/src/flamenco/runtime/test_txncache.c b/src/flamenco/runtime/test_txncache.c index e9d6801d64f..629c6723257 100644 --- a/src/flamenco/runtime/test_txncache.c +++ b/src/flamenco/runtime/test_txncache.c @@ -8,19 +8,9 @@ FD_STATIC_ASSERT( FD_TXNCACHE_ALIGN==128UL, unit_test ); -#define BLOCKHASH( x ) __extension__({ \ - uchar * _out = fd_alloca_check( 1UL, 32UL ); \ - fd_memset( _out, 0, 32UL ); \ - (void)FD_STORE( ulong, _out, (x) ); \ - _out; \ -}) - -#define TXNHASH( x ) __extension__({ \ - uchar * _out = fd_alloca_check( 1UL, 32UL ); \ - fd_memset( _out, 0, 32UL ); \ - (void)FD_STORE( ulong, _out, (x) ); \ - _out; \ -}) +#define BLOCKHASH( x ) (&((fd_hash_t){ .ul = { (x) } }))->uc + +#define TXNHASH( x ) (&((fd_hash_t){ .ul = { (x) } }))->uc #define NULL_FORK ((fd_txncache_fork_id_t){ .val = USHORT_MAX }) diff --git a/src/flamenco/runtime/tests/Local.mk b/src/flamenco/runtime/tests/Local.mk index 8e254d60dc5..c5f19b113df 100644 --- a/src/flamenco/runtime/tests/Local.mk +++ b/src/flamenco/runtime/tests/Local.mk @@ -1,43 +1,35 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call add-hdrs,fd_solfuzz.h) $(call add-objs,fd_solfuzz fd_solfuzz_exec,fd_flamenco_test) $(call add-hdrs,fd_dump_pb.h) $(call add-objs,fd_dump_pb,fd_flamenco) endif -endif $(call add-hdrs,fd_instr_harness.h fd_txn_harness.h fd_bundle_harness.h fd_gossip_harness.h fd_cost_harness.h) $(call add-objs,fd_elf_harness fd_instr_harness fd_txn_harness fd_bundle_harness fd_cost_harness fd_harness_common fd_vm_harness fd_gossip_harness,fd_flamenco_test) -ifdef FD_HAS_INT128 $(call add-objs,fd_block_harness,fd_flamenco_test) -endif $(call add-objs,fd_sol_compat,fd_flamenco_test) $(call add-hdrs,generated/context.pb.h generated/instr.pb.h generated/txn.pb.h generated/bundle.pb.h generated/block.pb.h generated/vm.pb.h generated/vm_serialization.pb.h generated/metadata.pb.h generated/gossip.pb.h generated/cost.pb.h generated/elf.pb.h) $(call add-objs,generated/context.pb generated/instr.pb generated/txn.pb generated/bundle.pb generated/block.pb generated/vm.pb generated/vm_serialization.pb generated/metadata.pb generated/gossip.pb generated/cost.pb generated/elf.pb,fd_flamenco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 SOL_COMPAT_FLAGS:=-Wl,--version-script=src/flamenco/runtime/tests/libfd_exec_sol_compat.map $(call make-unit-test,test_sol_compat,test_sol_compat,fd_flamenco_test fd_flamenco fd_tango fd_funk fd_ballet fd_util fd_disco) $(call make-shared,libfd_exec_sol_compat.so,fd_sol_compat,fd_flamenco_test fd_flamenco fd_funk fd_ballet fd_util fd_disco,$(SOL_COMPAT_FLAGS)) $(call make-unit-test,test_sol_compat_so,test_sol_compat_so,fd_util) endif -endif $(call add-hdrs,fd_svm_elfgen.h) $(call add-objs,fd_svm_elfgen,fd_flamenco_test) $(call make-unit-test,test_svm_elfgen,test_svm_elfgen,fd_flamenco_test fd_flamenco fd_ballet fd_util fd_disco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call add-hdrs,fd_svm_mini.h) $(call add-objs,fd_svm_mini,fd_flamenco_test) $(call make-unit-test,test_svm_mini,test_svm_mini,fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util fd_disco) $(call make-unit-test,test_accdb_svm,test_accdb_svm,fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util fd_disco) endif -endif run-runtime-backtest: $(OBJDIR)/bin/firedancer-dev OBJDIR=$(OBJDIR) src/flamenco/runtime/tests/run_backtest_ci.sh $(BACKTEST_ARGS) diff --git a/src/flamenco/runtime/tests/fd_svm_mini.c b/src/flamenco/runtime/tests/fd_svm_mini.c index 82d92ec0c46..7d7c8742adc 100644 --- a/src/flamenco/runtime/tests/fd_svm_mini.c +++ b/src/flamenco/runtime/tests/fd_svm_mini.c @@ -27,7 +27,8 @@ #include static fd_wksp_t * -fd_wksp_new_lazy( ulong footprint ) { +fd_wksp_new_lazy( ulong footprint, + ulong addl_part_cnt ) { footprint = fd_ulong_align_up( footprint, FD_SHMEM_NORMAL_PAGE_SZ ); void * mem = mmap( NULL, footprint, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 ); if( FD_UNLIKELY( mem==MAP_FAILED ) ) { @@ -37,6 +38,7 @@ fd_wksp_new_lazy( ulong footprint ) { ulong part_max = fd_wksp_part_max_est( footprint, 64UL<<10 ); FD_TEST( part_max ); + part_max += addl_part_cnt; ulong data_max = fd_wksp_data_max_est( footprint, part_max ); FD_TEST( data_max ); fd_wksp_t * wksp = fd_wksp_join( fd_wksp_new( mem, "wksp", 1U, part_max, data_max ) ); @@ -79,7 +81,7 @@ fd_svm_test_boot( int * pargc, } else { fallback: FD_LOG_NOTICE(( "--page-sz not specified, using lazy paged memory" )); - wksp = fd_wksp_new_lazy( wksp_sz ); + wksp = fd_wksp_new_lazy( wksp_sz, limits->wksp_addl_part_cnt ); } if( FD_UNLIKELY( !wksp ) ) FD_LOG_ERR(( "Unable to attach to wksp" )); @@ -123,6 +125,7 @@ fd_svm_mini_wksp_data_max( fd_svm_mini_limits_t const * limits ) { sz += WKSP_ALLOC( fd_vm_align(), fd_vm_footprint() ); sz += WKSP_ALLOC( 16UL, limits->max_account_space_bytes ); sz += WKSP_ALLOC( 1UL, limits->max_progcache_heap_bytes ); + sz += WKSP_ALLOC( 16UL, limits->wksp_addl_sz ); # undef WKSP_ALLOC return sz; diff --git a/src/flamenco/runtime/tests/fd_svm_mini.h b/src/flamenco/runtime/tests/fd_svm_mini.h index 7e401337f5d..c139e080309 100644 --- a/src/flamenco/runtime/tests/fd_svm_mini.h +++ b/src/flamenco/runtime/tests/fd_svm_mini.h @@ -78,6 +78,10 @@ struct fd_svm_mini_limits { /* wksp alloc tag (0 uses default) */ ulong wksp_tag; + + /* additional wksp partitions / data size */ + ulong wksp_addl_part_cnt; + ulong wksp_addl_sz; }; typedef struct fd_svm_mini_limits fd_svm_mini_limits_t; diff --git a/src/flamenco/stakes/Local.mk b/src/flamenco/stakes/Local.mk index b2528d1418d..a46bed5df7e 100644 --- a/src/flamenco/stakes/Local.mk +++ b/src/flamenco/stakes/Local.mk @@ -8,11 +8,9 @@ $(call add-hdrs,fd_stake_delegations.h) $(call add-objs,fd_stake_delegations,fd_flamenco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_stake_delegations,test_stake_delegations,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_stake_delegations) endif -endif $(call add-hdrs,fd_top_votes.h) $(call add-objs,fd_top_votes,fd_flamenco) diff --git a/src/flamenco/vm/Local.mk b/src/flamenco/vm/Local.mk index 1461cddb263..d2ec6dc1a75 100644 --- a/src/flamenco/vm/Local.mk +++ b/src/flamenco/vm/Local.mk @@ -1,11 +1,9 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call add-hdrs,fd_vm_base.h fd_vm.h fd_vm_private.h) # FIXME: PRIVATE TEMPORARILY HERE DUE TO SOME MESSINESS IN FD_VM_SYSCALL.H $(call add-objs,fd_vm fd_vm_interp fd_vm_disasm fd_vm_trace,fd_flamenco) $(call add-hdrs,test_vm_util.h) $(call add-objs,test_vm_util,fd_flamenco) -endif # Unfortunately, the get_sysvar syscall handler depends on the funk database ifdef FD_HAS_BLST @@ -15,11 +13,9 @@ endif endif ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_vm_base,test_vm_base,fd_flamenco fd_ballet fd_util fd_funk) $(call run-unit-test,test_vm_base) endif -endif ifdef FD_HAS_BLST $(call make-unit-test,test_vm_instr,test_vm_instr,fd_flamenco fd_funk fd_ballet fd_util,$(BLST_LIBS)) diff --git a/src/flamenco/vm/syscall/fd_vm_syscall.c b/src/flamenco/vm/syscall/fd_vm_syscall.c index e459696f094..e75dee41fda 100644 --- a/src/flamenco/vm/syscall/fd_vm_syscall.c +++ b/src/flamenco/vm/syscall/fd_vm_syscall.c @@ -134,10 +134,8 @@ fd_vm_syscall_register_slot( fd_sbpf_syscalls_t * syscalls, // used, we can ignore it for now //REGISTER( "sol_curve_pairing_map", fd_vm_syscall_sol_curve_pairing_map ); -#if FD_HAS_INT128 REGISTER( "sol_alt_bn128_group_op", fd_vm_syscall_sol_alt_bn128_group_op ); REGISTER( "sol_alt_bn128_compression", fd_vm_syscall_sol_alt_bn128_compression ); -#endif /* FD_HAS_INT128 */ //REGISTER( "sol_big_mod_exp", fd_vm_syscall_sol_big_mod_exp ); diff --git a/src/util/bits/fd_bits.h b/src/util/bits/fd_bits.h index d7e9fe62328..b54de2def67 100644 --- a/src/util/bits/fd_bits.h +++ b/src/util/bits/fd_bits.h @@ -214,7 +214,7 @@ FD_SRC_UTIL_BITS_FD_BITS_IMPL(ushort,16) FD_SRC_UTIL_BITS_FD_BITS_IMPL(uint, 32) FD_SRC_UTIL_BITS_FD_BITS_IMPL(ulong, 64) -#if FD_HAS_INT128 /* FIXME: These probably could benefit from x86 specializations */ +#ifdef __SIZEOF_INT128__ /* FIXME: These probably could benefit from x86 specializations */ FD_SRC_UTIL_BITS_FD_BITS_IMPL(uint128,128) #endif @@ -225,7 +225,7 @@ FD_FN_CONST static inline int fd_ushort_popcnt( ushort x ) { return __builtin_po FD_FN_CONST static inline int fd_uint_popcnt ( uint x ) { return __builtin_popcount ( x ); } FD_FN_CONST static inline int fd_ulong_popcnt ( ulong x ) { return __builtin_popcountl( x ); } -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ FD_FN_CONST static inline int fd_uint128_popcnt( uint128 x ) { return __builtin_popcountl( (ulong) x ) + __builtin_popcountl( (ulong)(x>>64) ); @@ -240,7 +240,7 @@ FD_FN_CONST static inline ushort fd_ushort_bswap( ushort x ) { return __builtin_ FD_FN_CONST static inline uint fd_uint_bswap ( uint x ) { return __builtin_bswap32( x ); } FD_FN_CONST static inline ulong fd_ulong_bswap ( ulong x ) { return __builtin_bswap64( x ); } -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ FD_FN_CONST static inline uint128 fd_uint128_bswap( uint128 x ) { ulong xl = (ulong) x; @@ -349,7 +349,7 @@ fd_ulong_pow2_dn( ulong x ) { return x; } -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ FD_FN_CONST static inline uint128 fd_uint128_pow2_up( uint128 x ) { x--; @@ -419,7 +419,7 @@ FD_SRC_UTIL_BITS_FD_BITS_IMPL(schar, uchar, 8) FD_SRC_UTIL_BITS_FD_BITS_IMPL(short, ushort, 16) FD_SRC_UTIL_BITS_FD_BITS_IMPL(int, uint, 32) FD_SRC_UTIL_BITS_FD_BITS_IMPL(long, ulong, 64) -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ FD_SRC_UTIL_BITS_FD_BITS_IMPL(int128,uint128,128) #endif diff --git a/src/util/bits/fd_sat.h b/src/util/bits/fd_sat.h index 72803cf1495..e70ddd7f74f 100644 --- a/src/util/bits/fd_sat.h +++ b/src/util/bits/fd_sat.h @@ -15,29 +15,25 @@ FD_PROTOTYPES_BEGIN -#if FD_HAS_INT128 - -FD_FN_CONST static inline __uint128_t -fd_uint128_sat_add( __uint128_t x, __uint128_t y ) { - __uint128_t res = x + y; +FD_FN_CONST static inline uint128 +fd_uint128_sat_add( uint128 x, uint128 y ) { + uint128 res = x + y; return fd_uint128_if( res < x, UINT128_MAX, res ); } -FD_FN_CONST static inline __uint128_t -fd_uint128_sat_mul( __uint128_t x, __uint128_t y ) { - __uint128_t res = x * y; +FD_FN_CONST static inline uint128 +fd_uint128_sat_mul( uint128 x, uint128 y ) { + uint128 res = x * y; uchar overflow = ( x != 0 ) && ( y != 0 ) && ( ( res < x ) || ( res < y ) || ( ( res / x ) != y ) ); return fd_uint128_if( overflow, UINT128_MAX, res ); } -FD_FN_CONST static inline __uint128_t -fd_uint128_sat_sub( __uint128_t x, __uint128_t y ) { - __uint128_t res = x - y; +FD_FN_CONST static inline uint128 +fd_uint128_sat_sub( uint128 x, uint128 y ) { + uint128 res = x - y; return fd_uint128_if( res > x, 0, res ); } -#endif /* FD_HAS_INT128 */ - FD_FN_CONST static inline ulong fd_ulong_sat_add( ulong x, ulong y ) { ulong res; diff --git a/src/util/fd_util_base.h b/src/util/fd_util_base.h index 69afb8b869d..56c4c1f573f 100644 --- a/src/util/fd_util_base.h +++ b/src/util/fd_util_base.h @@ -324,7 +324,7 @@ typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ __extension__ typedef __int128 int128; __extension__ typedef unsigned __int128 uint128; diff --git a/src/util/fibre/Local.mk b/src/util/fibre/Local.mk deleted file mode 100644 index 80b6e47afe2..00000000000 --- a/src/util/fibre/Local.mk +++ /dev/null @@ -1,8 +0,0 @@ -ifdef FD_HAS_HOSTED -ifdef FD_HAS_LINUX -$(call make-lib,fd_fibre) -$(call add-objs,fd_fibre,fd_fibre) -$(call make-unit-test,test_fibre,test_fibre,fd_fibre fd_util) -$(call run-unit-test,test_fibre) -endif -endif diff --git a/src/util/fibre/fd_fibre.c b/src/util/fibre/fd_fibre.c deleted file mode 100644 index 41c0a34deea..00000000000 --- a/src/util/fibre/fd_fibre.c +++ /dev/null @@ -1,444 +0,0 @@ -#include "fd_fibre.h" - -#include -#include -#include -#include - -fd_fibre_t * fd_fibre_current = NULL; - -/* top level function - simply calls the user function then sets the done flag */ -void -fd_fibre_run_fn( void * vp ) { - fd_fibre_t * fibre = (fd_fibre_t*)vp; - - /* call user function */ - fibre->fn( fibre->arg ); - - /* set done flag */ - fibre->done = 1; -} - -/* footprint and alignment required for fd_fibre_init */ -ulong -fd_fibre_init_footprint( void ) { - /* size should be a multiple of the alignment */ - return fd_ulong_align_up( sizeof( fd_fibre_t ), FD_FIBRE_ALIGN ); -} - -ulong -fd_fibre_init_align( void ) { - return FD_FIBRE_ALIGN; -} - -/* initialize main fibre */ -fd_fibre_t * -fd_fibre_init( void * mem ) { - fd_fibre_t * fibre = (fd_fibre_t*)mem; - - memset( fibre, 0, sizeof( *fibre ) ); - - fibre->stack = NULL; - fibre->stack_sz = 0; - - ucontext_t * ctx = &fibre->ctx; - - if( getcontext( ctx ) == -1 ) { - fprintf( stderr, "getcontext failed with %d %s\n", errno, fd_io_strerror( errno ) ); - fflush( stderr ); - fd_fibre_abort(); - } - - fd_fibre_current = fibre; - - return fibre; -} - -/* footprint and alignment required for fd_fibre_start */ -ulong -fd_fibre_start_footprint( ulong stack_size ) { - return fd_ulong_align_up( sizeof( fd_fibre_t ), FD_FIBRE_ALIGN ) + - fd_ulong_align_up( stack_size, FD_FIBRE_ALIGN ); -} - -ulong fd_fibre_start_align( void ) { - return FD_FIBRE_ALIGN; -} - -/* start a fibre */ - -/* this uses get/setcontext to start a new fibre - the current fibre will continue running, and the new one will be - inactive, and ready to switch to - this is cooperative threading - this fibre may be started on another thread */ -fd_fibre_t * -fd_fibre_start( void * mem, ulong stack_sz, fd_fibre_fn_t fn, void * arg ) { - if( fd_fibre_current == NULL ) { - fprintf( stderr, "fd_fibre_init must be called before fd_fibre_start\n" ); - fflush( stderr ); - fd_fibre_abort(); - } - - ulong l_mem = (ulong)mem; - - void * stack = (void*)( l_mem + - fd_ulong_align_up( sizeof( fd_fibre_t ), FD_FIBRE_ALIGN ) ); - - fd_fibre_t * fibre = (fd_fibre_t*)mem; - - memset( fibre, 0, sizeof( *fibre ) ); - - /* set the current value of stack and stack_sz */ - fibre->stack_sz = stack_sz; - fibre->stack = stack; - - fibre->fn = fn; - fibre->arg = arg; - - /* start with the current fibre */ - memcpy( &fibre->ctx, &fd_fibre_current->ctx, sizeof( fibre->ctx ) ); - - /* set the successor context, for use in the event the fibre terminates */ - fibre->ctx.uc_link = &fd_fibre_current->ctx; - - /* set the stack for the new fibre */ - fibre->ctx.uc_stack.ss_sp = stack; - fibre->ctx.uc_stack.ss_size = stack_sz; - - /* make a new context */ - makecontext( &fibre->ctx, (void(*)(void))fd_fibre_run_fn, 1, fibre ); - - return fibre; -} - -/* free a fibre - - this frees up the resources of a fibre */ -void -fd_fibre_free( fd_fibre_t * fibre ) { - /* nothing to do, as caller owns memory */ - (void)fibre; -} - -/* switch execution to a fibre - - switches execution to "swap_to" - "swap_to" must have been created with either fd_fibre_init, or fd_fibre_start */ -void -fd_fibre_swap( fd_fibre_t * swap_to ) { - if( swap_to == fd_fibre_current ) { - return; - } - - if( swap_to->done ) return; - - /* set the context to return to as the current context */ - swap_to->ctx.uc_link = &fd_fibre_current->ctx; - - /* store current fibre for popping */ - fd_fibre_t * fibre_pop = fd_fibre_current; - - /* set fd_fibre_current for next execution context */ - fd_fibre_current = swap_to; - - /* switch to new fibre */ - if( swapcontext( &fibre_pop->ctx, &swap_to->ctx ) == -1 ) { - fprintf( stderr, "swapcontext failed with %d %s\n", errno, fd_io_strerror( errno ) ); - fflush( stdout ); - fd_fibre_abort(); - } - - /* return value of fibre to its previous value */ - fd_fibre_current = fibre_pop; -} - -/* set a clock for scheduler */ -long (*fd_fibre_clock)(void); - -/* fibre for scheduler */ -fd_fibre_t * fd_fibre_scheduler = NULL; - -void -fd_fibre_set_clock( long (*clock)(void) ) { - fd_fibre_clock = clock; -} - -/* yield current fibre - allows another fibre to run */ -void -fd_fibre_yield( void ) { - /* same as yield */ - fd_fibre_wait(0); -} - -/* stops running currently executing fibre for a period */ -void -fd_fibre_wait( long wait_ns ) { - /* cannot wait if no scheduler */ - if( fd_fibre_scheduler == NULL ) return; - - /* calc wake time */ - long wake = fd_fibre_clock() + ( wait_ns < 1 ? 1 : wait_ns ); - - fd_fibre_current->sched_time = wake; - - fd_fibre_schedule( fd_fibre_current ); - - /* switch to the fibre scheduler */ - fd_fibre_swap( fd_fibre_scheduler ); -} - -/* stops running currently executing fibre until a particular - time */ -void -fd_fibre_wait_until( long resume_time_ns ) { - long now = fd_fibre_clock(); - if( resume_time_ns <= now ) { - /* ensure that another fibre gets a chance at some point */ - resume_time_ns = now + 1; - } - - /* cannot wait if no scheduler */ - if( fd_fibre_scheduler == NULL ) return; - - fd_fibre_current->sched_time = resume_time_ns; - - fd_fibre_schedule( fd_fibre_current ); - - /* switch to the fibre scheduler */ - fd_fibre_swap( fd_fibre_scheduler ); -} - -/* wakes another fibre */ -void -fd_fibre_wake( fd_fibre_t * fibre ) { - if( fd_fibre_current == fibre ) return; - - fibre->sched_time = fd_fibre_clock(); - fd_fibre_schedule( fibre ); -} - -/* sentinel for run queue */ -fd_fibre_t fd_fibre_schedule_queue[1] = {{ .sentinel = 1, .next = fd_fibre_schedule_queue }}; - -/* add a fibre to the schedule */ -void -fd_fibre_schedule( fd_fibre_t * fibre ) { - if( fd_fibre_clock == NULL ) fd_fibre_abort(); - - fd_fibre_t * cur_fibre = fd_fibre_schedule_queue; - - /* remove from schedule */ - while(1) { - if( cur_fibre->next == fibre ) { - cur_fibre->next = fibre->next; - } - - cur_fibre = cur_fibre->next; - if( cur_fibre->sentinel ) break; - } - - /* add into schedule at appropriate place for wake time */ - fd_fibre_t * prior = fd_fibre_schedule_queue; - long wake = fibre->sched_time; - - cur_fibre = prior->next; - while( !cur_fibre->sentinel && wake > cur_fibre->sched_time ) { - prior = cur_fibre; - cur_fibre = cur_fibre->next; - } - - /* insert into schedule */ - fibre->next = cur_fibre; - prior->next = fibre; -} - -/* run the current schedule - - returns the time of the next ready fibre - returns -1 if there are no fibres in the schedule */ -long -fd_fibre_schedule_run( void ) { - /* set the currently running fibre as the scheduler */ - fd_fibre_scheduler = fd_fibre_current; - - while(1) { - fd_fibre_t * cur_fibre = fd_fibre_schedule_queue->next; - if( cur_fibre->sentinel ) return -1; - - long now = fd_fibre_clock(); - if( cur_fibre->sched_time > now ) { - /* nothing more to do yet */ - return cur_fibre->sched_time; - } - - /* remove from schedule */ - fd_fibre_schedule_queue->next = cur_fibre->next; - - /* if fibre done, skip execution */ - if( !cur_fibre->done ) { - fd_fibre_swap( cur_fibre ); - } - } - - return -1; -} - -ulong -fd_fibre_pipe_align( void ) { - return alignof( fd_fibre_pipe_t ); -} - -ulong -fd_fibre_pipe_footprint( ulong entries ) { - return sizeof( fd_fibre_pipe_t ) + entries * sizeof( ulong ); -} - -fd_fibre_pipe_t * -fd_fibre_pipe_new( void * mem, ulong entries ) { - fd_fibre_pipe_t * pipe = (fd_fibre_pipe_t*)mem; - - ulong * entries_array = (ulong*)&pipe[1]; - - pipe->cap = entries; - pipe->head = 0UL; - pipe->tail = 0UL; - pipe->reader = NULL; - pipe->writer = NULL; - pipe->entries = entries_array; - - return pipe; -} - -int -fd_fibre_pipe_write( fd_fibre_pipe_t * pipe, ulong value, long timeout ) { - fd_fibre_t * prev_writer = pipe->writer; - - ulong used = 0; - ulong free = 0; - - long timeout_ts = fd_fibre_clock() + timeout; - - /* loop until either there is space for a new value to be - written, or until we time out */ - while(1) { - used = pipe->head - pipe->tail; - free = pipe->cap - used; - - /* if we have free space, break out of loop */ - if( free ) break; - - /* we have no free space within which to write, so wait */ - - /* update the writer to ourself */ - pipe->writer = fd_fibre_current; - - /* did we time out? */ - if( fd_fibre_clock() >= timeout_ts ) { - /* restore writer before returning */ - pipe->writer = prev_writer; - - /* return timeout */ - return 1; - } - - /* wait */ - - /* set current fibre as the writer */ - pipe->writer = fd_fibre_current; - - /* set wakeup time */ - fd_fibre_current->sched_time = timeout_ts; - fd_fibre_schedule( fd_fibre_current ); - - /* switch to the scheduler */ - fd_fibre_swap( fd_fibre_scheduler ); - } - - /* we have free space, so store the value */ - pipe->entries[pipe->head % pipe->cap] = value; - - /* increment the head */ - pipe->head++; - - /* wake up one waiting reader, if any */ - if( pipe->reader ) { - /* ensure we are scheduled */ - fd_fibre_current->sched_time = fd_fibre_clock();; - fd_fibre_schedule( fd_fibre_current ); - - fd_fibre_swap( pipe->reader ); - } - - /* restore writer */ - pipe->writer = prev_writer; - - /* return successful write */ - return 0; -} - -int -fd_fibre_pipe_read( fd_fibre_pipe_t * pipe, ulong *value, long timeout ) { - fd_fibre_t * prev_reader = pipe->reader; - - ulong used = 0; - - long timeout_ts = fd_fibre_clock() + timeout; - - /* loop until we have a value to be read, or until we time out */ - while(1) { - used = pipe->head - pipe->tail; - - /* is data available? */ - if( used ) break; - - /* no data available, so wait */ - - /* update the reader */ - pipe->reader = fd_fibre_current; - - /* did we time out? */ - if( fd_fibre_clock() >= timeout_ts ) { - /* restore the reader before returning */ - pipe->reader = prev_reader; - - /* return timeout */ - return 1; - } - - /* wait */ - - /* set current fibre as the reader */ - pipe->reader = fd_fibre_current; - - /* set wakeup time */ - fd_fibre_current->sched_time = timeout_ts; - fd_fibre_schedule( fd_fibre_current ); - - /* switch to the scheduler */ - fd_fibre_swap( fd_fibre_scheduler ); - } - - /* we have data to provide, so retrieve it */ - *value = pipe->entries[pipe->tail % pipe->cap]; - - /* increment the tail */ - pipe->tail++; - - /* wake up one waiting writer, if any */ - if( pipe->writer ) { - /* ensure we are scheduled */ - fd_fibre_current->sched_time = fd_fibre_clock();; - fd_fibre_schedule( fd_fibre_current ); - - fd_fibre_swap( pipe->writer ); - } - - /* restore reader */ - pipe->reader = prev_reader; - - /* return success */ - return 0; -} diff --git a/src/util/fibre/fd_fibre.h b/src/util/fibre/fd_fibre.h deleted file mode 100644 index 26fbaf61456..00000000000 --- a/src/util/fibre/fd_fibre.h +++ /dev/null @@ -1,220 +0,0 @@ -#ifndef HEADER_fd_src_util_fibre_fd_fibre_h -#define HEADER_fd_src_util_fibre_fd_fibre_h - -#include - -#include "../fd_util.h" - -#define FD_FIBRE_ALIGN 128UL - -/* definition of the function to be called when starting a new fibre */ -typedef void (*fd_fibre_fn_t)( void * ); - -struct fd_fibre { - ucontext_t ctx; - void * stack; - size_t stack_sz; - fd_fibre_fn_t fn; - void * arg; - int done; - - /* schedule parameters */ - long sched_time; - struct fd_fibre * next; - int sentinel; -}; -typedef struct fd_fibre fd_fibre_t; - - -struct fd_fibre_pipe { - ulong cap; /* capacity */ - ulong head; /* head index */ - ulong tail; /* tail index */ - - fd_fibre_t * writer; /* fibre that's currently waiting for a write, if any */ - fd_fibre_t * reader; /* fibre that's currently waiting for a read, if any */ - - ulong * entries; -}; -typedef struct fd_fibre_pipe fd_fibre_pipe_t; - - -/* TODO make thread local */ -extern fd_fibre_t * fd_fibre_current; - - -FD_PROTOTYPES_BEGIN - - -/* footprint and alignment required for fd_fibre_init */ -ulong fd_fibre_init_footprint( void ); -ulong fd_fibre_init_align( void ); - - -/* initialize main fibre - - should be called before making any other fibre calls - - creates a new fibre from the current thread, and returns it - caller should keep the fibre for later freeing - - probably shouldn't run this twice on the same thread - - mem is the memory allocated for this object. Use fd_fibre_init{_align,_footprint} to - obtain the appropriate size and alignment requirements */ - -fd_fibre_t * -fd_fibre_init( void * ); - - -/* footprint and alignment required for fd_fibre_start */ -ulong fd_fibre_start_footprint( ulong stack_size ); -ulong fd_fibre_start_align( void ); - - -/* Start a fibre - - This uses get/setcontext to create a new fibre - - fd_fibre_init must be called once before calling this - - The current fibre will continue running, and the other will be - inactive, and ready to switch to - - This fibre may be started on this or another thread - - mem is the memory used for the fibre. Use fd_fibre_start{_align,_footprint} - to determine the size and alignment required for the memory - - stack_sz is the size of the stack required - - fn is the function entry point to call in the new fibre - arg is the value to pass to function fn */ -fd_fibre_t * -fd_fibre_start( void * mem, ulong stack_sz, fd_fibre_fn_t fn, void * arg ); - - -/* Free a fibre - - This frees up the resources of a fibre - - Only call on a fibre that is not currently running */ -void -fd_fibre_free( fd_fibre_t * fibre ); - - -/* switch execution to a fibre - - Switches execution to "swap_to" - The global variable `fd_fibre_current` is updated with the state - of the currently running fibre before switching */ -void -fd_fibre_swap( fd_fibre_t * swap_to ); - - -/* fd_fibre_abort is called when a fatal error occurs */ -#ifndef fd_fibre_abort -# define fd_fibre_abort(...) abort( __VA_ARGS__ ) -#endif - - -/* set a clock for scheduler */ -void -fd_fibre_set_clock( long (*clock)(void) ); - - -/* yield current fibre - allows other fibres to execute */ -void -fd_fibre_yield( void ); - - -/* stops running currently executing fibre for a period of time */ -void -fd_fibre_wait( long wait_ns ); - - -/* stops running currently executing fibre until a particular - time */ -void -fd_fibre_wait_until( long resume_time_ns ); - - -/* wakes another fibre */ -void -fd_fibre_wake( fd_fibre_t * fibre ); - - -/* add a fibre to the schedule */ -void -fd_fibre_schedule( fd_fibre_t * fibre ); - - -/* run the current schedule - - returns - the time of the next ready fibre - -1 if there are no fibres in the schedule */ -long -fd_fibre_schedule_run( void ); - - -/* fibre data structures */ - -/* pipe - - send data from one fibre to another - wakes receiving fibre on write */ - -/* pipe footprint and alignment */ - -ulong -fd_fibre_pipe_align( void ); - -ulong -fd_fibre_pipe_footprint( ulong entries ); - - -/* create a new pipe */ - -fd_fibre_pipe_t * -fd_fibre_pipe_new( void * mem, ulong entries ); - - -/* write a value into the pipe - - can block if there isn't any free space - timeout allows the blocking to terminate after a period of time - - pipe the pipe to write to - value the value to write - timeout the amount of time to wait for the write to complete - - returns 0 successful - 1 there was no space for the write operation */ - -int -fd_fibre_pipe_write( fd_fibre_pipe_t * pipe, ulong value, long timeout ); - - -/* read a value from the pipe - - read can block if there isn't any data in the pipe - - timeout allows the read to terminate without a result after - a period of time - - pipe the pipe to write to - value a pointer to the ulong to receive the value - timeout number of nanoseconds to wait for a value - - returns 0 successfully read a value from the pipe - 1 timed out without receiving data */ -int -fd_fibre_pipe_read( fd_fibre_pipe_t * pipe, ulong *value, long timeout ); - - -FD_PROTOTYPES_END - - -#endif /* HEADER_fd_src_util_fibre_fd_fibre_h */ diff --git a/src/util/fibre/test_fibre.c b/src/util/fibre/test_fibre.c deleted file mode 100644 index 0d6ba5c3e11..00000000000 --- a/src/util/fibre/test_fibre.c +++ /dev/null @@ -1,503 +0,0 @@ -#include -#include - -#include "fd_fibre.h" - - -void -fn1( void * vp ) { - (void)vp; - printf( "running fn1\n" ); fflush( stdout ); -} - - -void -fn2( void * vp ) { - (void)vp; - printf( "running fn2\n" ); fflush( stdout ); -} - - -void -fn3( void * vp ) { - (void)vp; - printf( "running fn3\n" ); fflush( stdout ); -} - - -/* tests of fd_fibre_wait and fd_fibre_wait_until */ - -/* need a synthetic clock */ -long now = 0; - -long -my_clock(void) { - return now; -} - - -// done flag for tests -int done = 0; - -void -test1( void * vp ) { - /* argument to test1 */ - long * arg = (long*)vp; - - /* fetch argument, which is period */ - long period = arg[0]; - - while( !done ) { - printf( "test1 arg(%ld) now: %ld\n", period, now ); fflush( stdout ); - - fd_fibre_wait( period ); - } -} - -void -test2( void * vp ) { - /* arguments */ - long * arg = (long*)vp; - - /* argument is "done" time */ - long done_time = arg[0]; - - /* this test simply waits until a particular time - and then sets a flag */ - - printf( "test2: waiting\n" ); fflush( stdout ); - fd_fibre_wait_until( done_time ); - - printf( "test2: finished waiting\n" ); fflush( stdout ); - done = 1; -} - -void -test_pipe_producer( void * vp ) { - /* arguments */ - fd_fibre_pipe_t * pipe = (fd_fibre_pipe_t*)vp; - - printf( "pipe test producer starting\n" ); fflush( stdout ); - - /* transmit at a rate of one message per millisecond - for one second */ - long run_period = (long)1e6; - long run_duration = (long)1e9; - long send_time = now + run_period; - long run_end = now + run_duration; - - ulong msg = 0; - while( now < run_end ) { - /* wait until sent time */ - fd_fibre_wait_until( send_time ); - - /* send msg to consumer */ - printf( "writing msg: %lu\n", msg ); fflush( stdout ); - int rtn = fd_fibre_pipe_write( pipe, msg, 0 ); - if( rtn ) { - printf( "write failed on msg: %lu\n", msg ); - exit(1); - } - - /* choose another send time */ - send_time += run_period; - - /* increment message */ - msg++; - } - - printf( "producer finished\n" ); -} - - -void test_pipe_consumer( void * vp ) { - /* arguments */ - fd_fibre_pipe_t * pipe = (fd_fibre_pipe_t*)vp; - - printf( "pipe test consumer starting\n" ); fflush( stdout ); - - long run_period = (long)1e6; - long run_duration = (long)1e9; - long run_end = now + run_duration; - - /* wait to receive from pipe, and report each message received */ - while( now < run_end ) { - /* receive message from producer - wait for up to the period */ - ulong msg = 0; - int rtn = fd_fibre_pipe_read( pipe, &msg, run_period ); - - if( rtn ) { - printf( "read failed\n" ); - exit(1); - } - - printf( "msg %lu received at %ld\n", msg, now ); - } - - printf( "consumer finished\n" ); -} - - -void -run_pipe_test( void ) { - printf( "pipe test starting\n" ); - - /* set now to zero for pretty output */ - now = 0; - - /* create a pipe for communicating between fibres */ - ulong stack_sz = 1<<20; - ulong pipe_entries = 16; - void * pipe_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - - fd_fibre_pipe_t * pipe = fd_fibre_pipe_new( pipe_mem, pipe_entries ); - - /* create a fibre each for producer and consumer */ - void * fibre_1_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - void * fibre_2_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - - fd_fibre_t * fibre_1 = fd_fibre_start( fibre_1_mem, stack_sz, test_pipe_producer, pipe ); - fd_fibre_t * fibre_2 = fd_fibre_start( fibre_2_mem, stack_sz, test_pipe_consumer, pipe ); - - /* schedule the fibres */ - fd_fibre_schedule( fibre_1 ); - fd_fibre_schedule( fibre_2 ); - - /* run schedule until done */ - while( 1 ) { - long timeout = fd_fibre_schedule_run(); - if( timeout == -1 ) { - /* -1 indicates no fibres scheduled */ - break; - } - - /* advance time to the next scheduled event */ - now = timeout; - } - - fd_fibre_free( fibre_2 ); - fd_fibre_free( fibre_1 ); - - free( fibre_1_mem ); - free( fibre_2_mem ); - free( pipe_mem ); - - printf( "pipe test complete\n" ); -} - - -struct pipe_producer_args { - fd_fibre_pipe_t * output; - long expire; - long period; -}; -typedef struct pipe_producer_args pipe_producer_args_t; - - -void -pipe_producer_main( void * vp_args ) { - /* obtain args */ - pipe_producer_args_t * args = (pipe_producer_args_t*)vp_args; - - /* send periodically - every 1ms (synthetic clock) */ - fd_fibre_pipe_t * output = args->output; - long expire = args->expire; - long period = args->period; - - /* first send time */ - long send_time = now + period; - - /* producer runs until time limit exceeded */ - long expire_time = now + expire; - - /* msg is just a counter */ - ulong msg = 1; - - /* for return values */ - int rtn; - - while( now < expire_time ) { - /* wait until next "send" */ - fd_fibre_wait_until( send_time ); - - /* set timeout to be the same as period */ - long timeout = period; - - /* log write call */ - printf( "pipe_producer_main: writing %lu\n", msg ); fflush( stdout ); - - /* try sending */ - rtn = fd_fibre_pipe_write( output, msg, timeout ); - - if( rtn ) { - printf( "fd_fibre_pipe_write failed\n" ); - exit(1); - } - - /* update send time for next iteration */ - send_time += period; - - /* increment message */ - msg++; - } - - printf( "pipe_producer_main: finished\n" ); - -} - - -struct pipe_filter_args { - fd_fibre_pipe_t * input; - fd_fibre_pipe_t * out1; - fd_fibre_pipe_t * out2; - long period; -}; -typedef struct pipe_filter_args pipe_filter_args_t; - - -void -pipe_filter_main( void * vp_args ) { - pipe_filter_args_t * args = (pipe_filter_args_t*)vp_args; - - /* receive messages on one pipe, distribute them to two pipes - alternately */ - - fd_fibre_pipe_t * input = args->input; - fd_fibre_pipe_t * out1 = args->out1; - fd_fibre_pipe_t * out2 = args->out2; - long period = args->period; - long timeout = period; - - /* loop until read fails */ - while(1) { - ulong msg = 0; - int rtn = fd_fibre_pipe_read( input, &msg, timeout ); - if( rtn ) break; - - /* we have a message - choose the out pipe(s) */ - if( msg % 2 == 0 ) { - rtn = fd_fibre_pipe_write( out1, msg, timeout ); - if( rtn ) { - printf( "pipe_filter_main: write failed\n" ); - exit(1); - } - } - - if( msg % 3 == 0 ) { - rtn = fd_fibre_pipe_write( out2, msg, timeout ); - if( rtn ) { - printf( "pipe_filter_main: write failed\n" ); - exit(1); - } - } - } - - printf( "pipe_filter_main complete\n" ); -} - - -struct pipe_consumer_args { - char const * name; - fd_fibre_pipe_t * input; - long expire; -}; -typedef struct pipe_consumer_args pipe_consumer_args_t; - - -void -pipe_consumer_main( void * vp_args ) { - /* obtain args */ - - pipe_consumer_args_t *args = (pipe_consumer_args_t*)vp_args; - - fd_fibre_pipe_t * input = args->input; - long expire = args->expire; - - long expire_time = now + expire; - - /* loop until read fails */ - while( expire_time > now ) { - ulong msg = 0; - int rtn = fd_fibre_pipe_read( input, &msg, expire_time - now ); - if( rtn ) break; - - /* we have a message - output it */ - printf( "pipe_consumer_main: %s received msg %lu\n", args->name, msg ); - } - - printf( "pipe_consumer_main: finished\n" ); -} - - -void -run_test_pipe_filter( void ) { - ulong pipe_entries = 16; - ulong stack_sz = 1<<20; - - /* create three pipes */ - void * pipe_1_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_pipe_t * pipe_1 = fd_fibre_pipe_new( pipe_1_mem, pipe_entries ); - - void * pipe_2_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_pipe_t * pipe_2 = fd_fibre_pipe_new( pipe_2_mem, pipe_entries ); - - void * pipe_3_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_pipe_t * pipe_3 = fd_fibre_pipe_new( pipe_3_mem, pipe_entries ); - - /* period set to 1 ms */ - long period = (long)1e6; - long expire = (long)2e7; - - /* start 1 producer, 1 filter and 2 consumer fibres */ - pipe_producer_args_t producer_args = { .output = pipe_1, .expire = expire, period }; - pipe_filter_args_t filter_args = { .input = pipe_1, .out1 = pipe_2, .out2 = pipe_3, .period = period }; - pipe_consumer_args_t consumer_main_1_args = { .name = "main_1", .input = pipe_2, .expire = expire }; - pipe_consumer_args_t consumer_main_2_args = { .name = "main_2", .input = pipe_3, .expire = expire }; - - /* create fibre for pipe_producer_main */ - void * producer_fibre_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * producer_fibre = fd_fibre_start( producer_fibre_mem, stack_sz, pipe_producer_main, &producer_args ); - - /* create fibre for pipe_filter_main */ - void * filter_fibre_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * filter_fibre = fd_fibre_start( filter_fibre_mem, stack_sz, pipe_filter_main, &filter_args ); - - /* create fibre for pipe_consumer_1_main */ - void * consumer_1_fibre_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * consumer_1_fibre = fd_fibre_start( consumer_1_fibre_mem, stack_sz, pipe_consumer_main, &consumer_main_1_args ); - - /* create fibre for pipe_consumer_2_main */ - void * consumer_2_fibre_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * consumer_2_fibre = fd_fibre_start( consumer_2_fibre_mem, stack_sz, pipe_consumer_main, &consumer_main_2_args ); - - /* add to schedule */ - fd_fibre_schedule( producer_fibre ); - fd_fibre_schedule( filter_fibre ); - fd_fibre_schedule( consumer_1_fibre ); - fd_fibre_schedule( consumer_2_fibre ); - - - /* run schedule until done */ - while( 1 ) { - long timeout = fd_fibre_schedule_run(); - if( timeout == -1 ) { - /* -1 indicates no fibres scheduled */ - break; - } - - /* advance time to next event */ - now = timeout; - } - - /* free fibres */ - fd_fibre_free( producer_fibre ); - fd_fibre_free( filter_fibre ); - fd_fibre_free( consumer_1_fibre ); - fd_fibre_free( consumer_2_fibre ); - - /* free fibre mem */ - free( producer_fibre_mem ); - free( filter_fibre_mem ); - free( consumer_1_fibre_mem ); - free( consumer_2_fibre_mem ); - - /* free pipe mem */ - free( pipe_1_mem ); - free( pipe_2_mem ); - free( pipe_3_mem ); -} - - -int -main( int argc, char ** argv ) { - (void)argc; - (void)argv; - - // initialize fibres - void * main_fibre_mem = aligned_alloc( fd_fibre_init_align(), fd_fibre_init_footprint() ); - fd_fibre_t * main_fibre = fd_fibre_init( main_fibre_mem ); - - // create 3 fibres for functions fn1, fn2 and fn3 - ulong stack_sz = 1<<20; - - void * fibre_1_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - void * fibre_2_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - void * fibre_3_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - - fd_fibre_t * fibre_1 = fd_fibre_start( fibre_1_mem, stack_sz, fn1, NULL ); - fd_fibre_t * fibre_2 = fd_fibre_start( fibre_2_mem, stack_sz, fn2, NULL ); - fd_fibre_t * fibre_3 = fd_fibre_start( fibre_3_mem, stack_sz, fn3, NULL ); - - // start each fibre, and allow to complete - fd_fibre_swap( fibre_1 ); - fd_fibre_swap( fibre_2 ); - fd_fibre_swap( fibre_3 ); - - fd_fibre_free( fibre_3 ); - fd_fibre_free( fibre_2 ); - fd_fibre_free( fibre_1 ); - - free( fibre_1_mem ); - free( fibre_2_mem ); - free( fibre_3_mem ); - - // now run test of wait and wait_until - - // needs a clock - fd_fibre_set_clock( my_clock ); - - // prepare some fibres - long t0_period = (long)1e9; - void * t0_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * t0 = fd_fibre_start( t0_mem, stack_sz, test1, &t0_period ); - - long t1_period = (long)3e9; - void * t1_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * t1 = fd_fibre_start( t1_mem, stack_sz, test1, &t1_period ); - - long t2_period = (long)5e9; - void * t2_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * t2 = fd_fibre_start( t2_mem, stack_sz, test1, &t2_period ); - - long t3_done_time = (long)60e9; - void * t3_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * t3 = fd_fibre_start( t3_mem, stack_sz, test2, &t3_done_time ); - - // add to schedule - fd_fibre_schedule( t0 ); - fd_fibre_schedule( t1 ); - fd_fibre_schedule( t2 ); - fd_fibre_schedule( t3 ); - - // run schedule until done - while( 1 ) { - long timeout = fd_fibre_schedule_run(); - if( timeout == -1 ) { - /* -1 indicates no fibres scheduled */ - break; - } - - now = timeout; - } - - fd_fibre_free( t0 ); - fd_fibre_free( t1 ); - fd_fibre_free( t2 ); - fd_fibre_free( t3 ); - - free( t0_mem ); - free( t1_mem ); - free( t2_mem ); - free( t3_mem ); - - run_pipe_test(); - - run_test_pipe_filter(); - - fd_fibre_free( main_fibre ); - free( main_fibre_mem ); - - return 0; -} - diff --git a/src/util/net/fd_ip4.h b/src/util/net/fd_ip4.h index 248653ac0be..a3c77a00d02 100644 --- a/src/util/net/fd_ip4.h +++ b/src/util/net/fd_ip4.h @@ -104,15 +104,20 @@ typedef union fd_ip4_hdr fd_ip4_hdr_t; FD_PROTOTYPES_BEGIN -/* fd_ip4_addr_is_{mcast,bcast} returns 1 if the ipaddr is {multicast - (in [224-239].y.z.w),global broadcast (255.255.255.255)} and 0 - otherwise. fd_ip4_hdr_net_frag_off_is_unfragmented returns 1 if the +/* fd_ip4_addr_is_{mcast,bcast,loopback} returns 1 if the ipaddr is + {multicast (in [224-239].y.z.w), global broadcast + (255.255.255.255), loopback (127.y.z.w)} and 0 otherwise. + fd_ip4_hdr_net_frag_off_is_unfragmented returns 1 if the net_frag_off field of the ip4 header indicates the encapsulated packet is not fragmented (i.e. entirely containing the IP4 packet) and 0 otherwise (i.e. fragmented into multiple IP4 packets). */ FD_FN_CONST static inline int fd_ip4_addr_is_mcast( uint addr ) { return (((uchar)addr)>>4)==(uchar)0xe; } FD_FN_CONST static inline int fd_ip4_addr_is_bcast( uint addr ) { return addr==~0U; } +FD_FN_CONST static inline int fd_ip4_addr_is_loopback( uint addr ) { + return fd_uint_bswap( addr ) >= fd_uint_bswap( IP4_LOOPBACK_START_NET ) && + fd_uint_bswap( addr ) <= fd_uint_bswap( IP4_LOOPBACK_END_NET ); + } FD_FN_CONST static inline int fd_ip4_hdr_net_frag_off_is_unfragmented( ushort net_frag_off ) { /* net order */ @@ -203,7 +208,7 @@ fd_ip4_addr_is_public( uint addr ) { return !((addr_host >= fd_uint_bswap( IP4_PRIVATE_RANGE1_START_NET ) && addr_host <= fd_uint_bswap( IP4_PRIVATE_RANGE1_END_NET )) || (addr_host >= fd_uint_bswap( IP4_PRIVATE_RANGE2_START_NET ) && addr_host <= fd_uint_bswap( IP4_PRIVATE_RANGE2_END_NET )) || (addr_host >= fd_uint_bswap( IP4_PRIVATE_RANGE3_START_NET ) && addr_host <= fd_uint_bswap( IP4_PRIVATE_RANGE3_END_NET )) || - (addr_host >= fd_uint_bswap( IP4_LOOPBACK_START_NET ) && addr_host <= fd_uint_bswap( IP4_LOOPBACK_END_NET ))); + fd_ip4_addr_is_loopback( addr )); } /* fd_ip4_hdr_bswap reverses the endianness of all fields in the IPv4 diff --git a/src/util/racesan/fd_racesan_base.h b/src/util/racesan/fd_racesan_base.h index ec83cef56ff..54bf5ad6b3b 100644 --- a/src/util/racesan/fd_racesan_base.h +++ b/src/util/racesan/fd_racesan_base.h @@ -7,8 +7,6 @@ #define FD_HAS_RACESAN 0 #endif -/* FIXME Check for FD_HAS_UCONTEXT */ - struct fd_racesan; typedef struct fd_racesan fd_racesan_t; diff --git a/src/util/sandbox/fd_sandbox.c b/src/util/sandbox/fd_sandbox.c index 4670bd355c6..163e782f4e8 100644 --- a/src/util/sandbox/fd_sandbox.c +++ b/src/util/sandbox/fd_sandbox.c @@ -162,7 +162,7 @@ fd_sandbox_private_check_exact_file_descriptors( ulong allowed_file_descri If we don't align it the compiler might prove somthing weird and trash this code, and also ASAN would flag it as an error. So we just align it anyway. */ - uchar buf[ 4096 ] __attribute__((aligned(alignof(struct dirent64)))); + uchar buf[ 4096 ] __attribute__((aligned(alignof(struct dirent)))); long dents_bytes = syscall( SYS_getdents64, dirfd, buf, sizeof( buf ) ); if( !dents_bytes ) break; @@ -170,7 +170,7 @@ fd_sandbox_private_check_exact_file_descriptors( ulong allowed_file_descri ulong offset = 0UL; while( offset<(ulong)dents_bytes ) { - struct dirent64 const * dent = (struct dirent64 const *)(buf + offset); + struct dirent const * dent = (struct dirent const *)(buf + offset); if( !strcmp( dent->d_name, "." ) || !strcmp( dent->d_name, ".." ) ) { offset += dent->d_reclen; continue; @@ -429,7 +429,7 @@ fd_sandbox_private_set_rlimits( ulong rlimit_file_cnt, for( ulong i=0UL; id_name, "." ) || !strcmp( dent->d_name, "..") ); offset += dent->d_reclen; } diff --git a/src/waltz/ebpf/fd_linux_bpf.h b/src/waltz/ebpf/fd_linux_bpf.h index 034288a03c9..640fd035a4e 100644 --- a/src/waltz/ebpf/fd_linux_bpf.h +++ b/src/waltz/ebpf/fd_linux_bpf.h @@ -5,7 +5,7 @@ #include "../../util/fd_util_base.h" -#if defined(__linux__) && defined(_DEFAULT_SOURCE) || defined(_BSD_SOURCE) +#if defined(__linux__) #include #include diff --git a/src/waltz/ip/fd_fib4_private.h b/src/waltz/ip/fd_fib4_private.h index 4c6747335f2..60fba51c65f 100644 --- a/src/waltz/ip/fd_fib4_private.h +++ b/src/waltz/ip/fd_fib4_private.h @@ -25,9 +25,6 @@ union __attribute__((aligned(16))) fd_fib4_hmap_entry { uint hash; fd_fib4_hop_t next_hop; /* 16 bytes */ }; -#if FD_HAS_INT128 - uint128 uf[2]; -#endif #if FD_HAS_X86 __m128i xmm[2]; #endif @@ -46,12 +43,6 @@ fd_fib4_hmap_entry_st( fd_fib4_hmap_entry_t * dst, fd_fib4_hmap_entry_t const * src ) { # if FD_HAS_AVX FD_VOLATILE( dst->avx[0] ) = src->avx[0]; -# elif FD_HAS_X86 - FD_VOLATILE( dst->xmm[0] ) = src->xmm[0]; - FD_VOLATILE( dst->xmm[1] ) = src->xmm[1]; -# elif FD_HAS_INT128 - FD_VOLATILE( dst->uf[0] ) = src->uf[0]; - FD_VOLATILE( dst->uf[1] ) = src->uf[1]; # else FD_VOLATILE( dst->dst_addr ) = src->dst_addr; FD_VOLATILE( dst->hash ) = src->hash; @@ -71,9 +62,6 @@ fd_fib4_hmap_entry_ld( fd_fib4_hmap_entry_t * dst, # elif FD_HAS_X86 dst->xmm[0] = FD_VOLATILE_CONST( src->xmm[0] ); dst->xmm[1] = FD_VOLATILE_CONST( src->xmm[1] ); -# elif FD_HAS_INT128 - dst->uf[0] = FD_VOLATILE_CONST( src->uf[0] ); - dst->uf[1] = FD_VOLATILE_CONST( src->uf[1] ); # else dst->dst_addr = FD_VOLATILE_CONST( src->dst_addr ); dst->hash = FD_VOLATILE_CONST( src->hash ); diff --git a/src/waltz/mib/fd_netdev_netlink.c b/src/waltz/mib/fd_netdev_netlink.c index eb27b4d9581..80deb00ad89 100644 --- a/src/waltz/mib/fd_netdev_netlink.c +++ b/src/waltz/mib/fd_netdev_netlink.c @@ -12,6 +12,8 @@ #include /* IFNAMSIZ */ #include /* ARPHRD_NETROM */ #include /* RTM_{...}, NLM_{...} */ +#include +#include #include static fd_netdev_t * @@ -168,8 +170,8 @@ fd_netdev_netlink_load_table( fd_netdev_tbl_join_t * tbl, goto fail; } int master_idx = FD_LOAD( int, rta ); - if( FD_UNLIKELY( master_idx<0 || master_idx>=tbl->hdr->dev_max ) ) { - FD_LOG_WARNING(( "Error reading interface table: IFLA_MASTER has invalid index %d", master_idx )); + if( FD_UNLIKELY( master_idx<0 ) ) { + FD_LOG_WARNING(( "Error reading interface table: IFLA_MASTER has invalid ifindex %d", master_idx )); err = EPROTO; goto fail; } diff --git a/src/waltz/neigh/fd_neigh4_map.h b/src/waltz/neigh/fd_neigh4_map.h index d834892dd95..5f0db71f9f6 100644 --- a/src/waltz/neigh/fd_neigh4_map.h +++ b/src/waltz/neigh/fd_neigh4_map.h @@ -26,9 +26,6 @@ union __attribute__((aligned(16))) fd_neigh4_entry { #define FD_NEIGH4_PROBE_SUPPRESS_UNTIL_GET(entry) \ (long)(((entry)->probe_suppress_until)<xmm[0] ) = src->xmm[0]; -# elif FD_HAS_INT128 - FD_VOLATILE( dst->uf[0] ) = src->uf[0]; # else memcpy( dst->mac_addr, src->mac_addr, 6 ); dst->probe_suppress_until = src->probe_suppress_until; @@ -62,8 +57,6 @@ fd_neigh4_entry_atomic_ld( fd_neigh4_entry_t * dst, fd_neigh4_entry_t const * src ) { # if FD_HAS_X86 dst->xmm[0] = FD_VOLATILE_CONST( src->xmm[0] ); -# elif FD_HAS_INT128 - dst->uf[0] = FD_VOLATILE_CONST( src->uf[0] ); # else memcpy( dst->mac_addr, src->mac_addr, 6 ); dst->probe_suppress_until = src->probe_suppress_until; diff --git a/src/waltz/quic/tests/Local.mk b/src/waltz/quic/tests/Local.mk index dd9423cd47d..2a7186f08c7 100644 --- a/src/waltz/quic/tests/Local.mk +++ b/src/waltz/quic/tests/Local.mk @@ -9,7 +9,6 @@ $(call make-unit-test,test_quic_proto, test_quic_proto, fd_quic fd_uti $(call make-unit-test,test_quic_hs, test_quic_hs, $(QUIC_TEST_LIBS)) $(call make-unit-test,test_quic_streams, test_quic_streams, $(QUIC_TEST_LIBS)) $(call make-unit-test,test_quic_conn, test_quic_conn, $(QUIC_TEST_LIBS)) -$(call make-unit-test,test_quic_drops, test_quic_drops, $(QUIC_TEST_LIBS) fd_fibre) $(call make-unit-test,test_quic_bw, test_quic_bw, $(QUIC_TEST_LIBS)) $(call make-unit-test,test_quic_layout, test_quic_layout, fd_util) $(call make-unit-test,test_quic_conformance,test_quic_conformance,$(QUIC_TEST_LIBS) fd_util) @@ -60,6 +59,6 @@ $(call make-fuzz-test,fuzz_quic_wire,fuzz_quic_wire,$(QUIC_TEST_LIBS)) $(call make-fuzz-test,fuzz_quic_actor,fuzz_quic_actor,$(QUIC_TEST_LIBS)) endif -$(call make-unit-test,test_quic_key_phase,test_quic_key_phase,$(QUIC_TEST_LIBS) fd_fibre) +$(call make-unit-test,test_quic_key_phase,test_quic_key_phase,$(QUIC_TEST_LIBS)) $(call run-unit-test,test_quic_key_phase) endif diff --git a/src/waltz/quic/tests/test_quic_client_flood.c b/src/waltz/quic/tests/test_quic_client_flood.c index 16867571aae..22b606db01c 100644 --- a/src/waltz/quic/tests/test_quic_client_flood.c +++ b/src/waltz/quic/tests/test_quic_client_flood.c @@ -112,8 +112,8 @@ run_quic_client( ulong ref_msg_mem_footprint = 0UL; for( ulong msg_sz=MSG_SZ_MIN; msg_sz<=MSG_SZ_MAX; msg_sz++ ) ref_msg_mem_footprint += fd_ulong_align_up( msg_sz + 96UL, 128UL ); - uchar * ref_msg_mem = fd_alloca( 128UL, ref_msg_mem_footprint ); - if( FD_UNLIKELY( !ref_msg_mem ) ) FD_LOG_ERR(( "fd_alloc failed" )); + uchar ref_msg_mem_[ ref_msg_mem_footprint ]; + uchar * ref_msg_mem = ref_msg_mem_; uchar * ref_msg[ MSG_SZ_MAX - MSG_SZ_MIN + 1UL ]; for( ulong msg_sz=MSG_SZ_MIN; msg_sz<=MSG_SZ_MAX; msg_sz++ ) { diff --git a/src/waltz/quic/tests/test_quic_drops.c b/src/waltz/quic/tests/test_quic_drops.c deleted file mode 100644 index 22f919affb8..00000000000 --- a/src/waltz/quic/tests/test_quic_drops.c +++ /dev/null @@ -1,449 +0,0 @@ -#include "../fd_quic.h" -#include "fd_quic_test_helpers.h" -#include "../../../util/rng/fd_rng.h" - -#include "../../../util/fibre/fd_fibre.h" - -#include - -/* number of streams to send/receive */ -#define NUM_STREAMS 1000 - -/* done flags */ - -int client_done = 0; -int server_done = 0; - -/* received count */ -ulong rcvd = 0; -ulong tot_rcvd = 0; - -/* fibres for client and server */ - -fd_fibre_t * client_fibre = NULL; -fd_fibre_t * server_fibre = NULL; - -/* "net" fibre for dropping and pcapping */ - -fd_fibre_t * net_fibre = NULL; - -struct net_fibre_args { - fd_fibre_pipe_t * input; - fd_fibre_pipe_t * release; - float thresh; - int dir; /* 0=client->server 1=server->client */ -}; -typedef struct net_fibre_args net_fibre_args_t; - - -int state = 0; -int server_complete = 0; -int client_complete = 0; - -extern uchar pkt_full[]; -extern ulong pkt_full_sz; - -uchar fail = 0; - -void -my_stream_notify_cb( fd_quic_stream_t * stream, void * ctx, int type ) { - (void)stream; - (void)ctx; - (void)type; -} - -int -my_stream_rx_cb( fd_quic_conn_t * conn, - ulong stream_id, - ulong offset, - uchar const * data, - ulong data_sz, - int fin ) { - (void)conn; (void)stream_id; (void)fin; - - //FD_LOG_NOTICE(( "received data from peer. stream_id: %lu size: %lu offset: %lu\n", - // (ulong)stream->stream_id, data_sz, offset )); - (void)offset; - FD_LOG_HEXDUMP_DEBUG(( "received data", data, data_sz )); - - FD_LOG_DEBUG(( "recv ok" )); - - rcvd++; - tot_rcvd++; - - if( tot_rcvd == NUM_STREAMS ) client_done = 1; - return FD_QUIC_SUCCESS; -} - - -struct my_context { - int server; -}; -typedef struct my_context my_context_t; - -static ulong conn_final_cnt; - -void -my_cb_conn_final( fd_quic_conn_t * conn, - void * context ) { - (void)context; - - fd_quic_conn_t ** ppconn = (fd_quic_conn_t**)fd_quic_conn_get_context( conn ); - if( ppconn ) { - //FD_LOG_NOTICE(( "my_cb_conn_final %p SUCCESS", (void*)*ppconn )); - *ppconn = NULL; - } - - conn_final_cnt++; -} - -void -my_connection_new( fd_quic_conn_t * conn, - void * vp_context ) { - (void)vp_context; - - //FD_LOG_NOTICE(( "server handshake complete" )); - - server_complete = 1; - - (void)conn; -} - -void -my_handshake_complete( fd_quic_conn_t * conn, - void * vp_context ) { - (void)vp_context; - - //FD_LOG_NOTICE(( "client handshake complete" )); - - client_complete = 1; - - (void)conn; -} - -/* global "clock" */ -long now = 1e18L; - -long -test_fibre_clock(void) { - return now; -} - -static void -sync_clocks( fd_quic_t * x, fd_quic_t * y ) { - fd_quic_sync_clocks( x, y, now ); -} - -struct client_args { - fd_quic_t * quic; - fd_quic_t * server_quic; -}; -typedef struct client_args client_args_t; - -void -client_fibre_fn( void * vp_arg ) { - client_args_t * args = (client_args_t*)vp_arg; - - fd_quic_t * quic = args->quic; - fd_quic_t * server_quic = args->server_quic; - - fd_quic_conn_t * conn = NULL; - fd_quic_stream_t * stream = NULL; - - uchar buf[] = "Hello World!"; - - long period_ns = (ulong)1e6; - long next_send = now + period_ns; - ulong sent = 0; - - while( !client_done ) { - long next_wakeup = fd_quic_get_next_wakeup( quic ); - - /* wake up at either next service or next send, whichever is sooner */ - fd_fibre_wait_until( fd_long_min( next_wakeup, next_send ) ); - - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - if( !conn ) { - rcvd = sent = 0; - - conn = fd_quic_connect( quic, FD_QUIC_TEST_SERVER_IP4, 0, FD_QUIC_TEST_CLIENT_IP4, 0, now ); - if( !conn ) { - FD_LOG_WARNING(( "Client unable to obtain a connection. now: %ld", now )); - continue; - } - - fd_quic_conn_set_context( conn, &conn ); - - /* wait for connection handshake */ - while( conn && conn->state != FD_QUIC_CONN_STATE_ACTIVE ) { - /* service client */ - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - /* allow server to process */ - fd_fibre_wait_until( fd_quic_get_next_wakeup( quic ) ); - } - - continue; - } - - if( !stream ) { - if( rcvd != sent ) { - fd_quic_service( quic, now ); - fd_fibre_wait_until( fd_quic_get_next_wakeup( quic ) ); - - continue; - } - - stream = fd_quic_conn_new_stream( conn ); - - if( !stream ) { - if( conn->state == FD_QUIC_CONN_STATE_ACTIVE ) { - FD_LOG_WARNING(( "Client unable to obtain a stream. now: %lu", (ulong)now )); - long live = next_wakeup + (long)1e9L; - do { - next_wakeup = fd_quic_get_next_wakeup( quic ); - - if( next_wakeup > live ) { - live = next_wakeup<<1L; - FD_LOG_WARNING(( "Client waiting for a stream time: %lu", (ulong)now )); - } - - /* wake up at either next service or next send, whichever is sooner */ - fd_fibre_wait_until( next_wakeup ); - - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - if( !conn ) break; - - stream = fd_quic_conn_new_stream( conn ); - } while( !stream ); - FD_LOG_WARNING(( "Client obtained a stream" )); - } - next_send = now + period_ns; /* ensure we make progress */ - continue; - } - } - - /* set next send time */ - next_send = now + period_ns; - - /* have a stream, so send */ - int rc = fd_quic_stream_send( stream, buf, sizeof(buf), 1 /* fin */ ); - - if( rc == FD_QUIC_SUCCESS ) { - /* successful - stream will begin closing */ - - if( ++sent % 15 == 0 ) { - /* wait for last sends to complete */ - /* TODO add callback for this */ - long timeout = now + (long)3e6; - while( now < timeout ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - /* allow server to process */ - fd_fibre_wait_until( fd_quic_get_next_wakeup( quic ) ); - } - - fd_quic_conn_close( conn, 0 ); - sent = 0; - - /* wait for connection to be reaped - (it's set to NULL in final callback */ - while( conn ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - /* allow server to process */ - fd_fibre_wait_until( fd_quic_get_next_wakeup( quic ) ); - } - - stream = NULL; - - continue; - } - - /* ensure new stream used for next send */ - stream = fd_quic_conn_new_stream( conn ); - - /* TODO close logic */ - - } else { - FD_LOG_WARNING(( "send failed" )); - } - } - - if( conn ) { - fd_quic_conn_close( conn, 0 ); - - /* keep servicing until connection closed */ - while( conn ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - fd_fibre_yield(); - } - } - - /* tell the server to shutdown */ - server_done = 1; -} - - -struct server_args { - fd_quic_t * quic; - fd_quic_t * client_quic; -}; -typedef struct server_args server_args_t; - - -void -server_fibre_fn( void * vp_arg ) { - server_args_t * args = (server_args_t*)vp_arg; - - fd_quic_t * quic = args->quic; - fd_quic_t * client_quic = args->client_quic; - - /* wake up at least every 1ms */ - long period_ns = (long)1e6; - while( !server_done ) { - sync_clocks( quic, client_quic ); - fd_quic_service( quic, now ); - - long next_wakeup = fd_quic_get_next_wakeup( quic ); - long next_period = now + period_ns; - - fd_fibre_wait_until( fd_long_min( next_wakeup, next_period ) ); - } -} - - -int -main( int argc, char ** argv ) { - - fd_boot ( &argc, &argv ); - fd_quic_test_boot( &argc, &argv ); - - fd_rng_t _rng[1]; fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, 0U, 0UL ) ); - - ulong cpu_idx = fd_tile_cpu_id( fd_tile_idx() ); - if( cpu_idx>fd_shmem_cpu_cnt() ) cpu_idx = 0UL; - - char const * _page_sz = fd_env_strip_cmdline_cstr ( &argc, &argv, "--page-sz", NULL, "gigantic" ); - ulong page_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--page-cnt", NULL, 2UL ); - ulong numa_idx = fd_env_strip_cmdline_ulong( &argc, &argv, "--numa-idx", NULL, fd_shmem_numa_idx( cpu_idx ) ); - - ulong page_sz = fd_cstr_to_shmem_page_sz( _page_sz ); - if( FD_UNLIKELY( !page_sz ) ) FD_LOG_ERR(( "unsupported --page-sz" )); - - FD_LOG_NOTICE(( "Creating workspace (--page-cnt %lu, --page-sz %s, --numa-idx %lu)", page_cnt, _page_sz, numa_idx )); - fd_wksp_t * wksp = fd_wksp_new_anonymous( page_sz, page_cnt, fd_shmem_cpu_idx( numa_idx ), "wksp", 0UL ); - FD_TEST( wksp ); - - fd_quic_limits_t const quic_limits = { - .conn_cnt = 10, - .conn_id_cnt = 10, - .handshake_cnt = 10, - .stream_id_cnt = 10, - .stream_pool_cnt = 512, - .inflight_frame_cnt = 1024 * 10, - .tx_buf_sz = 1<<14 - }; - - ulong quic_footprint = fd_quic_footprint( &quic_limits ); - FD_TEST( quic_footprint ); - FD_LOG_NOTICE(( "QUIC footprint: %lu bytes", quic_footprint )); - - FD_LOG_NOTICE(( "Creating server QUIC" )); - fd_quic_t * server_quic = fd_quic_new_anonymous( wksp, &quic_limits, FD_QUIC_ROLE_SERVER, rng ); - FD_TEST( server_quic ); - - FD_LOG_NOTICE(( "Creating client QUIC" )); - fd_quic_t * client_quic = fd_quic_new_anonymous( wksp, &quic_limits, FD_QUIC_ROLE_CLIENT, rng ); - FD_TEST( client_quic ); - - client_quic->cb.conn_hs_complete = my_handshake_complete; - client_quic->cb.stream_rx = my_stream_rx_cb; - client_quic->cb.stream_notify = my_stream_notify_cb; - client_quic->cb.conn_final = my_cb_conn_final; - - client_quic->config.initial_rx_max_stream_data = 1<<15; - - server_quic->cb.conn_new = my_connection_new; - server_quic->cb.stream_rx = my_stream_rx_cb; - server_quic->cb.stream_notify = my_stream_notify_cb; - server_quic->cb.conn_final = my_cb_conn_final; - - server_quic->config.initial_rx_max_stream_data = 1<<15; - - FD_LOG_NOTICE(( "Creating virtual pair" )); - fd_quic_virtual_pair_t vp; - fd_quic_virtual_pair_init( &vp, /*a*/ client_quic, /*b*/ server_quic ); - - FD_LOG_NOTICE(( "Attaching AIOs" )); - fd_quic_netem_t mitm_client_to_server; - fd_quic_netem_t mitm_server_to_client; - - long _null[1]; - fd_quic_netem_init( &mitm_client_to_server, 0.01f, 0.01f, _null ); - fd_quic_netem_init( &mitm_server_to_client, 0.01f, 0.01f, _null ); - - fd_quic_set_aio_net_tx( client_quic, &mitm_client_to_server.local ); - mitm_client_to_server.dst = vp.aio_a2b; - fd_quic_set_aio_net_tx( server_quic, &mitm_server_to_client.local ); - mitm_server_to_client.dst = vp.aio_b2a; - - FD_LOG_NOTICE(( "Initializing QUICs" )); - FD_TEST( fd_quic_init( client_quic ) ); - FD_TEST( fd_quic_init( server_quic ) ); - - /* initialize fibres */ - void * this_fibre_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_init_align(), fd_fibre_init_footprint( ), 1UL ); - fd_fibre_t * this_fibre = fd_fibre_init( this_fibre_mem ); (void)this_fibre; - - /* set fibre scheduler clock */ - fd_fibre_set_clock( test_fibre_clock ); - - /* create fibres for client and server */ - ulong stack_sz = 1<<20; - void * client_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ), 1UL ); - client_args_t client_args[1] = {{ .quic = client_quic, .server_quic = server_quic }}; - client_fibre = fd_fibre_start( client_mem, stack_sz, client_fibre_fn, client_args ); - FD_TEST( client_fibre ); - - void * server_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ), 1UL ); - server_args_t server_args[1] = {{ .quic = server_quic, .client_quic = client_quic }}; - server_fibre = fd_fibre_start( server_mem, stack_sz, server_fibre_fn, server_args ); - FD_TEST( server_fibre ); - - /* schedule the fibres - they will execute during the call to fibre_schedule_run */ - fd_fibre_schedule( client_fibre ); - fd_fibre_schedule( server_fibre ); - - /* run the fibres until done */ - while(1) { - long timeout = fd_fibre_schedule_run(); - if( timeout < 0 ) break; - - now = timeout; - } - - FD_LOG_NOTICE(( "Received %lu stream frags", tot_rcvd )); - FD_LOG_NOTICE(( "Tested %lu connections", conn_final_cnt )); - - FD_LOG_NOTICE(( "Cleaning up" )); - fd_quic_virtual_pair_fini( &vp ); - fd_wksp_free_laddr( fd_quic_delete( fd_quic_leave( server_quic ) ) ); - fd_wksp_free_laddr( fd_quic_delete( fd_quic_leave( client_quic ) ) ); - fd_wksp_delete_anonymous( wksp ); - fd_rng_delete( fd_rng_leave( rng ) ); - - FD_LOG_NOTICE(( "pass" )); - fd_quic_test_halt(); - fd_halt(); - return 0; -} diff --git a/src/waltz/quic/tests/test_quic_key_phase.c b/src/waltz/quic/tests/test_quic_key_phase.c index 48490d0d3ac..139cdefc26e 100644 --- a/src/waltz/quic/tests/test_quic_key_phase.c +++ b/src/waltz/quic/tests/test_quic_key_phase.c @@ -1,6 +1,5 @@ #include "../fd_quic.h" #include "fd_quic_test_helpers.h" -#include "../../../util/fibre/fd_fibre.h" #include @@ -20,13 +19,6 @@ static ulong rcvd = 0; static ulong tot_rcvd = 0; static ulong tot_key_phase_change = 0; -/* some randomness stuff */ - -/* fibres for client and server */ - -static fd_fibre_t * client_fibre = NULL; -static fd_fibre_t * server_fibre = NULL; - static int server_complete = 0; static int client_complete = 0; @@ -90,185 +82,140 @@ my_handshake_complete( fd_quic_conn_t * conn, /* global "clock" */ static long now = 1e18L; -static long -test_fibre_clock(void) { - return now; -} - static void sync_clocks( fd_quic_t * x, fd_quic_t * y ) { fd_quic_sync_clocks( x, y, now ); } -struct client_args { - fd_quic_t * quic; - fd_quic_t * server_quic; +struct client_state { + fd_quic_conn_t * conn; + fd_quic_stream_t * stream; + long next_send; + uint last_key_phase; + int active_logged; + int closing; }; -typedef struct client_args client_args_t; - -static void -client_fibre_fn( void * vp_arg ) { - client_args_t * args = (client_args_t*)vp_arg; +typedef struct client_state client_state_t; - fd_quic_t * quic = args->quic; - fd_quic_t * server_quic = args->server_quic; - - fd_quic_conn_t * conn = NULL; - fd_quic_stream_t * stream = NULL; - - static uchar const buf[] = "Hello World!"; - - long period_ns = (long)1e6; - long next_send = now; - ulong sent = 0; +struct server_state { + long next_period; + uint last_key_phase; +}; +typedef struct server_state server_state_t; - rcvd = sent = 0; +static uchar const buf[] = "Hello World!"; - conn = fd_quic_connect( quic, FD_QUIC_TEST_SERVER_IP4, 0, FD_QUIC_TEST_CLIENT_IP4, 0, now ); - if( !conn ) { +static void +client_state_init( client_state_t * client, + fd_quic_t * quic ) { + client->conn = NULL; + client->stream = NULL; + client->next_send = now; + client->last_key_phase = 0U; + client->active_logged = 0; + client->closing = 0; + + rcvd = 0; + + client->conn = fd_quic_connect( quic, FD_QUIC_TEST_SERVER_IP4, 0, FD_QUIC_TEST_CLIENT_IP4, 0, now ); + if( !client->conn ) { FD_LOG_ERR(( "Client unable to obtain a connection. now: %ld", now )); } - fd_quic_conn_set_context( conn, &conn ); - - /* service client until connection is established */ - while( conn && conn->state != FD_QUIC_CONN_STATE_ACTIVE ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); + fd_quic_conn_set_context( client->conn, &client->conn ); +} - long next_wakeup = fd_quic_get_next_wakeup( quic ); - FD_TEST( next_wakeup < LONG_MAX ); +static void +client_step( client_state_t * client ) { + fd_quic_conn_t * conn = client->conn; - /* wake up at either next service or next send, whichever is sooner */ - fd_fibre_wait_until( next_wakeup ); + if( !conn ) { + if( !client->closing ) FD_LOG_ERR(( "Connection aborted unexpectedly" )); + server_done = 1; + return; } - next_send = now; - - uint last_key_phase = conn->key_phase; - - FD_LOG_INFO(( "CLIENT - connection established - key_phase: %u", (uint)conn->key_phase )); - - while( !client_done ) { - long next_wakeup = fd_quic_get_next_wakeup( quic ); - FD_TEST( next_wakeup < LONG_MAX ); - - /* wake up at either next service or next send, whichever is sooner */ - fd_fibre_wait_until( fd_long_min( next_wakeup, next_send ) ); - - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - /* in this controlled test, connections should not terminate */ - if( !conn ) { - FD_LOG_ERR(( "Connection aborted unexpectedly" )); + if( client_done ) { + if( !client->closing ) { + fd_quic_conn_close( conn, 0 ); + client->closing = 1; } + return; + } - /* report key phase changes, when complete */ - if( !conn->key_update && last_key_phase != conn->key_phase ) { - tot_key_phase_change++; - FD_LOG_INFO(( "CLIENT - key phase changed to %u, %lu changes done", (uint)conn->key_phase, tot_key_phase_change )); - last_key_phase = conn->key_phase; - - if( tot_key_phase_change == NUM_KEY_PHASE_CHANGES ) { - client_done = 1; - } - } + if( conn->state != FD_QUIC_CONN_STATE_ACTIVE ) return; - if( rcvd == NUM_STREAMS ) { - if( conn->key_update ) { - /* key phase update should have completed long ago */ - FD_LOG_ERR(( "Unexpectedly in a key phase change" )); - } + if( !client->active_logged ) { + FD_TEST( client_complete ); + client->next_send = now; + client->last_key_phase = conn->key_phase; + client->active_logged = 1; + FD_LOG_INFO(( "CLIENT - connection established - key_phase: %u", (uint)conn->key_phase )); + } - FD_LOG_INFO(( "CLIENT - received %u - starting key phase change", (uint)rcvd )); + /* report key phase changes, when complete */ + if( !conn->key_update && client->last_key_phase != conn->key_phase ) { + tot_key_phase_change++; + FD_LOG_INFO(( "CLIENT - key phase changed to %u, %lu changes done", (uint)conn->key_phase, tot_key_phase_change )); + client->last_key_phase = conn->key_phase; - /* reset count */ - rcvd = 0; + if( tot_key_phase_change == NUM_KEY_PHASE_CHANGES ) client_done = 1; + } - conn->key_update = 1; /* force a key update */ + if( rcvd == NUM_STREAMS ) { + if( conn->key_update ) { + /* key phase update should have completed long ago */ + FD_LOG_ERR(( "Unexpectedly in a key phase change" )); } - if( !stream ) { - stream = fd_quic_conn_new_stream( conn ); + FD_LOG_INFO(( "CLIENT - received %u - starting key phase change", (uint)rcvd )); - if( !stream ) { - continue; - } - } + /* reset count */ + rcvd = 0; - if( now < next_send ) continue; + conn->key_update = 1; /* force a key update */ + } - /* set next send time */ - next_send = now + period_ns; + if( !client->stream ) { + client->stream = fd_quic_conn_new_stream( conn ); + if( !client->stream ) return; + } - /* have a stream, so send */ - int rc = fd_quic_stream_send( stream, buf, sizeof(buf), 1 /* fin */ ); + if( now < client->next_send ) return; - if( rc == FD_QUIC_SUCCESS ) { - /* successful - stream will begin closing */ + /* set next send time */ + client->next_send = now + (long)1e6; - /* ensure new stream used for next send */ - stream = fd_quic_conn_new_stream( conn ); + /* have a stream, so send */ + int rc = fd_quic_stream_send( client->stream, buf, sizeof(buf), 1 /* fin */ ); - } else { - FD_LOG_WARNING(( "CLIENT - send failed" )); - } - } + if( rc == FD_QUIC_SUCCESS ) { + /* successful - stream will begin closing */ - if( conn ) { - fd_quic_conn_close( conn, 0 ); + /* ensure new stream used for next send */ + client->stream = fd_quic_conn_new_stream( conn ); - /* keep servicing until connection closed */ - while( conn ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - fd_fibre_yield(); - } + } else { + FD_LOG_WARNING(( "CLIENT - send failed" )); } - - /* tell the server to shutdown */ - server_done = 1; } - -struct server_args { - fd_quic_t * quic; - fd_quic_t * client_quic; -}; -typedef struct server_args server_args_t; - - static void -server_fibre_fn( void * vp_arg ) { - server_args_t * args = fd_type_pun( vp_arg ); - - fd_quic_t * quic = args->quic; - fd_quic_t * client_quic = args->client_quic; - - /* track key phase changes */ - uint last_key_phase = -1u; +server_state_init( server_state_t * server ) { + server->next_period = now; + server->last_key_phase = -1u; +} - /* wake up at least every 1ms */ - long period_ns = (long)1e6; - while( !server_done ) { - sync_clocks( quic, client_quic ); - fd_quic_service( quic, now ); - - if( server_conn ) { - if( last_key_phase == -1u ) { - last_key_phase = server_conn->key_phase; - FD_LOG_INFO(( "SERVER - connection established - key_phase: %u", (uint)last_key_phase )); - } else if( last_key_phase != server_conn->key_phase ) { - FD_LOG_INFO(( "SERVER - key phase changed to %u", (uint)server_conn->key_phase )); - last_key_phase = server_conn->key_phase; - } +static void +server_step( server_state_t * server ) { + if( server_conn ) { + if( server->last_key_phase == -1u ) { + server->last_key_phase = server_conn->key_phase; + FD_LOG_INFO(( "SERVER - connection established - key_phase: %u", (uint)server->last_key_phase )); + } else if( server->last_key_phase != server_conn->key_phase ) { + FD_LOG_INFO(( "SERVER - key phase changed to %u", (uint)server_conn->key_phase )); + server->last_key_phase = server_conn->key_phase; } - - long next_wakeup = fd_quic_get_next_wakeup( quic ); - long next_period = now + period_ns; - - fd_fibre_wait_until( fd_long_min( next_wakeup, next_period ) ); } } @@ -337,36 +284,32 @@ main( int argc, char ** argv ) { FD_TEST( fd_quic_init( client_quic ) ); FD_TEST( fd_quic_init( server_quic ) ); - /* initialize fibres */ - void * this_fibre_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_init_align(), fd_fibre_init_footprint( ), 1UL ); - fd_fibre_t * this_fibre = fd_fibre_init( this_fibre_mem ); (void)this_fibre; + client_state_t client[1]; + server_state_t server[1]; + client_state_init( client, client_quic ); + server_state_init( server ); - /* set fibre scheduler clock */ - fd_fibre_set_clock( test_fibre_clock ); + while( !server_done ) { + sync_clocks( client_quic, server_quic ); + + fd_quic_service( client_quic, now ); + fd_quic_service( server_quic, now ); - /* create fibres for client and server */ - ulong stack_sz = 1<<20; - void * client_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ), 1UL ); - client_args_t client_args[1] = {{ .quic = client_quic, .server_quic = server_quic }}; - client_fibre = fd_fibre_start( client_mem, stack_sz, client_fibre_fn, client_args ); - FD_TEST( client_fibre ); + server_step( server ); + client_step( client ); - void * server_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ), 1UL ); - server_args_t server_args[1] = {{ .quic = server_quic, .client_quic = client_quic }}; - server_fibre = fd_fibre_start( server_mem, stack_sz, server_fibre_fn, server_args ); - FD_TEST( server_fibre ); + long next_wakeup_client = fd_quic_get_next_wakeup( client_quic ); + long next_wakeup_server = fd_quic_get_next_wakeup( server_quic ); + long next_wakeup = fd_long_min( next_wakeup_client, next_wakeup_server ); - /* schedule the fibres - they will execute during the call to fibre_schedule_run */ - fd_fibre_schedule( client_fibre ); - fd_fibre_schedule( server_fibre ); + if( client->conn && !client_done ) next_wakeup = fd_long_min( next_wakeup, client->next_send ); - /* run the fibres until done */ - while(1) { - long timeout = fd_fibre_schedule_run(); - if( timeout < 0 ) break; + /* wake the server side at least every 1ms */ + server->next_period = fd_long_max( server->next_period, now ) + (long)1e6; + next_wakeup = fd_long_min( next_wakeup, server->next_period ); - now = timeout; + FD_TEST( next_wakeup < LONG_MAX ); + now = fd_long_max( now+1L, next_wakeup ); } FD_LOG_NOTICE(( "Passed %lu key updates", tot_key_phase_change )); diff --git a/src/waltz/tls/fd_tls.c b/src/waltz/tls/fd_tls.c index 6a6f6770405..bcce2890822 100644 --- a/src/waltz/tls/fd_tls.c +++ b/src/waltz/tls/fd_tls.c @@ -829,8 +829,11 @@ fd_tls_handle_cert_chain( fd_tls_estate_base_t * const base, fd_tls_extract_cert_pubkey_res_t extract = fd_tls_extract_cert_pubkey( cert_chain, cert_chain_sz, fd_uint_if( is_rpk, FD_TLS_CERTTYPE_RAW_PUBKEY, FD_TLS_CERTTYPE_X509 ) ); - if( FD_UNLIKELY( !extract.pubkey ) ) - return fd_tls_alert( base, extract.alert, extract.reason ); + if( FD_UNLIKELY( !extract.pubkey ) ) { + uint alert = extract.alert ? extract.alert : FD_TLS_ALERT_DECODE_ERROR; + ushort reason = extract.reason ? extract.reason : FD_TLS_REASON_CERT_PARSE; + return fd_tls_alert( base, alert, reason ); + } if( expected_pubkey ) if( FD_UNLIKELY( 0!=memcmp( extract.pubkey, expected_pubkey, 32UL ) ) ) diff --git a/src/waltz/tls/fd_tls_proto.c b/src/waltz/tls/fd_tls_proto.c index 6cd9ad1b2c1..164f0945ef8 100644 --- a/src/waltz/tls/fd_tls_proto.c +++ b/src/waltz/tls/fd_tls_proto.c @@ -1061,6 +1061,9 @@ fd_tls_extract_cert_pubkey( uchar const * cert_chain, uint cert_type ) { fd_tls_extract_cert_pubkey_res_t res; long ret = fd_tls_extract_cert_pubkey_( &res, cert_chain, cert_chain_sz, cert_type ); - (void)ret; + if( FD_UNLIKELY( ret<0L && !res.alert ) ) { + res.alert = (uint)(-ret); + res.reason = FD_TLS_REASON_CERT_PARSE; + } return res; } diff --git a/src/waltz/tls/test_tls.c b/src/waltz/tls/test_tls.c index 072e6a9a492..5652a660495 100644 --- a/src/waltz/tls/test_tls.c +++ b/src/waltz/tls/test_tls.c @@ -327,6 +327,142 @@ test_tls_server_wrong_ciphersuite( fd_rng_t * rng ) { fd_tls_delete( fd_tls_leave( client ) ); } +static void +test_tls_truncated_cert_extract( void ) { + + { + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( NULL, 0UL, FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( (uchar const *)"", 0UL, FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { 0x00 }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { 0x00, 0x00, 0x00 }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { + 0x00, /* certificate_request_context length = 0 */ + 0x00, 0x00, 0x20, /* cert_list_sz = 32 (nonzero) */ + }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { + 0x00, /* certificate_request_context length = 0 */ + 0x00, 0x00, 0x20, /* cert_list_sz = 32 */ + 0x00, 0x00, 0x20, /* cert_sz = 32 (but only 0 bytes follow) */ + }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { + 0x00, /* certificate_request_context length = 0 */ + 0x00, 0x00, 0x00, /* cert_list_sz = 0 */ + }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_BAD_CERTIFICATE ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_CHAIN_EMPTY ); + } + + { + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( NULL, 0UL, FD_TLS_CERTTYPE_RAW_PUBKEY ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { 0x00 }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_RAW_PUBKEY ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } +} + +static void +test_tls_truncated_cert_handshake( fd_rng_t * rng ) { + + fd_tls_t _client[1]; fd_tls_t * client = fd_tls_join( fd_tls_new( _client ) ); + fd_tls_t _server[1]; fd_tls_t * server = fd_tls_join( fd_tls_new( _server ) ); + prepare_tls_pair( rng, client, server ); + + fd_tls_estate_cli_t cli_hs[1]; + FD_TEST( fd_tls_estate_cli_new( cli_hs ) ); + + cli_hs->base.state = FD_TLS_HS_WAIT_CERT_CR; + cli_hs->server_pubkey_pin = 0; + + uchar record[] = { + FD_TLS_MSG_CERT, /* type = Certificate */ + 0x00, 0x00, 0x01, /* msg body length = 1 byte */ + 0x00, /* certificate_request_context length = 0 */ + }; + + long res = fd_tls_client_handshake( client, cli_hs, record, sizeof(record), FD_TLS_LEVEL_HANDSHAKE ); + FD_TEST( res == -(long)FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( cli_hs->base.reason == FD_TLS_REASON_CERT_CR_PARSE ); + FD_TEST( cli_hs->base.state != FD_TLS_HS_WAIT_CV ); + + /* Zero-length body — FD_TLS_SKIP_FIELD fails at opaque_sz */ + FD_TEST( fd_tls_estate_cli_new( cli_hs ) ); + cli_hs->base.state = FD_TLS_HS_WAIT_CERT_CR; + cli_hs->server_pubkey_pin = 0; + + uchar record_empty[] = { + FD_TLS_MSG_CERT, + 0x00, 0x00, 0x00, /* msg body length = 0 */ + }; + + res = fd_tls_client_handshake( client, cli_hs, record_empty, sizeof(record_empty), FD_TLS_LEVEL_HANDSHAKE ); + FD_TEST( res == -(long)FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( cli_hs->base.reason == FD_TLS_REASON_CERT_CR_PARSE ); + FD_TEST( cli_hs->base.state != FD_TLS_HS_WAIT_CV ); + + fd_tls_estate_cli_delete( cli_hs ); + fd_tls_delete( fd_tls_leave( server ) ); + fd_tls_delete( fd_tls_leave( client ) ); +} + int main( int argc, char ** argv) { @@ -337,6 +473,8 @@ main( int argc, test_tls_pair( rng ); test_tls_client_wrong_ciphersuite( rng ); test_tls_server_wrong_ciphersuite( rng ); + test_tls_truncated_cert_extract(); + test_tls_truncated_cert_handshake( rng ); fd_rng_delete( fd_rng_leave( rng ) ); FD_LOG_NOTICE(( "pass" ));