Repository: envoyproxy/gateway

Issue:
Support InitialJitter for active health check
*Description*:
>Describe the desired behavior, what scenario it enables and how it
would be used.

Current active healthcheck spec ([reference](https://gateway.envoyproxy.io/latest/api/extension_types/#activehealthcheck)) does not support `initial_jitter`
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/health_check.proto#envoy-v3-api-msg-config-core-v3-healthcheck

Ask of this issue is to support it.

[optional *Relevant Links*:]
>Any extra documentation required to understand the issue.


Discussion:

Solution patch:
diff --git a/.github/workflows/latest_release.yaml b/.github/workflows/latest_release.yaml
deleted file mode 100644
index 88bac8ffd..000000000
--- a/.github/workflows/latest_release.yaml
+++ /dev/null
@@ -1,156 +0,0 @@
-name: Latest Release
-
-permissions:
-  contents: read
-
-on:
-  push:
-    branches:
-    - "main"
-    paths-ignore:
-    - "**/*.png"
-
-# Limit workflow run or job concurrency,
-# avoid workflow failed when merge more than one PR in short time.
-concurrency:
-  group: ${{ github.workflow }}-${{ github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  # For push event, we run benchmark test here because we need to
-  # include benchmark report in the latest release.
-  benchmark-test:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683  # v4.2.2
-    - uses: ./tools/github-actions/setup-deps
-
-    - name: Setup Graphviz
-      uses: ts-graphviz/setup-graphviz@b1de5da23ed0a6d14e0aeee8ed52fdd87af2363c  # v2.0.2
-
-    # Benchmark
-    - name: Run Benchmark tests
-      env:
-        KIND_NODE_TAG: v1.29.10
-        IMAGE_PULL_POLICY: IfNotPresent
-        # Args for benchmark test
-        BENCHMARK_RPS: 10000
-        BENCHMARK_CONNECTIONS: 100
-        BENCHMARK_DURATION: 30
-        BENCHMARK_CPU_LIMITS: 1000m
-        BENCHMARK_MEMORY_LIMITS: 2000Mi
-        BENCHMARK_REPORT_DIR: benchmark_report
-      run: make benchmark
-
-    - name: Package benchmark report
-      run: cd test/benchmark && zip -r benchmark_report.zip benchmark_report
-
-    - name: Upload Benchmark Report
-      uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02  # v4.6.2
-      with:
-        name: benchmark_report
-        path: test/benchmark/benchmark_report.zip
-
-  latest-release:
-    runs-on: ubuntu-22.04
-    needs: [benchmark-test]
-    permissions:
-      contents: write
-    steps:
-    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683  # v4.2.2
-
-    - name: Generate Release Manifests
-      # Use `Always` image pull policy for latest version.
-      run: IMAGE_PULL_POLICY=Always make generate-manifests IMAGE=envoyproxy/gateway-dev TAG=latest OUTPUT_DIR=release-artifacts
-
-    - name: Download Benchmark Report
-      uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093  # v4.3.0
-      with:
-        name: benchmark_report
-        path: release-artifacts
-
-    - name: Build egctl latest multiarch binaries
-      run: |
-        make build-multiarch
-        tar -zcvf envoy-gateway_latest_linux_amd64.tar.gz bin/linux/amd64/envoy-gateway
-        tar -zcvf envoy-gateway_latest_linux_arm64.tar.gz bin/linux/arm64/envoy-gateway
-        tar -zcvf envoy-gateway_latest_darwin_amd64.tar.gz bin/darwin/amd64/envoy-gateway
-        tar -zcvf envoy-gateway_latest_darwin_arm64.tar.gz bin/darwin/arm64/envoy-gateway
-        tar -zcvf egctl_latest_linux_amd64.tar.gz bin/linux/amd64/egctl
-        tar -zcvf egctl_latest_linux_arm64.tar.gz bin/linux/arm64/egctl
-        tar -zcvf egctl_latest_darwin_amd64.tar.gz bin/darwin/amd64/egctl
-        tar -zcvf egctl_latest_darwin_arm64.tar.gz bin/darwin/arm64/egctl
-        zip -r egctl_latest_windows_amd64.zip bin/windows/amd64/egctl
-
-    # Ignore the error when we delete the latest release, it might not exist.
-
-    # GitHub APIs take sometime to make effect, we should make sure before Recreate the Latest Release and Tag,
-    # tag and release all get deleted. So we sleep sometime after deleting tag and release to wait for it taking effect.
-
-    - name: Delete the Latest Release
-      continue-on-error: true
-      run: |
-        gh release delete latest --repo $GITHUB_REPOSITORY
-        sleep 4
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        GITHUB_REPOSITORY: ${{ github.repository_owner }}/${{ github.event.repository.name }}
-
-    # Ignore the error when we delete the latest tag, it might not exist.
-    - name: Delete the Latest Tag
-      continue-on-error: true
-      run: |
-        gh api --method DELETE /repos/$GITHUB_REPOSITORY/git/refs/tags/latest
-        sleep 4
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        GITHUB_REPOSITORY: ${{ github.repository_owner }}/${{ github.event.repository.name }}
-
-    - name: Recreate the Latest Release and Tag
-      uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8  # v2.3.2
-      with:
-        draft: false
-        prerelease: true
-        tag_name: latest
-        files: |
-          release-artifacts/install.yaml
-          release-artifacts/quickstart.yaml
-          release-artifacts/envoy-gateway-crds.yaml
-          release-artifacts/benchmark_report.zip
-          envoy-gateway_latest_linux_amd64.tar.gz
-          envoy-gateway_latest_linux_arm64.tar.gz
-          envoy-gateway_latest_darwin_amd64.tar.gz
-          envoy-gateway_latest_darwin_arm64.tar.gz
-          egctl_latest_linux_amd64.tar.gz
-          egctl_latest_linux_arm64.tar.gz
-          egctl_latest_darwin_amd64.tar.gz
-          egctl_latest_darwin_arm64.tar.gz
-          egctl_latest_windows_amd64.zip
-        body: |
-          This is the "latest" release of **Envoy Gateway**, which contains the most recent commits from the main branch.
-
-          This release **might not be stable**.
-
-          It is only intended for developers wishing to try out the latest features in Envoy Gateway, some of which may not be fully implemented.
-
-          We use `v0.0.0-latest` as the latest chart version to install latest envoy-gateway:
-
-          ```shell
-          helm install eg oci://docker.io/envoyproxy/gateway-helm --version v0.0.0-latest -n envoy-gateway-system --create-namespace
-          ```
-
-          Try latest version of `egctl` with:
-
-          ```shell
-          curl -Ls https://gateway.envoyproxy.io/get-egctl.sh | VERSION=latest bash
-          ```
-
-    # Check if latest release and tag are created properly,
-    # if not, the workflow needs to report an error,
-    # let maintainers be aware of it and rerun it manually.
-    # After Recreate the Latest Release and Tag, we need to sleep some time to wait
-    # new tag and release are created before checking it.
-    - name: Check Latest Release and Tag
-      run: |
-        sleep 4
-        make latest-release-check
diff --git a/.github/workflows/license-scan.yml b/.github/workflows/license-scan.yml
index 42cb3e522..eaa79acd0 100644
--- a/.github/workflows/license-scan.yml
+++ b/.github/workflows/license-scan.yml
@@ -18,7 +18,7 @@ jobs:
     - name: Checkout code
       uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683  # v4.2.2
     - name: Run scanner
-      uses: google/osv-scanner-action/osv-scanner-action@40a8940a65eab1544a6af759e43d936201a131a2  # v2.0.3
+      uses: google/osv-scanner-action/osv-scanner-action@b00f71e051ddddc6e46a193c31c8c0bf283bf9e6  # v2.1.0
       continue-on-error: true  # remove this after https://github.com/google/deps.dev/issues/146 has been resolved
       with:
         scan-args: |-
diff --git a/.github/workflows/osv-scanner.yml b/.github/workflows/osv-scanner.yml
index 0112df156..687d1d72e 100644
--- a/.github/workflows/osv-scanner.yml
+++ b/.github/workflows/osv-scanner.yml
@@ -19,7 +19,7 @@ permissions:
 jobs:
   scan-scheduled:
     if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
-    uses: "google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@40a8940a65eab1544a6af759e43d936201a131a2"  # v2.0.3
+    uses: "google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@b00f71e051ddddc6e46a193c31c8c0bf283bf9e6"  # v2.1.0
     with:
       scan-args: |-
         --recursive
@@ -32,7 +32,7 @@ jobs:
 
   scan-pr:
     if: ${{ github.event_name == 'pull_request' || github.event_name == 'merge_group' }}
-    uses: "google/osv-scanner-action/.github/workflows/osv-scanner-reusable-pr.yml@40a8940a65eab1544a6af759e43d936201a131a2"  # v2.0.3
+    uses: "google/osv-scanner-action/.github/workflows/osv-scanner-reusable-pr.yml@b00f71e051ddddc6e46a193c31c8c0bf283bf9e6"  # v2.1.0
     with:
       scan-args: |-
         --recursive
diff --git a/OWNERS b/OWNERS
index 5e4a3b86e..209e6d66f 100644
--- a/OWNERS
+++ b/OWNERS
@@ -33,6 +33,8 @@ reviewers:
 - kflynn
 - tanujd11
 - liorokman
+- jukie
+- kkk777-7
 
 emeritus-reviewers:
 
diff --git a/api/v1alpha1/envoygateway_helpers.go b/api/v1alpha1/envoygateway_helpers.go
index 63b726691..22a7fcd34 100644
--- a/api/v1alpha1/envoygateway_helpers.go
+++ b/api/v1alpha1/envoygateway_helpers.go
@@ -316,3 +316,51 @@ func (kcr *KubernetesClientRateLimit) GetQPSAndBurst() (float32, int) {
 	burst := ptr.Deref(kcr.Burst, DefaultKubernetesClientBurst)
 	return float32(qps), int(burst)
 }
+
+// ShouldIncludeClusters returns true if clusters should be included in the translation hook.
+// When TranslationConfig is nil, defaults to true for backward compatibility.
+// When TranslationConfig is explicitly set, uses the configuration.
+func (tc *TranslationConfig) ShouldIncludeClusters() bool {
+	if tc == nil || tc.Cluster == nil {
+		// Default behavior: include clusters for backward compatibility
+		return true
+	}
+
+	return ptr.Deref(tc.Cluster.IncludeAll, true)
+}
+
+// ShouldIncludeSecrets returns true if secrets should be included in the translation hook.
+// When TranslationConfig is nil, defaults to true for backward compatibility.
+// When TranslationConfig is explicitly set, uses the configuration.
+func (tc *TranslationConfig) ShouldIncludeSecrets() bool {
+	if tc == nil || tc.Secret == nil {
+		// Default behavior: include secrets for backward compatibility
+		return true
+	}
+
+	return ptr.Deref(tc.Secret.IncludeAll, true)
+}
+
+// ShouldIncludeListeners returns true if listeners should be included in the translation hook.
+// When TranslationConfig is nil, defaults to false for backward compatibility.
+// When TranslationConfig is explicitly set, uses the configuration.
+func (tc *TranslationConfig) ShouldIncludeListeners() bool {
+	if tc == nil || tc.Listener == nil {
+		// Default behavior: exclude listeners for backward compatibility
+		return false
+	}
+
+	return ptr.Deref(tc.Listener.IncludeAll, false)
+}
+
+// ShouldIncludeRoutes returns true if routes should be included in the translation hook.
+// When TranslationConfig is nil, defaults to false for backward compatibility.
+// When TranslationConfig is explicitly set, uses the configuration.
+func (tc *TranslationConfig) ShouldIncludeRoutes() bool {
+	if tc == nil || tc.Route == nil {
+		// Default behavior: exclude routes for backward compatibility
+		return false
+	}
+
+	return ptr.Deref(tc.Route.IncludeAll, false)
+}
diff --git a/api/v1alpha1/envoygateway_types.go b/api/v1alpha1/envoygateway_types.go
index 3c75ee3f0..6d6caa68e 100644
--- a/api/v1alpha1/envoygateway_types.go
+++ b/api/v1alpha1/envoygateway_types.go
@@ -582,6 +582,61 @@ type ExtensionHooks struct {
 type XDSTranslatorHooks struct {
 	Pre  []XDSTranslatorHook `json:"pre,omitempty"`
 	Post []XDSTranslatorHook `json:"post,omitempty"`
+
+	// Translation defines the configuration for the translation hook.
+	Translation *TranslationConfig `json:"translation,omitempty"`
+}
+
+// TranslationConfig defines the configuration for the translation hook.
+type TranslationConfig struct {
+	// Listener defines the configuration for the listener translation hook.
+	//
+	// +optional
+	Listener *ListenerTranslationConfig `json:"listener,omitempty"`
+	// Route defines the configuration for the route translation hook.
+	//
+	// +optional
+	Route *RouteTranslationConfig `json:"route,omitempty"`
+	// Cluster defines the configuration for the cluster translation hook.
+	//
+	// +optional
+	Cluster *ClusterTranslationConfig `json:"cluster,omitempty"`
+	// Secret defines the configuration for the secret translation hook.
+	//
+	// +optional
+	Secret *SecretTranslationConfig `json:"secret,omitempty"`
+}
+
+type ListenerTranslationConfig struct {
+	// IncludeAll defines whether all listeners should be included in the translation hook.
+	// Default is false.
+	//
+	// +optional
+	IncludeAll *bool `json:"includeAll,omitempty"`
+}
+
+type RouteTranslationConfig struct {
+	// IncludeAll defines whether all routes should be included in the translation hook.
+	// Default is false.
+	//
+	// +optional
+	IncludeAll *bool `json:"includeAll,omitempty"`
+}
+
+type ClusterTranslationConfig struct {
+	// IncludeAll defines whether all clusters should be included in the translation hook.
+	// Default is true for backward compatibility.
+	//
+	// +optional
+	IncludeAll *bool `json:"includeAll,omitempty"`
+}
+
+type SecretTranslationConfig struct {
+	// IncludeAll defines whether all secrets should be included in the translation hook.
+	// Default is true for backward compatibility.
+	//
+	// +optional
+	IncludeAll *bool `json:"includeAll,omitempty"`
 }
 
 // ExtensionService defines the configuration for connecting to a registered extension service.
diff --git a/api/v1alpha1/ext_proc_types.go b/api/v1alpha1/ext_proc_types.go
index 0fdf1b424..41f57e954 100644
--- a/api/v1alpha1/ext_proc_types.go
+++ b/api/v1alpha1/ext_proc_types.go
@@ -68,7 +68,7 @@ type ExtProcProcessingMode struct {
 // +kubebuilder:validation:XValidation:message="BackendRefs must be used, backendRef is not supported.",rule="!has(self.backendRef)"
 // +kubebuilder:validation:XValidation:message="BackendRefs only supports Service, ServiceImport, and Backend kind.",rule="has(self.backendRefs) ? self.backendRefs.all(f, f.kind == 'Service' || f.kind == 'ServiceImport' || f.kind == 'Backend') : true"
 // +kubebuilder:validation:XValidation:message="BackendRefs only supports Core, multicluster.x-k8s.io, and gateway.envoyproxy.io groups.",rule="has(self.backendRefs) ? (self.backendRefs.all(f, f.group == \"\" || f.group == 'multicluster.x-k8s.io' || f.group == 'gateway.envoyproxy.io')) : true"
-// +kubebuilder:validation:XValidation:message="If FullDuplexStreamed body processing mode is used, FailOpen must be false.",rule="!(has(self.failOpen) && self.failOpen == true && ((has(self.processingMode.request.body) && self.processingMode.request.body == 'FullDuplexStreamed') || (has(self.processingMode.response.body) && self.processingMode.response.body == 'FullDuplexStreamed')))"
+// +kubebuilder:validation:XValidation:message="If FullDuplexStreamed body processing mode is used, FailOpen must be false.",rule="!(has(self.failOpen) && self.failOpen == true && has(self.processingMode) && ((has(self.processingMode.request) && has(self.processingMode.request.body) && self.processingMode.request.body == 'FullDuplexStreamed') || (has(self.processingMode.response) && has(self.processingMode.response.body) && self.processingMode.response.body == 'FullDuplexStreamed')))"
 type ExtProc struct {
 	BackendCluster `json:",inline"`
 
diff --git a/api/v1alpha1/healthcheck_types.go b/api/v1alpha1/healthcheck_types.go
index 11f667773..772e78166 100644
--- a/api/v1alpha1/healthcheck_types.go
+++ b/api/v1alpha1/healthcheck_types.go
@@ -5,7 +5,10 @@
 
 package v1alpha1
 
-import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+import (
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
 
 // HealthCheck configuration to decide which endpoints
 // are healthy and can be used for routing.
@@ -99,6 +102,13 @@ type ActiveHealthCheck struct {
 	// +optional
 	Interval *metav1.Duration `json:"interval"`
 
+	// InitialJitter defines the maximum time Envoy will wait before the first health check.
+	// Envoy will randomly select a value between 0 and the initial jitter value.
+	//
+	// +kubebuilder:validation:Format=duration
+	// +optional
+	InitialJitter *gwapiv1.Duration `json:"initialJitter,omitempty"`
+
 	// UnhealthyThreshold defines the number of unhealthy health checks required before a backend host is marked unhealthy.
 	//
 	// +kubebuilder:validation:Minimum=1
diff --git a/api/v1alpha1/retry_types.go b/api/v1alpha1/retry_types.go
index 1bee8ce75..d5f3eb24d 100644
--- a/api/v1alpha1/retry_types.go
+++ b/api/v1alpha1/retry_types.go
@@ -51,7 +51,7 @@ type RetryOn struct {
 }
 
 // TriggerEnum specifies the conditions that trigger retries.
-// +kubebuilder:validation:Enum={"5xx","gateway-error","reset","connect-failure","retriable-4xx","refused-stream","retriable-status-codes","cancelled","deadline-exceeded","internal","resource-exhausted","unavailable"}
+// +kubebuilder:validation:Enum={"5xx","gateway-error","reset","reset-before-request","connect-failure","retriable-4xx","refused-stream","retriable-status-codes","cancelled","deadline-exceeded","internal","resource-exhausted","unavailable"}
 type TriggerEnum string
 
 const (
@@ -65,6 +65,8 @@ const (
 	GatewayError TriggerEnum = "gateway-error"
 	// The upstream server does not respond at all (disconnect/reset/read timeout.)
 	Reset TriggerEnum = "reset"
+	// Like reset, but only retry if the request headers have not been sent to the upstream server.
+	ResetBeforeRequest TriggerEnum = "reset-before-request"
 	// Connection failure to the upstream server (connect timeout, etc.). (Included in *5xx*)
 	ConnectFailure TriggerEnum = "connect-failure"
 	// The upstream server responds with a retriable 4xx response code.
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index bd7446c23..513d89529 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -124,6 +124,11 @@ func (in *ActiveHealthCheck) DeepCopyInto(out *ActiveHealthCheck) {
 		*out = new(metav1.Duration)
 		**out = **in
 	}
+	if in.InitialJitter != nil {
+		in, out := &in.InitialJitter, &out.InitialJitter
+		*out = new(v1.Duration)
+		**out = **in
+	}
 	if in.UnhealthyThreshold != nil {
 		in, out := &in.UnhealthyThreshold, &out.UnhealthyThreshold
 		*out = new(uint32)
@@ -1239,6 +1244,26 @@ func (in *ClusterSettings) DeepCopy() *ClusterSettings {
 	return out
 }
 
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClusterTranslationConfig) DeepCopyInto(out *ClusterTranslationConfig) {
+	*out = *in
+	if in.IncludeAll != nil {
+		in, out := &in.IncludeAll, &out.IncludeAll
+		*out = new(bool)
+		**out = **in
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTranslationConfig.
+func (in *ClusterTranslationConfig) DeepCopy() *ClusterTranslationConfig {
+	if in == nil {
+		return nil
+	}
+	out := new(ClusterTranslationConfig)
+	in.DeepCopyInto(out)
+	return out
+}
+
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *Compression) DeepCopyInto(out *Compression) {
 	*out = *in
@@ -4427,6 +4452,26 @@ func (in *LeaderElection) DeepCopy() *LeaderElection {
 	return out
 }
 
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ListenerTranslationConfig) DeepCopyInto(out *ListenerTranslationConfig) {
+	*out = *in
+	if in.IncludeAll != nil {
+		in, out := &in.IncludeAll, &out.IncludeAll
+		*out = new(bool)
+		**out = **in
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerTranslationConfig.
+func (in *ListenerTranslationConfig) DeepCopy() *ListenerTranslationConfig {
+	if in == nil {
+		return nil
+	}
+	out := new(ListenerTranslationConfig)
+	in.DeepCopyInto(out)
+	return out
+}
+
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *LiteralCustomTag) DeepCopyInto(out *LiteralCustomTag) {
 	*out = *in
@@ -5947,6 +5992,46 @@ func (in *RetryOn) DeepCopy() *RetryOn {
 	return out
 }
 
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RouteTranslationConfig) DeepCopyInto(out *RouteTranslationConfig) {
+	*out = *in
+	if in.IncludeAll != nil {
+		in, out := &in.IncludeAll, &out.IncludeAll
+		*out = new(bool)
+		**out = **in
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTranslationConfig.
+func (in *RouteTranslationConfig) DeepCopy() *RouteTranslationConfig {
+	if in == nil {
+		return nil
+	}
+	out := new(RouteTranslationConfig)
+	in.DeepCopyInto(out)
+	return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SecretTranslationConfig) DeepCopyInto(out *SecretTranslationConfig) {
+	*out = *in
+	if in.IncludeAll != nil {
+		in, out := &in.IncludeAll, &out.IncludeAll
+		*out = new(bool)
+		**out = **in
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretTranslationConfig.
+func (in *SecretTranslationConfig) DeepCopy() *SecretTranslationConfig {
+	if in == nil {
+		return nil
+	}
+	out := new(SecretTranslationConfig)
+	in.DeepCopyInto(out)
+	return out
+}
+
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *SecurityPolicy) DeepCopyInto(out *SecurityPolicy) {
 	*out = *in
@@ -6584,6 +6669,41 @@ func (in *TracingProvider) DeepCopy() *TracingProvider {
 	return out
 }
 
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TranslationConfig) DeepCopyInto(out *TranslationConfig) {
+	*out = *in
+	if in.Listener != nil {
+		in, out := &in.Listener, &out.Listener
+		*out = new(ListenerTranslationConfig)
+		(*in).DeepCopyInto(*out)
+	}
+	if in.Route != nil {
+		in, out := &in.Route, &out.Route
+		*out = new(RouteTranslationConfig)
+		(*in).DeepCopyInto(*out)
+	}
+	if in.Cluster != nil {
+		in, out := &in.Cluster, &out.Cluster
+		*out = new(ClusterTranslationConfig)
+		(*in).DeepCopyInto(*out)
+	}
+	if in.Secret != nil {
+		in, out := &in.Secret, &out.Secret
+		*out = new(SecretTranslationConfig)
+		(*in).DeepCopyInto(*out)
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TranslationConfig.
+func (in *TranslationConfig) DeepCopy() *TranslationConfig {
+	if in == nil {
+		return nil
+	}
+	out := new(TranslationConfig)
+	in.DeepCopyInto(out)
+	return out
+}
+
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *UnixSocket) DeepCopyInto(out *UnixSocket) {
 	*out = *in
@@ -6719,6 +6839,11 @@ func (in *XDSTranslatorHooks) DeepCopyInto(out *XDSTranslatorHooks) {
 		*out = make([]XDSTranslatorHook, len(*in))
 		copy(*out, *in)
 	}
+	if in.Translation != nil {
+		in, out := &in.Translation, &out.Translation
+		*out = new(TranslationConfig)
+		(*in).DeepCopyInto(*out)
+	}
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XDSTranslatorHooks.
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index 5059c61db..884f72a51 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -345,6 +345,13 @@ spec:
                         required:
                         - path
                         type: object
+                      initialJitter:
+                        description: |-
+                          InitialJitter defines the maximum time Envoy will wait before the first health check.
+                          Envoy will randomly select a value between 0 and the initial jitter value.
+                        format: duration
+                        pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                        type: string
                       interval:
                         default: 3s
                         description: Interval defines the time between active health
@@ -1648,6 +1655,7 @@ spec:
                           - 5xx
                           - gateway-error
                           - reset
+                          - reset-before-request
                           - connect-failure
                           - retriable-4xx
                           - refused-stream
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index d960c7066..efb39d5fc 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -443,6 +443,13 @@ spec:
                                   required:
                                   - path
                                   type: object
+                                initialJitter:
+                                  description: |-
+                                    InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                    Envoy will randomly select a value between 0 and the initial jitter value.
+                                  format: duration
+                                  pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                  type: string
                                 interval:
                                   default: 3s
                                   description: Interval defines the time between active
@@ -905,6 +912,7 @@ spec:
                                     - 5xx
                                     - gateway-error
                                     - reset
+                                    - reset-before-request
                                     - connect-failure
                                     - retriable-4xx
                                     - refused-stream
@@ -1101,10 +1109,11 @@ spec:
                       ''gateway.envoyproxy.io'')) : true'
                   - message: If FullDuplexStreamed body processing mode is used, FailOpen
                       must be false.
-                    rule: '!(has(self.failOpen) && self.failOpen == true && ((has(self.processingMode.request.body)
+                    rule: '!(has(self.failOpen) && self.failOpen == true && has(self.processingMode)
+                      && ((has(self.processingMode.request) && has(self.processingMode.request.body)
                       && self.processingMode.request.body == ''FullDuplexStreamed'')
-                      || (has(self.processingMode.response.body) && self.processingMode.response.body
-                      == ''FullDuplexStreamed'')))'
+                      || (has(self.processingMode.response) && has(self.processingMode.response.body)
+                      && self.processingMode.response.body == ''FullDuplexStreamed'')))'
                 maxItems: 16
                 type: array
               lua:
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
index e4df4ec33..c2b518ab3 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11003,6 +11003,13 @@ spec:
                                                     required:
                                                     - path
                                                     type: object
+                                                  initialJitter:
+                                                    description: |-
+                                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                                    format: duration
+                                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                                    type: string
                                                   interval:
                                                     default: 3s
                                                     description: Interval defines
@@ -11511,6 +11518,7 @@ spec:
                                                       - 5xx
                                                       - gateway-error
                                                       - reset
+                                                      - reset-before-request
                                                       - connect-failure
                                                       - retriable-4xx
                                                       - refused-stream
@@ -12075,6 +12083,13 @@ spec:
                                                     required:
                                                     - path
                                                     type: object
+                                                  initialJitter:
+                                                    description: |-
+                                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                                    format: duration
+                                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                                    type: string
                                                   interval:
                                                     default: 3s
                                                     description: Interval defines
@@ -12583,6 +12598,7 @@ spec:
                                                       - 5xx
                                                       - gateway-error
                                                       - reset
+                                                      - reset-before-request
                                                       - connect-failure
                                                       - retriable-4xx
                                                       - refused-stream
@@ -13250,6 +13266,13 @@ spec:
                                               required:
                                               - path
                                               type: object
+                                            initialJitter:
+                                              description: |-
+                                                InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                Envoy will randomly select a value between 0 and the initial jitter value.
+                                              format: duration
+                                              pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                              type: string
                                             interval:
                                               default: 3s
                                               description: Interval defines the time
@@ -13734,6 +13757,7 @@ spec:
                                                 - 5xx
                                                 - gateway-error
                                                 - reset
+                                                - reset-before-request
                                                 - connect-failure
                                                 - retriable-4xx
                                                 - refused-stream
@@ -14327,6 +14351,13 @@ spec:
                                         required:
                                         - path
                                         type: object
+                                      initialJitter:
+                                        description: |-
+                                          InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                          Envoy will randomly select a value between 0 and the initial jitter value.
+                                        format: duration
+                                        pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                        type: string
                                       interval:
                                         default: 3s
                                         description: Interval defines the time between
@@ -14807,6 +14838,7 @@ spec:
                                           - 5xx
                                           - gateway-error
                                           - reset
+                                          - reset-before-request
                                           - connect-failure
                                           - retriable-4xx
                                           - refused-stream
diff --git a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
index cb21ac230..9cefc074a 100644
--- a/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -938,6 +938,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -1409,6 +1416,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
@@ -1908,6 +1916,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -2379,6 +2394,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
@@ -3074,6 +3090,13 @@ spec:
                                           required:
                                           - path
                                           type: object
+                                        initialJitter:
+                                          description: |-
+                                            InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                            Envoy will randomly select a value between 0 and the initial jitter value.
+                                          format: duration
+                                          pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                          type: string
                                         interval:
                                           default: 3s
                                           description: Interval defines the time between
@@ -3556,6 +3579,7 @@ spec:
                                             - 5xx
                                             - gateway-error
                                             - reset
+                                            - reset-before-request
                                             - connect-failure
                                             - retriable-4xx
                                             - refused-stream
@@ -4291,6 +4315,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -4762,6 +4793,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
index a1d2400b8..aa6a8c69a 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_backendtrafficpolicies.yaml
@@ -344,6 +344,13 @@ spec:
                         required:
                         - path
                         type: object
+                      initialJitter:
+                        description: |-
+                          InitialJitter defines the maximum time Envoy will wait before the first health check.
+                          Envoy will randomly select a value between 0 and the initial jitter value.
+                        format: duration
+                        pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                        type: string
                       interval:
                         default: 3s
                         description: Interval defines the time between active health
@@ -1647,6 +1654,7 @@ spec:
                           - 5xx
                           - gateway-error
                           - reset
+                          - reset-before-request
                           - connect-failure
                           - retriable-4xx
                           - refused-stream
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
index d5f015472..22b5e3c1a 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyextensionpolicies.yaml
@@ -442,6 +442,13 @@ spec:
                                   required:
                                   - path
                                   type: object
+                                initialJitter:
+                                  description: |-
+                                    InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                    Envoy will randomly select a value between 0 and the initial jitter value.
+                                  format: duration
+                                  pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                  type: string
                                 interval:
                                   default: 3s
                                   description: Interval defines the time between active
@@ -904,6 +911,7 @@ spec:
                                     - 5xx
                                     - gateway-error
                                     - reset
+                                    - reset-before-request
                                     - connect-failure
                                     - retriable-4xx
                                     - refused-stream
@@ -1100,10 +1108,11 @@ spec:
                       ''gateway.envoyproxy.io'')) : true'
                   - message: If FullDuplexStreamed body processing mode is used, FailOpen
                       must be false.
-                    rule: '!(has(self.failOpen) && self.failOpen == true && ((has(self.processingMode.request.body)
+                    rule: '!(has(self.failOpen) && self.failOpen == true && has(self.processingMode)
+                      && ((has(self.processingMode.request) && has(self.processingMode.request.body)
                       && self.processingMode.request.body == ''FullDuplexStreamed'')
-                      || (has(self.processingMode.response.body) && self.processingMode.response.body
-                      == ''FullDuplexStreamed'')))'
+                      || (has(self.processingMode.response) && has(self.processingMode.response.body)
+                      && self.processingMode.response.body == ''FullDuplexStreamed'')))'
                 maxItems: 16
                 type: array
               lua:
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
index 59d44a753..ebe9d6c14 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_envoyproxies.yaml
@@ -11002,6 +11002,13 @@ spec:
                                                     required:
                                                     - path
                                                     type: object
+                                                  initialJitter:
+                                                    description: |-
+                                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                                    format: duration
+                                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                                    type: string
                                                   interval:
                                                     default: 3s
                                                     description: Interval defines
@@ -11510,6 +11517,7 @@ spec:
                                                       - 5xx
                                                       - gateway-error
                                                       - reset
+                                                      - reset-before-request
                                                       - connect-failure
                                                       - retriable-4xx
                                                       - refused-stream
@@ -12074,6 +12082,13 @@ spec:
                                                     required:
                                                     - path
                                                     type: object
+                                                  initialJitter:
+                                                    description: |-
+                                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                                    format: duration
+                                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                                    type: string
                                                   interval:
                                                     default: 3s
                                                     description: Interval defines
@@ -12582,6 +12597,7 @@ spec:
                                                       - 5xx
                                                       - gateway-error
                                                       - reset
+                                                      - reset-before-request
                                                       - connect-failure
                                                       - retriable-4xx
                                                       - refused-stream
@@ -13249,6 +13265,13 @@ spec:
                                               required:
                                               - path
                                               type: object
+                                            initialJitter:
+                                              description: |-
+                                                InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                Envoy will randomly select a value between 0 and the initial jitter value.
+                                              format: duration
+                                              pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                              type: string
                                             interval:
                                               default: 3s
                                               description: Interval defines the time
@@ -13733,6 +13756,7 @@ spec:
                                                 - 5xx
                                                 - gateway-error
                                                 - reset
+                                                - reset-before-request
                                                 - connect-failure
                                                 - retriable-4xx
                                                 - refused-stream
@@ -14326,6 +14350,13 @@ spec:
                                         required:
                                         - path
                                         type: object
+                                      initialJitter:
+                                        description: |-
+                                          InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                          Envoy will randomly select a value between 0 and the initial jitter value.
+                                        format: duration
+                                        pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                        type: string
                                       interval:
                                         default: 3s
                                         description: Interval defines the time between
@@ -14806,6 +14837,7 @@ spec:
                                           - 5xx
                                           - gateway-error
                                           - reset
+                                          - reset-before-request
                                           - connect-failure
                                           - retriable-4xx
                                           - refused-stream
diff --git a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
index 6cd283bac..d3e29f23d 100644
--- a/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
+++ b/charts/gateway-helm/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml
@@ -937,6 +937,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -1408,6 +1415,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
@@ -1907,6 +1915,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -2378,6 +2393,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
@@ -3073,6 +3089,13 @@ spec:
                                           required:
                                           - path
                                           type: object
+                                        initialJitter:
+                                          description: |-
+                                            InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                            Envoy will randomly select a value between 0 and the initial jitter value.
+                                          format: duration
+                                          pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                          type: string
                                         interval:
                                           default: 3s
                                           description: Interval defines the time between
@@ -3555,6 +3578,7 @@ spec:
                                             - 5xx
                                             - gateway-error
                                             - reset
+                                            - reset-before-request
                                             - connect-failure
                                             - retriable-4xx
                                             - refused-stream
@@ -4290,6 +4314,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -4761,6 +4792,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
diff --git a/examples/admin-console-config.yaml b/examples/admin-console-config.yaml
new file mode 100644
index 000000000..7fda3fc39
--- /dev/null
+++ b/examples/admin-console-config.yaml
@@ -0,0 +1,155 @@
+# Example EnvoyGateway configuration with Admin Console enabled
+apiVersion: gateway.envoyproxy.io/v1alpha1
+kind: EnvoyGateway
+metadata:
+  name: envoy-gateway-config
+  namespace: envoy-gateway-system
+spec:
+  # Gateway API configuration
+  gateway:
+    controllerName: gateway.envoyproxy.io/gatewayclass-controller
+
+  # Provider configuration
+  provider:
+    type: Kubernetes
+    kubernetes:
+      watch:
+        type: Namespaces
+        namespaces:
+        - default
+        - app-namespace
+
+  # Admin server configuration
+  admin:
+    # Web console is always enabled and provides access to:
+    # - Server status and component information
+    # - Configuration dump and EnvoyGateway settings
+    # - Performance metrics and statistics
+
+    # Enable pprof endpoints for debugging (default: false)
+    # Only enable in development/debugging scenarios
+    enablePprof: true
+
+    # Enable config dump in logs (default: false)
+    enableDumpConfig: false
+
+    # Admin server address configuration
+    address:
+      # Host to bind the admin server (default: 127.0.0.1)
+      # Use 127.0.0.1 for localhost-only access (recommended for security)
+      # Use 0.0.0.0 to allow external access (use with caution)
+      host: "127.0.0.1"
+
+      # Port for the admin server (default: 19000)
+      port: 19000
+
+  # Logging configuration
+  logging:
+    level:
+      default: info
+
+  # Telemetry configuration
+  telemetry:
+    metrics:
+      prometheus:
+        disable: false
+      sinks:
+      - type: OpenTelemetry
+        openTelemetry:
+          host: otel-collector.monitoring.svc.cluster.local
+          port: 4317
+          protocol: grpc
+
+---
+# Example: Production configuration with console disabled
+apiVersion: gateway.envoyproxy.io/v1alpha1
+kind: EnvoyGateway
+metadata:
+  name: envoy-gateway-production
+  namespace: envoy-gateway-system
+spec:
+  gateway:
+    controllerName: gateway.envoyproxy.io/gatewayclass-controller
+
+  provider:
+    type: Kubernetes
+    kubernetes:
+      watch:
+        type: Namespaces
+        namespaces:
+        - production
+        - staging
+
+  # Production admin configuration - more restrictive
+  admin:
+    # Disable pprof in production
+    enablePprof: false
+
+    # Disable config dump in logs
+    enableDumpConfig: false
+
+    address:
+      # Localhost only for security
+      host: "127.0.0.1"
+      port: 19000
+
+  logging:
+    level:
+      default: warn
+      # Enable debug logging for specific components if needed
+      # gateway-api: debug
+      # xds-translator: debug
+
+---
+# Example: Development configuration with all debugging features
+apiVersion: gateway.envoyproxy.io/v1alpha1
+kind: EnvoyGateway
+metadata:
+  name: envoy-gateway-development
+  namespace: envoy-gateway-system
+spec:
+  gateway:
+    controllerName: gateway.envoyproxy.io/gatewayclass-controller
+
+  provider:
+    type: Kubernetes
+    kubernetes:
+      watch:
+        type: Namespaces
+        namespaces:
+        - default
+        - development
+        - testing
+
+  # Development admin configuration - all features enabled
+  admin:
+    # Enable pprof for debugging
+    enablePprof: true
+
+    # Enable config dump for troubleshooting
+    enableDumpConfig: true
+
+    address:
+      # Allow external access for development (use with caution)
+      host: "0.0.0.0"
+      port: 19000
+
+  logging:
+    level:
+      default: debug
+      # Detailed logging for all components
+      gateway-api: debug
+      xds-translator: debug
+      xds-server: debug
+      infrastructure: debug
+
+  telemetry:
+    metrics:
+      prometheus:
+        disable: false
+      sinks:
+      - type: OpenTelemetry
+        openTelemetry:
+          host: jaeger-collector.observability.svc.cluster.local
+          port: 4317
+          protocol: grpc
diff --git a/examples/extension-server/config/extension-manager-with-listeners-routes.yaml b/examples/extension-server/config/extension-manager-with-listeners-routes.yaml
new file mode 100644
index 000000000..28438d94b
--- /dev/null
+++ b/examples/extension-server/config/extension-manager-with-listeners-routes.yaml
@@ -0,0 +1,41 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: envoy-gateway-config
+  namespace: envoy-gateway-system
+data:
+  envoy-gateway.yaml: |
+    apiVersion: gateway.envoyproxy.io/v1alpha1
+    kind: EnvoyGateway
+    provider:
+      type: Kubernetes
+    gateway:
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+    extensionManager:
+      # Envoy Gateway will watch these resource kinds and use them as extension policies
+      # which can be attached to Gateway resources.
+      policyResources:
+      - group: example.extensions.io
+        version: v1alpha1
+        kind: ListenerContextExample
+      hooks:
+        # The type of hooks that should be invoked
+        xdsTranslator:
+          post:
+          - HTTPListener
+          - Translation
+          # Enable listeners and routes in PostTranslateModifyHook
+          # This allows the extension server to receive and modify all four resource types:
+          # clusters, secrets, listeners, and routes
+          # Default: false for listeners and routes (for backward compatibility)
+          # Default: true for clusters and secrets (for backward compatibility)
+          translation:
+            listener:
+              includeAll: true
+            route:
+              includeAll: true
+      service:
+        # The service that is hosting the extension server
+        fqdn:
+          hostname: extension-server.envoy-gateway-system.svc.cluster.local
+          port: 5005
diff --git a/examples/extension-server/go.mod b/examples/extension-server/go.mod
index d2bff4d7a..9b72dae0a 100644
--- a/examples/extension-server/go.mod
+++ b/examples/extension-server/go.mod
@@ -34,7 +34,7 @@ require (
 	github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
 	github.com/russross/blackfriday/v2 v2.1.0 // indirect
 	github.com/spf13/cobra v1.9.1 // indirect
-	github.com/spf13/pflag v1.0.6 // indirect
+	github.com/spf13/pflag v1.0.7 // indirect
 	github.com/x448/float16 v0.8.4 // indirect
 	github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
 	golang.org/x/mod v0.25.0 // indirect
diff --git a/examples/extension-server/go.sum b/examples/extension-server/go.sum
index c76aafe2b..8deddcd82 100644
--- a/examples/extension-server/go.sum
+++ b/examples/extension-server/go.sum
@@ -79,8 +79,9 @@ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf
 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
 github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
-github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
 github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M=
+github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
diff --git a/examples/preserve-case-backend/go.mod b/examples/preserve-case-backend/go.mod
index 816cdc0a0..2e6b968d8 100644
--- a/examples/preserve-case-backend/go.mod
+++ b/examples/preserve-case-backend/go.mod
@@ -2,7 +2,7 @@ module github.com/envoyproxy/gateway-preserve-case-backend
 
 go 1.24.4
 
-require github.com/valyala/fasthttp v1.63.0
+require github.com/valyala/fasthttp v1.64.0
 
 require (
 	github.com/andybalholm/brotli v1.2.0 // indirect
diff --git a/examples/preserve-case-backend/go.sum b/examples/preserve-case-backend/go.sum
index 277646d01..3d992599b 100644
--- a/examples/preserve-case-backend/go.sum
+++ b/examples/preserve-case-backend/go.sum
@@ -4,7 +4,7 @@ github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zt
 github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
 github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
 github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/valyala/fasthttp v1.63.0 h1:DisIL8OjB7ul2d7cBaMRcKTQDYnrGy56R4FCiuDP0Ns=
-github.com/valyala/fasthttp v1.63.0/go.mod h1:REc4IeW+cAEyLrRPa5A81MIjvz0QE1laoTX2EaPHKJM=
+github.com/valyala/fasthttp v1.64.0 h1:QBygLLQmiAyiXuRhthf0tuRkqAFcrC42dckN2S+N3og=
+github.com/valyala/fasthttp v1.64.0/go.mod h1:dGmFxwkWXSK0NbOSJuF7AMVzU+lkHz0wQVvVITv2UQA=
 github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
 github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
diff --git a/go.mod b/go.mod
index 967084f8e..922760859 100644
--- a/go.mod
+++ b/go.mod
@@ -10,10 +10,10 @@ require (
 	github.com/avast/retry-go v3.0.0+incompatible
 	github.com/cenkalti/backoff/v4 v4.3.0
 	github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f
-	github.com/containers/image/v5 v5.35.0
+	github.com/containers/image/v5 v5.36.0
 	github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
 	github.com/docker/cli v28.3.2+incompatible
-	github.com/docker/docker v28.2.2+incompatible
+	github.com/docker/docker v28.3.2+incompatible
 	github.com/dominikbraun/graph v0.23.0
 	github.com/envoyproxy/go-control-plane v0.13.5-0.20250622153809-434b6986176d
 	github.com/envoyproxy/go-control-plane/contrib v1.32.5-0.20250430092421-68a532e11403
@@ -43,7 +43,7 @@ require (
 	github.com/replicatedhq/troubleshoot v0.120.3
 	github.com/shopspring/decimal v1.4.0
 	github.com/spf13/cobra v1.9.1
-	github.com/spf13/pflag v1.0.6
+	github.com/spf13/pflag v1.0.7
 	github.com/stretchr/testify v1.10.0
 	github.com/telepresenceio/watchable v0.0.0-20220726211108-9bb86f92afa7
 	github.com/tetratelabs/func-e v1.1.5
@@ -104,7 +104,7 @@ require (
 	cel.dev/expr v0.24.0 // indirect
 	connectrpc.com/connect v1.18.1 // indirect
 	connectrpc.com/otelconnect v0.7.2 // indirect
-	dario.cat/mergo v1.0.1 // indirect
+	dario.cat/mergo v1.0.2 // indirect
 	filippo.io/edwards25519 v1.1.0 // indirect
 	fortio.org/cli v1.10.0 // indirect
 	fortio.org/dflag v1.8.1 // indirect
@@ -130,7 +130,7 @@ require (
 	github.com/Masterminds/sprig/v3 v3.3.0 // indirect
 	github.com/Masterminds/squirrel v1.5.4 // indirect
 	github.com/Microsoft/go-winio v0.6.2 // indirect
-	github.com/Microsoft/hcsshim v0.12.9 // indirect
+	github.com/Microsoft/hcsshim v0.13.0 // indirect
 	github.com/NYTimes/gziphandler v1.1.1 // indirect
 	github.com/OpenPeeDeeP/depguard/v2 v2.2.1 // indirect
 	github.com/alecthomas/go-check-sumtype v0.3.1 // indirect
@@ -183,7 +183,7 @@ require (
 	github.com/containerd/typeurl/v2 v2.2.3 // indirect
 	github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 // indirect
 	github.com/containers/ocicrypt v1.2.1 // indirect
-	github.com/containers/storage v1.58.0 // indirect
+	github.com/containers/storage v1.59.0 // indirect
 	github.com/coreos/go-semver v0.3.1 // indirect
 	github.com/coreos/go-systemd/v22 v22.5.0 // indirect
 	github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
@@ -367,7 +367,6 @@ require (
 	github.com/opencontainers/image-spec v1.1.1 // indirect
 	github.com/opencontainers/runtime-spec v1.2.1 // indirect
 	github.com/opencontainers/selinux v1.12.0 // indirect
-	github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f // indirect
 	github.com/pelletier/go-toml v1.9.5 // indirect
 	github.com/pelletier/go-toml/v2 v2.2.3 // indirect
 	github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
@@ -394,7 +393,7 @@ require (
 	github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect
 	github.com/sagikazarmark/locafero v0.7.0 // indirect
 	github.com/sanposhiho/wastedassign/v2 v2.1.0 // indirect
-	github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 // indirect
+	github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
 	github.com/sashamelentyev/interfacebloat v1.1.0 // indirect
 	github.com/sashamelentyev/usestdlibvars v1.28.0 // indirect
 	github.com/securego/gosec/v2 v2.22.2 // indirect
@@ -419,7 +418,7 @@ require (
 	github.com/stretchr/objx v0.5.2 // indirect
 	github.com/subosito/gotenv v1.6.0 // indirect
 	github.com/sylabs/sif/v2 v2.21.1 // indirect
-	github.com/tchap/go-patricia/v2 v2.3.2 // indirect
+	github.com/tchap/go-patricia/v2 v2.3.3 // indirect
 	github.com/tdakkota/asciicheck v0.4.1 // indirect
 	github.com/tetafro/godot v1.5.0 // indirect
 	github.com/tetratelabs/wazero v1.9.0 // indirect
@@ -482,7 +481,7 @@ require (
 	golang.org/x/sys v0.34.0 // indirect
 	golang.org/x/term v0.33.0 // indirect
 	golang.org/x/text v0.27.0 // indirect
-	golang.org/x/time v0.10.0 // indirect
+	golang.org/x/time v0.11.0 // indirect
 	golang.org/x/tools v0.34.0 // indirect
 	golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
 	google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
diff --git a/go.sum b/go.sum
index 2f93dff1b..9e54f0493 100644
--- a/go.sum
+++ b/go.sum
@@ -37,8 +37,8 @@ connectrpc.com/connect v1.18.1 h1:PAg7CjSAGvscaf6YZKUefjoih5Z/qYkyaTrBW8xvYPw=
 connectrpc.com/connect v1.18.1/go.mod h1:0292hj1rnx8oFrStN7cB4jjVBeqs+Yx5yDIC2prWDO8=
 connectrpc.com/otelconnect v0.7.2 h1:WlnwFzaW64dN06JXU+hREPUGeEzpz3Acz2ACOmN8cMI=
 connectrpc.com/otelconnect v0.7.2/go.mod h1:JS7XUKfuJs2adhCnXhNHPHLz6oAaZniCJdSF00OZSew=
-dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
-dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
+dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
+dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
 filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
 filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
 fortio.org/assert v1.2.1 h1:48I39urpeDj65RP1KguF7akCjILNeu6vICiYMEysR7Q=
@@ -61,8 +61,6 @@ fortio.org/struct2env v0.4.2 h1:Xh7HlS9vf2ZdRvRfmoGIasNDO8t6z36M713utVODRCo=
 fortio.org/struct2env v0.4.2/go.mod h1:lENUe70UwA1zDUCX+8AsO663QCFqYaprk5lnPhjD410=
 fortio.org/version v1.0.4 h1:FWUMpJ+hVTNc4RhvvOJzb0xesrlRmG/a+D6bjbQ4+5U=
 fortio.org/version v1.0.4/go.mod h1:2JQp9Ax+tm6QKiGuzR5nJY63kFeANcgrZ0osoQFDVm0=
-github.com/14rcole/gopopulate v0.0.0-20180821133914-b175b219e774 h1:SCbEWT58NSt7d2mcFdvxC9uyrdcTfvBbPLThhkDmXzg=
-github.com/14rcole/gopopulate v0.0.0-20180821133914-b175b219e774/go.mod h1:6/0dYRLLXyJjbkIPeeGyoJ/eKOSI0eU6eTlCBYibgd0=
 github.com/4meepo/tagalign v1.4.2 h1:0hcLHPGMjDyM1gHG58cS73aQF8J4TdVR96TZViorO9E=
 github.com/4meepo/tagalign v1.4.2/go.mod h1:+p4aMyFM+ra7nb41CnFG6aSDXqRxU/w1VQqScKqDARI=
 github.com/Abirdcfly/dupword v0.1.3 h1:9Pa1NuAsZvpFPi9Pqkd93I7LIYRURj+A//dFd5tgBeE=
@@ -124,8 +122,8 @@ github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8
 github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10=
 github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
 github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
-github.com/Microsoft/hcsshim v0.12.9 h1:2zJy5KA+l0loz1HzEGqyNnjd3fyZA31ZBCGKacp6lLg=
-github.com/Microsoft/hcsshim v0.12.9/go.mod h1:fJ0gkFAna6ukt0bLdKB8djt4XIJhF/vEPuoIWYVvZ8Y=
+github.com/Microsoft/hcsshim v0.13.0 h1:/BcXOiS6Qi7N9XqUcv27vkIuVOkBEcWstd2pMlWSeaA=
+github.com/Microsoft/hcsshim v0.13.0/go.mod h1:9KWJ/8DgU+QzYGupX4tzMhRQE8h6w90lH6HAaclpEok=
 github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
 github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
 github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
@@ -266,14 +264,14 @@ github.com/containerd/stargz-snapshotter/estargz v0.16.3 h1:7evrXtoh1mSbGj/pfRcc
 github.com/containerd/stargz-snapshotter/estargz v0.16.3/go.mod h1:uyr4BfYfOj3G9WBVE8cOlQmXAbPN9VEQpBBeJIuOipU=
 github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40=
 github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk=
-github.com/containers/image/v5 v5.35.0 h1:T1OeyWp3GjObt47bchwD9cqiaAm/u4O4R9hIWdrdrP8=
-github.com/containers/image/v5 v5.35.0/go.mod h1:8vTsgb+1gKcBL7cnjyNOInhJQfTUQjJoO2WWkKDoebM=
+github.com/containers/image/v5 v5.36.0 h1:Zh+xFcLjRmicnOT5AFPHH/xj+e3s9ojDN/9X2Kx1+Jo=
+github.com/containers/image/v5 v5.36.0/go.mod h1:VZ6cyDHbxZoOt4dklUJ+WNEH9FrgSgfH3qUBYKFlcT0=
 github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 h1:Qzk5C6cYglewc+UyGf6lc8Mj2UaPTHy/iF2De0/77CA=
 github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY=
 github.com/containers/ocicrypt v1.2.1 h1:0qIOTT9DoYwcKmxSt8QJt+VzMY18onl9jUXsxpVhSmM=
 github.com/containers/ocicrypt v1.2.1/go.mod h1:aD0AAqfMp0MtwqWgHM1bUwe1anx0VazI108CRrSKINQ=
-github.com/containers/storage v1.58.0 h1:Q7SyyCCjqgT3wYNgRNIL8o/wUS92heIj2/cc8Sewvcc=
-github.com/containers/storage v1.58.0/go.mod h1:w7Jl6oG+OpeLGLzlLyOZPkmUso40kjpzgrHUk5tyBlo=
+github.com/containers/storage v1.59.0 h1:r2pYSTzQpJTROZbjJQ54Z0GT+rUC6+wHzlSY8yPjsXk=
+github.com/containers/storage v1.59.0/go.mod h1:KoAYHnAjP3/cTsRS+mmWZGkufSY2GACiKQ4V3ZLQnR0=
 github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
 github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
 github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
@@ -330,8 +328,8 @@ github.com/docker/cli v28.3.2+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvM
 github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
 github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker v28.2.2+incompatible h1:CjwRSksz8Yo4+RmQ339Dp/D2tGO5JxwYeqtMOEe0LDw=
-github.com/docker/docker v28.2.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v28.3.2+incompatible h1:wn66NJ6pWB1vBZIilP8G3qQPqHy5XymfYn5vsqeA5oA=
+github.com/docker/docker v28.3.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
 github.com/docker/docker-credential-helpers v0.9.3 h1:gAm/VtF9wgqJMoxzT3Gj5p4AqIjCBS4wrsOh9yRqcz8=
 github.com/docker/docker-credential-helpers v0.9.3/go.mod h1:x+4Gbw9aGmChi3qTLZj8Dfn0TD20M/fuWy0E5+WDeCo=
 github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
@@ -877,8 +875,8 @@ github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m
 github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
 github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
 github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
-github.com/mattn/go-sqlite3 v1.14.27 h1:drZCnuvf37yPfs95E5jd9s3XhdVWLal+6BOK6qrv6IU=
-github.com/mattn/go-sqlite3 v1.14.27/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
+github.com/mattn/go-sqlite3 v1.14.28 h1:ThEiQrnbtumT+QMknw63Befp/ce/nUPgBPMlRFEum7A=
+github.com/mattn/go-sqlite3 v1.14.28/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
 github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/g=
 github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw=
@@ -993,8 +991,6 @@ github.com/opencontainers/runtime-spec v1.2.1 h1:S4k4ryNgEpxW1dzyqffOmhI1BHYcjzU
 github.com/opencontainers/runtime-spec v1.2.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
 github.com/opencontainers/selinux v1.12.0 h1:6n5JV4Cf+4y0KNXW48TLj5DwfXpvWlxXplUkdTrmPb8=
 github.com/opencontainers/selinux v1.12.0/go.mod h1:BTPX+bjVbWGXw7ZZWUbdENt8w0htPSrlgOOysQaU62U=
-github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f h1:/UDgs8FGMqwnHagNDPGOlts35QkhAZ8by3DR7nMih7M=
-github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f/go.mod h1:J6OG6YJVEWopen4avK3VNQSnALmmjvniMmni/YFYAwc=
 github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
 github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU=
 github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w=
@@ -1102,8 +1098,8 @@ github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsF
 github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k=
 github.com/sanposhiho/wastedassign/v2 v2.1.0 h1:crurBF7fJKIORrV85u9UUpePDYGWnwvv3+A96WvwXT0=
 github.com/sanposhiho/wastedassign/v2 v2.1.0/go.mod h1:+oSmSC+9bQ+VUAxA66nBb0Z7N8CK7mscKTDYC6aIek4=
-github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 h1:PKK9DyHxif4LZo+uQSgXNqs0jj5+xZwwfKHgph2lxBw=
-github.com/santhosh-tekuri/jsonschema/v6 v6.0.1/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
+github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ=
+github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
 github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw=
 github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ=
 github.com/sashamelentyev/usestdlibvars v1.28.0 h1:jZnudE2zKCtYlGzLVreNp5pmCdOxXUzwsMDBkR21cyQ=
@@ -1168,8 +1164,9 @@ github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzu
 github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
 github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M=
+github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
 github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
 github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4=
@@ -1205,8 +1202,8 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8
 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
 github.com/sylabs/sif/v2 v2.21.1 h1:GZ0b5//AFAqJEChd8wHV/uSKx/l1iuGYwjR8nx+4wPI=
 github.com/sylabs/sif/v2 v2.21.1/go.mod h1:YoqEGQnb5x/ItV653bawXHZJOXQaEWpGwHsSD3YePJI=
-github.com/tchap/go-patricia/v2 v2.3.2 h1:xTHFutuitO2zqKAQ5rCROYgUb7Or/+IC3fts9/Yc7nM=
-github.com/tchap/go-patricia/v2 v2.3.2/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k=
+github.com/tchap/go-patricia/v2 v2.3.3 h1:xfNEsODumaEcCcY3gI0hYPZ/PcpVv5ju6RMAhgwZDDc=
+github.com/tchap/go-patricia/v2 v2.3.3/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k=
 github.com/tdakkota/asciicheck v0.4.1 h1:bm0tbcmi0jezRA2b5kg4ozmMuGAFotKI3RZfrhfovg8=
 github.com/tdakkota/asciicheck v0.4.1/go.mod h1:0k7M3rCfRXb0Z6bwgvkEIMleKH3kXNz9UqJ9Xuqopr8=
 github.com/telepresenceio/telepresence/rpc/v2 v2.6.8 h1:q5V85LBT9bA/c4YPa/kMvJGyKZDgBPJTftlAMqJx7j4=
@@ -1319,8 +1316,8 @@ go-simpler.org/sloglint v0.9.0 h1:/40NQtjRx9txvsB/RN022KsUJU+zaaSb/9q9BSefSrE=
 go-simpler.org/sloglint v0.9.0/go.mod h1:G/OrAF6uxj48sHahCzrbarVMptL2kjWTaUeC8+fOGww=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.4.0 h1:TU77id3TnN/zKr7CO/uk+fBCwF2jGcMuw2B/FMAzYIk=
-go.etcd.io/bbolt v1.4.0/go.mod h1:AsD+OCi/qPN1giOX1aiLAha3o1U8rAz65bvN4j0sRuk=
+go.etcd.io/bbolt v1.4.2 h1:IrUHp260R8c+zYx/Tm8QZr04CX+qWS5PGfPdevhdm1I=
+go.etcd.io/bbolt v1.4.2/go.mod h1:Is8rSHO/b4f3XigBC0lL0+4FwAQv3HXEEIgFMuKHceM=
 go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 h1:VcrIfasaLFkyjk6KNlXQSzO+B0fZcnECiDrKJsfxka0=
 go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
 go.etcd.io/etcd/api/v3 v3.5.21 h1:A6O2/JDb3tvHhiIz3xf9nJ7REHvtEFJJ3veW3FbCnS8=
@@ -1377,8 +1374,8 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 h1:dNzwXjZKpMpE2JhmO+9
 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0/go.mod h1:90PoxvaEB5n6AOdZvi+yWJQoE95U8Dhhw2bSyRqnTD0=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0 h1:wpMfgF8E1rkrT1Z6meFh1NDtownE9Ii3n3X2GJYjsaU=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0/go.mod h1:wAy0T/dUbs468uOlkT31xjvqQgEVXv58BRFWEgn5v/0=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 h1:xJ2qHD0C1BeYVTLLR9sX12+Qb95kfeD/byKj6Ky1pXg=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0/go.mod h1:u5BF1xyjstDowA1R5QAO9JHzqK+ublenEW/dyqTjBVk=
 go.opentelemetry.io/otel/exporters/prometheus v0.59.0 h1:HHf+wKS6o5++XZhS98wvILrLVgHxjA/AMjqHKes+uzo=
 go.opentelemetry.io/otel/exporters/prometheus v0.59.0/go.mod h1:R8GpRXTZrqvXHDEGVH5bF6+JqAZcK8PjJcZ5nGhEWiE=
 go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.8.0 h1:CHXNXwfKWfzS65yrlB2PVds1IBZcdsX8Vepy9of0iRU=
@@ -1590,8 +1587,8 @@ golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
 golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4=
-golang.org/x/time v0.10.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0=
+golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
 golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
diff --git a/internal/admin/console/api.go b/internal/admin/console/api.go
new file mode 100644
index 000000000..b68409e22
--- /dev/null
+++ b/internal/admin/console/api.go
@@ -0,0 +1,561 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package console
+
+import (
+	"encoding/json"
+	"net/http"
+	"runtime"
+	"time"
+
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+	"github.com/envoyproxy/gateway/internal/cmd/version"
+)
+
+// SystemInfo represents basic system information
+type SystemInfo struct {
+	Version   string    `json:"version"`
+	StartTime time.Time `json:"startTime"`
+	Uptime    string    `json:"uptime"`
+	GoVersion string    `json:"goVersion"`
+	Platform  string    `json:"platform"`
+	Timestamp time.Time `json:"timestamp"`
+}
+
+// ServerInfo represents server status information
+type ServerInfo struct {
+	State              string            `json:"state"`
+	Version            string            `json:"version"`
+	Uptime             string            `json:"uptime"`
+	Components         []ComponentStatus `json:"components"`
+	EnvoyGatewayConfig interface{}       `json:"envoyGatewayConfig"`
+	LastUpdated        time.Time         `json:"lastUpdated"`
+}
+
+// ComponentStatus represents the status of a system component
+type ComponentStatus struct {
+	Name    string `json:"name"`
+	Status  string `json:"status"`
+	Message string `json:"message"`
+}
+
+// ConfigDumpInfo represents configuration dump information
+type ConfigDumpInfo struct {
+	// Gateway API Core Resources
+	Gateways     []ResourceSummary `json:"gateways"`
+	HTTPRoutes   []ResourceSummary `json:"httpRoutes"`
+	GRPCRoutes   []ResourceSummary `json:"grpcRoutes"`
+	TLSRoutes    []ResourceSummary `json:"tlsRoutes"`
+	TCPRoutes    []ResourceSummary `json:"tcpRoutes"`
+	UDPRoutes    []ResourceSummary `json:"udpRoutes"`
+	GatewayClass []ResourceSummary `json:"gatewayClass"`
+
+	// Envoy Gateway Policies
+	ClientTrafficPolicies  []ResourceSummary `json:"clientTrafficPolicies"`
+	BackendTrafficPolicies []ResourceSummary `json:"backendTrafficPolicies"`
+	BackendTLSPolicies     []ResourceSummary `json:"backendTLSPolicies"`
+	SecurityPolicies       []ResourceSummary `json:"securityPolicies"`
+	EnvoyPatchPolicies     []ResourceSummary `json:"envoyPatchPolicies"`
+	EnvoyExtensionPolicies []ResourceSummary `json:"envoyExtensionPolicies"`
+
+	// Kubernetes Resources
+	Services       []ResourceSummary `json:"services"`
+	Secrets        []ResourceSummary `json:"secrets"`
+	ConfigMaps     []ResourceSummary `json:"configMaps"`
+	Namespaces     []ResourceSummary `json:"namespaces"`
+	EndpointSlices []ResourceSummary `json:"endpointSlices"`
+
+	// Other Resources
+	ReferenceGrants  []ResourceSummary `json:"referenceGrants"`
+	HTTPRouteFilters []ResourceSummary `json:"httpRouteFilters"`
+	EnvoyProxies     []ResourceSummary `json:"envoyProxies"`
+	Backends         []ResourceSummary `json:"backends"`
+	ServiceImports   []ResourceSummary `json:"serviceImports"`
+
+	LastUpdated time.Time `json:"lastUpdated"`
+}
+
+// ResourceSummary represents a simplified summary of a Kubernetes resource
+type ResourceSummary struct {
+	Name      string `json:"name"`
+	Namespace string `json:"namespace"`
+}
+
+var startTime = time.Now()
+
+// handleAPIInfo returns basic system information
+func (h *Handler) handleAPIInfo(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	uptime := time.Since(startTime)
+	versionInfo := version.Get()
+	info := SystemInfo{
+		Version:   versionInfo.EnvoyGatewayVersion,
+		StartTime: startTime,
+		Uptime:    uptime.String(),
+		GoVersion: runtime.Version(),
+		Platform:  runtime.GOOS + "/" + runtime.GOARCH,
+		Timestamp: time.Now(),
+	}
+
+	w.Header().Set("Content-Type", "application/json")
+	if err := json.NewEncoder(w).Encode(info); err != nil {
+		http.Error(w, "Failed to encode response", http.StatusInternalServerError)
+		return
+	}
+}
+
+// handleAPIServerInfo returns server status information
+func (h *Handler) handleAPIServerInfo(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	uptime := time.Since(startTime)
+	versionInfo := version.Get()
+
+	// Since Admin Server starts last, if we can respond, all components are healthy
+	// This reflects the actual startup order in server.go
+	components := []ComponentStatus{
+		{
+			Name:    "Provider Service",
+			Status:  "Running",
+			Message: "Fetches resources from configured provider and publishes them",
+		},
+		{
+			Name:    "GatewayAPI Translator",
+			Status:  "Running",
+			Message: "Translates provider resources to xDS IR and infra IR",
+		},
+		{
+			Name:    "XDS Translator",
+			Status:  "Running",
+			Message: "Translates xDS IR into xDS resources and computes policy statuses",
+		},
+		{
+			Name:    "Infrastructure Manager",
+			Status:  "Running",
+			Message: "Translates infra IR into Envoy Proxy infrastructure resources",
+		},
+	}
+
+	info := ServerInfo{
+		State:              "Running",
+		Version:            versionInfo.EnvoyGatewayVersion,
+		Uptime:             uptime.String(),
+		Components:         components,
+		EnvoyGatewayConfig: h.cfg.EnvoyGateway,
+		LastUpdated:        time.Now(),
+	}
+
+	w.Header().Set("Content-Type", "application/json")
+	if err := json.NewEncoder(w).Encode(info); err != nil {
+		http.Error(w, "Failed to encode response", http.StatusInternalServerError)
+		return
+	}
+}
+
+// handleAPIConfigDump returns configuration dump information
+func (h *Handler) handleAPIConfigDump(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	// Load provider resources from watchable
+	configDump := h.loadConfigDump()
+
+	w.Header().Set("Content-Type", "application/json")
+	if err := json.NewEncoder(w).Encode(configDump); err != nil {
+		http.Error(w, "Failed to encode response", http.StatusInternalServerError)
+		return
+	}
+}
+
+// loadConfigDump loads configuration data from provider resources
+func (h *Handler) loadConfigDump() ConfigDumpInfo {
+	configDump := ConfigDumpInfo{
+		// Gateway API Core Resources
+		Gateways:     []ResourceSummary{},
+		HTTPRoutes:   []ResourceSummary{},
+		GRPCRoutes:   []ResourceSummary{},
+		TLSRoutes:    []ResourceSummary{},
+		TCPRoutes:    []ResourceSummary{},
+		UDPRoutes:    []ResourceSummary{},
+		GatewayClass: []ResourceSummary{},
+
+		// Envoy Gateway Policies
+		ClientTrafficPolicies:  []ResourceSummary{},
+		BackendTrafficPolicies: []ResourceSummary{},
+		BackendTLSPolicies:     []ResourceSummary{},
+		SecurityPolicies:       []ResourceSummary{},
+		EnvoyPatchPolicies:     []ResourceSummary{},
+		EnvoyExtensionPolicies: []ResourceSummary{},
+
+		// Kubernetes Resources
+		Services:       []ResourceSummary{},
+		Secrets:        []ResourceSummary{},
+		ConfigMaps:     []ResourceSummary{},
+		Namespaces:     []ResourceSummary{},
+		EndpointSlices: []ResourceSummary{},
+
+		// Other Resources
+		ReferenceGrants:  []ResourceSummary{},
+		HTTPRouteFilters: []ResourceSummary{},
+		EnvoyProxies:     []ResourceSummary{},
+		Backends:         []ResourceSummary{},
+		ServiceImports:   []ResourceSummary{},
+
+		LastUpdated: time.Now(),
+	}
+
+	if h.providerResources != nil {
+		// Load controller resources directly from the provider resources
+		controllerResources := h.providerResources.GatewayAPIResources.LoadAll()
+
+		for _, resources := range controllerResources {
+			if resources == nil {
+				continue
+			}
+
+			for _, res := range *resources {
+				if res == nil {
+					continue
+				}
+
+				// Process GatewayClass
+				if res.GatewayClass != nil {
+					configDump.GatewayClass = append(configDump.GatewayClass, ResourceSummary{
+						Name:      res.GatewayClass.Name,
+						Namespace: "", // GatewayClass is cluster-scoped
+					})
+				}
+
+				// Process Gateways
+				for _, gateway := range res.Gateways {
+					if gateway != nil {
+						configDump.Gateways = append(configDump.Gateways, ResourceSummary{
+							Name:      gateway.Name,
+							Namespace: gateway.Namespace,
+						})
+					}
+				}
+
+				// Process HTTPRoutes
+				for _, httpRoute := range res.HTTPRoutes {
+					if httpRoute != nil {
+						configDump.HTTPRoutes = append(configDump.HTTPRoutes, ResourceSummary{
+							Name:      httpRoute.Name,
+							Namespace: httpRoute.Namespace,
+						})
+					}
+				}
+
+				// Process GRPCRoutes
+				for _, grpcRoute := range res.GRPCRoutes {
+					if grpcRoute != nil {
+						configDump.GRPCRoutes = append(configDump.GRPCRoutes, ResourceSummary{
+							Name:      grpcRoute.Name,
+							Namespace: grpcRoute.Namespace,
+						})
+					}
+				}
+
+				// Process TLSRoutes
+				for _, tlsRoute := range res.TLSRoutes {
+					if tlsRoute != nil {
+						configDump.TLSRoutes = append(configDump.TLSRoutes, ResourceSummary{
+							Name:      tlsRoute.Name,
+							Namespace: tlsRoute.Namespace,
+						})
+					}
+				}
+
+				// Process TCPRoutes
+				for _, tcpRoute := range res.TCPRoutes {
+					if tcpRoute != nil {
+						configDump.TCPRoutes = append(configDump.TCPRoutes, ResourceSummary{
+							Name:      tcpRoute.Name,
+							Namespace: tcpRoute.Namespace,
+						})
+					}
+				}
+
+				// Process UDPRoutes
+				for _, udpRoute := range res.UDPRoutes {
+					if udpRoute != nil {
+						configDump.UDPRoutes = append(configDump.UDPRoutes, ResourceSummary{
+							Name:      udpRoute.Name,
+							Namespace: udpRoute.Namespace,
+						})
+					}
+				}
+
+				// Process Envoy Gateway Policies
+				for _, policy := range res.ClientTrafficPolicies {
+					if policy != nil {
+						configDump.ClientTrafficPolicies = append(configDump.ClientTrafficPolicies, ResourceSummary{
+							Name:      policy.Name,
+							Namespace: policy.Namespace,
+						})
+					}
+				}
+
+				for _, policy := range res.BackendTrafficPolicies {
+					if policy != nil {
+						configDump.BackendTrafficPolicies = append(configDump.BackendTrafficPolicies, ResourceSummary{
+							Name:      policy.Name,
+							Namespace: policy.Namespace,
+						})
+					}
+				}
+
+				for _, policy := range res.BackendTLSPolicies {
+					if policy != nil {
+						configDump.BackendTLSPolicies = append(configDump.BackendTLSPolicies, ResourceSummary{
+							Name:      policy.Name,
+							Namespace: policy.Namespace,
+						})
+					}
+				}
+
+				for _, policy := range res.SecurityPolicies {
+					if policy != nil {
+						configDump.SecurityPolicies = append(configDump.SecurityPolicies, ResourceSummary{
+							Name:      policy.Name,
+							Namespace: policy.Namespace,
+						})
+					}
+				}
+
+				for _, policy := range res.EnvoyPatchPolicies {
+					if policy != nil {
+						configDump.EnvoyPatchPolicies = append(configDump.EnvoyPatchPolicies, ResourceSummary{
+							Name:      policy.Name,
+							Namespace: policy.Namespace,
+						})
+					}
+				}
+
+				for _, policy := range res.EnvoyExtensionPolicies {
+					if policy != nil {
+						configDump.EnvoyExtensionPolicies = append(configDump.EnvoyExtensionPolicies, ResourceSummary{
+							Name:      policy.Name,
+							Namespace: policy.Namespace,
+						})
+					}
+				}
+
+				// Process Kubernetes Resources
+				for _, service := range res.Services {
+					if service != nil {
+						configDump.Services = append(configDump.Services, ResourceSummary{
+							Name:      service.Name,
+							Namespace: service.Namespace,
+						})
+					}
+				}
+
+				for _, secret := range res.Secrets {
+					if secret != nil {
+						configDump.Secrets = append(configDump.Secrets, ResourceSummary{
+							Name:      secret.Name,
+							Namespace: secret.Namespace,
+						})
+					}
+				}
+
+				for _, configMap := range res.ConfigMaps {
+					if configMap != nil {
+						configDump.ConfigMaps = append(configDump.ConfigMaps, ResourceSummary{
+							Name:      configMap.Name,
+							Namespace: configMap.Namespace,
+						})
+					}
+				}
+
+				for _, namespace := range res.Namespaces {
+					if namespace != nil {
+						configDump.Namespaces = append(configDump.Namespaces, ResourceSummary{
+							Name:      namespace.Name,
+							Namespace: "", // Namespaces are cluster-scoped
+						})
+					}
+				}
+
+				for _, endpointSlice := range res.EndpointSlices {
+					if endpointSlice != nil {
+						configDump.EndpointSlices = append(configDump.EndpointSlices, ResourceSummary{
+							Name:      endpointSlice.Name,
+							Namespace: endpointSlice.Namespace,
+						})
+					}
+				}
+
+				// Process Other Resources
+				for _, refGrant := range res.ReferenceGrants {
+					if refGrant != nil {
+						configDump.ReferenceGrants = append(configDump.ReferenceGrants, ResourceSummary{
+							Name:      refGrant.Name,
+							Namespace: refGrant.Namespace,
+						})
+					}
+				}
+
+				for _, filter := range res.HTTPRouteFilters {
+					if filter != nil {
+						configDump.HTTPRouteFilters = append(configDump.HTTPRouteFilters, ResourceSummary{
+							Name:      filter.Name,
+							Namespace: filter.Namespace,
+						})
+					}
+				}
+
+				// Process EnvoyProxy for GatewayClass
+				if res.EnvoyProxyForGatewayClass != nil {
+					configDump.EnvoyProxies = append(configDump.EnvoyProxies, ResourceSummary{
+						Name:      res.EnvoyProxyForGatewayClass.Name,
+						Namespace: res.EnvoyProxyForGatewayClass.Namespace,
+					})
+				}
+
+				// Process EnvoyProxies for Gateways
+				for _, proxy := range res.EnvoyProxiesForGateways {
+					if proxy != nil {
+						configDump.EnvoyProxies = append(configDump.EnvoyProxies, ResourceSummary{
+							Name:      proxy.Name,
+							Namespace: proxy.Namespace,
+						})
+					}
+				}
+
+				for _, backend := range res.Backends {
+					if backend != nil {
+						configDump.Backends = append(configDump.Backends, ResourceSummary{
+							Name:      backend.Name,
+							Namespace: backend.Namespace,
+						})
+					}
+				}
+
+				for _, serviceImport := range res.ServiceImports {
+					if serviceImport != nil {
+						configDump.ServiceImports = append(configDump.ServiceImports, ResourceSummary{
+							Name:      serviceImport.Name,
+							Namespace: serviceImport.Namespace,
+						})
+					}
+				}
+			}
+		}
+	}
+
+	return configDump
+}
+
+// handleAPIConfigDumpAll handles requests for complete provider resources dump
+func (h *Handler) handleAPIConfigDumpAll(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	w.Header().Set("Content-Type", "application/json; charset=utf-8")
+
+	if h.providerResources == nil {
+		// Return empty structure if no provider resources
+		emptyResponse := map[string]interface{}{
+			"message":   "No provider resources available",
+			"timestamp": time.Now(),
+		}
+		if err := json.NewEncoder(w).Encode(emptyResponse); err != nil {
+			http.Error(w, "Failed to encode response", http.StatusInternalServerError)
+		}
+		return
+	}
+
+	// Get the actual resources using GetResources() method
+	resources := h.providerResources.GetResources()
+
+	// Create a structured response with the actual resource data
+	response := map[string]interface{}{
+		"resources":  resources,
+		"timestamp":  time.Now(),
+		"totalCount": len(resources),
+	}
+
+	if err := json.NewEncoder(w).Encode(response); err != nil {
+		http.Error(w, "Failed to encode provider resources", http.StatusInternalServerError)
+		return
+	}
+}
+
+// handleAPIMetrics handles requests for metrics using the Prometheus registry
+func (h *Handler) handleAPIMetrics(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	// Create a Prometheus handler using the controller-runtime registry
+	// This includes all Envoy Gateway control plane metrics
+	handler := createCombinedMetricsHandler()
+
+	// Serve the metrics using the Prometheus handler
+	handler.ServeHTTP(w, r)
+}
+
+// Helper functions to extract status information from Gateway API resources
+
+func getGatewayClassStatus(gc *gwapiv1.GatewayClass) string {
+	if len(gc.Status.Conditions) == 0 {
+		return "Unknown"
+	}
+
+	for _, condition := range gc.Status.Conditions {
+		if condition.Type == string(gwapiv1.GatewayClassConditionStatusAccepted) {
+			if condition.Status == metav1.ConditionTrue {
+				return "Accepted"
+			}
+			return "Not Accepted"
+		}
+	}
+	return "Unknown"
+}
+
+func getGatewayStatus(gw *gwapiv1.Gateway) string {
+	if len(gw.Status.Conditions) == 0 {
+		return "Unknown"
+	}
+
+	// Check for Programmed condition first
+	for _, condition := range gw.Status.Conditions {
+		if condition.Type == string(gwapiv1.GatewayConditionProgrammed) {
+			if condition.Status == metav1.ConditionTrue {
+				return "Programmed"
+			}
+			return "Not Programmed"
+		}
+	}
+
+	// Check for Accepted condition
+	for _, condition := range gw.Status.Conditions {
+		if condition.Type == string(gwapiv1.GatewayConditionAccepted) {
+			if condition.Status == metav1.ConditionTrue {
+				return "Accepted"
+			}
+			return "Not Accepted"
+		}
+	}
+
+	return "Unknown"
+}
diff --git a/internal/admin/console/embed.go b/internal/admin/console/embed.go
new file mode 100644
index 000000000..8323f02d1
--- /dev/null
+++ b/internal/admin/console/embed.go
@@ -0,0 +1,18 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package console
+
+import (
+	"embed"
+)
+
+// Embed static files and templates
+//
+//go:embed static
+var staticFiles embed.FS
+
+//go:embed templates
+var templateFiles embed.FS
diff --git a/internal/admin/console/handlers.go b/internal/admin/console/handlers.go
new file mode 100644
index 000000000..e665f5c4c
--- /dev/null
+++ b/internal/admin/console/handlers.go
@@ -0,0 +1,228 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package console
+
+import (
+	"fmt"
+	"html/template"
+	"io/fs"
+	"net/http"
+	"time"
+
+	egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
+	"github.com/envoyproxy/gateway/internal/envoygateway/config"
+	"github.com/envoyproxy/gateway/internal/message"
+)
+
+// Handler manages the console web interface
+type Handler struct {
+	cfg               *config.Server
+	templates         map[string]*template.Template
+	providerResources *message.ProviderResources
+}
+
+// NewHandler creates a new console handler
+func NewHandler(cfg *config.Server, providerResources *message.ProviderResources) *Handler {
+	return &Handler{
+		cfg:               cfg,
+		templates:         make(map[string]*template.Template),
+		providerResources: providerResources,
+	}
+}
+
+// RegisterRoutes registers all console routes with the provided mux
+func (h *Handler) RegisterRoutes(mux *http.ServeMux) {
+	// Web UI endpoints
+	mux.HandleFunc("/", h.handleIndex)
+	mux.HandleFunc("/pprof", h.handlePprof)
+	mux.HandleFunc("/server_info", h.handleServerInfo)
+	mux.HandleFunc("/config_dump", h.handleConfigDump)
+	mux.HandleFunc("/stats", h.handleStats)
+
+	// API endpoints
+	mux.HandleFunc("/api/info", h.handleAPIInfo)
+	mux.HandleFunc("/api/server_info", h.handleAPIServerInfo)
+	mux.HandleFunc("/api/config_dump", h.handleAPIConfigDump)
+	mux.HandleFunc("/api/config_dump_all", h.handleAPIConfigDumpAll)
+	mux.HandleFunc("/api/metrics", h.handleAPIMetrics)
+
+	// Static files
+	staticFS, err := fs.Sub(staticFiles, "static")
+	if err == nil {
+		mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(staticFS))))
+	}
+}
+
+// handleIndex serves the main console page
+func (h *Handler) handleIndex(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	data := struct {
+		Title     string
+		Timestamp time.Time
+	}{
+		Title:     "Envoy Gateway Admin Console",
+		Timestamp: time.Now(),
+	}
+
+	if err := h.renderTemplate(w, "index.html", data); err != nil {
+		// Content-Type is already set by renderTemplate
+		w.WriteHeader(http.StatusInternalServerError)
+		_, _ = w.Write([]byte("Internal server error"))
+		return
+	}
+}
+
+// handlePprof serves the pprof page
+func (h *Handler) handlePprof(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	enablePprof := h.cfg.EnvoyGateway.GetEnvoyGatewayAdmin().EnablePprof
+	data := struct {
+		Title       string
+		EnablePprof bool
+	}{
+		Title:       "Performance Profiling",
+		EnablePprof: enablePprof,
+	}
+
+	if err := h.renderTemplate(w, "pprof.html", data); err != nil {
+		// Content-Type is already set by renderTemplate
+		w.WriteHeader(http.StatusInternalServerError)
+		_, _ = w.Write([]byte("Internal server error"))
+		return
+	}
+}
+
+// handleServerInfo serves the server info page
+func (h *Handler) handleServerInfo(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	data := struct {
+		Title string
+	}{
+		Title: "Server Information",
+	}
+
+	if err := h.renderTemplate(w, "server_info.html", data); err != nil {
+		// Content-Type is already set by renderTemplate
+		w.WriteHeader(http.StatusInternalServerError)
+		_, _ = w.Write([]byte("Internal server error"))
+		return
+	}
+}
+
+// handleConfigDump serves the config dump page
+func (h *Handler) handleConfigDump(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	data := struct {
+		Title string
+	}{
+		Title: "Configuration Dump",
+	}
+
+	if err := h.renderTemplate(w, "config_dump.html", data); err != nil {
+		// Content-Type is already set by renderTemplate
+		w.WriteHeader(http.StatusInternalServerError)
+		_, _ = w.Write([]byte("Internal server error"))
+		return
+	}
+}
+
+// handleStats serves the stats page
+func (h *Handler) handleStats(w http.ResponseWriter, r *http.Request) {
+	if r.Method != http.MethodGet {
+		http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
+		return
+	}
+
+	// Get metrics server address
+	metricsAddress := fmt.Sprintf("%s:%d", egv1a1.GatewayMetricsHost, egv1a1.GatewayMetricsPort)
+
+	data := struct {
+		Title          string
+		MetricsAddress string
+	}{
+		Title:          "Statistics",
+		MetricsAddress: metricsAddress,
+	}
+
+	if err := h.renderTemplate(w, "stats.html", data); err != nil {
+		// Content-Type is already set by renderTemplate
+		w.WriteHeader(http.StatusInternalServerError)
+		_, _ = w.Write([]byte("Internal server error"))
+		return
+	}
+}
+
+// renderTemplate renders a template with the given data
+func (h *Handler) renderTemplate(w http.ResponseWriter, tmpl string, data interface{}) error {
+	if len(h.templates) == 0 {
+		if err := h.loadTemplates(); err != nil {
+			// Set Content-Type before returning error
+			w.Header().Set("Content-Type", "text/html; charset=utf-8")
+			return err
+		}
+	}
+
+	w.Header().Set("Content-Type", "text/html; charset=utf-8")
+
+	// Get the specific template
+	t, exists := h.templates[tmpl]
+	if !exists {
+		return fmt.Errorf("template %s not found", tmpl)
+	}
+
+	return t.ExecuteTemplate(w, "base.html", data)
+}
+
+// loadTemplates loads all HTML templates
+func (h *Handler) loadTemplates() error {
+	// Template mappings: template name -> content block name
+	templateMappings := map[string]string{
+		"index.html":       "index-content",
+		"server_info.html": "server-info-content",
+		"config_dump.html": "config-dump-content",
+		"stats.html":       "stats-content",
+		"pprof.html":       "pprof-content",
+	}
+
+	// Create individual templates for each page
+	for templateName, contentBlock := range templateMappings {
+		// Create a new template instance for each page
+		tmpl := template.New(templateName)
+
+		// Parse all templates together
+		tmpl, err := tmpl.ParseFS(templateFiles, "templates/base.html", "templates/"+templateName)
+		if err != nil {
+			return fmt.Errorf("failed to parse templates for %s: %w", templateName, err)
+		}
+
+		// Create a wrapper template that calls the correct content block
+		wrapperTemplate := fmt.Sprintf(`{{define "content"}}{{template "%s" .}}{{end}}`, contentBlock)
+		tmpl, err = tmpl.Parse(wrapperTemplate)
+		if err != nil {
+			return fmt.Errorf("failed to parse wrapper for %s: %w", templateName, err)
+		}
+
+		h.templates[templateName] = tmpl
+	}
+
+	return nil
+}
diff --git a/internal/admin/console/metrics.go b/internal/admin/console/metrics.go
new file mode 100644
index 000000000..8c74fda06
--- /dev/null
+++ b/internal/admin/console/metrics.go
@@ -0,0 +1,33 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package console
+
+import (
+	"net/http"
+
+	"github.com/prometheus/client_golang/prometheus"
+	"github.com/prometheus/client_golang/prometheus/promhttp"
+	metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics"
+)
+
+// createCombinedMetricsHandler creates a handler that uses the controller-runtime registry
+func createCombinedMetricsHandler() http.Handler {
+	// Check if the controller-runtime registry has any metrics
+	// In test environments, it might be empty
+	if hasMetrics(metricsserver.Registry) {
+		// Use the controller-runtime registry which includes all Envoy Gateway metrics
+		return promhttp.HandlerFor(metricsserver.Registry, promhttp.HandlerOpts{})
+	}
+
+	// Fallback to default gatherer for test environments
+	return promhttp.Handler()
+}
+
+// hasMetrics checks if a gatherer has any metrics
+func hasMetrics(gatherer prometheus.Gatherer) bool {
+	families, err := gatherer.Gather()
+	return err == nil && len(families) > 0
+}
diff --git a/internal/admin/console/static/css/admin.css b/internal/admin/console/static/css/admin.css
new file mode 100644
index 000000000..3c6a54c03
--- /dev/null
+++ b/internal/admin/console/static/css/admin.css
@@ -0,0 +1,641 @@
+/* Envoy Gateway Admin Console Styles */
+
+/* Reset and base styles */
+* {
+    margin: 0;
+    padding: 0;
+    box-sizing: border-box;
+}
+
+html, body {
+    height: 100%;
+}
+
+body {
+    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
+    line-height: 1.6;
+    color: #333;
+    background-color: #f5f5f5;
+    display: flex;
+    flex-direction: column;
+    min-height: 100vh;
+}
+
+/* Header */
+.header {
+    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+    color: white;
+    padding: 1rem 0;
+    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+}
+
+.header-content {
+    max-width: 1200px;
+    margin: 0 auto;
+    padding: 0 2rem;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.logo {
+    font-size: 1.5rem;
+    font-weight: bold;
+}
+
+.nav {
+    display: flex;
+    gap: 2rem;
+}
+
+.nav a {
+    color: white;
+    text-decoration: none;
+    padding: 0.5rem 1rem;
+    border-radius: 4px;
+    transition: background-color 0.3s;
+}
+
+.nav a:hover,
+.nav a.active {
+    background-color: rgba(255, 255, 255, 0.2);
+}
+
+/* Main content */
+.container {
+    max-width: 1200px;
+    margin: 2rem auto;
+    padding: 0 2rem;
+    flex: 1; /* This makes the container expand to fill available space */
+}
+
+.card {
+    background: white;
+    border-radius: 8px;
+    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
+    margin-bottom: 2rem;
+    overflow: hidden;
+}
+
+.card-header {
+    background: #f8f9fa;
+    padding: 1rem 1.5rem;
+    border-bottom: 1px solid #e9ecef;
+}
+
+.card-title {
+    font-size: 1.25rem;
+    font-weight: 600;
+    color: #495057;
+}
+
+.card-body {
+    padding: 1.5rem;
+}
+
+/* Grid layout */
+.grid {
+    display: grid;
+    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+    gap: 2rem;
+    margin-bottom: 2rem;
+}
+
+/* Dashboard 2x2 grid layout */
+.dashboard-grid {
+    display: grid;
+    grid-template-columns: repeat(2, 1fr);
+    gap: 2rem;
+    margin-bottom: 2rem;
+}
+
+/* Config Summary 6x4 grid layout */
+.config-summary-grid {
+    display: grid;
+    grid-template-columns: repeat(6, 1fr);
+    gap: 1.5rem;
+    margin-bottom: 2rem;
+}
+
+/* Config Resources 4x6 grid layout */
+.config-resources-grid {
+    display: grid;
+    grid-template-columns: repeat(4, 1fr);
+    gap: 1.5rem;
+    margin-bottom: 2rem;
+}
+
+/* Quick Links styles */
+.quick-links-grid {
+    display: grid;
+    grid-template-columns: repeat(2, 1fr);
+    gap: 2rem;
+}
+
+.quick-links-section h3 {
+    margin-bottom: 1rem;
+    color: #495057;
+    font-size: 1.1rem;
+    font-weight: 600;
+}
+
+.quick-links-list {
+    display: flex;
+    flex-direction: column;
+    gap: 0.75rem;
+}
+
+.quick-link {
+    display: flex;
+    align-items: center;
+    padding: 0.75rem 1rem;
+    background-color: #f8f9fa;
+    border: 1px solid #e9ecef;
+    border-radius: 0.5rem;
+    text-decoration: none;
+    color: #495057;
+    transition: all 0.2s ease;
+}
+
+.quick-link:hover {
+    background-color: #e9ecef;
+    border-color: #007bff;
+    color: #007bff;
+    text-decoration: none;
+    transform: translateY(-1px);
+    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+}
+
+.quick-link-icon {
+    font-size: 1.2rem;
+    margin-right: 0.75rem;
+    min-width: 1.5rem;
+}
+
+.quick-link-text {
+    font-weight: 500;
+}
+
+/* Resource item styles */
+.resource-item {
+    padding: 1rem;
+    border: 1px solid #e9ecef;
+    border-radius: 0.5rem;
+    background-color: #fff;
+    margin-bottom: 0.5rem;
+}
+
+.resource-header {
+    display: flex;
+    flex-direction: column;
+    gap: 0.5rem;
+}
+
+.resource-name {
+    font-weight: 600;
+    font-size: 1rem;
+    color: #495057;
+}
+
+.resource-namespace {
+    font-size: 0.875rem;
+    color: #6c757d;
+    background-color: #f8f9fa;
+    padding: 0.25rem 0.5rem;
+    border-radius: 0.25rem;
+    display: inline-block;
+    width: fit-content;
+}
+
+.resource-scope {
+    font-size: 0.875rem;
+    color: #6c757d;
+    background-color: #e3f2fd;
+    padding: 0.25rem 0.5rem;
+    border-radius: 0.25rem;
+    display: inline-block;
+    width: fit-content;
+}
+
+/* Status indicators */
+.status {
+    display: inline-block;
+    padding: 0.25rem 0.75rem;
+    border-radius: 12px;
+    font-size: 0.875rem;
+    font-weight: 500;
+}
+
+.status.running {
+    background-color: #d4edda;
+    color: #155724;
+}
+
+.status.warning {
+    background-color: #fff3cd;
+    color: #856404;
+}
+
+.status.error {
+    background-color: #f8d7da;
+    color: #721c24;
+}
+
+.status.accepted {
+    background-color: #d4edda;
+    color: #155724;
+}
+
+.status.programmed {
+    background-color: #d4edda;
+    color: #155724;
+}
+
+.status.pending {
+    background-color: #fff3cd;
+    color: #856404;
+}
+
+.status.invalid {
+    background-color: #f8d7da;
+    color: #721c24;
+}
+
+/* Resource items */
+.resource-item {
+    border: 1px solid #e9ecef;
+    border-radius: 8px;
+    padding: 1rem;
+    margin-bottom: 1rem;
+    background-color: #fff;
+}
+
+.resource-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 0.5rem;
+}
+
+.resource-details {
+    color: #6c757d;
+    font-size: 0.875rem;
+}
+
+/* Config summary */
+.summary-item {
+    text-align: center;
+    padding: 1rem;
+    background-color: #f8f9fa;
+    border-radius: 8px;
+}
+
+.summary-item h3 {
+    font-size: 2rem;
+    margin: 0 0 0.5rem 0;
+    color: #007bff;
+}
+
+.summary-item p {
+    margin: 0;
+    color: #6c757d;
+}
+
+.text-muted {
+    color: #6c757d;
+    font-style: italic;
+}
+
+/* Namespace and cluster badges */
+.namespace-badge {
+    background-color: #e9ecef;
+    color: #495057;
+    padding: 0.25rem 0.5rem;
+    border-radius: 4px;
+    font-size: 0.75rem;
+    font-weight: 500;
+}
+
+.cluster-scoped {
+    background-color: #fff3cd;
+    color: #856404;
+    padding: 0.25rem 0.5rem;
+    border-radius: 4px;
+    font-size: 0.75rem;
+    font-weight: 500;
+}
+
+/* Button styles */
+.btn-primary {
+    background-color: #007bff;
+    border-color: #007bff;
+    color: white;
+    text-decoration: none;
+    padding: 0.375rem 0.75rem;
+    border-radius: 0.25rem;
+    display: inline-block;
+    font-weight: 400;
+    text-align: center;
+    vertical-align: middle;
+    border: 1px solid transparent;
+    font-size: 1rem;
+    line-height: 1.5;
+}
+
+.btn-primary:hover {
+    background-color: #0056b3;
+    border-color: #004085;
+    color: white;
+    text-decoration: none;
+}
+
+.btn-secondary {
+    background-color: #6c757d;
+    border-color: #6c757d;
+    color: white;
+    text-decoration: none;
+    padding: 0.375rem 0.75rem;
+    border-radius: 0.25rem;
+    display: inline-block;
+    font-weight: 400;
+    text-align: center;
+    vertical-align: middle;
+    border: 1px solid transparent;
+    font-size: 1rem;
+    line-height: 1.5;
+    margin-left: 0.5rem;
+}
+
+.btn-secondary:hover {
+    background-color: #545b62;
+    border-color: #4e555b;
+    color: white;
+    text-decoration: none;
+}
+
+/* Tables */
+.table {
+    width: 100%;
+    border-collapse: collapse;
+    margin-top: 1rem;
+}
+
+.table th,
+.table td {
+    padding: 0.75rem;
+    text-align: left;
+    border-bottom: 1px solid #e9ecef;
+}
+
+.table th {
+    background-color: #f8f9fa;
+    font-weight: 600;
+    color: #495057;
+}
+
+.table tbody tr:hover {
+    background-color: #f8f9fa;
+}
+
+/* Buttons */
+.btn {
+    display: inline-block;
+    padding: 0.5rem 1rem;
+    background-color: #007bff;
+    color: white;
+    text-decoration: none;
+    border-radius: 4px;
+    border: none;
+    cursor: pointer;
+    transition: background-color 0.3s;
+}
+
+.btn:hover {
+    background-color: #0056b3;
+}
+
+.btn-secondary {
+    background-color: #6c757d;
+}
+
+.btn-secondary:hover {
+    background-color: #545b62;
+}
+
+/* Info boxes */
+.info-box {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 1rem;
+    background-color: #e7f3ff;
+    border-left: 4px solid #007bff;
+    margin-bottom: 1rem;
+}
+
+.info-box.warning {
+    background-color: #fff8e1;
+    border-left-color: #ff9800;
+}
+
+.info-box.error {
+    background-color: #ffebee;
+    border-left-color: #f44336;
+}
+
+/* Code blocks */
+.code {
+    background-color: #f8f9fa;
+    border: 1px solid #e9ecef;
+    border-radius: 4px;
+    padding: 1rem;
+    font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
+    font-size: 0.875rem;
+    overflow-x: auto;
+    white-space: pre-wrap;
+    word-wrap: break-word;
+    line-height: 1.4;
+}
+
+/* JSON code blocks with syntax highlighting */
+.json-code {
+    background-color: #f8f9fa;
+    border: 1px solid #e9ecef;
+    border-radius: 6px;
+    padding: 1.25rem;
+    font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;
+    font-size: 0.875rem;
+    overflow-x: auto;
+    white-space: pre;
+    line-height: 1.5;
+    max-height: 500px;
+    overflow-y: auto;
+    margin-top: 0.75rem;
+}
+
+/* JSON syntax highlighting */
+.json-key {
+    color: #0066cc;
+    font-weight: 600;
+}
+
+.json-string {
+    color: #008000;
+}
+
+.json-number {
+    color: #ff6600;
+}
+
+.json-boolean {
+    color: #cc0066;
+    font-weight: 600;
+}
+
+.json-null {
+    color: #999999;
+    font-style: italic;
+}
+
+/* Config details toggle */
+.config-details {
+    margin-top: 1rem;
+    border-top: 1px solid #e9ecef;
+    padding-top: 1rem;
+}
+
+.config-details.collapsed {
+    display: none;
+}
+
+.config-details.expanded {
+    display: block;
+    animation: slideDown 0.3s ease-out;
+}
+
+@keyframes slideDown {
+    from {
+        opacity: 0;
+        max-height: 0;
+    }
+    to {
+        opacity: 1;
+        max-height: 500px;
+    }
+}
+
+/* Success button state */
+.btn-success {
+    background-color: #28a745 !important;
+    border-color: #28a745 !important;
+    color: white !important;
+}
+
+/* Button hover effects */
+.btn:hover {
+    transform: translateY(-1px);
+    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+    transition: all 0.2s ease;
+}
+
+/* Copy button specific styling */
+.btn.copy-btn {
+    transition: all 0.3s ease;
+}
+
+.btn.copy-btn:active {
+    transform: translateY(0);
+}
+
+/* Loading spinner */
+.loading {
+    display: inline-block;
+    width: 20px;
+    height: 20px;
+    border: 3px solid #f3f3f3;
+    border-top: 3px solid #007bff;
+    border-radius: 50%;
+    animation: spin 1s linear infinite;
+}
+
+@keyframes spin {
+    0% { transform: rotate(0deg); }
+    100% { transform: rotate(360deg); }
+}
+
+/* Responsive design */
+@media (max-width: 768px) {
+    .header-content {
+        flex-direction: column;
+        gap: 1rem;
+    }
+    
+    .nav {
+        flex-wrap: wrap;
+        justify-content: center;
+    }
+    
+    .container {
+        padding: 0 1rem;
+    }
+    
+    .grid {
+        grid-template-columns: 1fr;
+    }
+
+    .dashboard-grid {
+        grid-template-columns: 1fr;
+    }
+
+    .config-summary-grid {
+        grid-template-columns: repeat(3, 1fr);
+    }
+
+    .config-resources-grid {
+        grid-template-columns: repeat(2, 1fr);
+    }
+}
+
+/* Medium screens */
+@media (max-width: 1024px) {
+    .config-summary-grid {
+        grid-template-columns: repeat(4, 1fr);
+    }
+
+    .config-resources-grid {
+        grid-template-columns: repeat(3, 1fr);
+    }
+}
+
+/* Small screens */
+@media (max-width: 768px) {
+    .config-summary-grid {
+        grid-template-columns: repeat(2, 1fr);
+    }
+
+    .config-resources-grid {
+        grid-template-columns: repeat(1, 1fr);
+    }
+
+    .quick-links-grid {
+        grid-template-columns: 1fr;
+    }
+}
+
+/* Footer */
+.footer {
+    background-color: #343a40;
+    color: #adb5bd;
+    text-align: center;
+    padding: 2rem 0;
+    margin-top: auto; /* This pushes the footer to the bottom */
+}
+
+.footer a {
+    color: #007bff;
+    text-decoration: none;
+}
+
+.footer a:hover {
+    text-decoration: underline;
+}
diff --git a/internal/admin/console/static/js/admin.js b/internal/admin/console/static/js/admin.js
new file mode 100644
index 000000000..4bce3bb10
--- /dev/null
+++ b/internal/admin/console/static/js/admin.js
@@ -0,0 +1,677 @@
+// Envoy Gateway Admin Console JavaScript
+
+// Global app object
+window.EnvoyGatewayAdmin = {
+    // Configuration
+    config: {
+        refreshInterval: 30000, // 30 seconds
+        apiTimeout: 10000 // 10 seconds
+    },
+    
+    // State
+    state: {
+        autoRefresh: false,
+        currentPage: null
+    },
+    
+    // Initialize the application
+    init: function() {
+        this.setupNavigation();
+        this.setupAutoRefresh();
+        this.detectCurrentPage();
+        this.loadPageData();
+    },
+    
+    // Setup navigation highlighting
+    setupNavigation: function() {
+        const currentPath = window.location.pathname;
+        const navLinks = document.querySelectorAll('.nav a');
+        
+        navLinks.forEach(link => {
+            if (link.getAttribute('href') === currentPath) {
+                link.classList.add('active');
+            }
+        });
+    },
+    
+    // Setup auto-refresh functionality
+    setupAutoRefresh: function() {
+        const refreshToggle = document.getElementById('auto-refresh');
+        if (refreshToggle) {
+            refreshToggle.addEventListener('change', (e) => {
+                this.state.autoRefresh = e.target.checked;
+                if (this.state.autoRefresh) {
+                    this.startAutoRefresh();
+                } else {
+                    this.stopAutoRefresh();
+                }
+            });
+        }
+    },
+    
+    // Detect current page
+    detectCurrentPage: function() {
+        const path = window.location.pathname;
+        if (path === '/' || path === '/index') {
+            this.state.currentPage = 'index';
+        } else if (path === '/server_info') {
+            this.state.currentPage = 'server_info';
+        } else if (path === '/config_dump') {
+            this.state.currentPage = 'config_dump';
+        } else if (path === '/stats') {
+            this.state.currentPage = 'stats';
+        } else if (path === '/pprof') {
+            this.state.currentPage = 'pprof';
+        }
+    },
+    
+    // Load page-specific data
+    loadPageData: function() {
+        switch (this.state.currentPage) {
+            case 'index':
+                this.loadSystemInfo();
+                break;
+            case 'server_info':
+                this.loadServerInfo();
+                break;
+            case 'config_dump':
+                this.loadConfigDump();
+                break;
+        }
+    },
+    
+    // API call helper
+    apiCall: function(endpoint, callback) {
+        const controller = new AbortController();
+        const timeoutId = setTimeout(() => controller.abort(), this.config.apiTimeout);
+        
+        fetch(endpoint, {
+            signal: controller.signal,
+            headers: {
+                'Accept': 'application/json'
+            }
+        })
+        .then(response => {
+            clearTimeout(timeoutId);
+            if (!response.ok) {
+                throw new Error(`HTTP ${response.status}: ${response.statusText}`);
+            }
+            return response.json();
+        })
+        .then(data => callback(null, data))
+        .catch(error => {
+            clearTimeout(timeoutId);
+            callback(error, null);
+        });
+    },
+    
+    // Load system information
+    loadSystemInfo: function() {
+        this.showLoading('system-info');
+        this.apiCall('/api/info', (error, data) => {
+            this.hideLoading('system-info');
+            if (error) {
+                this.showError('system-info', 'Failed to load system information: ' + error.message);
+                return;
+            }
+            this.updateSystemInfo(data);
+        });
+    },
+    
+    // Update system information display
+    updateSystemInfo: function(data) {
+        const container = document.getElementById('system-info');
+        if (!container) return;
+
+        container.innerHTML = `
+            <div class="info-box">
+                <div>
+                    <strong>Version:</strong> ${data.version}<br>
+                    <strong>Uptime:</strong> ${data.uptime}<br>
+                    <strong>Go Version:</strong> ${data.goVersion}<br>
+                    <strong>Platform:</strong> ${data.platform}
+                </div>
+                <div>
+                    <small>Last updated: ${new Date(data.timestamp).toLocaleString()}</small>
+                </div>
+            </div>
+        `;
+    },
+
+
+
+    // Update EnvoyGateway configuration display
+    updateEnvoyGatewayConfig: function(data) {
+        const container = document.getElementById('envoy-gateway-config');
+        if (!container) return;
+
+        container.innerHTML = `
+            <div class="info-box">
+                <div>
+                    <strong>API Version:</strong> ${data.apiVersion || 'N/A'}<br>
+                    <strong>Kind:</strong> ${data.kind || 'N/A'}<br>
+                    <strong>Controller Name:</strong> ${data.gateway?.controllerName || 'N/A'}<br>
+                    <strong>Provider Type:</strong> ${data.provider?.type || 'N/A'}
+                </div>
+                <div>
+                    <button class="btn btn-secondary" onclick="EnvoyGatewayAdmin.toggleConfigDetails()" id="config-toggle-btn">
+                        Show Details
+                    </button>
+                    <button class="btn btn-secondary" onclick="EnvoyGatewayAdmin.copyConfigToClipboard(event)" style="margin-left: 0.5rem;">
+                        Copy JSON
+                    </button>
+                </div>
+            </div>
+            <div id="config-details" class="config-details collapsed">
+                <div class="json-code" id="config-json">${this.formatJSON(data)}</div>
+            </div>
+        `;
+    },
+
+    // Toggle configuration details
+    toggleConfigDetails: function() {
+        const details = document.getElementById('config-details');
+        const button = document.getElementById('config-toggle-btn');
+
+        if (details && button) {
+            if (details.classList.contains('collapsed')) {
+                details.classList.remove('collapsed');
+                details.classList.add('expanded');
+                button.textContent = 'Hide Details';
+            } else {
+                details.classList.remove('expanded');
+                details.classList.add('collapsed');
+                button.textContent = 'Show Details';
+            }
+        }
+    },
+
+    // Copy configuration to clipboard
+    copyConfigToClipboard: function(event) {
+        const configElement = document.getElementById('config-json');
+        if (configElement && event && event.target) {
+            const text = configElement.textContent;
+            const button = event.target;
+
+            if (navigator.clipboard && navigator.clipboard.writeText) {
+                navigator.clipboard.writeText(text).then(() => {
+                    this.showCopySuccess(button);
+                }).catch(err => {
+                    console.error('Failed to copy to clipboard:', err);
+                    this.fallbackCopyToClipboard(text, button);
+                });
+            } else {
+                this.fallbackCopyToClipboard(text, button);
+            }
+        }
+    },
+
+    // Show copy success feedback
+    showCopySuccess: function(button) {
+        const originalText = button.textContent;
+        button.textContent = 'Copied!';
+        button.classList.add('btn-success');
+        setTimeout(() => {
+            button.textContent = originalText;
+            button.classList.remove('btn-success');
+        }, 2000);
+    },
+
+    // Fallback copy method for older browsers
+    fallbackCopyToClipboard: function(text, button) {
+        const textArea = document.createElement('textarea');
+        textArea.value = text;
+        textArea.style.position = 'fixed';
+        textArea.style.left = '-999999px';
+        textArea.style.top = '-999999px';
+        document.body.appendChild(textArea);
+        textArea.focus();
+        textArea.select();
+
+        try {
+            const successful = document.execCommand('copy');
+            if (successful && button) {
+                this.showCopySuccess(button);
+            }
+        } catch (err) {
+            console.error('Fallback copy failed:', err);
+        }
+
+        document.body.removeChild(textArea);
+    },
+
+    // Format JSON with syntax highlighting
+    formatJSON: function(obj) {
+        const jsonString = JSON.stringify(obj, null, 2);
+        return this.syntaxHighlight(jsonString);
+    },
+
+    // Add syntax highlighting to JSON
+    syntaxHighlight: function(json) {
+        json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
+        return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
+            let cls = 'json-number';
+            if (/^"/.test(match)) {
+                if (/:$/.test(match)) {
+                    cls = 'json-key';
+                } else {
+                    cls = 'json-string';
+                }
+            } else if (/true|false/.test(match)) {
+                cls = 'json-boolean';
+            } else if (/null/.test(match)) {
+                cls = 'json-null';
+            }
+            return '<span class="' + cls + '">' + match + '</span>';
+        });
+    },
+    
+    // Load server information
+    loadServerInfo: function() {
+        this.showLoading('server-info');
+        this.apiCall('/api/server_info', (error, data) => {
+            this.hideLoading('server-info');
+            if (error) {
+                this.showError('server-info', 'Failed to load server information: ' + error.message);
+                return;
+            }
+            this.updateServerInfo(data);
+        });
+    },
+    
+    // Update server information display
+    updateServerInfo: function(data) {
+        const container = document.getElementById('server-info');
+        if (!container) return;
+
+        let componentsHtml = '';
+        data.components.forEach(component => {
+            const statusClass = component.status.toLowerCase() === 'running' ? 'running' : 'error';
+            componentsHtml += `
+                <tr>
+                    <td>${component.name}</td>
+                    <td><span class="status ${statusClass}">${component.status}</span></td>
+                    <td>${component.message}</td>
+                </tr>
+            `;
+        });
+
+        container.innerHTML = `
+            <div class="info-box">
+                <div>
+                    <strong>State:</strong> <span class="status running">${data.state}</span><br>
+                    <strong>Version:</strong> ${data.version}<br>
+                    <strong>Uptime:</strong> ${data.uptime}
+                </div>
+                <div>
+                    <small>Last updated: ${new Date(data.lastUpdated).toLocaleString()}</small>
+                </div>
+            </div>
+            <table class="table">
+                <thead>
+                    <tr>
+                        <th>Component</th>
+                        <th>Status</th>
+                        <th>Message</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    ${componentsHtml}
+                </tbody>
+            </table>
+        `;
+
+        // Update EnvoyGateway configuration if we're on server_info page
+        if (data.envoyGatewayConfig) {
+            this.updateEnvoyGatewayConfig(data.envoyGatewayConfig);
+        }
+    },
+    
+    // Load configuration dump
+    loadConfigDump: function() {
+        this.showLoading('config-dump');
+        this.apiCall('/api/config_dump', (error, data) => {
+            this.hideLoading('config-dump');
+            if (error) {
+                this.showError('config-dump', 'Failed to load configuration dump: ' + error.message);
+                return;
+            }
+            this.updateConfigDump(data);
+        });
+    },
+    
+    // Update configuration dump display
+    updateConfigDump: function(data) {
+        const container = document.getElementById('config-dump');
+        if (container) {
+            container.innerHTML = `
+                <div class="info-box">
+                    <div>
+                        <strong>Gateways:</strong> ${data.gateways ? data.gateways.length : 0}<br>
+                        <strong>HTTP Routes:</strong> ${data.httpRoutes ? data.httpRoutes.length : 0}<br>
+                        <strong>Gateway Classes:</strong> ${data.gatewayClass ? data.gatewayClass.length : 0}
+                    </div>
+                    <div>
+                        <small>Last updated: ${new Date(data.lastUpdated).toLocaleString()}</small>
+                    </div>
+                </div>
+                <div class="code">
+                    ${JSON.stringify(data, null, 2)}
+                </div>
+            `;
+        }
+
+        // Update individual resource lists
+        this.updateGatewaysList(data.gateways || []);
+        this.updateHTTPRoutesList(data.httpRoutes || []);
+        this.updateGRPCRoutesList(data.grpcRoutes || []);
+        this.updateTLSRoutesList(data.tlsRoutes || []);
+        this.updateTCPRoutesList(data.tcpRoutes || []);
+        this.updateUDPRoutesList(data.udpRoutes || []);
+        this.updateGatewayClassesList(data.gatewayClass || []);
+
+        // Update Envoy Gateway Policies
+        this.updateResourcesList('clienttrafficpolicies-list', data.clientTrafficPolicies || [], 'Client Traffic Policies');
+        this.updateResourcesList('backendtrafficpolicies-list', data.backendTrafficPolicies || [], 'Backend Traffic Policies');
+        this.updateResourcesList('backendtlspolicies-list', data.backendTLSPolicies || [], 'Backend TLS Policies');
+        this.updateResourcesList('securitypolicies-list', data.securityPolicies || [], 'Security Policies');
+        this.updateResourcesList('envoypatchpolicies-list', data.envoyPatchPolicies || [], 'Envoy Patch Policies');
+        this.updateResourcesList('envoyextensionpolicies-list', data.envoyExtensionPolicies || [], 'Envoy Extension Policies');
+
+        // Update Kubernetes Resources
+        this.updateResourcesList('services-list', data.services || [], 'Services');
+        this.updateResourcesList('secrets-list', data.secrets || [], 'Secrets');
+        this.updateResourcesList('configmaps-list', data.configMaps || [], 'ConfigMaps');
+        this.updateResourcesList('namespaces-list', data.namespaces || [], 'Namespaces');
+        this.updateResourcesList('endpointslices-list', data.endpointSlices || [], 'Endpoint Slices');
+
+        // Update Other Resources
+        this.updateResourcesList('referencegrants-list', data.referenceGrants || [], 'Reference Grants');
+        this.updateResourcesList('httproutefilters-list', data.httpRouteFilters || [], 'HTTP Route Filters');
+        this.updateResourcesList('envoyproxies-list', data.envoyProxies || [], 'Envoy Proxies');
+        this.updateResourcesList('backends-list', data.backends || [], 'Backends');
+        this.updateResourcesList('serviceimports-list', data.serviceImports || [], 'Service Imports');
+
+        // Update config summary
+        this.updateConfigSummary(data);
+    },
+
+    // Update gateways list
+    updateGatewaysList: function(gateways) {
+        const container = document.getElementById('gateways-list');
+        if (!container) return;
+
+        if (gateways.length === 0) {
+            container.innerHTML = '<p class="text-muted">No gateways found</p>';
+            return;
+        }
+
+        const gatewaysHtml = gateways.map(gw => `
+            <div class="resource-item">
+                <div class="resource-header">
+                    <div class="resource-name">${gw.name}</div>
+                    <div class="resource-namespace">${gw.namespace}</div>
+                </div>
+            </div>
+        `).join('');
+
+        container.innerHTML = gatewaysHtml;
+    },
+
+    // Update HTTP routes list
+    updateHTTPRoutesList: function(httpRoutes) {
+        this.updateRoutesList('httproutes-list', httpRoutes, 'HTTP routes');
+    },
+
+    // Update GRPC routes list
+    updateGRPCRoutesList: function(grpcRoutes) {
+        this.updateRoutesList('grpcroutes-list', grpcRoutes, 'GRPC routes');
+    },
+
+    // Update TLS routes list
+    updateTLSRoutesList: function(tlsRoutes) {
+        this.updateRoutesList('tlsroutes-list', tlsRoutes, 'TLS routes');
+    },
+
+    // Update TCP routes list
+    updateTCPRoutesList: function(tcpRoutes) {
+        this.updateRoutesList('tcproutes-list', tcpRoutes, 'TCP routes');
+    },
+
+    // Update UDP routes list
+    updateUDPRoutesList: function(udpRoutes) {
+        this.updateRoutesList('udproutes-list', udpRoutes, 'UDP routes');
+    },
+
+    // Generic method to update any routes list
+    updateRoutesList: function(containerId, routes, routeType) {
+        const container = document.getElementById(containerId);
+        if (!container) return;
+
+        if (routes.length === 0) {
+            container.innerHTML = `<p class="text-muted">No ${routeType} found</p>`;
+            return;
+        }
+
+        const routesHtml = routes.map(route => `
+            <div class="resource-item">
+                <div class="resource-header">
+                    <div class="resource-name">${route.name}</div>
+                    <div class="resource-namespace">${route.namespace}</div>
+                </div>
+            </div>
+        `).join('');
+
+        container.innerHTML = routesHtml;
+    },
+
+    // Update gateway classes list
+    updateGatewayClassesList: function(gatewayClasses) {
+        const container = document.getElementById('gatewayclasses-list');
+        if (!container) return;
+
+        if (gatewayClasses.length === 0) {
+            container.innerHTML = '<p class="text-muted">No gateway classes found</p>';
+            return;
+        }
+
+        const classesHtml = gatewayClasses.map(gc => `
+            <div class="resource-item">
+                <div class="resource-header">
+                    <div class="resource-name">${gc.name}</div>
+                    <div class="resource-scope">Cluster-scoped</div>
+                </div>
+            </div>
+        `).join('');
+
+        container.innerHTML = classesHtml;
+    },
+
+    // Generic method to update any resource list
+    updateResourcesList: function(containerId, resources, resourceType) {
+        const container = document.getElementById(containerId);
+        if (!container) return;
+
+        if (resources.length === 0) {
+            container.innerHTML = `<p class="text-muted">No ${resourceType.toLowerCase()} found</p>`;
+            return;
+        }
+
+        const resourcesHtml = resources.map(resource => `
+            <div class="resource-item">
+                <div class="resource-header">
+                    <div class="resource-name">${resource.name}</div>
+                    <div class="resource-namespace">${resource.namespace || 'Cluster-scoped'}</div>
+                </div>
+            </div>
+        `).join('');
+
+        container.innerHTML = resourcesHtml;
+    },
+
+    // Update config summary
+    updateConfigSummary: function(data) {
+        const container = document.getElementById('config-summary');
+        if (!container) return;
+
+        const summary = `
+            <div class="config-summary-grid">
+                <!-- Gateway API Core Resources -->
+                <div class="summary-item">
+                    <h3>${data.gateways ? data.gateways.length : 0}</h3>
+                    <p>Gateways</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.httpRoutes ? data.httpRoutes.length : 0}</h3>
+                    <p>HTTP Routes</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.grpcRoutes ? data.grpcRoutes.length : 0}</h3>
+                    <p>GRPC Routes</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.tlsRoutes ? data.tlsRoutes.length : 0}</h3>
+                    <p>TLS Routes</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.tcpRoutes ? data.tcpRoutes.length : 0}</h3>
+                    <p>TCP Routes</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.udpRoutes ? data.udpRoutes.length : 0}</h3>
+                    <p>UDP Routes</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.gatewayClass ? data.gatewayClass.length : 0}</h3>
+                    <p>Gateway Classes</p>
+                </div>
+
+                <!-- Envoy Gateway Policies -->
+                <div class="summary-item">
+                    <h3>${data.clientTrafficPolicies ? data.clientTrafficPolicies.length : 0}</h3>
+                    <p>Client Traffic Policies</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.backendTrafficPolicies ? data.backendTrafficPolicies.length : 0}</h3>
+                    <p>Backend Traffic Policies</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.backendTLSPolicies ? data.backendTLSPolicies.length : 0}</h3>
+                    <p>Backend TLS Policies</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.securityPolicies ? data.securityPolicies.length : 0}</h3>
+                    <p>Security Policies</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.envoyPatchPolicies ? data.envoyPatchPolicies.length : 0}</h3>
+                    <p>Envoy Patch Policies</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.envoyExtensionPolicies ? data.envoyExtensionPolicies.length : 0}</h3>
+                    <p>Envoy Extension Policies</p>
+                </div>
+
+                <!-- Kubernetes Resources -->
+                <div class="summary-item">
+                    <h3>${data.services ? data.services.length : 0}</h3>
+                    <p>Services</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.secrets ? data.secrets.length : 0}</h3>
+                    <p>Secrets</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.configMaps ? data.configMaps.length : 0}</h3>
+                    <p>ConfigMaps</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.namespaces ? data.namespaces.length : 0}</h3>
+                    <p>Namespaces</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.endpointSlices ? data.endpointSlices.length : 0}</h3>
+                    <p>Endpoint Slices</p>
+                </div>
+
+                <!-- Other Resources -->
+                <div class="summary-item">
+                    <h3>${data.referenceGrants ? data.referenceGrants.length : 0}</h3>
+                    <p>Reference Grants</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.httpRouteFilters ? data.httpRouteFilters.length : 0}</h3>
+                    <p>HTTP Route Filters</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.envoyProxies ? data.envoyProxies.length : 0}</h3>
+                    <p>Envoy Proxies</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.backends ? data.backends.length : 0}</h3>
+                    <p>Backends</p>
+                </div>
+                <div class="summary-item">
+                    <h3>${data.serviceImports ? data.serviceImports.length : 0}</h3>
+                    <p>Service Imports</p>
+                </div>
+            </div>
+        `;
+
+        container.innerHTML = summary;
+    },
+    
+    // Show loading indicator
+    showLoading: function(containerId) {
+        const container = document.getElementById(containerId);
+        if (container) {
+            container.innerHTML = '<div class="loading"></div> Loading...';
+        }
+    },
+    
+    // Hide loading indicator
+    hideLoading: function(containerId) {
+        // Loading will be replaced by content
+    },
+    
+    // Show error message
+    showError: function(containerId, message) {
+        const container = document.getElementById(containerId);
+        if (container) {
+            container.innerHTML = `<div class="info-box error">${message}</div>`;
+        }
+    },
+    
+    // Start auto-refresh
+    startAutoRefresh: function() {
+        if (this.refreshTimer) {
+            clearInterval(this.refreshTimer);
+        }
+        this.refreshTimer = setInterval(() => {
+            this.loadPageData();
+        }, this.config.refreshInterval);
+    },
+    
+    // Stop auto-refresh
+    stopAutoRefresh: function() {
+        if (this.refreshTimer) {
+            clearInterval(this.refreshTimer);
+            this.refreshTimer = null;
+        }
+    },
+    
+    // Manual refresh
+    refresh: function() {
+        this.loadPageData();
+    }
+};
+
+// Initialize when DOM is loaded
+document.addEventListener('DOMContentLoaded', function() {
+    window.EnvoyGatewayAdmin.init();
+});
+
+// Cleanup on page unload
+window.addEventListener('beforeunload', function() {
+    window.EnvoyGatewayAdmin.stopAutoRefresh();
+});
diff --git a/internal/admin/console/templates/base.html b/internal/admin/console/templates/base.html
new file mode 100644
index 000000000..ce3487ced
--- /dev/null
+++ b/internal/admin/console/templates/base.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>{{.Title}} - Envoy Gateway Admin</title>
+    <link rel="stylesheet" href="/static/css/admin.css">
+    <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🚀</text></svg>">
+</head>
+<body>
+    <header class="header">
+        <div class="header-content">
+            <div class="logo">
+                🚀 Envoy Gateway Admin
+            </div>
+            <nav class="nav">
+                <a href="/">Dashboard</a>
+                <a href="/server_info">Server Info</a>
+                <a href="/config_dump">Config Dump</a>
+                <a href="/stats">Stats</a>
+                <a href="/pprof">Profiling</a>
+            </nav>
+        </div>
+    </header>
+
+    <main class="container">
+        {{template "content" .}}
+    </main>
+
+    <footer class="footer">
+        <p>&copy; 2025 Envoy Gateway. Built with ❤️ by the Envoy Gateway community.</p>
+        <p>
+            <a href="https://gateway.envoyproxy.io/" target="_blank">Documentation</a> |
+            <a href="https://github.com/envoyproxy/gateway" target="_blank">GitHub</a>
+        </p>
+    </footer>
+
+    <script src="/static/js/admin.js"></script>
+</body>
+</html>
diff --git a/internal/admin/console/templates/config_dump.html b/internal/admin/console/templates/config_dump.html
new file mode 100644
index 000000000..1895b012d
--- /dev/null
+++ b/internal/admin/console/templates/config_dump.html
@@ -0,0 +1,323 @@
+{{template "base.html" .}}
+
+{{define "config-dump-content"}}
+<div class="card">
+    <div class="card-header">
+        <h1 class="card-title">{{.Title}}</h1>
+        <div style="display: flex; align-items: center; gap: 1rem;">
+            <a href="/api/config_dump_all" class="btn btn-primary" target="_blank">
+                🔍 View Complete Config (JSON)
+            </a>
+            <label>
+                <input type="checkbox" id="auto-refresh"> Auto-refresh (30s)
+            </label>
+            <button class="btn btn-secondary" onclick="EnvoyGatewayAdmin.refresh()">
+                Refresh
+            </button>
+        </div>
+    </div>
+    <div class="card-body">
+        <p>This page displays the current configuration state of Envoy Gateway, including all Gateway API resources and their status.</p>
+    </div>
+</div>
+
+<div class="card">
+    <div class="card-header">
+        <h2 class="card-title">📊 Configuration Summary</h2>
+    </div>
+    <div class="card-body">
+        <p>This section provides a high-level overview of the current configuration state:</p>
+        <div id="config-summary">
+            <div class="loading"></div> Loading configuration summary...
+        </div>
+    </div>
+</div>
+
+<div class="config-resources-grid">
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🚪 Gateways</h2>
+        </div>
+        <div class="card-body">
+            <p>Gateway resources define the entry points for traffic into the cluster. They specify which ports and protocols are exposed.</p>
+            <div id="gateways-list">
+                <div class="loading"></div> Loading gateways...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🛣️ HTTP Routes</h2>
+        </div>
+        <div class="card-body">
+            <p>HTTPRoute resources define how HTTP requests are routed to backend services.</p>
+            <div id="httproutes-list">
+                <div class="loading"></div> Loading HTTP routes...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔧 GRPC Routes</h2>
+        </div>
+        <div class="card-body">
+            <p>GRPCRoute resources define how gRPC requests are routed to backend services.</p>
+            <div id="grpcroutes-list">
+                <div class="loading"></div> Loading GRPC routes...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔒 TLS Routes</h2>
+        </div>
+        <div class="card-body">
+            <p>TLSRoute resources define how TLS connections are routed to backend services.</p>
+            <div id="tlsroutes-list">
+                <div class="loading"></div> Loading TLS routes...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔌 TCP Routes</h2>
+        </div>
+        <div class="card-body">
+            <p>TCPRoute resources define how TCP connections are routed to backend services.</p>
+            <div id="tcproutes-list">
+                <div class="loading"></div> Loading TCP routes...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">📡 UDP Routes</h2>
+        </div>
+        <div class="card-body">
+            <p>UDPRoute resources define how UDP traffic is routed to backend services.</p>
+            <div id="udproutes-list">
+                <div class="loading"></div> Loading UDP routes...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🏷️ Gateway Classes</h2>
+        </div>
+        <div class="card-body">
+            <p>GatewayClass resources define the type of Gateway that can be deployed.</p>
+            <div id="gatewayclasses-list">
+                <div class="loading"></div> Loading gateway classes...
+            </div>
+        </div>
+    </div>
+
+    <!-- Envoy Gateway Policies -->
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🚦 Client Traffic Policies</h2>
+        </div>
+        <div class="card-body">
+            <p>ClientTrafficPolicy resources define traffic management policies for client connections.</p>
+            <div id="clienttrafficpolicies-list">
+                <div class="loading"></div> Loading client traffic policies...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔄 Backend Traffic Policies</h2>
+        </div>
+        <div class="card-body">
+            <p>BackendTrafficPolicy resources define traffic management policies for backend connections.</p>
+            <div id="backendtrafficpolicies-list">
+                <div class="loading"></div> Loading backend traffic policies...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔐 Backend TLS Policies</h2>
+        </div>
+        <div class="card-body">
+            <p>BackendTLSPolicy resources define TLS configuration for backend connections.</p>
+            <div id="backendtlspolicies-list">
+                <div class="loading"></div> Loading backend TLS policies...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🛡️ Security Policies</h2>
+        </div>
+        <div class="card-body">
+            <p>SecurityPolicy resources define security configurations and authentication policies.</p>
+            <div id="securitypolicies-list">
+                <div class="loading"></div> Loading security policies...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔧 Envoy Patch Policies</h2>
+        </div>
+        <div class="card-body">
+            <p>EnvoyPatchPolicy resources define custom patches to Envoy configuration.</p>
+            <div id="envoypatchpolicies-list">
+                <div class="loading"></div> Loading Envoy patch policies...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔌 Envoy Extension Policies</h2>
+        </div>
+        <div class="card-body">
+            <p>EnvoyExtensionPolicy resources define external processing and extension configurations.</p>
+            <div id="envoyextensionpolicies-list">
+                <div class="loading"></div> Loading Envoy extension policies...
+            </div>
+        </div>
+    </div>
+
+    <!-- Kubernetes Resources -->
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🌐 Services</h2>
+        </div>
+        <div class="card-body">
+            <p>Service resources define network services and their endpoints.</p>
+            <div id="services-list">
+                <div class="loading"></div> Loading services...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔑 Secrets</h2>
+        </div>
+        <div class="card-body">
+            <p>Secret resources contain sensitive data such as certificates and keys.</p>
+            <div id="secrets-list">
+                <div class="loading"></div> Loading secrets...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">📋 ConfigMaps</h2>
+        </div>
+        <div class="card-body">
+            <p>ConfigMap resources contain configuration data for applications.</p>
+            <div id="configmaps-list">
+                <div class="loading"></div> Loading config maps...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">📁 Namespaces</h2>
+        </div>
+        <div class="card-body">
+            <p>Namespace resources provide scope for names and resource isolation.</p>
+            <div id="namespaces-list">
+                <div class="loading"></div> Loading namespaces...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🎯 Endpoint Slices</h2>
+        </div>
+        <div class="card-body">
+            <p>EndpointSlice resources define network endpoints for services.</p>
+            <div id="endpointslices-list">
+                <div class="loading"></div> Loading endpoint slices...
+            </div>
+        </div>
+    </div>
+
+    <!-- Other Resources -->
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔗 Reference Grants</h2>
+        </div>
+        <div class="card-body">
+            <p>ReferenceGrant resources allow cross-namespace references in Gateway API.</p>
+            <div id="referencegrants-list">
+                <div class="loading"></div> Loading reference grants...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔍 HTTP Route Filters</h2>
+        </div>
+        <div class="card-body">
+            <p>HTTPRouteFilter resources define custom filters for HTTP routes.</p>
+            <div id="httproutefilters-list">
+                <div class="loading"></div> Loading HTTP route filters...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">⚙️ Envoy Proxies</h2>
+        </div>
+        <div class="card-body">
+            <p>EnvoyProxy resources define Envoy proxy configuration and deployment settings.</p>
+            <div id="envoyproxies-list">
+                <div class="loading"></div> Loading Envoy proxies...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔙 Backends</h2>
+        </div>
+        <div class="card-body">
+            <p>Backend resources define backend service configurations.</p>
+            <div id="backends-list">
+                <div class="loading"></div> Loading backends...
+            </div>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">📤 Service Imports</h2>
+        </div>
+        <div class="card-body">
+            <p>ServiceImport resources define imported services from other clusters.</p>
+            <div id="serviceimports-list">
+                <div class="loading"></div> Loading service imports...
+            </div>
+        </div>
+    </div>
+
+</div>
+
+
+
+<script>
+
+</script>
+{{end}}
diff --git a/internal/admin/console/templates/index.html b/internal/admin/console/templates/index.html
new file mode 100644
index 000000000..24ed4ff48
--- /dev/null
+++ b/internal/admin/console/templates/index.html
@@ -0,0 +1,110 @@
+{{template "base.html" .}}
+
+{{define "index-content"}}
+<div class="card">
+    <div class="card-header">
+        <h1 class="card-title">{{.Title}}</h1>
+        <div style="display: flex; align-items: center; gap: 1rem;">
+            <label>
+                <input type="checkbox" id="auto-refresh"> Auto-refresh (30s)
+            </label>
+            <button class="btn btn-secondary" onclick="EnvoyGatewayAdmin.refresh()">
+                Refresh
+            </button>
+        </div>
+    </div>
+    <div class="card-body">
+        <p>Welcome to the Envoy Gateway Admin Console. This interface provides access to various administrative functions and monitoring capabilities.</p>
+        
+        <div id="system-info">
+            <div class="loading"></div> Loading system information...
+        </div>
+    </div>
+</div>
+
+<div class="dashboard-grid">
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🖥️ Server Information</h2>
+        </div>
+        <div class="card-body">
+            <p>View detailed information about the Envoy Gateway server status, components, and runtime information.</p>
+            <a href="/server_info" class="btn">View Server Info</a>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">⚙️ Configuration Dump</h2>
+        </div>
+        <div class="card-body">
+            <p>Access the current configuration state including Gateways, HTTPRoutes, and other resources.</p>
+            <a href="/config_dump" class="btn">View Config Dump</a>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">📊 Statistics</h2>
+        </div>
+        <div class="card-body">
+            <p>Monitor performance metrics and statistics from the Envoy Gateway control plane.</p>
+            <a href="/stats" class="btn">View Statistics</a>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h2 class="card-title">🔍 Performance Profiling</h2>
+        </div>
+        <div class="card-body">
+            <p>Access pprof endpoints for performance analysis and debugging.</p>
+            <a href="/pprof" class="btn">View Profiling</a>
+        </div>
+    </div>
+</div>
+
+<div class="card">
+    <div class="card-header">
+        <h2 class="card-title">📚 Quick Links</h2>
+    </div>
+    <div class="card-body">
+        <div class="quick-links-grid">
+            <div class="quick-links-section">
+                <h3>📖 Documentation</h3>
+                <div class="quick-links-list">
+                    <a href="https://gateway.envoyproxy.io/" target="_blank" class="quick-link">
+                        <span class="quick-link-icon">📚</span>
+                        <span class="quick-link-text">Envoy Gateway Docs</span>
+                    </a>
+                    <a href="https://gateway.envoyproxy.io/latest/api/" target="_blank" class="quick-link">
+                        <span class="quick-link-icon">🔧</span>
+                        <span class="quick-link-text">API Reference</span>
+                    </a>
+                    <a href="https://gateway.envoyproxy.io/latest/tasks/" target="_blank" class="quick-link">
+                        <span class="quick-link-icon">📝</span>
+                        <span class="quick-link-text">Tasks & Tutorials</span>
+                    </a>
+                </div>
+            </div>
+            <div class="quick-links-section">
+                <h3>👥 Community</h3>
+                <div class="quick-links-list">
+                    <a href="https://github.com/envoyproxy/gateway" target="_blank" class="quick-link">
+                        <span class="quick-link-icon">🐙</span>
+                        <span class="quick-link-text">GitHub Repository</span>
+                    </a>
+                    <a href="https://github.com/envoyproxy/gateway/issues" target="_blank" class="quick-link">
+                        <span class="quick-link-icon">🐛</span>
+                        <span class="quick-link-text">Issue Tracker</span>
+                    </a>
+                    <a href="https://envoyproxy.slack.com/" target="_blank" class="quick-link">
+                        <span class="quick-link-icon">💬</span>
+                        <span class="quick-link-text">Slack Community</span>
+                    </a>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+{{end}}
diff --git a/internal/admin/console/templates/pprof.html b/internal/admin/console/templates/pprof.html
new file mode 100644
index 000000000..66c919066
--- /dev/null
+++ b/internal/admin/console/templates/pprof.html
@@ -0,0 +1,118 @@
+{{template "base.html" .}}
+
+{{define "pprof-content"}}
+<div class="card">
+    <div class="card-header">
+        <h1 class="card-title">{{.Title}}</h1>
+    </div>
+    <div class="card-body">
+        {{if .EnablePprof}}
+        <p>Performance profiling endpoints are available for debugging and performance analysis.</p>
+        
+        <div class="info-box">
+            <div>
+                <strong>Status:</strong> <span class="status running">Enabled</span>
+            </div>
+        </div>
+
+        <div class="dashboard-grid">
+            <div class="card">
+                <div class="card-header">
+                    <h2 class="card-title">🔍 CPU Profile</h2>
+                </div>
+                <div class="card-body">
+                    <p>CPU profiling shows where the program spends its time while actively consuming CPU cycles.</p>
+                    <a href="/debug/pprof/profile" class="btn" target="_blank">Download CPU Profile</a>
+                </div>
+            </div>
+
+            <div class="card">
+                <div class="card-header">
+                    <h2 class="card-title">🧠 Memory Heap</h2>
+                </div>
+                <div class="card-body">
+                    <p>Heap profiling reports memory allocation samples for monitoring current and historical memory usage.</p>
+                    <a href="/debug/pprof/heap" class="btn" target="_blank">Download Heap Profile</a>
+                </div>
+            </div>
+
+            <div class="card">
+                <div class="card-header">
+                    <h2 class="card-title">🔄 Goroutines</h2>
+                </div>
+                <div class="card-body">
+                    <p>Stack traces of all current goroutines.</p>
+                    <a href="/debug/pprof/goroutine" class="btn" target="_blank">View Goroutines</a>
+                </div>
+            </div>
+
+            <div class="card">
+                <div class="card-header">
+                    <h2 class="card-title">🔒 Mutex</h2>
+                </div>
+                <div class="card-body">
+                    <p>Stack traces of holders of contended mutexes.</p>
+                    <a href="/debug/pprof/mutex" class="btn" target="_blank">View Mutex Profile</a>
+                </div>
+            </div>
+
+            <div class="card">
+                <div class="card-header">
+                    <h2 class="card-title">🚫 Block</h2>
+                </div>
+                <div class="card-body">
+                    <p>Stack traces that led to blocking on synchronization primitives.</p>
+                    <a href="/debug/pprof/block" class="btn" target="_blank">View Block Profile</a>
+                </div>
+            </div>
+
+            <div class="card">
+                <div class="card-header">
+                    <h2 class="card-title">📊 All Profiles</h2>
+                </div>
+                <div class="card-body">
+                    <p>Index page with links to all available profiles.</p>
+                    <a href="/debug/pprof/" class="btn" target="_blank">View All Profiles</a>
+                </div>
+            </div>
+        </div>
+
+        <div class="card">
+            <div class="card-header">
+                <h2 class="card-title">💡 Usage Tips</h2>
+            </div>
+            <div class="card-body">
+                <ul>
+                    <li><strong>CPU Profile:</strong> Use <code>go tool pprof &lt;profile-url&gt;</code> to analyze CPU usage</li>
+                    <li><strong>Memory Heap:</strong> Identify memory leaks and high memory usage patterns</li>
+                    <li><strong>Goroutines:</strong> Debug goroutine leaks and concurrency issues</li>
+                    <li><strong>Mutex/Block:</strong> Find contention points in your application</li>
+                </ul>
+                
+                <div class="code">
+# Example: Analyze CPU profile
+go tool pprof http://localhost:19000/debug/pprof/profile
+
+# Example: Analyze heap profile  
+go tool pprof http://localhost:19000/debug/pprof/heap
+
+# Example: View goroutines in browser
+go tool pprof -http=:8080 http://localhost:19000/debug/pprof/goroutine
+                </div>
+            </div>
+        </div>
+        {{else}}
+        <div class="info-box warning">
+            <div>
+                <strong>Status:</strong> <span class="status warning">Disabled</span>
+            </div>
+            <div>
+                pprof endpoints are currently disabled. Enable them in the Envoy Gateway configuration.
+            </div>
+        </div>
+
+
+        {{end}}
+    </div>
+</div>
+{{end}}
diff --git a/internal/admin/console/templates/server_info.html b/internal/admin/console/templates/server_info.html
new file mode 100644
index 000000000..fbaccd9ad
--- /dev/null
+++ b/internal/admin/console/templates/server_info.html
@@ -0,0 +1,43 @@
+{{template "base.html" .}}
+
+{{define "server-info-content"}}
+<div class="card">
+    <div class="card-header">
+        <h1 class="card-title">{{.Title}}</h1>
+        <div style="display: flex; align-items: center; gap: 1rem;">
+            <label>
+                <input type="checkbox" id="auto-refresh"> Auto-refresh (30s)
+            </label>
+            <button class="btn btn-secondary" onclick="EnvoyGatewayAdmin.refresh()">
+                Refresh
+            </button>
+        </div>
+    </div>
+    <div class="card-body">
+        <p>This page displays detailed information about the Envoy Gateway server status and components.</p>
+
+        <div id="server-info">
+            <div class="loading"></div> Loading server information...
+        </div>
+    </div>
+</div>
+
+
+
+
+
+
+<div class="card">
+    <div class="card-header">
+        <h2 class="card-title">⚙️ EnvoyGateway Configuration</h2>
+    </div>
+    <div class="card-body">
+        <p>Current EnvoyGateway configuration loaded from the config file or defaults.</p>
+
+        <div id="envoy-gateway-config">
+            <div class="loading"></div> Loading EnvoyGateway configuration...
+        </div>
+    </div>
+</div>
+
+{{end}}
diff --git a/internal/admin/console/templates/stats.html b/internal/admin/console/templates/stats.html
new file mode 100644
index 000000000..42e1ea336
--- /dev/null
+++ b/internal/admin/console/templates/stats.html
@@ -0,0 +1,102 @@
+{{template "base.html" .}}
+
+{{define "stats-content"}}
+<div class="card">
+    <div class="card-header">
+        <h1 class="card-title">{{.Title}}</h1>
+    </div>
+    <div class="card-body">
+        <p>This page provides access to Envoy Gateway statistics and metrics. Metrics are exposed in Prometheus format for monitoring and alerting.</p>
+
+        <div class="info-box">
+            <div>
+                <strong>Metrics Endpoint:</strong><br>
+                <a href="/api/metrics" target="_blank">/api/metrics</a> (Available on Admin Port)
+            </div>
+            <div>
+                <a href="/api/metrics" class="btn btn-primary" target="_blank">
+                    📊 View Metrics
+                </a>
+            </div>
+        </div>
+    </div>
+</div>
+
+<div class="card">
+    <div class="card-header">
+        <h2 class="card-title">📈 Metrics Categories</h2>
+    </div>
+    <div class="card-body">
+        <p>Envoy Gateway exports metrics in six main categories to monitor different aspects of the control plane:</p>
+    </div>
+</div>
+
+<div class="dashboard-grid">
+    <div class="card">
+        <div class="card-header">
+            <h3 class="card-title">🔄 Watching Components</h3>
+        </div>
+        <div class="card-body">
+            <p><strong>Core Function:</strong> Monitor the internal event-driven architecture of Envoy Gateway components.</p>
+
+            <p><em>Components: Gateway API Translator, Infrastructure Manager, xDS Server, xDS Translator, Global RateLimit</em></p>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h3 class="card-title">📝 Status Updater</h3>
+        </div>
+        <div class="card-body">
+            <p><strong>Core Function:</strong> Track status updates for Gateway API resources to ensure proper resource state management.</p>
+
+            <p><em>Resources: GatewayClass, Gateway, HTTPRoute, GRPCRoute, TLSRoute, etc.</em></p>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h3 class="card-title">🌐 xDS Server</h3>
+        </div>
+        <div class="card-body">
+            <p><strong>Core Function:</strong> Monitor the xDS (Discovery Service) server that provides configuration to Envoy proxies.</p>
+
+            <p><em>Critical for proxy configuration delivery and connection health</em></p>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h3 class="card-title">🏗️ Infrastructure Manager</h3>
+        </div>
+        <div class="card-body">
+            <p><strong>Core Function:</strong> Monitor Kubernetes resource operations performed by Envoy Gateway.</p>
+
+            <p><em>Tracks Deployments, Services, ConfigMaps, and other Kubernetes resources</em></p>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h3 class="card-title">🔧 Wasm</h3>
+        </div>
+        <div class="card-body">
+            <p><strong>Core Function:</strong> Monitor WebAssembly extension management and remote fetch operations.</p>
+
+            <p><em>Essential for custom extension performance and availability</em></p>
+        </div>
+    </div>
+
+    <div class="card">
+        <div class="card-header">
+            <h3 class="card-title">🗺️ Topology Injector</h3>
+        </div>
+        <div class="card-body">
+            <p><strong>Core Function:</strong> Monitor the webhook that injects node topology information into EnvoyProxy pods.</p>
+
+            <p><em>Critical for multi-zone deployments and traffic locality optimization</em></p>
+        </div>
+    </div>
+</div>
+
+{{end}}
diff --git a/internal/admin/server.go b/internal/admin/server.go
index 3bb301acc..9da741596 100644
--- a/internal/admin/server.go
+++ b/internal/admin/server.go
@@ -13,17 +13,26 @@ import (
 
 	"github.com/davecgh/go-spew/spew"
 
+	"github.com/envoyproxy/gateway/internal/admin/console"
 	"github.com/envoyproxy/gateway/internal/envoygateway/config"
+	"github.com/envoyproxy/gateway/internal/message"
 )
 
+type Config struct {
+	Server            config.Server
+	ProviderResources *message.ProviderResources
+}
+
 type Runner struct {
-	cfg    *config.Server
-	server *http.Server
+	cfg               *config.Server
+	server            *http.Server
+	providerResources *message.ProviderResources
 }
 
-func New(cfg *config.Server) *Runner {
+func New(cfg *Config) *Runner {
 	return &Runner{
-		cfg: cfg,
+		cfg:               &cfg.Server,
+		providerResources: cfg.ProviderResources,
 	}
 }
 
@@ -53,10 +62,15 @@ func (r *Runner) Close() error {
 func (r *Runner) start() error {
 	handlers := http.NewServeMux()
 	address := r.cfg.EnvoyGateway.GetEnvoyGatewayAdminAddress()
-	enablePprof := r.cfg.EnvoyGateway.GetEnvoyGatewayAdmin().EnablePprof
+	adminConfig := r.cfg.EnvoyGateway.GetEnvoyGatewayAdmin()
+	enablePprof := adminConfig.EnablePprof
 
 	adminLogger := r.cfg.Logger.WithName("admin")
-	adminLogger.Info("starting admin server", "address", address, "enablePprof", enablePprof)
+	adminLogger.Info("starting admin server", "address", address, "enablePprof", enablePprof, "enableConsole", true)
+
+	// Register console handlers (always enabled)
+	consoleHandler := console.NewHandler(r.cfg, r.providerResources)
+	consoleHandler.RegisterRoutes(handlers)
 
 	if enablePprof {
 		// Serve pprof endpoints to aid in live debugging.
diff --git a/internal/cmd/egctl/dashboard.go b/internal/cmd/egctl/dashboard.go
index 349662dbe..67994c449 100644
--- a/internal/cmd/egctl/dashboard.go
+++ b/internal/cmd/egctl/dashboard.go
@@ -18,6 +18,7 @@ func newDashboardCommand() *cobra.Command {
 	}
 
 	c.AddCommand(newEnvoyDashboardCmd())
+	c.AddCommand(newEnvoyGatewayDashboardCmd())
 
 	return c
 }
diff --git a/internal/cmd/egctl/dashboard_envoy_gateway.go b/internal/cmd/egctl/dashboard_envoy_gateway.go
new file mode 100644
index 000000000..be6bb6ece
--- /dev/null
+++ b/internal/cmd/egctl/dashboard_envoy_gateway.go
@@ -0,0 +1,105 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package egctl
+
+import (
+	"fmt"
+	"io"
+
+	"github.com/spf13/cobra"
+	"k8s.io/apimachinery/pkg/types"
+
+	kube "github.com/envoyproxy/gateway/internal/kubernetes"
+)
+
+const (
+	// envoyGatewayAdminPort is the port for the Envoy Gateway admin server
+	envoyGatewayAdminPort = 19000
+)
+
+func newEnvoyGatewayDashboardCmd() *cobra.Command {
+	var namespace string
+	var listenPort int
+
+	dashboardCmd := &cobra.Command{
+		Use:   "envoy-gateway",
+		Short: "Open Envoy Gateway admin console in your browser",
+		Long:  `Open Envoy Gateway admin console in your browser.`,
+		Example: `  # Open Envoy Gateway admin console in your browser.
+  egctl x dashboard envoy-gateway
+
+  # Open Envoy Gateway admin console with a specific namespace
+  egctl x dashboard envoy-gateway -n custom-namespace
+
+  # Open Envoy Gateway admin console with a specific port
+  egctl x dashboard envoy-gateway --port 8080
+`,
+		Aliases: []string{"eg"},
+		RunE: func(c *cobra.Command, args []string) error {
+			if listenPort > 65535 || listenPort < 0 {
+				return fmt.Errorf("invalid port number range")
+			}
+
+			kubeClient, err := getCLIClient()
+			if err != nil {
+				return err
+			}
+
+			// Find the Envoy Gateway deployment pod
+			labelSelectors := []string{"control-plane=envoy-gateway"}
+			pl, err := kubeClient.PodsForSelector(namespace, labelSelectors...)
+			if err != nil {
+				return fmt.Errorf("not able to locate Envoy Gateway pod: %w", err)
+			}
+			if len(pl.Items) < 1 {
+				return fmt.Errorf("no Envoy Gateway pods found in namespace %s", namespace)
+			}
+
+			podName := pl.Items[0].Name
+			fmt.Fprintf(c.OutOrStdout(), "Found Envoy Gateway pod: %s\n", podName)
+
+			return forwardToEnvoyGatewayAdmin(podName, namespace, listenPort, kubeClient, c.OutOrStdout())
+		},
+	}
+
+	dashboardCmd.PersistentFlags().StringVarP(&namespace, "namespace", "n", "envoy-gateway-system", "Namespace where Envoy Gateway is installed.")
+	dashboardCmd.PersistentFlags().IntVarP(&listenPort, "port", "p", 0, "Local port to listen to.")
+
+	return dashboardCmd
+}
+
+// forwardToEnvoyGatewayAdmin forwards a local port to the Envoy Gateway admin port
+func forwardToEnvoyGatewayAdmin(podName, namespace string, listenPort int, client kube.CLIClient, writer io.Writer) error {
+	meta := types.NamespacedName{
+		Namespace: namespace,
+		Name:      podName,
+	}
+
+	fmt.Fprintf(writer, "Setting up port-forward to Envoy Gateway admin server...\n")
+
+	fw, err := kube.NewLocalPortForwarder(client, meta, listenPort, envoyGatewayAdminPort)
+	if err != nil {
+		return fmt.Errorf("could not build port forwarder for Envoy Gateway: %w", err)
+	}
+
+	if err = fw.Start(); err != nil {
+		fw.Stop()
+		return fmt.Errorf("could not start port forwarder for Envoy Gateway: %w", err)
+	}
+
+	ClosePortForwarderOnInterrupt(fw)
+
+	url := fmt.Sprintf("http://%s", fw.Address())
+	fmt.Fprintf(writer, "Envoy Gateway admin console URL: %s\n", url)
+	fmt.Fprintf(writer, "Opening browser to access the Envoy Gateway admin console...\n")
+	fmt.Fprintf(writer, "Press Ctrl+C to quit\n")
+
+	openBrowser(url, writer)
+
+	fw.WaitForStop()
+
+	return nil
+}
diff --git a/internal/cmd/server.go b/internal/cmd/server.go
index 618b221ff..6ba9f77b9 100644
--- a/internal/cmd/server.go
+++ b/internal/cmd/server.go
@@ -215,7 +215,10 @@ func startRunners(ctx context.Context, cfg *config.Server) (err error) {
 		{
 			// Start the Admin Server
 			// It provides admin endpoints including pprof for debugging.
-			runner: admin.New(cfg),
+			runner: admin.New(&admin.Config{
+				Server:            *cfg,
+				ProviderResources: channels.pResources,
+			}),
 		},
 		{
 			// Start the Metrics Server
diff --git a/internal/extension/registry/extension_manager.go b/internal/extension/registry/extension_manager.go
index f0c8c059b..73ab0c05d 100644
--- a/internal/extension/registry/extension_manager.go
+++ b/internal/extension/registry/extension_manager.go
@@ -135,6 +135,16 @@ func (m *Manager) FailOpen() bool {
 	return m.extension.FailOpen
 }
 
+// GetTranslationHookConfig returns the translation hook configuration.
+func (m *Manager) GetTranslationHookConfig() *egv1a1.TranslationConfig {
+	if m.extension.Hooks == nil ||
+		m.extension.Hooks.XDSTranslator == nil ||
+		m.extension.Hooks.XDSTranslator.Translation == nil {
+		return nil
+	}
+	return m.extension.Hooks.XDSTranslator.Translation
+}
+
 // HasExtension checks to see whether a given Group and Kind has an
 // associated extension registered for it.
 func (m *Manager) HasExtension(g gwapiv1.Group, k gwapiv1.Kind) bool {
diff --git a/internal/extension/registry/xds_hook.go b/internal/extension/registry/xds_hook.go
index 77abcaa3a..27ffa5c3b 100644
--- a/internal/extension/registry/xds_hook.go
+++ b/internal/extension/registry/xds_hook.go
@@ -129,7 +129,7 @@ func (h *XDSHook) PostHTTPListenerModifyHook(l *listener.Listener, extensionReso
 	return resp.Listener, nil
 }
 
-func (h *XDSHook) PostTranslateModifyHook(clusters []*cluster.Cluster, secrets []*tls.Secret, extensionPolicies []*ir.UnstructuredRef) ([]*cluster.Cluster, []*tls.Secret, error) {
+func (h *XDSHook) PostTranslateModifyHook(clusters []*cluster.Cluster, secrets []*tls.Secret, listeners []*listener.Listener, routes []*route.RouteConfiguration, extensionPolicies []*ir.UnstructuredRef) ([]*cluster.Cluster, []*tls.Secret, []*listener.Listener, []*route.RouteConfiguration, error) {
 	// Make the request to the extension server
 	// Take all of the unstructured resources for the extension and package them into bytes
 	unstructuredPolicies := make([]*unstructured.Unstructured, len(extensionPolicies))
@@ -139,7 +139,7 @@ func (h *XDSHook) PostTranslateModifyHook(clusters []*cluster.Cluster, secrets [
 	// Convert the unstructured policies to bytes
 	extensionPoliciesBytes, err := translateUnstructuredToUnstructuredBytes(unstructuredPolicies)
 	if err != nil {
-		return nil, nil, err
+		return nil, nil, nil, nil, err
 	}
 
 	ctx := context.Background()
@@ -148,12 +148,14 @@ func (h *XDSHook) PostTranslateModifyHook(clusters []*cluster.Cluster, secrets [
 			PostTranslateContext: &extension.PostTranslateExtensionContext{
 				ExtensionResources: extensionPoliciesBytes,
 			},
-			Clusters: clusters,
-			Secrets:  secrets,
+			Clusters:  clusters,
+			Secrets:   secrets,
+			Listeners: listeners,
+			Routes:    routes,
 		})
 	if err != nil {
-		return nil, nil, err
+		return nil, nil, nil, nil, err
 	}
 
-	return resp.Clusters, resp.Secrets, nil
+	return resp.Clusters, resp.Secrets, resp.Listeners, resp.Routes, nil
 }
diff --git a/internal/extension/types/hooks.go b/internal/extension/types/hooks.go
index eb2903824..7c29597d0 100644
--- a/internal/extension/types/hooks.go
+++ b/internal/extension/types/hooks.go
@@ -47,11 +47,12 @@ type XDSHookClient interface {
 	// in order to not make any changes to it.
 	PostHTTPListenerModifyHook(listener *listener.Listener, extensionResources []*unstructured.Unstructured) (*listener.Listener, error)
 
-	// PostTranslateModifyHook allows an extension to modify the clusters and secrets in the xDS config.
-	// This allows for inserting clusters that may change along with extension specific configuration to be dynamically created rather than
-	// using custom bootstrap config which would be sufficient for clusters that are static and not prone to have their configurations changed.
-	// An example of how this may be used is to inject a cluster that will be used by an ext_authz http filter created by the extension.
-	// The list of clusters and secrets returned by the extension are used as the final list of all clusters and secrets
+	// PostTranslateModifyHook allows an extension to modify the clusters, secrets, listeners, and routes in the xDS config.
+	// This allows for inserting clusters, listeners, and routes that may change along with extension specific configuration to be dynamically created rather than
+	// using custom bootstrap config which would be sufficient for resources that are static and not prone to have their configurations changed.
+	// An example of how this may be used is to inject a cluster that will be used by an ext_authz http filter created by the extension,
+	// or to modify listeners to add custom filters, or to modify routes for advanced routing logic.
+	// The list of clusters, secrets, listeners, and routes returned by the extension are used as the final list of all these resources
 	// PostTranslateModifyHook is always executed when an extension is loaded
-	PostTranslateModifyHook([]*cluster.Cluster, []*tls.Secret, []*ir.UnstructuredRef) ([]*cluster.Cluster, []*tls.Secret, error)
+	PostTranslateModifyHook([]*cluster.Cluster, []*tls.Secret, []*listener.Listener, []*route.RouteConfiguration, []*ir.UnstructuredRef) ([]*cluster.Cluster, []*tls.Secret, []*listener.Listener, []*route.RouteConfiguration, error)
 }
diff --git a/internal/extension/types/manager.go b/internal/extension/types/manager.go
index 287a6bba7..d14e2e35a 100644
--- a/internal/extension/types/manager.go
+++ b/internal/extension/types/manager.go
@@ -35,4 +35,7 @@ type Manager interface {
 
 	// FailOpen returns true if the extension manager is configured to fail open, and false otherwise.
 	FailOpen() bool
+
+	// GetTranslationHookConfig returns the translation hook configuration.
+	GetTranslationHookConfig() *egv1a1.TranslationConfig
 }
diff --git a/internal/gatewayapi/clustersettings.go b/internal/gatewayapi/clustersettings.go
index 1b2b806d9..8fe0d4178 100644
--- a/internal/gatewayapi/clustersettings.go
+++ b/internal/gatewayapi/clustersettings.go
@@ -400,6 +400,7 @@ func buildActiveHealthCheck(policy egv1a1.HealthCheck) *ir.ActiveHealthCheck {
 	irHC := &ir.ActiveHealthCheck{
 		Timeout:            hc.Timeout,
 		Interval:           hc.Interval,
+		InitialJitter:      hc.InitialJitter,
 		UnhealthyThreshold: hc.UnhealthyThreshold,
 		HealthyThreshold:   hc.HealthyThreshold,
 	}
diff --git a/internal/gatewayapi/filters.go b/internal/gatewayapi/filters.go
index c2e52bb98..631de3247 100644
--- a/internal/gatewayapi/filters.go
+++ b/internal/gatewayapi/filters.go
@@ -212,20 +212,28 @@ func (t *Translator) processURLRewriteFilter(
 		return
 	}
 
-	newURLRewrite := &ir.URLRewrite{}
-
 	if rewrite.Hostname != nil {
 		if err := t.validateHostname(string(*rewrite.Hostname)); err != nil {
 			updateRouteStatusForFilter(filterContext, err.Error())
 			return
 		}
 		redirectHost := string(*rewrite.Hostname)
-		newURLRewrite.Host = &ir.HTTPHostModifier{
-			Name: &redirectHost,
+		if filterContext.URLRewrite == nil {
+			filterContext.URLRewrite = &ir.URLRewrite{
+				Host: &ir.HTTPHostModifier{
+					Name: &redirectHost,
+				},
+			}
+		} else if filterContext.URLRewrite.Host == nil {
+			filterContext.URLRewrite.Host = &ir.HTTPHostModifier{
+				Name: &redirectHost,
+			}
 		}
 	}
 
 	if rewrite.Path != nil {
+		var pathModifier *ir.ExtendedHTTPPathModifier
+
 		switch rewrite.Path.Type {
 		case gwapiv1.FullPathHTTPPathModifier:
 			if rewrite.Path.ReplacePrefixMatch != nil {
@@ -241,7 +249,7 @@ func (t *Translator) processURLRewriteFilter(
 				return
 			}
 			if rewrite.Path.ReplaceFullPath != nil {
-				newURLRewrite.Path = &ir.ExtendedHTTPPathModifier{
+				pathModifier = &ir.ExtendedHTTPPathModifier{
 					HTTPPathModifier: ir.HTTPPathModifier{
 						FullReplace: rewrite.Path.ReplaceFullPath,
 					},
@@ -261,7 +269,7 @@ func (t *Translator) processURLRewriteFilter(
 				return
 			}
 			if rewrite.Path.ReplacePrefixMatch != nil {
-				newURLRewrite.Path = &ir.ExtendedHTTPPathModifier{
+				pathModifier = &ir.ExtendedHTTPPathModifier{
 					HTTPPathModifier: ir.HTTPPathModifier{
 						PrefixMatchReplace: rewrite.Path.ReplacePrefixMatch,
 					},
@@ -275,9 +283,14 @@ func (t *Translator) processURLRewriteFilter(
 					rewrite.Path.Type))
 			return
 		}
+		if filterContext.URLRewrite == nil {
+			filterContext.URLRewrite = &ir.URLRewrite{
+				Path: pathModifier,
+			}
+		} else if filterContext.URLRewrite.Path == nil {
+			filterContext.URLRewrite.Path = pathModifier
+		}
 	}
-
-	filterContext.URLRewrite = newURLRewrite
 }
 
 func (t *Translator) processRedirectFilter(
diff --git a/internal/gatewayapi/route.go b/internal/gatewayapi/route.go
index 1178d3431..cfc2272a6 100644
--- a/internal/gatewayapi/route.go
+++ b/internal/gatewayapi/route.go
@@ -55,9 +55,17 @@ type RoutesTranslator interface {
 func (t *Translator) ProcessHTTPRoutes(httpRoutes []*gwapiv1.HTTPRoute, gateways []*GatewayContext, resources *resource.Resources, xdsIR resource.XdsIRMap) []*HTTPRouteContext {
 	var relevantHTTPRoutes []*HTTPRouteContext
 
-	// always sort initially by creation time stamp. Later on, additional sorting based on matcher type and
-	// match length may occur.
+	// Initially, httpRoutes sort by creation timestamp
+	// or sort alphabetically by “{namespace}/{name}” if multiple routes share same timestamp.
+	// Later on, additional sorting based on matcher type and match length may occur.
 	sort.Slice(httpRoutes, func(i, j int) bool {
+		if httpRoutes[i].CreationTimestamp.Equal(&(httpRoutes[j].CreationTimestamp)) {
+			routeKeyI := fmt.Sprintf("%s/%s", httpRoutes[i].Namespace, httpRoutes[i].Name)
+			routeKeyJ := fmt.Sprintf("%s/%s", httpRoutes[j].Namespace, httpRoutes[j].Name)
+			return routeKeyI < routeKeyJ
+		}
+		// Not identical CreationTimestamps
+
 		return httpRoutes[i].CreationTimestamp.Before(&(httpRoutes[j].CreationTimestamp))
 	})
 
diff --git a/internal/gatewayapi/sort.go b/internal/gatewayapi/sort.go
index bd859d6c0..922013b4b 100644
--- a/internal/gatewayapi/sort.go
+++ b/internal/gatewayapi/sort.go
@@ -107,7 +107,7 @@ func sortXdsIRMap(xdsIR resource.XdsIRMap) {
 		for _, http := range irItem.HTTP {
 			if !http.PreserveRouteOrder {
 				// descending order
-				sort.Sort(sort.Reverse(XdsIRRoutes(http.Routes)))
+				sort.Stable(sort.Reverse(XdsIRRoutes(http.Routes)))
 			}
 		}
 	}
diff --git a/internal/ir/xds.go b/internal/ir/xds.go
index e5ffefc02..17f6ff50c 100644
--- a/internal/ir/xds.go
+++ b/internal/ir/xds.go
@@ -16,6 +16,7 @@ import (
 	"net/http"
 	"net/netip"
 	"reflect"
+	"time"
 
 	"golang.org/x/exp/slices"
 	apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@@ -24,6 +25,7 @@ import (
 	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 	"k8s.io/apimachinery/pkg/util/sets"
 	"k8s.io/apimachinery/pkg/util/validation"
+	gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
 	gwapiv1a2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
 	"sigs.k8s.io/yaml"
 
@@ -65,6 +67,7 @@ var (
 	ErrLoadBalancerInvalid                      = errors.New("loadBalancer setting is invalid, only one setting can be set")
 	ErrHealthCheckTimeoutInvalid                = errors.New("field HealthCheck.Timeout must be specified")
 	ErrHealthCheckIntervalInvalid               = errors.New("field HealthCheck.Interval must be specified")
+	ErrHealthCheckInitialJitterInvalid          = errors.New("field HealthCheck.InitialJitter should be greater than or equal to 0")
 	ErrHealthCheckUnhealthyThresholdInvalid     = errors.New("field HealthCheck.UnhealthyThreshold should be greater than 0")
 	ErrHealthCheckHealthyThresholdInvalid       = errors.New("field HealthCheck.HealthyThreshold should be greater than 0")
 	ErrHealthCheckerInvalid                     = errors.New("health checker setting is invalid, only one health checker can be set")
@@ -2647,6 +2650,8 @@ type ActiveHealthCheck struct {
 	Timeout *metav1.Duration `json:"timeout"`
 	// Interval defines the time between active health checks.
 	Interval *metav1.Duration `json:"interval"`
+	// InitialJitter defines the initial jitter to apply to the health check interval.
+	InitialJitter *gwapiv1.Duration `json:"initialJitter,omitempty"`
 	// UnhealthyThreshold defines the number of unhealthy health checks required before a backend host is marked unhealthy.
 	UnhealthyThreshold *uint32 `json:"unhealthyThreshold"`
 	// HealthyThreshold defines the number of healthy health checks required before a backend host is marked healthy.
@@ -2675,6 +2680,11 @@ func (h *HealthCheck) Validate() error {
 		if h.Active.Interval != nil && h.Active.Interval.Duration == 0 {
 			errs = errors.Join(errs, ErrHealthCheckIntervalInvalid)
 		}
+		if h.Active.InitialJitter != nil {
+			if d, err := time.ParseDuration(string(*h.Active.InitialJitter)); err != nil || d < 0 {
+				errs = errors.Join(errs, ErrHealthCheckInitialJitterInvalid)
+			}
+		}
 		if h.Active.UnhealthyThreshold != nil && *h.Active.UnhealthyThreshold == 0 {
 			errs = errors.Join(errs, ErrHealthCheckUnhealthyThresholdInvalid)
 		}
@@ -2901,6 +2911,7 @@ const (
 	Error5XX             = TriggerEnum(egv1a1.Error5XX)
 	GatewayError         = TriggerEnum(egv1a1.GatewayError)
 	Reset                = TriggerEnum(egv1a1.Reset)
+	ResetBeforeRequest   = TriggerEnum(egv1a1.ResetBeforeRequest)
 	ConnectFailure       = TriggerEnum(egv1a1.ConnectFailure)
 	Retriable4XX         = TriggerEnum(egv1a1.Retriable4XX)
 	RefusedStream        = TriggerEnum(egv1a1.RefusedStream)
diff --git a/internal/ir/zz_generated.deepcopy.go b/internal/ir/zz_generated.deepcopy.go
index b7a3a4486..1656d84c5 100644
--- a/internal/ir/zz_generated.deepcopy.go
+++ b/internal/ir/zz_generated.deepcopy.go
@@ -13,6 +13,7 @@ import (
 	"github.com/envoyproxy/gateway/api/v1alpha1"
 	apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
 	"k8s.io/apimachinery/pkg/apis/meta/v1"
+	apisv1 "sigs.k8s.io/gateway-api/apis/v1"
 	"sigs.k8s.io/gateway-api/apis/v1alpha2"
 )
 
@@ -208,6 +209,11 @@ func (in *ActiveHealthCheck) DeepCopyInto(out *ActiveHealthCheck) {
 		*out = new(v1.Duration)
 		**out = **in
 	}
+	if in.InitialJitter != nil {
+		in, out := &in.InitialJitter, &out.InitialJitter
+		*out = new(apisv1.Duration)
+		**out = **in
+	}
 	if in.UnhealthyThreshold != nil {
 		in, out := &in.UnhealthyThreshold, &out.UnhealthyThreshold
 		*out = new(uint32)
diff --git a/internal/xds/translator/cluster.go b/internal/xds/translator/cluster.go
index 1166229e8..78378ea08 100644
--- a/internal/xds/translator/cluster.go
+++ b/internal/xds/translator/cluster.go
@@ -444,6 +444,11 @@ func buildXdsHealthCheck(healthcheck *ir.ActiveHealthCheck) []*corev3.HealthChec
 		Timeout:  durationpb.New(healthcheck.Timeout.Duration),
 		Interval: durationpb.New(healthcheck.Interval.Duration),
 	}
+	if healthcheck.InitialJitter != nil {
+		if d, err := time.ParseDuration(string(*healthcheck.InitialJitter)); err == nil {
+			hc.InitialJitter = durationpb.New(d)
+		}
+	}
 	if healthcheck.UnhealthyThreshold != nil {
 		hc.UnhealthyThreshold = wrapperspb.UInt32(*healthcheck.UnhealthyThreshold)
 	}
diff --git a/internal/xds/translator/extension.go b/internal/xds/translator/extension.go
index 82bcaba80..00d8d51f2 100644
--- a/internal/xds/translator/extension.go
+++ b/internal/xds/translator/extension.go
@@ -180,7 +180,7 @@ func processExtensionPostTranslationHook(tCtx *types.ResourceVersionTable, em *e
 	if em == nil {
 		return nil
 	}
-	// If there is a loaded extension that wants to inject clusters/secrets, then call it
+	// If there is a loaded extension that wants to inject clusters/secrets/listeners/routes, then call it
 	// while clusters can by statically added with bootstrap configuration, an extension may need to add clusters with a configuration
 	// that is non-static. If a cluster definition is unlikely to change over the course of an extension's lifetime then the custom bootstrap config
 	// is the preferred way of adding it.
@@ -193,35 +193,88 @@ func processExtensionPostTranslationHook(tCtx *types.ResourceVersionTable, em *e
 		return nil
 	}
 
-	clusters := tCtx.XdsResources[resourcev3.ClusterType]
-	oldClusters := make([]*clusterv3.Cluster, len(clusters))
-	for idx, cluster := range clusters {
-		oldClusters[idx] = cluster.(*clusterv3.Cluster)
-	}
+	// Get translation configuration and determine which resources to include
+	translationConfig := extManager.GetTranslationHookConfig()
+
+	// Determine which resources to include based on configuration
+	includeClusters := translationConfig.ShouldIncludeClusters()
+	includeSecrets := translationConfig.ShouldIncludeSecrets()
+	includeListeners := translationConfig.ShouldIncludeListeners()
+	includeRoutes := translationConfig.ShouldIncludeRoutes()
+
+	// Prepare resources based on configuration
+	var oldClusters []*clusterv3.Cluster
+	var oldSecrets []*tlsv3.Secret
+	var oldListeners []*listenerv3.Listener
+	var oldRoutes []*routev3.RouteConfiguration
 
-	secrets := tCtx.XdsResources[resourcev3.SecretType]
-	oldSecrets := make([]*tlsv3.Secret, len(secrets))
-	for idx, secret := range secrets {
-		oldSecrets[idx] = secret.(*tlsv3.Secret)
+	if includeClusters {
+		clusters := tCtx.XdsResources[resourcev3.ClusterType]
+		oldClusters = make([]*clusterv3.Cluster, len(clusters))
+		for idx, cluster := range clusters {
+			oldClusters[idx] = cluster.(*clusterv3.Cluster)
+		}
+	}
+	if includeSecrets {
+		secrets := tCtx.XdsResources[resourcev3.SecretType]
+		oldSecrets = make([]*tlsv3.Secret, len(secrets))
+		for idx, secret := range secrets {
+			oldSecrets[idx] = secret.(*tlsv3.Secret)
+		}
+	}
+	if includeListeners {
+		listeners := tCtx.XdsResources[resourcev3.ListenerType]
+		oldListeners = make([]*listenerv3.Listener, len(listeners))
+		for idx, listener := range listeners {
+			oldListeners[idx] = listener.(*listenerv3.Listener)
+		}
+	}
+	if includeRoutes {
+		routes := tCtx.XdsResources[resourcev3.RouteType]
+		oldRoutes = make([]*routev3.RouteConfiguration, len(routes))
+		for idx, route := range routes {
+			oldRoutes[idx] = route.(*routev3.RouteConfiguration)
+		}
 	}
 
-	newClusters, newSecrets, err := extensionInsertHookClient.PostTranslateModifyHook(oldClusters, oldSecrets, policies)
+	// Call the extension hook
+	newClusters, newSecrets, newListeners, newRoutes, err := extensionInsertHookClient.PostTranslateModifyHook(oldClusters, oldSecrets, oldListeners, oldRoutes, policies)
 	if err != nil {
 		return err
 	}
 
-	clusterResources := make([]resourceTypes.Resource, len(newClusters))
-	for idx, cluster := range newClusters {
-		clusterResources[idx] = cluster
+	// Update the resource table with the new resources
+	if includeListeners {
+		listenerResources := make([]resourceTypes.Resource, len(newListeners))
+		for idx, listener := range newListeners {
+			listenerResources[idx] = listener
+		}
+		tCtx.SetResources(resourcev3.ListenerType, listenerResources)
+	}
+
+	if includeRoutes {
+		routeResources := make([]resourceTypes.Resource, len(newRoutes))
+		for idx, route := range newRoutes {
+			routeResources[idx] = route
+		}
+		tCtx.SetResources(resourcev3.RouteType, routeResources)
 	}
-	tCtx.SetResources(resourcev3.ClusterType, clusterResources)
 
-	secretResources := make([]resourceTypes.Resource, len(newSecrets))
-	for idx, secret := range newSecrets {
-		secretResources[idx] = secret
+	if includeClusters {
+		clusterResources := make([]resourceTypes.Resource, len(newClusters))
+		for idx, cluster := range newClusters {
+			clusterResources[idx] = cluster
+		}
+		tCtx.SetResources(resourcev3.ClusterType, clusterResources)
 	}
 
-	tCtx.SetResources(resourcev3.SecretType, secretResources)
+	if includeSecrets {
+		secretResources := make([]resourceTypes.Resource, len(newSecrets))
+		for idx, secret := range newSecrets {
+			secretResources[idx] = secret
+		}
+		tCtx.SetResources(resourcev3.SecretType, secretResources)
+	}
 
 	return nil
 }
diff --git a/internal/xds/translator/route.go b/internal/xds/translator/route.go
index 7458145c2..9f2a5ca48 100644
--- a/internal/xds/translator/route.go
+++ b/internal/xds/translator/route.go
@@ -771,6 +771,7 @@ func buildRetryOn(triggers []ir.TriggerEnum) (string, error) {
 		ir.Error5XX:             "5xx",
 		ir.GatewayError:         "gateway-error",
 		ir.Reset:                "reset",
+		ir.ResetBeforeRequest:   "reset-before-request",
 		ir.ConnectFailure:       "connect-failure",
 		ir.Retriable4XX:         "retriable-4xx",
 		ir.RefusedStream:        "refused-stream",
diff --git a/proto/extension/service.pb.go b/proto/extension/service.pb.go
index 535666cd9..9267784e9 100644
--- a/proto/extension/service.pb.go
+++ b/proto/extension/service.pb.go
@@ -425,13 +425,15 @@ func (x *PostHTTPListenerModifyResponse) GetListener() *v32.Listener {
 	return nil
 }
 
-// PostTranslateModifyRequest currently sends only clusters and secrets to an extension.
+// PostTranslateModifyRequest sends clusters, secrets, listeners, and routes to an extension.
 // The extension is free to add/modify/remove the resources it received.
 type PostTranslateModifyRequest struct {
 	state                protoimpl.MessageState         `protogen:"open.v1"`
 	PostTranslateContext *PostTranslateExtensionContext `protobuf:"bytes,1,opt,name=post_translate_context,json=postTranslateContext,proto3" json:"post_translate_context,omitempty"`
 	Clusters             []*v31.Cluster                 `protobuf:"bytes,2,rep,name=clusters,proto3" json:"clusters,omitempty"`
 	Secrets              []*v33.Secret                  `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty"`
+	Listeners            []*v32.Listener                `protobuf:"bytes,4,rep,name=listeners,proto3" json:"listeners,omitempty"`
+	Routes               []*v3.RouteConfiguration       `protobuf:"bytes,5,rep,name=routes,proto3" json:"routes,omitempty"`
 	unknownFields        protoimpl.UnknownFields
 	sizeCache            protoimpl.SizeCache
 }
@@ -487,12 +489,28 @@ func (x *PostTranslateModifyRequest) GetSecrets() []*v33.Secret {
 	return nil
 }
 
+func (x *PostTranslateModifyRequest) GetListeners() []*v32.Listener {
+	if x != nil {
+		return x.Listeners
+	}
+	return nil
+}
+
+func (x *PostTranslateModifyRequest) GetRoutes() []*v3.RouteConfiguration {
+	if x != nil {
+		return x.Routes
+	}
+	return nil
+}
+
 // PostTranslateModifyResponse is the expected response from an extension and contains
-// the full list of xDS clusters and secrets to be used for the xDS config.
+// the full list of xDS clusters, secrets, listeners, and routes to be used for the xDS config.
 type PostTranslateModifyResponse struct {
-	state         protoimpl.MessageState `protogen:"open.v1"`
-	Clusters      []*v31.Cluster         `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
-	Secrets       []*v33.Secret          `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty"`
+	state         protoimpl.MessageState   `protogen:"open.v1"`
+	Clusters      []*v31.Cluster           `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
+	Secrets       []*v33.Secret            `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty"`
+	Listeners     []*v32.Listener          `protobuf:"bytes,3,rep,name=listeners,proto3" json:"listeners,omitempty"`
+	Routes        []*v3.RouteConfiguration `protobuf:"bytes,4,rep,name=routes,proto3" json:"routes,omitempty"`
 	unknownFields protoimpl.UnknownFields
 	sizeCache     protoimpl.SizeCache
 }
@@ -541,6 +559,20 @@ func (x *PostTranslateModifyResponse) GetSecrets() []*v33.Secret {
 	return nil
 }
 
+func (x *PostTranslateModifyResponse) GetListeners() []*v32.Listener {
+	if x != nil {
+		return x.Listeners
+	}
+	return nil
+}
+
+func (x *PostTranslateModifyResponse) GetRoutes() []*v3.RouteConfiguration {
+	if x != nil {
+		return x.Routes
+	}
+	return nil
+}
+
 var File_proto_extension_service_proto protoreflect.FileDescriptor
 
 var file_proto_extension_service_proto_rawDesc = string([]byte{
@@ -555,157 +587,176 @@ var file_proto_extension_service_proto_rawDesc = string([]byte{
 	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63,
 	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x72,
 	0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x65, 0x78, 0x74,
-	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72,
-	0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x74, 0x6c, 0x73, 0x2f, 0x76, 0x33,
-	0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x63,
-	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xad, 0x01, 0x0a,
-	0x16, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e,
+	0x66, 0x69, 0x67, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x6f, 0x75,
+	0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f,
+	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73,
+	0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x74, 0x6c, 0x73,
+	0x2f, 0x76, 0x33, 0x2f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x1a, 0x1d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+	0x6e, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
+	0xad, 0x01, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64,
+	0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f,
+	0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
+	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76,
+	0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x5f,
+	0x0a, 0x12, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e,
+	0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76,
+	0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x10, 0x70,
+	0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22,
+	0x4d, 0x0a, 0x17, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69,
+	0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f,
+	0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
+	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76,
+	0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0xbd,
+	0x01, 0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x6f,
+	0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x63,
+	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65,
+	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73,
+	0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07,
+	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x14, 0x70, 0x6f, 0x73, 0x74, 0x5f,
+	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74,
+	0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50,
+	0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x12, 0x70, 0x6f, 0x73, 0x74,
+	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x57,
+	0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64,
+	0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x63,
+	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65,
+	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73,
+	0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07,
+	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0xd9, 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74,
+	0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66,
+	0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74,
+	0x75, 0x61, 0x6c, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
+	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
+	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f,
+	0x73, 0x74, 0x52, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x12,
+	0x72, 0x0a, 0x19, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f,
+	0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
+	0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74,
+	0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e,
+	0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x16, 0x70, 0x6f, 0x73,
+	0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74,
+	0x65, 0x78, 0x74, 0x22, 0x66, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75,
+	0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f,
+	0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76,
+	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
+	0x76, 0x33, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x0b,
+	0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x22, 0xcd, 0x01, 0x0a, 0x1d,
+	0x50, 0x6f, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72,
+	0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a,
+	0x08, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c,
+	0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65,
+	0x6e, 0x65, 0x72, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x6c, 0x0a,
+	0x15, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x63,
+	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65,
+	0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65,
+	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x4c, 0x69,
+	0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43,
+	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x13, 0x70, 0x6f, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74,
+	0x65, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x60, 0x0a, 0x1e, 0x50,
+	0x6f, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d,
+	0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a,
+	0x08, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c,
+	0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65,
+	0x6e, 0x65, 0x72, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x22, 0x99, 0x03,
+	0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x4d,
+	0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6b, 0x0a, 0x16,
+	0x70, 0x6f, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x63,
+	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65,
+	0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65,
+	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c,
+	0x61, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74,
+	0x65, 0x78, 0x74, 0x52, 0x14, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61,
+	0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x6c, 0x75,
+	0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e,
+	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
+	0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63,
+	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65,
+	0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
+	0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e,
+	0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2e, 0x74, 0x6c,
+	0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63,
+	0x72, 0x65, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72,
+	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
+	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e,
+	0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x6c, 0x69, 0x73,
+	0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73,
+	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
 	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52,
-	0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x70,
-	0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
-	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67,
-	0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
-	0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
-	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74,
-	0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4d, 0x0a, 0x17,
-	0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
+	0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0xad, 0x02, 0x0a, 0x1b, 0x50, 0x6f,
+	0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66,
+	0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x6c, 0x75,
+	0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e,
+	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74,
+	0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63,
+	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65,
+	0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
+	0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e,
+	0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2e, 0x74, 0x6c,
+	0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63,
+	0x72, 0x65, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72,
+	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
+	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x2e,
+	0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x6c, 0x69, 0x73,
+	0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73,
+	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
 	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52,
-	0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x18,
-	0x50, 0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66,
-	0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73,
-	0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
-	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
-	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75,
-	0x73, 0x74, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x14, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x75,
-	0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
-	0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74,
-	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
-	0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x12, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75,
-	0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x57, 0x0a, 0x19, 0x50,
-	0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73,
-	0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
-	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
-	0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75,
-	0x73, 0x74, 0x65, 0x72, 0x22, 0xd9, 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x56, 0x69, 0x72,
-	0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c,
-	0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e,
-	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
-	0x2e, 0x76, 0x33, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x52,
-	0x0b, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x72, 0x0a, 0x19,
-	0x70, 0x6f, 0x73, 0x74, 0x5f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x68, 0x6f, 0x73,
-	0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x37, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65,
-	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x56, 0x69, 0x72,
-	0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
-	0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x16, 0x70, 0x6f, 0x73, 0x74, 0x56, 0x69,
-	0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
-	0x22, 0x66, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48,
-	0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x12, 0x45, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x68, 0x6f, 0x73,
-	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
-	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e,
-	0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x0b, 0x76, 0x69, 0x72,
-	0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x22, 0xcd, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x73,
-	0x74, 0x48, 0x54, 0x54, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x6f, 0x64,
-	0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x08, 0x6c, 0x69,
-	0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65,
-	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74,
-	0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72,
-	0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x6c, 0x0a, 0x15, 0x70, 0x6f,
-	0x73, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
-	0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
-	0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
-	0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x65,
-	0x6e, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74,
-	0x65, 0x78, 0x74, 0x52, 0x13, 0x70, 0x6f, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
-	0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x60, 0x0a, 0x1e, 0x50, 0x6f, 0x73, 0x74,
-	0x48, 0x54, 0x54, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69,
-	0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x6c, 0x69,
-	0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65,
-	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x69, 0x73, 0x74,
-	0x65, 0x6e, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72,
-	0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x22, 0x94, 0x02, 0x0a, 0x1a, 0x50,
-	0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69,
-	0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6b, 0x0a, 0x16, 0x70, 0x6f, 0x73,
-	0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
-	0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
-	0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
-	0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65,
-	0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
-	0x52, 0x14, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x43,
-	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
-	0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
-	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e,
-	0x76, 0x33, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73,
-	0x74, 0x65, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18,
-	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78,
-	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
-	0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2e, 0x74, 0x6c, 0x73, 0x2e, 0x76,
-	0x33, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74,
-	0x73, 0x22, 0xa8, 0x01, 0x0a, 0x1b, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c,
-	0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c,
-	0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12,
-	0x4b, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
-	0x6f, 0x6e, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f,
-	0x63, 0x6b, 0x65, 0x74, 0x73, 0x2e, 0x74, 0x6c, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x63,
-	0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x32, 0xa1, 0x05, 0x0a,
-	0x15, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x78, 0x74,
-	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x74, 0x0a, 0x0f, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f,
-	0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
-	0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
-	0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69,
-	0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
-	0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
-	0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69,
-	0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a,
-	0x15, 0x50, 0x6f, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74,
-	0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x34, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61,
+	0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x32, 0xa1, 0x05, 0x0a, 0x15, 0x45, 0x6e,
+	0x76, 0x6f, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+	0x69, 0x6f, 0x6e, 0x12, 0x74, 0x0a, 0x0f, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65,
+	0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61,
 	0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
-	0x50, 0x6f, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d,
-	0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65,
-	0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65,
-	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61,
-	0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x48, 0x54,
-	0x54, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79,
-	0x12, 0x35, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e,
-	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x48, 0x54,
-	0x54, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67,
-	0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
-	0x2e, 0x50, 0x6f, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
-	0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x00, 0x12, 0x7a, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
-	0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x30, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61,
+	0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61,
 	0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
-	0x50, 0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66,
-	0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
-	0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
-	0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64,
-	0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01,
-	0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x4d,
-	0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x32, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74,
+	0x50, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x50, 0x6f,
+	0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64,
+	0x69, 0x66, 0x79, 0x12, 0x34, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77,
+	0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73,
+	0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69,
+	0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
+	0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+	0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f,
+	0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x4c,
+	0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x35, 0x2e,
+	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74,
+	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x4c,
+	0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65,
+	0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f,
+	0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x4d, 0x6f,
+	0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a,
+	0x0a, 0x11, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64,
+	0x69, 0x66, 0x79, 0x12, 0x30, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77,
+	0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73,
+	0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74,
 	0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50,
+	0x6f, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x50,
 	0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69,
-	0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
-	0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
-	0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65,
-	0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
-	0x42, 0x11, 0x5a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
-	0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x66, 0x79, 0x12, 0x32, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
+	0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6f, 0x73, 0x74,
+	0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x67, 0x61,
+	0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
+	0x50, 0x6f, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64,
+	0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x11, 0x5a,
+	0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 })
 
 var (
@@ -742,6 +793,7 @@ var file_proto_extension_service_proto_goTypes = []any{
 	(*PostHTTPListenerExtensionContext)(nil), // 17: envoygateway.extension.PostHTTPListenerExtensionContext
 	(*PostTranslateExtensionContext)(nil),    // 18: envoygateway.extension.PostTranslateExtensionContext
 	(*v33.Secret)(nil),                       // 19: envoy.extensions.transport_sockets.tls.v3.Secret
+	(*v3.RouteConfiguration)(nil),            // 20: envoy.config.route.v3.RouteConfiguration
 }
 var file_proto_extension_service_proto_depIdxs = []int32{
 	10, // 0: envoygateway.extension.PostRouteModifyRequest.route:type_name -> envoy.config.route.v3.Route
@@ -759,23 +811,27 @@ var file_proto_extension_service_proto_depIdxs = []int32{
 	18, // 12: envoygateway.extension.PostTranslateModifyRequest.post_translate_context:type_name -> envoygateway.extension.PostTranslateExtensionContext
 	12, // 13: envoygateway.extension.PostTranslateModifyRequest.clusters:type_name -> envoy.config.cluster.v3.Cluster
 	19, // 14: envoygateway.extension.PostTranslateModifyRequest.secrets:type_name -> envoy.extensions.transport_sockets.tls.v3.Secret
-	12, // 15: envoygateway.extension.PostTranslateModifyResponse.clusters:type_name -> envoy.config.cluster.v3.Cluster
-	19, // 16: envoygateway.extension.PostTranslateModifyResponse.secrets:type_name -> envoy.extensions.transport_sockets.tls.v3.Secret
-	0,  // 17: envoygateway.extension.EnvoyGatewayExtension.PostRouteModify:input_type -> envoygateway.extension.PostRouteModifyRequest
-	4,  // 18: envoygateway.extension.EnvoyGatewayExtension.PostVirtualHostModify:input_type -> envoygateway.extension.PostVirtualHostModifyRequest
-	6,  // 19: envoygateway.extension.EnvoyGatewayExtension.PostHTTPListenerModify:input_type -> envoygateway.extension.PostHTTPListenerModifyRequest
-	2,  // 20: envoygateway.extension.EnvoyGatewayExtension.PostClusterModify:input_type -> envoygateway.extension.PostClusterModifyRequest
-	8,  // 21: envoygateway.extension.EnvoyGatewayExtension.PostTranslateModify:input_type -> envoygateway.extension.PostTranslateModifyRequest
-	1,  // 22: envoygateway.extension.EnvoyGatewayExtension.PostRouteModify:output_type -> envoygateway.extension.PostRouteModifyResponse
-	5,  // 23: envoygateway.extension.EnvoyGatewayExtension.PostVirtualHostModify:output_type -> envoygateway.extension.PostVirtualHostModifyResponse
-	7,  // 24: envoygateway.extension.EnvoyGatewayExtension.PostHTTPListenerModify:output_type -> envoygateway.extension.PostHTTPListenerModifyResponse
-	3,  // 25: envoygateway.extension.EnvoyGatewayExtension.PostClusterModify:output_type -> envoygateway.extension.PostClusterModifyResponse
-	9,  // 26: envoygateway.extension.EnvoyGatewayExtension.PostTranslateModify:output_type -> envoygateway.extension.PostTranslateModifyResponse
-	22, // [22:27] is the sub-list for method output_type
-	17, // [17:22] is the sub-list for method input_type
-	17, // [17:17] is the sub-list for extension type_name
-	17, // [17:17] is the sub-list for extension extendee
-	0,  // [0:17] is the sub-list for field type_name
+	16, // 15: envoygateway.extension.PostTranslateModifyRequest.listeners:type_name -> envoy.config.listener.v3.Listener
+	20, // 16: envoygateway.extension.PostTranslateModifyRequest.routes:type_name -> envoy.config.route.v3.RouteConfiguration
+	12, // 17: envoygateway.extension.PostTranslateModifyResponse.clusters:type_name -> envoy.config.cluster.v3.Cluster
+	19, // 18: envoygateway.extension.PostTranslateModifyResponse.secrets:type_name -> envoy.extensions.transport_sockets.tls.v3.Secret
+	16, // 19: envoygateway.extension.PostTranslateModifyResponse.listeners:type_name -> envoy.config.listener.v3.Listener
+	20, // 20: envoygateway.extension.PostTranslateModifyResponse.routes:type_name -> envoy.config.route.v3.RouteConfiguration
+	0,  // 21: envoygateway.extension.EnvoyGatewayExtension.PostRouteModify:input_type -> envoygateway.extension.PostRouteModifyRequest
+	4,  // 22: envoygateway.extension.EnvoyGatewayExtension.PostVirtualHostModify:input_type -> envoygateway.extension.PostVirtualHostModifyRequest
+	6,  // 23: envoygateway.extension.EnvoyGatewayExtension.PostHTTPListenerModify:input_type -> envoygateway.extension.PostHTTPListenerModifyRequest
+	2,  // 24: envoygateway.extension.EnvoyGatewayExtension.PostClusterModify:input_type -> envoygateway.extension.PostClusterModifyRequest
+	8,  // 25: envoygateway.extension.EnvoyGatewayExtension.PostTranslateModify:input_type -> envoygateway.extension.PostTranslateModifyRequest
+	1,  // 26: envoygateway.extension.EnvoyGatewayExtension.PostRouteModify:output_type -> envoygateway.extension.PostRouteModifyResponse
+	5,  // 27: envoygateway.extension.EnvoyGatewayExtension.PostVirtualHostModify:output_type -> envoygateway.extension.PostVirtualHostModifyResponse
+	7,  // 28: envoygateway.extension.EnvoyGatewayExtension.PostHTTPListenerModify:output_type -> envoygateway.extension.PostHTTPListenerModifyResponse
+	3,  // 29: envoygateway.extension.EnvoyGatewayExtension.PostClusterModify:output_type -> envoygateway.extension.PostClusterModifyResponse
+	9,  // 30: envoygateway.extension.EnvoyGatewayExtension.PostTranslateModify:output_type -> envoygateway.extension.PostTranslateModifyResponse
+	26, // [26:31] is the sub-list for method output_type
+	21, // [21:26] is the sub-list for method input_type
+	21, // [21:21] is the sub-list for extension type_name
+	21, // [21:21] is the sub-list for extension extendee
+	0,  // [0:21] is the sub-list for field type_name
 }
 
 func init() { file_proto_extension_service_proto_init() }
diff --git a/proto/extension/service.proto b/proto/extension/service.proto
index 1e77ca7de..2a34b728f 100644
--- a/proto/extension/service.proto
+++ b/proto/extension/service.proto
@@ -10,6 +10,7 @@ package envoygateway.extension;
 import "envoy/config/cluster/v3/cluster.proto";
 import "envoy/config/listener/v3/listener.proto";
 import "envoy/config/route/v3/route_components.proto";
+import "envoy/config/route/v3/route.proto";
 import "envoy/extensions/transport_sockets/tls/v3/secret.proto";
 
 import "proto/extension/context.proto";
@@ -106,18 +107,22 @@ message PostHTTPListenerModifyResponse {
 }
 
 
-// PostTranslateModifyRequest currently sends only clusters and secrets to an extension.
+// PostTranslateModifyRequest sends clusters, secrets, listeners, and routes to an extension.
 // The extension is free to add/modify/remove the resources it received.
 message PostTranslateModifyRequest {
     PostTranslateExtensionContext post_translate_context = 1;
     repeated envoy.config.cluster.v3.Cluster clusters = 2;
     repeated envoy.extensions.transport_sockets.tls.v3.Secret secrets = 3;
+    repeated envoy.config.listener.v3.Listener listeners = 4;
+    repeated envoy.config.route.v3.RouteConfiguration routes = 5;
 }
 
 
 // PostTranslateModifyResponse is the expected response from an extension and contains
-// the full list of xDS clusters and secrets to be used for the xDS config.
+// the full list of xDS clusters, secrets, listeners, and routes to be used for the xDS config.
 message PostTranslateModifyResponse {
     repeated envoy.config.cluster.v3.Cluster clusters = 1;
     repeated envoy.extensions.transport_sockets.tls.v3.Secret secrets = 2;
+    repeated envoy.config.listener.v3.Listener listeners = 3;
+    repeated envoy.config.route.v3.RouteConfiguration routes = 4;
 }
diff --git a/release-notes/current.yaml b/release-notes/current.yaml
index 4aaba48f1..1a63c8a60 100644
--- a/release-notes/current.yaml
+++ b/release-notes/current.yaml
@@ -12,6 +12,7 @@ security updates: |
 # New features or capabilities added in this release.
 new features: |
   Added support for percentage-based request mirroring
+  Added support for setting `initialJitter` in the BackendTrafficPolicy active health check.
   Add an option to OIDC authentication to bypass it and defer to JWT when the request contains an "Authorization: Bearer ..." header.
   Added support for configuring Subject Alternative Names (SANs) for upstream TLS validation via `BackendTLSPolicy.validation.subjectAltNames`.
   Added support for local rate limit header.
diff --git a/site/content/en/contributions/design/envoy-extension-policy.md b/site/content/en/contributions/design/envoy-extension-policy.md
index 9ecf25988..d334e9692 100644
--- a/site/content/en/contributions/design/envoy-extension-policy.md
+++ b/site/content/en/contributions/design/envoy-extension-policy.md
@@ -81,7 +81,6 @@ metadata:
   name: ext-proc-policy
   namespace: default
 spec:
-  priority: 10
   extProc:
   - service:
       backendRef:
@@ -117,13 +116,14 @@ Here is a list of features that can be included in this API
 
 ## Design Decisions
 * This API will only support a single `targetRef` and can bind to a `Gateway` resource or a `HTTPRoute` or `GRPCRoute` or `TCPRoute`.
+* Only one `EnvoyExtensionPolicy` can attach to a given resource (Gateway or xRoute). If multiple policies attempt to attach to the same resource, the oldest policy (by creation timestamp) will be applied and newer policies will be rejected.
+* A policy targeting a route takes precedence over a policy targeting a Gateway that is a parentRef to that route. This allows for more specific route-level configuration to override broader gateway-level settings.
 * Extensions that support both Network and HTTP filter variants (e.g. Wasm, Golang) will be translated to the appropriate filter type according to the sort of route that they attach to.
 * Extensions that only support HTTP extensibility (Ext-Proc, LUA) can only be attached to HTTP/GRPC Routes.  
 * A user-defined extension that is added to the request processing flow can have a significant impact on security,
   resilience and performance of the proxy. Gateway Operators can restrict access to the extensibility policy using K8s RBAC. 
 * Users may need to customize the order of extension and built-in filters. This will be addressed in a separate issue.  
 * Gateway operators may need to include multiple extensions (e.g. Wasm modules developed by different teams and distributed separately). 
-  This API will support attachment of multiple policies. Extension will execute in an order defined by the priority field.
 * This API resource MUST be part of same namespace as the targetRef resource
 * If the policy targets a resource but cannot attach to it, this information should be reflected
   in the Policy Status field using the `Conflicted=True` condition.
diff --git a/site/content/en/v1.4/concepts/introduction/gateway_api_extensions/backend-traffic-policy.md b/site/content/en/v1.4/concepts/introduction/gateway_api_extensions/backend-traffic-policy.md
index b0313539e..995d66e7d 100644
--- a/site/content/en/v1.4/concepts/introduction/gateway_api_extensions/backend-traffic-policy.md
+++ b/site/content/en/v1.4/concepts/introduction/gateway_api_extensions/backend-traffic-policy.md
@@ -69,6 +69,77 @@ In this example `my-route` and `my-gateway` would both affect the route. However
 
 Lastly, it's important to note that even when you apply a policy to a Gateway, the policy's effects are tracked separately for each backend service referenced in your routes. For example, if you set up circuit breaking on a Gateway with multiple backend services, each backend service will have its own independent circuit breaker counter. This ensures that issues with one backend service don't affect the others.
 
+## Policy Merging
+
+BackendTrafficPolicy supports merging configurations using the `mergeType` field, which allows route-level policies to combine with gateway-level policies rather than completely overriding them. This enables layered policy strategies where platform teams can set baseline configurations at the Gateway level, while application teams can add specific policies for their routes.
+
+### Merge Types
+
+- **StrategicMerge**: Uses Kubernetes strategic merge patch semantics, providing intelligent merging for complex data structures including arrays
+- **JSONMerge**: Uses RFC 7396 JSON Merge Patch semantics, with simple replacement strategy where arrays are completely replaced
+
+### Example Usage
+
+Here's an example demonstrating policy merging for rate limiting:
+
+```yaml
+# Platform team: Gateway-level policy with global abuse prevention
+apiVersion: gateway.envoyproxy.io/v1alpha1
+kind: BackendTrafficPolicy
+metadata:
+  name: global-backendtrafficpolicy
+spec:
+  rateLimit:
+    type: Global
+    global:
+      rules:
+      - clientSelectors:
+        - sourceCIDR:
+            type: Distinct
+            value: 0.0.0.0/0
+        limit:
+          requests: 100
+          unit: Second
+        shared: true
+  targetRefs:
+  - group: gateway.networking.k8s.io
+    kind: Gateway
+    name: eg
+
+---
+# Application team: Route-level policy with specific limits
+apiVersion: gateway.envoyproxy.io/v1alpha1
+kind: BackendTrafficPolicy
+metadata:
+  name: route-backendtrafficpolicy
+spec:
+  mergeType: StrategicMerge  # Enables merging with gateway policy
+  rateLimit:
+    type: Global
+    global:
+      rules:
+      - clientSelectors:
+        - sourceCIDR:
+            type: Distinct
+            value: 0.0.0.0/0
+        limit:
+          requests: 5
+          unit: Minute
+        shared: false
+  targetRefs:
+  - group: gateway.networking.k8s.io
+    kind: HTTPRoute
+    name: signup-service-httproute
+```
+
+In this example, the route-level policy merges with the gateway-level policy, resulting in both rate limits being enforced: the global 100 requests/second abuse limit and the route-specific 5 requests/minute limit.
+
+### Key Constraints
+
+- The `mergeType` field can only be set on policies targeting child resources (like HTTPRoute), not parent resources (like Gateway)
+- When `mergeType` is unset, no merging occurs - only the most specific policy takes effect
+- The merged configuration combines both policies, enabling layered protection strategies
+
 ## Related Resources
 
 - [Circuit Breakers](../../../tasks/traffic/circuit-breaker.md)
diff --git a/site/content/en/v1.4/tasks/operations/airgap-deployment.md b/site/content/en/v1.4/tasks/operations/airgap-deployment.md
new file mode 100644
index 000000000..8b72c776d
--- /dev/null
+++ b/site/content/en/v1.4/tasks/operations/airgap-deployment.md
@@ -0,0 +1,160 @@
+---
+title: 'Deploy Envoy Gateway in Air-Gapped Environments'
+---
+
+Deploying the Envoy Gateway in an air-gapped environment using a Helm chart
+requires careful configuration of the `values.yaml` file as well as adjustments
+when deploying a Gateway resource.
+
+You will need to specify custom image repositories for the following components
+in the Helm chart. This can be done on a global level or image level.
+
+- Gateway
+- Ratelimit
+
+## Gateway – `values.yaml` Configuration
+
+Example done in image level:
+
+```yaml
+deployment:
+  envoyGateway:
+    image:
+      repository: custom-cr.internal.io/envoyproxy/gateway
+      tag: v1.4.1
+```
+
+It's also possible to define the registry on a global level:
+
+```yaml
+# Global settings
+global:
+  # If set, these take highest precedence and change both envoyGateway and ratelimit's container registry and pull secrets.
+  # -- Global override for image registry
+  imageRegistry: 'custom-cr.internal.io'
+```
+
+## Ratelimit - `values.yaml` Configuration
+
+Example done on global level:
+
+```yaml
+global:
+  images:
+    ratelimit:
+      image: custom-cr.internal.io/envoyproxy/ratelimit:master
+```
+
+Furthermore for private registries you might need to define imagePullSecrets.
+
+On global level:
+
+```yaml
+global:
+  imagePullSecrets:
+    - my-private-registry-secret
+```
+
+or per image
+
+```yaml
+global:
+  images:
+    ratelimit:
+      pullSecrets:
+        - name: my-private-registry-secret
+```
+
+## Gateway Requires a Custom EnvoyProxy Reference
+
+Either the Gateway or GatewayClass must reference a custom EnvoyProxy resource
+that explicitly specifies the location of the distroless Envoy container image.
+Without this, the image will be pulled implicitly from Docker Hub.
+
+```yaml
+apiVersion: gateway.envoyproxy.io/v1alpha1
+kind: EnvoyProxy
+metadata:
+  name: custom-envoy-proxy
+  namespace: default
+spec:
+  provider:
+    type: Kubernetes
+    kubernetes:
+      envoyDeployment:
+        container:
+          image: custom-cr.internal.io/envoyproxy/envoy:distroless-v1.34.1
+```
+
+Then, reference the `custom-envoy-proxy` in your Gateway manifest
+
+```yaml
+apiVersion: gateway.networking.k8s.io/v1
+kind: Gateway
+metadata:
+  name: envoy-gateway
+  namespace: default
+  annotations:
+    cert-manager.io/cluster-issuer: cluster-wide-ca-issuer
+    cert-manager.io/duration: 8760h
+    cert-manager.io/renew-before: 360h
+    cert-manager.io/usages: server auth, client auth
+spec:
+  gatewayClassName: envoy-gateway-class
+  infrastructure:
+    parametersRef:
+      group: gateway.envoyproxy.io
+      kind: EnvoyProxy
+      name: custom-envoy-proxy
+  listeners:
+    - hostname: example.com
+      name: https
+      port: 443
+      protocol: HTTPS
+      tls:
+        certificateRefs:
+          - name: example-tls
+        mode: Terminate
+```
+
+or reference it in your GatewayClass, so that each new Gateway uses the
+EnvoyProxy automatically:
+
+```yaml
+apiVersion: gateway.networking.k8s.io/v1
+kind: GatewayClass
+metadata:
+  name: envoy-gateway-class
+spec:
+  controllerName: gateway.envoyproxy.io/gatewayclass-controller
+  parametersRef:
+    group: gateway.envoyproxy.io
+    kind: EnvoyProxy
+    name: custom-envoy-proxy
+    namespace: default
+```
+
+## Default LoadBalancer Service Type
+
+By default, Envoy uses a Service of type `LoadBalancer`. Depending on your
+Kubernetes environment, you might need to add custom annotations. For example,
+when deploying in Azure, you can configure the service as follows:
+
+```yaml
+apiVersion: gateway.envoyproxy.io/v1alpha1
+kind: EnvoyProxy
+metadata:
+  name: custom-envoy-proxy
+  namespace: default
+spec:
+  provider:
+    type: Kubernetes
+    kubernetes:
+      envoyService:
+        type: LoadBalancer
+        annotations:
+          service.beta.kubernetes.io/azure-load-balancer-internal: 'true'
+      envoyDeployment:
+        container:
+          image: custom-cr.internal.io/envoyproxy/envoy:distroless-v1.34.1
+```
diff --git a/site/data/ecosystem.yaml b/site/data/ecosystem.yaml
index 0a7e04b09..018273e58 100644
--- a/site/data/ecosystem.yaml
+++ b/site/data/ecosystem.yaml
@@ -23,3 +23,7 @@ adopters:
     url: "https://k0rdent.io/"
     logo: /logos/k0rdent.svg
     description: "k0rdent integrates with Envoy Gateway to offer advanced, high-performance traffic management within Kubernetes. k0rdent simplifies Envoy configuration, enabling users to easily define routing, security, and observability policies. This integration provides a robust, scalable, and secure ingress solution for applications deployed within the k0rdent-managed cluster."
+  - name: "KEDA"
+    logo: "/logos/keda.svg"
+    url: "https://keda.sh"
+    description: "KEDA integrates with Envoy Gateway through http-add-on for autoscaling workloads based on real-time HTTP traffic metrics. This integration allows users to leverage Envoy Gateway's capabilities for scaling behavior shaping desired traffic patterns."
diff --git a/site/static/js/benchmark-dashboard.js b/site/static/js/benchmark-dashboard.js
index 7e2f1804c..83f0324cc 100644
--- a/site/static/js/benchmark-dashboard.js
+++ b/site/static/js/benchmark-dashboard.js
@@ -1,4 +1,4 @@
-var CO=Object.defineProperty;var c1=e=>{throw TypeError(e)};var EO=(e,t,n)=>t in e?CO(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var f1=(e,t,n)=>EO(e,typeof t!="symbol"?t+"":t,n),qd=(e,t,n)=>t.has(e)||c1("Cannot "+n);var B=(e,t,n)=>(qd(e,t,"read from private field"),n?n.call(e):t.get(e)),me=(e,t,n)=>t.has(e)?c1("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),ae=(e,t,n,r)=>(qd(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),wt=(e,t,n)=>(qd(e,t,"access private method"),n);var zu=(e,t,n,r)=>({set _(a){ae(e,t,a,n)},get _(){return B(e,t,r)}});function TO(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const a in r)if(a!=="default"&&!(a in e)){const o=Object.getOwnPropertyDescriptor(r,a);o&&Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>r[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Bu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ce(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var r5={exports:{}},kp={},a5={exports:{}},ce={};/**
+var jO=Object.defineProperty;var c1=e=>{throw TypeError(e)};var $O=(e,t,n)=>t in e?jO(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var p1=(e,t,n)=>$O(e,typeof t!="symbol"?t+"":t,n),qd=(e,t,n)=>t.has(e)||c1("Cannot "+n);var B=(e,t,n)=>(qd(e,t,"read from private field"),n?n.call(e):t.get(e)),me=(e,t,n)=>t.has(e)?c1("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),ae=(e,t,n,r)=>(qd(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),wt=(e,t,n)=>(qd(e,t,"access private method"),n);var zu=(e,t,n,r)=>({set _(a){ae(e,t,a,n)},get _(){return B(e,t,r)}});function NO(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const a in r)if(a!=="default"&&!(a in e)){const o=Object.getOwnPropertyDescriptor(r,a);o&&Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>r[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Bu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ae(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var o5={exports:{}},kf={},i5={exports:{}},ce={};/**
  * @license React
  * react.production.min.js
  *
@@ -6,7 +6,7 @@ var CO=Object.defineProperty;var c1=e=>{throw TypeError(e)};var EO=(e,t,n)=>t in
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
- */var ku=Symbol.for("react.element"),jO=Symbol.for("react.portal"),$O=Symbol.for("react.fragment"),NO=Symbol.for("react.strict_mode"),MO=Symbol.for("react.profiler"),RO=Symbol.for("react.provider"),IO=Symbol.for("react.context"),DO=Symbol.for("react.forward_ref"),LO=Symbol.for("react.suspense"),FO=Symbol.for("react.memo"),zO=Symbol.for("react.lazy"),p1=Symbol.iterator;function BO(e){return e===null||typeof e!="object"?null:(e=p1&&e[p1]||e["@@iterator"],typeof e=="function"?e:null)}var o5={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},i5=Object.assign,s5={};function ls(e,t,n){this.props=e,this.context=t,this.refs=s5,this.updater=n||o5}ls.prototype.isReactComponent={};ls.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")};ls.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function l5(){}l5.prototype=ls.prototype;function By(e,t,n){this.props=e,this.context=t,this.refs=s5,this.updater=n||o5}var Hy=By.prototype=new l5;Hy.constructor=By;i5(Hy,ls.prototype);Hy.isPureReactComponent=!0;var d1=Array.isArray,u5=Object.prototype.hasOwnProperty,Gy={current:null},c5={key:!0,ref:!0,__self:!0,__source:!0};function f5(e,t,n){var r,a={},o=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(o=""+t.key),t)u5.call(t,r)&&!c5.hasOwnProperty(r)&&(a[r]=t[r]);var s=arguments.length-2;if(s===1)a.children=n;else if(1<s){for(var l=Array(s),u=0;u<s;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)a[r]===void 0&&(a[r]=s[r]);return{$$typeof:ku,type:e,key:o,ref:i,props:a,_owner:Gy.current}}function HO(e,t){return{$$typeof:ku,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Uy(e){return typeof e=="object"&&e!==null&&e.$$typeof===ku}function GO(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var m1=/\/+/g;function Vd(e,t){return typeof e=="object"&&e!==null&&e.key!=null?GO(""+e.key):t.toString(36)}function _c(e,t,n,r,a){var o=typeof e;(o==="undefined"||o==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(o){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case ku:case jO:i=!0}}if(i)return i=e,a=a(i),e=r===""?"."+Vd(i,0):r,d1(a)?(n="",e!=null&&(n=e.replace(m1,"$&/")+"/"),_c(a,t,n,"",function(u){return u})):a!=null&&(Uy(a)&&(a=HO(a,n+(!a.key||i&&i.key===a.key?"":(""+a.key).replace(m1,"$&/")+"/")+e)),t.push(a)),1;if(i=0,r=r===""?".":r+":",d1(e))for(var s=0;s<e.length;s++){o=e[s];var l=r+Vd(o,s);i+=_c(o,t,n,l,a)}else if(l=BO(e),typeof l=="function")for(e=l.call(e),s=0;!(o=e.next()).done;)o=o.value,l=r+Vd(o,s++),i+=_c(o,t,n,l,a);else if(o==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return i}function Hu(e,t,n){if(e==null)return e;var r=[],a=0;return _c(e,r,"","",function(o){return t.call(n,o,a++)}),r}function UO(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Lt={current:null},Ac={transition:null},WO={ReactCurrentDispatcher:Lt,ReactCurrentBatchConfig:Ac,ReactCurrentOwner:Gy};function p5(){throw Error("act(...) is not supported in production builds of React.")}ce.Children={map:Hu,forEach:function(e,t,n){Hu(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Hu(e,function(){t++}),t},toArray:function(e){return Hu(e,function(t){return t})||[]},only:function(e){if(!Uy(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ce.Component=ls;ce.Fragment=$O;ce.Profiler=MO;ce.PureComponent=By;ce.StrictMode=NO;ce.Suspense=LO;ce.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=WO;ce.act=p5;ce.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=i5({},e.props),a=e.key,o=e.ref,i=e._owner;if(t!=null){if(t.ref!==void 0&&(o=t.ref,i=Gy.current),t.key!==void 0&&(a=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(l in t)u5.call(t,l)&&!c5.hasOwnProperty(l)&&(r[l]=t[l]===void 0&&s!==void 0?s[l]:t[l])}var l=arguments.length-2;if(l===1)r.children=n;else if(1<l){s=Array(l);for(var u=0;u<l;u++)s[u]=arguments[u+2];r.children=s}return{$$typeof:ku,type:e.type,key:a,ref:o,props:r,_owner:i}};ce.createContext=function(e){return e={$$typeof:IO,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:RO,_context:e},e.Consumer=e};ce.createElement=f5;ce.createFactory=function(e){var t=f5.bind(null,e);return t.type=e,t};ce.createRef=function(){return{current:null}};ce.forwardRef=function(e){return{$$typeof:DO,render:e}};ce.isValidElement=Uy;ce.lazy=function(e){return{$$typeof:zO,_payload:{_status:-1,_result:e},_init:UO}};ce.memo=function(e,t){return{$$typeof:FO,type:e,compare:t===void 0?null:t}};ce.startTransition=function(e){var t=Ac.transition;Ac.transition={};try{e()}finally{Ac.transition=t}};ce.unstable_act=p5;ce.useCallback=function(e,t){return Lt.current.useCallback(e,t)};ce.useContext=function(e){return Lt.current.useContext(e)};ce.useDebugValue=function(){};ce.useDeferredValue=function(e){return Lt.current.useDeferredValue(e)};ce.useEffect=function(e,t){return Lt.current.useEffect(e,t)};ce.useId=function(){return Lt.current.useId()};ce.useImperativeHandle=function(e,t,n){return Lt.current.useImperativeHandle(e,t,n)};ce.useInsertionEffect=function(e,t){return Lt.current.useInsertionEffect(e,t)};ce.useLayoutEffect=function(e,t){return Lt.current.useLayoutEffect(e,t)};ce.useMemo=function(e,t){return Lt.current.useMemo(e,t)};ce.useReducer=function(e,t,n){return Lt.current.useReducer(e,t,n)};ce.useRef=function(e){return Lt.current.useRef(e)};ce.useState=function(e){return Lt.current.useState(e)};ce.useSyncExternalStore=function(e,t,n){return Lt.current.useSyncExternalStore(e,t,n)};ce.useTransition=function(){return Lt.current.useTransition()};ce.version="18.3.1";a5.exports=ce;var k=a5.exports;const C=Ce(k),d5=TO({__proto__:null,default:C},[k]);/**
+ */var ku=Symbol.for("react.element"),MO=Symbol.for("react.portal"),RO=Symbol.for("react.fragment"),IO=Symbol.for("react.strict_mode"),DO=Symbol.for("react.profiler"),LO=Symbol.for("react.provider"),FO=Symbol.for("react.context"),zO=Symbol.for("react.forward_ref"),BO=Symbol.for("react.suspense"),HO=Symbol.for("react.memo"),GO=Symbol.for("react.lazy"),f1=Symbol.iterator;function UO(e){return e===null||typeof e!="object"?null:(e=f1&&e[f1]||e["@@iterator"],typeof e=="function"?e:null)}var s5={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},l5=Object.assign,u5={};function ls(e,t,n){this.props=e,this.context=t,this.refs=u5,this.updater=n||s5}ls.prototype.isReactComponent={};ls.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")};ls.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function c5(){}c5.prototype=ls.prototype;function Bv(e,t,n){this.props=e,this.context=t,this.refs=u5,this.updater=n||s5}var Hv=Bv.prototype=new c5;Hv.constructor=Bv;l5(Hv,ls.prototype);Hv.isPureReactComponent=!0;var d1=Array.isArray,p5=Object.prototype.hasOwnProperty,Gv={current:null},f5={key:!0,ref:!0,__self:!0,__source:!0};function d5(e,t,n){var r,a={},o=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(o=""+t.key),t)p5.call(t,r)&&!f5.hasOwnProperty(r)&&(a[r]=t[r]);var s=arguments.length-2;if(s===1)a.children=n;else if(1<s){for(var l=Array(s),u=0;u<s;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)a[r]===void 0&&(a[r]=s[r]);return{$$typeof:ku,type:e,key:o,ref:i,props:a,_owner:Gv.current}}function WO(e,t){return{$$typeof:ku,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Uv(e){return typeof e=="object"&&e!==null&&e.$$typeof===ku}function qO(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var m1=/\/+/g;function Vd(e,t){return typeof e=="object"&&e!==null&&e.key!=null?qO(""+e.key):t.toString(36)}function _c(e,t,n,r,a){var o=typeof e;(o==="undefined"||o==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(o){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case ku:case MO:i=!0}}if(i)return i=e,a=a(i),e=r===""?"."+Vd(i,0):r,d1(a)?(n="",e!=null&&(n=e.replace(m1,"$&/")+"/"),_c(a,t,n,"",function(u){return u})):a!=null&&(Uv(a)&&(a=WO(a,n+(!a.key||i&&i.key===a.key?"":(""+a.key).replace(m1,"$&/")+"/")+e)),t.push(a)),1;if(i=0,r=r===""?".":r+":",d1(e))for(var s=0;s<e.length;s++){o=e[s];var l=r+Vd(o,s);i+=_c(o,t,n,l,a)}else if(l=UO(e),typeof l=="function")for(e=l.call(e),s=0;!(o=e.next()).done;)o=o.value,l=r+Vd(o,s++),i+=_c(o,t,n,l,a);else if(o==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return i}function Hu(e,t,n){if(e==null)return e;var r=[],a=0;return _c(e,r,"","",function(o){return t.call(n,o,a++)}),r}function VO(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Lt={current:null},Cc={transition:null},KO={ReactCurrentDispatcher:Lt,ReactCurrentBatchConfig:Cc,ReactCurrentOwner:Gv};function m5(){throw Error("act(...) is not supported in production builds of React.")}ce.Children={map:Hu,forEach:function(e,t,n){Hu(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Hu(e,function(){t++}),t},toArray:function(e){return Hu(e,function(t){return t})||[]},only:function(e){if(!Uv(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ce.Component=ls;ce.Fragment=RO;ce.Profiler=DO;ce.PureComponent=Bv;ce.StrictMode=IO;ce.Suspense=BO;ce.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=KO;ce.act=m5;ce.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=l5({},e.props),a=e.key,o=e.ref,i=e._owner;if(t!=null){if(t.ref!==void 0&&(o=t.ref,i=Gv.current),t.key!==void 0&&(a=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(l in t)p5.call(t,l)&&!f5.hasOwnProperty(l)&&(r[l]=t[l]===void 0&&s!==void 0?s[l]:t[l])}var l=arguments.length-2;if(l===1)r.children=n;else if(1<l){s=Array(l);for(var u=0;u<l;u++)s[u]=arguments[u+2];r.children=s}return{$$typeof:ku,type:e.type,key:a,ref:o,props:r,_owner:i}};ce.createContext=function(e){return e={$$typeof:FO,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:LO,_context:e},e.Consumer=e};ce.createElement=d5;ce.createFactory=function(e){var t=d5.bind(null,e);return t.type=e,t};ce.createRef=function(){return{current:null}};ce.forwardRef=function(e){return{$$typeof:zO,render:e}};ce.isValidElement=Uv;ce.lazy=function(e){return{$$typeof:GO,_payload:{_status:-1,_result:e},_init:VO}};ce.memo=function(e,t){return{$$typeof:HO,type:e,compare:t===void 0?null:t}};ce.startTransition=function(e){var t=Cc.transition;Cc.transition={};try{e()}finally{Cc.transition=t}};ce.unstable_act=m5;ce.useCallback=function(e,t){return Lt.current.useCallback(e,t)};ce.useContext=function(e){return Lt.current.useContext(e)};ce.useDebugValue=function(){};ce.useDeferredValue=function(e){return Lt.current.useDeferredValue(e)};ce.useEffect=function(e,t){return Lt.current.useEffect(e,t)};ce.useId=function(){return Lt.current.useId()};ce.useImperativeHandle=function(e,t,n){return Lt.current.useImperativeHandle(e,t,n)};ce.useInsertionEffect=function(e,t){return Lt.current.useInsertionEffect(e,t)};ce.useLayoutEffect=function(e,t){return Lt.current.useLayoutEffect(e,t)};ce.useMemo=function(e,t){return Lt.current.useMemo(e,t)};ce.useReducer=function(e,t,n){return Lt.current.useReducer(e,t,n)};ce.useRef=function(e){return Lt.current.useRef(e)};ce.useState=function(e){return Lt.current.useState(e)};ce.useSyncExternalStore=function(e,t,n){return Lt.current.useSyncExternalStore(e,t,n)};ce.useTransition=function(){return Lt.current.useTransition()};ce.version="18.3.1";i5.exports=ce;var k=i5.exports;const A=Ae(k),h5=NO({__proto__:null,default:A},[k]);/**
  * @license React
  * react-jsx-runtime.production.min.js
  *
@@ -14,7 +14,7 @@ var CO=Object.defineProperty;var c1=e=>{throw TypeError(e)};var EO=(e,t,n)=>t in
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
- */var qO=k,VO=Symbol.for("react.element"),KO=Symbol.for("react.fragment"),XO=Object.prototype.hasOwnProperty,YO=qO.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,QO={key:!0,ref:!0,__self:!0,__source:!0};function m5(e,t,n){var r,a={},o=null,i=null;n!==void 0&&(o=""+n),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(i=t.ref);for(r in t)XO.call(t,r)&&!QO.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)a[r]===void 0&&(a[r]=t[r]);return{$$typeof:VO,type:e,key:o,ref:i,props:a,_owner:YO.current}}kp.Fragment=KO;kp.jsx=m5;kp.jsxs=m5;r5.exports=kp;var b=r5.exports,Gc={},h5={exports:{}},on={},v5={exports:{}},y5={};/**
+ */var XO=k,YO=Symbol.for("react.element"),QO=Symbol.for("react.fragment"),ZO=Object.prototype.hasOwnProperty,JO=XO.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ek={key:!0,ref:!0,__self:!0,__source:!0};function v5(e,t,n){var r,a={},o=null,i=null;n!==void 0&&(o=""+n),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(i=t.ref);for(r in t)ZO.call(t,r)&&!ek.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)a[r]===void 0&&(a[r]=t[r]);return{$$typeof:YO,type:e,key:o,ref:i,props:a,_owner:JO.current}}kf.Fragment=QO;kf.jsx=v5;kf.jsxs=v5;o5.exports=kf;var b=o5.exports,Gc={},y5={exports:{}},on={},g5={exports:{}},x5={};/**
  * @license React
  * scheduler.production.min.js
  *
@@ -22,7 +22,7 @@ var CO=Object.defineProperty;var c1=e=>{throw TypeError(e)};var EO=(e,t,n)=>t in
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
- */(function(e){function t($,D){var H=$.length;$.push(D);e:for(;0<H;){var W=H-1>>>1,G=$[W];if(0<a(G,D))$[W]=D,$[H]=G,H=W;else break e}}function n($){return $.length===0?null:$[0]}function r($){if($.length===0)return null;var D=$[0],H=$.pop();if(H!==D){$[0]=H;e:for(var W=0,G=$.length,Z=G>>>1;W<Z;){var ie=2*(W+1)-1,ve=$[ie],Pe=ie+1,J=$[Pe];if(0>a(ve,H))Pe<G&&0>a(J,ve)?($[W]=J,$[Pe]=H,W=Pe):($[W]=ve,$[ie]=H,W=ie);else if(Pe<G&&0>a(J,H))$[W]=J,$[Pe]=H,W=Pe;else break e}}return D}function a($,D){var H=$.sortIndex-D.sortIndex;return H!==0?H:$.id-D.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,s=i.now();e.unstable_now=function(){return i.now()-s}}var l=[],u=[],f=1,c=null,p=3,d=!1,h=!1,m=!1,g=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function x($){for(var D=n(u);D!==null;){if(D.callback===null)r(u);else if(D.startTime<=$)r(u),D.sortIndex=D.expirationTime,t(l,D);else break;D=n(u)}}function P($){if(m=!1,x($),!h)if(n(l)!==null)h=!0,R(w);else{var D=n(u);D!==null&&L(P,D.startTime-$)}}function w($,D){h=!1,m&&(m=!1,v(_),_=-1),d=!0;var H=p;try{for(x(D),c=n(l);c!==null&&(!(c.expirationTime>D)||$&&!E());){var W=c.callback;if(typeof W=="function"){c.callback=null,p=c.priorityLevel;var G=W(c.expirationTime<=D);D=e.unstable_now(),typeof G=="function"?c.callback=G:c===n(l)&&r(l),x(D)}else r(l);c=n(l)}if(c!==null)var Z=!0;else{var ie=n(u);ie!==null&&L(P,ie.startTime-D),Z=!1}return Z}finally{c=null,p=H,d=!1}}var S=!1,O=null,_=-1,A=5,j=-1;function E(){return!(e.unstable_now()-j<A)}function T(){if(O!==null){var $=e.unstable_now();j=$;var D=!0;try{D=O(!0,$)}finally{D?N():(S=!1,O=null)}}else S=!1}var N;if(typeof y=="function")N=function(){y(T)};else if(typeof MessageChannel<"u"){var M=new MessageChannel,I=M.port2;M.port1.onmessage=T,N=function(){I.postMessage(null)}}else N=function(){g(T,0)};function R($){O=$,S||(S=!0,N())}function L($,D){_=g(function(){$(e.unstable_now())},D)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function($){$.callback=null},e.unstable_continueExecution=function(){h||d||(h=!0,R(w))},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return n(l)},e.unstable_next=function($){switch(p){case 1:case 2:case 3:var D=3;break;default:D=p}var H=p;p=D;try{return $()}finally{p=H}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function($,D){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var H=p;p=$;try{return D()}finally{p=H}},e.unstable_scheduleCallback=function($,D,H){var W=e.unstable_now();switch(typeof H=="object"&&H!==null?(H=H.delay,H=typeof H=="number"&&0<H?W+H:W):H=W,$){case 1:var G=-1;break;case 2:G=250;break;case 5:G=1073741823;break;case 4:G=1e4;break;default:G=5e3}return G=H+G,$={id:f++,callback:D,priorityLevel:$,startTime:H,expirationTime:G,sortIndex:-1},H>W?($.sortIndex=H,t(u,$),n(l)===null&&$===n(u)&&(m?(v(_),_=-1):m=!0,L(P,H-W))):($.sortIndex=G,t(l,$),h||d||(h=!0,R(w))),$},e.unstable_shouldYield=E,e.unstable_wrapCallback=function($){var D=p;return function(){var H=p;p=D;try{return $.apply(this,arguments)}finally{p=H}}}})(y5);v5.exports=y5;var ZO=v5.exports;/**
+ */(function(e){function t($,D){var H=$.length;$.push(D);e:for(;0<H;){var W=H-1>>>1,G=$[W];if(0<a(G,D))$[W]=D,$[H]=G,H=W;else break e}}function n($){return $.length===0?null:$[0]}function r($){if($.length===0)return null;var D=$[0],H=$.pop();if(H!==D){$[0]=H;e:for(var W=0,G=$.length,Z=G>>>1;W<Z;){var ie=2*(W+1)-1,ve=$[ie],Pe=ie+1,J=$[Pe];if(0>a(ve,H))Pe<G&&0>a(J,ve)?($[W]=J,$[Pe]=H,W=Pe):($[W]=ve,$[ie]=H,W=ie);else if(Pe<G&&0>a(J,H))$[W]=J,$[Pe]=H,W=Pe;else break e}}return D}function a($,D){var H=$.sortIndex-D.sortIndex;return H!==0?H:$.id-D.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,s=i.now();e.unstable_now=function(){return i.now()-s}}var l=[],u=[],p=1,c=null,f=3,d=!1,h=!1,m=!1,g=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function x($){for(var D=n(u);D!==null;){if(D.callback===null)r(u);else if(D.startTime<=$)r(u),D.sortIndex=D.expirationTime,t(l,D);else break;D=n(u)}}function P($){if(m=!1,x($),!h)if(n(l)!==null)h=!0,R(w);else{var D=n(u);D!==null&&L(P,D.startTime-$)}}function w($,D){h=!1,m&&(m=!1,v(_),_=-1),d=!0;var H=f;try{for(x(D),c=n(l);c!==null&&(!(c.expirationTime>D)||$&&!E());){var W=c.callback;if(typeof W=="function"){c.callback=null,f=c.priorityLevel;var G=W(c.expirationTime<=D);D=e.unstable_now(),typeof G=="function"?c.callback=G:c===n(l)&&r(l),x(D)}else r(l);c=n(l)}if(c!==null)var Z=!0;else{var ie=n(u);ie!==null&&L(P,ie.startTime-D),Z=!1}return Z}finally{c=null,f=H,d=!1}}var S=!1,O=null,_=-1,C=5,j=-1;function E(){return!(e.unstable_now()-j<C)}function T(){if(O!==null){var $=e.unstable_now();j=$;var D=!0;try{D=O(!0,$)}finally{D?N():(S=!1,O=null)}}else S=!1}var N;if(typeof y=="function")N=function(){y(T)};else if(typeof MessageChannel<"u"){var M=new MessageChannel,I=M.port2;M.port1.onmessage=T,N=function(){I.postMessage(null)}}else N=function(){g(T,0)};function R($){O=$,S||(S=!0,N())}function L($,D){_=g(function(){$(e.unstable_now())},D)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function($){$.callback=null},e.unstable_continueExecution=function(){h||d||(h=!0,R(w))},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(l)},e.unstable_next=function($){switch(f){case 1:case 2:case 3:var D=3;break;default:D=f}var H=f;f=D;try{return $()}finally{f=H}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function($,D){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var H=f;f=$;try{return D()}finally{f=H}},e.unstable_scheduleCallback=function($,D,H){var W=e.unstable_now();switch(typeof H=="object"&&H!==null?(H=H.delay,H=typeof H=="number"&&0<H?W+H:W):H=W,$){case 1:var G=-1;break;case 2:G=250;break;case 5:G=1073741823;break;case 4:G=1e4;break;default:G=5e3}return G=H+G,$={id:p++,callback:D,priorityLevel:$,startTime:H,expirationTime:G,sortIndex:-1},H>W?($.sortIndex=H,t(u,$),n(l)===null&&$===n(u)&&(m?(v(_),_=-1):m=!0,L(P,H-W))):($.sortIndex=G,t(l,$),h||d||(h=!0,R(w))),$},e.unstable_shouldYield=E,e.unstable_wrapCallback=function($){var D=f;return function(){var H=f;f=D;try{return $.apply(this,arguments)}finally{f=H}}}})(x5);g5.exports=x5;var tk=g5.exports;/**
  * @license React
  * react-dom.production.min.js
  *
@@ -30,19 +30,19 @@ var CO=Object.defineProperty;var c1=e=>{throw TypeError(e)};var EO=(e,t,n)=>t in
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
- */var JO=k,an=ZO;function U(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var g5=new Set,xl={};function Eo(e,t){Ai(e,t),Ai(e+"Capture",t)}function Ai(e,t){for(xl[e]=t,e=0;e<t.length;e++)g5.add(t[e])}var Mr=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),oh=Object.prototype.hasOwnProperty,ek=/^[: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]*$/,h1={},v1={};function tk(e){return oh.call(v1,e)?!0:oh.call(h1,e)?!1:ek.test(e)?v1[e]=!0:(h1[e]=!0,!1)}function nk(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 rk(e,t,n,r){if(t===null||typeof t>"u"||nk(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 Ft(e,t,n,r,a,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var xt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){xt[e]=new Ft(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];xt[t]=new Ft(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){xt[e]=new Ft(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){xt[e]=new Ft(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){xt[e]=new Ft(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){xt[e]=new Ft(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){xt[e]=new Ft(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){xt[e]=new Ft(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){xt[e]=new Ft(e,5,!1,e.toLowerCase(),null,!1,!1)});var Wy=/[\-:]([a-z])/g;function qy(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(Wy,qy);xt[t]=new Ft(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(Wy,qy);xt[t]=new Ft(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(Wy,qy);xt[t]=new Ft(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){xt[e]=new Ft(e,1,!1,e.toLowerCase(),null,!1,!1)});xt.xlinkHref=new Ft("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){xt[e]=new Ft(e,1,!1,e.toLowerCase(),null,!0,!0)});function Vy(e,t,n,r){var a=xt.hasOwnProperty(t)?xt[t]:null;(a!==null?a.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(rk(t,n,a,r)&&(n=null),r||a===null?tk(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=n===null?a.type===3?!1:"":n:(t=a.attributeName,r=a.attributeNamespace,n===null?e.removeAttribute(t):(a=a.type,n=a===3||a===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var Gr=JO.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Gu=Symbol.for("react.element"),Uo=Symbol.for("react.portal"),Wo=Symbol.for("react.fragment"),Ky=Symbol.for("react.strict_mode"),ih=Symbol.for("react.profiler"),x5=Symbol.for("react.provider"),w5=Symbol.for("react.context"),Xy=Symbol.for("react.forward_ref"),sh=Symbol.for("react.suspense"),lh=Symbol.for("react.suspense_list"),Yy=Symbol.for("react.memo"),ea=Symbol.for("react.lazy"),b5=Symbol.for("react.offscreen"),y1=Symbol.iterator;function js(e){return e===null||typeof e!="object"?null:(e=y1&&e[y1]||e["@@iterator"],typeof e=="function"?e:null)}var Ue=Object.assign,Kd;function Qs(e){if(Kd===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Kd=t&&t[1]||""}return`
+ */var nk=k,an=tk;function U(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var w5=new Set,xl={};function Eo(e,t){Ci(e,t),Ci(e+"Capture",t)}function Ci(e,t){for(xl[e]=t,e=0;e<t.length;e++)w5.add(t[e])}var Mr=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),oh=Object.prototype.hasOwnProperty,rk=/^[: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]*$/,h1={},v1={};function ak(e){return oh.call(v1,e)?!0:oh.call(h1,e)?!1:rk.test(e)?v1[e]=!0:(h1[e]=!0,!1)}function ok(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 ik(e,t,n,r){if(t===null||typeof t>"u"||ok(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 Ft(e,t,n,r,a,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var xt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){xt[e]=new Ft(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];xt[t]=new Ft(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){xt[e]=new Ft(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){xt[e]=new Ft(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){xt[e]=new Ft(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){xt[e]=new Ft(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){xt[e]=new Ft(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){xt[e]=new Ft(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){xt[e]=new Ft(e,5,!1,e.toLowerCase(),null,!1,!1)});var Wv=/[\-:]([a-z])/g;function qv(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(Wv,qv);xt[t]=new Ft(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(Wv,qv);xt[t]=new Ft(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(Wv,qv);xt[t]=new Ft(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){xt[e]=new Ft(e,1,!1,e.toLowerCase(),null,!1,!1)});xt.xlinkHref=new Ft("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){xt[e]=new Ft(e,1,!1,e.toLowerCase(),null,!0,!0)});function Vv(e,t,n,r){var a=xt.hasOwnProperty(t)?xt[t]:null;(a!==null?a.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(ik(t,n,a,r)&&(n=null),r||a===null?ak(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=n===null?a.type===3?!1:"":n:(t=a.attributeName,r=a.attributeNamespace,n===null?e.removeAttribute(t):(a=a.type,n=a===3||a===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var Gr=nk.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Gu=Symbol.for("react.element"),Uo=Symbol.for("react.portal"),Wo=Symbol.for("react.fragment"),Kv=Symbol.for("react.strict_mode"),ih=Symbol.for("react.profiler"),b5=Symbol.for("react.provider"),P5=Symbol.for("react.context"),Xv=Symbol.for("react.forward_ref"),sh=Symbol.for("react.suspense"),lh=Symbol.for("react.suspense_list"),Yv=Symbol.for("react.memo"),ea=Symbol.for("react.lazy"),S5=Symbol.for("react.offscreen"),y1=Symbol.iterator;function js(e){return e===null||typeof e!="object"?null:(e=y1&&e[y1]||e["@@iterator"],typeof e=="function"?e:null)}var Ue=Object.assign,Kd;function Qs(e){if(Kd===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Kd=t&&t[1]||""}return`
 `+Kd+e}var Xd=!1;function Yd(e,t){if(!e||Xd)return"";Xd=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&typeof u.stack=="string"){for(var a=u.stack.split(`
 `),o=r.stack.split(`
 `),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(i!==1||s!==1)do if(i--,s--,0>s||a[i]!==o[s]){var l=`
-`+a[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}while(1<=i&&0<=s);break}}}finally{Xd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Qs(e):""}function ak(e){switch(e.tag){case 5:return Qs(e.type);case 16:return Qs("Lazy");case 13:return Qs("Suspense");case 19:return Qs("SuspenseList");case 0:case 2:case 15:return e=Yd(e.type,!1),e;case 11:return e=Yd(e.type.render,!1),e;case 1:return e=Yd(e.type,!0),e;default:return""}}function uh(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 Wo:return"Fragment";case Uo:return"Portal";case ih:return"Profiler";case Ky:return"StrictMode";case sh:return"Suspense";case lh:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case w5:return(e.displayName||"Context")+".Consumer";case x5:return(e._context.displayName||"Context")+".Provider";case Xy:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Yy:return t=e.displayName||null,t!==null?t:uh(e.type)||"Memo";case ea:t=e._payload,e=e._init;try{return uh(e(t))}catch{}}return null}function ok(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 uh(t);case 8:return t===Ky?"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 ka(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function P5(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ik(e){var t=P5(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 a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Uu(e){e._valueTracker||(e._valueTracker=ik(e))}function S5(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=P5(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Uc(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 ch(e,t){var n=t.checked;return Ue({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function g1(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ka(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 O5(e,t){t=t.checked,t!=null&&Vy(e,"checked",t,!1)}function fh(e,t){O5(e,t);var n=ka(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")?ph(e,t.type,n):t.hasOwnProperty("defaultValue")&&ph(e,t.type,ka(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function x1(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 ph(e,t,n){(t!=="number"||Uc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Zs=Array.isArray;function oi(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+ka(n),t=null,a=0;a<e.length;a++){if(e[a].value===n){e[a].selected=!0,r&&(e[a].defaultSelected=!0);return}t!==null||e[a].disabled||(t=e[a])}t!==null&&(t.selected=!0)}}function dh(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(U(91));return Ue({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function w1(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(U(92));if(Zs(n)){if(1<n.length)throw Error(U(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:ka(n)}}function k5(e,t){var n=ka(t.value),r=ka(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function b1(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function _5(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function mh(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?_5(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Wu,A5=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,a){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,a)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Wu=Wu||document.createElement("div"),Wu.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Wu.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function wl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var rl={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},sk=["Webkit","ms","Moz","O"];Object.keys(rl).forEach(function(e){sk.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),rl[t]=rl[e]})});function C5(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||rl.hasOwnProperty(e)&&rl[e]?(""+t).trim():t+"px"}function E5(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=C5(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}var lk=Ue({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 hh(e,t){if(t){if(lk[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(U(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(U(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(U(61))}if(t.style!=null&&typeof t.style!="object")throw Error(U(62))}}function vh(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 yh=null;function Qy(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var gh=null,ii=null,si=null;function P1(e){if(e=Cu(e)){if(typeof gh!="function")throw Error(U(280));var t=e.stateNode;t&&(t=Tp(t),gh(e.stateNode,e.type,t))}}function T5(e){ii?si?si.push(e):si=[e]:ii=e}function j5(){if(ii){var e=ii,t=si;if(si=ii=null,P1(e),t)for(e=0;e<t.length;e++)P1(t[e])}}function $5(e,t){return e(t)}function N5(){}var Qd=!1;function M5(e,t,n){if(Qd)return e(t,n);Qd=!0;try{return $5(e,t,n)}finally{Qd=!1,(ii!==null||si!==null)&&(N5(),j5())}}function bl(e,t){var n=e.stateNode;if(n===null)return null;var r=Tp(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(U(231,t,typeof n));return n}var xh=!1;if(Mr)try{var $s={};Object.defineProperty($s,"passive",{get:function(){xh=!0}}),window.addEventListener("test",$s,$s),window.removeEventListener("test",$s,$s)}catch{xh=!1}function uk(e,t,n,r,a,o,i,s,l){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(f){this.onError(f)}}var al=!1,Wc=null,qc=!1,wh=null,ck={onError:function(e){al=!0,Wc=e}};function fk(e,t,n,r,a,o,i,s,l){al=!1,Wc=null,uk.apply(ck,arguments)}function pk(e,t,n,r,a,o,i,s,l){if(fk.apply(this,arguments),al){if(al){var u=Wc;al=!1,Wc=null}else throw Error(U(198));qc||(qc=!0,wh=u)}}function To(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function R5(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function S1(e){if(To(e)!==e)throw Error(U(188))}function dk(e){var t=e.alternate;if(!t){if(t=To(e),t===null)throw Error(U(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var o=a.alternate;if(o===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return S1(a),e;if(o===r)return S1(a),t;o=o.sibling}throw Error(U(188))}if(n.return!==r.return)n=a,r=o;else{for(var i=!1,s=a.child;s;){if(s===n){i=!0,n=a,r=o;break}if(s===r){i=!0,r=a,n=o;break}s=s.sibling}if(!i){for(s=o.child;s;){if(s===n){i=!0,n=o,r=a;break}if(s===r){i=!0,r=o,n=a;break}s=s.sibling}if(!i)throw Error(U(189))}}if(n.alternate!==r)throw Error(U(190))}if(n.tag!==3)throw Error(U(188));return n.stateNode.current===n?e:t}function I5(e){return e=dk(e),e!==null?D5(e):null}function D5(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=D5(e);if(t!==null)return t;e=e.sibling}return null}var L5=an.unstable_scheduleCallback,O1=an.unstable_cancelCallback,mk=an.unstable_shouldYield,hk=an.unstable_requestPaint,Ke=an.unstable_now,vk=an.unstable_getCurrentPriorityLevel,Zy=an.unstable_ImmediatePriority,F5=an.unstable_UserBlockingPriority,Vc=an.unstable_NormalPriority,yk=an.unstable_LowPriority,z5=an.unstable_IdlePriority,_p=null,ur=null;function gk(e){if(ur&&typeof ur.onCommitFiberRoot=="function")try{ur.onCommitFiberRoot(_p,e,void 0,(e.current.flags&128)===128)}catch{}}var Hn=Math.clz32?Math.clz32:bk,xk=Math.log,wk=Math.LN2;function bk(e){return e>>>=0,e===0?32:31-(xk(e)/wk|0)|0}var qu=64,Vu=4194304;function Js(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 Kc(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var s=i&~a;s!==0?r=Js(s):(o&=i,o!==0&&(r=Js(o)))}else i=n&~a,i!==0?r=Js(i):o!==0&&(r=Js(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&a)&&(a=r&-r,o=t&-t,a>=o||a===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-Hn(t),a=1<<n,r|=e[n],t&=~a;return r}function Pk(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Sk(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-Hn(o),s=1<<i,l=a[i];l===-1?(!(s&n)||s&r)&&(a[i]=Pk(s,t)):l<=t&&(e.expiredLanes|=s),o&=~s}}function bh(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function B5(){var e=qu;return qu<<=1,!(qu&4194240)&&(qu=64),e}function Zd(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function _u(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Hn(t),e[t]=n}function Ok(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<n;){var a=31-Hn(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}function Jy(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Hn(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var ke=0;function H5(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var G5,e0,U5,W5,q5,Ph=!1,Ku=[],va=null,ya=null,ga=null,Pl=new Map,Sl=new Map,ra=[],kk="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function k1(e,t){switch(e){case"focusin":case"focusout":va=null;break;case"dragenter":case"dragleave":ya=null;break;case"mouseover":case"mouseout":ga=null;break;case"pointerover":case"pointerout":Pl.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Sl.delete(t.pointerId)}}function Ns(e,t,n,r,a,o){return e===null||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},t!==null&&(t=Cu(t),t!==null&&e0(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,a!==null&&t.indexOf(a)===-1&&t.push(a),e)}function _k(e,t,n,r,a){switch(t){case"focusin":return va=Ns(va,e,t,n,r,a),!0;case"dragenter":return ya=Ns(ya,e,t,n,r,a),!0;case"mouseover":return ga=Ns(ga,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Pl.set(o,Ns(Pl.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Sl.set(o,Ns(Sl.get(o)||null,e,t,n,r,a)),!0}return!1}function V5(e){var t=Xa(e.target);if(t!==null){var n=To(t);if(n!==null){if(t=n.tag,t===13){if(t=R5(n),t!==null){e.blockedOn=t,q5(e.priority,function(){U5(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Cc(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Sh(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);yh=r,n.target.dispatchEvent(r),yh=null}else return t=Cu(n),t!==null&&e0(t),e.blockedOn=n,!1;t.shift()}return!0}function _1(e,t,n){Cc(e)&&n.delete(t)}function Ak(){Ph=!1,va!==null&&Cc(va)&&(va=null),ya!==null&&Cc(ya)&&(ya=null),ga!==null&&Cc(ga)&&(ga=null),Pl.forEach(_1),Sl.forEach(_1)}function Ms(e,t){e.blockedOn===t&&(e.blockedOn=null,Ph||(Ph=!0,an.unstable_scheduleCallback(an.unstable_NormalPriority,Ak)))}function Ol(e){function t(a){return Ms(a,e)}if(0<Ku.length){Ms(Ku[0],e);for(var n=1;n<Ku.length;n++){var r=Ku[n];r.blockedOn===e&&(r.blockedOn=null)}}for(va!==null&&Ms(va,e),ya!==null&&Ms(ya,e),ga!==null&&Ms(ga,e),Pl.forEach(t),Sl.forEach(t),n=0;n<ra.length;n++)r=ra[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<ra.length&&(n=ra[0],n.blockedOn===null);)V5(n),n.blockedOn===null&&ra.shift()}var li=Gr.ReactCurrentBatchConfig,Xc=!0;function Ck(e,t,n,r){var a=ke,o=li.transition;li.transition=null;try{ke=1,t0(e,t,n,r)}finally{ke=a,li.transition=o}}function Ek(e,t,n,r){var a=ke,o=li.transition;li.transition=null;try{ke=4,t0(e,t,n,r)}finally{ke=a,li.transition=o}}function t0(e,t,n,r){if(Xc){var a=Sh(e,t,n,r);if(a===null)lm(e,t,r,Yc,n),k1(e,r);else if(_k(a,e,t,n,r))r.stopPropagation();else if(k1(e,r),t&4&&-1<kk.indexOf(e)){for(;a!==null;){var o=Cu(a);if(o!==null&&G5(o),o=Sh(e,t,n,r),o===null&&lm(e,t,r,Yc,n),o===a)break;a=o}a!==null&&r.stopPropagation()}else lm(e,t,r,null,n)}}var Yc=null;function Sh(e,t,n,r){if(Yc=null,e=Qy(r),e=Xa(e),e!==null)if(t=To(e),t===null)e=null;else if(n=t.tag,n===13){if(e=R5(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Yc=e,null}function K5(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(vk()){case Zy:return 1;case F5:return 4;case Vc:case yk:return 16;case z5:return 536870912;default:return 16}default:return 16}}var fa=null,n0=null,Ec=null;function X5(){if(Ec)return Ec;var e,t=n0,n=t.length,r,a="value"in fa?fa.value:fa.textContent,o=a.length;for(e=0;e<n&&t[e]===a[e];e++);var i=n-e;for(r=1;r<=i&&t[n-r]===a[o-r];r++);return Ec=a.slice(e,1<r?1-r:void 0)}function Tc(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Xu(){return!0}function A1(){return!1}function sn(e){function t(n,r,a,o,i){this._reactName=n,this._targetInst=a,this.type=r,this.nativeEvent=o,this.target=i,this.currentTarget=null;for(var s in e)e.hasOwnProperty(s)&&(n=e[s],this[s]=n?n(o):o[s]);return this.isDefaultPrevented=(o.defaultPrevented!=null?o.defaultPrevented:o.returnValue===!1)?Xu:A1,this.isPropagationStopped=A1,this}return Ue(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Xu)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Xu)},persist:function(){},isPersistent:Xu}),t}var us={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},r0=sn(us),Au=Ue({},us,{view:0,detail:0}),Tk=sn(Au),Jd,em,Rs,Ap=Ue({},Au,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:a0,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Rs&&(Rs&&e.type==="mousemove"?(Jd=e.screenX-Rs.screenX,em=e.screenY-Rs.screenY):em=Jd=0,Rs=e),Jd)},movementY:function(e){return"movementY"in e?e.movementY:em}}),C1=sn(Ap),jk=Ue({},Ap,{dataTransfer:0}),$k=sn(jk),Nk=Ue({},Au,{relatedTarget:0}),tm=sn(Nk),Mk=Ue({},us,{animationName:0,elapsedTime:0,pseudoElement:0}),Rk=sn(Mk),Ik=Ue({},us,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Dk=sn(Ik),Lk=Ue({},us,{data:0}),E1=sn(Lk),Fk={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},zk={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Bk={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Hk(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Bk[e])?!!t[e]:!1}function a0(){return Hk}var Gk=Ue({},Au,{key:function(e){if(e.key){var t=Fk[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Tc(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?zk[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:a0,charCode:function(e){return e.type==="keypress"?Tc(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Tc(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Uk=sn(Gk),Wk=Ue({},Ap,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),T1=sn(Wk),qk=Ue({},Au,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:a0}),Vk=sn(qk),Kk=Ue({},us,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xk=sn(Kk),Yk=Ue({},Ap,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Qk=sn(Yk),Zk=[9,13,27,32],o0=Mr&&"CompositionEvent"in window,ol=null;Mr&&"documentMode"in document&&(ol=document.documentMode);var Jk=Mr&&"TextEvent"in window&&!ol,Y5=Mr&&(!o0||ol&&8<ol&&11>=ol),j1=" ",$1=!1;function Q5(e,t){switch(e){case"keyup":return Zk.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Z5(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var qo=!1;function e_(e,t){switch(e){case"compositionend":return Z5(t);case"keypress":return t.which!==32?null:($1=!0,j1);case"textInput":return e=t.data,e===j1&&$1?null:e;default:return null}}function t_(e,t){if(qo)return e==="compositionend"||!o0&&Q5(e,t)?(e=X5(),Ec=n0=fa=null,qo=!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.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Y5&&t.locale!=="ko"?null:t.data;default:return null}}var n_={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function N1(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!n_[e.type]:t==="textarea"}function J5(e,t,n,r){T5(r),t=Qc(t,"onChange"),0<t.length&&(n=new r0("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var il=null,kl=null;function r_(e){c9(e,0)}function Cp(e){var t=Xo(e);if(S5(t))return e}function a_(e,t){if(e==="change")return t}var e9=!1;if(Mr){var nm;if(Mr){var rm="oninput"in document;if(!rm){var M1=document.createElement("div");M1.setAttribute("oninput","return;"),rm=typeof M1.oninput=="function"}nm=rm}else nm=!1;e9=nm&&(!document.documentMode||9<document.documentMode)}function R1(){il&&(il.detachEvent("onpropertychange",t9),kl=il=null)}function t9(e){if(e.propertyName==="value"&&Cp(kl)){var t=[];J5(t,kl,e,Qy(e)),M5(r_,t)}}function o_(e,t,n){e==="focusin"?(R1(),il=t,kl=n,il.attachEvent("onpropertychange",t9)):e==="focusout"&&R1()}function i_(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Cp(kl)}function s_(e,t){if(e==="click")return Cp(t)}function l_(e,t){if(e==="input"||e==="change")return Cp(t)}function u_(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Un=typeof Object.is=="function"?Object.is:u_;function _l(e,t){if(Un(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!oh.call(t,a)||!Un(e[a],t[a]))return!1}return!0}function I1(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function D1(e,t){var n=I1(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=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=I1(n)}}function n9(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?n9(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function r9(){for(var e=window,t=Uc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Uc(e.document)}return t}function i0(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 c_(e){var t=r9(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&n9(n.ownerDocument.documentElement,n)){if(r!==null&&i0(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 a=n.textContent.length,o=Math.min(r.start,a);r=r.end===void 0?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=D1(n,o);var i=D1(n,r);a&&i&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.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<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var f_=Mr&&"documentMode"in document&&11>=document.documentMode,Vo=null,Oh=null,sl=null,kh=!1;function L1(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;kh||Vo==null||Vo!==Uc(r)||(r=Vo,"selectionStart"in r&&i0(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}),sl&&_l(sl,r)||(sl=r,r=Qc(Oh,"onSelect"),0<r.length&&(t=new r0("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=Vo)))}function Yu(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ko={animationend:Yu("Animation","AnimationEnd"),animationiteration:Yu("Animation","AnimationIteration"),animationstart:Yu("Animation","AnimationStart"),transitionend:Yu("Transition","TransitionEnd")},am={},a9={};Mr&&(a9=document.createElement("div").style,"AnimationEvent"in window||(delete Ko.animationend.animation,delete Ko.animationiteration.animation,delete Ko.animationstart.animation),"TransitionEvent"in window||delete Ko.transitionend.transition);function Ep(e){if(am[e])return am[e];if(!Ko[e])return e;var t=Ko[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in a9)return am[e]=t[n];return e}var o9=Ep("animationend"),i9=Ep("animationiteration"),s9=Ep("animationstart"),l9=Ep("transitionend"),u9=new Map,F1="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Ta(e,t){u9.set(e,t),Eo(t,[e])}for(var om=0;om<F1.length;om++){var im=F1[om],p_=im.toLowerCase(),d_=im[0].toUpperCase()+im.slice(1);Ta(p_,"on"+d_)}Ta(o9,"onAnimationEnd");Ta(i9,"onAnimationIteration");Ta(s9,"onAnimationStart");Ta("dblclick","onDoubleClick");Ta("focusin","onFocus");Ta("focusout","onBlur");Ta(l9,"onTransitionEnd");Ai("onMouseEnter",["mouseout","mouseover"]);Ai("onMouseLeave",["mouseout","mouseover"]);Ai("onPointerEnter",["pointerout","pointerover"]);Ai("onPointerLeave",["pointerout","pointerover"]);Eo("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Eo("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Eo("onBeforeInput",["compositionend","keypress","textInput","paste"]);Eo("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Eo("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Eo("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var el="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),m_=new Set("cancel close invalid load scroll toggle".split(" ").concat(el));function z1(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,pk(r,t,void 0,e),e.currentTarget=null}function c9(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,u=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;z1(a,s,u),o=l}else for(i=0;i<r.length;i++){if(s=r[i],l=s.instance,u=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;z1(a,s,u),o=l}}}if(qc)throw e=wh,qc=!1,wh=null,e}function Ie(e,t){var n=t[Th];n===void 0&&(n=t[Th]=new Set);var r=e+"__bubble";n.has(r)||(f9(t,e,2,!1),n.add(r))}function sm(e,t,n){var r=0;t&&(r|=4),f9(n,e,r,t)}var Qu="_reactListening"+Math.random().toString(36).slice(2);function Al(e){if(!e[Qu]){e[Qu]=!0,g5.forEach(function(n){n!=="selectionchange"&&(m_.has(n)||sm(n,!1,e),sm(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Qu]||(t[Qu]=!0,sm("selectionchange",!1,t))}}function f9(e,t,n,r){switch(K5(t)){case 1:var a=Ck;break;case 4:a=Ek;break;default:a=t0}n=a.bind(null,t,n,e),a=void 0,!xh||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(a=!0),r?a!==void 0?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):a!==void 0?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function lm(e,t,n,r,a){var o=r;if(!(t&1)&&!(t&2)&&r!==null)e:for(;;){if(r===null)return;var i=r.tag;if(i===3||i===4){var s=r.stateNode.containerInfo;if(s===a||s.nodeType===8&&s.parentNode===a)break;if(i===4)for(i=r.return;i!==null;){var l=i.tag;if((l===3||l===4)&&(l=i.stateNode.containerInfo,l===a||l.nodeType===8&&l.parentNode===a))return;i=i.return}for(;s!==null;){if(i=Xa(s),i===null)return;if(l=i.tag,l===5||l===6){r=o=i;continue e}s=s.parentNode}}r=r.return}M5(function(){var u=o,f=Qy(n),c=[];e:{var p=u9.get(e);if(p!==void 0){var d=r0,h=e;switch(e){case"keypress":if(Tc(n)===0)break e;case"keydown":case"keyup":d=Uk;break;case"focusin":h="focus",d=tm;break;case"focusout":h="blur",d=tm;break;case"beforeblur":case"afterblur":d=tm;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":d=C1;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":d=$k;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":d=Vk;break;case o9:case i9:case s9:d=Rk;break;case l9:d=Xk;break;case"scroll":d=Tk;break;case"wheel":d=Qk;break;case"copy":case"cut":case"paste":d=Dk;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":d=T1}var m=(t&4)!==0,g=!m&&e==="scroll",v=m?p!==null?p+"Capture":null:p;m=[];for(var y=u,x;y!==null;){x=y;var P=x.stateNode;if(x.tag===5&&P!==null&&(x=P,v!==null&&(P=bl(y,v),P!=null&&m.push(Cl(y,P,x)))),g)break;y=y.return}0<m.length&&(p=new d(p,h,null,n,f),c.push({event:p,listeners:m}))}}if(!(t&7)){e:{if(p=e==="mouseover"||e==="pointerover",d=e==="mouseout"||e==="pointerout",p&&n!==yh&&(h=n.relatedTarget||n.fromElement)&&(Xa(h)||h[Rr]))break e;if((d||p)&&(p=f.window===f?f:(p=f.ownerDocument)?p.defaultView||p.parentWindow:window,d?(h=n.relatedTarget||n.toElement,d=u,h=h?Xa(h):null,h!==null&&(g=To(h),h!==g||h.tag!==5&&h.tag!==6)&&(h=null)):(d=null,h=u),d!==h)){if(m=C1,P="onMouseLeave",v="onMouseEnter",y="mouse",(e==="pointerout"||e==="pointerover")&&(m=T1,P="onPointerLeave",v="onPointerEnter",y="pointer"),g=d==null?p:Xo(d),x=h==null?p:Xo(h),p=new m(P,y+"leave",d,n,f),p.target=g,p.relatedTarget=x,P=null,Xa(f)===u&&(m=new m(v,y+"enter",h,n,f),m.target=x,m.relatedTarget=g,P=m),g=P,d&&h)t:{for(m=d,v=h,y=0,x=m;x;x=Io(x))y++;for(x=0,P=v;P;P=Io(P))x++;for(;0<y-x;)m=Io(m),y--;for(;0<x-y;)v=Io(v),x--;for(;y--;){if(m===v||v!==null&&m===v.alternate)break t;m=Io(m),v=Io(v)}m=null}else m=null;d!==null&&B1(c,p,d,m,!1),h!==null&&g!==null&&B1(c,g,h,m,!0)}}e:{if(p=u?Xo(u):window,d=p.nodeName&&p.nodeName.toLowerCase(),d==="select"||d==="input"&&p.type==="file")var w=a_;else if(N1(p))if(e9)w=l_;else{w=i_;var S=o_}else(d=p.nodeName)&&d.toLowerCase()==="input"&&(p.type==="checkbox"||p.type==="radio")&&(w=s_);if(w&&(w=w(e,u))){J5(c,w,n,f);break e}S&&S(e,p,u),e==="focusout"&&(S=p._wrapperState)&&S.controlled&&p.type==="number"&&ph(p,"number",p.value)}switch(S=u?Xo(u):window,e){case"focusin":(N1(S)||S.contentEditable==="true")&&(Vo=S,Oh=u,sl=null);break;case"focusout":sl=Oh=Vo=null;break;case"mousedown":kh=!0;break;case"contextmenu":case"mouseup":case"dragend":kh=!1,L1(c,n,f);break;case"selectionchange":if(f_)break;case"keydown":case"keyup":L1(c,n,f)}var O;if(o0)e:{switch(e){case"compositionstart":var _="onCompositionStart";break e;case"compositionend":_="onCompositionEnd";break e;case"compositionupdate":_="onCompositionUpdate";break e}_=void 0}else qo?Q5(e,n)&&(_="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(_="onCompositionStart");_&&(Y5&&n.locale!=="ko"&&(qo||_!=="onCompositionStart"?_==="onCompositionEnd"&&qo&&(O=X5()):(fa=f,n0="value"in fa?fa.value:fa.textContent,qo=!0)),S=Qc(u,_),0<S.length&&(_=new E1(_,e,null,n,f),c.push({event:_,listeners:S}),O?_.data=O:(O=Z5(n),O!==null&&(_.data=O)))),(O=Jk?e_(e,n):t_(e,n))&&(u=Qc(u,"onBeforeInput"),0<u.length&&(f=new E1("onBeforeInput","beforeinput",null,n,f),c.push({event:f,listeners:u}),f.data=O))}c9(c,t)})}function Cl(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Qc(e,t){for(var n=t+"Capture",r=[];e!==null;){var a=e,o=a.stateNode;a.tag===5&&o!==null&&(a=o,o=bl(e,n),o!=null&&r.unshift(Cl(e,o,a)),o=bl(e,t),o!=null&&r.push(Cl(e,o,a))),e=e.return}return r}function Io(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function B1(e,t,n,r,a){for(var o=t._reactName,i=[];n!==null&&n!==r;){var s=n,l=s.alternate,u=s.stateNode;if(l!==null&&l===r)break;s.tag===5&&u!==null&&(s=u,a?(l=bl(n,o),l!=null&&i.unshift(Cl(n,l,s))):a||(l=bl(n,o),l!=null&&i.push(Cl(n,l,s)))),n=n.return}i.length!==0&&e.push({event:t,listeners:i})}var h_=/\r\n?/g,v_=/\u0000|\uFFFD/g;function H1(e){return(typeof e=="string"?e:""+e).replace(h_,`
-`).replace(v_,"")}function Zu(e,t,n){if(t=H1(t),H1(e)!==t&&n)throw Error(U(425))}function Zc(){}var _h=null,Ah=null;function Ch(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Eh=typeof setTimeout=="function"?setTimeout:void 0,y_=typeof clearTimeout=="function"?clearTimeout:void 0,G1=typeof Promise=="function"?Promise:void 0,g_=typeof queueMicrotask=="function"?queueMicrotask:typeof G1<"u"?function(e){return G1.resolve(null).then(e).catch(x_)}:Eh;function x_(e){setTimeout(function(){throw e})}function um(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(r===0){e.removeChild(a),Ol(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=a}while(n);Ol(t)}function xa(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function U1(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var cs=Math.random().toString(36).slice(2),nr="__reactFiber$"+cs,El="__reactProps$"+cs,Rr="__reactContainer$"+cs,Th="__reactEvents$"+cs,w_="__reactListeners$"+cs,b_="__reactHandles$"+cs;function Xa(e){var t=e[nr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Rr]||n[nr]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=U1(e);e!==null;){if(n=e[nr])return n;e=U1(e)}return t}e=n,n=e.parentNode}return null}function Cu(e){return e=e[nr]||e[Rr],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Xo(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(U(33))}function Tp(e){return e[El]||null}var jh=[],Yo=-1;function ja(e){return{current:e}}function Fe(e){0>Yo||(e.current=jh[Yo],jh[Yo]=null,Yo--)}function $e(e,t){Yo++,jh[Yo]=e.current,e.current=t}var _a={},Tt=ja(_a),Gt=ja(!1),ho=_a;function Ci(e,t){var n=e.type.contextTypes;if(!n)return _a;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a={},o;for(o in n)a[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ut(e){return e=e.childContextTypes,e!=null}function Jc(){Fe(Gt),Fe(Tt)}function W1(e,t,n){if(Tt.current!==_a)throw Error(U(168));$e(Tt,t),$e(Gt,n)}function p9(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in t))throw Error(U(108,ok(e)||"Unknown",a));return Ue({},n,r)}function ef(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||_a,ho=Tt.current,$e(Tt,e),$e(Gt,Gt.current),!0}function q1(e,t,n){var r=e.stateNode;if(!r)throw Error(U(169));n?(e=p9(e,t,ho),r.__reactInternalMemoizedMergedChildContext=e,Fe(Gt),Fe(Tt),$e(Tt,e)):Fe(Gt),$e(Gt,n)}var Sr=null,jp=!1,cm=!1;function d9(e){Sr===null?Sr=[e]:Sr.push(e)}function P_(e){jp=!0,d9(e)}function $a(){if(!cm&&Sr!==null){cm=!0;var e=0,t=ke;try{var n=Sr;for(ke=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}Sr=null,jp=!1}catch(a){throw Sr!==null&&(Sr=Sr.slice(e+1)),L5(Zy,$a),a}finally{ke=t,cm=!1}}return null}var Qo=[],Zo=0,tf=null,nf=0,dn=[],mn=0,vo=null,kr=1,_r="";function Ua(e,t){Qo[Zo++]=nf,Qo[Zo++]=tf,tf=e,nf=t}function m9(e,t,n){dn[mn++]=kr,dn[mn++]=_r,dn[mn++]=vo,vo=e;var r=kr;e=_r;var a=32-Hn(r)-1;r&=~(1<<a),n+=1;var o=32-Hn(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,kr=1<<32-Hn(t)+a|n<<a|r,_r=o+e}else kr=1<<o|n<<a|r,_r=e}function s0(e){e.return!==null&&(Ua(e,1),m9(e,1,0))}function l0(e){for(;e===tf;)tf=Qo[--Zo],Qo[Zo]=null,nf=Qo[--Zo],Qo[Zo]=null;for(;e===vo;)vo=dn[--mn],dn[mn]=null,_r=dn[--mn],dn[mn]=null,kr=dn[--mn],dn[mn]=null}var nn=null,en=null,ze=!1,Rn=null;function h9(e,t){var n=hn(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function V1(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,nn=e,en=xa(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,nn=e,en=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=vo!==null?{id:kr,overflow:_r}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=hn(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,nn=e,en=null,!0):!1;default:return!1}}function $h(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Nh(e){if(ze){var t=en;if(t){var n=t;if(!V1(e,t)){if($h(e))throw Error(U(418));t=xa(n.nextSibling);var r=nn;t&&V1(e,t)?h9(r,n):(e.flags=e.flags&-4097|2,ze=!1,nn=e)}}else{if($h(e))throw Error(U(418));e.flags=e.flags&-4097|2,ze=!1,nn=e}}}function K1(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;nn=e}function Ju(e){if(e!==nn)return!1;if(!ze)return K1(e),ze=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Ch(e.type,e.memoizedProps)),t&&(t=en)){if($h(e))throw v9(),Error(U(418));for(;t;)h9(e,t),t=xa(t.nextSibling)}if(K1(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(U(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){en=xa(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}en=null}}else en=nn?xa(e.stateNode.nextSibling):null;return!0}function v9(){for(var e=en;e;)e=xa(e.nextSibling)}function Ei(){en=nn=null,ze=!1}function u0(e){Rn===null?Rn=[e]:Rn.push(e)}var S_=Gr.ReactCurrentBatchConfig;function Is(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(U(309));var r=n.stateNode}if(!r)throw Error(U(147,e));var a=r,o=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===o?t.ref:(t=function(i){var s=a.refs;i===null?delete s[o]:s[o]=i},t._stringRef=o,t)}if(typeof e!="string")throw Error(U(284));if(!n._owner)throw Error(U(290,e))}return e}function ec(e,t){throw e=Object.prototype.toString.call(t),Error(U(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function X1(e){var t=e._init;return t(e._payload)}function y9(e){function t(v,y){if(e){var x=v.deletions;x===null?(v.deletions=[y],v.flags|=16):x.push(y)}}function n(v,y){if(!e)return null;for(;y!==null;)t(v,y),y=y.sibling;return null}function r(v,y){for(v=new Map;y!==null;)y.key!==null?v.set(y.key,y):v.set(y.index,y),y=y.sibling;return v}function a(v,y){return v=Sa(v,y),v.index=0,v.sibling=null,v}function o(v,y,x){return v.index=x,e?(x=v.alternate,x!==null?(x=x.index,x<y?(v.flags|=2,y):x):(v.flags|=2,y)):(v.flags|=1048576,y)}function i(v){return e&&v.alternate===null&&(v.flags|=2),v}function s(v,y,x,P){return y===null||y.tag!==6?(y=ym(x,v.mode,P),y.return=v,y):(y=a(y,x),y.return=v,y)}function l(v,y,x,P){var w=x.type;return w===Wo?f(v,y,x.props.children,P,x.key):y!==null&&(y.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===ea&&X1(w)===y.type)?(P=a(y,x.props),P.ref=Is(v,y,x),P.return=v,P):(P=Dc(x.type,x.key,x.props,null,v.mode,P),P.ref=Is(v,y,x),P.return=v,P)}function u(v,y,x,P){return y===null||y.tag!==4||y.stateNode.containerInfo!==x.containerInfo||y.stateNode.implementation!==x.implementation?(y=gm(x,v.mode,P),y.return=v,y):(y=a(y,x.children||[]),y.return=v,y)}function f(v,y,x,P,w){return y===null||y.tag!==7?(y=co(x,v.mode,P,w),y.return=v,y):(y=a(y,x),y.return=v,y)}function c(v,y,x){if(typeof y=="string"&&y!==""||typeof y=="number")return y=ym(""+y,v.mode,x),y.return=v,y;if(typeof y=="object"&&y!==null){switch(y.$$typeof){case Gu:return x=Dc(y.type,y.key,y.props,null,v.mode,x),x.ref=Is(v,null,y),x.return=v,x;case Uo:return y=gm(y,v.mode,x),y.return=v,y;case ea:var P=y._init;return c(v,P(y._payload),x)}if(Zs(y)||js(y))return y=co(y,v.mode,x,null),y.return=v,y;ec(v,y)}return null}function p(v,y,x,P){var w=y!==null?y.key:null;if(typeof x=="string"&&x!==""||typeof x=="number")return w!==null?null:s(v,y,""+x,P);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case Gu:return x.key===w?l(v,y,x,P):null;case Uo:return x.key===w?u(v,y,x,P):null;case ea:return w=x._init,p(v,y,w(x._payload),P)}if(Zs(x)||js(x))return w!==null?null:f(v,y,x,P,null);ec(v,x)}return null}function d(v,y,x,P,w){if(typeof P=="string"&&P!==""||typeof P=="number")return v=v.get(x)||null,s(y,v,""+P,w);if(typeof P=="object"&&P!==null){switch(P.$$typeof){case Gu:return v=v.get(P.key===null?x:P.key)||null,l(y,v,P,w);case Uo:return v=v.get(P.key===null?x:P.key)||null,u(y,v,P,w);case ea:var S=P._init;return d(v,y,x,S(P._payload),w)}if(Zs(P)||js(P))return v=v.get(x)||null,f(y,v,P,w,null);ec(y,P)}return null}function h(v,y,x,P){for(var w=null,S=null,O=y,_=y=0,A=null;O!==null&&_<x.length;_++){O.index>_?(A=O,O=null):A=O.sibling;var j=p(v,O,x[_],P);if(j===null){O===null&&(O=A);break}e&&O&&j.alternate===null&&t(v,O),y=o(j,y,_),S===null?w=j:S.sibling=j,S=j,O=A}if(_===x.length)return n(v,O),ze&&Ua(v,_),w;if(O===null){for(;_<x.length;_++)O=c(v,x[_],P),O!==null&&(y=o(O,y,_),S===null?w=O:S.sibling=O,S=O);return ze&&Ua(v,_),w}for(O=r(v,O);_<x.length;_++)A=d(O,v,_,x[_],P),A!==null&&(e&&A.alternate!==null&&O.delete(A.key===null?_:A.key),y=o(A,y,_),S===null?w=A:S.sibling=A,S=A);return e&&O.forEach(function(E){return t(v,E)}),ze&&Ua(v,_),w}function m(v,y,x,P){var w=js(x);if(typeof w!="function")throw Error(U(150));if(x=w.call(x),x==null)throw Error(U(151));for(var S=w=null,O=y,_=y=0,A=null,j=x.next();O!==null&&!j.done;_++,j=x.next()){O.index>_?(A=O,O=null):A=O.sibling;var E=p(v,O,j.value,P);if(E===null){O===null&&(O=A);break}e&&O&&E.alternate===null&&t(v,O),y=o(E,y,_),S===null?w=E:S.sibling=E,S=E,O=A}if(j.done)return n(v,O),ze&&Ua(v,_),w;if(O===null){for(;!j.done;_++,j=x.next())j=c(v,j.value,P),j!==null&&(y=o(j,y,_),S===null?w=j:S.sibling=j,S=j);return ze&&Ua(v,_),w}for(O=r(v,O);!j.done;_++,j=x.next())j=d(O,v,_,j.value,P),j!==null&&(e&&j.alternate!==null&&O.delete(j.key===null?_:j.key),y=o(j,y,_),S===null?w=j:S.sibling=j,S=j);return e&&O.forEach(function(T){return t(v,T)}),ze&&Ua(v,_),w}function g(v,y,x,P){if(typeof x=="object"&&x!==null&&x.type===Wo&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case Gu:e:{for(var w=x.key,S=y;S!==null;){if(S.key===w){if(w=x.type,w===Wo){if(S.tag===7){n(v,S.sibling),y=a(S,x.props.children),y.return=v,v=y;break e}}else if(S.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===ea&&X1(w)===S.type){n(v,S.sibling),y=a(S,x.props),y.ref=Is(v,S,x),y.return=v,v=y;break e}n(v,S);break}else t(v,S);S=S.sibling}x.type===Wo?(y=co(x.props.children,v.mode,P,x.key),y.return=v,v=y):(P=Dc(x.type,x.key,x.props,null,v.mode,P),P.ref=Is(v,y,x),P.return=v,v=P)}return i(v);case Uo:e:{for(S=x.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===x.containerInfo&&y.stateNode.implementation===x.implementation){n(v,y.sibling),y=a(y,x.children||[]),y.return=v,v=y;break e}else{n(v,y);break}else t(v,y);y=y.sibling}y=gm(x,v.mode,P),y.return=v,v=y}return i(v);case ea:return S=x._init,g(v,y,S(x._payload),P)}if(Zs(x))return h(v,y,x,P);if(js(x))return m(v,y,x,P);ec(v,x)}return typeof x=="string"&&x!==""||typeof x=="number"?(x=""+x,y!==null&&y.tag===6?(n(v,y.sibling),y=a(y,x),y.return=v,v=y):(n(v,y),y=ym(x,v.mode,P),y.return=v,v=y),i(v)):n(v,y)}return g}var Ti=y9(!0),g9=y9(!1),rf=ja(null),af=null,Jo=null,c0=null;function f0(){c0=Jo=af=null}function p0(e){var t=rf.current;Fe(rf),e._currentValue=t}function Mh(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 ui(e,t){af=e,c0=Jo=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Bt=!0),e.firstContext=null)}function xn(e){var t=e._currentValue;if(c0!==e)if(e={context:e,memoizedValue:t,next:null},Jo===null){if(af===null)throw Error(U(308));Jo=e,af.dependencies={lanes:0,firstContext:e}}else Jo=Jo.next=e;return t}var Ya=null;function d0(e){Ya===null?Ya=[e]:Ya.push(e)}function x9(e,t,n,r){var a=t.interleaved;return a===null?(n.next=n,d0(t)):(n.next=a.next,a.next=n),t.interleaved=n,Ir(e,r)}function Ir(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 ta=!1;function m0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function w9(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 Tr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function wa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,de&2){var a=r.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Ir(e,n)}return a=r.interleaved,a===null?(t.next=t,d0(r)):(t.next=a.next,a.next=t),r.interleaved=t,Ir(e,n)}function jc(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,Jy(e,n)}}function Y1(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?a=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?a=o=t:o=o.next=t}else a=o=t;n={baseState:r.baseState,firstBaseUpdate:a,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 of(e,t,n,r){var a=e.updateQueue;ta=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,s=a.shared.pending;if(s!==null){a.shared.pending=null;var l=s,u=l.next;l.next=null,i===null?o=u:i.next=u,i=l;var f=e.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==i&&(s===null?f.firstBaseUpdate=u:s.next=u,f.lastBaseUpdate=l))}if(o!==null){var c=a.baseState;i=0,f=u=l=null,s=o;do{var p=s.lane,d=s.eventTime;if((r&p)===p){f!==null&&(f=f.next={eventTime:d,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var h=e,m=s;switch(p=t,d=n,m.tag){case 1:if(h=m.payload,typeof h=="function"){c=h.call(d,c,p);break e}c=h;break e;case 3:h.flags=h.flags&-65537|128;case 0:if(h=m.payload,p=typeof h=="function"?h.call(d,c,p):h,p==null)break e;c=Ue({},c,p);break e;case 2:ta=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=a.effects,p===null?a.effects=[s]:p.push(s))}else d={eventTime:d,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(u=f=d,l=c):f=f.next=d,i|=p;if(s=s.next,s===null){if(s=a.shared.pending,s===null)break;p=s,s=p.next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}while(!0);if(f===null&&(l=c),a.baseState=l,a.firstBaseUpdate=u,a.lastBaseUpdate=f,t=a.shared.interleaved,t!==null){a=t;do i|=a.lane,a=a.next;while(a!==t)}else o===null&&(a.shared.lanes=0);go|=i,e.lanes=i,e.memoizedState=c}}function Q1(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(a!==null){if(r.callback=null,r=n,typeof a!="function")throw Error(U(191,a));a.call(r)}}}var Eu={},cr=ja(Eu),Tl=ja(Eu),jl=ja(Eu);function Qa(e){if(e===Eu)throw Error(U(174));return e}function h0(e,t){switch($e(jl,t),$e(Tl,e),$e(cr,Eu),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:mh(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=mh(t,e)}Fe(cr),$e(cr,t)}function ji(){Fe(cr),Fe(Tl),Fe(jl)}function b9(e){Qa(jl.current);var t=Qa(cr.current),n=mh(t,e.type);t!==n&&($e(Tl,e),$e(cr,n))}function v0(e){Tl.current===e&&(Fe(cr),Fe(Tl))}var He=ja(0);function sf(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var fm=[];function y0(){for(var e=0;e<fm.length;e++)fm[e]._workInProgressVersionPrimary=null;fm.length=0}var $c=Gr.ReactCurrentDispatcher,pm=Gr.ReactCurrentBatchConfig,yo=0,Ge=null,at=null,ct=null,lf=!1,ll=!1,$l=0,O_=0;function bt(){throw Error(U(321))}function g0(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Un(e[n],t[n]))return!1;return!0}function x0(e,t,n,r,a,o){if(yo=o,Ge=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,$c.current=e===null||e.memoizedState===null?C_:E_,e=n(r,a),ll){o=0;do{if(ll=!1,$l=0,25<=o)throw Error(U(301));o+=1,ct=at=null,t.updateQueue=null,$c.current=T_,e=n(r,a)}while(ll)}if($c.current=uf,t=at!==null&&at.next!==null,yo=0,ct=at=Ge=null,lf=!1,t)throw Error(U(300));return e}function w0(){var e=$l!==0;return $l=0,e}function Qn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ct===null?Ge.memoizedState=ct=e:ct=ct.next=e,ct}function wn(){if(at===null){var e=Ge.alternate;e=e!==null?e.memoizedState:null}else e=at.next;var t=ct===null?Ge.memoizedState:ct.next;if(t!==null)ct=t,at=e;else{if(e===null)throw Error(U(310));at=e,e={memoizedState:at.memoizedState,baseState:at.baseState,baseQueue:at.baseQueue,queue:at.queue,next:null},ct===null?Ge.memoizedState=ct=e:ct=ct.next=e}return ct}function Nl(e,t){return typeof t=="function"?t(e):t}function dm(e){var t=wn(),n=t.queue;if(n===null)throw Error(U(311));n.lastRenderedReducer=e;var r=at,a=r.baseQueue,o=n.pending;if(o!==null){if(a!==null){var i=a.next;a.next=o.next,o.next=i}r.baseQueue=a=o,n.pending=null}if(a!==null){o=a.next,r=r.baseState;var s=i=null,l=null,u=o;do{var f=u.lane;if((yo&f)===f)l!==null&&(l=l.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var c={lane:f,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};l===null?(s=l=c,i=r):l=l.next=c,Ge.lanes|=f,go|=f}u=u.next}while(u!==null&&u!==o);l===null?i=r:l.next=s,Un(r,t.memoizedState)||(Bt=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=l,n.lastRenderedState=r}if(e=n.interleaved,e!==null){a=e;do o=a.lane,Ge.lanes|=o,go|=o,a=a.next;while(a!==e)}else a===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function mm(e){var t=wn(),n=t.queue;if(n===null)throw Error(U(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var i=a=a.next;do o=e(o,i.action),i=i.next;while(i!==a);Un(o,t.memoizedState)||(Bt=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function P9(){}function S9(e,t){var n=Ge,r=wn(),a=t(),o=!Un(r.memoizedState,a);if(o&&(r.memoizedState=a,Bt=!0),r=r.queue,b0(_9.bind(null,n,r,e),[e]),r.getSnapshot!==t||o||ct!==null&&ct.memoizedState.tag&1){if(n.flags|=2048,Ml(9,k9.bind(null,n,r,a,t),void 0,null),pt===null)throw Error(U(349));yo&30||O9(n,t,a)}return a}function O9(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Ge.updateQueue,t===null?(t={lastEffect:null,stores:null},Ge.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function k9(e,t,n,r){t.value=n,t.getSnapshot=r,A9(t)&&C9(e)}function _9(e,t,n){return n(function(){A9(t)&&C9(e)})}function A9(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Un(e,n)}catch{return!0}}function C9(e){var t=Ir(e,1);t!==null&&Gn(t,e,1,-1)}function Z1(e){var t=Qn();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Nl,lastRenderedState:e},t.queue=e,e=e.dispatch=A_.bind(null,Ge,e),[t.memoizedState,e]}function Ml(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=Ge.updateQueue,t===null?(t={lastEffect:null,stores:null},Ge.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function E9(){return wn().memoizedState}function Nc(e,t,n,r){var a=Qn();Ge.flags|=e,a.memoizedState=Ml(1|t,n,void 0,r===void 0?null:r)}function $p(e,t,n,r){var a=wn();r=r===void 0?null:r;var o=void 0;if(at!==null){var i=at.memoizedState;if(o=i.destroy,r!==null&&g0(r,i.deps)){a.memoizedState=Ml(t,n,o,r);return}}Ge.flags|=e,a.memoizedState=Ml(1|t,n,o,r)}function J1(e,t){return Nc(8390656,8,e,t)}function b0(e,t){return $p(2048,8,e,t)}function T9(e,t){return $p(4,2,e,t)}function j9(e,t){return $p(4,4,e,t)}function $9(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function N9(e,t,n){return n=n!=null?n.concat([e]):null,$p(4,4,$9.bind(null,t,e),n)}function P0(){}function M9(e,t){var n=wn();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&g0(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function R9(e,t){var n=wn();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&g0(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function I9(e,t,n){return yo&21?(Un(n,t)||(n=B5(),Ge.lanes|=n,go|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Bt=!0),e.memoizedState=n)}function k_(e,t){var n=ke;ke=n!==0&&4>n?n:4,e(!0);var r=pm.transition;pm.transition={};try{e(!1),t()}finally{ke=n,pm.transition=r}}function D9(){return wn().memoizedState}function __(e,t,n){var r=Pa(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},L9(e))F9(t,n);else if(n=x9(e,t,n,r),n!==null){var a=Dt();Gn(n,e,r,a),z9(n,t,r)}}function A_(e,t,n){var r=Pa(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(L9(e))F9(t,a);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,s=o(i,n);if(a.hasEagerState=!0,a.eagerState=s,Un(s,i)){var l=t.interleaved;l===null?(a.next=a,d0(t)):(a.next=l.next,l.next=a),t.interleaved=a;return}}catch{}finally{}n=x9(e,t,a,r),n!==null&&(a=Dt(),Gn(n,e,r,a),z9(n,t,r))}}function L9(e){var t=e.alternate;return e===Ge||t!==null&&t===Ge}function F9(e,t){ll=lf=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function z9(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Jy(e,n)}}var uf={readContext:xn,useCallback:bt,useContext:bt,useEffect:bt,useImperativeHandle:bt,useInsertionEffect:bt,useLayoutEffect:bt,useMemo:bt,useReducer:bt,useRef:bt,useState:bt,useDebugValue:bt,useDeferredValue:bt,useTransition:bt,useMutableSource:bt,useSyncExternalStore:bt,useId:bt,unstable_isNewReconciler:!1},C_={readContext:xn,useCallback:function(e,t){return Qn().memoizedState=[e,t===void 0?null:t],e},useContext:xn,useEffect:J1,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Nc(4194308,4,$9.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Nc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Nc(4,2,e,t)},useMemo:function(e,t){var n=Qn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Qn();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=__.bind(null,Ge,e),[r.memoizedState,e]},useRef:function(e){var t=Qn();return e={current:e},t.memoizedState=e},useState:Z1,useDebugValue:P0,useDeferredValue:function(e){return Qn().memoizedState=e},useTransition:function(){var e=Z1(!1),t=e[0];return e=k_.bind(null,e[1]),Qn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Ge,a=Qn();if(ze){if(n===void 0)throw Error(U(407));n=n()}else{if(n=t(),pt===null)throw Error(U(349));yo&30||O9(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,J1(_9.bind(null,r,o,e),[e]),r.flags|=2048,Ml(9,k9.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Qn(),t=pt.identifierPrefix;if(ze){var n=_r,r=kr;n=(r&~(1<<32-Hn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=$l++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=O_++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},E_={readContext:xn,useCallback:M9,useContext:xn,useEffect:b0,useImperativeHandle:N9,useInsertionEffect:T9,useLayoutEffect:j9,useMemo:R9,useReducer:dm,useRef:E9,useState:function(){return dm(Nl)},useDebugValue:P0,useDeferredValue:function(e){var t=wn();return I9(t,at.memoizedState,e)},useTransition:function(){var e=dm(Nl)[0],t=wn().memoizedState;return[e,t]},useMutableSource:P9,useSyncExternalStore:S9,useId:D9,unstable_isNewReconciler:!1},T_={readContext:xn,useCallback:M9,useContext:xn,useEffect:b0,useImperativeHandle:N9,useInsertionEffect:T9,useLayoutEffect:j9,useMemo:R9,useReducer:mm,useRef:E9,useState:function(){return mm(Nl)},useDebugValue:P0,useDeferredValue:function(e){var t=wn();return at===null?t.memoizedState=e:I9(t,at.memoizedState,e)},useTransition:function(){var e=mm(Nl)[0],t=wn().memoizedState;return[e,t]},useMutableSource:P9,useSyncExternalStore:S9,useId:D9,unstable_isNewReconciler:!1};function Cn(e,t){if(e&&e.defaultProps){t=Ue({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Rh(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:Ue({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Np={isMounted:function(e){return(e=e._reactInternals)?To(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Dt(),a=Pa(e),o=Tr(r,a);o.payload=t,n!=null&&(o.callback=n),t=wa(e,o,a),t!==null&&(Gn(t,e,a,r),jc(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Dt(),a=Pa(e),o=Tr(r,a);o.tag=1,o.payload=t,n!=null&&(o.callback=n),t=wa(e,o,a),t!==null&&(Gn(t,e,a,r),jc(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Dt(),r=Pa(e),a=Tr(n,r);a.tag=2,t!=null&&(a.callback=t),t=wa(e,a,r),t!==null&&(Gn(t,e,r,n),jc(t,e,r))}};function ex(e,t,n,r,a,o,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,o,i):t.prototype&&t.prototype.isPureReactComponent?!_l(n,r)||!_l(a,o):!0}function B9(e,t,n){var r=!1,a=_a,o=t.contextType;return typeof o=="object"&&o!==null?o=xn(o):(a=Ut(t)?ho:Tt.current,r=t.contextTypes,o=(r=r!=null)?Ci(e,a):_a),t=new t(n,o),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Np,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function tx(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Np.enqueueReplaceState(t,t.state,null)}function Ih(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs={},m0(e);var o=t.contextType;typeof o=="object"&&o!==null?a.context=xn(o):(o=Ut(t)?ho:Tt.current,a.context=Ci(e,o)),a.state=e.memoizedState,o=t.getDerivedStateFromProps,typeof o=="function"&&(Rh(e,t,o,n),a.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof a.getSnapshotBeforeUpdate=="function"||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(t=a.state,typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount(),t!==a.state&&Np.enqueueReplaceState(a,a.state,null),of(e,n,a,r),a.state=e.memoizedState),typeof a.componentDidMount=="function"&&(e.flags|=4194308)}function $i(e,t){try{var n="",r=t;do n+=ak(r),r=r.return;while(r);var a=n}catch(o){a=`
+`+a[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}while(1<=i&&0<=s);break}}}finally{Xd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Qs(e):""}function sk(e){switch(e.tag){case 5:return Qs(e.type);case 16:return Qs("Lazy");case 13:return Qs("Suspense");case 19:return Qs("SuspenseList");case 0:case 2:case 15:return e=Yd(e.type,!1),e;case 11:return e=Yd(e.type.render,!1),e;case 1:return e=Yd(e.type,!0),e;default:return""}}function uh(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 Wo:return"Fragment";case Uo:return"Portal";case ih:return"Profiler";case Kv:return"StrictMode";case sh:return"Suspense";case lh:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case P5:return(e.displayName||"Context")+".Consumer";case b5:return(e._context.displayName||"Context")+".Provider";case Xv:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Yv:return t=e.displayName||null,t!==null?t:uh(e.type)||"Memo";case ea:t=e._payload,e=e._init;try{return uh(e(t))}catch{}}return null}function lk(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 uh(t);case 8:return t===Kv?"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 ka(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function O5(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function uk(e){var t=O5(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 a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Uu(e){e._valueTracker||(e._valueTracker=uk(e))}function k5(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=O5(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Uc(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 ch(e,t){var n=t.checked;return Ue({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function g1(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ka(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 _5(e,t){t=t.checked,t!=null&&Vv(e,"checked",t,!1)}function ph(e,t){_5(e,t);var n=ka(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")?fh(e,t.type,n):t.hasOwnProperty("defaultValue")&&fh(e,t.type,ka(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function x1(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 fh(e,t,n){(t!=="number"||Uc(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Zs=Array.isArray;function oi(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+ka(n),t=null,a=0;a<e.length;a++){if(e[a].value===n){e[a].selected=!0,r&&(e[a].defaultSelected=!0);return}t!==null||e[a].disabled||(t=e[a])}t!==null&&(t.selected=!0)}}function dh(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(U(91));return Ue({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function w1(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(U(92));if(Zs(n)){if(1<n.length)throw Error(U(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:ka(n)}}function C5(e,t){var n=ka(t.value),r=ka(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function b1(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function A5(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function mh(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?A5(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Wu,E5=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,a){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,a)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Wu=Wu||document.createElement("div"),Wu.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Wu.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function wl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var rl={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},ck=["Webkit","ms","Moz","O"];Object.keys(rl).forEach(function(e){ck.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),rl[t]=rl[e]})});function T5(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||rl.hasOwnProperty(e)&&rl[e]?(""+t).trim():t+"px"}function j5(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=T5(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}var pk=Ue({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 hh(e,t){if(t){if(pk[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(U(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(U(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(U(61))}if(t.style!=null&&typeof t.style!="object")throw Error(U(62))}}function vh(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 yh=null;function Qv(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var gh=null,ii=null,si=null;function P1(e){if(e=Au(e)){if(typeof gh!="function")throw Error(U(280));var t=e.stateNode;t&&(t=Tf(t),gh(e.stateNode,e.type,t))}}function $5(e){ii?si?si.push(e):si=[e]:ii=e}function N5(){if(ii){var e=ii,t=si;if(si=ii=null,P1(e),t)for(e=0;e<t.length;e++)P1(t[e])}}function M5(e,t){return e(t)}function R5(){}var Qd=!1;function I5(e,t,n){if(Qd)return e(t,n);Qd=!0;try{return M5(e,t,n)}finally{Qd=!1,(ii!==null||si!==null)&&(R5(),N5())}}function bl(e,t){var n=e.stateNode;if(n===null)return null;var r=Tf(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(U(231,t,typeof n));return n}var xh=!1;if(Mr)try{var $s={};Object.defineProperty($s,"passive",{get:function(){xh=!0}}),window.addEventListener("test",$s,$s),window.removeEventListener("test",$s,$s)}catch{xh=!1}function fk(e,t,n,r,a,o,i,s,l){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(p){this.onError(p)}}var al=!1,Wc=null,qc=!1,wh=null,dk={onError:function(e){al=!0,Wc=e}};function mk(e,t,n,r,a,o,i,s,l){al=!1,Wc=null,fk.apply(dk,arguments)}function hk(e,t,n,r,a,o,i,s,l){if(mk.apply(this,arguments),al){if(al){var u=Wc;al=!1,Wc=null}else throw Error(U(198));qc||(qc=!0,wh=u)}}function To(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function D5(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function S1(e){if(To(e)!==e)throw Error(U(188))}function vk(e){var t=e.alternate;if(!t){if(t=To(e),t===null)throw Error(U(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var o=a.alternate;if(o===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return S1(a),e;if(o===r)return S1(a),t;o=o.sibling}throw Error(U(188))}if(n.return!==r.return)n=a,r=o;else{for(var i=!1,s=a.child;s;){if(s===n){i=!0,n=a,r=o;break}if(s===r){i=!0,r=a,n=o;break}s=s.sibling}if(!i){for(s=o.child;s;){if(s===n){i=!0,n=o,r=a;break}if(s===r){i=!0,r=o,n=a;break}s=s.sibling}if(!i)throw Error(U(189))}}if(n.alternate!==r)throw Error(U(190))}if(n.tag!==3)throw Error(U(188));return n.stateNode.current===n?e:t}function L5(e){return e=vk(e),e!==null?F5(e):null}function F5(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=F5(e);if(t!==null)return t;e=e.sibling}return null}var z5=an.unstable_scheduleCallback,O1=an.unstable_cancelCallback,yk=an.unstable_shouldYield,gk=an.unstable_requestPaint,Ke=an.unstable_now,xk=an.unstable_getCurrentPriorityLevel,Zv=an.unstable_ImmediatePriority,B5=an.unstable_UserBlockingPriority,Vc=an.unstable_NormalPriority,wk=an.unstable_LowPriority,H5=an.unstable_IdlePriority,_f=null,ur=null;function bk(e){if(ur&&typeof ur.onCommitFiberRoot=="function")try{ur.onCommitFiberRoot(_f,e,void 0,(e.current.flags&128)===128)}catch{}}var Hn=Math.clz32?Math.clz32:Ok,Pk=Math.log,Sk=Math.LN2;function Ok(e){return e>>>=0,e===0?32:31-(Pk(e)/Sk|0)|0}var qu=64,Vu=4194304;function Js(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 Kc(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var s=i&~a;s!==0?r=Js(s):(o&=i,o!==0&&(r=Js(o)))}else i=n&~a,i!==0?r=Js(i):o!==0&&(r=Js(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&a)&&(a=r&-r,o=t&-t,a>=o||a===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-Hn(t),a=1<<n,r|=e[n],t&=~a;return r}function kk(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function _k(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-Hn(o),s=1<<i,l=a[i];l===-1?(!(s&n)||s&r)&&(a[i]=kk(s,t)):l<=t&&(e.expiredLanes|=s),o&=~s}}function bh(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function G5(){var e=qu;return qu<<=1,!(qu&4194240)&&(qu=64),e}function Zd(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function _u(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Hn(t),e[t]=n}function Ck(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<n;){var a=31-Hn(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}function Jv(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Hn(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var ke=0;function U5(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var W5,ey,q5,V5,K5,Ph=!1,Ku=[],va=null,ya=null,ga=null,Pl=new Map,Sl=new Map,ra=[],Ak="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function k1(e,t){switch(e){case"focusin":case"focusout":va=null;break;case"dragenter":case"dragleave":ya=null;break;case"mouseover":case"mouseout":ga=null;break;case"pointerover":case"pointerout":Pl.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Sl.delete(t.pointerId)}}function Ns(e,t,n,r,a,o){return e===null||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},t!==null&&(t=Au(t),t!==null&&ey(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,a!==null&&t.indexOf(a)===-1&&t.push(a),e)}function Ek(e,t,n,r,a){switch(t){case"focusin":return va=Ns(va,e,t,n,r,a),!0;case"dragenter":return ya=Ns(ya,e,t,n,r,a),!0;case"mouseover":return ga=Ns(ga,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Pl.set(o,Ns(Pl.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Sl.set(o,Ns(Sl.get(o)||null,e,t,n,r,a)),!0}return!1}function X5(e){var t=Xa(e.target);if(t!==null){var n=To(t);if(n!==null){if(t=n.tag,t===13){if(t=D5(n),t!==null){e.blockedOn=t,K5(e.priority,function(){q5(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ac(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Sh(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);yh=r,n.target.dispatchEvent(r),yh=null}else return t=Au(n),t!==null&&ey(t),e.blockedOn=n,!1;t.shift()}return!0}function _1(e,t,n){Ac(e)&&n.delete(t)}function Tk(){Ph=!1,va!==null&&Ac(va)&&(va=null),ya!==null&&Ac(ya)&&(ya=null),ga!==null&&Ac(ga)&&(ga=null),Pl.forEach(_1),Sl.forEach(_1)}function Ms(e,t){e.blockedOn===t&&(e.blockedOn=null,Ph||(Ph=!0,an.unstable_scheduleCallback(an.unstable_NormalPriority,Tk)))}function Ol(e){function t(a){return Ms(a,e)}if(0<Ku.length){Ms(Ku[0],e);for(var n=1;n<Ku.length;n++){var r=Ku[n];r.blockedOn===e&&(r.blockedOn=null)}}for(va!==null&&Ms(va,e),ya!==null&&Ms(ya,e),ga!==null&&Ms(ga,e),Pl.forEach(t),Sl.forEach(t),n=0;n<ra.length;n++)r=ra[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<ra.length&&(n=ra[0],n.blockedOn===null);)X5(n),n.blockedOn===null&&ra.shift()}var li=Gr.ReactCurrentBatchConfig,Xc=!0;function jk(e,t,n,r){var a=ke,o=li.transition;li.transition=null;try{ke=1,ty(e,t,n,r)}finally{ke=a,li.transition=o}}function $k(e,t,n,r){var a=ke,o=li.transition;li.transition=null;try{ke=4,ty(e,t,n,r)}finally{ke=a,li.transition=o}}function ty(e,t,n,r){if(Xc){var a=Sh(e,t,n,r);if(a===null)lm(e,t,r,Yc,n),k1(e,r);else if(Ek(a,e,t,n,r))r.stopPropagation();else if(k1(e,r),t&4&&-1<Ak.indexOf(e)){for(;a!==null;){var o=Au(a);if(o!==null&&W5(o),o=Sh(e,t,n,r),o===null&&lm(e,t,r,Yc,n),o===a)break;a=o}a!==null&&r.stopPropagation()}else lm(e,t,r,null,n)}}var Yc=null;function Sh(e,t,n,r){if(Yc=null,e=Qv(r),e=Xa(e),e!==null)if(t=To(e),t===null)e=null;else if(n=t.tag,n===13){if(e=D5(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Yc=e,null}function Y5(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(xk()){case Zv:return 1;case B5:return 4;case Vc:case wk:return 16;case H5:return 536870912;default:return 16}default:return 16}}var pa=null,ny=null,Ec=null;function Q5(){if(Ec)return Ec;var e,t=ny,n=t.length,r,a="value"in pa?pa.value:pa.textContent,o=a.length;for(e=0;e<n&&t[e]===a[e];e++);var i=n-e;for(r=1;r<=i&&t[n-r]===a[o-r];r++);return Ec=a.slice(e,1<r?1-r:void 0)}function Tc(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Xu(){return!0}function C1(){return!1}function sn(e){function t(n,r,a,o,i){this._reactName=n,this._targetInst=a,this.type=r,this.nativeEvent=o,this.target=i,this.currentTarget=null;for(var s in e)e.hasOwnProperty(s)&&(n=e[s],this[s]=n?n(o):o[s]);return this.isDefaultPrevented=(o.defaultPrevented!=null?o.defaultPrevented:o.returnValue===!1)?Xu:C1,this.isPropagationStopped=C1,this}return Ue(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Xu)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Xu)},persist:function(){},isPersistent:Xu}),t}var us={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ry=sn(us),Cu=Ue({},us,{view:0,detail:0}),Nk=sn(Cu),Jd,em,Rs,Cf=Ue({},Cu,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ay,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Rs&&(Rs&&e.type==="mousemove"?(Jd=e.screenX-Rs.screenX,em=e.screenY-Rs.screenY):em=Jd=0,Rs=e),Jd)},movementY:function(e){return"movementY"in e?e.movementY:em}}),A1=sn(Cf),Mk=Ue({},Cf,{dataTransfer:0}),Rk=sn(Mk),Ik=Ue({},Cu,{relatedTarget:0}),tm=sn(Ik),Dk=Ue({},us,{animationName:0,elapsedTime:0,pseudoElement:0}),Lk=sn(Dk),Fk=Ue({},us,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),zk=sn(Fk),Bk=Ue({},us,{data:0}),E1=sn(Bk),Hk={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Gk={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Uk={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Wk(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Uk[e])?!!t[e]:!1}function ay(){return Wk}var qk=Ue({},Cu,{key:function(e){if(e.key){var t=Hk[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Tc(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Gk[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ay,charCode:function(e){return e.type==="keypress"?Tc(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Tc(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Vk=sn(qk),Kk=Ue({},Cf,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),T1=sn(Kk),Xk=Ue({},Cu,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ay}),Yk=sn(Xk),Qk=Ue({},us,{propertyName:0,elapsedTime:0,pseudoElement:0}),Zk=sn(Qk),Jk=Ue({},Cf,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),e_=sn(Jk),t_=[9,13,27,32],oy=Mr&&"CompositionEvent"in window,ol=null;Mr&&"documentMode"in document&&(ol=document.documentMode);var n_=Mr&&"TextEvent"in window&&!ol,Z5=Mr&&(!oy||ol&&8<ol&&11>=ol),j1=" ",$1=!1;function J5(e,t){switch(e){case"keyup":return t_.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function e9(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var qo=!1;function r_(e,t){switch(e){case"compositionend":return e9(t);case"keypress":return t.which!==32?null:($1=!0,j1);case"textInput":return e=t.data,e===j1&&$1?null:e;default:return null}}function a_(e,t){if(qo)return e==="compositionend"||!oy&&J5(e,t)?(e=Q5(),Ec=ny=pa=null,qo=!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.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Z5&&t.locale!=="ko"?null:t.data;default:return null}}var o_={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function N1(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!o_[e.type]:t==="textarea"}function t9(e,t,n,r){$5(r),t=Qc(t,"onChange"),0<t.length&&(n=new ry("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var il=null,kl=null;function i_(e){f9(e,0)}function Af(e){var t=Xo(e);if(k5(t))return e}function s_(e,t){if(e==="change")return t}var n9=!1;if(Mr){var nm;if(Mr){var rm="oninput"in document;if(!rm){var M1=document.createElement("div");M1.setAttribute("oninput","return;"),rm=typeof M1.oninput=="function"}nm=rm}else nm=!1;n9=nm&&(!document.documentMode||9<document.documentMode)}function R1(){il&&(il.detachEvent("onpropertychange",r9),kl=il=null)}function r9(e){if(e.propertyName==="value"&&Af(kl)){var t=[];t9(t,kl,e,Qv(e)),I5(i_,t)}}function l_(e,t,n){e==="focusin"?(R1(),il=t,kl=n,il.attachEvent("onpropertychange",r9)):e==="focusout"&&R1()}function u_(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Af(kl)}function c_(e,t){if(e==="click")return Af(t)}function p_(e,t){if(e==="input"||e==="change")return Af(t)}function f_(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Un=typeof Object.is=="function"?Object.is:f_;function _l(e,t){if(Un(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!oh.call(t,a)||!Un(e[a],t[a]))return!1}return!0}function I1(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function D1(e,t){var n=I1(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=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=I1(n)}}function a9(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?a9(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function o9(){for(var e=window,t=Uc();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Uc(e.document)}return t}function iy(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 d_(e){var t=o9(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&a9(n.ownerDocument.documentElement,n)){if(r!==null&&iy(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 a=n.textContent.length,o=Math.min(r.start,a);r=r.end===void 0?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=D1(n,o);var i=D1(n,r);a&&i&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.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<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var m_=Mr&&"documentMode"in document&&11>=document.documentMode,Vo=null,Oh=null,sl=null,kh=!1;function L1(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;kh||Vo==null||Vo!==Uc(r)||(r=Vo,"selectionStart"in r&&iy(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}),sl&&_l(sl,r)||(sl=r,r=Qc(Oh,"onSelect"),0<r.length&&(t=new ry("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=Vo)))}function Yu(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ko={animationend:Yu("Animation","AnimationEnd"),animationiteration:Yu("Animation","AnimationIteration"),animationstart:Yu("Animation","AnimationStart"),transitionend:Yu("Transition","TransitionEnd")},am={},i9={};Mr&&(i9=document.createElement("div").style,"AnimationEvent"in window||(delete Ko.animationend.animation,delete Ko.animationiteration.animation,delete Ko.animationstart.animation),"TransitionEvent"in window||delete Ko.transitionend.transition);function Ef(e){if(am[e])return am[e];if(!Ko[e])return e;var t=Ko[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in i9)return am[e]=t[n];return e}var s9=Ef("animationend"),l9=Ef("animationiteration"),u9=Ef("animationstart"),c9=Ef("transitionend"),p9=new Map,F1="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Ta(e,t){p9.set(e,t),Eo(t,[e])}for(var om=0;om<F1.length;om++){var im=F1[om],h_=im.toLowerCase(),v_=im[0].toUpperCase()+im.slice(1);Ta(h_,"on"+v_)}Ta(s9,"onAnimationEnd");Ta(l9,"onAnimationIteration");Ta(u9,"onAnimationStart");Ta("dblclick","onDoubleClick");Ta("focusin","onFocus");Ta("focusout","onBlur");Ta(c9,"onTransitionEnd");Ci("onMouseEnter",["mouseout","mouseover"]);Ci("onMouseLeave",["mouseout","mouseover"]);Ci("onPointerEnter",["pointerout","pointerover"]);Ci("onPointerLeave",["pointerout","pointerover"]);Eo("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Eo("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Eo("onBeforeInput",["compositionend","keypress","textInput","paste"]);Eo("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Eo("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Eo("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var el="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),y_=new Set("cancel close invalid load scroll toggle".split(" ").concat(el));function z1(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,hk(r,t,void 0,e),e.currentTarget=null}function f9(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,u=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;z1(a,s,u),o=l}else for(i=0;i<r.length;i++){if(s=r[i],l=s.instance,u=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;z1(a,s,u),o=l}}}if(qc)throw e=wh,qc=!1,wh=null,e}function Ie(e,t){var n=t[Th];n===void 0&&(n=t[Th]=new Set);var r=e+"__bubble";n.has(r)||(d9(t,e,2,!1),n.add(r))}function sm(e,t,n){var r=0;t&&(r|=4),d9(n,e,r,t)}var Qu="_reactListening"+Math.random().toString(36).slice(2);function Cl(e){if(!e[Qu]){e[Qu]=!0,w5.forEach(function(n){n!=="selectionchange"&&(y_.has(n)||sm(n,!1,e),sm(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Qu]||(t[Qu]=!0,sm("selectionchange",!1,t))}}function d9(e,t,n,r){switch(Y5(t)){case 1:var a=jk;break;case 4:a=$k;break;default:a=ty}n=a.bind(null,t,n,e),a=void 0,!xh||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(a=!0),r?a!==void 0?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):a!==void 0?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function lm(e,t,n,r,a){var o=r;if(!(t&1)&&!(t&2)&&r!==null)e:for(;;){if(r===null)return;var i=r.tag;if(i===3||i===4){var s=r.stateNode.containerInfo;if(s===a||s.nodeType===8&&s.parentNode===a)break;if(i===4)for(i=r.return;i!==null;){var l=i.tag;if((l===3||l===4)&&(l=i.stateNode.containerInfo,l===a||l.nodeType===8&&l.parentNode===a))return;i=i.return}for(;s!==null;){if(i=Xa(s),i===null)return;if(l=i.tag,l===5||l===6){r=o=i;continue e}s=s.parentNode}}r=r.return}I5(function(){var u=o,p=Qv(n),c=[];e:{var f=p9.get(e);if(f!==void 0){var d=ry,h=e;switch(e){case"keypress":if(Tc(n)===0)break e;case"keydown":case"keyup":d=Vk;break;case"focusin":h="focus",d=tm;break;case"focusout":h="blur",d=tm;break;case"beforeblur":case"afterblur":d=tm;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":d=A1;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":d=Rk;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":d=Yk;break;case s9:case l9:case u9:d=Lk;break;case c9:d=Zk;break;case"scroll":d=Nk;break;case"wheel":d=e_;break;case"copy":case"cut":case"paste":d=zk;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":d=T1}var m=(t&4)!==0,g=!m&&e==="scroll",v=m?f!==null?f+"Capture":null:f;m=[];for(var y=u,x;y!==null;){x=y;var P=x.stateNode;if(x.tag===5&&P!==null&&(x=P,v!==null&&(P=bl(y,v),P!=null&&m.push(Al(y,P,x)))),g)break;y=y.return}0<m.length&&(f=new d(f,h,null,n,p),c.push({event:f,listeners:m}))}}if(!(t&7)){e:{if(f=e==="mouseover"||e==="pointerover",d=e==="mouseout"||e==="pointerout",f&&n!==yh&&(h=n.relatedTarget||n.fromElement)&&(Xa(h)||h[Rr]))break e;if((d||f)&&(f=p.window===p?p:(f=p.ownerDocument)?f.defaultView||f.parentWindow:window,d?(h=n.relatedTarget||n.toElement,d=u,h=h?Xa(h):null,h!==null&&(g=To(h),h!==g||h.tag!==5&&h.tag!==6)&&(h=null)):(d=null,h=u),d!==h)){if(m=A1,P="onMouseLeave",v="onMouseEnter",y="mouse",(e==="pointerout"||e==="pointerover")&&(m=T1,P="onPointerLeave",v="onPointerEnter",y="pointer"),g=d==null?f:Xo(d),x=h==null?f:Xo(h),f=new m(P,y+"leave",d,n,p),f.target=g,f.relatedTarget=x,P=null,Xa(p)===u&&(m=new m(v,y+"enter",h,n,p),m.target=x,m.relatedTarget=g,P=m),g=P,d&&h)t:{for(m=d,v=h,y=0,x=m;x;x=Io(x))y++;for(x=0,P=v;P;P=Io(P))x++;for(;0<y-x;)m=Io(m),y--;for(;0<x-y;)v=Io(v),x--;for(;y--;){if(m===v||v!==null&&m===v.alternate)break t;m=Io(m),v=Io(v)}m=null}else m=null;d!==null&&B1(c,f,d,m,!1),h!==null&&g!==null&&B1(c,g,h,m,!0)}}e:{if(f=u?Xo(u):window,d=f.nodeName&&f.nodeName.toLowerCase(),d==="select"||d==="input"&&f.type==="file")var w=s_;else if(N1(f))if(n9)w=p_;else{w=u_;var S=l_}else(d=f.nodeName)&&d.toLowerCase()==="input"&&(f.type==="checkbox"||f.type==="radio")&&(w=c_);if(w&&(w=w(e,u))){t9(c,w,n,p);break e}S&&S(e,f,u),e==="focusout"&&(S=f._wrapperState)&&S.controlled&&f.type==="number"&&fh(f,"number",f.value)}switch(S=u?Xo(u):window,e){case"focusin":(N1(S)||S.contentEditable==="true")&&(Vo=S,Oh=u,sl=null);break;case"focusout":sl=Oh=Vo=null;break;case"mousedown":kh=!0;break;case"contextmenu":case"mouseup":case"dragend":kh=!1,L1(c,n,p);break;case"selectionchange":if(m_)break;case"keydown":case"keyup":L1(c,n,p)}var O;if(oy)e:{switch(e){case"compositionstart":var _="onCompositionStart";break e;case"compositionend":_="onCompositionEnd";break e;case"compositionupdate":_="onCompositionUpdate";break e}_=void 0}else qo?J5(e,n)&&(_="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(_="onCompositionStart");_&&(Z5&&n.locale!=="ko"&&(qo||_!=="onCompositionStart"?_==="onCompositionEnd"&&qo&&(O=Q5()):(pa=p,ny="value"in pa?pa.value:pa.textContent,qo=!0)),S=Qc(u,_),0<S.length&&(_=new E1(_,e,null,n,p),c.push({event:_,listeners:S}),O?_.data=O:(O=e9(n),O!==null&&(_.data=O)))),(O=n_?r_(e,n):a_(e,n))&&(u=Qc(u,"onBeforeInput"),0<u.length&&(p=new E1("onBeforeInput","beforeinput",null,n,p),c.push({event:p,listeners:u}),p.data=O))}f9(c,t)})}function Al(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Qc(e,t){for(var n=t+"Capture",r=[];e!==null;){var a=e,o=a.stateNode;a.tag===5&&o!==null&&(a=o,o=bl(e,n),o!=null&&r.unshift(Al(e,o,a)),o=bl(e,t),o!=null&&r.push(Al(e,o,a))),e=e.return}return r}function Io(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function B1(e,t,n,r,a){for(var o=t._reactName,i=[];n!==null&&n!==r;){var s=n,l=s.alternate,u=s.stateNode;if(l!==null&&l===r)break;s.tag===5&&u!==null&&(s=u,a?(l=bl(n,o),l!=null&&i.unshift(Al(n,l,s))):a||(l=bl(n,o),l!=null&&i.push(Al(n,l,s)))),n=n.return}i.length!==0&&e.push({event:t,listeners:i})}var g_=/\r\n?/g,x_=/\u0000|\uFFFD/g;function H1(e){return(typeof e=="string"?e:""+e).replace(g_,`
+`).replace(x_,"")}function Zu(e,t,n){if(t=H1(t),H1(e)!==t&&n)throw Error(U(425))}function Zc(){}var _h=null,Ch=null;function Ah(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Eh=typeof setTimeout=="function"?setTimeout:void 0,w_=typeof clearTimeout=="function"?clearTimeout:void 0,G1=typeof Promise=="function"?Promise:void 0,b_=typeof queueMicrotask=="function"?queueMicrotask:typeof G1<"u"?function(e){return G1.resolve(null).then(e).catch(P_)}:Eh;function P_(e){setTimeout(function(){throw e})}function um(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(r===0){e.removeChild(a),Ol(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=a}while(n);Ol(t)}function xa(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function U1(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var cs=Math.random().toString(36).slice(2),nr="__reactFiber$"+cs,El="__reactProps$"+cs,Rr="__reactContainer$"+cs,Th="__reactEvents$"+cs,S_="__reactListeners$"+cs,O_="__reactHandles$"+cs;function Xa(e){var t=e[nr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Rr]||n[nr]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=U1(e);e!==null;){if(n=e[nr])return n;e=U1(e)}return t}e=n,n=e.parentNode}return null}function Au(e){return e=e[nr]||e[Rr],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Xo(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(U(33))}function Tf(e){return e[El]||null}var jh=[],Yo=-1;function ja(e){return{current:e}}function Fe(e){0>Yo||(e.current=jh[Yo],jh[Yo]=null,Yo--)}function $e(e,t){Yo++,jh[Yo]=e.current,e.current=t}var _a={},Tt=ja(_a),Gt=ja(!1),ho=_a;function Ai(e,t){var n=e.type.contextTypes;if(!n)return _a;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a={},o;for(o in n)a[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ut(e){return e=e.childContextTypes,e!=null}function Jc(){Fe(Gt),Fe(Tt)}function W1(e,t,n){if(Tt.current!==_a)throw Error(U(168));$e(Tt,t),$e(Gt,n)}function m9(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in t))throw Error(U(108,lk(e)||"Unknown",a));return Ue({},n,r)}function ep(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||_a,ho=Tt.current,$e(Tt,e),$e(Gt,Gt.current),!0}function q1(e,t,n){var r=e.stateNode;if(!r)throw Error(U(169));n?(e=m9(e,t,ho),r.__reactInternalMemoizedMergedChildContext=e,Fe(Gt),Fe(Tt),$e(Tt,e)):Fe(Gt),$e(Gt,n)}var Sr=null,jf=!1,cm=!1;function h9(e){Sr===null?Sr=[e]:Sr.push(e)}function k_(e){jf=!0,h9(e)}function $a(){if(!cm&&Sr!==null){cm=!0;var e=0,t=ke;try{var n=Sr;for(ke=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}Sr=null,jf=!1}catch(a){throw Sr!==null&&(Sr=Sr.slice(e+1)),z5(Zv,$a),a}finally{ke=t,cm=!1}}return null}var Qo=[],Zo=0,tp=null,np=0,dn=[],mn=0,vo=null,kr=1,_r="";function Ua(e,t){Qo[Zo++]=np,Qo[Zo++]=tp,tp=e,np=t}function v9(e,t,n){dn[mn++]=kr,dn[mn++]=_r,dn[mn++]=vo,vo=e;var r=kr;e=_r;var a=32-Hn(r)-1;r&=~(1<<a),n+=1;var o=32-Hn(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,kr=1<<32-Hn(t)+a|n<<a|r,_r=o+e}else kr=1<<o|n<<a|r,_r=e}function sy(e){e.return!==null&&(Ua(e,1),v9(e,1,0))}function ly(e){for(;e===tp;)tp=Qo[--Zo],Qo[Zo]=null,np=Qo[--Zo],Qo[Zo]=null;for(;e===vo;)vo=dn[--mn],dn[mn]=null,_r=dn[--mn],dn[mn]=null,kr=dn[--mn],dn[mn]=null}var nn=null,en=null,ze=!1,Rn=null;function y9(e,t){var n=hn(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function V1(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,nn=e,en=xa(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,nn=e,en=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=vo!==null?{id:kr,overflow:_r}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=hn(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,nn=e,en=null,!0):!1;default:return!1}}function $h(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Nh(e){if(ze){var t=en;if(t){var n=t;if(!V1(e,t)){if($h(e))throw Error(U(418));t=xa(n.nextSibling);var r=nn;t&&V1(e,t)?y9(r,n):(e.flags=e.flags&-4097|2,ze=!1,nn=e)}}else{if($h(e))throw Error(U(418));e.flags=e.flags&-4097|2,ze=!1,nn=e}}}function K1(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;nn=e}function Ju(e){if(e!==nn)return!1;if(!ze)return K1(e),ze=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Ah(e.type,e.memoizedProps)),t&&(t=en)){if($h(e))throw g9(),Error(U(418));for(;t;)y9(e,t),t=xa(t.nextSibling)}if(K1(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(U(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){en=xa(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}en=null}}else en=nn?xa(e.stateNode.nextSibling):null;return!0}function g9(){for(var e=en;e;)e=xa(e.nextSibling)}function Ei(){en=nn=null,ze=!1}function uy(e){Rn===null?Rn=[e]:Rn.push(e)}var __=Gr.ReactCurrentBatchConfig;function Is(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(U(309));var r=n.stateNode}if(!r)throw Error(U(147,e));var a=r,o=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===o?t.ref:(t=function(i){var s=a.refs;i===null?delete s[o]:s[o]=i},t._stringRef=o,t)}if(typeof e!="string")throw Error(U(284));if(!n._owner)throw Error(U(290,e))}return e}function ec(e,t){throw e=Object.prototype.toString.call(t),Error(U(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function X1(e){var t=e._init;return t(e._payload)}function x9(e){function t(v,y){if(e){var x=v.deletions;x===null?(v.deletions=[y],v.flags|=16):x.push(y)}}function n(v,y){if(!e)return null;for(;y!==null;)t(v,y),y=y.sibling;return null}function r(v,y){for(v=new Map;y!==null;)y.key!==null?v.set(y.key,y):v.set(y.index,y),y=y.sibling;return v}function a(v,y){return v=Sa(v,y),v.index=0,v.sibling=null,v}function o(v,y,x){return v.index=x,e?(x=v.alternate,x!==null?(x=x.index,x<y?(v.flags|=2,y):x):(v.flags|=2,y)):(v.flags|=1048576,y)}function i(v){return e&&v.alternate===null&&(v.flags|=2),v}function s(v,y,x,P){return y===null||y.tag!==6?(y=ym(x,v.mode,P),y.return=v,y):(y=a(y,x),y.return=v,y)}function l(v,y,x,P){var w=x.type;return w===Wo?p(v,y,x.props.children,P,x.key):y!==null&&(y.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===ea&&X1(w)===y.type)?(P=a(y,x.props),P.ref=Is(v,y,x),P.return=v,P):(P=Dc(x.type,x.key,x.props,null,v.mode,P),P.ref=Is(v,y,x),P.return=v,P)}function u(v,y,x,P){return y===null||y.tag!==4||y.stateNode.containerInfo!==x.containerInfo||y.stateNode.implementation!==x.implementation?(y=gm(x,v.mode,P),y.return=v,y):(y=a(y,x.children||[]),y.return=v,y)}function p(v,y,x,P,w){return y===null||y.tag!==7?(y=co(x,v.mode,P,w),y.return=v,y):(y=a(y,x),y.return=v,y)}function c(v,y,x){if(typeof y=="string"&&y!==""||typeof y=="number")return y=ym(""+y,v.mode,x),y.return=v,y;if(typeof y=="object"&&y!==null){switch(y.$$typeof){case Gu:return x=Dc(y.type,y.key,y.props,null,v.mode,x),x.ref=Is(v,null,y),x.return=v,x;case Uo:return y=gm(y,v.mode,x),y.return=v,y;case ea:var P=y._init;return c(v,P(y._payload),x)}if(Zs(y)||js(y))return y=co(y,v.mode,x,null),y.return=v,y;ec(v,y)}return null}function f(v,y,x,P){var w=y!==null?y.key:null;if(typeof x=="string"&&x!==""||typeof x=="number")return w!==null?null:s(v,y,""+x,P);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case Gu:return x.key===w?l(v,y,x,P):null;case Uo:return x.key===w?u(v,y,x,P):null;case ea:return w=x._init,f(v,y,w(x._payload),P)}if(Zs(x)||js(x))return w!==null?null:p(v,y,x,P,null);ec(v,x)}return null}function d(v,y,x,P,w){if(typeof P=="string"&&P!==""||typeof P=="number")return v=v.get(x)||null,s(y,v,""+P,w);if(typeof P=="object"&&P!==null){switch(P.$$typeof){case Gu:return v=v.get(P.key===null?x:P.key)||null,l(y,v,P,w);case Uo:return v=v.get(P.key===null?x:P.key)||null,u(y,v,P,w);case ea:var S=P._init;return d(v,y,x,S(P._payload),w)}if(Zs(P)||js(P))return v=v.get(x)||null,p(y,v,P,w,null);ec(y,P)}return null}function h(v,y,x,P){for(var w=null,S=null,O=y,_=y=0,C=null;O!==null&&_<x.length;_++){O.index>_?(C=O,O=null):C=O.sibling;var j=f(v,O,x[_],P);if(j===null){O===null&&(O=C);break}e&&O&&j.alternate===null&&t(v,O),y=o(j,y,_),S===null?w=j:S.sibling=j,S=j,O=C}if(_===x.length)return n(v,O),ze&&Ua(v,_),w;if(O===null){for(;_<x.length;_++)O=c(v,x[_],P),O!==null&&(y=o(O,y,_),S===null?w=O:S.sibling=O,S=O);return ze&&Ua(v,_),w}for(O=r(v,O);_<x.length;_++)C=d(O,v,_,x[_],P),C!==null&&(e&&C.alternate!==null&&O.delete(C.key===null?_:C.key),y=o(C,y,_),S===null?w=C:S.sibling=C,S=C);return e&&O.forEach(function(E){return t(v,E)}),ze&&Ua(v,_),w}function m(v,y,x,P){var w=js(x);if(typeof w!="function")throw Error(U(150));if(x=w.call(x),x==null)throw Error(U(151));for(var S=w=null,O=y,_=y=0,C=null,j=x.next();O!==null&&!j.done;_++,j=x.next()){O.index>_?(C=O,O=null):C=O.sibling;var E=f(v,O,j.value,P);if(E===null){O===null&&(O=C);break}e&&O&&E.alternate===null&&t(v,O),y=o(E,y,_),S===null?w=E:S.sibling=E,S=E,O=C}if(j.done)return n(v,O),ze&&Ua(v,_),w;if(O===null){for(;!j.done;_++,j=x.next())j=c(v,j.value,P),j!==null&&(y=o(j,y,_),S===null?w=j:S.sibling=j,S=j);return ze&&Ua(v,_),w}for(O=r(v,O);!j.done;_++,j=x.next())j=d(O,v,_,j.value,P),j!==null&&(e&&j.alternate!==null&&O.delete(j.key===null?_:j.key),y=o(j,y,_),S===null?w=j:S.sibling=j,S=j);return e&&O.forEach(function(T){return t(v,T)}),ze&&Ua(v,_),w}function g(v,y,x,P){if(typeof x=="object"&&x!==null&&x.type===Wo&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case Gu:e:{for(var w=x.key,S=y;S!==null;){if(S.key===w){if(w=x.type,w===Wo){if(S.tag===7){n(v,S.sibling),y=a(S,x.props.children),y.return=v,v=y;break e}}else if(S.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===ea&&X1(w)===S.type){n(v,S.sibling),y=a(S,x.props),y.ref=Is(v,S,x),y.return=v,v=y;break e}n(v,S);break}else t(v,S);S=S.sibling}x.type===Wo?(y=co(x.props.children,v.mode,P,x.key),y.return=v,v=y):(P=Dc(x.type,x.key,x.props,null,v.mode,P),P.ref=Is(v,y,x),P.return=v,v=P)}return i(v);case Uo:e:{for(S=x.key;y!==null;){if(y.key===S)if(y.tag===4&&y.stateNode.containerInfo===x.containerInfo&&y.stateNode.implementation===x.implementation){n(v,y.sibling),y=a(y,x.children||[]),y.return=v,v=y;break e}else{n(v,y);break}else t(v,y);y=y.sibling}y=gm(x,v.mode,P),y.return=v,v=y}return i(v);case ea:return S=x._init,g(v,y,S(x._payload),P)}if(Zs(x))return h(v,y,x,P);if(js(x))return m(v,y,x,P);ec(v,x)}return typeof x=="string"&&x!==""||typeof x=="number"?(x=""+x,y!==null&&y.tag===6?(n(v,y.sibling),y=a(y,x),y.return=v,v=y):(n(v,y),y=ym(x,v.mode,P),y.return=v,v=y),i(v)):n(v,y)}return g}var Ti=x9(!0),w9=x9(!1),rp=ja(null),ap=null,Jo=null,cy=null;function py(){cy=Jo=ap=null}function fy(e){var t=rp.current;Fe(rp),e._currentValue=t}function Mh(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 ui(e,t){ap=e,cy=Jo=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Bt=!0),e.firstContext=null)}function xn(e){var t=e._currentValue;if(cy!==e)if(e={context:e,memoizedValue:t,next:null},Jo===null){if(ap===null)throw Error(U(308));Jo=e,ap.dependencies={lanes:0,firstContext:e}}else Jo=Jo.next=e;return t}var Ya=null;function dy(e){Ya===null?Ya=[e]:Ya.push(e)}function b9(e,t,n,r){var a=t.interleaved;return a===null?(n.next=n,dy(t)):(n.next=a.next,a.next=n),t.interleaved=n,Ir(e,r)}function Ir(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 ta=!1;function my(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function P9(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 Tr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function wa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,de&2){var a=r.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Ir(e,n)}return a=r.interleaved,a===null?(t.next=t,dy(r)):(t.next=a.next,a.next=t),r.interleaved=t,Ir(e,n)}function jc(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,Jv(e,n)}}function Y1(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?a=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?a=o=t:o=o.next=t}else a=o=t;n={baseState:r.baseState,firstBaseUpdate:a,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 op(e,t,n,r){var a=e.updateQueue;ta=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,s=a.shared.pending;if(s!==null){a.shared.pending=null;var l=s,u=l.next;l.next=null,i===null?o=u:i.next=u,i=l;var p=e.alternate;p!==null&&(p=p.updateQueue,s=p.lastBaseUpdate,s!==i&&(s===null?p.firstBaseUpdate=u:s.next=u,p.lastBaseUpdate=l))}if(o!==null){var c=a.baseState;i=0,p=u=l=null,s=o;do{var f=s.lane,d=s.eventTime;if((r&f)===f){p!==null&&(p=p.next={eventTime:d,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var h=e,m=s;switch(f=t,d=n,m.tag){case 1:if(h=m.payload,typeof h=="function"){c=h.call(d,c,f);break e}c=h;break e;case 3:h.flags=h.flags&-65537|128;case 0:if(h=m.payload,f=typeof h=="function"?h.call(d,c,f):h,f==null)break e;c=Ue({},c,f);break e;case 2:ta=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=a.effects,f===null?a.effects=[s]:f.push(s))}else d={eventTime:d,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},p===null?(u=p=d,l=c):p=p.next=d,i|=f;if(s=s.next,s===null){if(s=a.shared.pending,s===null)break;f=s,s=f.next,f.next=null,a.lastBaseUpdate=f,a.shared.pending=null}}while(!0);if(p===null&&(l=c),a.baseState=l,a.firstBaseUpdate=u,a.lastBaseUpdate=p,t=a.shared.interleaved,t!==null){a=t;do i|=a.lane,a=a.next;while(a!==t)}else o===null&&(a.shared.lanes=0);go|=i,e.lanes=i,e.memoizedState=c}}function Q1(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(a!==null){if(r.callback=null,r=n,typeof a!="function")throw Error(U(191,a));a.call(r)}}}var Eu={},cr=ja(Eu),Tl=ja(Eu),jl=ja(Eu);function Qa(e){if(e===Eu)throw Error(U(174));return e}function hy(e,t){switch($e(jl,t),$e(Tl,e),$e(cr,Eu),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:mh(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=mh(t,e)}Fe(cr),$e(cr,t)}function ji(){Fe(cr),Fe(Tl),Fe(jl)}function S9(e){Qa(jl.current);var t=Qa(cr.current),n=mh(t,e.type);t!==n&&($e(Tl,e),$e(cr,n))}function vy(e){Tl.current===e&&(Fe(cr),Fe(Tl))}var He=ja(0);function ip(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var pm=[];function yy(){for(var e=0;e<pm.length;e++)pm[e]._workInProgressVersionPrimary=null;pm.length=0}var $c=Gr.ReactCurrentDispatcher,fm=Gr.ReactCurrentBatchConfig,yo=0,Ge=null,at=null,ct=null,sp=!1,ll=!1,$l=0,C_=0;function bt(){throw Error(U(321))}function gy(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Un(e[n],t[n]))return!1;return!0}function xy(e,t,n,r,a,o){if(yo=o,Ge=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,$c.current=e===null||e.memoizedState===null?j_:$_,e=n(r,a),ll){o=0;do{if(ll=!1,$l=0,25<=o)throw Error(U(301));o+=1,ct=at=null,t.updateQueue=null,$c.current=N_,e=n(r,a)}while(ll)}if($c.current=lp,t=at!==null&&at.next!==null,yo=0,ct=at=Ge=null,sp=!1,t)throw Error(U(300));return e}function wy(){var e=$l!==0;return $l=0,e}function Qn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ct===null?Ge.memoizedState=ct=e:ct=ct.next=e,ct}function wn(){if(at===null){var e=Ge.alternate;e=e!==null?e.memoizedState:null}else e=at.next;var t=ct===null?Ge.memoizedState:ct.next;if(t!==null)ct=t,at=e;else{if(e===null)throw Error(U(310));at=e,e={memoizedState:at.memoizedState,baseState:at.baseState,baseQueue:at.baseQueue,queue:at.queue,next:null},ct===null?Ge.memoizedState=ct=e:ct=ct.next=e}return ct}function Nl(e,t){return typeof t=="function"?t(e):t}function dm(e){var t=wn(),n=t.queue;if(n===null)throw Error(U(311));n.lastRenderedReducer=e;var r=at,a=r.baseQueue,o=n.pending;if(o!==null){if(a!==null){var i=a.next;a.next=o.next,o.next=i}r.baseQueue=a=o,n.pending=null}if(a!==null){o=a.next,r=r.baseState;var s=i=null,l=null,u=o;do{var p=u.lane;if((yo&p)===p)l!==null&&(l=l.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var c={lane:p,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};l===null?(s=l=c,i=r):l=l.next=c,Ge.lanes|=p,go|=p}u=u.next}while(u!==null&&u!==o);l===null?i=r:l.next=s,Un(r,t.memoizedState)||(Bt=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=l,n.lastRenderedState=r}if(e=n.interleaved,e!==null){a=e;do o=a.lane,Ge.lanes|=o,go|=o,a=a.next;while(a!==e)}else a===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function mm(e){var t=wn(),n=t.queue;if(n===null)throw Error(U(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var i=a=a.next;do o=e(o,i.action),i=i.next;while(i!==a);Un(o,t.memoizedState)||(Bt=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function O9(){}function k9(e,t){var n=Ge,r=wn(),a=t(),o=!Un(r.memoizedState,a);if(o&&(r.memoizedState=a,Bt=!0),r=r.queue,by(A9.bind(null,n,r,e),[e]),r.getSnapshot!==t||o||ct!==null&&ct.memoizedState.tag&1){if(n.flags|=2048,Ml(9,C9.bind(null,n,r,a,t),void 0,null),ft===null)throw Error(U(349));yo&30||_9(n,t,a)}return a}function _9(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Ge.updateQueue,t===null?(t={lastEffect:null,stores:null},Ge.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function C9(e,t,n,r){t.value=n,t.getSnapshot=r,E9(t)&&T9(e)}function A9(e,t,n){return n(function(){E9(t)&&T9(e)})}function E9(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Un(e,n)}catch{return!0}}function T9(e){var t=Ir(e,1);t!==null&&Gn(t,e,1,-1)}function Z1(e){var t=Qn();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Nl,lastRenderedState:e},t.queue=e,e=e.dispatch=T_.bind(null,Ge,e),[t.memoizedState,e]}function Ml(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=Ge.updateQueue,t===null?(t={lastEffect:null,stores:null},Ge.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function j9(){return wn().memoizedState}function Nc(e,t,n,r){var a=Qn();Ge.flags|=e,a.memoizedState=Ml(1|t,n,void 0,r===void 0?null:r)}function $f(e,t,n,r){var a=wn();r=r===void 0?null:r;var o=void 0;if(at!==null){var i=at.memoizedState;if(o=i.destroy,r!==null&&gy(r,i.deps)){a.memoizedState=Ml(t,n,o,r);return}}Ge.flags|=e,a.memoizedState=Ml(1|t,n,o,r)}function J1(e,t){return Nc(8390656,8,e,t)}function by(e,t){return $f(2048,8,e,t)}function $9(e,t){return $f(4,2,e,t)}function N9(e,t){return $f(4,4,e,t)}function M9(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function R9(e,t,n){return n=n!=null?n.concat([e]):null,$f(4,4,M9.bind(null,t,e),n)}function Py(){}function I9(e,t){var n=wn();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&gy(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function D9(e,t){var n=wn();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&gy(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function L9(e,t,n){return yo&21?(Un(n,t)||(n=G5(),Ge.lanes|=n,go|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Bt=!0),e.memoizedState=n)}function A_(e,t){var n=ke;ke=n!==0&&4>n?n:4,e(!0);var r=fm.transition;fm.transition={};try{e(!1),t()}finally{ke=n,fm.transition=r}}function F9(){return wn().memoizedState}function E_(e,t,n){var r=Pa(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},z9(e))B9(t,n);else if(n=b9(e,t,n,r),n!==null){var a=Dt();Gn(n,e,r,a),H9(n,t,r)}}function T_(e,t,n){var r=Pa(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(z9(e))B9(t,a);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,s=o(i,n);if(a.hasEagerState=!0,a.eagerState=s,Un(s,i)){var l=t.interleaved;l===null?(a.next=a,dy(t)):(a.next=l.next,l.next=a),t.interleaved=a;return}}catch{}finally{}n=b9(e,t,a,r),n!==null&&(a=Dt(),Gn(n,e,r,a),H9(n,t,r))}}function z9(e){var t=e.alternate;return e===Ge||t!==null&&t===Ge}function B9(e,t){ll=sp=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function H9(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Jv(e,n)}}var lp={readContext:xn,useCallback:bt,useContext:bt,useEffect:bt,useImperativeHandle:bt,useInsertionEffect:bt,useLayoutEffect:bt,useMemo:bt,useReducer:bt,useRef:bt,useState:bt,useDebugValue:bt,useDeferredValue:bt,useTransition:bt,useMutableSource:bt,useSyncExternalStore:bt,useId:bt,unstable_isNewReconciler:!1},j_={readContext:xn,useCallback:function(e,t){return Qn().memoizedState=[e,t===void 0?null:t],e},useContext:xn,useEffect:J1,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Nc(4194308,4,M9.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Nc(4194308,4,e,t)},useInsertionEffect:function(e,t){return Nc(4,2,e,t)},useMemo:function(e,t){var n=Qn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Qn();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=E_.bind(null,Ge,e),[r.memoizedState,e]},useRef:function(e){var t=Qn();return e={current:e},t.memoizedState=e},useState:Z1,useDebugValue:Py,useDeferredValue:function(e){return Qn().memoizedState=e},useTransition:function(){var e=Z1(!1),t=e[0];return e=A_.bind(null,e[1]),Qn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Ge,a=Qn();if(ze){if(n===void 0)throw Error(U(407));n=n()}else{if(n=t(),ft===null)throw Error(U(349));yo&30||_9(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,J1(A9.bind(null,r,o,e),[e]),r.flags|=2048,Ml(9,C9.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Qn(),t=ft.identifierPrefix;if(ze){var n=_r,r=kr;n=(r&~(1<<32-Hn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=$l++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=C_++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},$_={readContext:xn,useCallback:I9,useContext:xn,useEffect:by,useImperativeHandle:R9,useInsertionEffect:$9,useLayoutEffect:N9,useMemo:D9,useReducer:dm,useRef:j9,useState:function(){return dm(Nl)},useDebugValue:Py,useDeferredValue:function(e){var t=wn();return L9(t,at.memoizedState,e)},useTransition:function(){var e=dm(Nl)[0],t=wn().memoizedState;return[e,t]},useMutableSource:O9,useSyncExternalStore:k9,useId:F9,unstable_isNewReconciler:!1},N_={readContext:xn,useCallback:I9,useContext:xn,useEffect:by,useImperativeHandle:R9,useInsertionEffect:$9,useLayoutEffect:N9,useMemo:D9,useReducer:mm,useRef:j9,useState:function(){return mm(Nl)},useDebugValue:Py,useDeferredValue:function(e){var t=wn();return at===null?t.memoizedState=e:L9(t,at.memoizedState,e)},useTransition:function(){var e=mm(Nl)[0],t=wn().memoizedState;return[e,t]},useMutableSource:O9,useSyncExternalStore:k9,useId:F9,unstable_isNewReconciler:!1};function An(e,t){if(e&&e.defaultProps){t=Ue({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Rh(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:Ue({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Nf={isMounted:function(e){return(e=e._reactInternals)?To(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Dt(),a=Pa(e),o=Tr(r,a);o.payload=t,n!=null&&(o.callback=n),t=wa(e,o,a),t!==null&&(Gn(t,e,a,r),jc(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Dt(),a=Pa(e),o=Tr(r,a);o.tag=1,o.payload=t,n!=null&&(o.callback=n),t=wa(e,o,a),t!==null&&(Gn(t,e,a,r),jc(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Dt(),r=Pa(e),a=Tr(n,r);a.tag=2,t!=null&&(a.callback=t),t=wa(e,a,r),t!==null&&(Gn(t,e,r,n),jc(t,e,r))}};function ex(e,t,n,r,a,o,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,o,i):t.prototype&&t.prototype.isPureReactComponent?!_l(n,r)||!_l(a,o):!0}function G9(e,t,n){var r=!1,a=_a,o=t.contextType;return typeof o=="object"&&o!==null?o=xn(o):(a=Ut(t)?ho:Tt.current,r=t.contextTypes,o=(r=r!=null)?Ai(e,a):_a),t=new t(n,o),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Nf,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function tx(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Nf.enqueueReplaceState(t,t.state,null)}function Ih(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs={},my(e);var o=t.contextType;typeof o=="object"&&o!==null?a.context=xn(o):(o=Ut(t)?ho:Tt.current,a.context=Ai(e,o)),a.state=e.memoizedState,o=t.getDerivedStateFromProps,typeof o=="function"&&(Rh(e,t,o,n),a.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof a.getSnapshotBeforeUpdate=="function"||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(t=a.state,typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount(),t!==a.state&&Nf.enqueueReplaceState(a,a.state,null),op(e,n,a,r),a.state=e.memoizedState),typeof a.componentDidMount=="function"&&(e.flags|=4194308)}function $i(e,t){try{var n="",r=t;do n+=sk(r),r=r.return;while(r);var a=n}catch(o){a=`
 Error generating stack: `+o.message+`
-`+o.stack}return{value:e,source:t,stack:a,digest:null}}function hm(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Dh(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var j_=typeof WeakMap=="function"?WeakMap:Map;function H9(e,t,n){n=Tr(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){ff||(ff=!0,Vh=r),Dh(e,t)},n}function G9(e,t,n){n=Tr(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){Dh(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){Dh(e,t),typeof r!="function"&&(ba===null?ba=new Set([this]):ba.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function nx(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new j_;var a=new Set;r.set(t,a)}else a=r.get(t),a===void 0&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=W_.bind(null,e,t,n),t.then(e,e))}function rx(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function ax(e,t,n,r,a){return e.mode&1?(e.flags|=65536,e.lanes=a,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Tr(-1,1),t.tag=2,wa(n,t,1))),n.lanes|=1),e)}var $_=Gr.ReactCurrentOwner,Bt=!1;function Nt(e,t,n,r){t.child=e===null?g9(t,null,n,r):Ti(t,e.child,n,r)}function ox(e,t,n,r,a){n=n.render;var o=t.ref;return ui(t,a),r=x0(e,t,n,r,o,a),n=w0(),e!==null&&!Bt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Dr(e,t,a)):(ze&&n&&s0(t),t.flags|=1,Nt(e,t,r,a),t.child)}function ix(e,t,n,r,a){if(e===null){var o=n.type;return typeof o=="function"&&!T0(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,U9(e,t,o,r,a)):(e=Dc(n.type,null,r,t,t.mode,a),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!(e.lanes&a)){var i=o.memoizedProps;if(n=n.compare,n=n!==null?n:_l,n(i,r)&&e.ref===t.ref)return Dr(e,t,a)}return t.flags|=1,e=Sa(o,r),e.ref=t.ref,e.return=t,t.child=e}function U9(e,t,n,r,a){if(e!==null){var o=e.memoizedProps;if(_l(o,r)&&e.ref===t.ref)if(Bt=!1,t.pendingProps=r=o,(e.lanes&a)!==0)e.flags&131072&&(Bt=!0);else return t.lanes=e.lanes,Dr(e,t,a)}return Lh(e,t,n,r,a)}function W9(e,t,n){var r=t.pendingProps,a=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},$e(ti,Yt),Yt|=n;else{if(!(n&1073741824))return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,$e(ti,Yt),Yt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,$e(ti,Yt),Yt|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,$e(ti,Yt),Yt|=r;return Nt(e,t,a,n),t.child}function q9(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Lh(e,t,n,r,a){var o=Ut(n)?ho:Tt.current;return o=Ci(t,o),ui(t,a),n=x0(e,t,n,r,o,a),r=w0(),e!==null&&!Bt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Dr(e,t,a)):(ze&&r&&s0(t),t.flags|=1,Nt(e,t,n,a),t.child)}function sx(e,t,n,r,a){if(Ut(n)){var o=!0;ef(t)}else o=!1;if(ui(t,a),t.stateNode===null)Mc(e,t),B9(t,n,r),Ih(t,n,r,a),r=!0;else if(e===null){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,u=n.contextType;typeof u=="object"&&u!==null?u=xn(u):(u=Ut(n)?ho:Tt.current,u=Ci(t,u));var f=n.getDerivedStateFromProps,c=typeof f=="function"||typeof i.getSnapshotBeforeUpdate=="function";c||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(s!==r||l!==u)&&tx(t,i,r,u),ta=!1;var p=t.memoizedState;i.state=p,of(t,r,i,a),l=t.memoizedState,s!==r||p!==l||Gt.current||ta?(typeof f=="function"&&(Rh(t,n,f,r),l=t.memoizedState),(s=ta||ex(t,n,s,r,p,l,u))?(c||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=u,r=s):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,w9(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:Cn(t.type,s),i.props=u,c=t.pendingProps,p=i.context,l=n.contextType,typeof l=="object"&&l!==null?l=xn(l):(l=Ut(n)?ho:Tt.current,l=Ci(t,l));var d=n.getDerivedStateFromProps;(f=typeof d=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(s!==c||p!==l)&&tx(t,i,r,l),ta=!1,p=t.memoizedState,i.state=p,of(t,r,i,a);var h=t.memoizedState;s!==c||p!==h||Gt.current||ta?(typeof d=="function"&&(Rh(t,n,d,r),h=t.memoizedState),(u=ta||ex(t,n,u,r,p,h,l)||!1)?(f||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,h,l),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,h,l)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=l,r=u):(typeof i.componentDidUpdate!="function"||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Fh(e,t,n,r,o,a)}function Fh(e,t,n,r,a,o){q9(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return a&&q1(t,n,!1),Dr(e,t,o);r=t.stateNode,$_.current=t;var s=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Ti(t,e.child,null,o),t.child=Ti(t,null,s,o)):Nt(e,t,s,o),t.memoizedState=r.state,a&&q1(t,n,!0),t.child}function V9(e){var t=e.stateNode;t.pendingContext?W1(e,t.pendingContext,t.pendingContext!==t.context):t.context&&W1(e,t.context,!1),h0(e,t.containerInfo)}function lx(e,t,n,r,a){return Ei(),u0(a),t.flags|=256,Nt(e,t,n,r),t.child}var zh={dehydrated:null,treeContext:null,retryLane:0};function Bh(e){return{baseLanes:e,cachePool:null,transitions:null}}function K9(e,t,n){var r=t.pendingProps,a=He.current,o=!1,i=(t.flags&128)!==0,s;if((s=i)||(s=e!==null&&e.memoizedState===null?!1:(a&2)!==0),s?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(a|=1),$e(He,a&1),e===null)return Nh(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(i=r.children,e=r.fallback,o?(r=t.mode,o=t.child,i={mode:"hidden",children:i},!(r&1)&&o!==null?(o.childLanes=0,o.pendingProps=i):o=Ip(i,r,0,null),e=co(e,r,n,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=Bh(n),t.memoizedState=zh,e):S0(t,i));if(a=e.memoizedState,a!==null&&(s=a.dehydrated,s!==null))return N_(e,t,i,r,s,a,n);if(o){o=r.fallback,i=t.mode,a=e.child,s=a.sibling;var l={mode:"hidden",children:r.children};return!(i&1)&&t.child!==a?(r=t.child,r.childLanes=0,r.pendingProps=l,t.deletions=null):(r=Sa(a,l),r.subtreeFlags=a.subtreeFlags&14680064),s!==null?o=Sa(s,o):(o=co(o,i,n,null),o.flags|=2),o.return=t,r.return=t,r.sibling=o,t.child=r,r=o,o=t.child,i=e.child.memoizedState,i=i===null?Bh(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},o.memoizedState=i,o.childLanes=e.childLanes&~n,t.memoizedState=zh,r}return o=e.child,e=o.sibling,r=Sa(o,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function S0(e,t){return t=Ip({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function tc(e,t,n,r){return r!==null&&u0(r),Ti(t,e.child,null,n),e=S0(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function N_(e,t,n,r,a,o,i){if(n)return t.flags&256?(t.flags&=-257,r=hm(Error(U(422))),tc(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=r.fallback,a=t.mode,r=Ip({mode:"visible",children:r.children},a,0,null),o=co(o,a,i,null),o.flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,t.mode&1&&Ti(t,e.child,null,i),t.child.memoizedState=Bh(i),t.memoizedState=zh,o);if(!(t.mode&1))return tc(e,t,i,null);if(a.data==="$!"){if(r=a.nextSibling&&a.nextSibling.dataset,r)var s=r.dgst;return r=s,o=Error(U(419)),r=hm(o,r,void 0),tc(e,t,i,r)}if(s=(i&e.childLanes)!==0,Bt||s){if(r=pt,r!==null){switch(i&-i){case 4:a=2;break;case 16:a=8;break;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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}a=a&(r.suspendedLanes|i)?0:a,a!==0&&a!==o.retryLane&&(o.retryLane=a,Ir(e,a),Gn(r,e,a,-1))}return E0(),r=hm(Error(U(421))),tc(e,t,i,r)}return a.data==="$?"?(t.flags|=128,t.child=e.child,t=q_.bind(null,e),a._reactRetry=t,null):(e=o.treeContext,en=xa(a.nextSibling),nn=t,ze=!0,Rn=null,e!==null&&(dn[mn++]=kr,dn[mn++]=_r,dn[mn++]=vo,kr=e.id,_r=e.overflow,vo=t),t=S0(t,r.children),t.flags|=4096,t)}function ux(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Mh(e.return,t,n)}function vm(e,t,n,r,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function X9(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Nt(e,t,r.children,n),r=He.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ux(e,n,t);else if(e.tag===19)ux(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if($e(He,r),!(t.mode&1))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;n!==null;)e=n.alternate,e!==null&&sf(e)===null&&(a=n),n=n.sibling;n=a,n===null?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),vm(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;a!==null;){if(e=a.alternate,e!==null&&sf(e)===null){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}vm(t,!0,n,null,o);break;case"together":vm(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Mc(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Dr(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),go|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(U(153));if(t.child!==null){for(e=t.child,n=Sa(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Sa(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function M_(e,t,n){switch(t.tag){case 3:V9(t),Ei();break;case 5:b9(t);break;case 1:Ut(t.type)&&ef(t);break;case 4:h0(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;$e(rf,r._currentValue),r._currentValue=a;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?($e(He,He.current&1),t.flags|=128,null):n&t.child.childLanes?K9(e,t,n):($e(He,He.current&1),e=Dr(e,t,n),e!==null?e.sibling:null);$e(He,He.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return X9(e,t,n);t.flags|=128}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),$e(He,He.current),r)break;return null;case 22:case 23:return t.lanes=0,W9(e,t,n)}return Dr(e,t,n)}var Y9,Hh,Q9,Z9;Y9=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Hh=function(){};Q9=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Qa(cr.current);var o=null;switch(n){case"input":a=ch(e,a),r=ch(e,r),o=[];break;case"select":a=Ue({},a,{value:void 0}),r=Ue({},r,{value:void 0}),o=[];break;case"textarea":a=dh(e,a),r=dh(e,r),o=[];break;default:typeof a.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Zc)}hh(n,r);var i;n=null;for(u in a)if(!r.hasOwnProperty(u)&&a.hasOwnProperty(u)&&a[u]!=null)if(u==="style"){var s=a[u];for(i in s)s.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(xl.hasOwnProperty(u)?o||(o=[]):(o=o||[]).push(u,null));for(u in r){var l=r[u];if(s=a!=null?a[u]:void 0,r.hasOwnProperty(u)&&l!==s&&(l!=null||s!=null))if(u==="style")if(s){for(i in s)!s.hasOwnProperty(i)||l&&l.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in l)l.hasOwnProperty(i)&&s[i]!==l[i]&&(n||(n={}),n[i]=l[i])}else n||(o||(o=[]),o.push(u,n)),n=l;else u==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,s=s?s.__html:void 0,l!=null&&s!==l&&(o=o||[]).push(u,l)):u==="children"?typeof l!="string"&&typeof l!="number"||(o=o||[]).push(u,""+l):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(xl.hasOwnProperty(u)?(l!=null&&u==="onScroll"&&Ie("scroll",e),o||s===l||(o=[])):(o=o||[]).push(u,l))}n&&(o=o||[]).push("style",n);var u=o;(t.updateQueue=u)&&(t.flags|=4)}};Z9=function(e,t,n,r){n!==r&&(t.flags|=4)};function Ds(e,t){if(!ze)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Pt(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;a!==null;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags&14680064,r|=a.flags&14680064,a.return=e,a=a.sibling;else for(a=e.child;a!==null;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function R_(e,t,n){var r=t.pendingProps;switch(l0(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Pt(t),null;case 1:return Ut(t.type)&&Jc(),Pt(t),null;case 3:return r=t.stateNode,ji(),Fe(Gt),Fe(Tt),y0(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Ju(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Rn!==null&&(Yh(Rn),Rn=null))),Hh(e,t),Pt(t),null;case 5:v0(t);var a=Qa(jl.current);if(n=t.type,e!==null&&t.stateNode!=null)Q9(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(U(166));return Pt(t),null}if(e=Qa(cr.current),Ju(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[nr]=t,r[El]=o,e=(t.mode&1)!==0,n){case"dialog":Ie("cancel",r),Ie("close",r);break;case"iframe":case"object":case"embed":Ie("load",r);break;case"video":case"audio":for(a=0;a<el.length;a++)Ie(el[a],r);break;case"source":Ie("error",r);break;case"img":case"image":case"link":Ie("error",r),Ie("load",r);break;case"details":Ie("toggle",r);break;case"input":g1(r,o),Ie("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!o.multiple},Ie("invalid",r);break;case"textarea":w1(r,o),Ie("invalid",r)}hh(n,o),a=null;for(var i in o)if(o.hasOwnProperty(i)){var s=o[i];i==="children"?typeof s=="string"?r.textContent!==s&&(o.suppressHydrationWarning!==!0&&Zu(r.textContent,s,e),a=["children",s]):typeof s=="number"&&r.textContent!==""+s&&(o.suppressHydrationWarning!==!0&&Zu(r.textContent,s,e),a=["children",""+s]):xl.hasOwnProperty(i)&&s!=null&&i==="onScroll"&&Ie("scroll",r)}switch(n){case"input":Uu(r),x1(r,o,!0);break;case"textarea":Uu(r),b1(r);break;case"select":case"option":break;default:typeof o.onClick=="function"&&(r.onclick=Zc)}r=a,t.updateQueue=r,r!==null&&(t.flags|=4)}else{i=a.nodeType===9?a:a.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=_5(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[nr]=t,e[El]=r,Y9(e,t,!1,!1),t.stateNode=e;e:{switch(i=vh(n,r),n){case"dialog":Ie("cancel",e),Ie("close",e),a=r;break;case"iframe":case"object":case"embed":Ie("load",e),a=r;break;case"video":case"audio":for(a=0;a<el.length;a++)Ie(el[a],e);a=r;break;case"source":Ie("error",e),a=r;break;case"img":case"image":case"link":Ie("error",e),Ie("load",e),a=r;break;case"details":Ie("toggle",e),a=r;break;case"input":g1(e,r),a=ch(e,r),Ie("invalid",e);break;case"option":a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=Ue({},r,{value:void 0}),Ie("invalid",e);break;case"textarea":w1(e,r),a=dh(e,r),Ie("invalid",e);break;default:a=r}hh(n,a),s=a;for(o in s)if(s.hasOwnProperty(o)){var l=s[o];o==="style"?E5(e,l):o==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,l!=null&&A5(e,l)):o==="children"?typeof l=="string"?(n!=="textarea"||l!=="")&&wl(e,l):typeof l=="number"&&wl(e,""+l):o!=="suppressContentEditableWarning"&&o!=="suppressHydrationWarning"&&o!=="autoFocus"&&(xl.hasOwnProperty(o)?l!=null&&o==="onScroll"&&Ie("scroll",e):l!=null&&Vy(e,o,l,i))}switch(n){case"input":Uu(e),x1(e,r,!1);break;case"textarea":Uu(e),b1(e);break;case"option":r.value!=null&&e.setAttribute("value",""+ka(r.value));break;case"select":e.multiple=!!r.multiple,o=r.value,o!=null?oi(e,!!r.multiple,o,!1):r.defaultValue!=null&&oi(e,!!r.multiple,r.defaultValue,!0);break;default:typeof a.onClick=="function"&&(e.onclick=Zc)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Pt(t),null;case 6:if(e&&t.stateNode!=null)Z9(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(U(166));if(n=Qa(jl.current),Qa(cr.current),Ju(t)){if(r=t.stateNode,n=t.memoizedProps,r[nr]=t,(o=r.nodeValue!==n)&&(e=nn,e!==null))switch(e.tag){case 3:Zu(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Zu(r.nodeValue,n,(e.mode&1)!==0)}o&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[nr]=t,t.stateNode=r}return Pt(t),null;case 13:if(Fe(He),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ze&&en!==null&&t.mode&1&&!(t.flags&128))v9(),Ei(),t.flags|=98560,o=!1;else if(o=Ju(t),r!==null&&r.dehydrated!==null){if(e===null){if(!o)throw Error(U(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(U(317));o[nr]=t}else Ei(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pt(t),o=!1}else Rn!==null&&(Yh(Rn),Rn=null),o=!0;if(!o)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||He.current&1?ot===0&&(ot=3):E0())),t.updateQueue!==null&&(t.flags|=4),Pt(t),null);case 4:return ji(),Hh(e,t),e===null&&Al(t.stateNode.containerInfo),Pt(t),null;case 10:return p0(t.type._context),Pt(t),null;case 17:return Ut(t.type)&&Jc(),Pt(t),null;case 19:if(Fe(He),o=t.memoizedState,o===null)return Pt(t),null;if(r=(t.flags&128)!==0,i=o.rendering,i===null)if(r)Ds(o,!1);else{if(ot!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(i=sf(e),i!==null){for(t.flags|=128,Ds(o,!1),r=i.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)o=n,e=r,o.flags&=14680066,i=o.alternate,i===null?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=i.childLanes,o.lanes=i.lanes,o.child=i.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=i.memoizedProps,o.memoizedState=i.memoizedState,o.updateQueue=i.updateQueue,o.type=i.type,e=i.dependencies,o.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return $e(He,He.current&1|2),t.child}e=e.sibling}o.tail!==null&&Ke()>Ni&&(t.flags|=128,r=!0,Ds(o,!1),t.lanes=4194304)}else{if(!r)if(e=sf(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ds(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!ze)return Pt(t),null}else 2*Ke()-o.renderingStartTime>Ni&&n!==1073741824&&(t.flags|=128,r=!0,Ds(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Ke(),t.sibling=null,n=He.current,$e(He,r?n&1|2:n&1),t):(Pt(t),null);case 22:case 23:return C0(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Yt&1073741824&&(Pt(t),t.subtreeFlags&6&&(t.flags|=8192)):Pt(t),null;case 24:return null;case 25:return null}throw Error(U(156,t.tag))}function I_(e,t){switch(l0(t),t.tag){case 1:return Ut(t.type)&&Jc(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ji(),Fe(Gt),Fe(Tt),y0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return v0(t),null;case 13:if(Fe(He),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(U(340));Ei()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Fe(He),null;case 4:return ji(),null;case 10:return p0(t.type._context),null;case 22:case 23:return C0(),null;case 24:return null;default:return null}}var nc=!1,_t=!1,D_=typeof WeakSet=="function"?WeakSet:Set,Y=null;function ei(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){qe(e,t,r)}else n.current=null}function Gh(e,t,n){try{n()}catch(r){qe(e,t,r)}}var cx=!1;function L_(e,t){if(_h=Xc,e=r9(),i0(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 a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,s=-1,l=-1,u=0,f=0,c=e,p=null;t:for(;;){for(var d;c!==n||a!==0&&c.nodeType!==3||(s=i+a),c!==o||r!==0&&c.nodeType!==3||(l=i+r),c.nodeType===3&&(i+=c.nodeValue.length),(d=c.firstChild)!==null;)p=c,c=d;for(;;){if(c===e)break t;if(p===n&&++u===a&&(s=i),p===o&&++f===r&&(l=i),(d=c.nextSibling)!==null)break;c=p,p=c.parentNode}c=d}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ah={focusedElem:e,selectionRange:n},Xc=!1,Y=t;Y!==null;)if(t=Y,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Y=e;else for(;Y!==null;){t=Y;try{var h=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var m=h.memoizedProps,g=h.memoizedState,v=t.stateNode,y=v.getSnapshotBeforeUpdate(t.elementType===t.type?m:Cn(t.type,m),g);v.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var x=t.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(U(163))}}catch(P){qe(t,t.return,P)}if(e=t.sibling,e!==null){e.return=t.return,Y=e;break}Y=t.return}return h=cx,cx=!1,h}function ul(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,o!==void 0&&Gh(t,n,o)}a=a.next}while(a!==r)}}function Mp(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 Uh(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 J9(e){var t=e.alternate;t!==null&&(e.alternate=null,J9(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[nr],delete t[El],delete t[Th],delete t[w_],delete t[b_])),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 e6(e){return e.tag===5||e.tag===3||e.tag===4}function fx(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||e6(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 Wh(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=Zc));else if(r!==4&&(e=e.child,e!==null))for(Wh(e,t,n),e=e.sibling;e!==null;)Wh(e,t,n),e=e.sibling}function qh(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(qh(e,t,n),e=e.sibling;e!==null;)qh(e,t,n),e=e.sibling}var ht=null,$n=!1;function Kr(e,t,n){for(n=n.child;n!==null;)t6(e,t,n),n=n.sibling}function t6(e,t,n){if(ur&&typeof ur.onCommitFiberUnmount=="function")try{ur.onCommitFiberUnmount(_p,n)}catch{}switch(n.tag){case 5:_t||ei(n,t);case 6:var r=ht,a=$n;ht=null,Kr(e,t,n),ht=r,$n=a,ht!==null&&($n?(e=ht,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ht.removeChild(n.stateNode));break;case 18:ht!==null&&($n?(e=ht,n=n.stateNode,e.nodeType===8?um(e.parentNode,n):e.nodeType===1&&um(e,n),Ol(e)):um(ht,n.stateNode));break;case 4:r=ht,a=$n,ht=n.stateNode.containerInfo,$n=!0,Kr(e,t,n),ht=r,$n=a;break;case 0:case 11:case 14:case 15:if(!_t&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&Gh(n,t,i),a=a.next}while(a!==r)}Kr(e,t,n);break;case 1:if(!_t&&(ei(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){qe(n,t,s)}Kr(e,t,n);break;case 21:Kr(e,t,n);break;case 22:n.mode&1?(_t=(r=_t)||n.memoizedState!==null,Kr(e,t,n),_t=r):Kr(e,t,n);break;default:Kr(e,t,n)}}function px(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new D_),t.forEach(function(r){var a=V_.bind(null,e,r);n.has(r)||(n.add(r),r.then(a,a))})}}function kn(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r];try{var o=e,i=t,s=i;e:for(;s!==null;){switch(s.tag){case 5:ht=s.stateNode,$n=!1;break e;case 3:ht=s.stateNode.containerInfo,$n=!0;break e;case 4:ht=s.stateNode.containerInfo,$n=!0;break e}s=s.return}if(ht===null)throw Error(U(160));t6(o,i,a),ht=null,$n=!1;var l=a.alternate;l!==null&&(l.return=null),a.return=null}catch(u){qe(a,t,u)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)n6(t,e),t=t.sibling}function n6(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(kn(t,e),Yn(e),r&4){try{ul(3,e,e.return),Mp(3,e)}catch(m){qe(e,e.return,m)}try{ul(5,e,e.return)}catch(m){qe(e,e.return,m)}}break;case 1:kn(t,e),Yn(e),r&512&&n!==null&&ei(n,n.return);break;case 5:if(kn(t,e),Yn(e),r&512&&n!==null&&ei(n,n.return),e.flags&32){var a=e.stateNode;try{wl(a,"")}catch(m){qe(e,e.return,m)}}if(r&4&&(a=e.stateNode,a!=null)){var o=e.memoizedProps,i=n!==null?n.memoizedProps:o,s=e.type,l=e.updateQueue;if(e.updateQueue=null,l!==null)try{s==="input"&&o.type==="radio"&&o.name!=null&&O5(a,o),vh(s,i);var u=vh(s,o);for(i=0;i<l.length;i+=2){var f=l[i],c=l[i+1];f==="style"?E5(a,c):f==="dangerouslySetInnerHTML"?A5(a,c):f==="children"?wl(a,c):Vy(a,f,c,u)}switch(s){case"input":fh(a,o);break;case"textarea":k5(a,o);break;case"select":var p=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!o.multiple;var d=o.value;d!=null?oi(a,!!o.multiple,d,!1):p!==!!o.multiple&&(o.defaultValue!=null?oi(a,!!o.multiple,o.defaultValue,!0):oi(a,!!o.multiple,o.multiple?[]:"",!1))}a[El]=o}catch(m){qe(e,e.return,m)}}break;case 6:if(kn(t,e),Yn(e),r&4){if(e.stateNode===null)throw Error(U(162));a=e.stateNode,o=e.memoizedProps;try{a.nodeValue=o}catch(m){qe(e,e.return,m)}}break;case 3:if(kn(t,e),Yn(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Ol(t.containerInfo)}catch(m){qe(e,e.return,m)}break;case 4:kn(t,e),Yn(e);break;case 13:kn(t,e),Yn(e),a=e.child,a.flags&8192&&(o=a.memoizedState!==null,a.stateNode.isHidden=o,!o||a.alternate!==null&&a.alternate.memoizedState!==null||(_0=Ke())),r&4&&px(e);break;case 22:if(f=n!==null&&n.memoizedState!==null,e.mode&1?(_t=(u=_t)||f,kn(t,e),_t=u):kn(t,e),Yn(e),r&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!f&&e.mode&1)for(Y=e,f=e.child;f!==null;){for(c=Y=f;Y!==null;){switch(p=Y,d=p.child,p.tag){case 0:case 11:case 14:case 15:ul(4,p,p.return);break;case 1:ei(p,p.return);var h=p.stateNode;if(typeof h.componentWillUnmount=="function"){r=p,n=p.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(m){qe(r,n,m)}}break;case 5:ei(p,p.return);break;case 22:if(p.memoizedState!==null){mx(c);continue}}d!==null?(d.return=p,Y=d):mx(c)}f=f.sibling}e:for(f=null,c=e;;){if(c.tag===5){if(f===null){f=c;try{a=c.stateNode,u?(o=a.style,typeof o.setProperty=="function"?o.setProperty("display","none","important"):o.display="none"):(s=c.stateNode,l=c.memoizedProps.style,i=l!=null&&l.hasOwnProperty("display")?l.display:null,s.style.display=C5("display",i))}catch(m){qe(e,e.return,m)}}}else if(c.tag===6){if(f===null)try{c.stateNode.nodeValue=u?"":c.memoizedProps}catch(m){qe(e,e.return,m)}}else if((c.tag!==22&&c.tag!==23||c.memoizedState===null||c===e)&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===e)break e;for(;c.sibling===null;){if(c.return===null||c.return===e)break e;f===c&&(f=null),c=c.return}f===c&&(f=null),c.sibling.return=c.return,c=c.sibling}}break;case 19:kn(t,e),Yn(e),r&4&&px(e);break;case 21:break;default:kn(t,e),Yn(e)}}function Yn(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(e6(n)){var r=n;break e}n=n.return}throw Error(U(160))}switch(r.tag){case 5:var a=r.stateNode;r.flags&32&&(wl(a,""),r.flags&=-33);var o=fx(e);qh(e,o,a);break;case 3:case 4:var i=r.stateNode.containerInfo,s=fx(e);Wh(e,s,i);break;default:throw Error(U(161))}}catch(l){qe(e,e.return,l)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function F_(e,t,n){Y=e,r6(e)}function r6(e,t,n){for(var r=(e.mode&1)!==0;Y!==null;){var a=Y,o=a.child;if(a.tag===22&&r){var i=a.memoizedState!==null||nc;if(!i){var s=a.alternate,l=s!==null&&s.memoizedState!==null||_t;s=nc;var u=_t;if(nc=i,(_t=l)&&!u)for(Y=a;Y!==null;)i=Y,l=i.child,i.tag===22&&i.memoizedState!==null?hx(a):l!==null?(l.return=i,Y=l):hx(a);for(;o!==null;)Y=o,r6(o),o=o.sibling;Y=a,nc=s,_t=u}dx(e)}else a.subtreeFlags&8772&&o!==null?(o.return=a,Y=o):dx(e)}}function dx(e){for(;Y!==null;){var t=Y;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:_t||Mp(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!_t)if(n===null)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:Cn(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;o!==null&&Q1(t,o,r);break;case 3:var i=t.updateQueue;if(i!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}Q1(t,i,n)}break;case 5:var s=t.stateNode;if(n===null&&t.flags&4){n=s;var l=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":l.autoFocus&&n.focus();break;case"img":l.src&&(n.src=l.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var f=u.memoizedState;if(f!==null){var c=f.dehydrated;c!==null&&Ol(c)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(U(163))}_t||t.flags&512&&Uh(t)}catch(p){qe(t,t.return,p)}}if(t===e){Y=null;break}if(n=t.sibling,n!==null){n.return=t.return,Y=n;break}Y=t.return}}function mx(e){for(;Y!==null;){var t=Y;if(t===e){Y=null;break}var n=t.sibling;if(n!==null){n.return=t.return,Y=n;break}Y=t.return}}function hx(e){for(;Y!==null;){var t=Y;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Mp(4,t)}catch(l){qe(t,n,l)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var a=t.return;try{r.componentDidMount()}catch(l){qe(t,a,l)}}var o=t.return;try{Uh(t)}catch(l){qe(t,o,l)}break;case 5:var i=t.return;try{Uh(t)}catch(l){qe(t,i,l)}}}catch(l){qe(t,t.return,l)}if(t===e){Y=null;break}var s=t.sibling;if(s!==null){s.return=t.return,Y=s;break}Y=t.return}}var z_=Math.ceil,cf=Gr.ReactCurrentDispatcher,O0=Gr.ReactCurrentOwner,yn=Gr.ReactCurrentBatchConfig,de=0,pt=null,et=null,gt=0,Yt=0,ti=ja(0),ot=0,Rl=null,go=0,Rp=0,k0=0,cl=null,zt=null,_0=0,Ni=1/0,Pr=null,ff=!1,Vh=null,ba=null,rc=!1,pa=null,pf=0,fl=0,Kh=null,Rc=-1,Ic=0;function Dt(){return de&6?Ke():Rc!==-1?Rc:Rc=Ke()}function Pa(e){return e.mode&1?de&2&&gt!==0?gt&-gt:S_.transition!==null?(Ic===0&&(Ic=B5()),Ic):(e=ke,e!==0||(e=window.event,e=e===void 0?16:K5(e.type)),e):1}function Gn(e,t,n,r){if(50<fl)throw fl=0,Kh=null,Error(U(185));_u(e,n,r),(!(de&2)||e!==pt)&&(e===pt&&(!(de&2)&&(Rp|=n),ot===4&&aa(e,gt)),Wt(e,r),n===1&&de===0&&!(t.mode&1)&&(Ni=Ke()+500,jp&&$a()))}function Wt(e,t){var n=e.callbackNode;Sk(e,t);var r=Kc(e,e===pt?gt:0);if(r===0)n!==null&&O1(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&O1(n),t===1)e.tag===0?P_(vx.bind(null,e)):d9(vx.bind(null,e)),g_(function(){!(de&6)&&$a()}),n=null;else{switch(H5(r)){case 1:n=Zy;break;case 4:n=F5;break;case 16:n=Vc;break;case 536870912:n=z5;break;default:n=Vc}n=f6(n,a6.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function a6(e,t){if(Rc=-1,Ic=0,de&6)throw Error(U(327));var n=e.callbackNode;if(ci()&&e.callbackNode!==n)return null;var r=Kc(e,e===pt?gt:0);if(r===0)return null;if(r&30||r&e.expiredLanes||t)t=df(e,r);else{t=r;var a=de;de|=2;var o=i6();(pt!==e||gt!==t)&&(Pr=null,Ni=Ke()+500,uo(e,t));do try{G_();break}catch(s){o6(e,s)}while(!0);f0(),cf.current=o,de=a,et!==null?t=0:(pt=null,gt=0,t=ot)}if(t!==0){if(t===2&&(a=bh(e),a!==0&&(r=a,t=Xh(e,a))),t===1)throw n=Rl,uo(e,0),aa(e,r),Wt(e,Ke()),n;if(t===6)aa(e,r);else{if(a=e.current.alternate,!(r&30)&&!B_(a)&&(t=df(e,r),t===2&&(o=bh(e),o!==0&&(r=o,t=Xh(e,o))),t===1))throw n=Rl,uo(e,0),aa(e,r),Wt(e,Ke()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(U(345));case 2:Wa(e,zt,Pr);break;case 3:if(aa(e,r),(r&130023424)===r&&(t=_0+500-Ke(),10<t)){if(Kc(e,0)!==0)break;if(a=e.suspendedLanes,(a&r)!==r){Dt(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Eh(Wa.bind(null,e,zt,Pr),t);break}Wa(e,zt,Pr);break;case 4:if(aa(e,r),(r&4194240)===r)break;for(t=e.eventTimes,a=-1;0<r;){var i=31-Hn(r);o=1<<i,i=t[i],i>a&&(a=i),r&=~o}if(r=a,r=Ke()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*z_(r/1960))-r,10<r){e.timeoutHandle=Eh(Wa.bind(null,e,zt,Pr),r);break}Wa(e,zt,Pr);break;case 5:Wa(e,zt,Pr);break;default:throw Error(U(329))}}}return Wt(e,Ke()),e.callbackNode===n?a6.bind(null,e):null}function Xh(e,t){var n=cl;return e.current.memoizedState.isDehydrated&&(uo(e,t).flags|=256),e=df(e,t),e!==2&&(t=zt,zt=n,t!==null&&Yh(t)),e}function Yh(e){zt===null?zt=e:zt.push.apply(zt,e)}function B_(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!Un(o(),a))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function aa(e,t){for(t&=~k0,t&=~Rp,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Hn(t),r=1<<n;e[n]=-1,t&=~r}}function vx(e){if(de&6)throw Error(U(327));ci();var t=Kc(e,0);if(!(t&1))return Wt(e,Ke()),null;var n=df(e,t);if(e.tag!==0&&n===2){var r=bh(e);r!==0&&(t=r,n=Xh(e,r))}if(n===1)throw n=Rl,uo(e,0),aa(e,t),Wt(e,Ke()),n;if(n===6)throw Error(U(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Wa(e,zt,Pr),Wt(e,Ke()),null}function A0(e,t){var n=de;de|=1;try{return e(t)}finally{de=n,de===0&&(Ni=Ke()+500,jp&&$a())}}function xo(e){pa!==null&&pa.tag===0&&!(de&6)&&ci();var t=de;de|=1;var n=yn.transition,r=ke;try{if(yn.transition=null,ke=1,e)return e()}finally{ke=r,yn.transition=n,de=t,!(de&6)&&$a()}}function C0(){Yt=ti.current,Fe(ti)}function uo(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,y_(n)),et!==null)for(n=et.return;n!==null;){var r=n;switch(l0(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Jc();break;case 3:ji(),Fe(Gt),Fe(Tt),y0();break;case 5:v0(r);break;case 4:ji();break;case 13:Fe(He);break;case 19:Fe(He);break;case 10:p0(r.type._context);break;case 22:case 23:C0()}n=n.return}if(pt=e,et=e=Sa(e.current,null),gt=Yt=t,ot=0,Rl=null,k0=Rp=go=0,zt=cl=null,Ya!==null){for(t=0;t<Ya.length;t++)if(n=Ya[t],r=n.interleaved,r!==null){n.interleaved=null;var a=r.next,o=n.pending;if(o!==null){var i=o.next;o.next=a,r.next=i}n.pending=r}Ya=null}return e}function o6(e,t){do{var n=et;try{if(f0(),$c.current=uf,lf){for(var r=Ge.memoizedState;r!==null;){var a=r.queue;a!==null&&(a.pending=null),r=r.next}lf=!1}if(yo=0,ct=at=Ge=null,ll=!1,$l=0,O0.current=null,n===null||n.return===null){ot=1,Rl=t,et=null;break}e:{var o=e,i=n.return,s=n,l=t;if(t=gt,s.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){var u=l,f=s,c=f.tag;if(!(f.mode&1)&&(c===0||c===11||c===15)){var p=f.alternate;p?(f.updateQueue=p.updateQueue,f.memoizedState=p.memoizedState,f.lanes=p.lanes):(f.updateQueue=null,f.memoizedState=null)}var d=rx(i);if(d!==null){d.flags&=-257,ax(d,i,s,o,t),d.mode&1&&nx(o,u,t),t=d,l=u;var h=t.updateQueue;if(h===null){var m=new Set;m.add(l),t.updateQueue=m}else h.add(l);break e}else{if(!(t&1)){nx(o,u,t),E0();break e}l=Error(U(426))}}else if(ze&&s.mode&1){var g=rx(i);if(g!==null){!(g.flags&65536)&&(g.flags|=256),ax(g,i,s,o,t),u0($i(l,s));break e}}o=l=$i(l,s),ot!==4&&(ot=2),cl===null?cl=[o]:cl.push(o),o=i;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t;var v=H9(o,l,t);Y1(o,v);break e;case 1:s=l;var y=o.type,x=o.stateNode;if(!(o.flags&128)&&(typeof y.getDerivedStateFromError=="function"||x!==null&&typeof x.componentDidCatch=="function"&&(ba===null||!ba.has(x)))){o.flags|=65536,t&=-t,o.lanes|=t;var P=G9(o,s,t);Y1(o,P);break e}}o=o.return}while(o!==null)}l6(n)}catch(w){t=w,et===n&&n!==null&&(et=n=n.return);continue}break}while(!0)}function i6(){var e=cf.current;return cf.current=uf,e===null?uf:e}function E0(){(ot===0||ot===3||ot===2)&&(ot=4),pt===null||!(go&268435455)&&!(Rp&268435455)||aa(pt,gt)}function df(e,t){var n=de;de|=2;var r=i6();(pt!==e||gt!==t)&&(Pr=null,uo(e,t));do try{H_();break}catch(a){o6(e,a)}while(!0);if(f0(),de=n,cf.current=r,et!==null)throw Error(U(261));return pt=null,gt=0,ot}function H_(){for(;et!==null;)s6(et)}function G_(){for(;et!==null&&!mk();)s6(et)}function s6(e){var t=c6(e.alternate,e,Yt);e.memoizedProps=e.pendingProps,t===null?l6(e):et=t,O0.current=null}function l6(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=I_(n,t),n!==null){n.flags&=32767,et=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{ot=6,et=null;return}}else if(n=R_(n,t,Yt),n!==null){et=n;return}if(t=t.sibling,t!==null){et=t;return}et=t=e}while(t!==null);ot===0&&(ot=5)}function Wa(e,t,n){var r=ke,a=yn.transition;try{yn.transition=null,ke=1,U_(e,t,n,r)}finally{yn.transition=a,ke=r}return null}function U_(e,t,n,r){do ci();while(pa!==null);if(de&6)throw Error(U(327));n=e.finishedWork;var a=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(U(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if(Ok(e,o),e===pt&&(et=pt=null,gt=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||rc||(rc=!0,f6(Vc,function(){return ci(),null})),o=(n.flags&15990)!==0,n.subtreeFlags&15990||o){o=yn.transition,yn.transition=null;var i=ke;ke=1;var s=de;de|=4,O0.current=null,L_(e,n),n6(n,e),c_(Ah),Xc=!!_h,Ah=_h=null,e.current=n,F_(n),hk(),de=s,ke=i,yn.transition=o}else e.current=n;if(rc&&(rc=!1,pa=e,pf=a),o=e.pendingLanes,o===0&&(ba=null),gk(n.stateNode),Wt(e,Ke()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(ff)throw ff=!1,e=Vh,Vh=null,e;return pf&1&&e.tag!==0&&ci(),o=e.pendingLanes,o&1?e===Kh?fl++:(fl=0,Kh=e):fl=0,$a(),null}function ci(){if(pa!==null){var e=H5(pf),t=yn.transition,n=ke;try{if(yn.transition=null,ke=16>e?16:e,pa===null)var r=!1;else{if(e=pa,pa=null,pf=0,de&6)throw Error(U(331));var a=de;for(de|=4,Y=e.current;Y!==null;){var o=Y,i=o.child;if(Y.flags&16){var s=o.deletions;if(s!==null){for(var l=0;l<s.length;l++){var u=s[l];for(Y=u;Y!==null;){var f=Y;switch(f.tag){case 0:case 11:case 15:ul(8,f,o)}var c=f.child;if(c!==null)c.return=f,Y=c;else for(;Y!==null;){f=Y;var p=f.sibling,d=f.return;if(J9(f),f===u){Y=null;break}if(p!==null){p.return=d,Y=p;break}Y=d}}}var h=o.alternate;if(h!==null){var m=h.child;if(m!==null){h.child=null;do{var g=m.sibling;m.sibling=null,m=g}while(m!==null)}}Y=o}}if(o.subtreeFlags&2064&&i!==null)i.return=o,Y=i;else e:for(;Y!==null;){if(o=Y,o.flags&2048)switch(o.tag){case 0:case 11:case 15:ul(9,o,o.return)}var v=o.sibling;if(v!==null){v.return=o.return,Y=v;break e}Y=o.return}}var y=e.current;for(Y=y;Y!==null;){i=Y;var x=i.child;if(i.subtreeFlags&2064&&x!==null)x.return=i,Y=x;else e:for(i=y;Y!==null;){if(s=Y,s.flags&2048)try{switch(s.tag){case 0:case 11:case 15:Mp(9,s)}}catch(w){qe(s,s.return,w)}if(s===i){Y=null;break e}var P=s.sibling;if(P!==null){P.return=s.return,Y=P;break e}Y=s.return}}if(de=a,$a(),ur&&typeof ur.onPostCommitFiberRoot=="function")try{ur.onPostCommitFiberRoot(_p,e)}catch{}r=!0}return r}finally{ke=n,yn.transition=t}}return!1}function yx(e,t,n){t=$i(n,t),t=H9(e,t,1),e=wa(e,t,1),t=Dt(),e!==null&&(_u(e,1,t),Wt(e,t))}function qe(e,t,n){if(e.tag===3)yx(e,e,n);else for(;t!==null;){if(t.tag===3){yx(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(ba===null||!ba.has(r))){e=$i(n,e),e=G9(t,e,1),t=wa(t,e,1),e=Dt(),t!==null&&(_u(t,1,e),Wt(t,e));break}}t=t.return}}function W_(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=Dt(),e.pingedLanes|=e.suspendedLanes&n,pt===e&&(gt&n)===n&&(ot===4||ot===3&&(gt&130023424)===gt&&500>Ke()-_0?uo(e,0):k0|=n),Wt(e,t)}function u6(e,t){t===0&&(e.mode&1?(t=Vu,Vu<<=1,!(Vu&130023424)&&(Vu=4194304)):t=1);var n=Dt();e=Ir(e,t),e!==null&&(_u(e,t,n),Wt(e,n))}function q_(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),u6(e,n)}function V_(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(U(314))}r!==null&&r.delete(t),u6(e,n)}var c6;c6=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Gt.current)Bt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Bt=!1,M_(e,t,n);Bt=!!(e.flags&131072)}else Bt=!1,ze&&t.flags&1048576&&m9(t,nf,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mc(e,t),e=t.pendingProps;var a=Ci(t,Tt.current);ui(t,n),a=x0(null,t,r,e,a,n);var o=w0();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ut(r)?(o=!0,ef(t)):o=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,m0(t),a.updater=Np,t.stateNode=a,a._reactInternals=t,Ih(t,r,e,n),t=Fh(null,t,r,!0,o,n)):(t.tag=0,ze&&o&&s0(t),Nt(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mc(e,t),e=t.pendingProps,a=r._init,r=a(r._payload),t.type=r,a=t.tag=X_(r),e=Cn(r,e),a){case 0:t=Lh(null,t,r,e,n);break e;case 1:t=sx(null,t,r,e,n);break e;case 11:t=ox(null,t,r,e,n);break e;case 14:t=ix(null,t,r,Cn(r.type,e),n);break e}throw Error(U(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Cn(r,a),Lh(e,t,r,a,n);case 1:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Cn(r,a),sx(e,t,r,a,n);case 3:e:{if(V9(t),e===null)throw Error(U(387));r=t.pendingProps,o=t.memoizedState,a=o.element,w9(e,t),of(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){a=$i(Error(U(423)),t),t=lx(e,t,r,n,a);break e}else if(r!==a){a=$i(Error(U(424)),t),t=lx(e,t,r,n,a);break e}else for(en=xa(t.stateNode.containerInfo.firstChild),nn=t,ze=!0,Rn=null,n=g9(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Ei(),r===a){t=Dr(e,t,n);break e}Nt(e,t,r,n)}t=t.child}return t;case 5:return b9(t),e===null&&Nh(t),r=t.type,a=t.pendingProps,o=e!==null?e.memoizedProps:null,i=a.children,Ch(r,a)?i=null:o!==null&&Ch(r,o)&&(t.flags|=32),q9(e,t),Nt(e,t,i,n),t.child;case 6:return e===null&&Nh(t),null;case 13:return K9(e,t,n);case 4:return h0(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ti(t,null,r,n):Nt(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Cn(r,a),ox(e,t,r,a,n);case 7:return Nt(e,t,t.pendingProps,n),t.child;case 8:return Nt(e,t,t.pendingProps.children,n),t.child;case 12:return Nt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,o=t.memoizedProps,i=a.value,$e(rf,r._currentValue),r._currentValue=i,o!==null)if(Un(o.value,i)){if(o.children===a.children&&!Gt.current){t=Dr(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){i=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=Tr(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var f=u.pending;f===null?l.next=l:(l.next=f.next,f.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Mh(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(U(341));i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Mh(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}Nt(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,ui(t,n),a=xn(a),r=r(a),t.flags|=1,Nt(e,t,r,n),t.child;case 14:return r=t.type,a=Cn(r,t.pendingProps),a=Cn(r.type,a),ix(e,t,r,a,n);case 15:return U9(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Cn(r,a),Mc(e,t),t.tag=1,Ut(r)?(e=!0,ef(t)):e=!1,ui(t,n),B9(t,r,a),Ih(t,r,a,n),Fh(null,t,r,!0,e,n);case 19:return X9(e,t,n);case 22:return W9(e,t,n)}throw Error(U(156,t.tag))};function f6(e,t){return L5(e,t)}function K_(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 hn(e,t,n,r){return new K_(e,t,n,r)}function T0(e){return e=e.prototype,!(!e||!e.isReactComponent)}function X_(e){if(typeof e=="function")return T0(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Xy)return 11;if(e===Yy)return 14}return 2}function Sa(e,t){var n=e.alternate;return n===null?(n=hn(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 Dc(e,t,n,r,a,o){var i=2;if(r=e,typeof e=="function")T0(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Wo:return co(n.children,a,o,t);case Ky:i=8,a|=8;break;case ih:return e=hn(12,n,t,a|2),e.elementType=ih,e.lanes=o,e;case sh:return e=hn(13,n,t,a),e.elementType=sh,e.lanes=o,e;case lh:return e=hn(19,n,t,a),e.elementType=lh,e.lanes=o,e;case b5:return Ip(n,a,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case x5:i=10;break e;case w5:i=9;break e;case Xy:i=11;break e;case Yy:i=14;break e;case ea:i=16,r=null;break e}throw Error(U(130,e==null?e:typeof e,""))}return t=hn(i,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function co(e,t,n,r){return e=hn(7,e,r,t),e.lanes=n,e}function Ip(e,t,n,r){return e=hn(22,e,r,t),e.elementType=b5,e.lanes=n,e.stateNode={isHidden:!1},e}function ym(e,t,n){return e=hn(6,e,null,t),e.lanes=n,e}function gm(e,t,n){return t=hn(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Y_(e,t,n,r,a){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=Zd(0),this.expirationTimes=Zd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zd(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function j0(e,t,n,r,a,o,i,s,l){return e=new Y_(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=hn(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},m0(o),e}function Q_(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Uo,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function p6(e){if(!e)return _a;e=e._reactInternals;e:{if(To(e)!==e||e.tag!==1)throw Error(U(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ut(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(U(171))}if(e.tag===1){var n=e.type;if(Ut(n))return p9(e,n,t)}return t}function d6(e,t,n,r,a,o,i,s,l){return e=j0(n,r,!0,e,a,o,i,s,l),e.context=p6(null),n=e.current,r=Dt(),a=Pa(n),o=Tr(r,a),o.callback=t??null,wa(n,o,a),e.current.lanes=a,_u(e,a,r),Wt(e,r),e}function Dp(e,t,n,r){var a=t.current,o=Dt(),i=Pa(a);return n=p6(n),t.context===null?t.context=n:t.pendingContext=n,t=Tr(o,i),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=wa(a,t,i),e!==null&&(Gn(e,a,i,o),jc(e,a,i)),i}function mf(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function gx(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function $0(e,t){gx(e,t),(e=e.alternate)&&gx(e,t)}function Z_(){return null}var m6=typeof reportError=="function"?reportError:function(e){console.error(e)};function N0(e){this._internalRoot=e}Lp.prototype.render=N0.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(U(409));Dp(e,t,null,null)};Lp.prototype.unmount=N0.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;xo(function(){Dp(null,e,null,null)}),t[Rr]=null}};function Lp(e){this._internalRoot=e}Lp.prototype.unstable_scheduleHydration=function(e){if(e){var t=W5();e={blockedOn:null,target:e,priority:t};for(var n=0;n<ra.length&&t!==0&&t<ra[n].priority;n++);ra.splice(n,0,e),n===0&&V5(e)}};function M0(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Fp(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function xx(){}function J_(e,t,n,r,a){if(a){if(typeof r=="function"){var o=r;r=function(){var u=mf(i);o.call(u)}}var i=d6(t,r,e,0,null,!1,!1,"",xx);return e._reactRootContainer=i,e[Rr]=i.current,Al(e.nodeType===8?e.parentNode:e),xo(),i}for(;a=e.lastChild;)e.removeChild(a);if(typeof r=="function"){var s=r;r=function(){var u=mf(l);s.call(u)}}var l=j0(e,0,!1,null,null,!1,!1,"",xx);return e._reactRootContainer=l,e[Rr]=l.current,Al(e.nodeType===8?e.parentNode:e),xo(function(){Dp(t,l,n,r)}),l}function zp(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if(typeof a=="function"){var s=a;a=function(){var l=mf(i);s.call(l)}}Dp(t,i,e,a)}else i=J_(n,t,e,a,r);return mf(i)}G5=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Js(t.pendingLanes);n!==0&&(Jy(t,n|1),Wt(t,Ke()),!(de&6)&&(Ni=Ke()+500,$a()))}break;case 13:xo(function(){var r=Ir(e,1);if(r!==null){var a=Dt();Gn(r,e,1,a)}}),$0(e,1)}};e0=function(e){if(e.tag===13){var t=Ir(e,134217728);if(t!==null){var n=Dt();Gn(t,e,134217728,n)}$0(e,134217728)}};U5=function(e){if(e.tag===13){var t=Pa(e),n=Ir(e,t);if(n!==null){var r=Dt();Gn(n,e,t,r)}$0(e,t)}};W5=function(){return ke};q5=function(e,t){var n=ke;try{return ke=e,t()}finally{ke=n}};gh=function(e,t,n){switch(t){case"input":if(fh(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=Tp(r);if(!a)throw Error(U(90));S5(r),fh(r,a)}}}break;case"textarea":k5(e,n);break;case"select":t=n.value,t!=null&&oi(e,!!n.multiple,t,!1)}};$5=A0;N5=xo;var eA={usingClientEntryPoint:!1,Events:[Cu,Xo,Tp,T5,j5,A0]},Ls={findFiberByHostInstance:Xa,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},tA={bundleType:Ls.bundleType,version:Ls.version,rendererPackageName:Ls.rendererPackageName,rendererConfig:Ls.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Gr.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=I5(e),e===null?null:e.stateNode},findFiberByHostInstance:Ls.findFiberByHostInstance||Z_,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ac=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ac.isDisabled&&ac.supportsFiber)try{_p=ac.inject(tA),ur=ac}catch{}}on.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=eA;on.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!M0(t))throw Error(U(200));return Q_(e,t,null,n)};on.createRoot=function(e,t){if(!M0(e))throw Error(U(299));var n=!1,r="",a=m6;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(a=t.onRecoverableError)),t=j0(e,1,!1,null,null,n,!1,r,a),e[Rr]=t.current,Al(e.nodeType===8?e.parentNode:e),new N0(t)};on.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(U(188)):(e=Object.keys(e).join(","),Error(U(268,e)));return e=I5(t),e=e===null?null:e.stateNode,e};on.flushSync=function(e){return xo(e)};on.hydrate=function(e,t,n){if(!Fp(t))throw Error(U(200));return zp(null,e,t,!0,n)};on.hydrateRoot=function(e,t,n){if(!M0(e))throw Error(U(405));var r=n!=null&&n.hydratedSources||null,a=!1,o="",i=m6;if(n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onRecoverableError!==void 0&&(i=n.onRecoverableError)),t=d6(t,null,e,1,n??null,a,!1,o,i),e[Rr]=t.current,Al(e),r)for(e=0;e<r.length;e++)n=r[e],a=n._getVersion,a=a(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Lp(t)};on.render=function(e,t,n){if(!Fp(t))throw Error(U(200));return zp(null,e,t,!1,n)};on.unmountComponentAtNode=function(e){if(!Fp(e))throw Error(U(40));return e._reactRootContainer?(xo(function(){zp(null,null,e,!1,function(){e._reactRootContainer=null,e[Rr]=null})}),!0):!1};on.unstable_batchedUpdates=A0;on.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Fp(n))throw Error(U(200));if(e==null||e._reactInternals===void 0)throw Error(U(38));return zp(e,t,n,!1,r)};on.version="18.3.1-next-f1338f8080-20240426";function h6(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(h6)}catch(e){console.error(e)}}h6(),h5.exports=on;var fs=h5.exports;const nA=Ce(fs);var wx=fs;Gc.createRoot=wx.createRoot,Gc.hydrateRoot=wx.hydrateRoot;function bx(e,[t,n]){return Math.min(n,Math.max(t,e))}function pe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e==null||e(a),n===!1||!a.defaultPrevented)return t==null?void 0:t(a)}}function ps(e,t=[]){let n=[];function r(o,i){const s=k.createContext(i),l=n.length;n=[...n,i];const u=c=>{var v;const{scope:p,children:d,...h}=c,m=((v=p==null?void 0:p[e])==null?void 0:v[l])||s,g=k.useMemo(()=>h,Object.values(h));return b.jsx(m.Provider,{value:g,children:d})};u.displayName=o+"Provider";function f(c,p){var m;const d=((m=p==null?void 0:p[e])==null?void 0:m[l])||s,h=k.useContext(d);if(h)return h;if(i!==void 0)return i;throw new Error(`\`${c}\` must be used within \`${o}\``)}return[u,f]}const a=()=>{const o=n.map(i=>k.createContext(i));return function(s){const l=(s==null?void 0:s[e])||o;return k.useMemo(()=>({[`__scope${e}`]:{...s,[e]:l}}),[s,l])}};return a.scopeName=e,[r,rA(a,...t)]}function rA(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(o){const i=r.reduce((s,{useScope:l,scopeName:u})=>{const c=l(o)[`__scope${u}`];return{...s,...c}},{});return k.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}function Px(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function v6(...e){return t=>{let n=!1;const r=e.map(a=>{const o=Px(a,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let a=0;a<r.length;a++){const o=r[a];typeof o=="function"?o():Px(e[a],null)}}}}function Ye(...e){return k.useCallback(v6(...e),e)}function Il(e){const t=oA(e),n=k.forwardRef((r,a)=>{const{children:o,...i}=r,s=k.Children.toArray(o),l=s.find(sA);if(l){const u=l.props.children,f=s.map(c=>c===l?k.Children.count(u)>1?k.Children.only(null):k.isValidElement(u)?u.props.children:null:c);return b.jsx(t,{...i,ref:a,children:k.isValidElement(u)?k.cloneElement(u,void 0,f):null})}return b.jsx(t,{...i,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}var aA=Il("Slot");function oA(e){const t=k.forwardRef((n,r)=>{const{children:a,...o}=n;if(k.isValidElement(a)){const i=uA(a),s=lA(o,a.props);return a.type!==k.Fragment&&(s.ref=r?v6(r,i):i),k.cloneElement(a,s)}return k.Children.count(a)>1?k.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var y6=Symbol("radix.slottable");function iA(e){const t=({children:n})=>b.jsx(b.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=y6,t}function sA(e){return k.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===y6}function lA(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...s)=>{const l=o(...s);return a(...s),l}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function uA(e){var r,a;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=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function g6(e){const t=e+"CollectionProvider",[n,r]=ps(t),[a,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=m=>{const{scope:g,children:v}=m,y=C.useRef(null),x=C.useRef(new Map).current;return b.jsx(a,{scope:g,itemMap:x,collectionRef:y,children:v})};i.displayName=t;const s=e+"CollectionSlot",l=Il(s),u=C.forwardRef((m,g)=>{const{scope:v,children:y}=m,x=o(s,v),P=Ye(g,x.collectionRef);return b.jsx(l,{ref:P,children:y})});u.displayName=s;const f=e+"CollectionItemSlot",c="data-radix-collection-item",p=Il(f),d=C.forwardRef((m,g)=>{const{scope:v,children:y,...x}=m,P=C.useRef(null),w=Ye(g,P),S=o(f,v);return C.useEffect(()=>(S.itemMap.set(P,{ref:P,...x}),()=>void S.itemMap.delete(P))),b.jsx(p,{[c]:"",ref:w,children:y})});d.displayName=f;function h(m){const g=o(e+"CollectionConsumer",m);return C.useCallback(()=>{const y=g.collectionRef.current;if(!y)return[];const x=Array.from(y.querySelectorAll(`[${c}]`));return Array.from(g.itemMap.values()).sort((S,O)=>x.indexOf(S.ref.current)-x.indexOf(O.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:i,Slot:u,ItemSlot:d},h,r]}var cA=k.createContext(void 0);function R0(e){const t=k.useContext(cA);return e||t||"ltr"}var fA=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ee=fA.reduce((e,t)=>{const n=Il(`Primitive.${t}`),r=k.forwardRef((a,o)=>{const{asChild:i,...s}=a,l=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),b.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function pA(e,t){e&&fs.flushSync(()=>e.dispatchEvent(t))}function Aa(e){const t=k.useRef(e);return k.useEffect(()=>{t.current=e}),k.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function dA(e,t=globalThis==null?void 0:globalThis.document){const n=Aa(e);k.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var mA="DismissableLayer",Qh="dismissableLayer.update",hA="dismissableLayer.pointerDownOutside",vA="dismissableLayer.focusOutside",Sx,x6=k.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),I0=k.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:i,onDismiss:s,...l}=e,u=k.useContext(x6),[f,c]=k.useState(null),p=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,d]=k.useState({}),h=Ye(t,O=>c(O)),m=Array.from(u.layers),[g]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=m.indexOf(g),y=f?m.indexOf(f):-1,x=u.layersWithOutsidePointerEventsDisabled.size>0,P=y>=v,w=xA(O=>{const _=O.target,A=[...u.branches].some(j=>j.contains(_));!P||A||(a==null||a(O),i==null||i(O),O.defaultPrevented||s==null||s())},p),S=wA(O=>{const _=O.target;[...u.branches].some(j=>j.contains(_))||(o==null||o(O),i==null||i(O),O.defaultPrevented||s==null||s())},p);return dA(O=>{y===u.layers.size-1&&(r==null||r(O),!O.defaultPrevented&&s&&(O.preventDefault(),s()))},p),k.useEffect(()=>{if(f)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Sx=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),Ox(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=Sx)}},[f,p,n,u]),k.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),Ox())},[f,u]),k.useEffect(()=>{const O=()=>d({});return document.addEventListener(Qh,O),()=>document.removeEventListener(Qh,O)},[]),b.jsx(Ee.div,{...l,ref:h,style:{pointerEvents:x?P?"auto":"none":void 0,...e.style},onFocusCapture:pe(e.onFocusCapture,S.onFocusCapture),onBlurCapture:pe(e.onBlurCapture,S.onBlurCapture),onPointerDownCapture:pe(e.onPointerDownCapture,w.onPointerDownCapture)})});I0.displayName=mA;var yA="DismissableLayerBranch",gA=k.forwardRef((e,t)=>{const n=k.useContext(x6),r=k.useRef(null),a=Ye(t,r);return k.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),b.jsx(Ee.div,{...e,ref:a})});gA.displayName=yA;function xA(e,t=globalThis==null?void 0:globalThis.document){const n=Aa(e),r=k.useRef(!1),a=k.useRef(()=>{});return k.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let l=function(){w6(hA,n,u,{discrete:!0})};const u={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=l,t.addEventListener("click",a.current,{once:!0})):l()}else t.removeEventListener("click",a.current);r.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",o),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function wA(e,t=globalThis==null?void 0:globalThis.document){const n=Aa(e),r=k.useRef(!1);return k.useEffect(()=>{const a=o=>{o.target&&!r.current&&w6(vA,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Ox(){const e=new CustomEvent(Qh);document.dispatchEvent(e)}function w6(e,t,n,{discrete:r}){const a=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?pA(a,o):a.dispatchEvent(o)}var xm=0;function bA(){k.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??kx()),document.body.insertAdjacentElement("beforeend",e[1]??kx()),xm++,()=>{xm===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),xm--}},[])}function kx(){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 wm="focusScope.autoFocusOnMount",bm="focusScope.autoFocusOnUnmount",_x={bubbles:!1,cancelable:!0},PA="FocusScope",b6=k.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:o,...i}=e,[s,l]=k.useState(null),u=Aa(a),f=Aa(o),c=k.useRef(null),p=Ye(t,m=>l(m)),d=k.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;k.useEffect(()=>{if(r){let m=function(x){if(d.paused||!s)return;const P=x.target;s.contains(P)?c.current=P:Qr(c.current,{select:!0})},g=function(x){if(d.paused||!s)return;const P=x.relatedTarget;P!==null&&(s.contains(P)||Qr(c.current,{select:!0}))},v=function(x){if(document.activeElement===document.body)for(const w of x)w.removedNodes.length>0&&Qr(s)};document.addEventListener("focusin",m),document.addEventListener("focusout",g);const y=new MutationObserver(v);return s&&y.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",m),document.removeEventListener("focusout",g),y.disconnect()}}},[r,s,d.paused]),k.useEffect(()=>{if(s){Cx.add(d);const m=document.activeElement;if(!s.contains(m)){const v=new CustomEvent(wm,_x);s.addEventListener(wm,u),s.dispatchEvent(v),v.defaultPrevented||(SA(CA(P6(s)),{select:!0}),document.activeElement===m&&Qr(s))}return()=>{s.removeEventListener(wm,u),setTimeout(()=>{const v=new CustomEvent(bm,_x);s.addEventListener(bm,f),s.dispatchEvent(v),v.defaultPrevented||Qr(m??document.body,{select:!0}),s.removeEventListener(bm,f),Cx.remove(d)},0)}}},[s,u,f,d]);const h=k.useCallback(m=>{if(!n&&!r||d.paused)return;const g=m.key==="Tab"&&!m.altKey&&!m.ctrlKey&&!m.metaKey,v=document.activeElement;if(g&&v){const y=m.currentTarget,[x,P]=OA(y);x&&P?!m.shiftKey&&v===P?(m.preventDefault(),n&&Qr(x,{select:!0})):m.shiftKey&&v===x&&(m.preventDefault(),n&&Qr(P,{select:!0})):v===y&&m.preventDefault()}},[n,r,d.paused]);return b.jsx(Ee.div,{tabIndex:-1,...i,ref:p,onKeyDown:h})});b6.displayName=PA;function SA(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Qr(r,{select:t}),document.activeElement!==n)return}function OA(e){const t=P6(e),n=Ax(t,e),r=Ax(t.reverse(),e);return[n,r]}function P6(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ax(e,t){for(const n of e)if(!kA(n,{upTo:t}))return n}function kA(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 _A(e){return e instanceof HTMLInputElement&&"select"in e}function Qr(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&_A(e)&&t&&e.select()}}var Cx=AA();function AA(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Ex(e,t),e.unshift(t)},remove(t){var n;e=Ex(e,t),(n=e[0])==null||n.resume()}}}function Ex(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function CA(e){return e.filter(t=>t.tagName!=="A")}var jt=globalThis!=null&&globalThis.document?k.useLayoutEffect:()=>{},EA=d5[" useId ".trim().toString()]||(()=>{}),TA=0;function Tu(e){const[t,n]=k.useState(EA());return jt(()=>{n(r=>r??String(TA++))},[e]),t?`radix-${t}`:""}const jA=["top","right","bottom","left"],Ca=Math.min,Zt=Math.max,hf=Math.round,oc=Math.floor,fr=e=>({x:e,y:e}),$A={left:"right",right:"left",bottom:"top",top:"bottom"},NA={start:"end",end:"start"};function Zh(e,t,n){return Zt(e,Ca(t,n))}function Lr(e,t){return typeof e=="function"?e(t):e}function Fr(e){return e.split("-")[0]}function ds(e){return e.split("-")[1]}function D0(e){return e==="x"?"y":"x"}function L0(e){return e==="y"?"height":"width"}function ar(e){return["top","bottom"].includes(Fr(e))?"y":"x"}function F0(e){return D0(ar(e))}function MA(e,t,n){n===void 0&&(n=!1);const r=ds(e),a=F0(e),o=L0(a);let i=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(i=vf(i)),[i,vf(i)]}function RA(e){const t=vf(e);return[Jh(e),t,Jh(t)]}function Jh(e){return e.replace(/start|end/g,t=>NA[t])}function IA(e,t,n){const r=["left","right"],a=["right","left"],o=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return n?t?a:r:t?r:a;case"left":case"right":return t?o:i;default:return[]}}function DA(e,t,n,r){const a=ds(e);let o=IA(Fr(e),n==="start",r);return a&&(o=o.map(i=>i+"-"+a),t&&(o=o.concat(o.map(Jh)))),o}function vf(e){return e.replace(/left|right|bottom|top/g,t=>$A[t])}function LA(e){return{top:0,right:0,bottom:0,left:0,...e}}function S6(e){return typeof e!="number"?LA(e):{top:e,right:e,bottom:e,left:e}}function yf(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function Tx(e,t,n){let{reference:r,floating:a}=e;const o=ar(t),i=F0(t),s=L0(i),l=Fr(t),u=o==="y",f=r.x+r.width/2-a.width/2,c=r.y+r.height/2-a.height/2,p=r[s]/2-a[s]/2;let d;switch(l){case"top":d={x:f,y:r.y-a.height};break;case"bottom":d={x:f,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:c};break;case"left":d={x:r.x-a.width,y:c};break;default:d={x:r.x,y:r.y}}switch(ds(t)){case"start":d[i]-=p*(n&&u?-1:1);break;case"end":d[i]+=p*(n&&u?-1:1);break}return d}const FA=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:o=[],platform:i}=n,s=o.filter(Boolean),l=await(i.isRTL==null?void 0:i.isRTL(t));let u=await i.getElementRects({reference:e,floating:t,strategy:a}),{x:f,y:c}=Tx(u,r,l),p=r,d={},h=0;for(let m=0;m<s.length;m++){const{name:g,fn:v}=s[m],{x:y,y:x,data:P,reset:w}=await v({x:f,y:c,initialPlacement:r,placement:p,strategy:a,middlewareData:d,rects:u,platform:i,elements:{reference:e,floating:t}});f=y??f,c=x??c,d={...d,[g]:{...d[g],...P}},w&&h<=50&&(h++,typeof w=="object"&&(w.placement&&(p=w.placement),w.rects&&(u=w.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:a}):w.rects),{x:f,y:c}=Tx(u,p,l)),m=-1)}return{x:f,y:c,placement:p,strategy:a,middlewareData:d}};async function Dl(e,t){var n;t===void 0&&(t={});const{x:r,y:a,platform:o,rects:i,elements:s,strategy:l}=e,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:c="floating",altBoundary:p=!1,padding:d=0}=Lr(t,e),h=S6(d),g=s[p?c==="floating"?"reference":"floating":c],v=yf(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(g)))==null||n?g:g.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:f,strategy:l})),y=c==="floating"?{x:r,y:a,width:i.floating.width,height:i.floating.height}:i.reference,x=await(o.getOffsetParent==null?void 0:o.getOffsetParent(s.floating)),P=await(o.isElement==null?void 0:o.isElement(x))?await(o.getScale==null?void 0:o.getScale(x))||{x:1,y:1}:{x:1,y:1},w=yf(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:y,offsetParent:x,strategy:l}):y);return{top:(v.top-w.top+h.top)/P.y,bottom:(w.bottom-v.bottom+h.bottom)/P.y,left:(v.left-w.left+h.left)/P.x,right:(w.right-v.right+h.right)/P.x}}const zA=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:o,platform:i,elements:s,middlewareData:l}=t,{element:u,padding:f=0}=Lr(e,t)||{};if(u==null)return{};const c=S6(f),p={x:n,y:r},d=F0(a),h=L0(d),m=await i.getDimensions(u),g=d==="y",v=g?"top":"left",y=g?"bottom":"right",x=g?"clientHeight":"clientWidth",P=o.reference[h]+o.reference[d]-p[d]-o.floating[h],w=p[d]-o.reference[d],S=await(i.getOffsetParent==null?void 0:i.getOffsetParent(u));let O=S?S[x]:0;(!O||!await(i.isElement==null?void 0:i.isElement(S)))&&(O=s.floating[x]||o.floating[h]);const _=P/2-w/2,A=O/2-m[h]/2-1,j=Ca(c[v],A),E=Ca(c[y],A),T=j,N=O-m[h]-E,M=O/2-m[h]/2+_,I=Zh(T,M,N),R=!l.arrow&&ds(a)!=null&&M!==I&&o.reference[h]/2-(M<T?j:E)-m[h]/2<0,L=R?M<T?M-T:M-N:0;return{[d]:p[d]+L,data:{[d]:I,centerOffset:M-I-L,...R&&{alignmentOffset:L}},reset:R}}}),BA=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:a,middlewareData:o,rects:i,initialPlacement:s,platform:l,elements:u}=t,{mainAxis:f=!0,crossAxis:c=!0,fallbackPlacements:p,fallbackStrategy:d="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:m=!0,...g}=Lr(e,t);if((n=o.arrow)!=null&&n.alignmentOffset)return{};const v=Fr(a),y=ar(s),x=Fr(s)===s,P=await(l.isRTL==null?void 0:l.isRTL(u.floating)),w=p||(x||!m?[vf(s)]:RA(s)),S=h!=="none";!p&&S&&w.push(...DA(s,m,h,P));const O=[s,...w],_=await Dl(t,g),A=[];let j=((r=o.flip)==null?void 0:r.overflows)||[];if(f&&A.push(_[v]),c){const M=MA(a,i,P);A.push(_[M[0]],_[M[1]])}if(j=[...j,{placement:a,overflows:A}],!A.every(M=>M<=0)){var E,T;const M=(((E=o.flip)==null?void 0:E.index)||0)+1,I=O[M];if(I&&(!(c==="alignment"?y!==ar(I):!1)||j.every($=>$.overflows[0]>0&&ar($.placement)===y)))return{data:{index:M,overflows:j},reset:{placement:I}};let R=(T=j.filter(L=>L.overflows[0]<=0).sort((L,$)=>L.overflows[1]-$.overflows[1])[0])==null?void 0:T.placement;if(!R)switch(d){case"bestFit":{var N;const L=(N=j.filter($=>{if(S){const D=ar($.placement);return D===y||D==="y"}return!0}).map($=>[$.placement,$.overflows.filter(D=>D>0).reduce((D,H)=>D+H,0)]).sort(($,D)=>$[1]-D[1])[0])==null?void 0:N[0];L&&(R=L);break}case"initialPlacement":R=s;break}if(a!==R)return{reset:{placement:R}}}return{}}}};function jx(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function $x(e){return jA.some(t=>e[t]>=0)}const HA=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=Lr(e,t);switch(r){case"referenceHidden":{const o=await Dl(t,{...a,elementContext:"reference"}),i=jx(o,n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:$x(i)}}}case"escaped":{const o=await Dl(t,{...a,altBoundary:!0}),i=jx(o,n.floating);return{data:{escapedOffsets:i,escaped:$x(i)}}}default:return{}}}}};async function GA(e,t){const{placement:n,platform:r,elements:a}=e,o=await(r.isRTL==null?void 0:r.isRTL(a.floating)),i=Fr(n),s=ds(n),l=ar(n)==="y",u=["left","top"].includes(i)?-1:1,f=o&&l?-1:1,c=Lr(t,e);let{mainAxis:p,crossAxis:d,alignmentAxis:h}=typeof c=="number"?{mainAxis:c,crossAxis:0,alignmentAxis:null}:{mainAxis:c.mainAxis||0,crossAxis:c.crossAxis||0,alignmentAxis:c.alignmentAxis};return s&&typeof h=="number"&&(d=s==="end"?h*-1:h),l?{x:d*f,y:p*u}:{x:p*u,y:d*f}}const UA=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:o,placement:i,middlewareData:s}=t,l=await GA(t,e);return i===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:a+l.x,y:o+l.y,data:{...l,placement:i}}}}},WA=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:o=!0,crossAxis:i=!1,limiter:s={fn:g=>{let{x:v,y}=g;return{x:v,y}}},...l}=Lr(e,t),u={x:n,y:r},f=await Dl(t,l),c=ar(Fr(a)),p=D0(c);let d=u[p],h=u[c];if(o){const g=p==="y"?"top":"left",v=p==="y"?"bottom":"right",y=d+f[g],x=d-f[v];d=Zh(y,d,x)}if(i){const g=c==="y"?"top":"left",v=c==="y"?"bottom":"right",y=h+f[g],x=h-f[v];h=Zh(y,h,x)}const m=s.fn({...t,[p]:d,[c]:h});return{...m,data:{x:m.x-n,y:m.y-r,enabled:{[p]:o,[c]:i}}}}}},qA=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:o,middlewareData:i}=t,{offset:s=0,mainAxis:l=!0,crossAxis:u=!0}=Lr(e,t),f={x:n,y:r},c=ar(a),p=D0(c);let d=f[p],h=f[c];const m=Lr(s,t),g=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(l){const x=p==="y"?"height":"width",P=o.reference[p]-o.floating[x]+g.mainAxis,w=o.reference[p]+o.reference[x]-g.mainAxis;d<P?d=P:d>w&&(d=w)}if(u){var v,y;const x=p==="y"?"width":"height",P=["top","left"].includes(Fr(a)),w=o.reference[c]-o.floating[x]+(P&&((v=i.offset)==null?void 0:v[c])||0)+(P?0:g.crossAxis),S=o.reference[c]+o.reference[x]+(P?0:((y=i.offset)==null?void 0:y[c])||0)-(P?g.crossAxis:0);h<w?h=w:h>S&&(h=S)}return{[p]:d,[c]:h}}}},VA=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:o,platform:i,elements:s}=t,{apply:l=()=>{},...u}=Lr(e,t),f=await Dl(t,u),c=Fr(a),p=ds(a),d=ar(a)==="y",{width:h,height:m}=o.floating;let g,v;c==="top"||c==="bottom"?(g=c,v=p===(await(i.isRTL==null?void 0:i.isRTL(s.floating))?"start":"end")?"left":"right"):(v=c,g=p==="end"?"top":"bottom");const y=m-f.top-f.bottom,x=h-f.left-f.right,P=Ca(m-f[g],y),w=Ca(h-f[v],x),S=!t.middlewareData.shift;let O=P,_=w;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(_=x),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(O=y),S&&!p){const j=Zt(f.left,0),E=Zt(f.right,0),T=Zt(f.top,0),N=Zt(f.bottom,0);d?_=h-2*(j!==0||E!==0?j+E:Zt(f.left,f.right)):O=m-2*(T!==0||N!==0?T+N:Zt(f.top,f.bottom))}await l({...t,availableWidth:_,availableHeight:O});const A=await i.getDimensions(s.floating);return h!==A.width||m!==A.height?{reset:{rects:!0}}:{}}}};function Bp(){return typeof window<"u"}function ms(e){return O6(e)?(e.nodeName||"").toLowerCase():"#document"}function rn(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function yr(e){var t;return(t=(O6(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function O6(e){return Bp()?e instanceof Node||e instanceof rn(e).Node:!1}function Wn(e){return Bp()?e instanceof Element||e instanceof rn(e).Element:!1}function hr(e){return Bp()?e instanceof HTMLElement||e instanceof rn(e).HTMLElement:!1}function Nx(e){return!Bp()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof rn(e).ShadowRoot}function ju(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=qn(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(a)}function KA(e){return["table","td","th"].includes(ms(e))}function Hp(e){return[":popover-open",":modal"].some(t=>{try{return e.matches(t)}catch{return!1}})}function z0(e){const t=B0(),n=Wn(e)?qn(e):e;return["transform","translate","scale","rotate","perspective"].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)||["transform","translate","scale","rotate","perspective","filter"].some(r=>(n.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(n.contain||"").includes(r))}function XA(e){let t=Ea(e);for(;hr(t)&&!Mi(t);){if(z0(t))return t;if(Hp(t))return null;t=Ea(t)}return null}function B0(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Mi(e){return["html","body","#document"].includes(ms(e))}function qn(e){return rn(e).getComputedStyle(e)}function Gp(e){return Wn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ea(e){if(ms(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Nx(e)&&e.host||yr(e);return Nx(t)?t.host:t}function k6(e){const t=Ea(e);return Mi(t)?e.ownerDocument?e.ownerDocument.body:e.body:hr(t)&&ju(t)?t:k6(t)}function Ll(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=k6(e),o=a===((r=e.ownerDocument)==null?void 0:r.body),i=rn(a);if(o){const s=ev(i);return t.concat(i,i.visualViewport||[],ju(a)?a:[],s&&n?Ll(s):[])}return t.concat(a,Ll(a,[],n))}function ev(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function _6(e){const t=qn(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=hr(e),o=a?e.offsetWidth:n,i=a?e.offsetHeight:r,s=hf(n)!==o||hf(r)!==i;return s&&(n=o,r=i),{width:n,height:r,$:s}}function H0(e){return Wn(e)?e:e.contextElement}function fi(e){const t=H0(e);if(!hr(t))return fr(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:o}=_6(t);let i=(o?hf(n.width):n.width)/r,s=(o?hf(n.height):n.height)/a;return(!i||!Number.isFinite(i))&&(i=1),(!s||!Number.isFinite(s))&&(s=1),{x:i,y:s}}const YA=fr(0);function A6(e){const t=rn(e);return!B0()||!t.visualViewport?YA:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function QA(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==rn(e)?!1:t}function wo(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),o=H0(e);let i=fr(1);t&&(r?Wn(r)&&(i=fi(r)):i=fi(e));const s=QA(o,n,r)?A6(o):fr(0);let l=(a.left+s.x)/i.x,u=(a.top+s.y)/i.y,f=a.width/i.x,c=a.height/i.y;if(o){const p=rn(o),d=r&&Wn(r)?rn(r):r;let h=p,m=ev(h);for(;m&&r&&d!==h;){const g=fi(m),v=m.getBoundingClientRect(),y=qn(m),x=v.left+(m.clientLeft+parseFloat(y.paddingLeft))*g.x,P=v.top+(m.clientTop+parseFloat(y.paddingTop))*g.y;l*=g.x,u*=g.y,f*=g.x,c*=g.y,l+=x,u+=P,h=rn(m),m=ev(h)}}return yf({width:f,height:c,x:l,y:u})}function G0(e,t){const n=Gp(e).scrollLeft;return t?t.left+n:wo(yr(e)).left+n}function C6(e,t,n){n===void 0&&(n=!1);const r=e.getBoundingClientRect(),a=r.left+t.scrollLeft-(n?0:G0(e,r)),o=r.top+t.scrollTop;return{x:a,y:o}}function ZA(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const o=a==="fixed",i=yr(r),s=t?Hp(t.floating):!1;if(r===i||s&&o)return n;let l={scrollLeft:0,scrollTop:0},u=fr(1);const f=fr(0),c=hr(r);if((c||!c&&!o)&&((ms(r)!=="body"||ju(i))&&(l=Gp(r)),hr(r))){const d=wo(r);u=fi(r),f.x=d.x+r.clientLeft,f.y=d.y+r.clientTop}const p=i&&!c&&!o?C6(i,l,!0):fr(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+f.x+p.x,y:n.y*u.y-l.scrollTop*u.y+f.y+p.y}}function JA(e){return Array.from(e.getClientRects())}function eC(e){const t=yr(e),n=Gp(e),r=e.ownerDocument.body,a=Zt(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=Zt(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+G0(e);const s=-n.scrollTop;return qn(r).direction==="rtl"&&(i+=Zt(t.clientWidth,r.clientWidth)-a),{width:a,height:o,x:i,y:s}}function tC(e,t){const n=rn(e),r=yr(e),a=n.visualViewport;let o=r.clientWidth,i=r.clientHeight,s=0,l=0;if(a){o=a.width,i=a.height;const u=B0();(!u||u&&t==="fixed")&&(s=a.offsetLeft,l=a.offsetTop)}return{width:o,height:i,x:s,y:l}}function nC(e,t){const n=wo(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,o=hr(e)?fi(e):fr(1),i=e.clientWidth*o.x,s=e.clientHeight*o.y,l=a*o.x,u=r*o.y;return{width:i,height:s,x:l,y:u}}function Mx(e,t,n){let r;if(t==="viewport")r=tC(e,n);else if(t==="document")r=eC(yr(e));else if(Wn(t))r=nC(t,n);else{const a=A6(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return yf(r)}function E6(e,t){const n=Ea(e);return n===t||!Wn(n)||Mi(n)?!1:qn(n).position==="fixed"||E6(n,t)}function rC(e,t){const n=t.get(e);if(n)return n;let r=Ll(e,[],!1).filter(s=>Wn(s)&&ms(s)!=="body"),a=null;const o=qn(e).position==="fixed";let i=o?Ea(e):e;for(;Wn(i)&&!Mi(i);){const s=qn(i),l=z0(i);!l&&s.position==="fixed"&&(a=null),(o?!l&&!a:!l&&s.position==="static"&&!!a&&["absolute","fixed"].includes(a.position)||ju(i)&&!l&&E6(e,i))?r=r.filter(f=>f!==i):a=s,i=Ea(i)}return t.set(e,r),r}function aC(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const i=[...n==="clippingAncestors"?Hp(t)?[]:rC(t,this._c):[].concat(n),r],s=i[0],l=i.reduce((u,f)=>{const c=Mx(t,f,a);return u.top=Zt(c.top,u.top),u.right=Ca(c.right,u.right),u.bottom=Ca(c.bottom,u.bottom),u.left=Zt(c.left,u.left),u},Mx(t,s,a));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function oC(e){const{width:t,height:n}=_6(e);return{width:t,height:n}}function iC(e,t,n){const r=hr(t),a=yr(t),o=n==="fixed",i=wo(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const l=fr(0);function u(){l.x=G0(a)}if(r||!r&&!o)if((ms(t)!=="body"||ju(a))&&(s=Gp(t)),r){const d=wo(t,!0,o,t);l.x=d.x+t.clientLeft,l.y=d.y+t.clientTop}else a&&u();o&&!r&&a&&u();const f=a&&!r&&!o?C6(a,s):fr(0),c=i.left+s.scrollLeft-l.x-f.x,p=i.top+s.scrollTop-l.y-f.y;return{x:c,y:p,width:i.width,height:i.height}}function Pm(e){return qn(e).position==="static"}function Rx(e,t){if(!hr(e)||qn(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return yr(e)===n&&(n=n.ownerDocument.body),n}function T6(e,t){const n=rn(e);if(Hp(e))return n;if(!hr(e)){let a=Ea(e);for(;a&&!Mi(a);){if(Wn(a)&&!Pm(a))return a;a=Ea(a)}return n}let r=Rx(e,t);for(;r&&KA(r)&&Pm(r);)r=Rx(r,t);return r&&Mi(r)&&Pm(r)&&!z0(r)?n:r||XA(e)||n}const sC=async function(e){const t=this.getOffsetParent||T6,n=this.getDimensions,r=await n(e.floating);return{reference:iC(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function lC(e){return qn(e).direction==="rtl"}const uC={convertOffsetParentRelativeRectToViewportRelativeRect:ZA,getDocumentElement:yr,getClippingRect:aC,getOffsetParent:T6,getElementRects:sC,getClientRects:JA,getDimensions:oC,getScale:fi,isElement:Wn,isRTL:lC};function j6(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function cC(e,t){let n=null,r;const a=yr(e);function o(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function i(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();const u=e.getBoundingClientRect(),{left:f,top:c,width:p,height:d}=u;if(s||t(),!p||!d)return;const h=oc(c),m=oc(a.clientWidth-(f+p)),g=oc(a.clientHeight-(c+d)),v=oc(f),x={rootMargin:-h+"px "+-m+"px "+-g+"px "+-v+"px",threshold:Zt(0,Ca(1,l))||1};let P=!0;function w(S){const O=S[0].intersectionRatio;if(O!==l){if(!P)return i();O?i(!1,O):r=setTimeout(()=>{i(!1,1e-7)},1e3)}O===1&&!j6(u,e.getBoundingClientRect())&&i(),P=!1}try{n=new IntersectionObserver(w,{...x,root:a.ownerDocument})}catch{n=new IntersectionObserver(w,x)}n.observe(e)}return i(!0),o}function fC(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:o=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,u=H0(e),f=a||o?[...u?Ll(u):[],...Ll(t)]:[];f.forEach(v=>{a&&v.addEventListener("scroll",n,{passive:!0}),o&&v.addEventListener("resize",n)});const c=u&&s?cC(u,n):null;let p=-1,d=null;i&&(d=new ResizeObserver(v=>{let[y]=v;y&&y.target===u&&d&&(d.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var x;(x=d)==null||x.observe(t)})),n()}),u&&!l&&d.observe(u),d.observe(t));let h,m=l?wo(e):null;l&&g();function g(){const v=wo(e);m&&!j6(m,v)&&n(),m=v,h=requestAnimationFrame(g)}return n(),()=>{var v;f.forEach(y=>{a&&y.removeEventListener("scroll",n),o&&y.removeEventListener("resize",n)}),c==null||c(),(v=d)==null||v.disconnect(),d=null,l&&cancelAnimationFrame(h)}}const pC=UA,dC=WA,mC=BA,hC=VA,vC=HA,Ix=zA,yC=qA,gC=(e,t,n)=>{const r=new Map,a={platform:uC,...n},o={...a.platform,_c:r};return FA(e,t,{...a,platform:o})};var xC=typeof document<"u",wC=function(){},Lc=xC?k.useLayoutEffect:wC;function gf(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,a;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(!gf(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const o=a[r];if(!(o==="_owner"&&e.$$typeof)&&!gf(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function $6(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Dx(e,t){const n=$6(e);return Math.round(t*n)/n}function Sm(e){const t=k.useRef(e);return Lc(()=>{t.current=e}),t}function bC(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:o,floating:i}={},transform:s=!0,whileElementsMounted:l,open:u}=e,[f,c]=k.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,d]=k.useState(r);gf(p,r)||d(r);const[h,m]=k.useState(null),[g,v]=k.useState(null),y=k.useCallback($=>{$!==S.current&&(S.current=$,m($))},[]),x=k.useCallback($=>{$!==O.current&&(O.current=$,v($))},[]),P=o||h,w=i||g,S=k.useRef(null),O=k.useRef(null),_=k.useRef(f),A=l!=null,j=Sm(l),E=Sm(a),T=Sm(u),N=k.useCallback(()=>{if(!S.current||!O.current)return;const $={placement:t,strategy:n,middleware:p};E.current&&($.platform=E.current),gC(S.current,O.current,$).then(D=>{const H={...D,isPositioned:T.current!==!1};M.current&&!gf(_.current,H)&&(_.current=H,fs.flushSync(()=>{c(H)}))})},[p,t,n,E,T]);Lc(()=>{u===!1&&_.current.isPositioned&&(_.current.isPositioned=!1,c($=>({...$,isPositioned:!1})))},[u]);const M=k.useRef(!1);Lc(()=>(M.current=!0,()=>{M.current=!1}),[]),Lc(()=>{if(P&&(S.current=P),w&&(O.current=w),P&&w){if(j.current)return j.current(P,w,N);N()}},[P,w,N,j,A]);const I=k.useMemo(()=>({reference:S,floating:O,setReference:y,setFloating:x}),[y,x]),R=k.useMemo(()=>({reference:P,floating:w}),[P,w]),L=k.useMemo(()=>{const $={position:n,left:0,top:0};if(!R.floating)return $;const D=Dx(R.floating,f.x),H=Dx(R.floating,f.y);return s?{...$,transform:"translate("+D+"px, "+H+"px)",...$6(R.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:D,top:H}},[n,s,R.floating,f.x,f.y]);return k.useMemo(()=>({...f,update:N,refs:I,elements:R,floatingStyles:L}),[f,N,I,R,L])}const PC=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Ix({element:r.current,padding:a}).fn(n):{}:r?Ix({element:r,padding:a}).fn(n):{}}}},SC=(e,t)=>({...pC(e),options:[e,t]}),OC=(e,t)=>({...dC(e),options:[e,t]}),kC=(e,t)=>({...yC(e),options:[e,t]}),_C=(e,t)=>({...mC(e),options:[e,t]}),AC=(e,t)=>({...hC(e),options:[e,t]}),CC=(e,t)=>({...vC(e),options:[e,t]}),EC=(e,t)=>({...PC(e),options:[e,t]});var TC="Arrow",N6=k.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...o}=e;return b.jsx(Ee.svg,{...o,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:b.jsx("polygon",{points:"0,0 30,0 15,10"})})});N6.displayName=TC;var jC=N6;function $C(e){const[t,n]=k.useState(void 0);return jt(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const o=a[0];let i,s;if("borderBoxSize"in o){const l=o.borderBoxSize,u=Array.isArray(l)?l[0]:l;i=u.inlineSize,s=u.blockSize}else i=e.offsetWidth,s=e.offsetHeight;n({width:i,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var U0="Popper",[M6,Up]=ps(U0),[NC,R6]=M6(U0),I6=e=>{const{__scopePopper:t,children:n}=e,[r,a]=k.useState(null);return b.jsx(NC,{scope:t,anchor:r,onAnchorChange:a,children:n})};I6.displayName=U0;var D6="PopperAnchor",L6=k.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,o=R6(D6,n),i=k.useRef(null),s=Ye(t,i);return k.useEffect(()=>{o.onAnchorChange((r==null?void 0:r.current)||i.current)}),r?null:b.jsx(Ee.div,{...a,ref:s})});L6.displayName=D6;var W0="PopperContent",[MC,RC]=M6(W0),F6=k.forwardRef((e,t)=>{var J,le,q,K,X,F;const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:o="center",alignOffset:i=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:f=0,sticky:c="partial",hideWhenDetached:p=!1,updatePositionStrategy:d="optimized",onPlaced:h,...m}=e,g=R6(W0,n),[v,y]=k.useState(null),x=Ye(t,fe=>y(fe)),[P,w]=k.useState(null),S=$C(P),O=(S==null?void 0:S.width)??0,_=(S==null?void 0:S.height)??0,A=r+(o!=="center"?"-"+o:""),j=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},E=Array.isArray(u)?u:[u],T=E.length>0,N={padding:j,boundary:E.filter(DC),altBoundary:T},{refs:M,floatingStyles:I,placement:R,isPositioned:L,middlewareData:$}=bC({strategy:"fixed",placement:A,whileElementsMounted:(...fe)=>fC(...fe,{animationFrame:d==="always"}),elements:{reference:g.anchor},middleware:[SC({mainAxis:a+_,alignmentAxis:i}),l&&OC({mainAxis:!0,crossAxis:!1,limiter:c==="partial"?kC():void 0,...N}),l&&_C({...N}),AC({...N,apply:({elements:fe,rects:ne,availableWidth:Ne,availableHeight:Me})=>{const{width:Ze,height:Xn}=ne.reference,On=fe.floating.style;On.setProperty("--radix-popper-available-width",`${Ne}px`),On.setProperty("--radix-popper-available-height",`${Me}px`),On.setProperty("--radix-popper-anchor-width",`${Ze}px`),On.setProperty("--radix-popper-anchor-height",`${Xn}px`)}}),P&&EC({element:P,padding:s}),LC({arrowWidth:O,arrowHeight:_}),p&&CC({strategy:"referenceHidden",...N})]}),[D,H]=H6(R),W=Aa(h);jt(()=>{L&&(W==null||W())},[L,W]);const G=(J=$.arrow)==null?void 0:J.x,Z=(le=$.arrow)==null?void 0:le.y,ie=((q=$.arrow)==null?void 0:q.centerOffset)!==0,[ve,Pe]=k.useState();return jt(()=>{v&&Pe(window.getComputedStyle(v).zIndex)},[v]),b.jsx("div",{ref:M.setFloating,"data-radix-popper-content-wrapper":"",style:{...I,transform:L?I.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ve,"--radix-popper-transform-origin":[(K=$.transformOrigin)==null?void 0:K.x,(X=$.transformOrigin)==null?void 0:X.y].join(" "),...((F=$.hide)==null?void 0:F.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:b.jsx(MC,{scope:n,placedSide:D,onArrowChange:w,arrowX:G,arrowY:Z,shouldHideArrow:ie,children:b.jsx(Ee.div,{"data-side":D,"data-align":H,...m,ref:x,style:{...m.style,animation:L?void 0:"none"}})})})});F6.displayName=W0;var z6="PopperArrow",IC={top:"bottom",right:"left",bottom:"top",left:"right"},B6=k.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,o=RC(z6,r),i=IC[o.placedSide];return b.jsx("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:b.jsx(jC,{...a,ref:n,style:{...a.style,display:"block"}})})});B6.displayName=z6;function DC(e){return e!==null}var LC=e=>({name:"transformOrigin",options:e,fn(t){var g,v,y;const{placement:n,rects:r,middlewareData:a}=t,i=((g=a.arrow)==null?void 0:g.centerOffset)!==0,s=i?0:e.arrowWidth,l=i?0:e.arrowHeight,[u,f]=H6(n),c={start:"0%",center:"50%",end:"100%"}[f],p=(((v=a.arrow)==null?void 0:v.x)??0)+s/2,d=(((y=a.arrow)==null?void 0:y.y)??0)+l/2;let h="",m="";return u==="bottom"?(h=i?c:`${p}px`,m=`${-l}px`):u==="top"?(h=i?c:`${p}px`,m=`${r.floating.height+l}px`):u==="right"?(h=`${-l}px`,m=i?c:`${d}px`):u==="left"&&(h=`${r.floating.width+l}px`,m=i?c:`${d}px`),{data:{x:h,y:m}}}});function H6(e){const[t,n="center"]=e.split("-");return[t,n]}var FC=I6,G6=L6,U6=F6,W6=B6,zC="Portal",q6=k.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[a,o]=k.useState(!1);jt(()=>o(!0),[]);const i=n||a&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return i?nA.createPortal(b.jsx(Ee.div,{...r,ref:t}),i):null});q6.displayName=zC;var BC=d5[" useInsertionEffect ".trim().toString()]||jt;function xf({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,o,i]=HC({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:a;{const f=k.useRef(e!==void 0);k.useEffect(()=>{const c=f.current;c!==s&&console.warn(`${r} is changing from ${c?"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.`),f.current=s},[s,r])}const u=k.useCallback(f=>{var c;if(s){const p=GC(f)?f(e):f;p!==e&&((c=i.current)==null||c.call(i,p))}else o(f)},[s,e,o,i]);return[l,u]}function HC({defaultProp:e,onChange:t}){const[n,r]=k.useState(e),a=k.useRef(n),o=k.useRef(t);return BC(()=>{o.current=t},[t]),k.useEffect(()=>{var i;a.current!==n&&((i=o.current)==null||i.call(o,n),a.current=n)},[n,a]),[n,r,o]}function GC(e){return typeof e=="function"}function UC(e){const t=k.useRef({value:e,previous:e});return k.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var V6=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"}),WC="VisuallyHidden",K6=k.forwardRef((e,t)=>b.jsx(Ee.span,{...e,ref:t,style:{...V6,...e.style}}));K6.displayName=WC;var qC=K6,VC=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Do=new WeakMap,ic=new WeakMap,sc={},Om=0,X6=function(e){return e&&(e.host||X6(e.parentNode))},KC=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=X6(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})},XC=function(e,t,n,r){var a=KC(t,Array.isArray(e)?e:[e]);sc[n]||(sc[n]=new WeakMap);var o=sc[n],i=[],s=new Set,l=new Set(a),u=function(c){!c||s.has(c)||(s.add(c),u(c.parentNode))};a.forEach(u);var f=function(c){!c||l.has(c)||Array.prototype.forEach.call(c.children,function(p){if(s.has(p))f(p);else try{var d=p.getAttribute(r),h=d!==null&&d!=="false",m=(Do.get(p)||0)+1,g=(o.get(p)||0)+1;Do.set(p,m),o.set(p,g),i.push(p),m===1&&h&&ic.set(p,!0),g===1&&p.setAttribute(n,"true"),h||p.setAttribute(r,"true")}catch(v){console.error("aria-hidden: cannot operate on ",p,v)}})};return f(t),s.clear(),Om++,function(){i.forEach(function(c){var p=Do.get(c)-1,d=o.get(c)-1;Do.set(c,p),o.set(c,d),p||(ic.has(c)||c.removeAttribute(r),ic.delete(c)),d||c.removeAttribute(n)}),Om--,Om||(Do=new WeakMap,Do=new WeakMap,ic=new WeakMap,sc={})}},YC=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=VC(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),XC(r,a,n,"aria-hidden")):function(){return null}},rr=function(){return rr=Object.assign||function(t){for(var n,r=1,a=arguments.length;r<a;r++){n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},rr.apply(this,arguments)};function Y6(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}function QC(e,t,n){if(n||arguments.length===2)for(var r=0,a=t.length,o;r<a;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}var Fc="right-scroll-bar-position",zc="width-before-scroll-bar",ZC="with-scroll-bars-hidden",JC="--removed-body-scroll-bar-size";function km(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function eE(e,t){var n=k.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var a=n.value;a!==r&&(n.value=r,n.callback(r,a))}}}})[0];return n.callback=t,n.facade}var tE=typeof window<"u"?k.useLayoutEffect:k.useEffect,Lx=new WeakMap;function nE(e,t){var n=eE(null,function(r){return e.forEach(function(a){return km(a,r)})});return tE(function(){var r=Lx.get(n);if(r){var a=new Set(r),o=new Set(e),i=n.current;a.forEach(function(s){o.has(s)||km(s,null)}),o.forEach(function(s){a.has(s)||km(s,i)})}Lx.set(n,e)},[e]),n}function rE(e){return e}function aE(e,t){t===void 0&&(t=rE);var n=[],r=!1,a={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(o){var i=t(o,r);return n.push(i),function(){n=n.filter(function(s){return s!==i})}},assignSyncMedium:function(o){for(r=!0;n.length;){var i=n;n=[],i.forEach(o)}n={push:function(s){return o(s)},filter:function(){return n}}},assignMedium:function(o){r=!0;var i=[];if(n.length){var s=n;n=[],s.forEach(o),i=n}var l=function(){var f=i;i=[],f.forEach(o)},u=function(){return Promise.resolve().then(l)};u(),n={push:function(f){i.push(f),u()},filter:function(f){return i=i.filter(f),n}}}};return a}function oE(e){e===void 0&&(e={});var t=aE(null);return t.options=rr({async:!0,ssr:!1},e),t}var Q6=function(e){var t=e.sideCar,n=Y6(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return k.createElement(r,rr({},n))};Q6.isSideCarExport=!0;function iE(e,t){return e.useMedium(t),Q6}var Z6=oE(),_m=function(){},Wp=k.forwardRef(function(e,t){var n=k.useRef(null),r=k.useState({onScrollCapture:_m,onWheelCapture:_m,onTouchMoveCapture:_m}),a=r[0],o=r[1],i=e.forwardProps,s=e.children,l=e.className,u=e.removeScrollBar,f=e.enabled,c=e.shards,p=e.sideCar,d=e.noRelative,h=e.noIsolation,m=e.inert,g=e.allowPinchZoom,v=e.as,y=v===void 0?"div":v,x=e.gapMode,P=Y6(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),w=p,S=nE([n,t]),O=rr(rr({},P),a);return k.createElement(k.Fragment,null,f&&k.createElement(w,{sideCar:Z6,removeScrollBar:u,shards:c,noRelative:d,noIsolation:h,inert:m,setCallbacks:o,allowPinchZoom:!!g,lockRef:n,gapMode:x}),i?k.cloneElement(k.Children.only(s),rr(rr({},O),{ref:S})):k.createElement(y,rr({},O,{className:l,ref:S}),s))});Wp.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Wp.classNames={fullWidth:zc,zeroRight:Fc};var sE=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function lE(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=sE();return t&&e.setAttribute("nonce",t),e}function uE(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function cE(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var fE=function(){var e=0,t=null;return{add:function(n){e==0&&(t=lE())&&(uE(t,n),cE(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},pE=function(){var e=fE();return function(t,n){k.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},J6=function(){var e=pE(),t=function(n){var r=n.styles,a=n.dynamic;return e(r,a),null};return t},dE={left:0,top:0,right:0,gap:0},Am=function(e){return parseInt(e||"",10)||0},mE=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],a=t[e==="padding"?"paddingRight":"marginRight"];return[Am(n),Am(r),Am(a)]},hE=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return dE;var t=mE(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])}},vE=J6(),pi="data-scroll-locked",yE=function(e,t,n,r){var a=e.left,o=e.top,i=e.right,s=e.gap;return n===void 0&&(n="margin"),`
-  .`.concat(ZC,` {
+`+o.stack}return{value:e,source:t,stack:a,digest:null}}function hm(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Dh(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var M_=typeof WeakMap=="function"?WeakMap:Map;function U9(e,t,n){n=Tr(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){cp||(cp=!0,Vh=r),Dh(e,t)},n}function W9(e,t,n){n=Tr(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){Dh(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){Dh(e,t),typeof r!="function"&&(ba===null?ba=new Set([this]):ba.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function nx(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new M_;var a=new Set;r.set(t,a)}else a=r.get(t),a===void 0&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=K_.bind(null,e,t,n),t.then(e,e))}function rx(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function ax(e,t,n,r,a){return e.mode&1?(e.flags|=65536,e.lanes=a,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Tr(-1,1),t.tag=2,wa(n,t,1))),n.lanes|=1),e)}var R_=Gr.ReactCurrentOwner,Bt=!1;function Nt(e,t,n,r){t.child=e===null?w9(t,null,n,r):Ti(t,e.child,n,r)}function ox(e,t,n,r,a){n=n.render;var o=t.ref;return ui(t,a),r=xy(e,t,n,r,o,a),n=wy(),e!==null&&!Bt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Dr(e,t,a)):(ze&&n&&sy(t),t.flags|=1,Nt(e,t,r,a),t.child)}function ix(e,t,n,r,a){if(e===null){var o=n.type;return typeof o=="function"&&!Ty(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,q9(e,t,o,r,a)):(e=Dc(n.type,null,r,t,t.mode,a),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!(e.lanes&a)){var i=o.memoizedProps;if(n=n.compare,n=n!==null?n:_l,n(i,r)&&e.ref===t.ref)return Dr(e,t,a)}return t.flags|=1,e=Sa(o,r),e.ref=t.ref,e.return=t,t.child=e}function q9(e,t,n,r,a){if(e!==null){var o=e.memoizedProps;if(_l(o,r)&&e.ref===t.ref)if(Bt=!1,t.pendingProps=r=o,(e.lanes&a)!==0)e.flags&131072&&(Bt=!0);else return t.lanes=e.lanes,Dr(e,t,a)}return Lh(e,t,n,r,a)}function V9(e,t,n){var r=t.pendingProps,a=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},$e(ti,Yt),Yt|=n;else{if(!(n&1073741824))return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,$e(ti,Yt),Yt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,$e(ti,Yt),Yt|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,$e(ti,Yt),Yt|=r;return Nt(e,t,a,n),t.child}function K9(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Lh(e,t,n,r,a){var o=Ut(n)?ho:Tt.current;return o=Ai(t,o),ui(t,a),n=xy(e,t,n,r,o,a),r=wy(),e!==null&&!Bt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Dr(e,t,a)):(ze&&r&&sy(t),t.flags|=1,Nt(e,t,n,a),t.child)}function sx(e,t,n,r,a){if(Ut(n)){var o=!0;ep(t)}else o=!1;if(ui(t,a),t.stateNode===null)Mc(e,t),G9(t,n,r),Ih(t,n,r,a),r=!0;else if(e===null){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,u=n.contextType;typeof u=="object"&&u!==null?u=xn(u):(u=Ut(n)?ho:Tt.current,u=Ai(t,u));var p=n.getDerivedStateFromProps,c=typeof p=="function"||typeof i.getSnapshotBeforeUpdate=="function";c||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(s!==r||l!==u)&&tx(t,i,r,u),ta=!1;var f=t.memoizedState;i.state=f,op(t,r,i,a),l=t.memoizedState,s!==r||f!==l||Gt.current||ta?(typeof p=="function"&&(Rh(t,n,p,r),l=t.memoizedState),(s=ta||ex(t,n,s,r,f,l,u))?(c||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=u,r=s):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,P9(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:An(t.type,s),i.props=u,c=t.pendingProps,f=i.context,l=n.contextType,typeof l=="object"&&l!==null?l=xn(l):(l=Ut(n)?ho:Tt.current,l=Ai(t,l));var d=n.getDerivedStateFromProps;(p=typeof d=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(s!==c||f!==l)&&tx(t,i,r,l),ta=!1,f=t.memoizedState,i.state=f,op(t,r,i,a);var h=t.memoizedState;s!==c||f!==h||Gt.current||ta?(typeof d=="function"&&(Rh(t,n,d,r),h=t.memoizedState),(u=ta||ex(t,n,u,r,f,h,l)||!1)?(p||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,h,l),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,h,l)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=l,r=u):(typeof i.componentDidUpdate!="function"||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return Fh(e,t,n,r,o,a)}function Fh(e,t,n,r,a,o){K9(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return a&&q1(t,n,!1),Dr(e,t,o);r=t.stateNode,R_.current=t;var s=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Ti(t,e.child,null,o),t.child=Ti(t,null,s,o)):Nt(e,t,s,o),t.memoizedState=r.state,a&&q1(t,n,!0),t.child}function X9(e){var t=e.stateNode;t.pendingContext?W1(e,t.pendingContext,t.pendingContext!==t.context):t.context&&W1(e,t.context,!1),hy(e,t.containerInfo)}function lx(e,t,n,r,a){return Ei(),uy(a),t.flags|=256,Nt(e,t,n,r),t.child}var zh={dehydrated:null,treeContext:null,retryLane:0};function Bh(e){return{baseLanes:e,cachePool:null,transitions:null}}function Y9(e,t,n){var r=t.pendingProps,a=He.current,o=!1,i=(t.flags&128)!==0,s;if((s=i)||(s=e!==null&&e.memoizedState===null?!1:(a&2)!==0),s?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(a|=1),$e(He,a&1),e===null)return Nh(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(i=r.children,e=r.fallback,o?(r=t.mode,o=t.child,i={mode:"hidden",children:i},!(r&1)&&o!==null?(o.childLanes=0,o.pendingProps=i):o=If(i,r,0,null),e=co(e,r,n,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=Bh(n),t.memoizedState=zh,e):Sy(t,i));if(a=e.memoizedState,a!==null&&(s=a.dehydrated,s!==null))return I_(e,t,i,r,s,a,n);if(o){o=r.fallback,i=t.mode,a=e.child,s=a.sibling;var l={mode:"hidden",children:r.children};return!(i&1)&&t.child!==a?(r=t.child,r.childLanes=0,r.pendingProps=l,t.deletions=null):(r=Sa(a,l),r.subtreeFlags=a.subtreeFlags&14680064),s!==null?o=Sa(s,o):(o=co(o,i,n,null),o.flags|=2),o.return=t,r.return=t,r.sibling=o,t.child=r,r=o,o=t.child,i=e.child.memoizedState,i=i===null?Bh(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},o.memoizedState=i,o.childLanes=e.childLanes&~n,t.memoizedState=zh,r}return o=e.child,e=o.sibling,r=Sa(o,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Sy(e,t){return t=If({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function tc(e,t,n,r){return r!==null&&uy(r),Ti(t,e.child,null,n),e=Sy(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function I_(e,t,n,r,a,o,i){if(n)return t.flags&256?(t.flags&=-257,r=hm(Error(U(422))),tc(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=r.fallback,a=t.mode,r=If({mode:"visible",children:r.children},a,0,null),o=co(o,a,i,null),o.flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,t.mode&1&&Ti(t,e.child,null,i),t.child.memoizedState=Bh(i),t.memoizedState=zh,o);if(!(t.mode&1))return tc(e,t,i,null);if(a.data==="$!"){if(r=a.nextSibling&&a.nextSibling.dataset,r)var s=r.dgst;return r=s,o=Error(U(419)),r=hm(o,r,void 0),tc(e,t,i,r)}if(s=(i&e.childLanes)!==0,Bt||s){if(r=ft,r!==null){switch(i&-i){case 4:a=2;break;case 16:a=8;break;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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}a=a&(r.suspendedLanes|i)?0:a,a!==0&&a!==o.retryLane&&(o.retryLane=a,Ir(e,a),Gn(r,e,a,-1))}return Ey(),r=hm(Error(U(421))),tc(e,t,i,r)}return a.data==="$?"?(t.flags|=128,t.child=e.child,t=X_.bind(null,e),a._reactRetry=t,null):(e=o.treeContext,en=xa(a.nextSibling),nn=t,ze=!0,Rn=null,e!==null&&(dn[mn++]=kr,dn[mn++]=_r,dn[mn++]=vo,kr=e.id,_r=e.overflow,vo=t),t=Sy(t,r.children),t.flags|=4096,t)}function ux(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Mh(e.return,t,n)}function vm(e,t,n,r,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Q9(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Nt(e,t,r.children,n),r=He.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ux(e,n,t);else if(e.tag===19)ux(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if($e(He,r),!(t.mode&1))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;n!==null;)e=n.alternate,e!==null&&ip(e)===null&&(a=n),n=n.sibling;n=a,n===null?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),vm(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;a!==null;){if(e=a.alternate,e!==null&&ip(e)===null){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}vm(t,!0,n,null,o);break;case"together":vm(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Mc(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Dr(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),go|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(U(153));if(t.child!==null){for(e=t.child,n=Sa(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Sa(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function D_(e,t,n){switch(t.tag){case 3:X9(t),Ei();break;case 5:S9(t);break;case 1:Ut(t.type)&&ep(t);break;case 4:hy(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;$e(rp,r._currentValue),r._currentValue=a;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?($e(He,He.current&1),t.flags|=128,null):n&t.child.childLanes?Y9(e,t,n):($e(He,He.current&1),e=Dr(e,t,n),e!==null?e.sibling:null);$e(He,He.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return Q9(e,t,n);t.flags|=128}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),$e(He,He.current),r)break;return null;case 22:case 23:return t.lanes=0,V9(e,t,n)}return Dr(e,t,n)}var Z9,Hh,J9,e6;Z9=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Hh=function(){};J9=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Qa(cr.current);var o=null;switch(n){case"input":a=ch(e,a),r=ch(e,r),o=[];break;case"select":a=Ue({},a,{value:void 0}),r=Ue({},r,{value:void 0}),o=[];break;case"textarea":a=dh(e,a),r=dh(e,r),o=[];break;default:typeof a.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Zc)}hh(n,r);var i;n=null;for(u in a)if(!r.hasOwnProperty(u)&&a.hasOwnProperty(u)&&a[u]!=null)if(u==="style"){var s=a[u];for(i in s)s.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(xl.hasOwnProperty(u)?o||(o=[]):(o=o||[]).push(u,null));for(u in r){var l=r[u];if(s=a!=null?a[u]:void 0,r.hasOwnProperty(u)&&l!==s&&(l!=null||s!=null))if(u==="style")if(s){for(i in s)!s.hasOwnProperty(i)||l&&l.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in l)l.hasOwnProperty(i)&&s[i]!==l[i]&&(n||(n={}),n[i]=l[i])}else n||(o||(o=[]),o.push(u,n)),n=l;else u==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,s=s?s.__html:void 0,l!=null&&s!==l&&(o=o||[]).push(u,l)):u==="children"?typeof l!="string"&&typeof l!="number"||(o=o||[]).push(u,""+l):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(xl.hasOwnProperty(u)?(l!=null&&u==="onScroll"&&Ie("scroll",e),o||s===l||(o=[])):(o=o||[]).push(u,l))}n&&(o=o||[]).push("style",n);var u=o;(t.updateQueue=u)&&(t.flags|=4)}};e6=function(e,t,n,r){n!==r&&(t.flags|=4)};function Ds(e,t){if(!ze)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Pt(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;a!==null;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags&14680064,r|=a.flags&14680064,a.return=e,a=a.sibling;else for(a=e.child;a!==null;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function L_(e,t,n){var r=t.pendingProps;switch(ly(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Pt(t),null;case 1:return Ut(t.type)&&Jc(),Pt(t),null;case 3:return r=t.stateNode,ji(),Fe(Gt),Fe(Tt),yy(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Ju(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Rn!==null&&(Yh(Rn),Rn=null))),Hh(e,t),Pt(t),null;case 5:vy(t);var a=Qa(jl.current);if(n=t.type,e!==null&&t.stateNode!=null)J9(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(U(166));return Pt(t),null}if(e=Qa(cr.current),Ju(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[nr]=t,r[El]=o,e=(t.mode&1)!==0,n){case"dialog":Ie("cancel",r),Ie("close",r);break;case"iframe":case"object":case"embed":Ie("load",r);break;case"video":case"audio":for(a=0;a<el.length;a++)Ie(el[a],r);break;case"source":Ie("error",r);break;case"img":case"image":case"link":Ie("error",r),Ie("load",r);break;case"details":Ie("toggle",r);break;case"input":g1(r,o),Ie("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!o.multiple},Ie("invalid",r);break;case"textarea":w1(r,o),Ie("invalid",r)}hh(n,o),a=null;for(var i in o)if(o.hasOwnProperty(i)){var s=o[i];i==="children"?typeof s=="string"?r.textContent!==s&&(o.suppressHydrationWarning!==!0&&Zu(r.textContent,s,e),a=["children",s]):typeof s=="number"&&r.textContent!==""+s&&(o.suppressHydrationWarning!==!0&&Zu(r.textContent,s,e),a=["children",""+s]):xl.hasOwnProperty(i)&&s!=null&&i==="onScroll"&&Ie("scroll",r)}switch(n){case"input":Uu(r),x1(r,o,!0);break;case"textarea":Uu(r),b1(r);break;case"select":case"option":break;default:typeof o.onClick=="function"&&(r.onclick=Zc)}r=a,t.updateQueue=r,r!==null&&(t.flags|=4)}else{i=a.nodeType===9?a:a.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=A5(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[nr]=t,e[El]=r,Z9(e,t,!1,!1),t.stateNode=e;e:{switch(i=vh(n,r),n){case"dialog":Ie("cancel",e),Ie("close",e),a=r;break;case"iframe":case"object":case"embed":Ie("load",e),a=r;break;case"video":case"audio":for(a=0;a<el.length;a++)Ie(el[a],e);a=r;break;case"source":Ie("error",e),a=r;break;case"img":case"image":case"link":Ie("error",e),Ie("load",e),a=r;break;case"details":Ie("toggle",e),a=r;break;case"input":g1(e,r),a=ch(e,r),Ie("invalid",e);break;case"option":a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=Ue({},r,{value:void 0}),Ie("invalid",e);break;case"textarea":w1(e,r),a=dh(e,r),Ie("invalid",e);break;default:a=r}hh(n,a),s=a;for(o in s)if(s.hasOwnProperty(o)){var l=s[o];o==="style"?j5(e,l):o==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,l!=null&&E5(e,l)):o==="children"?typeof l=="string"?(n!=="textarea"||l!=="")&&wl(e,l):typeof l=="number"&&wl(e,""+l):o!=="suppressContentEditableWarning"&&o!=="suppressHydrationWarning"&&o!=="autoFocus"&&(xl.hasOwnProperty(o)?l!=null&&o==="onScroll"&&Ie("scroll",e):l!=null&&Vv(e,o,l,i))}switch(n){case"input":Uu(e),x1(e,r,!1);break;case"textarea":Uu(e),b1(e);break;case"option":r.value!=null&&e.setAttribute("value",""+ka(r.value));break;case"select":e.multiple=!!r.multiple,o=r.value,o!=null?oi(e,!!r.multiple,o,!1):r.defaultValue!=null&&oi(e,!!r.multiple,r.defaultValue,!0);break;default:typeof a.onClick=="function"&&(e.onclick=Zc)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Pt(t),null;case 6:if(e&&t.stateNode!=null)e6(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(U(166));if(n=Qa(jl.current),Qa(cr.current),Ju(t)){if(r=t.stateNode,n=t.memoizedProps,r[nr]=t,(o=r.nodeValue!==n)&&(e=nn,e!==null))switch(e.tag){case 3:Zu(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Zu(r.nodeValue,n,(e.mode&1)!==0)}o&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[nr]=t,t.stateNode=r}return Pt(t),null;case 13:if(Fe(He),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ze&&en!==null&&t.mode&1&&!(t.flags&128))g9(),Ei(),t.flags|=98560,o=!1;else if(o=Ju(t),r!==null&&r.dehydrated!==null){if(e===null){if(!o)throw Error(U(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(U(317));o[nr]=t}else Ei(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Pt(t),o=!1}else Rn!==null&&(Yh(Rn),Rn=null),o=!0;if(!o)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||He.current&1?ot===0&&(ot=3):Ey())),t.updateQueue!==null&&(t.flags|=4),Pt(t),null);case 4:return ji(),Hh(e,t),e===null&&Cl(t.stateNode.containerInfo),Pt(t),null;case 10:return fy(t.type._context),Pt(t),null;case 17:return Ut(t.type)&&Jc(),Pt(t),null;case 19:if(Fe(He),o=t.memoizedState,o===null)return Pt(t),null;if(r=(t.flags&128)!==0,i=o.rendering,i===null)if(r)Ds(o,!1);else{if(ot!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(i=ip(e),i!==null){for(t.flags|=128,Ds(o,!1),r=i.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)o=n,e=r,o.flags&=14680066,i=o.alternate,i===null?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=i.childLanes,o.lanes=i.lanes,o.child=i.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=i.memoizedProps,o.memoizedState=i.memoizedState,o.updateQueue=i.updateQueue,o.type=i.type,e=i.dependencies,o.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return $e(He,He.current&1|2),t.child}e=e.sibling}o.tail!==null&&Ke()>Ni&&(t.flags|=128,r=!0,Ds(o,!1),t.lanes=4194304)}else{if(!r)if(e=ip(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ds(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!ze)return Pt(t),null}else 2*Ke()-o.renderingStartTime>Ni&&n!==1073741824&&(t.flags|=128,r=!0,Ds(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Ke(),t.sibling=null,n=He.current,$e(He,r?n&1|2:n&1),t):(Pt(t),null);case 22:case 23:return Ay(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Yt&1073741824&&(Pt(t),t.subtreeFlags&6&&(t.flags|=8192)):Pt(t),null;case 24:return null;case 25:return null}throw Error(U(156,t.tag))}function F_(e,t){switch(ly(t),t.tag){case 1:return Ut(t.type)&&Jc(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ji(),Fe(Gt),Fe(Tt),yy(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return vy(t),null;case 13:if(Fe(He),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(U(340));Ei()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Fe(He),null;case 4:return ji(),null;case 10:return fy(t.type._context),null;case 22:case 23:return Ay(),null;case 24:return null;default:return null}}var nc=!1,_t=!1,z_=typeof WeakSet=="function"?WeakSet:Set,Y=null;function ei(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){qe(e,t,r)}else n.current=null}function Gh(e,t,n){try{n()}catch(r){qe(e,t,r)}}var cx=!1;function B_(e,t){if(_h=Xc,e=o9(),iy(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 a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,s=-1,l=-1,u=0,p=0,c=e,f=null;t:for(;;){for(var d;c!==n||a!==0&&c.nodeType!==3||(s=i+a),c!==o||r!==0&&c.nodeType!==3||(l=i+r),c.nodeType===3&&(i+=c.nodeValue.length),(d=c.firstChild)!==null;)f=c,c=d;for(;;){if(c===e)break t;if(f===n&&++u===a&&(s=i),f===o&&++p===r&&(l=i),(d=c.nextSibling)!==null)break;c=f,f=c.parentNode}c=d}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ch={focusedElem:e,selectionRange:n},Xc=!1,Y=t;Y!==null;)if(t=Y,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Y=e;else for(;Y!==null;){t=Y;try{var h=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var m=h.memoizedProps,g=h.memoizedState,v=t.stateNode,y=v.getSnapshotBeforeUpdate(t.elementType===t.type?m:An(t.type,m),g);v.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var x=t.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(U(163))}}catch(P){qe(t,t.return,P)}if(e=t.sibling,e!==null){e.return=t.return,Y=e;break}Y=t.return}return h=cx,cx=!1,h}function ul(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,o!==void 0&&Gh(t,n,o)}a=a.next}while(a!==r)}}function Mf(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 Uh(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 t6(e){var t=e.alternate;t!==null&&(e.alternate=null,t6(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[nr],delete t[El],delete t[Th],delete t[S_],delete t[O_])),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 n6(e){return e.tag===5||e.tag===3||e.tag===4}function px(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||n6(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 Wh(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=Zc));else if(r!==4&&(e=e.child,e!==null))for(Wh(e,t,n),e=e.sibling;e!==null;)Wh(e,t,n),e=e.sibling}function qh(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(qh(e,t,n),e=e.sibling;e!==null;)qh(e,t,n),e=e.sibling}var ht=null,$n=!1;function Kr(e,t,n){for(n=n.child;n!==null;)r6(e,t,n),n=n.sibling}function r6(e,t,n){if(ur&&typeof ur.onCommitFiberUnmount=="function")try{ur.onCommitFiberUnmount(_f,n)}catch{}switch(n.tag){case 5:_t||ei(n,t);case 6:var r=ht,a=$n;ht=null,Kr(e,t,n),ht=r,$n=a,ht!==null&&($n?(e=ht,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ht.removeChild(n.stateNode));break;case 18:ht!==null&&($n?(e=ht,n=n.stateNode,e.nodeType===8?um(e.parentNode,n):e.nodeType===1&&um(e,n),Ol(e)):um(ht,n.stateNode));break;case 4:r=ht,a=$n,ht=n.stateNode.containerInfo,$n=!0,Kr(e,t,n),ht=r,$n=a;break;case 0:case 11:case 14:case 15:if(!_t&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&Gh(n,t,i),a=a.next}while(a!==r)}Kr(e,t,n);break;case 1:if(!_t&&(ei(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){qe(n,t,s)}Kr(e,t,n);break;case 21:Kr(e,t,n);break;case 22:n.mode&1?(_t=(r=_t)||n.memoizedState!==null,Kr(e,t,n),_t=r):Kr(e,t,n);break;default:Kr(e,t,n)}}function fx(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new z_),t.forEach(function(r){var a=Y_.bind(null,e,r);n.has(r)||(n.add(r),r.then(a,a))})}}function kn(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r];try{var o=e,i=t,s=i;e:for(;s!==null;){switch(s.tag){case 5:ht=s.stateNode,$n=!1;break e;case 3:ht=s.stateNode.containerInfo,$n=!0;break e;case 4:ht=s.stateNode.containerInfo,$n=!0;break e}s=s.return}if(ht===null)throw Error(U(160));r6(o,i,a),ht=null,$n=!1;var l=a.alternate;l!==null&&(l.return=null),a.return=null}catch(u){qe(a,t,u)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)a6(t,e),t=t.sibling}function a6(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(kn(t,e),Yn(e),r&4){try{ul(3,e,e.return),Mf(3,e)}catch(m){qe(e,e.return,m)}try{ul(5,e,e.return)}catch(m){qe(e,e.return,m)}}break;case 1:kn(t,e),Yn(e),r&512&&n!==null&&ei(n,n.return);break;case 5:if(kn(t,e),Yn(e),r&512&&n!==null&&ei(n,n.return),e.flags&32){var a=e.stateNode;try{wl(a,"")}catch(m){qe(e,e.return,m)}}if(r&4&&(a=e.stateNode,a!=null)){var o=e.memoizedProps,i=n!==null?n.memoizedProps:o,s=e.type,l=e.updateQueue;if(e.updateQueue=null,l!==null)try{s==="input"&&o.type==="radio"&&o.name!=null&&_5(a,o),vh(s,i);var u=vh(s,o);for(i=0;i<l.length;i+=2){var p=l[i],c=l[i+1];p==="style"?j5(a,c):p==="dangerouslySetInnerHTML"?E5(a,c):p==="children"?wl(a,c):Vv(a,p,c,u)}switch(s){case"input":ph(a,o);break;case"textarea":C5(a,o);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!o.multiple;var d=o.value;d!=null?oi(a,!!o.multiple,d,!1):f!==!!o.multiple&&(o.defaultValue!=null?oi(a,!!o.multiple,o.defaultValue,!0):oi(a,!!o.multiple,o.multiple?[]:"",!1))}a[El]=o}catch(m){qe(e,e.return,m)}}break;case 6:if(kn(t,e),Yn(e),r&4){if(e.stateNode===null)throw Error(U(162));a=e.stateNode,o=e.memoizedProps;try{a.nodeValue=o}catch(m){qe(e,e.return,m)}}break;case 3:if(kn(t,e),Yn(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Ol(t.containerInfo)}catch(m){qe(e,e.return,m)}break;case 4:kn(t,e),Yn(e);break;case 13:kn(t,e),Yn(e),a=e.child,a.flags&8192&&(o=a.memoizedState!==null,a.stateNode.isHidden=o,!o||a.alternate!==null&&a.alternate.memoizedState!==null||(_y=Ke())),r&4&&fx(e);break;case 22:if(p=n!==null&&n.memoizedState!==null,e.mode&1?(_t=(u=_t)||p,kn(t,e),_t=u):kn(t,e),Yn(e),r&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!p&&e.mode&1)for(Y=e,p=e.child;p!==null;){for(c=Y=p;Y!==null;){switch(f=Y,d=f.child,f.tag){case 0:case 11:case 14:case 15:ul(4,f,f.return);break;case 1:ei(f,f.return);var h=f.stateNode;if(typeof h.componentWillUnmount=="function"){r=f,n=f.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(m){qe(r,n,m)}}break;case 5:ei(f,f.return);break;case 22:if(f.memoizedState!==null){mx(c);continue}}d!==null?(d.return=f,Y=d):mx(c)}p=p.sibling}e:for(p=null,c=e;;){if(c.tag===5){if(p===null){p=c;try{a=c.stateNode,u?(o=a.style,typeof o.setProperty=="function"?o.setProperty("display","none","important"):o.display="none"):(s=c.stateNode,l=c.memoizedProps.style,i=l!=null&&l.hasOwnProperty("display")?l.display:null,s.style.display=T5("display",i))}catch(m){qe(e,e.return,m)}}}else if(c.tag===6){if(p===null)try{c.stateNode.nodeValue=u?"":c.memoizedProps}catch(m){qe(e,e.return,m)}}else if((c.tag!==22&&c.tag!==23||c.memoizedState===null||c===e)&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===e)break e;for(;c.sibling===null;){if(c.return===null||c.return===e)break e;p===c&&(p=null),c=c.return}p===c&&(p=null),c.sibling.return=c.return,c=c.sibling}}break;case 19:kn(t,e),Yn(e),r&4&&fx(e);break;case 21:break;default:kn(t,e),Yn(e)}}function Yn(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(n6(n)){var r=n;break e}n=n.return}throw Error(U(160))}switch(r.tag){case 5:var a=r.stateNode;r.flags&32&&(wl(a,""),r.flags&=-33);var o=px(e);qh(e,o,a);break;case 3:case 4:var i=r.stateNode.containerInfo,s=px(e);Wh(e,s,i);break;default:throw Error(U(161))}}catch(l){qe(e,e.return,l)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function H_(e,t,n){Y=e,o6(e)}function o6(e,t,n){for(var r=(e.mode&1)!==0;Y!==null;){var a=Y,o=a.child;if(a.tag===22&&r){var i=a.memoizedState!==null||nc;if(!i){var s=a.alternate,l=s!==null&&s.memoizedState!==null||_t;s=nc;var u=_t;if(nc=i,(_t=l)&&!u)for(Y=a;Y!==null;)i=Y,l=i.child,i.tag===22&&i.memoizedState!==null?hx(a):l!==null?(l.return=i,Y=l):hx(a);for(;o!==null;)Y=o,o6(o),o=o.sibling;Y=a,nc=s,_t=u}dx(e)}else a.subtreeFlags&8772&&o!==null?(o.return=a,Y=o):dx(e)}}function dx(e){for(;Y!==null;){var t=Y;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:_t||Mf(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!_t)if(n===null)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:An(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;o!==null&&Q1(t,o,r);break;case 3:var i=t.updateQueue;if(i!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}Q1(t,i,n)}break;case 5:var s=t.stateNode;if(n===null&&t.flags&4){n=s;var l=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":l.autoFocus&&n.focus();break;case"img":l.src&&(n.src=l.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var p=u.memoizedState;if(p!==null){var c=p.dehydrated;c!==null&&Ol(c)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(U(163))}_t||t.flags&512&&Uh(t)}catch(f){qe(t,t.return,f)}}if(t===e){Y=null;break}if(n=t.sibling,n!==null){n.return=t.return,Y=n;break}Y=t.return}}function mx(e){for(;Y!==null;){var t=Y;if(t===e){Y=null;break}var n=t.sibling;if(n!==null){n.return=t.return,Y=n;break}Y=t.return}}function hx(e){for(;Y!==null;){var t=Y;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Mf(4,t)}catch(l){qe(t,n,l)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var a=t.return;try{r.componentDidMount()}catch(l){qe(t,a,l)}}var o=t.return;try{Uh(t)}catch(l){qe(t,o,l)}break;case 5:var i=t.return;try{Uh(t)}catch(l){qe(t,i,l)}}}catch(l){qe(t,t.return,l)}if(t===e){Y=null;break}var s=t.sibling;if(s!==null){s.return=t.return,Y=s;break}Y=t.return}}var G_=Math.ceil,up=Gr.ReactCurrentDispatcher,Oy=Gr.ReactCurrentOwner,yn=Gr.ReactCurrentBatchConfig,de=0,ft=null,et=null,gt=0,Yt=0,ti=ja(0),ot=0,Rl=null,go=0,Rf=0,ky=0,cl=null,zt=null,_y=0,Ni=1/0,Pr=null,cp=!1,Vh=null,ba=null,rc=!1,fa=null,pp=0,pl=0,Kh=null,Rc=-1,Ic=0;function Dt(){return de&6?Ke():Rc!==-1?Rc:Rc=Ke()}function Pa(e){return e.mode&1?de&2&&gt!==0?gt&-gt:__.transition!==null?(Ic===0&&(Ic=G5()),Ic):(e=ke,e!==0||(e=window.event,e=e===void 0?16:Y5(e.type)),e):1}function Gn(e,t,n,r){if(50<pl)throw pl=0,Kh=null,Error(U(185));_u(e,n,r),(!(de&2)||e!==ft)&&(e===ft&&(!(de&2)&&(Rf|=n),ot===4&&aa(e,gt)),Wt(e,r),n===1&&de===0&&!(t.mode&1)&&(Ni=Ke()+500,jf&&$a()))}function Wt(e,t){var n=e.callbackNode;_k(e,t);var r=Kc(e,e===ft?gt:0);if(r===0)n!==null&&O1(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&O1(n),t===1)e.tag===0?k_(vx.bind(null,e)):h9(vx.bind(null,e)),b_(function(){!(de&6)&&$a()}),n=null;else{switch(U5(r)){case 1:n=Zv;break;case 4:n=B5;break;case 16:n=Vc;break;case 536870912:n=H5;break;default:n=Vc}n=d6(n,i6.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function i6(e,t){if(Rc=-1,Ic=0,de&6)throw Error(U(327));var n=e.callbackNode;if(ci()&&e.callbackNode!==n)return null;var r=Kc(e,e===ft?gt:0);if(r===0)return null;if(r&30||r&e.expiredLanes||t)t=fp(e,r);else{t=r;var a=de;de|=2;var o=l6();(ft!==e||gt!==t)&&(Pr=null,Ni=Ke()+500,uo(e,t));do try{q_();break}catch(s){s6(e,s)}while(!0);py(),up.current=o,de=a,et!==null?t=0:(ft=null,gt=0,t=ot)}if(t!==0){if(t===2&&(a=bh(e),a!==0&&(r=a,t=Xh(e,a))),t===1)throw n=Rl,uo(e,0),aa(e,r),Wt(e,Ke()),n;if(t===6)aa(e,r);else{if(a=e.current.alternate,!(r&30)&&!U_(a)&&(t=fp(e,r),t===2&&(o=bh(e),o!==0&&(r=o,t=Xh(e,o))),t===1))throw n=Rl,uo(e,0),aa(e,r),Wt(e,Ke()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(U(345));case 2:Wa(e,zt,Pr);break;case 3:if(aa(e,r),(r&130023424)===r&&(t=_y+500-Ke(),10<t)){if(Kc(e,0)!==0)break;if(a=e.suspendedLanes,(a&r)!==r){Dt(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Eh(Wa.bind(null,e,zt,Pr),t);break}Wa(e,zt,Pr);break;case 4:if(aa(e,r),(r&4194240)===r)break;for(t=e.eventTimes,a=-1;0<r;){var i=31-Hn(r);o=1<<i,i=t[i],i>a&&(a=i),r&=~o}if(r=a,r=Ke()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*G_(r/1960))-r,10<r){e.timeoutHandle=Eh(Wa.bind(null,e,zt,Pr),r);break}Wa(e,zt,Pr);break;case 5:Wa(e,zt,Pr);break;default:throw Error(U(329))}}}return Wt(e,Ke()),e.callbackNode===n?i6.bind(null,e):null}function Xh(e,t){var n=cl;return e.current.memoizedState.isDehydrated&&(uo(e,t).flags|=256),e=fp(e,t),e!==2&&(t=zt,zt=n,t!==null&&Yh(t)),e}function Yh(e){zt===null?zt=e:zt.push.apply(zt,e)}function U_(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!Un(o(),a))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function aa(e,t){for(t&=~ky,t&=~Rf,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Hn(t),r=1<<n;e[n]=-1,t&=~r}}function vx(e){if(de&6)throw Error(U(327));ci();var t=Kc(e,0);if(!(t&1))return Wt(e,Ke()),null;var n=fp(e,t);if(e.tag!==0&&n===2){var r=bh(e);r!==0&&(t=r,n=Xh(e,r))}if(n===1)throw n=Rl,uo(e,0),aa(e,t),Wt(e,Ke()),n;if(n===6)throw Error(U(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Wa(e,zt,Pr),Wt(e,Ke()),null}function Cy(e,t){var n=de;de|=1;try{return e(t)}finally{de=n,de===0&&(Ni=Ke()+500,jf&&$a())}}function xo(e){fa!==null&&fa.tag===0&&!(de&6)&&ci();var t=de;de|=1;var n=yn.transition,r=ke;try{if(yn.transition=null,ke=1,e)return e()}finally{ke=r,yn.transition=n,de=t,!(de&6)&&$a()}}function Ay(){Yt=ti.current,Fe(ti)}function uo(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,w_(n)),et!==null)for(n=et.return;n!==null;){var r=n;switch(ly(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Jc();break;case 3:ji(),Fe(Gt),Fe(Tt),yy();break;case 5:vy(r);break;case 4:ji();break;case 13:Fe(He);break;case 19:Fe(He);break;case 10:fy(r.type._context);break;case 22:case 23:Ay()}n=n.return}if(ft=e,et=e=Sa(e.current,null),gt=Yt=t,ot=0,Rl=null,ky=Rf=go=0,zt=cl=null,Ya!==null){for(t=0;t<Ya.length;t++)if(n=Ya[t],r=n.interleaved,r!==null){n.interleaved=null;var a=r.next,o=n.pending;if(o!==null){var i=o.next;o.next=a,r.next=i}n.pending=r}Ya=null}return e}function s6(e,t){do{var n=et;try{if(py(),$c.current=lp,sp){for(var r=Ge.memoizedState;r!==null;){var a=r.queue;a!==null&&(a.pending=null),r=r.next}sp=!1}if(yo=0,ct=at=Ge=null,ll=!1,$l=0,Oy.current=null,n===null||n.return===null){ot=1,Rl=t,et=null;break}e:{var o=e,i=n.return,s=n,l=t;if(t=gt,s.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){var u=l,p=s,c=p.tag;if(!(p.mode&1)&&(c===0||c===11||c===15)){var f=p.alternate;f?(p.updateQueue=f.updateQueue,p.memoizedState=f.memoizedState,p.lanes=f.lanes):(p.updateQueue=null,p.memoizedState=null)}var d=rx(i);if(d!==null){d.flags&=-257,ax(d,i,s,o,t),d.mode&1&&nx(o,u,t),t=d,l=u;var h=t.updateQueue;if(h===null){var m=new Set;m.add(l),t.updateQueue=m}else h.add(l);break e}else{if(!(t&1)){nx(o,u,t),Ey();break e}l=Error(U(426))}}else if(ze&&s.mode&1){var g=rx(i);if(g!==null){!(g.flags&65536)&&(g.flags|=256),ax(g,i,s,o,t),uy($i(l,s));break e}}o=l=$i(l,s),ot!==4&&(ot=2),cl===null?cl=[o]:cl.push(o),o=i;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t;var v=U9(o,l,t);Y1(o,v);break e;case 1:s=l;var y=o.type,x=o.stateNode;if(!(o.flags&128)&&(typeof y.getDerivedStateFromError=="function"||x!==null&&typeof x.componentDidCatch=="function"&&(ba===null||!ba.has(x)))){o.flags|=65536,t&=-t,o.lanes|=t;var P=W9(o,s,t);Y1(o,P);break e}}o=o.return}while(o!==null)}c6(n)}catch(w){t=w,et===n&&n!==null&&(et=n=n.return);continue}break}while(!0)}function l6(){var e=up.current;return up.current=lp,e===null?lp:e}function Ey(){(ot===0||ot===3||ot===2)&&(ot=4),ft===null||!(go&268435455)&&!(Rf&268435455)||aa(ft,gt)}function fp(e,t){var n=de;de|=2;var r=l6();(ft!==e||gt!==t)&&(Pr=null,uo(e,t));do try{W_();break}catch(a){s6(e,a)}while(!0);if(py(),de=n,up.current=r,et!==null)throw Error(U(261));return ft=null,gt=0,ot}function W_(){for(;et!==null;)u6(et)}function q_(){for(;et!==null&&!yk();)u6(et)}function u6(e){var t=f6(e.alternate,e,Yt);e.memoizedProps=e.pendingProps,t===null?c6(e):et=t,Oy.current=null}function c6(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=F_(n,t),n!==null){n.flags&=32767,et=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{ot=6,et=null;return}}else if(n=L_(n,t,Yt),n!==null){et=n;return}if(t=t.sibling,t!==null){et=t;return}et=t=e}while(t!==null);ot===0&&(ot=5)}function Wa(e,t,n){var r=ke,a=yn.transition;try{yn.transition=null,ke=1,V_(e,t,n,r)}finally{yn.transition=a,ke=r}return null}function V_(e,t,n,r){do ci();while(fa!==null);if(de&6)throw Error(U(327));n=e.finishedWork;var a=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(U(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if(Ck(e,o),e===ft&&(et=ft=null,gt=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||rc||(rc=!0,d6(Vc,function(){return ci(),null})),o=(n.flags&15990)!==0,n.subtreeFlags&15990||o){o=yn.transition,yn.transition=null;var i=ke;ke=1;var s=de;de|=4,Oy.current=null,B_(e,n),a6(n,e),d_(Ch),Xc=!!_h,Ch=_h=null,e.current=n,H_(n),gk(),de=s,ke=i,yn.transition=o}else e.current=n;if(rc&&(rc=!1,fa=e,pp=a),o=e.pendingLanes,o===0&&(ba=null),bk(n.stateNode),Wt(e,Ke()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(cp)throw cp=!1,e=Vh,Vh=null,e;return pp&1&&e.tag!==0&&ci(),o=e.pendingLanes,o&1?e===Kh?pl++:(pl=0,Kh=e):pl=0,$a(),null}function ci(){if(fa!==null){var e=U5(pp),t=yn.transition,n=ke;try{if(yn.transition=null,ke=16>e?16:e,fa===null)var r=!1;else{if(e=fa,fa=null,pp=0,de&6)throw Error(U(331));var a=de;for(de|=4,Y=e.current;Y!==null;){var o=Y,i=o.child;if(Y.flags&16){var s=o.deletions;if(s!==null){for(var l=0;l<s.length;l++){var u=s[l];for(Y=u;Y!==null;){var p=Y;switch(p.tag){case 0:case 11:case 15:ul(8,p,o)}var c=p.child;if(c!==null)c.return=p,Y=c;else for(;Y!==null;){p=Y;var f=p.sibling,d=p.return;if(t6(p),p===u){Y=null;break}if(f!==null){f.return=d,Y=f;break}Y=d}}}var h=o.alternate;if(h!==null){var m=h.child;if(m!==null){h.child=null;do{var g=m.sibling;m.sibling=null,m=g}while(m!==null)}}Y=o}}if(o.subtreeFlags&2064&&i!==null)i.return=o,Y=i;else e:for(;Y!==null;){if(o=Y,o.flags&2048)switch(o.tag){case 0:case 11:case 15:ul(9,o,o.return)}var v=o.sibling;if(v!==null){v.return=o.return,Y=v;break e}Y=o.return}}var y=e.current;for(Y=y;Y!==null;){i=Y;var x=i.child;if(i.subtreeFlags&2064&&x!==null)x.return=i,Y=x;else e:for(i=y;Y!==null;){if(s=Y,s.flags&2048)try{switch(s.tag){case 0:case 11:case 15:Mf(9,s)}}catch(w){qe(s,s.return,w)}if(s===i){Y=null;break e}var P=s.sibling;if(P!==null){P.return=s.return,Y=P;break e}Y=s.return}}if(de=a,$a(),ur&&typeof ur.onPostCommitFiberRoot=="function")try{ur.onPostCommitFiberRoot(_f,e)}catch{}r=!0}return r}finally{ke=n,yn.transition=t}}return!1}function yx(e,t,n){t=$i(n,t),t=U9(e,t,1),e=wa(e,t,1),t=Dt(),e!==null&&(_u(e,1,t),Wt(e,t))}function qe(e,t,n){if(e.tag===3)yx(e,e,n);else for(;t!==null;){if(t.tag===3){yx(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(ba===null||!ba.has(r))){e=$i(n,e),e=W9(t,e,1),t=wa(t,e,1),e=Dt(),t!==null&&(_u(t,1,e),Wt(t,e));break}}t=t.return}}function K_(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=Dt(),e.pingedLanes|=e.suspendedLanes&n,ft===e&&(gt&n)===n&&(ot===4||ot===3&&(gt&130023424)===gt&&500>Ke()-_y?uo(e,0):ky|=n),Wt(e,t)}function p6(e,t){t===0&&(e.mode&1?(t=Vu,Vu<<=1,!(Vu&130023424)&&(Vu=4194304)):t=1);var n=Dt();e=Ir(e,t),e!==null&&(_u(e,t,n),Wt(e,n))}function X_(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),p6(e,n)}function Y_(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(U(314))}r!==null&&r.delete(t),p6(e,n)}var f6;f6=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Gt.current)Bt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Bt=!1,D_(e,t,n);Bt=!!(e.flags&131072)}else Bt=!1,ze&&t.flags&1048576&&v9(t,np,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mc(e,t),e=t.pendingProps;var a=Ai(t,Tt.current);ui(t,n),a=xy(null,t,r,e,a,n);var o=wy();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ut(r)?(o=!0,ep(t)):o=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,my(t),a.updater=Nf,t.stateNode=a,a._reactInternals=t,Ih(t,r,e,n),t=Fh(null,t,r,!0,o,n)):(t.tag=0,ze&&o&&sy(t),Nt(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mc(e,t),e=t.pendingProps,a=r._init,r=a(r._payload),t.type=r,a=t.tag=Z_(r),e=An(r,e),a){case 0:t=Lh(null,t,r,e,n);break e;case 1:t=sx(null,t,r,e,n);break e;case 11:t=ox(null,t,r,e,n);break e;case 14:t=ix(null,t,r,An(r.type,e),n);break e}throw Error(U(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:An(r,a),Lh(e,t,r,a,n);case 1:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:An(r,a),sx(e,t,r,a,n);case 3:e:{if(X9(t),e===null)throw Error(U(387));r=t.pendingProps,o=t.memoizedState,a=o.element,P9(e,t),op(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){a=$i(Error(U(423)),t),t=lx(e,t,r,n,a);break e}else if(r!==a){a=$i(Error(U(424)),t),t=lx(e,t,r,n,a);break e}else for(en=xa(t.stateNode.containerInfo.firstChild),nn=t,ze=!0,Rn=null,n=w9(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Ei(),r===a){t=Dr(e,t,n);break e}Nt(e,t,r,n)}t=t.child}return t;case 5:return S9(t),e===null&&Nh(t),r=t.type,a=t.pendingProps,o=e!==null?e.memoizedProps:null,i=a.children,Ah(r,a)?i=null:o!==null&&Ah(r,o)&&(t.flags|=32),K9(e,t),Nt(e,t,i,n),t.child;case 6:return e===null&&Nh(t),null;case 13:return Y9(e,t,n);case 4:return hy(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ti(t,null,r,n):Nt(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:An(r,a),ox(e,t,r,a,n);case 7:return Nt(e,t,t.pendingProps,n),t.child;case 8:return Nt(e,t,t.pendingProps.children,n),t.child;case 12:return Nt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,o=t.memoizedProps,i=a.value,$e(rp,r._currentValue),r._currentValue=i,o!==null)if(Un(o.value,i)){if(o.children===a.children&&!Gt.current){t=Dr(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){i=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=Tr(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var p=u.pending;p===null?l.next=l:(l.next=p.next,p.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Mh(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(U(341));i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Mh(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}Nt(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,ui(t,n),a=xn(a),r=r(a),t.flags|=1,Nt(e,t,r,n),t.child;case 14:return r=t.type,a=An(r,t.pendingProps),a=An(r.type,a),ix(e,t,r,a,n);case 15:return q9(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:An(r,a),Mc(e,t),t.tag=1,Ut(r)?(e=!0,ep(t)):e=!1,ui(t,n),G9(t,r,a),Ih(t,r,a,n),Fh(null,t,r,!0,e,n);case 19:return Q9(e,t,n);case 22:return V9(e,t,n)}throw Error(U(156,t.tag))};function d6(e,t){return z5(e,t)}function Q_(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 hn(e,t,n,r){return new Q_(e,t,n,r)}function Ty(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Z_(e){if(typeof e=="function")return Ty(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Xv)return 11;if(e===Yv)return 14}return 2}function Sa(e,t){var n=e.alternate;return n===null?(n=hn(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 Dc(e,t,n,r,a,o){var i=2;if(r=e,typeof e=="function")Ty(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Wo:return co(n.children,a,o,t);case Kv:i=8,a|=8;break;case ih:return e=hn(12,n,t,a|2),e.elementType=ih,e.lanes=o,e;case sh:return e=hn(13,n,t,a),e.elementType=sh,e.lanes=o,e;case lh:return e=hn(19,n,t,a),e.elementType=lh,e.lanes=o,e;case S5:return If(n,a,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case b5:i=10;break e;case P5:i=9;break e;case Xv:i=11;break e;case Yv:i=14;break e;case ea:i=16,r=null;break e}throw Error(U(130,e==null?e:typeof e,""))}return t=hn(i,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function co(e,t,n,r){return e=hn(7,e,r,t),e.lanes=n,e}function If(e,t,n,r){return e=hn(22,e,r,t),e.elementType=S5,e.lanes=n,e.stateNode={isHidden:!1},e}function ym(e,t,n){return e=hn(6,e,null,t),e.lanes=n,e}function gm(e,t,n){return t=hn(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function J_(e,t,n,r,a){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=Zd(0),this.expirationTimes=Zd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zd(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function jy(e,t,n,r,a,o,i,s,l){return e=new J_(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=hn(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},my(o),e}function eC(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Uo,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function m6(e){if(!e)return _a;e=e._reactInternals;e:{if(To(e)!==e||e.tag!==1)throw Error(U(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ut(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(U(171))}if(e.tag===1){var n=e.type;if(Ut(n))return m9(e,n,t)}return t}function h6(e,t,n,r,a,o,i,s,l){return e=jy(n,r,!0,e,a,o,i,s,l),e.context=m6(null),n=e.current,r=Dt(),a=Pa(n),o=Tr(r,a),o.callback=t??null,wa(n,o,a),e.current.lanes=a,_u(e,a,r),Wt(e,r),e}function Df(e,t,n,r){var a=t.current,o=Dt(),i=Pa(a);return n=m6(n),t.context===null?t.context=n:t.pendingContext=n,t=Tr(o,i),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=wa(a,t,i),e!==null&&(Gn(e,a,i,o),jc(e,a,i)),i}function dp(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function gx(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function $y(e,t){gx(e,t),(e=e.alternate)&&gx(e,t)}function tC(){return null}var v6=typeof reportError=="function"?reportError:function(e){console.error(e)};function Ny(e){this._internalRoot=e}Lf.prototype.render=Ny.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(U(409));Df(e,t,null,null)};Lf.prototype.unmount=Ny.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;xo(function(){Df(null,e,null,null)}),t[Rr]=null}};function Lf(e){this._internalRoot=e}Lf.prototype.unstable_scheduleHydration=function(e){if(e){var t=V5();e={blockedOn:null,target:e,priority:t};for(var n=0;n<ra.length&&t!==0&&t<ra[n].priority;n++);ra.splice(n,0,e),n===0&&X5(e)}};function My(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Ff(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function xx(){}function nC(e,t,n,r,a){if(a){if(typeof r=="function"){var o=r;r=function(){var u=dp(i);o.call(u)}}var i=h6(t,r,e,0,null,!1,!1,"",xx);return e._reactRootContainer=i,e[Rr]=i.current,Cl(e.nodeType===8?e.parentNode:e),xo(),i}for(;a=e.lastChild;)e.removeChild(a);if(typeof r=="function"){var s=r;r=function(){var u=dp(l);s.call(u)}}var l=jy(e,0,!1,null,null,!1,!1,"",xx);return e._reactRootContainer=l,e[Rr]=l.current,Cl(e.nodeType===8?e.parentNode:e),xo(function(){Df(t,l,n,r)}),l}function zf(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if(typeof a=="function"){var s=a;a=function(){var l=dp(i);s.call(l)}}Df(t,i,e,a)}else i=nC(n,t,e,a,r);return dp(i)}W5=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Js(t.pendingLanes);n!==0&&(Jv(t,n|1),Wt(t,Ke()),!(de&6)&&(Ni=Ke()+500,$a()))}break;case 13:xo(function(){var r=Ir(e,1);if(r!==null){var a=Dt();Gn(r,e,1,a)}}),$y(e,1)}};ey=function(e){if(e.tag===13){var t=Ir(e,134217728);if(t!==null){var n=Dt();Gn(t,e,134217728,n)}$y(e,134217728)}};q5=function(e){if(e.tag===13){var t=Pa(e),n=Ir(e,t);if(n!==null){var r=Dt();Gn(n,e,t,r)}$y(e,t)}};V5=function(){return ke};K5=function(e,t){var n=ke;try{return ke=e,t()}finally{ke=n}};gh=function(e,t,n){switch(t){case"input":if(ph(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=Tf(r);if(!a)throw Error(U(90));k5(r),ph(r,a)}}}break;case"textarea":C5(e,n);break;case"select":t=n.value,t!=null&&oi(e,!!n.multiple,t,!1)}};M5=Cy;R5=xo;var rC={usingClientEntryPoint:!1,Events:[Au,Xo,Tf,$5,N5,Cy]},Ls={findFiberByHostInstance:Xa,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},aC={bundleType:Ls.bundleType,version:Ls.version,rendererPackageName:Ls.rendererPackageName,rendererConfig:Ls.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Gr.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=L5(e),e===null?null:e.stateNode},findFiberByHostInstance:Ls.findFiberByHostInstance||tC,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ac=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ac.isDisabled&&ac.supportsFiber)try{_f=ac.inject(aC),ur=ac}catch{}}on.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=rC;on.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!My(t))throw Error(U(200));return eC(e,t,null,n)};on.createRoot=function(e,t){if(!My(e))throw Error(U(299));var n=!1,r="",a=v6;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(a=t.onRecoverableError)),t=jy(e,1,!1,null,null,n,!1,r,a),e[Rr]=t.current,Cl(e.nodeType===8?e.parentNode:e),new Ny(t)};on.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(U(188)):(e=Object.keys(e).join(","),Error(U(268,e)));return e=L5(t),e=e===null?null:e.stateNode,e};on.flushSync=function(e){return xo(e)};on.hydrate=function(e,t,n){if(!Ff(t))throw Error(U(200));return zf(null,e,t,!0,n)};on.hydrateRoot=function(e,t,n){if(!My(e))throw Error(U(405));var r=n!=null&&n.hydratedSources||null,a=!1,o="",i=v6;if(n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onRecoverableError!==void 0&&(i=n.onRecoverableError)),t=h6(t,null,e,1,n??null,a,!1,o,i),e[Rr]=t.current,Cl(e),r)for(e=0;e<r.length;e++)n=r[e],a=n._getVersion,a=a(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Lf(t)};on.render=function(e,t,n){if(!Ff(t))throw Error(U(200));return zf(null,e,t,!1,n)};on.unmountComponentAtNode=function(e){if(!Ff(e))throw Error(U(40));return e._reactRootContainer?(xo(function(){zf(null,null,e,!1,function(){e._reactRootContainer=null,e[Rr]=null})}),!0):!1};on.unstable_batchedUpdates=Cy;on.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Ff(n))throw Error(U(200));if(e==null||e._reactInternals===void 0)throw Error(U(38));return zf(e,t,n,!1,r)};on.version="18.3.1-next-f1338f8080-20240426";function y6(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(y6)}catch(e){console.error(e)}}y6(),y5.exports=on;var ps=y5.exports;const oC=Ae(ps);var wx=ps;Gc.createRoot=wx.createRoot,Gc.hydrateRoot=wx.hydrateRoot;function bx(e,[t,n]){return Math.min(n,Math.max(t,e))}function fe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e==null||e(a),n===!1||!a.defaultPrevented)return t==null?void 0:t(a)}}function fs(e,t=[]){let n=[];function r(o,i){const s=k.createContext(i),l=n.length;n=[...n,i];const u=c=>{var v;const{scope:f,children:d,...h}=c,m=((v=f==null?void 0:f[e])==null?void 0:v[l])||s,g=k.useMemo(()=>h,Object.values(h));return b.jsx(m.Provider,{value:g,children:d})};u.displayName=o+"Provider";function p(c,f){var m;const d=((m=f==null?void 0:f[e])==null?void 0:m[l])||s,h=k.useContext(d);if(h)return h;if(i!==void 0)return i;throw new Error(`\`${c}\` must be used within \`${o}\``)}return[u,p]}const a=()=>{const o=n.map(i=>k.createContext(i));return function(s){const l=(s==null?void 0:s[e])||o;return k.useMemo(()=>({[`__scope${e}`]:{...s,[e]:l}}),[s,l])}};return a.scopeName=e,[r,iC(a,...t)]}function iC(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(o){const i=r.reduce((s,{useScope:l,scopeName:u})=>{const c=l(o)[`__scope${u}`];return{...s,...c}},{});return k.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}function Px(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function g6(...e){return t=>{let n=!1;const r=e.map(a=>{const o=Px(a,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let a=0;a<r.length;a++){const o=r[a];typeof o=="function"?o():Px(e[a],null)}}}}function Ye(...e){return k.useCallback(g6(...e),e)}function Il(e){const t=lC(e),n=k.forwardRef((r,a)=>{const{children:o,...i}=r,s=k.Children.toArray(o),l=s.find(cC);if(l){const u=l.props.children,p=s.map(c=>c===l?k.Children.count(u)>1?k.Children.only(null):k.isValidElement(u)?u.props.children:null:c);return b.jsx(t,{...i,ref:a,children:k.isValidElement(u)?k.cloneElement(u,void 0,p):null})}return b.jsx(t,{...i,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}var sC=Il("Slot");function lC(e){const t=k.forwardRef((n,r)=>{const{children:a,...o}=n;if(k.isValidElement(a)){const i=fC(a),s=pC(o,a.props);return a.type!==k.Fragment&&(s.ref=r?g6(r,i):i),k.cloneElement(a,s)}return k.Children.count(a)>1?k.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var x6=Symbol("radix.slottable");function uC(e){const t=({children:n})=>b.jsx(b.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=x6,t}function cC(e){return k.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===x6}function pC(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...s)=>{const l=o(...s);return a(...s),l}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function fC(e){var r,a;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=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function w6(e){const t=e+"CollectionProvider",[n,r]=fs(t),[a,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=m=>{const{scope:g,children:v}=m,y=A.useRef(null),x=A.useRef(new Map).current;return b.jsx(a,{scope:g,itemMap:x,collectionRef:y,children:v})};i.displayName=t;const s=e+"CollectionSlot",l=Il(s),u=A.forwardRef((m,g)=>{const{scope:v,children:y}=m,x=o(s,v),P=Ye(g,x.collectionRef);return b.jsx(l,{ref:P,children:y})});u.displayName=s;const p=e+"CollectionItemSlot",c="data-radix-collection-item",f=Il(p),d=A.forwardRef((m,g)=>{const{scope:v,children:y,...x}=m,P=A.useRef(null),w=Ye(g,P),S=o(p,v);return A.useEffect(()=>(S.itemMap.set(P,{ref:P,...x}),()=>void S.itemMap.delete(P))),b.jsx(f,{[c]:"",ref:w,children:y})});d.displayName=p;function h(m){const g=o(e+"CollectionConsumer",m);return A.useCallback(()=>{const y=g.collectionRef.current;if(!y)return[];const x=Array.from(y.querySelectorAll(`[${c}]`));return Array.from(g.itemMap.values()).sort((S,O)=>x.indexOf(S.ref.current)-x.indexOf(O.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:i,Slot:u,ItemSlot:d},h,r]}var dC=k.createContext(void 0);function Ry(e){const t=k.useContext(dC);return e||t||"ltr"}var mC=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ee=mC.reduce((e,t)=>{const n=Il(`Primitive.${t}`),r=k.forwardRef((a,o)=>{const{asChild:i,...s}=a,l=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),b.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function hC(e,t){e&&ps.flushSync(()=>e.dispatchEvent(t))}function Ca(e){const t=k.useRef(e);return k.useEffect(()=>{t.current=e}),k.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function vC(e,t=globalThis==null?void 0:globalThis.document){const n=Ca(e);k.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var yC="DismissableLayer",Qh="dismissableLayer.update",gC="dismissableLayer.pointerDownOutside",xC="dismissableLayer.focusOutside",Sx,b6=k.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Iy=k.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:i,onDismiss:s,...l}=e,u=k.useContext(b6),[p,c]=k.useState(null),f=(p==null?void 0:p.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,d]=k.useState({}),h=Ye(t,O=>c(O)),m=Array.from(u.layers),[g]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=m.indexOf(g),y=p?m.indexOf(p):-1,x=u.layersWithOutsidePointerEventsDisabled.size>0,P=y>=v,w=PC(O=>{const _=O.target,C=[...u.branches].some(j=>j.contains(_));!P||C||(a==null||a(O),i==null||i(O),O.defaultPrevented||s==null||s())},f),S=SC(O=>{const _=O.target;[...u.branches].some(j=>j.contains(_))||(o==null||o(O),i==null||i(O),O.defaultPrevented||s==null||s())},f);return vC(O=>{y===u.layers.size-1&&(r==null||r(O),!O.defaultPrevented&&s&&(O.preventDefault(),s()))},f),k.useEffect(()=>{if(p)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Sx=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(p)),u.layers.add(p),Ox(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=Sx)}},[p,f,n,u]),k.useEffect(()=>()=>{p&&(u.layers.delete(p),u.layersWithOutsidePointerEventsDisabled.delete(p),Ox())},[p,u]),k.useEffect(()=>{const O=()=>d({});return document.addEventListener(Qh,O),()=>document.removeEventListener(Qh,O)},[]),b.jsx(Ee.div,{...l,ref:h,style:{pointerEvents:x?P?"auto":"none":void 0,...e.style},onFocusCapture:fe(e.onFocusCapture,S.onFocusCapture),onBlurCapture:fe(e.onBlurCapture,S.onBlurCapture),onPointerDownCapture:fe(e.onPointerDownCapture,w.onPointerDownCapture)})});Iy.displayName=yC;var wC="DismissableLayerBranch",bC=k.forwardRef((e,t)=>{const n=k.useContext(b6),r=k.useRef(null),a=Ye(t,r);return k.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),b.jsx(Ee.div,{...e,ref:a})});bC.displayName=wC;function PC(e,t=globalThis==null?void 0:globalThis.document){const n=Ca(e),r=k.useRef(!1),a=k.useRef(()=>{});return k.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let l=function(){P6(gC,n,u,{discrete:!0})};const u={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=l,t.addEventListener("click",a.current,{once:!0})):l()}else t.removeEventListener("click",a.current);r.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",o),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function SC(e,t=globalThis==null?void 0:globalThis.document){const n=Ca(e),r=k.useRef(!1);return k.useEffect(()=>{const a=o=>{o.target&&!r.current&&P6(xC,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Ox(){const e=new CustomEvent(Qh);document.dispatchEvent(e)}function P6(e,t,n,{discrete:r}){const a=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?hC(a,o):a.dispatchEvent(o)}var xm=0;function OC(){k.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??kx()),document.body.insertAdjacentElement("beforeend",e[1]??kx()),xm++,()=>{xm===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),xm--}},[])}function kx(){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 wm="focusScope.autoFocusOnMount",bm="focusScope.autoFocusOnUnmount",_x={bubbles:!1,cancelable:!0},kC="FocusScope",S6=k.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:o,...i}=e,[s,l]=k.useState(null),u=Ca(a),p=Ca(o),c=k.useRef(null),f=Ye(t,m=>l(m)),d=k.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;k.useEffect(()=>{if(r){let m=function(x){if(d.paused||!s)return;const P=x.target;s.contains(P)?c.current=P:Qr(c.current,{select:!0})},g=function(x){if(d.paused||!s)return;const P=x.relatedTarget;P!==null&&(s.contains(P)||Qr(c.current,{select:!0}))},v=function(x){if(document.activeElement===document.body)for(const w of x)w.removedNodes.length>0&&Qr(s)};document.addEventListener("focusin",m),document.addEventListener("focusout",g);const y=new MutationObserver(v);return s&&y.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",m),document.removeEventListener("focusout",g),y.disconnect()}}},[r,s,d.paused]),k.useEffect(()=>{if(s){Ax.add(d);const m=document.activeElement;if(!s.contains(m)){const v=new CustomEvent(wm,_x);s.addEventListener(wm,u),s.dispatchEvent(v),v.defaultPrevented||(_C(jC(O6(s)),{select:!0}),document.activeElement===m&&Qr(s))}return()=>{s.removeEventListener(wm,u),setTimeout(()=>{const v=new CustomEvent(bm,_x);s.addEventListener(bm,p),s.dispatchEvent(v),v.defaultPrevented||Qr(m??document.body,{select:!0}),s.removeEventListener(bm,p),Ax.remove(d)},0)}}},[s,u,p,d]);const h=k.useCallback(m=>{if(!n&&!r||d.paused)return;const g=m.key==="Tab"&&!m.altKey&&!m.ctrlKey&&!m.metaKey,v=document.activeElement;if(g&&v){const y=m.currentTarget,[x,P]=CC(y);x&&P?!m.shiftKey&&v===P?(m.preventDefault(),n&&Qr(x,{select:!0})):m.shiftKey&&v===x&&(m.preventDefault(),n&&Qr(P,{select:!0})):v===y&&m.preventDefault()}},[n,r,d.paused]);return b.jsx(Ee.div,{tabIndex:-1,...i,ref:f,onKeyDown:h})});S6.displayName=kC;function _C(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Qr(r,{select:t}),document.activeElement!==n)return}function CC(e){const t=O6(e),n=Cx(t,e),r=Cx(t.reverse(),e);return[n,r]}function O6(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Cx(e,t){for(const n of e)if(!AC(n,{upTo:t}))return n}function AC(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 EC(e){return e instanceof HTMLInputElement&&"select"in e}function Qr(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&EC(e)&&t&&e.select()}}var Ax=TC();function TC(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Ex(e,t),e.unshift(t)},remove(t){var n;e=Ex(e,t),(n=e[0])==null||n.resume()}}}function Ex(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function jC(e){return e.filter(t=>t.tagName!=="A")}var jt=globalThis!=null&&globalThis.document?k.useLayoutEffect:()=>{},$C=h5[" useId ".trim().toString()]||(()=>{}),NC=0;function Tu(e){const[t,n]=k.useState($C());return jt(()=>{n(r=>r??String(NC++))},[e]),t?`radix-${t}`:""}const MC=["top","right","bottom","left"],Aa=Math.min,Zt=Math.max,mp=Math.round,oc=Math.floor,pr=e=>({x:e,y:e}),RC={left:"right",right:"left",bottom:"top",top:"bottom"},IC={start:"end",end:"start"};function Zh(e,t,n){return Zt(e,Aa(t,n))}function Lr(e,t){return typeof e=="function"?e(t):e}function Fr(e){return e.split("-")[0]}function ds(e){return e.split("-")[1]}function Dy(e){return e==="x"?"y":"x"}function Ly(e){return e==="y"?"height":"width"}const DC=new Set(["top","bottom"]);function ar(e){return DC.has(Fr(e))?"y":"x"}function Fy(e){return Dy(ar(e))}function LC(e,t,n){n===void 0&&(n=!1);const r=ds(e),a=Fy(e),o=Ly(a);let i=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(i=hp(i)),[i,hp(i)]}function FC(e){const t=hp(e);return[Jh(e),t,Jh(t)]}function Jh(e){return e.replace(/start|end/g,t=>IC[t])}const Tx=["left","right"],jx=["right","left"],zC=["top","bottom"],BC=["bottom","top"];function HC(e,t,n){switch(e){case"top":case"bottom":return n?t?jx:Tx:t?Tx:jx;case"left":case"right":return t?zC:BC;default:return[]}}function GC(e,t,n,r){const a=ds(e);let o=HC(Fr(e),n==="start",r);return a&&(o=o.map(i=>i+"-"+a),t&&(o=o.concat(o.map(Jh)))),o}function hp(e){return e.replace(/left|right|bottom|top/g,t=>RC[t])}function UC(e){return{top:0,right:0,bottom:0,left:0,...e}}function k6(e){return typeof e!="number"?UC(e):{top:e,right:e,bottom:e,left:e}}function vp(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function $x(e,t,n){let{reference:r,floating:a}=e;const o=ar(t),i=Fy(t),s=Ly(i),l=Fr(t),u=o==="y",p=r.x+r.width/2-a.width/2,c=r.y+r.height/2-a.height/2,f=r[s]/2-a[s]/2;let d;switch(l){case"top":d={x:p,y:r.y-a.height};break;case"bottom":d={x:p,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:c};break;case"left":d={x:r.x-a.width,y:c};break;default:d={x:r.x,y:r.y}}switch(ds(t)){case"start":d[i]-=f*(n&&u?-1:1);break;case"end":d[i]+=f*(n&&u?-1:1);break}return d}const WC=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:o=[],platform:i}=n,s=o.filter(Boolean),l=await(i.isRTL==null?void 0:i.isRTL(t));let u=await i.getElementRects({reference:e,floating:t,strategy:a}),{x:p,y:c}=$x(u,r,l),f=r,d={},h=0;for(let m=0;m<s.length;m++){const{name:g,fn:v}=s[m],{x:y,y:x,data:P,reset:w}=await v({x:p,y:c,initialPlacement:r,placement:f,strategy:a,middlewareData:d,rects:u,platform:i,elements:{reference:e,floating:t}});p=y??p,c=x??c,d={...d,[g]:{...d[g],...P}},w&&h<=50&&(h++,typeof w=="object"&&(w.placement&&(f=w.placement),w.rects&&(u=w.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:a}):w.rects),{x:p,y:c}=$x(u,f,l)),m=-1)}return{x:p,y:c,placement:f,strategy:a,middlewareData:d}};async function Dl(e,t){var n;t===void 0&&(t={});const{x:r,y:a,platform:o,rects:i,elements:s,strategy:l}=e,{boundary:u="clippingAncestors",rootBoundary:p="viewport",elementContext:c="floating",altBoundary:f=!1,padding:d=0}=Lr(t,e),h=k6(d),g=s[f?c==="floating"?"reference":"floating":c],v=vp(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(g)))==null||n?g:g.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:p,strategy:l})),y=c==="floating"?{x:r,y:a,width:i.floating.width,height:i.floating.height}:i.reference,x=await(o.getOffsetParent==null?void 0:o.getOffsetParent(s.floating)),P=await(o.isElement==null?void 0:o.isElement(x))?await(o.getScale==null?void 0:o.getScale(x))||{x:1,y:1}:{x:1,y:1},w=vp(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:y,offsetParent:x,strategy:l}):y);return{top:(v.top-w.top+h.top)/P.y,bottom:(w.bottom-v.bottom+h.bottom)/P.y,left:(v.left-w.left+h.left)/P.x,right:(w.right-v.right+h.right)/P.x}}const qC=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:o,platform:i,elements:s,middlewareData:l}=t,{element:u,padding:p=0}=Lr(e,t)||{};if(u==null)return{};const c=k6(p),f={x:n,y:r},d=Fy(a),h=Ly(d),m=await i.getDimensions(u),g=d==="y",v=g?"top":"left",y=g?"bottom":"right",x=g?"clientHeight":"clientWidth",P=o.reference[h]+o.reference[d]-f[d]-o.floating[h],w=f[d]-o.reference[d],S=await(i.getOffsetParent==null?void 0:i.getOffsetParent(u));let O=S?S[x]:0;(!O||!await(i.isElement==null?void 0:i.isElement(S)))&&(O=s.floating[x]||o.floating[h]);const _=P/2-w/2,C=O/2-m[h]/2-1,j=Aa(c[v],C),E=Aa(c[y],C),T=j,N=O-m[h]-E,M=O/2-m[h]/2+_,I=Zh(T,M,N),R=!l.arrow&&ds(a)!=null&&M!==I&&o.reference[h]/2-(M<T?j:E)-m[h]/2<0,L=R?M<T?M-T:M-N:0;return{[d]:f[d]+L,data:{[d]:I,centerOffset:M-I-L,...R&&{alignmentOffset:L}},reset:R}}}),VC=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:a,middlewareData:o,rects:i,initialPlacement:s,platform:l,elements:u}=t,{mainAxis:p=!0,crossAxis:c=!0,fallbackPlacements:f,fallbackStrategy:d="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:m=!0,...g}=Lr(e,t);if((n=o.arrow)!=null&&n.alignmentOffset)return{};const v=Fr(a),y=ar(s),x=Fr(s)===s,P=await(l.isRTL==null?void 0:l.isRTL(u.floating)),w=f||(x||!m?[hp(s)]:FC(s)),S=h!=="none";!f&&S&&w.push(...GC(s,m,h,P));const O=[s,...w],_=await Dl(t,g),C=[];let j=((r=o.flip)==null?void 0:r.overflows)||[];if(p&&C.push(_[v]),c){const M=LC(a,i,P);C.push(_[M[0]],_[M[1]])}if(j=[...j,{placement:a,overflows:C}],!C.every(M=>M<=0)){var E,T;const M=(((E=o.flip)==null?void 0:E.index)||0)+1,I=O[M];if(I&&(!(c==="alignment"?y!==ar(I):!1)||j.every($=>$.overflows[0]>0&&ar($.placement)===y)))return{data:{index:M,overflows:j},reset:{placement:I}};let R=(T=j.filter(L=>L.overflows[0]<=0).sort((L,$)=>L.overflows[1]-$.overflows[1])[0])==null?void 0:T.placement;if(!R)switch(d){case"bestFit":{var N;const L=(N=j.filter($=>{if(S){const D=ar($.placement);return D===y||D==="y"}return!0}).map($=>[$.placement,$.overflows.filter(D=>D>0).reduce((D,H)=>D+H,0)]).sort(($,D)=>$[1]-D[1])[0])==null?void 0:N[0];L&&(R=L);break}case"initialPlacement":R=s;break}if(a!==R)return{reset:{placement:R}}}return{}}}};function Nx(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Mx(e){return MC.some(t=>e[t]>=0)}const KC=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=Lr(e,t);switch(r){case"referenceHidden":{const o=await Dl(t,{...a,elementContext:"reference"}),i=Nx(o,n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:Mx(i)}}}case"escaped":{const o=await Dl(t,{...a,altBoundary:!0}),i=Nx(o,n.floating);return{data:{escapedOffsets:i,escaped:Mx(i)}}}default:return{}}}}},_6=new Set(["left","top"]);async function XC(e,t){const{placement:n,platform:r,elements:a}=e,o=await(r.isRTL==null?void 0:r.isRTL(a.floating)),i=Fr(n),s=ds(n),l=ar(n)==="y",u=_6.has(i)?-1:1,p=o&&l?-1:1,c=Lr(t,e);let{mainAxis:f,crossAxis:d,alignmentAxis:h}=typeof c=="number"?{mainAxis:c,crossAxis:0,alignmentAxis:null}:{mainAxis:c.mainAxis||0,crossAxis:c.crossAxis||0,alignmentAxis:c.alignmentAxis};return s&&typeof h=="number"&&(d=s==="end"?h*-1:h),l?{x:d*p,y:f*u}:{x:f*u,y:d*p}}const YC=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:o,placement:i,middlewareData:s}=t,l=await XC(t,e);return i===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:a+l.x,y:o+l.y,data:{...l,placement:i}}}}},QC=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:o=!0,crossAxis:i=!1,limiter:s={fn:g=>{let{x:v,y}=g;return{x:v,y}}},...l}=Lr(e,t),u={x:n,y:r},p=await Dl(t,l),c=ar(Fr(a)),f=Dy(c);let d=u[f],h=u[c];if(o){const g=f==="y"?"top":"left",v=f==="y"?"bottom":"right",y=d+p[g],x=d-p[v];d=Zh(y,d,x)}if(i){const g=c==="y"?"top":"left",v=c==="y"?"bottom":"right",y=h+p[g],x=h-p[v];h=Zh(y,h,x)}const m=s.fn({...t,[f]:d,[c]:h});return{...m,data:{x:m.x-n,y:m.y-r,enabled:{[f]:o,[c]:i}}}}}},ZC=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:o,middlewareData:i}=t,{offset:s=0,mainAxis:l=!0,crossAxis:u=!0}=Lr(e,t),p={x:n,y:r},c=ar(a),f=Dy(c);let d=p[f],h=p[c];const m=Lr(s,t),g=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(l){const x=f==="y"?"height":"width",P=o.reference[f]-o.floating[x]+g.mainAxis,w=o.reference[f]+o.reference[x]-g.mainAxis;d<P?d=P:d>w&&(d=w)}if(u){var v,y;const x=f==="y"?"width":"height",P=_6.has(Fr(a)),w=o.reference[c]-o.floating[x]+(P&&((v=i.offset)==null?void 0:v[c])||0)+(P?0:g.crossAxis),S=o.reference[c]+o.reference[x]+(P?0:((y=i.offset)==null?void 0:y[c])||0)-(P?g.crossAxis:0);h<w?h=w:h>S&&(h=S)}return{[f]:d,[c]:h}}}},JC=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:o,platform:i,elements:s}=t,{apply:l=()=>{},...u}=Lr(e,t),p=await Dl(t,u),c=Fr(a),f=ds(a),d=ar(a)==="y",{width:h,height:m}=o.floating;let g,v;c==="top"||c==="bottom"?(g=c,v=f===(await(i.isRTL==null?void 0:i.isRTL(s.floating))?"start":"end")?"left":"right"):(v=c,g=f==="end"?"top":"bottom");const y=m-p.top-p.bottom,x=h-p.left-p.right,P=Aa(m-p[g],y),w=Aa(h-p[v],x),S=!t.middlewareData.shift;let O=P,_=w;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(_=x),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(O=y),S&&!f){const j=Zt(p.left,0),E=Zt(p.right,0),T=Zt(p.top,0),N=Zt(p.bottom,0);d?_=h-2*(j!==0||E!==0?j+E:Zt(p.left,p.right)):O=m-2*(T!==0||N!==0?T+N:Zt(p.top,p.bottom))}await l({...t,availableWidth:_,availableHeight:O});const C=await i.getDimensions(s.floating);return h!==C.width||m!==C.height?{reset:{rects:!0}}:{}}}};function Bf(){return typeof window<"u"}function ms(e){return C6(e)?(e.nodeName||"").toLowerCase():"#document"}function rn(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function yr(e){var t;return(t=(C6(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function C6(e){return Bf()?e instanceof Node||e instanceof rn(e).Node:!1}function Wn(e){return Bf()?e instanceof Element||e instanceof rn(e).Element:!1}function hr(e){return Bf()?e instanceof HTMLElement||e instanceof rn(e).HTMLElement:!1}function Rx(e){return!Bf()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof rn(e).ShadowRoot}const eA=new Set(["inline","contents"]);function ju(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=qn(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!eA.has(a)}const tA=new Set(["table","td","th"]);function nA(e){return tA.has(ms(e))}const rA=[":popover-open",":modal"];function Hf(e){return rA.some(t=>{try{return e.matches(t)}catch{return!1}})}const aA=["transform","translate","scale","rotate","perspective"],oA=["transform","translate","scale","rotate","perspective","filter"],iA=["paint","layout","strict","content"];function zy(e){const t=By(),n=Wn(e)?qn(e):e;return aA.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)||oA.some(r=>(n.willChange||"").includes(r))||iA.some(r=>(n.contain||"").includes(r))}function sA(e){let t=Ea(e);for(;hr(t)&&!Mi(t);){if(zy(t))return t;if(Hf(t))return null;t=Ea(t)}return null}function By(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const lA=new Set(["html","body","#document"]);function Mi(e){return lA.has(ms(e))}function qn(e){return rn(e).getComputedStyle(e)}function Gf(e){return Wn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ea(e){if(ms(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Rx(e)&&e.host||yr(e);return Rx(t)?t.host:t}function A6(e){const t=Ea(e);return Mi(t)?e.ownerDocument?e.ownerDocument.body:e.body:hr(t)&&ju(t)?t:A6(t)}function Ll(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=A6(e),o=a===((r=e.ownerDocument)==null?void 0:r.body),i=rn(a);if(o){const s=e0(i);return t.concat(i,i.visualViewport||[],ju(a)?a:[],s&&n?Ll(s):[])}return t.concat(a,Ll(a,[],n))}function e0(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function E6(e){const t=qn(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=hr(e),o=a?e.offsetWidth:n,i=a?e.offsetHeight:r,s=mp(n)!==o||mp(r)!==i;return s&&(n=o,r=i),{width:n,height:r,$:s}}function Hy(e){return Wn(e)?e:e.contextElement}function pi(e){const t=Hy(e);if(!hr(t))return pr(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:o}=E6(t);let i=(o?mp(n.width):n.width)/r,s=(o?mp(n.height):n.height)/a;return(!i||!Number.isFinite(i))&&(i=1),(!s||!Number.isFinite(s))&&(s=1),{x:i,y:s}}const uA=pr(0);function T6(e){const t=rn(e);return!By()||!t.visualViewport?uA:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function cA(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==rn(e)?!1:t}function wo(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),o=Hy(e);let i=pr(1);t&&(r?Wn(r)&&(i=pi(r)):i=pi(e));const s=cA(o,n,r)?T6(o):pr(0);let l=(a.left+s.x)/i.x,u=(a.top+s.y)/i.y,p=a.width/i.x,c=a.height/i.y;if(o){const f=rn(o),d=r&&Wn(r)?rn(r):r;let h=f,m=e0(h);for(;m&&r&&d!==h;){const g=pi(m),v=m.getBoundingClientRect(),y=qn(m),x=v.left+(m.clientLeft+parseFloat(y.paddingLeft))*g.x,P=v.top+(m.clientTop+parseFloat(y.paddingTop))*g.y;l*=g.x,u*=g.y,p*=g.x,c*=g.y,l+=x,u+=P,h=rn(m),m=e0(h)}}return vp({width:p,height:c,x:l,y:u})}function Gy(e,t){const n=Gf(e).scrollLeft;return t?t.left+n:wo(yr(e)).left+n}function j6(e,t,n){n===void 0&&(n=!1);const r=e.getBoundingClientRect(),a=r.left+t.scrollLeft-(n?0:Gy(e,r)),o=r.top+t.scrollTop;return{x:a,y:o}}function pA(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const o=a==="fixed",i=yr(r),s=t?Hf(t.floating):!1;if(r===i||s&&o)return n;let l={scrollLeft:0,scrollTop:0},u=pr(1);const p=pr(0),c=hr(r);if((c||!c&&!o)&&((ms(r)!=="body"||ju(i))&&(l=Gf(r)),hr(r))){const d=wo(r);u=pi(r),p.x=d.x+r.clientLeft,p.y=d.y+r.clientTop}const f=i&&!c&&!o?j6(i,l,!0):pr(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+p.x+f.x,y:n.y*u.y-l.scrollTop*u.y+p.y+f.y}}function fA(e){return Array.from(e.getClientRects())}function dA(e){const t=yr(e),n=Gf(e),r=e.ownerDocument.body,a=Zt(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=Zt(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+Gy(e);const s=-n.scrollTop;return qn(r).direction==="rtl"&&(i+=Zt(t.clientWidth,r.clientWidth)-a),{width:a,height:o,x:i,y:s}}function mA(e,t){const n=rn(e),r=yr(e),a=n.visualViewport;let o=r.clientWidth,i=r.clientHeight,s=0,l=0;if(a){o=a.width,i=a.height;const u=By();(!u||u&&t==="fixed")&&(s=a.offsetLeft,l=a.offsetTop)}return{width:o,height:i,x:s,y:l}}const hA=new Set(["absolute","fixed"]);function vA(e,t){const n=wo(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,o=hr(e)?pi(e):pr(1),i=e.clientWidth*o.x,s=e.clientHeight*o.y,l=a*o.x,u=r*o.y;return{width:i,height:s,x:l,y:u}}function Ix(e,t,n){let r;if(t==="viewport")r=mA(e,n);else if(t==="document")r=dA(yr(e));else if(Wn(t))r=vA(t,n);else{const a=T6(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return vp(r)}function $6(e,t){const n=Ea(e);return n===t||!Wn(n)||Mi(n)?!1:qn(n).position==="fixed"||$6(n,t)}function yA(e,t){const n=t.get(e);if(n)return n;let r=Ll(e,[],!1).filter(s=>Wn(s)&&ms(s)!=="body"),a=null;const o=qn(e).position==="fixed";let i=o?Ea(e):e;for(;Wn(i)&&!Mi(i);){const s=qn(i),l=zy(i);!l&&s.position==="fixed"&&(a=null),(o?!l&&!a:!l&&s.position==="static"&&!!a&&hA.has(a.position)||ju(i)&&!l&&$6(e,i))?r=r.filter(p=>p!==i):a=s,i=Ea(i)}return t.set(e,r),r}function gA(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const i=[...n==="clippingAncestors"?Hf(t)?[]:yA(t,this._c):[].concat(n),r],s=i[0],l=i.reduce((u,p)=>{const c=Ix(t,p,a);return u.top=Zt(c.top,u.top),u.right=Aa(c.right,u.right),u.bottom=Aa(c.bottom,u.bottom),u.left=Zt(c.left,u.left),u},Ix(t,s,a));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function xA(e){const{width:t,height:n}=E6(e);return{width:t,height:n}}function wA(e,t,n){const r=hr(t),a=yr(t),o=n==="fixed",i=wo(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const l=pr(0);function u(){l.x=Gy(a)}if(r||!r&&!o)if((ms(t)!=="body"||ju(a))&&(s=Gf(t)),r){const d=wo(t,!0,o,t);l.x=d.x+t.clientLeft,l.y=d.y+t.clientTop}else a&&u();o&&!r&&a&&u();const p=a&&!r&&!o?j6(a,s):pr(0),c=i.left+s.scrollLeft-l.x-p.x,f=i.top+s.scrollTop-l.y-p.y;return{x:c,y:f,width:i.width,height:i.height}}function Pm(e){return qn(e).position==="static"}function Dx(e,t){if(!hr(e)||qn(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return yr(e)===n&&(n=n.ownerDocument.body),n}function N6(e,t){const n=rn(e);if(Hf(e))return n;if(!hr(e)){let a=Ea(e);for(;a&&!Mi(a);){if(Wn(a)&&!Pm(a))return a;a=Ea(a)}return n}let r=Dx(e,t);for(;r&&nA(r)&&Pm(r);)r=Dx(r,t);return r&&Mi(r)&&Pm(r)&&!zy(r)?n:r||sA(e)||n}const bA=async function(e){const t=this.getOffsetParent||N6,n=this.getDimensions,r=await n(e.floating);return{reference:wA(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function PA(e){return qn(e).direction==="rtl"}const SA={convertOffsetParentRelativeRectToViewportRelativeRect:pA,getDocumentElement:yr,getClippingRect:gA,getOffsetParent:N6,getElementRects:bA,getClientRects:fA,getDimensions:xA,getScale:pi,isElement:Wn,isRTL:PA};function M6(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function OA(e,t){let n=null,r;const a=yr(e);function o(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function i(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();const u=e.getBoundingClientRect(),{left:p,top:c,width:f,height:d}=u;if(s||t(),!f||!d)return;const h=oc(c),m=oc(a.clientWidth-(p+f)),g=oc(a.clientHeight-(c+d)),v=oc(p),x={rootMargin:-h+"px "+-m+"px "+-g+"px "+-v+"px",threshold:Zt(0,Aa(1,l))||1};let P=!0;function w(S){const O=S[0].intersectionRatio;if(O!==l){if(!P)return i();O?i(!1,O):r=setTimeout(()=>{i(!1,1e-7)},1e3)}O===1&&!M6(u,e.getBoundingClientRect())&&i(),P=!1}try{n=new IntersectionObserver(w,{...x,root:a.ownerDocument})}catch{n=new IntersectionObserver(w,x)}n.observe(e)}return i(!0),o}function kA(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:o=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,u=Hy(e),p=a||o?[...u?Ll(u):[],...Ll(t)]:[];p.forEach(v=>{a&&v.addEventListener("scroll",n,{passive:!0}),o&&v.addEventListener("resize",n)});const c=u&&s?OA(u,n):null;let f=-1,d=null;i&&(d=new ResizeObserver(v=>{let[y]=v;y&&y.target===u&&d&&(d.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var x;(x=d)==null||x.observe(t)})),n()}),u&&!l&&d.observe(u),d.observe(t));let h,m=l?wo(e):null;l&&g();function g(){const v=wo(e);m&&!M6(m,v)&&n(),m=v,h=requestAnimationFrame(g)}return n(),()=>{var v;p.forEach(y=>{a&&y.removeEventListener("scroll",n),o&&y.removeEventListener("resize",n)}),c==null||c(),(v=d)==null||v.disconnect(),d=null,l&&cancelAnimationFrame(h)}}const _A=YC,CA=QC,AA=VC,EA=JC,TA=KC,Lx=qC,jA=ZC,$A=(e,t,n)=>{const r=new Map,a={platform:SA,...n},o={...a.platform,_c:r};return WC(e,t,{...a,platform:o})};var NA=typeof document<"u",MA=function(){},Lc=NA?k.useLayoutEffect:MA;function yp(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,a;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(!yp(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const o=a[r];if(!(o==="_owner"&&e.$$typeof)&&!yp(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function R6(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Fx(e,t){const n=R6(e);return Math.round(t*n)/n}function Sm(e){const t=k.useRef(e);return Lc(()=>{t.current=e}),t}function RA(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:o,floating:i}={},transform:s=!0,whileElementsMounted:l,open:u}=e,[p,c]=k.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,d]=k.useState(r);yp(f,r)||d(r);const[h,m]=k.useState(null),[g,v]=k.useState(null),y=k.useCallback($=>{$!==S.current&&(S.current=$,m($))},[]),x=k.useCallback($=>{$!==O.current&&(O.current=$,v($))},[]),P=o||h,w=i||g,S=k.useRef(null),O=k.useRef(null),_=k.useRef(p),C=l!=null,j=Sm(l),E=Sm(a),T=Sm(u),N=k.useCallback(()=>{if(!S.current||!O.current)return;const $={placement:t,strategy:n,middleware:f};E.current&&($.platform=E.current),$A(S.current,O.current,$).then(D=>{const H={...D,isPositioned:T.current!==!1};M.current&&!yp(_.current,H)&&(_.current=H,ps.flushSync(()=>{c(H)}))})},[f,t,n,E,T]);Lc(()=>{u===!1&&_.current.isPositioned&&(_.current.isPositioned=!1,c($=>({...$,isPositioned:!1})))},[u]);const M=k.useRef(!1);Lc(()=>(M.current=!0,()=>{M.current=!1}),[]),Lc(()=>{if(P&&(S.current=P),w&&(O.current=w),P&&w){if(j.current)return j.current(P,w,N);N()}},[P,w,N,j,C]);const I=k.useMemo(()=>({reference:S,floating:O,setReference:y,setFloating:x}),[y,x]),R=k.useMemo(()=>({reference:P,floating:w}),[P,w]),L=k.useMemo(()=>{const $={position:n,left:0,top:0};if(!R.floating)return $;const D=Fx(R.floating,p.x),H=Fx(R.floating,p.y);return s?{...$,transform:"translate("+D+"px, "+H+"px)",...R6(R.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:D,top:H}},[n,s,R.floating,p.x,p.y]);return k.useMemo(()=>({...p,update:N,refs:I,elements:R,floatingStyles:L}),[p,N,I,R,L])}const IA=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Lx({element:r.current,padding:a}).fn(n):{}:r?Lx({element:r,padding:a}).fn(n):{}}}},DA=(e,t)=>({..._A(e),options:[e,t]}),LA=(e,t)=>({...CA(e),options:[e,t]}),FA=(e,t)=>({...jA(e),options:[e,t]}),zA=(e,t)=>({...AA(e),options:[e,t]}),BA=(e,t)=>({...EA(e),options:[e,t]}),HA=(e,t)=>({...TA(e),options:[e,t]}),GA=(e,t)=>({...IA(e),options:[e,t]});var UA="Arrow",I6=k.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...o}=e;return b.jsx(Ee.svg,{...o,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:b.jsx("polygon",{points:"0,0 30,0 15,10"})})});I6.displayName=UA;var WA=I6;function qA(e){const[t,n]=k.useState(void 0);return jt(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const o=a[0];let i,s;if("borderBoxSize"in o){const l=o.borderBoxSize,u=Array.isArray(l)?l[0]:l;i=u.inlineSize,s=u.blockSize}else i=e.offsetWidth,s=e.offsetHeight;n({width:i,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Uy="Popper",[D6,Uf]=fs(Uy),[VA,L6]=D6(Uy),F6=e=>{const{__scopePopper:t,children:n}=e,[r,a]=k.useState(null);return b.jsx(VA,{scope:t,anchor:r,onAnchorChange:a,children:n})};F6.displayName=Uy;var z6="PopperAnchor",B6=k.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,o=L6(z6,n),i=k.useRef(null),s=Ye(t,i);return k.useEffect(()=>{o.onAnchorChange((r==null?void 0:r.current)||i.current)}),r?null:b.jsx(Ee.div,{...a,ref:s})});B6.displayName=z6;var Wy="PopperContent",[KA,XA]=D6(Wy),H6=k.forwardRef((e,t)=>{var J,le,q,K,X,F;const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:o="center",alignOffset:i=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:p=0,sticky:c="partial",hideWhenDetached:f=!1,updatePositionStrategy:d="optimized",onPlaced:h,...m}=e,g=L6(Wy,n),[v,y]=k.useState(null),x=Ye(t,pe=>y(pe)),[P,w]=k.useState(null),S=qA(P),O=(S==null?void 0:S.width)??0,_=(S==null?void 0:S.height)??0,C=r+(o!=="center"?"-"+o:""),j=typeof p=="number"?p:{top:0,right:0,bottom:0,left:0,...p},E=Array.isArray(u)?u:[u],T=E.length>0,N={padding:j,boundary:E.filter(QA),altBoundary:T},{refs:M,floatingStyles:I,placement:R,isPositioned:L,middlewareData:$}=RA({strategy:"fixed",placement:C,whileElementsMounted:(...pe)=>kA(...pe,{animationFrame:d==="always"}),elements:{reference:g.anchor},middleware:[DA({mainAxis:a+_,alignmentAxis:i}),l&&LA({mainAxis:!0,crossAxis:!1,limiter:c==="partial"?FA():void 0,...N}),l&&zA({...N}),BA({...N,apply:({elements:pe,rects:ne,availableWidth:Ne,availableHeight:Me})=>{const{width:Ze,height:Xn}=ne.reference,On=pe.floating.style;On.setProperty("--radix-popper-available-width",`${Ne}px`),On.setProperty("--radix-popper-available-height",`${Me}px`),On.setProperty("--radix-popper-anchor-width",`${Ze}px`),On.setProperty("--radix-popper-anchor-height",`${Xn}px`)}}),P&&GA({element:P,padding:s}),ZA({arrowWidth:O,arrowHeight:_}),f&&HA({strategy:"referenceHidden",...N})]}),[D,H]=W6(R),W=Ca(h);jt(()=>{L&&(W==null||W())},[L,W]);const G=(J=$.arrow)==null?void 0:J.x,Z=(le=$.arrow)==null?void 0:le.y,ie=((q=$.arrow)==null?void 0:q.centerOffset)!==0,[ve,Pe]=k.useState();return jt(()=>{v&&Pe(window.getComputedStyle(v).zIndex)},[v]),b.jsx("div",{ref:M.setFloating,"data-radix-popper-content-wrapper":"",style:{...I,transform:L?I.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ve,"--radix-popper-transform-origin":[(K=$.transformOrigin)==null?void 0:K.x,(X=$.transformOrigin)==null?void 0:X.y].join(" "),...((F=$.hide)==null?void 0:F.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:b.jsx(KA,{scope:n,placedSide:D,onArrowChange:w,arrowX:G,arrowY:Z,shouldHideArrow:ie,children:b.jsx(Ee.div,{"data-side":D,"data-align":H,...m,ref:x,style:{...m.style,animation:L?void 0:"none"}})})})});H6.displayName=Wy;var G6="PopperArrow",YA={top:"bottom",right:"left",bottom:"top",left:"right"},U6=k.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,o=XA(G6,r),i=YA[o.placedSide];return b.jsx("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:b.jsx(WA,{...a,ref:n,style:{...a.style,display:"block"}})})});U6.displayName=G6;function QA(e){return e!==null}var ZA=e=>({name:"transformOrigin",options:e,fn(t){var g,v,y;const{placement:n,rects:r,middlewareData:a}=t,i=((g=a.arrow)==null?void 0:g.centerOffset)!==0,s=i?0:e.arrowWidth,l=i?0:e.arrowHeight,[u,p]=W6(n),c={start:"0%",center:"50%",end:"100%"}[p],f=(((v=a.arrow)==null?void 0:v.x)??0)+s/2,d=(((y=a.arrow)==null?void 0:y.y)??0)+l/2;let h="",m="";return u==="bottom"?(h=i?c:`${f}px`,m=`${-l}px`):u==="top"?(h=i?c:`${f}px`,m=`${r.floating.height+l}px`):u==="right"?(h=`${-l}px`,m=i?c:`${d}px`):u==="left"&&(h=`${r.floating.width+l}px`,m=i?c:`${d}px`),{data:{x:h,y:m}}}});function W6(e){const[t,n="center"]=e.split("-");return[t,n]}var JA=F6,q6=B6,V6=H6,K6=U6,eE="Portal",X6=k.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[a,o]=k.useState(!1);jt(()=>o(!0),[]);const i=n||a&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return i?oC.createPortal(b.jsx(Ee.div,{...r,ref:t}),i):null});X6.displayName=eE;var tE=h5[" useInsertionEffect ".trim().toString()]||jt;function gp({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,o,i]=nE({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:a;{const p=k.useRef(e!==void 0);k.useEffect(()=>{const c=p.current;c!==s&&console.warn(`${r} is changing from ${c?"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.`),p.current=s},[s,r])}const u=k.useCallback(p=>{var c;if(s){const f=rE(p)?p(e):p;f!==e&&((c=i.current)==null||c.call(i,f))}else o(p)},[s,e,o,i]);return[l,u]}function nE({defaultProp:e,onChange:t}){const[n,r]=k.useState(e),a=k.useRef(n),o=k.useRef(t);return tE(()=>{o.current=t},[t]),k.useEffect(()=>{var i;a.current!==n&&((i=o.current)==null||i.call(o,n),a.current=n)},[n,a]),[n,r,o]}function rE(e){return typeof e=="function"}function aE(e){const t=k.useRef({value:e,previous:e});return k.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Y6=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"}),oE="VisuallyHidden",Q6=k.forwardRef((e,t)=>b.jsx(Ee.span,{...e,ref:t,style:{...Y6,...e.style}}));Q6.displayName=oE;var iE=Q6,sE=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Do=new WeakMap,ic=new WeakMap,sc={},Om=0,Z6=function(e){return e&&(e.host||Z6(e.parentNode))},lE=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=Z6(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})},uE=function(e,t,n,r){var a=lE(t,Array.isArray(e)?e:[e]);sc[n]||(sc[n]=new WeakMap);var o=sc[n],i=[],s=new Set,l=new Set(a),u=function(c){!c||s.has(c)||(s.add(c),u(c.parentNode))};a.forEach(u);var p=function(c){!c||l.has(c)||Array.prototype.forEach.call(c.children,function(f){if(s.has(f))p(f);else try{var d=f.getAttribute(r),h=d!==null&&d!=="false",m=(Do.get(f)||0)+1,g=(o.get(f)||0)+1;Do.set(f,m),o.set(f,g),i.push(f),m===1&&h&&ic.set(f,!0),g===1&&f.setAttribute(n,"true"),h||f.setAttribute(r,"true")}catch(v){console.error("aria-hidden: cannot operate on ",f,v)}})};return p(t),s.clear(),Om++,function(){i.forEach(function(c){var f=Do.get(c)-1,d=o.get(c)-1;Do.set(c,f),o.set(c,d),f||(ic.has(c)||c.removeAttribute(r),ic.delete(c)),d||c.removeAttribute(n)}),Om--,Om||(Do=new WeakMap,Do=new WeakMap,ic=new WeakMap,sc={})}},cE=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=sE(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),uE(r,a,n,"aria-hidden")):function(){return null}},rr=function(){return rr=Object.assign||function(t){for(var n,r=1,a=arguments.length;r<a;r++){n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},rr.apply(this,arguments)};function J6(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]]);return n}function pE(e,t,n){if(n||arguments.length===2)for(var r=0,a=t.length,o;r<a;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}var Fc="right-scroll-bar-position",zc="width-before-scroll-bar",fE="with-scroll-bars-hidden",dE="--removed-body-scroll-bar-size";function km(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function mE(e,t){var n=k.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var a=n.value;a!==r&&(n.value=r,n.callback(r,a))}}}})[0];return n.callback=t,n.facade}var hE=typeof window<"u"?k.useLayoutEffect:k.useEffect,zx=new WeakMap;function vE(e,t){var n=mE(null,function(r){return e.forEach(function(a){return km(a,r)})});return hE(function(){var r=zx.get(n);if(r){var a=new Set(r),o=new Set(e),i=n.current;a.forEach(function(s){o.has(s)||km(s,null)}),o.forEach(function(s){a.has(s)||km(s,i)})}zx.set(n,e)},[e]),n}function yE(e){return e}function gE(e,t){t===void 0&&(t=yE);var n=[],r=!1,a={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(o){var i=t(o,r);return n.push(i),function(){n=n.filter(function(s){return s!==i})}},assignSyncMedium:function(o){for(r=!0;n.length;){var i=n;n=[],i.forEach(o)}n={push:function(s){return o(s)},filter:function(){return n}}},assignMedium:function(o){r=!0;var i=[];if(n.length){var s=n;n=[],s.forEach(o),i=n}var l=function(){var p=i;i=[],p.forEach(o)},u=function(){return Promise.resolve().then(l)};u(),n={push:function(p){i.push(p),u()},filter:function(p){return i=i.filter(p),n}}}};return a}function xE(e){e===void 0&&(e={});var t=gE(null);return t.options=rr({async:!0,ssr:!1},e),t}var e4=function(e){var t=e.sideCar,n=J6(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return k.createElement(r,rr({},n))};e4.isSideCarExport=!0;function wE(e,t){return e.useMedium(t),e4}var t4=xE(),_m=function(){},Wf=k.forwardRef(function(e,t){var n=k.useRef(null),r=k.useState({onScrollCapture:_m,onWheelCapture:_m,onTouchMoveCapture:_m}),a=r[0],o=r[1],i=e.forwardProps,s=e.children,l=e.className,u=e.removeScrollBar,p=e.enabled,c=e.shards,f=e.sideCar,d=e.noRelative,h=e.noIsolation,m=e.inert,g=e.allowPinchZoom,v=e.as,y=v===void 0?"div":v,x=e.gapMode,P=J6(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),w=f,S=vE([n,t]),O=rr(rr({},P),a);return k.createElement(k.Fragment,null,p&&k.createElement(w,{sideCar:t4,removeScrollBar:u,shards:c,noRelative:d,noIsolation:h,inert:m,setCallbacks:o,allowPinchZoom:!!g,lockRef:n,gapMode:x}),i?k.cloneElement(k.Children.only(s),rr(rr({},O),{ref:S})):k.createElement(y,rr({},O,{className:l,ref:S}),s))});Wf.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Wf.classNames={fullWidth:zc,zeroRight:Fc};var bE=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function PE(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=bE();return t&&e.setAttribute("nonce",t),e}function SE(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function OE(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var kE=function(){var e=0,t=null;return{add:function(n){e==0&&(t=PE())&&(SE(t,n),OE(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},_E=function(){var e=kE();return function(t,n){k.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},n4=function(){var e=_E(),t=function(n){var r=n.styles,a=n.dynamic;return e(r,a),null};return t},CE={left:0,top:0,right:0,gap:0},Cm=function(e){return parseInt(e||"",10)||0},AE=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],a=t[e==="padding"?"paddingRight":"marginRight"];return[Cm(n),Cm(r),Cm(a)]},EE=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return CE;var t=AE(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])}},TE=n4(),fi="data-scroll-locked",jE=function(e,t,n,r){var a=e.left,o=e.top,i=e.right,s=e.gap;return n===void 0&&(n="margin"),`
+  .`.concat(fE,` {
    overflow: hidden `).concat(r,`;
    padding-right: `).concat(s,"px ").concat(r,`;
   }
-  body[`).concat(pi,`] {
+  body[`).concat(fi,`] {
     overflow: hidden `).concat(r,`;
     overscroll-behavior: contain;
     `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&`
@@ -71,138 +71,138 @@ Error generating stack: `+o.message+`
     margin-right: 0 `).concat(r,`;
   }
   
-  body[`).concat(pi,`] {
-    `).concat(JC,": ").concat(s,`px;
+  body[`).concat(fi,`] {
+    `).concat(dE,": ").concat(s,`px;
   }
-`)},Fx=function(){var e=parseInt(document.body.getAttribute(pi)||"0",10);return isFinite(e)?e:0},gE=function(){k.useEffect(function(){return document.body.setAttribute(pi,(Fx()+1).toString()),function(){var e=Fx()-1;e<=0?document.body.removeAttribute(pi):document.body.setAttribute(pi,e.toString())}},[])},xE=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;gE();var o=k.useMemo(function(){return hE(a)},[a]);return k.createElement(vE,{styles:yE(o,!t,a,n?"":"!important")})},tv=!1;if(typeof window<"u")try{var lc=Object.defineProperty({},"passive",{get:function(){return tv=!0,!0}});window.addEventListener("test",lc,lc),window.removeEventListener("test",lc,lc)}catch{tv=!1}var Lo=tv?{passive:!1}:!1,wE=function(e){return e.tagName==="TEXTAREA"},e4=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!wE(e)&&n[t]==="visible")},bE=function(e){return e4(e,"overflowY")},PE=function(e){return e4(e,"overflowX")},zx=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=t4(e,r);if(a){var o=n4(e,r),i=o[1],s=o[2];if(i>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},SE=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},OE=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},t4=function(e,t){return e==="v"?bE(t):PE(t)},n4=function(e,t){return e==="v"?SE(t):OE(t)},kE=function(e,t){return e==="h"&&t==="rtl"?-1:1},_E=function(e,t,n,r,a){var o=kE(e,window.getComputedStyle(t).direction),i=o*r,s=n.target,l=t.contains(s),u=!1,f=i>0,c=0,p=0;do{if(!s)break;var d=n4(e,s),h=d[0],m=d[1],g=d[2],v=m-g-o*h;(h||v)&&t4(e,s)&&(c+=v,p+=h);var y=s.parentNode;s=y&&y.nodeType===Node.DOCUMENT_FRAGMENT_NODE?y.host:y}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(f&&Math.abs(c)<1||!f&&Math.abs(p)<1)&&(u=!0),u},uc=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Bx=function(e){return[e.deltaX,e.deltaY]},Hx=function(e){return e&&"current"in e?e.current:e},AE=function(e,t){return e[0]===t[0]&&e[1]===t[1]},CE=function(e){return`
+`)},Bx=function(){var e=parseInt(document.body.getAttribute(fi)||"0",10);return isFinite(e)?e:0},$E=function(){k.useEffect(function(){return document.body.setAttribute(fi,(Bx()+1).toString()),function(){var e=Bx()-1;e<=0?document.body.removeAttribute(fi):document.body.setAttribute(fi,e.toString())}},[])},NE=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;$E();var o=k.useMemo(function(){return EE(a)},[a]);return k.createElement(TE,{styles:jE(o,!t,a,n?"":"!important")})},t0=!1;if(typeof window<"u")try{var lc=Object.defineProperty({},"passive",{get:function(){return t0=!0,!0}});window.addEventListener("test",lc,lc),window.removeEventListener("test",lc,lc)}catch{t0=!1}var Lo=t0?{passive:!1}:!1,ME=function(e){return e.tagName==="TEXTAREA"},r4=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!ME(e)&&n[t]==="visible")},RE=function(e){return r4(e,"overflowY")},IE=function(e){return r4(e,"overflowX")},Hx=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=a4(e,r);if(a){var o=o4(e,r),i=o[1],s=o[2];if(i>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},DE=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},LE=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},a4=function(e,t){return e==="v"?RE(t):IE(t)},o4=function(e,t){return e==="v"?DE(t):LE(t)},FE=function(e,t){return e==="h"&&t==="rtl"?-1:1},zE=function(e,t,n,r,a){var o=FE(e,window.getComputedStyle(t).direction),i=o*r,s=n.target,l=t.contains(s),u=!1,p=i>0,c=0,f=0;do{if(!s)break;var d=o4(e,s),h=d[0],m=d[1],g=d[2],v=m-g-o*h;(h||v)&&a4(e,s)&&(c+=v,f+=h);var y=s.parentNode;s=y&&y.nodeType===Node.DOCUMENT_FRAGMENT_NODE?y.host:y}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(p&&Math.abs(c)<1||!p&&Math.abs(f)<1)&&(u=!0),u},uc=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Gx=function(e){return[e.deltaX,e.deltaY]},Ux=function(e){return e&&"current"in e?e.current:e},BE=function(e,t){return e[0]===t[0]&&e[1]===t[1]},HE=function(e){return`
   .block-interactivity-`.concat(e,` {pointer-events: none;}
   .allow-interactivity-`).concat(e,` {pointer-events: all;}
-`)},EE=0,Fo=[];function TE(e){var t=k.useRef([]),n=k.useRef([0,0]),r=k.useRef(),a=k.useState(EE++)[0],o=k.useState(J6)[0],i=k.useRef(e);k.useEffect(function(){i.current=e},[e]),k.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var m=QC([e.lockRef.current],(e.shards||[]).map(Hx),!0).filter(Boolean);return m.forEach(function(g){return g.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),m.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var s=k.useCallback(function(m,g){if("touches"in m&&m.touches.length===2||m.type==="wheel"&&m.ctrlKey)return!i.current.allowPinchZoom;var v=uc(m),y=n.current,x="deltaX"in m?m.deltaX:y[0]-v[0],P="deltaY"in m?m.deltaY:y[1]-v[1],w,S=m.target,O=Math.abs(x)>Math.abs(P)?"h":"v";if("touches"in m&&O==="h"&&S.type==="range")return!1;var _=zx(O,S);if(!_)return!0;if(_?w=O:(w=O==="v"?"h":"v",_=zx(O,S)),!_)return!1;if(!r.current&&"changedTouches"in m&&(x||P)&&(r.current=w),!w)return!0;var A=r.current||w;return _E(A,g,m,A==="h"?x:P)},[]),l=k.useCallback(function(m){var g=m;if(!(!Fo.length||Fo[Fo.length-1]!==o)){var v="deltaY"in g?Bx(g):uc(g),y=t.current.filter(function(w){return w.name===g.type&&(w.target===g.target||g.target===w.shadowParent)&&AE(w.delta,v)})[0];if(y&&y.should){g.cancelable&&g.preventDefault();return}if(!y){var x=(i.current.shards||[]).map(Hx).filter(Boolean).filter(function(w){return w.contains(g.target)}),P=x.length>0?s(g,x[0]):!i.current.noIsolation;P&&g.cancelable&&g.preventDefault()}}},[]),u=k.useCallback(function(m,g,v,y){var x={name:m,delta:g,target:v,should:y,shadowParent:jE(v)};t.current.push(x),setTimeout(function(){t.current=t.current.filter(function(P){return P!==x})},1)},[]),f=k.useCallback(function(m){n.current=uc(m),r.current=void 0},[]),c=k.useCallback(function(m){u(m.type,Bx(m),m.target,s(m,e.lockRef.current))},[]),p=k.useCallback(function(m){u(m.type,uc(m),m.target,s(m,e.lockRef.current))},[]);k.useEffect(function(){return Fo.push(o),e.setCallbacks({onScrollCapture:c,onWheelCapture:c,onTouchMoveCapture:p}),document.addEventListener("wheel",l,Lo),document.addEventListener("touchmove",l,Lo),document.addEventListener("touchstart",f,Lo),function(){Fo=Fo.filter(function(m){return m!==o}),document.removeEventListener("wheel",l,Lo),document.removeEventListener("touchmove",l,Lo),document.removeEventListener("touchstart",f,Lo)}},[]);var d=e.removeScrollBar,h=e.inert;return k.createElement(k.Fragment,null,h?k.createElement(o,{styles:CE(a)}):null,d?k.createElement(xE,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function jE(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const $E=iE(Z6,TE);var r4=k.forwardRef(function(e,t){return k.createElement(Wp,rr({},e,{ref:t,sideCar:$E}))});r4.classNames=Wp.classNames;var NE=[" ","Enter","ArrowUp","ArrowDown"],ME=[" ","Enter"],bo="Select",[qp,Vp,RE]=g6(bo),[hs,pse]=ps(bo,[RE,Up]),Kp=Up(),[IE,Na]=hs(bo),[DE,LE]=hs(bo),a4=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:o,value:i,defaultValue:s,onValueChange:l,dir:u,name:f,autoComplete:c,disabled:p,required:d,form:h}=e,m=Kp(t),[g,v]=k.useState(null),[y,x]=k.useState(null),[P,w]=k.useState(!1),S=R0(u),[O,_]=xf({prop:r,defaultProp:a??!1,onChange:o,caller:bo}),[A,j]=xf({prop:i,defaultProp:s,onChange:l,caller:bo}),E=k.useRef(null),T=g?h||!!g.closest("form"):!0,[N,M]=k.useState(new Set),I=Array.from(N).map(R=>R.props.value).join(";");return b.jsx(FC,{...m,children:b.jsxs(IE,{required:d,scope:t,trigger:g,onTriggerChange:v,valueNode:y,onValueNodeChange:x,valueNodeHasChildren:P,onValueNodeHasChildrenChange:w,contentId:Tu(),value:A,onValueChange:j,open:O,onOpenChange:_,dir:S,triggerPointerDownPosRef:E,disabled:p,children:[b.jsx(qp.Provider,{scope:t,children:b.jsx(DE,{scope:e.__scopeSelect,onNativeOptionAdd:k.useCallback(R=>{M(L=>new Set(L).add(R))},[]),onNativeOptionRemove:k.useCallback(R=>{M(L=>{const $=new Set(L);return $.delete(R),$})},[]),children:n})}),T?b.jsxs(C4,{"aria-hidden":!0,required:d,tabIndex:-1,name:f,autoComplete:c,value:A,onChange:R=>j(R.target.value),disabled:p,form:h,children:[A===void 0?b.jsx("option",{value:""}):null,Array.from(N)]},I):null]})})};a4.displayName=bo;var o4="SelectTrigger",i4=k.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,o=Kp(n),i=Na(o4,n),s=i.disabled||r,l=Ye(t,i.onTriggerChange),u=Vp(n),f=k.useRef("touch"),[c,p,d]=T4(m=>{const g=u().filter(x=>!x.disabled),v=g.find(x=>x.value===i.value),y=j4(g,m,v);y!==void 0&&i.onValueChange(y.value)}),h=m=>{s||(i.onOpenChange(!0),d()),m&&(i.triggerPointerDownPosRef.current={x:Math.round(m.pageX),y:Math.round(m.pageY)})};return b.jsx(G6,{asChild:!0,...o,children:b.jsx(Ee.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":E4(i.value)?"":void 0,...a,ref:l,onClick:pe(a.onClick,m=>{m.currentTarget.focus(),f.current!=="mouse"&&h(m)}),onPointerDown:pe(a.onPointerDown,m=>{f.current=m.pointerType;const g=m.target;g.hasPointerCapture(m.pointerId)&&g.releasePointerCapture(m.pointerId),m.button===0&&m.ctrlKey===!1&&m.pointerType==="mouse"&&(h(m),m.preventDefault())}),onKeyDown:pe(a.onKeyDown,m=>{const g=c.current!=="";!(m.ctrlKey||m.altKey||m.metaKey)&&m.key.length===1&&p(m.key),!(g&&m.key===" ")&&NE.includes(m.key)&&(h(),m.preventDefault())})})})});i4.displayName=o4;var s4="SelectValue",l4=k.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:o,placeholder:i="",...s}=e,l=Na(s4,n),{onValueNodeHasChildrenChange:u}=l,f=o!==void 0,c=Ye(t,l.onValueNodeChange);return jt(()=>{u(f)},[u,f]),b.jsx(Ee.span,{...s,ref:c,style:{pointerEvents:"none"},children:E4(l.value)?b.jsx(b.Fragment,{children:i}):o})});l4.displayName=s4;var FE="SelectIcon",u4=k.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return b.jsx(Ee.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});u4.displayName=FE;var zE="SelectPortal",c4=e=>b.jsx(q6,{asChild:!0,...e});c4.displayName=zE;var Po="SelectContent",f4=k.forwardRef((e,t)=>{const n=Na(Po,e.__scopeSelect),[r,a]=k.useState();if(jt(()=>{a(new DocumentFragment)},[]),!n.open){const o=r;return o?fs.createPortal(b.jsx(p4,{scope:e.__scopeSelect,children:b.jsx(qp.Slot,{scope:e.__scopeSelect,children:b.jsx("div",{children:e.children})})}),o):null}return b.jsx(d4,{...e,ref:t})});f4.displayName=Po;var An=10,[p4,Ma]=hs(Po),BE="SelectContentImpl",HE=Il("SelectContent.RemoveScroll"),d4=k.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:o,onPointerDownOutside:i,side:s,sideOffset:l,align:u,alignOffset:f,arrowPadding:c,collisionBoundary:p,collisionPadding:d,sticky:h,hideWhenDetached:m,avoidCollisions:g,...v}=e,y=Na(Po,n),[x,P]=k.useState(null),[w,S]=k.useState(null),O=Ye(t,J=>P(J)),[_,A]=k.useState(null),[j,E]=k.useState(null),T=Vp(n),[N,M]=k.useState(!1),I=k.useRef(!1);k.useEffect(()=>{if(x)return YC(x)},[x]),bA();const R=k.useCallback(J=>{const[le,...q]=T().map(F=>F.ref.current),[K]=q.slice(-1),X=document.activeElement;for(const F of J)if(F===X||(F==null||F.scrollIntoView({block:"nearest"}),F===le&&w&&(w.scrollTop=0),F===K&&w&&(w.scrollTop=w.scrollHeight),F==null||F.focus(),document.activeElement!==X))return},[T,w]),L=k.useCallback(()=>R([_,x]),[R,_,x]);k.useEffect(()=>{N&&L()},[N,L]);const{onOpenChange:$,triggerPointerDownPosRef:D}=y;k.useEffect(()=>{if(x){let J={x:0,y:0};const le=K=>{var X,F;J={x:Math.abs(Math.round(K.pageX)-(((X=D.current)==null?void 0:X.x)??0)),y:Math.abs(Math.round(K.pageY)-(((F=D.current)==null?void 0:F.y)??0))}},q=K=>{J.x<=10&&J.y<=10?K.preventDefault():x.contains(K.target)||$(!1),document.removeEventListener("pointermove",le),D.current=null};return D.current!==null&&(document.addEventListener("pointermove",le),document.addEventListener("pointerup",q,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",le),document.removeEventListener("pointerup",q,{capture:!0})}}},[x,$,D]),k.useEffect(()=>{const J=()=>$(!1);return window.addEventListener("blur",J),window.addEventListener("resize",J),()=>{window.removeEventListener("blur",J),window.removeEventListener("resize",J)}},[$]);const[H,W]=T4(J=>{const le=T().filter(X=>!X.disabled),q=le.find(X=>X.ref.current===document.activeElement),K=j4(le,J,q);K&&setTimeout(()=>K.ref.current.focus())}),G=k.useCallback((J,le,q)=>{const K=!I.current&&!q;(y.value!==void 0&&y.value===le||K)&&(A(J),K&&(I.current=!0))},[y.value]),Z=k.useCallback(()=>x==null?void 0:x.focus(),[x]),ie=k.useCallback((J,le,q)=>{const K=!I.current&&!q;(y.value!==void 0&&y.value===le||K)&&E(J)},[y.value]),ve=r==="popper"?nv:m4,Pe=ve===nv?{side:s,sideOffset:l,align:u,alignOffset:f,arrowPadding:c,collisionBoundary:p,collisionPadding:d,sticky:h,hideWhenDetached:m,avoidCollisions:g}:{};return b.jsx(p4,{scope:n,content:x,viewport:w,onViewportChange:S,itemRefCallback:G,selectedItem:_,onItemLeave:Z,itemTextRefCallback:ie,focusSelectedItem:L,selectedItemText:j,position:r,isPositioned:N,searchRef:H,children:b.jsx(r4,{as:HE,allowPinchZoom:!0,children:b.jsx(b6,{asChild:!0,trapped:y.open,onMountAutoFocus:J=>{J.preventDefault()},onUnmountAutoFocus:pe(a,J=>{var le;(le=y.trigger)==null||le.focus({preventScroll:!0}),J.preventDefault()}),children:b.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:i,onFocusOutside:J=>J.preventDefault(),onDismiss:()=>y.onOpenChange(!1),children:b.jsx(ve,{role:"listbox",id:y.contentId,"data-state":y.open?"open":"closed",dir:y.dir,onContextMenu:J=>J.preventDefault(),...v,...Pe,onPlaced:()=>M(!0),ref:O,style:{display:"flex",flexDirection:"column",outline:"none",...v.style},onKeyDown:pe(v.onKeyDown,J=>{const le=J.ctrlKey||J.altKey||J.metaKey;if(J.key==="Tab"&&J.preventDefault(),!le&&J.key.length===1&&W(J.key),["ArrowUp","ArrowDown","Home","End"].includes(J.key)){let K=T().filter(X=>!X.disabled).map(X=>X.ref.current);if(["ArrowUp","End"].includes(J.key)&&(K=K.slice().reverse()),["ArrowUp","ArrowDown"].includes(J.key)){const X=J.target,F=K.indexOf(X);K=K.slice(F+1)}setTimeout(()=>R(K)),J.preventDefault()}})})})})})})});d4.displayName=BE;var GE="SelectItemAlignedPosition",m4=k.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,o=Na(Po,n),i=Ma(Po,n),[s,l]=k.useState(null),[u,f]=k.useState(null),c=Ye(t,O=>f(O)),p=Vp(n),d=k.useRef(!1),h=k.useRef(!0),{viewport:m,selectedItem:g,selectedItemText:v,focusSelectedItem:y}=i,x=k.useCallback(()=>{if(o.trigger&&o.valueNode&&s&&u&&m&&g&&v){const O=o.trigger.getBoundingClientRect(),_=u.getBoundingClientRect(),A=o.valueNode.getBoundingClientRect(),j=v.getBoundingClientRect();if(o.dir!=="rtl"){const X=j.left-_.left,F=A.left-X,fe=O.left-F,ne=O.width+fe,Ne=Math.max(ne,_.width),Me=window.innerWidth-An,Ze=bx(F,[An,Math.max(An,Me-Ne)]);s.style.minWidth=ne+"px",s.style.left=Ze+"px"}else{const X=_.right-j.right,F=window.innerWidth-A.right-X,fe=window.innerWidth-O.right-F,ne=O.width+fe,Ne=Math.max(ne,_.width),Me=window.innerWidth-An,Ze=bx(F,[An,Math.max(An,Me-Ne)]);s.style.minWidth=ne+"px",s.style.right=Ze+"px"}const E=p(),T=window.innerHeight-An*2,N=m.scrollHeight,M=window.getComputedStyle(u),I=parseInt(M.borderTopWidth,10),R=parseInt(M.paddingTop,10),L=parseInt(M.borderBottomWidth,10),$=parseInt(M.paddingBottom,10),D=I+R+N+$+L,H=Math.min(g.offsetHeight*5,D),W=window.getComputedStyle(m),G=parseInt(W.paddingTop,10),Z=parseInt(W.paddingBottom,10),ie=O.top+O.height/2-An,ve=T-ie,Pe=g.offsetHeight/2,J=g.offsetTop+Pe,le=I+R+J,q=D-le;if(le<=ie){const X=E.length>0&&g===E[E.length-1].ref.current;s.style.bottom="0px";const F=u.clientHeight-m.offsetTop-m.offsetHeight,fe=Math.max(ve,Pe+(X?Z:0)+F+L),ne=le+fe;s.style.height=ne+"px"}else{const X=E.length>0&&g===E[0].ref.current;s.style.top="0px";const fe=Math.max(ie,I+m.offsetTop+(X?G:0)+Pe)+q;s.style.height=fe+"px",m.scrollTop=le-ie+m.offsetTop}s.style.margin=`${An}px 0`,s.style.minHeight=H+"px",s.style.maxHeight=T+"px",r==null||r(),requestAnimationFrame(()=>d.current=!0)}},[p,o.trigger,o.valueNode,s,u,m,g,v,o.dir,r]);jt(()=>x(),[x]);const[P,w]=k.useState();jt(()=>{u&&w(window.getComputedStyle(u).zIndex)},[u]);const S=k.useCallback(O=>{O&&h.current===!0&&(x(),y==null||y(),h.current=!1)},[x,y]);return b.jsx(WE,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:d,onScrollButtonChange:S,children:b.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:P},children:b.jsx(Ee.div,{...a,ref:c,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});m4.displayName=GE;var UE="SelectPopperPosition",nv=k.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=An,...o}=e,i=Kp(n);return b.jsx(U6,{...i,...o,ref:t,align:r,collisionPadding:a,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)"}})});nv.displayName=UE;var[WE,q0]=hs(Po,{}),rv="SelectViewport",h4=k.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,o=Ma(rv,n),i=q0(rv,n),s=Ye(t,o.onViewportChange),l=k.useRef(0);return b.jsxs(b.Fragment,{children:[b.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}),b.jsx(qp.Slot,{scope:n,children:b.jsx(Ee.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:pe(a.onScroll,u=>{const f=u.currentTarget,{contentWrapper:c,shouldExpandOnScrollRef:p}=i;if(p!=null&&p.current&&c){const d=Math.abs(l.current-f.scrollTop);if(d>0){const h=window.innerHeight-An*2,m=parseFloat(c.style.minHeight),g=parseFloat(c.style.height),v=Math.max(m,g);if(v<h){const y=v+d,x=Math.min(h,y),P=y-x;c.style.height=x+"px",c.style.bottom==="0px"&&(f.scrollTop=P>0?P:0,c.style.justifyContent="flex-end")}}}l.current=f.scrollTop})})})]})});h4.displayName=rv;var v4="SelectGroup",[qE,VE]=hs(v4),KE=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Tu();return b.jsx(qE,{scope:n,id:a,children:b.jsx(Ee.div,{role:"group","aria-labelledby":a,...r,ref:t})})});KE.displayName=v4;var y4="SelectLabel",g4=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=VE(y4,n);return b.jsx(Ee.div,{id:a.id,...r,ref:t})});g4.displayName=y4;var wf="SelectItem",[XE,x4]=hs(wf),w4=k.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:o,...i}=e,s=Na(wf,n),l=Ma(wf,n),u=s.value===r,[f,c]=k.useState(o??""),[p,d]=k.useState(!1),h=Ye(t,y=>{var x;return(x=l.itemRefCallback)==null?void 0:x.call(l,y,r,a)}),m=Tu(),g=k.useRef("touch"),v=()=>{a||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> 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 b.jsx(XE,{scope:n,value:r,disabled:a,textId:m,isSelected:u,onItemTextChange:k.useCallback(y=>{c(x=>x||((y==null?void 0:y.textContent)??"").trim())},[]),children:b.jsx(qp.ItemSlot,{scope:n,value:r,disabled:a,textValue:f,children:b.jsx(Ee.div,{role:"option","aria-labelledby":m,"data-highlighted":p?"":void 0,"aria-selected":u&&p,"data-state":u?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...i,ref:h,onFocus:pe(i.onFocus,()=>d(!0)),onBlur:pe(i.onBlur,()=>d(!1)),onClick:pe(i.onClick,()=>{g.current!=="mouse"&&v()}),onPointerUp:pe(i.onPointerUp,()=>{g.current==="mouse"&&v()}),onPointerDown:pe(i.onPointerDown,y=>{g.current=y.pointerType}),onPointerMove:pe(i.onPointerMove,y=>{var x;g.current=y.pointerType,a?(x=l.onItemLeave)==null||x.call(l):g.current==="mouse"&&y.currentTarget.focus({preventScroll:!0})}),onPointerLeave:pe(i.onPointerLeave,y=>{var x;y.currentTarget===document.activeElement&&((x=l.onItemLeave)==null||x.call(l))}),onKeyDown:pe(i.onKeyDown,y=>{var P;((P=l.searchRef)==null?void 0:P.current)!==""&&y.key===" "||(ME.includes(y.key)&&v(),y.key===" "&&y.preventDefault())})})})})});w4.displayName=wf;var tl="SelectItemText",b4=k.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...o}=e,i=Na(tl,n),s=Ma(tl,n),l=x4(tl,n),u=LE(tl,n),[f,c]=k.useState(null),p=Ye(t,v=>c(v),l.onItemTextChange,v=>{var y;return(y=s.itemTextRefCallback)==null?void 0:y.call(s,v,l.value,l.disabled)}),d=f==null?void 0:f.textContent,h=k.useMemo(()=>b.jsx("option",{value:l.value,disabled:l.disabled,children:d},l.value),[l.disabled,l.value,d]),{onNativeOptionAdd:m,onNativeOptionRemove:g}=u;return jt(()=>(m(h),()=>g(h)),[m,g,h]),b.jsxs(b.Fragment,{children:[b.jsx(Ee.span,{id:l.textId,...o,ref:p}),l.isSelected&&i.valueNode&&!i.valueNodeHasChildren?fs.createPortal(o.children,i.valueNode):null]})});b4.displayName=tl;var P4="SelectItemIndicator",S4=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return x4(P4,n).isSelected?b.jsx(Ee.span,{"aria-hidden":!0,...r,ref:t}):null});S4.displayName=P4;var av="SelectScrollUpButton",O4=k.forwardRef((e,t)=>{const n=Ma(av,e.__scopeSelect),r=q0(av,e.__scopeSelect),[a,o]=k.useState(!1),i=Ye(t,r.onScrollButtonChange);return jt(()=>{if(n.viewport&&n.isPositioned){let s=function(){const u=l.scrollTop>0;o(u)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),a?b.jsx(_4,{...e,ref:i,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}}):null});O4.displayName=av;var ov="SelectScrollDownButton",k4=k.forwardRef((e,t)=>{const n=Ma(ov,e.__scopeSelect),r=q0(ov,e.__scopeSelect),[a,o]=k.useState(!1),i=Ye(t,r.onScrollButtonChange);return jt(()=>{if(n.viewport&&n.isPositioned){let s=function(){const u=l.scrollHeight-l.clientHeight,f=Math.ceil(l.scrollTop)<u;o(f)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),a?b.jsx(_4,{...e,ref:i,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}}):null});k4.displayName=ov;var _4=k.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,o=Ma("SelectScrollButton",n),i=k.useRef(null),s=Vp(n),l=k.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return k.useEffect(()=>()=>l(),[l]),jt(()=>{var f;const u=s().find(c=>c.ref.current===document.activeElement);(f=u==null?void 0:u.ref.current)==null||f.scrollIntoView({block:"nearest"})},[s]),b.jsx(Ee.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:pe(a.onPointerDown,()=>{i.current===null&&(i.current=window.setInterval(r,50))}),onPointerMove:pe(a.onPointerMove,()=>{var u;(u=o.onItemLeave)==null||u.call(o),i.current===null&&(i.current=window.setInterval(r,50))}),onPointerLeave:pe(a.onPointerLeave,()=>{l()})})}),YE="SelectSeparator",A4=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return b.jsx(Ee.div,{"aria-hidden":!0,...r,ref:t})});A4.displayName=YE;var iv="SelectArrow",QE=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Kp(n),o=Na(iv,n),i=Ma(iv,n);return o.open&&i.position==="popper"?b.jsx(W6,{...a,...r,ref:t}):null});QE.displayName=iv;var ZE="SelectBubbleInput",C4=k.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=k.useRef(null),o=Ye(r,a),i=UC(t);return k.useEffect(()=>{const s=a.current;if(!s)return;const l=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(l,"value").set;if(i!==t&&f){const c=new Event("change",{bubbles:!0});f.call(s,t),s.dispatchEvent(c)}},[i,t]),b.jsx(Ee.select,{...n,style:{...V6,...n.style},ref:o,defaultValue:t})});C4.displayName=ZE;function E4(e){return e===""||e===void 0}function T4(e){const t=Aa(e),n=k.useRef(""),r=k.useRef(0),a=k.useCallback(i=>{const s=n.current+i;t(s),function l(u){n.current=u,window.clearTimeout(r.current),u!==""&&(r.current=window.setTimeout(()=>l(""),1e3))}(s)},[t]),o=k.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return k.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,o]}function j4(e,t,n){const a=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let i=JE(e,Math.max(o,0));a.length===1&&(i=i.filter(u=>u!==n));const l=i.find(u=>u.textValue.toLowerCase().startsWith(a.toLowerCase()));return l!==n?l:void 0}function JE(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var eT=a4,$4=i4,tT=l4,nT=u4,rT=c4,N4=f4,aT=h4,M4=g4,R4=w4,oT=b4,iT=S4,I4=O4,D4=k4,L4=A4;/**
+`)},GE=0,Fo=[];function UE(e){var t=k.useRef([]),n=k.useRef([0,0]),r=k.useRef(),a=k.useState(GE++)[0],o=k.useState(n4)[0],i=k.useRef(e);k.useEffect(function(){i.current=e},[e]),k.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var m=pE([e.lockRef.current],(e.shards||[]).map(Ux),!0).filter(Boolean);return m.forEach(function(g){return g.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),m.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var s=k.useCallback(function(m,g){if("touches"in m&&m.touches.length===2||m.type==="wheel"&&m.ctrlKey)return!i.current.allowPinchZoom;var v=uc(m),y=n.current,x="deltaX"in m?m.deltaX:y[0]-v[0],P="deltaY"in m?m.deltaY:y[1]-v[1],w,S=m.target,O=Math.abs(x)>Math.abs(P)?"h":"v";if("touches"in m&&O==="h"&&S.type==="range")return!1;var _=Hx(O,S);if(!_)return!0;if(_?w=O:(w=O==="v"?"h":"v",_=Hx(O,S)),!_)return!1;if(!r.current&&"changedTouches"in m&&(x||P)&&(r.current=w),!w)return!0;var C=r.current||w;return zE(C,g,m,C==="h"?x:P)},[]),l=k.useCallback(function(m){var g=m;if(!(!Fo.length||Fo[Fo.length-1]!==o)){var v="deltaY"in g?Gx(g):uc(g),y=t.current.filter(function(w){return w.name===g.type&&(w.target===g.target||g.target===w.shadowParent)&&BE(w.delta,v)})[0];if(y&&y.should){g.cancelable&&g.preventDefault();return}if(!y){var x=(i.current.shards||[]).map(Ux).filter(Boolean).filter(function(w){return w.contains(g.target)}),P=x.length>0?s(g,x[0]):!i.current.noIsolation;P&&g.cancelable&&g.preventDefault()}}},[]),u=k.useCallback(function(m,g,v,y){var x={name:m,delta:g,target:v,should:y,shadowParent:WE(v)};t.current.push(x),setTimeout(function(){t.current=t.current.filter(function(P){return P!==x})},1)},[]),p=k.useCallback(function(m){n.current=uc(m),r.current=void 0},[]),c=k.useCallback(function(m){u(m.type,Gx(m),m.target,s(m,e.lockRef.current))},[]),f=k.useCallback(function(m){u(m.type,uc(m),m.target,s(m,e.lockRef.current))},[]);k.useEffect(function(){return Fo.push(o),e.setCallbacks({onScrollCapture:c,onWheelCapture:c,onTouchMoveCapture:f}),document.addEventListener("wheel",l,Lo),document.addEventListener("touchmove",l,Lo),document.addEventListener("touchstart",p,Lo),function(){Fo=Fo.filter(function(m){return m!==o}),document.removeEventListener("wheel",l,Lo),document.removeEventListener("touchmove",l,Lo),document.removeEventListener("touchstart",p,Lo)}},[]);var d=e.removeScrollBar,h=e.inert;return k.createElement(k.Fragment,null,h?k.createElement(o,{styles:HE(a)}):null,d?k.createElement(NE,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function WE(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const qE=wE(t4,UE);var i4=k.forwardRef(function(e,t){return k.createElement(Wf,rr({},e,{ref:t,sideCar:qE}))});i4.classNames=Wf.classNames;var VE=[" ","Enter","ArrowUp","ArrowDown"],KE=[" ","Enter"],bo="Select",[qf,Vf,XE]=w6(bo),[hs,Cse]=fs(bo,[XE,Uf]),Kf=Uf(),[YE,Na]=hs(bo),[QE,ZE]=hs(bo),s4=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:o,value:i,defaultValue:s,onValueChange:l,dir:u,name:p,autoComplete:c,disabled:f,required:d,form:h}=e,m=Kf(t),[g,v]=k.useState(null),[y,x]=k.useState(null),[P,w]=k.useState(!1),S=Ry(u),[O,_]=gp({prop:r,defaultProp:a??!1,onChange:o,caller:bo}),[C,j]=gp({prop:i,defaultProp:s,onChange:l,caller:bo}),E=k.useRef(null),T=g?h||!!g.closest("form"):!0,[N,M]=k.useState(new Set),I=Array.from(N).map(R=>R.props.value).join(";");return b.jsx(JA,{...m,children:b.jsxs(YE,{required:d,scope:t,trigger:g,onTriggerChange:v,valueNode:y,onValueNodeChange:x,valueNodeHasChildren:P,onValueNodeHasChildrenChange:w,contentId:Tu(),value:C,onValueChange:j,open:O,onOpenChange:_,dir:S,triggerPointerDownPosRef:E,disabled:f,children:[b.jsx(qf.Provider,{scope:t,children:b.jsx(QE,{scope:e.__scopeSelect,onNativeOptionAdd:k.useCallback(R=>{M(L=>new Set(L).add(R))},[]),onNativeOptionRemove:k.useCallback(R=>{M(L=>{const $=new Set(L);return $.delete(R),$})},[]),children:n})}),T?b.jsxs(j4,{"aria-hidden":!0,required:d,tabIndex:-1,name:p,autoComplete:c,value:C,onChange:R=>j(R.target.value),disabled:f,form:h,children:[C===void 0?b.jsx("option",{value:""}):null,Array.from(N)]},I):null]})})};s4.displayName=bo;var l4="SelectTrigger",u4=k.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,o=Kf(n),i=Na(l4,n),s=i.disabled||r,l=Ye(t,i.onTriggerChange),u=Vf(n),p=k.useRef("touch"),[c,f,d]=N4(m=>{const g=u().filter(x=>!x.disabled),v=g.find(x=>x.value===i.value),y=M4(g,m,v);y!==void 0&&i.onValueChange(y.value)}),h=m=>{s||(i.onOpenChange(!0),d()),m&&(i.triggerPointerDownPosRef.current={x:Math.round(m.pageX),y:Math.round(m.pageY)})};return b.jsx(q6,{asChild:!0,...o,children:b.jsx(Ee.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":$4(i.value)?"":void 0,...a,ref:l,onClick:fe(a.onClick,m=>{m.currentTarget.focus(),p.current!=="mouse"&&h(m)}),onPointerDown:fe(a.onPointerDown,m=>{p.current=m.pointerType;const g=m.target;g.hasPointerCapture(m.pointerId)&&g.releasePointerCapture(m.pointerId),m.button===0&&m.ctrlKey===!1&&m.pointerType==="mouse"&&(h(m),m.preventDefault())}),onKeyDown:fe(a.onKeyDown,m=>{const g=c.current!=="";!(m.ctrlKey||m.altKey||m.metaKey)&&m.key.length===1&&f(m.key),!(g&&m.key===" ")&&VE.includes(m.key)&&(h(),m.preventDefault())})})})});u4.displayName=l4;var c4="SelectValue",p4=k.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:o,placeholder:i="",...s}=e,l=Na(c4,n),{onValueNodeHasChildrenChange:u}=l,p=o!==void 0,c=Ye(t,l.onValueNodeChange);return jt(()=>{u(p)},[u,p]),b.jsx(Ee.span,{...s,ref:c,style:{pointerEvents:"none"},children:$4(l.value)?b.jsx(b.Fragment,{children:i}):o})});p4.displayName=c4;var JE="SelectIcon",f4=k.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return b.jsx(Ee.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});f4.displayName=JE;var eT="SelectPortal",d4=e=>b.jsx(X6,{asChild:!0,...e});d4.displayName=eT;var Po="SelectContent",m4=k.forwardRef((e,t)=>{const n=Na(Po,e.__scopeSelect),[r,a]=k.useState();if(jt(()=>{a(new DocumentFragment)},[]),!n.open){const o=r;return o?ps.createPortal(b.jsx(h4,{scope:e.__scopeSelect,children:b.jsx(qf.Slot,{scope:e.__scopeSelect,children:b.jsx("div",{children:e.children})})}),o):null}return b.jsx(v4,{...e,ref:t})});m4.displayName=Po;var Cn=10,[h4,Ma]=hs(Po),tT="SelectContentImpl",nT=Il("SelectContent.RemoveScroll"),v4=k.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:o,onPointerDownOutside:i,side:s,sideOffset:l,align:u,alignOffset:p,arrowPadding:c,collisionBoundary:f,collisionPadding:d,sticky:h,hideWhenDetached:m,avoidCollisions:g,...v}=e,y=Na(Po,n),[x,P]=k.useState(null),[w,S]=k.useState(null),O=Ye(t,J=>P(J)),[_,C]=k.useState(null),[j,E]=k.useState(null),T=Vf(n),[N,M]=k.useState(!1),I=k.useRef(!1);k.useEffect(()=>{if(x)return cE(x)},[x]),OC();const R=k.useCallback(J=>{const[le,...q]=T().map(F=>F.ref.current),[K]=q.slice(-1),X=document.activeElement;for(const F of J)if(F===X||(F==null||F.scrollIntoView({block:"nearest"}),F===le&&w&&(w.scrollTop=0),F===K&&w&&(w.scrollTop=w.scrollHeight),F==null||F.focus(),document.activeElement!==X))return},[T,w]),L=k.useCallback(()=>R([_,x]),[R,_,x]);k.useEffect(()=>{N&&L()},[N,L]);const{onOpenChange:$,triggerPointerDownPosRef:D}=y;k.useEffect(()=>{if(x){let J={x:0,y:0};const le=K=>{var X,F;J={x:Math.abs(Math.round(K.pageX)-(((X=D.current)==null?void 0:X.x)??0)),y:Math.abs(Math.round(K.pageY)-(((F=D.current)==null?void 0:F.y)??0))}},q=K=>{J.x<=10&&J.y<=10?K.preventDefault():x.contains(K.target)||$(!1),document.removeEventListener("pointermove",le),D.current=null};return D.current!==null&&(document.addEventListener("pointermove",le),document.addEventListener("pointerup",q,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",le),document.removeEventListener("pointerup",q,{capture:!0})}}},[x,$,D]),k.useEffect(()=>{const J=()=>$(!1);return window.addEventListener("blur",J),window.addEventListener("resize",J),()=>{window.removeEventListener("blur",J),window.removeEventListener("resize",J)}},[$]);const[H,W]=N4(J=>{const le=T().filter(X=>!X.disabled),q=le.find(X=>X.ref.current===document.activeElement),K=M4(le,J,q);K&&setTimeout(()=>K.ref.current.focus())}),G=k.useCallback((J,le,q)=>{const K=!I.current&&!q;(y.value!==void 0&&y.value===le||K)&&(C(J),K&&(I.current=!0))},[y.value]),Z=k.useCallback(()=>x==null?void 0:x.focus(),[x]),ie=k.useCallback((J,le,q)=>{const K=!I.current&&!q;(y.value!==void 0&&y.value===le||K)&&E(J)},[y.value]),ve=r==="popper"?n0:y4,Pe=ve===n0?{side:s,sideOffset:l,align:u,alignOffset:p,arrowPadding:c,collisionBoundary:f,collisionPadding:d,sticky:h,hideWhenDetached:m,avoidCollisions:g}:{};return b.jsx(h4,{scope:n,content:x,viewport:w,onViewportChange:S,itemRefCallback:G,selectedItem:_,onItemLeave:Z,itemTextRefCallback:ie,focusSelectedItem:L,selectedItemText:j,position:r,isPositioned:N,searchRef:H,children:b.jsx(i4,{as:nT,allowPinchZoom:!0,children:b.jsx(S6,{asChild:!0,trapped:y.open,onMountAutoFocus:J=>{J.preventDefault()},onUnmountAutoFocus:fe(a,J=>{var le;(le=y.trigger)==null||le.focus({preventScroll:!0}),J.preventDefault()}),children:b.jsx(Iy,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:i,onFocusOutside:J=>J.preventDefault(),onDismiss:()=>y.onOpenChange(!1),children:b.jsx(ve,{role:"listbox",id:y.contentId,"data-state":y.open?"open":"closed",dir:y.dir,onContextMenu:J=>J.preventDefault(),...v,...Pe,onPlaced:()=>M(!0),ref:O,style:{display:"flex",flexDirection:"column",outline:"none",...v.style},onKeyDown:fe(v.onKeyDown,J=>{const le=J.ctrlKey||J.altKey||J.metaKey;if(J.key==="Tab"&&J.preventDefault(),!le&&J.key.length===1&&W(J.key),["ArrowUp","ArrowDown","Home","End"].includes(J.key)){let K=T().filter(X=>!X.disabled).map(X=>X.ref.current);if(["ArrowUp","End"].includes(J.key)&&(K=K.slice().reverse()),["ArrowUp","ArrowDown"].includes(J.key)){const X=J.target,F=K.indexOf(X);K=K.slice(F+1)}setTimeout(()=>R(K)),J.preventDefault()}})})})})})})});v4.displayName=tT;var rT="SelectItemAlignedPosition",y4=k.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,o=Na(Po,n),i=Ma(Po,n),[s,l]=k.useState(null),[u,p]=k.useState(null),c=Ye(t,O=>p(O)),f=Vf(n),d=k.useRef(!1),h=k.useRef(!0),{viewport:m,selectedItem:g,selectedItemText:v,focusSelectedItem:y}=i,x=k.useCallback(()=>{if(o.trigger&&o.valueNode&&s&&u&&m&&g&&v){const O=o.trigger.getBoundingClientRect(),_=u.getBoundingClientRect(),C=o.valueNode.getBoundingClientRect(),j=v.getBoundingClientRect();if(o.dir!=="rtl"){const X=j.left-_.left,F=C.left-X,pe=O.left-F,ne=O.width+pe,Ne=Math.max(ne,_.width),Me=window.innerWidth-Cn,Ze=bx(F,[Cn,Math.max(Cn,Me-Ne)]);s.style.minWidth=ne+"px",s.style.left=Ze+"px"}else{const X=_.right-j.right,F=window.innerWidth-C.right-X,pe=window.innerWidth-O.right-F,ne=O.width+pe,Ne=Math.max(ne,_.width),Me=window.innerWidth-Cn,Ze=bx(F,[Cn,Math.max(Cn,Me-Ne)]);s.style.minWidth=ne+"px",s.style.right=Ze+"px"}const E=f(),T=window.innerHeight-Cn*2,N=m.scrollHeight,M=window.getComputedStyle(u),I=parseInt(M.borderTopWidth,10),R=parseInt(M.paddingTop,10),L=parseInt(M.borderBottomWidth,10),$=parseInt(M.paddingBottom,10),D=I+R+N+$+L,H=Math.min(g.offsetHeight*5,D),W=window.getComputedStyle(m),G=parseInt(W.paddingTop,10),Z=parseInt(W.paddingBottom,10),ie=O.top+O.height/2-Cn,ve=T-ie,Pe=g.offsetHeight/2,J=g.offsetTop+Pe,le=I+R+J,q=D-le;if(le<=ie){const X=E.length>0&&g===E[E.length-1].ref.current;s.style.bottom="0px";const F=u.clientHeight-m.offsetTop-m.offsetHeight,pe=Math.max(ve,Pe+(X?Z:0)+F+L),ne=le+pe;s.style.height=ne+"px"}else{const X=E.length>0&&g===E[0].ref.current;s.style.top="0px";const pe=Math.max(ie,I+m.offsetTop+(X?G:0)+Pe)+q;s.style.height=pe+"px",m.scrollTop=le-ie+m.offsetTop}s.style.margin=`${Cn}px 0`,s.style.minHeight=H+"px",s.style.maxHeight=T+"px",r==null||r(),requestAnimationFrame(()=>d.current=!0)}},[f,o.trigger,o.valueNode,s,u,m,g,v,o.dir,r]);jt(()=>x(),[x]);const[P,w]=k.useState();jt(()=>{u&&w(window.getComputedStyle(u).zIndex)},[u]);const S=k.useCallback(O=>{O&&h.current===!0&&(x(),y==null||y(),h.current=!1)},[x,y]);return b.jsx(oT,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:d,onScrollButtonChange:S,children:b.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:P},children:b.jsx(Ee.div,{...a,ref:c,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});y4.displayName=rT;var aT="SelectPopperPosition",n0=k.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=Cn,...o}=e,i=Kf(n);return b.jsx(V6,{...i,...o,ref:t,align:r,collisionPadding:a,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)"}})});n0.displayName=aT;var[oT,qy]=hs(Po,{}),r0="SelectViewport",g4=k.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,o=Ma(r0,n),i=qy(r0,n),s=Ye(t,o.onViewportChange),l=k.useRef(0);return b.jsxs(b.Fragment,{children:[b.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}),b.jsx(qf.Slot,{scope:n,children:b.jsx(Ee.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:fe(a.onScroll,u=>{const p=u.currentTarget,{contentWrapper:c,shouldExpandOnScrollRef:f}=i;if(f!=null&&f.current&&c){const d=Math.abs(l.current-p.scrollTop);if(d>0){const h=window.innerHeight-Cn*2,m=parseFloat(c.style.minHeight),g=parseFloat(c.style.height),v=Math.max(m,g);if(v<h){const y=v+d,x=Math.min(h,y),P=y-x;c.style.height=x+"px",c.style.bottom==="0px"&&(p.scrollTop=P>0?P:0,c.style.justifyContent="flex-end")}}}l.current=p.scrollTop})})})]})});g4.displayName=r0;var x4="SelectGroup",[iT,sT]=hs(x4),lT=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Tu();return b.jsx(iT,{scope:n,id:a,children:b.jsx(Ee.div,{role:"group","aria-labelledby":a,...r,ref:t})})});lT.displayName=x4;var w4="SelectLabel",b4=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=sT(w4,n);return b.jsx(Ee.div,{id:a.id,...r,ref:t})});b4.displayName=w4;var xp="SelectItem",[uT,P4]=hs(xp),S4=k.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:o,...i}=e,s=Na(xp,n),l=Ma(xp,n),u=s.value===r,[p,c]=k.useState(o??""),[f,d]=k.useState(!1),h=Ye(t,y=>{var x;return(x=l.itemRefCallback)==null?void 0:x.call(l,y,r,a)}),m=Tu(),g=k.useRef("touch"),v=()=>{a||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> 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 b.jsx(uT,{scope:n,value:r,disabled:a,textId:m,isSelected:u,onItemTextChange:k.useCallback(y=>{c(x=>x||((y==null?void 0:y.textContent)??"").trim())},[]),children:b.jsx(qf.ItemSlot,{scope:n,value:r,disabled:a,textValue:p,children:b.jsx(Ee.div,{role:"option","aria-labelledby":m,"data-highlighted":f?"":void 0,"aria-selected":u&&f,"data-state":u?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...i,ref:h,onFocus:fe(i.onFocus,()=>d(!0)),onBlur:fe(i.onBlur,()=>d(!1)),onClick:fe(i.onClick,()=>{g.current!=="mouse"&&v()}),onPointerUp:fe(i.onPointerUp,()=>{g.current==="mouse"&&v()}),onPointerDown:fe(i.onPointerDown,y=>{g.current=y.pointerType}),onPointerMove:fe(i.onPointerMove,y=>{var x;g.current=y.pointerType,a?(x=l.onItemLeave)==null||x.call(l):g.current==="mouse"&&y.currentTarget.focus({preventScroll:!0})}),onPointerLeave:fe(i.onPointerLeave,y=>{var x;y.currentTarget===document.activeElement&&((x=l.onItemLeave)==null||x.call(l))}),onKeyDown:fe(i.onKeyDown,y=>{var P;((P=l.searchRef)==null?void 0:P.current)!==""&&y.key===" "||(KE.includes(y.key)&&v(),y.key===" "&&y.preventDefault())})})})})});S4.displayName=xp;var tl="SelectItemText",O4=k.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...o}=e,i=Na(tl,n),s=Ma(tl,n),l=P4(tl,n),u=ZE(tl,n),[p,c]=k.useState(null),f=Ye(t,v=>c(v),l.onItemTextChange,v=>{var y;return(y=s.itemTextRefCallback)==null?void 0:y.call(s,v,l.value,l.disabled)}),d=p==null?void 0:p.textContent,h=k.useMemo(()=>b.jsx("option",{value:l.value,disabled:l.disabled,children:d},l.value),[l.disabled,l.value,d]),{onNativeOptionAdd:m,onNativeOptionRemove:g}=u;return jt(()=>(m(h),()=>g(h)),[m,g,h]),b.jsxs(b.Fragment,{children:[b.jsx(Ee.span,{id:l.textId,...o,ref:f}),l.isSelected&&i.valueNode&&!i.valueNodeHasChildren?ps.createPortal(o.children,i.valueNode):null]})});O4.displayName=tl;var k4="SelectItemIndicator",_4=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return P4(k4,n).isSelected?b.jsx(Ee.span,{"aria-hidden":!0,...r,ref:t}):null});_4.displayName=k4;var a0="SelectScrollUpButton",C4=k.forwardRef((e,t)=>{const n=Ma(a0,e.__scopeSelect),r=qy(a0,e.__scopeSelect),[a,o]=k.useState(!1),i=Ye(t,r.onScrollButtonChange);return jt(()=>{if(n.viewport&&n.isPositioned){let s=function(){const u=l.scrollTop>0;o(u)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),a?b.jsx(E4,{...e,ref:i,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}}):null});C4.displayName=a0;var o0="SelectScrollDownButton",A4=k.forwardRef((e,t)=>{const n=Ma(o0,e.__scopeSelect),r=qy(o0,e.__scopeSelect),[a,o]=k.useState(!1),i=Ye(t,r.onScrollButtonChange);return jt(()=>{if(n.viewport&&n.isPositioned){let s=function(){const u=l.scrollHeight-l.clientHeight,p=Math.ceil(l.scrollTop)<u;o(p)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),a?b.jsx(E4,{...e,ref:i,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}}):null});A4.displayName=o0;var E4=k.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,o=Ma("SelectScrollButton",n),i=k.useRef(null),s=Vf(n),l=k.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return k.useEffect(()=>()=>l(),[l]),jt(()=>{var p;const u=s().find(c=>c.ref.current===document.activeElement);(p=u==null?void 0:u.ref.current)==null||p.scrollIntoView({block:"nearest"})},[s]),b.jsx(Ee.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:fe(a.onPointerDown,()=>{i.current===null&&(i.current=window.setInterval(r,50))}),onPointerMove:fe(a.onPointerMove,()=>{var u;(u=o.onItemLeave)==null||u.call(o),i.current===null&&(i.current=window.setInterval(r,50))}),onPointerLeave:fe(a.onPointerLeave,()=>{l()})})}),cT="SelectSeparator",T4=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return b.jsx(Ee.div,{"aria-hidden":!0,...r,ref:t})});T4.displayName=cT;var i0="SelectArrow",pT=k.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Kf(n),o=Na(i0,n),i=Ma(i0,n);return o.open&&i.position==="popper"?b.jsx(K6,{...a,...r,ref:t}):null});pT.displayName=i0;var fT="SelectBubbleInput",j4=k.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=k.useRef(null),o=Ye(r,a),i=aE(t);return k.useEffect(()=>{const s=a.current;if(!s)return;const l=window.HTMLSelectElement.prototype,p=Object.getOwnPropertyDescriptor(l,"value").set;if(i!==t&&p){const c=new Event("change",{bubbles:!0});p.call(s,t),s.dispatchEvent(c)}},[i,t]),b.jsx(Ee.select,{...n,style:{...Y6,...n.style},ref:o,defaultValue:t})});j4.displayName=fT;function $4(e){return e===""||e===void 0}function N4(e){const t=Ca(e),n=k.useRef(""),r=k.useRef(0),a=k.useCallback(i=>{const s=n.current+i;t(s),function l(u){n.current=u,window.clearTimeout(r.current),u!==""&&(r.current=window.setTimeout(()=>l(""),1e3))}(s)},[t]),o=k.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return k.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,o]}function M4(e,t,n){const a=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let i=dT(e,Math.max(o,0));a.length===1&&(i=i.filter(u=>u!==n));const l=i.find(u=>u.textValue.toLowerCase().startsWith(a.toLowerCase()));return l!==n?l:void 0}function dT(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var mT=s4,R4=u4,hT=p4,vT=f4,yT=d4,I4=m4,gT=g4,D4=b4,L4=S4,xT=O4,wT=_4,F4=C4,z4=A4,B4=T4;/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const sT=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),F4=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/**
+ */const bT=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),H4=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */var lT={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
+ */var PT={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const uT=k.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:o,iconNode:i,...s},l)=>k.createElement("svg",{ref:l,...lT,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:F4("lucide",a),...s},[...i.map(([u,f])=>k.createElement(u,f)),...Array.isArray(o)?o:[o]]));/**
+ */const ST=k.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:o,iconNode:i,...s},l)=>k.createElement("svg",{ref:l,...PT,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:H4("lucide",a),...s},[...i.map(([u,p])=>k.createElement(u,p)),...Array.isArray(o)?o:[o]]));/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const Qe=(e,t)=>{const n=k.forwardRef(({className:r,...a},o)=>k.createElement(uT,{ref:o,iconNode:t,className:F4(`lucide-${sT(e)}`,r),...a}));return n.displayName=`${e}`,n};/**
+ */const Qe=(e,t)=>{const n=k.forwardRef(({className:r,...a},o)=>k.createElement(ST,{ref:o,iconNode:t,className:H4(`lucide-${bT(e)}`,r),...a}));return n.displayName=`${e}`,n};/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const z4=Qe("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/**
+ */const G4=Qe("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const cT=Qe("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/**
+ */const OT=Qe("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const B4=Qe("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/**
+ */const U4=Qe("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const fT=Qe("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
+ */const kT=Qe("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const H4=Qe("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
+ */const W4=Qe("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const pT=Qe("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
+ */const _T=Qe("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const dT=Qe("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/**
+ */const CT=Qe("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const G4=Qe("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/**
+ */const q4=Qe("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const U4=Qe("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
+ */const V4=Qe("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const W4=Qe("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/**
+ */const K4=Qe("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const mT=Qe("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/**
+ */const AT=Qe("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const hT=Qe("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/**
+ */const ET=Qe("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const q4=Qe("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/**
+ */const X4=Qe("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const vT=Qe("MemoryStick",[["path",{d:"M6 19v-3",key:"1nvgqn"}],["path",{d:"M10 19v-3",key:"iu8nkm"}],["path",{d:"M14 19v-3",key:"kcehxu"}],["path",{d:"M18 19v-3",key:"1vh91z"}],["path",{d:"M8 11V9",key:"63erz4"}],["path",{d:"M16 11V9",key:"fru6f3"}],["path",{d:"M12 11V9",key:"ha00sb"}],["path",{d:"M2 15h20",key:"16ne18"}],["path",{d:"M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z",key:"lhddv3"}]]);/**
+ */const TT=Qe("MemoryStick",[["path",{d:"M6 19v-3",key:"1nvgqn"}],["path",{d:"M10 19v-3",key:"iu8nkm"}],["path",{d:"M14 19v-3",key:"kcehxu"}],["path",{d:"M18 19v-3",key:"1vh91z"}],["path",{d:"M8 11V9",key:"63erz4"}],["path",{d:"M16 11V9",key:"fru6f3"}],["path",{d:"M12 11V9",key:"ha00sb"}],["path",{d:"M2 15h20",key:"16ne18"}],["path",{d:"M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z",key:"lhddv3"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const V4=Qe("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/**
+ */const Y4=Qe("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const K4=Qe("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/**
+ */const Q4=Qe("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const yT=Qe("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/**
+ */const jT=Qe("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const gT=Qe("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/**
+ */const $T=Qe("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const X4=Qe("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/**
+ */const Z4=Qe("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const xT=Qe("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
+ */const NT=Qe("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
  * @license lucide-react v0.462.0 - ISC
  *
  * This source code is licensed under the ISC license.
  * See the LICENSE file in the root directory of this source tree.
- */const wT=Qe("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);function Y4(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=Y4(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function ue(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=Y4(e))&&(r&&(r+=" "),r+=t);return r}const V0="-",bT=e=>{const t=ST(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{const s=i.split(V0);return s[0]===""&&s.length!==1&&s.shift(),Q4(s,t)||PT(i)},getConflictingClassGroupIds:(i,s)=>{const l=n[i]||[];return s&&r[i]?[...l,...r[i]]:l}}},Q4=(e,t)=>{var i;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),a=r?Q4(e.slice(1),r):void 0;if(a)return a;if(t.validators.length===0)return;const o=e.join(V0);return(i=t.validators.find(({validator:s})=>s(o)))==null?void 0:i.classGroupId},Gx=/^\[(.+)\]$/,PT=e=>{if(Gx.test(e)){const t=Gx.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},ST=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return kT(Object.entries(e.classGroups),n).forEach(([o,i])=>{sv(i,r,o,t)}),r},sv=(e,t,n,r)=>{e.forEach(a=>{if(typeof a=="string"){const o=a===""?t:Ux(t,a);o.classGroupId=n;return}if(typeof a=="function"){if(OT(a)){sv(a(r),t,n,r);return}t.validators.push({validator:a,classGroupId:n});return}Object.entries(a).forEach(([o,i])=>{sv(i,Ux(t,o),n,r)})})},Ux=(e,t)=>{let n=e;return t.split(V0).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},OT=e=>e.isThemeGetter,kT=(e,t)=>t?e.map(([n,r])=>{const a=r.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([i,s])=>[t+i,s])):o);return[n,a]}):e,_T=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const a=(o,i)=>{n.set(o,i),t++,t>e&&(t=0,r=n,n=new Map)};return{get(o){let i=n.get(o);if(i!==void 0)return i;if((i=r.get(o))!==void 0)return a(o,i),i},set(o,i){n.has(o)?n.set(o,i):a(o,i)}}},Z4="!",AT=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,a=t[0],o=t.length,i=s=>{const l=[];let u=0,f=0,c;for(let g=0;g<s.length;g++){let v=s[g];if(u===0){if(v===a&&(r||s.slice(g,g+o)===t)){l.push(s.slice(f,g)),f=g+o;continue}if(v==="/"){c=g;continue}}v==="["?u++:v==="]"&&u--}const p=l.length===0?s:s.substring(f),d=p.startsWith(Z4),h=d?p.substring(1):p,m=c&&c>f?c-f:void 0;return{modifiers:l,hasImportantModifier:d,baseClassName:h,maybePostfixModifierPosition:m}};return n?s=>n({className:s,parseClassName:i}):i},CT=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},ET=e=>({cache:_T(e.cacheSize),parseClassName:AT(e),...bT(e)}),TT=/\s+/,jT=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a}=t,o=[],i=e.trim().split(TT);let s="";for(let l=i.length-1;l>=0;l-=1){const u=i[l],{modifiers:f,hasImportantModifier:c,baseClassName:p,maybePostfixModifierPosition:d}=n(u);let h=!!d,m=r(h?p.substring(0,d):p);if(!m){if(!h){s=u+(s.length>0?" "+s:s);continue}if(m=r(p),!m){s=u+(s.length>0?" "+s:s);continue}h=!1}const g=CT(f).join(":"),v=c?g+Z4:g,y=v+m;if(o.includes(y))continue;o.push(y);const x=a(m,h);for(let P=0;P<x.length;++P){const w=x[P];o.push(v+w)}s=u+(s.length>0?" "+s:s)}return s};function $T(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=J4(t))&&(r&&(r+=" "),r+=n);return r}const J4=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=J4(e[r]))&&(n&&(n+=" "),n+=t);return n};function NT(e,...t){let n,r,a,o=i;function i(l){const u=t.reduce((f,c)=>c(f),e());return n=ET(u),r=n.cache.get,a=n.cache.set,o=s,s(l)}function s(l){const u=r(l);if(u)return u;const f=jT(l,n);return a(l,f),f}return function(){return o($T.apply(null,arguments))}}const Re=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},e8=/^\[(?:([a-z-]+):)?(.+)\]$/i,MT=/^\d+\/\d+$/,RT=new Set(["px","full","screen"]),IT=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,DT=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,LT=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,FT=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,zT=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,xr=e=>di(e)||RT.has(e)||MT.test(e),Xr=e=>vs(e,"length",KT),di=e=>!!e&&!Number.isNaN(Number(e)),Cm=e=>vs(e,"number",di),Fs=e=>!!e&&Number.isInteger(Number(e)),BT=e=>e.endsWith("%")&&di(e.slice(0,-1)),se=e=>e8.test(e),Yr=e=>IT.test(e),HT=new Set(["length","size","percentage"]),GT=e=>vs(e,HT,t8),UT=e=>vs(e,"position",t8),WT=new Set(["image","url"]),qT=e=>vs(e,WT,YT),VT=e=>vs(e,"",XT),zs=()=>!0,vs=(e,t,n)=>{const r=e8.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},KT=e=>DT.test(e)&&!LT.test(e),t8=()=>!1,XT=e=>FT.test(e),YT=e=>zT.test(e),QT=()=>{const e=Re("colors"),t=Re("spacing"),n=Re("blur"),r=Re("brightness"),a=Re("borderColor"),o=Re("borderRadius"),i=Re("borderSpacing"),s=Re("borderWidth"),l=Re("contrast"),u=Re("grayscale"),f=Re("hueRotate"),c=Re("invert"),p=Re("gap"),d=Re("gradientColorStops"),h=Re("gradientColorStopPositions"),m=Re("inset"),g=Re("margin"),v=Re("opacity"),y=Re("padding"),x=Re("saturate"),P=Re("scale"),w=Re("sepia"),S=Re("skew"),O=Re("space"),_=Re("translate"),A=()=>["auto","contain","none"],j=()=>["auto","hidden","clip","visible","scroll"],E=()=>["auto",se,t],T=()=>[se,t],N=()=>["",xr,Xr],M=()=>["auto",di,se],I=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],R=()=>["solid","dashed","dotted","double","none"],L=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],$=()=>["start","end","center","between","around","evenly","stretch"],D=()=>["","0",se],H=()=>["auto","avoid","all","avoid-page","page","left","right","column"],W=()=>[di,se];return{cacheSize:500,separator:":",theme:{colors:[zs],spacing:[xr,Xr],blur:["none","",Yr,se],brightness:W(),borderColor:[e],borderRadius:["none","","full",Yr,se],borderSpacing:T(),borderWidth:N(),contrast:W(),grayscale:D(),hueRotate:W(),invert:D(),gap:T(),gradientColorStops:[e],gradientColorStopPositions:[BT,Xr],inset:E(),margin:E(),opacity:W(),padding:T(),saturate:W(),scale:W(),sepia:D(),skew:W(),space:T(),translate:T()},classGroups:{aspect:[{aspect:["auto","square","video",se]}],container:["container"],columns:[{columns:[Yr]}],"break-after":[{"break-after":H()}],"break-before":[{"break-before":H()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...I(),se]}],overflow:[{overflow:j()}],"overflow-x":[{"overflow-x":j()}],"overflow-y":[{"overflow-y":j()}],overscroll:[{overscroll:A()}],"overscroll-x":[{"overscroll-x":A()}],"overscroll-y":[{"overscroll-y":A()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[m]}],"inset-x":[{"inset-x":[m]}],"inset-y":[{"inset-y":[m]}],start:[{start:[m]}],end:[{end:[m]}],top:[{top:[m]}],right:[{right:[m]}],bottom:[{bottom:[m]}],left:[{left:[m]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Fs,se]}],basis:[{basis:E()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",se]}],grow:[{grow:D()}],shrink:[{shrink:D()}],order:[{order:["first","last","none",Fs,se]}],"grid-cols":[{"grid-cols":[zs]}],"col-start-end":[{col:["auto",{span:["full",Fs,se]},se]}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":[zs]}],"row-start-end":[{row:["auto",{span:[Fs,se]},se]}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",se]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",se]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal",...$()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...$(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...$(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[y]}],px:[{px:[y]}],py:[{py:[y]}],ps:[{ps:[y]}],pe:[{pe:[y]}],pt:[{pt:[y]}],pr:[{pr:[y]}],pb:[{pb:[y]}],pl:[{pl:[y]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[O]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[O]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",se,t]}],"min-w":[{"min-w":[se,t,"min","max","fit"]}],"max-w":[{"max-w":[se,t,"none","full","min","max","fit","prose",{screen:[Yr]},Yr]}],h:[{h:[se,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[se,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[se,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[se,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Yr,Xr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Cm]}],"font-family":[{font:[zs]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",se]}],"line-clamp":[{"line-clamp":["none",di,Cm]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",xr,se]}],"list-image":[{"list-image":["none",se]}],"list-style-type":[{list:["none","disc","decimal",se]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...R(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",xr,Xr]}],"underline-offset":[{"underline-offset":["auto",xr,se]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:T()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",se]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",se]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...I(),UT]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",GT]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},qT]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[h]}],"gradient-via-pos":[{via:[h]}],"gradient-to-pos":[{to:[h]}],"gradient-from":[{from:[d]}],"gradient-via":[{via:[d]}],"gradient-to":[{to:[d]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:[...R(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:R()}],"border-color":[{border:[a]}],"border-color-x":[{"border-x":[a]}],"border-color-y":[{"border-y":[a]}],"border-color-s":[{"border-s":[a]}],"border-color-e":[{"border-e":[a]}],"border-color-t":[{"border-t":[a]}],"border-color-r":[{"border-r":[a]}],"border-color-b":[{"border-b":[a]}],"border-color-l":[{"border-l":[a]}],"divide-color":[{divide:[a]}],"outline-style":[{outline:["",...R()]}],"outline-offset":[{"outline-offset":[xr,se]}],"outline-w":[{outline:[xr,Xr]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:N()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[xr,Xr]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Yr,VT]}],"shadow-color":[{shadow:[zs]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":[...L(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":L()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",Yr,se]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[f]}],invert:[{invert:[c]}],saturate:[{saturate:[x]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[f]}],"backdrop-invert":[{"backdrop-invert":[c]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[x]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",se]}],duration:[{duration:W()}],ease:[{ease:["linear","in","out","in-out",se]}],delay:[{delay:W()}],animate:[{animate:["none","spin","ping","pulse","bounce",se]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[P]}],"scale-x":[{"scale-x":[P]}],"scale-y":[{"scale-y":[P]}],rotate:[{rotate:[Fs,se]}],"translate-x":[{"translate-x":[_]}],"translate-y":[{"translate-y":[_]}],"skew-x":[{"skew-x":[S]}],"skew-y":[{"skew-y":[S]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",se]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",se]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":T()}],"scroll-mx":[{"scroll-mx":T()}],"scroll-my":[{"scroll-my":T()}],"scroll-ms":[{"scroll-ms":T()}],"scroll-me":[{"scroll-me":T()}],"scroll-mt":[{"scroll-mt":T()}],"scroll-mr":[{"scroll-mr":T()}],"scroll-mb":[{"scroll-mb":T()}],"scroll-ml":[{"scroll-ml":T()}],"scroll-p":[{"scroll-p":T()}],"scroll-px":[{"scroll-px":T()}],"scroll-py":[{"scroll-py":T()}],"scroll-ps":[{"scroll-ps":T()}],"scroll-pe":[{"scroll-pe":T()}],"scroll-pt":[{"scroll-pt":T()}],"scroll-pr":[{"scroll-pr":T()}],"scroll-pb":[{"scroll-pb":T()}],"scroll-pl":[{"scroll-pl":T()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",se]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[xr,Xr,Cm]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},ZT=NT(QT);function Oe(...e){return ZT(ue(e))}const JT=eT,ej=tT,n8=k.forwardRef(({className:e,children:t,...n},r)=>b.jsxs($4,{ref:r,className:Oe("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,b.jsx(nT,{asChild:!0,children:b.jsx(H4,{className:"h-4 w-4 opacity-50"})})]}));n8.displayName=$4.displayName;const r8=k.forwardRef(({className:e,...t},n)=>b.jsx(I4,{ref:n,className:Oe("flex cursor-default items-center justify-center py-1",e),...t,children:b.jsx(pT,{className:"h-4 w-4"})}));r8.displayName=I4.displayName;const a8=k.forwardRef(({className:e,...t},n)=>b.jsx(D4,{ref:n,className:Oe("flex cursor-default items-center justify-center py-1",e),...t,children:b.jsx(H4,{className:"h-4 w-4"})}));a8.displayName=D4.displayName;const o8=k.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>(k.useEffect(()=>{const o=()=>{document.querySelectorAll("[data-radix-popper-content-wrapper]").forEach(l=>{const u=l;u.style.setProperty("--popover","0 0% 100%"),u.style.setProperty("--popover-foreground","222.2 84% 4.9%"),u.style.setProperty("--border","214.3 31.8% 91.4%"),u.style.setProperty("--background","0 0% 100%"),u.style.setProperty("--foreground","222.2 84% 4.9%"),(document.documentElement.classList.contains("dark")||document.body.classList.contains("dark"))&&(u.style.setProperty("--popover","222.2 84% 4.9%"),u.style.setProperty("--popover-foreground","210 40% 98%"),u.style.setProperty("--border","217.2 32.6% 17.5%"),u.style.setProperty("--background","222.2 84% 4.9%"),u.style.setProperty("--foreground","210 40% 98%"))})};o();const i=setTimeout(o,100);return()=>clearTimeout(i)}),b.jsx(rT,{children:b.jsxs(N4,{ref:a,className:Oe("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[b.jsx(r8,{}),b.jsx(aT,{className:Oe("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),b.jsx(a8,{})]})})));o8.displayName=N4.displayName;const tj=k.forwardRef(({className:e,...t},n)=>b.jsx(M4,{ref:n,className:Oe("py-1.5 pl-8 pr-2 text-sm font-semibold",e),...t}));tj.displayName=M4.displayName;const i8=k.forwardRef(({className:e,children:t,...n},r)=>b.jsxs(R4,{ref:r,className:Oe("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[b.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:b.jsx(iT,{children:b.jsx(fT,{className:"h-4 w-4"})})}),b.jsx(oT,{children:t})]}));i8.displayName=R4.displayName;const nj=k.forwardRef(({className:e,...t},n)=>b.jsx(L4,{ref:n,className:Oe("-mx-1 my-1 h-px bg-muted",e),...t}));nj.displayName=L4.displayName;const Wx=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,qx=ue,s8=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return qx(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:a,defaultVariants:o}=t,i=Object.keys(a).map(u=>{const f=n==null?void 0:n[u],c=o==null?void 0:o[u];if(f===null)return null;const p=Wx(f)||Wx(c);return a[u][p]}),s=n&&Object.entries(n).reduce((u,f)=>{let[c,p]=f;return p===void 0||(u[c]=p),u},{}),l=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((u,f)=>{let{class:c,className:p,...d}=f;return Object.entries(d).every(h=>{let[m,g]=h;return Array.isArray(g)?g.includes({...o,...s}[m]):{...o,...s}[m]===g})?[...u,c,p]:u},[]);return qx(e,i,l,n==null?void 0:n.class,n==null?void 0:n.className)},rj=s8("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function aj({className:e,variant:t,...n}){return b.jsx("div",{className:Oe(rj({variant:t}),e),...n})}const oj=s8("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),bf=k.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},o)=>{const i=r?aA:"button";return b.jsx(i,{className:Oe(oj({variant:t,size:n,className:e})),ref:o,...a})});bf.displayName="Button";const ij=({selectedVersion:e,availableVersions:t,onVersionChange:n,metadata:r,onDownloadReport:a})=>{const o=f=>{try{return new Date(f).toLocaleDateString()}catch{return f}},i=f=>`https://github.com/envoyproxy/gateway/releases/tag/v${f}`,s=f=>`https://github.com/envoyproxy/gateway/releases/download/v${f}/benchmark_report.zip`,l=()=>{const f=i(e);window.open(f,"_blank","noopener,noreferrer")},u=()=>{const f=s(e);window.open(f,"_blank","noopener,noreferrer")};return b.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[b.jsxs("div",{className:"flex items-center gap-2",children:[b.jsx("label",{className:"text-sm font-medium text-gray-700",children:"Version:"}),b.jsxs(JT,{value:e,onValueChange:n,children:[b.jsx(n8,{className:"w-32",children:b.jsx(ej,{})}),b.jsx(o8,{children:t.map(f=>b.jsxs(i8,{value:f,children:["v",f]},f))})]})]}),r&&b.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-gray-600",children:[b.jsxs("div",{className:"flex items-center gap-1",children:[b.jsx(cT,{className:"h-3 w-3"}),b.jsx("span",{children:o(r.date)})]}),r.environment&&b.jsx(aj,{variant:"secondary",className:"text-xs",children:r.environment}),r.gitCommit&&b.jsxs("div",{className:"flex items-center gap-1",children:[b.jsx(q4,{className:"h-3 w-3"}),b.jsx("span",{className:"font-mono",children:r.gitCommit.substring(0,7)})]}),r.description&&b.jsx("span",{className:"hidden sm:inline max-w-xs truncate",title:r.description,children:r.description})]}),b.jsxs("div",{className:"flex items-center gap-2 ml-auto",children:[b.jsxs(bf,{variant:"outline",size:"sm",onClick:l,className:"flex items-center gap-1 text-xs",children:[b.jsx(mT,{className:"h-3 w-3"}),"View Release"]}),b.jsxs(bf,{variant:"outline",size:"sm",onClick:u,className:"flex items-center gap-1 text-xs",children:[b.jsx(B4,{className:"h-3 w-3"}),"Download Benchmark"]})]})]})},xe=k.forwardRef(({className:e,...t},n)=>b.jsx("div",{ref:n,className:Oe("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));xe.displayName="Card";const Se=k.forwardRef(({className:e,...t},n)=>b.jsx("div",{ref:n,className:Oe("flex flex-col space-y-1.5 p-6",e),...t}));Se.displayName="CardHeader";const we=k.forwardRef(({className:e,...t},n)=>b.jsx("h3",{ref:n,className:Oe("text-2xl font-semibold leading-none tracking-tight",e),...t}));we.displayName="CardTitle";const tn=k.forwardRef(({className:e,...t},n)=>b.jsx("p",{ref:n,className:Oe("text-sm text-muted-foreground",e),...t}));tn.displayName="CardDescription";const be=k.forwardRef(({className:e,...t},n)=>b.jsx("div",{ref:n,className:Oe("p-6 pt-0",e),...t}));be.displayName="CardContent";const sj=k.forwardRef(({className:e,...t},n)=>b.jsx("div",{ref:n,className:Oe("flex items-center p-6 pt-0",e),...t}));sj.displayName="CardFooter";const lj=({performanceSummary:e,benchmarkResults:t})=>{const n=Math.round(Math.max(...t.map(i=>i.throughput))),r=Math.round(e.avgLatency/1e3),a=Math.round(Math.max(...t.map(i=>i.resources.envoyGateway.memory.mean+i.resources.envoyProxy.memory.mean))),o=e.maxRoutes;return b.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4 mb-8",children:[b.jsxs(xe,{className:"bg-gradient-to-r from-purple-600 to-indigo-600 text-white",children:[b.jsx(Se,{className:"pb-2",children:b.jsxs(we,{className:"text-sm font-medium flex items-center",children:[b.jsx(z4,{className:"h-4 w-4 mr-2"}),"Max Throughput in Test"]})}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[n.toLocaleString()," RPS"]}),b.jsx("p",{className:"text-purple-100 text-sm",children:"Requests per second"})]})]}),b.jsxs(xe,{className:"bg-gradient-to-r from-purple-600 to-indigo-600 text-white",children:[b.jsx(Se,{className:"pb-2",children:b.jsxs(we,{className:"text-sm font-medium flex items-center",children:[b.jsx(U4,{className:"h-4 w-4 mr-2"}),"Mean Response Time"]})}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[r,"ms"]}),b.jsx("p",{className:"text-purple-100 text-sm",children:"End-to-end via Nighthawk"})]})]}),b.jsxs(xe,{className:"bg-gradient-to-r from-purple-600 to-indigo-600 text-white",children:[b.jsx(Se,{className:"pb-2",children:b.jsxs(we,{className:"text-sm font-medium flex items-center",children:[b.jsx(vT,{className:"h-4 w-4 mr-2"}),"Memory Usage"]})}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[a,"MB"]}),b.jsxs("p",{className:"text-purple-100 text-sm",children:["Peak at ",o," routes"]})]})]}),b.jsxs(xe,{className:"bg-gradient-to-r from-purple-600 to-indigo-600 text-white",children:[b.jsx(Se,{className:"pb-2",children:b.jsxs(we,{className:"text-sm font-medium flex items-center text",children:[b.jsx(K4,{className:"h-4 w-4 mr-2"}),"Max Routes in Test"]})}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:o.toLocaleString()}),b.jsx("p",{className:"text-purple-100 text-sm",children:"HTTPRoutes tested"})]})]})]})};var uj=Array.isArray,Vt=uj,cj=typeof Bu=="object"&&Bu&&Bu.Object===Object&&Bu,l8=cj,fj=l8,pj=typeof self=="object"&&self&&self.Object===Object&&self,dj=fj||pj||Function("return this")(),gr=dj,mj=gr,hj=mj.Symbol,$u=hj,Vx=$u,u8=Object.prototype,vj=u8.hasOwnProperty,yj=u8.toString,Bs=Vx?Vx.toStringTag:void 0;function gj(e){var t=vj.call(e,Bs),n=e[Bs];try{e[Bs]=void 0;var r=!0}catch{}var a=yj.call(e);return r&&(t?e[Bs]=n:delete e[Bs]),a}var xj=gj,wj=Object.prototype,bj=wj.toString;function Pj(e){return bj.call(e)}var Sj=Pj,Kx=$u,Oj=xj,kj=Sj,_j="[object Null]",Aj="[object Undefined]",Xx=Kx?Kx.toStringTag:void 0;function Cj(e){return e==null?e===void 0?Aj:_j:Xx&&Xx in Object(e)?Oj(e):kj(e)}var Ur=Cj;function Ej(e){return e!=null&&typeof e=="object"}var Wr=Ej,Tj=Ur,jj=Wr,$j="[object Symbol]";function Nj(e){return typeof e=="symbol"||jj(e)&&Tj(e)==$j}var ys=Nj,Mj=Vt,Rj=ys,Ij=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Dj=/^\w*$/;function Lj(e,t){if(Mj(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||Rj(e)?!0:Dj.test(e)||!Ij.test(e)||t!=null&&e in Object(t)}var K0=Lj;function Fj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ra=Fj;const gs=Ce(Ra);var zj=Ur,Bj=Ra,Hj="[object AsyncFunction]",Gj="[object Function]",Uj="[object GeneratorFunction]",Wj="[object Proxy]";function qj(e){if(!Bj(e))return!1;var t=zj(e);return t==Gj||t==Uj||t==Hj||t==Wj}var X0=qj;const oe=Ce(X0);var Vj=gr,Kj=Vj["__core-js_shared__"],Xj=Kj,Em=Xj,Yx=function(){var e=/[^.]+$/.exec(Em&&Em.keys&&Em.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Yj(e){return!!Yx&&Yx in e}var Qj=Yj,Zj=Function.prototype,Jj=Zj.toString;function e$(e){if(e!=null){try{return Jj.call(e)}catch{}try{return e+""}catch{}}return""}var c8=e$,t$=X0,n$=Qj,r$=Ra,a$=c8,o$=/[\\^$.*+?()[\]{}|]/g,i$=/^\[object .+?Constructor\]$/,s$=Function.prototype,l$=Object.prototype,u$=s$.toString,c$=l$.hasOwnProperty,f$=RegExp("^"+u$.call(c$).replace(o$,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p$(e){if(!r$(e)||n$(e))return!1;var t=t$(e)?f$:i$;return t.test(a$(e))}var d$=p$;function m$(e,t){return e==null?void 0:e[t]}var h$=m$,v$=d$,y$=h$;function g$(e,t){var n=y$(e,t);return v$(n)?n:void 0}var jo=g$,x$=jo,w$=x$(Object,"create"),Xp=w$,Qx=Xp;function b$(){this.__data__=Qx?Qx(null):{},this.size=0}var P$=b$;function S$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var O$=S$,k$=Xp,_$="__lodash_hash_undefined__",A$=Object.prototype,C$=A$.hasOwnProperty;function E$(e){var t=this.__data__;if(k$){var n=t[e];return n===_$?void 0:n}return C$.call(t,e)?t[e]:void 0}var T$=E$,j$=Xp,$$=Object.prototype,N$=$$.hasOwnProperty;function M$(e){var t=this.__data__;return j$?t[e]!==void 0:N$.call(t,e)}var R$=M$,I$=Xp,D$="__lodash_hash_undefined__";function L$(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=I$&&t===void 0?D$:t,this}var F$=L$,z$=P$,B$=O$,H$=T$,G$=R$,U$=F$;function xs(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}xs.prototype.clear=z$;xs.prototype.delete=B$;xs.prototype.get=H$;xs.prototype.has=G$;xs.prototype.set=U$;var W$=xs;function q$(){this.__data__=[],this.size=0}var V$=q$;function K$(e,t){return e===t||e!==e&&t!==t}var Y0=K$,X$=Y0;function Y$(e,t){for(var n=e.length;n--;)if(X$(e[n][0],t))return n;return-1}var Yp=Y$,Q$=Yp,Z$=Array.prototype,J$=Z$.splice;function eN(e){var t=this.__data__,n=Q$(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():J$.call(t,n,1),--this.size,!0}var tN=eN,nN=Yp;function rN(e){var t=this.__data__,n=nN(t,e);return n<0?void 0:t[n][1]}var aN=rN,oN=Yp;function iN(e){return oN(this.__data__,e)>-1}var sN=iN,lN=Yp;function uN(e,t){var n=this.__data__,r=lN(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var cN=uN,fN=V$,pN=tN,dN=aN,mN=sN,hN=cN;function ws(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ws.prototype.clear=fN;ws.prototype.delete=pN;ws.prototype.get=dN;ws.prototype.has=mN;ws.prototype.set=hN;var Qp=ws,vN=jo,yN=gr,gN=vN(yN,"Map"),Q0=gN,Zx=W$,xN=Qp,wN=Q0;function bN(){this.size=0,this.__data__={hash:new Zx,map:new(wN||xN),string:new Zx}}var PN=bN;function SN(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ON=SN,kN=ON;function _N(e,t){var n=e.__data__;return kN(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Zp=_N,AN=Zp;function CN(e){var t=AN(this,e).delete(e);return this.size-=t?1:0,t}var EN=CN,TN=Zp;function jN(e){return TN(this,e).get(e)}var $N=jN,NN=Zp;function MN(e){return NN(this,e).has(e)}var RN=MN,IN=Zp;function DN(e,t){var n=IN(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var LN=DN,FN=PN,zN=EN,BN=$N,HN=RN,GN=LN;function bs(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}bs.prototype.clear=FN;bs.prototype.delete=zN;bs.prototype.get=BN;bs.prototype.has=HN;bs.prototype.set=GN;var Z0=bs,f8=Z0,UN="Expected a function";function J0(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(UN);var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],o=n.cache;if(o.has(a))return o.get(a);var i=e.apply(this,r);return n.cache=o.set(a,i)||o,i};return n.cache=new(J0.Cache||f8),n}J0.Cache=f8;var p8=J0;const WN=Ce(p8);var qN=p8,VN=500;function KN(e){var t=qN(e,function(r){return n.size===VN&&n.clear(),r}),n=t.cache;return t}var XN=KN,YN=XN,QN=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ZN=/\\(\\)?/g,JN=YN(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(QN,function(n,r,a,o){t.push(a?o.replace(ZN,"$1"):r||n)}),t}),eM=JN;function tM(e,t){for(var n=-1,r=e==null?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a}var eg=tM,Jx=$u,nM=eg,rM=Vt,aM=ys,ew=Jx?Jx.prototype:void 0,tw=ew?ew.toString:void 0;function d8(e){if(typeof e=="string")return e;if(rM(e))return nM(e,d8)+"";if(aM(e))return tw?tw.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}var oM=d8,iM=oM;function sM(e){return e==null?"":iM(e)}var m8=sM,lM=Vt,uM=K0,cM=eM,fM=m8;function pM(e,t){return lM(e)?e:uM(e,t)?[e]:cM(fM(e))}var h8=pM,dM=ys;function mM(e){if(typeof e=="string"||dM(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}var Jp=mM,hM=h8,vM=Jp;function yM(e,t){t=hM(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[vM(t[n++])];return n&&n==r?e:void 0}var tg=yM,gM=tg;function xM(e,t,n){var r=e==null?void 0:gM(e,t);return r===void 0?n:r}var v8=xM;const gn=Ce(v8);function wM(e){return e==null}var bM=wM;const te=Ce(bM);var PM=Ur,SM=Vt,OM=Wr,kM="[object String]";function _M(e){return typeof e=="string"||!SM(e)&&OM(e)&&PM(e)==kM}var AM=_M;const So=Ce(AM);var y8={exports:{}},_e={};/**
+ */const MT=Qe("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);function J4(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=J4(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function ue(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=J4(e))&&(r&&(r+=" "),r+=t);return r}const Vy="-",RT=e=>{const t=DT(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{const s=i.split(Vy);return s[0]===""&&s.length!==1&&s.shift(),e8(s,t)||IT(i)},getConflictingClassGroupIds:(i,s)=>{const l=n[i]||[];return s&&r[i]?[...l,...r[i]]:l}}},e8=(e,t)=>{var i;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),a=r?e8(e.slice(1),r):void 0;if(a)return a;if(t.validators.length===0)return;const o=e.join(Vy);return(i=t.validators.find(({validator:s})=>s(o)))==null?void 0:i.classGroupId},Wx=/^\[(.+)\]$/,IT=e=>{if(Wx.test(e)){const t=Wx.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},DT=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return FT(Object.entries(e.classGroups),n).forEach(([o,i])=>{s0(i,r,o,t)}),r},s0=(e,t,n,r)=>{e.forEach(a=>{if(typeof a=="string"){const o=a===""?t:qx(t,a);o.classGroupId=n;return}if(typeof a=="function"){if(LT(a)){s0(a(r),t,n,r);return}t.validators.push({validator:a,classGroupId:n});return}Object.entries(a).forEach(([o,i])=>{s0(i,qx(t,o),n,r)})})},qx=(e,t)=>{let n=e;return t.split(Vy).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},LT=e=>e.isThemeGetter,FT=(e,t)=>t?e.map(([n,r])=>{const a=r.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([i,s])=>[t+i,s])):o);return[n,a]}):e,zT=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const a=(o,i)=>{n.set(o,i),t++,t>e&&(t=0,r=n,n=new Map)};return{get(o){let i=n.get(o);if(i!==void 0)return i;if((i=r.get(o))!==void 0)return a(o,i),i},set(o,i){n.has(o)?n.set(o,i):a(o,i)}}},t8="!",BT=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,a=t[0],o=t.length,i=s=>{const l=[];let u=0,p=0,c;for(let g=0;g<s.length;g++){let v=s[g];if(u===0){if(v===a&&(r||s.slice(g,g+o)===t)){l.push(s.slice(p,g)),p=g+o;continue}if(v==="/"){c=g;continue}}v==="["?u++:v==="]"&&u--}const f=l.length===0?s:s.substring(p),d=f.startsWith(t8),h=d?f.substring(1):f,m=c&&c>p?c-p:void 0;return{modifiers:l,hasImportantModifier:d,baseClassName:h,maybePostfixModifierPosition:m}};return n?s=>n({className:s,parseClassName:i}):i},HT=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},GT=e=>({cache:zT(e.cacheSize),parseClassName:BT(e),...RT(e)}),UT=/\s+/,WT=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a}=t,o=[],i=e.trim().split(UT);let s="";for(let l=i.length-1;l>=0;l-=1){const u=i[l],{modifiers:p,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:d}=n(u);let h=!!d,m=r(h?f.substring(0,d):f);if(!m){if(!h){s=u+(s.length>0?" "+s:s);continue}if(m=r(f),!m){s=u+(s.length>0?" "+s:s);continue}h=!1}const g=HT(p).join(":"),v=c?g+t8:g,y=v+m;if(o.includes(y))continue;o.push(y);const x=a(m,h);for(let P=0;P<x.length;++P){const w=x[P];o.push(v+w)}s=u+(s.length>0?" "+s:s)}return s};function qT(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=n8(t))&&(r&&(r+=" "),r+=n);return r}const n8=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=n8(e[r]))&&(n&&(n+=" "),n+=t);return n};function VT(e,...t){let n,r,a,o=i;function i(l){const u=t.reduce((p,c)=>c(p),e());return n=GT(u),r=n.cache.get,a=n.cache.set,o=s,s(l)}function s(l){const u=r(l);if(u)return u;const p=WT(l,n);return a(l,p),p}return function(){return o(qT.apply(null,arguments))}}const Re=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},r8=/^\[(?:([a-z-]+):)?(.+)\]$/i,KT=/^\d+\/\d+$/,XT=new Set(["px","full","screen"]),YT=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,QT=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZT=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,JT=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ej=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,xr=e=>di(e)||XT.has(e)||KT.test(e),Xr=e=>vs(e,"length",lj),di=e=>!!e&&!Number.isNaN(Number(e)),Am=e=>vs(e,"number",di),Fs=e=>!!e&&Number.isInteger(Number(e)),tj=e=>e.endsWith("%")&&di(e.slice(0,-1)),se=e=>r8.test(e),Yr=e=>YT.test(e),nj=new Set(["length","size","percentage"]),rj=e=>vs(e,nj,a8),aj=e=>vs(e,"position",a8),oj=new Set(["image","url"]),ij=e=>vs(e,oj,cj),sj=e=>vs(e,"",uj),zs=()=>!0,vs=(e,t,n)=>{const r=r8.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},lj=e=>QT.test(e)&&!ZT.test(e),a8=()=>!1,uj=e=>JT.test(e),cj=e=>ej.test(e),pj=()=>{const e=Re("colors"),t=Re("spacing"),n=Re("blur"),r=Re("brightness"),a=Re("borderColor"),o=Re("borderRadius"),i=Re("borderSpacing"),s=Re("borderWidth"),l=Re("contrast"),u=Re("grayscale"),p=Re("hueRotate"),c=Re("invert"),f=Re("gap"),d=Re("gradientColorStops"),h=Re("gradientColorStopPositions"),m=Re("inset"),g=Re("margin"),v=Re("opacity"),y=Re("padding"),x=Re("saturate"),P=Re("scale"),w=Re("sepia"),S=Re("skew"),O=Re("space"),_=Re("translate"),C=()=>["auto","contain","none"],j=()=>["auto","hidden","clip","visible","scroll"],E=()=>["auto",se,t],T=()=>[se,t],N=()=>["",xr,Xr],M=()=>["auto",di,se],I=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],R=()=>["solid","dashed","dotted","double","none"],L=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],$=()=>["start","end","center","between","around","evenly","stretch"],D=()=>["","0",se],H=()=>["auto","avoid","all","avoid-page","page","left","right","column"],W=()=>[di,se];return{cacheSize:500,separator:":",theme:{colors:[zs],spacing:[xr,Xr],blur:["none","",Yr,se],brightness:W(),borderColor:[e],borderRadius:["none","","full",Yr,se],borderSpacing:T(),borderWidth:N(),contrast:W(),grayscale:D(),hueRotate:W(),invert:D(),gap:T(),gradientColorStops:[e],gradientColorStopPositions:[tj,Xr],inset:E(),margin:E(),opacity:W(),padding:T(),saturate:W(),scale:W(),sepia:D(),skew:W(),space:T(),translate:T()},classGroups:{aspect:[{aspect:["auto","square","video",se]}],container:["container"],columns:[{columns:[Yr]}],"break-after":[{"break-after":H()}],"break-before":[{"break-before":H()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...I(),se]}],overflow:[{overflow:j()}],"overflow-x":[{"overflow-x":j()}],"overflow-y":[{"overflow-y":j()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[m]}],"inset-x":[{"inset-x":[m]}],"inset-y":[{"inset-y":[m]}],start:[{start:[m]}],end:[{end:[m]}],top:[{top:[m]}],right:[{right:[m]}],bottom:[{bottom:[m]}],left:[{left:[m]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Fs,se]}],basis:[{basis:E()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",se]}],grow:[{grow:D()}],shrink:[{shrink:D()}],order:[{order:["first","last","none",Fs,se]}],"grid-cols":[{"grid-cols":[zs]}],"col-start-end":[{col:["auto",{span:["full",Fs,se]},se]}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":[zs]}],"row-start-end":[{row:["auto",{span:[Fs,se]},se]}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",se]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",se]}],gap:[{gap:[f]}],"gap-x":[{"gap-x":[f]}],"gap-y":[{"gap-y":[f]}],"justify-content":[{justify:["normal",...$()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...$(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...$(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[y]}],px:[{px:[y]}],py:[{py:[y]}],ps:[{ps:[y]}],pe:[{pe:[y]}],pt:[{pt:[y]}],pr:[{pr:[y]}],pb:[{pb:[y]}],pl:[{pl:[y]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[O]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[O]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",se,t]}],"min-w":[{"min-w":[se,t,"min","max","fit"]}],"max-w":[{"max-w":[se,t,"none","full","min","max","fit","prose",{screen:[Yr]},Yr]}],h:[{h:[se,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[se,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[se,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[se,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Yr,Xr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Am]}],"font-family":[{font:[zs]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",se]}],"line-clamp":[{"line-clamp":["none",di,Am]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",xr,se]}],"list-image":[{"list-image":["none",se]}],"list-style-type":[{list:["none","disc","decimal",se]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...R(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",xr,Xr]}],"underline-offset":[{"underline-offset":["auto",xr,se]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:T()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",se]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",se]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...I(),aj]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",rj]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},ij]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[h]}],"gradient-via-pos":[{via:[h]}],"gradient-to-pos":[{to:[h]}],"gradient-from":[{from:[d]}],"gradient-via":[{via:[d]}],"gradient-to":[{to:[d]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:[...R(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:R()}],"border-color":[{border:[a]}],"border-color-x":[{"border-x":[a]}],"border-color-y":[{"border-y":[a]}],"border-color-s":[{"border-s":[a]}],"border-color-e":[{"border-e":[a]}],"border-color-t":[{"border-t":[a]}],"border-color-r":[{"border-r":[a]}],"border-color-b":[{"border-b":[a]}],"border-color-l":[{"border-l":[a]}],"divide-color":[{divide:[a]}],"outline-style":[{outline:["",...R()]}],"outline-offset":[{"outline-offset":[xr,se]}],"outline-w":[{outline:[xr,Xr]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:N()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[xr,Xr]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Yr,sj]}],"shadow-color":[{shadow:[zs]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":[...L(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":L()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",Yr,se]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[p]}],invert:[{invert:[c]}],saturate:[{saturate:[x]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[p]}],"backdrop-invert":[{"backdrop-invert":[c]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[x]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",se]}],duration:[{duration:W()}],ease:[{ease:["linear","in","out","in-out",se]}],delay:[{delay:W()}],animate:[{animate:["none","spin","ping","pulse","bounce",se]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[P]}],"scale-x":[{"scale-x":[P]}],"scale-y":[{"scale-y":[P]}],rotate:[{rotate:[Fs,se]}],"translate-x":[{"translate-x":[_]}],"translate-y":[{"translate-y":[_]}],"skew-x":[{"skew-x":[S]}],"skew-y":[{"skew-y":[S]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",se]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",se]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":T()}],"scroll-mx":[{"scroll-mx":T()}],"scroll-my":[{"scroll-my":T()}],"scroll-ms":[{"scroll-ms":T()}],"scroll-me":[{"scroll-me":T()}],"scroll-mt":[{"scroll-mt":T()}],"scroll-mr":[{"scroll-mr":T()}],"scroll-mb":[{"scroll-mb":T()}],"scroll-ml":[{"scroll-ml":T()}],"scroll-p":[{"scroll-p":T()}],"scroll-px":[{"scroll-px":T()}],"scroll-py":[{"scroll-py":T()}],"scroll-ps":[{"scroll-ps":T()}],"scroll-pe":[{"scroll-pe":T()}],"scroll-pt":[{"scroll-pt":T()}],"scroll-pr":[{"scroll-pr":T()}],"scroll-pb":[{"scroll-pb":T()}],"scroll-pl":[{"scroll-pl":T()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",se]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[xr,Xr,Am]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},fj=VT(pj);function Oe(...e){return fj(ue(e))}const dj=mT,mj=hT,o8=k.forwardRef(({className:e,children:t,...n},r)=>b.jsxs(R4,{ref:r,className:Oe("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,b.jsx(vT,{asChild:!0,children:b.jsx(W4,{className:"h-4 w-4 opacity-50"})})]}));o8.displayName=R4.displayName;const i8=k.forwardRef(({className:e,...t},n)=>b.jsx(F4,{ref:n,className:Oe("flex cursor-default items-center justify-center py-1",e),...t,children:b.jsx(_T,{className:"h-4 w-4"})}));i8.displayName=F4.displayName;const s8=k.forwardRef(({className:e,...t},n)=>b.jsx(z4,{ref:n,className:Oe("flex cursor-default items-center justify-center py-1",e),...t,children:b.jsx(W4,{className:"h-4 w-4"})}));s8.displayName=z4.displayName;const l8=k.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>(k.useEffect(()=>{const o=()=>{document.querySelectorAll("[data-radix-popper-content-wrapper]").forEach(l=>{const u=l;u.style.setProperty("--popover","0 0% 100%"),u.style.setProperty("--popover-foreground","222.2 84% 4.9%"),u.style.setProperty("--border","214.3 31.8% 91.4%"),u.style.setProperty("--background","0 0% 100%"),u.style.setProperty("--foreground","222.2 84% 4.9%"),(document.documentElement.classList.contains("dark")||document.body.classList.contains("dark"))&&(u.style.setProperty("--popover","222.2 84% 4.9%"),u.style.setProperty("--popover-foreground","210 40% 98%"),u.style.setProperty("--border","217.2 32.6% 17.5%"),u.style.setProperty("--background","222.2 84% 4.9%"),u.style.setProperty("--foreground","210 40% 98%"))})};o();const i=setTimeout(o,100);return()=>clearTimeout(i)}),b.jsx(yT,{children:b.jsxs(I4,{ref:a,className:Oe("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[b.jsx(i8,{}),b.jsx(gT,{className:Oe("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),b.jsx(s8,{})]})})));l8.displayName=I4.displayName;const hj=k.forwardRef(({className:e,...t},n)=>b.jsx(D4,{ref:n,className:Oe("py-1.5 pl-8 pr-2 text-sm font-semibold",e),...t}));hj.displayName=D4.displayName;const u8=k.forwardRef(({className:e,children:t,...n},r)=>b.jsxs(L4,{ref:r,className:Oe("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[b.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:b.jsx(wT,{children:b.jsx(kT,{className:"h-4 w-4"})})}),b.jsx(xT,{children:t})]}));u8.displayName=L4.displayName;const vj=k.forwardRef(({className:e,...t},n)=>b.jsx(B4,{ref:n,className:Oe("-mx-1 my-1 h-px bg-muted",e),...t}));vj.displayName=B4.displayName;const Vx=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Kx=ue,c8=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return Kx(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:a,defaultVariants:o}=t,i=Object.keys(a).map(u=>{const p=n==null?void 0:n[u],c=o==null?void 0:o[u];if(p===null)return null;const f=Vx(p)||Vx(c);return a[u][f]}),s=n&&Object.entries(n).reduce((u,p)=>{let[c,f]=p;return f===void 0||(u[c]=f),u},{}),l=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((u,p)=>{let{class:c,className:f,...d}=p;return Object.entries(d).every(h=>{let[m,g]=h;return Array.isArray(g)?g.includes({...o,...s}[m]):{...o,...s}[m]===g})?[...u,c,f]:u},[]);return Kx(e,i,l,n==null?void 0:n.class,n==null?void 0:n.className)},yj=c8("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function gj({className:e,variant:t,...n}){return b.jsx("div",{className:Oe(yj({variant:t}),e),...n})}const xj=c8("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),wp=k.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},o)=>{const i=r?sC:"button";return b.jsx(i,{className:Oe(xj({variant:t,size:n,className:e})),ref:o,...a})});wp.displayName="Button";const wj=({selectedVersion:e,availableVersions:t,onVersionChange:n,metadata:r,onDownloadReport:a})=>{const o=p=>{try{return new Date(p).toLocaleDateString()}catch{return p}},i=p=>`https://github.com/envoyproxy/gateway/releases/tag/v${p}`,s=p=>`https://github.com/envoyproxy/gateway/releases/download/v${p}/benchmark_report.zip`,l=()=>{const p=i(e);window.open(p,"_blank","noopener,noreferrer")},u=()=>{const p=s(e);window.open(p,"_blank","noopener,noreferrer")};return b.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3",children:[b.jsxs("div",{className:"flex items-center gap-2",children:[b.jsx("label",{className:"text-sm font-medium text-gray-700",children:"Version:"}),b.jsxs(dj,{value:e,onValueChange:n,children:[b.jsx(o8,{className:"w-32",children:b.jsx(mj,{})}),b.jsx(l8,{children:t.map(p=>b.jsxs(u8,{value:p,children:["v",p]},p))})]})]}),r&&b.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-gray-600",children:[b.jsxs("div",{className:"flex items-center gap-1",children:[b.jsx(OT,{className:"h-3 w-3"}),b.jsx("span",{children:o(r.date)})]}),r.environment&&b.jsx(gj,{variant:"secondary",className:"text-xs",children:r.environment}),r.gitCommit&&b.jsxs("div",{className:"flex items-center gap-1",children:[b.jsx(X4,{className:"h-3 w-3"}),b.jsx("span",{className:"font-mono",children:r.gitCommit.substring(0,7)})]}),r.description&&b.jsx("span",{className:"hidden sm:inline max-w-xs truncate",title:r.description,children:r.description})]}),b.jsxs("div",{className:"flex items-center gap-2 ml-auto",children:[b.jsxs(wp,{variant:"outline",size:"sm",onClick:l,className:"flex items-center gap-1 text-xs",children:[b.jsx(AT,{className:"h-3 w-3"}),"View Release"]}),b.jsxs(wp,{variant:"outline",size:"sm",onClick:u,className:"flex items-center gap-1 text-xs",children:[b.jsx(U4,{className:"h-3 w-3"}),"Download Benchmark"]})]})]})},xe=k.forwardRef(({className:e,...t},n)=>b.jsx("div",{ref:n,className:Oe("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));xe.displayName="Card";const Se=k.forwardRef(({className:e,...t},n)=>b.jsx("div",{ref:n,className:Oe("flex flex-col space-y-1.5 p-6",e),...t}));Se.displayName="CardHeader";const we=k.forwardRef(({className:e,...t},n)=>b.jsx("h3",{ref:n,className:Oe("text-2xl font-semibold leading-none tracking-tight",e),...t}));we.displayName="CardTitle";const tn=k.forwardRef(({className:e,...t},n)=>b.jsx("p",{ref:n,className:Oe("text-sm text-muted-foreground",e),...t}));tn.displayName="CardDescription";const be=k.forwardRef(({className:e,...t},n)=>b.jsx("div",{ref:n,className:Oe("p-6 pt-0",e),...t}));be.displayName="CardContent";const bj=k.forwardRef(({className:e,...t},n)=>b.jsx("div",{ref:n,className:Oe("flex items-center p-6 pt-0",e),...t}));bj.displayName="CardFooter";const Pj=({performanceSummary:e,benchmarkResults:t})=>{const n=Math.round(Math.max(...t.map(i=>i.throughput))),r=Math.round(e.avgLatency/1e3),a=Math.round(Math.max(...t.map(i=>i.resources.envoyGateway.memory.mean+i.resources.envoyProxy.memory.mean))),o=e.maxRoutes;return b.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4 mb-8",children:[b.jsxs(xe,{className:"bg-gradient-to-r from-purple-600 to-indigo-600 text-white",children:[b.jsx(Se,{className:"pb-2",children:b.jsxs(we,{className:"text-sm font-medium flex items-center",children:[b.jsx(G4,{className:"h-4 w-4 mr-2"}),"Max Throughput in Test"]})}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[n.toLocaleString()," RPS"]}),b.jsx("p",{className:"text-purple-100 text-sm",children:"Requests per second"})]})]}),b.jsxs(xe,{className:"bg-gradient-to-r from-purple-600 to-indigo-600 text-white",children:[b.jsx(Se,{className:"pb-2",children:b.jsxs(we,{className:"text-sm font-medium flex items-center",children:[b.jsx(V4,{className:"h-4 w-4 mr-2"}),"Mean Response Time"]})}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[r,"ms"]}),b.jsx("p",{className:"text-purple-100 text-sm",children:"End-to-end via Nighthawk"})]})]}),b.jsxs(xe,{className:"bg-gradient-to-r from-purple-600 to-indigo-600 text-white",children:[b.jsx(Se,{className:"pb-2",children:b.jsxs(we,{className:"text-sm font-medium flex items-center",children:[b.jsx(TT,{className:"h-4 w-4 mr-2"}),"Memory Usage"]})}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[a,"MB"]}),b.jsxs("p",{className:"text-purple-100 text-sm",children:["Peak at ",o," routes"]})]})]}),b.jsxs(xe,{className:"bg-gradient-to-r from-purple-600 to-indigo-600 text-white",children:[b.jsx(Se,{className:"pb-2",children:b.jsxs(we,{className:"text-sm font-medium flex items-center text",children:[b.jsx(Q4,{className:"h-4 w-4 mr-2"}),"Max Routes in Test"]})}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:o.toLocaleString()}),b.jsx("p",{className:"text-purple-100 text-sm",children:"HTTPRoutes tested"})]})]})]})};var Sj=Array.isArray,Vt=Sj,Oj=typeof Bu=="object"&&Bu&&Bu.Object===Object&&Bu,p8=Oj,kj=p8,_j=typeof self=="object"&&self&&self.Object===Object&&self,Cj=kj||_j||Function("return this")(),gr=Cj,Aj=gr,Ej=Aj.Symbol,$u=Ej,Xx=$u,f8=Object.prototype,Tj=f8.hasOwnProperty,jj=f8.toString,Bs=Xx?Xx.toStringTag:void 0;function $j(e){var t=Tj.call(e,Bs),n=e[Bs];try{e[Bs]=void 0;var r=!0}catch{}var a=jj.call(e);return r&&(t?e[Bs]=n:delete e[Bs]),a}var Nj=$j,Mj=Object.prototype,Rj=Mj.toString;function Ij(e){return Rj.call(e)}var Dj=Ij,Yx=$u,Lj=Nj,Fj=Dj,zj="[object Null]",Bj="[object Undefined]",Qx=Yx?Yx.toStringTag:void 0;function Hj(e){return e==null?e===void 0?Bj:zj:Qx&&Qx in Object(e)?Lj(e):Fj(e)}var Ur=Hj;function Gj(e){return e!=null&&typeof e=="object"}var Wr=Gj,Uj=Ur,Wj=Wr,qj="[object Symbol]";function Vj(e){return typeof e=="symbol"||Wj(e)&&Uj(e)==qj}var ys=Vj,Kj=Vt,Xj=ys,Yj=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Qj=/^\w*$/;function Zj(e,t){if(Kj(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||Xj(e)?!0:Qj.test(e)||!Yj.test(e)||t!=null&&e in Object(t)}var Ky=Zj;function Jj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ra=Jj;const gs=Ae(Ra);var e$=Ur,t$=Ra,n$="[object AsyncFunction]",r$="[object Function]",a$="[object GeneratorFunction]",o$="[object Proxy]";function i$(e){if(!t$(e))return!1;var t=e$(e);return t==r$||t==a$||t==n$||t==o$}var Xy=i$;const oe=Ae(Xy);var s$=gr,l$=s$["__core-js_shared__"],u$=l$,Em=u$,Zx=function(){var e=/[^.]+$/.exec(Em&&Em.keys&&Em.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function c$(e){return!!Zx&&Zx in e}var p$=c$,f$=Function.prototype,d$=f$.toString;function m$(e){if(e!=null){try{return d$.call(e)}catch{}try{return e+""}catch{}}return""}var d8=m$,h$=Xy,v$=p$,y$=Ra,g$=d8,x$=/[\\^$.*+?()[\]{}|]/g,w$=/^\[object .+?Constructor\]$/,b$=Function.prototype,P$=Object.prototype,S$=b$.toString,O$=P$.hasOwnProperty,k$=RegExp("^"+S$.call(O$).replace(x$,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _$(e){if(!y$(e)||v$(e))return!1;var t=h$(e)?k$:w$;return t.test(g$(e))}var C$=_$;function A$(e,t){return e==null?void 0:e[t]}var E$=A$,T$=C$,j$=E$;function $$(e,t){var n=j$(e,t);return T$(n)?n:void 0}var jo=$$,N$=jo,M$=N$(Object,"create"),Xf=M$,Jx=Xf;function R$(){this.__data__=Jx?Jx(null):{},this.size=0}var I$=R$;function D$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var L$=D$,F$=Xf,z$="__lodash_hash_undefined__",B$=Object.prototype,H$=B$.hasOwnProperty;function G$(e){var t=this.__data__;if(F$){var n=t[e];return n===z$?void 0:n}return H$.call(t,e)?t[e]:void 0}var U$=G$,W$=Xf,q$=Object.prototype,V$=q$.hasOwnProperty;function K$(e){var t=this.__data__;return W$?t[e]!==void 0:V$.call(t,e)}var X$=K$,Y$=Xf,Q$="__lodash_hash_undefined__";function Z$(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Y$&&t===void 0?Q$:t,this}var J$=Z$,eN=I$,tN=L$,nN=U$,rN=X$,aN=J$;function xs(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}xs.prototype.clear=eN;xs.prototype.delete=tN;xs.prototype.get=nN;xs.prototype.has=rN;xs.prototype.set=aN;var oN=xs;function iN(){this.__data__=[],this.size=0}var sN=iN;function lN(e,t){return e===t||e!==e&&t!==t}var Yy=lN,uN=Yy;function cN(e,t){for(var n=e.length;n--;)if(uN(e[n][0],t))return n;return-1}var Yf=cN,pN=Yf,fN=Array.prototype,dN=fN.splice;function mN(e){var t=this.__data__,n=pN(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():dN.call(t,n,1),--this.size,!0}var hN=mN,vN=Yf;function yN(e){var t=this.__data__,n=vN(t,e);return n<0?void 0:t[n][1]}var gN=yN,xN=Yf;function wN(e){return xN(this.__data__,e)>-1}var bN=wN,PN=Yf;function SN(e,t){var n=this.__data__,r=PN(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var ON=SN,kN=sN,_N=hN,CN=gN,AN=bN,EN=ON;function ws(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ws.prototype.clear=kN;ws.prototype.delete=_N;ws.prototype.get=CN;ws.prototype.has=AN;ws.prototype.set=EN;var Qf=ws,TN=jo,jN=gr,$N=TN(jN,"Map"),Qy=$N,ew=oN,NN=Qf,MN=Qy;function RN(){this.size=0,this.__data__={hash:new ew,map:new(MN||NN),string:new ew}}var IN=RN;function DN(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var LN=DN,FN=LN;function zN(e,t){var n=e.__data__;return FN(t)?n[typeof t=="string"?"string":"hash"]:n.map}var Zf=zN,BN=Zf;function HN(e){var t=BN(this,e).delete(e);return this.size-=t?1:0,t}var GN=HN,UN=Zf;function WN(e){return UN(this,e).get(e)}var qN=WN,VN=Zf;function KN(e){return VN(this,e).has(e)}var XN=KN,YN=Zf;function QN(e,t){var n=YN(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var ZN=QN,JN=IN,eM=GN,tM=qN,nM=XN,rM=ZN;function bs(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}bs.prototype.clear=JN;bs.prototype.delete=eM;bs.prototype.get=tM;bs.prototype.has=nM;bs.prototype.set=rM;var Zy=bs,m8=Zy,aM="Expected a function";function Jy(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(aM);var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],o=n.cache;if(o.has(a))return o.get(a);var i=e.apply(this,r);return n.cache=o.set(a,i)||o,i};return n.cache=new(Jy.Cache||m8),n}Jy.Cache=m8;var h8=Jy;const oM=Ae(h8);var iM=h8,sM=500;function lM(e){var t=iM(e,function(r){return n.size===sM&&n.clear(),r}),n=t.cache;return t}var uM=lM,cM=uM,pM=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,fM=/\\(\\)?/g,dM=cM(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(pM,function(n,r,a,o){t.push(a?o.replace(fM,"$1"):r||n)}),t}),mM=dM;function hM(e,t){for(var n=-1,r=e==null?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a}var eg=hM,tw=$u,vM=eg,yM=Vt,gM=ys,nw=tw?tw.prototype:void 0,rw=nw?nw.toString:void 0;function v8(e){if(typeof e=="string")return e;if(yM(e))return vM(e,v8)+"";if(gM(e))return rw?rw.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}var xM=v8,wM=xM;function bM(e){return e==null?"":wM(e)}var y8=bM,PM=Vt,SM=Ky,OM=mM,kM=y8;function _M(e,t){return PM(e)?e:SM(e,t)?[e]:OM(kM(e))}var g8=_M,CM=ys;function AM(e){if(typeof e=="string"||CM(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}var Jf=AM,EM=g8,TM=Jf;function jM(e,t){t=EM(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[TM(t[n++])];return n&&n==r?e:void 0}var tg=jM,$M=tg;function NM(e,t,n){var r=e==null?void 0:$M(e,t);return r===void 0?n:r}var x8=NM;const gn=Ae(x8);function MM(e){return e==null}var RM=MM;const te=Ae(RM);var IM=Ur,DM=Vt,LM=Wr,FM="[object String]";function zM(e){return typeof e=="string"||!DM(e)&&LM(e)&&IM(e)==FM}var BM=zM;const So=Ae(BM);var w8={exports:{}},_e={};/**
  * @license React
  * react-is.production.min.js
  *
@@ -210,80 +210,80 @@ Error generating stack: `+o.message+`
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
- */var ng=Symbol.for("react.element"),rg=Symbol.for("react.portal"),ed=Symbol.for("react.fragment"),td=Symbol.for("react.strict_mode"),nd=Symbol.for("react.profiler"),rd=Symbol.for("react.provider"),ad=Symbol.for("react.context"),CM=Symbol.for("react.server_context"),od=Symbol.for("react.forward_ref"),id=Symbol.for("react.suspense"),sd=Symbol.for("react.suspense_list"),ld=Symbol.for("react.memo"),ud=Symbol.for("react.lazy"),EM=Symbol.for("react.offscreen"),g8;g8=Symbol.for("react.module.reference");function Pn(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case ng:switch(e=e.type,e){case ed:case nd:case td:case id:case sd:return e;default:switch(e=e&&e.$$typeof,e){case CM:case ad:case od:case ud:case ld:case rd:return e;default:return t}}case rg:return t}}}_e.ContextConsumer=ad;_e.ContextProvider=rd;_e.Element=ng;_e.ForwardRef=od;_e.Fragment=ed;_e.Lazy=ud;_e.Memo=ld;_e.Portal=rg;_e.Profiler=nd;_e.StrictMode=td;_e.Suspense=id;_e.SuspenseList=sd;_e.isAsyncMode=function(){return!1};_e.isConcurrentMode=function(){return!1};_e.isContextConsumer=function(e){return Pn(e)===ad};_e.isContextProvider=function(e){return Pn(e)===rd};_e.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===ng};_e.isForwardRef=function(e){return Pn(e)===od};_e.isFragment=function(e){return Pn(e)===ed};_e.isLazy=function(e){return Pn(e)===ud};_e.isMemo=function(e){return Pn(e)===ld};_e.isPortal=function(e){return Pn(e)===rg};_e.isProfiler=function(e){return Pn(e)===nd};_e.isStrictMode=function(e){return Pn(e)===td};_e.isSuspense=function(e){return Pn(e)===id};_e.isSuspenseList=function(e){return Pn(e)===sd};_e.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===ed||e===nd||e===td||e===id||e===sd||e===EM||typeof e=="object"&&e!==null&&(e.$$typeof===ud||e.$$typeof===ld||e.$$typeof===rd||e.$$typeof===ad||e.$$typeof===od||e.$$typeof===g8||e.getModuleId!==void 0)};_e.typeOf=Pn;y8.exports=_e;var TM=y8.exports,jM=Ur,$M=Wr,NM="[object Number]";function MM(e){return typeof e=="number"||$M(e)&&jM(e)==NM}var x8=MM;const RM=Ce(x8);var IM=x8;function DM(e){return IM(e)&&e!=+e}var LM=DM;const Ps=Ce(LM);var Dn=function(t){return t===0?0:t>0?1:-1},Za=function(t){return So(t)&&t.indexOf("%")===t.length-1},V=function(t){return RM(t)&&!Ps(t)},FM=function(t){return te(t)},it=function(t){return V(t)||So(t)},zM=0,$o=function(t){var n=++zM;return"".concat(t||"").concat(n)},Oo=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!V(t)&&!So(t))return r;var o;if(Za(t)){var i=t.indexOf("%");o=n*parseFloat(t.slice(0,i))/100}else o=+t;return Ps(o)&&(o=r),a&&o>n&&(o=n),o},oa=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},BM=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a<n;a++)if(!r[t[a]])r[t[a]]=!0;else return!0;return!1},Xe=function(t,n){return V(t)&&V(n)?function(r){return t+r*(n-t)}:function(){return n}};function Pf(e,t,n){return!e||!e.length?null:e.find(function(r){return r&&(typeof t=="function"?t(r):gn(r,t))===n})}var HM=function(t){if(!t||!t.length)return null;for(var n=t.length,r=0,a=0,o=0,i=0,s=1/0,l=-1/0,u=0,f=0,c=0;c<n;c++)u=t[c].cx||0,f=t[c].cy||0,r+=u,a+=f,o+=u*f,i+=u*u,s=Math.min(s,u),l=Math.max(l,u);var p=n*i!==r*r?(n*o-r*a)/(n*i-r*r):0;return{xmin:s,xmax:l,a:p,b:(a-p*r)/n}},GM=function(t,n){return V(t)&&V(n)?t-n:So(t)&&So(n)?t.localeCompare(n):t instanceof Date&&n instanceof Date?t.getTime()-n.getTime():String(t).localeCompare(String(n))};function mi(e,t){for(var n in e)if({}.hasOwnProperty.call(e,n)&&(!{}.hasOwnProperty.call(t,n)||e[n]!==t[n]))return!1;for(var r in t)if({}.hasOwnProperty.call(t,r)&&!{}.hasOwnProperty.call(e,r))return!1;return!0}function lv(e){"@babel/helpers - typeof";return lv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lv(e)}var UM=["viewBox","children"],WM=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],nw=["points","pathLength"],Tm={svg:UM,polygon:nw,polyline:nw},ag=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"],Sf=function(t,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var r=t;if(k.isValidElement(t)&&(r=t.props),!gs(r))return null;var a={};return Object.keys(r).forEach(function(o){ag.includes(o)&&(a[o]=n||function(i){return r[o](r,i)})}),a},qM=function(t,n,r){return function(a){return t(n,r,a),null}},Fl=function(t,n,r){if(!gs(t)||lv(t)!=="object")return null;var a=null;return Object.keys(t).forEach(function(o){var i=t[o];ag.includes(o)&&typeof i=="function"&&(a||(a={}),a[o]=qM(i,n,r))}),a},VM=["children"],KM=["children"];function rw(e,t){if(e==null)return{};var n=XM(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function XM(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function uv(e){"@babel/helpers - typeof";return uv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uv(e)}var aw={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},jr=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},ow=null,jm=null,og=function e(t){if(t===ow&&Array.isArray(jm))return jm;var n=[];return k.Children.forEach(t,function(r){te(r)||(TM.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),jm=n,ow=t,n};function qt(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return jr(a)}):r=[jr(t)],og(e).forEach(function(a){var o=gn(a,"type.displayName")||gn(a,"type.name");r.indexOf(o)!==-1&&n.push(a)}),n}function Qt(e,t){var n=qt(e,t);return n&&n[0]}var iw=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!V(r)||r<=0||!V(a)||a<=0)},YM=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],QM=function(t){return t&&t.type&&So(t.type)&&YM.indexOf(t.type)>=0},w8=function(t){return t&&uv(t)==="object"&&"clipDot"in t},ZM=function(t,n,r,a){var o,i=(o=Tm==null?void 0:Tm[a])!==null&&o!==void 0?o:[];return n.startsWith("data-")||!oe(t)&&(a&&i.includes(n)||WM.includes(n))||r&&ag.includes(n)},re=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(k.isValidElement(t)&&(a=t.props),!gs(a))return null;var o={};return Object.keys(a).forEach(function(i){var s;ZM((s=a)===null||s===void 0?void 0:s[i],i,n,r)&&(o[i]=a[i])}),o},cv=function e(t,n){if(t===n)return!0;var r=k.Children.count(t);if(r!==k.Children.count(n))return!1;if(r===0)return!0;if(r===1)return sw(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a<r;a++){var o=t[a],i=n[a];if(Array.isArray(o)||Array.isArray(i)){if(!e(o,i))return!1}else if(!sw(o,i))return!1}return!0},sw=function(t,n){if(te(t)&&te(n))return!0;if(!te(t)&&!te(n)){var r=t.props||{},a=r.children,o=rw(r,VM),i=n.props||{},s=i.children,l=rw(i,KM);return a&&s?mi(o,l)&&cv(a,s):!a&&!s?mi(o,l):!1}return!1},lw=function(t,n){var r=[],a={};return og(t).forEach(function(o,i){if(QM(o))r.push(o);else if(o){var s=jr(o.type),l=n[s]||{},u=l.handler,f=l.once;if(u&&(!f||!a[s])){var c=u(o,s,i);r.push(c),a[s]=!0}}}),r},JM=function(t){var n=t&&t.type;return n&&aw[n]?aw[n]:null},eR=function(t,n){return og(n).indexOf(t)},tR=["children","width","height","viewBox","className","style","title","desc"];function fv(){return fv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},fv.apply(this,arguments)}function nR(e,t){if(e==null)return{};var n=rR(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function rR(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function pv(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,o=e.className,i=e.style,s=e.title,l=e.desc,u=nR(e,tR),f=a||{width:n,height:r,x:0,y:0},c=ue("recharts-surface",o);return C.createElement("svg",fv({},re(u,!0,"svg"),{className:c,width:n,height:r,style:i,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height)}),C.createElement("title",null,s),C.createElement("desc",null,l),t)}var aR=["children","className"];function dv(){return dv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},dv.apply(this,arguments)}function oR(e,t){if(e==null)return{};var n=iR(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function iR(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var ye=C.forwardRef(function(e,t){var n=e.children,r=e.className,a=oR(e,aR),o=ue("recharts-layer",r);return C.createElement("g",dv({className:o},re(a,!0),{ref:t}),n)}),$r=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),o=2;o<r;o++)a[o-2]=arguments[o]};function sR(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),n=n>a?a:n,n<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(a);++r<a;)o[r]=e[r+t];return o}var lR=sR,uR=lR;function cR(e,t,n){var r=e.length;return n=n===void 0?r:n,!t&&n>=r?e:uR(e,t,n)}var fR=cR,pR="\\ud800-\\udfff",dR="\\u0300-\\u036f",mR="\\ufe20-\\ufe2f",hR="\\u20d0-\\u20ff",vR=dR+mR+hR,yR="\\ufe0e\\ufe0f",gR="\\u200d",xR=RegExp("["+gR+pR+vR+yR+"]");function wR(e){return xR.test(e)}var b8=wR;function bR(e){return e.split("")}var PR=bR,P8="\\ud800-\\udfff",SR="\\u0300-\\u036f",OR="\\ufe20-\\ufe2f",kR="\\u20d0-\\u20ff",_R=SR+OR+kR,AR="\\ufe0e\\ufe0f",CR="["+P8+"]",mv="["+_R+"]",hv="\\ud83c[\\udffb-\\udfff]",ER="(?:"+mv+"|"+hv+")",S8="[^"+P8+"]",O8="(?:\\ud83c[\\udde6-\\uddff]){2}",k8="[\\ud800-\\udbff][\\udc00-\\udfff]",TR="\\u200d",_8=ER+"?",A8="["+AR+"]?",jR="(?:"+TR+"(?:"+[S8,O8,k8].join("|")+")"+A8+_8+")*",$R=A8+_8+jR,NR="(?:"+[S8+mv+"?",mv,O8,k8,CR].join("|")+")",MR=RegExp(hv+"(?="+hv+")|"+NR+$R,"g");function RR(e){return e.match(MR)||[]}var IR=RR,DR=PR,LR=b8,FR=IR;function zR(e){return LR(e)?FR(e):DR(e)}var BR=zR,HR=fR,GR=b8,UR=BR,WR=m8;function qR(e){return function(t){t=WR(t);var n=GR(t)?UR(t):void 0,r=n?n[0]:t.charAt(0),a=n?HR(n,1).join(""):t.slice(1);return r[e]()+a}}var VR=qR,KR=VR,XR=KR("toUpperCase"),YR=XR;const cd=Ce(YR);function je(e){return function(){return e}}const C8=Math.cos,Of=Math.sin,Kn=Math.sqrt,kf=Math.PI,fd=2*kf,vv=Math.PI,yv=2*vv,qa=1e-6,QR=yv-qa;function E8(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function ZR(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return E8;const n=10**t;return function(r){this._+=r[0];for(let a=1,o=r.length;a<o;++a)this._+=Math.round(arguments[a]*n)/n+r[a]}}class JR{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?E8:ZR(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,r,a){this._append`Q${+t},${+n},${this._x1=+r},${this._y1=+a}`}bezierCurveTo(t,n,r,a,o,i){this._append`C${+t},${+n},${+r},${+a},${this._x1=+o},${this._y1=+i}`}arcTo(t,n,r,a,o){if(t=+t,n=+n,r=+r,a=+a,o=+o,o<0)throw new Error(`negative radius: ${o}`);let i=this._x1,s=this._y1,l=r-t,u=a-n,f=i-t,c=s-n,p=f*f+c*c;if(this._x1===null)this._append`M${this._x1=t},${this._y1=n}`;else if(p>qa)if(!(Math.abs(c*l-u*f)>qa)||!o)this._append`L${this._x1=t},${this._y1=n}`;else{let d=r-i,h=a-s,m=l*l+u*u,g=d*d+h*h,v=Math.sqrt(m),y=Math.sqrt(p),x=o*Math.tan((vv-Math.acos((m+p-g)/(2*v*y)))/2),P=x/y,w=x/v;Math.abs(P-1)>qa&&this._append`L${t+P*f},${n+P*c}`,this._append`A${o},${o},0,0,${+(c*d>f*h)},${this._x1=t+w*l},${this._y1=n+w*u}`}}arc(t,n,r,a,o,i){if(t=+t,n=+n,r=+r,i=!!i,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(a),l=r*Math.sin(a),u=t+s,f=n+l,c=1^i,p=i?a-o:o-a;this._x1===null?this._append`M${u},${f}`:(Math.abs(this._x1-u)>qa||Math.abs(this._y1-f)>qa)&&this._append`L${u},${f}`,r&&(p<0&&(p=p%yv+yv),p>QR?this._append`A${r},${r},0,1,${c},${t-s},${n-l}A${r},${r},0,1,${c},${this._x1=u},${this._y1=f}`:p>qa&&this._append`A${r},${r},0,${+(p>=vv)},${c},${this._x1=t+r*Math.cos(o)},${this._y1=n+r*Math.sin(o)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function ig(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 JR(t)}function sg(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function T8(e){this._context=e}T8.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(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;default:this._context.lineTo(e,t);break}}};function pd(e){return new T8(e)}function j8(e){return e[0]}function $8(e){return e[1]}function N8(e,t){var n=je(!0),r=null,a=pd,o=null,i=ig(s);e=typeof e=="function"?e:e===void 0?j8:je(e),t=typeof t=="function"?t:t===void 0?$8:je(t);function s(l){var u,f=(l=sg(l)).length,c,p=!1,d;for(r==null&&(o=a(d=i())),u=0;u<=f;++u)!(u<f&&n(c=l[u],u,l))===p&&((p=!p)?o.lineStart():o.lineEnd()),p&&o.point(+e(c,u,l),+t(c,u,l));if(d)return o=null,d+""||null}return s.x=function(l){return arguments.length?(e=typeof l=="function"?l:je(+l),s):e},s.y=function(l){return arguments.length?(t=typeof l=="function"?l:je(+l),s):t},s.defined=function(l){return arguments.length?(n=typeof l=="function"?l:je(!!l),s):n},s.curve=function(l){return arguments.length?(a=l,r!=null&&(o=a(r)),s):a},s.context=function(l){return arguments.length?(l==null?r=o=null:o=a(r=l),s):r},s}function cc(e,t,n){var r=null,a=je(!0),o=null,i=pd,s=null,l=ig(u);e=typeof e=="function"?e:e===void 0?j8:je(+e),t=typeof t=="function"?t:je(t===void 0?0:+t),n=typeof n=="function"?n:n===void 0?$8:je(+n);function u(c){var p,d,h,m=(c=sg(c)).length,g,v=!1,y,x=new Array(m),P=new Array(m);for(o==null&&(s=i(y=l())),p=0;p<=m;++p){if(!(p<m&&a(g=c[p],p,c))===v)if(v=!v)d=p,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),h=p-1;h>=d;--h)s.point(x[h],P[h]);s.lineEnd(),s.areaEnd()}v&&(x[p]=+e(g,p,c),P[p]=+t(g,p,c),s.point(r?+r(g,p,c):x[p],n?+n(g,p,c):P[p]))}if(y)return s=null,y+""||null}function f(){return N8().defined(a).curve(i).context(o)}return u.x=function(c){return arguments.length?(e=typeof c=="function"?c:je(+c),r=null,u):e},u.x0=function(c){return arguments.length?(e=typeof c=="function"?c:je(+c),u):e},u.x1=function(c){return arguments.length?(r=c==null?null:typeof c=="function"?c:je(+c),u):r},u.y=function(c){return arguments.length?(t=typeof c=="function"?c:je(+c),n=null,u):t},u.y0=function(c){return arguments.length?(t=typeof c=="function"?c:je(+c),u):t},u.y1=function(c){return arguments.length?(n=c==null?null:typeof c=="function"?c:je(+c),u):n},u.lineX0=u.lineY0=function(){return f().x(e).y(t)},u.lineY1=function(){return f().x(e).y(n)},u.lineX1=function(){return f().x(r).y(t)},u.defined=function(c){return arguments.length?(a=typeof c=="function"?c:je(!!c),u):a},u.curve=function(c){return arguments.length?(i=c,o!=null&&(s=i(o)),u):i},u.context=function(c){return arguments.length?(c==null?o=s=null:s=i(o=c),u):o},u}class M8{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function eI(e){return new M8(e,!0)}function tI(e){return new M8(e,!1)}const lg={draw(e,t){const n=Kn(t/kf);e.moveTo(n,0),e.arc(0,0,n,0,fd)}},nI={draw(e,t){const n=Kn(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},R8=Kn(1/3),rI=R8*2,aI={draw(e,t){const n=Kn(t/rI),r=n*R8;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},oI={draw(e,t){const n=Kn(t),r=-n/2;e.rect(r,r,n,n)}},iI=.8908130915292852,I8=Of(kf/10)/Of(7*kf/10),sI=Of(fd/10)*I8,lI=-C8(fd/10)*I8,uI={draw(e,t){const n=Kn(t*iI),r=sI*n,a=lI*n;e.moveTo(0,-n),e.lineTo(r,a);for(let o=1;o<5;++o){const i=fd*o/5,s=C8(i),l=Of(i);e.lineTo(l*n,-s*n),e.lineTo(s*r-l*a,l*r+s*a)}e.closePath()}},$m=Kn(3),cI={draw(e,t){const n=-Kn(t/($m*3));e.moveTo(0,n*2),e.lineTo(-$m*n,-n),e.lineTo($m*n,-n),e.closePath()}},ln=-.5,un=Kn(3)/2,gv=1/Kn(12),fI=(gv/2+1)*3,pI={draw(e,t){const n=Kn(t/fI),r=n/2,a=n*gv,o=r,i=n*gv+n,s=-o,l=i;e.moveTo(r,a),e.lineTo(o,i),e.lineTo(s,l),e.lineTo(ln*r-un*a,un*r+ln*a),e.lineTo(ln*o-un*i,un*o+ln*i),e.lineTo(ln*s-un*l,un*s+ln*l),e.lineTo(ln*r+un*a,ln*a-un*r),e.lineTo(ln*o+un*i,ln*i-un*o),e.lineTo(ln*s+un*l,ln*l-un*s),e.closePath()}};function dI(e,t){let n=null,r=ig(a);e=typeof e=="function"?e:je(e||lg),t=typeof t=="function"?t:je(t===void 0?64:+t);function a(){let o;if(n||(n=o=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return a.type=function(o){return arguments.length?(e=typeof o=="function"?o:je(o),a):e},a.size=function(o){return arguments.length?(t=typeof o=="function"?o:je(+o),a):t},a.context=function(o){return arguments.length?(n=o??null,a):n},a}function _f(){}function Af(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 D8(e){this._context=e}D8.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:Af(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:Af(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function mI(e){return new D8(e)}function L8(e){this._context=e}L8.prototype={areaStart:_f,areaEnd:_f,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:Af(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function hI(e){return new L8(e)}function F8(e){this._context=e}F8.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:Af(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function vI(e){return new F8(e)}function z8(e){this._context=e}z8.prototype={areaStart:_f,areaEnd:_f,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 yI(e){return new z8(e)}function uw(e){return e<0?-1:1}function cw(e,t,n){var r=e._x1-e._x0,a=t-e._x1,o=(e._y1-e._y0)/(r||a<0&&-0),i=(n-e._y1)/(a||r<0&&-0),s=(o*a+i*r)/(r+a);return(uw(o)+uw(i))*Math.min(Math.abs(o),Math.abs(i),.5*Math.abs(s))||0}function fw(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Nm(e,t,n){var r=e._x0,a=e._y0,o=e._x1,i=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,a+s*t,o-s,i-s*n,o,i)}function Cf(e){this._context=e}Cf.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:Nm(this,this._t0,fw(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,Nm(this,fw(this,n=cw(this,e,t)),n);break;default:Nm(this,this._t0,n=cw(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function B8(e){this._context=new H8(e)}(B8.prototype=Object.create(Cf.prototype)).point=function(e,t){Cf.prototype.point.call(this,t,e)};function H8(e){this._context=e}H8.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,a,o){this._context.bezierCurveTo(t,e,r,n,o,a)}};function gI(e){return new Cf(e)}function xI(e){return new B8(e)}function G8(e){this._context=e}G8.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=pw(e),a=pw(t),o=0,i=1;i<n;++o,++i)this._context.bezierCurveTo(r[0][o],a[0][o],r[1][o],a[1][o],e[i],t[i]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function pw(e){var t,n=e.length-1,r,a=new Array(n),o=new Array(n),i=new Array(n);for(a[0]=0,o[0]=2,i[0]=e[0]+2*e[1],t=1;t<n-1;++t)a[t]=1,o[t]=4,i[t]=4*e[t]+2*e[t+1];for(a[n-1]=2,o[n-1]=7,i[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)r=a[t]/o[t-1],o[t]-=r,i[t]-=r*i[t-1];for(a[n-1]=i[n-1]/o[n-1],t=n-2;t>=0;--t)a[t]=(i[t]-a[t+1])/o[t];for(o[n-1]=(e[n]+a[n-1])/2,t=0;t<n-1;++t)o[t]=2*e[t+1]-a[t+1];return[a,o]}function wI(e){return new G8(e)}function dd(e,t){this._context=e,this._t=t}dd.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=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 bI(e){return new dd(e,.5)}function PI(e){return new dd(e,0)}function SI(e){return new dd(e,1)}function Ri(e,t){if((i=e.length)>1)for(var n=1,r,a,o=e[t[0]],i,s=o.length;n<i;++n)for(a=o,o=e[t[n]],r=0;r<s;++r)o[r][1]+=o[r][0]=isNaN(a[r][1])?a[r][0]:a[r][1]}function xv(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}function OI(e,t){return e[t]}function kI(e){const t=[];return t.key=e,t}function _I(){var e=je([]),t=xv,n=Ri,r=OI;function a(o){var i=Array.from(e.apply(this,arguments),kI),s,l=i.length,u=-1,f;for(const c of o)for(s=0,++u;s<l;++s)(i[s][u]=[0,+r(c,i[s].key,u,o)]).data=c;for(s=0,f=sg(t(i));s<l;++s)i[f[s]].index=s;return n(i,f),i}return a.keys=function(o){return arguments.length?(e=typeof o=="function"?o:je(Array.from(o)),a):e},a.value=function(o){return arguments.length?(r=typeof o=="function"?o:je(+o),a):r},a.order=function(o){return arguments.length?(t=o==null?xv:typeof o=="function"?o:je(Array.from(o)),a):t},a.offset=function(o){return arguments.length?(n=o??Ri,a):n},a}function AI(e,t){if((r=e.length)>0){for(var n,r,a=0,o=e[0].length,i;a<o;++a){for(i=n=0;n<r;++n)i+=e[n][a][1]||0;if(i)for(n=0;n<r;++n)e[n][a][1]/=i}Ri(e,t)}}function CI(e,t){if((a=e.length)>0){for(var n=0,r=e[t[0]],a,o=r.length;n<o;++n){for(var i=0,s=0;i<a;++i)s+=e[i][n][1]||0;r[n][1]+=r[n][0]=-s/2}Ri(e,t)}}function EI(e,t){if(!(!((i=e.length)>0)||!((o=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,o,i;r<o;++r){for(var s=0,l=0,u=0;s<i;++s){for(var f=e[t[s]],c=f[r][1]||0,p=f[r-1][1]||0,d=(c-p)/2,h=0;h<s;++h){var m=e[t[h]],g=m[r][1]||0,v=m[r-1][1]||0;d+=g-v}l+=c,u+=d*c}a[r-1][1]+=a[r-1][0]=n,l&&(n-=u/l)}a[r-1][1]+=a[r-1][0]=n,Ri(e,t)}}function zl(e){"@babel/helpers - typeof";return zl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zl(e)}var TI=["type","size","sizeType"];function wv(){return wv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},wv.apply(this,arguments)}function dw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function mw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?dw(Object(n),!0).forEach(function(r){jI(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function jI(e,t,n){return t=$I(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $I(e){var t=NI(e,"string");return zl(t)=="symbol"?t:t+""}function NI(e,t){if(zl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(zl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function MI(e,t){if(e==null)return{};var n=RI(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function RI(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var U8={symbolCircle:lg,symbolCross:nI,symbolDiamond:aI,symbolSquare:oI,symbolStar:uI,symbolTriangle:cI,symbolWye:pI},II=Math.PI/180,DI=function(t){var n="symbol".concat(cd(t));return U8[n]||lg},LI=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*II;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},FI=function(t,n){U8["symbol".concat(cd(t))]=n},md=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,o=a===void 0?64:a,i=t.sizeType,s=i===void 0?"area":i,l=MI(t,TI),u=mw(mw({},l),{},{type:r,size:o,sizeType:s}),f=function(){var g=DI(r),v=dI().type(g).size(LI(o,s,r));return v()},c=u.className,p=u.cx,d=u.cy,h=re(u,!0);return p===+p&&d===+d&&o===+o?C.createElement("path",wv({},h,{className:ue("recharts-symbols",c),transform:"translate(".concat(p,", ").concat(d,")"),d:f()})):null};md.registerSymbol=FI;function Ii(e){"@babel/helpers - typeof";return Ii=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ii(e)}function bv(){return bv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},bv.apply(this,arguments)}function hw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function zI(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?hw(Object(n),!0).forEach(function(r){Bl(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function BI(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function HI(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,q8(r.key),r)}}function GI(e,t,n){return t&&HI(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function UI(e,t,n){return t=Ef(t),WI(e,W8()?Reflect.construct(t,n||[],Ef(e).constructor):t.apply(e,n))}function WI(e,t){if(t&&(Ii(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return qI(e)}function qI(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function W8(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(W8=function(){return!!e})()}function Ef(e){return Ef=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ef(e)}function VI(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Pv(e,t)}function Pv(e,t){return Pv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Pv(e,t)}function Bl(e,t,n){return t=q8(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function q8(e){var t=KI(e,"string");return Ii(t)=="symbol"?t:t+""}function KI(e,t){if(Ii(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ii(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var cn=32,ug=function(e){function t(){return BI(this,t),UI(this,t,arguments)}return VI(t,e),GI(t,[{key:"renderIcon",value:function(r){var a=this.props.inactiveColor,o=cn/2,i=cn/6,s=cn/3,l=r.inactive?a:r.color;if(r.type==="plainline")return C.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:r.payload.strokeDasharray,x1:0,y1:o,x2:cn,y2:o,className:"recharts-legend-icon"});if(r.type==="line")return C.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(o,"h").concat(s,`
+ */var ng=Symbol.for("react.element"),rg=Symbol.for("react.portal"),ed=Symbol.for("react.fragment"),td=Symbol.for("react.strict_mode"),nd=Symbol.for("react.profiler"),rd=Symbol.for("react.provider"),ad=Symbol.for("react.context"),HM=Symbol.for("react.server_context"),od=Symbol.for("react.forward_ref"),id=Symbol.for("react.suspense"),sd=Symbol.for("react.suspense_list"),ld=Symbol.for("react.memo"),ud=Symbol.for("react.lazy"),GM=Symbol.for("react.offscreen"),b8;b8=Symbol.for("react.module.reference");function Pn(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case ng:switch(e=e.type,e){case ed:case nd:case td:case id:case sd:return e;default:switch(e=e&&e.$$typeof,e){case HM:case ad:case od:case ud:case ld:case rd:return e;default:return t}}case rg:return t}}}_e.ContextConsumer=ad;_e.ContextProvider=rd;_e.Element=ng;_e.ForwardRef=od;_e.Fragment=ed;_e.Lazy=ud;_e.Memo=ld;_e.Portal=rg;_e.Profiler=nd;_e.StrictMode=td;_e.Suspense=id;_e.SuspenseList=sd;_e.isAsyncMode=function(){return!1};_e.isConcurrentMode=function(){return!1};_e.isContextConsumer=function(e){return Pn(e)===ad};_e.isContextProvider=function(e){return Pn(e)===rd};_e.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===ng};_e.isForwardRef=function(e){return Pn(e)===od};_e.isFragment=function(e){return Pn(e)===ed};_e.isLazy=function(e){return Pn(e)===ud};_e.isMemo=function(e){return Pn(e)===ld};_e.isPortal=function(e){return Pn(e)===rg};_e.isProfiler=function(e){return Pn(e)===nd};_e.isStrictMode=function(e){return Pn(e)===td};_e.isSuspense=function(e){return Pn(e)===id};_e.isSuspenseList=function(e){return Pn(e)===sd};_e.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===ed||e===nd||e===td||e===id||e===sd||e===GM||typeof e=="object"&&e!==null&&(e.$$typeof===ud||e.$$typeof===ld||e.$$typeof===rd||e.$$typeof===ad||e.$$typeof===od||e.$$typeof===b8||e.getModuleId!==void 0)};_e.typeOf=Pn;w8.exports=_e;var UM=w8.exports,WM=Ur,qM=Wr,VM="[object Number]";function KM(e){return typeof e=="number"||qM(e)&&WM(e)==VM}var P8=KM;const XM=Ae(P8);var YM=P8;function QM(e){return YM(e)&&e!=+e}var ZM=QM;const Ps=Ae(ZM);var Dn=function(t){return t===0?0:t>0?1:-1},Za=function(t){return So(t)&&t.indexOf("%")===t.length-1},V=function(t){return XM(t)&&!Ps(t)},JM=function(t){return te(t)},it=function(t){return V(t)||So(t)},eR=0,$o=function(t){var n=++eR;return"".concat(t||"").concat(n)},Oo=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!V(t)&&!So(t))return r;var o;if(Za(t)){var i=t.indexOf("%");o=n*parseFloat(t.slice(0,i))/100}else o=+t;return Ps(o)&&(o=r),a&&o>n&&(o=n),o},oa=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},tR=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a<n;a++)if(!r[t[a]])r[t[a]]=!0;else return!0;return!1},Xe=function(t,n){return V(t)&&V(n)?function(r){return t+r*(n-t)}:function(){return n}};function bp(e,t,n){return!e||!e.length?null:e.find(function(r){return r&&(typeof t=="function"?t(r):gn(r,t))===n})}var nR=function(t){if(!t||!t.length)return null;for(var n=t.length,r=0,a=0,o=0,i=0,s=1/0,l=-1/0,u=0,p=0,c=0;c<n;c++)u=t[c].cx||0,p=t[c].cy||0,r+=u,a+=p,o+=u*p,i+=u*u,s=Math.min(s,u),l=Math.max(l,u);var f=n*i!==r*r?(n*o-r*a)/(n*i-r*r):0;return{xmin:s,xmax:l,a:f,b:(a-f*r)/n}},rR=function(t,n){return V(t)&&V(n)?t-n:So(t)&&So(n)?t.localeCompare(n):t instanceof Date&&n instanceof Date?t.getTime()-n.getTime():String(t).localeCompare(String(n))};function mi(e,t){for(var n in e)if({}.hasOwnProperty.call(e,n)&&(!{}.hasOwnProperty.call(t,n)||e[n]!==t[n]))return!1;for(var r in t)if({}.hasOwnProperty.call(t,r)&&!{}.hasOwnProperty.call(e,r))return!1;return!0}function l0(e){"@babel/helpers - typeof";return l0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},l0(e)}var aR=["viewBox","children"],oR=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],aw=["points","pathLength"],Tm={svg:aR,polygon:aw,polyline:aw},ag=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"],Pp=function(t,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var r=t;if(k.isValidElement(t)&&(r=t.props),!gs(r))return null;var a={};return Object.keys(r).forEach(function(o){ag.includes(o)&&(a[o]=n||function(i){return r[o](r,i)})}),a},iR=function(t,n,r){return function(a){return t(n,r,a),null}},Fl=function(t,n,r){if(!gs(t)||l0(t)!=="object")return null;var a=null;return Object.keys(t).forEach(function(o){var i=t[o];ag.includes(o)&&typeof i=="function"&&(a||(a={}),a[o]=iR(i,n,r))}),a},sR=["children"],lR=["children"];function ow(e,t){if(e==null)return{};var n=uR(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function uR(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function u0(e){"@babel/helpers - typeof";return u0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u0(e)}var iw={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},jr=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},sw=null,jm=null,og=function e(t){if(t===sw&&Array.isArray(jm))return jm;var n=[];return k.Children.forEach(t,function(r){te(r)||(UM.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),jm=n,sw=t,n};function qt(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return jr(a)}):r=[jr(t)],og(e).forEach(function(a){var o=gn(a,"type.displayName")||gn(a,"type.name");r.indexOf(o)!==-1&&n.push(a)}),n}function Qt(e,t){var n=qt(e,t);return n&&n[0]}var lw=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!V(r)||r<=0||!V(a)||a<=0)},cR=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],pR=function(t){return t&&t.type&&So(t.type)&&cR.indexOf(t.type)>=0},S8=function(t){return t&&u0(t)==="object"&&"clipDot"in t},fR=function(t,n,r,a){var o,i=(o=Tm==null?void 0:Tm[a])!==null&&o!==void 0?o:[];return n.startsWith("data-")||!oe(t)&&(a&&i.includes(n)||oR.includes(n))||r&&ag.includes(n)},re=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(k.isValidElement(t)&&(a=t.props),!gs(a))return null;var o={};return Object.keys(a).forEach(function(i){var s;fR((s=a)===null||s===void 0?void 0:s[i],i,n,r)&&(o[i]=a[i])}),o},c0=function e(t,n){if(t===n)return!0;var r=k.Children.count(t);if(r!==k.Children.count(n))return!1;if(r===0)return!0;if(r===1)return uw(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a<r;a++){var o=t[a],i=n[a];if(Array.isArray(o)||Array.isArray(i)){if(!e(o,i))return!1}else if(!uw(o,i))return!1}return!0},uw=function(t,n){if(te(t)&&te(n))return!0;if(!te(t)&&!te(n)){var r=t.props||{},a=r.children,o=ow(r,sR),i=n.props||{},s=i.children,l=ow(i,lR);return a&&s?mi(o,l)&&c0(a,s):!a&&!s?mi(o,l):!1}return!1},cw=function(t,n){var r=[],a={};return og(t).forEach(function(o,i){if(pR(o))r.push(o);else if(o){var s=jr(o.type),l=n[s]||{},u=l.handler,p=l.once;if(u&&(!p||!a[s])){var c=u(o,s,i);r.push(c),a[s]=!0}}}),r},dR=function(t){var n=t&&t.type;return n&&iw[n]?iw[n]:null},mR=function(t,n){return og(n).indexOf(t)},hR=["children","width","height","viewBox","className","style","title","desc"];function p0(){return p0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p0.apply(this,arguments)}function vR(e,t){if(e==null)return{};var n=yR(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function yR(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function f0(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,o=e.className,i=e.style,s=e.title,l=e.desc,u=vR(e,hR),p=a||{width:n,height:r,x:0,y:0},c=ue("recharts-surface",o);return A.createElement("svg",p0({},re(u,!0,"svg"),{className:c,width:n,height:r,style:i,viewBox:"".concat(p.x," ").concat(p.y," ").concat(p.width," ").concat(p.height)}),A.createElement("title",null,s),A.createElement("desc",null,l),t)}var gR=["children","className"];function d0(){return d0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d0.apply(this,arguments)}function xR(e,t){if(e==null)return{};var n=wR(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function wR(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var ye=A.forwardRef(function(e,t){var n=e.children,r=e.className,a=xR(e,gR),o=ue("recharts-layer",r);return A.createElement("g",d0({className:o},re(a,!0),{ref:t}),n)}),$r=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),o=2;o<r;o++)a[o-2]=arguments[o]};function bR(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),n=n>a?a:n,n<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(a);++r<a;)o[r]=e[r+t];return o}var PR=bR,SR=PR;function OR(e,t,n){var r=e.length;return n=n===void 0?r:n,!t&&n>=r?e:SR(e,t,n)}var kR=OR,_R="\\ud800-\\udfff",CR="\\u0300-\\u036f",AR="\\ufe20-\\ufe2f",ER="\\u20d0-\\u20ff",TR=CR+AR+ER,jR="\\ufe0e\\ufe0f",$R="\\u200d",NR=RegExp("["+$R+_R+TR+jR+"]");function MR(e){return NR.test(e)}var O8=MR;function RR(e){return e.split("")}var IR=RR,k8="\\ud800-\\udfff",DR="\\u0300-\\u036f",LR="\\ufe20-\\ufe2f",FR="\\u20d0-\\u20ff",zR=DR+LR+FR,BR="\\ufe0e\\ufe0f",HR="["+k8+"]",m0="["+zR+"]",h0="\\ud83c[\\udffb-\\udfff]",GR="(?:"+m0+"|"+h0+")",_8="[^"+k8+"]",C8="(?:\\ud83c[\\udde6-\\uddff]){2}",A8="[\\ud800-\\udbff][\\udc00-\\udfff]",UR="\\u200d",E8=GR+"?",T8="["+BR+"]?",WR="(?:"+UR+"(?:"+[_8,C8,A8].join("|")+")"+T8+E8+")*",qR=T8+E8+WR,VR="(?:"+[_8+m0+"?",m0,C8,A8,HR].join("|")+")",KR=RegExp(h0+"(?="+h0+")|"+VR+qR,"g");function XR(e){return e.match(KR)||[]}var YR=XR,QR=IR,ZR=O8,JR=YR;function eI(e){return ZR(e)?JR(e):QR(e)}var tI=eI,nI=kR,rI=O8,aI=tI,oI=y8;function iI(e){return function(t){t=oI(t);var n=rI(t)?aI(t):void 0,r=n?n[0]:t.charAt(0),a=n?nI(n,1).join(""):t.slice(1);return r[e]()+a}}var sI=iI,lI=sI,uI=lI("toUpperCase"),cI=uI;const cd=Ae(cI);function je(e){return function(){return e}}const j8=Math.cos,Sp=Math.sin,Kn=Math.sqrt,Op=Math.PI,pd=2*Op,v0=Math.PI,y0=2*v0,qa=1e-6,pI=y0-qa;function $8(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function fI(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return $8;const n=10**t;return function(r){this._+=r[0];for(let a=1,o=r.length;a<o;++a)this._+=Math.round(arguments[a]*n)/n+r[a]}}class dI{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?$8:fI(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,r,a){this._append`Q${+t},${+n},${this._x1=+r},${this._y1=+a}`}bezierCurveTo(t,n,r,a,o,i){this._append`C${+t},${+n},${+r},${+a},${this._x1=+o},${this._y1=+i}`}arcTo(t,n,r,a,o){if(t=+t,n=+n,r=+r,a=+a,o=+o,o<0)throw new Error(`negative radius: ${o}`);let i=this._x1,s=this._y1,l=r-t,u=a-n,p=i-t,c=s-n,f=p*p+c*c;if(this._x1===null)this._append`M${this._x1=t},${this._y1=n}`;else if(f>qa)if(!(Math.abs(c*l-u*p)>qa)||!o)this._append`L${this._x1=t},${this._y1=n}`;else{let d=r-i,h=a-s,m=l*l+u*u,g=d*d+h*h,v=Math.sqrt(m),y=Math.sqrt(f),x=o*Math.tan((v0-Math.acos((m+f-g)/(2*v*y)))/2),P=x/y,w=x/v;Math.abs(P-1)>qa&&this._append`L${t+P*p},${n+P*c}`,this._append`A${o},${o},0,0,${+(c*d>p*h)},${this._x1=t+w*l},${this._y1=n+w*u}`}}arc(t,n,r,a,o,i){if(t=+t,n=+n,r=+r,i=!!i,r<0)throw new Error(`negative radius: ${r}`);let s=r*Math.cos(a),l=r*Math.sin(a),u=t+s,p=n+l,c=1^i,f=i?a-o:o-a;this._x1===null?this._append`M${u},${p}`:(Math.abs(this._x1-u)>qa||Math.abs(this._y1-p)>qa)&&this._append`L${u},${p}`,r&&(f<0&&(f=f%y0+y0),f>pI?this._append`A${r},${r},0,1,${c},${t-s},${n-l}A${r},${r},0,1,${c},${this._x1=u},${this._y1=p}`:f>qa&&this._append`A${r},${r},0,${+(f>=v0)},${c},${this._x1=t+r*Math.cos(o)},${this._y1=n+r*Math.sin(o)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function ig(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 dI(t)}function sg(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function N8(e){this._context=e}N8.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(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;default:this._context.lineTo(e,t);break}}};function fd(e){return new N8(e)}function M8(e){return e[0]}function R8(e){return e[1]}function I8(e,t){var n=je(!0),r=null,a=fd,o=null,i=ig(s);e=typeof e=="function"?e:e===void 0?M8:je(e),t=typeof t=="function"?t:t===void 0?R8:je(t);function s(l){var u,p=(l=sg(l)).length,c,f=!1,d;for(r==null&&(o=a(d=i())),u=0;u<=p;++u)!(u<p&&n(c=l[u],u,l))===f&&((f=!f)?o.lineStart():o.lineEnd()),f&&o.point(+e(c,u,l),+t(c,u,l));if(d)return o=null,d+""||null}return s.x=function(l){return arguments.length?(e=typeof l=="function"?l:je(+l),s):e},s.y=function(l){return arguments.length?(t=typeof l=="function"?l:je(+l),s):t},s.defined=function(l){return arguments.length?(n=typeof l=="function"?l:je(!!l),s):n},s.curve=function(l){return arguments.length?(a=l,r!=null&&(o=a(r)),s):a},s.context=function(l){return arguments.length?(l==null?r=o=null:o=a(r=l),s):r},s}function cc(e,t,n){var r=null,a=je(!0),o=null,i=fd,s=null,l=ig(u);e=typeof e=="function"?e:e===void 0?M8:je(+e),t=typeof t=="function"?t:je(t===void 0?0:+t),n=typeof n=="function"?n:n===void 0?R8:je(+n);function u(c){var f,d,h,m=(c=sg(c)).length,g,v=!1,y,x=new Array(m),P=new Array(m);for(o==null&&(s=i(y=l())),f=0;f<=m;++f){if(!(f<m&&a(g=c[f],f,c))===v)if(v=!v)d=f,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),h=f-1;h>=d;--h)s.point(x[h],P[h]);s.lineEnd(),s.areaEnd()}v&&(x[f]=+e(g,f,c),P[f]=+t(g,f,c),s.point(r?+r(g,f,c):x[f],n?+n(g,f,c):P[f]))}if(y)return s=null,y+""||null}function p(){return I8().defined(a).curve(i).context(o)}return u.x=function(c){return arguments.length?(e=typeof c=="function"?c:je(+c),r=null,u):e},u.x0=function(c){return arguments.length?(e=typeof c=="function"?c:je(+c),u):e},u.x1=function(c){return arguments.length?(r=c==null?null:typeof c=="function"?c:je(+c),u):r},u.y=function(c){return arguments.length?(t=typeof c=="function"?c:je(+c),n=null,u):t},u.y0=function(c){return arguments.length?(t=typeof c=="function"?c:je(+c),u):t},u.y1=function(c){return arguments.length?(n=c==null?null:typeof c=="function"?c:je(+c),u):n},u.lineX0=u.lineY0=function(){return p().x(e).y(t)},u.lineY1=function(){return p().x(e).y(n)},u.lineX1=function(){return p().x(r).y(t)},u.defined=function(c){return arguments.length?(a=typeof c=="function"?c:je(!!c),u):a},u.curve=function(c){return arguments.length?(i=c,o!=null&&(s=i(o)),u):i},u.context=function(c){return arguments.length?(c==null?o=s=null:s=i(o=c),u):o},u}class D8{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function mI(e){return new D8(e,!0)}function hI(e){return new D8(e,!1)}const lg={draw(e,t){const n=Kn(t/Op);e.moveTo(n,0),e.arc(0,0,n,0,pd)}},vI={draw(e,t){const n=Kn(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},L8=Kn(1/3),yI=L8*2,gI={draw(e,t){const n=Kn(t/yI),r=n*L8;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},xI={draw(e,t){const n=Kn(t),r=-n/2;e.rect(r,r,n,n)}},wI=.8908130915292852,F8=Sp(Op/10)/Sp(7*Op/10),bI=Sp(pd/10)*F8,PI=-j8(pd/10)*F8,SI={draw(e,t){const n=Kn(t*wI),r=bI*n,a=PI*n;e.moveTo(0,-n),e.lineTo(r,a);for(let o=1;o<5;++o){const i=pd*o/5,s=j8(i),l=Sp(i);e.lineTo(l*n,-s*n),e.lineTo(s*r-l*a,l*r+s*a)}e.closePath()}},$m=Kn(3),OI={draw(e,t){const n=-Kn(t/($m*3));e.moveTo(0,n*2),e.lineTo(-$m*n,-n),e.lineTo($m*n,-n),e.closePath()}},ln=-.5,un=Kn(3)/2,g0=1/Kn(12),kI=(g0/2+1)*3,_I={draw(e,t){const n=Kn(t/kI),r=n/2,a=n*g0,o=r,i=n*g0+n,s=-o,l=i;e.moveTo(r,a),e.lineTo(o,i),e.lineTo(s,l),e.lineTo(ln*r-un*a,un*r+ln*a),e.lineTo(ln*o-un*i,un*o+ln*i),e.lineTo(ln*s-un*l,un*s+ln*l),e.lineTo(ln*r+un*a,ln*a-un*r),e.lineTo(ln*o+un*i,ln*i-un*o),e.lineTo(ln*s+un*l,ln*l-un*s),e.closePath()}};function CI(e,t){let n=null,r=ig(a);e=typeof e=="function"?e:je(e||lg),t=typeof t=="function"?t:je(t===void 0?64:+t);function a(){let o;if(n||(n=o=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return a.type=function(o){return arguments.length?(e=typeof o=="function"?o:je(o),a):e},a.size=function(o){return arguments.length?(t=typeof o=="function"?o:je(+o),a):t},a.context=function(o){return arguments.length?(n=o??null,a):n},a}function kp(){}function _p(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 z8(e){this._context=e}z8.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:_p(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:_p(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function AI(e){return new z8(e)}function B8(e){this._context=e}B8.prototype={areaStart:kp,areaEnd:kp,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:_p(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function EI(e){return new B8(e)}function H8(e){this._context=e}H8.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:_p(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function TI(e){return new H8(e)}function G8(e){this._context=e}G8.prototype={areaStart:kp,areaEnd:kp,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 jI(e){return new G8(e)}function pw(e){return e<0?-1:1}function fw(e,t,n){var r=e._x1-e._x0,a=t-e._x1,o=(e._y1-e._y0)/(r||a<0&&-0),i=(n-e._y1)/(a||r<0&&-0),s=(o*a+i*r)/(r+a);return(pw(o)+pw(i))*Math.min(Math.abs(o),Math.abs(i),.5*Math.abs(s))||0}function dw(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Nm(e,t,n){var r=e._x0,a=e._y0,o=e._x1,i=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,a+s*t,o-s,i-s*n,o,i)}function Cp(e){this._context=e}Cp.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:Nm(this,this._t0,dw(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,Nm(this,dw(this,n=fw(this,e,t)),n);break;default:Nm(this,this._t0,n=fw(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function U8(e){this._context=new W8(e)}(U8.prototype=Object.create(Cp.prototype)).point=function(e,t){Cp.prototype.point.call(this,t,e)};function W8(e){this._context=e}W8.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,a,o){this._context.bezierCurveTo(t,e,r,n,o,a)}};function $I(e){return new Cp(e)}function NI(e){return new U8(e)}function q8(e){this._context=e}q8.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=mw(e),a=mw(t),o=0,i=1;i<n;++o,++i)this._context.bezierCurveTo(r[0][o],a[0][o],r[1][o],a[1][o],e[i],t[i]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function mw(e){var t,n=e.length-1,r,a=new Array(n),o=new Array(n),i=new Array(n);for(a[0]=0,o[0]=2,i[0]=e[0]+2*e[1],t=1;t<n-1;++t)a[t]=1,o[t]=4,i[t]=4*e[t]+2*e[t+1];for(a[n-1]=2,o[n-1]=7,i[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)r=a[t]/o[t-1],o[t]-=r,i[t]-=r*i[t-1];for(a[n-1]=i[n-1]/o[n-1],t=n-2;t>=0;--t)a[t]=(i[t]-a[t+1])/o[t];for(o[n-1]=(e[n]+a[n-1])/2,t=0;t<n-1;++t)o[t]=2*e[t+1]-a[t+1];return[a,o]}function MI(e){return new q8(e)}function dd(e,t){this._context=e,this._t=t}dd.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=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 RI(e){return new dd(e,.5)}function II(e){return new dd(e,0)}function DI(e){return new dd(e,1)}function Ri(e,t){if((i=e.length)>1)for(var n=1,r,a,o=e[t[0]],i,s=o.length;n<i;++n)for(a=o,o=e[t[n]],r=0;r<s;++r)o[r][1]+=o[r][0]=isNaN(a[r][1])?a[r][0]:a[r][1]}function x0(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}function LI(e,t){return e[t]}function FI(e){const t=[];return t.key=e,t}function zI(){var e=je([]),t=x0,n=Ri,r=LI;function a(o){var i=Array.from(e.apply(this,arguments),FI),s,l=i.length,u=-1,p;for(const c of o)for(s=0,++u;s<l;++s)(i[s][u]=[0,+r(c,i[s].key,u,o)]).data=c;for(s=0,p=sg(t(i));s<l;++s)i[p[s]].index=s;return n(i,p),i}return a.keys=function(o){return arguments.length?(e=typeof o=="function"?o:je(Array.from(o)),a):e},a.value=function(o){return arguments.length?(r=typeof o=="function"?o:je(+o),a):r},a.order=function(o){return arguments.length?(t=o==null?x0:typeof o=="function"?o:je(Array.from(o)),a):t},a.offset=function(o){return arguments.length?(n=o??Ri,a):n},a}function BI(e,t){if((r=e.length)>0){for(var n,r,a=0,o=e[0].length,i;a<o;++a){for(i=n=0;n<r;++n)i+=e[n][a][1]||0;if(i)for(n=0;n<r;++n)e[n][a][1]/=i}Ri(e,t)}}function HI(e,t){if((a=e.length)>0){for(var n=0,r=e[t[0]],a,o=r.length;n<o;++n){for(var i=0,s=0;i<a;++i)s+=e[i][n][1]||0;r[n][1]+=r[n][0]=-s/2}Ri(e,t)}}function GI(e,t){if(!(!((i=e.length)>0)||!((o=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,o,i;r<o;++r){for(var s=0,l=0,u=0;s<i;++s){for(var p=e[t[s]],c=p[r][1]||0,f=p[r-1][1]||0,d=(c-f)/2,h=0;h<s;++h){var m=e[t[h]],g=m[r][1]||0,v=m[r-1][1]||0;d+=g-v}l+=c,u+=d*c}a[r-1][1]+=a[r-1][0]=n,l&&(n-=u/l)}a[r-1][1]+=a[r-1][0]=n,Ri(e,t)}}function zl(e){"@babel/helpers - typeof";return zl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zl(e)}var UI=["type","size","sizeType"];function w0(){return w0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},w0.apply(this,arguments)}function hw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function vw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?hw(Object(n),!0).forEach(function(r){WI(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function WI(e,t,n){return t=qI(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qI(e){var t=VI(e,"string");return zl(t)=="symbol"?t:t+""}function VI(e,t){if(zl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(zl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function KI(e,t){if(e==null)return{};var n=XI(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function XI(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var V8={symbolCircle:lg,symbolCross:vI,symbolDiamond:gI,symbolSquare:xI,symbolStar:SI,symbolTriangle:OI,symbolWye:_I},YI=Math.PI/180,QI=function(t){var n="symbol".concat(cd(t));return V8[n]||lg},ZI=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*YI;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},JI=function(t,n){V8["symbol".concat(cd(t))]=n},md=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,o=a===void 0?64:a,i=t.sizeType,s=i===void 0?"area":i,l=KI(t,UI),u=vw(vw({},l),{},{type:r,size:o,sizeType:s}),p=function(){var g=QI(r),v=CI().type(g).size(ZI(o,s,r));return v()},c=u.className,f=u.cx,d=u.cy,h=re(u,!0);return f===+f&&d===+d&&o===+o?A.createElement("path",w0({},h,{className:ue("recharts-symbols",c),transform:"translate(".concat(f,", ").concat(d,")"),d:p()})):null};md.registerSymbol=JI;function Ii(e){"@babel/helpers - typeof";return Ii=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ii(e)}function b0(){return b0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b0.apply(this,arguments)}function yw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function eD(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?yw(Object(n),!0).forEach(function(r){Bl(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function tD(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nD(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,X8(r.key),r)}}function rD(e,t,n){return t&&nD(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function aD(e,t,n){return t=Ap(t),oD(e,K8()?Reflect.construct(t,n||[],Ap(e).constructor):t.apply(e,n))}function oD(e,t){if(t&&(Ii(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return iD(e)}function iD(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function K8(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(K8=function(){return!!e})()}function Ap(e){return Ap=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ap(e)}function sD(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&P0(e,t)}function P0(e,t){return P0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},P0(e,t)}function Bl(e,t,n){return t=X8(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X8(e){var t=lD(e,"string");return Ii(t)=="symbol"?t:t+""}function lD(e,t){if(Ii(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ii(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var cn=32,ug=function(e){function t(){return tD(this,t),aD(this,t,arguments)}return sD(t,e),rD(t,[{key:"renderIcon",value:function(r){var a=this.props.inactiveColor,o=cn/2,i=cn/6,s=cn/3,l=r.inactive?a:r.color;if(r.type==="plainline")return A.createElement("line",{strokeWidth:4,fill:"none",stroke:l,strokeDasharray:r.payload.strokeDasharray,x1:0,y1:o,x2:cn,y2:o,className:"recharts-legend-icon"});if(r.type==="line")return A.createElement("path",{strokeWidth:4,fill:"none",stroke:l,d:"M0,".concat(o,"h").concat(s,`
             A`).concat(i,",").concat(i,",0,1,1,").concat(2*s,",").concat(o,`
             H`).concat(cn,"M").concat(2*s,",").concat(o,`
-            A`).concat(i,",").concat(i,",0,1,1,").concat(s,",").concat(o),className:"recharts-legend-icon"});if(r.type==="rect")return C.createElement("path",{stroke:"none",fill:l,d:"M0,".concat(cn/8,"h").concat(cn,"v").concat(cn*3/4,"h").concat(-cn,"z"),className:"recharts-legend-icon"});if(C.isValidElement(r.legendIcon)){var u=zI({},r);return delete u.legendIcon,C.cloneElement(r.legendIcon,u)}return C.createElement(md,{fill:l,cx:o,cy:o,size:cn,sizeType:"diameter",type:r.type})}},{key:"renderItems",value:function(){var r=this,a=this.props,o=a.payload,i=a.iconSize,s=a.layout,l=a.formatter,u=a.inactiveColor,f={x:0,y:0,width:cn,height:cn},c={display:s==="horizontal"?"inline-block":"block",marginRight:10},p={display:"inline-block",verticalAlign:"middle",marginRight:4};return o.map(function(d,h){var m=d.formatter||l,g=ue(Bl(Bl({"recharts-legend-item":!0},"legend-item-".concat(h),!0),"inactive",d.inactive));if(d.type==="none")return null;var v=oe(d.value)?null:d.value;$r(!oe(d.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: <Bar name="Name of my Data"/>`);var y=d.inactive?u:d.color;return C.createElement("li",bv({className:g,style:c,key:"legend-item-".concat(h)},Fl(r.props,d,h)),C.createElement(pv,{width:i,height:i,viewBox:f,style:p},r.renderIcon(d)),C.createElement("span",{className:"recharts-legend-item-text",style:{color:y}},m?m(v,d,h):v))})}},{key:"render",value:function(){var r=this.props,a=r.payload,o=r.layout,i=r.align;if(!a||!a.length)return null;var s={padding:0,margin:0,textAlign:o==="horizontal"?i:"left"};return C.createElement("ul",{className:"recharts-default-legend",style:s},this.renderItems())}}])}(k.PureComponent);Bl(ug,"displayName","Legend");Bl(ug,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var XI=Qp;function YI(){this.__data__=new XI,this.size=0}var QI=YI;function ZI(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var JI=ZI;function eD(e){return this.__data__.get(e)}var tD=eD;function nD(e){return this.__data__.has(e)}var rD=nD,aD=Qp,oD=Q0,iD=Z0,sD=200;function lD(e,t){var n=this.__data__;if(n instanceof aD){var r=n.__data__;if(!oD||r.length<sD-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new iD(r)}return n.set(e,t),this.size=n.size,this}var uD=lD,cD=Qp,fD=QI,pD=JI,dD=tD,mD=rD,hD=uD;function Ss(e){var t=this.__data__=new cD(e);this.size=t.size}Ss.prototype.clear=fD;Ss.prototype.delete=pD;Ss.prototype.get=dD;Ss.prototype.has=mD;Ss.prototype.set=hD;var V8=Ss,vD="__lodash_hash_undefined__";function yD(e){return this.__data__.set(e,vD),this}var gD=yD;function xD(e){return this.__data__.has(e)}var wD=xD,bD=Z0,PD=gD,SD=wD;function Tf(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new bD;++t<n;)this.add(e[t])}Tf.prototype.add=Tf.prototype.push=PD;Tf.prototype.has=SD;var K8=Tf;function OD(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var X8=OD;function kD(e,t){return e.has(t)}var Y8=kD,_D=K8,AD=X8,CD=Y8,ED=1,TD=2;function jD(e,t,n,r,a,o){var i=n&ED,s=e.length,l=t.length;if(s!=l&&!(i&&l>s))return!1;var u=o.get(e),f=o.get(t);if(u&&f)return u==t&&f==e;var c=-1,p=!0,d=n&TD?new _D:void 0;for(o.set(e,t),o.set(t,e);++c<s;){var h=e[c],m=t[c];if(r)var g=i?r(m,h,c,t,e,o):r(h,m,c,e,t,o);if(g!==void 0){if(g)continue;p=!1;break}if(d){if(!AD(t,function(v,y){if(!CD(d,y)&&(h===v||a(h,v,n,r,o)))return d.push(y)})){p=!1;break}}else if(!(h===m||a(h,m,n,r,o))){p=!1;break}}return o.delete(e),o.delete(t),p}var Q8=jD,$D=gr,ND=$D.Uint8Array,MD=ND;function RD(e){var t=-1,n=Array(e.size);return e.forEach(function(r,a){n[++t]=[a,r]}),n}var ID=RD;function DD(e){var t=-1,n=Array(e.size);return e.forEach(function(r){n[++t]=r}),n}var cg=DD,vw=$u,yw=MD,LD=Y0,FD=Q8,zD=ID,BD=cg,HD=1,GD=2,UD="[object Boolean]",WD="[object Date]",qD="[object Error]",VD="[object Map]",KD="[object Number]",XD="[object RegExp]",YD="[object Set]",QD="[object String]",ZD="[object Symbol]",JD="[object ArrayBuffer]",eL="[object DataView]",gw=vw?vw.prototype:void 0,Mm=gw?gw.valueOf:void 0;function tL(e,t,n,r,a,o,i){switch(n){case eL:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case JD:return!(e.byteLength!=t.byteLength||!o(new yw(e),new yw(t)));case UD:case WD:case KD:return LD(+e,+t);case qD:return e.name==t.name&&e.message==t.message;case XD:case QD:return e==t+"";case VD:var s=zD;case YD:var l=r&HD;if(s||(s=BD),e.size!=t.size&&!l)return!1;var u=i.get(e);if(u)return u==t;r|=GD,i.set(e,t);var f=FD(s(e),s(t),r,a,o,i);return i.delete(e),f;case ZD:if(Mm)return Mm.call(e)==Mm.call(t)}return!1}var nL=tL;function rL(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}var Z8=rL,aL=Z8,oL=Vt;function iL(e,t,n){var r=t(e);return oL(e)?r:aL(r,n(e))}var sL=iL;function lL(e,t){for(var n=-1,r=e==null?0:e.length,a=0,o=[];++n<r;){var i=e[n];t(i,n,e)&&(o[a++]=i)}return o}var uL=lL;function cL(){return[]}var fL=cL,pL=uL,dL=fL,mL=Object.prototype,hL=mL.propertyIsEnumerable,xw=Object.getOwnPropertySymbols,vL=xw?function(e){return e==null?[]:(e=Object(e),pL(xw(e),function(t){return hL.call(e,t)}))}:dL,yL=vL;function gL(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var xL=gL,wL=Ur,bL=Wr,PL="[object Arguments]";function SL(e){return bL(e)&&wL(e)==PL}var OL=SL,ww=OL,kL=Wr,J8=Object.prototype,_L=J8.hasOwnProperty,AL=J8.propertyIsEnumerable,CL=ww(function(){return arguments}())?ww:function(e){return kL(e)&&_L.call(e,"callee")&&!AL.call(e,"callee")},fg=CL,jf={exports:{}};function EL(){return!1}var TL=EL;jf.exports;(function(e,t){var n=gr,r=TL,a=t&&!t.nodeType&&t,o=a&&!0&&e&&!e.nodeType&&e,i=o&&o.exports===a,s=i?n.Buffer:void 0,l=s?s.isBuffer:void 0,u=l||r;e.exports=u})(jf,jf.exports);var e7=jf.exports,jL=9007199254740991,$L=/^(?:0|[1-9]\d*)$/;function NL(e,t){var n=typeof e;return t=t??jL,!!t&&(n=="number"||n!="symbol"&&$L.test(e))&&e>-1&&e%1==0&&e<t}var pg=NL,ML=9007199254740991;function RL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ML}var dg=RL,IL=Ur,DL=dg,LL=Wr,FL="[object Arguments]",zL="[object Array]",BL="[object Boolean]",HL="[object Date]",GL="[object Error]",UL="[object Function]",WL="[object Map]",qL="[object Number]",VL="[object Object]",KL="[object RegExp]",XL="[object Set]",YL="[object String]",QL="[object WeakMap]",ZL="[object ArrayBuffer]",JL="[object DataView]",eF="[object Float32Array]",tF="[object Float64Array]",nF="[object Int8Array]",rF="[object Int16Array]",aF="[object Int32Array]",oF="[object Uint8Array]",iF="[object Uint8ClampedArray]",sF="[object Uint16Array]",lF="[object Uint32Array]",De={};De[eF]=De[tF]=De[nF]=De[rF]=De[aF]=De[oF]=De[iF]=De[sF]=De[lF]=!0;De[FL]=De[zL]=De[ZL]=De[BL]=De[JL]=De[HL]=De[GL]=De[UL]=De[WL]=De[qL]=De[VL]=De[KL]=De[XL]=De[YL]=De[QL]=!1;function uF(e){return LL(e)&&DL(e.length)&&!!De[IL(e)]}var cF=uF;function fF(e){return function(t){return e(t)}}var t7=fF,$f={exports:{}};$f.exports;(function(e,t){var n=l8,r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,o=a&&a.exports===r,i=o&&n.process,s=function(){try{var l=a&&a.require&&a.require("util").types;return l||i&&i.binding&&i.binding("util")}catch{}}();e.exports=s})($f,$f.exports);var pF=$f.exports,dF=cF,mF=t7,bw=pF,Pw=bw&&bw.isTypedArray,hF=Pw?mF(Pw):dF,n7=hF,vF=xL,yF=fg,gF=Vt,xF=e7,wF=pg,bF=n7,PF=Object.prototype,SF=PF.hasOwnProperty;function OF(e,t){var n=gF(e),r=!n&&yF(e),a=!n&&!r&&xF(e),o=!n&&!r&&!a&&bF(e),i=n||r||a||o,s=i?vF(e.length,String):[],l=s.length;for(var u in e)(t||SF.call(e,u))&&!(i&&(u=="length"||a&&(u=="offset"||u=="parent")||o&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||wF(u,l)))&&s.push(u);return s}var kF=OF,_F=Object.prototype;function AF(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||_F;return e===n}var CF=AF;function EF(e,t){return function(n){return e(t(n))}}var r7=EF,TF=r7,jF=TF(Object.keys,Object),$F=jF,NF=CF,MF=$F,RF=Object.prototype,IF=RF.hasOwnProperty;function DF(e){if(!NF(e))return MF(e);var t=[];for(var n in Object(e))IF.call(e,n)&&n!="constructor"&&t.push(n);return t}var LF=DF,FF=X0,zF=dg;function BF(e){return e!=null&&zF(e.length)&&!FF(e)}var Nu=BF,HF=kF,GF=LF,UF=Nu;function WF(e){return UF(e)?HF(e):GF(e)}var hd=WF,qF=sL,VF=yL,KF=hd;function XF(e){return qF(e,KF,VF)}var YF=XF,Sw=YF,QF=1,ZF=Object.prototype,JF=ZF.hasOwnProperty;function ez(e,t,n,r,a,o){var i=n&QF,s=Sw(e),l=s.length,u=Sw(t),f=u.length;if(l!=f&&!i)return!1;for(var c=l;c--;){var p=s[c];if(!(i?p in t:JF.call(t,p)))return!1}var d=o.get(e),h=o.get(t);if(d&&h)return d==t&&h==e;var m=!0;o.set(e,t),o.set(t,e);for(var g=i;++c<l;){p=s[c];var v=e[p],y=t[p];if(r)var x=i?r(y,v,p,t,e,o):r(v,y,p,e,t,o);if(!(x===void 0?v===y||a(v,y,n,r,o):x)){m=!1;break}g||(g=p=="constructor")}if(m&&!g){var P=e.constructor,w=t.constructor;P!=w&&"constructor"in e&&"constructor"in t&&!(typeof P=="function"&&P instanceof P&&typeof w=="function"&&w instanceof w)&&(m=!1)}return o.delete(e),o.delete(t),m}var tz=ez,nz=jo,rz=gr,az=nz(rz,"DataView"),oz=az,iz=jo,sz=gr,lz=iz(sz,"Promise"),uz=lz,cz=jo,fz=gr,pz=cz(fz,"Set"),a7=pz,dz=jo,mz=gr,hz=dz(mz,"WeakMap"),vz=hz,Sv=oz,Ov=Q0,kv=uz,_v=a7,Av=vz,o7=Ur,Os=c8,Ow="[object Map]",yz="[object Object]",kw="[object Promise]",_w="[object Set]",Aw="[object WeakMap]",Cw="[object DataView]",gz=Os(Sv),xz=Os(Ov),wz=Os(kv),bz=Os(_v),Pz=Os(Av),Va=o7;(Sv&&Va(new Sv(new ArrayBuffer(1)))!=Cw||Ov&&Va(new Ov)!=Ow||kv&&Va(kv.resolve())!=kw||_v&&Va(new _v)!=_w||Av&&Va(new Av)!=Aw)&&(Va=function(e){var t=o7(e),n=t==yz?e.constructor:void 0,r=n?Os(n):"";if(r)switch(r){case gz:return Cw;case xz:return Ow;case wz:return kw;case bz:return _w;case Pz:return Aw}return t});var Sz=Va,Rm=V8,Oz=Q8,kz=nL,_z=tz,Ew=Sz,Tw=Vt,jw=e7,Az=n7,Cz=1,$w="[object Arguments]",Nw="[object Array]",fc="[object Object]",Ez=Object.prototype,Mw=Ez.hasOwnProperty;function Tz(e,t,n,r,a,o){var i=Tw(e),s=Tw(t),l=i?Nw:Ew(e),u=s?Nw:Ew(t);l=l==$w?fc:l,u=u==$w?fc:u;var f=l==fc,c=u==fc,p=l==u;if(p&&jw(e)){if(!jw(t))return!1;i=!0,f=!1}if(p&&!f)return o||(o=new Rm),i||Az(e)?Oz(e,t,n,r,a,o):kz(e,t,l,n,r,a,o);if(!(n&Cz)){var d=f&&Mw.call(e,"__wrapped__"),h=c&&Mw.call(t,"__wrapped__");if(d||h){var m=d?e.value():e,g=h?t.value():t;return o||(o=new Rm),a(m,g,n,r,o)}}return p?(o||(o=new Rm),_z(e,t,n,r,a,o)):!1}var jz=Tz,$z=jz,Rw=Wr;function i7(e,t,n,r,a){return e===t?!0:e==null||t==null||!Rw(e)&&!Rw(t)?e!==e&&t!==t:$z(e,t,n,r,i7,a)}var mg=i7,Nz=V8,Mz=mg,Rz=1,Iz=2;function Dz(e,t,n,r){var a=n.length,o=a,i=!r;if(e==null)return!o;for(e=Object(e);a--;){var s=n[a];if(i&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++a<o;){s=n[a];var l=s[0],u=e[l],f=s[1];if(i&&s[2]){if(u===void 0&&!(l in e))return!1}else{var c=new Nz;if(r)var p=r(u,f,l,e,t,c);if(!(p===void 0?Mz(f,u,Rz|Iz,r,c):p))return!1}}return!0}var Lz=Dz,Fz=Ra;function zz(e){return e===e&&!Fz(e)}var s7=zz,Bz=s7,Hz=hd;function Gz(e){for(var t=Hz(e),n=t.length;n--;){var r=t[n],a=e[r];t[n]=[r,a,Bz(a)]}return t}var Uz=Gz;function Wz(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}var l7=Wz,qz=Lz,Vz=Uz,Kz=l7;function Xz(e){var t=Vz(e);return t.length==1&&t[0][2]?Kz(t[0][0],t[0][1]):function(n){return n===e||qz(n,e,t)}}var Yz=Xz;function Qz(e,t){return e!=null&&t in Object(e)}var Zz=Qz,Jz=h8,eB=fg,tB=Vt,nB=pg,rB=dg,aB=Jp;function oB(e,t,n){t=Jz(t,e);for(var r=-1,a=t.length,o=!1;++r<a;){var i=aB(t[r]);if(!(o=e!=null&&n(e,i)))break;e=e[i]}return o||++r!=a?o:(a=e==null?0:e.length,!!a&&rB(a)&&nB(i,a)&&(tB(e)||eB(e)))}var iB=oB,sB=Zz,lB=iB;function uB(e,t){return e!=null&&lB(e,t,sB)}var cB=uB,fB=mg,pB=v8,dB=cB,mB=K0,hB=s7,vB=l7,yB=Jp,gB=1,xB=2;function wB(e,t){return mB(e)&&hB(t)?vB(yB(e),t):function(n){var r=pB(n,e);return r===void 0&&r===t?dB(n,e):fB(t,r,gB|xB)}}var bB=wB;function PB(e){return e}var ks=PB;function SB(e){return function(t){return t==null?void 0:t[e]}}var OB=SB,kB=tg;function _B(e){return function(t){return kB(t,e)}}var AB=_B,CB=OB,EB=AB,TB=K0,jB=Jp;function $B(e){return TB(e)?CB(jB(e)):EB(e)}var NB=$B,MB=Yz,RB=bB,IB=ks,DB=Vt,LB=NB;function FB(e){return typeof e=="function"?e:e==null?IB:typeof e=="object"?DB(e)?RB(e[0],e[1]):MB(e):LB(e)}var Ia=FB;function zB(e,t,n,r){for(var a=e.length,o=n+(r?1:-1);r?o--:++o<a;)if(t(e[o],o,e))return o;return-1}var u7=zB;function BB(e){return e!==e}var HB=BB;function GB(e,t,n){for(var r=n-1,a=e.length;++r<a;)if(e[r]===t)return r;return-1}var UB=GB,WB=u7,qB=HB,VB=UB;function KB(e,t,n){return t===t?VB(e,t,n):WB(e,qB,n)}var XB=KB,YB=XB;function QB(e,t){var n=e==null?0:e.length;return!!n&&YB(e,t,0)>-1}var ZB=QB;function JB(e,t,n){for(var r=-1,a=e==null?0:e.length;++r<a;)if(n(t,e[r]))return!0;return!1}var eH=JB;function tH(){}var nH=tH,Im=a7,rH=nH,aH=cg,oH=1/0,iH=Im&&1/aH(new Im([,-0]))[1]==oH?function(e){return new Im(e)}:rH,sH=iH,lH=K8,uH=ZB,cH=eH,fH=Y8,pH=sH,dH=cg,mH=200;function hH(e,t,n){var r=-1,a=uH,o=e.length,i=!0,s=[],l=s;if(n)i=!1,a=cH;else if(o>=mH){var u=t?null:pH(e);if(u)return dH(u);i=!1,a=fH,l=new lH}else l=t?[]:s;e:for(;++r<o;){var f=e[r],c=t?t(f):f;if(f=n||f!==0?f:0,i&&c===c){for(var p=l.length;p--;)if(l[p]===c)continue e;t&&l.push(c),s.push(f)}else a(l,c,n)||(l!==s&&l.push(c),s.push(f))}return s}var vH=hH,yH=Ia,gH=vH;function xH(e,t){return e&&e.length?gH(e,yH(t)):[]}var wH=xH;const Iw=Ce(wH);function c7(e,t,n){return t===!0?Iw(e,n):oe(t)?Iw(e,t):e}function Di(e){"@babel/helpers - typeof";return Di=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Di(e)}var bH=["ref"];function Dw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function wr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Dw(Object(n),!0).forEach(function(r){vd(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function PH(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Lw(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,p7(r.key),r)}}function SH(e,t,n){return t&&Lw(e.prototype,t),n&&Lw(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function OH(e,t,n){return t=Nf(t),kH(e,f7()?Reflect.construct(t,n||[],Nf(e).constructor):t.apply(e,n))}function kH(e,t){if(t&&(Di(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _H(e)}function _H(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f7(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(f7=function(){return!!e})()}function Nf(e){return Nf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Nf(e)}function AH(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Cv(e,t)}function Cv(e,t){return Cv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Cv(e,t)}function vd(e,t,n){return t=p7(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p7(e){var t=CH(e,"string");return Di(t)=="symbol"?t:t+""}function CH(e,t){if(Di(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Di(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function EH(e,t){if(e==null)return{};var n=TH(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function TH(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function jH(e){return e.value}function $H(e,t){if(C.isValidElement(e))return C.cloneElement(e,t);if(typeof e=="function")return C.createElement(e,t);t.ref;var n=EH(t,bH);return C.createElement(ug,n)}var Fw=1,hi=function(e){function t(){var n;PH(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=OH(this,t,[].concat(a)),vd(n,"lastBoundingBox",{width:-1,height:-1}),n}return AH(t,e),SH(t,[{key:"componentDidMount",value:function(){this.updateBBox()}},{key:"componentDidUpdate",value:function(){this.updateBBox()}},{key:"getBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var r=this.wrapperNode.getBoundingClientRect();return r.height=this.wrapperNode.offsetHeight,r.width=this.wrapperNode.offsetWidth,r}return null}},{key:"updateBBox",value:function(){var r=this.props.onBBoxUpdate,a=this.getBBox();a?(Math.abs(a.width-this.lastBoundingBox.width)>Fw||Math.abs(a.height-this.lastBoundingBox.height)>Fw)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?wr({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,o=a.layout,i=a.align,s=a.verticalAlign,l=a.margin,u=a.chartWidth,f=a.chartHeight,c,p;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(i==="center"&&o==="vertical"){var d=this.getBBoxSnapshot();c={left:((u||0)-d.width)/2}}else c=i==="right"?{right:l&&l.right||0}:{left:l&&l.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(s==="middle"){var h=this.getBBoxSnapshot();p={top:((f||0)-h.height)/2}}else p=s==="bottom"?{bottom:l&&l.bottom||0}:{top:l&&l.top||0};return wr(wr({},c),p)}},{key:"render",value:function(){var r=this,a=this.props,o=a.content,i=a.width,s=a.height,l=a.wrapperStyle,u=a.payloadUniqBy,f=a.payload,c=wr(wr({position:"absolute",width:i||"auto",height:s||"auto"},this.getDefaultPosition(l)),l);return C.createElement("div",{className:"recharts-legend-wrapper",style:c,ref:function(d){r.wrapperNode=d}},$H(o,wr(wr({},this.props),{},{payload:c7(f,u,jH)})))}}],[{key:"getWithHeight",value:function(r,a){var o=wr(wr({},this.defaultProps),r.props),i=o.layout;return i==="vertical"&&V(r.props.height)?{height:r.props.height}:i==="horizontal"?{width:r.props.width||a}:null}}])}(k.PureComponent);vd(hi,"displayName","Legend");vd(hi,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var zw=$u,NH=fg,MH=Vt,Bw=zw?zw.isConcatSpreadable:void 0;function RH(e){return MH(e)||NH(e)||!!(Bw&&e&&e[Bw])}var IH=RH,DH=Z8,LH=IH;function d7(e,t,n,r,a){var o=-1,i=e.length;for(n||(n=LH),a||(a=[]);++o<i;){var s=e[o];t>0&&n(s)?t>1?d7(s,t-1,n,r,a):DH(a,s):r||(a[a.length]=s)}return a}var m7=d7;function FH(e){return function(t,n,r){for(var a=-1,o=Object(t),i=r(t),s=i.length;s--;){var l=i[e?s:++a];if(n(o[l],l,o)===!1)break}return t}}var zH=FH,BH=zH,HH=BH(),GH=HH,UH=GH,WH=hd;function qH(e,t){return e&&UH(e,t,WH)}var h7=qH,VH=Nu;function KH(e,t){return function(n,r){if(n==null)return n;if(!VH(n))return e(n,r);for(var a=n.length,o=t?a:-1,i=Object(n);(t?o--:++o<a)&&r(i[o],o,i)!==!1;);return n}}var XH=KH,YH=h7,QH=XH,ZH=QH(YH),hg=ZH,JH=hg,eG=Nu;function tG(e,t){var n=-1,r=eG(e)?Array(e.length):[];return JH(e,function(a,o,i){r[++n]=t(a,o,i)}),r}var v7=tG;function nG(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}var rG=nG,Hw=ys;function aG(e,t){if(e!==t){var n=e!==void 0,r=e===null,a=e===e,o=Hw(e),i=t!==void 0,s=t===null,l=t===t,u=Hw(t);if(!s&&!u&&!o&&e>t||o&&i&&l&&!s&&!u||r&&i&&l||!n&&l||!a)return 1;if(!r&&!o&&!u&&e<t||u&&n&&a&&!r&&!o||s&&n&&a||!i&&a||!l)return-1}return 0}var oG=aG,iG=oG;function sG(e,t,n){for(var r=-1,a=e.criteria,o=t.criteria,i=a.length,s=n.length;++r<i;){var l=iG(a[r],o[r]);if(l){if(r>=s)return l;var u=n[r];return l*(u=="desc"?-1:1)}}return e.index-t.index}var lG=sG,Dm=eg,uG=tg,cG=Ia,fG=v7,pG=rG,dG=t7,mG=lG,hG=ks,vG=Vt;function yG(e,t,n){t.length?t=Dm(t,function(o){return vG(o)?function(i){return uG(i,o.length===1?o[0]:o)}:o}):t=[hG];var r=-1;t=Dm(t,dG(cG));var a=fG(e,function(o,i,s){var l=Dm(t,function(u){return u(o)});return{criteria:l,index:++r,value:o}});return pG(a,function(o,i){return mG(o,i,n)})}var gG=yG;function xG(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var wG=xG,bG=wG,Gw=Math.max;function PG(e,t,n){return t=Gw(t===void 0?e.length-1:t,0),function(){for(var r=arguments,a=-1,o=Gw(r.length-t,0),i=Array(o);++a<o;)i[a]=r[t+a];a=-1;for(var s=Array(t+1);++a<t;)s[a]=r[a];return s[t]=n(i),bG(e,this,s)}}var SG=PG;function OG(e){return function(){return e}}var kG=OG,_G=jo,AG=function(){try{var e=_G(Object,"defineProperty");return e({},"",{}),e}catch{}}(),y7=AG,CG=kG,Uw=y7,EG=ks,TG=Uw?function(e,t){return Uw(e,"toString",{configurable:!0,enumerable:!1,value:CG(t),writable:!0})}:EG,jG=TG,$G=800,NG=16,MG=Date.now;function RG(e){var t=0,n=0;return function(){var r=MG(),a=NG-(r-n);if(n=r,a>0){if(++t>=$G)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var IG=RG,DG=jG,LG=IG,FG=LG(DG),zG=FG,BG=ks,HG=SG,GG=zG;function UG(e,t){return GG(HG(e,t,BG),e+"")}var WG=UG,qG=Y0,VG=Nu,KG=pg,XG=Ra;function YG(e,t,n){if(!XG(n))return!1;var r=typeof t;return(r=="number"?VG(n)&&KG(t,n.length):r=="string"&&t in n)?qG(n[t],e):!1}var yd=YG,QG=m7,ZG=gG,JG=WG,Ww=yd,eU=JG(function(e,t){if(e==null)return[];var n=t.length;return n>1&&Ww(e,t[0],t[1])?t=[]:n>2&&Ww(t[0],t[1],t[2])&&(t=[t[0]]),ZG(e,QG(t,1),[])}),tU=eU;const vg=Ce(tU);function Hl(e){"@babel/helpers - typeof";return Hl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hl(e)}function Ev(){return Ev=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ev.apply(this,arguments)}function nU(e,t){return iU(e)||oU(e,t)||aU(e,t)||rU()}function rU(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function aU(e,t){if(e){if(typeof e=="string")return qw(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return qw(e,t)}}function qw(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function oU(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function iU(e){if(Array.isArray(e))return e}function Vw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Lm(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Vw(Object(n),!0).forEach(function(r){sU(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function sU(e,t,n){return t=lU(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lU(e){var t=uU(e,"string");return Hl(t)=="symbol"?t:t+""}function uU(e,t){if(Hl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Hl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function cU(e){return Array.isArray(e)&&it(e[0])&&it(e[1])?e.join(" ~ "):e}var fU=function(t){var n=t.separator,r=n===void 0?" : ":n,a=t.contentStyle,o=a===void 0?{}:a,i=t.itemStyle,s=i===void 0?{}:i,l=t.labelStyle,u=l===void 0?{}:l,f=t.payload,c=t.formatter,p=t.itemSorter,d=t.wrapperClassName,h=t.labelClassName,m=t.label,g=t.labelFormatter,v=t.accessibilityLayer,y=v===void 0?!1:v,x=function(){if(f&&f.length){var T={padding:0,margin:0},N=(p?vg(f,p):f).map(function(M,I){if(M.type==="none")return null;var R=Lm({display:"block",paddingTop:4,paddingBottom:4,color:M.color||"#000"},s),L=M.formatter||c||cU,$=M.value,D=M.name,H=$,W=D;if(L&&H!=null&&W!=null){var G=L($,D,M,I,f);if(Array.isArray(G)){var Z=nU(G,2);H=Z[0],W=Z[1]}else H=G}return C.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(I),style:R},it(W)?C.createElement("span",{className:"recharts-tooltip-item-name"},W):null,it(W)?C.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,C.createElement("span",{className:"recharts-tooltip-item-value"},H),C.createElement("span",{className:"recharts-tooltip-item-unit"},M.unit||""))});return C.createElement("ul",{className:"recharts-tooltip-item-list",style:T},N)}return null},P=Lm({margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},o),w=Lm({margin:0},u),S=!te(m),O=S?m:"",_=ue("recharts-default-tooltip",d),A=ue("recharts-tooltip-label",h);S&&g&&f!==void 0&&f!==null&&(O=g(m,f));var j=y?{role:"status","aria-live":"assertive"}:{};return C.createElement("div",Ev({className:_,style:P},j),C.createElement("p",{className:A,style:w},C.isValidElement(O)?O:"".concat(O)),x())};function Gl(e){"@babel/helpers - typeof";return Gl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gl(e)}function pc(e,t,n){return t=pU(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pU(e){var t=dU(e,"string");return Gl(t)=="symbol"?t:t+""}function dU(e,t){if(Gl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Gl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Hs="recharts-tooltip-wrapper",mU={visibility:"hidden"};function hU(e){var t=e.coordinate,n=e.translateX,r=e.translateY;return ue(Hs,pc(pc(pc(pc({},"".concat(Hs,"-right"),V(n)&&t&&V(t.x)&&n>=t.x),"".concat(Hs,"-left"),V(n)&&t&&V(t.x)&&n<t.x),"".concat(Hs,"-bottom"),V(r)&&t&&V(t.y)&&r>=t.y),"".concat(Hs,"-top"),V(r)&&t&&V(t.y)&&r<t.y))}function Kw(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.key,a=e.offsetTopLeft,o=e.position,i=e.reverseDirection,s=e.tooltipDimension,l=e.viewBox,u=e.viewBoxDimension;if(o&&V(o[r]))return o[r];var f=n[r]-s-a,c=n[r]+a;if(t[r])return i[r]?f:c;if(i[r]){var p=f,d=l[r];return p<d?Math.max(c,l[r]):Math.max(f,l[r])}var h=c+s,m=l[r]+u;return h>m?Math.max(f,l[r]):Math.max(c,l[r])}function vU(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function yU(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,o=e.reverseDirection,i=e.tooltipBox,s=e.useTranslate3d,l=e.viewBox,u,f,c;return i.height>0&&i.width>0&&n?(f=Kw({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:o,tooltipDimension:i.width,viewBox:l,viewBoxDimension:l.width}),c=Kw({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:o,tooltipDimension:i.height,viewBox:l,viewBoxDimension:l.height}),u=vU({translateX:f,translateY:c,useTranslate3d:s})):u=mU,{cssProperties:u,cssClasses:hU({translateX:f,translateY:c,coordinate:n})}}function Li(e){"@babel/helpers - typeof";return Li=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Li(e)}function Xw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Yw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Xw(Object(n),!0).forEach(function(r){jv(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function gU(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function xU(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,x7(r.key),r)}}function wU(e,t,n){return t&&xU(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function bU(e,t,n){return t=Mf(t),PU(e,g7()?Reflect.construct(t,n||[],Mf(e).constructor):t.apply(e,n))}function PU(e,t){if(t&&(Li(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return SU(e)}function SU(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g7(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(g7=function(){return!!e})()}function Mf(e){return Mf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Mf(e)}function OU(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Tv(e,t)}function Tv(e,t){return Tv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Tv(e,t)}function jv(e,t,n){return t=x7(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x7(e){var t=kU(e,"string");return Li(t)=="symbol"?t:t+""}function kU(e,t){if(Li(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Li(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Qw=1,_U=function(e){function t(){var n;gU(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=bU(this,t,[].concat(a)),jv(n,"state",{dismissed:!1,dismissedAtCoordinate:{x:0,y:0},lastBoundingBox:{width:-1,height:-1}}),jv(n,"handleKeyDown",function(i){if(i.key==="Escape"){var s,l,u,f;n.setState({dismissed:!0,dismissedAtCoordinate:{x:(s=(l=n.props.coordinate)===null||l===void 0?void 0:l.x)!==null&&s!==void 0?s:0,y:(u=(f=n.props.coordinate)===null||f===void 0?void 0:f.y)!==null&&u!==void 0?u:0}})}}),n}return OU(t,e),wU(t,[{key:"updateBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var r=this.wrapperNode.getBoundingClientRect();(Math.abs(r.width-this.state.lastBoundingBox.width)>Qw||Math.abs(r.height-this.state.lastBoundingBox.height)>Qw)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,o=a.active,i=a.allowEscapeViewBox,s=a.animationDuration,l=a.animationEasing,u=a.children,f=a.coordinate,c=a.hasPayload,p=a.isAnimationActive,d=a.offset,h=a.position,m=a.reverseDirection,g=a.useTranslate3d,v=a.viewBox,y=a.wrapperStyle,x=yU({allowEscapeViewBox:i,coordinate:f,offsetTopLeft:d,position:h,reverseDirection:m,tooltipBox:this.state.lastBoundingBox,useTranslate3d:g,viewBox:v}),P=x.cssClasses,w=x.cssProperties,S=Yw(Yw({transition:p&&o?"transform ".concat(s,"ms ").concat(l):void 0},w),{},{pointerEvents:"none",visibility:!this.state.dismissed&&o&&c?"visible":"hidden",position:"absolute",top:0,left:0},y);return C.createElement("div",{tabIndex:-1,className:P,style:S,ref:function(_){r.wrapperNode=_}},u)}}])}(k.PureComponent),AU=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Da={isSsr:AU()};function Fi(e){"@babel/helpers - typeof";return Fi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fi(e)}function Zw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Jw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Zw(Object(n),!0).forEach(function(r){yg(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function CU(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function EU(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,b7(r.key),r)}}function TU(e,t,n){return t&&EU(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function jU(e,t,n){return t=Rf(t),$U(e,w7()?Reflect.construct(t,n||[],Rf(e).constructor):t.apply(e,n))}function $U(e,t){if(t&&(Fi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return NU(e)}function NU(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function w7(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(w7=function(){return!!e})()}function Rf(e){return Rf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Rf(e)}function MU(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&$v(e,t)}function $v(e,t){return $v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},$v(e,t)}function yg(e,t,n){return t=b7(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b7(e){var t=RU(e,"string");return Fi(t)=="symbol"?t:t+""}function RU(e,t){if(Fi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Fi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function IU(e){return e.dataKey}function DU(e,t){return C.isValidElement(e)?C.cloneElement(e,t):typeof e=="function"?C.createElement(e,t):C.createElement(fU,t)}var Zn=function(e){function t(){return CU(this,t),jU(this,t,arguments)}return MU(t,e),TU(t,[{key:"render",value:function(){var r=this,a=this.props,o=a.active,i=a.allowEscapeViewBox,s=a.animationDuration,l=a.animationEasing,u=a.content,f=a.coordinate,c=a.filterNull,p=a.isAnimationActive,d=a.offset,h=a.payload,m=a.payloadUniqBy,g=a.position,v=a.reverseDirection,y=a.useTranslate3d,x=a.viewBox,P=a.wrapperStyle,w=h??[];c&&w.length&&(w=c7(h.filter(function(O){return O.value!=null&&(O.hide!==!0||r.props.includeHidden)}),m,IU));var S=w.length>0;return C.createElement(_U,{allowEscapeViewBox:i,animationDuration:s,animationEasing:l,isAnimationActive:p,active:o,coordinate:f,hasPayload:S,offset:d,position:g,reverseDirection:v,useTranslate3d:y,viewBox:x,wrapperStyle:P},DU(u,Jw(Jw({},this.props),{},{payload:w})))}}])}(k.PureComponent);yg(Zn,"displayName","Tooltip");yg(Zn,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Da.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var LU=gr,FU=function(){return LU.Date.now()},zU=FU,BU=/\s/;function HU(e){for(var t=e.length;t--&&BU.test(e.charAt(t)););return t}var GU=HU,UU=GU,WU=/^\s+/;function qU(e){return e&&e.slice(0,UU(e)+1).replace(WU,"")}var VU=qU,KU=VU,e3=Ra,XU=ys,t3=NaN,YU=/^[-+]0x[0-9a-f]+$/i,QU=/^0b[01]+$/i,ZU=/^0o[0-7]+$/i,JU=parseInt;function eW(e){if(typeof e=="number")return e;if(XU(e))return t3;if(e3(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=e3(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=KU(e);var n=QU.test(e);return n||ZU.test(e)?JU(e.slice(2),n?2:8):YU.test(e)?t3:+e}var P7=eW,tW=Ra,Fm=zU,n3=P7,nW="Expected a function",rW=Math.max,aW=Math.min;function oW(e,t,n){var r,a,o,i,s,l,u=0,f=!1,c=!1,p=!0;if(typeof e!="function")throw new TypeError(nW);t=n3(t)||0,tW(n)&&(f=!!n.leading,c="maxWait"in n,o=c?rW(n3(n.maxWait)||0,t):o,p="trailing"in n?!!n.trailing:p);function d(S){var O=r,_=a;return r=a=void 0,u=S,i=e.apply(_,O),i}function h(S){return u=S,s=setTimeout(v,t),f?d(S):i}function m(S){var O=S-l,_=S-u,A=t-O;return c?aW(A,o-_):A}function g(S){var O=S-l,_=S-u;return l===void 0||O>=t||O<0||c&&_>=o}function v(){var S=Fm();if(g(S))return y(S);s=setTimeout(v,m(S))}function y(S){return s=void 0,p&&r?d(S):(r=a=void 0,i)}function x(){s!==void 0&&clearTimeout(s),u=0,r=l=a=s=void 0}function P(){return s===void 0?i:y(Fm())}function w(){var S=Fm(),O=g(S);if(r=arguments,a=this,l=S,O){if(s===void 0)return h(l);if(c)return clearTimeout(s),s=setTimeout(v,t),d(l)}return s===void 0&&(s=setTimeout(v,t)),i}return w.cancel=x,w.flush=P,w}var iW=oW,sW=iW,lW=Ra,uW="Expected a function";function cW(e,t,n){var r=!0,a=!0;if(typeof e!="function")throw new TypeError(uW);return lW(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),sW(e,t,{leading:r,maxWait:t,trailing:a})}var fW=cW;const S7=Ce(fW);function Ul(e){"@babel/helpers - typeof";return Ul=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ul(e)}function r3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function dc(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?r3(Object(n),!0).forEach(function(r){pW(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r3(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function pW(e,t,n){return t=dW(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dW(e){var t=mW(e,"string");return Ul(t)=="symbol"?t:t+""}function mW(e,t){if(Ul(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ul(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function hW(e,t){return xW(e)||gW(e,t)||yW(e,t)||vW()}function vW(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yW(e,t){if(e){if(typeof e=="string")return a3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a3(e,t)}}function a3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function gW(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function xW(e){if(Array.isArray(e))return e}var wW=k.forwardRef(function(e,t){var n=e.aspect,r=e.initialDimension,a=r===void 0?{width:-1,height:-1}:r,o=e.width,i=o===void 0?"100%":o,s=e.height,l=s===void 0?"100%":s,u=e.minWidth,f=u===void 0?0:u,c=e.minHeight,p=e.maxHeight,d=e.children,h=e.debounce,m=h===void 0?0:h,g=e.id,v=e.className,y=e.onResize,x=e.style,P=x===void 0?{}:x,w=k.useRef(null),S=k.useRef();S.current=y,k.useImperativeHandle(t,function(){return Object.defineProperty(w.current,"current",{get:function(){return console.warn("The usage of ref.current.current is deprecated and will no longer be supported."),w.current},configurable:!0})});var O=k.useState({containerWidth:a.width,containerHeight:a.height}),_=hW(O,2),A=_[0],j=_[1],E=k.useCallback(function(N,M){j(function(I){var R=Math.round(N),L=Math.round(M);return I.containerWidth===R&&I.containerHeight===L?I:{containerWidth:R,containerHeight:L}})},[]);k.useEffect(function(){var N=function(D){var H,W=D[0].contentRect,G=W.width,Z=W.height;E(G,Z),(H=S.current)===null||H===void 0||H.call(S,G,Z)};m>0&&(N=S7(N,m,{trailing:!0,leading:!1}));var M=new ResizeObserver(N),I=w.current.getBoundingClientRect(),R=I.width,L=I.height;return E(R,L),M.observe(w.current),function(){M.disconnect()}},[E,m]);var T=k.useMemo(function(){var N=A.containerWidth,M=A.containerHeight;if(N<0||M<0)return null;$r(Za(i)||Za(l),`The width(%s) and height(%s) are both fixed numbers,
-       maybe you don't need to use a ResponsiveContainer.`,i,l),$r(!n||n>0,"The aspect(%s) must be greater than zero.",n);var I=Za(i)?N:i,R=Za(l)?M:l;n&&n>0&&(I?R=I/n:R&&(I=R*n),p&&R>p&&(R=p)),$r(I>0||R>0,`The width(%s) and height(%s) of chart should be greater than 0,
+            A`).concat(i,",").concat(i,",0,1,1,").concat(s,",").concat(o),className:"recharts-legend-icon"});if(r.type==="rect")return A.createElement("path",{stroke:"none",fill:l,d:"M0,".concat(cn/8,"h").concat(cn,"v").concat(cn*3/4,"h").concat(-cn,"z"),className:"recharts-legend-icon"});if(A.isValidElement(r.legendIcon)){var u=eD({},r);return delete u.legendIcon,A.cloneElement(r.legendIcon,u)}return A.createElement(md,{fill:l,cx:o,cy:o,size:cn,sizeType:"diameter",type:r.type})}},{key:"renderItems",value:function(){var r=this,a=this.props,o=a.payload,i=a.iconSize,s=a.layout,l=a.formatter,u=a.inactiveColor,p={x:0,y:0,width:cn,height:cn},c={display:s==="horizontal"?"inline-block":"block",marginRight:10},f={display:"inline-block",verticalAlign:"middle",marginRight:4};return o.map(function(d,h){var m=d.formatter||l,g=ue(Bl(Bl({"recharts-legend-item":!0},"legend-item-".concat(h),!0),"inactive",d.inactive));if(d.type==="none")return null;var v=oe(d.value)?null:d.value;$r(!oe(d.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: <Bar name="Name of my Data"/>`);var y=d.inactive?u:d.color;return A.createElement("li",b0({className:g,style:c,key:"legend-item-".concat(h)},Fl(r.props,d,h)),A.createElement(f0,{width:i,height:i,viewBox:p,style:f},r.renderIcon(d)),A.createElement("span",{className:"recharts-legend-item-text",style:{color:y}},m?m(v,d,h):v))})}},{key:"render",value:function(){var r=this.props,a=r.payload,o=r.layout,i=r.align;if(!a||!a.length)return null;var s={padding:0,margin:0,textAlign:o==="horizontal"?i:"left"};return A.createElement("ul",{className:"recharts-default-legend",style:s},this.renderItems())}}])}(k.PureComponent);Bl(ug,"displayName","Legend");Bl(ug,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var uD=Qf;function cD(){this.__data__=new uD,this.size=0}var pD=cD;function fD(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var dD=fD;function mD(e){return this.__data__.get(e)}var hD=mD;function vD(e){return this.__data__.has(e)}var yD=vD,gD=Qf,xD=Qy,wD=Zy,bD=200;function PD(e,t){var n=this.__data__;if(n instanceof gD){var r=n.__data__;if(!xD||r.length<bD-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new wD(r)}return n.set(e,t),this.size=n.size,this}var SD=PD,OD=Qf,kD=pD,_D=dD,CD=hD,AD=yD,ED=SD;function Ss(e){var t=this.__data__=new OD(e);this.size=t.size}Ss.prototype.clear=kD;Ss.prototype.delete=_D;Ss.prototype.get=CD;Ss.prototype.has=AD;Ss.prototype.set=ED;var Y8=Ss,TD="__lodash_hash_undefined__";function jD(e){return this.__data__.set(e,TD),this}var $D=jD;function ND(e){return this.__data__.has(e)}var MD=ND,RD=Zy,ID=$D,DD=MD;function Ep(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new RD;++t<n;)this.add(e[t])}Ep.prototype.add=Ep.prototype.push=ID;Ep.prototype.has=DD;var Q8=Ep;function LD(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var Z8=LD;function FD(e,t){return e.has(t)}var J8=FD,zD=Q8,BD=Z8,HD=J8,GD=1,UD=2;function WD(e,t,n,r,a,o){var i=n&GD,s=e.length,l=t.length;if(s!=l&&!(i&&l>s))return!1;var u=o.get(e),p=o.get(t);if(u&&p)return u==t&&p==e;var c=-1,f=!0,d=n&UD?new zD:void 0;for(o.set(e,t),o.set(t,e);++c<s;){var h=e[c],m=t[c];if(r)var g=i?r(m,h,c,t,e,o):r(h,m,c,e,t,o);if(g!==void 0){if(g)continue;f=!1;break}if(d){if(!BD(t,function(v,y){if(!HD(d,y)&&(h===v||a(h,v,n,r,o)))return d.push(y)})){f=!1;break}}else if(!(h===m||a(h,m,n,r,o))){f=!1;break}}return o.delete(e),o.delete(t),f}var e7=WD,qD=gr,VD=qD.Uint8Array,KD=VD;function XD(e){var t=-1,n=Array(e.size);return e.forEach(function(r,a){n[++t]=[a,r]}),n}var YD=XD;function QD(e){var t=-1,n=Array(e.size);return e.forEach(function(r){n[++t]=r}),n}var cg=QD,gw=$u,xw=KD,ZD=Yy,JD=e7,eL=YD,tL=cg,nL=1,rL=2,aL="[object Boolean]",oL="[object Date]",iL="[object Error]",sL="[object Map]",lL="[object Number]",uL="[object RegExp]",cL="[object Set]",pL="[object String]",fL="[object Symbol]",dL="[object ArrayBuffer]",mL="[object DataView]",ww=gw?gw.prototype:void 0,Mm=ww?ww.valueOf:void 0;function hL(e,t,n,r,a,o,i){switch(n){case mL:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case dL:return!(e.byteLength!=t.byteLength||!o(new xw(e),new xw(t)));case aL:case oL:case lL:return ZD(+e,+t);case iL:return e.name==t.name&&e.message==t.message;case uL:case pL:return e==t+"";case sL:var s=eL;case cL:var l=r&nL;if(s||(s=tL),e.size!=t.size&&!l)return!1;var u=i.get(e);if(u)return u==t;r|=rL,i.set(e,t);var p=JD(s(e),s(t),r,a,o,i);return i.delete(e),p;case fL:if(Mm)return Mm.call(e)==Mm.call(t)}return!1}var vL=hL;function yL(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}var t7=yL,gL=t7,xL=Vt;function wL(e,t,n){var r=t(e);return xL(e)?r:gL(r,n(e))}var bL=wL;function PL(e,t){for(var n=-1,r=e==null?0:e.length,a=0,o=[];++n<r;){var i=e[n];t(i,n,e)&&(o[a++]=i)}return o}var SL=PL;function OL(){return[]}var kL=OL,_L=SL,CL=kL,AL=Object.prototype,EL=AL.propertyIsEnumerable,bw=Object.getOwnPropertySymbols,TL=bw?function(e){return e==null?[]:(e=Object(e),_L(bw(e),function(t){return EL.call(e,t)}))}:CL,jL=TL;function $L(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var NL=$L,ML=Ur,RL=Wr,IL="[object Arguments]";function DL(e){return RL(e)&&ML(e)==IL}var LL=DL,Pw=LL,FL=Wr,n7=Object.prototype,zL=n7.hasOwnProperty,BL=n7.propertyIsEnumerable,HL=Pw(function(){return arguments}())?Pw:function(e){return FL(e)&&zL.call(e,"callee")&&!BL.call(e,"callee")},pg=HL,Tp={exports:{}};function GL(){return!1}var UL=GL;Tp.exports;(function(e,t){var n=gr,r=UL,a=t&&!t.nodeType&&t,o=a&&!0&&e&&!e.nodeType&&e,i=o&&o.exports===a,s=i?n.Buffer:void 0,l=s?s.isBuffer:void 0,u=l||r;e.exports=u})(Tp,Tp.exports);var r7=Tp.exports,WL=9007199254740991,qL=/^(?:0|[1-9]\d*)$/;function VL(e,t){var n=typeof e;return t=t??WL,!!t&&(n=="number"||n!="symbol"&&qL.test(e))&&e>-1&&e%1==0&&e<t}var fg=VL,KL=9007199254740991;function XL(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=KL}var dg=XL,YL=Ur,QL=dg,ZL=Wr,JL="[object Arguments]",eF="[object Array]",tF="[object Boolean]",nF="[object Date]",rF="[object Error]",aF="[object Function]",oF="[object Map]",iF="[object Number]",sF="[object Object]",lF="[object RegExp]",uF="[object Set]",cF="[object String]",pF="[object WeakMap]",fF="[object ArrayBuffer]",dF="[object DataView]",mF="[object Float32Array]",hF="[object Float64Array]",vF="[object Int8Array]",yF="[object Int16Array]",gF="[object Int32Array]",xF="[object Uint8Array]",wF="[object Uint8ClampedArray]",bF="[object Uint16Array]",PF="[object Uint32Array]",De={};De[mF]=De[hF]=De[vF]=De[yF]=De[gF]=De[xF]=De[wF]=De[bF]=De[PF]=!0;De[JL]=De[eF]=De[fF]=De[tF]=De[dF]=De[nF]=De[rF]=De[aF]=De[oF]=De[iF]=De[sF]=De[lF]=De[uF]=De[cF]=De[pF]=!1;function SF(e){return ZL(e)&&QL(e.length)&&!!De[YL(e)]}var OF=SF;function kF(e){return function(t){return e(t)}}var a7=kF,jp={exports:{}};jp.exports;(function(e,t){var n=p8,r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,o=a&&a.exports===r,i=o&&n.process,s=function(){try{var l=a&&a.require&&a.require("util").types;return l||i&&i.binding&&i.binding("util")}catch{}}();e.exports=s})(jp,jp.exports);var _F=jp.exports,CF=OF,AF=a7,Sw=_F,Ow=Sw&&Sw.isTypedArray,EF=Ow?AF(Ow):CF,o7=EF,TF=NL,jF=pg,$F=Vt,NF=r7,MF=fg,RF=o7,IF=Object.prototype,DF=IF.hasOwnProperty;function LF(e,t){var n=$F(e),r=!n&&jF(e),a=!n&&!r&&NF(e),o=!n&&!r&&!a&&RF(e),i=n||r||a||o,s=i?TF(e.length,String):[],l=s.length;for(var u in e)(t||DF.call(e,u))&&!(i&&(u=="length"||a&&(u=="offset"||u=="parent")||o&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||MF(u,l)))&&s.push(u);return s}var FF=LF,zF=Object.prototype;function BF(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||zF;return e===n}var HF=BF;function GF(e,t){return function(n){return e(t(n))}}var i7=GF,UF=i7,WF=UF(Object.keys,Object),qF=WF,VF=HF,KF=qF,XF=Object.prototype,YF=XF.hasOwnProperty;function QF(e){if(!VF(e))return KF(e);var t=[];for(var n in Object(e))YF.call(e,n)&&n!="constructor"&&t.push(n);return t}var ZF=QF,JF=Xy,ez=dg;function tz(e){return e!=null&&ez(e.length)&&!JF(e)}var Nu=tz,nz=FF,rz=ZF,az=Nu;function oz(e){return az(e)?nz(e):rz(e)}var hd=oz,iz=bL,sz=jL,lz=hd;function uz(e){return iz(e,lz,sz)}var cz=uz,kw=cz,pz=1,fz=Object.prototype,dz=fz.hasOwnProperty;function mz(e,t,n,r,a,o){var i=n&pz,s=kw(e),l=s.length,u=kw(t),p=u.length;if(l!=p&&!i)return!1;for(var c=l;c--;){var f=s[c];if(!(i?f in t:dz.call(t,f)))return!1}var d=o.get(e),h=o.get(t);if(d&&h)return d==t&&h==e;var m=!0;o.set(e,t),o.set(t,e);for(var g=i;++c<l;){f=s[c];var v=e[f],y=t[f];if(r)var x=i?r(y,v,f,t,e,o):r(v,y,f,e,t,o);if(!(x===void 0?v===y||a(v,y,n,r,o):x)){m=!1;break}g||(g=f=="constructor")}if(m&&!g){var P=e.constructor,w=t.constructor;P!=w&&"constructor"in e&&"constructor"in t&&!(typeof P=="function"&&P instanceof P&&typeof w=="function"&&w instanceof w)&&(m=!1)}return o.delete(e),o.delete(t),m}var hz=mz,vz=jo,yz=gr,gz=vz(yz,"DataView"),xz=gz,wz=jo,bz=gr,Pz=wz(bz,"Promise"),Sz=Pz,Oz=jo,kz=gr,_z=Oz(kz,"Set"),s7=_z,Cz=jo,Az=gr,Ez=Cz(Az,"WeakMap"),Tz=Ez,S0=xz,O0=Qy,k0=Sz,_0=s7,C0=Tz,l7=Ur,Os=d8,_w="[object Map]",jz="[object Object]",Cw="[object Promise]",Aw="[object Set]",Ew="[object WeakMap]",Tw="[object DataView]",$z=Os(S0),Nz=Os(O0),Mz=Os(k0),Rz=Os(_0),Iz=Os(C0),Va=l7;(S0&&Va(new S0(new ArrayBuffer(1)))!=Tw||O0&&Va(new O0)!=_w||k0&&Va(k0.resolve())!=Cw||_0&&Va(new _0)!=Aw||C0&&Va(new C0)!=Ew)&&(Va=function(e){var t=l7(e),n=t==jz?e.constructor:void 0,r=n?Os(n):"";if(r)switch(r){case $z:return Tw;case Nz:return _w;case Mz:return Cw;case Rz:return Aw;case Iz:return Ew}return t});var Dz=Va,Rm=Y8,Lz=e7,Fz=vL,zz=hz,jw=Dz,$w=Vt,Nw=r7,Bz=o7,Hz=1,Mw="[object Arguments]",Rw="[object Array]",pc="[object Object]",Gz=Object.prototype,Iw=Gz.hasOwnProperty;function Uz(e,t,n,r,a,o){var i=$w(e),s=$w(t),l=i?Rw:jw(e),u=s?Rw:jw(t);l=l==Mw?pc:l,u=u==Mw?pc:u;var p=l==pc,c=u==pc,f=l==u;if(f&&Nw(e)){if(!Nw(t))return!1;i=!0,p=!1}if(f&&!p)return o||(o=new Rm),i||Bz(e)?Lz(e,t,n,r,a,o):Fz(e,t,l,n,r,a,o);if(!(n&Hz)){var d=p&&Iw.call(e,"__wrapped__"),h=c&&Iw.call(t,"__wrapped__");if(d||h){var m=d?e.value():e,g=h?t.value():t;return o||(o=new Rm),a(m,g,n,r,o)}}return f?(o||(o=new Rm),zz(e,t,n,r,a,o)):!1}var Wz=Uz,qz=Wz,Dw=Wr;function u7(e,t,n,r,a){return e===t?!0:e==null||t==null||!Dw(e)&&!Dw(t)?e!==e&&t!==t:qz(e,t,n,r,u7,a)}var mg=u7,Vz=Y8,Kz=mg,Xz=1,Yz=2;function Qz(e,t,n,r){var a=n.length,o=a,i=!r;if(e==null)return!o;for(e=Object(e);a--;){var s=n[a];if(i&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++a<o;){s=n[a];var l=s[0],u=e[l],p=s[1];if(i&&s[2]){if(u===void 0&&!(l in e))return!1}else{var c=new Vz;if(r)var f=r(u,p,l,e,t,c);if(!(f===void 0?Kz(p,u,Xz|Yz,r,c):f))return!1}}return!0}var Zz=Qz,Jz=Ra;function eB(e){return e===e&&!Jz(e)}var c7=eB,tB=c7,nB=hd;function rB(e){for(var t=nB(e),n=t.length;n--;){var r=t[n],a=e[r];t[n]=[r,a,tB(a)]}return t}var aB=rB;function oB(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}var p7=oB,iB=Zz,sB=aB,lB=p7;function uB(e){var t=sB(e);return t.length==1&&t[0][2]?lB(t[0][0],t[0][1]):function(n){return n===e||iB(n,e,t)}}var cB=uB;function pB(e,t){return e!=null&&t in Object(e)}var fB=pB,dB=g8,mB=pg,hB=Vt,vB=fg,yB=dg,gB=Jf;function xB(e,t,n){t=dB(t,e);for(var r=-1,a=t.length,o=!1;++r<a;){var i=gB(t[r]);if(!(o=e!=null&&n(e,i)))break;e=e[i]}return o||++r!=a?o:(a=e==null?0:e.length,!!a&&yB(a)&&vB(i,a)&&(hB(e)||mB(e)))}var wB=xB,bB=fB,PB=wB;function SB(e,t){return e!=null&&PB(e,t,bB)}var OB=SB,kB=mg,_B=x8,CB=OB,AB=Ky,EB=c7,TB=p7,jB=Jf,$B=1,NB=2;function MB(e,t){return AB(e)&&EB(t)?TB(jB(e),t):function(n){var r=_B(n,e);return r===void 0&&r===t?CB(n,e):kB(t,r,$B|NB)}}var RB=MB;function IB(e){return e}var ks=IB;function DB(e){return function(t){return t==null?void 0:t[e]}}var LB=DB,FB=tg;function zB(e){return function(t){return FB(t,e)}}var BB=zB,HB=LB,GB=BB,UB=Ky,WB=Jf;function qB(e){return UB(e)?HB(WB(e)):GB(e)}var VB=qB,KB=cB,XB=RB,YB=ks,QB=Vt,ZB=VB;function JB(e){return typeof e=="function"?e:e==null?YB:typeof e=="object"?QB(e)?XB(e[0],e[1]):KB(e):ZB(e)}var Ia=JB;function eH(e,t,n,r){for(var a=e.length,o=n+(r?1:-1);r?o--:++o<a;)if(t(e[o],o,e))return o;return-1}var f7=eH;function tH(e){return e!==e}var nH=tH;function rH(e,t,n){for(var r=n-1,a=e.length;++r<a;)if(e[r]===t)return r;return-1}var aH=rH,oH=f7,iH=nH,sH=aH;function lH(e,t,n){return t===t?sH(e,t,n):oH(e,iH,n)}var uH=lH,cH=uH;function pH(e,t){var n=e==null?0:e.length;return!!n&&cH(e,t,0)>-1}var fH=pH;function dH(e,t,n){for(var r=-1,a=e==null?0:e.length;++r<a;)if(n(t,e[r]))return!0;return!1}var mH=dH;function hH(){}var vH=hH,Im=s7,yH=vH,gH=cg,xH=1/0,wH=Im&&1/gH(new Im([,-0]))[1]==xH?function(e){return new Im(e)}:yH,bH=wH,PH=Q8,SH=fH,OH=mH,kH=J8,_H=bH,CH=cg,AH=200;function EH(e,t,n){var r=-1,a=SH,o=e.length,i=!0,s=[],l=s;if(n)i=!1,a=OH;else if(o>=AH){var u=t?null:_H(e);if(u)return CH(u);i=!1,a=kH,l=new PH}else l=t?[]:s;e:for(;++r<o;){var p=e[r],c=t?t(p):p;if(p=n||p!==0?p:0,i&&c===c){for(var f=l.length;f--;)if(l[f]===c)continue e;t&&l.push(c),s.push(p)}else a(l,c,n)||(l!==s&&l.push(c),s.push(p))}return s}var TH=EH,jH=Ia,$H=TH;function NH(e,t){return e&&e.length?$H(e,jH(t)):[]}var MH=NH;const Lw=Ae(MH);function d7(e,t,n){return t===!0?Lw(e,n):oe(t)?Lw(e,t):e}function Di(e){"@babel/helpers - typeof";return Di=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Di(e)}var RH=["ref"];function Fw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function wr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Fw(Object(n),!0).forEach(function(r){vd(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Fw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function IH(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zw(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,h7(r.key),r)}}function DH(e,t,n){return t&&zw(e.prototype,t),n&&zw(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function LH(e,t,n){return t=$p(t),FH(e,m7()?Reflect.construct(t,n||[],$p(e).constructor):t.apply(e,n))}function FH(e,t){if(t&&(Di(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return zH(e)}function zH(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m7(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(m7=function(){return!!e})()}function $p(e){return $p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},$p(e)}function BH(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&A0(e,t)}function A0(e,t){return A0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},A0(e,t)}function vd(e,t,n){return t=h7(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h7(e){var t=HH(e,"string");return Di(t)=="symbol"?t:t+""}function HH(e,t){if(Di(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Di(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function GH(e,t){if(e==null)return{};var n=UH(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function UH(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function WH(e){return e.value}function qH(e,t){if(A.isValidElement(e))return A.cloneElement(e,t);if(typeof e=="function")return A.createElement(e,t);t.ref;var n=GH(t,RH);return A.createElement(ug,n)}var Bw=1,hi=function(e){function t(){var n;IH(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=LH(this,t,[].concat(a)),vd(n,"lastBoundingBox",{width:-1,height:-1}),n}return BH(t,e),DH(t,[{key:"componentDidMount",value:function(){this.updateBBox()}},{key:"componentDidUpdate",value:function(){this.updateBBox()}},{key:"getBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var r=this.wrapperNode.getBoundingClientRect();return r.height=this.wrapperNode.offsetHeight,r.width=this.wrapperNode.offsetWidth,r}return null}},{key:"updateBBox",value:function(){var r=this.props.onBBoxUpdate,a=this.getBBox();a?(Math.abs(a.width-this.lastBoundingBox.width)>Bw||Math.abs(a.height-this.lastBoundingBox.height)>Bw)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?wr({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,o=a.layout,i=a.align,s=a.verticalAlign,l=a.margin,u=a.chartWidth,p=a.chartHeight,c,f;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(i==="center"&&o==="vertical"){var d=this.getBBoxSnapshot();c={left:((u||0)-d.width)/2}}else c=i==="right"?{right:l&&l.right||0}:{left:l&&l.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(s==="middle"){var h=this.getBBoxSnapshot();f={top:((p||0)-h.height)/2}}else f=s==="bottom"?{bottom:l&&l.bottom||0}:{top:l&&l.top||0};return wr(wr({},c),f)}},{key:"render",value:function(){var r=this,a=this.props,o=a.content,i=a.width,s=a.height,l=a.wrapperStyle,u=a.payloadUniqBy,p=a.payload,c=wr(wr({position:"absolute",width:i||"auto",height:s||"auto"},this.getDefaultPosition(l)),l);return A.createElement("div",{className:"recharts-legend-wrapper",style:c,ref:function(d){r.wrapperNode=d}},qH(o,wr(wr({},this.props),{},{payload:d7(p,u,WH)})))}}],[{key:"getWithHeight",value:function(r,a){var o=wr(wr({},this.defaultProps),r.props),i=o.layout;return i==="vertical"&&V(r.props.height)?{height:r.props.height}:i==="horizontal"?{width:r.props.width||a}:null}}])}(k.PureComponent);vd(hi,"displayName","Legend");vd(hi,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var Hw=$u,VH=pg,KH=Vt,Gw=Hw?Hw.isConcatSpreadable:void 0;function XH(e){return KH(e)||VH(e)||!!(Gw&&e&&e[Gw])}var YH=XH,QH=t7,ZH=YH;function v7(e,t,n,r,a){var o=-1,i=e.length;for(n||(n=ZH),a||(a=[]);++o<i;){var s=e[o];t>0&&n(s)?t>1?v7(s,t-1,n,r,a):QH(a,s):r||(a[a.length]=s)}return a}var y7=v7;function JH(e){return function(t,n,r){for(var a=-1,o=Object(t),i=r(t),s=i.length;s--;){var l=i[e?s:++a];if(n(o[l],l,o)===!1)break}return t}}var eG=JH,tG=eG,nG=tG(),rG=nG,aG=rG,oG=hd;function iG(e,t){return e&&aG(e,t,oG)}var g7=iG,sG=Nu;function lG(e,t){return function(n,r){if(n==null)return n;if(!sG(n))return e(n,r);for(var a=n.length,o=t?a:-1,i=Object(n);(t?o--:++o<a)&&r(i[o],o,i)!==!1;);return n}}var uG=lG,cG=g7,pG=uG,fG=pG(cG),hg=fG,dG=hg,mG=Nu;function hG(e,t){var n=-1,r=mG(e)?Array(e.length):[];return dG(e,function(a,o,i){r[++n]=t(a,o,i)}),r}var x7=hG;function vG(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}var yG=vG,Uw=ys;function gG(e,t){if(e!==t){var n=e!==void 0,r=e===null,a=e===e,o=Uw(e),i=t!==void 0,s=t===null,l=t===t,u=Uw(t);if(!s&&!u&&!o&&e>t||o&&i&&l&&!s&&!u||r&&i&&l||!n&&l||!a)return 1;if(!r&&!o&&!u&&e<t||u&&n&&a&&!r&&!o||s&&n&&a||!i&&a||!l)return-1}return 0}var xG=gG,wG=xG;function bG(e,t,n){for(var r=-1,a=e.criteria,o=t.criteria,i=a.length,s=n.length;++r<i;){var l=wG(a[r],o[r]);if(l){if(r>=s)return l;var u=n[r];return l*(u=="desc"?-1:1)}}return e.index-t.index}var PG=bG,Dm=eg,SG=tg,OG=Ia,kG=x7,_G=yG,CG=a7,AG=PG,EG=ks,TG=Vt;function jG(e,t,n){t.length?t=Dm(t,function(o){return TG(o)?function(i){return SG(i,o.length===1?o[0]:o)}:o}):t=[EG];var r=-1;t=Dm(t,CG(OG));var a=kG(e,function(o,i,s){var l=Dm(t,function(u){return u(o)});return{criteria:l,index:++r,value:o}});return _G(a,function(o,i){return AG(o,i,n)})}var $G=jG;function NG(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var MG=NG,RG=MG,Ww=Math.max;function IG(e,t,n){return t=Ww(t===void 0?e.length-1:t,0),function(){for(var r=arguments,a=-1,o=Ww(r.length-t,0),i=Array(o);++a<o;)i[a]=r[t+a];a=-1;for(var s=Array(t+1);++a<t;)s[a]=r[a];return s[t]=n(i),RG(e,this,s)}}var DG=IG;function LG(e){return function(){return e}}var FG=LG,zG=jo,BG=function(){try{var e=zG(Object,"defineProperty");return e({},"",{}),e}catch{}}(),w7=BG,HG=FG,qw=w7,GG=ks,UG=qw?function(e,t){return qw(e,"toString",{configurable:!0,enumerable:!1,value:HG(t),writable:!0})}:GG,WG=UG,qG=800,VG=16,KG=Date.now;function XG(e){var t=0,n=0;return function(){var r=KG(),a=VG-(r-n);if(n=r,a>0){if(++t>=qG)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var YG=XG,QG=WG,ZG=YG,JG=ZG(QG),eU=JG,tU=ks,nU=DG,rU=eU;function aU(e,t){return rU(nU(e,t,tU),e+"")}var oU=aU,iU=Yy,sU=Nu,lU=fg,uU=Ra;function cU(e,t,n){if(!uU(n))return!1;var r=typeof t;return(r=="number"?sU(n)&&lU(t,n.length):r=="string"&&t in n)?iU(n[t],e):!1}var yd=cU,pU=y7,fU=$G,dU=oU,Vw=yd,mU=dU(function(e,t){if(e==null)return[];var n=t.length;return n>1&&Vw(e,t[0],t[1])?t=[]:n>2&&Vw(t[0],t[1],t[2])&&(t=[t[0]]),fU(e,pU(t,1),[])}),hU=mU;const vg=Ae(hU);function Hl(e){"@babel/helpers - typeof";return Hl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hl(e)}function E0(){return E0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},E0.apply(this,arguments)}function vU(e,t){return wU(e)||xU(e,t)||gU(e,t)||yU()}function yU(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gU(e,t){if(e){if(typeof e=="string")return Kw(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kw(e,t)}}function Kw(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function xU(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function wU(e){if(Array.isArray(e))return e}function Xw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Lm(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Xw(Object(n),!0).forEach(function(r){bU(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function bU(e,t,n){return t=PU(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PU(e){var t=SU(e,"string");return Hl(t)=="symbol"?t:t+""}function SU(e,t){if(Hl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Hl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function OU(e){return Array.isArray(e)&&it(e[0])&&it(e[1])?e.join(" ~ "):e}var kU=function(t){var n=t.separator,r=n===void 0?" : ":n,a=t.contentStyle,o=a===void 0?{}:a,i=t.itemStyle,s=i===void 0?{}:i,l=t.labelStyle,u=l===void 0?{}:l,p=t.payload,c=t.formatter,f=t.itemSorter,d=t.wrapperClassName,h=t.labelClassName,m=t.label,g=t.labelFormatter,v=t.accessibilityLayer,y=v===void 0?!1:v,x=function(){if(p&&p.length){var T={padding:0,margin:0},N=(f?vg(p,f):p).map(function(M,I){if(M.type==="none")return null;var R=Lm({display:"block",paddingTop:4,paddingBottom:4,color:M.color||"#000"},s),L=M.formatter||c||OU,$=M.value,D=M.name,H=$,W=D;if(L&&H!=null&&W!=null){var G=L($,D,M,I,p);if(Array.isArray(G)){var Z=vU(G,2);H=Z[0],W=Z[1]}else H=G}return A.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(I),style:R},it(W)?A.createElement("span",{className:"recharts-tooltip-item-name"},W):null,it(W)?A.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,A.createElement("span",{className:"recharts-tooltip-item-value"},H),A.createElement("span",{className:"recharts-tooltip-item-unit"},M.unit||""))});return A.createElement("ul",{className:"recharts-tooltip-item-list",style:T},N)}return null},P=Lm({margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},o),w=Lm({margin:0},u),S=!te(m),O=S?m:"",_=ue("recharts-default-tooltip",d),C=ue("recharts-tooltip-label",h);S&&g&&p!==void 0&&p!==null&&(O=g(m,p));var j=y?{role:"status","aria-live":"assertive"}:{};return A.createElement("div",E0({className:_,style:P},j),A.createElement("p",{className:C,style:w},A.isValidElement(O)?O:"".concat(O)),x())};function Gl(e){"@babel/helpers - typeof";return Gl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gl(e)}function fc(e,t,n){return t=_U(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _U(e){var t=CU(e,"string");return Gl(t)=="symbol"?t:t+""}function CU(e,t){if(Gl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Gl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Hs="recharts-tooltip-wrapper",AU={visibility:"hidden"};function EU(e){var t=e.coordinate,n=e.translateX,r=e.translateY;return ue(Hs,fc(fc(fc(fc({},"".concat(Hs,"-right"),V(n)&&t&&V(t.x)&&n>=t.x),"".concat(Hs,"-left"),V(n)&&t&&V(t.x)&&n<t.x),"".concat(Hs,"-bottom"),V(r)&&t&&V(t.y)&&r>=t.y),"".concat(Hs,"-top"),V(r)&&t&&V(t.y)&&r<t.y))}function Yw(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.key,a=e.offsetTopLeft,o=e.position,i=e.reverseDirection,s=e.tooltipDimension,l=e.viewBox,u=e.viewBoxDimension;if(o&&V(o[r]))return o[r];var p=n[r]-s-a,c=n[r]+a;if(t[r])return i[r]?p:c;if(i[r]){var f=p,d=l[r];return f<d?Math.max(c,l[r]):Math.max(p,l[r])}var h=c+s,m=l[r]+u;return h>m?Math.max(p,l[r]):Math.max(c,l[r])}function TU(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function jU(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,o=e.reverseDirection,i=e.tooltipBox,s=e.useTranslate3d,l=e.viewBox,u,p,c;return i.height>0&&i.width>0&&n?(p=Yw({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:o,tooltipDimension:i.width,viewBox:l,viewBoxDimension:l.width}),c=Yw({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:o,tooltipDimension:i.height,viewBox:l,viewBoxDimension:l.height}),u=TU({translateX:p,translateY:c,useTranslate3d:s})):u=AU,{cssProperties:u,cssClasses:EU({translateX:p,translateY:c,coordinate:n})}}function Li(e){"@babel/helpers - typeof";return Li=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Li(e)}function Qw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Zw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Qw(Object(n),!0).forEach(function(r){j0(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qw(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function $U(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function NU(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,P7(r.key),r)}}function MU(e,t,n){return t&&NU(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function RU(e,t,n){return t=Np(t),IU(e,b7()?Reflect.construct(t,n||[],Np(e).constructor):t.apply(e,n))}function IU(e,t){if(t&&(Li(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return DU(e)}function DU(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b7(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(b7=function(){return!!e})()}function Np(e){return Np=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Np(e)}function LU(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&T0(e,t)}function T0(e,t){return T0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},T0(e,t)}function j0(e,t,n){return t=P7(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P7(e){var t=FU(e,"string");return Li(t)=="symbol"?t:t+""}function FU(e,t){if(Li(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Li(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Jw=1,zU=function(e){function t(){var n;$U(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=RU(this,t,[].concat(a)),j0(n,"state",{dismissed:!1,dismissedAtCoordinate:{x:0,y:0},lastBoundingBox:{width:-1,height:-1}}),j0(n,"handleKeyDown",function(i){if(i.key==="Escape"){var s,l,u,p;n.setState({dismissed:!0,dismissedAtCoordinate:{x:(s=(l=n.props.coordinate)===null||l===void 0?void 0:l.x)!==null&&s!==void 0?s:0,y:(u=(p=n.props.coordinate)===null||p===void 0?void 0:p.y)!==null&&u!==void 0?u:0}})}}),n}return LU(t,e),MU(t,[{key:"updateBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var r=this.wrapperNode.getBoundingClientRect();(Math.abs(r.width-this.state.lastBoundingBox.width)>Jw||Math.abs(r.height-this.state.lastBoundingBox.height)>Jw)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,o=a.active,i=a.allowEscapeViewBox,s=a.animationDuration,l=a.animationEasing,u=a.children,p=a.coordinate,c=a.hasPayload,f=a.isAnimationActive,d=a.offset,h=a.position,m=a.reverseDirection,g=a.useTranslate3d,v=a.viewBox,y=a.wrapperStyle,x=jU({allowEscapeViewBox:i,coordinate:p,offsetTopLeft:d,position:h,reverseDirection:m,tooltipBox:this.state.lastBoundingBox,useTranslate3d:g,viewBox:v}),P=x.cssClasses,w=x.cssProperties,S=Zw(Zw({transition:f&&o?"transform ".concat(s,"ms ").concat(l):void 0},w),{},{pointerEvents:"none",visibility:!this.state.dismissed&&o&&c?"visible":"hidden",position:"absolute",top:0,left:0},y);return A.createElement("div",{tabIndex:-1,className:P,style:S,ref:function(_){r.wrapperNode=_}},u)}}])}(k.PureComponent),BU=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Da={isSsr:BU()};function Fi(e){"@babel/helpers - typeof";return Fi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fi(e)}function e3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function t3(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?e3(Object(n),!0).forEach(function(r){yg(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):e3(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function HU(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function GU(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,O7(r.key),r)}}function UU(e,t,n){return t&&GU(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function WU(e,t,n){return t=Mp(t),qU(e,S7()?Reflect.construct(t,n||[],Mp(e).constructor):t.apply(e,n))}function qU(e,t){if(t&&(Fi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return VU(e)}function VU(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function S7(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(S7=function(){return!!e})()}function Mp(e){return Mp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Mp(e)}function KU(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&$0(e,t)}function $0(e,t){return $0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},$0(e,t)}function yg(e,t,n){return t=O7(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O7(e){var t=XU(e,"string");return Fi(t)=="symbol"?t:t+""}function XU(e,t){if(Fi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Fi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function YU(e){return e.dataKey}function QU(e,t){return A.isValidElement(e)?A.cloneElement(e,t):typeof e=="function"?A.createElement(e,t):A.createElement(kU,t)}var Zn=function(e){function t(){return HU(this,t),WU(this,t,arguments)}return KU(t,e),UU(t,[{key:"render",value:function(){var r=this,a=this.props,o=a.active,i=a.allowEscapeViewBox,s=a.animationDuration,l=a.animationEasing,u=a.content,p=a.coordinate,c=a.filterNull,f=a.isAnimationActive,d=a.offset,h=a.payload,m=a.payloadUniqBy,g=a.position,v=a.reverseDirection,y=a.useTranslate3d,x=a.viewBox,P=a.wrapperStyle,w=h??[];c&&w.length&&(w=d7(h.filter(function(O){return O.value!=null&&(O.hide!==!0||r.props.includeHidden)}),m,YU));var S=w.length>0;return A.createElement(zU,{allowEscapeViewBox:i,animationDuration:s,animationEasing:l,isAnimationActive:f,active:o,coordinate:p,hasPayload:S,offset:d,position:g,reverseDirection:v,useTranslate3d:y,viewBox:x,wrapperStyle:P},QU(u,t3(t3({},this.props),{},{payload:w})))}}])}(k.PureComponent);yg(Zn,"displayName","Tooltip");yg(Zn,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Da.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var ZU=gr,JU=function(){return ZU.Date.now()},eW=JU,tW=/\s/;function nW(e){for(var t=e.length;t--&&tW.test(e.charAt(t)););return t}var rW=nW,aW=rW,oW=/^\s+/;function iW(e){return e&&e.slice(0,aW(e)+1).replace(oW,"")}var sW=iW,lW=sW,n3=Ra,uW=ys,r3=NaN,cW=/^[-+]0x[0-9a-f]+$/i,pW=/^0b[01]+$/i,fW=/^0o[0-7]+$/i,dW=parseInt;function mW(e){if(typeof e=="number")return e;if(uW(e))return r3;if(n3(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=n3(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=lW(e);var n=pW.test(e);return n||fW.test(e)?dW(e.slice(2),n?2:8):cW.test(e)?r3:+e}var k7=mW,hW=Ra,Fm=eW,a3=k7,vW="Expected a function",yW=Math.max,gW=Math.min;function xW(e,t,n){var r,a,o,i,s,l,u=0,p=!1,c=!1,f=!0;if(typeof e!="function")throw new TypeError(vW);t=a3(t)||0,hW(n)&&(p=!!n.leading,c="maxWait"in n,o=c?yW(a3(n.maxWait)||0,t):o,f="trailing"in n?!!n.trailing:f);function d(S){var O=r,_=a;return r=a=void 0,u=S,i=e.apply(_,O),i}function h(S){return u=S,s=setTimeout(v,t),p?d(S):i}function m(S){var O=S-l,_=S-u,C=t-O;return c?gW(C,o-_):C}function g(S){var O=S-l,_=S-u;return l===void 0||O>=t||O<0||c&&_>=o}function v(){var S=Fm();if(g(S))return y(S);s=setTimeout(v,m(S))}function y(S){return s=void 0,f&&r?d(S):(r=a=void 0,i)}function x(){s!==void 0&&clearTimeout(s),u=0,r=l=a=s=void 0}function P(){return s===void 0?i:y(Fm())}function w(){var S=Fm(),O=g(S);if(r=arguments,a=this,l=S,O){if(s===void 0)return h(l);if(c)return clearTimeout(s),s=setTimeout(v,t),d(l)}return s===void 0&&(s=setTimeout(v,t)),i}return w.cancel=x,w.flush=P,w}var wW=xW,bW=wW,PW=Ra,SW="Expected a function";function OW(e,t,n){var r=!0,a=!0;if(typeof e!="function")throw new TypeError(SW);return PW(n)&&(r="leading"in n?!!n.leading:r,a="trailing"in n?!!n.trailing:a),bW(e,t,{leading:r,maxWait:t,trailing:a})}var kW=OW;const _7=Ae(kW);function Ul(e){"@babel/helpers - typeof";return Ul=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ul(e)}function o3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function dc(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?o3(Object(n),!0).forEach(function(r){_W(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o3(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function _W(e,t,n){return t=CW(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function CW(e){var t=AW(e,"string");return Ul(t)=="symbol"?t:t+""}function AW(e,t){if(Ul(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ul(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function EW(e,t){return NW(e)||$W(e,t)||jW(e,t)||TW()}function TW(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jW(e,t){if(e){if(typeof e=="string")return i3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i3(e,t)}}function i3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function $W(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function NW(e){if(Array.isArray(e))return e}var MW=k.forwardRef(function(e,t){var n=e.aspect,r=e.initialDimension,a=r===void 0?{width:-1,height:-1}:r,o=e.width,i=o===void 0?"100%":o,s=e.height,l=s===void 0?"100%":s,u=e.minWidth,p=u===void 0?0:u,c=e.minHeight,f=e.maxHeight,d=e.children,h=e.debounce,m=h===void 0?0:h,g=e.id,v=e.className,y=e.onResize,x=e.style,P=x===void 0?{}:x,w=k.useRef(null),S=k.useRef();S.current=y,k.useImperativeHandle(t,function(){return Object.defineProperty(w.current,"current",{get:function(){return console.warn("The usage of ref.current.current is deprecated and will no longer be supported."),w.current},configurable:!0})});var O=k.useState({containerWidth:a.width,containerHeight:a.height}),_=EW(O,2),C=_[0],j=_[1],E=k.useCallback(function(N,M){j(function(I){var R=Math.round(N),L=Math.round(M);return I.containerWidth===R&&I.containerHeight===L?I:{containerWidth:R,containerHeight:L}})},[]);k.useEffect(function(){var N=function(D){var H,W=D[0].contentRect,G=W.width,Z=W.height;E(G,Z),(H=S.current)===null||H===void 0||H.call(S,G,Z)};m>0&&(N=_7(N,m,{trailing:!0,leading:!1}));var M=new ResizeObserver(N),I=w.current.getBoundingClientRect(),R=I.width,L=I.height;return E(R,L),M.observe(w.current),function(){M.disconnect()}},[E,m]);var T=k.useMemo(function(){var N=C.containerWidth,M=C.containerHeight;if(N<0||M<0)return null;$r(Za(i)||Za(l),`The width(%s) and height(%s) are both fixed numbers,
+       maybe you don't need to use a ResponsiveContainer.`,i,l),$r(!n||n>0,"The aspect(%s) must be greater than zero.",n);var I=Za(i)?N:i,R=Za(l)?M:l;n&&n>0&&(I?R=I/n:R&&(I=R*n),f&&R>f&&(R=f)),$r(I>0||R>0,`The width(%s) and height(%s) of chart should be greater than 0,
        please check the style of container, or the props width(%s) and height(%s),
        or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the
-       height and width.`,I,R,i,l,f,c,n);var L=!Array.isArray(d)&&jr(d.type).endsWith("Chart");return C.Children.map(d,function($){return C.isValidElement($)?k.cloneElement($,dc({width:I,height:R},L?{style:dc({height:"100%",width:"100%",maxHeight:R,maxWidth:I},$.props.style)}:{})):$})},[n,d,l,p,c,f,A,i]);return C.createElement("div",{id:g?"".concat(g):void 0,className:ue("recharts-responsive-container",v),style:dc(dc({},P),{},{width:i,height:l,minWidth:f,minHeight:c,maxHeight:p}),ref:w},T)}),gg=function(t){return null};gg.displayName="Cell";function Wl(e){"@babel/helpers - typeof";return Wl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wl(e)}function o3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Nv(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?o3(Object(n),!0).forEach(function(r){bW(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o3(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function bW(e,t,n){return t=PW(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PW(e){var t=SW(e,"string");return Wl(t)=="symbol"?t:t+""}function SW(e,t){if(Wl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Wl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var zo={widthCache:{},cacheCount:0},OW=2e3,kW={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},i3="recharts_measurement_span";function _W(e){var t=Nv({},e);return Object.keys(t).forEach(function(n){t[n]||delete t[n]}),t}var pl=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Da.isSsr)return{width:0,height:0};var r=_W(n),a=JSON.stringify({text:t,copyStyle:r});if(zo.widthCache[a])return zo.widthCache[a];try{var o=document.getElementById(i3);o||(o=document.createElement("span"),o.setAttribute("id",i3),o.setAttribute("aria-hidden","true"),document.body.appendChild(o));var i=Nv(Nv({},kW),r);Object.assign(o.style,i),o.textContent="".concat(t);var s=o.getBoundingClientRect(),l={width:s.width,height:s.height};return zo.widthCache[a]=l,++zo.cacheCount>OW&&(zo.cacheCount=0,zo.widthCache={}),l}catch{return{width:0,height:0}}},AW=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function ql(e){"@babel/helpers - typeof";return ql=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ql(e)}function If(e,t){return jW(e)||TW(e,t)||EW(e,t)||CW()}function CW(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function EW(e,t){if(e){if(typeof e=="string")return s3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s3(e,t)}}function s3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function TW(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function jW(e){if(Array.isArray(e))return e}function $W(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l3(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,MW(r.key),r)}}function NW(e,t,n){return t&&l3(e.prototype,t),n&&l3(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function MW(e){var t=RW(e,"string");return ql(t)=="symbol"?t:t+""}function RW(e,t){if(ql(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ql(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var u3=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,c3=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,IW=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,DW=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,O7={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},LW=Object.keys(O7),ni="NaN";function FW(e,t){return e*O7[t]}var mc=function(){function e(t,n){$W(this,e),this.num=t,this.unit=n,this.num=t,this.unit=n,Number.isNaN(t)&&(this.unit=""),n!==""&&!IW.test(n)&&(this.num=NaN,this.unit=""),LW.includes(n)&&(this.num=FW(t,n),this.unit="px")}return NW(e,[{key:"add",value:function(n){return this.unit!==n.unit?new e(NaN,""):new e(this.num+n.num,this.unit)}},{key:"subtract",value:function(n){return this.unit!==n.unit?new e(NaN,""):new e(this.num-n.num,this.unit)}},{key:"multiply",value:function(n){return this.unit!==""&&n.unit!==""&&this.unit!==n.unit?new e(NaN,""):new e(this.num*n.num,this.unit||n.unit)}},{key:"divide",value:function(n){return this.unit!==""&&n.unit!==""&&this.unit!==n.unit?new e(NaN,""):new e(this.num/n.num,this.unit||n.unit)}},{key:"toString",value:function(){return"".concat(this.num).concat(this.unit)}},{key:"isNaN",value:function(){return Number.isNaN(this.num)}}],[{key:"parse",value:function(n){var r,a=(r=DW.exec(n))!==null&&r!==void 0?r:[],o=If(a,3),i=o[1],s=o[2];return new e(parseFloat(i),s??"")}}])}();function k7(e){if(e.includes(ni))return ni;for(var t=e;t.includes("*")||t.includes("/");){var n,r=(n=u3.exec(t))!==null&&n!==void 0?n:[],a=If(r,4),o=a[1],i=a[2],s=a[3],l=mc.parse(o??""),u=mc.parse(s??""),f=i==="*"?l.multiply(u):l.divide(u);if(f.isNaN())return ni;t=t.replace(u3,f.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var c,p=(c=c3.exec(t))!==null&&c!==void 0?c:[],d=If(p,4),h=d[1],m=d[2],g=d[3],v=mc.parse(h??""),y=mc.parse(g??""),x=m==="+"?v.add(y):v.subtract(y);if(x.isNaN())return ni;t=t.replace(c3,x.toString())}return t}var f3=/\(([^()]*)\)/;function zW(e){for(var t=e;t.includes("(");){var n=f3.exec(t),r=If(n,2),a=r[1];t=t.replace(f3,k7(a))}return t}function BW(e){var t=e.replace(/\s+/g,"");return t=zW(t),t=k7(t),t}function HW(e){try{return BW(e)}catch{return ni}}function zm(e){var t=HW(e.slice(5,-1));return t===ni?"":t}var GW=["x","y","lineHeight","capHeight","scaleToFit","textAnchor","verticalAnchor","fill"],UW=["dx","dy","angle","className","breakAll"];function Mv(){return Mv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Mv.apply(this,arguments)}function p3(e,t){if(e==null)return{};var n=WW(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function WW(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function d3(e,t){return XW(e)||KW(e,t)||VW(e,t)||qW()}function qW(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function VW(e,t){if(e){if(typeof e=="string")return m3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m3(e,t)}}function m3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function KW(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function XW(e){if(Array.isArray(e))return e}var _7=/[ \f\n\r\t\v\u2028\u2029]+/,A7=function(t){var n=t.children,r=t.breakAll,a=t.style;try{var o=[];te(n)||(r?o=n.toString().split(""):o=n.toString().split(_7));var i=o.map(function(l){return{word:l,width:pl(l,a).width}}),s=r?0:pl(" ",a).width;return{wordsWithComputedWidth:i,spaceWidth:s}}catch{return null}},YW=function(t,n,r,a,o){var i=t.maxLines,s=t.children,l=t.style,u=t.breakAll,f=V(i),c=s,p=function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return I.reduce(function(R,L){var $=L.word,D=L.width,H=R[R.length-1];if(H&&(a==null||o||H.width+D+r<Number(a)))H.words.push($),H.width+=D+r;else{var W={words:[$],width:D};R.push(W)}return R},[])},d=p(n),h=function(I){return I.reduce(function(R,L){return R.width>L.width?R:L})};if(!f)return d;for(var m="…",g=function(I){var R=c.slice(0,I),L=A7({breakAll:u,style:l,children:R+m}).wordsWithComputedWidth,$=p(L),D=$.length>i||h($).width>Number(a);return[D,$]},v=0,y=c.length-1,x=0,P;v<=y&&x<=c.length-1;){var w=Math.floor((v+y)/2),S=w-1,O=g(S),_=d3(O,2),A=_[0],j=_[1],E=g(w),T=d3(E,1),N=T[0];if(!A&&!N&&(v=w+1),A&&N&&(y=w-1),!A&&N){P=j;break}x++}return P||d},h3=function(t){var n=te(t)?[]:t.toString().split(_7);return[{words:n}]},QW=function(t){var n=t.width,r=t.scaleToFit,a=t.children,o=t.style,i=t.breakAll,s=t.maxLines;if((n||r)&&!Da.isSsr){var l,u,f=A7({breakAll:i,children:a,style:o});if(f){var c=f.wordsWithComputedWidth,p=f.spaceWidth;l=c,u=p}else return h3(a);return YW({breakAll:i,children:a,maxLines:s,style:o},l,u,n,r)}return h3(a)},v3="#808080",Df=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,o=a===void 0?0:a,i=t.lineHeight,s=i===void 0?"1em":i,l=t.capHeight,u=l===void 0?"0.71em":l,f=t.scaleToFit,c=f===void 0?!1:f,p=t.textAnchor,d=p===void 0?"start":p,h=t.verticalAnchor,m=h===void 0?"end":h,g=t.fill,v=g===void 0?v3:g,y=p3(t,GW),x=k.useMemo(function(){return QW({breakAll:y.breakAll,children:y.children,maxLines:y.maxLines,scaleToFit:c,style:y.style,width:y.width})},[y.breakAll,y.children,y.maxLines,c,y.style,y.width]),P=y.dx,w=y.dy,S=y.angle,O=y.className,_=y.breakAll,A=p3(y,UW);if(!it(r)||!it(o))return null;var j=r+(V(P)?P:0),E=o+(V(w)?w:0),T;switch(m){case"start":T=zm("calc(".concat(u,")"));break;case"middle":T=zm("calc(".concat((x.length-1)/2," * -").concat(s," + (").concat(u," / 2))"));break;default:T=zm("calc(".concat(x.length-1," * -").concat(s,")"));break}var N=[];if(c){var M=x[0].width,I=y.width;N.push("scale(".concat((V(I)?I/M:1)/M,")"))}return S&&N.push("rotate(".concat(S,", ").concat(j,", ").concat(E,")")),N.length&&(A.transform=N.join(" ")),C.createElement("text",Mv({},re(A,!0),{x:j,y:E,className:ue("recharts-text",O),textAnchor:d,fill:v.includes("url")?v3:v}),x.map(function(R,L){var $=R.words.join(_?"":" ");return C.createElement("tspan",{x:j,dy:L===0?T:s,key:"".concat($,"-").concat(L)},$)}))};function Oa(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ZW(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function xg(e){let t,n,r;e.length!==2?(t=Oa,n=(s,l)=>Oa(e(s),l),r=(s,l)=>e(s)-l):(t=e===Oa||e===ZW?e:JW,n=e,r=e);function a(s,l,u=0,f=s.length){if(u<f){if(t(l,l)!==0)return f;do{const c=u+f>>>1;n(s[c],l)<0?u=c+1:f=c}while(u<f)}return u}function o(s,l,u=0,f=s.length){if(u<f){if(t(l,l)!==0)return f;do{const c=u+f>>>1;n(s[c],l)<=0?u=c+1:f=c}while(u<f)}return u}function i(s,l,u=0,f=s.length){const c=a(s,l,u,f-1);return c>u&&r(s[c-1],l)>-r(s[c],l)?c-1:c}return{left:a,center:i,right:o}}function JW(){return 0}function C7(e){return e===null?NaN:+e}function*eq(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const tq=xg(Oa),Mu=tq.right;xg(C7).center;class y3 extends Map{constructor(t,n=aq){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(g3(this,t))}has(t){return super.has(g3(this,t))}set(t,n){return super.set(nq(this,t),n)}delete(t){return super.delete(rq(this,t))}}function g3({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function nq({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function rq({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function aq(e){return e!==null&&typeof e=="object"?e.valueOf():e}function oq(e=Oa){if(e===Oa)return E7;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function E7(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}const iq=Math.sqrt(50),sq=Math.sqrt(10),lq=Math.sqrt(2);function Lf(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),o=r/Math.pow(10,a),i=o>=iq?10:o>=sq?5:o>=lq?2:1;let s,l,u;return a<0?(u=Math.pow(10,-a)/i,s=Math.round(e*u),l=Math.round(t*u),s/u<e&&++s,l/u>t&&--l,u=-u):(u=Math.pow(10,a)*i,s=Math.round(e/u),l=Math.round(t/u),s*u<e&&++s,l*u>t&&--l),l<s&&.5<=n&&n<2?Lf(e,t,n*2):[s,l,u]}function Rv(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[a,o,i]=r?Lf(t,e,n):Lf(e,t,n);if(!(o>=a))return[];const s=o-a+1,l=new Array(s);if(r)if(i<0)for(let u=0;u<s;++u)l[u]=(o-u)/-i;else for(let u=0;u<s;++u)l[u]=(o-u)*i;else if(i<0)for(let u=0;u<s;++u)l[u]=(a+u)/-i;else for(let u=0;u<s;++u)l[u]=(a+u)*i;return l}function Iv(e,t,n){return t=+t,e=+e,n=+n,Lf(e,t,n)[2]}function Dv(e,t,n){t=+t,e=+e,n=+n;const r=t<e,a=r?Iv(t,e,n):Iv(e,t,n);return(r?-1:1)*(a<0?1/-a:a)}function x3(e,t){let n;for(const r of e)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);return n}function w3(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function T7(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?E7:oq(a);r>n;){if(r-n>600){const l=r-n+1,u=t-n+1,f=Math.log(l),c=.5*Math.exp(2*f/3),p=.5*Math.sqrt(f*c*(l-c)/l)*(u-l/2<0?-1:1),d=Math.max(n,Math.floor(t-u*c/l+p)),h=Math.min(r,Math.floor(t+(l-u)*c/l+p));T7(e,t,d,h,a)}const o=e[t];let i=n,s=r;for(Gs(e,n,t),a(e[r],o)>0&&Gs(e,n,r);i<s;){for(Gs(e,i,s),++i,--s;a(e[i],o)<0;)++i;for(;a(e[s],o)>0;)--s}a(e[n],o)===0?Gs(e,n,s):(++s,Gs(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function Gs(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function uq(e,t,n){if(e=Float64Array.from(eq(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return w3(e);if(t>=1)return x3(e);var r,a=(r-1)*t,o=Math.floor(a),i=x3(T7(e,o).subarray(0,o+1)),s=w3(e.subarray(o+1));return i+(s-i)*(a-o)}}function cq(e,t,n=C7){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,o=Math.floor(a),i=+n(e[o],o,e),s=+n(e[o+1],o+1,e);return i+(s-i)*(a-o)}}function fq(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(a);++r<a;)o[r]=e+r*n;return o}function Sn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function qr(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const Lv=Symbol("implicit");function wg(){var e=new y3,t=[],n=[],r=Lv;function a(o){let i=e.get(o);if(i===void 0){if(r!==Lv)return r;e.set(o,i=t.push(o)-1)}return n[i%n.length]}return a.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new y3;for(const i of o)e.has(i)||e.set(i,t.push(i)-1);return a},a.range=function(o){return arguments.length?(n=Array.from(o),a):n.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.copy=function(){return wg(t,n).unknown(r)},Sn.apply(a,arguments),a}function Vl(){var e=wg().unknown(void 0),t=e.domain,n=e.range,r=0,a=1,o,i,s=!1,l=0,u=0,f=.5;delete e.unknown;function c(){var p=t().length,d=a<r,h=d?a:r,m=d?r:a;o=(m-h)/Math.max(1,p-l+u*2),s&&(o=Math.floor(o)),h+=(m-h-o*(p-l))*f,i=o*(1-l),s&&(h=Math.round(h),i=Math.round(i));var g=fq(p).map(function(v){return h+o*v});return n(d?g.reverse():g)}return e.domain=function(p){return arguments.length?(t(p),c()):t()},e.range=function(p){return arguments.length?([r,a]=p,r=+r,a=+a,c()):[r,a]},e.rangeRound=function(p){return[r,a]=p,r=+r,a=+a,s=!0,c()},e.bandwidth=function(){return i},e.step=function(){return o},e.round=function(p){return arguments.length?(s=!!p,c()):s},e.padding=function(p){return arguments.length?(l=Math.min(1,u=+p),c()):l},e.paddingInner=function(p){return arguments.length?(l=Math.min(1,p),c()):l},e.paddingOuter=function(p){return arguments.length?(u=+p,c()):u},e.align=function(p){return arguments.length?(f=Math.max(0,Math.min(1,p)),c()):f},e.copy=function(){return Vl(t(),[r,a]).round(s).paddingInner(l).paddingOuter(u).align(f)},Sn.apply(c(),arguments)}function j7(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return j7(t())},e}function dl(){return j7(Vl.apply(null,arguments).paddingInner(1))}function bg(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function $7(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ru(){}var Kl=.7,Ff=1/Kl,vi="\\s*([+-]?\\d+)\\s*",Xl="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",pr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",pq=/^#([0-9a-f]{3,8})$/,dq=new RegExp(`^rgb\\(${vi},${vi},${vi}\\)$`),mq=new RegExp(`^rgb\\(${pr},${pr},${pr}\\)$`),hq=new RegExp(`^rgba\\(${vi},${vi},${vi},${Xl}\\)$`),vq=new RegExp(`^rgba\\(${pr},${pr},${pr},${Xl}\\)$`),yq=new RegExp(`^hsl\\(${Xl},${pr},${pr}\\)$`),gq=new RegExp(`^hsla\\(${Xl},${pr},${pr},${Xl}\\)$`),b3={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};bg(Ru,Yl,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:P3,formatHex:P3,formatHex8:xq,formatHsl:wq,formatRgb:S3,toString:S3});function P3(){return this.rgb().formatHex()}function xq(){return this.rgb().formatHex8()}function wq(){return N7(this).formatHsl()}function S3(){return this.rgb().formatRgb()}function Yl(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=pq.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?O3(t):n===3?new Ht(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?hc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?hc(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=dq.exec(e))?new Ht(t[1],t[2],t[3],1):(t=mq.exec(e))?new Ht(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=hq.exec(e))?hc(t[1],t[2],t[3],t[4]):(t=vq.exec(e))?hc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=yq.exec(e))?A3(t[1],t[2]/100,t[3]/100,1):(t=gq.exec(e))?A3(t[1],t[2]/100,t[3]/100,t[4]):b3.hasOwnProperty(e)?O3(b3[e]):e==="transparent"?new Ht(NaN,NaN,NaN,0):null}function O3(e){return new Ht(e>>16&255,e>>8&255,e&255,1)}function hc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Ht(e,t,n,r)}function bq(e){return e instanceof Ru||(e=Yl(e)),e?(e=e.rgb(),new Ht(e.r,e.g,e.b,e.opacity)):new Ht}function Fv(e,t,n,r){return arguments.length===1?bq(e):new Ht(e,t,n,r??1)}function Ht(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}bg(Ht,Fv,$7(Ru,{brighter(e){return e=e==null?Ff:Math.pow(Ff,e),new Ht(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Kl:Math.pow(Kl,e),new Ht(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ht(fo(this.r),fo(this.g),fo(this.b),zf(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:k3,formatHex:k3,formatHex8:Pq,formatRgb:_3,toString:_3}));function k3(){return`#${Ja(this.r)}${Ja(this.g)}${Ja(this.b)}`}function Pq(){return`#${Ja(this.r)}${Ja(this.g)}${Ja(this.b)}${Ja((isNaN(this.opacity)?1:this.opacity)*255)}`}function _3(){const e=zf(this.opacity);return`${e===1?"rgb(":"rgba("}${fo(this.r)}, ${fo(this.g)}, ${fo(this.b)}${e===1?")":`, ${e})`}`}function zf(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function fo(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ja(e){return e=fo(e),(e<16?"0":"")+e.toString(16)}function A3(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new In(e,t,n,r)}function N7(e){if(e instanceof In)return new In(e.h,e.s,e.l,e.opacity);if(e instanceof Ru||(e=Yl(e)),!e)return new In;if(e instanceof In)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),o=Math.max(t,n,r),i=NaN,s=o-a,l=(o+a)/2;return s?(t===o?i=(n-r)/s+(n<r)*6:n===o?i=(r-t)/s+2:i=(t-n)/s+4,s/=l<.5?o+a:2-o-a,i*=60):s=l>0&&l<1?0:i,new In(i,s,l,e.opacity)}function Sq(e,t,n,r){return arguments.length===1?N7(e):new In(e,t,n,r??1)}function In(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}bg(In,Sq,$7(Ru,{brighter(e){return e=e==null?Ff:Math.pow(Ff,e),new In(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Kl:Math.pow(Kl,e),new In(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,a=2*n-r;return new Ht(Bm(e>=240?e-240:e+120,a,r),Bm(e,a,r),Bm(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new In(C3(this.h),vc(this.s),vc(this.l),zf(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=zf(this.opacity);return`${e===1?"hsl(":"hsla("}${C3(this.h)}, ${vc(this.s)*100}%, ${vc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function C3(e){return e=(e||0)%360,e<0?e+360:e}function vc(e){return Math.max(0,Math.min(1,e||0))}function Bm(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 Pg=e=>()=>e;function Oq(e,t){return function(n){return e+n*t}}function kq(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 _q(e){return(e=+e)==1?M7:function(t,n){return n-t?kq(t,n,e):Pg(isNaN(t)?n:t)}}function M7(e,t){var n=t-e;return n?Oq(e,n):Pg(isNaN(e)?t:e)}const E3=function e(t){var n=_q(t);function r(a,o){var i=n((a=Fv(a)).r,(o=Fv(o)).r),s=n(a.g,o.g),l=n(a.b,o.b),u=M7(a.opacity,o.opacity);return function(f){return a.r=i(f),a.g=s(f),a.b=l(f),a.opacity=u(f),a+""}}return r.gamma=e,r}(1);function Aq(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(o){for(a=0;a<n;++a)r[a]=e[a]*(1-o)+t[a]*o;return r}}function Cq(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Eq(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,a=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)a[i]=_s(e[i],t[i]);for(;i<n;++i)o[i]=t[i];return function(s){for(i=0;i<r;++i)o[i]=a[i](s);return o}}function Tq(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Bf(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function jq(e,t){var n={},r={},a;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(a in t)a in e?n[a]=_s(e[a],t[a]):r[a]=t[a];return function(o){for(a in n)r[a]=n[a](o);return r}}var zv=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Hm=new RegExp(zv.source,"g");function $q(e){return function(){return e}}function Nq(e){return function(t){return e(t)+""}}function Mq(e,t){var n=zv.lastIndex=Hm.lastIndex=0,r,a,o,i=-1,s=[],l=[];for(e=e+"",t=t+"";(r=zv.exec(e))&&(a=Hm.exec(t));)(o=a.index)>n&&(o=t.slice(n,o),s[i]?s[i]+=o:s[++i]=o),(r=r[0])===(a=a[0])?s[i]?s[i]+=a:s[++i]=a:(s[++i]=null,l.push({i,x:Bf(r,a)})),n=Hm.lastIndex;return n<t.length&&(o=t.slice(n),s[i]?s[i]+=o:s[++i]=o),s.length<2?l[0]?Nq(l[0].x):$q(t):(t=l.length,function(u){for(var f=0,c;f<t;++f)s[(c=l[f]).i]=c.x(u);return s.join("")})}function _s(e,t){var n=typeof t,r;return t==null||n==="boolean"?Pg(t):(n==="number"?Bf:n==="string"?(r=Yl(t))?(t=r,E3):Mq:t instanceof Yl?E3:t instanceof Date?Tq:Cq(t)?Aq:Array.isArray(t)?Eq:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?jq:Bf)(e,t)}function Sg(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function Rq(e,t){t===void 0&&(t=e,e=_s);for(var n=0,r=t.length-1,a=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(a,a=t[++n]);return function(i){var s=Math.max(0,Math.min(r-1,Math.floor(i*=r)));return o[s](i-s)}}function Iq(e){return function(){return e}}function Hf(e){return+e}var T3=[0,1];function It(e){return e}function Bv(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:Iq(isNaN(t)?NaN:.5)}function Dq(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Lq(e,t,n){var r=e[0],a=e[1],o=t[0],i=t[1];return a<r?(r=Bv(a,r),o=n(i,o)):(r=Bv(r,a),o=n(o,i)),function(s){return o(r(s))}}function Fq(e,t,n){var r=Math.min(e.length,t.length)-1,a=new Array(r),o=new Array(r),i=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++i<r;)a[i]=Bv(e[i],e[i+1]),o[i]=n(t[i],t[i+1]);return function(s){var l=Mu(e,s,1,r)-1;return o[l](a[l](s))}}function Iu(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function gd(){var e=T3,t=T3,n=_s,r,a,o,i=It,s,l,u;function f(){var p=Math.min(e.length,t.length);return i!==It&&(i=Dq(e[0],e[p-1])),s=p>2?Fq:Lq,l=u=null,c}function c(p){return p==null||isNaN(p=+p)?o:(l||(l=s(e.map(r),t,n)))(r(i(p)))}return c.invert=function(p){return i(a((u||(u=s(t,e.map(r),Bf)))(p)))},c.domain=function(p){return arguments.length?(e=Array.from(p,Hf),f()):e.slice()},c.range=function(p){return arguments.length?(t=Array.from(p),f()):t.slice()},c.rangeRound=function(p){return t=Array.from(p),n=Sg,f()},c.clamp=function(p){return arguments.length?(i=p?!0:It,f()):i!==It},c.interpolate=function(p){return arguments.length?(n=p,f()):n},c.unknown=function(p){return arguments.length?(o=p,c):o},function(p,d){return r=p,a=d,f()}}function Og(){return gd()(It,It)}function zq(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Gf(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 zi(e){return e=Gf(Math.abs(e)),e?e[1]:NaN}function Bq(e,t){return function(n,r){for(var a=n.length,o=[],i=0,s=e[0],l=0;a>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(a-=s,a+s)),!((l+=s+1)>r));)s=e[i=(i+1)%e.length];return o.reverse().join(t)}}function Hq(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Gq=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ql(e){if(!(t=Gq.exec(e)))throw new Error("invalid format: "+e);var t;return new kg({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]})}Ql.prototype=kg.prototype;function kg(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+""}kg.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 Uq(e){e:for(var t=e.length,n=1,r=-1,a;n<t;++n)switch(e[n]){case".":r=a=n;break;case"0":r===0&&(r=n),a=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var R7;function Wq(e,t){var n=Gf(e,t);if(!n)return e+"";var r=n[0],a=n[1],o=a-(R7=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,i=r.length;return o===i?r:o>i?r+new Array(o-i+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Gf(e,Math.max(0,t+o-1))[0]}function j3(e,t){var n=Gf(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const $3={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:zq,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>j3(e*100,t),r:j3,s:Wq,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function N3(e){return e}var M3=Array.prototype.map,R3=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function qq(e){var t=e.grouping===void 0||e.thousands===void 0?N3:Bq(M3.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?N3:Hq(M3.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(c){c=Ql(c);var p=c.fill,d=c.align,h=c.sign,m=c.symbol,g=c.zero,v=c.width,y=c.comma,x=c.precision,P=c.trim,w=c.type;w==="n"?(y=!0,w="g"):$3[w]||(x===void 0&&(x=12),P=!0,w="g"),(g||p==="0"&&d==="=")&&(g=!0,p="0",d="=");var S=m==="$"?n:m==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",O=m==="$"?r:/[%p]/.test(w)?i:"",_=$3[w],A=/[defgprs%]/.test(w);x=x===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function j(E){var T=S,N=O,M,I,R;if(w==="c")N=_(E)+N,E="";else{E=+E;var L=E<0||1/E<0;if(E=isNaN(E)?l:_(Math.abs(E),x),P&&(E=Uq(E)),L&&+E==0&&h!=="+"&&(L=!1),T=(L?h==="("?h:s:h==="-"||h==="("?"":h)+T,N=(w==="s"?R3[8+R7/3]:"")+N+(L&&h==="("?")":""),A){for(M=-1,I=E.length;++M<I;)if(R=E.charCodeAt(M),48>R||R>57){N=(R===46?a+E.slice(M+1):E.slice(M))+N,E=E.slice(0,M);break}}}y&&!g&&(E=t(E,1/0));var $=T.length+E.length+N.length,D=$<v?new Array(v-$+1).join(p):"";switch(y&&g&&(E=t(D+E,D.length?v-N.length:1/0),D=""),d){case"<":E=T+E+N+D;break;case"=":E=T+D+E+N;break;case"^":E=D.slice(0,$=D.length>>1)+T+E+N+D.slice($);break;default:E=D+T+E+N;break}return o(E)}return j.toString=function(){return c+""},j}function f(c,p){var d=u((c=Ql(c),c.type="f",c)),h=Math.max(-8,Math.min(8,Math.floor(zi(p)/3)))*3,m=Math.pow(10,-h),g=R3[8+h/3];return function(v){return d(m*v)+g}}return{format:u,formatPrefix:f}}var yc,_g,I7;Vq({thousands:",",grouping:[3],currency:["$",""]});function Vq(e){return yc=qq(e),_g=yc.format,I7=yc.formatPrefix,yc}function Kq(e){return Math.max(0,-zi(Math.abs(e)))}function Xq(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(zi(t)/3)))*3-zi(Math.abs(e)))}function Yq(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,zi(t)-zi(e))+1}function D7(e,t,n,r){var a=Dv(e,t,n),o;switch(r=Ql(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=Xq(a,i))&&(r.precision=o),I7(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Yq(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Kq(a))&&(r.precision=o-(r.type==="%")*2);break}}return _g(r)}function La(e){var t=e.domain;return e.ticks=function(n){var r=t();return Rv(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return D7(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,o=r.length-1,i=r[a],s=r[o],l,u,f=10;for(s<i&&(u=i,i=s,s=u,u=a,a=o,o=u);f-- >0;){if(u=Iv(i,s,n),u===l)return r[a]=i,r[o]=s,t(r);if(u>0)i=Math.floor(i/u)*u,s=Math.ceil(s/u)*u;else if(u<0)i=Math.ceil(i*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function Uf(){var e=Og();return e.copy=function(){return Iu(e,Uf())},Sn.apply(e,arguments),La(e)}function L7(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Hf),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return L7(e).unknown(t)},e=arguments.length?Array.from(e,Hf):[0,1],La(n)}function F7(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],o=e[r],i;return o<a&&(i=n,n=r,r=i,i=a,a=o,o=i),e[n]=t.floor(a),e[r]=t.ceil(o),e}function I3(e){return Math.log(e)}function D3(e){return Math.exp(e)}function Qq(e){return-Math.log(-e)}function Zq(e){return-Math.exp(-e)}function Jq(e){return isFinite(e)?+("1e"+e):e<0?0:e}function eV(e){return e===10?Jq:e===Math.E?Math.exp:t=>Math.pow(e,t)}function tV(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function L3(e){return(t,n)=>-e(-t,n)}function Ag(e){const t=e(I3,D3),n=t.domain;let r=10,a,o;function i(){return a=tV(r),o=eV(r),n()[0]<0?(a=L3(a),o=L3(o),e(Qq,Zq)):e(I3,D3),t}return t.base=function(s){return arguments.length?(r=+s,i()):r},t.domain=function(s){return arguments.length?(n(s),i()):n()},t.ticks=s=>{const l=n();let u=l[0],f=l[l.length-1];const c=f<u;c&&([u,f]=[f,u]);let p=a(u),d=a(f),h,m;const g=s==null?10:+s;let v=[];if(!(r%1)&&d-p<g){if(p=Math.floor(p),d=Math.ceil(d),u>0){for(;p<=d;++p)for(h=1;h<r;++h)if(m=p<0?h/o(-p):h*o(p),!(m<u)){if(m>f)break;v.push(m)}}else for(;p<=d;++p)for(h=r-1;h>=1;--h)if(m=p>0?h/o(-p):h*o(p),!(m<u)){if(m>f)break;v.push(m)}v.length*2<g&&(v=Rv(u,f,g))}else v=Rv(p,d,Math.min(d-p,g)).map(o);return c?v.reverse():v},t.tickFormat=(s,l)=>{if(s==null&&(s=10),l==null&&(l=r===10?"s":","),typeof l!="function"&&(!(r%1)&&(l=Ql(l)).precision==null&&(l.trim=!0),l=_g(l)),s===1/0)return l;const u=Math.max(1,r*s/t.ticks().length);return f=>{let c=f/o(Math.round(a(f)));return c*r<r-.5&&(c*=r),c<=u?l(f):""}},t.nice=()=>n(F7(n(),{floor:s=>o(Math.floor(a(s))),ceil:s=>o(Math.ceil(a(s)))})),t}function z7(){const e=Ag(gd()).domain([1,10]);return e.copy=()=>Iu(e,z7()).base(e.base()),Sn.apply(e,arguments),e}function F3(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function z3(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Cg(e){var t=1,n=e(F3(t),z3(t));return n.constant=function(r){return arguments.length?e(F3(t=+r),z3(t)):t},La(n)}function B7(){var e=Cg(gd());return e.copy=function(){return Iu(e,B7()).constant(e.constant())},Sn.apply(e,arguments)}function B3(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function nV(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function rV(e){return e<0?-e*e:e*e}function Eg(e){var t=e(It,It),n=1;function r(){return n===1?e(It,It):n===.5?e(nV,rV):e(B3(n),B3(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},La(t)}function Tg(){var e=Eg(gd());return e.copy=function(){return Iu(e,Tg()).exponent(e.exponent())},Sn.apply(e,arguments),e}function aV(){return Tg.apply(null,arguments).exponent(.5)}function H3(e){return Math.sign(e)*e*e}function oV(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function H7(){var e=Og(),t=[0,1],n=!1,r;function a(o){var i=oV(e(o));return isNaN(i)?r:n?Math.round(i):i}return a.invert=function(o){return e.invert(H3(o))},a.domain=function(o){return arguments.length?(e.domain(o),a):e.domain()},a.range=function(o){return arguments.length?(e.range((t=Array.from(o,Hf)).map(H3)),a):t.slice()},a.rangeRound=function(o){return a.range(o).round(!0)},a.round=function(o){return arguments.length?(n=!!o,a):n},a.clamp=function(o){return arguments.length?(e.clamp(o),a):e.clamp()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.copy=function(){return H7(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Sn.apply(a,arguments),La(a)}function G7(){var e=[],t=[],n=[],r;function a(){var i=0,s=Math.max(1,t.length);for(n=new Array(s-1);++i<s;)n[i-1]=cq(e,i/s);return o}function o(i){return i==null||isNaN(i=+i)?r:t[Mu(n,i)]}return o.invertExtent=function(i){var s=t.indexOf(i);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},o.domain=function(i){if(!arguments.length)return e.slice();e=[];for(let s of i)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(Oa),a()},o.range=function(i){return arguments.length?(t=Array.from(i),a()):t.slice()},o.unknown=function(i){return arguments.length?(r=i,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return G7().domain(e).range(t).unknown(r)},Sn.apply(o,arguments)}function U7(){var e=0,t=1,n=1,r=[.5],a=[0,1],o;function i(l){return l!=null&&l<=l?a[Mu(r,l,0,n)]:o}function s(){var l=-1;for(r=new Array(n);++l<n;)r[l]=((l+1)*t-(l-n)*e)/(n+1);return i}return i.domain=function(l){return arguments.length?([e,t]=l,e=+e,t=+t,s()):[e,t]},i.range=function(l){return arguments.length?(n=(a=Array.from(l)).length-1,s()):a.slice()},i.invertExtent=function(l){var u=a.indexOf(l);return u<0?[NaN,NaN]:u<1?[e,r[0]]:u>=n?[r[n-1],t]:[r[u-1],r[u]]},i.unknown=function(l){return arguments.length&&(o=l),i},i.thresholds=function(){return r.slice()},i.copy=function(){return U7().domain([e,t]).range(a).unknown(o)},Sn.apply(La(i),arguments)}function W7(){var e=[.5],t=[0,1],n,r=1;function a(o){return o!=null&&o<=o?t[Mu(e,o,0,r)]:n}return a.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(o){var i=t.indexOf(o);return[e[i-1],e[i]]},a.unknown=function(o){return arguments.length?(n=o,a):n},a.copy=function(){return W7().domain(e).range(t).unknown(n)},Sn.apply(a,arguments)}const Gm=new Date,Um=new Date;function lt(e,t,n,r){function a(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return a.floor=o=>(e(o=new Date(+o)),o),a.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),a.round=o=>{const i=a(o),s=a.ceil(o);return o-i<s-o?i:s},a.offset=(o,i)=>(t(o=new Date(+o),i==null?1:Math.floor(i)),o),a.range=(o,i,s)=>{const l=[];if(o=a.ceil(o),s=s==null?1:Math.floor(s),!(o<i)||!(s>0))return l;let u;do l.push(u=new Date(+o)),t(o,s),e(o);while(u<o&&o<i);return l},a.filter=o=>lt(i=>{if(i>=i)for(;e(i),!o(i);)i.setTime(i-1)},(i,s)=>{if(i>=i)if(s<0)for(;++s<=0;)for(;t(i,-1),!o(i););else for(;--s>=0;)for(;t(i,1),!o(i););}),n&&(a.count=(o,i)=>(Gm.setTime(+o),Um.setTime(+i),e(Gm),e(Um),Math.floor(n(Gm,Um))),a.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?a.filter(r?i=>r(i)%o===0:i=>a.count(0,i)%o===0):a)),a}const Wf=lt(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Wf.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?lt(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Wf);Wf.range;const Ar=1e3,vn=Ar*60,Cr=vn*60,zr=Cr*24,jg=zr*7,G3=zr*30,Wm=zr*365,eo=lt(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Ar)},(e,t)=>(t-e)/Ar,e=>e.getUTCSeconds());eo.range;const $g=lt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ar)},(e,t)=>{e.setTime(+e+t*vn)},(e,t)=>(t-e)/vn,e=>e.getMinutes());$g.range;const Ng=lt(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*vn)},(e,t)=>(t-e)/vn,e=>e.getUTCMinutes());Ng.range;const Mg=lt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ar-e.getMinutes()*vn)},(e,t)=>{e.setTime(+e+t*Cr)},(e,t)=>(t-e)/Cr,e=>e.getHours());Mg.range;const Rg=lt(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Cr)},(e,t)=>(t-e)/Cr,e=>e.getUTCHours());Rg.range;const Du=lt(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*vn)/zr,e=>e.getDate()-1);Du.range;const xd=lt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/zr,e=>e.getUTCDate()-1);xd.range;const q7=lt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/zr,e=>Math.floor(e/zr));q7.range;function No(e){return lt(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*vn)/jg)}const wd=No(0),qf=No(1),iV=No(2),sV=No(3),Bi=No(4),lV=No(5),uV=No(6);wd.range;qf.range;iV.range;sV.range;Bi.range;lV.range;uV.range;function Mo(e){return lt(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/jg)}const bd=Mo(0),Vf=Mo(1),cV=Mo(2),fV=Mo(3),Hi=Mo(4),pV=Mo(5),dV=Mo(6);bd.range;Vf.range;cV.range;fV.range;Hi.range;pV.range;dV.range;const Ig=lt(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Ig.range;const Dg=lt(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Dg.range;const Br=lt(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Br.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:lt(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});Br.range;const Hr=lt(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Hr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:lt(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});Hr.range;function V7(e,t,n,r,a,o){const i=[[eo,1,Ar],[eo,5,5*Ar],[eo,15,15*Ar],[eo,30,30*Ar],[o,1,vn],[o,5,5*vn],[o,15,15*vn],[o,30,30*vn],[a,1,Cr],[a,3,3*Cr],[a,6,6*Cr],[a,12,12*Cr],[r,1,zr],[r,2,2*zr],[n,1,jg],[t,1,G3],[t,3,3*G3],[e,1,Wm]];function s(u,f,c){const p=f<u;p&&([u,f]=[f,u]);const d=c&&typeof c.range=="function"?c:l(u,f,c),h=d?d.range(u,+f+1):[];return p?h.reverse():h}function l(u,f,c){const p=Math.abs(f-u)/c,d=xg(([,,g])=>g).right(i,p);if(d===i.length)return e.every(Dv(u/Wm,f/Wm,c));if(d===0)return Wf.every(Math.max(Dv(u,f,c),1));const[h,m]=i[p/i[d-1][2]<i[d][2]/p?d-1:d];return h.every(m)}return[s,l]}const[mV,hV]=V7(Hr,Dg,bd,q7,Rg,Ng),[vV,yV]=V7(Br,Ig,wd,Du,Mg,$g);function qm(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 Vm(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 Us(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function gV(e){var t=e.dateTime,n=e.date,r=e.time,a=e.periods,o=e.days,i=e.shortDays,s=e.months,l=e.shortMonths,u=Ws(a),f=qs(a),c=Ws(o),p=qs(o),d=Ws(i),h=qs(i),m=Ws(s),g=qs(s),v=Ws(l),y=qs(l),x={a:L,A:$,b:D,B:H,c:null,d:X3,e:X3,f:BV,g:QV,G:JV,H:LV,I:FV,j:zV,L:K7,m:HV,M:GV,p:W,q:G,Q:Z3,s:J3,S:UV,u:WV,U:qV,V:VV,w:KV,W:XV,x:null,X:null,y:YV,Y:ZV,Z:eK,"%":Q3},P={a:Z,A:ie,b:ve,B:Pe,c:null,d:Y3,e:Y3,f:aK,g:mK,G:vK,H:tK,I:nK,j:rK,L:Y7,m:oK,M:iK,p:J,q:le,Q:Z3,s:J3,S:sK,u:lK,U:uK,V:cK,w:fK,W:pK,x:null,X:null,y:dK,Y:hK,Z:yK,"%":Q3},w={a:j,A:E,b:T,B:N,c:M,d:V3,e:V3,f:MV,g:q3,G:W3,H:K3,I:K3,j:TV,L:NV,m:EV,M:jV,p:A,q:CV,Q:IV,s:DV,S:$V,u:SV,U:OV,V:kV,w:PV,W:_V,x:I,X:R,y:q3,Y:W3,Z:AV,"%":RV};x.x=S(n,x),x.X=S(r,x),x.c=S(t,x),P.x=S(n,P),P.X=S(r,P),P.c=S(t,P);function S(q,K){return function(X){var F=[],fe=-1,ne=0,Ne=q.length,Me,Ze,Xn;for(X instanceof Date||(X=new Date(+X));++fe<Ne;)q.charCodeAt(fe)===37&&(F.push(q.slice(ne,fe)),(Ze=U3[Me=q.charAt(++fe)])!=null?Me=q.charAt(++fe):Ze=Me==="e"?" ":"0",(Xn=K[Me])&&(Me=Xn(X,Ze)),F.push(Me),ne=fe+1);return F.push(q.slice(ne,fe)),F.join("")}}function O(q,K){return function(X){var F=Us(1900,void 0,1),fe=_(F,q,X+="",0),ne,Ne;if(fe!=X.length)return null;if("Q"in F)return new Date(F.Q);if("s"in F)return new Date(F.s*1e3+("L"in F?F.L:0));if(K&&!("Z"in F)&&(F.Z=0),"p"in F&&(F.H=F.H%12+F.p*12),F.m===void 0&&(F.m="q"in F?F.q:0),"V"in F){if(F.V<1||F.V>53)return null;"w"in F||(F.w=1),"Z"in F?(ne=Vm(Us(F.y,0,1)),Ne=ne.getUTCDay(),ne=Ne>4||Ne===0?Vf.ceil(ne):Vf(ne),ne=xd.offset(ne,(F.V-1)*7),F.y=ne.getUTCFullYear(),F.m=ne.getUTCMonth(),F.d=ne.getUTCDate()+(F.w+6)%7):(ne=qm(Us(F.y,0,1)),Ne=ne.getDay(),ne=Ne>4||Ne===0?qf.ceil(ne):qf(ne),ne=Du.offset(ne,(F.V-1)*7),F.y=ne.getFullYear(),F.m=ne.getMonth(),F.d=ne.getDate()+(F.w+6)%7)}else("W"in F||"U"in F)&&("w"in F||(F.w="u"in F?F.u%7:"W"in F?1:0),Ne="Z"in F?Vm(Us(F.y,0,1)).getUTCDay():qm(Us(F.y,0,1)).getDay(),F.m=0,F.d="W"in F?(F.w+6)%7+F.W*7-(Ne+5)%7:F.w+F.U*7-(Ne+6)%7);return"Z"in F?(F.H+=F.Z/100|0,F.M+=F.Z%100,Vm(F)):qm(F)}}function _(q,K,X,F){for(var fe=0,ne=K.length,Ne=X.length,Me,Ze;fe<ne;){if(F>=Ne)return-1;if(Me=K.charCodeAt(fe++),Me===37){if(Me=K.charAt(fe++),Ze=w[Me in U3?K.charAt(fe++):Me],!Ze||(F=Ze(q,X,F))<0)return-1}else if(Me!=X.charCodeAt(F++))return-1}return F}function A(q,K,X){var F=u.exec(K.slice(X));return F?(q.p=f.get(F[0].toLowerCase()),X+F[0].length):-1}function j(q,K,X){var F=d.exec(K.slice(X));return F?(q.w=h.get(F[0].toLowerCase()),X+F[0].length):-1}function E(q,K,X){var F=c.exec(K.slice(X));return F?(q.w=p.get(F[0].toLowerCase()),X+F[0].length):-1}function T(q,K,X){var F=v.exec(K.slice(X));return F?(q.m=y.get(F[0].toLowerCase()),X+F[0].length):-1}function N(q,K,X){var F=m.exec(K.slice(X));return F?(q.m=g.get(F[0].toLowerCase()),X+F[0].length):-1}function M(q,K,X){return _(q,t,K,X)}function I(q,K,X){return _(q,n,K,X)}function R(q,K,X){return _(q,r,K,X)}function L(q){return i[q.getDay()]}function $(q){return o[q.getDay()]}function D(q){return l[q.getMonth()]}function H(q){return s[q.getMonth()]}function W(q){return a[+(q.getHours()>=12)]}function G(q){return 1+~~(q.getMonth()/3)}function Z(q){return i[q.getUTCDay()]}function ie(q){return o[q.getUTCDay()]}function ve(q){return l[q.getUTCMonth()]}function Pe(q){return s[q.getUTCMonth()]}function J(q){return a[+(q.getUTCHours()>=12)]}function le(q){return 1+~~(q.getUTCMonth()/3)}return{format:function(q){var K=S(q+="",x);return K.toString=function(){return q},K},parse:function(q){var K=O(q+="",!1);return K.toString=function(){return q},K},utcFormat:function(q){var K=S(q+="",P);return K.toString=function(){return q},K},utcParse:function(q){var K=O(q+="",!0);return K.toString=function(){return q},K}}}var U3={"-":"",_:" ",0:"0"},dt=/^\s*\d+/,xV=/^%/,wV=/[\\^$*+?|[\]().{}]/g;function he(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",o=a.length;return r+(o<n?new Array(n-o+1).join(t)+a:a)}function bV(e){return e.replace(wV,"\\$&")}function Ws(e){return new RegExp("^(?:"+e.map(bV).join("|")+")","i")}function qs(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function PV(e,t,n){var r=dt.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function SV(e,t,n){var r=dt.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function OV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function kV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function _V(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function W3(e,t,n){var r=dt.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function q3(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function AV(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 CV(e,t,n){var r=dt.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function EV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function V3(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function TV(e,t,n){var r=dt.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function K3(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function jV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function $V(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function NV(e,t,n){var r=dt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function MV(e,t,n){var r=dt.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function RV(e,t,n){var r=xV.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function IV(e,t,n){var r=dt.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function DV(e,t,n){var r=dt.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function X3(e,t){return he(e.getDate(),t,2)}function LV(e,t){return he(e.getHours(),t,2)}function FV(e,t){return he(e.getHours()%12||12,t,2)}function zV(e,t){return he(1+Du.count(Br(e),e),t,3)}function K7(e,t){return he(e.getMilliseconds(),t,3)}function BV(e,t){return K7(e,t)+"000"}function HV(e,t){return he(e.getMonth()+1,t,2)}function GV(e,t){return he(e.getMinutes(),t,2)}function UV(e,t){return he(e.getSeconds(),t,2)}function WV(e){var t=e.getDay();return t===0?7:t}function qV(e,t){return he(wd.count(Br(e)-1,e),t,2)}function X7(e){var t=e.getDay();return t>=4||t===0?Bi(e):Bi.ceil(e)}function VV(e,t){return e=X7(e),he(Bi.count(Br(e),e)+(Br(e).getDay()===4),t,2)}function KV(e){return e.getDay()}function XV(e,t){return he(qf.count(Br(e)-1,e),t,2)}function YV(e,t){return he(e.getFullYear()%100,t,2)}function QV(e,t){return e=X7(e),he(e.getFullYear()%100,t,2)}function ZV(e,t){return he(e.getFullYear()%1e4,t,4)}function JV(e,t){var n=e.getDay();return e=n>=4||n===0?Bi(e):Bi.ceil(e),he(e.getFullYear()%1e4,t,4)}function eK(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+he(t/60|0,"0",2)+he(t%60,"0",2)}function Y3(e,t){return he(e.getUTCDate(),t,2)}function tK(e,t){return he(e.getUTCHours(),t,2)}function nK(e,t){return he(e.getUTCHours()%12||12,t,2)}function rK(e,t){return he(1+xd.count(Hr(e),e),t,3)}function Y7(e,t){return he(e.getUTCMilliseconds(),t,3)}function aK(e,t){return Y7(e,t)+"000"}function oK(e,t){return he(e.getUTCMonth()+1,t,2)}function iK(e,t){return he(e.getUTCMinutes(),t,2)}function sK(e,t){return he(e.getUTCSeconds(),t,2)}function lK(e){var t=e.getUTCDay();return t===0?7:t}function uK(e,t){return he(bd.count(Hr(e)-1,e),t,2)}function Q7(e){var t=e.getUTCDay();return t>=4||t===0?Hi(e):Hi.ceil(e)}function cK(e,t){return e=Q7(e),he(Hi.count(Hr(e),e)+(Hr(e).getUTCDay()===4),t,2)}function fK(e){return e.getUTCDay()}function pK(e,t){return he(Vf.count(Hr(e)-1,e),t,2)}function dK(e,t){return he(e.getUTCFullYear()%100,t,2)}function mK(e,t){return e=Q7(e),he(e.getUTCFullYear()%100,t,2)}function hK(e,t){return he(e.getUTCFullYear()%1e4,t,4)}function vK(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Hi(e):Hi.ceil(e),he(e.getUTCFullYear()%1e4,t,4)}function yK(){return"+0000"}function Q3(){return"%"}function Z3(e){return+e}function J3(e){return Math.floor(+e/1e3)}var Bo,Z7,J7;gK({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 gK(e){return Bo=gV(e),Z7=Bo.format,Bo.parse,J7=Bo.utcFormat,Bo.utcParse,Bo}function xK(e){return new Date(e)}function wK(e){return e instanceof Date?+e:+new Date(+e)}function Lg(e,t,n,r,a,o,i,s,l,u){var f=Og(),c=f.invert,p=f.domain,d=u(".%L"),h=u(":%S"),m=u("%I:%M"),g=u("%I %p"),v=u("%a %d"),y=u("%b %d"),x=u("%B"),P=u("%Y");function w(S){return(l(S)<S?d:s(S)<S?h:i(S)<S?m:o(S)<S?g:r(S)<S?a(S)<S?v:y:n(S)<S?x:P)(S)}return f.invert=function(S){return new Date(c(S))},f.domain=function(S){return arguments.length?p(Array.from(S,wK)):p().map(xK)},f.ticks=function(S){var O=p();return e(O[0],O[O.length-1],S??10)},f.tickFormat=function(S,O){return O==null?w:u(O)},f.nice=function(S){var O=p();return(!S||typeof S.range!="function")&&(S=t(O[0],O[O.length-1],S??10)),S?p(F7(O,S)):f},f.copy=function(){return Iu(f,Lg(e,t,n,r,a,o,i,s,l,u))},f}function bK(){return Sn.apply(Lg(vV,yV,Br,Ig,wd,Du,Mg,$g,eo,Z7).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function PK(){return Sn.apply(Lg(mV,hV,Hr,Dg,bd,xd,Rg,Ng,eo,J7).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Pd(){var e=0,t=1,n,r,a,o,i=It,s=!1,l;function u(c){return c==null||isNaN(c=+c)?l:i(a===0?.5:(c=(o(c)-n)*a,s?Math.max(0,Math.min(1,c)):c))}u.domain=function(c){return arguments.length?([e,t]=c,n=o(e=+e),r=o(t=+t),a=n===r?0:1/(r-n),u):[e,t]},u.clamp=function(c){return arguments.length?(s=!!c,u):s},u.interpolator=function(c){return arguments.length?(i=c,u):i};function f(c){return function(p){var d,h;return arguments.length?([d,h]=p,i=c(d,h),u):[i(0),i(1)]}}return u.range=f(_s),u.rangeRound=f(Sg),u.unknown=function(c){return arguments.length?(l=c,u):l},function(c){return o=c,n=c(e),r=c(t),a=n===r?0:1/(r-n),u}}function Fa(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function eP(){var e=La(Pd()(It));return e.copy=function(){return Fa(e,eP())},qr.apply(e,arguments)}function tP(){var e=Ag(Pd()).domain([1,10]);return e.copy=function(){return Fa(e,tP()).base(e.base())},qr.apply(e,arguments)}function nP(){var e=Cg(Pd());return e.copy=function(){return Fa(e,nP()).constant(e.constant())},qr.apply(e,arguments)}function Fg(){var e=Eg(Pd());return e.copy=function(){return Fa(e,Fg()).exponent(e.exponent())},qr.apply(e,arguments)}function SK(){return Fg.apply(null,arguments).exponent(.5)}function rP(){var e=[],t=It;function n(r){if(r!=null&&!isNaN(r=+r))return t((Mu(e,r,1)-1)/(e.length-1))}return n.domain=function(r){if(!arguments.length)return e.slice();e=[];for(let a of r)a!=null&&!isNaN(a=+a)&&e.push(a);return e.sort(Oa),n},n.interpolator=function(r){return arguments.length?(t=r,n):t},n.range=function(){return e.map((r,a)=>t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,o)=>uq(e,o/r))},n.copy=function(){return rP(t).domain(e)},qr.apply(n,arguments)}function Sd(){var e=0,t=.5,n=1,r=1,a,o,i,s,l,u=It,f,c=!1,p;function d(m){return isNaN(m=+m)?p:(m=.5+((m=+f(m))-o)*(r*m<r*o?s:l),u(c?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t,n]=m,a=f(e=+e),o=f(t=+t),i=f(n=+n),s=a===o?0:.5/(o-a),l=o===i?0:.5/(i-o),r=o<a?-1:1,d):[e,t,n]},d.clamp=function(m){return arguments.length?(c=!!m,d):c},d.interpolator=function(m){return arguments.length?(u=m,d):u};function h(m){return function(g){var v,y,x;return arguments.length?([v,y,x]=g,u=Rq(m,[v,y,x]),d):[u(0),u(.5),u(1)]}}return d.range=h(_s),d.rangeRound=h(Sg),d.unknown=function(m){return arguments.length?(p=m,d):p},function(m){return f=m,a=m(e),o=m(t),i=m(n),s=a===o?0:.5/(o-a),l=o===i?0:.5/(i-o),r=o<a?-1:1,d}}function aP(){var e=La(Sd()(It));return e.copy=function(){return Fa(e,aP())},qr.apply(e,arguments)}function oP(){var e=Ag(Sd()).domain([.1,1,10]);return e.copy=function(){return Fa(e,oP()).base(e.base())},qr.apply(e,arguments)}function iP(){var e=Cg(Sd());return e.copy=function(){return Fa(e,iP()).constant(e.constant())},qr.apply(e,arguments)}function zg(){var e=Eg(Sd());return e.copy=function(){return Fa(e,zg()).exponent(e.exponent())},qr.apply(e,arguments)}function OK(){return zg.apply(null,arguments).exponent(.5)}const eb=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:Vl,scaleDiverging:aP,scaleDivergingLog:oP,scaleDivergingPow:zg,scaleDivergingSqrt:OK,scaleDivergingSymlog:iP,scaleIdentity:L7,scaleImplicit:Lv,scaleLinear:Uf,scaleLog:z7,scaleOrdinal:wg,scalePoint:dl,scalePow:Tg,scaleQuantile:G7,scaleQuantize:U7,scaleRadial:H7,scaleSequential:eP,scaleSequentialLog:tP,scaleSequentialPow:Fg,scaleSequentialQuantile:rP,scaleSequentialSqrt:SK,scaleSequentialSymlog:nP,scaleSqrt:aV,scaleSymlog:B7,scaleThreshold:W7,scaleTime:bK,scaleUtc:PK,tickFormat:D7},Symbol.toStringTag,{value:"Module"}));var kK=ys;function _K(e,t,n){for(var r=-1,a=e.length;++r<a;){var o=e[r],i=t(o);if(i!=null&&(s===void 0?i===i&&!kK(i):n(i,s)))var s=i,l=o}return l}var sP=_K;function AK(e,t){return e>t}var CK=AK,EK=sP,TK=CK,jK=ks;function $K(e){return e&&e.length?EK(e,jK,TK):void 0}var NK=$K;const da=Ce(NK);function MK(e,t){return e<t}var RK=MK,IK=sP,DK=RK,LK=ks;function FK(e){return e&&e.length?IK(e,LK,DK):void 0}var zK=FK;const Od=Ce(zK);var BK=eg,HK=Ia,GK=v7,UK=Vt;function WK(e,t){var n=UK(e)?BK:GK;return n(e,HK(t))}var qK=WK,VK=m7,KK=qK;function XK(e,t){return VK(KK(e,t),1)}var YK=XK;const QK=Ce(YK);var ZK=mg;function JK(e,t){return ZK(e,t)}var eX=JK;const ko=Ce(eX);var As=1e9,tX={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},Hg,Be=!0,bn="[DecimalError] ",po=bn+"Invalid argument: ",Bg=bn+"Exponent out of range: ",Cs=Math.floor,Ka=Math.pow,nX=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Jt,ut=1e7,Le=7,lP=9007199254740991,Kf=Cs(lP/Le),Q={};Q.absoluteValue=Q.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};Q.comparedTo=Q.cmp=function(e){var t,n,r,a,o=this;if(e=new o.constructor(e),o.s!==e.s)return o.s||-e.s;if(o.e!==e.e)return o.e>e.e^o.s<0?1:-1;for(r=o.d.length,a=e.d.length,t=0,n=r<a?r:a;t<n;++t)if(o.d[t]!==e.d[t])return o.d[t]>e.d[t]^o.s<0?1:-1;return r===a?0:r>a^o.s<0?1:-1};Q.decimalPlaces=Q.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*Le;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Q.dividedBy=Q.div=function(e){return Nr(this,new this.constructor(e))};Q.dividedToIntegerBy=Q.idiv=function(e){var t=this,n=t.constructor;return Te(Nr(t,new n(e),0,1),n.precision)};Q.equals=Q.eq=function(e){return!this.cmp(e)};Q.exponent=function(){return tt(this)};Q.greaterThan=Q.gt=function(e){return this.cmp(e)>0};Q.greaterThanOrEqualTo=Q.gte=function(e){return this.cmp(e)>=0};Q.isInteger=Q.isint=function(){return this.e>this.d.length-2};Q.isNegative=Q.isneg=function(){return this.s<0};Q.isPositive=Q.ispos=function(){return this.s>0};Q.isZero=function(){return this.s===0};Q.lessThan=Q.lt=function(e){return this.cmp(e)<0};Q.lessThanOrEqualTo=Q.lte=function(e){return this.cmp(e)<1};Q.logarithm=Q.log=function(e){var t,n=this,r=n.constructor,a=r.precision,o=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(Jt))throw Error(bn+"NaN");if(n.s<1)throw Error(bn+(n.s?"NaN":"-Infinity"));return n.eq(Jt)?new r(0):(Be=!1,t=Nr(Zl(n,o),Zl(e,o),o),Be=!0,Te(t,a))};Q.minus=Q.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?fP(t,e):uP(t,(e.s=-e.s,e))};Q.modulo=Q.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(bn+"NaN");return n.s?(Be=!1,t=Nr(n,e,0,1).times(e),Be=!0,n.minus(t)):Te(new r(n),a)};Q.naturalExponential=Q.exp=function(){return cP(this)};Q.naturalLogarithm=Q.ln=function(){return Zl(this)};Q.negated=Q.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Q.plus=Q.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?uP(t,e):fP(t,(e.s=-e.s,e))};Q.precision=Q.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(po+e);if(t=tt(a)+1,r=a.d.length-1,n=r*Le+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Q.squareRoot=Q.sqrt=function(){var e,t,n,r,a,o,i,s=this,l=s.constructor;if(s.s<1){if(!s.s)return new l(0);throw Error(bn+"NaN")}for(e=tt(s),Be=!1,a=Math.sqrt(+s),a==0||a==1/0?(t=or(s.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Cs((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new l(t)):r=new l(a.toString()),n=l.precision,a=i=n+3;;)if(o=r,r=o.plus(Nr(s,o,i+2)).times(.5),or(o.d).slice(0,i)===(t=or(r.d)).slice(0,i)){if(t=t.slice(i-3,i+1),a==i&&t=="4999"){if(Te(o,n+1,0),o.times(o).eq(s)){r=o;break}}else if(t!="9999")break;i+=4}return Be=!0,Te(r,n)};Q.times=Q.mul=function(e){var t,n,r,a,o,i,s,l,u,f=this,c=f.constructor,p=f.d,d=(e=new c(e)).d;if(!f.s||!e.s)return new c(0);for(e.s*=f.s,n=f.e+e.e,l=p.length,u=d.length,l<u&&(o=p,p=d,d=o,i=l,l=u,u=i),o=[],i=l+u,r=i;r--;)o.push(0);for(r=u;--r>=0;){for(t=0,a=l+r;a>r;)s=o[a]+d[r]*p[a-r-1]+t,o[a--]=s%ut|0,t=s/ut|0;o[a]=(o[a]+t)%ut|0}for(;!o[--i];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,Be?Te(e,c.precision):e};Q.toDecimalPlaces=Q.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(vr(e,0,As),t===void 0?t=r.rounding:vr(t,0,8),Te(n,e+tt(n)+1,t))};Q.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=_o(r,!0):(vr(e,0,As),t===void 0?t=a.rounding:vr(t,0,8),r=Te(new a(r),e+1,t),n=_o(r,!0,e+1)),n};Q.toFixed=function(e,t){var n,r,a=this,o=a.constructor;return e===void 0?_o(a):(vr(e,0,As),t===void 0?t=o.rounding:vr(t,0,8),r=Te(new o(a),e+tt(a)+1,t),n=_o(r.abs(),!1,e+tt(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Q.toInteger=Q.toint=function(){var e=this,t=e.constructor;return Te(new t(e),tt(e)+1,t.rounding)};Q.toNumber=function(){return+this};Q.toPower=Q.pow=function(e){var t,n,r,a,o,i,s=this,l=s.constructor,u=12,f=+(e=new l(e));if(!e.s)return new l(Jt);if(s=new l(s),!s.s){if(e.s<1)throw Error(bn+"Infinity");return s}if(s.eq(Jt))return s;if(r=l.precision,e.eq(Jt))return Te(s,r);if(t=e.e,n=e.d.length-1,i=t>=n,o=s.s,i){if((n=f<0?-f:f)<=lP){for(a=new l(Jt),t=Math.ceil(r/Le+4),Be=!1;n%2&&(a=a.times(s),nb(a.d,t)),n=Cs(n/2),n!==0;)s=s.times(s),nb(s.d,t);return Be=!0,e.s<0?new l(Jt).div(a):Te(a,r)}}else if(o<0)throw Error(bn+"NaN");return o=o<0&&e.d[Math.max(t,n)]&1?-1:1,s.s=1,Be=!1,a=e.times(Zl(s,r+u)),Be=!0,a=cP(a),a.s=o,a};Q.toPrecision=function(e,t){var n,r,a=this,o=a.constructor;return e===void 0?(n=tt(a),r=_o(a,n<=o.toExpNeg||n>=o.toExpPos)):(vr(e,1,As),t===void 0?t=o.rounding:vr(t,0,8),a=Te(new o(a),e,t),n=tt(a),r=_o(a,e<=n||n<=o.toExpNeg,e)),r};Q.toSignificantDigits=Q.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(vr(e,1,As),t===void 0?t=r.rounding:vr(t,0,8)),Te(new r(n),e,t)};Q.toString=Q.valueOf=Q.val=Q.toJSON=Q[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=tt(e),n=e.constructor;return _o(e,t<=n.toExpNeg||t>=n.toExpPos)};function uP(e,t){var n,r,a,o,i,s,l,u,f=e.constructor,c=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),Be?Te(t,c):t;if(l=e.d,u=t.d,i=e.e,a=t.e,l=l.slice(),o=i-a,o){for(o<0?(r=l,o=-o,s=u.length):(r=u,a=i,s=l.length),i=Math.ceil(c/Le),s=i>s?i+1:s+1,o>s&&(o=s,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(s=l.length,o=u.length,s-o<0&&(o=s,r=u,u=l,l=r),n=0;o;)n=(l[--o]=l[o]+u[o]+n)/ut|0,l[o]%=ut;for(n&&(l.unshift(n),++a),s=l.length;l[--s]==0;)l.pop();return t.d=l,t.e=a,Be?Te(t,c):t}function vr(e,t,n){if(e!==~~e||e<t||e>n)throw Error(po+e)}function or(e){var t,n,r,a=e.length-1,o="",i=e[0];if(a>0){for(o+=i,t=1;t<a;t++)r=e[t]+"",n=Le-r.length,n&&(o+=na(n)),o+=r;i=e[t],r=i+"",n=Le-r.length,n&&(o+=na(n))}else if(i===0)return"0";for(;i%10===0;)i/=10;return o+i}var Nr=function(){function e(r,a){var o,i=0,s=r.length;for(r=r.slice();s--;)o=r[s]*a+i,r[s]=o%ut|0,i=o/ut|0;return i&&r.unshift(i),r}function t(r,a,o,i){var s,l;if(o!=i)l=o>i?1:-1;else for(s=l=0;s<o;s++)if(r[s]!=a[s]){l=r[s]>a[s]?1:-1;break}return l}function n(r,a,o){for(var i=0;o--;)r[o]-=i,i=r[o]<a[o]?1:0,r[o]=i*ut+r[o]-a[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,a,o,i){var s,l,u,f,c,p,d,h,m,g,v,y,x,P,w,S,O,_,A=r.constructor,j=r.s==a.s?1:-1,E=r.d,T=a.d;if(!r.s)return new A(r);if(!a.s)throw Error(bn+"Division by zero");for(l=r.e-a.e,O=T.length,w=E.length,d=new A(j),h=d.d=[],u=0;T[u]==(E[u]||0);)++u;if(T[u]>(E[u]||0)&&--l,o==null?y=o=A.precision:i?y=o+(tt(r)-tt(a))+1:y=o,y<0)return new A(0);if(y=y/Le+2|0,u=0,O==1)for(f=0,T=T[0],y++;(u<w||f)&&y--;u++)x=f*ut+(E[u]||0),h[u]=x/T|0,f=x%T|0;else{for(f=ut/(T[0]+1)|0,f>1&&(T=e(T,f),E=e(E,f),O=T.length,w=E.length),P=O,m=E.slice(0,O),g=m.length;g<O;)m[g++]=0;_=T.slice(),_.unshift(0),S=T[0],T[1]>=ut/2&&++S;do f=0,s=t(T,m,O,g),s<0?(v=m[0],O!=g&&(v=v*ut+(m[1]||0)),f=v/S|0,f>1?(f>=ut&&(f=ut-1),c=e(T,f),p=c.length,g=m.length,s=t(c,m,p,g),s==1&&(f--,n(c,O<p?_:T,p))):(f==0&&(s=f=1),c=T.slice()),p=c.length,p<g&&c.unshift(0),n(m,c,g),s==-1&&(g=m.length,s=t(T,m,O,g),s<1&&(f++,n(m,O<g?_:T,g))),g=m.length):s===0&&(f++,m=[0]),h[u++]=f,s&&m[0]?m[g++]=E[P]||0:(m=[E[P]],g=1);while((P++<w||m[0]!==void 0)&&y--)}return h[0]||h.shift(),d.e=l,Te(d,i?o+tt(d)+1:o)}}();function cP(e,t){var n,r,a,o,i,s,l=0,u=0,f=e.constructor,c=f.precision;if(tt(e)>16)throw Error(Bg+tt(e));if(!e.s)return new f(Jt);for(Be=!1,s=c,i=new f(.03125);e.abs().gte(.1);)e=e.times(i),u+=5;for(r=Math.log(Ka(2,u))/Math.LN10*2+5|0,s+=r,n=a=o=new f(Jt),f.precision=s;;){if(a=Te(a.times(e),s),n=n.times(++l),i=o.plus(Nr(a,n,s)),or(i.d).slice(0,s)===or(o.d).slice(0,s)){for(;u--;)o=Te(o.times(o),s);return f.precision=c,t==null?(Be=!0,Te(o,c)):o}o=i}}function tt(e){for(var t=e.e*Le,n=e.d[0];n>=10;n/=10)t++;return t}function Km(e,t,n){if(t>e.LN10.sd())throw Be=!0,n&&(e.precision=n),Error(bn+"LN10 precision limit exceeded");return Te(new e(e.LN10),t)}function na(e){for(var t="";e--;)t+="0";return t}function Zl(e,t){var n,r,a,o,i,s,l,u,f,c=1,p=10,d=e,h=d.d,m=d.constructor,g=m.precision;if(d.s<1)throw Error(bn+(d.s?"NaN":"-Infinity"));if(d.eq(Jt))return new m(0);if(t==null?(Be=!1,u=g):u=t,d.eq(10))return t==null&&(Be=!0),Km(m,u);if(u+=p,m.precision=u,n=or(h),r=n.charAt(0),o=tt(d),Math.abs(o)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)d=d.times(e),n=or(d.d),r=n.charAt(0),c++;o=tt(d),r>1?(d=new m("0."+n),o++):d=new m(r+"."+n.slice(1))}else return l=Km(m,u+2,g).times(o+""),d=Zl(new m(r+"."+n.slice(1)),u-p).plus(l),m.precision=g,t==null?(Be=!0,Te(d,g)):d;for(s=i=d=Nr(d.minus(Jt),d.plus(Jt),u),f=Te(d.times(d),u),a=3;;){if(i=Te(i.times(f),u),l=s.plus(Nr(i,new m(a),u)),or(l.d).slice(0,u)===or(s.d).slice(0,u))return s=s.times(2),o!==0&&(s=s.plus(Km(m,u+2,g).times(o+""))),s=Nr(s,new m(c),u),m.precision=g,t==null?(Be=!0,Te(s,g)):s;s=l,a+=2}}function tb(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Cs(n/Le),e.d=[],r=(n+1)%Le,n<0&&(r+=Le),r<a){for(r&&e.d.push(+t.slice(0,r)),a-=Le;r<a;)e.d.push(+t.slice(r,r+=Le));t=t.slice(r),r=Le-t.length}else r-=a;for(;r--;)t+="0";if(e.d.push(+t),Be&&(e.e>Kf||e.e<-Kf))throw Error(Bg+n)}else e.s=0,e.e=0,e.d=[0];return e}function Te(e,t,n){var r,a,o,i,s,l,u,f,c=e.d;for(i=1,o=c[0];o>=10;o/=10)i++;if(r=t-i,r<0)r+=Le,a=t,u=c[f=0];else{if(f=Math.ceil((r+1)/Le),o=c.length,f>=o)return e;for(u=o=c[f],i=1;o>=10;o/=10)i++;r%=Le,a=r-Le+i}if(n!==void 0&&(o=Ka(10,i-a-1),s=u/o%10|0,l=t<0||c[f+1]!==void 0||u%o,l=n<4?(s||l)&&(n==0||n==(e.s<0?3:2)):s>5||s==5&&(n==4||l||n==6&&(r>0?a>0?u/Ka(10,i-a):0:c[f-1])%10&1||n==(e.s<0?8:7))),t<1||!c[0])return l?(o=tt(e),c.length=1,t=t-o-1,c[0]=Ka(10,(Le-t%Le)%Le),e.e=Cs(-t/Le)||0):(c.length=1,c[0]=e.e=e.s=0),e;if(r==0?(c.length=f,o=1,f--):(c.length=f+1,o=Ka(10,Le-r),c[f]=a>0?(u/Ka(10,i-a)%Ka(10,a)|0)*o:0),l)for(;;)if(f==0){(c[0]+=o)==ut&&(c[0]=1,++e.e);break}else{if(c[f]+=o,c[f]!=ut)break;c[f--]=0,o=1}for(r=c.length;c[--r]===0;)c.pop();if(Be&&(e.e>Kf||e.e<-Kf))throw Error(Bg+tt(e));return e}function fP(e,t){var n,r,a,o,i,s,l,u,f,c,p=e.constructor,d=p.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new p(e),Be?Te(t,d):t;if(l=e.d,c=t.d,r=t.e,u=e.e,l=l.slice(),i=u-r,i){for(f=i<0,f?(n=l,i=-i,s=c.length):(n=c,r=u,s=l.length),a=Math.max(Math.ceil(d/Le),s)+2,i>a&&(i=a,n.length=1),n.reverse(),a=i;a--;)n.push(0);n.reverse()}else{for(a=l.length,s=c.length,f=a<s,f&&(s=a),a=0;a<s;a++)if(l[a]!=c[a]){f=l[a]<c[a];break}i=0}for(f&&(n=l,l=c,c=n,t.s=-t.s),s=l.length,a=c.length-s;a>0;--a)l[s++]=0;for(a=c.length;a>i;){if(l[--a]<c[a]){for(o=a;o&&l[--o]===0;)l[o]=ut-1;--l[o],l[a]+=ut}l[a]-=c[a]}for(;l[--s]===0;)l.pop();for(;l[0]===0;l.shift())--r;return l[0]?(t.d=l,t.e=r,Be?Te(t,d):t):new p(0)}function _o(e,t,n){var r,a=tt(e),o=or(e.d),i=o.length;return t?(n&&(r=n-i)>0?o=o.charAt(0)+"."+o.slice(1)+na(r):i>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(a<0?"e":"e+")+a):a<0?(o="0."+na(-a-1)+o,n&&(r=n-i)>0&&(o+=na(r))):a>=i?(o+=na(a+1-i),n&&(r=n-a-1)>0&&(o=o+"."+na(r))):((r=a+1)<i&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-i)>0&&(a+1===i&&(o+="."),o+=na(r))),e.s<0?"-"+o:o}function nb(e,t){if(e.length>t)return e.length=t,!0}function pP(e){var t,n,r;function a(o){var i=this;if(!(i instanceof a))return new a(o);if(i.constructor=a,o instanceof a){i.s=o.s,i.e=o.e,i.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(po+o);if(o>0)i.s=1;else if(o<0)o=-o,i.s=-1;else{i.s=0,i.e=0,i.d=[0];return}if(o===~~o&&o<1e7){i.e=0,i.d=[o];return}return tb(i,o.toString())}else if(typeof o!="string")throw Error(po+o);if(o.charCodeAt(0)===45?(o=o.slice(1),i.s=-1):i.s=1,nX.test(o))tb(i,o);else throw Error(po+o)}if(a.prototype=Q,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=pP,a.config=a.set=rX,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return a.config(e),a}function rX(e){if(!e||typeof e!="object")throw Error(bn+"Object expected");var t,n,r,a=["precision",1,As,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<a.length;t+=3)if((r=e[n=a[t]])!==void 0)if(Cs(r)===r&&r>=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(po+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(po+n+": "+r);return this}var Hg=pP(tX);Jt=new Hg(1);const Ae=Hg;function aX(e){return lX(e)||sX(e)||iX(e)||oX()}function oX(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function iX(e,t){if(e){if(typeof e=="string")return Hv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Hv(e,t)}}function sX(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function lX(e){if(Array.isArray(e))return Hv(e)}function Hv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var uX=function(t){return t},dP={},mP=function(t){return t===dP},rb=function(t){return function n(){return arguments.length===0||arguments.length===1&&mP(arguments.length<=0?void 0:arguments[0])?n:t.apply(void 0,arguments)}},cX=function e(t,n){return t===1?n:rb(function(){for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];var i=a.filter(function(s){return s!==dP}).length;return i>=t?n.apply(void 0,a):e(t-i,rb(function(){for(var s=arguments.length,l=new Array(s),u=0;u<s;u++)l[u]=arguments[u];var f=a.map(function(c){return mP(c)?l.shift():c});return n.apply(void 0,aX(f).concat(l))}))})},kd=function(t){return cX(t.length,t)},Gv=function(t,n){for(var r=[],a=t;a<n;++a)r[a-t]=a;return r},fX=kd(function(e,t){return Array.isArray(t)?t.map(e):Object.keys(t).map(function(n){return t[n]}).map(e)}),pX=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return uX;var a=n.reverse(),o=a[0],i=a.slice(1);return function(){return i.reduce(function(s,l){return l(s)},o.apply(void 0,arguments))}},Uv=function(t){return Array.isArray(t)?t.reverse():t.split("").reverse.join("")},hP=function(t){var n=null,r=null;return function(){for(var a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return n&&o.every(function(s,l){return s===n[l]})||(n=o,r=t.apply(void 0,o)),r}};function dX(e){var t;return e===0?t=1:t=Math.floor(new Ae(e).abs().log(10).toNumber())+1,t}function mX(e,t,n){for(var r=new Ae(e),a=0,o=[];r.lt(t)&&a<1e5;)o.push(r.toNumber()),r=r.add(n),a++;return o}var hX=kd(function(e,t,n){var r=+e,a=+t;return r+n*(a-r)}),vX=kd(function(e,t,n){var r=t-+e;return r=r||1/0,(n-e)/r}),yX=kd(function(e,t,n){var r=t-+e;return r=r||1/0,Math.max(0,Math.min(1,(n-e)/r))});const _d={rangeStep:mX,getDigitCount:dX,interpolateNumber:hX,uninterpolateNumber:vX,uninterpolateTruncation:yX};function Wv(e){return wX(e)||xX(e)||vP(e)||gX()}function gX(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xX(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function wX(e){if(Array.isArray(e))return qv(e)}function Jl(e,t){return SX(e)||PX(e,t)||vP(e,t)||bX()}function bX(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vP(e,t){if(e){if(typeof e=="string")return qv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return qv(e,t)}}function qv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function PX(e,t){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,o=void 0;try{for(var i=e[Symbol.iterator](),s;!(r=(s=i.next()).done)&&(n.push(s.value),!(t&&n.length===t));r=!0);}catch(l){a=!0,o=l}finally{try{!r&&i.return!=null&&i.return()}finally{if(a)throw o}}return n}}function SX(e){if(Array.isArray(e))return e}function yP(e){var t=Jl(e,2),n=t[0],r=t[1],a=n,o=r;return n>r&&(a=r,o=n),[a,o]}function gP(e,t,n){if(e.lte(0))return new Ae(0);var r=_d.getDigitCount(e.toNumber()),a=new Ae(10).pow(r),o=e.div(a),i=r!==1?.05:.1,s=new Ae(Math.ceil(o.div(i).toNumber())).add(n).mul(i),l=s.mul(a);return t?l:new Ae(Math.ceil(l))}function OX(e,t,n){var r=1,a=new Ae(e);if(!a.isint()&&n){var o=Math.abs(e);o<1?(r=new Ae(10).pow(_d.getDigitCount(e)-1),a=new Ae(Math.floor(a.div(r).toNumber())).mul(r)):o>1&&(a=new Ae(Math.floor(e)))}else e===0?a=new Ae(Math.floor((t-1)/2)):n||(a=new Ae(Math.floor(e)));var i=Math.floor((t-1)/2),s=pX(fX(function(l){return a.add(new Ae(l-i).mul(r)).toNumber()}),Gv);return s(0,t)}function xP(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new Ae(0),tickMin:new Ae(0),tickMax:new Ae(0)};var o=gP(new Ae(t).sub(e).div(n-1),r,a),i;e<=0&&t>=0?i=new Ae(0):(i=new Ae(e).add(t).div(2),i=i.sub(new Ae(i).mod(o)));var s=Math.ceil(i.sub(e).div(o).toNumber()),l=Math.ceil(new Ae(t).sub(i).div(o).toNumber()),u=s+l+1;return u>n?xP(e,t,n,r,a+1):(u<n&&(l=t>0?l+(n-u):l,s=t>0?s:s+(n-u)),{step:o,tickMin:i.sub(new Ae(s).mul(o)),tickMax:i.add(new Ae(l).mul(o))})}function kX(e){var t=Jl(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=Math.max(a,2),s=yP([n,r]),l=Jl(s,2),u=l[0],f=l[1];if(u===-1/0||f===1/0){var c=f===1/0?[u].concat(Wv(Gv(0,a-1).map(function(){return 1/0}))):[].concat(Wv(Gv(0,a-1).map(function(){return-1/0})),[f]);return n>r?Uv(c):c}if(u===f)return OX(u,a,o);var p=xP(u,f,i,o),d=p.step,h=p.tickMin,m=p.tickMax,g=_d.rangeStep(h,m.add(new Ae(.1).mul(d)),d);return n>r?Uv(g):g}function _X(e,t){var n=Jl(e,2),r=n[0],a=n[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=yP([r,a]),s=Jl(i,2),l=s[0],u=s[1];if(l===-1/0||u===1/0)return[r,a];if(l===u)return[l];var f=Math.max(t,2),c=gP(new Ae(u).sub(l).div(f-1),o,0),p=[].concat(Wv(_d.rangeStep(new Ae(l),new Ae(u).sub(new Ae(.99).mul(c)),c)),[u]);return r>a?Uv(p):p}var AX=hP(kX),CX=hP(_X),EX="Invariant failed";function Ao(e,t){throw new Error(EX)}var TX=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function Gi(e){"@babel/helpers - typeof";return Gi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gi(e)}function Xf(){return Xf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xf.apply(this,arguments)}function jX(e,t){return RX(e)||MX(e,t)||NX(e,t)||$X()}function $X(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function NX(e,t){if(e){if(typeof e=="string")return ab(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ab(e,t)}}function ab(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function MX(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function RX(e){if(Array.isArray(e))return e}function IX(e,t){if(e==null)return{};var n=DX(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function DX(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function LX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function FX(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,PP(r.key),r)}}function zX(e,t,n){return t&&FX(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function BX(e,t,n){return t=Yf(t),HX(e,wP()?Reflect.construct(t,n||[],Yf(e).constructor):t.apply(e,n))}function HX(e,t){if(t&&(Gi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return GX(e)}function GX(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(wP=function(){return!!e})()}function Yf(e){return Yf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Yf(e)}function UX(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Vv(e,t)}function Vv(e,t){return Vv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Vv(e,t)}function bP(e,t,n){return t=PP(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PP(e){var t=WX(e,"string");return Gi(t)=="symbol"?t:t+""}function WX(e,t){if(Gi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Gi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Es=function(e){function t(){return LX(this,t),BX(this,t,arguments)}return UX(t,e),zX(t,[{key:"render",value:function(){var r=this.props,a=r.offset,o=r.layout,i=r.width,s=r.dataKey,l=r.data,u=r.dataPointFormatter,f=r.xAxis,c=r.yAxis,p=IX(r,TX),d=re(p,!1);this.props.direction==="x"&&f.type!=="number"&&Ao();var h=l.map(function(m){var g=u(m,s),v=g.x,y=g.y,x=g.value,P=g.errorVal;if(!P)return null;var w=[],S,O;if(Array.isArray(P)){var _=jX(P,2);S=_[0],O=_[1]}else S=O=P;if(o==="vertical"){var A=f.scale,j=y+a,E=j+i,T=j-i,N=A(x-S),M=A(x+O);w.push({x1:M,y1:E,x2:M,y2:T}),w.push({x1:N,y1:j,x2:M,y2:j}),w.push({x1:N,y1:E,x2:N,y2:T})}else if(o==="horizontal"){var I=c.scale,R=v+a,L=R-i,$=R+i,D=I(x-S),H=I(x+O);w.push({x1:L,y1:H,x2:$,y2:H}),w.push({x1:R,y1:D,x2:R,y2:H}),w.push({x1:L,y1:D,x2:$,y2:D})}return C.createElement(ye,Xf({className:"recharts-errorBar",key:"bar-".concat(w.map(function(W){return"".concat(W.x1,"-").concat(W.x2,"-").concat(W.y1,"-").concat(W.y2)}))},d),w.map(function(W){return C.createElement("line",Xf({},W,{key:"line-".concat(W.x1,"-").concat(W.x2,"-").concat(W.y1,"-").concat(W.y2)}))}))});return C.createElement(ye,{className:"recharts-errorBars"},h)}}])}(C.Component);bP(Es,"defaultProps",{stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"});bP(Es,"displayName","ErrorBar");function eu(e){"@babel/helpers - typeof";return eu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},eu(e)}function ob(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Ga(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ob(Object(n),!0).forEach(function(r){qX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ob(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function qX(e,t,n){return t=VX(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function VX(e){var t=KX(e,"string");return eu(t)=="symbol"?t:t+""}function KX(e,t){if(eu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(eu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var SP=function(t){var n=t.children,r=t.formattedGraphicalItems,a=t.legendWidth,o=t.legendContent,i=Qt(n,hi);if(!i)return null;var s=hi.defaultProps,l=s!==void 0?Ga(Ga({},s),i.props):{},u;return i.props&&i.props.payload?u=i.props&&i.props.payload:o==="children"?u=(r||[]).reduce(function(f,c){var p=c.item,d=c.props,h=d.sectors||d.data||[];return f.concat(h.map(function(m){return{type:i.props.iconType||p.props.legendType,value:m.name,color:m.fill,payload:m}}))},[]):u=(r||[]).map(function(f){var c=f.item,p=c.type.defaultProps,d=p!==void 0?Ga(Ga({},p),c.props):{},h=d.dataKey,m=d.name,g=d.legendType,v=d.hide;return{inactive:v,dataKey:h,type:l.iconType||g||"square",color:Gg(c),value:m||h,payload:d}}),Ga(Ga(Ga({},l),hi.getWithHeight(i,a)),{},{payload:u,item:i})};function tu(e){"@babel/helpers - typeof";return tu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tu(e)}function ib(e){return ZX(e)||QX(e)||YX(e)||XX()}function XX(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function YX(e,t){if(e){if(typeof e=="string")return Kv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kv(e,t)}}function QX(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ZX(e){if(Array.isArray(e))return Kv(e)}function Kv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function sb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Ve(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?sb(Object(n),!0).forEach(function(r){yi(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function yi(e,t,n){return t=JX(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function JX(e){var t=eY(e,"string");return tu(t)=="symbol"?t:t+""}function eY(e,t){if(tu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(tu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function st(e,t,n){return te(e)||te(t)?n:it(t)?gn(e,t,n):oe(t)?t(e):n}function ml(e,t,n,r){var a=QK(e,function(s){return st(s,t)});if(n==="number"){var o=a.filter(function(s){return V(s)||parseFloat(s)});return o.length?[Od(o),da(o)]:[1/0,-1/0]}var i=r?a.filter(function(s){return!te(s)}):a;return i.map(function(s){return it(s)||s instanceof Date?s:""})}var tY=function(t){var n,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=-1,s=(n=r==null?void 0:r.length)!==null&&n!==void 0?n:0;if(s<=1)return 0;if(o&&o.axisType==="angleAxis"&&Math.abs(Math.abs(o.range[1]-o.range[0])-360)<=1e-6)for(var l=o.range,u=0;u<s;u++){var f=u>0?a[u-1].coordinate:a[s-1].coordinate,c=a[u].coordinate,p=u>=s-1?a[0].coordinate:a[u+1].coordinate,d=void 0;if(Dn(c-f)!==Dn(p-c)){var h=[];if(Dn(p-c)===Dn(l[1]-l[0])){d=p;var m=c+l[1]-l[0];h[0]=Math.min(m,(m+f)/2),h[1]=Math.max(m,(m+f)/2)}else{d=f;var g=p+l[1]-l[0];h[0]=Math.min(c,(g+c)/2),h[1]=Math.max(c,(g+c)/2)}var v=[Math.min(c,(d+c)/2),Math.max(c,(d+c)/2)];if(t>v[0]&&t<=v[1]||t>=h[0]&&t<=h[1]){i=a[u].index;break}}else{var y=Math.min(f,p),x=Math.max(f,p);if(t>(y+c)/2&&t<=(x+c)/2){i=a[u].index;break}}}else for(var P=0;P<s;P++)if(P===0&&t<=(r[P].coordinate+r[P+1].coordinate)/2||P>0&&P<s-1&&t>(r[P].coordinate+r[P-1].coordinate)/2&&t<=(r[P].coordinate+r[P+1].coordinate)/2||P===s-1&&t>(r[P].coordinate+r[P-1].coordinate)/2){i=r[P].index;break}return i},Gg=function(t){var n,r=t,a=r.type.displayName,o=(n=t.type)!==null&&n!==void 0&&n.defaultProps?Ve(Ve({},t.type.defaultProps),t.props):t.props,i=o.stroke,s=o.fill,l;switch(a){case"Line":l=i;break;case"Area":case"Radar":l=i&&i!=="none"?i:s;break;default:l=s;break}return l},nY=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,o=a===void 0?{}:a;if(!o)return{};for(var i={},s=Object.keys(o),l=0,u=s.length;l<u;l++)for(var f=o[s[l]].stackGroups,c=Object.keys(f),p=0,d=c.length;p<d;p++){var h=f[c[p]],m=h.items,g=h.cateAxisId,v=m.filter(function(O){return jr(O.type).indexOf("Bar")>=0});if(v&&v.length){var y=v[0].type.defaultProps,x=y!==void 0?Ve(Ve({},y),v[0].props):v[0].props,P=x.barSize,w=x[g];i[w]||(i[w]=[]);var S=te(P)?n:P;i[w].push({item:v[0],stackList:v.slice(1),barSize:te(S)?void 0:Oo(S,r,0)})}}return i},rY=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,o=t.sizeList,i=o===void 0?[]:o,s=t.maxBarSize,l=i.length;if(l<1)return null;var u=Oo(n,a,0,!0),f,c=[];if(i[0].barSize===+i[0].barSize){var p=!1,d=a/l,h=i.reduce(function(P,w){return P+w.barSize||0},0);h+=(l-1)*u,h>=a&&(h-=(l-1)*u,u=0),h>=a&&d>0&&(p=!0,d*=.9,h=l*d);var m=(a-h)/2>>0,g={offset:m-u,size:0};f=i.reduce(function(P,w){var S={item:w.item,position:{offset:g.offset+g.size+u,size:p?d:w.barSize}},O=[].concat(ib(P),[S]);return g=O[O.length-1].position,w.stackList&&w.stackList.length&&w.stackList.forEach(function(_){O.push({item:_,position:g})}),O},c)}else{var v=Oo(r,a,0,!0);a-2*v-(l-1)*u<=0&&(u=0);var y=(a-2*v-(l-1)*u)/l;y>1&&(y>>=0);var x=s===+s?Math.min(y,s):y;f=i.reduce(function(P,w,S){var O=[].concat(ib(P),[{item:w.item,position:{offset:v+(y+u)*S+(y-x)/2,size:x}}]);return w.stackList&&w.stackList.length&&w.stackList.forEach(function(_){O.push({item:_,position:O[O.length-1].position})}),O},c)}return f},aY=function(t,n,r,a){var o=r.children,i=r.width,s=r.margin,l=i-(s.left||0)-(s.right||0),u=SP({children:o,legendWidth:l});if(u){var f=a||{},c=f.width,p=f.height,d=u.align,h=u.verticalAlign,m=u.layout;if((m==="vertical"||m==="horizontal"&&h==="middle")&&d!=="center"&&V(t[d]))return Ve(Ve({},t),{},yi({},d,t[d]+(c||0)));if((m==="horizontal"||m==="vertical"&&d==="center")&&h!=="middle"&&V(t[h]))return Ve(Ve({},t),{},yi({},h,t[h]+(p||0)))}return t},oY=function(t,n,r){return te(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},OP=function(t,n,r,a,o){var i=n.props.children,s=qt(i,Es).filter(function(u){return oY(a,o,u.props.direction)});if(s&&s.length){var l=s.map(function(u){return u.props.dataKey});return t.reduce(function(u,f){var c=st(f,r);if(te(c))return u;var p=Array.isArray(c)?[Od(c),da(c)]:[c,c],d=l.reduce(function(h,m){var g=st(f,m,0),v=p[0]-Math.abs(Array.isArray(g)?g[0]:g),y=p[1]+Math.abs(Array.isArray(g)?g[1]:g);return[Math.min(v,h[0]),Math.max(y,h[1])]},[1/0,-1/0]);return[Math.min(d[0],u[0]),Math.max(d[1],u[1])]},[1/0,-1/0])}return null},iY=function(t,n,r,a,o){var i=n.map(function(s){return OP(t,s,r,o,a)}).filter(function(s){return!te(s)});return i&&i.length?i.reduce(function(s,l){return[Math.min(s[0],l[0]),Math.max(s[1],l[1])]},[1/0,-1/0]):null},kP=function(t,n,r,a,o){var i=n.map(function(l){var u=l.props.dataKey;return r==="number"&&u&&OP(t,l,u,a)||ml(t,u,r,o)});if(r==="number")return i.reduce(function(l,u){return[Math.min(l[0],u[0]),Math.max(l[1],u[1])]},[1/0,-1/0]);var s={};return i.reduce(function(l,u){for(var f=0,c=u.length;f<c;f++)s[u[f]]||(s[u[f]]=!0,l.push(u[f]));return l},[])},_P=function(t,n){return t==="horizontal"&&n==="xAxis"||t==="vertical"&&n==="yAxis"||t==="centric"&&n==="angleAxis"||t==="radial"&&n==="radiusAxis"},AP=function(t,n,r,a){if(a)return t.map(function(l){return l.coordinate});var o,i,s=t.map(function(l){return l.coordinate===n&&(o=!0),l.coordinate===r&&(i=!0),l.coordinate});return o||s.push(n),i||s.push(r),s},Er=function(t,n,r){if(!t)return null;var a=t.scale,o=t.duplicateDomain,i=t.type,s=t.range,l=t.realScaleType==="scaleBand"?a.bandwidth()/2:2,u=(n||r)&&i==="category"&&a.bandwidth?a.bandwidth()/l:0;if(u=t.axisType==="angleAxis"&&(s==null?void 0:s.length)>=2?Dn(s[0]-s[1])*2*u:u,n&&(t.ticks||t.niceTicks)){var f=(t.ticks||t.niceTicks).map(function(c){var p=o?o.indexOf(c):c;return{coordinate:a(p)+u,value:c,offset:u}});return f.filter(function(c){return!Ps(c.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(c,p){return{coordinate:a(c)+u,value:c,index:p,offset:u}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(c){return{coordinate:a(c)+u,value:c,offset:u}}):a.domain().map(function(c,p){return{coordinate:a(c)+u,value:o?o[c]:c,index:p,offset:u}})},Xm=new WeakMap,gc=function(t,n){if(typeof n!="function")return t;Xm.has(t)||Xm.set(t,new WeakMap);var r=Xm.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},sY=function(t,n,r){var a=t.scale,o=t.type,i=t.layout,s=t.axisType;if(a==="auto")return i==="radial"&&s==="radiusAxis"?{scale:Vl(),realScaleType:"band"}:i==="radial"&&s==="angleAxis"?{scale:Uf(),realScaleType:"linear"}:o==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:dl(),realScaleType:"point"}:o==="category"?{scale:Vl(),realScaleType:"band"}:{scale:Uf(),realScaleType:"linear"};if(So(a)){var l="scale".concat(cd(a));return{scale:(eb[l]||dl)(),realScaleType:eb[l]?l:"point"}}return oe(a)?{scale:a}:{scale:dl(),realScaleType:"point"}},lb=1e-4,lY=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),o=Math.min(a[0],a[1])-lb,i=Math.max(a[0],a[1])+lb,s=t(n[0]),l=t(n[r-1]);(s<o||s>i||l<o||l>i)&&t.domain([n[0],n[r-1]])}},uY=function(t,n){if(!t)return null;for(var r=0,a=t.length;r<a;r++)if(t[r].item===n)return t[r].position;return null},cY=function(t,n){if(!n||n.length!==2||!V(n[0])||!V(n[1]))return t;var r=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]),o=[t[0],t[1]];return(!V(t[0])||t[0]<r)&&(o[0]=r),(!V(t[1])||t[1]>a)&&(o[1]=a),o[0]>a&&(o[0]=a),o[1]<r&&(o[1]=r),o},fY=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r<a;++r)for(var o=0,i=0,s=0;s<n;++s){var l=Ps(t[s][r][1])?t[s][r][0]:t[s][r][1];l>=0?(t[s][r][0]=o,t[s][r][1]=o+l,o=t[s][r][1]):(t[s][r][0]=i,t[s][r][1]=i+l,i=t[s][r][1])}},pY=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r<a;++r)for(var o=0,i=0;i<n;++i){var s=Ps(t[i][r][1])?t[i][r][0]:t[i][r][1];s>=0?(t[i][r][0]=o,t[i][r][1]=o+s,o=t[i][r][1]):(t[i][r][0]=0,t[i][r][1]=0)}},dY={sign:fY,expand:AI,none:Ri,silhouette:CI,wiggle:EI,positive:pY},mY=function(t,n,r){var a=n.map(function(s){return s.props.dataKey}),o=dY[r],i=_I().keys(a).value(function(s,l){return+st(s,l,0)}).order(xv).offset(o);return i(t)},hY=function(t,n,r,a,o,i){if(!t)return null;var s=i?n.reverse():n,l={},u=s.reduce(function(c,p){var d,h=(d=p.type)!==null&&d!==void 0&&d.defaultProps?Ve(Ve({},p.type.defaultProps),p.props):p.props,m=h.stackId,g=h.hide;if(g)return c;var v=h[r],y=c[v]||{hasStack:!1,stackGroups:{}};if(it(m)){var x=y.stackGroups[m]||{numericAxisId:r,cateAxisId:a,items:[]};x.items.push(p),y.hasStack=!0,y.stackGroups[m]=x}else y.stackGroups[$o("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[p]};return Ve(Ve({},c),{},yi({},v,y))},l),f={};return Object.keys(u).reduce(function(c,p){var d=u[p];if(d.hasStack){var h={};d.stackGroups=Object.keys(d.stackGroups).reduce(function(m,g){var v=d.stackGroups[g];return Ve(Ve({},m),{},yi({},g,{numericAxisId:r,cateAxisId:a,items:v.items,stackedData:mY(t,v.items,o)}))},h)}return Ve(Ve({},c),{},yi({},p,d))},f)},vY=function(t,n){var r=n.realScaleType,a=n.type,o=n.tickCount,i=n.originalDomain,s=n.allowDecimals,l=r||n.scale;if(l!=="auto"&&l!=="linear")return null;if(o&&a==="number"&&i&&(i[0]==="auto"||i[1]==="auto")){var u=t.domain();if(!u.length)return null;var f=AX(u,o,s);return t.domain([Od(f),da(f)]),{niceTicks:f}}if(o&&a==="number"){var c=t.domain(),p=CX(c,o,s);return{niceTicks:p}}return null};function Ui(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,o=e.index,i=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!te(a[t.dataKey])){var s=Pf(n,"value",a[t.dataKey]);if(s)return s.coordinate+r/2}return n[o]?n[o].coordinate+r/2:null}var l=st(a,te(i)?t.dataKey:i);return te(l)?null:t.scale(l)}var ub=function(t){var n=t.axis,r=t.ticks,a=t.offset,o=t.bandSize,i=t.entry,s=t.index;if(n.type==="category")return r[s]?r[s].coordinate+a:null;var l=st(i,n.dataKey,n.domain[s]);return te(l)?null:n.scale(l)-o/2+a},yY=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);return a<=0&&o>=0?0:o<0?o:a}return r[0]},gY=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?Ve(Ve({},t.type.defaultProps),t.props):t.props,o=a.stackId;if(it(o)){var i=n[o];if(i){var s=i.items.indexOf(t);return s>=0?i.stackedData[s]:null}}return null},xY=function(t){return t.reduce(function(n,r){return[Od(r.concat([n[0]]).filter(V)),da(r.concat([n[1]]).filter(V))]},[1/0,-1/0])},CP=function(t,n,r){return Object.keys(t).reduce(function(a,o){var i=t[o],s=i.stackedData,l=s.reduce(function(u,f){var c=xY(f.slice(n,r+1));return[Math.min(u[0],c[0]),Math.max(u[1],c[1])]},[1/0,-1/0]);return[Math.min(l[0],a[0]),Math.max(l[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},cb=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,fb=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Xv=function(t,n,r){if(oe(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(V(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(cb.test(t[0])){var o=+cb.exec(t[0])[1];a[0]=n[0]-o}else oe(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(V(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(fb.test(t[1])){var i=+fb.exec(t[1])[1];a[1]=n[1]+i}else oe(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},Qf=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var o=vg(n,function(c){return c.coordinate}),i=1/0,s=1,l=o.length;s<l;s++){var u=o[s],f=o[s-1];i=Math.min((u.coordinate||0)-(f.coordinate||0),i)}return i===1/0?0:i}return r?void 0:0},pb=function(t,n,r){return!t||!t.length||ko(t,gn(r,"type.defaultProps.domain"))?n:t},EP=function(t,n){var r=t.type.defaultProps?Ve(Ve({},t.type.defaultProps),t.props):t.props,a=r.dataKey,o=r.name,i=r.unit,s=r.formatter,l=r.tooltipType,u=r.chartType,f=r.hide;return Ve(Ve({},re(t,!1)),{},{dataKey:a,unit:i,formatter:s,name:o||a,color:Gg(t),value:st(n,a),type:l,payload:n,chartType:u,hide:f})};function nu(e){"@babel/helpers - typeof";return nu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nu(e)}function db(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function mb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?db(Object(n),!0).forEach(function(r){wY(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):db(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function wY(e,t,n){return t=bY(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bY(e){var t=PY(e,"string");return nu(t)=="symbol"?t:t+""}function PY(e,t){if(nu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(nu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Zf=Math.PI/180,SY=function(t){return t*180/Math.PI},vt=function(t,n,r,a){return{x:t+Math.cos(-Zf*a)*r,y:n+Math.sin(-Zf*a)*r}},OY=function(t,n){var r=t.x,a=t.y,o=n.x,i=n.y;return Math.sqrt(Math.pow(r-o,2)+Math.pow(a-i,2))},kY=function(t,n){var r=t.x,a=t.y,o=n.cx,i=n.cy,s=OY({x:r,y:a},{x:o,y:i});if(s<=0)return{radius:s};var l=(r-o)/s,u=Math.acos(l);return a>i&&(u=2*Math.PI-u),{radius:s,angle:SY(u),angleInRadian:u}},_Y=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),o=Math.floor(r/360),i=Math.min(a,o);return{startAngle:n-i*360,endAngle:r-i*360}},AY=function(t,n){var r=n.startAngle,a=n.endAngle,o=Math.floor(r/360),i=Math.floor(a/360),s=Math.min(o,i);return t+s*360},hb=function(t,n){var r=t.x,a=t.y,o=kY({x:r,y:a},n),i=o.radius,s=o.angle,l=n.innerRadius,u=n.outerRadius;if(i<l||i>u)return!1;if(i===0)return!0;var f=_Y(n),c=f.startAngle,p=f.endAngle,d=s,h;if(c<=p){for(;d>p;)d-=360;for(;d<c;)d+=360;h=d>=c&&d<=p}else{for(;d>c;)d-=360;for(;d<p;)d+=360;h=d>=p&&d<=c}return h?mb(mb({},n),{},{radius:i,angle:AY(d,n)}):null};function ru(e){"@babel/helpers - typeof";return ru=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ru(e)}var CY=["offset"];function EY(e){return NY(e)||$Y(e)||jY(e)||TY()}function TY(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jY(e,t){if(e){if(typeof e=="string")return Yv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Yv(e,t)}}function $Y(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function NY(e){if(Array.isArray(e))return Yv(e)}function Yv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function MY(e,t){if(e==null)return{};var n=RY(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function RY(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function vb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function rt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?vb(Object(n),!0).forEach(function(r){IY(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function IY(e,t,n){return t=DY(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function DY(e){var t=LY(e,"string");return ru(t)=="symbol"?t:t+""}function LY(e,t){if(ru(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ru(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function au(){return au=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},au.apply(this,arguments)}var FY=function(t){var n=t.value,r=t.formatter,a=te(t.children)?n:t.children;return oe(r)?r(a):a},zY=function(t,n){var r=Dn(n-t),a=Math.min(Math.abs(n-t),360);return r*a},BY=function(t,n,r){var a=t.position,o=t.viewBox,i=t.offset,s=t.className,l=o,u=l.cx,f=l.cy,c=l.innerRadius,p=l.outerRadius,d=l.startAngle,h=l.endAngle,m=l.clockWise,g=(c+p)/2,v=zY(d,h),y=v>=0?1:-1,x,P;a==="insideStart"?(x=d+y*i,P=m):a==="insideEnd"?(x=h-y*i,P=!m):a==="end"&&(x=h+y*i,P=m),P=v<=0?P:!P;var w=vt(u,f,g,x),S=vt(u,f,g,x+(P?1:-1)*359),O="M".concat(w.x,",").concat(w.y,`
+       height and width.`,I,R,i,l,p,c,n);var L=!Array.isArray(d)&&jr(d.type).endsWith("Chart");return A.Children.map(d,function($){return A.isValidElement($)?k.cloneElement($,dc({width:I,height:R},L?{style:dc({height:"100%",width:"100%",maxHeight:R,maxWidth:I},$.props.style)}:{})):$})},[n,d,l,f,c,p,C,i]);return A.createElement("div",{id:g?"".concat(g):void 0,className:ue("recharts-responsive-container",v),style:dc(dc({},P),{},{width:i,height:l,minWidth:p,minHeight:c,maxHeight:f}),ref:w},T)}),gg=function(t){return null};gg.displayName="Cell";function Wl(e){"@babel/helpers - typeof";return Wl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wl(e)}function s3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function N0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?s3(Object(n),!0).forEach(function(r){RW(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s3(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function RW(e,t,n){return t=IW(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function IW(e){var t=DW(e,"string");return Wl(t)=="symbol"?t:t+""}function DW(e,t){if(Wl(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Wl(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var zo={widthCache:{},cacheCount:0},LW=2e3,FW={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},l3="recharts_measurement_span";function zW(e){var t=N0({},e);return Object.keys(t).forEach(function(n){t[n]||delete t[n]}),t}var fl=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Da.isSsr)return{width:0,height:0};var r=zW(n),a=JSON.stringify({text:t,copyStyle:r});if(zo.widthCache[a])return zo.widthCache[a];try{var o=document.getElementById(l3);o||(o=document.createElement("span"),o.setAttribute("id",l3),o.setAttribute("aria-hidden","true"),document.body.appendChild(o));var i=N0(N0({},FW),r);Object.assign(o.style,i),o.textContent="".concat(t);var s=o.getBoundingClientRect(),l={width:s.width,height:s.height};return zo.widthCache[a]=l,++zo.cacheCount>LW&&(zo.cacheCount=0,zo.widthCache={}),l}catch{return{width:0,height:0}}},BW=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function ql(e){"@babel/helpers - typeof";return ql=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ql(e)}function Rp(e,t){return WW(e)||UW(e,t)||GW(e,t)||HW()}function HW(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function GW(e,t){if(e){if(typeof e=="string")return u3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u3(e,t)}}function u3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function UW(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function WW(e){if(Array.isArray(e))return e}function qW(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c3(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,KW(r.key),r)}}function VW(e,t,n){return t&&c3(e.prototype,t),n&&c3(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function KW(e){var t=XW(e,"string");return ql(t)=="symbol"?t:t+""}function XW(e,t){if(ql(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ql(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var p3=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,f3=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,YW=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,QW=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,C7={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},ZW=Object.keys(C7),ni="NaN";function JW(e,t){return e*C7[t]}var mc=function(){function e(t,n){qW(this,e),this.num=t,this.unit=n,this.num=t,this.unit=n,Number.isNaN(t)&&(this.unit=""),n!==""&&!YW.test(n)&&(this.num=NaN,this.unit=""),ZW.includes(n)&&(this.num=JW(t,n),this.unit="px")}return VW(e,[{key:"add",value:function(n){return this.unit!==n.unit?new e(NaN,""):new e(this.num+n.num,this.unit)}},{key:"subtract",value:function(n){return this.unit!==n.unit?new e(NaN,""):new e(this.num-n.num,this.unit)}},{key:"multiply",value:function(n){return this.unit!==""&&n.unit!==""&&this.unit!==n.unit?new e(NaN,""):new e(this.num*n.num,this.unit||n.unit)}},{key:"divide",value:function(n){return this.unit!==""&&n.unit!==""&&this.unit!==n.unit?new e(NaN,""):new e(this.num/n.num,this.unit||n.unit)}},{key:"toString",value:function(){return"".concat(this.num).concat(this.unit)}},{key:"isNaN",value:function(){return Number.isNaN(this.num)}}],[{key:"parse",value:function(n){var r,a=(r=QW.exec(n))!==null&&r!==void 0?r:[],o=Rp(a,3),i=o[1],s=o[2];return new e(parseFloat(i),s??"")}}])}();function A7(e){if(e.includes(ni))return ni;for(var t=e;t.includes("*")||t.includes("/");){var n,r=(n=p3.exec(t))!==null&&n!==void 0?n:[],a=Rp(r,4),o=a[1],i=a[2],s=a[3],l=mc.parse(o??""),u=mc.parse(s??""),p=i==="*"?l.multiply(u):l.divide(u);if(p.isNaN())return ni;t=t.replace(p3,p.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var c,f=(c=f3.exec(t))!==null&&c!==void 0?c:[],d=Rp(f,4),h=d[1],m=d[2],g=d[3],v=mc.parse(h??""),y=mc.parse(g??""),x=m==="+"?v.add(y):v.subtract(y);if(x.isNaN())return ni;t=t.replace(f3,x.toString())}return t}var d3=/\(([^()]*)\)/;function eq(e){for(var t=e;t.includes("(");){var n=d3.exec(t),r=Rp(n,2),a=r[1];t=t.replace(d3,A7(a))}return t}function tq(e){var t=e.replace(/\s+/g,"");return t=eq(t),t=A7(t),t}function nq(e){try{return tq(e)}catch{return ni}}function zm(e){var t=nq(e.slice(5,-1));return t===ni?"":t}var rq=["x","y","lineHeight","capHeight","scaleToFit","textAnchor","verticalAnchor","fill"],aq=["dx","dy","angle","className","breakAll"];function M0(){return M0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},M0.apply(this,arguments)}function m3(e,t){if(e==null)return{};var n=oq(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function oq(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function h3(e,t){return uq(e)||lq(e,t)||sq(e,t)||iq()}function iq(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sq(e,t){if(e){if(typeof e=="string")return v3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v3(e,t)}}function v3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function lq(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function uq(e){if(Array.isArray(e))return e}var E7=/[ \f\n\r\t\v\u2028\u2029]+/,T7=function(t){var n=t.children,r=t.breakAll,a=t.style;try{var o=[];te(n)||(r?o=n.toString().split(""):o=n.toString().split(E7));var i=o.map(function(l){return{word:l,width:fl(l,a).width}}),s=r?0:fl(" ",a).width;return{wordsWithComputedWidth:i,spaceWidth:s}}catch{return null}},cq=function(t,n,r,a,o){var i=t.maxLines,s=t.children,l=t.style,u=t.breakAll,p=V(i),c=s,f=function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return I.reduce(function(R,L){var $=L.word,D=L.width,H=R[R.length-1];if(H&&(a==null||o||H.width+D+r<Number(a)))H.words.push($),H.width+=D+r;else{var W={words:[$],width:D};R.push(W)}return R},[])},d=f(n),h=function(I){return I.reduce(function(R,L){return R.width>L.width?R:L})};if(!p)return d;for(var m="…",g=function(I){var R=c.slice(0,I),L=T7({breakAll:u,style:l,children:R+m}).wordsWithComputedWidth,$=f(L),D=$.length>i||h($).width>Number(a);return[D,$]},v=0,y=c.length-1,x=0,P;v<=y&&x<=c.length-1;){var w=Math.floor((v+y)/2),S=w-1,O=g(S),_=h3(O,2),C=_[0],j=_[1],E=g(w),T=h3(E,1),N=T[0];if(!C&&!N&&(v=w+1),C&&N&&(y=w-1),!C&&N){P=j;break}x++}return P||d},y3=function(t){var n=te(t)?[]:t.toString().split(E7);return[{words:n}]},pq=function(t){var n=t.width,r=t.scaleToFit,a=t.children,o=t.style,i=t.breakAll,s=t.maxLines;if((n||r)&&!Da.isSsr){var l,u,p=T7({breakAll:i,children:a,style:o});if(p){var c=p.wordsWithComputedWidth,f=p.spaceWidth;l=c,u=f}else return y3(a);return cq({breakAll:i,children:a,maxLines:s,style:o},l,u,n,r)}return y3(a)},g3="#808080",Ip=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,o=a===void 0?0:a,i=t.lineHeight,s=i===void 0?"1em":i,l=t.capHeight,u=l===void 0?"0.71em":l,p=t.scaleToFit,c=p===void 0?!1:p,f=t.textAnchor,d=f===void 0?"start":f,h=t.verticalAnchor,m=h===void 0?"end":h,g=t.fill,v=g===void 0?g3:g,y=m3(t,rq),x=k.useMemo(function(){return pq({breakAll:y.breakAll,children:y.children,maxLines:y.maxLines,scaleToFit:c,style:y.style,width:y.width})},[y.breakAll,y.children,y.maxLines,c,y.style,y.width]),P=y.dx,w=y.dy,S=y.angle,O=y.className,_=y.breakAll,C=m3(y,aq);if(!it(r)||!it(o))return null;var j=r+(V(P)?P:0),E=o+(V(w)?w:0),T;switch(m){case"start":T=zm("calc(".concat(u,")"));break;case"middle":T=zm("calc(".concat((x.length-1)/2," * -").concat(s," + (").concat(u," / 2))"));break;default:T=zm("calc(".concat(x.length-1," * -").concat(s,")"));break}var N=[];if(c){var M=x[0].width,I=y.width;N.push("scale(".concat((V(I)?I/M:1)/M,")"))}return S&&N.push("rotate(".concat(S,", ").concat(j,", ").concat(E,")")),N.length&&(C.transform=N.join(" ")),A.createElement("text",M0({},re(C,!0),{x:j,y:E,className:ue("recharts-text",O),textAnchor:d,fill:v.includes("url")?g3:v}),x.map(function(R,L){var $=R.words.join(_?"":" ");return A.createElement("tspan",{x:j,dy:L===0?T:s,key:"".concat($,"-").concat(L)},$)}))};function Oa(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function fq(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function xg(e){let t,n,r;e.length!==2?(t=Oa,n=(s,l)=>Oa(e(s),l),r=(s,l)=>e(s)-l):(t=e===Oa||e===fq?e:dq,n=e,r=e);function a(s,l,u=0,p=s.length){if(u<p){if(t(l,l)!==0)return p;do{const c=u+p>>>1;n(s[c],l)<0?u=c+1:p=c}while(u<p)}return u}function o(s,l,u=0,p=s.length){if(u<p){if(t(l,l)!==0)return p;do{const c=u+p>>>1;n(s[c],l)<=0?u=c+1:p=c}while(u<p)}return u}function i(s,l,u=0,p=s.length){const c=a(s,l,u,p-1);return c>u&&r(s[c-1],l)>-r(s[c],l)?c-1:c}return{left:a,center:i,right:o}}function dq(){return 0}function j7(e){return e===null?NaN:+e}function*mq(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const hq=xg(Oa),Mu=hq.right;xg(j7).center;class x3 extends Map{constructor(t,n=gq){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(w3(this,t))}has(t){return super.has(w3(this,t))}set(t,n){return super.set(vq(this,t),n)}delete(t){return super.delete(yq(this,t))}}function w3({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function vq({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function yq({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function gq(e){return e!==null&&typeof e=="object"?e.valueOf():e}function xq(e=Oa){if(e===Oa)return $7;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function $7(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}const wq=Math.sqrt(50),bq=Math.sqrt(10),Pq=Math.sqrt(2);function Dp(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),o=r/Math.pow(10,a),i=o>=wq?10:o>=bq?5:o>=Pq?2:1;let s,l,u;return a<0?(u=Math.pow(10,-a)/i,s=Math.round(e*u),l=Math.round(t*u),s/u<e&&++s,l/u>t&&--l,u=-u):(u=Math.pow(10,a)*i,s=Math.round(e/u),l=Math.round(t/u),s*u<e&&++s,l*u>t&&--l),l<s&&.5<=n&&n<2?Dp(e,t,n*2):[s,l,u]}function R0(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[a,o,i]=r?Dp(t,e,n):Dp(e,t,n);if(!(o>=a))return[];const s=o-a+1,l=new Array(s);if(r)if(i<0)for(let u=0;u<s;++u)l[u]=(o-u)/-i;else for(let u=0;u<s;++u)l[u]=(o-u)*i;else if(i<0)for(let u=0;u<s;++u)l[u]=(a+u)/-i;else for(let u=0;u<s;++u)l[u]=(a+u)*i;return l}function I0(e,t,n){return t=+t,e=+e,n=+n,Dp(e,t,n)[2]}function D0(e,t,n){t=+t,e=+e,n=+n;const r=t<e,a=r?I0(t,e,n):I0(e,t,n);return(r?-1:1)*(a<0?1/-a:a)}function b3(e,t){let n;for(const r of e)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);return n}function P3(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function N7(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?$7:xq(a);r>n;){if(r-n>600){const l=r-n+1,u=t-n+1,p=Math.log(l),c=.5*Math.exp(2*p/3),f=.5*Math.sqrt(p*c*(l-c)/l)*(u-l/2<0?-1:1),d=Math.max(n,Math.floor(t-u*c/l+f)),h=Math.min(r,Math.floor(t+(l-u)*c/l+f));N7(e,t,d,h,a)}const o=e[t];let i=n,s=r;for(Gs(e,n,t),a(e[r],o)>0&&Gs(e,n,r);i<s;){for(Gs(e,i,s),++i,--s;a(e[i],o)<0;)++i;for(;a(e[s],o)>0;)--s}a(e[n],o)===0?Gs(e,n,s):(++s,Gs(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function Gs(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Sq(e,t,n){if(e=Float64Array.from(mq(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return P3(e);if(t>=1)return b3(e);var r,a=(r-1)*t,o=Math.floor(a),i=b3(N7(e,o).subarray(0,o+1)),s=P3(e.subarray(o+1));return i+(s-i)*(a-o)}}function Oq(e,t,n=j7){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,o=Math.floor(a),i=+n(e[o],o,e),s=+n(e[o+1],o+1,e);return i+(s-i)*(a-o)}}function kq(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(a);++r<a;)o[r]=e+r*n;return o}function Sn(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function qr(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const L0=Symbol("implicit");function wg(){var e=new x3,t=[],n=[],r=L0;function a(o){let i=e.get(o);if(i===void 0){if(r!==L0)return r;e.set(o,i=t.push(o)-1)}return n[i%n.length]}return a.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new x3;for(const i of o)e.has(i)||e.set(i,t.push(i)-1);return a},a.range=function(o){return arguments.length?(n=Array.from(o),a):n.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.copy=function(){return wg(t,n).unknown(r)},Sn.apply(a,arguments),a}function Vl(){var e=wg().unknown(void 0),t=e.domain,n=e.range,r=0,a=1,o,i,s=!1,l=0,u=0,p=.5;delete e.unknown;function c(){var f=t().length,d=a<r,h=d?a:r,m=d?r:a;o=(m-h)/Math.max(1,f-l+u*2),s&&(o=Math.floor(o)),h+=(m-h-o*(f-l))*p,i=o*(1-l),s&&(h=Math.round(h),i=Math.round(i));var g=kq(f).map(function(v){return h+o*v});return n(d?g.reverse():g)}return e.domain=function(f){return arguments.length?(t(f),c()):t()},e.range=function(f){return arguments.length?([r,a]=f,r=+r,a=+a,c()):[r,a]},e.rangeRound=function(f){return[r,a]=f,r=+r,a=+a,s=!0,c()},e.bandwidth=function(){return i},e.step=function(){return o},e.round=function(f){return arguments.length?(s=!!f,c()):s},e.padding=function(f){return arguments.length?(l=Math.min(1,u=+f),c()):l},e.paddingInner=function(f){return arguments.length?(l=Math.min(1,f),c()):l},e.paddingOuter=function(f){return arguments.length?(u=+f,c()):u},e.align=function(f){return arguments.length?(p=Math.max(0,Math.min(1,f)),c()):p},e.copy=function(){return Vl(t(),[r,a]).round(s).paddingInner(l).paddingOuter(u).align(p)},Sn.apply(c(),arguments)}function M7(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return M7(t())},e}function dl(){return M7(Vl.apply(null,arguments).paddingInner(1))}function bg(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function R7(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ru(){}var Kl=.7,Lp=1/Kl,vi="\\s*([+-]?\\d+)\\s*",Xl="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",fr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",_q=/^#([0-9a-f]{3,8})$/,Cq=new RegExp(`^rgb\\(${vi},${vi},${vi}\\)$`),Aq=new RegExp(`^rgb\\(${fr},${fr},${fr}\\)$`),Eq=new RegExp(`^rgba\\(${vi},${vi},${vi},${Xl}\\)$`),Tq=new RegExp(`^rgba\\(${fr},${fr},${fr},${Xl}\\)$`),jq=new RegExp(`^hsl\\(${Xl},${fr},${fr}\\)$`),$q=new RegExp(`^hsla\\(${Xl},${fr},${fr},${Xl}\\)$`),S3={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};bg(Ru,Yl,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:O3,formatHex:O3,formatHex8:Nq,formatHsl:Mq,formatRgb:k3,toString:k3});function O3(){return this.rgb().formatHex()}function Nq(){return this.rgb().formatHex8()}function Mq(){return I7(this).formatHsl()}function k3(){return this.rgb().formatRgb()}function Yl(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=_q.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?_3(t):n===3?new Ht(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?hc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?hc(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=Cq.exec(e))?new Ht(t[1],t[2],t[3],1):(t=Aq.exec(e))?new Ht(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Eq.exec(e))?hc(t[1],t[2],t[3],t[4]):(t=Tq.exec(e))?hc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=jq.exec(e))?E3(t[1],t[2]/100,t[3]/100,1):(t=$q.exec(e))?E3(t[1],t[2]/100,t[3]/100,t[4]):S3.hasOwnProperty(e)?_3(S3[e]):e==="transparent"?new Ht(NaN,NaN,NaN,0):null}function _3(e){return new Ht(e>>16&255,e>>8&255,e&255,1)}function hc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Ht(e,t,n,r)}function Rq(e){return e instanceof Ru||(e=Yl(e)),e?(e=e.rgb(),new Ht(e.r,e.g,e.b,e.opacity)):new Ht}function F0(e,t,n,r){return arguments.length===1?Rq(e):new Ht(e,t,n,r??1)}function Ht(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}bg(Ht,F0,R7(Ru,{brighter(e){return e=e==null?Lp:Math.pow(Lp,e),new Ht(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Kl:Math.pow(Kl,e),new Ht(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ht(po(this.r),po(this.g),po(this.b),Fp(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:C3,formatHex:C3,formatHex8:Iq,formatRgb:A3,toString:A3}));function C3(){return`#${Ja(this.r)}${Ja(this.g)}${Ja(this.b)}`}function Iq(){return`#${Ja(this.r)}${Ja(this.g)}${Ja(this.b)}${Ja((isNaN(this.opacity)?1:this.opacity)*255)}`}function A3(){const e=Fp(this.opacity);return`${e===1?"rgb(":"rgba("}${po(this.r)}, ${po(this.g)}, ${po(this.b)}${e===1?")":`, ${e})`}`}function Fp(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function po(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ja(e){return e=po(e),(e<16?"0":"")+e.toString(16)}function E3(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new In(e,t,n,r)}function I7(e){if(e instanceof In)return new In(e.h,e.s,e.l,e.opacity);if(e instanceof Ru||(e=Yl(e)),!e)return new In;if(e instanceof In)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),o=Math.max(t,n,r),i=NaN,s=o-a,l=(o+a)/2;return s?(t===o?i=(n-r)/s+(n<r)*6:n===o?i=(r-t)/s+2:i=(t-n)/s+4,s/=l<.5?o+a:2-o-a,i*=60):s=l>0&&l<1?0:i,new In(i,s,l,e.opacity)}function Dq(e,t,n,r){return arguments.length===1?I7(e):new In(e,t,n,r??1)}function In(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}bg(In,Dq,R7(Ru,{brighter(e){return e=e==null?Lp:Math.pow(Lp,e),new In(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Kl:Math.pow(Kl,e),new In(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,a=2*n-r;return new Ht(Bm(e>=240?e-240:e+120,a,r),Bm(e,a,r),Bm(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new In(T3(this.h),vc(this.s),vc(this.l),Fp(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=Fp(this.opacity);return`${e===1?"hsl(":"hsla("}${T3(this.h)}, ${vc(this.s)*100}%, ${vc(this.l)*100}%${e===1?")":`, ${e})`}`}}));function T3(e){return e=(e||0)%360,e<0?e+360:e}function vc(e){return Math.max(0,Math.min(1,e||0))}function Bm(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 Pg=e=>()=>e;function Lq(e,t){return function(n){return e+n*t}}function Fq(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 zq(e){return(e=+e)==1?D7:function(t,n){return n-t?Fq(t,n,e):Pg(isNaN(t)?n:t)}}function D7(e,t){var n=t-e;return n?Lq(e,n):Pg(isNaN(e)?t:e)}const j3=function e(t){var n=zq(t);function r(a,o){var i=n((a=F0(a)).r,(o=F0(o)).r),s=n(a.g,o.g),l=n(a.b,o.b),u=D7(a.opacity,o.opacity);return function(p){return a.r=i(p),a.g=s(p),a.b=l(p),a.opacity=u(p),a+""}}return r.gamma=e,r}(1);function Bq(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(o){for(a=0;a<n;++a)r[a]=e[a]*(1-o)+t[a]*o;return r}}function Hq(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Gq(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,a=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)a[i]=_s(e[i],t[i]);for(;i<n;++i)o[i]=t[i];return function(s){for(i=0;i<r;++i)o[i]=a[i](s);return o}}function Uq(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function zp(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Wq(e,t){var n={},r={},a;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(a in t)a in e?n[a]=_s(e[a],t[a]):r[a]=t[a];return function(o){for(a in n)r[a]=n[a](o);return r}}var z0=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Hm=new RegExp(z0.source,"g");function qq(e){return function(){return e}}function Vq(e){return function(t){return e(t)+""}}function Kq(e,t){var n=z0.lastIndex=Hm.lastIndex=0,r,a,o,i=-1,s=[],l=[];for(e=e+"",t=t+"";(r=z0.exec(e))&&(a=Hm.exec(t));)(o=a.index)>n&&(o=t.slice(n,o),s[i]?s[i]+=o:s[++i]=o),(r=r[0])===(a=a[0])?s[i]?s[i]+=a:s[++i]=a:(s[++i]=null,l.push({i,x:zp(r,a)})),n=Hm.lastIndex;return n<t.length&&(o=t.slice(n),s[i]?s[i]+=o:s[++i]=o),s.length<2?l[0]?Vq(l[0].x):qq(t):(t=l.length,function(u){for(var p=0,c;p<t;++p)s[(c=l[p]).i]=c.x(u);return s.join("")})}function _s(e,t){var n=typeof t,r;return t==null||n==="boolean"?Pg(t):(n==="number"?zp:n==="string"?(r=Yl(t))?(t=r,j3):Kq:t instanceof Yl?j3:t instanceof Date?Uq:Hq(t)?Bq:Array.isArray(t)?Gq:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Wq:zp)(e,t)}function Sg(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function Xq(e,t){t===void 0&&(t=e,e=_s);for(var n=0,r=t.length-1,a=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(a,a=t[++n]);return function(i){var s=Math.max(0,Math.min(r-1,Math.floor(i*=r)));return o[s](i-s)}}function Yq(e){return function(){return e}}function Bp(e){return+e}var $3=[0,1];function It(e){return e}function B0(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:Yq(isNaN(t)?NaN:.5)}function Qq(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Zq(e,t,n){var r=e[0],a=e[1],o=t[0],i=t[1];return a<r?(r=B0(a,r),o=n(i,o)):(r=B0(r,a),o=n(o,i)),function(s){return o(r(s))}}function Jq(e,t,n){var r=Math.min(e.length,t.length)-1,a=new Array(r),o=new Array(r),i=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++i<r;)a[i]=B0(e[i],e[i+1]),o[i]=n(t[i],t[i+1]);return function(s){var l=Mu(e,s,1,r)-1;return o[l](a[l](s))}}function Iu(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function gd(){var e=$3,t=$3,n=_s,r,a,o,i=It,s,l,u;function p(){var f=Math.min(e.length,t.length);return i!==It&&(i=Qq(e[0],e[f-1])),s=f>2?Jq:Zq,l=u=null,c}function c(f){return f==null||isNaN(f=+f)?o:(l||(l=s(e.map(r),t,n)))(r(i(f)))}return c.invert=function(f){return i(a((u||(u=s(t,e.map(r),zp)))(f)))},c.domain=function(f){return arguments.length?(e=Array.from(f,Bp),p()):e.slice()},c.range=function(f){return arguments.length?(t=Array.from(f),p()):t.slice()},c.rangeRound=function(f){return t=Array.from(f),n=Sg,p()},c.clamp=function(f){return arguments.length?(i=f?!0:It,p()):i!==It},c.interpolate=function(f){return arguments.length?(n=f,p()):n},c.unknown=function(f){return arguments.length?(o=f,c):o},function(f,d){return r=f,a=d,p()}}function Og(){return gd()(It,It)}function eV(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Hp(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 zi(e){return e=Hp(Math.abs(e)),e?e[1]:NaN}function tV(e,t){return function(n,r){for(var a=n.length,o=[],i=0,s=e[0],l=0;a>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(a-=s,a+s)),!((l+=s+1)>r));)s=e[i=(i+1)%e.length];return o.reverse().join(t)}}function nV(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var rV=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ql(e){if(!(t=rV.exec(e)))throw new Error("invalid format: "+e);var t;return new kg({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]})}Ql.prototype=kg.prototype;function kg(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+""}kg.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 aV(e){e:for(var t=e.length,n=1,r=-1,a;n<t;++n)switch(e[n]){case".":r=a=n;break;case"0":r===0&&(r=n),a=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var L7;function oV(e,t){var n=Hp(e,t);if(!n)return e+"";var r=n[0],a=n[1],o=a-(L7=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,i=r.length;return o===i?r:o>i?r+new Array(o-i+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Hp(e,Math.max(0,t+o-1))[0]}function N3(e,t){var n=Hp(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const M3={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:eV,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>N3(e*100,t),r:N3,s:oV,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function R3(e){return e}var I3=Array.prototype.map,D3=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function iV(e){var t=e.grouping===void 0||e.thousands===void 0?R3:tV(I3.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?R3:nV(I3.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function u(c){c=Ql(c);var f=c.fill,d=c.align,h=c.sign,m=c.symbol,g=c.zero,v=c.width,y=c.comma,x=c.precision,P=c.trim,w=c.type;w==="n"?(y=!0,w="g"):M3[w]||(x===void 0&&(x=12),P=!0,w="g"),(g||f==="0"&&d==="=")&&(g=!0,f="0",d="=");var S=m==="$"?n:m==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",O=m==="$"?r:/[%p]/.test(w)?i:"",_=M3[w],C=/[defgprs%]/.test(w);x=x===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function j(E){var T=S,N=O,M,I,R;if(w==="c")N=_(E)+N,E="";else{E=+E;var L=E<0||1/E<0;if(E=isNaN(E)?l:_(Math.abs(E),x),P&&(E=aV(E)),L&&+E==0&&h!=="+"&&(L=!1),T=(L?h==="("?h:s:h==="-"||h==="("?"":h)+T,N=(w==="s"?D3[8+L7/3]:"")+N+(L&&h==="("?")":""),C){for(M=-1,I=E.length;++M<I;)if(R=E.charCodeAt(M),48>R||R>57){N=(R===46?a+E.slice(M+1):E.slice(M))+N,E=E.slice(0,M);break}}}y&&!g&&(E=t(E,1/0));var $=T.length+E.length+N.length,D=$<v?new Array(v-$+1).join(f):"";switch(y&&g&&(E=t(D+E,D.length?v-N.length:1/0),D=""),d){case"<":E=T+E+N+D;break;case"=":E=T+D+E+N;break;case"^":E=D.slice(0,$=D.length>>1)+T+E+N+D.slice($);break;default:E=D+T+E+N;break}return o(E)}return j.toString=function(){return c+""},j}function p(c,f){var d=u((c=Ql(c),c.type="f",c)),h=Math.max(-8,Math.min(8,Math.floor(zi(f)/3)))*3,m=Math.pow(10,-h),g=D3[8+h/3];return function(v){return d(m*v)+g}}return{format:u,formatPrefix:p}}var yc,_g,F7;sV({thousands:",",grouping:[3],currency:["$",""]});function sV(e){return yc=iV(e),_g=yc.format,F7=yc.formatPrefix,yc}function lV(e){return Math.max(0,-zi(Math.abs(e)))}function uV(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(zi(t)/3)))*3-zi(Math.abs(e)))}function cV(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,zi(t)-zi(e))+1}function z7(e,t,n,r){var a=D0(e,t,n),o;switch(r=Ql(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=uV(a,i))&&(r.precision=o),F7(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=cV(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=lV(a))&&(r.precision=o-(r.type==="%")*2);break}}return _g(r)}function La(e){var t=e.domain;return e.ticks=function(n){var r=t();return R0(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return z7(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,o=r.length-1,i=r[a],s=r[o],l,u,p=10;for(s<i&&(u=i,i=s,s=u,u=a,a=o,o=u);p-- >0;){if(u=I0(i,s,n),u===l)return r[a]=i,r[o]=s,t(r);if(u>0)i=Math.floor(i/u)*u,s=Math.ceil(s/u)*u;else if(u<0)i=Math.ceil(i*u)/u,s=Math.floor(s*u)/u;else break;l=u}return e},e}function Gp(){var e=Og();return e.copy=function(){return Iu(e,Gp())},Sn.apply(e,arguments),La(e)}function B7(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Bp),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return B7(e).unknown(t)},e=arguments.length?Array.from(e,Bp):[0,1],La(n)}function H7(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],o=e[r],i;return o<a&&(i=n,n=r,r=i,i=a,a=o,o=i),e[n]=t.floor(a),e[r]=t.ceil(o),e}function L3(e){return Math.log(e)}function F3(e){return Math.exp(e)}function pV(e){return-Math.log(-e)}function fV(e){return-Math.exp(-e)}function dV(e){return isFinite(e)?+("1e"+e):e<0?0:e}function mV(e){return e===10?dV:e===Math.E?Math.exp:t=>Math.pow(e,t)}function hV(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function z3(e){return(t,n)=>-e(-t,n)}function Cg(e){const t=e(L3,F3),n=t.domain;let r=10,a,o;function i(){return a=hV(r),o=mV(r),n()[0]<0?(a=z3(a),o=z3(o),e(pV,fV)):e(L3,F3),t}return t.base=function(s){return arguments.length?(r=+s,i()):r},t.domain=function(s){return arguments.length?(n(s),i()):n()},t.ticks=s=>{const l=n();let u=l[0],p=l[l.length-1];const c=p<u;c&&([u,p]=[p,u]);let f=a(u),d=a(p),h,m;const g=s==null?10:+s;let v=[];if(!(r%1)&&d-f<g){if(f=Math.floor(f),d=Math.ceil(d),u>0){for(;f<=d;++f)for(h=1;h<r;++h)if(m=f<0?h/o(-f):h*o(f),!(m<u)){if(m>p)break;v.push(m)}}else for(;f<=d;++f)for(h=r-1;h>=1;--h)if(m=f>0?h/o(-f):h*o(f),!(m<u)){if(m>p)break;v.push(m)}v.length*2<g&&(v=R0(u,p,g))}else v=R0(f,d,Math.min(d-f,g)).map(o);return c?v.reverse():v},t.tickFormat=(s,l)=>{if(s==null&&(s=10),l==null&&(l=r===10?"s":","),typeof l!="function"&&(!(r%1)&&(l=Ql(l)).precision==null&&(l.trim=!0),l=_g(l)),s===1/0)return l;const u=Math.max(1,r*s/t.ticks().length);return p=>{let c=p/o(Math.round(a(p)));return c*r<r-.5&&(c*=r),c<=u?l(p):""}},t.nice=()=>n(H7(n(),{floor:s=>o(Math.floor(a(s))),ceil:s=>o(Math.ceil(a(s)))})),t}function G7(){const e=Cg(gd()).domain([1,10]);return e.copy=()=>Iu(e,G7()).base(e.base()),Sn.apply(e,arguments),e}function B3(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function H3(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Ag(e){var t=1,n=e(B3(t),H3(t));return n.constant=function(r){return arguments.length?e(B3(t=+r),H3(t)):t},La(n)}function U7(){var e=Ag(gd());return e.copy=function(){return Iu(e,U7()).constant(e.constant())},Sn.apply(e,arguments)}function G3(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function vV(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function yV(e){return e<0?-e*e:e*e}function Eg(e){var t=e(It,It),n=1;function r(){return n===1?e(It,It):n===.5?e(vV,yV):e(G3(n),G3(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},La(t)}function Tg(){var e=Eg(gd());return e.copy=function(){return Iu(e,Tg()).exponent(e.exponent())},Sn.apply(e,arguments),e}function gV(){return Tg.apply(null,arguments).exponent(.5)}function U3(e){return Math.sign(e)*e*e}function xV(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function W7(){var e=Og(),t=[0,1],n=!1,r;function a(o){var i=xV(e(o));return isNaN(i)?r:n?Math.round(i):i}return a.invert=function(o){return e.invert(U3(o))},a.domain=function(o){return arguments.length?(e.domain(o),a):e.domain()},a.range=function(o){return arguments.length?(e.range((t=Array.from(o,Bp)).map(U3)),a):t.slice()},a.rangeRound=function(o){return a.range(o).round(!0)},a.round=function(o){return arguments.length?(n=!!o,a):n},a.clamp=function(o){return arguments.length?(e.clamp(o),a):e.clamp()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.copy=function(){return W7(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Sn.apply(a,arguments),La(a)}function q7(){var e=[],t=[],n=[],r;function a(){var i=0,s=Math.max(1,t.length);for(n=new Array(s-1);++i<s;)n[i-1]=Oq(e,i/s);return o}function o(i){return i==null||isNaN(i=+i)?r:t[Mu(n,i)]}return o.invertExtent=function(i){var s=t.indexOf(i);return s<0?[NaN,NaN]:[s>0?n[s-1]:e[0],s<n.length?n[s]:e[e.length-1]]},o.domain=function(i){if(!arguments.length)return e.slice();e=[];for(let s of i)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(Oa),a()},o.range=function(i){return arguments.length?(t=Array.from(i),a()):t.slice()},o.unknown=function(i){return arguments.length?(r=i,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return q7().domain(e).range(t).unknown(r)},Sn.apply(o,arguments)}function V7(){var e=0,t=1,n=1,r=[.5],a=[0,1],o;function i(l){return l!=null&&l<=l?a[Mu(r,l,0,n)]:o}function s(){var l=-1;for(r=new Array(n);++l<n;)r[l]=((l+1)*t-(l-n)*e)/(n+1);return i}return i.domain=function(l){return arguments.length?([e,t]=l,e=+e,t=+t,s()):[e,t]},i.range=function(l){return arguments.length?(n=(a=Array.from(l)).length-1,s()):a.slice()},i.invertExtent=function(l){var u=a.indexOf(l);return u<0?[NaN,NaN]:u<1?[e,r[0]]:u>=n?[r[n-1],t]:[r[u-1],r[u]]},i.unknown=function(l){return arguments.length&&(o=l),i},i.thresholds=function(){return r.slice()},i.copy=function(){return V7().domain([e,t]).range(a).unknown(o)},Sn.apply(La(i),arguments)}function K7(){var e=[.5],t=[0,1],n,r=1;function a(o){return o!=null&&o<=o?t[Mu(e,o,0,r)]:n}return a.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(o){var i=t.indexOf(o);return[e[i-1],e[i]]},a.unknown=function(o){return arguments.length?(n=o,a):n},a.copy=function(){return K7().domain(e).range(t).unknown(n)},Sn.apply(a,arguments)}const Gm=new Date,Um=new Date;function lt(e,t,n,r){function a(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return a.floor=o=>(e(o=new Date(+o)),o),a.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),a.round=o=>{const i=a(o),s=a.ceil(o);return o-i<s-o?i:s},a.offset=(o,i)=>(t(o=new Date(+o),i==null?1:Math.floor(i)),o),a.range=(o,i,s)=>{const l=[];if(o=a.ceil(o),s=s==null?1:Math.floor(s),!(o<i)||!(s>0))return l;let u;do l.push(u=new Date(+o)),t(o,s),e(o);while(u<o&&o<i);return l},a.filter=o=>lt(i=>{if(i>=i)for(;e(i),!o(i);)i.setTime(i-1)},(i,s)=>{if(i>=i)if(s<0)for(;++s<=0;)for(;t(i,-1),!o(i););else for(;--s>=0;)for(;t(i,1),!o(i););}),n&&(a.count=(o,i)=>(Gm.setTime(+o),Um.setTime(+i),e(Gm),e(Um),Math.floor(n(Gm,Um))),a.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?a.filter(r?i=>r(i)%o===0:i=>a.count(0,i)%o===0):a)),a}const Up=lt(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Up.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?lt(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Up);Up.range;const Cr=1e3,vn=Cr*60,Ar=vn*60,zr=Ar*24,jg=zr*7,W3=zr*30,Wm=zr*365,eo=lt(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Cr)},(e,t)=>(t-e)/Cr,e=>e.getUTCSeconds());eo.range;const $g=lt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Cr)},(e,t)=>{e.setTime(+e+t*vn)},(e,t)=>(t-e)/vn,e=>e.getMinutes());$g.range;const Ng=lt(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*vn)},(e,t)=>(t-e)/vn,e=>e.getUTCMinutes());Ng.range;const Mg=lt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Cr-e.getMinutes()*vn)},(e,t)=>{e.setTime(+e+t*Ar)},(e,t)=>(t-e)/Ar,e=>e.getHours());Mg.range;const Rg=lt(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Ar)},(e,t)=>(t-e)/Ar,e=>e.getUTCHours());Rg.range;const Du=lt(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*vn)/zr,e=>e.getDate()-1);Du.range;const xd=lt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/zr,e=>e.getUTCDate()-1);xd.range;const X7=lt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/zr,e=>Math.floor(e/zr));X7.range;function No(e){return lt(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*vn)/jg)}const wd=No(0),Wp=No(1),wV=No(2),bV=No(3),Bi=No(4),PV=No(5),SV=No(6);wd.range;Wp.range;wV.range;bV.range;Bi.range;PV.range;SV.range;function Mo(e){return lt(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/jg)}const bd=Mo(0),qp=Mo(1),OV=Mo(2),kV=Mo(3),Hi=Mo(4),_V=Mo(5),CV=Mo(6);bd.range;qp.range;OV.range;kV.range;Hi.range;_V.range;CV.range;const Ig=lt(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Ig.range;const Dg=lt(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Dg.range;const Br=lt(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());Br.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:lt(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});Br.range;const Hr=lt(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Hr.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:lt(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});Hr.range;function Y7(e,t,n,r,a,o){const i=[[eo,1,Cr],[eo,5,5*Cr],[eo,15,15*Cr],[eo,30,30*Cr],[o,1,vn],[o,5,5*vn],[o,15,15*vn],[o,30,30*vn],[a,1,Ar],[a,3,3*Ar],[a,6,6*Ar],[a,12,12*Ar],[r,1,zr],[r,2,2*zr],[n,1,jg],[t,1,W3],[t,3,3*W3],[e,1,Wm]];function s(u,p,c){const f=p<u;f&&([u,p]=[p,u]);const d=c&&typeof c.range=="function"?c:l(u,p,c),h=d?d.range(u,+p+1):[];return f?h.reverse():h}function l(u,p,c){const f=Math.abs(p-u)/c,d=xg(([,,g])=>g).right(i,f);if(d===i.length)return e.every(D0(u/Wm,p/Wm,c));if(d===0)return Up.every(Math.max(D0(u,p,c),1));const[h,m]=i[f/i[d-1][2]<i[d][2]/f?d-1:d];return h.every(m)}return[s,l]}const[AV,EV]=Y7(Hr,Dg,bd,X7,Rg,Ng),[TV,jV]=Y7(Br,Ig,wd,Du,Mg,$g);function qm(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 Vm(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 Us(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function $V(e){var t=e.dateTime,n=e.date,r=e.time,a=e.periods,o=e.days,i=e.shortDays,s=e.months,l=e.shortMonths,u=Ws(a),p=qs(a),c=Ws(o),f=qs(o),d=Ws(i),h=qs(i),m=Ws(s),g=qs(s),v=Ws(l),y=qs(l),x={a:L,A:$,b:D,B:H,c:null,d:Q3,e:Q3,f:tK,g:pK,G:dK,H:ZV,I:JV,j:eK,L:Q7,m:nK,M:rK,p:W,q:G,Q:eb,s:tb,S:aK,u:oK,U:iK,V:sK,w:lK,W:uK,x:null,X:null,y:cK,Y:fK,Z:mK,"%":J3},P={a:Z,A:ie,b:ve,B:Pe,c:null,d:Z3,e:Z3,f:gK,g:AK,G:TK,H:hK,I:vK,j:yK,L:J7,m:xK,M:wK,p:J,q:le,Q:eb,s:tb,S:bK,u:PK,U:SK,V:OK,w:kK,W:_K,x:null,X:null,y:CK,Y:EK,Z:jK,"%":J3},w={a:j,A:E,b:T,B:N,c:M,d:X3,e:X3,f:KV,g:K3,G:V3,H:Y3,I:Y3,j:UV,L:VV,m:GV,M:WV,p:C,q:HV,Q:YV,s:QV,S:qV,u:DV,U:LV,V:FV,w:IV,W:zV,x:I,X:R,y:K3,Y:V3,Z:BV,"%":XV};x.x=S(n,x),x.X=S(r,x),x.c=S(t,x),P.x=S(n,P),P.X=S(r,P),P.c=S(t,P);function S(q,K){return function(X){var F=[],pe=-1,ne=0,Ne=q.length,Me,Ze,Xn;for(X instanceof Date||(X=new Date(+X));++pe<Ne;)q.charCodeAt(pe)===37&&(F.push(q.slice(ne,pe)),(Ze=q3[Me=q.charAt(++pe)])!=null?Me=q.charAt(++pe):Ze=Me==="e"?" ":"0",(Xn=K[Me])&&(Me=Xn(X,Ze)),F.push(Me),ne=pe+1);return F.push(q.slice(ne,pe)),F.join("")}}function O(q,K){return function(X){var F=Us(1900,void 0,1),pe=_(F,q,X+="",0),ne,Ne;if(pe!=X.length)return null;if("Q"in F)return new Date(F.Q);if("s"in F)return new Date(F.s*1e3+("L"in F?F.L:0));if(K&&!("Z"in F)&&(F.Z=0),"p"in F&&(F.H=F.H%12+F.p*12),F.m===void 0&&(F.m="q"in F?F.q:0),"V"in F){if(F.V<1||F.V>53)return null;"w"in F||(F.w=1),"Z"in F?(ne=Vm(Us(F.y,0,1)),Ne=ne.getUTCDay(),ne=Ne>4||Ne===0?qp.ceil(ne):qp(ne),ne=xd.offset(ne,(F.V-1)*7),F.y=ne.getUTCFullYear(),F.m=ne.getUTCMonth(),F.d=ne.getUTCDate()+(F.w+6)%7):(ne=qm(Us(F.y,0,1)),Ne=ne.getDay(),ne=Ne>4||Ne===0?Wp.ceil(ne):Wp(ne),ne=Du.offset(ne,(F.V-1)*7),F.y=ne.getFullYear(),F.m=ne.getMonth(),F.d=ne.getDate()+(F.w+6)%7)}else("W"in F||"U"in F)&&("w"in F||(F.w="u"in F?F.u%7:"W"in F?1:0),Ne="Z"in F?Vm(Us(F.y,0,1)).getUTCDay():qm(Us(F.y,0,1)).getDay(),F.m=0,F.d="W"in F?(F.w+6)%7+F.W*7-(Ne+5)%7:F.w+F.U*7-(Ne+6)%7);return"Z"in F?(F.H+=F.Z/100|0,F.M+=F.Z%100,Vm(F)):qm(F)}}function _(q,K,X,F){for(var pe=0,ne=K.length,Ne=X.length,Me,Ze;pe<ne;){if(F>=Ne)return-1;if(Me=K.charCodeAt(pe++),Me===37){if(Me=K.charAt(pe++),Ze=w[Me in q3?K.charAt(pe++):Me],!Ze||(F=Ze(q,X,F))<0)return-1}else if(Me!=X.charCodeAt(F++))return-1}return F}function C(q,K,X){var F=u.exec(K.slice(X));return F?(q.p=p.get(F[0].toLowerCase()),X+F[0].length):-1}function j(q,K,X){var F=d.exec(K.slice(X));return F?(q.w=h.get(F[0].toLowerCase()),X+F[0].length):-1}function E(q,K,X){var F=c.exec(K.slice(X));return F?(q.w=f.get(F[0].toLowerCase()),X+F[0].length):-1}function T(q,K,X){var F=v.exec(K.slice(X));return F?(q.m=y.get(F[0].toLowerCase()),X+F[0].length):-1}function N(q,K,X){var F=m.exec(K.slice(X));return F?(q.m=g.get(F[0].toLowerCase()),X+F[0].length):-1}function M(q,K,X){return _(q,t,K,X)}function I(q,K,X){return _(q,n,K,X)}function R(q,K,X){return _(q,r,K,X)}function L(q){return i[q.getDay()]}function $(q){return o[q.getDay()]}function D(q){return l[q.getMonth()]}function H(q){return s[q.getMonth()]}function W(q){return a[+(q.getHours()>=12)]}function G(q){return 1+~~(q.getMonth()/3)}function Z(q){return i[q.getUTCDay()]}function ie(q){return o[q.getUTCDay()]}function ve(q){return l[q.getUTCMonth()]}function Pe(q){return s[q.getUTCMonth()]}function J(q){return a[+(q.getUTCHours()>=12)]}function le(q){return 1+~~(q.getUTCMonth()/3)}return{format:function(q){var K=S(q+="",x);return K.toString=function(){return q},K},parse:function(q){var K=O(q+="",!1);return K.toString=function(){return q},K},utcFormat:function(q){var K=S(q+="",P);return K.toString=function(){return q},K},utcParse:function(q){var K=O(q+="",!0);return K.toString=function(){return q},K}}}var q3={"-":"",_:" ",0:"0"},dt=/^\s*\d+/,NV=/^%/,MV=/[\\^$*+?|[\]().{}]/g;function he(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",o=a.length;return r+(o<n?new Array(n-o+1).join(t)+a:a)}function RV(e){return e.replace(MV,"\\$&")}function Ws(e){return new RegExp("^(?:"+e.map(RV).join("|")+")","i")}function qs(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function IV(e,t,n){var r=dt.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function DV(e,t,n){var r=dt.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function LV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function FV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function zV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function V3(e,t,n){var r=dt.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function K3(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function BV(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 HV(e,t,n){var r=dt.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function GV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function X3(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function UV(e,t,n){var r=dt.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Y3(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function WV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function qV(e,t,n){var r=dt.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function VV(e,t,n){var r=dt.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function KV(e,t,n){var r=dt.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function XV(e,t,n){var r=NV.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function YV(e,t,n){var r=dt.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function QV(e,t,n){var r=dt.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Q3(e,t){return he(e.getDate(),t,2)}function ZV(e,t){return he(e.getHours(),t,2)}function JV(e,t){return he(e.getHours()%12||12,t,2)}function eK(e,t){return he(1+Du.count(Br(e),e),t,3)}function Q7(e,t){return he(e.getMilliseconds(),t,3)}function tK(e,t){return Q7(e,t)+"000"}function nK(e,t){return he(e.getMonth()+1,t,2)}function rK(e,t){return he(e.getMinutes(),t,2)}function aK(e,t){return he(e.getSeconds(),t,2)}function oK(e){var t=e.getDay();return t===0?7:t}function iK(e,t){return he(wd.count(Br(e)-1,e),t,2)}function Z7(e){var t=e.getDay();return t>=4||t===0?Bi(e):Bi.ceil(e)}function sK(e,t){return e=Z7(e),he(Bi.count(Br(e),e)+(Br(e).getDay()===4),t,2)}function lK(e){return e.getDay()}function uK(e,t){return he(Wp.count(Br(e)-1,e),t,2)}function cK(e,t){return he(e.getFullYear()%100,t,2)}function pK(e,t){return e=Z7(e),he(e.getFullYear()%100,t,2)}function fK(e,t){return he(e.getFullYear()%1e4,t,4)}function dK(e,t){var n=e.getDay();return e=n>=4||n===0?Bi(e):Bi.ceil(e),he(e.getFullYear()%1e4,t,4)}function mK(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+he(t/60|0,"0",2)+he(t%60,"0",2)}function Z3(e,t){return he(e.getUTCDate(),t,2)}function hK(e,t){return he(e.getUTCHours(),t,2)}function vK(e,t){return he(e.getUTCHours()%12||12,t,2)}function yK(e,t){return he(1+xd.count(Hr(e),e),t,3)}function J7(e,t){return he(e.getUTCMilliseconds(),t,3)}function gK(e,t){return J7(e,t)+"000"}function xK(e,t){return he(e.getUTCMonth()+1,t,2)}function wK(e,t){return he(e.getUTCMinutes(),t,2)}function bK(e,t){return he(e.getUTCSeconds(),t,2)}function PK(e){var t=e.getUTCDay();return t===0?7:t}function SK(e,t){return he(bd.count(Hr(e)-1,e),t,2)}function eP(e){var t=e.getUTCDay();return t>=4||t===0?Hi(e):Hi.ceil(e)}function OK(e,t){return e=eP(e),he(Hi.count(Hr(e),e)+(Hr(e).getUTCDay()===4),t,2)}function kK(e){return e.getUTCDay()}function _K(e,t){return he(qp.count(Hr(e)-1,e),t,2)}function CK(e,t){return he(e.getUTCFullYear()%100,t,2)}function AK(e,t){return e=eP(e),he(e.getUTCFullYear()%100,t,2)}function EK(e,t){return he(e.getUTCFullYear()%1e4,t,4)}function TK(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Hi(e):Hi.ceil(e),he(e.getUTCFullYear()%1e4,t,4)}function jK(){return"+0000"}function J3(){return"%"}function eb(e){return+e}function tb(e){return Math.floor(+e/1e3)}var Bo,tP,nP;$K({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 $K(e){return Bo=$V(e),tP=Bo.format,Bo.parse,nP=Bo.utcFormat,Bo.utcParse,Bo}function NK(e){return new Date(e)}function MK(e){return e instanceof Date?+e:+new Date(+e)}function Lg(e,t,n,r,a,o,i,s,l,u){var p=Og(),c=p.invert,f=p.domain,d=u(".%L"),h=u(":%S"),m=u("%I:%M"),g=u("%I %p"),v=u("%a %d"),y=u("%b %d"),x=u("%B"),P=u("%Y");function w(S){return(l(S)<S?d:s(S)<S?h:i(S)<S?m:o(S)<S?g:r(S)<S?a(S)<S?v:y:n(S)<S?x:P)(S)}return p.invert=function(S){return new Date(c(S))},p.domain=function(S){return arguments.length?f(Array.from(S,MK)):f().map(NK)},p.ticks=function(S){var O=f();return e(O[0],O[O.length-1],S??10)},p.tickFormat=function(S,O){return O==null?w:u(O)},p.nice=function(S){var O=f();return(!S||typeof S.range!="function")&&(S=t(O[0],O[O.length-1],S??10)),S?f(H7(O,S)):p},p.copy=function(){return Iu(p,Lg(e,t,n,r,a,o,i,s,l,u))},p}function RK(){return Sn.apply(Lg(TV,jV,Br,Ig,wd,Du,Mg,$g,eo,tP).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function IK(){return Sn.apply(Lg(AV,EV,Hr,Dg,bd,xd,Rg,Ng,eo,nP).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Pd(){var e=0,t=1,n,r,a,o,i=It,s=!1,l;function u(c){return c==null||isNaN(c=+c)?l:i(a===0?.5:(c=(o(c)-n)*a,s?Math.max(0,Math.min(1,c)):c))}u.domain=function(c){return arguments.length?([e,t]=c,n=o(e=+e),r=o(t=+t),a=n===r?0:1/(r-n),u):[e,t]},u.clamp=function(c){return arguments.length?(s=!!c,u):s},u.interpolator=function(c){return arguments.length?(i=c,u):i};function p(c){return function(f){var d,h;return arguments.length?([d,h]=f,i=c(d,h),u):[i(0),i(1)]}}return u.range=p(_s),u.rangeRound=p(Sg),u.unknown=function(c){return arguments.length?(l=c,u):l},function(c){return o=c,n=c(e),r=c(t),a=n===r?0:1/(r-n),u}}function Fa(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function rP(){var e=La(Pd()(It));return e.copy=function(){return Fa(e,rP())},qr.apply(e,arguments)}function aP(){var e=Cg(Pd()).domain([1,10]);return e.copy=function(){return Fa(e,aP()).base(e.base())},qr.apply(e,arguments)}function oP(){var e=Ag(Pd());return e.copy=function(){return Fa(e,oP()).constant(e.constant())},qr.apply(e,arguments)}function Fg(){var e=Eg(Pd());return e.copy=function(){return Fa(e,Fg()).exponent(e.exponent())},qr.apply(e,arguments)}function DK(){return Fg.apply(null,arguments).exponent(.5)}function iP(){var e=[],t=It;function n(r){if(r!=null&&!isNaN(r=+r))return t((Mu(e,r,1)-1)/(e.length-1))}return n.domain=function(r){if(!arguments.length)return e.slice();e=[];for(let a of r)a!=null&&!isNaN(a=+a)&&e.push(a);return e.sort(Oa),n},n.interpolator=function(r){return arguments.length?(t=r,n):t},n.range=function(){return e.map((r,a)=>t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,o)=>Sq(e,o/r))},n.copy=function(){return iP(t).domain(e)},qr.apply(n,arguments)}function Sd(){var e=0,t=.5,n=1,r=1,a,o,i,s,l,u=It,p,c=!1,f;function d(m){return isNaN(m=+m)?f:(m=.5+((m=+p(m))-o)*(r*m<r*o?s:l),u(c?Math.max(0,Math.min(1,m)):m))}d.domain=function(m){return arguments.length?([e,t,n]=m,a=p(e=+e),o=p(t=+t),i=p(n=+n),s=a===o?0:.5/(o-a),l=o===i?0:.5/(i-o),r=o<a?-1:1,d):[e,t,n]},d.clamp=function(m){return arguments.length?(c=!!m,d):c},d.interpolator=function(m){return arguments.length?(u=m,d):u};function h(m){return function(g){var v,y,x;return arguments.length?([v,y,x]=g,u=Xq(m,[v,y,x]),d):[u(0),u(.5),u(1)]}}return d.range=h(_s),d.rangeRound=h(Sg),d.unknown=function(m){return arguments.length?(f=m,d):f},function(m){return p=m,a=m(e),o=m(t),i=m(n),s=a===o?0:.5/(o-a),l=o===i?0:.5/(i-o),r=o<a?-1:1,d}}function sP(){var e=La(Sd()(It));return e.copy=function(){return Fa(e,sP())},qr.apply(e,arguments)}function lP(){var e=Cg(Sd()).domain([.1,1,10]);return e.copy=function(){return Fa(e,lP()).base(e.base())},qr.apply(e,arguments)}function uP(){var e=Ag(Sd());return e.copy=function(){return Fa(e,uP()).constant(e.constant())},qr.apply(e,arguments)}function zg(){var e=Eg(Sd());return e.copy=function(){return Fa(e,zg()).exponent(e.exponent())},qr.apply(e,arguments)}function LK(){return zg.apply(null,arguments).exponent(.5)}const nb=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:Vl,scaleDiverging:sP,scaleDivergingLog:lP,scaleDivergingPow:zg,scaleDivergingSqrt:LK,scaleDivergingSymlog:uP,scaleIdentity:B7,scaleImplicit:L0,scaleLinear:Gp,scaleLog:G7,scaleOrdinal:wg,scalePoint:dl,scalePow:Tg,scaleQuantile:q7,scaleQuantize:V7,scaleRadial:W7,scaleSequential:rP,scaleSequentialLog:aP,scaleSequentialPow:Fg,scaleSequentialQuantile:iP,scaleSequentialSqrt:DK,scaleSequentialSymlog:oP,scaleSqrt:gV,scaleSymlog:U7,scaleThreshold:K7,scaleTime:RK,scaleUtc:IK,tickFormat:z7},Symbol.toStringTag,{value:"Module"}));var FK=ys;function zK(e,t,n){for(var r=-1,a=e.length;++r<a;){var o=e[r],i=t(o);if(i!=null&&(s===void 0?i===i&&!FK(i):n(i,s)))var s=i,l=o}return l}var cP=zK;function BK(e,t){return e>t}var HK=BK,GK=cP,UK=HK,WK=ks;function qK(e){return e&&e.length?GK(e,WK,UK):void 0}var VK=qK;const da=Ae(VK);function KK(e,t){return e<t}var XK=KK,YK=cP,QK=XK,ZK=ks;function JK(e){return e&&e.length?YK(e,ZK,QK):void 0}var eX=JK;const Od=Ae(eX);var tX=eg,nX=Ia,rX=x7,aX=Vt;function oX(e,t){var n=aX(e)?tX:rX;return n(e,nX(t))}var iX=oX,sX=y7,lX=iX;function uX(e,t){return sX(lX(e,t),1)}var cX=uX;const pX=Ae(cX);var fX=mg;function dX(e,t){return fX(e,t)}var mX=dX;const ko=Ae(mX);var Cs=1e9,hX={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},Hg,Be=!0,bn="[DecimalError] ",fo=bn+"Invalid argument: ",Bg=bn+"Exponent out of range: ",As=Math.floor,Ka=Math.pow,vX=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Jt,ut=1e7,Le=7,pP=9007199254740991,Vp=As(pP/Le),Q={};Q.absoluteValue=Q.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};Q.comparedTo=Q.cmp=function(e){var t,n,r,a,o=this;if(e=new o.constructor(e),o.s!==e.s)return o.s||-e.s;if(o.e!==e.e)return o.e>e.e^o.s<0?1:-1;for(r=o.d.length,a=e.d.length,t=0,n=r<a?r:a;t<n;++t)if(o.d[t]!==e.d[t])return o.d[t]>e.d[t]^o.s<0?1:-1;return r===a?0:r>a^o.s<0?1:-1};Q.decimalPlaces=Q.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*Le;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Q.dividedBy=Q.div=function(e){return Nr(this,new this.constructor(e))};Q.dividedToIntegerBy=Q.idiv=function(e){var t=this,n=t.constructor;return Te(Nr(t,new n(e),0,1),n.precision)};Q.equals=Q.eq=function(e){return!this.cmp(e)};Q.exponent=function(){return tt(this)};Q.greaterThan=Q.gt=function(e){return this.cmp(e)>0};Q.greaterThanOrEqualTo=Q.gte=function(e){return this.cmp(e)>=0};Q.isInteger=Q.isint=function(){return this.e>this.d.length-2};Q.isNegative=Q.isneg=function(){return this.s<0};Q.isPositive=Q.ispos=function(){return this.s>0};Q.isZero=function(){return this.s===0};Q.lessThan=Q.lt=function(e){return this.cmp(e)<0};Q.lessThanOrEqualTo=Q.lte=function(e){return this.cmp(e)<1};Q.logarithm=Q.log=function(e){var t,n=this,r=n.constructor,a=r.precision,o=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(Jt))throw Error(bn+"NaN");if(n.s<1)throw Error(bn+(n.s?"NaN":"-Infinity"));return n.eq(Jt)?new r(0):(Be=!1,t=Nr(Zl(n,o),Zl(e,o),o),Be=!0,Te(t,a))};Q.minus=Q.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?mP(t,e):fP(t,(e.s=-e.s,e))};Q.modulo=Q.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(bn+"NaN");return n.s?(Be=!1,t=Nr(n,e,0,1).times(e),Be=!0,n.minus(t)):Te(new r(n),a)};Q.naturalExponential=Q.exp=function(){return dP(this)};Q.naturalLogarithm=Q.ln=function(){return Zl(this)};Q.negated=Q.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Q.plus=Q.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?fP(t,e):mP(t,(e.s=-e.s,e))};Q.precision=Q.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(fo+e);if(t=tt(a)+1,r=a.d.length-1,n=r*Le+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Q.squareRoot=Q.sqrt=function(){var e,t,n,r,a,o,i,s=this,l=s.constructor;if(s.s<1){if(!s.s)return new l(0);throw Error(bn+"NaN")}for(e=tt(s),Be=!1,a=Math.sqrt(+s),a==0||a==1/0?(t=or(s.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=As((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new l(t)):r=new l(a.toString()),n=l.precision,a=i=n+3;;)if(o=r,r=o.plus(Nr(s,o,i+2)).times(.5),or(o.d).slice(0,i)===(t=or(r.d)).slice(0,i)){if(t=t.slice(i-3,i+1),a==i&&t=="4999"){if(Te(o,n+1,0),o.times(o).eq(s)){r=o;break}}else if(t!="9999")break;i+=4}return Be=!0,Te(r,n)};Q.times=Q.mul=function(e){var t,n,r,a,o,i,s,l,u,p=this,c=p.constructor,f=p.d,d=(e=new c(e)).d;if(!p.s||!e.s)return new c(0);for(e.s*=p.s,n=p.e+e.e,l=f.length,u=d.length,l<u&&(o=f,f=d,d=o,i=l,l=u,u=i),o=[],i=l+u,r=i;r--;)o.push(0);for(r=u;--r>=0;){for(t=0,a=l+r;a>r;)s=o[a]+d[r]*f[a-r-1]+t,o[a--]=s%ut|0,t=s/ut|0;o[a]=(o[a]+t)%ut|0}for(;!o[--i];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,Be?Te(e,c.precision):e};Q.toDecimalPlaces=Q.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(vr(e,0,Cs),t===void 0?t=r.rounding:vr(t,0,8),Te(n,e+tt(n)+1,t))};Q.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=_o(r,!0):(vr(e,0,Cs),t===void 0?t=a.rounding:vr(t,0,8),r=Te(new a(r),e+1,t),n=_o(r,!0,e+1)),n};Q.toFixed=function(e,t){var n,r,a=this,o=a.constructor;return e===void 0?_o(a):(vr(e,0,Cs),t===void 0?t=o.rounding:vr(t,0,8),r=Te(new o(a),e+tt(a)+1,t),n=_o(r.abs(),!1,e+tt(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Q.toInteger=Q.toint=function(){var e=this,t=e.constructor;return Te(new t(e),tt(e)+1,t.rounding)};Q.toNumber=function(){return+this};Q.toPower=Q.pow=function(e){var t,n,r,a,o,i,s=this,l=s.constructor,u=12,p=+(e=new l(e));if(!e.s)return new l(Jt);if(s=new l(s),!s.s){if(e.s<1)throw Error(bn+"Infinity");return s}if(s.eq(Jt))return s;if(r=l.precision,e.eq(Jt))return Te(s,r);if(t=e.e,n=e.d.length-1,i=t>=n,o=s.s,i){if((n=p<0?-p:p)<=pP){for(a=new l(Jt),t=Math.ceil(r/Le+4),Be=!1;n%2&&(a=a.times(s),ab(a.d,t)),n=As(n/2),n!==0;)s=s.times(s),ab(s.d,t);return Be=!0,e.s<0?new l(Jt).div(a):Te(a,r)}}else if(o<0)throw Error(bn+"NaN");return o=o<0&&e.d[Math.max(t,n)]&1?-1:1,s.s=1,Be=!1,a=e.times(Zl(s,r+u)),Be=!0,a=dP(a),a.s=o,a};Q.toPrecision=function(e,t){var n,r,a=this,o=a.constructor;return e===void 0?(n=tt(a),r=_o(a,n<=o.toExpNeg||n>=o.toExpPos)):(vr(e,1,Cs),t===void 0?t=o.rounding:vr(t,0,8),a=Te(new o(a),e,t),n=tt(a),r=_o(a,e<=n||n<=o.toExpNeg,e)),r};Q.toSignificantDigits=Q.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(vr(e,1,Cs),t===void 0?t=r.rounding:vr(t,0,8)),Te(new r(n),e,t)};Q.toString=Q.valueOf=Q.val=Q.toJSON=Q[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=tt(e),n=e.constructor;return _o(e,t<=n.toExpNeg||t>=n.toExpPos)};function fP(e,t){var n,r,a,o,i,s,l,u,p=e.constructor,c=p.precision;if(!e.s||!t.s)return t.s||(t=new p(e)),Be?Te(t,c):t;if(l=e.d,u=t.d,i=e.e,a=t.e,l=l.slice(),o=i-a,o){for(o<0?(r=l,o=-o,s=u.length):(r=u,a=i,s=l.length),i=Math.ceil(c/Le),s=i>s?i+1:s+1,o>s&&(o=s,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(s=l.length,o=u.length,s-o<0&&(o=s,r=u,u=l,l=r),n=0;o;)n=(l[--o]=l[o]+u[o]+n)/ut|0,l[o]%=ut;for(n&&(l.unshift(n),++a),s=l.length;l[--s]==0;)l.pop();return t.d=l,t.e=a,Be?Te(t,c):t}function vr(e,t,n){if(e!==~~e||e<t||e>n)throw Error(fo+e)}function or(e){var t,n,r,a=e.length-1,o="",i=e[0];if(a>0){for(o+=i,t=1;t<a;t++)r=e[t]+"",n=Le-r.length,n&&(o+=na(n)),o+=r;i=e[t],r=i+"",n=Le-r.length,n&&(o+=na(n))}else if(i===0)return"0";for(;i%10===0;)i/=10;return o+i}var Nr=function(){function e(r,a){var o,i=0,s=r.length;for(r=r.slice();s--;)o=r[s]*a+i,r[s]=o%ut|0,i=o/ut|0;return i&&r.unshift(i),r}function t(r,a,o,i){var s,l;if(o!=i)l=o>i?1:-1;else for(s=l=0;s<o;s++)if(r[s]!=a[s]){l=r[s]>a[s]?1:-1;break}return l}function n(r,a,o){for(var i=0;o--;)r[o]-=i,i=r[o]<a[o]?1:0,r[o]=i*ut+r[o]-a[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,a,o,i){var s,l,u,p,c,f,d,h,m,g,v,y,x,P,w,S,O,_,C=r.constructor,j=r.s==a.s?1:-1,E=r.d,T=a.d;if(!r.s)return new C(r);if(!a.s)throw Error(bn+"Division by zero");for(l=r.e-a.e,O=T.length,w=E.length,d=new C(j),h=d.d=[],u=0;T[u]==(E[u]||0);)++u;if(T[u]>(E[u]||0)&&--l,o==null?y=o=C.precision:i?y=o+(tt(r)-tt(a))+1:y=o,y<0)return new C(0);if(y=y/Le+2|0,u=0,O==1)for(p=0,T=T[0],y++;(u<w||p)&&y--;u++)x=p*ut+(E[u]||0),h[u]=x/T|0,p=x%T|0;else{for(p=ut/(T[0]+1)|0,p>1&&(T=e(T,p),E=e(E,p),O=T.length,w=E.length),P=O,m=E.slice(0,O),g=m.length;g<O;)m[g++]=0;_=T.slice(),_.unshift(0),S=T[0],T[1]>=ut/2&&++S;do p=0,s=t(T,m,O,g),s<0?(v=m[0],O!=g&&(v=v*ut+(m[1]||0)),p=v/S|0,p>1?(p>=ut&&(p=ut-1),c=e(T,p),f=c.length,g=m.length,s=t(c,m,f,g),s==1&&(p--,n(c,O<f?_:T,f))):(p==0&&(s=p=1),c=T.slice()),f=c.length,f<g&&c.unshift(0),n(m,c,g),s==-1&&(g=m.length,s=t(T,m,O,g),s<1&&(p++,n(m,O<g?_:T,g))),g=m.length):s===0&&(p++,m=[0]),h[u++]=p,s&&m[0]?m[g++]=E[P]||0:(m=[E[P]],g=1);while((P++<w||m[0]!==void 0)&&y--)}return h[0]||h.shift(),d.e=l,Te(d,i?o+tt(d)+1:o)}}();function dP(e,t){var n,r,a,o,i,s,l=0,u=0,p=e.constructor,c=p.precision;if(tt(e)>16)throw Error(Bg+tt(e));if(!e.s)return new p(Jt);for(Be=!1,s=c,i=new p(.03125);e.abs().gte(.1);)e=e.times(i),u+=5;for(r=Math.log(Ka(2,u))/Math.LN10*2+5|0,s+=r,n=a=o=new p(Jt),p.precision=s;;){if(a=Te(a.times(e),s),n=n.times(++l),i=o.plus(Nr(a,n,s)),or(i.d).slice(0,s)===or(o.d).slice(0,s)){for(;u--;)o=Te(o.times(o),s);return p.precision=c,t==null?(Be=!0,Te(o,c)):o}o=i}}function tt(e){for(var t=e.e*Le,n=e.d[0];n>=10;n/=10)t++;return t}function Km(e,t,n){if(t>e.LN10.sd())throw Be=!0,n&&(e.precision=n),Error(bn+"LN10 precision limit exceeded");return Te(new e(e.LN10),t)}function na(e){for(var t="";e--;)t+="0";return t}function Zl(e,t){var n,r,a,o,i,s,l,u,p,c=1,f=10,d=e,h=d.d,m=d.constructor,g=m.precision;if(d.s<1)throw Error(bn+(d.s?"NaN":"-Infinity"));if(d.eq(Jt))return new m(0);if(t==null?(Be=!1,u=g):u=t,d.eq(10))return t==null&&(Be=!0),Km(m,u);if(u+=f,m.precision=u,n=or(h),r=n.charAt(0),o=tt(d),Math.abs(o)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)d=d.times(e),n=or(d.d),r=n.charAt(0),c++;o=tt(d),r>1?(d=new m("0."+n),o++):d=new m(r+"."+n.slice(1))}else return l=Km(m,u+2,g).times(o+""),d=Zl(new m(r+"."+n.slice(1)),u-f).plus(l),m.precision=g,t==null?(Be=!0,Te(d,g)):d;for(s=i=d=Nr(d.minus(Jt),d.plus(Jt),u),p=Te(d.times(d),u),a=3;;){if(i=Te(i.times(p),u),l=s.plus(Nr(i,new m(a),u)),or(l.d).slice(0,u)===or(s.d).slice(0,u))return s=s.times(2),o!==0&&(s=s.plus(Km(m,u+2,g).times(o+""))),s=Nr(s,new m(c),u),m.precision=g,t==null?(Be=!0,Te(s,g)):s;s=l,a+=2}}function rb(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=As(n/Le),e.d=[],r=(n+1)%Le,n<0&&(r+=Le),r<a){for(r&&e.d.push(+t.slice(0,r)),a-=Le;r<a;)e.d.push(+t.slice(r,r+=Le));t=t.slice(r),r=Le-t.length}else r-=a;for(;r--;)t+="0";if(e.d.push(+t),Be&&(e.e>Vp||e.e<-Vp))throw Error(Bg+n)}else e.s=0,e.e=0,e.d=[0];return e}function Te(e,t,n){var r,a,o,i,s,l,u,p,c=e.d;for(i=1,o=c[0];o>=10;o/=10)i++;if(r=t-i,r<0)r+=Le,a=t,u=c[p=0];else{if(p=Math.ceil((r+1)/Le),o=c.length,p>=o)return e;for(u=o=c[p],i=1;o>=10;o/=10)i++;r%=Le,a=r-Le+i}if(n!==void 0&&(o=Ka(10,i-a-1),s=u/o%10|0,l=t<0||c[p+1]!==void 0||u%o,l=n<4?(s||l)&&(n==0||n==(e.s<0?3:2)):s>5||s==5&&(n==4||l||n==6&&(r>0?a>0?u/Ka(10,i-a):0:c[p-1])%10&1||n==(e.s<0?8:7))),t<1||!c[0])return l?(o=tt(e),c.length=1,t=t-o-1,c[0]=Ka(10,(Le-t%Le)%Le),e.e=As(-t/Le)||0):(c.length=1,c[0]=e.e=e.s=0),e;if(r==0?(c.length=p,o=1,p--):(c.length=p+1,o=Ka(10,Le-r),c[p]=a>0?(u/Ka(10,i-a)%Ka(10,a)|0)*o:0),l)for(;;)if(p==0){(c[0]+=o)==ut&&(c[0]=1,++e.e);break}else{if(c[p]+=o,c[p]!=ut)break;c[p--]=0,o=1}for(r=c.length;c[--r]===0;)c.pop();if(Be&&(e.e>Vp||e.e<-Vp))throw Error(Bg+tt(e));return e}function mP(e,t){var n,r,a,o,i,s,l,u,p,c,f=e.constructor,d=f.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new f(e),Be?Te(t,d):t;if(l=e.d,c=t.d,r=t.e,u=e.e,l=l.slice(),i=u-r,i){for(p=i<0,p?(n=l,i=-i,s=c.length):(n=c,r=u,s=l.length),a=Math.max(Math.ceil(d/Le),s)+2,i>a&&(i=a,n.length=1),n.reverse(),a=i;a--;)n.push(0);n.reverse()}else{for(a=l.length,s=c.length,p=a<s,p&&(s=a),a=0;a<s;a++)if(l[a]!=c[a]){p=l[a]<c[a];break}i=0}for(p&&(n=l,l=c,c=n,t.s=-t.s),s=l.length,a=c.length-s;a>0;--a)l[s++]=0;for(a=c.length;a>i;){if(l[--a]<c[a]){for(o=a;o&&l[--o]===0;)l[o]=ut-1;--l[o],l[a]+=ut}l[a]-=c[a]}for(;l[--s]===0;)l.pop();for(;l[0]===0;l.shift())--r;return l[0]?(t.d=l,t.e=r,Be?Te(t,d):t):new f(0)}function _o(e,t,n){var r,a=tt(e),o=or(e.d),i=o.length;return t?(n&&(r=n-i)>0?o=o.charAt(0)+"."+o.slice(1)+na(r):i>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(a<0?"e":"e+")+a):a<0?(o="0."+na(-a-1)+o,n&&(r=n-i)>0&&(o+=na(r))):a>=i?(o+=na(a+1-i),n&&(r=n-a-1)>0&&(o=o+"."+na(r))):((r=a+1)<i&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-i)>0&&(a+1===i&&(o+="."),o+=na(r))),e.s<0?"-"+o:o}function ab(e,t){if(e.length>t)return e.length=t,!0}function hP(e){var t,n,r;function a(o){var i=this;if(!(i instanceof a))return new a(o);if(i.constructor=a,o instanceof a){i.s=o.s,i.e=o.e,i.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(fo+o);if(o>0)i.s=1;else if(o<0)o=-o,i.s=-1;else{i.s=0,i.e=0,i.d=[0];return}if(o===~~o&&o<1e7){i.e=0,i.d=[o];return}return rb(i,o.toString())}else if(typeof o!="string")throw Error(fo+o);if(o.charCodeAt(0)===45?(o=o.slice(1),i.s=-1):i.s=1,vX.test(o))rb(i,o);else throw Error(fo+o)}if(a.prototype=Q,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=hP,a.config=a.set=yX,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return a.config(e),a}function yX(e){if(!e||typeof e!="object")throw Error(bn+"Object expected");var t,n,r,a=["precision",1,Cs,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<a.length;t+=3)if((r=e[n=a[t]])!==void 0)if(As(r)===r&&r>=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(fo+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(fo+n+": "+r);return this}var Hg=hP(hX);Jt=new Hg(1);const Ce=Hg;function gX(e){return PX(e)||bX(e)||wX(e)||xX()}function xX(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wX(e,t){if(e){if(typeof e=="string")return H0(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return H0(e,t)}}function bX(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function PX(e){if(Array.isArray(e))return H0(e)}function H0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var SX=function(t){return t},vP={},yP=function(t){return t===vP},ob=function(t){return function n(){return arguments.length===0||arguments.length===1&&yP(arguments.length<=0?void 0:arguments[0])?n:t.apply(void 0,arguments)}},OX=function e(t,n){return t===1?n:ob(function(){for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];var i=a.filter(function(s){return s!==vP}).length;return i>=t?n.apply(void 0,a):e(t-i,ob(function(){for(var s=arguments.length,l=new Array(s),u=0;u<s;u++)l[u]=arguments[u];var p=a.map(function(c){return yP(c)?l.shift():c});return n.apply(void 0,gX(p).concat(l))}))})},kd=function(t){return OX(t.length,t)},G0=function(t,n){for(var r=[],a=t;a<n;++a)r[a-t]=a;return r},kX=kd(function(e,t){return Array.isArray(t)?t.map(e):Object.keys(t).map(function(n){return t[n]}).map(e)}),_X=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return SX;var a=n.reverse(),o=a[0],i=a.slice(1);return function(){return i.reduce(function(s,l){return l(s)},o.apply(void 0,arguments))}},U0=function(t){return Array.isArray(t)?t.reverse():t.split("").reverse.join("")},gP=function(t){var n=null,r=null;return function(){for(var a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return n&&o.every(function(s,l){return s===n[l]})||(n=o,r=t.apply(void 0,o)),r}};function CX(e){var t;return e===0?t=1:t=Math.floor(new Ce(e).abs().log(10).toNumber())+1,t}function AX(e,t,n){for(var r=new Ce(e),a=0,o=[];r.lt(t)&&a<1e5;)o.push(r.toNumber()),r=r.add(n),a++;return o}var EX=kd(function(e,t,n){var r=+e,a=+t;return r+n*(a-r)}),TX=kd(function(e,t,n){var r=t-+e;return r=r||1/0,(n-e)/r}),jX=kd(function(e,t,n){var r=t-+e;return r=r||1/0,Math.max(0,Math.min(1,(n-e)/r))});const _d={rangeStep:AX,getDigitCount:CX,interpolateNumber:EX,uninterpolateNumber:TX,uninterpolateTruncation:jX};function W0(e){return MX(e)||NX(e)||xP(e)||$X()}function $X(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function NX(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function MX(e){if(Array.isArray(e))return q0(e)}function Jl(e,t){return DX(e)||IX(e,t)||xP(e,t)||RX()}function RX(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xP(e,t){if(e){if(typeof e=="string")return q0(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q0(e,t)}}function q0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function IX(e,t){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,o=void 0;try{for(var i=e[Symbol.iterator](),s;!(r=(s=i.next()).done)&&(n.push(s.value),!(t&&n.length===t));r=!0);}catch(l){a=!0,o=l}finally{try{!r&&i.return!=null&&i.return()}finally{if(a)throw o}}return n}}function DX(e){if(Array.isArray(e))return e}function wP(e){var t=Jl(e,2),n=t[0],r=t[1],a=n,o=r;return n>r&&(a=r,o=n),[a,o]}function bP(e,t,n){if(e.lte(0))return new Ce(0);var r=_d.getDigitCount(e.toNumber()),a=new Ce(10).pow(r),o=e.div(a),i=r!==1?.05:.1,s=new Ce(Math.ceil(o.div(i).toNumber())).add(n).mul(i),l=s.mul(a);return t?l:new Ce(Math.ceil(l))}function LX(e,t,n){var r=1,a=new Ce(e);if(!a.isint()&&n){var o=Math.abs(e);o<1?(r=new Ce(10).pow(_d.getDigitCount(e)-1),a=new Ce(Math.floor(a.div(r).toNumber())).mul(r)):o>1&&(a=new Ce(Math.floor(e)))}else e===0?a=new Ce(Math.floor((t-1)/2)):n||(a=new Ce(Math.floor(e)));var i=Math.floor((t-1)/2),s=_X(kX(function(l){return a.add(new Ce(l-i).mul(r)).toNumber()}),G0);return s(0,t)}function PP(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new Ce(0),tickMin:new Ce(0),tickMax:new Ce(0)};var o=bP(new Ce(t).sub(e).div(n-1),r,a),i;e<=0&&t>=0?i=new Ce(0):(i=new Ce(e).add(t).div(2),i=i.sub(new Ce(i).mod(o)));var s=Math.ceil(i.sub(e).div(o).toNumber()),l=Math.ceil(new Ce(t).sub(i).div(o).toNumber()),u=s+l+1;return u>n?PP(e,t,n,r,a+1):(u<n&&(l=t>0?l+(n-u):l,s=t>0?s:s+(n-u)),{step:o,tickMin:i.sub(new Ce(s).mul(o)),tickMax:i.add(new Ce(l).mul(o))})}function FX(e){var t=Jl(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=Math.max(a,2),s=wP([n,r]),l=Jl(s,2),u=l[0],p=l[1];if(u===-1/0||p===1/0){var c=p===1/0?[u].concat(W0(G0(0,a-1).map(function(){return 1/0}))):[].concat(W0(G0(0,a-1).map(function(){return-1/0})),[p]);return n>r?U0(c):c}if(u===p)return LX(u,a,o);var f=PP(u,p,i,o),d=f.step,h=f.tickMin,m=f.tickMax,g=_d.rangeStep(h,m.add(new Ce(.1).mul(d)),d);return n>r?U0(g):g}function zX(e,t){var n=Jl(e,2),r=n[0],a=n[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=wP([r,a]),s=Jl(i,2),l=s[0],u=s[1];if(l===-1/0||u===1/0)return[r,a];if(l===u)return[l];var p=Math.max(t,2),c=bP(new Ce(u).sub(l).div(p-1),o,0),f=[].concat(W0(_d.rangeStep(new Ce(l),new Ce(u).sub(new Ce(.99).mul(c)),c)),[u]);return r>a?U0(f):f}var BX=gP(FX),HX=gP(zX),GX="Invariant failed";function Co(e,t){throw new Error(GX)}var UX=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function Gi(e){"@babel/helpers - typeof";return Gi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gi(e)}function Kp(){return Kp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Kp.apply(this,arguments)}function WX(e,t){return XX(e)||KX(e,t)||VX(e,t)||qX()}function qX(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function VX(e,t){if(e){if(typeof e=="string")return ib(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ib(e,t)}}function ib(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function KX(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function XX(e){if(Array.isArray(e))return e}function YX(e,t){if(e==null)return{};var n=QX(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function QX(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ZX(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function JX(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,kP(r.key),r)}}function eY(e,t,n){return t&&JX(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function tY(e,t,n){return t=Xp(t),nY(e,SP()?Reflect.construct(t,n||[],Xp(e).constructor):t.apply(e,n))}function nY(e,t){if(t&&(Gi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return rY(e)}function rY(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function SP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(SP=function(){return!!e})()}function Xp(e){return Xp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Xp(e)}function aY(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&V0(e,t)}function V0(e,t){return V0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},V0(e,t)}function OP(e,t,n){return t=kP(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kP(e){var t=oY(e,"string");return Gi(t)=="symbol"?t:t+""}function oY(e,t){if(Gi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Gi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Es=function(e){function t(){return ZX(this,t),tY(this,t,arguments)}return aY(t,e),eY(t,[{key:"render",value:function(){var r=this.props,a=r.offset,o=r.layout,i=r.width,s=r.dataKey,l=r.data,u=r.dataPointFormatter,p=r.xAxis,c=r.yAxis,f=YX(r,UX),d=re(f,!1);this.props.direction==="x"&&p.type!=="number"&&Co();var h=l.map(function(m){var g=u(m,s),v=g.x,y=g.y,x=g.value,P=g.errorVal;if(!P)return null;var w=[],S,O;if(Array.isArray(P)){var _=WX(P,2);S=_[0],O=_[1]}else S=O=P;if(o==="vertical"){var C=p.scale,j=y+a,E=j+i,T=j-i,N=C(x-S),M=C(x+O);w.push({x1:M,y1:E,x2:M,y2:T}),w.push({x1:N,y1:j,x2:M,y2:j}),w.push({x1:N,y1:E,x2:N,y2:T})}else if(o==="horizontal"){var I=c.scale,R=v+a,L=R-i,$=R+i,D=I(x-S),H=I(x+O);w.push({x1:L,y1:H,x2:$,y2:H}),w.push({x1:R,y1:D,x2:R,y2:H}),w.push({x1:L,y1:D,x2:$,y2:D})}return A.createElement(ye,Kp({className:"recharts-errorBar",key:"bar-".concat(w.map(function(W){return"".concat(W.x1,"-").concat(W.x2,"-").concat(W.y1,"-").concat(W.y2)}))},d),w.map(function(W){return A.createElement("line",Kp({},W,{key:"line-".concat(W.x1,"-").concat(W.x2,"-").concat(W.y1,"-").concat(W.y2)}))}))});return A.createElement(ye,{className:"recharts-errorBars"},h)}}])}(A.Component);OP(Es,"defaultProps",{stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"});OP(Es,"displayName","ErrorBar");function eu(e){"@babel/helpers - typeof";return eu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},eu(e)}function sb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Ga(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?sb(Object(n),!0).forEach(function(r){iY(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function iY(e,t,n){return t=sY(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sY(e){var t=lY(e,"string");return eu(t)=="symbol"?t:t+""}function lY(e,t){if(eu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(eu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var _P=function(t){var n=t.children,r=t.formattedGraphicalItems,a=t.legendWidth,o=t.legendContent,i=Qt(n,hi);if(!i)return null;var s=hi.defaultProps,l=s!==void 0?Ga(Ga({},s),i.props):{},u;return i.props&&i.props.payload?u=i.props&&i.props.payload:o==="children"?u=(r||[]).reduce(function(p,c){var f=c.item,d=c.props,h=d.sectors||d.data||[];return p.concat(h.map(function(m){return{type:i.props.iconType||f.props.legendType,value:m.name,color:m.fill,payload:m}}))},[]):u=(r||[]).map(function(p){var c=p.item,f=c.type.defaultProps,d=f!==void 0?Ga(Ga({},f),c.props):{},h=d.dataKey,m=d.name,g=d.legendType,v=d.hide;return{inactive:v,dataKey:h,type:l.iconType||g||"square",color:Gg(c),value:m||h,payload:d}}),Ga(Ga(Ga({},l),hi.getWithHeight(i,a)),{},{payload:u,item:i})};function tu(e){"@babel/helpers - typeof";return tu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tu(e)}function lb(e){return fY(e)||pY(e)||cY(e)||uY()}function uY(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function cY(e,t){if(e){if(typeof e=="string")return K0(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return K0(e,t)}}function pY(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function fY(e){if(Array.isArray(e))return K0(e)}function K0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ub(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Ve(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ub(Object(n),!0).forEach(function(r){yi(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ub(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function yi(e,t,n){return t=dY(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dY(e){var t=mY(e,"string");return tu(t)=="symbol"?t:t+""}function mY(e,t){if(tu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(tu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function st(e,t,n){return te(e)||te(t)?n:it(t)?gn(e,t,n):oe(t)?t(e):n}function ml(e,t,n,r){var a=pX(e,function(s){return st(s,t)});if(n==="number"){var o=a.filter(function(s){return V(s)||parseFloat(s)});return o.length?[Od(o),da(o)]:[1/0,-1/0]}var i=r?a.filter(function(s){return!te(s)}):a;return i.map(function(s){return it(s)||s instanceof Date?s:""})}var hY=function(t){var n,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=-1,s=(n=r==null?void 0:r.length)!==null&&n!==void 0?n:0;if(s<=1)return 0;if(o&&o.axisType==="angleAxis"&&Math.abs(Math.abs(o.range[1]-o.range[0])-360)<=1e-6)for(var l=o.range,u=0;u<s;u++){var p=u>0?a[u-1].coordinate:a[s-1].coordinate,c=a[u].coordinate,f=u>=s-1?a[0].coordinate:a[u+1].coordinate,d=void 0;if(Dn(c-p)!==Dn(f-c)){var h=[];if(Dn(f-c)===Dn(l[1]-l[0])){d=f;var m=c+l[1]-l[0];h[0]=Math.min(m,(m+p)/2),h[1]=Math.max(m,(m+p)/2)}else{d=p;var g=f+l[1]-l[0];h[0]=Math.min(c,(g+c)/2),h[1]=Math.max(c,(g+c)/2)}var v=[Math.min(c,(d+c)/2),Math.max(c,(d+c)/2)];if(t>v[0]&&t<=v[1]||t>=h[0]&&t<=h[1]){i=a[u].index;break}}else{var y=Math.min(p,f),x=Math.max(p,f);if(t>(y+c)/2&&t<=(x+c)/2){i=a[u].index;break}}}else for(var P=0;P<s;P++)if(P===0&&t<=(r[P].coordinate+r[P+1].coordinate)/2||P>0&&P<s-1&&t>(r[P].coordinate+r[P-1].coordinate)/2&&t<=(r[P].coordinate+r[P+1].coordinate)/2||P===s-1&&t>(r[P].coordinate+r[P-1].coordinate)/2){i=r[P].index;break}return i},Gg=function(t){var n,r=t,a=r.type.displayName,o=(n=t.type)!==null&&n!==void 0&&n.defaultProps?Ve(Ve({},t.type.defaultProps),t.props):t.props,i=o.stroke,s=o.fill,l;switch(a){case"Line":l=i;break;case"Area":case"Radar":l=i&&i!=="none"?i:s;break;default:l=s;break}return l},vY=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,o=a===void 0?{}:a;if(!o)return{};for(var i={},s=Object.keys(o),l=0,u=s.length;l<u;l++)for(var p=o[s[l]].stackGroups,c=Object.keys(p),f=0,d=c.length;f<d;f++){var h=p[c[f]],m=h.items,g=h.cateAxisId,v=m.filter(function(O){return jr(O.type).indexOf("Bar")>=0});if(v&&v.length){var y=v[0].type.defaultProps,x=y!==void 0?Ve(Ve({},y),v[0].props):v[0].props,P=x.barSize,w=x[g];i[w]||(i[w]=[]);var S=te(P)?n:P;i[w].push({item:v[0],stackList:v.slice(1),barSize:te(S)?void 0:Oo(S,r,0)})}}return i},yY=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,o=t.sizeList,i=o===void 0?[]:o,s=t.maxBarSize,l=i.length;if(l<1)return null;var u=Oo(n,a,0,!0),p,c=[];if(i[0].barSize===+i[0].barSize){var f=!1,d=a/l,h=i.reduce(function(P,w){return P+w.barSize||0},0);h+=(l-1)*u,h>=a&&(h-=(l-1)*u,u=0),h>=a&&d>0&&(f=!0,d*=.9,h=l*d);var m=(a-h)/2>>0,g={offset:m-u,size:0};p=i.reduce(function(P,w){var S={item:w.item,position:{offset:g.offset+g.size+u,size:f?d:w.barSize}},O=[].concat(lb(P),[S]);return g=O[O.length-1].position,w.stackList&&w.stackList.length&&w.stackList.forEach(function(_){O.push({item:_,position:g})}),O},c)}else{var v=Oo(r,a,0,!0);a-2*v-(l-1)*u<=0&&(u=0);var y=(a-2*v-(l-1)*u)/l;y>1&&(y>>=0);var x=s===+s?Math.min(y,s):y;p=i.reduce(function(P,w,S){var O=[].concat(lb(P),[{item:w.item,position:{offset:v+(y+u)*S+(y-x)/2,size:x}}]);return w.stackList&&w.stackList.length&&w.stackList.forEach(function(_){O.push({item:_,position:O[O.length-1].position})}),O},c)}return p},gY=function(t,n,r,a){var o=r.children,i=r.width,s=r.margin,l=i-(s.left||0)-(s.right||0),u=_P({children:o,legendWidth:l});if(u){var p=a||{},c=p.width,f=p.height,d=u.align,h=u.verticalAlign,m=u.layout;if((m==="vertical"||m==="horizontal"&&h==="middle")&&d!=="center"&&V(t[d]))return Ve(Ve({},t),{},yi({},d,t[d]+(c||0)));if((m==="horizontal"||m==="vertical"&&d==="center")&&h!=="middle"&&V(t[h]))return Ve(Ve({},t),{},yi({},h,t[h]+(f||0)))}return t},xY=function(t,n,r){return te(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},CP=function(t,n,r,a,o){var i=n.props.children,s=qt(i,Es).filter(function(u){return xY(a,o,u.props.direction)});if(s&&s.length){var l=s.map(function(u){return u.props.dataKey});return t.reduce(function(u,p){var c=st(p,r);if(te(c))return u;var f=Array.isArray(c)?[Od(c),da(c)]:[c,c],d=l.reduce(function(h,m){var g=st(p,m,0),v=f[0]-Math.abs(Array.isArray(g)?g[0]:g),y=f[1]+Math.abs(Array.isArray(g)?g[1]:g);return[Math.min(v,h[0]),Math.max(y,h[1])]},[1/0,-1/0]);return[Math.min(d[0],u[0]),Math.max(d[1],u[1])]},[1/0,-1/0])}return null},wY=function(t,n,r,a,o){var i=n.map(function(s){return CP(t,s,r,o,a)}).filter(function(s){return!te(s)});return i&&i.length?i.reduce(function(s,l){return[Math.min(s[0],l[0]),Math.max(s[1],l[1])]},[1/0,-1/0]):null},AP=function(t,n,r,a,o){var i=n.map(function(l){var u=l.props.dataKey;return r==="number"&&u&&CP(t,l,u,a)||ml(t,u,r,o)});if(r==="number")return i.reduce(function(l,u){return[Math.min(l[0],u[0]),Math.max(l[1],u[1])]},[1/0,-1/0]);var s={};return i.reduce(function(l,u){for(var p=0,c=u.length;p<c;p++)s[u[p]]||(s[u[p]]=!0,l.push(u[p]));return l},[])},EP=function(t,n){return t==="horizontal"&&n==="xAxis"||t==="vertical"&&n==="yAxis"||t==="centric"&&n==="angleAxis"||t==="radial"&&n==="radiusAxis"},TP=function(t,n,r,a){if(a)return t.map(function(l){return l.coordinate});var o,i,s=t.map(function(l){return l.coordinate===n&&(o=!0),l.coordinate===r&&(i=!0),l.coordinate});return o||s.push(n),i||s.push(r),s},Er=function(t,n,r){if(!t)return null;var a=t.scale,o=t.duplicateDomain,i=t.type,s=t.range,l=t.realScaleType==="scaleBand"?a.bandwidth()/2:2,u=(n||r)&&i==="category"&&a.bandwidth?a.bandwidth()/l:0;if(u=t.axisType==="angleAxis"&&(s==null?void 0:s.length)>=2?Dn(s[0]-s[1])*2*u:u,n&&(t.ticks||t.niceTicks)){var p=(t.ticks||t.niceTicks).map(function(c){var f=o?o.indexOf(c):c;return{coordinate:a(f)+u,value:c,offset:u}});return p.filter(function(c){return!Ps(c.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(c,f){return{coordinate:a(c)+u,value:c,index:f,offset:u}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(c){return{coordinate:a(c)+u,value:c,offset:u}}):a.domain().map(function(c,f){return{coordinate:a(c)+u,value:o?o[c]:c,index:f,offset:u}})},Xm=new WeakMap,gc=function(t,n){if(typeof n!="function")return t;Xm.has(t)||Xm.set(t,new WeakMap);var r=Xm.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},bY=function(t,n,r){var a=t.scale,o=t.type,i=t.layout,s=t.axisType;if(a==="auto")return i==="radial"&&s==="radiusAxis"?{scale:Vl(),realScaleType:"band"}:i==="radial"&&s==="angleAxis"?{scale:Gp(),realScaleType:"linear"}:o==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:dl(),realScaleType:"point"}:o==="category"?{scale:Vl(),realScaleType:"band"}:{scale:Gp(),realScaleType:"linear"};if(So(a)){var l="scale".concat(cd(a));return{scale:(nb[l]||dl)(),realScaleType:nb[l]?l:"point"}}return oe(a)?{scale:a}:{scale:dl(),realScaleType:"point"}},cb=1e-4,PY=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),o=Math.min(a[0],a[1])-cb,i=Math.max(a[0],a[1])+cb,s=t(n[0]),l=t(n[r-1]);(s<o||s>i||l<o||l>i)&&t.domain([n[0],n[r-1]])}},SY=function(t,n){if(!t)return null;for(var r=0,a=t.length;r<a;r++)if(t[r].item===n)return t[r].position;return null},OY=function(t,n){if(!n||n.length!==2||!V(n[0])||!V(n[1]))return t;var r=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]),o=[t[0],t[1]];return(!V(t[0])||t[0]<r)&&(o[0]=r),(!V(t[1])||t[1]>a)&&(o[1]=a),o[0]>a&&(o[0]=a),o[1]<r&&(o[1]=r),o},kY=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r<a;++r)for(var o=0,i=0,s=0;s<n;++s){var l=Ps(t[s][r][1])?t[s][r][0]:t[s][r][1];l>=0?(t[s][r][0]=o,t[s][r][1]=o+l,o=t[s][r][1]):(t[s][r][0]=i,t[s][r][1]=i+l,i=t[s][r][1])}},_Y=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r<a;++r)for(var o=0,i=0;i<n;++i){var s=Ps(t[i][r][1])?t[i][r][0]:t[i][r][1];s>=0?(t[i][r][0]=o,t[i][r][1]=o+s,o=t[i][r][1]):(t[i][r][0]=0,t[i][r][1]=0)}},CY={sign:kY,expand:BI,none:Ri,silhouette:HI,wiggle:GI,positive:_Y},AY=function(t,n,r){var a=n.map(function(s){return s.props.dataKey}),o=CY[r],i=zI().keys(a).value(function(s,l){return+st(s,l,0)}).order(x0).offset(o);return i(t)},EY=function(t,n,r,a,o,i){if(!t)return null;var s=i?n.reverse():n,l={},u=s.reduce(function(c,f){var d,h=(d=f.type)!==null&&d!==void 0&&d.defaultProps?Ve(Ve({},f.type.defaultProps),f.props):f.props,m=h.stackId,g=h.hide;if(g)return c;var v=h[r],y=c[v]||{hasStack:!1,stackGroups:{}};if(it(m)){var x=y.stackGroups[m]||{numericAxisId:r,cateAxisId:a,items:[]};x.items.push(f),y.hasStack=!0,y.stackGroups[m]=x}else y.stackGroups[$o("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[f]};return Ve(Ve({},c),{},yi({},v,y))},l),p={};return Object.keys(u).reduce(function(c,f){var d=u[f];if(d.hasStack){var h={};d.stackGroups=Object.keys(d.stackGroups).reduce(function(m,g){var v=d.stackGroups[g];return Ve(Ve({},m),{},yi({},g,{numericAxisId:r,cateAxisId:a,items:v.items,stackedData:AY(t,v.items,o)}))},h)}return Ve(Ve({},c),{},yi({},f,d))},p)},TY=function(t,n){var r=n.realScaleType,a=n.type,o=n.tickCount,i=n.originalDomain,s=n.allowDecimals,l=r||n.scale;if(l!=="auto"&&l!=="linear")return null;if(o&&a==="number"&&i&&(i[0]==="auto"||i[1]==="auto")){var u=t.domain();if(!u.length)return null;var p=BX(u,o,s);return t.domain([Od(p),da(p)]),{niceTicks:p}}if(o&&a==="number"){var c=t.domain(),f=HX(c,o,s);return{niceTicks:f}}return null};function Ui(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,o=e.index,i=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!te(a[t.dataKey])){var s=bp(n,"value",a[t.dataKey]);if(s)return s.coordinate+r/2}return n[o]?n[o].coordinate+r/2:null}var l=st(a,te(i)?t.dataKey:i);return te(l)?null:t.scale(l)}var pb=function(t){var n=t.axis,r=t.ticks,a=t.offset,o=t.bandSize,i=t.entry,s=t.index;if(n.type==="category")return r[s]?r[s].coordinate+a:null;var l=st(i,n.dataKey,n.domain[s]);return te(l)?null:n.scale(l)-o/2+a},jY=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);return a<=0&&o>=0?0:o<0?o:a}return r[0]},$Y=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?Ve(Ve({},t.type.defaultProps),t.props):t.props,o=a.stackId;if(it(o)){var i=n[o];if(i){var s=i.items.indexOf(t);return s>=0?i.stackedData[s]:null}}return null},NY=function(t){return t.reduce(function(n,r){return[Od(r.concat([n[0]]).filter(V)),da(r.concat([n[1]]).filter(V))]},[1/0,-1/0])},jP=function(t,n,r){return Object.keys(t).reduce(function(a,o){var i=t[o],s=i.stackedData,l=s.reduce(function(u,p){var c=NY(p.slice(n,r+1));return[Math.min(u[0],c[0]),Math.max(u[1],c[1])]},[1/0,-1/0]);return[Math.min(l[0],a[0]),Math.max(l[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},fb=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,db=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,X0=function(t,n,r){if(oe(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(V(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(fb.test(t[0])){var o=+fb.exec(t[0])[1];a[0]=n[0]-o}else oe(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(V(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(db.test(t[1])){var i=+db.exec(t[1])[1];a[1]=n[1]+i}else oe(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},Yp=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var o=vg(n,function(c){return c.coordinate}),i=1/0,s=1,l=o.length;s<l;s++){var u=o[s],p=o[s-1];i=Math.min((u.coordinate||0)-(p.coordinate||0),i)}return i===1/0?0:i}return r?void 0:0},mb=function(t,n,r){return!t||!t.length||ko(t,gn(r,"type.defaultProps.domain"))?n:t},$P=function(t,n){var r=t.type.defaultProps?Ve(Ve({},t.type.defaultProps),t.props):t.props,a=r.dataKey,o=r.name,i=r.unit,s=r.formatter,l=r.tooltipType,u=r.chartType,p=r.hide;return Ve(Ve({},re(t,!1)),{},{dataKey:a,unit:i,formatter:s,name:o||a,color:Gg(t),value:st(n,a),type:l,payload:n,chartType:u,hide:p})};function nu(e){"@babel/helpers - typeof";return nu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nu(e)}function hb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function vb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?hb(Object(n),!0).forEach(function(r){MY(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function MY(e,t,n){return t=RY(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function RY(e){var t=IY(e,"string");return nu(t)=="symbol"?t:t+""}function IY(e,t){if(nu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(nu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Qp=Math.PI/180,DY=function(t){return t*180/Math.PI},vt=function(t,n,r,a){return{x:t+Math.cos(-Qp*a)*r,y:n+Math.sin(-Qp*a)*r}},LY=function(t,n){var r=t.x,a=t.y,o=n.x,i=n.y;return Math.sqrt(Math.pow(r-o,2)+Math.pow(a-i,2))},FY=function(t,n){var r=t.x,a=t.y,o=n.cx,i=n.cy,s=LY({x:r,y:a},{x:o,y:i});if(s<=0)return{radius:s};var l=(r-o)/s,u=Math.acos(l);return a>i&&(u=2*Math.PI-u),{radius:s,angle:DY(u),angleInRadian:u}},zY=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),o=Math.floor(r/360),i=Math.min(a,o);return{startAngle:n-i*360,endAngle:r-i*360}},BY=function(t,n){var r=n.startAngle,a=n.endAngle,o=Math.floor(r/360),i=Math.floor(a/360),s=Math.min(o,i);return t+s*360},yb=function(t,n){var r=t.x,a=t.y,o=FY({x:r,y:a},n),i=o.radius,s=o.angle,l=n.innerRadius,u=n.outerRadius;if(i<l||i>u)return!1;if(i===0)return!0;var p=zY(n),c=p.startAngle,f=p.endAngle,d=s,h;if(c<=f){for(;d>f;)d-=360;for(;d<c;)d+=360;h=d>=c&&d<=f}else{for(;d>c;)d-=360;for(;d<f;)d+=360;h=d>=f&&d<=c}return h?vb(vb({},n),{},{radius:i,angle:BY(d,n)}):null};function ru(e){"@babel/helpers - typeof";return ru=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ru(e)}var HY=["offset"];function GY(e){return VY(e)||qY(e)||WY(e)||UY()}function UY(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function WY(e,t){if(e){if(typeof e=="string")return Y0(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Y0(e,t)}}function qY(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function VY(e){if(Array.isArray(e))return Y0(e)}function Y0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function KY(e,t){if(e==null)return{};var n=XY(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function XY(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function gb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function rt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?gb(Object(n),!0).forEach(function(r){YY(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function YY(e,t,n){return t=QY(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function QY(e){var t=ZY(e,"string");return ru(t)=="symbol"?t:t+""}function ZY(e,t){if(ru(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ru(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function au(){return au=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},au.apply(this,arguments)}var JY=function(t){var n=t.value,r=t.formatter,a=te(t.children)?n:t.children;return oe(r)?r(a):a},eQ=function(t,n){var r=Dn(n-t),a=Math.min(Math.abs(n-t),360);return r*a},tQ=function(t,n,r){var a=t.position,o=t.viewBox,i=t.offset,s=t.className,l=o,u=l.cx,p=l.cy,c=l.innerRadius,f=l.outerRadius,d=l.startAngle,h=l.endAngle,m=l.clockWise,g=(c+f)/2,v=eQ(d,h),y=v>=0?1:-1,x,P;a==="insideStart"?(x=d+y*i,P=m):a==="insideEnd"?(x=h-y*i,P=!m):a==="end"&&(x=h+y*i,P=m),P=v<=0?P:!P;var w=vt(u,p,g,x),S=vt(u,p,g,x+(P?1:-1)*359),O="M".concat(w.x,",").concat(w.y,`
     A`).concat(g,",").concat(g,",0,1,").concat(P?0:1,`,
-    `).concat(S.x,",").concat(S.y),_=te(t.id)?$o("recharts-radial-line-"):t.id;return C.createElement("text",au({},r,{dominantBaseline:"central",className:ue("recharts-radial-bar-label",s)}),C.createElement("defs",null,C.createElement("path",{id:_,d:O})),C.createElement("textPath",{xlinkHref:"#".concat(_)},n))},HY=function(t){var n=t.viewBox,r=t.offset,a=t.position,o=n,i=o.cx,s=o.cy,l=o.innerRadius,u=o.outerRadius,f=o.startAngle,c=o.endAngle,p=(f+c)/2;if(a==="outside"){var d=vt(i,s,u+r,p),h=d.x,m=d.y;return{x:h,y:m,textAnchor:h>=i?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:i,y:s,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:i,y:s,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:i,y:s,textAnchor:"middle",verticalAnchor:"end"};var g=(l+u)/2,v=vt(i,s,g,p),y=v.x,x=v.y;return{x:y,y:x,textAnchor:"middle",verticalAnchor:"middle"}},GY=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,o=t.position,i=n,s=i.x,l=i.y,u=i.width,f=i.height,c=f>=0?1:-1,p=c*a,d=c>0?"end":"start",h=c>0?"start":"end",m=u>=0?1:-1,g=m*a,v=m>0?"end":"start",y=m>0?"start":"end";if(o==="top"){var x={x:s+u/2,y:l-c*a,textAnchor:"middle",verticalAnchor:d};return rt(rt({},x),r?{height:Math.max(l-r.y,0),width:u}:{})}if(o==="bottom"){var P={x:s+u/2,y:l+f+p,textAnchor:"middle",verticalAnchor:h};return rt(rt({},P),r?{height:Math.max(r.y+r.height-(l+f),0),width:u}:{})}if(o==="left"){var w={x:s-g,y:l+f/2,textAnchor:v,verticalAnchor:"middle"};return rt(rt({},w),r?{width:Math.max(w.x-r.x,0),height:f}:{})}if(o==="right"){var S={x:s+u+g,y:l+f/2,textAnchor:y,verticalAnchor:"middle"};return rt(rt({},S),r?{width:Math.max(r.x+r.width-S.x,0),height:f}:{})}var O=r?{width:u,height:f}:{};return o==="insideLeft"?rt({x:s+g,y:l+f/2,textAnchor:y,verticalAnchor:"middle"},O):o==="insideRight"?rt({x:s+u-g,y:l+f/2,textAnchor:v,verticalAnchor:"middle"},O):o==="insideTop"?rt({x:s+u/2,y:l+p,textAnchor:"middle",verticalAnchor:h},O):o==="insideBottom"?rt({x:s+u/2,y:l+f-p,textAnchor:"middle",verticalAnchor:d},O):o==="insideTopLeft"?rt({x:s+g,y:l+p,textAnchor:y,verticalAnchor:h},O):o==="insideTopRight"?rt({x:s+u-g,y:l+p,textAnchor:v,verticalAnchor:h},O):o==="insideBottomLeft"?rt({x:s+g,y:l+f-p,textAnchor:y,verticalAnchor:d},O):o==="insideBottomRight"?rt({x:s+u-g,y:l+f-p,textAnchor:v,verticalAnchor:d},O):gs(o)&&(V(o.x)||Za(o.x))&&(V(o.y)||Za(o.y))?rt({x:s+Oo(o.x,u),y:l+Oo(o.y,f),textAnchor:"end",verticalAnchor:"end"},O):rt({x:s+u/2,y:l+f/2,textAnchor:"middle",verticalAnchor:"middle"},O)},UY=function(t){return"cx"in t&&V(t.cx)};function At(e){var t=e.offset,n=t===void 0?5:t,r=MY(e,CY),a=rt({offset:n},r),o=a.viewBox,i=a.position,s=a.value,l=a.children,u=a.content,f=a.className,c=f===void 0?"":f,p=a.textBreakAll;if(!o||te(s)&&te(l)&&!k.isValidElement(u)&&!oe(u))return null;if(k.isValidElement(u))return k.cloneElement(u,a);var d;if(oe(u)){if(d=k.createElement(u,a),k.isValidElement(d))return d}else d=FY(a);var h=UY(o),m=re(a,!0);if(h&&(i==="insideStart"||i==="insideEnd"||i==="end"))return BY(a,d,m);var g=h?HY(a):GY(a);return C.createElement(Df,au({className:ue("recharts-label",c)},m,g,{breakAll:p}),d)}At.displayName="Label";var TP=function(t){var n=t.cx,r=t.cy,a=t.angle,o=t.startAngle,i=t.endAngle,s=t.r,l=t.radius,u=t.innerRadius,f=t.outerRadius,c=t.x,p=t.y,d=t.top,h=t.left,m=t.width,g=t.height,v=t.clockWise,y=t.labelViewBox;if(y)return y;if(V(m)&&V(g)){if(V(c)&&V(p))return{x:c,y:p,width:m,height:g};if(V(d)&&V(h))return{x:d,y:h,width:m,height:g}}return V(c)&&V(p)?{x:c,y:p,width:0,height:0}:V(n)&&V(r)?{cx:n,cy:r,startAngle:o||a||0,endAngle:i||a||0,innerRadius:u||0,outerRadius:f||l||s||0,clockWise:v}:t.viewBox?t.viewBox:{}},WY=function(t,n){return t?t===!0?C.createElement(At,{key:"label-implicit",viewBox:n}):it(t)?C.createElement(At,{key:"label-implicit",viewBox:n,value:t}):k.isValidElement(t)?t.type===At?k.cloneElement(t,{key:"label-implicit",viewBox:n}):C.createElement(At,{key:"label-implicit",content:t,viewBox:n}):oe(t)?C.createElement(At,{key:"label-implicit",content:t,viewBox:n}):gs(t)?C.createElement(At,au({viewBox:n},t,{key:"label-implicit"})):null:null},qY=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,o=TP(t),i=qt(a,At).map(function(l,u){return k.cloneElement(l,{viewBox:n||o,key:"label-".concat(u)})});if(!r)return i;var s=WY(t.label,n||o);return[s].concat(EY(i))};At.parseViewBox=TP;At.renderCallByParent=qY;function VY(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var KY=VY;const XY=Ce(KY);function ou(e){"@babel/helpers - typeof";return ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ou(e)}var YY=["valueAccessor"],QY=["data","dataKey","clockWise","id","textBreakAll"];function ZY(e){return nQ(e)||tQ(e)||eQ(e)||JY()}function JY(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function eQ(e,t){if(e){if(typeof e=="string")return Qv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Qv(e,t)}}function tQ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function nQ(e){if(Array.isArray(e))return Qv(e)}function Qv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Jf(){return Jf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Jf.apply(this,arguments)}function yb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function gb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?yb(Object(n),!0).forEach(function(r){rQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function rQ(e,t,n){return t=aQ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function aQ(e){var t=oQ(e,"string");return ou(t)=="symbol"?t:t+""}function oQ(e,t){if(ou(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ou(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function xb(e,t){if(e==null)return{};var n=iQ(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function iQ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var sQ=function(t){return Array.isArray(t.value)?XY(t.value):t.value};function dr(e){var t=e.valueAccessor,n=t===void 0?sQ:t,r=xb(e,YY),a=r.data,o=r.dataKey,i=r.clockWise,s=r.id,l=r.textBreakAll,u=xb(r,QY);return!a||!a.length?null:C.createElement(ye,{className:"recharts-label-list"},a.map(function(f,c){var p=te(o)?n(f,c):st(f&&f.payload,o),d=te(s)?{}:{id:"".concat(s,"-").concat(c)};return C.createElement(At,Jf({},re(f,!0),u,d,{parentViewBox:f.parentViewBox,value:p,textBreakAll:l,viewBox:At.parseViewBox(te(i)?f:gb(gb({},f),{},{clockWise:i})),key:"label-".concat(c),index:c}))}))}dr.displayName="LabelList";function lQ(e,t){return e?e===!0?C.createElement(dr,{key:"labelList-implicit",data:t}):C.isValidElement(e)||oe(e)?C.createElement(dr,{key:"labelList-implicit",data:t,content:e}):gs(e)?C.createElement(dr,Jf({data:t},e,{key:"labelList-implicit"})):null:null}function uQ(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=qt(r,dr).map(function(i,s){return k.cloneElement(i,{data:t,key:"labelList-".concat(s)})});if(!n)return a;var o=lQ(e.label,t);return[o].concat(ZY(a))}dr.renderCallByParent=uQ;function iu(e){"@babel/helpers - typeof";return iu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},iu(e)}function Zv(){return Zv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Zv.apply(this,arguments)}function wb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function bb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?wb(Object(n),!0).forEach(function(r){cQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function cQ(e,t,n){return t=fQ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fQ(e){var t=pQ(e,"string");return iu(t)=="symbol"?t:t+""}function pQ(e,t){if(iu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(iu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var dQ=function(t,n){var r=Dn(n-t),a=Math.min(Math.abs(n-t),359.999);return r*a},xc=function(t){var n=t.cx,r=t.cy,a=t.radius,o=t.angle,i=t.sign,s=t.isExternal,l=t.cornerRadius,u=t.cornerIsExternal,f=l*(s?1:-1)+a,c=Math.asin(l/f)/Zf,p=u?o:o+i*c,d=vt(n,r,f,p),h=vt(n,r,a,p),m=u?o-i*c:o,g=vt(n,r,f*Math.cos(c*Zf),m);return{center:d,circleTangency:h,lineTangency:g,theta:c}},jP=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,o=t.outerRadius,i=t.startAngle,s=t.endAngle,l=dQ(i,s),u=i+l,f=vt(n,r,o,i),c=vt(n,r,o,u),p="M ".concat(f.x,",").concat(f.y,`
+    `).concat(S.x,",").concat(S.y),_=te(t.id)?$o("recharts-radial-line-"):t.id;return A.createElement("text",au({},r,{dominantBaseline:"central",className:ue("recharts-radial-bar-label",s)}),A.createElement("defs",null,A.createElement("path",{id:_,d:O})),A.createElement("textPath",{xlinkHref:"#".concat(_)},n))},nQ=function(t){var n=t.viewBox,r=t.offset,a=t.position,o=n,i=o.cx,s=o.cy,l=o.innerRadius,u=o.outerRadius,p=o.startAngle,c=o.endAngle,f=(p+c)/2;if(a==="outside"){var d=vt(i,s,u+r,f),h=d.x,m=d.y;return{x:h,y:m,textAnchor:h>=i?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:i,y:s,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:i,y:s,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:i,y:s,textAnchor:"middle",verticalAnchor:"end"};var g=(l+u)/2,v=vt(i,s,g,f),y=v.x,x=v.y;return{x:y,y:x,textAnchor:"middle",verticalAnchor:"middle"}},rQ=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,o=t.position,i=n,s=i.x,l=i.y,u=i.width,p=i.height,c=p>=0?1:-1,f=c*a,d=c>0?"end":"start",h=c>0?"start":"end",m=u>=0?1:-1,g=m*a,v=m>0?"end":"start",y=m>0?"start":"end";if(o==="top"){var x={x:s+u/2,y:l-c*a,textAnchor:"middle",verticalAnchor:d};return rt(rt({},x),r?{height:Math.max(l-r.y,0),width:u}:{})}if(o==="bottom"){var P={x:s+u/2,y:l+p+f,textAnchor:"middle",verticalAnchor:h};return rt(rt({},P),r?{height:Math.max(r.y+r.height-(l+p),0),width:u}:{})}if(o==="left"){var w={x:s-g,y:l+p/2,textAnchor:v,verticalAnchor:"middle"};return rt(rt({},w),r?{width:Math.max(w.x-r.x,0),height:p}:{})}if(o==="right"){var S={x:s+u+g,y:l+p/2,textAnchor:y,verticalAnchor:"middle"};return rt(rt({},S),r?{width:Math.max(r.x+r.width-S.x,0),height:p}:{})}var O=r?{width:u,height:p}:{};return o==="insideLeft"?rt({x:s+g,y:l+p/2,textAnchor:y,verticalAnchor:"middle"},O):o==="insideRight"?rt({x:s+u-g,y:l+p/2,textAnchor:v,verticalAnchor:"middle"},O):o==="insideTop"?rt({x:s+u/2,y:l+f,textAnchor:"middle",verticalAnchor:h},O):o==="insideBottom"?rt({x:s+u/2,y:l+p-f,textAnchor:"middle",verticalAnchor:d},O):o==="insideTopLeft"?rt({x:s+g,y:l+f,textAnchor:y,verticalAnchor:h},O):o==="insideTopRight"?rt({x:s+u-g,y:l+f,textAnchor:v,verticalAnchor:h},O):o==="insideBottomLeft"?rt({x:s+g,y:l+p-f,textAnchor:y,verticalAnchor:d},O):o==="insideBottomRight"?rt({x:s+u-g,y:l+p-f,textAnchor:v,verticalAnchor:d},O):gs(o)&&(V(o.x)||Za(o.x))&&(V(o.y)||Za(o.y))?rt({x:s+Oo(o.x,u),y:l+Oo(o.y,p),textAnchor:"end",verticalAnchor:"end"},O):rt({x:s+u/2,y:l+p/2,textAnchor:"middle",verticalAnchor:"middle"},O)},aQ=function(t){return"cx"in t&&V(t.cx)};function Ct(e){var t=e.offset,n=t===void 0?5:t,r=KY(e,HY),a=rt({offset:n},r),o=a.viewBox,i=a.position,s=a.value,l=a.children,u=a.content,p=a.className,c=p===void 0?"":p,f=a.textBreakAll;if(!o||te(s)&&te(l)&&!k.isValidElement(u)&&!oe(u))return null;if(k.isValidElement(u))return k.cloneElement(u,a);var d;if(oe(u)){if(d=k.createElement(u,a),k.isValidElement(d))return d}else d=JY(a);var h=aQ(o),m=re(a,!0);if(h&&(i==="insideStart"||i==="insideEnd"||i==="end"))return tQ(a,d,m);var g=h?nQ(a):rQ(a);return A.createElement(Ip,au({className:ue("recharts-label",c)},m,g,{breakAll:f}),d)}Ct.displayName="Label";var NP=function(t){var n=t.cx,r=t.cy,a=t.angle,o=t.startAngle,i=t.endAngle,s=t.r,l=t.radius,u=t.innerRadius,p=t.outerRadius,c=t.x,f=t.y,d=t.top,h=t.left,m=t.width,g=t.height,v=t.clockWise,y=t.labelViewBox;if(y)return y;if(V(m)&&V(g)){if(V(c)&&V(f))return{x:c,y:f,width:m,height:g};if(V(d)&&V(h))return{x:d,y:h,width:m,height:g}}return V(c)&&V(f)?{x:c,y:f,width:0,height:0}:V(n)&&V(r)?{cx:n,cy:r,startAngle:o||a||0,endAngle:i||a||0,innerRadius:u||0,outerRadius:p||l||s||0,clockWise:v}:t.viewBox?t.viewBox:{}},oQ=function(t,n){return t?t===!0?A.createElement(Ct,{key:"label-implicit",viewBox:n}):it(t)?A.createElement(Ct,{key:"label-implicit",viewBox:n,value:t}):k.isValidElement(t)?t.type===Ct?k.cloneElement(t,{key:"label-implicit",viewBox:n}):A.createElement(Ct,{key:"label-implicit",content:t,viewBox:n}):oe(t)?A.createElement(Ct,{key:"label-implicit",content:t,viewBox:n}):gs(t)?A.createElement(Ct,au({viewBox:n},t,{key:"label-implicit"})):null:null},iQ=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,o=NP(t),i=qt(a,Ct).map(function(l,u){return k.cloneElement(l,{viewBox:n||o,key:"label-".concat(u)})});if(!r)return i;var s=oQ(t.label,n||o);return[s].concat(GY(i))};Ct.parseViewBox=NP;Ct.renderCallByParent=iQ;function sQ(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var lQ=sQ;const uQ=Ae(lQ);function ou(e){"@babel/helpers - typeof";return ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ou(e)}var cQ=["valueAccessor"],pQ=["data","dataKey","clockWise","id","textBreakAll"];function fQ(e){return vQ(e)||hQ(e)||mQ(e)||dQ()}function dQ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mQ(e,t){if(e){if(typeof e=="string")return Q0(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Q0(e,t)}}function hQ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function vQ(e){if(Array.isArray(e))return Q0(e)}function Q0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Zp(){return Zp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Zp.apply(this,arguments)}function xb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function wb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?xb(Object(n),!0).forEach(function(r){yQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function yQ(e,t,n){return t=gQ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gQ(e){var t=xQ(e,"string");return ou(t)=="symbol"?t:t+""}function xQ(e,t){if(ou(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ou(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function bb(e,t){if(e==null)return{};var n=wQ(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function wQ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var bQ=function(t){return Array.isArray(t.value)?uQ(t.value):t.value};function dr(e){var t=e.valueAccessor,n=t===void 0?bQ:t,r=bb(e,cQ),a=r.data,o=r.dataKey,i=r.clockWise,s=r.id,l=r.textBreakAll,u=bb(r,pQ);return!a||!a.length?null:A.createElement(ye,{className:"recharts-label-list"},a.map(function(p,c){var f=te(o)?n(p,c):st(p&&p.payload,o),d=te(s)?{}:{id:"".concat(s,"-").concat(c)};return A.createElement(Ct,Zp({},re(p,!0),u,d,{parentViewBox:p.parentViewBox,value:f,textBreakAll:l,viewBox:Ct.parseViewBox(te(i)?p:wb(wb({},p),{},{clockWise:i})),key:"label-".concat(c),index:c}))}))}dr.displayName="LabelList";function PQ(e,t){return e?e===!0?A.createElement(dr,{key:"labelList-implicit",data:t}):A.isValidElement(e)||oe(e)?A.createElement(dr,{key:"labelList-implicit",data:t,content:e}):gs(e)?A.createElement(dr,Zp({data:t},e,{key:"labelList-implicit"})):null:null}function SQ(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=qt(r,dr).map(function(i,s){return k.cloneElement(i,{data:t,key:"labelList-".concat(s)})});if(!n)return a;var o=PQ(e.label,t);return[o].concat(fQ(a))}dr.renderCallByParent=SQ;function iu(e){"@babel/helpers - typeof";return iu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},iu(e)}function Z0(){return Z0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Z0.apply(this,arguments)}function Pb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Sb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Pb(Object(n),!0).forEach(function(r){OQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function OQ(e,t,n){return t=kQ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kQ(e){var t=_Q(e,"string");return iu(t)=="symbol"?t:t+""}function _Q(e,t){if(iu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(iu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var CQ=function(t,n){var r=Dn(n-t),a=Math.min(Math.abs(n-t),359.999);return r*a},xc=function(t){var n=t.cx,r=t.cy,a=t.radius,o=t.angle,i=t.sign,s=t.isExternal,l=t.cornerRadius,u=t.cornerIsExternal,p=l*(s?1:-1)+a,c=Math.asin(l/p)/Qp,f=u?o:o+i*c,d=vt(n,r,p,f),h=vt(n,r,a,f),m=u?o-i*c:o,g=vt(n,r,p*Math.cos(c*Qp),m);return{center:d,circleTangency:h,lineTangency:g,theta:c}},MP=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,o=t.outerRadius,i=t.startAngle,s=t.endAngle,l=CQ(i,s),u=i+l,p=vt(n,r,o,i),c=vt(n,r,o,u),f="M ".concat(p.x,",").concat(p.y,`
     A `).concat(o,",").concat(o,`,0,
     `).concat(+(Math.abs(l)>180),",").concat(+(i>u),`,
     `).concat(c.x,",").concat(c.y,`
-  `);if(a>0){var d=vt(n,r,a,i),h=vt(n,r,a,u);p+="L ".concat(h.x,",").concat(h.y,`
+  `);if(a>0){var d=vt(n,r,a,i),h=vt(n,r,a,u);f+="L ".concat(h.x,",").concat(h.y,`
             A `).concat(a,",").concat(a,`,0,
             `).concat(+(Math.abs(l)>180),",").concat(+(i<=u),`,
-            `).concat(d.x,",").concat(d.y," Z")}else p+="L ".concat(n,",").concat(r," Z");return p},mQ=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,o=t.outerRadius,i=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,f=t.endAngle,c=Dn(f-u),p=xc({cx:n,cy:r,radius:o,angle:u,sign:c,cornerRadius:i,cornerIsExternal:l}),d=p.circleTangency,h=p.lineTangency,m=p.theta,g=xc({cx:n,cy:r,radius:o,angle:f,sign:-c,cornerRadius:i,cornerIsExternal:l}),v=g.circleTangency,y=g.lineTangency,x=g.theta,P=l?Math.abs(u-f):Math.abs(u-f)-m-x;if(P<0)return s?"M ".concat(h.x,",").concat(h.y,`
+            `).concat(d.x,",").concat(d.y," Z")}else f+="L ".concat(n,",").concat(r," Z");return f},AQ=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,o=t.outerRadius,i=t.cornerRadius,s=t.forceCornerRadius,l=t.cornerIsExternal,u=t.startAngle,p=t.endAngle,c=Dn(p-u),f=xc({cx:n,cy:r,radius:o,angle:u,sign:c,cornerRadius:i,cornerIsExternal:l}),d=f.circleTangency,h=f.lineTangency,m=f.theta,g=xc({cx:n,cy:r,radius:o,angle:p,sign:-c,cornerRadius:i,cornerIsExternal:l}),v=g.circleTangency,y=g.lineTangency,x=g.theta,P=l?Math.abs(u-p):Math.abs(u-p)-m-x;if(P<0)return s?"M ".concat(h.x,",").concat(h.y,`
         a`).concat(i,",").concat(i,",0,0,1,").concat(i*2,`,0
         a`).concat(i,",").concat(i,",0,0,1,").concat(-i*2,`,0
-      `):jP({cx:n,cy:r,innerRadius:a,outerRadius:o,startAngle:u,endAngle:f});var w="M ".concat(h.x,",").concat(h.y,`
+      `):MP({cx:n,cy:r,innerRadius:a,outerRadius:o,startAngle:u,endAngle:p});var w="M ".concat(h.x,",").concat(h.y,`
     A`).concat(i,",").concat(i,",0,0,").concat(+(c<0),",").concat(d.x,",").concat(d.y,`
     A`).concat(o,",").concat(o,",0,").concat(+(P>180),",").concat(+(c<0),",").concat(v.x,",").concat(v.y,`
     A`).concat(i,",").concat(i,",0,0,").concat(+(c<0),",").concat(y.x,",").concat(y.y,`
-  `);if(a>0){var S=xc({cx:n,cy:r,radius:a,angle:u,sign:c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),O=S.circleTangency,_=S.lineTangency,A=S.theta,j=xc({cx:n,cy:r,radius:a,angle:f,sign:-c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),E=j.circleTangency,T=j.lineTangency,N=j.theta,M=l?Math.abs(u-f):Math.abs(u-f)-A-N;if(M<0&&i===0)return"".concat(w,"L").concat(n,",").concat(r,"Z");w+="L".concat(T.x,",").concat(T.y,`
+  `);if(a>0){var S=xc({cx:n,cy:r,radius:a,angle:u,sign:c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),O=S.circleTangency,_=S.lineTangency,C=S.theta,j=xc({cx:n,cy:r,radius:a,angle:p,sign:-c,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),E=j.circleTangency,T=j.lineTangency,N=j.theta,M=l?Math.abs(u-p):Math.abs(u-p)-C-N;if(M<0&&i===0)return"".concat(w,"L").concat(n,",").concat(r,"Z");w+="L".concat(T.x,",").concat(T.y,`
       A`).concat(i,",").concat(i,",0,0,").concat(+(c<0),",").concat(E.x,",").concat(E.y,`
       A`).concat(a,",").concat(a,",0,").concat(+(M>180),",").concat(+(c>0),",").concat(O.x,",").concat(O.y,`
-      A`).concat(i,",").concat(i,",0,0,").concat(+(c<0),",").concat(_.x,",").concat(_.y,"Z")}else w+="L".concat(n,",").concat(r,"Z");return w},hQ={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},$P=function(t){var n=bb(bb({},hQ),t),r=n.cx,a=n.cy,o=n.innerRadius,i=n.outerRadius,s=n.cornerRadius,l=n.forceCornerRadius,u=n.cornerIsExternal,f=n.startAngle,c=n.endAngle,p=n.className;if(i<o||f===c)return null;var d=ue("recharts-sector",p),h=i-o,m=Oo(s,h,0,!0),g;return m>0&&Math.abs(f-c)<360?g=mQ({cx:r,cy:a,innerRadius:o,outerRadius:i,cornerRadius:Math.min(m,h/2),forceCornerRadius:l,cornerIsExternal:u,startAngle:f,endAngle:c}):g=jP({cx:r,cy:a,innerRadius:o,outerRadius:i,startAngle:f,endAngle:c}),C.createElement("path",Zv({},re(n,!0),{className:d,d:g,role:"img"}))};function su(e){"@babel/helpers - typeof";return su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},su(e)}function Jv(){return Jv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Jv.apply(this,arguments)}function Pb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Sb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Pb(Object(n),!0).forEach(function(r){vQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function vQ(e,t,n){return t=yQ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yQ(e){var t=gQ(e,"string");return su(t)=="symbol"?t:t+""}function gQ(e,t){if(su(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(su(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Ob={curveBasisClosed:hI,curveBasisOpen:vI,curveBasis:mI,curveBumpX:eI,curveBumpY:tI,curveLinearClosed:yI,curveLinear:pd,curveMonotoneX:gI,curveMonotoneY:xI,curveNatural:wI,curveStep:bI,curveStepAfter:SI,curveStepBefore:PI},wc=function(t){return t.x===+t.x&&t.y===+t.y},Vs=function(t){return t.x},Ks=function(t){return t.y},xQ=function(t,n){if(oe(t))return t;var r="curve".concat(cd(t));return(r==="curveMonotone"||r==="curveBump")&&n?Ob["".concat(r).concat(n==="vertical"?"Y":"X")]:Ob[r]||pd},wQ=function(t){var n=t.type,r=n===void 0?"linear":n,a=t.points,o=a===void 0?[]:a,i=t.baseLine,s=t.layout,l=t.connectNulls,u=l===void 0?!1:l,f=xQ(r,s),c=u?o.filter(function(m){return wc(m)}):o,p;if(Array.isArray(i)){var d=u?i.filter(function(m){return wc(m)}):i,h=c.map(function(m,g){return Sb(Sb({},m),{},{base:d[g]})});return s==="vertical"?p=cc().y(Ks).x1(Vs).x0(function(m){return m.base.x}):p=cc().x(Vs).y1(Ks).y0(function(m){return m.base.y}),p.defined(wc).curve(f),p(h)}return s==="vertical"&&V(i)?p=cc().y(Ks).x1(Vs).x0(i):V(i)?p=cc().x(Vs).y1(Ks).y0(i):p=N8().x(Vs).y(Ks),p.defined(wc).curve(f),p(c)},mo=function(t){var n=t.className,r=t.points,a=t.path,o=t.pathRef;if((!r||!r.length)&&!a)return null;var i=r&&r.length?wQ(t):a;return k.createElement("path",Jv({},re(t,!1),Sf(t),{className:ue("recharts-curve",n),d:i,ref:o}))},NP={exports:{}},bQ="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",PQ=bQ,SQ=PQ;function MP(){}function RP(){}RP.resetWarningCache=MP;var OQ=function(){function e(r,a,o,i,s,l){if(l!==SQ){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:RP,resetWarningCache:MP};return n.PropTypes=n,n};NP.exports=OQ();var kQ=NP.exports;const ge=Ce(kQ);var _Q=Object.getOwnPropertyNames,AQ=Object.getOwnPropertySymbols,CQ=Object.prototype.hasOwnProperty;function kb(e,t){return function(r,a,o){return e(r,a,o)&&t(r,a,o)}}function bc(e){return function(n,r,a){if(!n||!r||typeof n!="object"||typeof r!="object")return e(n,r,a);var o=a.cache,i=o.get(n),s=o.get(r);if(i&&s)return i===r&&s===n;o.set(n,r),o.set(r,n);var l=e(n,r,a);return o.delete(n),o.delete(r),l}}function _b(e){return _Q(e).concat(AQ(e))}var EQ=Object.hasOwn||function(e,t){return CQ.call(e,t)};function Ro(e,t){return e===t||!e&&!t&&e!==e&&t!==t}var TQ="__v",jQ="__o",$Q="_owner",Ab=Object.getOwnPropertyDescriptor,Cb=Object.keys;function NQ(e,t,n){var r=e.length;if(t.length!==r)return!1;for(;r-- >0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function MQ(e,t){return Ro(e.getTime(),t.getTime())}function RQ(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function IQ(e,t){return e===t}function Eb(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),o=e.entries(),i,s,l=0;(i=o.next())&&!i.done;){for(var u=t.entries(),f=!1,c=0;(s=u.next())&&!s.done;){if(a[c]){c++;continue}var p=i.value,d=s.value;if(n.equals(p[0],d[0],l,c,e,t,n)&&n.equals(p[1],d[1],p[0],d[0],e,t,n)){f=a[c]=!0;break}c++}if(!f)return!1;l++}return!0}var DQ=Ro;function LQ(e,t,n){var r=Cb(e),a=r.length;if(Cb(t).length!==a)return!1;for(;a-- >0;)if(!IP(e,t,n,r[a]))return!1;return!0}function Xs(e,t,n){var r=_b(e),a=r.length;if(_b(t).length!==a)return!1;for(var o,i,s;a-- >0;)if(o=r[a],!IP(e,t,n,o)||(i=Ab(e,o),s=Ab(t,o),(i||s)&&(!i||!s||i.configurable!==s.configurable||i.enumerable!==s.enumerable||i.writable!==s.writable)))return!1;return!0}function FQ(e,t){return Ro(e.valueOf(),t.valueOf())}function zQ(e,t){return e.source===t.source&&e.flags===t.flags}function Tb(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),o=e.values(),i,s;(i=o.next())&&!i.done;){for(var l=t.values(),u=!1,f=0;(s=l.next())&&!s.done;){if(!a[f]&&n.equals(i.value,s.value,i.value,s.value,e,t,n)){u=a[f]=!0;break}f++}if(!u)return!1}return!0}function BQ(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function HQ(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function IP(e,t,n,r){return(r===$Q||r===jQ||r===TQ)&&(e.$$typeof||t.$$typeof)?!0:EQ(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var GQ="[object Arguments]",UQ="[object Boolean]",WQ="[object Date]",qQ="[object Error]",VQ="[object Map]",KQ="[object Number]",XQ="[object Object]",YQ="[object RegExp]",QQ="[object Set]",ZQ="[object String]",JQ="[object URL]",eZ=Array.isArray,jb=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,$b=Object.assign,tZ=Object.prototype.toString.call.bind(Object.prototype.toString);function nZ(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,o=e.areMapsEqual,i=e.areNumbersEqual,s=e.areObjectsEqual,l=e.arePrimitiveWrappersEqual,u=e.areRegExpsEqual,f=e.areSetsEqual,c=e.areTypedArraysEqual,p=e.areUrlsEqual;return function(h,m,g){if(h===m)return!0;if(h==null||m==null)return!1;var v=typeof h;if(v!==typeof m)return!1;if(v!=="object")return v==="number"?i(h,m,g):v==="function"?a(h,m,g):!1;var y=h.constructor;if(y!==m.constructor)return!1;if(y===Object)return s(h,m,g);if(eZ(h))return t(h,m,g);if(jb!=null&&jb(h))return c(h,m,g);if(y===Date)return n(h,m,g);if(y===RegExp)return u(h,m,g);if(y===Map)return o(h,m,g);if(y===Set)return f(h,m,g);var x=tZ(h);return x===WQ?n(h,m,g):x===YQ?u(h,m,g):x===VQ?o(h,m,g):x===QQ?f(h,m,g):x===XQ?typeof h.then!="function"&&typeof m.then!="function"&&s(h,m,g):x===JQ?p(h,m,g):x===qQ?r(h,m,g):x===GQ?s(h,m,g):x===UQ||x===KQ||x===ZQ?l(h,m,g):!1}}function rZ(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?Xs:NQ,areDatesEqual:MQ,areErrorsEqual:RQ,areFunctionsEqual:IQ,areMapsEqual:r?kb(Eb,Xs):Eb,areNumbersEqual:DQ,areObjectsEqual:r?Xs:LQ,arePrimitiveWrappersEqual:FQ,areRegExpsEqual:zQ,areSetsEqual:r?kb(Tb,Xs):Tb,areTypedArraysEqual:r?Xs:BQ,areUrlsEqual:HQ};if(n&&(a=$b({},a,n(a))),t){var o=bc(a.areArraysEqual),i=bc(a.areMapsEqual),s=bc(a.areObjectsEqual),l=bc(a.areSetsEqual);a=$b({},a,{areArraysEqual:o,areMapsEqual:i,areObjectsEqual:s,areSetsEqual:l})}return a}function aZ(e){return function(t,n,r,a,o,i,s){return e(t,n,s)}}function oZ(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,o=e.strict;if(r)return function(l,u){var f=r(),c=f.cache,p=c===void 0?t?new WeakMap:void 0:c,d=f.meta;return n(l,u,{cache:p,equals:a,meta:d,strict:o})};if(t)return function(l,u){return n(l,u,{cache:new WeakMap,equals:a,meta:void 0,strict:o})};var i={cache:void 0,equals:a,meta:void 0,strict:o};return function(l,u){return n(l,u,i)}}var iZ=za();za({strict:!0});za({circular:!0});za({circular:!0,strict:!0});za({createInternalComparator:function(){return Ro}});za({strict:!0,createInternalComparator:function(){return Ro}});za({circular:!0,createInternalComparator:function(){return Ro}});za({circular:!0,createInternalComparator:function(){return Ro},strict:!0});function za(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,o=e.strict,i=o===void 0?!1:o,s=rZ(e),l=nZ(s),u=r?r(l):aZ(l);return oZ({circular:n,comparator:l,createState:a,equals:u,strict:i})}function sZ(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function Nb(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(o){n<0&&(n=o),o-n>t?(e(o),n=-1):sZ(a)};requestAnimationFrame(r)}function ey(e){"@babel/helpers - typeof";return ey=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ey(e)}function lZ(e){return pZ(e)||fZ(e)||cZ(e)||uZ()}function uZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function cZ(e,t){if(e){if(typeof e=="string")return Mb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Mb(e,t)}}function Mb(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function fZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function pZ(e){if(Array.isArray(e))return e}function dZ(){var e={},t=function(){return null},n=!1,r=function a(o){if(!n){if(Array.isArray(o)){if(!o.length)return;var i=o,s=lZ(i),l=s[0],u=s.slice(1);if(typeof l=="number"){Nb(a.bind(null,u),l);return}a(l),Nb(a.bind(null,u));return}ey(o)==="object"&&(e=o,t(e)),typeof o=="function"&&o()}};return{stop:function(){n=!0},start:function(o){n=!1,r(o)},subscribe:function(o){return t=o,function(){t=function(){return null}}}}}function lu(e){"@babel/helpers - typeof";return lu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lu(e)}function Rb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Ib(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Rb(Object(n),!0).forEach(function(r){DP(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function DP(e,t,n){return t=mZ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mZ(e){var t=hZ(e,"string");return lu(t)==="symbol"?t:String(t)}function hZ(e,t){if(lu(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(lu(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var vZ=function(t,n){return[Object.keys(t),Object.keys(n)].reduce(function(r,a){return r.filter(function(o){return a.includes(o)})})},yZ=function(t){return t},gZ=function(t){return t.replace(/([A-Z])/g,function(n){return"-".concat(n.toLowerCase())})},hl=function(t,n){return Object.keys(n).reduce(function(r,a){return Ib(Ib({},r),{},DP({},a,t(a,n[a])))},{})},Db=function(t,n,r){return t.map(function(a){return"".concat(gZ(a)," ").concat(n,"ms ").concat(r)}).join(",")};function xZ(e,t){return PZ(e)||bZ(e,t)||LP(e,t)||wZ()}function wZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bZ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function PZ(e){if(Array.isArray(e))return e}function SZ(e){return _Z(e)||kZ(e)||LP(e)||OZ()}function OZ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function LP(e,t){if(e){if(typeof e=="string")return ty(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ty(e,t)}}function kZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function _Z(e){if(Array.isArray(e))return ty(e)}function ty(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ep=1e-4,FP=function(t,n){return[0,3*t,3*n-6*t,3*t-3*n+1]},zP=function(t,n){return t.map(function(r,a){return r*Math.pow(n,a)}).reduce(function(r,a){return r+a})},Lb=function(t,n){return function(r){var a=FP(t,n);return zP(a,r)}},AZ=function(t,n){return function(r){var a=FP(t,n),o=[].concat(SZ(a.map(function(i,s){return i*s}).slice(1)),[0]);return zP(o,r)}},Fb=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var a=n[0],o=n[1],i=n[2],s=n[3];if(n.length===1)switch(n[0]){case"linear":a=0,o=0,i=1,s=1;break;case"ease":a=.25,o=.1,i=.25,s=1;break;case"ease-in":a=.42,o=0,i=1,s=1;break;case"ease-out":a=.42,o=0,i=.58,s=1;break;case"ease-in-out":a=0,o=0,i=.58,s=1;break;default:{var l=n[0].split("(");if(l[0]==="cubic-bezier"&&l[1].split(")")[0].split(",").length===4){var u=l[1].split(")")[0].split(",").map(function(g){return parseFloat(g)}),f=xZ(u,4);a=f[0],o=f[1],i=f[2],s=f[3]}}}var c=Lb(a,i),p=Lb(o,s),d=AZ(a,i),h=function(v){return v>1?1:v<0?0:v},m=function(v){for(var y=v>1?1:v,x=y,P=0;P<8;++P){var w=c(x)-y,S=d(x);if(Math.abs(w-y)<ep||S<ep)return p(x);x=h(x-w/S)}return p(x)};return m.isStepper=!1,m},CZ=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,o=a===void 0?8:a,i=t.dt,s=i===void 0?17:i,l=function(f,c,p){var d=-(f-c)*r,h=p*o,m=p+(d-h)*s/1e3,g=p*s/1e3+f;return Math.abs(g-c)<ep&&Math.abs(m)<ep?[c,0]:[g,m]};return l.isStepper=!0,l.dt=s,l},EZ=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var a=n[0];if(typeof a=="string")switch(a){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return Fb(a);case"spring":return CZ();default:if(a.split("(")[0]==="cubic-bezier")return Fb(a)}return typeof a=="function"?a:null};function uu(e){"@babel/helpers - typeof";return uu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uu(e)}function zb(e){return $Z(e)||jZ(e)||BP(e)||TZ()}function TZ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function $Z(e){if(Array.isArray(e))return ry(e)}function Bb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function mt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Bb(Object(n),!0).forEach(function(r){ny(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Bb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function ny(e,t,n){return t=NZ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function NZ(e){var t=MZ(e,"string");return uu(t)==="symbol"?t:String(t)}function MZ(e,t){if(uu(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(uu(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function RZ(e,t){return LZ(e)||DZ(e,t)||BP(e,t)||IZ()}function IZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function BP(e,t){if(e){if(typeof e=="string")return ry(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ry(e,t)}}function ry(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function DZ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function LZ(e){if(Array.isArray(e))return e}var tp=function(t,n,r){return t+(n-t)*r},ay=function(t){var n=t.from,r=t.to;return n!==r},FZ=function e(t,n,r){var a=hl(function(o,i){if(ay(i)){var s=t(i.from,i.to,i.velocity),l=RZ(s,2),u=l[0],f=l[1];return mt(mt({},i),{},{from:u,velocity:f})}return i},n);return r<1?hl(function(o,i){return ay(i)?mt(mt({},i),{},{velocity:tp(i.velocity,a[o].velocity,r),from:tp(i.from,a[o].from,r)}):i},n):e(t,a,r-1)};const zZ=function(e,t,n,r,a){var o=vZ(e,t),i=o.reduce(function(g,v){return mt(mt({},g),{},ny({},v,[e[v],t[v]]))},{}),s=o.reduce(function(g,v){return mt(mt({},g),{},ny({},v,{from:e[v],velocity:0,to:t[v]}))},{}),l=-1,u,f,c=function(){return null},p=function(){return hl(function(v,y){return y.from},s)},d=function(){return!Object.values(s).filter(ay).length},h=function(v){u||(u=v);var y=v-u,x=y/n.dt;s=FZ(n,s,x),a(mt(mt(mt({},e),t),p())),u=v,d()||(l=requestAnimationFrame(c))},m=function(v){f||(f=v);var y=(v-f)/r,x=hl(function(w,S){return tp.apply(void 0,zb(S).concat([n(y)]))},i);if(a(mt(mt(mt({},e),t),x)),y<1)l=requestAnimationFrame(c);else{var P=hl(function(w,S){return tp.apply(void 0,zb(S).concat([n(1)]))},i);a(mt(mt(mt({},e),t),P))}};return c=n.isStepper?h:m,function(){return requestAnimationFrame(c),function(){cancelAnimationFrame(l)}}};function Wi(e){"@babel/helpers - typeof";return Wi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wi(e)}var BZ=["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"];function HZ(e,t){if(e==null)return{};var n=GZ(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function GZ(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,o;for(o=0;o<r.length;o++)a=r[o],!(t.indexOf(a)>=0)&&(n[a]=e[a]);return n}function Ym(e){return VZ(e)||qZ(e)||WZ(e)||UZ()}function UZ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function WZ(e,t){if(e){if(typeof e=="string")return oy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oy(e,t)}}function qZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function VZ(e){if(Array.isArray(e))return oy(e)}function oy(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Hb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function _n(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Hb(Object(n),!0).forEach(function(r){nl(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function nl(e,t,n){return t=HP(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function KZ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function XZ(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,HP(r.key),r)}}function YZ(e,t,n){return t&&XZ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function HP(e){var t=QZ(e,"string");return Wi(t)==="symbol"?t:String(t)}function QZ(e,t){if(Wi(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Wi(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ZZ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&iy(e,t)}function iy(e,t){return iy=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},iy(e,t)}function JZ(e){var t=eJ();return function(){var r=np(e),a;if(t){var o=np(this).constructor;a=Reflect.construct(r,arguments,o)}else a=r.apply(this,arguments);return sy(this,a)}}function sy(e,t){if(t&&(Wi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ly(e)}function ly(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function eJ(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function np(e){return np=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},np(e)}var Vn=function(e){ZZ(n,e);var t=JZ(n);function n(r,a){var o;KZ(this,n),o=t.call(this,r,a);var i=o.props,s=i.isActive,l=i.attributeName,u=i.from,f=i.to,c=i.steps,p=i.children,d=i.duration;if(o.handleStyleChange=o.handleStyleChange.bind(ly(o)),o.changeStyle=o.changeStyle.bind(ly(o)),!s||d<=0)return o.state={style:{}},typeof p=="function"&&(o.state={style:f}),sy(o);if(c&&c.length)o.state={style:c[0].style};else if(u){if(typeof p=="function")return o.state={style:u},sy(o);o.state={style:l?nl({},l,u):u}}else o.state={style:{}};return o}return YZ(n,[{key:"componentDidMount",value:function(){var a=this.props,o=a.isActive,i=a.canBegin;this.mounted=!0,!(!o||!i)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var o=this.props,i=o.isActive,s=o.canBegin,l=o.attributeName,u=o.shouldReAnimate,f=o.to,c=o.from,p=this.state.style;if(s){if(!i){var d={style:l?nl({},l,f):f};this.state&&p&&(l&&p[l]!==f||!l&&p!==f)&&this.setState(d);return}if(!(iZ(a.to,f)&&a.canBegin&&a.isActive)){var h=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var m=h||u?c:a.to;if(this.state&&p){var g={style:l?nl({},l,m):m};(l&&p[l]!==m||!l&&p!==m)&&this.setState(g)}this.runAnimation(_n(_n({},this.props),{},{from:m,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var o=this,i=a.from,s=a.to,l=a.duration,u=a.easing,f=a.begin,c=a.onAnimationEnd,p=a.onAnimationStart,d=zZ(i,s,EZ(u),l,this.changeStyle),h=function(){o.stopJSAnimation=d()};this.manager.start([p,f,h,l,c])}},{key:"runStepAnimation",value:function(a){var o=this,i=a.steps,s=a.begin,l=a.onAnimationStart,u=i[0],f=u.style,c=u.duration,p=c===void 0?0:c,d=function(m,g,v){if(v===0)return m;var y=g.duration,x=g.easing,P=x===void 0?"ease":x,w=g.style,S=g.properties,O=g.onAnimationEnd,_=v>0?i[v-1]:g,A=S||Object.keys(w);if(typeof P=="function"||P==="spring")return[].concat(Ym(m),[o.runJSAnimation.bind(o,{from:_.style,to:w,duration:y,easing:P}),y]);var j=Db(A,y,P),E=_n(_n(_n({},_.style),w),{},{transition:j});return[].concat(Ym(m),[E,y,O]).filter(yZ)};return this.manager.start([l].concat(Ym(i.reduce(d,[f,Math.max(p,s)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=dZ());var o=a.begin,i=a.duration,s=a.attributeName,l=a.to,u=a.easing,f=a.onAnimationStart,c=a.onAnimationEnd,p=a.steps,d=a.children,h=this.manager;if(this.unSubscribe=h.subscribe(this.handleStyleChange),typeof u=="function"||typeof d=="function"||u==="spring"){this.runJSAnimation(a);return}if(p.length>1){this.runStepAnimation(a);return}var m=s?nl({},s,l):l,g=Db(Object.keys(m),i,u);h.start([f,o,_n(_n({},m),{},{transition:g}),i,c])}},{key:"render",value:function(){var a=this.props,o=a.children;a.begin;var i=a.duration;a.attributeName,a.easing;var s=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var l=HZ(a,BZ),u=k.Children.count(o),f=this.state.style;if(typeof o=="function")return o(f);if(!s||u===0||i<=0)return o;var c=function(d){var h=d.props,m=h.style,g=m===void 0?{}:m,v=h.className,y=k.cloneElement(d,_n(_n({},l),{},{style:_n(_n({},g),f),className:v}));return y};return u===1?c(k.Children.only(o)):C.createElement("div",null,k.Children.map(o,function(p){return c(p)}))}}]),n}(k.PureComponent);Vn.displayName="Animate";Vn.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Vn.propTypes={from:ge.oneOfType([ge.object,ge.string]),to:ge.oneOfType([ge.object,ge.string]),attributeName:ge.string,duration:ge.number,begin:ge.number,easing:ge.oneOfType([ge.string,ge.func]),steps:ge.arrayOf(ge.shape({duration:ge.number.isRequired,style:ge.object.isRequired,easing:ge.oneOfType([ge.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),ge.func]),properties:ge.arrayOf("string"),onAnimationEnd:ge.func})),children:ge.oneOfType([ge.node,ge.func]),isActive:ge.bool,canBegin:ge.bool,onAnimationEnd:ge.func,shouldReAnimate:ge.bool,onAnimationStart:ge.func,onAnimationReStart:ge.func};function cu(e){"@babel/helpers - typeof";return cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cu(e)}function rp(){return rp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rp.apply(this,arguments)}function tJ(e,t){return oJ(e)||aJ(e,t)||rJ(e,t)||nJ()}function nJ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function rJ(e,t){if(e){if(typeof e=="string")return Gb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Gb(e,t)}}function Gb(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function aJ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function oJ(e){if(Array.isArray(e))return e}function Ub(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Wb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ub(Object(n),!0).forEach(function(r){iJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ub(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function iJ(e,t,n){return t=sJ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sJ(e){var t=lJ(e,"string");return cu(t)=="symbol"?t:t+""}function lJ(e,t){if(cu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(cu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var qb=function(t,n,r,a,o){var i=Math.min(Math.abs(r)/2,Math.abs(a)/2),s=a>=0?1:-1,l=r>=0?1:-1,u=a>=0&&r>=0||a<0&&r<0?1:0,f;if(i>0&&o instanceof Array){for(var c=[0,0,0,0],p=0,d=4;p<d;p++)c[p]=o[p]>i?i:o[p];f="M".concat(t,",").concat(n+s*c[0]),c[0]>0&&(f+="A ".concat(c[0],",").concat(c[0],",0,0,").concat(u,",").concat(t+l*c[0],",").concat(n)),f+="L ".concat(t+r-l*c[1],",").concat(n),c[1]>0&&(f+="A ".concat(c[1],",").concat(c[1],",0,0,").concat(u,`,
-        `).concat(t+r,",").concat(n+s*c[1])),f+="L ".concat(t+r,",").concat(n+a-s*c[2]),c[2]>0&&(f+="A ".concat(c[2],",").concat(c[2],",0,0,").concat(u,`,
-        `).concat(t+r-l*c[2],",").concat(n+a)),f+="L ".concat(t+l*c[3],",").concat(n+a),c[3]>0&&(f+="A ".concat(c[3],",").concat(c[3],",0,0,").concat(u,`,
-        `).concat(t,",").concat(n+a-s*c[3])),f+="Z"}else if(i>0&&o===+o&&o>0){var h=Math.min(i,o);f="M ".concat(t,",").concat(n+s*h,`
+      A`).concat(i,",").concat(i,",0,0,").concat(+(c<0),",").concat(_.x,",").concat(_.y,"Z")}else w+="L".concat(n,",").concat(r,"Z");return w},EQ={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},RP=function(t){var n=Sb(Sb({},EQ),t),r=n.cx,a=n.cy,o=n.innerRadius,i=n.outerRadius,s=n.cornerRadius,l=n.forceCornerRadius,u=n.cornerIsExternal,p=n.startAngle,c=n.endAngle,f=n.className;if(i<o||p===c)return null;var d=ue("recharts-sector",f),h=i-o,m=Oo(s,h,0,!0),g;return m>0&&Math.abs(p-c)<360?g=AQ({cx:r,cy:a,innerRadius:o,outerRadius:i,cornerRadius:Math.min(m,h/2),forceCornerRadius:l,cornerIsExternal:u,startAngle:p,endAngle:c}):g=MP({cx:r,cy:a,innerRadius:o,outerRadius:i,startAngle:p,endAngle:c}),A.createElement("path",Z0({},re(n,!0),{className:d,d:g,role:"img"}))};function su(e){"@babel/helpers - typeof";return su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},su(e)}function J0(){return J0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},J0.apply(this,arguments)}function Ob(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function kb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ob(Object(n),!0).forEach(function(r){TQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ob(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function TQ(e,t,n){return t=jQ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jQ(e){var t=$Q(e,"string");return su(t)=="symbol"?t:t+""}function $Q(e,t){if(su(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(su(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var _b={curveBasisClosed:EI,curveBasisOpen:TI,curveBasis:AI,curveBumpX:mI,curveBumpY:hI,curveLinearClosed:jI,curveLinear:fd,curveMonotoneX:$I,curveMonotoneY:NI,curveNatural:MI,curveStep:RI,curveStepAfter:DI,curveStepBefore:II},wc=function(t){return t.x===+t.x&&t.y===+t.y},Vs=function(t){return t.x},Ks=function(t){return t.y},NQ=function(t,n){if(oe(t))return t;var r="curve".concat(cd(t));return(r==="curveMonotone"||r==="curveBump")&&n?_b["".concat(r).concat(n==="vertical"?"Y":"X")]:_b[r]||fd},MQ=function(t){var n=t.type,r=n===void 0?"linear":n,a=t.points,o=a===void 0?[]:a,i=t.baseLine,s=t.layout,l=t.connectNulls,u=l===void 0?!1:l,p=NQ(r,s),c=u?o.filter(function(m){return wc(m)}):o,f;if(Array.isArray(i)){var d=u?i.filter(function(m){return wc(m)}):i,h=c.map(function(m,g){return kb(kb({},m),{},{base:d[g]})});return s==="vertical"?f=cc().y(Ks).x1(Vs).x0(function(m){return m.base.x}):f=cc().x(Vs).y1(Ks).y0(function(m){return m.base.y}),f.defined(wc).curve(p),f(h)}return s==="vertical"&&V(i)?f=cc().y(Ks).x1(Vs).x0(i):V(i)?f=cc().x(Vs).y1(Ks).y0(i):f=I8().x(Vs).y(Ks),f.defined(wc).curve(p),f(c)},mo=function(t){var n=t.className,r=t.points,a=t.path,o=t.pathRef;if((!r||!r.length)&&!a)return null;var i=r&&r.length?MQ(t):a;return k.createElement("path",J0({},re(t,!1),Pp(t),{className:ue("recharts-curve",n),d:i,ref:o}))},IP={exports:{}},RQ="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",IQ=RQ,DQ=IQ;function DP(){}function LP(){}LP.resetWarningCache=DP;var LQ=function(){function e(r,a,o,i,s,l){if(l!==DQ){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:LP,resetWarningCache:DP};return n.PropTypes=n,n};IP.exports=LQ();var FQ=IP.exports;const ge=Ae(FQ);var zQ=Object.getOwnPropertyNames,BQ=Object.getOwnPropertySymbols,HQ=Object.prototype.hasOwnProperty;function Cb(e,t){return function(r,a,o){return e(r,a,o)&&t(r,a,o)}}function bc(e){return function(n,r,a){if(!n||!r||typeof n!="object"||typeof r!="object")return e(n,r,a);var o=a.cache,i=o.get(n),s=o.get(r);if(i&&s)return i===r&&s===n;o.set(n,r),o.set(r,n);var l=e(n,r,a);return o.delete(n),o.delete(r),l}}function Ab(e){return zQ(e).concat(BQ(e))}var GQ=Object.hasOwn||function(e,t){return HQ.call(e,t)};function Ro(e,t){return e===t||!e&&!t&&e!==e&&t!==t}var UQ="__v",WQ="__o",qQ="_owner",Eb=Object.getOwnPropertyDescriptor,Tb=Object.keys;function VQ(e,t,n){var r=e.length;if(t.length!==r)return!1;for(;r-- >0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function KQ(e,t){return Ro(e.getTime(),t.getTime())}function XQ(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function YQ(e,t){return e===t}function jb(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),o=e.entries(),i,s,l=0;(i=o.next())&&!i.done;){for(var u=t.entries(),p=!1,c=0;(s=u.next())&&!s.done;){if(a[c]){c++;continue}var f=i.value,d=s.value;if(n.equals(f[0],d[0],l,c,e,t,n)&&n.equals(f[1],d[1],f[0],d[0],e,t,n)){p=a[c]=!0;break}c++}if(!p)return!1;l++}return!0}var QQ=Ro;function ZQ(e,t,n){var r=Tb(e),a=r.length;if(Tb(t).length!==a)return!1;for(;a-- >0;)if(!FP(e,t,n,r[a]))return!1;return!0}function Xs(e,t,n){var r=Ab(e),a=r.length;if(Ab(t).length!==a)return!1;for(var o,i,s;a-- >0;)if(o=r[a],!FP(e,t,n,o)||(i=Eb(e,o),s=Eb(t,o),(i||s)&&(!i||!s||i.configurable!==s.configurable||i.enumerable!==s.enumerable||i.writable!==s.writable)))return!1;return!0}function JQ(e,t){return Ro(e.valueOf(),t.valueOf())}function eZ(e,t){return e.source===t.source&&e.flags===t.flags}function $b(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),o=e.values(),i,s;(i=o.next())&&!i.done;){for(var l=t.values(),u=!1,p=0;(s=l.next())&&!s.done;){if(!a[p]&&n.equals(i.value,s.value,i.value,s.value,e,t,n)){u=a[p]=!0;break}p++}if(!u)return!1}return!0}function tZ(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function nZ(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function FP(e,t,n,r){return(r===qQ||r===WQ||r===UQ)&&(e.$$typeof||t.$$typeof)?!0:GQ(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var rZ="[object Arguments]",aZ="[object Boolean]",oZ="[object Date]",iZ="[object Error]",sZ="[object Map]",lZ="[object Number]",uZ="[object Object]",cZ="[object RegExp]",pZ="[object Set]",fZ="[object String]",dZ="[object URL]",mZ=Array.isArray,Nb=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,Mb=Object.assign,hZ=Object.prototype.toString.call.bind(Object.prototype.toString);function vZ(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,o=e.areMapsEqual,i=e.areNumbersEqual,s=e.areObjectsEqual,l=e.arePrimitiveWrappersEqual,u=e.areRegExpsEqual,p=e.areSetsEqual,c=e.areTypedArraysEqual,f=e.areUrlsEqual;return function(h,m,g){if(h===m)return!0;if(h==null||m==null)return!1;var v=typeof h;if(v!==typeof m)return!1;if(v!=="object")return v==="number"?i(h,m,g):v==="function"?a(h,m,g):!1;var y=h.constructor;if(y!==m.constructor)return!1;if(y===Object)return s(h,m,g);if(mZ(h))return t(h,m,g);if(Nb!=null&&Nb(h))return c(h,m,g);if(y===Date)return n(h,m,g);if(y===RegExp)return u(h,m,g);if(y===Map)return o(h,m,g);if(y===Set)return p(h,m,g);var x=hZ(h);return x===oZ?n(h,m,g):x===cZ?u(h,m,g):x===sZ?o(h,m,g):x===pZ?p(h,m,g):x===uZ?typeof h.then!="function"&&typeof m.then!="function"&&s(h,m,g):x===dZ?f(h,m,g):x===iZ?r(h,m,g):x===rZ?s(h,m,g):x===aZ||x===lZ||x===fZ?l(h,m,g):!1}}function yZ(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?Xs:VQ,areDatesEqual:KQ,areErrorsEqual:XQ,areFunctionsEqual:YQ,areMapsEqual:r?Cb(jb,Xs):jb,areNumbersEqual:QQ,areObjectsEqual:r?Xs:ZQ,arePrimitiveWrappersEqual:JQ,areRegExpsEqual:eZ,areSetsEqual:r?Cb($b,Xs):$b,areTypedArraysEqual:r?Xs:tZ,areUrlsEqual:nZ};if(n&&(a=Mb({},a,n(a))),t){var o=bc(a.areArraysEqual),i=bc(a.areMapsEqual),s=bc(a.areObjectsEqual),l=bc(a.areSetsEqual);a=Mb({},a,{areArraysEqual:o,areMapsEqual:i,areObjectsEqual:s,areSetsEqual:l})}return a}function gZ(e){return function(t,n,r,a,o,i,s){return e(t,n,s)}}function xZ(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,o=e.strict;if(r)return function(l,u){var p=r(),c=p.cache,f=c===void 0?t?new WeakMap:void 0:c,d=p.meta;return n(l,u,{cache:f,equals:a,meta:d,strict:o})};if(t)return function(l,u){return n(l,u,{cache:new WeakMap,equals:a,meta:void 0,strict:o})};var i={cache:void 0,equals:a,meta:void 0,strict:o};return function(l,u){return n(l,u,i)}}var wZ=za();za({strict:!0});za({circular:!0});za({circular:!0,strict:!0});za({createInternalComparator:function(){return Ro}});za({strict:!0,createInternalComparator:function(){return Ro}});za({circular:!0,createInternalComparator:function(){return Ro}});za({circular:!0,createInternalComparator:function(){return Ro},strict:!0});function za(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,o=e.strict,i=o===void 0?!1:o,s=yZ(e),l=vZ(s),u=r?r(l):gZ(l);return xZ({circular:n,comparator:l,createState:a,equals:u,strict:i})}function bZ(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function Rb(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(o){n<0&&(n=o),o-n>t?(e(o),n=-1):bZ(a)};requestAnimationFrame(r)}function ev(e){"@babel/helpers - typeof";return ev=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ev(e)}function PZ(e){return _Z(e)||kZ(e)||OZ(e)||SZ()}function SZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function OZ(e,t){if(e){if(typeof e=="string")return Ib(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ib(e,t)}}function Ib(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function kZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function _Z(e){if(Array.isArray(e))return e}function CZ(){var e={},t=function(){return null},n=!1,r=function a(o){if(!n){if(Array.isArray(o)){if(!o.length)return;var i=o,s=PZ(i),l=s[0],u=s.slice(1);if(typeof l=="number"){Rb(a.bind(null,u),l);return}a(l),Rb(a.bind(null,u));return}ev(o)==="object"&&(e=o,t(e)),typeof o=="function"&&o()}};return{stop:function(){n=!0},start:function(o){n=!1,r(o)},subscribe:function(o){return t=o,function(){t=function(){return null}}}}}function lu(e){"@babel/helpers - typeof";return lu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lu(e)}function Db(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Lb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Db(Object(n),!0).forEach(function(r){zP(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Db(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function zP(e,t,n){return t=AZ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function AZ(e){var t=EZ(e,"string");return lu(t)==="symbol"?t:String(t)}function EZ(e,t){if(lu(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(lu(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var TZ=function(t,n){return[Object.keys(t),Object.keys(n)].reduce(function(r,a){return r.filter(function(o){return a.includes(o)})})},jZ=function(t){return t},$Z=function(t){return t.replace(/([A-Z])/g,function(n){return"-".concat(n.toLowerCase())})},hl=function(t,n){return Object.keys(n).reduce(function(r,a){return Lb(Lb({},r),{},zP({},a,t(a,n[a])))},{})},Fb=function(t,n,r){return t.map(function(a){return"".concat($Z(a)," ").concat(n,"ms ").concat(r)}).join(",")};function NZ(e,t){return IZ(e)||RZ(e,t)||BP(e,t)||MZ()}function MZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function RZ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function IZ(e){if(Array.isArray(e))return e}function DZ(e){return zZ(e)||FZ(e)||BP(e)||LZ()}function LZ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function BP(e,t){if(e){if(typeof e=="string")return tv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tv(e,t)}}function FZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function zZ(e){if(Array.isArray(e))return tv(e)}function tv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Jp=1e-4,HP=function(t,n){return[0,3*t,3*n-6*t,3*t-3*n+1]},GP=function(t,n){return t.map(function(r,a){return r*Math.pow(n,a)}).reduce(function(r,a){return r+a})},zb=function(t,n){return function(r){var a=HP(t,n);return GP(a,r)}},BZ=function(t,n){return function(r){var a=HP(t,n),o=[].concat(DZ(a.map(function(i,s){return i*s}).slice(1)),[0]);return GP(o,r)}},Bb=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var a=n[0],o=n[1],i=n[2],s=n[3];if(n.length===1)switch(n[0]){case"linear":a=0,o=0,i=1,s=1;break;case"ease":a=.25,o=.1,i=.25,s=1;break;case"ease-in":a=.42,o=0,i=1,s=1;break;case"ease-out":a=.42,o=0,i=.58,s=1;break;case"ease-in-out":a=0,o=0,i=.58,s=1;break;default:{var l=n[0].split("(");if(l[0]==="cubic-bezier"&&l[1].split(")")[0].split(",").length===4){var u=l[1].split(")")[0].split(",").map(function(g){return parseFloat(g)}),p=NZ(u,4);a=p[0],o=p[1],i=p[2],s=p[3]}}}var c=zb(a,i),f=zb(o,s),d=BZ(a,i),h=function(v){return v>1?1:v<0?0:v},m=function(v){for(var y=v>1?1:v,x=y,P=0;P<8;++P){var w=c(x)-y,S=d(x);if(Math.abs(w-y)<Jp||S<Jp)return f(x);x=h(x-w/S)}return f(x)};return m.isStepper=!1,m},HZ=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,o=a===void 0?8:a,i=t.dt,s=i===void 0?17:i,l=function(p,c,f){var d=-(p-c)*r,h=f*o,m=f+(d-h)*s/1e3,g=f*s/1e3+p;return Math.abs(g-c)<Jp&&Math.abs(m)<Jp?[c,0]:[g,m]};return l.isStepper=!0,l.dt=s,l},GZ=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var a=n[0];if(typeof a=="string")switch(a){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return Bb(a);case"spring":return HZ();default:if(a.split("(")[0]==="cubic-bezier")return Bb(a)}return typeof a=="function"?a:null};function uu(e){"@babel/helpers - typeof";return uu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uu(e)}function Hb(e){return qZ(e)||WZ(e)||UP(e)||UZ()}function UZ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function WZ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function qZ(e){if(Array.isArray(e))return rv(e)}function Gb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function mt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Gb(Object(n),!0).forEach(function(r){nv(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Gb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function nv(e,t,n){return t=VZ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function VZ(e){var t=KZ(e,"string");return uu(t)==="symbol"?t:String(t)}function KZ(e,t){if(uu(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(uu(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function XZ(e,t){return ZZ(e)||QZ(e,t)||UP(e,t)||YZ()}function YZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function UP(e,t){if(e){if(typeof e=="string")return rv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rv(e,t)}}function rv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function QZ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function ZZ(e){if(Array.isArray(e))return e}var ef=function(t,n,r){return t+(n-t)*r},av=function(t){var n=t.from,r=t.to;return n!==r},JZ=function e(t,n,r){var a=hl(function(o,i){if(av(i)){var s=t(i.from,i.to,i.velocity),l=XZ(s,2),u=l[0],p=l[1];return mt(mt({},i),{},{from:u,velocity:p})}return i},n);return r<1?hl(function(o,i){return av(i)?mt(mt({},i),{},{velocity:ef(i.velocity,a[o].velocity,r),from:ef(i.from,a[o].from,r)}):i},n):e(t,a,r-1)};const eJ=function(e,t,n,r,a){var o=TZ(e,t),i=o.reduce(function(g,v){return mt(mt({},g),{},nv({},v,[e[v],t[v]]))},{}),s=o.reduce(function(g,v){return mt(mt({},g),{},nv({},v,{from:e[v],velocity:0,to:t[v]}))},{}),l=-1,u,p,c=function(){return null},f=function(){return hl(function(v,y){return y.from},s)},d=function(){return!Object.values(s).filter(av).length},h=function(v){u||(u=v);var y=v-u,x=y/n.dt;s=JZ(n,s,x),a(mt(mt(mt({},e),t),f())),u=v,d()||(l=requestAnimationFrame(c))},m=function(v){p||(p=v);var y=(v-p)/r,x=hl(function(w,S){return ef.apply(void 0,Hb(S).concat([n(y)]))},i);if(a(mt(mt(mt({},e),t),x)),y<1)l=requestAnimationFrame(c);else{var P=hl(function(w,S){return ef.apply(void 0,Hb(S).concat([n(1)]))},i);a(mt(mt(mt({},e),t),P))}};return c=n.isStepper?h:m,function(){return requestAnimationFrame(c),function(){cancelAnimationFrame(l)}}};function Wi(e){"@babel/helpers - typeof";return Wi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wi(e)}var tJ=["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"];function nJ(e,t){if(e==null)return{};var n=rJ(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function rJ(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,o;for(o=0;o<r.length;o++)a=r[o],!(t.indexOf(a)>=0)&&(n[a]=e[a]);return n}function Ym(e){return sJ(e)||iJ(e)||oJ(e)||aJ()}function aJ(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function oJ(e,t){if(e){if(typeof e=="string")return ov(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ov(e,t)}}function iJ(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function sJ(e){if(Array.isArray(e))return ov(e)}function ov(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ub(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function _n(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ub(Object(n),!0).forEach(function(r){nl(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ub(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function nl(e,t,n){return t=WP(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lJ(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function uJ(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,WP(r.key),r)}}function cJ(e,t,n){return t&&uJ(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function WP(e){var t=pJ(e,"string");return Wi(t)==="symbol"?t:String(t)}function pJ(e,t){if(Wi(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Wi(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function fJ(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&iv(e,t)}function iv(e,t){return iv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},iv(e,t)}function dJ(e){var t=mJ();return function(){var r=tf(e),a;if(t){var o=tf(this).constructor;a=Reflect.construct(r,arguments,o)}else a=r.apply(this,arguments);return sv(this,a)}}function sv(e,t){if(t&&(Wi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return lv(e)}function lv(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function mJ(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function tf(e){return tf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},tf(e)}var Vn=function(e){fJ(n,e);var t=dJ(n);function n(r,a){var o;lJ(this,n),o=t.call(this,r,a);var i=o.props,s=i.isActive,l=i.attributeName,u=i.from,p=i.to,c=i.steps,f=i.children,d=i.duration;if(o.handleStyleChange=o.handleStyleChange.bind(lv(o)),o.changeStyle=o.changeStyle.bind(lv(o)),!s||d<=0)return o.state={style:{}},typeof f=="function"&&(o.state={style:p}),sv(o);if(c&&c.length)o.state={style:c[0].style};else if(u){if(typeof f=="function")return o.state={style:u},sv(o);o.state={style:l?nl({},l,u):u}}else o.state={style:{}};return o}return cJ(n,[{key:"componentDidMount",value:function(){var a=this.props,o=a.isActive,i=a.canBegin;this.mounted=!0,!(!o||!i)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var o=this.props,i=o.isActive,s=o.canBegin,l=o.attributeName,u=o.shouldReAnimate,p=o.to,c=o.from,f=this.state.style;if(s){if(!i){var d={style:l?nl({},l,p):p};this.state&&f&&(l&&f[l]!==p||!l&&f!==p)&&this.setState(d);return}if(!(wZ(a.to,p)&&a.canBegin&&a.isActive)){var h=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var m=h||u?c:a.to;if(this.state&&f){var g={style:l?nl({},l,m):m};(l&&f[l]!==m||!l&&f!==m)&&this.setState(g)}this.runAnimation(_n(_n({},this.props),{},{from:m,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var o=this,i=a.from,s=a.to,l=a.duration,u=a.easing,p=a.begin,c=a.onAnimationEnd,f=a.onAnimationStart,d=eJ(i,s,GZ(u),l,this.changeStyle),h=function(){o.stopJSAnimation=d()};this.manager.start([f,p,h,l,c])}},{key:"runStepAnimation",value:function(a){var o=this,i=a.steps,s=a.begin,l=a.onAnimationStart,u=i[0],p=u.style,c=u.duration,f=c===void 0?0:c,d=function(m,g,v){if(v===0)return m;var y=g.duration,x=g.easing,P=x===void 0?"ease":x,w=g.style,S=g.properties,O=g.onAnimationEnd,_=v>0?i[v-1]:g,C=S||Object.keys(w);if(typeof P=="function"||P==="spring")return[].concat(Ym(m),[o.runJSAnimation.bind(o,{from:_.style,to:w,duration:y,easing:P}),y]);var j=Fb(C,y,P),E=_n(_n(_n({},_.style),w),{},{transition:j});return[].concat(Ym(m),[E,y,O]).filter(jZ)};return this.manager.start([l].concat(Ym(i.reduce(d,[p,Math.max(f,s)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=CZ());var o=a.begin,i=a.duration,s=a.attributeName,l=a.to,u=a.easing,p=a.onAnimationStart,c=a.onAnimationEnd,f=a.steps,d=a.children,h=this.manager;if(this.unSubscribe=h.subscribe(this.handleStyleChange),typeof u=="function"||typeof d=="function"||u==="spring"){this.runJSAnimation(a);return}if(f.length>1){this.runStepAnimation(a);return}var m=s?nl({},s,l):l,g=Fb(Object.keys(m),i,u);h.start([p,o,_n(_n({},m),{},{transition:g}),i,c])}},{key:"render",value:function(){var a=this.props,o=a.children;a.begin;var i=a.duration;a.attributeName,a.easing;var s=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var l=nJ(a,tJ),u=k.Children.count(o),p=this.state.style;if(typeof o=="function")return o(p);if(!s||u===0||i<=0)return o;var c=function(d){var h=d.props,m=h.style,g=m===void 0?{}:m,v=h.className,y=k.cloneElement(d,_n(_n({},l),{},{style:_n(_n({},g),p),className:v}));return y};return u===1?c(k.Children.only(o)):A.createElement("div",null,k.Children.map(o,function(f){return c(f)}))}}]),n}(k.PureComponent);Vn.displayName="Animate";Vn.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Vn.propTypes={from:ge.oneOfType([ge.object,ge.string]),to:ge.oneOfType([ge.object,ge.string]),attributeName:ge.string,duration:ge.number,begin:ge.number,easing:ge.oneOfType([ge.string,ge.func]),steps:ge.arrayOf(ge.shape({duration:ge.number.isRequired,style:ge.object.isRequired,easing:ge.oneOfType([ge.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),ge.func]),properties:ge.arrayOf("string"),onAnimationEnd:ge.func})),children:ge.oneOfType([ge.node,ge.func]),isActive:ge.bool,canBegin:ge.bool,onAnimationEnd:ge.func,shouldReAnimate:ge.bool,onAnimationStart:ge.func,onAnimationReStart:ge.func};function cu(e){"@babel/helpers - typeof";return cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cu(e)}function nf(){return nf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},nf.apply(this,arguments)}function hJ(e,t){return xJ(e)||gJ(e,t)||yJ(e,t)||vJ()}function vJ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yJ(e,t){if(e){if(typeof e=="string")return Wb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Wb(e,t)}}function Wb(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function gJ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function xJ(e){if(Array.isArray(e))return e}function qb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Vb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?qb(Object(n),!0).forEach(function(r){wJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function wJ(e,t,n){return t=bJ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bJ(e){var t=PJ(e,"string");return cu(t)=="symbol"?t:t+""}function PJ(e,t){if(cu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(cu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Kb=function(t,n,r,a,o){var i=Math.min(Math.abs(r)/2,Math.abs(a)/2),s=a>=0?1:-1,l=r>=0?1:-1,u=a>=0&&r>=0||a<0&&r<0?1:0,p;if(i>0&&o instanceof Array){for(var c=[0,0,0,0],f=0,d=4;f<d;f++)c[f]=o[f]>i?i:o[f];p="M".concat(t,",").concat(n+s*c[0]),c[0]>0&&(p+="A ".concat(c[0],",").concat(c[0],",0,0,").concat(u,",").concat(t+l*c[0],",").concat(n)),p+="L ".concat(t+r-l*c[1],",").concat(n),c[1]>0&&(p+="A ".concat(c[1],",").concat(c[1],",0,0,").concat(u,`,
+        `).concat(t+r,",").concat(n+s*c[1])),p+="L ".concat(t+r,",").concat(n+a-s*c[2]),c[2]>0&&(p+="A ".concat(c[2],",").concat(c[2],",0,0,").concat(u,`,
+        `).concat(t+r-l*c[2],",").concat(n+a)),p+="L ".concat(t+l*c[3],",").concat(n+a),c[3]>0&&(p+="A ".concat(c[3],",").concat(c[3],",0,0,").concat(u,`,
+        `).concat(t,",").concat(n+a-s*c[3])),p+="Z"}else if(i>0&&o===+o&&o>0){var h=Math.min(i,o);p="M ".concat(t,",").concat(n+s*h,`
             A `).concat(h,",").concat(h,",0,0,").concat(u,",").concat(t+l*h,",").concat(n,`
             L `).concat(t+r-l*h,",").concat(n,`
             A `).concat(h,",").concat(h,",0,0,").concat(u,",").concat(t+r,",").concat(n+s*h,`
             L `).concat(t+r,",").concat(n+a-s*h,`
             A `).concat(h,",").concat(h,",0,0,").concat(u,",").concat(t+r-l*h,",").concat(n+a,`
             L `).concat(t+l*h,",").concat(n+a,`
-            A `).concat(h,",").concat(h,",0,0,").concat(u,",").concat(t,",").concat(n+a-s*h," Z")}else f="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return f},uJ=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,o=n.x,i=n.y,s=n.width,l=n.height;if(Math.abs(s)>0&&Math.abs(l)>0){var u=Math.min(o,o+s),f=Math.max(o,o+s),c=Math.min(i,i+l),p=Math.max(i,i+l);return r>=u&&r<=f&&a>=c&&a<=p}return!1},cJ={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Ug=function(t){var n=Wb(Wb({},cJ),t),r=k.useRef(),a=k.useState(-1),o=tJ(a,2),i=o[0],s=o[1];k.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var P=r.current.getTotalLength();P&&s(P)}catch{}},[]);var l=n.x,u=n.y,f=n.width,c=n.height,p=n.radius,d=n.className,h=n.animationEasing,m=n.animationDuration,g=n.animationBegin,v=n.isAnimationActive,y=n.isUpdateAnimationActive;if(l!==+l||u!==+u||f!==+f||c!==+c||f===0||c===0)return null;var x=ue("recharts-rectangle",d);return y?C.createElement(Vn,{canBegin:i>0,from:{width:f,height:c,x:l,y:u},to:{width:f,height:c,x:l,y:u},duration:m,animationEasing:h,isActive:y},function(P){var w=P.width,S=P.height,O=P.x,_=P.y;return C.createElement(Vn,{canBegin:i>0,from:"0px ".concat(i===-1?1:i,"px"),to:"".concat(i,"px 0px"),attributeName:"strokeDasharray",begin:g,duration:m,isActive:v,easing:h},C.createElement("path",rp({},re(n,!0),{className:x,d:qb(O,_,w,S,p),ref:r})))}):C.createElement("path",rp({},re(n,!0),{className:x,d:qb(l,u,f,c,p)}))};function uy(){return uy=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},uy.apply(this,arguments)}var Ad=function(t){var n=t.cx,r=t.cy,a=t.r,o=t.className,i=ue("recharts-dot",o);return n===+n&&r===+r&&a===+a?k.createElement("circle",uy({},re(t,!1),Sf(t),{className:i,cx:n,cy:r,r:a})):null};function fu(e){"@babel/helpers - typeof";return fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fu(e)}var fJ=["x","y","top","left","width","height","className"];function cy(){return cy=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},cy.apply(this,arguments)}function Vb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function pJ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Vb(Object(n),!0).forEach(function(r){dJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function dJ(e,t,n){return t=mJ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mJ(e){var t=hJ(e,"string");return fu(t)=="symbol"?t:t+""}function hJ(e,t){if(fu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(fu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function vJ(e,t){if(e==null)return{};var n=yJ(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function yJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var gJ=function(t,n,r,a,o,i){return"M".concat(t,",").concat(o,"v").concat(a,"M").concat(i,",").concat(n,"h").concat(r)},xJ=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,o=a===void 0?0:a,i=t.top,s=i===void 0?0:i,l=t.left,u=l===void 0?0:l,f=t.width,c=f===void 0?0:f,p=t.height,d=p===void 0?0:p,h=t.className,m=vJ(t,fJ),g=pJ({x:r,y:o,top:s,left:u,width:c,height:d},m);return!V(r)||!V(o)||!V(c)||!V(d)||!V(s)||!V(u)?null:C.createElement("path",cy({},re(g,!0),{className:ue("recharts-cross",h),d:gJ(r,o,c,d,s,u)}))},wJ=r7,bJ=wJ(Object.getPrototypeOf,Object),PJ=bJ,SJ=Ur,OJ=PJ,kJ=Wr,_J="[object Object]",AJ=Function.prototype,CJ=Object.prototype,GP=AJ.toString,EJ=CJ.hasOwnProperty,TJ=GP.call(Object);function jJ(e){if(!kJ(e)||SJ(e)!=_J)return!1;var t=OJ(e);if(t===null)return!0;var n=EJ.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&GP.call(n)==TJ}var $J=jJ;const NJ=Ce($J);var MJ=Ur,RJ=Wr,IJ="[object Boolean]";function DJ(e){return e===!0||e===!1||RJ(e)&&MJ(e)==IJ}var LJ=DJ;const FJ=Ce(LJ);function pu(e){"@babel/helpers - typeof";return pu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pu(e)}function ap(){return ap=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ap.apply(this,arguments)}function zJ(e,t){return UJ(e)||GJ(e,t)||HJ(e,t)||BJ()}function BJ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function HJ(e,t){if(e){if(typeof e=="string")return Kb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kb(e,t)}}function Kb(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function GJ(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function UJ(e){if(Array.isArray(e))return e}function Xb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Yb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Xb(Object(n),!0).forEach(function(r){WJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function WJ(e,t,n){return t=qJ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qJ(e){var t=VJ(e,"string");return pu(t)=="symbol"?t:t+""}function VJ(e,t){if(pu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(pu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Qb=function(t,n,r,a,o){var i=r-a,s;return s="M ".concat(t,",").concat(n),s+="L ".concat(t+r,",").concat(n),s+="L ".concat(t+r-i/2,",").concat(n+o),s+="L ".concat(t+r-i/2-a,",").concat(n+o),s+="L ".concat(t,",").concat(n," Z"),s},KJ={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},XJ=function(t){var n=Yb(Yb({},KJ),t),r=k.useRef(),a=k.useState(-1),o=zJ(a,2),i=o[0],s=o[1];k.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var x=r.current.getTotalLength();x&&s(x)}catch{}},[]);var l=n.x,u=n.y,f=n.upperWidth,c=n.lowerWidth,p=n.height,d=n.className,h=n.animationEasing,m=n.animationDuration,g=n.animationBegin,v=n.isUpdateAnimationActive;if(l!==+l||u!==+u||f!==+f||c!==+c||p!==+p||f===0&&c===0||p===0)return null;var y=ue("recharts-trapezoid",d);return v?C.createElement(Vn,{canBegin:i>0,from:{upperWidth:0,lowerWidth:0,height:p,x:l,y:u},to:{upperWidth:f,lowerWidth:c,height:p,x:l,y:u},duration:m,animationEasing:h,isActive:v},function(x){var P=x.upperWidth,w=x.lowerWidth,S=x.height,O=x.x,_=x.y;return C.createElement(Vn,{canBegin:i>0,from:"0px ".concat(i===-1?1:i,"px"),to:"".concat(i,"px 0px"),attributeName:"strokeDasharray",begin:g,duration:m,easing:h},C.createElement("path",ap({},re(n,!0),{className:y,d:Qb(O,_,P,w,S),ref:r})))}):C.createElement("g",null,C.createElement("path",ap({},re(n,!0),{className:y,d:Qb(l,u,f,c,p)})))},YJ=["option","shapeType","propTransformer","activeClassName","isActive"];function du(e){"@babel/helpers - typeof";return du=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},du(e)}function QJ(e,t){if(e==null)return{};var n=ZJ(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ZJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Zb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function op(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Zb(Object(n),!0).forEach(function(r){JJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function JJ(e,t,n){return t=eee(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function eee(e){var t=tee(e,"string");return du(t)=="symbol"?t:t+""}function tee(e,t){if(du(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(du(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function nee(e,t){return op(op({},t),e)}function ree(e,t){return e==="symbols"}function Jb(e){var t=e.shapeType,n=e.elementProps;switch(t){case"rectangle":return C.createElement(Ug,n);case"trapezoid":return C.createElement(XJ,n);case"sector":return C.createElement($P,n);case"symbols":if(ree(t))return C.createElement(md,n);break;default:return null}}function aee(e){return k.isValidElement(e)?e.props:e}function fy(e){var t=e.option,n=e.shapeType,r=e.propTransformer,a=r===void 0?nee:r,o=e.activeClassName,i=o===void 0?"recharts-active-shape":o,s=e.isActive,l=QJ(e,YJ),u;if(k.isValidElement(t))u=k.cloneElement(t,op(op({},l),aee(t)));else if(oe(t))u=t(l);else if(NJ(t)&&!FJ(t)){var f=a(t,l);u=C.createElement(Jb,{shapeType:n,elementProps:f})}else{var c=l;u=C.createElement(Jb,{shapeType:n,elementProps:c})}return s?C.createElement(ye,{className:i},u):u}function Cd(e,t){return t!=null&&"trapezoids"in e.props}function Ed(e,t){return t!=null&&"sectors"in e.props}function mu(e,t){return t!=null&&"points"in e.props}function oee(e,t){var n,r,a=e.x===(t==null||(n=t.labelViewBox)===null||n===void 0?void 0:n.x)||e.x===t.x,o=e.y===(t==null||(r=t.labelViewBox)===null||r===void 0?void 0:r.y)||e.y===t.y;return a&&o}function iee(e,t){var n=e.endAngle===t.endAngle,r=e.startAngle===t.startAngle;return n&&r}function see(e,t){var n=e.x===t.x,r=e.y===t.y,a=e.z===t.z;return n&&r&&a}function lee(e,t){var n;return Cd(e,t)?n=oee:Ed(e,t)?n=iee:mu(e,t)&&(n=see),n}function uee(e,t){var n;return Cd(e,t)?n="trapezoids":Ed(e,t)?n="sectors":mu(e,t)&&(n="points"),n}function cee(e,t){if(Cd(e,t)){var n;return(n=t.tooltipPayload)===null||n===void 0||(n=n[0])===null||n===void 0||(n=n.payload)===null||n===void 0?void 0:n.payload}if(Ed(e,t)){var r;return(r=t.tooltipPayload)===null||r===void 0||(r=r[0])===null||r===void 0||(r=r.payload)===null||r===void 0?void 0:r.payload}return mu(e,t)?t.payload:{}}function fee(e){var t=e.activeTooltipItem,n=e.graphicalItem,r=e.itemData,a=uee(n,t),o=cee(n,t),i=r.filter(function(l,u){var f=ko(o,l),c=n.props[a].filter(function(h){var m=lee(n,t);return m(h,t)}),p=n.props[a].indexOf(c[c.length-1]),d=u===p;return f&&d}),s=r.indexOf(i[i.length-1]);return s}var pee=Math.ceil,dee=Math.max;function mee(e,t,n,r){for(var a=-1,o=dee(pee((t-e)/(n||1)),0),i=Array(o);o--;)i[r?o:++a]=e,e+=n;return i}var hee=mee,vee=P7,e2=1/0,yee=17976931348623157e292;function gee(e){if(!e)return e===0?e:0;if(e=vee(e),e===e2||e===-e2){var t=e<0?-1:1;return t*yee}return e===e?e:0}var UP=gee,xee=hee,wee=yd,Qm=UP;function bee(e){return function(t,n,r){return r&&typeof r!="number"&&wee(t,n,r)&&(n=r=void 0),t=Qm(t),n===void 0?(n=t,t=0):n=Qm(n),r=r===void 0?t<n?1:-1:Qm(r),xee(t,n,r,e)}}var Pee=bee,See=Pee,Oee=See(),kee=Oee;const ip=Ce(kee);function hu(e){"@babel/helpers - typeof";return hu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hu(e)}function t2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function n2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?t2(Object(n),!0).forEach(function(r){WP(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function WP(e,t,n){return t=_ee(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _ee(e){var t=Aee(e,"string");return hu(t)=="symbol"?t:t+""}function Aee(e,t){if(hu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(hu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Cee=["Webkit","Moz","O","ms"],Eee=function(t,n){var r=t.replace(/(\w)/,function(o){return o.toUpperCase()}),a=Cee.reduce(function(o,i){return n2(n2({},o),{},WP({},i+r,n))},{});return a[t]=n,a};function qi(e){"@babel/helpers - typeof";return qi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qi(e)}function sp(){return sp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sp.apply(this,arguments)}function r2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Zm(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?r2(Object(n),!0).forEach(function(r){Xt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Tee(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,VP(r.key),r)}}function jee(e,t,n){return t&&a2(e.prototype,t),n&&a2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function $ee(e,t,n){return t=lp(t),Nee(e,qP()?Reflect.construct(t,n||[],lp(e).constructor):t.apply(e,n))}function Nee(e,t){if(t&&(qi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Mee(e)}function Mee(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function qP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(qP=function(){return!!e})()}function lp(e){return lp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},lp(e)}function Ree(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&py(e,t)}function py(e,t){return py=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},py(e,t)}function Xt(e,t,n){return t=VP(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function VP(e){var t=Iee(e,"string");return qi(t)=="symbol"?t:t+""}function Iee(e,t){if(qi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(qi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Dee=function(t){var n=t.data,r=t.startIndex,a=t.endIndex,o=t.x,i=t.width,s=t.travellerWidth;if(!n||!n.length)return{};var l=n.length,u=dl().domain(ip(0,l)).range([o,o+i-s]),f=u.domain().map(function(c){return u(c)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:u(r),endX:u(a),scale:u,scaleValues:f}},o2=function(t){return t.changedTouches&&!!t.changedTouches.length},Vi=function(e){function t(n){var r;return Tee(this,t),r=$ee(this,t,[n]),Xt(r,"handleDrag",function(a){r.leaveTimer&&(clearTimeout(r.leaveTimer),r.leaveTimer=null),r.state.isTravellerMoving?r.handleTravellerMove(a):r.state.isSlideMoving&&r.handleSlideDrag(a)}),Xt(r,"handleTouchMove",function(a){a.changedTouches!=null&&a.changedTouches.length>0&&r.handleDrag(a.changedTouches[0])}),Xt(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,o=a.endIndex,i=a.onDragEnd,s=a.startIndex;i==null||i({endIndex:o,startIndex:s})}),r.detachDragEndListener()}),Xt(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Xt(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Xt(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Xt(r,"handleSlideDragStart",function(a){var o=o2(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:o.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return Ree(t,e),jee(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,o=r.endX,i=this.state.scaleValues,s=this.props,l=s.gap,u=s.data,f=u.length-1,c=Math.min(a,o),p=Math.max(a,o),d=t.getIndexInRange(i,c),h=t.getIndexInRange(i,p);return{startIndex:d-d%l,endIndex:h===f?f:h-h%l}}},{key:"getTextOfTick",value:function(r){var a=this.props,o=a.data,i=a.tickFormatter,s=a.dataKey,l=st(o[r],s,r);return oe(i)?i(l,r):l}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,o=a.slideMoveStartX,i=a.startX,s=a.endX,l=this.props,u=l.x,f=l.width,c=l.travellerWidth,p=l.startIndex,d=l.endIndex,h=l.onChange,m=r.pageX-o;m>0?m=Math.min(m,u+f-c-s,u+f-c-i):m<0&&(m=Math.max(m,u-i,u-s));var g=this.getIndex({startX:i+m,endX:s+m});(g.startIndex!==p||g.endIndex!==d)&&h&&h(g),this.setState({startX:i+m,endX:s+m,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var o=o2(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:o.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,o=a.brushMoveStartX,i=a.movingTravellerId,s=a.endX,l=a.startX,u=this.state[i],f=this.props,c=f.x,p=f.width,d=f.travellerWidth,h=f.onChange,m=f.gap,g=f.data,v={startX:this.state.startX,endX:this.state.endX},y=r.pageX-o;y>0?y=Math.min(y,c+p-d-u):y<0&&(y=Math.max(y,c-u)),v[i]=u+y;var x=this.getIndex(v),P=x.startIndex,w=x.endIndex,S=function(){var _=g.length-1;return i==="startX"&&(s>l?P%m===0:w%m===0)||s<l&&w===_||i==="endX"&&(s>l?w%m===0:P%m===0)||s>l&&w===_};this.setState(Xt(Xt({},i,u+y),"brushMoveStartX",r.pageX),function(){h&&S()&&h(x)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var o=this,i=this.state,s=i.scaleValues,l=i.startX,u=i.endX,f=this.state[a],c=s.indexOf(f);if(c!==-1){var p=c+r;if(!(p===-1||p>=s.length)){var d=s[p];a==="startX"&&d>=u||a==="endX"&&d<=l||this.setState(Xt({},a,d),function(){o.props.onChange(o.getIndex({startX:o.state.startX,endX:o.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,o=r.y,i=r.width,s=r.height,l=r.fill,u=r.stroke;return C.createElement("rect",{stroke:u,fill:l,x:a,y:o,width:i,height:s})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,o=r.y,i=r.width,s=r.height,l=r.data,u=r.children,f=r.padding,c=k.Children.only(u);return c?C.cloneElement(c,{x:a,y:o,width:i,height:s,margin:f,compact:!0,data:l}):null}},{key:"renderTravellerLayer",value:function(r,a){var o,i,s=this,l=this.props,u=l.y,f=l.travellerWidth,c=l.height,p=l.traveller,d=l.ariaLabel,h=l.data,m=l.startIndex,g=l.endIndex,v=Math.max(r,this.props.x),y=Zm(Zm({},re(this.props,!1)),{},{x:v,y:u,width:f,height:c}),x=d||"Min value: ".concat((o=h[m])===null||o===void 0?void 0:o.name,", Max value: ").concat((i=h[g])===null||i===void 0?void 0:i.name);return C.createElement(ye,{tabIndex:0,role:"slider","aria-label":x,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(w){["ArrowLeft","ArrowRight"].includes(w.key)&&(w.preventDefault(),w.stopPropagation(),s.handleTravellerMoveKeyboard(w.key==="ArrowRight"?1:-1,a))},onFocus:function(){s.setState({isTravellerFocused:!0})},onBlur:function(){s.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(p,y))}},{key:"renderSlide",value:function(r,a){var o=this.props,i=o.y,s=o.height,l=o.stroke,u=o.travellerWidth,f=Math.min(r,a)+u,c=Math.max(Math.abs(a-r)-u,0);return C.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:l,fillOpacity:.2,x:f,y:i,width:c,height:s})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,o=r.endIndex,i=r.y,s=r.height,l=r.travellerWidth,u=r.stroke,f=this.state,c=f.startX,p=f.endX,d=5,h={pointerEvents:"none",fill:u};return C.createElement(ye,{className:"recharts-brush-texts"},C.createElement(Df,sp({textAnchor:"end",verticalAnchor:"middle",x:Math.min(c,p)-d,y:i+s/2},h),this.getTextOfTick(a)),C.createElement(Df,sp({textAnchor:"start",verticalAnchor:"middle",x:Math.max(c,p)+l+d,y:i+s/2},h),this.getTextOfTick(o)))}},{key:"render",value:function(){var r=this.props,a=r.data,o=r.className,i=r.children,s=r.x,l=r.y,u=r.width,f=r.height,c=r.alwaysShowText,p=this.state,d=p.startX,h=p.endX,m=p.isTextActive,g=p.isSlideMoving,v=p.isTravellerMoving,y=p.isTravellerFocused;if(!a||!a.length||!V(s)||!V(l)||!V(u)||!V(f)||u<=0||f<=0)return null;var x=ue("recharts-brush",o),P=C.Children.count(i)===1,w=Eee("userSelect","none");return C.createElement(ye,{className:x,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:w},this.renderBackground(),P&&this.renderPanorama(),this.renderSlide(d,h),this.renderTravellerLayer(d,"startX"),this.renderTravellerLayer(h,"endX"),(m||g||v||y||c)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,o=r.y,i=r.width,s=r.height,l=r.stroke,u=Math.floor(o+s/2)-1;return C.createElement(C.Fragment,null,C.createElement("rect",{x:a,y:o,width:i,height:s,fill:l,stroke:"none"}),C.createElement("line",{x1:a+1,y1:u,x2:a+i-1,y2:u,fill:"none",stroke:"#fff"}),C.createElement("line",{x1:a+1,y1:u+2,x2:a+i-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var o;return C.isValidElement(r)?o=C.cloneElement(r,a):oe(r)?o=r(a):o=t.renderDefaultTraveller(a),o}},{key:"getDerivedStateFromProps",value:function(r,a){var o=r.data,i=r.width,s=r.x,l=r.travellerWidth,u=r.updateId,f=r.startIndex,c=r.endIndex;if(o!==a.prevData||u!==a.prevUpdateId)return Zm({prevData:o,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:i},o&&o.length?Dee({data:o,width:i,x:s,travellerWidth:l,startIndex:f,endIndex:c}):{scale:null,scaleValues:null});if(a.scale&&(i!==a.prevWidth||s!==a.prevX||l!==a.prevTravellerWidth)){a.scale.range([s,s+i-l]);var p=a.scale.domain().map(function(d){return a.scale(d)});return{prevData:o,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:i,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:p}}return null}},{key:"getIndexInRange",value:function(r,a){for(var o=r.length,i=0,s=o-1;s-i>1;){var l=Math.floor((i+s)/2);r[l]>a?s=l:i=l}return a>=r[s]?s:i}}])}(k.PureComponent);Xt(Vi,"displayName","Brush");Xt(Vi,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var Lee=hg;function Fee(e,t){var n;return Lee(e,function(r,a,o){return n=t(r,a,o),!n}),!!n}var zee=Fee,Bee=X8,Hee=Ia,Gee=zee,Uee=Vt,Wee=yd;function qee(e,t,n){var r=Uee(e)?Bee:Gee;return n&&Wee(e,t,n)&&(t=void 0),r(e,Hee(t))}var Vee=qee;const Kee=Ce(Vee);var mr=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},i2=y7;function Xee(e,t,n){t=="__proto__"&&i2?i2(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var Yee=Xee,Qee=Yee,Zee=h7,Jee=Ia;function ete(e,t){var n={};return t=Jee(t),Zee(e,function(r,a,o){Qee(n,a,t(r,a,o))}),n}var tte=ete;const nte=Ce(tte);function rte(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}var ate=rte,ote=hg;function ite(e,t){var n=!0;return ote(e,function(r,a,o){return n=!!t(r,a,o),n}),n}var ste=ite,lte=ate,ute=ste,cte=Ia,fte=Vt,pte=yd;function dte(e,t,n){var r=fte(e)?lte:ute;return n&&pte(e,t,n)&&(t=void 0),r(e,cte(t))}var mte=dte;const KP=Ce(mte);var hte=["x","y"];function vu(e){"@babel/helpers - typeof";return vu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vu(e)}function dy(){return dy=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},dy.apply(this,arguments)}function s2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?s2(Object(n),!0).forEach(function(r){vte(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function vte(e,t,n){return t=yte(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yte(e){var t=gte(e,"string");return vu(t)=="symbol"?t:t+""}function gte(e,t){if(vu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(vu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function xte(e,t){if(e==null)return{};var n=wte(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function wte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function bte(e,t){var n=e.x,r=e.y,a=xte(e,hte),o="".concat(n),i=parseInt(o,10),s="".concat(r),l=parseInt(s,10),u="".concat(t.height||a.height),f=parseInt(u,10),c="".concat(t.width||a.width),p=parseInt(c,10);return Ys(Ys(Ys(Ys(Ys({},t),a),i?{x:i}:{}),l?{y:l}:{}),{},{height:f,width:p,name:t.name,radius:t.radius})}function l2(e){return C.createElement(fy,dy({shapeType:"rectangle",propTransformer:bte,activeClassName:"recharts-active-bar"},e))}var Pte=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var o=V(r)||FM(r);return o?t(r,a):(o||Ao(),n)}},Ste=["value","background"],XP;function Ki(e){"@babel/helpers - typeof";return Ki=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ki(e)}function Ote(e,t){if(e==null)return{};var n=kte(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function kte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function up(){return up=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},up.apply(this,arguments)}function u2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Je(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?u2(Object(n),!0).forEach(function(r){ma(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function _te(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,QP(r.key),r)}}function Ate(e,t,n){return t&&c2(e.prototype,t),n&&c2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Cte(e,t,n){return t=cp(t),Ete(e,YP()?Reflect.construct(t,n||[],cp(e).constructor):t.apply(e,n))}function Ete(e,t){if(t&&(Ki(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Tte(e)}function Tte(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function YP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(YP=function(){return!!e})()}function cp(e){return cp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},cp(e)}function jte(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&my(e,t)}function my(e,t){return my=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},my(e,t)}function ma(e,t,n){return t=QP(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function QP(e){var t=$te(e,"string");return Ki(t)=="symbol"?t:t+""}function $te(e,t){if(Ki(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ki(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Vr=function(e){function t(){var n;_te(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=Cte(this,t,[].concat(a)),ma(n,"state",{isAnimationFinished:!1}),ma(n,"id",$o("recharts-bar-")),ma(n,"handleAnimationEnd",function(){var i=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),i&&i()}),ma(n,"handleAnimationStart",function(){var i=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),i&&i()}),n}return jte(t,e),Ate(t,[{key:"renderRectanglesStatically",value:function(r){var a=this,o=this.props,i=o.shape,s=o.dataKey,l=o.activeIndex,u=o.activeBar,f=re(this.props,!1);return r&&r.map(function(c,p){var d=p===l,h=d?u:i,m=Je(Je(Je({},f),c),{},{isActive:d,option:h,index:p,dataKey:s,onAnimationStart:a.handleAnimationStart,onAnimationEnd:a.handleAnimationEnd});return C.createElement(ye,up({className:"recharts-bar-rectangle"},Fl(a.props,c,p),{key:"rectangle-".concat(c==null?void 0:c.x,"-").concat(c==null?void 0:c.y,"-").concat(c==null?void 0:c.value,"-").concat(p)}),C.createElement(l2,m))})}},{key:"renderRectanglesWithAnimation",value:function(){var r=this,a=this.props,o=a.data,i=a.layout,s=a.isAnimationActive,l=a.animationBegin,u=a.animationDuration,f=a.animationEasing,c=a.animationId,p=this.state.prevData;return C.createElement(Vn,{begin:l,duration:u,isActive:s,easing:f,from:{t:0},to:{t:1},key:"bar-".concat(c),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(d){var h=d.t,m=o.map(function(g,v){var y=p&&p[v];if(y){var x=Xe(y.x,g.x),P=Xe(y.y,g.y),w=Xe(y.width,g.width),S=Xe(y.height,g.height);return Je(Je({},g),{},{x:x(h),y:P(h),width:w(h),height:S(h)})}if(i==="horizontal"){var O=Xe(0,g.height),_=O(h);return Je(Je({},g),{},{y:g.y+g.height-_,height:_})}var A=Xe(0,g.width),j=A(h);return Je(Je({},g),{},{width:j})});return C.createElement(ye,null,r.renderRectanglesStatically(m))})}},{key:"renderRectangles",value:function(){var r=this.props,a=r.data,o=r.isAnimationActive,i=this.state.prevData;return o&&a&&a.length&&(!i||!ko(i,a))?this.renderRectanglesWithAnimation():this.renderRectanglesStatically(a)}},{key:"renderBackground",value:function(){var r=this,a=this.props,o=a.data,i=a.dataKey,s=a.activeIndex,l=re(this.props.background,!1);return o.map(function(u,f){u.value;var c=u.background,p=Ote(u,Ste);if(!c)return null;var d=Je(Je(Je(Je(Je({},p),{},{fill:"#eee"},c),l),Fl(r.props,u,f)),{},{onAnimationStart:r.handleAnimationStart,onAnimationEnd:r.handleAnimationEnd,dataKey:i,index:f,className:"recharts-bar-background-rectangle"});return C.createElement(l2,up({key:"background-bar-".concat(f),option:r.props.background,isActive:f===s},d))})}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var o=this.props,i=o.data,s=o.xAxis,l=o.yAxis,u=o.layout,f=o.children,c=qt(f,Es);if(!c)return null;var p=u==="vertical"?i[0].height/2:i[0].width/2,d=function(g,v){var y=Array.isArray(g.value)?g.value[1]:g.value;return{x:g.x,y:g.y,value:y,errorVal:st(g,v)}},h={clipPath:r?"url(#clipPath-".concat(a,")"):null};return C.createElement(ye,h,c.map(function(m){return C.cloneElement(m,{key:"error-bar-".concat(a,"-").concat(m.props.dataKey),data:i,xAxis:s,yAxis:l,layout:u,offset:p,dataPointFormatter:d})}))}},{key:"render",value:function(){var r=this.props,a=r.hide,o=r.data,i=r.className,s=r.xAxis,l=r.yAxis,u=r.left,f=r.top,c=r.width,p=r.height,d=r.isAnimationActive,h=r.background,m=r.id;if(a||!o||!o.length)return null;var g=this.state.isAnimationFinished,v=ue("recharts-bar",i),y=s&&s.allowDataOverflow,x=l&&l.allowDataOverflow,P=y||x,w=te(m)?this.id:m;return C.createElement(ye,{className:v},y||x?C.createElement("defs",null,C.createElement("clipPath",{id:"clipPath-".concat(w)},C.createElement("rect",{x:y?u:u-c/2,y:x?f:f-p/2,width:y?c:c*2,height:x?p:p*2}))):null,C.createElement(ye,{className:"recharts-bar-rectangles",clipPath:P?"url(#clipPath-".concat(w,")"):null},h?this.renderBackground():null,this.renderRectangles()),this.renderErrorBar(P,w),(!d||g)&&dr.renderCallByParent(this.props,o))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curData:r.data,prevData:a.curData}:r.data!==a.curData?{curData:r.data}:null}}])}(k.PureComponent);XP=Vr;ma(Vr,"displayName","Bar");ma(Vr,"defaultProps",{xAxisId:0,yAxisId:0,legendType:"rect",minPointSize:0,hide:!1,data:[],layout:"vertical",activeBar:!1,isAnimationActive:!Da.isSsr,animationBegin:0,animationDuration:400,animationEasing:"ease"});ma(Vr,"getComposedData",function(e){var t=e.props,n=e.item,r=e.barPosition,a=e.bandSize,o=e.xAxis,i=e.yAxis,s=e.xAxisTicks,l=e.yAxisTicks,u=e.stackedData,f=e.dataStartIndex,c=e.displayedData,p=e.offset,d=uY(r,n);if(!d)return null;var h=t.layout,m=n.type.defaultProps,g=m!==void 0?Je(Je({},m),n.props):n.props,v=g.dataKey,y=g.children,x=g.minPointSize,P=h==="horizontal"?i:o,w=u?P.scale.domain():null,S=yY({numericAxis:P}),O=qt(y,gg),_=c.map(function(A,j){var E,T,N,M,I,R;u?E=cY(u[f+j],w):(E=st(A,v),Array.isArray(E)||(E=[S,E]));var L=Pte(x,XP.defaultProps.minPointSize)(E[1],j);if(h==="horizontal"){var $,D=[i.scale(E[0]),i.scale(E[1])],H=D[0],W=D[1];T=ub({axis:o,ticks:s,bandSize:a,offset:d.offset,entry:A,index:j}),N=($=W??H)!==null&&$!==void 0?$:void 0,M=d.size;var G=H-W;if(I=Number.isNaN(G)?0:G,R={x:T,y:i.y,width:M,height:i.height},Math.abs(L)>0&&Math.abs(I)<Math.abs(L)){var Z=Dn(I||L)*(Math.abs(L)-Math.abs(I));N-=Z,I+=Z}}else{var ie=[o.scale(E[0]),o.scale(E[1])],ve=ie[0],Pe=ie[1];if(T=ve,N=ub({axis:i,ticks:l,bandSize:a,offset:d.offset,entry:A,index:j}),M=Pe-ve,I=d.size,R={x:o.x,y:N,width:o.width,height:I},Math.abs(L)>0&&Math.abs(M)<Math.abs(L)){var J=Dn(M||L)*(Math.abs(L)-Math.abs(M));M+=J}}return Je(Je(Je({},A),{},{x:T,y:N,width:M,height:I,value:u?E:E[1],payload:A,background:R},O&&O[j]&&O[j].props),{},{tooltipPayload:[EP(n,A)],tooltipPosition:{x:T+M/2,y:N+I/2}})});return Je({data:_,layout:h},p)});function yu(e){"@babel/helpers - typeof";return yu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yu(e)}function Nte(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ZP(r.key),r)}}function Mte(e,t,n){return t&&f2(e.prototype,t),n&&f2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function p2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Nn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?p2(Object(n),!0).forEach(function(r){Td(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Td(e,t,n){return t=ZP(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ZP(e){var t=Rte(e,"string");return yu(t)=="symbol"?t:t+""}function Rte(e,t){if(yu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(yu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var jd=function(t,n,r,a,o){var i=t.width,s=t.height,l=t.layout,u=t.children,f=Object.keys(n),c={left:r.left,leftMirror:r.left,right:i-r.right,rightMirror:i-r.right,top:r.top,topMirror:r.top,bottom:s-r.bottom,bottomMirror:s-r.bottom},p=!!Qt(u,Vr);return f.reduce(function(d,h){var m=n[h],g=m.orientation,v=m.domain,y=m.padding,x=y===void 0?{}:y,P=m.mirror,w=m.reversed,S="".concat(g).concat(P?"Mirror":""),O,_,A,j,E;if(m.type==="number"&&(m.padding==="gap"||m.padding==="no-gap")){var T=v[1]-v[0],N=1/0,M=m.categoricalDomain.sort(GM);if(M.forEach(function(ie,ve){ve>0&&(N=Math.min((ie||0)-(M[ve-1]||0),N))}),Number.isFinite(N)){var I=N/T,R=m.layout==="vertical"?r.height:r.width;if(m.padding==="gap"&&(O=I*R/2),m.padding==="no-gap"){var L=Oo(t.barCategoryGap,I*R),$=I*R/2;O=$-L-($-L)/R*L}}}a==="xAxis"?_=[r.left+(x.left||0)+(O||0),r.left+r.width-(x.right||0)-(O||0)]:a==="yAxis"?_=l==="horizontal"?[r.top+r.height-(x.bottom||0),r.top+(x.top||0)]:[r.top+(x.top||0)+(O||0),r.top+r.height-(x.bottom||0)-(O||0)]:_=m.range,w&&(_=[_[1],_[0]]);var D=sY(m,o,p),H=D.scale,W=D.realScaleType;H.domain(v).range(_),lY(H);var G=vY(H,Nn(Nn({},m),{},{realScaleType:W}));a==="xAxis"?(E=g==="top"&&!P||g==="bottom"&&P,A=r.left,j=c[S]-E*m.height):a==="yAxis"&&(E=g==="left"&&!P||g==="right"&&P,A=c[S]-E*m.width,j=r.top);var Z=Nn(Nn(Nn({},m),G),{},{realScaleType:W,x:A,y:j,scale:H,width:a==="xAxis"?r.width:m.width,height:a==="yAxis"?r.height:m.height});return Z.bandSize=Qf(Z,G),!m.hide&&a==="xAxis"?c[S]+=(E?-1:1)*Z.height:m.hide||(c[S]+=(E?-1:1)*Z.width),Nn(Nn({},d),{},Td({},h,Z))},{})},JP=function(t,n){var r=t.x,a=t.y,o=n.x,i=n.y;return{x:Math.min(r,o),y:Math.min(a,i),width:Math.abs(o-r),height:Math.abs(i-a)}},Ite=function(t){var n=t.x1,r=t.y1,a=t.x2,o=t.y2;return JP({x:n,y:r},{x:a,y:o})},eS=function(){function e(t){Nte(this,e),this.scale=t}return Mte(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,o=r.position;if(n!==void 0){if(o)switch(o){case"start":return this.scale(n);case"middle":{var i=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+i}case"end":{var s=this.bandwidth?this.bandwidth():0;return this.scale(n)+s}default:return this.scale(n)}if(a){var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],o=r[r.length-1];return a<=o?n>=a&&n<=o:n>=o&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])}();Td(eS,"EPS",1e-4);var Wg=function(t){var n=Object.keys(t).reduce(function(r,a){return Nn(Nn({},r),{},Td({},a,eS.create(t[a])))},{});return Nn(Nn({},n),{},{apply:function(a){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=o.bandAware,s=o.position;return nte(a,function(l,u){return n[u].apply(l,{bandAware:i,position:s})})},isInRange:function(a){return KP(a,function(o,i){return n[i].isInRange(o)})}})};function Dte(e){return(e%180+180)%180}var Lte=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=Dte(a),i=o*Math.PI/180,s=Math.atan(r/n),l=i>s&&i<Math.PI-s?r/Math.sin(i):n/Math.cos(i);return Math.abs(l)},Fte=Ia,zte=Nu,Bte=hd;function Hte(e){return function(t,n,r){var a=Object(t);if(!zte(t)){var o=Fte(n);t=Bte(t),n=function(s){return o(a[s],s,a)}}var i=e(t,n,r);return i>-1?a[o?t[i]:i]:void 0}}var Gte=Hte,Ute=UP;function Wte(e){var t=Ute(e),n=t%1;return t===t?n?t-n:t:0}var qte=Wte,Vte=u7,Kte=Ia,Xte=qte,Yte=Math.max;function Qte(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var a=n==null?0:Xte(n);return a<0&&(a=Yte(r+a,0)),Vte(e,Kte(t),a)}var Zte=Qte,Jte=Gte,ene=Zte,tne=Jte(ene),nne=tne;const rne=Ce(nne);var ane=WN(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),qg=k.createContext(void 0),Vg=k.createContext(void 0),tS=k.createContext(void 0),nS=k.createContext({}),rS=k.createContext(void 0),aS=k.createContext(0),oS=k.createContext(0),d2=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,o=n.offset,i=t.clipPathId,s=t.children,l=t.width,u=t.height,f=ane(o);return C.createElement(qg.Provider,{value:r},C.createElement(Vg.Provider,{value:a},C.createElement(nS.Provider,{value:o},C.createElement(tS.Provider,{value:f},C.createElement(rS.Provider,{value:i},C.createElement(aS.Provider,{value:u},C.createElement(oS.Provider,{value:l},s)))))))},one=function(){return k.useContext(rS)},iS=function(t){var n=k.useContext(qg);n==null&&Ao();var r=n[t];return r==null&&Ao(),r},ine=function(){var t=k.useContext(qg);return oa(t)},sne=function(){var t=k.useContext(Vg),n=rne(t,function(r){return KP(r.domain,Number.isFinite)});return n||oa(t)},sS=function(t){var n=k.useContext(Vg);n==null&&Ao();var r=n[t];return r==null&&Ao(),r},lne=function(){var t=k.useContext(tS);return t},une=function(){return k.useContext(nS)},Kg=function(){return k.useContext(oS)},Xg=function(){return k.useContext(aS)};function Xi(e){"@babel/helpers - typeof";return Xi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xi(e)}function cne(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function fne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,uS(r.key),r)}}function pne(e,t,n){return t&&fne(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function dne(e,t,n){return t=fp(t),mne(e,lS()?Reflect.construct(t,n||[],fp(e).constructor):t.apply(e,n))}function mne(e,t){if(t&&(Xi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return hne(e)}function hne(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function lS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(lS=function(){return!!e})()}function fp(e){return fp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},fp(e)}function vne(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&hy(e,t)}function hy(e,t){return hy=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},hy(e,t)}function m2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function h2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?m2(Object(n),!0).forEach(function(r){Yg(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Yg(e,t,n){return t=uS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uS(e){var t=yne(e,"string");return Xi(t)=="symbol"?t:t+""}function yne(e,t){if(Xi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Xi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function gne(e,t){return Pne(e)||bne(e,t)||wne(e,t)||xne()}function xne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wne(e,t){if(e){if(typeof e=="string")return v2(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v2(e,t)}}function v2(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function bne(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function Pne(e){if(Array.isArray(e))return e}function vy(){return vy=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vy.apply(this,arguments)}var Sne=function(t,n){var r;return C.isValidElement(t)?r=C.cloneElement(t,n):oe(t)?r=t(n):r=C.createElement("line",vy({},n,{className:"recharts-reference-line-line"})),r},One=function(t,n,r,a,o,i,s,l,u){var f=o.x,c=o.y,p=o.width,d=o.height;if(r){var h=u.y,m=t.y.apply(h,{position:i});if(mr(u,"discard")&&!t.y.isInRange(m))return null;var g=[{x:f+p,y:m},{x:f,y:m}];return l==="left"?g.reverse():g}if(n){var v=u.x,y=t.x.apply(v,{position:i});if(mr(u,"discard")&&!t.x.isInRange(y))return null;var x=[{x:y,y:c+d},{x:y,y:c}];return s==="top"?x.reverse():x}if(a){var P=u.segment,w=P.map(function(S){return t.apply(S,{position:i})});return mr(u,"discard")&&Kee(w,function(S){return!t.isInRange(S)})?null:w}return null};function kne(e){var t=e.x,n=e.y,r=e.segment,a=e.xAxisId,o=e.yAxisId,i=e.shape,s=e.className,l=e.alwaysShow,u=one(),f=iS(a),c=sS(o),p=lne();if(!u||!p)return null;$r(l===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var d=Wg({x:f.scale,y:c.scale}),h=it(t),m=it(n),g=r&&r.length===2,v=One(d,h,m,g,p,e.position,f.orientation,c.orientation,e);if(!v)return null;var y=gne(v,2),x=y[0],P=x.x,w=x.y,S=y[1],O=S.x,_=S.y,A=mr(e,"hidden")?"url(#".concat(u,")"):void 0,j=h2(h2({clipPath:A},re(e,!0)),{},{x1:P,y1:w,x2:O,y2:_});return C.createElement(ye,{className:ue("recharts-reference-line",s)},Sne(i,j),At.renderCallByParent(e,Ite({x1:P,y1:w,x2:O,y2:_})))}var Qg=function(e){function t(){return cne(this,t),dne(this,t,arguments)}return vne(t,e),pne(t,[{key:"render",value:function(){return C.createElement(kne,this.props)}}])}(C.Component);Yg(Qg,"displayName","ReferenceLine");Yg(Qg,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,fill:"none",stroke:"#ccc",fillOpacity:1,strokeWidth:1,position:"middle"});function yy(){return yy=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yy.apply(this,arguments)}function Yi(e){"@babel/helpers - typeof";return Yi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yi(e)}function y2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function g2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?y2(Object(n),!0).forEach(function(r){$d(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function _ne(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ane(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,fS(r.key),r)}}function Cne(e,t,n){return t&&Ane(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ene(e,t,n){return t=pp(t),Tne(e,cS()?Reflect.construct(t,n||[],pp(e).constructor):t.apply(e,n))}function Tne(e,t){if(t&&(Yi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return jne(e)}function jne(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function cS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(cS=function(){return!!e})()}function pp(e){return pp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},pp(e)}function $ne(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&gy(e,t)}function gy(e,t){return gy=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},gy(e,t)}function $d(e,t,n){return t=fS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fS(e){var t=Nne(e,"string");return Yi(t)=="symbol"?t:t+""}function Nne(e,t){if(Yi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Yi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Mne=function(t){var n=t.x,r=t.y,a=t.xAxis,o=t.yAxis,i=Wg({x:a.scale,y:o.scale}),s=i.apply({x:n,y:r},{bandAware:!0});return mr(t,"discard")&&!i.isInRange(s)?null:s},Nd=function(e){function t(){return _ne(this,t),Ene(this,t,arguments)}return $ne(t,e),Cne(t,[{key:"render",value:function(){var r=this.props,a=r.x,o=r.y,i=r.r,s=r.alwaysShow,l=r.clipPathId,u=it(a),f=it(o);if($r(s===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.'),!u||!f)return null;var c=Mne(this.props);if(!c)return null;var p=c.x,d=c.y,h=this.props,m=h.shape,g=h.className,v=mr(this.props,"hidden")?"url(#".concat(l,")"):void 0,y=g2(g2({clipPath:v},re(this.props,!0)),{},{cx:p,cy:d});return C.createElement(ye,{className:ue("recharts-reference-dot",g)},t.renderDot(m,y),At.renderCallByParent(this.props,{x:p-i,y:d-i,width:2*i,height:2*i}))}}])}(C.Component);$d(Nd,"displayName","ReferenceDot");$d(Nd,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#fff",stroke:"#ccc",fillOpacity:1,strokeWidth:1});$d(Nd,"renderDot",function(e,t){var n;return C.isValidElement(e)?n=C.cloneElement(e,t):oe(e)?n=e(t):n=C.createElement(Ad,yy({},t,{cx:t.cx,cy:t.cy,className:"recharts-reference-dot-dot"})),n});function xy(){return xy=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xy.apply(this,arguments)}function Qi(e){"@babel/helpers - typeof";return Qi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qi(e)}function x2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function w2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?x2(Object(n),!0).forEach(function(r){Md(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Rne(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ine(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,dS(r.key),r)}}function Dne(e,t,n){return t&&Ine(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Lne(e,t,n){return t=dp(t),Fne(e,pS()?Reflect.construct(t,n||[],dp(e).constructor):t.apply(e,n))}function Fne(e,t){if(t&&(Qi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return zne(e)}function zne(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function pS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(pS=function(){return!!e})()}function dp(e){return dp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},dp(e)}function Bne(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&wy(e,t)}function wy(e,t){return wy=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},wy(e,t)}function Md(e,t,n){return t=dS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dS(e){var t=Hne(e,"string");return Qi(t)=="symbol"?t:t+""}function Hne(e,t){if(Qi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Qi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Gne=function(t,n,r,a,o){var i=o.x1,s=o.x2,l=o.y1,u=o.y2,f=o.xAxis,c=o.yAxis;if(!f||!c)return null;var p=Wg({x:f.scale,y:c.scale}),d={x:t?p.x.apply(i,{position:"start"}):p.x.rangeMin,y:r?p.y.apply(l,{position:"start"}):p.y.rangeMin},h={x:n?p.x.apply(s,{position:"end"}):p.x.rangeMax,y:a?p.y.apply(u,{position:"end"}):p.y.rangeMax};return mr(o,"discard")&&(!p.isInRange(d)||!p.isInRange(h))?null:JP(d,h)},Rd=function(e){function t(){return Rne(this,t),Lne(this,t,arguments)}return Bne(t,e),Dne(t,[{key:"render",value:function(){var r=this.props,a=r.x1,o=r.x2,i=r.y1,s=r.y2,l=r.className,u=r.alwaysShow,f=r.clipPathId;$r(u===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var c=it(a),p=it(o),d=it(i),h=it(s),m=this.props.shape;if(!c&&!p&&!d&&!h&&!m)return null;var g=Gne(c,p,d,h,this.props);if(!g&&!m)return null;var v=mr(this.props,"hidden")?"url(#".concat(f,")"):void 0;return C.createElement(ye,{className:ue("recharts-reference-area",l)},t.renderRect(m,w2(w2({clipPath:v},re(this.props,!0)),g)),At.renderCallByParent(this.props,g))}}])}(C.Component);Md(Rd,"displayName","ReferenceArea");Md(Rd,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#ccc",fillOpacity:.5,stroke:"none",strokeWidth:1});Md(Rd,"renderRect",function(e,t){var n;return C.isValidElement(e)?n=C.cloneElement(e,t):oe(e)?n=e(t):n=C.createElement(Ug,xy({},t,{className:"recharts-reference-area-rect"})),n});function mS(e,t,n){if(t<1)return[];if(t===1&&n===void 0)return e;for(var r=[],a=0;a<e.length;a+=t)r.push(e[a]);return r}function Une(e,t,n){var r={width:e.width+t.width,height:e.height+t.height};return Lte(r,n)}function Wne(e,t,n){var r=n==="width",a=e.x,o=e.y,i=e.width,s=e.height;return t===1?{start:r?a:o,end:r?a+i:o+s}:{start:r?a+i:o+s,end:r?a:o}}function mp(e,t,n,r,a){if(e*t<e*r||e*t>e*a)return!1;var o=n();return e*(t-e*o/2-r)>=0&&e*(t+e*o/2-a)<=0}function qne(e,t){return mS(e,t+1)}function Vne(e,t,n,r,a){for(var o=(r||[]).slice(),i=t.start,s=t.end,l=0,u=1,f=i,c=function(){var h=r==null?void 0:r[l];if(h===void 0)return{v:mS(r,u)};var m=l,g,v=function(){return g===void 0&&(g=n(h,m)),g},y=h.coordinate,x=l===0||mp(e,y,v,f,s);x||(l=0,f=i,u+=1),x&&(f=y+e*(v()/2+a),l+=u)},p;u<=o.length;)if(p=c(),p)return p.v;return[]}function gu(e){"@babel/helpers - typeof";return gu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gu(e)}function b2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function kt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?b2(Object(n),!0).forEach(function(r){Kne(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Kne(e,t,n){return t=Xne(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Xne(e){var t=Yne(e,"string");return gu(t)=="symbol"?t:t+""}function Yne(e,t){if(gu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(gu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Qne(e,t,n,r,a){for(var o=(r||[]).slice(),i=o.length,s=t.start,l=t.end,u=function(p){var d=o[p],h,m=function(){return h===void 0&&(h=n(d,p)),h};if(p===i-1){var g=e*(d.coordinate+e*m()/2-l);o[p]=d=kt(kt({},d),{},{tickCoord:g>0?d.coordinate-g*e:d.coordinate})}else o[p]=d=kt(kt({},d),{},{tickCoord:d.coordinate});var v=mp(e,d.tickCoord,m,s,l);v&&(l=d.tickCoord-e*(m()/2+a),o[p]=kt(kt({},d),{},{isShow:!0}))},f=i-1;f>=0;f--)u(f);return o}function Zne(e,t,n,r,a,o){var i=(r||[]).slice(),s=i.length,l=t.start,u=t.end;if(o){var f=r[s-1],c=n(f,s-1),p=e*(f.coordinate+e*c/2-u);i[s-1]=f=kt(kt({},f),{},{tickCoord:p>0?f.coordinate-p*e:f.coordinate});var d=mp(e,f.tickCoord,function(){return c},l,u);d&&(u=f.tickCoord-e*(c/2+a),i[s-1]=kt(kt({},f),{},{isShow:!0}))}for(var h=o?s-1:s,m=function(y){var x=i[y],P,w=function(){return P===void 0&&(P=n(x,y)),P};if(y===0){var S=e*(x.coordinate-e*w()/2-l);i[y]=x=kt(kt({},x),{},{tickCoord:S<0?x.coordinate-S*e:x.coordinate})}else i[y]=x=kt(kt({},x),{},{tickCoord:x.coordinate});var O=mp(e,x.tickCoord,w,l,u);O&&(l=x.tickCoord+e*(w()/2+a),i[y]=kt(kt({},x),{},{isShow:!0}))},g=0;g<h;g++)m(g);return i}function Zg(e,t,n){var r=e.tick,a=e.ticks,o=e.viewBox,i=e.minTickGap,s=e.orientation,l=e.interval,u=e.tickFormatter,f=e.unit,c=e.angle;if(!a||!a.length||!r)return[];if(V(l)||Da.isSsr)return qne(a,typeof l=="number"&&V(l)?l:0);var p=[],d=s==="top"||s==="bottom"?"width":"height",h=f&&d==="width"?pl(f,{fontSize:t,letterSpacing:n}):{width:0,height:0},m=function(x,P){var w=oe(u)?u(x.value,P):x.value;return d==="width"?Une(pl(w,{fontSize:t,letterSpacing:n}),h,c):pl(w,{fontSize:t,letterSpacing:n})[d]},g=a.length>=2?Dn(a[1].coordinate-a[0].coordinate):1,v=Wne(o,g,d);return l==="equidistantPreserveStart"?Vne(g,v,m,a,i):(l==="preserveStart"||l==="preserveStartEnd"?p=Zne(g,v,m,a,i,l==="preserveStartEnd"):p=Qne(g,v,m,a,i),p.filter(function(y){return y.isShow}))}var Jne=["viewBox"],ere=["viewBox"],tre=["ticks"];function Zi(e){"@babel/helpers - typeof";return Zi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zi(e)}function ri(){return ri=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ri.apply(this,arguments)}function P2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function nt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?P2(Object(n),!0).forEach(function(r){Jg(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Jm(e,t){if(e==null)return{};var n=nre(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function nre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function rre(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function S2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,vS(r.key),r)}}function are(e,t,n){return t&&S2(e.prototype,t),n&&S2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function ore(e,t,n){return t=hp(t),ire(e,hS()?Reflect.construct(t,n||[],hp(e).constructor):t.apply(e,n))}function ire(e,t){if(t&&(Zi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return sre(e)}function sre(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function hS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(hS=function(){return!!e})()}function hp(e){return hp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},hp(e)}function lre(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&by(e,t)}function by(e,t){return by=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},by(e,t)}function Jg(e,t,n){return t=vS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vS(e){var t=ure(e,"string");return Zi(t)=="symbol"?t:t+""}function ure(e,t){if(Zi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Zi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Ts=function(e){function t(n){var r;return rre(this,t),r=ore(this,t,[n]),r.state={fontSize:"",letterSpacing:""},r}return lre(t,e),are(t,[{key:"shouldComponentUpdate",value:function(r,a){var o=r.viewBox,i=Jm(r,Jne),s=this.props,l=s.viewBox,u=Jm(s,ere);return!mi(o,l)||!mi(i,u)||!mi(a,this.state)}},{key:"componentDidMount",value:function(){var r=this.layerReference;if(r){var a=r.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];a&&this.setState({fontSize:window.getComputedStyle(a).fontSize,letterSpacing:window.getComputedStyle(a).letterSpacing})}}},{key:"getTickLineCoord",value:function(r){var a=this.props,o=a.x,i=a.y,s=a.width,l=a.height,u=a.orientation,f=a.tickSize,c=a.mirror,p=a.tickMargin,d,h,m,g,v,y,x=c?-1:1,P=r.tickSize||f,w=V(r.tickCoord)?r.tickCoord:r.coordinate;switch(u){case"top":d=h=r.coordinate,g=i+ +!c*l,m=g-x*P,y=m-x*p,v=w;break;case"left":m=g=r.coordinate,h=o+ +!c*s,d=h-x*P,v=d-x*p,y=w;break;case"right":m=g=r.coordinate,h=o+ +c*s,d=h+x*P,v=d+x*p,y=w;break;default:d=h=r.coordinate,g=i+ +c*l,m=g+x*P,y=m+x*p,v=w;break}return{line:{x1:d,y1:m,x2:h,y2:g},tick:{x:v,y}}}},{key:"getTickTextAnchor",value:function(){var r=this.props,a=r.orientation,o=r.mirror,i;switch(a){case"left":i=o?"start":"end";break;case"right":i=o?"end":"start";break;default:i="middle";break}return i}},{key:"getTickVerticalAnchor",value:function(){var r=this.props,a=r.orientation,o=r.mirror,i="end";switch(a){case"left":case"right":i="middle";break;case"top":i=o?"start":"end";break;default:i=o?"end":"start";break}return i}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.x,o=r.y,i=r.width,s=r.height,l=r.orientation,u=r.mirror,f=r.axisLine,c=nt(nt(nt({},re(this.props,!1)),re(f,!1)),{},{fill:"none"});if(l==="top"||l==="bottom"){var p=+(l==="top"&&!u||l==="bottom"&&u);c=nt(nt({},c),{},{x1:a,y1:o+p*s,x2:a+i,y2:o+p*s})}else{var d=+(l==="left"&&!u||l==="right"&&u);c=nt(nt({},c),{},{x1:a+d*i,y1:o,x2:a+d*i,y2:o+s})}return C.createElement("line",ri({},c,{className:ue("recharts-cartesian-axis-line",gn(f,"className"))}))}},{key:"renderTicks",value:function(r,a,o){var i=this,s=this.props,l=s.tickLine,u=s.stroke,f=s.tick,c=s.tickFormatter,p=s.unit,d=Zg(nt(nt({},this.props),{},{ticks:r}),a,o),h=this.getTickTextAnchor(),m=this.getTickVerticalAnchor(),g=re(this.props,!1),v=re(f,!1),y=nt(nt({},g),{},{fill:"none"},re(l,!1)),x=d.map(function(P,w){var S=i.getTickLineCoord(P),O=S.line,_=S.tick,A=nt(nt(nt(nt({textAnchor:h,verticalAnchor:m},g),{},{stroke:"none",fill:u},v),_),{},{index:w,payload:P,visibleTicksCount:d.length,tickFormatter:c});return C.createElement(ye,ri({className:"recharts-cartesian-axis-tick",key:"tick-".concat(P.value,"-").concat(P.coordinate,"-").concat(P.tickCoord)},Fl(i.props,P,w)),l&&C.createElement("line",ri({},y,O,{className:ue("recharts-cartesian-axis-tick-line",gn(l,"className"))})),f&&t.renderTickItem(f,A,"".concat(oe(c)?c(P.value,w):P.value).concat(p||"")))});return C.createElement("g",{className:"recharts-cartesian-axis-ticks"},x)}},{key:"render",value:function(){var r=this,a=this.props,o=a.axisLine,i=a.width,s=a.height,l=a.ticksGenerator,u=a.className,f=a.hide;if(f)return null;var c=this.props,p=c.ticks,d=Jm(c,tre),h=p;return oe(l)&&(h=p&&p.length>0?l(this.props):l(d)),i<=0||s<=0||!h||!h.length?null:C.createElement(ye,{className:ue("recharts-cartesian-axis",u),ref:function(g){r.layerReference=g}},o&&this.renderAxisLine(),this.renderTicks(h,this.state.fontSize,this.state.letterSpacing),At.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,o){var i,s=ue(a.className,"recharts-cartesian-axis-tick-value");return C.isValidElement(r)?i=C.cloneElement(r,nt(nt({},a),{},{className:s})):oe(r)?i=r(nt(nt({},a),{},{className:s})):i=C.createElement(Df,ri({},a,{className:"recharts-cartesian-axis-tick-value"}),o),i}}])}(k.Component);Jg(Ts,"displayName","CartesianAxis");Jg(Ts,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var cre=["x1","y1","x2","y2","key"],fre=["offset"];function Co(e){"@babel/helpers - typeof";return Co=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Co(e)}function O2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Ct(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?O2(Object(n),!0).forEach(function(r){pre(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function pre(e,t,n){return t=dre(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dre(e){var t=mre(e,"string");return Co(t)=="symbol"?t:t+""}function mre(e,t){if(Co(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Co(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function to(){return to=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},to.apply(this,arguments)}function k2(e,t){if(e==null)return{};var n=hre(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function hre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var vre=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,o=t.y,i=t.width,s=t.height,l=t.ry;return C.createElement("rect",{x:a,y:o,ry:l,width:i,height:s,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function yS(e,t){var n;if(C.isValidElement(e))n=C.cloneElement(e,t);else if(oe(e))n=e(t);else{var r=t.x1,a=t.y1,o=t.x2,i=t.y2,s=t.key,l=k2(t,cre),u=re(l,!1);u.offset;var f=k2(u,fre);n=C.createElement("line",to({},f,{x1:r,y1:a,x2:o,y2:i,fill:"none",key:s}))}return n}function yre(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,o=e.horizontalPoints;if(!a||!o||!o.length)return null;var i=o.map(function(s,l){var u=Ct(Ct({},e),{},{x1:t,y1:s,x2:t+n,y2:s,key:"line-".concat(l),index:l});return yS(a,u)});return C.createElement("g",{className:"recharts-cartesian-grid-horizontal"},i)}function gre(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,o=e.verticalPoints;if(!a||!o||!o.length)return null;var i=o.map(function(s,l){var u=Ct(Ct({},e),{},{x1:s,y1:t,x2:s,y2:t+n,key:"line-".concat(l),index:l});return yS(a,u)});return C.createElement("g",{className:"recharts-cartesian-grid-vertical"},i)}function xre(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,o=e.width,i=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length)return null;var f=s.map(function(p){return Math.round(p+a-a)}).sort(function(p,d){return p-d});a!==f[0]&&f.unshift(0);var c=f.map(function(p,d){var h=!f[d+1],m=h?a+i-p:f[d+1]-p;if(m<=0)return null;var g=d%t.length;return C.createElement("rect",{key:"react-".concat(d),y:p,x:r,height:m,width:o,stroke:"none",fill:t[g],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return C.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},c)}function wre(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,o=e.x,i=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!n||!r||!r.length)return null;var f=u.map(function(p){return Math.round(p+o-o)}).sort(function(p,d){return p-d});o!==f[0]&&f.unshift(0);var c=f.map(function(p,d){var h=!f[d+1],m=h?o+s-p:f[d+1]-p;if(m<=0)return null;var g=d%r.length;return C.createElement("rect",{key:"react-".concat(d),x:p,y:i,width:m,height:l,stroke:"none",fill:r[g],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return C.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},c)}var bre=function(t,n){var r=t.xAxis,a=t.width,o=t.height,i=t.offset;return AP(Zg(Ct(Ct(Ct({},Ts.defaultProps),r),{},{ticks:Er(r,!0),viewBox:{x:0,y:0,width:a,height:o}})),i.left,i.left+i.width,n)},Pre=function(t,n){var r=t.yAxis,a=t.width,o=t.height,i=t.offset;return AP(Zg(Ct(Ct(Ct({},Ts.defaultProps),r),{},{ticks:Er(r,!0),viewBox:{x:0,y:0,width:a,height:o}})),i.top,i.top+i.height,n)},Ho={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function Ln(e){var t,n,r,a,o,i,s=Kg(),l=Xg(),u=une(),f=Ct(Ct({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Ho.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Ho.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Ho.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:Ho.horizontalFill,vertical:(o=e.vertical)!==null&&o!==void 0?o:Ho.vertical,verticalFill:(i=e.verticalFill)!==null&&i!==void 0?i:Ho.verticalFill,x:V(e.x)?e.x:u.left,y:V(e.y)?e.y:u.top,width:V(e.width)?e.width:u.width,height:V(e.height)?e.height:u.height}),c=f.x,p=f.y,d=f.width,h=f.height,m=f.syncWithTicks,g=f.horizontalValues,v=f.verticalValues,y=ine(),x=sne();if(!V(d)||d<=0||!V(h)||h<=0||!V(c)||c!==+c||!V(p)||p!==+p)return null;var P=f.verticalCoordinatesGenerator||bre,w=f.horizontalCoordinatesGenerator||Pre,S=f.horizontalPoints,O=f.verticalPoints;if((!S||!S.length)&&oe(w)){var _=g&&g.length,A=w({yAxis:x?Ct(Ct({},x),{},{ticks:_?g:x.ticks}):void 0,width:s,height:l,offset:u},_?!0:m);$r(Array.isArray(A),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(Co(A),"]")),Array.isArray(A)&&(S=A)}if((!O||!O.length)&&oe(P)){var j=v&&v.length,E=P({xAxis:y?Ct(Ct({},y),{},{ticks:j?v:y.ticks}):void 0,width:s,height:l,offset:u},j?!0:m);$r(Array.isArray(E),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(Co(E),"]")),Array.isArray(E)&&(O=E)}return C.createElement("g",{className:"recharts-cartesian-grid"},C.createElement(vre,{fill:f.fill,fillOpacity:f.fillOpacity,x:f.x,y:f.y,width:f.width,height:f.height,ry:f.ry}),C.createElement(yre,to({},f,{offset:u,horizontalPoints:S,xAxis:y,yAxis:x})),C.createElement(gre,to({},f,{offset:u,verticalPoints:O,xAxis:y,yAxis:x})),C.createElement(xre,to({},f,{horizontalPoints:S})),C.createElement(wre,to({},f,{verticalPoints:O})))}Ln.displayName="CartesianGrid";var Sre=["type","layout","connectNulls","ref"],Ore=["key"];function Ji(e){"@babel/helpers - typeof";return Ji=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ji(e)}function _2(e,t){if(e==null)return{};var n=kre(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function kre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function vl(){return vl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vl.apply(this,arguments)}function A2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Kt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?A2(Object(n),!0).forEach(function(r){Mn(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):A2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Go(e){return Ere(e)||Cre(e)||Are(e)||_re()}function _re(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Are(e,t){if(e){if(typeof e=="string")return Py(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Py(e,t)}}function Cre(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Ere(e){if(Array.isArray(e))return Py(e)}function Py(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Tre(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function C2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,xS(r.key),r)}}function jre(e,t,n){return t&&C2(e.prototype,t),n&&C2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function $re(e,t,n){return t=vp(t),Nre(e,gS()?Reflect.construct(t,n||[],vp(e).constructor):t.apply(e,n))}function Nre(e,t){if(t&&(Ji(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Mre(e)}function Mre(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function gS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(gS=function(){return!!e})()}function vp(e){return vp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},vp(e)}function Rre(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Sy(e,t)}function Sy(e,t){return Sy=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Sy(e,t)}function Mn(e,t,n){return t=xS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xS(e){var t=Ire(e,"string");return Ji(t)=="symbol"?t:t+""}function Ire(e,t){if(Ji(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ji(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Rt=function(e){function t(){var n;Tre(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=$re(this,t,[].concat(a)),Mn(n,"state",{isAnimationFinished:!0,totalLength:0}),Mn(n,"generateSimpleStrokeDasharray",function(i,s){return"".concat(s,"px ").concat(i-s,"px")}),Mn(n,"getStrokeDasharray",function(i,s,l){var u=l.reduce(function(v,y){return v+y});if(!u)return n.generateSimpleStrokeDasharray(s,i);for(var f=Math.floor(i/u),c=i%u,p=s-i,d=[],h=0,m=0;h<l.length;m+=l[h],++h)if(m+l[h]>c){d=[].concat(Go(l.slice(0,h)),[c-m]);break}var g=d.length%2===0?[0,p]:[p];return[].concat(Go(t.repeat(l,f)),Go(d),g).map(function(v){return"".concat(v,"px")}).join(", ")}),Mn(n,"id",$o("recharts-line-")),Mn(n,"pathRef",function(i){n.mainCurve=i}),Mn(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),Mn(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Rre(t,e),jre(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var o=this.props,i=o.points,s=o.xAxis,l=o.yAxis,u=o.layout,f=o.children,c=qt(f,Es);if(!c)return null;var p=function(m,g){return{x:m.x,y:m.y,value:m.value,errorVal:st(m.payload,g)}},d={clipPath:r?"url(#clipPath-".concat(a,")"):null};return C.createElement(ye,d,c.map(function(h){return C.cloneElement(h,{key:"bar-".concat(h.props.dataKey),data:i,xAxis:s,yAxis:l,layout:u,dataPointFormatter:p})}))}},{key:"renderDots",value:function(r,a,o){var i=this.props.isAnimationActive;if(i&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.dot,u=s.points,f=s.dataKey,c=re(this.props,!1),p=re(l,!0),d=u.map(function(m,g){var v=Kt(Kt(Kt({key:"dot-".concat(g),r:3},c),p),{},{index:g,cx:m.x,cy:m.y,value:m.value,dataKey:f,payload:m.payload,points:u});return t.renderDotItem(l,v)}),h={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(o,")"):null};return C.createElement(ye,vl({className:"recharts-line-dots",key:"dots"},h),d)}},{key:"renderCurveStatically",value:function(r,a,o,i){var s=this.props,l=s.type,u=s.layout,f=s.connectNulls;s.ref;var c=_2(s,Sre),p=Kt(Kt(Kt({},re(c,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(o,")"):null,points:r},i),{},{type:l,layout:u,connectNulls:f});return C.createElement(mo,vl({},p,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var o=this,i=this.props,s=i.points,l=i.strokeDasharray,u=i.isAnimationActive,f=i.animationBegin,c=i.animationDuration,p=i.animationEasing,d=i.animationId,h=i.animateNewValues,m=i.width,g=i.height,v=this.state,y=v.prevPoints,x=v.totalLength;return C.createElement(Vn,{begin:f,duration:c,isActive:u,easing:p,from:{t:0},to:{t:1},key:"line-".concat(d),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(P){var w=P.t;if(y){var S=y.length/s.length,O=s.map(function(T,N){var M=Math.floor(N*S);if(y[M]){var I=y[M],R=Xe(I.x,T.x),L=Xe(I.y,T.y);return Kt(Kt({},T),{},{x:R(w),y:L(w)})}if(h){var $=Xe(m*2,T.x),D=Xe(g/2,T.y);return Kt(Kt({},T),{},{x:$(w),y:D(w)})}return Kt(Kt({},T),{},{x:T.x,y:T.y})});return o.renderCurveStatically(O,r,a)}var _=Xe(0,x),A=_(w),j;if(l){var E="".concat(l).split(/[,\s]+/gim).map(function(T){return parseFloat(T)});j=o.getStrokeDasharray(A,x,E)}else j=o.generateSimpleStrokeDasharray(x,A);return o.renderCurveStatically(s,r,a,{strokeDasharray:j})})}},{key:"renderCurve",value:function(r,a){var o=this.props,i=o.points,s=o.isAnimationActive,l=this.state,u=l.prevPoints,f=l.totalLength;return s&&i&&i.length&&(!u&&f>0||!ko(u,i))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(i,r,a)}},{key:"render",value:function(){var r,a=this.props,o=a.hide,i=a.dot,s=a.points,l=a.className,u=a.xAxis,f=a.yAxis,c=a.top,p=a.left,d=a.width,h=a.height,m=a.isAnimationActive,g=a.id;if(o||!s||!s.length)return null;var v=this.state.isAnimationFinished,y=s.length===1,x=ue("recharts-line",l),P=u&&u.allowDataOverflow,w=f&&f.allowDataOverflow,S=P||w,O=te(g)?this.id:g,_=(r=re(i,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},A=_.r,j=A===void 0?3:A,E=_.strokeWidth,T=E===void 0?2:E,N=w8(i)?i:{},M=N.clipDot,I=M===void 0?!0:M,R=j*2+T;return C.createElement(ye,{className:x},P||w?C.createElement("defs",null,C.createElement("clipPath",{id:"clipPath-".concat(O)},C.createElement("rect",{x:P?p:p-d/2,y:w?c:c-h/2,width:P?d:d*2,height:w?h:h*2})),!I&&C.createElement("clipPath",{id:"clipPath-dots-".concat(O)},C.createElement("rect",{x:p-R/2,y:c-R/2,width:d+R,height:h+R}))):null,!y&&this.renderCurve(S,O),this.renderErrorBar(S,O),(y||i)&&this.renderDots(S,I,O),(!m||v)&&dr.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var o=r.length%2!==0?[].concat(Go(r),[0]):r,i=[],s=0;s<a;++s)i=[].concat(Go(i),Go(o));return i}},{key:"renderDotItem",value:function(r,a){var o;if(C.isValidElement(r))o=C.cloneElement(r,a);else if(oe(r))o=r(a);else{var i=a.key,s=_2(a,Ore),l=ue("recharts-line-dot",typeof r!="boolean"?r.className:"");o=C.createElement(Ad,vl({key:i},s,{className:l}))}return o}}])}(k.PureComponent);Mn(Rt,"displayName","Line");Mn(Rt,"defaultProps",{xAxisId:0,yAxisId:0,connectNulls:!1,activeDot:!0,dot:!0,legendType:"line",stroke:"#3182bd",strokeWidth:1,fill:"#fff",points:[],isAnimationActive:!Da.isSsr,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",hide:!1,label:!1});Mn(Rt,"getComposedData",function(e){var t=e.props,n=e.xAxis,r=e.yAxis,a=e.xAxisTicks,o=e.yAxisTicks,i=e.dataKey,s=e.bandSize,l=e.displayedData,u=e.offset,f=t.layout,c=l.map(function(p,d){var h=st(p,i);return f==="horizontal"?{x:Ui({axis:n,ticks:a,bandSize:s,entry:p,index:d}),y:te(h)?null:r.scale(h),value:h,payload:p}:{x:te(h)?null:n.scale(h),y:Ui({axis:r,ticks:o,bandSize:s,entry:p,index:d}),value:h,payload:p}});return Kt({points:c,layout:f},u)});var Dre=["layout","type","stroke","connectNulls","isRange","ref"],Lre=["key"],wS;function es(e){"@babel/helpers - typeof";return es=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},es(e)}function bS(e,t){if(e==null)return{};var n=Fre(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function no(){return no=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},no.apply(this,arguments)}function E2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Zr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?E2(Object(n),!0).forEach(function(r){ir(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function zre(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,SS(r.key),r)}}function Bre(e,t,n){return t&&T2(e.prototype,t),n&&T2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Hre(e,t,n){return t=yp(t),Gre(e,PS()?Reflect.construct(t,n||[],yp(e).constructor):t.apply(e,n))}function Gre(e,t){if(t&&(es(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ure(e)}function Ure(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function PS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(PS=function(){return!!e})()}function yp(e){return yp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},yp(e)}function Wre(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Oy(e,t)}function Oy(e,t){return Oy=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Oy(e,t)}function ir(e,t,n){return t=SS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function SS(e){var t=qre(e,"string");return es(t)=="symbol"?t:t+""}function qre(e,t){if(es(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(es(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var ft=function(e){function t(){var n;zre(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=Hre(this,t,[].concat(a)),ir(n,"state",{isAnimationFinished:!0}),ir(n,"id",$o("recharts-area-")),ir(n,"handleAnimationEnd",function(){var i=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),oe(i)&&i()}),ir(n,"handleAnimationStart",function(){var i=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),oe(i)&&i()}),n}return Wre(t,e),Bre(t,[{key:"renderDots",value:function(r,a,o){var i=this.props.isAnimationActive,s=this.state.isAnimationFinished;if(i&&!s)return null;var l=this.props,u=l.dot,f=l.points,c=l.dataKey,p=re(this.props,!1),d=re(u,!0),h=f.map(function(g,v){var y=Zr(Zr(Zr({key:"dot-".concat(v),r:3},p),d),{},{index:v,cx:g.x,cy:g.y,dataKey:c,value:g.value,payload:g.payload,points:f});return t.renderDotItem(u,y)}),m={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(o,")"):null};return C.createElement(ye,no({className:"recharts-area-dots"},m),h)}},{key:"renderHorizontalRect",value:function(r){var a=this.props,o=a.baseLine,i=a.points,s=a.strokeWidth,l=i[0].x,u=i[i.length-1].x,f=r*Math.abs(l-u),c=da(i.map(function(p){return p.y||0}));return V(o)&&typeof o=="number"?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(da(o.map(function(p){return p.y||0})),c)),V(c)?C.createElement("rect",{x:l<u?l:l-f,y:0,width:f,height:Math.floor(c+(s?parseInt("".concat(s),10):1))}):null}},{key:"renderVerticalRect",value:function(r){var a=this.props,o=a.baseLine,i=a.points,s=a.strokeWidth,l=i[0].y,u=i[i.length-1].y,f=r*Math.abs(l-u),c=da(i.map(function(p){return p.x||0}));return V(o)&&typeof o=="number"?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(da(o.map(function(p){return p.x||0})),c)),V(c)?C.createElement("rect",{x:0,y:l<u?l:l-f,width:c+(s?parseInt("".concat(s),10):1),height:Math.floor(f)}):null}},{key:"renderClipRect",value:function(r){var a=this.props.layout;return a==="vertical"?this.renderVerticalRect(r):this.renderHorizontalRect(r)}},{key:"renderAreaStatically",value:function(r,a,o,i){var s=this.props,l=s.layout,u=s.type,f=s.stroke,c=s.connectNulls,p=s.isRange;s.ref;var d=bS(s,Dre);return C.createElement(ye,{clipPath:o?"url(#clipPath-".concat(i,")"):null},C.createElement(mo,no({},re(d,!0),{points:r,connectNulls:c,type:u,baseLine:a,layout:l,stroke:"none",className:"recharts-area-area"})),f!=="none"&&C.createElement(mo,no({},re(this.props,!1),{className:"recharts-area-curve",layout:l,type:u,connectNulls:c,fill:"none",points:r})),f!=="none"&&p&&C.createElement(mo,no({},re(this.props,!1),{className:"recharts-area-curve",layout:l,type:u,connectNulls:c,fill:"none",points:a})))}},{key:"renderAreaWithAnimation",value:function(r,a){var o=this,i=this.props,s=i.points,l=i.baseLine,u=i.isAnimationActive,f=i.animationBegin,c=i.animationDuration,p=i.animationEasing,d=i.animationId,h=this.state,m=h.prevPoints,g=h.prevBaseLine;return C.createElement(Vn,{begin:f,duration:c,isActive:u,easing:p,from:{t:0},to:{t:1},key:"area-".concat(d),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(v){var y=v.t;if(m){var x=m.length/s.length,P=s.map(function(_,A){var j=Math.floor(A*x);if(m[j]){var E=m[j],T=Xe(E.x,_.x),N=Xe(E.y,_.y);return Zr(Zr({},_),{},{x:T(y),y:N(y)})}return _}),w;if(V(l)&&typeof l=="number"){var S=Xe(g,l);w=S(y)}else if(te(l)||Ps(l)){var O=Xe(g,0);w=O(y)}else w=l.map(function(_,A){var j=Math.floor(A*x);if(g[j]){var E=g[j],T=Xe(E.x,_.x),N=Xe(E.y,_.y);return Zr(Zr({},_),{},{x:T(y),y:N(y)})}return _});return o.renderAreaStatically(P,w,r,a)}return C.createElement(ye,null,C.createElement("defs",null,C.createElement("clipPath",{id:"animationClipPath-".concat(a)},o.renderClipRect(y))),C.createElement(ye,{clipPath:"url(#animationClipPath-".concat(a,")")},o.renderAreaStatically(s,l,r,a)))})}},{key:"renderArea",value:function(r,a){var o=this.props,i=o.points,s=o.baseLine,l=o.isAnimationActive,u=this.state,f=u.prevPoints,c=u.prevBaseLine,p=u.totalLength;return l&&i&&i.length&&(!f&&p>0||!ko(f,i)||!ko(c,s))?this.renderAreaWithAnimation(r,a):this.renderAreaStatically(i,s,r,a)}},{key:"render",value:function(){var r,a=this.props,o=a.hide,i=a.dot,s=a.points,l=a.className,u=a.top,f=a.left,c=a.xAxis,p=a.yAxis,d=a.width,h=a.height,m=a.isAnimationActive,g=a.id;if(o||!s||!s.length)return null;var v=this.state.isAnimationFinished,y=s.length===1,x=ue("recharts-area",l),P=c&&c.allowDataOverflow,w=p&&p.allowDataOverflow,S=P||w,O=te(g)?this.id:g,_=(r=re(i,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},A=_.r,j=A===void 0?3:A,E=_.strokeWidth,T=E===void 0?2:E,N=w8(i)?i:{},M=N.clipDot,I=M===void 0?!0:M,R=j*2+T;return C.createElement(ye,{className:x},P||w?C.createElement("defs",null,C.createElement("clipPath",{id:"clipPath-".concat(O)},C.createElement("rect",{x:P?f:f-d/2,y:w?u:u-h/2,width:P?d:d*2,height:w?h:h*2})),!I&&C.createElement("clipPath",{id:"clipPath-dots-".concat(O)},C.createElement("rect",{x:f-R/2,y:u-R/2,width:d+R,height:h+R}))):null,y?null:this.renderArea(S,O),(i||y)&&this.renderDots(S,I,O),(!m||v)&&dr.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:a.curPoints,prevBaseLine:a.curBaseLine}:r.points!==a.curPoints||r.baseLine!==a.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])}(k.PureComponent);wS=ft;ir(ft,"displayName","Area");ir(ft,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Da.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});ir(ft,"getBaseValue",function(e,t,n,r){var a=e.layout,o=e.baseValue,i=t.props.baseValue,s=i??o;if(V(s)&&typeof s=="number")return s;var l=a==="horizontal"?r:n,u=l.scale.domain();if(l.type==="number"){var f=Math.max(u[0],u[1]),c=Math.min(u[0],u[1]);return s==="dataMin"?c:s==="dataMax"||f<0?f:Math.max(Math.min(u[0],u[1]),0)}return s==="dataMin"?u[0]:s==="dataMax"?u[1]:u[0]});ir(ft,"getComposedData",function(e){var t=e.props,n=e.item,r=e.xAxis,a=e.yAxis,o=e.xAxisTicks,i=e.yAxisTicks,s=e.bandSize,l=e.dataKey,u=e.stackedData,f=e.dataStartIndex,c=e.displayedData,p=e.offset,d=t.layout,h=u&&u.length,m=wS.getBaseValue(t,n,r,a),g=d==="horizontal",v=!1,y=c.map(function(P,w){var S;h?S=u[f+w]:(S=st(P,l),Array.isArray(S)?v=!0:S=[m,S]);var O=S[1]==null||h&&st(P,l)==null;return g?{x:Ui({axis:r,ticks:o,bandSize:s,entry:P,index:w}),y:O?null:a.scale(S[1]),value:S,payload:P}:{x:O?null:r.scale(S[1]),y:Ui({axis:a,ticks:i,bandSize:s,entry:P,index:w}),value:S,payload:P}}),x;return h||v?x=y.map(function(P){var w=Array.isArray(P.value)?P.value[0]:null;return g?{x:P.x,y:w!=null&&P.y!=null?a.scale(w):null}:{x:w!=null?r.scale(w):null,y:P.y}}):x=g?a.scale(m):r.scale(m),Zr({points:y,baseLine:x,layout:d,isRange:v},p)});ir(ft,"renderDotItem",function(e,t){var n;if(C.isValidElement(e))n=C.cloneElement(e,t);else if(oe(e))n=e(t);else{var r=ue("recharts-area-dot",typeof e!="boolean"?e.className:""),a=t.key,o=bS(t,Lre);n=C.createElement(Ad,no({},o,{key:a,className:r}))}return n});function ts(e){"@babel/helpers - typeof";return ts=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ts(e)}function Vre(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Kre(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_S(r.key),r)}}function Xre(e,t,n){return t&&Kre(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Yre(e,t,n){return t=gp(t),Qre(e,OS()?Reflect.construct(t,n||[],gp(e).constructor):t.apply(e,n))}function Qre(e,t){if(t&&(ts(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Zre(e)}function Zre(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function OS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(OS=function(){return!!e})()}function gp(e){return gp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},gp(e)}function Jre(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ky(e,t)}function ky(e,t){return ky=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},ky(e,t)}function kS(e,t,n){return t=_S(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _S(e){var t=eae(e,"string");return ts(t)=="symbol"?t:t+""}function eae(e,t){if(ts(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ts(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Id=function(e){function t(){return Vre(this,t),Yre(this,t,arguments)}return Jre(t,e),Xre(t,[{key:"render",value:function(){return null}}])}(k.Component);kS(Id,"displayName","ZAxis");kS(Id,"defaultProps",{zAxisId:0,range:[64,64],scale:"auto",type:"number"});var tae=["option","isActive"];function yl(){return yl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yl.apply(this,arguments)}function nae(e,t){if(e==null)return{};var n=rae(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function rae(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function aae(e){var t=e.option,n=e.isActive,r=nae(e,tae);return typeof t=="string"?k.createElement(fy,yl({option:k.createElement(md,yl({type:t},r)),isActive:n,shapeType:"symbols"},r)):k.createElement(fy,yl({option:t,isActive:n,shapeType:"symbols"},r))}function ns(e){"@babel/helpers - typeof";return ns=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ns(e)}function gl(){return gl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gl.apply(this,arguments)}function j2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function fn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?j2(Object(n),!0).forEach(function(r){ha(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function oae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,CS(r.key),r)}}function iae(e,t,n){return t&&$2(e.prototype,t),n&&$2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function sae(e,t,n){return t=xp(t),lae(e,AS()?Reflect.construct(t,n||[],xp(e).constructor):t.apply(e,n))}function lae(e,t){if(t&&(ns(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return uae(e)}function uae(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function AS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(AS=function(){return!!e})()}function xp(e){return xp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},xp(e)}function cae(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_y(e,t)}function _y(e,t){return _y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},_y(e,t)}function ha(e,t,n){return t=CS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function CS(e){var t=fae(e,"string");return ns(t)=="symbol"?t:t+""}function fae(e,t){if(ns(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ns(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Dd=function(e){function t(){var n;oae(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=sae(this,t,[].concat(a)),ha(n,"state",{isAnimationFinished:!1}),ha(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0})}),ha(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1})}),ha(n,"id",$o("recharts-scatter-")),n}return cae(t,e),iae(t,[{key:"renderSymbolsStatically",value:function(r){var a=this,o=this.props,i=o.shape,s=o.activeShape,l=o.activeIndex,u=re(this.props,!1);return r.map(function(f,c){var p=l===c,d=p?s:i,h=fn(fn({},u),f);return C.createElement(ye,gl({className:"recharts-scatter-symbol",key:"symbol-".concat(f==null?void 0:f.cx,"-").concat(f==null?void 0:f.cy,"-").concat(f==null?void 0:f.size,"-").concat(c)},Fl(a.props,f,c),{role:"img"}),C.createElement(aae,gl({option:d,isActive:p,key:"symbol-".concat(c)},h)))})}},{key:"renderSymbolsWithAnimation",value:function(){var r=this,a=this.props,o=a.points,i=a.isAnimationActive,s=a.animationBegin,l=a.animationDuration,u=a.animationEasing,f=a.animationId,c=this.state.prevPoints;return C.createElement(Vn,{begin:s,duration:l,isActive:i,easing:u,from:{t:0},to:{t:1},key:"pie-".concat(f),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(p){var d=p.t,h=o.map(function(m,g){var v=c&&c[g];if(v){var y=Xe(v.cx,m.cx),x=Xe(v.cy,m.cy),P=Xe(v.size,m.size);return fn(fn({},m),{},{cx:y(d),cy:x(d),size:P(d)})}var w=Xe(0,m.size);return fn(fn({},m),{},{size:w(d)})});return C.createElement(ye,null,r.renderSymbolsStatically(h))})}},{key:"renderSymbols",value:function(){var r=this.props,a=r.points,o=r.isAnimationActive,i=this.state.prevPoints;return o&&a&&a.length&&(!i||!ko(i,a))?this.renderSymbolsWithAnimation():this.renderSymbolsStatically(a)}},{key:"renderErrorBar",value:function(){var r=this.props.isAnimationActive;if(r&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.points,i=a.xAxis,s=a.yAxis,l=a.children,u=qt(l,Es);return u?u.map(function(f,c){var p=f.props,d=p.direction,h=p.dataKey;return C.cloneElement(f,{key:"".concat(d,"-").concat(h,"-").concat(o[c]),data:o,xAxis:i,yAxis:s,layout:d==="x"?"vertical":"horizontal",dataPointFormatter:function(g,v){return{x:g.cx,y:g.cy,value:d==="x"?+g.node.x:+g.node.y,errorVal:st(g,v)}}})}):null}},{key:"renderLine",value:function(){var r=this.props,a=r.points,o=r.line,i=r.lineType,s=r.lineJointType,l=re(this.props,!1),u=re(o,!1),f,c;if(i==="joint")f=a.map(function(x){return{x:x.cx,y:x.cy}});else if(i==="fitting"){var p=HM(a),d=p.xmin,h=p.xmax,m=p.a,g=p.b,v=function(P){return m*P+g};f=[{x:d,y:v(d)},{x:h,y:v(h)}]}var y=fn(fn(fn({},l),{},{fill:"none",stroke:l&&l.fill},u),{},{points:f});return C.isValidElement(o)?c=C.cloneElement(o,y):oe(o)?c=o(y):c=C.createElement(mo,gl({},y,{type:s})),C.createElement(ye,{className:"recharts-scatter-line",key:"recharts-scatter-line"},c)}},{key:"render",value:function(){var r=this.props,a=r.hide,o=r.points,i=r.line,s=r.className,l=r.xAxis,u=r.yAxis,f=r.left,c=r.top,p=r.width,d=r.height,h=r.id,m=r.isAnimationActive;if(a||!o||!o.length)return null;var g=this.state.isAnimationFinished,v=ue("recharts-scatter",s),y=l&&l.allowDataOverflow,x=u&&u.allowDataOverflow,P=y||x,w=te(h)?this.id:h;return C.createElement(ye,{className:v,clipPath:P?"url(#clipPath-".concat(w,")"):null},y||x?C.createElement("defs",null,C.createElement("clipPath",{id:"clipPath-".concat(w)},C.createElement("rect",{x:y?f:f-p/2,y:x?c:c-d/2,width:y?p:p*2,height:x?d:d*2}))):null,i&&this.renderLine(),this.renderErrorBar(),C.createElement(ye,{key:"recharts-scatter-symbols"},this.renderSymbols()),(!m||g)&&dr.renderCallByParent(this.props,o))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}}])}(k.PureComponent);ha(Dd,"displayName","Scatter");ha(Dd,"defaultProps",{xAxisId:0,yAxisId:0,zAxisId:0,legendType:"circle",lineType:"joint",lineJointType:"linear",data:[],shape:"circle",hide:!1,isAnimationActive:!Da.isSsr,animationBegin:0,animationDuration:400,animationEasing:"linear"});ha(Dd,"getComposedData",function(e){var t=e.xAxis,n=e.yAxis,r=e.zAxis,a=e.item,o=e.displayedData,i=e.xAxisTicks,s=e.yAxisTicks,l=e.offset,u=a.props.tooltipType,f=qt(a.props.children,gg),c=te(t.dataKey)?a.props.dataKey:t.dataKey,p=te(n.dataKey)?a.props.dataKey:n.dataKey,d=r&&r.dataKey,h=r?r.range:Id.defaultProps.range,m=h&&h[0],g=t.scale.bandwidth?t.scale.bandwidth():0,v=n.scale.bandwidth?n.scale.bandwidth():0,y=o.map(function(x,P){var w=st(x,c),S=st(x,p),O=!te(d)&&st(x,d)||"-",_=[{name:te(t.dataKey)?a.props.name:t.name||t.dataKey,unit:t.unit||"",value:w,payload:x,dataKey:c,type:u},{name:te(n.dataKey)?a.props.name:n.name||n.dataKey,unit:n.unit||"",value:S,payload:x,dataKey:p,type:u}];O!=="-"&&_.push({name:r.name||r.dataKey,unit:r.unit||"",value:O,payload:x,dataKey:d,type:u});var A=Ui({axis:t,ticks:i,bandSize:g,entry:x,index:P,dataKey:c}),j=Ui({axis:n,ticks:s,bandSize:v,entry:x,index:P,dataKey:p}),E=O!=="-"?r.scale(O):m,T=Math.sqrt(Math.max(E,0)/Math.PI);return fn(fn({},x),{},{cx:A,cy:j,x:A-T,y:j-T,xAxis:t,yAxis:n,zAxis:r,width:2*T,height:2*T,size:E,node:{x:w,y:S,z:O},tooltipPayload:_,tooltipPosition:{x:A,y:j},payload:x},f&&f[P]&&f[P].props)});return fn({points:y},l)});function rs(e){"@babel/helpers - typeof";return rs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rs(e)}function pae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function dae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,jS(r.key),r)}}function mae(e,t,n){return t&&dae(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function hae(e,t,n){return t=wp(t),vae(e,ES()?Reflect.construct(t,n||[],wp(e).constructor):t.apply(e,n))}function vae(e,t){if(t&&(rs(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return yae(e)}function yae(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ES(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ES=function(){return!!e})()}function wp(e){return wp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},wp(e)}function gae(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ay(e,t)}function Ay(e,t){return Ay=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Ay(e,t)}function TS(e,t,n){return t=jS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jS(e){var t=xae(e,"string");return rs(t)=="symbol"?t:t+""}function xae(e,t){if(rs(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(rs(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Cy(){return Cy=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Cy.apply(this,arguments)}function wae(e){var t=e.xAxisId,n=Kg(),r=Xg(),a=iS(t);return a==null?null:k.createElement(Ts,Cy({},a,{className:ue("recharts-".concat(a.axisType," ").concat(a.axisType),a.className),viewBox:{x:0,y:0,width:n,height:r},ticksGenerator:function(i){return Er(i,!0)}}))}var Et=function(e){function t(){return pae(this,t),hae(this,t,arguments)}return gae(t,e),mae(t,[{key:"render",value:function(){return k.createElement(wae,this.props)}}])}(k.Component);TS(Et,"displayName","XAxis");TS(Et,"defaultProps",{allowDecimals:!0,hide:!1,orientation:"bottom",width:0,height:30,mirror:!1,xAxisId:0,tickCount:5,type:"category",padding:{left:0,right:0},allowDataOverflow:!1,scale:"auto",reversed:!1,allowDuplicatedCategory:!0});function as(e){"@babel/helpers - typeof";return as=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},as(e)}function bae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Pae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,MS(r.key),r)}}function Sae(e,t,n){return t&&Pae(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Oae(e,t,n){return t=bp(t),kae(e,$S()?Reflect.construct(t,n||[],bp(e).constructor):t.apply(e,n))}function kae(e,t){if(t&&(as(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _ae(e)}function _ae(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return($S=function(){return!!e})()}function bp(e){return bp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},bp(e)}function Aae(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ey(e,t)}function Ey(e,t){return Ey=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Ey(e,t)}function NS(e,t,n){return t=MS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function MS(e){var t=Cae(e,"string");return as(t)=="symbol"?t:t+""}function Cae(e,t){if(as(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(as(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Ty(){return Ty=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ty.apply(this,arguments)}var Eae=function(t){var n=t.yAxisId,r=Kg(),a=Xg(),o=sS(n);return o==null?null:k.createElement(Ts,Ty({},o,{className:ue("recharts-".concat(o.axisType," ").concat(o.axisType),o.className),viewBox:{x:0,y:0,width:r,height:a},ticksGenerator:function(s){return Er(s,!0)}}))},yt=function(e){function t(){return bae(this,t),Oae(this,t,arguments)}return Aae(t,e),Sae(t,[{key:"render",value:function(){return k.createElement(Eae,this.props)}}])}(k.Component);NS(yt,"displayName","YAxis");NS(yt,"defaultProps",{allowDuplicatedCategory:!0,allowDecimals:!0,hide:!1,orientation:"left",width:60,height:0,mirror:!1,yAxisId:0,tickCount:5,type:"number",padding:{top:0,bottom:0},allowDataOverflow:!1,scale:"auto",reversed:!1});function N2(e){return Nae(e)||$ae(e)||jae(e)||Tae()}function Tae(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jae(e,t){if(e){if(typeof e=="string")return jy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jy(e,t)}}function $ae(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Nae(e){if(Array.isArray(e))return jy(e)}function jy(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var $y=function(t,n,r,a,o){var i=qt(t,Qg),s=qt(t,Nd),l=[].concat(N2(i),N2(s)),u=qt(t,Rd),f="".concat(a,"Id"),c=a[0],p=n;if(l.length&&(p=l.reduce(function(m,g){if(g.props[f]===r&&mr(g.props,"extendDomain")&&V(g.props[c])){var v=g.props[c];return[Math.min(m[0],v),Math.max(m[1],v)]}return m},p)),u.length){var d="".concat(c,"1"),h="".concat(c,"2");p=u.reduce(function(m,g){if(g.props[f]===r&&mr(g.props,"extendDomain")&&V(g.props[d])&&V(g.props[h])){var v=g.props[d],y=g.props[h];return[Math.min(m[0],v,y),Math.max(m[1],v,y)]}return m},p)}return o&&o.length&&(p=o.reduce(function(m,g){return V(g)?[Math.min(m[0],g),Math.max(m[1],g)]:m},p)),p},RS={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function a(l,u,f){this.fn=l,this.context=u,this.once=f||!1}function o(l,u,f,c,p){if(typeof f!="function")throw new TypeError("The listener must be a function");var d=new a(f,c||l,p),h=n?n+u:u;return l._events[h]?l._events[h].fn?l._events[h]=[l._events[h],d]:l._events[h].push(d):(l._events[h]=d,l._eventsCount++),l}function i(l,u){--l._eventsCount===0?l._events=new r:delete l._events[u]}function s(){this._events=new r,this._eventsCount=0}s.prototype.eventNames=function(){var u=[],f,c;if(this._eventsCount===0)return u;for(c in f=this._events)t.call(f,c)&&u.push(n?c.slice(1):c);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(f)):u},s.prototype.listeners=function(u){var f=n?n+u:u,c=this._events[f];if(!c)return[];if(c.fn)return[c.fn];for(var p=0,d=c.length,h=new Array(d);p<d;p++)h[p]=c[p].fn;return h},s.prototype.listenerCount=function(u){var f=n?n+u:u,c=this._events[f];return c?c.fn?1:c.length:0},s.prototype.emit=function(u,f,c,p,d,h){var m=n?n+u:u;if(!this._events[m])return!1;var g=this._events[m],v=arguments.length,y,x;if(g.fn){switch(g.once&&this.removeListener(u,g.fn,void 0,!0),v){case 1:return g.fn.call(g.context),!0;case 2:return g.fn.call(g.context,f),!0;case 3:return g.fn.call(g.context,f,c),!0;case 4:return g.fn.call(g.context,f,c,p),!0;case 5:return g.fn.call(g.context,f,c,p,d),!0;case 6:return g.fn.call(g.context,f,c,p,d,h),!0}for(x=1,y=new Array(v-1);x<v;x++)y[x-1]=arguments[x];g.fn.apply(g.context,y)}else{var P=g.length,w;for(x=0;x<P;x++)switch(g[x].once&&this.removeListener(u,g[x].fn,void 0,!0),v){case 1:g[x].fn.call(g[x].context);break;case 2:g[x].fn.call(g[x].context,f);break;case 3:g[x].fn.call(g[x].context,f,c);break;case 4:g[x].fn.call(g[x].context,f,c,p);break;default:if(!y)for(w=1,y=new Array(v-1);w<v;w++)y[w-1]=arguments[w];g[x].fn.apply(g[x].context,y)}}return!0},s.prototype.on=function(u,f,c){return o(this,u,f,c,!1)},s.prototype.once=function(u,f,c){return o(this,u,f,c,!0)},s.prototype.removeListener=function(u,f,c,p){var d=n?n+u:u;if(!this._events[d])return this;if(!f)return i(this,d),this;var h=this._events[d];if(h.fn)h.fn===f&&(!p||h.once)&&(!c||h.context===c)&&i(this,d);else{for(var m=0,g=[],v=h.length;m<v;m++)(h[m].fn!==f||p&&!h[m].once||c&&h[m].context!==c)&&g.push(h[m]);g.length?this._events[d]=g.length===1?g[0]:g:i(this,d)}return this},s.prototype.removeAllListeners=function(u){var f;return u?(f=n?n+u:u,this._events[f]&&i(this,f)):(this._events=new r,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=n,s.EventEmitter=s,e.exports=s})(RS);var Mae=RS.exports;const Rae=Ce(Mae);var eh=new Rae,th="recharts.syncMouseEvents";function xu(e){"@babel/helpers - typeof";return xu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xu(e)}function Iae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Dae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,IS(r.key),r)}}function Lae(e,t,n){return t&&Dae(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function nh(e,t,n){return t=IS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function IS(e){var t=Fae(e,"string");return xu(t)=="symbol"?t:t+""}function Fae(e,t){if(xu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(xu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var zae=function(){function e(){Iae(this,e),nh(this,"activeIndex",0),nh(this,"coordinateList",[]),nh(this,"layout","horizontal")}return Lae(e,[{key:"setDetails",value:function(n){var r,a=n.coordinateList,o=a===void 0?null:a,i=n.container,s=i===void 0?null:i,l=n.layout,u=l===void 0?null:l,f=n.offset,c=f===void 0?null:f,p=n.mouseHandlerCallback,d=p===void 0?null:p;this.coordinateList=(r=o??this.coordinateList)!==null&&r!==void 0?r:[],this.container=s??this.container,this.layout=u??this.layout,this.offset=c??this.offset,this.mouseHandlerCallback=d??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(n){if(this.coordinateList.length!==0)switch(n.key){case"ArrowRight":{if(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"setIndex",value:function(n){this.activeIndex=n}},{key:"spoofMouse",value:function(){var n,r;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var a=this.container.getBoundingClientRect(),o=a.x,i=a.y,s=a.height,l=this.coordinateList[this.activeIndex].coordinate,u=((n=window)===null||n===void 0?void 0:n.scrollX)||0,f=((r=window)===null||r===void 0?void 0:r.scrollY)||0,c=o+l+u,p=i+this.offset.top+s/2+f;this.mouseHandlerCallback({pageX:c,pageY:p})}}}])}();function Bae(e,t,n){if(n==="number"&&t===!0&&Array.isArray(e)){var r=e==null?void 0:e[0],a=e==null?void 0:e[1];if(r&&a&&V(r)&&V(a))return!0}return!1}function Hae(e,t,n,r){var a=r/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-a:n.left+.5,y:e==="horizontal"?n.top+.5:t.y-a,width:e==="horizontal"?r:n.width-1,height:e==="horizontal"?n.height-1:r}}function DS(e){var t=e.cx,n=e.cy,r=e.radius,a=e.startAngle,o=e.endAngle,i=vt(t,n,r,a),s=vt(t,n,r,o);return{points:[i,s],cx:t,cy:n,radius:r,startAngle:a,endAngle:o}}function Gae(e,t,n){var r,a,o,i;if(e==="horizontal")r=t.x,o=r,a=n.top,i=n.top+n.height;else if(e==="vertical")a=t.y,i=a,r=n.left,o=n.left+n.width;else if(t.cx!=null&&t.cy!=null)if(e==="centric"){var s=t.cx,l=t.cy,u=t.innerRadius,f=t.outerRadius,c=t.angle,p=vt(s,l,u,c),d=vt(s,l,f,c);r=p.x,a=p.y,o=d.x,i=d.y}else return DS(t);return[{x:r,y:a},{x:o,y:i}]}function wu(e){"@babel/helpers - typeof";return wu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wu(e)}function M2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Pc(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?M2(Object(n),!0).forEach(function(r){Uae(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Uae(e,t,n){return t=Wae(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Wae(e){var t=qae(e,"string");return wu(t)=="symbol"?t:t+""}function qae(e,t){if(wu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(wu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Vae(e){var t,n,r=e.element,a=e.tooltipEventType,o=e.isActive,i=e.activeCoordinate,s=e.activePayload,l=e.offset,u=e.activeTooltipIndex,f=e.tooltipAxisBandSize,c=e.layout,p=e.chartName,d=(t=r.props.cursor)!==null&&t!==void 0?t:(n=r.type.defaultProps)===null||n===void 0?void 0:n.cursor;if(!r||!d||!o||!i||p!=="ScatterChart"&&a!=="axis")return null;var h,m=mo;if(p==="ScatterChart")h=i,m=xJ;else if(p==="BarChart")h=Hae(c,i,l,f),m=Ug;else if(c==="radial"){var g=DS(i),v=g.cx,y=g.cy,x=g.radius,P=g.startAngle,w=g.endAngle;h={cx:v,cy:y,startAngle:P,endAngle:w,innerRadius:x,outerRadius:x},m=$P}else h={points:Gae(c,i,l)},m=mo;var S=Pc(Pc(Pc(Pc({stroke:"#ccc",pointerEvents:"none"},l),h),re(d,!1)),{},{payload:s,payloadIndex:u,className:ue("recharts-tooltip-cursor",d.className)});return k.isValidElement(d)?k.cloneElement(d,S):k.createElement(m,S)}var Kae=["item"],Xae=["children","className","width","height","style","compact","title","desc"];function os(e){"@babel/helpers - typeof";return os=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},os(e)}function ai(){return ai=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ai.apply(this,arguments)}function R2(e,t){return Zae(e)||Qae(e,t)||FS(e,t)||Yae()}function Yae(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qae(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(f){u=!0,a=f}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function Zae(e){if(Array.isArray(e))return e}function I2(e,t){if(e==null)return{};var n=Jae(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Jae(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function eoe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function toe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,zS(r.key),r)}}function noe(e,t,n){return t&&toe(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function roe(e,t,n){return t=Pp(t),aoe(e,LS()?Reflect.construct(t,n||[],Pp(e).constructor):t.apply(e,n))}function aoe(e,t){if(t&&(os(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ooe(e)}function ooe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function LS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(LS=function(){return!!e})()}function Pp(e){return Pp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Pp(e)}function ioe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ny(e,t)}function Ny(e,t){return Ny=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Ny(e,t)}function is(e){return uoe(e)||loe(e)||FS(e)||soe()}function soe(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function FS(e,t){if(e){if(typeof e=="string")return My(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return My(e,t)}}function loe(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function uoe(e){if(Array.isArray(e))return My(e)}function My(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function D2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?D2(Object(n),!0).forEach(function(r){ee(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function ee(e,t,n){return t=zS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zS(e){var t=coe(e,"string");return os(t)=="symbol"?t:t+""}function coe(e,t){if(os(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(os(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var foe={xAxis:["bottom","top"],yAxis:["left","right"]},poe={width:"100%",height:"100%"},BS={x:0,y:0};function Sc(e){return e}var doe=function(t,n){return n==="horizontal"?t.x:n==="vertical"?t.y:n==="centric"?t.angle:t.radius},moe=function(t,n,r,a){var o=n.find(function(f){return f&&f.index===r});if(o){if(t==="horizontal")return{x:o.coordinate,y:a.y};if(t==="vertical")return{x:a.x,y:o.coordinate};if(t==="centric"){var i=o.coordinate,s=a.radius;return z(z(z({},a),vt(a.cx,a.cy,s,i)),{},{angle:i,radius:s})}var l=o.coordinate,u=a.angle;return z(z(z({},a),vt(a.cx,a.cy,l,u)),{},{angle:u,radius:l})}return BS},Ld=function(t,n){var r=n.graphicalItems,a=n.dataStartIndex,o=n.dataEndIndex,i=(r??[]).reduce(function(s,l){var u=l.props.data;return u&&u.length?[].concat(is(s),is(u)):s},[]);return i.length>0?i:t&&t.length&&V(a)&&V(o)?t.slice(a,o+1):[]};function HS(e){return e==="number"?[0,"auto"]:void 0}var Ry=function(t,n,r,a){var o=t.graphicalItems,i=t.tooltipAxis,s=Ld(n,t);return r<0||!o||!o.length||r>=s.length?null:o.reduce(function(l,u){var f,c=(f=u.props.data)!==null&&f!==void 0?f:n;c&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(c=c.slice(t.dataStartIndex,t.dataEndIndex+1));var p;if(i.dataKey&&!i.allowDuplicatedCategory){var d=c===void 0?s:c;p=Pf(d,i.dataKey,a)}else p=c&&c[r]||s[r];return p?[].concat(is(l),[EP(u,p)]):l},[])},L2=function(t,n,r,a){var o=a||{x:t.chartX,y:t.chartY},i=doe(o,r),s=t.orderedTooltipTicks,l=t.tooltipAxis,u=t.tooltipTicks,f=tY(i,s,u,l);if(f>=0&&u){var c=u[f]&&u[f].value,p=Ry(t,n,f,c),d=moe(r,s,f,o);return{activeTooltipIndex:f,activeLabel:c,activePayload:p,activeCoordinate:d}}return null},hoe=function(t,n){var r=n.axes,a=n.graphicalItems,o=n.axisType,i=n.axisIdKey,s=n.stackGroups,l=n.dataStartIndex,u=n.dataEndIndex,f=t.layout,c=t.children,p=t.stackOffset,d=_P(f,o);return r.reduce(function(h,m){var g,v=m.type.defaultProps!==void 0?z(z({},m.type.defaultProps),m.props):m.props,y=v.type,x=v.dataKey,P=v.allowDataOverflow,w=v.allowDuplicatedCategory,S=v.scale,O=v.ticks,_=v.includeHidden,A=v[i];if(h[A])return h;var j=Ld(t.data,{graphicalItems:a.filter(function(G){var Z,ie=i in G.props?G.props[i]:(Z=G.type.defaultProps)===null||Z===void 0?void 0:Z[i];return ie===A}),dataStartIndex:l,dataEndIndex:u}),E=j.length,T,N,M;Bae(v.domain,P,y)&&(T=Xv(v.domain,null,P),d&&(y==="number"||S!=="auto")&&(M=ml(j,x,"category")));var I=HS(y);if(!T||T.length===0){var R,L=(R=v.domain)!==null&&R!==void 0?R:I;if(x){if(T=ml(j,x,y),y==="category"&&d){var $=BM(T);w&&$?(N=T,T=ip(0,E)):w||(T=pb(L,T,m).reduce(function(G,Z){return G.indexOf(Z)>=0?G:[].concat(is(G),[Z])},[]))}else if(y==="category")w?T=T.filter(function(G){return G!==""&&!te(G)}):T=pb(L,T,m).reduce(function(G,Z){return G.indexOf(Z)>=0||Z===""||te(Z)?G:[].concat(is(G),[Z])},[]);else if(y==="number"){var D=iY(j,a.filter(function(G){var Z,ie,ve=i in G.props?G.props[i]:(Z=G.type.defaultProps)===null||Z===void 0?void 0:Z[i],Pe="hide"in G.props?G.props.hide:(ie=G.type.defaultProps)===null||ie===void 0?void 0:ie.hide;return ve===A&&(_||!Pe)}),x,o,f);D&&(T=D)}d&&(y==="number"||S!=="auto")&&(M=ml(j,x,"category"))}else d?T=ip(0,E):s&&s[A]&&s[A].hasStack&&y==="number"?T=p==="expand"?[0,1]:CP(s[A].stackGroups,l,u):T=kP(j,a.filter(function(G){var Z=i in G.props?G.props[i]:G.type.defaultProps[i],ie="hide"in G.props?G.props.hide:G.type.defaultProps.hide;return Z===A&&(_||!ie)}),y,f,!0);if(y==="number")T=$y(c,T,A,o,O),L&&(T=Xv(L,T,P));else if(y==="category"&&L){var H=L,W=T.every(function(G){return H.indexOf(G)>=0});W&&(T=H)}}return z(z({},h),{},ee({},A,z(z({},v),{},{axisType:o,domain:T,categoricalDomain:M,duplicateDomain:N,originalDomain:(g=v.domain)!==null&&g!==void 0?g:I,isCategorical:d,layout:f})))},{})},voe=function(t,n){var r=n.graphicalItems,a=n.Axis,o=n.axisType,i=n.axisIdKey,s=n.stackGroups,l=n.dataStartIndex,u=n.dataEndIndex,f=t.layout,c=t.children,p=Ld(t.data,{graphicalItems:r,dataStartIndex:l,dataEndIndex:u}),d=p.length,h=_P(f,o),m=-1;return r.reduce(function(g,v){var y=v.type.defaultProps!==void 0?z(z({},v.type.defaultProps),v.props):v.props,x=y[i],P=HS("number");if(!g[x]){m++;var w;return h?w=ip(0,d):s&&s[x]&&s[x].hasStack?(w=CP(s[x].stackGroups,l,u),w=$y(c,w,x,o)):(w=Xv(P,kP(p,r.filter(function(S){var O,_,A=i in S.props?S.props[i]:(O=S.type.defaultProps)===null||O===void 0?void 0:O[i],j="hide"in S.props?S.props.hide:(_=S.type.defaultProps)===null||_===void 0?void 0:_.hide;return A===x&&!j}),"number",f),a.defaultProps.allowDataOverflow),w=$y(c,w,x,o)),z(z({},g),{},ee({},x,z(z({axisType:o},a.defaultProps),{},{hide:!0,orientation:gn(foe,"".concat(o,".").concat(m%2),null),domain:w,originalDomain:P,isCategorical:h,layout:f})))}return g},{})},yoe=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,o=n.AxisComp,i=n.graphicalItems,s=n.stackGroups,l=n.dataStartIndex,u=n.dataEndIndex,f=t.children,c="".concat(a,"Id"),p=qt(f,o),d={};return p&&p.length?d=hoe(t,{axes:p,graphicalItems:i,axisType:a,axisIdKey:c,stackGroups:s,dataStartIndex:l,dataEndIndex:u}):i&&i.length&&(d=voe(t,{Axis:o,graphicalItems:i,axisType:a,axisIdKey:c,stackGroups:s,dataStartIndex:l,dataEndIndex:u})),d},goe=function(t){var n=oa(t),r=Er(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:vg(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Qf(n,r)}},F2=function(t){var n=t.children,r=t.defaultShowTooltip,a=Qt(n,Vi),o=0,i=0;return t.data&&t.data.length!==0&&(i=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(o=a.props.startIndex),a.props.endIndex>=0&&(i=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:o,dataEndIndex:i,activeTooltipIndex:-1,isTooltipActive:!!r}},xoe=function(t){return!t||!t.length?!1:t.some(function(n){var r=jr(n&&n.type);return r&&r.indexOf("Bar")>=0})},z2=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},woe=function(t,n){var r=t.props,a=t.graphicalItems,o=t.xAxisMap,i=o===void 0?{}:o,s=t.yAxisMap,l=s===void 0?{}:s,u=r.width,f=r.height,c=r.children,p=r.margin||{},d=Qt(c,Vi),h=Qt(c,hi),m=Object.keys(l).reduce(function(w,S){var O=l[S],_=O.orientation;return!O.mirror&&!O.hide?z(z({},w),{},ee({},_,w[_]+O.width)):w},{left:p.left||0,right:p.right||0}),g=Object.keys(i).reduce(function(w,S){var O=i[S],_=O.orientation;return!O.mirror&&!O.hide?z(z({},w),{},ee({},_,gn(w,"".concat(_))+O.height)):w},{top:p.top||0,bottom:p.bottom||0}),v=z(z({},g),m),y=v.bottom;d&&(v.bottom+=d.props.height||Vi.defaultProps.height),h&&n&&(v=aY(v,a,r,n));var x=u-v.left-v.right,P=f-v.top-v.bottom;return z(z({brushBottom:y},v),{},{width:Math.max(x,0),height:Math.max(P,0)})},boe=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},Fd=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,o=a===void 0?"axis":a,i=t.validateTooltipEventTypes,s=i===void 0?["axis"]:i,l=t.axisComponents,u=t.legendContent,f=t.formatAxisMap,c=t.defaultProps,p=function(v,y){var x=y.graphicalItems,P=y.stackGroups,w=y.offset,S=y.updateId,O=y.dataStartIndex,_=y.dataEndIndex,A=v.barSize,j=v.layout,E=v.barGap,T=v.barCategoryGap,N=v.maxBarSize,M=z2(j),I=M.numericAxisName,R=M.cateAxisName,L=xoe(x),$=[];return x.forEach(function(D,H){var W=Ld(v.data,{graphicalItems:[D],dataStartIndex:O,dataEndIndex:_}),G=D.type.defaultProps!==void 0?z(z({},D.type.defaultProps),D.props):D.props,Z=G.dataKey,ie=G.maxBarSize,ve=G["".concat(I,"Id")],Pe=G["".concat(R,"Id")],J={},le=l.reduce(function(Ba,Ha){var Wd=y["".concat(Ha.axisType,"Map")],l1=G["".concat(Ha.axisType,"Id")];Wd&&Wd[l1]||Ha.axisType==="zAxis"||Ao();var u1=Wd[l1];return z(z({},Ba),{},ee(ee({},Ha.axisType,u1),"".concat(Ha.axisType,"Ticks"),Er(u1)))},J),q=le[R],K=le["".concat(R,"Ticks")],X=P&&P[ve]&&P[ve].hasStack&&gY(D,P[ve].stackGroups),F=jr(D.type).indexOf("Bar")>=0,fe=Qf(q,K),ne=[],Ne=L&&nY({barSize:A,stackGroups:P,totalSize:boe(le,R)});if(F){var Me,Ze,Xn=te(ie)?N:ie,On=(Me=(Ze=Qf(q,K,!0))!==null&&Ze!==void 0?Ze:Xn)!==null&&Me!==void 0?Me:0;ne=rY({barGap:E,barCategoryGap:T,bandSize:On!==fe?On:fe,sizeList:Ne[Pe],maxBarSize:Xn}),On!==fe&&(ne=ne.map(function(Ba){return z(z({},Ba),{},{position:z(z({},Ba.position),{},{offset:Ba.position.offset-On/2})})}))}var Fu=D&&D.type&&D.type.getComposedData;Fu&&$.push({props:z(z({},Fu(z(z({},le),{},{displayedData:W,props:v,dataKey:Z,item:D,bandSize:fe,barPosition:ne,offset:w,stackedData:X,layout:j,dataStartIndex:O,dataEndIndex:_}))),{},ee(ee(ee({key:D.key||"item-".concat(H)},I,le[I]),R,le[R]),"animationId",S)),childIndex:eR(D,v.children),item:D})}),$},d=function(v,y){var x=v.props,P=v.dataStartIndex,w=v.dataEndIndex,S=v.updateId;if(!iw({props:x}))return null;var O=x.children,_=x.layout,A=x.stackOffset,j=x.data,E=x.reverseStackOrder,T=z2(_),N=T.numericAxisName,M=T.cateAxisName,I=qt(O,r),R=hY(j,I,"".concat(N,"Id"),"".concat(M,"Id"),A,E),L=l.reduce(function(G,Z){var ie="".concat(Z.axisType,"Map");return z(z({},G),{},ee({},ie,yoe(x,z(z({},Z),{},{graphicalItems:I,stackGroups:Z.axisType===N&&R,dataStartIndex:P,dataEndIndex:w}))))},{}),$=woe(z(z({},L),{},{props:x,graphicalItems:I}),y==null?void 0:y.legendBBox);Object.keys(L).forEach(function(G){L[G]=f(x,L[G],$,G.replace("Map",""),n)});var D=L["".concat(M,"Map")],H=goe(D),W=p(x,z(z({},L),{},{dataStartIndex:P,dataEndIndex:w,updateId:S,graphicalItems:I,stackGroups:R,offset:$}));return z(z({formattedGraphicalItems:W,graphicalItems:I,offset:$,stackGroups:R},H),L)},h=function(g){function v(y){var x,P,w;return eoe(this,v),w=roe(this,v,[y]),ee(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),ee(w,"accessibilityManager",new zae),ee(w,"handleLegendBBoxUpdate",function(S){if(S){var O=w.state,_=O.dataStartIndex,A=O.dataEndIndex,j=O.updateId;w.setState(z({legendBBox:S},d({props:w.props,dataStartIndex:_,dataEndIndex:A,updateId:j},z(z({},w.state),{},{legendBBox:S}))))}}),ee(w,"handleReceiveSyncEvent",function(S,O,_){if(w.props.syncId===S){if(_===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(O)}}),ee(w,"handleBrushChange",function(S){var O=S.startIndex,_=S.endIndex;if(O!==w.state.dataStartIndex||_!==w.state.dataEndIndex){var A=w.state.updateId;w.setState(function(){return z({dataStartIndex:O,dataEndIndex:_},d({props:w.props,dataStartIndex:O,dataEndIndex:_,updateId:A},w.state))}),w.triggerSyncEvent({dataStartIndex:O,dataEndIndex:_})}}),ee(w,"handleMouseEnter",function(S){var O=w.getMouseInfo(S);if(O){var _=z(z({},O),{},{isTooltipActive:!0});w.setState(_),w.triggerSyncEvent(_);var A=w.props.onMouseEnter;oe(A)&&A(_,S)}}),ee(w,"triggeredAfterMouseMove",function(S){var O=w.getMouseInfo(S),_=O?z(z({},O),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(_),w.triggerSyncEvent(_);var A=w.props.onMouseMove;oe(A)&&A(_,S)}),ee(w,"handleItemMouseEnter",function(S){w.setState(function(){return{isTooltipActive:!0,activeItem:S,activePayload:S.tooltipPayload,activeCoordinate:S.tooltipPosition||{x:S.cx,y:S.cy}}})}),ee(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),ee(w,"handleMouseMove",function(S){S.persist(),w.throttleTriggeredAfterMouseMove(S)}),ee(w,"handleMouseLeave",function(S){w.throttleTriggeredAfterMouseMove.cancel();var O={isTooltipActive:!1};w.setState(O),w.triggerSyncEvent(O);var _=w.props.onMouseLeave;oe(_)&&_(O,S)}),ee(w,"handleOuterEvent",function(S){var O=JM(S),_=gn(w.props,"".concat(O));if(O&&oe(_)){var A,j;/.*touch.*/i.test(O)?j=w.getMouseInfo(S.changedTouches[0]):j=w.getMouseInfo(S),_((A=j)!==null&&A!==void 0?A:{},S)}}),ee(w,"handleClick",function(S){var O=w.getMouseInfo(S);if(O){var _=z(z({},O),{},{isTooltipActive:!0});w.setState(_),w.triggerSyncEvent(_);var A=w.props.onClick;oe(A)&&A(_,S)}}),ee(w,"handleMouseDown",function(S){var O=w.props.onMouseDown;if(oe(O)){var _=w.getMouseInfo(S);O(_,S)}}),ee(w,"handleMouseUp",function(S){var O=w.props.onMouseUp;if(oe(O)){var _=w.getMouseInfo(S);O(_,S)}}),ee(w,"handleTouchMove",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(S.changedTouches[0])}),ee(w,"handleTouchStart",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&w.handleMouseDown(S.changedTouches[0])}),ee(w,"handleTouchEnd",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&w.handleMouseUp(S.changedTouches[0])}),ee(w,"handleDoubleClick",function(S){var O=w.props.onDoubleClick;if(oe(O)){var _=w.getMouseInfo(S);O(_,S)}}),ee(w,"handleContextMenu",function(S){var O=w.props.onContextMenu;if(oe(O)){var _=w.getMouseInfo(S);O(_,S)}}),ee(w,"triggerSyncEvent",function(S){w.props.syncId!==void 0&&eh.emit(th,w.props.syncId,S,w.eventEmitterSymbol)}),ee(w,"applySyncEvent",function(S){var O=w.props,_=O.layout,A=O.syncMethod,j=w.state.updateId,E=S.dataStartIndex,T=S.dataEndIndex;if(S.dataStartIndex!==void 0||S.dataEndIndex!==void 0)w.setState(z({dataStartIndex:E,dataEndIndex:T},d({props:w.props,dataStartIndex:E,dataEndIndex:T,updateId:j},w.state)));else if(S.activeTooltipIndex!==void 0){var N=S.chartX,M=S.chartY,I=S.activeTooltipIndex,R=w.state,L=R.offset,$=R.tooltipTicks;if(!L)return;if(typeof A=="function")I=A($,S);else if(A==="value"){I=-1;for(var D=0;D<$.length;D++)if($[D].value===S.activeLabel){I=D;break}}var H=z(z({},L),{},{x:L.left,y:L.top}),W=Math.min(N,H.x+H.width),G=Math.min(M,H.y+H.height),Z=$[I]&&$[I].value,ie=Ry(w.state,w.props.data,I),ve=$[I]?{x:_==="horizontal"?$[I].coordinate:W,y:_==="horizontal"?G:$[I].coordinate}:BS;w.setState(z(z({},S),{},{activeLabel:Z,activeCoordinate:ve,activePayload:ie,activeTooltipIndex:I}))}else w.setState(S)}),ee(w,"renderCursor",function(S){var O,_=w.state,A=_.isTooltipActive,j=_.activeCoordinate,E=_.activePayload,T=_.offset,N=_.activeTooltipIndex,M=_.tooltipAxisBandSize,I=w.getTooltipEventType(),R=(O=S.props.active)!==null&&O!==void 0?O:A,L=w.props.layout,$=S.key||"_recharts-cursor";return C.createElement(Vae,{key:$,activeCoordinate:j,activePayload:E,activeTooltipIndex:N,chartName:n,element:S,isActive:R,layout:L,offset:T,tooltipAxisBandSize:M,tooltipEventType:I})}),ee(w,"renderPolarAxis",function(S,O,_){var A=gn(S,"type.axisType"),j=gn(w.state,"".concat(A,"Map")),E=S.type.defaultProps,T=E!==void 0?z(z({},E),S.props):S.props,N=j&&j[T["".concat(A,"Id")]];return k.cloneElement(S,z(z({},N),{},{className:ue(A,N.className),key:S.key||"".concat(O,"-").concat(_),ticks:Er(N,!0)}))}),ee(w,"renderPolarGrid",function(S){var O=S.props,_=O.radialLines,A=O.polarAngles,j=O.polarRadius,E=w.state,T=E.radiusAxisMap,N=E.angleAxisMap,M=oa(T),I=oa(N),R=I.cx,L=I.cy,$=I.innerRadius,D=I.outerRadius;return k.cloneElement(S,{polarAngles:Array.isArray(A)?A:Er(I,!0).map(function(H){return H.coordinate}),polarRadius:Array.isArray(j)?j:Er(M,!0).map(function(H){return H.coordinate}),cx:R,cy:L,innerRadius:$,outerRadius:D,key:S.key||"polar-grid",radialLines:_})}),ee(w,"renderLegend",function(){var S=w.state.formattedGraphicalItems,O=w.props,_=O.children,A=O.width,j=O.height,E=w.props.margin||{},T=A-(E.left||0)-(E.right||0),N=SP({children:_,formattedGraphicalItems:S,legendWidth:T,legendContent:u});if(!N)return null;var M=N.item,I=I2(N,Kae);return k.cloneElement(M,z(z({},I),{},{chartWidth:A,chartHeight:j,margin:E,onBBoxUpdate:w.handleLegendBBoxUpdate}))}),ee(w,"renderTooltip",function(){var S,O=w.props,_=O.children,A=O.accessibilityLayer,j=Qt(_,Zn);if(!j)return null;var E=w.state,T=E.isTooltipActive,N=E.activeCoordinate,M=E.activePayload,I=E.activeLabel,R=E.offset,L=(S=j.props.active)!==null&&S!==void 0?S:T;return k.cloneElement(j,{viewBox:z(z({},R),{},{x:R.left,y:R.top}),active:L,label:I,payload:L?M:[],coordinate:N,accessibilityLayer:A})}),ee(w,"renderBrush",function(S){var O=w.props,_=O.margin,A=O.data,j=w.state,E=j.offset,T=j.dataStartIndex,N=j.dataEndIndex,M=j.updateId;return k.cloneElement(S,{key:S.key||"_recharts-brush",onChange:gc(w.handleBrushChange,S.props.onChange),data:A,x:V(S.props.x)?S.props.x:E.left,y:V(S.props.y)?S.props.y:E.top+E.height+E.brushBottom-(_.bottom||0),width:V(S.props.width)?S.props.width:E.width,startIndex:T,endIndex:N,updateId:"brush-".concat(M)})}),ee(w,"renderReferenceElement",function(S,O,_){if(!S)return null;var A=w,j=A.clipPathId,E=w.state,T=E.xAxisMap,N=E.yAxisMap,M=E.offset,I=S.type.defaultProps||{},R=S.props,L=R.xAxisId,$=L===void 0?I.xAxisId:L,D=R.yAxisId,H=D===void 0?I.yAxisId:D;return k.cloneElement(S,{key:S.key||"".concat(O,"-").concat(_),xAxis:T[$],yAxis:N[H],viewBox:{x:M.left,y:M.top,width:M.width,height:M.height},clipPathId:j})}),ee(w,"renderActivePoints",function(S){var O=S.item,_=S.activePoint,A=S.basePoint,j=S.childIndex,E=S.isRange,T=[],N=O.props.key,M=O.item.type.defaultProps!==void 0?z(z({},O.item.type.defaultProps),O.item.props):O.item.props,I=M.activeDot,R=M.dataKey,L=z(z({index:j,dataKey:R,cx:_.x,cy:_.y,r:4,fill:Gg(O.item),strokeWidth:2,stroke:"#fff",payload:_.payload,value:_.value},re(I,!1)),Sf(I));return T.push(v.renderActiveDot(I,L,"".concat(N,"-activePoint-").concat(j))),A?T.push(v.renderActiveDot(I,z(z({},L),{},{cx:A.x,cy:A.y}),"".concat(N,"-basePoint-").concat(j))):E&&T.push(null),T}),ee(w,"renderGraphicChild",function(S,O,_){var A=w.filterFormatItem(S,O,_);if(!A)return null;var j=w.getTooltipEventType(),E=w.state,T=E.isTooltipActive,N=E.tooltipAxis,M=E.activeTooltipIndex,I=E.activeLabel,R=w.props.children,L=Qt(R,Zn),$=A.props,D=$.points,H=$.isRange,W=$.baseLine,G=A.item.type.defaultProps!==void 0?z(z({},A.item.type.defaultProps),A.item.props):A.item.props,Z=G.activeDot,ie=G.hide,ve=G.activeBar,Pe=G.activeShape,J=!!(!ie&&T&&L&&(Z||ve||Pe)),le={};j!=="axis"&&L&&L.props.trigger==="click"?le={onClick:gc(w.handleItemMouseEnter,S.props.onClick)}:j!=="axis"&&(le={onMouseLeave:gc(w.handleItemMouseLeave,S.props.onMouseLeave),onMouseEnter:gc(w.handleItemMouseEnter,S.props.onMouseEnter)});var q=k.cloneElement(S,z(z({},A.props),le));function K(Ha){return typeof N.dataKey=="function"?N.dataKey(Ha.payload):null}if(J)if(M>=0){var X,F;if(N.dataKey&&!N.allowDuplicatedCategory){var fe=typeof N.dataKey=="function"?K:"payload.".concat(N.dataKey.toString());X=Pf(D,fe,I),F=H&&W&&Pf(W,fe,I)}else X=D==null?void 0:D[M],F=H&&W&&W[M];if(Pe||ve){var ne=S.props.activeIndex!==void 0?S.props.activeIndex:M;return[k.cloneElement(S,z(z(z({},A.props),le),{},{activeIndex:ne})),null,null]}if(!te(X))return[q].concat(is(w.renderActivePoints({item:A,activePoint:X,basePoint:F,childIndex:M,isRange:H})))}else{var Ne,Me=(Ne=w.getItemByXY(w.state.activeCoordinate))!==null&&Ne!==void 0?Ne:{graphicalItem:q},Ze=Me.graphicalItem,Xn=Ze.item,On=Xn===void 0?S:Xn,Fu=Ze.childIndex,Ba=z(z(z({},A.props),le),{},{activeIndex:Fu});return[k.cloneElement(On,Ba),null,null]}return H?[q,null,null]:[q,null]}),ee(w,"renderCustomized",function(S,O,_){return k.cloneElement(S,z(z({key:"recharts-customized-".concat(_)},w.props),w.state))}),ee(w,"renderMap",{CartesianGrid:{handler:Sc,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:Sc},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:Sc},YAxis:{handler:Sc},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((x=y.id)!==null&&x!==void 0?x:$o("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=S7(w.triggeredAfterMouseMove,(P=y.throttleDelay)!==null&&P!==void 0?P:1e3/60),w.state={},w}return ioe(v,g),noe(v,[{key:"componentDidMount",value:function(){var x,P;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(x=this.props.margin.left)!==null&&x!==void 0?x:0,top:(P=this.props.margin.top)!==null&&P!==void 0?P:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var x=this.props,P=x.children,w=x.data,S=x.height,O=x.layout,_=Qt(P,Zn);if(_){var A=_.props.defaultIndex;if(!(typeof A!="number"||A<0||A>this.state.tooltipTicks.length-1)){var j=this.state.tooltipTicks[A]&&this.state.tooltipTicks[A].value,E=Ry(this.state,w,A,j),T=this.state.tooltipTicks[A].coordinate,N=(this.state.offset.top+S)/2,M=O==="horizontal",I=M?{x:T,y:N}:{y:T,x:N},R=this.state.formattedGraphicalItems.find(function($){var D=$.item;return D.type.name==="Scatter"});R&&(I=z(z({},I),R.props.points[A].tooltipPosition),E=R.props.points[A].tooltipPayload);var L={activeTooltipIndex:A,isTooltipActive:!0,activeLabel:j,activePayload:E,activeCoordinate:I};this.setState(L),this.renderCursor(_),this.accessibilityManager.setIndex(A)}}}},{key:"getSnapshotBeforeUpdate",value:function(x,P){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==P.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==x.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==x.margin){var w,S;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0}})}return null}},{key:"componentDidUpdate",value:function(x){cv([Qt(x.children,Zn)],[Qt(this.props.children,Zn)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var x=Qt(this.props.children,Zn);if(x&&typeof x.props.shared=="boolean"){var P=x.props.shared?"axis":"item";return s.indexOf(P)>=0?P:o}return o}},{key:"getMouseInfo",value:function(x){if(!this.container)return null;var P=this.container,w=P.getBoundingClientRect(),S=AW(w),O={chartX:Math.round(x.pageX-S.left),chartY:Math.round(x.pageY-S.top)},_=w.width/P.offsetWidth||1,A=this.inRange(O.chartX,O.chartY,_);if(!A)return null;var j=this.state,E=j.xAxisMap,T=j.yAxisMap,N=this.getTooltipEventType(),M=L2(this.state,this.props.data,this.props.layout,A);if(N!=="axis"&&E&&T){var I=oa(E).scale,R=oa(T).scale,L=I&&I.invert?I.invert(O.chartX):null,$=R&&R.invert?R.invert(O.chartY):null;return z(z({},O),{},{xValue:L,yValue:$},M)}return M?z(z({},O),M):null}},{key:"inRange",value:function(x,P){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,S=this.props.layout,O=x/w,_=P/w;if(S==="horizontal"||S==="vertical"){var A=this.state.offset,j=O>=A.left&&O<=A.left+A.width&&_>=A.top&&_<=A.top+A.height;return j?{x:O,y:_}:null}var E=this.state,T=E.angleAxisMap,N=E.radiusAxisMap;if(T&&N){var M=oa(T);return hb({x:O,y:_},M)}return null}},{key:"parseEventsOfWrapper",value:function(){var x=this.props.children,P=this.getTooltipEventType(),w=Qt(x,Zn),S={};w&&P==="axis"&&(w.props.trigger==="click"?S={onClick:this.handleClick}:S={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var O=Sf(this.props,this.handleOuterEvent);return z(z({},O),S)}},{key:"addListener",value:function(){eh.on(th,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){eh.removeListener(th,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(x,P,w){for(var S=this.state.formattedGraphicalItems,O=0,_=S.length;O<_;O++){var A=S[O];if(A.item===x||A.props.key===x.key||P===jr(A.item.type)&&w===A.childIndex)return A}return null}},{key:"renderClipPath",value:function(){var x=this.clipPathId,P=this.state.offset,w=P.left,S=P.top,O=P.height,_=P.width;return C.createElement("defs",null,C.createElement("clipPath",{id:x},C.createElement("rect",{x:w,y:S,height:O,width:_})))}},{key:"getXScales",value:function(){var x=this.state.xAxisMap;return x?Object.entries(x).reduce(function(P,w){var S=R2(w,2),O=S[0],_=S[1];return z(z({},P),{},ee({},O,_.scale))},{}):null}},{key:"getYScales",value:function(){var x=this.state.yAxisMap;return x?Object.entries(x).reduce(function(P,w){var S=R2(w,2),O=S[0],_=S[1];return z(z({},P),{},ee({},O,_.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(x){var P;return(P=this.state.xAxisMap)===null||P===void 0||(P=P[x])===null||P===void 0?void 0:P.scale}},{key:"getYScaleByAxisId",value:function(x){var P;return(P=this.state.yAxisMap)===null||P===void 0||(P=P[x])===null||P===void 0?void 0:P.scale}},{key:"getItemByXY",value:function(x){var P=this.state,w=P.formattedGraphicalItems,S=P.activeItem;if(w&&w.length)for(var O=0,_=w.length;O<_;O++){var A=w[O],j=A.props,E=A.item,T=E.type.defaultProps!==void 0?z(z({},E.type.defaultProps),E.props):E.props,N=jr(E.type);if(N==="Bar"){var M=(j.data||[]).find(function($){return uJ(x,$)});if(M)return{graphicalItem:A,payload:M}}else if(N==="RadialBar"){var I=(j.data||[]).find(function($){return hb(x,$)});if(I)return{graphicalItem:A,payload:I}}else if(Cd(A,S)||Ed(A,S)||mu(A,S)){var R=fee({graphicalItem:A,activeTooltipItem:S,itemData:T.data}),L=T.activeIndex===void 0?R:T.activeIndex;return{graphicalItem:z(z({},A),{},{childIndex:L}),payload:mu(A,S)?T.data[R]:A.props.data[R]}}}return null}},{key:"render",value:function(){var x=this;if(!iw(this))return null;var P=this.props,w=P.children,S=P.className,O=P.width,_=P.height,A=P.style,j=P.compact,E=P.title,T=P.desc,N=I2(P,Xae),M=re(N,!1);if(j)return C.createElement(d2,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},C.createElement(pv,ai({},M,{width:O,height:_,title:E,desc:T}),this.renderClipPath(),lw(w,this.renderMap)));if(this.props.accessibilityLayer){var I,R;M.tabIndex=(I=this.props.tabIndex)!==null&&I!==void 0?I:0,M.role=(R=this.props.role)!==null&&R!==void 0?R:"application",M.onKeyDown=function($){x.accessibilityManager.keyboardEvent($)},M.onFocus=function(){x.accessibilityManager.focus()}}var L=this.parseEventsOfWrapper();return C.createElement(d2,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},C.createElement("div",ai({className:ue("recharts-wrapper",S),style:z({position:"relative",cursor:"default",width:O,height:_},A)},L,{ref:function(D){x.container=D}}),C.createElement(pv,ai({},M,{width:O,height:_,title:E,desc:T,style:poe}),this.renderClipPath(),lw(w,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])}(k.Component);ee(h,"displayName",n),ee(h,"defaultProps",z({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},c)),ee(h,"getDerivedStateFromProps",function(g,v){var y=g.dataKey,x=g.data,P=g.children,w=g.width,S=g.height,O=g.layout,_=g.stackOffset,A=g.margin,j=v.dataStartIndex,E=v.dataEndIndex;if(v.updateId===void 0){var T=F2(g);return z(z(z({},T),{},{updateId:0},d(z(z({props:g},T),{},{updateId:0}),v)),{},{prevDataKey:y,prevData:x,prevWidth:w,prevHeight:S,prevLayout:O,prevStackOffset:_,prevMargin:A,prevChildren:P})}if(y!==v.prevDataKey||x!==v.prevData||w!==v.prevWidth||S!==v.prevHeight||O!==v.prevLayout||_!==v.prevStackOffset||!mi(A,v.prevMargin)){var N=F2(g),M={chartX:v.chartX,chartY:v.chartY,isTooltipActive:v.isTooltipActive},I=z(z({},L2(v,x,O)),{},{updateId:v.updateId+1}),R=z(z(z({},N),M),I);return z(z(z({},R),d(z({props:g},R),v)),{},{prevDataKey:y,prevData:x,prevWidth:w,prevHeight:S,prevLayout:O,prevStackOffset:_,prevMargin:A,prevChildren:P})}if(!cv(P,v.prevChildren)){var L,$,D,H,W=Qt(P,Vi),G=W&&(L=($=W.props)===null||$===void 0?void 0:$.startIndex)!==null&&L!==void 0?L:j,Z=W&&(D=(H=W.props)===null||H===void 0?void 0:H.endIndex)!==null&&D!==void 0?D:E,ie=G!==j||Z!==E,ve=!te(x),Pe=ve&&!ie?v.updateId:v.updateId+1;return z(z({updateId:Pe},d(z(z({props:g},v),{},{updateId:Pe,dataStartIndex:G,dataEndIndex:Z}),v)),{},{prevChildren:P,dataStartIndex:G,dataEndIndex:Z})}return null}),ee(h,"renderActiveDot",function(g,v,y){var x;return k.isValidElement(g)?x=k.cloneElement(g,v):oe(g)?x=g(v):x=C.createElement(Ad,v),C.createElement(ye,{className:"recharts-active-dot",key:y},x)});var m=k.forwardRef(function(v,y){return C.createElement(h,ai({},v,{ref:y}))});return m.displayName=h.displayName,m},e1=Fd({chartName:"LineChart",GraphicalChild:Rt,axisComponents:[{axisType:"xAxis",AxisComp:Et},{axisType:"yAxis",AxisComp:yt}],formatAxisMap:jd}),GS=Fd({chartName:"BarChart",GraphicalChild:Vr,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:Et},{axisType:"yAxis",AxisComp:yt}],formatAxisMap:jd}),Sp=Fd({chartName:"AreaChart",GraphicalChild:ft,axisComponents:[{axisType:"xAxis",AxisComp:Et},{axisType:"yAxis",AxisComp:yt}],formatAxisMap:jd}),Poe=Fd({chartName:"ComposedChart",GraphicalChild:[Rt,ft,Vr,Dd],axisComponents:[{axisType:"xAxis",AxisComp:Et},{axisType:"yAxis",AxisComp:yt},{axisType:"zAxis",AxisComp:Id}],formatAxisMap:jd});const Soe={light:"",dark:".dark"},US=k.createContext(null);function WS(){const e=k.useContext(US);if(!e)throw new Error("useChart must be used within a <ChartContainer />");return e}const Fn=k.forwardRef(({id:e,className:t,children:n,config:r,...a},o)=>{const i=k.useId(),s=`chart-${e||i.replace(/:/g,"")}`;return b.jsx(US.Provider,{value:{config:r},children:b.jsxs("div",{"data-chart":s,ref:o,className:Oe("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[b.jsx(Ooe,{id:s,config:r}),b.jsx(wW,{children:n})]})})});Fn.displayName="Chart";const Ooe=({id:e,config:t})=>{const n=Object.entries(t).filter(([r,a])=>a.theme||a.color);return n.length?b.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(Soe).map(([r,a])=>`
+            A `).concat(h,",").concat(h,",0,0,").concat(u,",").concat(t,",").concat(n+a-s*h," Z")}else p="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return p},SJ=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,o=n.x,i=n.y,s=n.width,l=n.height;if(Math.abs(s)>0&&Math.abs(l)>0){var u=Math.min(o,o+s),p=Math.max(o,o+s),c=Math.min(i,i+l),f=Math.max(i,i+l);return r>=u&&r<=p&&a>=c&&a<=f}return!1},OJ={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Ug=function(t){var n=Vb(Vb({},OJ),t),r=k.useRef(),a=k.useState(-1),o=hJ(a,2),i=o[0],s=o[1];k.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var P=r.current.getTotalLength();P&&s(P)}catch{}},[]);var l=n.x,u=n.y,p=n.width,c=n.height,f=n.radius,d=n.className,h=n.animationEasing,m=n.animationDuration,g=n.animationBegin,v=n.isAnimationActive,y=n.isUpdateAnimationActive;if(l!==+l||u!==+u||p!==+p||c!==+c||p===0||c===0)return null;var x=ue("recharts-rectangle",d);return y?A.createElement(Vn,{canBegin:i>0,from:{width:p,height:c,x:l,y:u},to:{width:p,height:c,x:l,y:u},duration:m,animationEasing:h,isActive:y},function(P){var w=P.width,S=P.height,O=P.x,_=P.y;return A.createElement(Vn,{canBegin:i>0,from:"0px ".concat(i===-1?1:i,"px"),to:"".concat(i,"px 0px"),attributeName:"strokeDasharray",begin:g,duration:m,isActive:v,easing:h},A.createElement("path",nf({},re(n,!0),{className:x,d:Kb(O,_,w,S,f),ref:r})))}):A.createElement("path",nf({},re(n,!0),{className:x,d:Kb(l,u,p,c,f)}))};function uv(){return uv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},uv.apply(this,arguments)}var Cd=function(t){var n=t.cx,r=t.cy,a=t.r,o=t.className,i=ue("recharts-dot",o);return n===+n&&r===+r&&a===+a?k.createElement("circle",uv({},re(t,!1),Pp(t),{className:i,cx:n,cy:r,r:a})):null};function pu(e){"@babel/helpers - typeof";return pu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pu(e)}var kJ=["x","y","top","left","width","height","className"];function cv(){return cv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},cv.apply(this,arguments)}function Xb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function _J(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Xb(Object(n),!0).forEach(function(r){CJ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function CJ(e,t,n){return t=AJ(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function AJ(e){var t=EJ(e,"string");return pu(t)=="symbol"?t:t+""}function EJ(e,t){if(pu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(pu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function TJ(e,t){if(e==null)return{};var n=jJ(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function jJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var $J=function(t,n,r,a,o,i){return"M".concat(t,",").concat(o,"v").concat(a,"M").concat(i,",").concat(n,"h").concat(r)},NJ=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,o=a===void 0?0:a,i=t.top,s=i===void 0?0:i,l=t.left,u=l===void 0?0:l,p=t.width,c=p===void 0?0:p,f=t.height,d=f===void 0?0:f,h=t.className,m=TJ(t,kJ),g=_J({x:r,y:o,top:s,left:u,width:c,height:d},m);return!V(r)||!V(o)||!V(c)||!V(d)||!V(s)||!V(u)?null:A.createElement("path",cv({},re(g,!0),{className:ue("recharts-cross",h),d:$J(r,o,c,d,s,u)}))},MJ=i7,RJ=MJ(Object.getPrototypeOf,Object),IJ=RJ,DJ=Ur,LJ=IJ,FJ=Wr,zJ="[object Object]",BJ=Function.prototype,HJ=Object.prototype,qP=BJ.toString,GJ=HJ.hasOwnProperty,UJ=qP.call(Object);function WJ(e){if(!FJ(e)||DJ(e)!=zJ)return!1;var t=LJ(e);if(t===null)return!0;var n=GJ.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&qP.call(n)==UJ}var qJ=WJ;const VJ=Ae(qJ);var KJ=Ur,XJ=Wr,YJ="[object Boolean]";function QJ(e){return e===!0||e===!1||XJ(e)&&KJ(e)==YJ}var ZJ=QJ;const JJ=Ae(ZJ);function fu(e){"@babel/helpers - typeof";return fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fu(e)}function rf(){return rf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rf.apply(this,arguments)}function eee(e,t){return aee(e)||ree(e,t)||nee(e,t)||tee()}function tee(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function nee(e,t){if(e){if(typeof e=="string")return Yb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Yb(e,t)}}function Yb(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ree(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function aee(e){if(Array.isArray(e))return e}function Qb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Zb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Qb(Object(n),!0).forEach(function(r){oee(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function oee(e,t,n){return t=iee(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function iee(e){var t=see(e,"string");return fu(t)=="symbol"?t:t+""}function see(e,t){if(fu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(fu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Jb=function(t,n,r,a,o){var i=r-a,s;return s="M ".concat(t,",").concat(n),s+="L ".concat(t+r,",").concat(n),s+="L ".concat(t+r-i/2,",").concat(n+o),s+="L ".concat(t+r-i/2-a,",").concat(n+o),s+="L ".concat(t,",").concat(n," Z"),s},lee={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},uee=function(t){var n=Zb(Zb({},lee),t),r=k.useRef(),a=k.useState(-1),o=eee(a,2),i=o[0],s=o[1];k.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var x=r.current.getTotalLength();x&&s(x)}catch{}},[]);var l=n.x,u=n.y,p=n.upperWidth,c=n.lowerWidth,f=n.height,d=n.className,h=n.animationEasing,m=n.animationDuration,g=n.animationBegin,v=n.isUpdateAnimationActive;if(l!==+l||u!==+u||p!==+p||c!==+c||f!==+f||p===0&&c===0||f===0)return null;var y=ue("recharts-trapezoid",d);return v?A.createElement(Vn,{canBegin:i>0,from:{upperWidth:0,lowerWidth:0,height:f,x:l,y:u},to:{upperWidth:p,lowerWidth:c,height:f,x:l,y:u},duration:m,animationEasing:h,isActive:v},function(x){var P=x.upperWidth,w=x.lowerWidth,S=x.height,O=x.x,_=x.y;return A.createElement(Vn,{canBegin:i>0,from:"0px ".concat(i===-1?1:i,"px"),to:"".concat(i,"px 0px"),attributeName:"strokeDasharray",begin:g,duration:m,easing:h},A.createElement("path",rf({},re(n,!0),{className:y,d:Jb(O,_,P,w,S),ref:r})))}):A.createElement("g",null,A.createElement("path",rf({},re(n,!0),{className:y,d:Jb(l,u,p,c,f)})))},cee=["option","shapeType","propTransformer","activeClassName","isActive"];function du(e){"@babel/helpers - typeof";return du=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},du(e)}function pee(e,t){if(e==null)return{};var n=fee(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function fee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function e2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function af(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?e2(Object(n),!0).forEach(function(r){dee(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):e2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function dee(e,t,n){return t=mee(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mee(e){var t=hee(e,"string");return du(t)=="symbol"?t:t+""}function hee(e,t){if(du(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(du(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function vee(e,t){return af(af({},t),e)}function yee(e,t){return e==="symbols"}function t2(e){var t=e.shapeType,n=e.elementProps;switch(t){case"rectangle":return A.createElement(Ug,n);case"trapezoid":return A.createElement(uee,n);case"sector":return A.createElement(RP,n);case"symbols":if(yee(t))return A.createElement(md,n);break;default:return null}}function gee(e){return k.isValidElement(e)?e.props:e}function pv(e){var t=e.option,n=e.shapeType,r=e.propTransformer,a=r===void 0?vee:r,o=e.activeClassName,i=o===void 0?"recharts-active-shape":o,s=e.isActive,l=pee(e,cee),u;if(k.isValidElement(t))u=k.cloneElement(t,af(af({},l),gee(t)));else if(oe(t))u=t(l);else if(VJ(t)&&!JJ(t)){var p=a(t,l);u=A.createElement(t2,{shapeType:n,elementProps:p})}else{var c=l;u=A.createElement(t2,{shapeType:n,elementProps:c})}return s?A.createElement(ye,{className:i},u):u}function Ad(e,t){return t!=null&&"trapezoids"in e.props}function Ed(e,t){return t!=null&&"sectors"in e.props}function mu(e,t){return t!=null&&"points"in e.props}function xee(e,t){var n,r,a=e.x===(t==null||(n=t.labelViewBox)===null||n===void 0?void 0:n.x)||e.x===t.x,o=e.y===(t==null||(r=t.labelViewBox)===null||r===void 0?void 0:r.y)||e.y===t.y;return a&&o}function wee(e,t){var n=e.endAngle===t.endAngle,r=e.startAngle===t.startAngle;return n&&r}function bee(e,t){var n=e.x===t.x,r=e.y===t.y,a=e.z===t.z;return n&&r&&a}function Pee(e,t){var n;return Ad(e,t)?n=xee:Ed(e,t)?n=wee:mu(e,t)&&(n=bee),n}function See(e,t){var n;return Ad(e,t)?n="trapezoids":Ed(e,t)?n="sectors":mu(e,t)&&(n="points"),n}function Oee(e,t){if(Ad(e,t)){var n;return(n=t.tooltipPayload)===null||n===void 0||(n=n[0])===null||n===void 0||(n=n.payload)===null||n===void 0?void 0:n.payload}if(Ed(e,t)){var r;return(r=t.tooltipPayload)===null||r===void 0||(r=r[0])===null||r===void 0||(r=r.payload)===null||r===void 0?void 0:r.payload}return mu(e,t)?t.payload:{}}function kee(e){var t=e.activeTooltipItem,n=e.graphicalItem,r=e.itemData,a=See(n,t),o=Oee(n,t),i=r.filter(function(l,u){var p=ko(o,l),c=n.props[a].filter(function(h){var m=Pee(n,t);return m(h,t)}),f=n.props[a].indexOf(c[c.length-1]),d=u===f;return p&&d}),s=r.indexOf(i[i.length-1]);return s}var _ee=Math.ceil,Cee=Math.max;function Aee(e,t,n,r){for(var a=-1,o=Cee(_ee((t-e)/(n||1)),0),i=Array(o);o--;)i[r?o:++a]=e,e+=n;return i}var Eee=Aee,Tee=k7,n2=1/0,jee=17976931348623157e292;function $ee(e){if(!e)return e===0?e:0;if(e=Tee(e),e===n2||e===-n2){var t=e<0?-1:1;return t*jee}return e===e?e:0}var VP=$ee,Nee=Eee,Mee=yd,Qm=VP;function Ree(e){return function(t,n,r){return r&&typeof r!="number"&&Mee(t,n,r)&&(n=r=void 0),t=Qm(t),n===void 0?(n=t,t=0):n=Qm(n),r=r===void 0?t<n?1:-1:Qm(r),Nee(t,n,r,e)}}var Iee=Ree,Dee=Iee,Lee=Dee(),Fee=Lee;const of=Ae(Fee);function hu(e){"@babel/helpers - typeof";return hu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hu(e)}function r2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function a2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?r2(Object(n),!0).forEach(function(r){KP(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function KP(e,t,n){return t=zee(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zee(e){var t=Bee(e,"string");return hu(t)=="symbol"?t:t+""}function Bee(e,t){if(hu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(hu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Hee=["Webkit","Moz","O","ms"],Gee=function(t,n){var r=t.replace(/(\w)/,function(o){return o.toUpperCase()}),a=Hee.reduce(function(o,i){return a2(a2({},o),{},KP({},i+r,n))},{});return a[t]=n,a};function qi(e){"@babel/helpers - typeof";return qi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qi(e)}function sf(){return sf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sf.apply(this,arguments)}function o2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Zm(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?o2(Object(n),!0).forEach(function(r){Xt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Uee(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,YP(r.key),r)}}function Wee(e,t,n){return t&&i2(e.prototype,t),n&&i2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function qee(e,t,n){return t=lf(t),Vee(e,XP()?Reflect.construct(t,n||[],lf(e).constructor):t.apply(e,n))}function Vee(e,t){if(t&&(qi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Kee(e)}function Kee(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function XP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(XP=function(){return!!e})()}function lf(e){return lf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},lf(e)}function Xee(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&fv(e,t)}function fv(e,t){return fv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},fv(e,t)}function Xt(e,t,n){return t=YP(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YP(e){var t=Yee(e,"string");return qi(t)=="symbol"?t:t+""}function Yee(e,t){if(qi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(qi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Qee=function(t){var n=t.data,r=t.startIndex,a=t.endIndex,o=t.x,i=t.width,s=t.travellerWidth;if(!n||!n.length)return{};var l=n.length,u=dl().domain(of(0,l)).range([o,o+i-s]),p=u.domain().map(function(c){return u(c)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:u(r),endX:u(a),scale:u,scaleValues:p}},s2=function(t){return t.changedTouches&&!!t.changedTouches.length},Vi=function(e){function t(n){var r;return Uee(this,t),r=qee(this,t,[n]),Xt(r,"handleDrag",function(a){r.leaveTimer&&(clearTimeout(r.leaveTimer),r.leaveTimer=null),r.state.isTravellerMoving?r.handleTravellerMove(a):r.state.isSlideMoving&&r.handleSlideDrag(a)}),Xt(r,"handleTouchMove",function(a){a.changedTouches!=null&&a.changedTouches.length>0&&r.handleDrag(a.changedTouches[0])}),Xt(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,o=a.endIndex,i=a.onDragEnd,s=a.startIndex;i==null||i({endIndex:o,startIndex:s})}),r.detachDragEndListener()}),Xt(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Xt(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Xt(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Xt(r,"handleSlideDragStart",function(a){var o=s2(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:o.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return Xee(t,e),Wee(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,o=r.endX,i=this.state.scaleValues,s=this.props,l=s.gap,u=s.data,p=u.length-1,c=Math.min(a,o),f=Math.max(a,o),d=t.getIndexInRange(i,c),h=t.getIndexInRange(i,f);return{startIndex:d-d%l,endIndex:h===p?p:h-h%l}}},{key:"getTextOfTick",value:function(r){var a=this.props,o=a.data,i=a.tickFormatter,s=a.dataKey,l=st(o[r],s,r);return oe(i)?i(l,r):l}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,o=a.slideMoveStartX,i=a.startX,s=a.endX,l=this.props,u=l.x,p=l.width,c=l.travellerWidth,f=l.startIndex,d=l.endIndex,h=l.onChange,m=r.pageX-o;m>0?m=Math.min(m,u+p-c-s,u+p-c-i):m<0&&(m=Math.max(m,u-i,u-s));var g=this.getIndex({startX:i+m,endX:s+m});(g.startIndex!==f||g.endIndex!==d)&&h&&h(g),this.setState({startX:i+m,endX:s+m,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var o=s2(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:o.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,o=a.brushMoveStartX,i=a.movingTravellerId,s=a.endX,l=a.startX,u=this.state[i],p=this.props,c=p.x,f=p.width,d=p.travellerWidth,h=p.onChange,m=p.gap,g=p.data,v={startX:this.state.startX,endX:this.state.endX},y=r.pageX-o;y>0?y=Math.min(y,c+f-d-u):y<0&&(y=Math.max(y,c-u)),v[i]=u+y;var x=this.getIndex(v),P=x.startIndex,w=x.endIndex,S=function(){var _=g.length-1;return i==="startX"&&(s>l?P%m===0:w%m===0)||s<l&&w===_||i==="endX"&&(s>l?w%m===0:P%m===0)||s>l&&w===_};this.setState(Xt(Xt({},i,u+y),"brushMoveStartX",r.pageX),function(){h&&S()&&h(x)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var o=this,i=this.state,s=i.scaleValues,l=i.startX,u=i.endX,p=this.state[a],c=s.indexOf(p);if(c!==-1){var f=c+r;if(!(f===-1||f>=s.length)){var d=s[f];a==="startX"&&d>=u||a==="endX"&&d<=l||this.setState(Xt({},a,d),function(){o.props.onChange(o.getIndex({startX:o.state.startX,endX:o.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,o=r.y,i=r.width,s=r.height,l=r.fill,u=r.stroke;return A.createElement("rect",{stroke:u,fill:l,x:a,y:o,width:i,height:s})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,o=r.y,i=r.width,s=r.height,l=r.data,u=r.children,p=r.padding,c=k.Children.only(u);return c?A.cloneElement(c,{x:a,y:o,width:i,height:s,margin:p,compact:!0,data:l}):null}},{key:"renderTravellerLayer",value:function(r,a){var o,i,s=this,l=this.props,u=l.y,p=l.travellerWidth,c=l.height,f=l.traveller,d=l.ariaLabel,h=l.data,m=l.startIndex,g=l.endIndex,v=Math.max(r,this.props.x),y=Zm(Zm({},re(this.props,!1)),{},{x:v,y:u,width:p,height:c}),x=d||"Min value: ".concat((o=h[m])===null||o===void 0?void 0:o.name,", Max value: ").concat((i=h[g])===null||i===void 0?void 0:i.name);return A.createElement(ye,{tabIndex:0,role:"slider","aria-label":x,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(w){["ArrowLeft","ArrowRight"].includes(w.key)&&(w.preventDefault(),w.stopPropagation(),s.handleTravellerMoveKeyboard(w.key==="ArrowRight"?1:-1,a))},onFocus:function(){s.setState({isTravellerFocused:!0})},onBlur:function(){s.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(f,y))}},{key:"renderSlide",value:function(r,a){var o=this.props,i=o.y,s=o.height,l=o.stroke,u=o.travellerWidth,p=Math.min(r,a)+u,c=Math.max(Math.abs(a-r)-u,0);return A.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:l,fillOpacity:.2,x:p,y:i,width:c,height:s})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,o=r.endIndex,i=r.y,s=r.height,l=r.travellerWidth,u=r.stroke,p=this.state,c=p.startX,f=p.endX,d=5,h={pointerEvents:"none",fill:u};return A.createElement(ye,{className:"recharts-brush-texts"},A.createElement(Ip,sf({textAnchor:"end",verticalAnchor:"middle",x:Math.min(c,f)-d,y:i+s/2},h),this.getTextOfTick(a)),A.createElement(Ip,sf({textAnchor:"start",verticalAnchor:"middle",x:Math.max(c,f)+l+d,y:i+s/2},h),this.getTextOfTick(o)))}},{key:"render",value:function(){var r=this.props,a=r.data,o=r.className,i=r.children,s=r.x,l=r.y,u=r.width,p=r.height,c=r.alwaysShowText,f=this.state,d=f.startX,h=f.endX,m=f.isTextActive,g=f.isSlideMoving,v=f.isTravellerMoving,y=f.isTravellerFocused;if(!a||!a.length||!V(s)||!V(l)||!V(u)||!V(p)||u<=0||p<=0)return null;var x=ue("recharts-brush",o),P=A.Children.count(i)===1,w=Gee("userSelect","none");return A.createElement(ye,{className:x,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:w},this.renderBackground(),P&&this.renderPanorama(),this.renderSlide(d,h),this.renderTravellerLayer(d,"startX"),this.renderTravellerLayer(h,"endX"),(m||g||v||y||c)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,o=r.y,i=r.width,s=r.height,l=r.stroke,u=Math.floor(o+s/2)-1;return A.createElement(A.Fragment,null,A.createElement("rect",{x:a,y:o,width:i,height:s,fill:l,stroke:"none"}),A.createElement("line",{x1:a+1,y1:u,x2:a+i-1,y2:u,fill:"none",stroke:"#fff"}),A.createElement("line",{x1:a+1,y1:u+2,x2:a+i-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var o;return A.isValidElement(r)?o=A.cloneElement(r,a):oe(r)?o=r(a):o=t.renderDefaultTraveller(a),o}},{key:"getDerivedStateFromProps",value:function(r,a){var o=r.data,i=r.width,s=r.x,l=r.travellerWidth,u=r.updateId,p=r.startIndex,c=r.endIndex;if(o!==a.prevData||u!==a.prevUpdateId)return Zm({prevData:o,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:i},o&&o.length?Qee({data:o,width:i,x:s,travellerWidth:l,startIndex:p,endIndex:c}):{scale:null,scaleValues:null});if(a.scale&&(i!==a.prevWidth||s!==a.prevX||l!==a.prevTravellerWidth)){a.scale.range([s,s+i-l]);var f=a.scale.domain().map(function(d){return a.scale(d)});return{prevData:o,prevTravellerWidth:l,prevUpdateId:u,prevX:s,prevWidth:i,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:f}}return null}},{key:"getIndexInRange",value:function(r,a){for(var o=r.length,i=0,s=o-1;s-i>1;){var l=Math.floor((i+s)/2);r[l]>a?s=l:i=l}return a>=r[s]?s:i}}])}(k.PureComponent);Xt(Vi,"displayName","Brush");Xt(Vi,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var Zee=hg;function Jee(e,t){var n;return Zee(e,function(r,a,o){return n=t(r,a,o),!n}),!!n}var ete=Jee,tte=Z8,nte=Ia,rte=ete,ate=Vt,ote=yd;function ite(e,t,n){var r=ate(e)?tte:rte;return n&&ote(e,t,n)&&(t=void 0),r(e,nte(t))}var ste=ite;const lte=Ae(ste);var mr=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},l2=w7;function ute(e,t,n){t=="__proto__"&&l2?l2(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var cte=ute,pte=cte,fte=g7,dte=Ia;function mte(e,t){var n={};return t=dte(t),fte(e,function(r,a,o){pte(n,a,t(r,a,o))}),n}var hte=mte;const vte=Ae(hte);function yte(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}var gte=yte,xte=hg;function wte(e,t){var n=!0;return xte(e,function(r,a,o){return n=!!t(r,a,o),n}),n}var bte=wte,Pte=gte,Ste=bte,Ote=Ia,kte=Vt,_te=yd;function Cte(e,t,n){var r=kte(e)?Pte:Ste;return n&&_te(e,t,n)&&(t=void 0),r(e,Ote(t))}var Ate=Cte;const QP=Ae(Ate);var Ete=["x","y"];function vu(e){"@babel/helpers - typeof";return vu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vu(e)}function dv(){return dv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},dv.apply(this,arguments)}function u2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Ys(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?u2(Object(n),!0).forEach(function(r){Tte(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Tte(e,t,n){return t=jte(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jte(e){var t=$te(e,"string");return vu(t)=="symbol"?t:t+""}function $te(e,t){if(vu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(vu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Nte(e,t){if(e==null)return{};var n=Mte(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Mte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Rte(e,t){var n=e.x,r=e.y,a=Nte(e,Ete),o="".concat(n),i=parseInt(o,10),s="".concat(r),l=parseInt(s,10),u="".concat(t.height||a.height),p=parseInt(u,10),c="".concat(t.width||a.width),f=parseInt(c,10);return Ys(Ys(Ys(Ys(Ys({},t),a),i?{x:i}:{}),l?{y:l}:{}),{},{height:p,width:f,name:t.name,radius:t.radius})}function c2(e){return A.createElement(pv,dv({shapeType:"rectangle",propTransformer:Rte,activeClassName:"recharts-active-bar"},e))}var Ite=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var o=V(r)||JM(r);return o?t(r,a):(o||Co(),n)}},Dte=["value","background"],ZP;function Ki(e){"@babel/helpers - typeof";return Ki=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ki(e)}function Lte(e,t){if(e==null)return{};var n=Fte(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function uf(){return uf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},uf.apply(this,arguments)}function p2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Je(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?p2(Object(n),!0).forEach(function(r){ma(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function zte(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,eS(r.key),r)}}function Bte(e,t,n){return t&&f2(e.prototype,t),n&&f2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Hte(e,t,n){return t=cf(t),Gte(e,JP()?Reflect.construct(t,n||[],cf(e).constructor):t.apply(e,n))}function Gte(e,t){if(t&&(Ki(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ute(e)}function Ute(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function JP(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(JP=function(){return!!e})()}function cf(e){return cf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},cf(e)}function Wte(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&mv(e,t)}function mv(e,t){return mv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},mv(e,t)}function ma(e,t,n){return t=eS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function eS(e){var t=qte(e,"string");return Ki(t)=="symbol"?t:t+""}function qte(e,t){if(Ki(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ki(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Vr=function(e){function t(){var n;zte(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=Hte(this,t,[].concat(a)),ma(n,"state",{isAnimationFinished:!1}),ma(n,"id",$o("recharts-bar-")),ma(n,"handleAnimationEnd",function(){var i=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),i&&i()}),ma(n,"handleAnimationStart",function(){var i=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),i&&i()}),n}return Wte(t,e),Bte(t,[{key:"renderRectanglesStatically",value:function(r){var a=this,o=this.props,i=o.shape,s=o.dataKey,l=o.activeIndex,u=o.activeBar,p=re(this.props,!1);return r&&r.map(function(c,f){var d=f===l,h=d?u:i,m=Je(Je(Je({},p),c),{},{isActive:d,option:h,index:f,dataKey:s,onAnimationStart:a.handleAnimationStart,onAnimationEnd:a.handleAnimationEnd});return A.createElement(ye,uf({className:"recharts-bar-rectangle"},Fl(a.props,c,f),{key:"rectangle-".concat(c==null?void 0:c.x,"-").concat(c==null?void 0:c.y,"-").concat(c==null?void 0:c.value,"-").concat(f)}),A.createElement(c2,m))})}},{key:"renderRectanglesWithAnimation",value:function(){var r=this,a=this.props,o=a.data,i=a.layout,s=a.isAnimationActive,l=a.animationBegin,u=a.animationDuration,p=a.animationEasing,c=a.animationId,f=this.state.prevData;return A.createElement(Vn,{begin:l,duration:u,isActive:s,easing:p,from:{t:0},to:{t:1},key:"bar-".concat(c),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(d){var h=d.t,m=o.map(function(g,v){var y=f&&f[v];if(y){var x=Xe(y.x,g.x),P=Xe(y.y,g.y),w=Xe(y.width,g.width),S=Xe(y.height,g.height);return Je(Je({},g),{},{x:x(h),y:P(h),width:w(h),height:S(h)})}if(i==="horizontal"){var O=Xe(0,g.height),_=O(h);return Je(Je({},g),{},{y:g.y+g.height-_,height:_})}var C=Xe(0,g.width),j=C(h);return Je(Je({},g),{},{width:j})});return A.createElement(ye,null,r.renderRectanglesStatically(m))})}},{key:"renderRectangles",value:function(){var r=this.props,a=r.data,o=r.isAnimationActive,i=this.state.prevData;return o&&a&&a.length&&(!i||!ko(i,a))?this.renderRectanglesWithAnimation():this.renderRectanglesStatically(a)}},{key:"renderBackground",value:function(){var r=this,a=this.props,o=a.data,i=a.dataKey,s=a.activeIndex,l=re(this.props.background,!1);return o.map(function(u,p){u.value;var c=u.background,f=Lte(u,Dte);if(!c)return null;var d=Je(Je(Je(Je(Je({},f),{},{fill:"#eee"},c),l),Fl(r.props,u,p)),{},{onAnimationStart:r.handleAnimationStart,onAnimationEnd:r.handleAnimationEnd,dataKey:i,index:p,className:"recharts-bar-background-rectangle"});return A.createElement(c2,uf({key:"background-bar-".concat(p),option:r.props.background,isActive:p===s},d))})}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var o=this.props,i=o.data,s=o.xAxis,l=o.yAxis,u=o.layout,p=o.children,c=qt(p,Es);if(!c)return null;var f=u==="vertical"?i[0].height/2:i[0].width/2,d=function(g,v){var y=Array.isArray(g.value)?g.value[1]:g.value;return{x:g.x,y:g.y,value:y,errorVal:st(g,v)}},h={clipPath:r?"url(#clipPath-".concat(a,")"):null};return A.createElement(ye,h,c.map(function(m){return A.cloneElement(m,{key:"error-bar-".concat(a,"-").concat(m.props.dataKey),data:i,xAxis:s,yAxis:l,layout:u,offset:f,dataPointFormatter:d})}))}},{key:"render",value:function(){var r=this.props,a=r.hide,o=r.data,i=r.className,s=r.xAxis,l=r.yAxis,u=r.left,p=r.top,c=r.width,f=r.height,d=r.isAnimationActive,h=r.background,m=r.id;if(a||!o||!o.length)return null;var g=this.state.isAnimationFinished,v=ue("recharts-bar",i),y=s&&s.allowDataOverflow,x=l&&l.allowDataOverflow,P=y||x,w=te(m)?this.id:m;return A.createElement(ye,{className:v},y||x?A.createElement("defs",null,A.createElement("clipPath",{id:"clipPath-".concat(w)},A.createElement("rect",{x:y?u:u-c/2,y:x?p:p-f/2,width:y?c:c*2,height:x?f:f*2}))):null,A.createElement(ye,{className:"recharts-bar-rectangles",clipPath:P?"url(#clipPath-".concat(w,")"):null},h?this.renderBackground():null,this.renderRectangles()),this.renderErrorBar(P,w),(!d||g)&&dr.renderCallByParent(this.props,o))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curData:r.data,prevData:a.curData}:r.data!==a.curData?{curData:r.data}:null}}])}(k.PureComponent);ZP=Vr;ma(Vr,"displayName","Bar");ma(Vr,"defaultProps",{xAxisId:0,yAxisId:0,legendType:"rect",minPointSize:0,hide:!1,data:[],layout:"vertical",activeBar:!1,isAnimationActive:!Da.isSsr,animationBegin:0,animationDuration:400,animationEasing:"ease"});ma(Vr,"getComposedData",function(e){var t=e.props,n=e.item,r=e.barPosition,a=e.bandSize,o=e.xAxis,i=e.yAxis,s=e.xAxisTicks,l=e.yAxisTicks,u=e.stackedData,p=e.dataStartIndex,c=e.displayedData,f=e.offset,d=SY(r,n);if(!d)return null;var h=t.layout,m=n.type.defaultProps,g=m!==void 0?Je(Je({},m),n.props):n.props,v=g.dataKey,y=g.children,x=g.minPointSize,P=h==="horizontal"?i:o,w=u?P.scale.domain():null,S=jY({numericAxis:P}),O=qt(y,gg),_=c.map(function(C,j){var E,T,N,M,I,R;u?E=OY(u[p+j],w):(E=st(C,v),Array.isArray(E)||(E=[S,E]));var L=Ite(x,ZP.defaultProps.minPointSize)(E[1],j);if(h==="horizontal"){var $,D=[i.scale(E[0]),i.scale(E[1])],H=D[0],W=D[1];T=pb({axis:o,ticks:s,bandSize:a,offset:d.offset,entry:C,index:j}),N=($=W??H)!==null&&$!==void 0?$:void 0,M=d.size;var G=H-W;if(I=Number.isNaN(G)?0:G,R={x:T,y:i.y,width:M,height:i.height},Math.abs(L)>0&&Math.abs(I)<Math.abs(L)){var Z=Dn(I||L)*(Math.abs(L)-Math.abs(I));N-=Z,I+=Z}}else{var ie=[o.scale(E[0]),o.scale(E[1])],ve=ie[0],Pe=ie[1];if(T=ve,N=pb({axis:i,ticks:l,bandSize:a,offset:d.offset,entry:C,index:j}),M=Pe-ve,I=d.size,R={x:o.x,y:N,width:o.width,height:I},Math.abs(L)>0&&Math.abs(M)<Math.abs(L)){var J=Dn(M||L)*(Math.abs(L)-Math.abs(M));M+=J}}return Je(Je(Je({},C),{},{x:T,y:N,width:M,height:I,value:u?E:E[1],payload:C,background:R},O&&O[j]&&O[j].props),{},{tooltipPayload:[$P(n,C)],tooltipPosition:{x:T+M/2,y:N+I/2}})});return Je({data:_,layout:h},f)});function yu(e){"@babel/helpers - typeof";return yu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yu(e)}function Vte(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,tS(r.key),r)}}function Kte(e,t,n){return t&&d2(e.prototype,t),n&&d2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function m2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Nn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?m2(Object(n),!0).forEach(function(r){Td(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Td(e,t,n){return t=tS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tS(e){var t=Xte(e,"string");return yu(t)=="symbol"?t:t+""}function Xte(e,t){if(yu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(yu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var jd=function(t,n,r,a,o){var i=t.width,s=t.height,l=t.layout,u=t.children,p=Object.keys(n),c={left:r.left,leftMirror:r.left,right:i-r.right,rightMirror:i-r.right,top:r.top,topMirror:r.top,bottom:s-r.bottom,bottomMirror:s-r.bottom},f=!!Qt(u,Vr);return p.reduce(function(d,h){var m=n[h],g=m.orientation,v=m.domain,y=m.padding,x=y===void 0?{}:y,P=m.mirror,w=m.reversed,S="".concat(g).concat(P?"Mirror":""),O,_,C,j,E;if(m.type==="number"&&(m.padding==="gap"||m.padding==="no-gap")){var T=v[1]-v[0],N=1/0,M=m.categoricalDomain.sort(rR);if(M.forEach(function(ie,ve){ve>0&&(N=Math.min((ie||0)-(M[ve-1]||0),N))}),Number.isFinite(N)){var I=N/T,R=m.layout==="vertical"?r.height:r.width;if(m.padding==="gap"&&(O=I*R/2),m.padding==="no-gap"){var L=Oo(t.barCategoryGap,I*R),$=I*R/2;O=$-L-($-L)/R*L}}}a==="xAxis"?_=[r.left+(x.left||0)+(O||0),r.left+r.width-(x.right||0)-(O||0)]:a==="yAxis"?_=l==="horizontal"?[r.top+r.height-(x.bottom||0),r.top+(x.top||0)]:[r.top+(x.top||0)+(O||0),r.top+r.height-(x.bottom||0)-(O||0)]:_=m.range,w&&(_=[_[1],_[0]]);var D=bY(m,o,f),H=D.scale,W=D.realScaleType;H.domain(v).range(_),PY(H);var G=TY(H,Nn(Nn({},m),{},{realScaleType:W}));a==="xAxis"?(E=g==="top"&&!P||g==="bottom"&&P,C=r.left,j=c[S]-E*m.height):a==="yAxis"&&(E=g==="left"&&!P||g==="right"&&P,C=c[S]-E*m.width,j=r.top);var Z=Nn(Nn(Nn({},m),G),{},{realScaleType:W,x:C,y:j,scale:H,width:a==="xAxis"?r.width:m.width,height:a==="yAxis"?r.height:m.height});return Z.bandSize=Yp(Z,G),!m.hide&&a==="xAxis"?c[S]+=(E?-1:1)*Z.height:m.hide||(c[S]+=(E?-1:1)*Z.width),Nn(Nn({},d),{},Td({},h,Z))},{})},nS=function(t,n){var r=t.x,a=t.y,o=n.x,i=n.y;return{x:Math.min(r,o),y:Math.min(a,i),width:Math.abs(o-r),height:Math.abs(i-a)}},Yte=function(t){var n=t.x1,r=t.y1,a=t.x2,o=t.y2;return nS({x:n,y:r},{x:a,y:o})},rS=function(){function e(t){Vte(this,e),this.scale=t}return Kte(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,o=r.position;if(n!==void 0){if(o)switch(o){case"start":return this.scale(n);case"middle":{var i=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+i}case"end":{var s=this.bandwidth?this.bandwidth():0;return this.scale(n)+s}default:return this.scale(n)}if(a){var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],o=r[r.length-1];return a<=o?n>=a&&n<=o:n>=o&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])}();Td(rS,"EPS",1e-4);var Wg=function(t){var n=Object.keys(t).reduce(function(r,a){return Nn(Nn({},r),{},Td({},a,rS.create(t[a])))},{});return Nn(Nn({},n),{},{apply:function(a){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=o.bandAware,s=o.position;return vte(a,function(l,u){return n[u].apply(l,{bandAware:i,position:s})})},isInRange:function(a){return QP(a,function(o,i){return n[i].isInRange(o)})}})};function Qte(e){return(e%180+180)%180}var Zte=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=Qte(a),i=o*Math.PI/180,s=Math.atan(r/n),l=i>s&&i<Math.PI-s?r/Math.sin(i):n/Math.cos(i);return Math.abs(l)},Jte=Ia,ene=Nu,tne=hd;function nne(e){return function(t,n,r){var a=Object(t);if(!ene(t)){var o=Jte(n);t=tne(t),n=function(s){return o(a[s],s,a)}}var i=e(t,n,r);return i>-1?a[o?t[i]:i]:void 0}}var rne=nne,ane=VP;function one(e){var t=ane(e),n=t%1;return t===t?n?t-n:t:0}var ine=one,sne=f7,lne=Ia,une=ine,cne=Math.max;function pne(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var a=n==null?0:une(n);return a<0&&(a=cne(r+a,0)),sne(e,lne(t),a)}var fne=pne,dne=rne,mne=fne,hne=dne(mne),vne=hne;const yne=Ae(vne);var gne=oM(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),qg=k.createContext(void 0),Vg=k.createContext(void 0),aS=k.createContext(void 0),oS=k.createContext({}),iS=k.createContext(void 0),sS=k.createContext(0),lS=k.createContext(0),h2=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,o=n.offset,i=t.clipPathId,s=t.children,l=t.width,u=t.height,p=gne(o);return A.createElement(qg.Provider,{value:r},A.createElement(Vg.Provider,{value:a},A.createElement(oS.Provider,{value:o},A.createElement(aS.Provider,{value:p},A.createElement(iS.Provider,{value:i},A.createElement(sS.Provider,{value:u},A.createElement(lS.Provider,{value:l},s)))))))},xne=function(){return k.useContext(iS)},uS=function(t){var n=k.useContext(qg);n==null&&Co();var r=n[t];return r==null&&Co(),r},wne=function(){var t=k.useContext(qg);return oa(t)},bne=function(){var t=k.useContext(Vg),n=yne(t,function(r){return QP(r.domain,Number.isFinite)});return n||oa(t)},cS=function(t){var n=k.useContext(Vg);n==null&&Co();var r=n[t];return r==null&&Co(),r},Pne=function(){var t=k.useContext(aS);return t},Sne=function(){return k.useContext(oS)},Kg=function(){return k.useContext(lS)},Xg=function(){return k.useContext(sS)};function Xi(e){"@babel/helpers - typeof";return Xi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xi(e)}function One(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,fS(r.key),r)}}function _ne(e,t,n){return t&&kne(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Cne(e,t,n){return t=pf(t),Ane(e,pS()?Reflect.construct(t,n||[],pf(e).constructor):t.apply(e,n))}function Ane(e,t){if(t&&(Xi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ene(e)}function Ene(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function pS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(pS=function(){return!!e})()}function pf(e){return pf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},pf(e)}function Tne(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&hv(e,t)}function hv(e,t){return hv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},hv(e,t)}function v2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function y2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?v2(Object(n),!0).forEach(function(r){Yg(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Yg(e,t,n){return t=fS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fS(e){var t=jne(e,"string");return Xi(t)=="symbol"?t:t+""}function jne(e,t){if(Xi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Xi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function $ne(e,t){return Ine(e)||Rne(e,t)||Mne(e,t)||Nne()}function Nne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Mne(e,t){if(e){if(typeof e=="string")return g2(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g2(e,t)}}function g2(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Rne(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function Ine(e){if(Array.isArray(e))return e}function vv(){return vv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vv.apply(this,arguments)}var Dne=function(t,n){var r;return A.isValidElement(t)?r=A.cloneElement(t,n):oe(t)?r=t(n):r=A.createElement("line",vv({},n,{className:"recharts-reference-line-line"})),r},Lne=function(t,n,r,a,o,i,s,l,u){var p=o.x,c=o.y,f=o.width,d=o.height;if(r){var h=u.y,m=t.y.apply(h,{position:i});if(mr(u,"discard")&&!t.y.isInRange(m))return null;var g=[{x:p+f,y:m},{x:p,y:m}];return l==="left"?g.reverse():g}if(n){var v=u.x,y=t.x.apply(v,{position:i});if(mr(u,"discard")&&!t.x.isInRange(y))return null;var x=[{x:y,y:c+d},{x:y,y:c}];return s==="top"?x.reverse():x}if(a){var P=u.segment,w=P.map(function(S){return t.apply(S,{position:i})});return mr(u,"discard")&&lte(w,function(S){return!t.isInRange(S)})?null:w}return null};function Fne(e){var t=e.x,n=e.y,r=e.segment,a=e.xAxisId,o=e.yAxisId,i=e.shape,s=e.className,l=e.alwaysShow,u=xne(),p=uS(a),c=cS(o),f=Pne();if(!u||!f)return null;$r(l===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var d=Wg({x:p.scale,y:c.scale}),h=it(t),m=it(n),g=r&&r.length===2,v=Lne(d,h,m,g,f,e.position,p.orientation,c.orientation,e);if(!v)return null;var y=$ne(v,2),x=y[0],P=x.x,w=x.y,S=y[1],O=S.x,_=S.y,C=mr(e,"hidden")?"url(#".concat(u,")"):void 0,j=y2(y2({clipPath:C},re(e,!0)),{},{x1:P,y1:w,x2:O,y2:_});return A.createElement(ye,{className:ue("recharts-reference-line",s)},Dne(i,j),Ct.renderCallByParent(e,Yte({x1:P,y1:w,x2:O,y2:_})))}var Qg=function(e){function t(){return One(this,t),Cne(this,t,arguments)}return Tne(t,e),_ne(t,[{key:"render",value:function(){return A.createElement(Fne,this.props)}}])}(A.Component);Yg(Qg,"displayName","ReferenceLine");Yg(Qg,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,fill:"none",stroke:"#ccc",fillOpacity:1,strokeWidth:1,position:"middle"});function yv(){return yv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yv.apply(this,arguments)}function Yi(e){"@babel/helpers - typeof";return Yi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yi(e)}function x2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function w2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?x2(Object(n),!0).forEach(function(r){$d(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function zne(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Bne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,mS(r.key),r)}}function Hne(e,t,n){return t&&Bne(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Gne(e,t,n){return t=ff(t),Une(e,dS()?Reflect.construct(t,n||[],ff(e).constructor):t.apply(e,n))}function Une(e,t){if(t&&(Yi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Wne(e)}function Wne(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function dS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(dS=function(){return!!e})()}function ff(e){return ff=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ff(e)}function qne(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&gv(e,t)}function gv(e,t){return gv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},gv(e,t)}function $d(e,t,n){return t=mS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mS(e){var t=Vne(e,"string");return Yi(t)=="symbol"?t:t+""}function Vne(e,t){if(Yi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Yi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Kne=function(t){var n=t.x,r=t.y,a=t.xAxis,o=t.yAxis,i=Wg({x:a.scale,y:o.scale}),s=i.apply({x:n,y:r},{bandAware:!0});return mr(t,"discard")&&!i.isInRange(s)?null:s},Nd=function(e){function t(){return zne(this,t),Gne(this,t,arguments)}return qne(t,e),Hne(t,[{key:"render",value:function(){var r=this.props,a=r.x,o=r.y,i=r.r,s=r.alwaysShow,l=r.clipPathId,u=it(a),p=it(o);if($r(s===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.'),!u||!p)return null;var c=Kne(this.props);if(!c)return null;var f=c.x,d=c.y,h=this.props,m=h.shape,g=h.className,v=mr(this.props,"hidden")?"url(#".concat(l,")"):void 0,y=w2(w2({clipPath:v},re(this.props,!0)),{},{cx:f,cy:d});return A.createElement(ye,{className:ue("recharts-reference-dot",g)},t.renderDot(m,y),Ct.renderCallByParent(this.props,{x:f-i,y:d-i,width:2*i,height:2*i}))}}])}(A.Component);$d(Nd,"displayName","ReferenceDot");$d(Nd,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#fff",stroke:"#ccc",fillOpacity:1,strokeWidth:1});$d(Nd,"renderDot",function(e,t){var n;return A.isValidElement(e)?n=A.cloneElement(e,t):oe(e)?n=e(t):n=A.createElement(Cd,yv({},t,{cx:t.cx,cy:t.cy,className:"recharts-reference-dot-dot"})),n});function xv(){return xv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xv.apply(this,arguments)}function Qi(e){"@babel/helpers - typeof";return Qi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qi(e)}function b2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function P2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?b2(Object(n),!0).forEach(function(r){Md(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Xne(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Yne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,vS(r.key),r)}}function Qne(e,t,n){return t&&Yne(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Zne(e,t,n){return t=df(t),Jne(e,hS()?Reflect.construct(t,n||[],df(e).constructor):t.apply(e,n))}function Jne(e,t){if(t&&(Qi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ere(e)}function ere(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function hS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(hS=function(){return!!e})()}function df(e){return df=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},df(e)}function tre(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&wv(e,t)}function wv(e,t){return wv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},wv(e,t)}function Md(e,t,n){return t=vS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vS(e){var t=nre(e,"string");return Qi(t)=="symbol"?t:t+""}function nre(e,t){if(Qi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Qi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var rre=function(t,n,r,a,o){var i=o.x1,s=o.x2,l=o.y1,u=o.y2,p=o.xAxis,c=o.yAxis;if(!p||!c)return null;var f=Wg({x:p.scale,y:c.scale}),d={x:t?f.x.apply(i,{position:"start"}):f.x.rangeMin,y:r?f.y.apply(l,{position:"start"}):f.y.rangeMin},h={x:n?f.x.apply(s,{position:"end"}):f.x.rangeMax,y:a?f.y.apply(u,{position:"end"}):f.y.rangeMax};return mr(o,"discard")&&(!f.isInRange(d)||!f.isInRange(h))?null:nS(d,h)},Rd=function(e){function t(){return Xne(this,t),Zne(this,t,arguments)}return tre(t,e),Qne(t,[{key:"render",value:function(){var r=this.props,a=r.x1,o=r.x2,i=r.y1,s=r.y2,l=r.className,u=r.alwaysShow,p=r.clipPathId;$r(u===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var c=it(a),f=it(o),d=it(i),h=it(s),m=this.props.shape;if(!c&&!f&&!d&&!h&&!m)return null;var g=rre(c,f,d,h,this.props);if(!g&&!m)return null;var v=mr(this.props,"hidden")?"url(#".concat(p,")"):void 0;return A.createElement(ye,{className:ue("recharts-reference-area",l)},t.renderRect(m,P2(P2({clipPath:v},re(this.props,!0)),g)),Ct.renderCallByParent(this.props,g))}}])}(A.Component);Md(Rd,"displayName","ReferenceArea");Md(Rd,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#ccc",fillOpacity:.5,stroke:"none",strokeWidth:1});Md(Rd,"renderRect",function(e,t){var n;return A.isValidElement(e)?n=A.cloneElement(e,t):oe(e)?n=e(t):n=A.createElement(Ug,xv({},t,{className:"recharts-reference-area-rect"})),n});function yS(e,t,n){if(t<1)return[];if(t===1&&n===void 0)return e;for(var r=[],a=0;a<e.length;a+=t)r.push(e[a]);return r}function are(e,t,n){var r={width:e.width+t.width,height:e.height+t.height};return Zte(r,n)}function ore(e,t,n){var r=n==="width",a=e.x,o=e.y,i=e.width,s=e.height;return t===1?{start:r?a:o,end:r?a+i:o+s}:{start:r?a+i:o+s,end:r?a:o}}function mf(e,t,n,r,a){if(e*t<e*r||e*t>e*a)return!1;var o=n();return e*(t-e*o/2-r)>=0&&e*(t+e*o/2-a)<=0}function ire(e,t){return yS(e,t+1)}function sre(e,t,n,r,a){for(var o=(r||[]).slice(),i=t.start,s=t.end,l=0,u=1,p=i,c=function(){var h=r==null?void 0:r[l];if(h===void 0)return{v:yS(r,u)};var m=l,g,v=function(){return g===void 0&&(g=n(h,m)),g},y=h.coordinate,x=l===0||mf(e,y,v,p,s);x||(l=0,p=i,u+=1),x&&(p=y+e*(v()/2+a),l+=u)},f;u<=o.length;)if(f=c(),f)return f.v;return[]}function gu(e){"@babel/helpers - typeof";return gu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gu(e)}function S2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function kt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?S2(Object(n),!0).forEach(function(r){lre(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function lre(e,t,n){return t=ure(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ure(e){var t=cre(e,"string");return gu(t)=="symbol"?t:t+""}function cre(e,t){if(gu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(gu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function pre(e,t,n,r,a){for(var o=(r||[]).slice(),i=o.length,s=t.start,l=t.end,u=function(f){var d=o[f],h,m=function(){return h===void 0&&(h=n(d,f)),h};if(f===i-1){var g=e*(d.coordinate+e*m()/2-l);o[f]=d=kt(kt({},d),{},{tickCoord:g>0?d.coordinate-g*e:d.coordinate})}else o[f]=d=kt(kt({},d),{},{tickCoord:d.coordinate});var v=mf(e,d.tickCoord,m,s,l);v&&(l=d.tickCoord-e*(m()/2+a),o[f]=kt(kt({},d),{},{isShow:!0}))},p=i-1;p>=0;p--)u(p);return o}function fre(e,t,n,r,a,o){var i=(r||[]).slice(),s=i.length,l=t.start,u=t.end;if(o){var p=r[s-1],c=n(p,s-1),f=e*(p.coordinate+e*c/2-u);i[s-1]=p=kt(kt({},p),{},{tickCoord:f>0?p.coordinate-f*e:p.coordinate});var d=mf(e,p.tickCoord,function(){return c},l,u);d&&(u=p.tickCoord-e*(c/2+a),i[s-1]=kt(kt({},p),{},{isShow:!0}))}for(var h=o?s-1:s,m=function(y){var x=i[y],P,w=function(){return P===void 0&&(P=n(x,y)),P};if(y===0){var S=e*(x.coordinate-e*w()/2-l);i[y]=x=kt(kt({},x),{},{tickCoord:S<0?x.coordinate-S*e:x.coordinate})}else i[y]=x=kt(kt({},x),{},{tickCoord:x.coordinate});var O=mf(e,x.tickCoord,w,l,u);O&&(l=x.tickCoord+e*(w()/2+a),i[y]=kt(kt({},x),{},{isShow:!0}))},g=0;g<h;g++)m(g);return i}function Zg(e,t,n){var r=e.tick,a=e.ticks,o=e.viewBox,i=e.minTickGap,s=e.orientation,l=e.interval,u=e.tickFormatter,p=e.unit,c=e.angle;if(!a||!a.length||!r)return[];if(V(l)||Da.isSsr)return ire(a,typeof l=="number"&&V(l)?l:0);var f=[],d=s==="top"||s==="bottom"?"width":"height",h=p&&d==="width"?fl(p,{fontSize:t,letterSpacing:n}):{width:0,height:0},m=function(x,P){var w=oe(u)?u(x.value,P):x.value;return d==="width"?are(fl(w,{fontSize:t,letterSpacing:n}),h,c):fl(w,{fontSize:t,letterSpacing:n})[d]},g=a.length>=2?Dn(a[1].coordinate-a[0].coordinate):1,v=ore(o,g,d);return l==="equidistantPreserveStart"?sre(g,v,m,a,i):(l==="preserveStart"||l==="preserveStartEnd"?f=fre(g,v,m,a,i,l==="preserveStartEnd"):f=pre(g,v,m,a,i),f.filter(function(y){return y.isShow}))}var dre=["viewBox"],mre=["viewBox"],hre=["ticks"];function Zi(e){"@babel/helpers - typeof";return Zi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zi(e)}function ri(){return ri=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ri.apply(this,arguments)}function O2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function nt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?O2(Object(n),!0).forEach(function(r){Jg(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Jm(e,t){if(e==null)return{};var n=vre(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function vre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function yre(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function k2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,xS(r.key),r)}}function gre(e,t,n){return t&&k2(e.prototype,t),n&&k2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function xre(e,t,n){return t=hf(t),wre(e,gS()?Reflect.construct(t,n||[],hf(e).constructor):t.apply(e,n))}function wre(e,t){if(t&&(Zi(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return bre(e)}function bre(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function gS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(gS=function(){return!!e})()}function hf(e){return hf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},hf(e)}function Pre(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&bv(e,t)}function bv(e,t){return bv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},bv(e,t)}function Jg(e,t,n){return t=xS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xS(e){var t=Sre(e,"string");return Zi(t)=="symbol"?t:t+""}function Sre(e,t){if(Zi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Zi(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Ts=function(e){function t(n){var r;return yre(this,t),r=xre(this,t,[n]),r.state={fontSize:"",letterSpacing:""},r}return Pre(t,e),gre(t,[{key:"shouldComponentUpdate",value:function(r,a){var o=r.viewBox,i=Jm(r,dre),s=this.props,l=s.viewBox,u=Jm(s,mre);return!mi(o,l)||!mi(i,u)||!mi(a,this.state)}},{key:"componentDidMount",value:function(){var r=this.layerReference;if(r){var a=r.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];a&&this.setState({fontSize:window.getComputedStyle(a).fontSize,letterSpacing:window.getComputedStyle(a).letterSpacing})}}},{key:"getTickLineCoord",value:function(r){var a=this.props,o=a.x,i=a.y,s=a.width,l=a.height,u=a.orientation,p=a.tickSize,c=a.mirror,f=a.tickMargin,d,h,m,g,v,y,x=c?-1:1,P=r.tickSize||p,w=V(r.tickCoord)?r.tickCoord:r.coordinate;switch(u){case"top":d=h=r.coordinate,g=i+ +!c*l,m=g-x*P,y=m-x*f,v=w;break;case"left":m=g=r.coordinate,h=o+ +!c*s,d=h-x*P,v=d-x*f,y=w;break;case"right":m=g=r.coordinate,h=o+ +c*s,d=h+x*P,v=d+x*f,y=w;break;default:d=h=r.coordinate,g=i+ +c*l,m=g+x*P,y=m+x*f,v=w;break}return{line:{x1:d,y1:m,x2:h,y2:g},tick:{x:v,y}}}},{key:"getTickTextAnchor",value:function(){var r=this.props,a=r.orientation,o=r.mirror,i;switch(a){case"left":i=o?"start":"end";break;case"right":i=o?"end":"start";break;default:i="middle";break}return i}},{key:"getTickVerticalAnchor",value:function(){var r=this.props,a=r.orientation,o=r.mirror,i="end";switch(a){case"left":case"right":i="middle";break;case"top":i=o?"start":"end";break;default:i=o?"end":"start";break}return i}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.x,o=r.y,i=r.width,s=r.height,l=r.orientation,u=r.mirror,p=r.axisLine,c=nt(nt(nt({},re(this.props,!1)),re(p,!1)),{},{fill:"none"});if(l==="top"||l==="bottom"){var f=+(l==="top"&&!u||l==="bottom"&&u);c=nt(nt({},c),{},{x1:a,y1:o+f*s,x2:a+i,y2:o+f*s})}else{var d=+(l==="left"&&!u||l==="right"&&u);c=nt(nt({},c),{},{x1:a+d*i,y1:o,x2:a+d*i,y2:o+s})}return A.createElement("line",ri({},c,{className:ue("recharts-cartesian-axis-line",gn(p,"className"))}))}},{key:"renderTicks",value:function(r,a,o){var i=this,s=this.props,l=s.tickLine,u=s.stroke,p=s.tick,c=s.tickFormatter,f=s.unit,d=Zg(nt(nt({},this.props),{},{ticks:r}),a,o),h=this.getTickTextAnchor(),m=this.getTickVerticalAnchor(),g=re(this.props,!1),v=re(p,!1),y=nt(nt({},g),{},{fill:"none"},re(l,!1)),x=d.map(function(P,w){var S=i.getTickLineCoord(P),O=S.line,_=S.tick,C=nt(nt(nt(nt({textAnchor:h,verticalAnchor:m},g),{},{stroke:"none",fill:u},v),_),{},{index:w,payload:P,visibleTicksCount:d.length,tickFormatter:c});return A.createElement(ye,ri({className:"recharts-cartesian-axis-tick",key:"tick-".concat(P.value,"-").concat(P.coordinate,"-").concat(P.tickCoord)},Fl(i.props,P,w)),l&&A.createElement("line",ri({},y,O,{className:ue("recharts-cartesian-axis-tick-line",gn(l,"className"))})),p&&t.renderTickItem(p,C,"".concat(oe(c)?c(P.value,w):P.value).concat(f||"")))});return A.createElement("g",{className:"recharts-cartesian-axis-ticks"},x)}},{key:"render",value:function(){var r=this,a=this.props,o=a.axisLine,i=a.width,s=a.height,l=a.ticksGenerator,u=a.className,p=a.hide;if(p)return null;var c=this.props,f=c.ticks,d=Jm(c,hre),h=f;return oe(l)&&(h=f&&f.length>0?l(this.props):l(d)),i<=0||s<=0||!h||!h.length?null:A.createElement(ye,{className:ue("recharts-cartesian-axis",u),ref:function(g){r.layerReference=g}},o&&this.renderAxisLine(),this.renderTicks(h,this.state.fontSize,this.state.letterSpacing),Ct.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,o){var i,s=ue(a.className,"recharts-cartesian-axis-tick-value");return A.isValidElement(r)?i=A.cloneElement(r,nt(nt({},a),{},{className:s})):oe(r)?i=r(nt(nt({},a),{},{className:s})):i=A.createElement(Ip,ri({},a,{className:"recharts-cartesian-axis-tick-value"}),o),i}}])}(k.Component);Jg(Ts,"displayName","CartesianAxis");Jg(Ts,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var Ore=["x1","y1","x2","y2","key"],kre=["offset"];function Ao(e){"@babel/helpers - typeof";return Ao=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ao(e)}function _2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function At(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?_2(Object(n),!0).forEach(function(r){_re(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function _re(e,t,n){return t=Cre(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Cre(e){var t=Are(e,"string");return Ao(t)=="symbol"?t:t+""}function Are(e,t){if(Ao(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ao(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function to(){return to=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},to.apply(this,arguments)}function C2(e,t){if(e==null)return{};var n=Ere(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ere(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Tre=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,o=t.y,i=t.width,s=t.height,l=t.ry;return A.createElement("rect",{x:a,y:o,ry:l,width:i,height:s,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function wS(e,t){var n;if(A.isValidElement(e))n=A.cloneElement(e,t);else if(oe(e))n=e(t);else{var r=t.x1,a=t.y1,o=t.x2,i=t.y2,s=t.key,l=C2(t,Ore),u=re(l,!1);u.offset;var p=C2(u,kre);n=A.createElement("line",to({},p,{x1:r,y1:a,x2:o,y2:i,fill:"none",key:s}))}return n}function jre(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,o=e.horizontalPoints;if(!a||!o||!o.length)return null;var i=o.map(function(s,l){var u=At(At({},e),{},{x1:t,y1:s,x2:t+n,y2:s,key:"line-".concat(l),index:l});return wS(a,u)});return A.createElement("g",{className:"recharts-cartesian-grid-horizontal"},i)}function $re(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,o=e.verticalPoints;if(!a||!o||!o.length)return null;var i=o.map(function(s,l){var u=At(At({},e),{},{x1:s,y1:t,x2:s,y2:t+n,key:"line-".concat(l),index:l});return wS(a,u)});return A.createElement("g",{className:"recharts-cartesian-grid-vertical"},i)}function Nre(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,o=e.width,i=e.height,s=e.horizontalPoints,l=e.horizontal,u=l===void 0?!0:l;if(!u||!t||!t.length)return null;var p=s.map(function(f){return Math.round(f+a-a)}).sort(function(f,d){return f-d});a!==p[0]&&p.unshift(0);var c=p.map(function(f,d){var h=!p[d+1],m=h?a+i-f:p[d+1]-f;if(m<=0)return null;var g=d%t.length;return A.createElement("rect",{key:"react-".concat(d),y:f,x:r,height:m,width:o,stroke:"none",fill:t[g],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return A.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},c)}function Mre(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,o=e.x,i=e.y,s=e.width,l=e.height,u=e.verticalPoints;if(!n||!r||!r.length)return null;var p=u.map(function(f){return Math.round(f+o-o)}).sort(function(f,d){return f-d});o!==p[0]&&p.unshift(0);var c=p.map(function(f,d){var h=!p[d+1],m=h?o+s-f:p[d+1]-f;if(m<=0)return null;var g=d%r.length;return A.createElement("rect",{key:"react-".concat(d),x:f,y:i,width:m,height:l,stroke:"none",fill:r[g],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return A.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},c)}var Rre=function(t,n){var r=t.xAxis,a=t.width,o=t.height,i=t.offset;return TP(Zg(At(At(At({},Ts.defaultProps),r),{},{ticks:Er(r,!0),viewBox:{x:0,y:0,width:a,height:o}})),i.left,i.left+i.width,n)},Ire=function(t,n){var r=t.yAxis,a=t.width,o=t.height,i=t.offset;return TP(Zg(At(At(At({},Ts.defaultProps),r),{},{ticks:Er(r,!0),viewBox:{x:0,y:0,width:a,height:o}})),i.top,i.top+i.height,n)},Ho={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function Ln(e){var t,n,r,a,o,i,s=Kg(),l=Xg(),u=Sne(),p=At(At({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Ho.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Ho.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Ho.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:Ho.horizontalFill,vertical:(o=e.vertical)!==null&&o!==void 0?o:Ho.vertical,verticalFill:(i=e.verticalFill)!==null&&i!==void 0?i:Ho.verticalFill,x:V(e.x)?e.x:u.left,y:V(e.y)?e.y:u.top,width:V(e.width)?e.width:u.width,height:V(e.height)?e.height:u.height}),c=p.x,f=p.y,d=p.width,h=p.height,m=p.syncWithTicks,g=p.horizontalValues,v=p.verticalValues,y=wne(),x=bne();if(!V(d)||d<=0||!V(h)||h<=0||!V(c)||c!==+c||!V(f)||f!==+f)return null;var P=p.verticalCoordinatesGenerator||Rre,w=p.horizontalCoordinatesGenerator||Ire,S=p.horizontalPoints,O=p.verticalPoints;if((!S||!S.length)&&oe(w)){var _=g&&g.length,C=w({yAxis:x?At(At({},x),{},{ticks:_?g:x.ticks}):void 0,width:s,height:l,offset:u},_?!0:m);$r(Array.isArray(C),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(Ao(C),"]")),Array.isArray(C)&&(S=C)}if((!O||!O.length)&&oe(P)){var j=v&&v.length,E=P({xAxis:y?At(At({},y),{},{ticks:j?v:y.ticks}):void 0,width:s,height:l,offset:u},j?!0:m);$r(Array.isArray(E),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(Ao(E),"]")),Array.isArray(E)&&(O=E)}return A.createElement("g",{className:"recharts-cartesian-grid"},A.createElement(Tre,{fill:p.fill,fillOpacity:p.fillOpacity,x:p.x,y:p.y,width:p.width,height:p.height,ry:p.ry}),A.createElement(jre,to({},p,{offset:u,horizontalPoints:S,xAxis:y,yAxis:x})),A.createElement($re,to({},p,{offset:u,verticalPoints:O,xAxis:y,yAxis:x})),A.createElement(Nre,to({},p,{horizontalPoints:S})),A.createElement(Mre,to({},p,{verticalPoints:O})))}Ln.displayName="CartesianGrid";var Dre=["type","layout","connectNulls","ref"],Lre=["key"];function Ji(e){"@babel/helpers - typeof";return Ji=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ji(e)}function A2(e,t){if(e==null)return{};var n=Fre(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function vl(){return vl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vl.apply(this,arguments)}function E2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Kt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?E2(Object(n),!0).forEach(function(r){Mn(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Go(e){return Gre(e)||Hre(e)||Bre(e)||zre()}function zre(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bre(e,t){if(e){if(typeof e=="string")return Pv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Pv(e,t)}}function Hre(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Gre(e){if(Array.isArray(e))return Pv(e)}function Pv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ure(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,PS(r.key),r)}}function Wre(e,t,n){return t&&T2(e.prototype,t),n&&T2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function qre(e,t,n){return t=vf(t),Vre(e,bS()?Reflect.construct(t,n||[],vf(e).constructor):t.apply(e,n))}function Vre(e,t){if(t&&(Ji(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Kre(e)}function Kre(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function bS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(bS=function(){return!!e})()}function vf(e){return vf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},vf(e)}function Xre(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Sv(e,t)}function Sv(e,t){return Sv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Sv(e,t)}function Mn(e,t,n){return t=PS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PS(e){var t=Yre(e,"string");return Ji(t)=="symbol"?t:t+""}function Yre(e,t){if(Ji(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ji(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Rt=function(e){function t(){var n;Ure(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=qre(this,t,[].concat(a)),Mn(n,"state",{isAnimationFinished:!0,totalLength:0}),Mn(n,"generateSimpleStrokeDasharray",function(i,s){return"".concat(s,"px ").concat(i-s,"px")}),Mn(n,"getStrokeDasharray",function(i,s,l){var u=l.reduce(function(v,y){return v+y});if(!u)return n.generateSimpleStrokeDasharray(s,i);for(var p=Math.floor(i/u),c=i%u,f=s-i,d=[],h=0,m=0;h<l.length;m+=l[h],++h)if(m+l[h]>c){d=[].concat(Go(l.slice(0,h)),[c-m]);break}var g=d.length%2===0?[0,f]:[f];return[].concat(Go(t.repeat(l,p)),Go(d),g).map(function(v){return"".concat(v,"px")}).join(", ")}),Mn(n,"id",$o("recharts-line-")),Mn(n,"pathRef",function(i){n.mainCurve=i}),Mn(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),Mn(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Xre(t,e),Wre(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var o=this.props,i=o.points,s=o.xAxis,l=o.yAxis,u=o.layout,p=o.children,c=qt(p,Es);if(!c)return null;var f=function(m,g){return{x:m.x,y:m.y,value:m.value,errorVal:st(m.payload,g)}},d={clipPath:r?"url(#clipPath-".concat(a,")"):null};return A.createElement(ye,d,c.map(function(h){return A.cloneElement(h,{key:"bar-".concat(h.props.dataKey),data:i,xAxis:s,yAxis:l,layout:u,dataPointFormatter:f})}))}},{key:"renderDots",value:function(r,a,o){var i=this.props.isAnimationActive;if(i&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.dot,u=s.points,p=s.dataKey,c=re(this.props,!1),f=re(l,!0),d=u.map(function(m,g){var v=Kt(Kt(Kt({key:"dot-".concat(g),r:3},c),f),{},{index:g,cx:m.x,cy:m.y,value:m.value,dataKey:p,payload:m.payload,points:u});return t.renderDotItem(l,v)}),h={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(o,")"):null};return A.createElement(ye,vl({className:"recharts-line-dots",key:"dots"},h),d)}},{key:"renderCurveStatically",value:function(r,a,o,i){var s=this.props,l=s.type,u=s.layout,p=s.connectNulls;s.ref;var c=A2(s,Dre),f=Kt(Kt(Kt({},re(c,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(o,")"):null,points:r},i),{},{type:l,layout:u,connectNulls:p});return A.createElement(mo,vl({},f,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var o=this,i=this.props,s=i.points,l=i.strokeDasharray,u=i.isAnimationActive,p=i.animationBegin,c=i.animationDuration,f=i.animationEasing,d=i.animationId,h=i.animateNewValues,m=i.width,g=i.height,v=this.state,y=v.prevPoints,x=v.totalLength;return A.createElement(Vn,{begin:p,duration:c,isActive:u,easing:f,from:{t:0},to:{t:1},key:"line-".concat(d),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(P){var w=P.t;if(y){var S=y.length/s.length,O=s.map(function(T,N){var M=Math.floor(N*S);if(y[M]){var I=y[M],R=Xe(I.x,T.x),L=Xe(I.y,T.y);return Kt(Kt({},T),{},{x:R(w),y:L(w)})}if(h){var $=Xe(m*2,T.x),D=Xe(g/2,T.y);return Kt(Kt({},T),{},{x:$(w),y:D(w)})}return Kt(Kt({},T),{},{x:T.x,y:T.y})});return o.renderCurveStatically(O,r,a)}var _=Xe(0,x),C=_(w),j;if(l){var E="".concat(l).split(/[,\s]+/gim).map(function(T){return parseFloat(T)});j=o.getStrokeDasharray(C,x,E)}else j=o.generateSimpleStrokeDasharray(x,C);return o.renderCurveStatically(s,r,a,{strokeDasharray:j})})}},{key:"renderCurve",value:function(r,a){var o=this.props,i=o.points,s=o.isAnimationActive,l=this.state,u=l.prevPoints,p=l.totalLength;return s&&i&&i.length&&(!u&&p>0||!ko(u,i))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(i,r,a)}},{key:"render",value:function(){var r,a=this.props,o=a.hide,i=a.dot,s=a.points,l=a.className,u=a.xAxis,p=a.yAxis,c=a.top,f=a.left,d=a.width,h=a.height,m=a.isAnimationActive,g=a.id;if(o||!s||!s.length)return null;var v=this.state.isAnimationFinished,y=s.length===1,x=ue("recharts-line",l),P=u&&u.allowDataOverflow,w=p&&p.allowDataOverflow,S=P||w,O=te(g)?this.id:g,_=(r=re(i,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},C=_.r,j=C===void 0?3:C,E=_.strokeWidth,T=E===void 0?2:E,N=S8(i)?i:{},M=N.clipDot,I=M===void 0?!0:M,R=j*2+T;return A.createElement(ye,{className:x},P||w?A.createElement("defs",null,A.createElement("clipPath",{id:"clipPath-".concat(O)},A.createElement("rect",{x:P?f:f-d/2,y:w?c:c-h/2,width:P?d:d*2,height:w?h:h*2})),!I&&A.createElement("clipPath",{id:"clipPath-dots-".concat(O)},A.createElement("rect",{x:f-R/2,y:c-R/2,width:d+R,height:h+R}))):null,!y&&this.renderCurve(S,O),this.renderErrorBar(S,O),(y||i)&&this.renderDots(S,I,O),(!m||v)&&dr.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var o=r.length%2!==0?[].concat(Go(r),[0]):r,i=[],s=0;s<a;++s)i=[].concat(Go(i),Go(o));return i}},{key:"renderDotItem",value:function(r,a){var o;if(A.isValidElement(r))o=A.cloneElement(r,a);else if(oe(r))o=r(a);else{var i=a.key,s=A2(a,Lre),l=ue("recharts-line-dot",typeof r!="boolean"?r.className:"");o=A.createElement(Cd,vl({key:i},s,{className:l}))}return o}}])}(k.PureComponent);Mn(Rt,"displayName","Line");Mn(Rt,"defaultProps",{xAxisId:0,yAxisId:0,connectNulls:!1,activeDot:!0,dot:!0,legendType:"line",stroke:"#3182bd",strokeWidth:1,fill:"#fff",points:[],isAnimationActive:!Da.isSsr,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",hide:!1,label:!1});Mn(Rt,"getComposedData",function(e){var t=e.props,n=e.xAxis,r=e.yAxis,a=e.xAxisTicks,o=e.yAxisTicks,i=e.dataKey,s=e.bandSize,l=e.displayedData,u=e.offset,p=t.layout,c=l.map(function(f,d){var h=st(f,i);return p==="horizontal"?{x:Ui({axis:n,ticks:a,bandSize:s,entry:f,index:d}),y:te(h)?null:r.scale(h),value:h,payload:f}:{x:te(h)?null:n.scale(h),y:Ui({axis:r,ticks:o,bandSize:s,entry:f,index:d}),value:h,payload:f}});return Kt({points:c,layout:p},u)});var Qre=["layout","type","stroke","connectNulls","isRange","ref"],Zre=["key"],SS;function es(e){"@babel/helpers - typeof";return es=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},es(e)}function OS(e,t){if(e==null)return{};var n=Jre(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Jre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function no(){return no=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},no.apply(this,arguments)}function j2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Zr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?j2(Object(n),!0).forEach(function(r){ir(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function eae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_S(r.key),r)}}function tae(e,t,n){return t&&$2(e.prototype,t),n&&$2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function nae(e,t,n){return t=yf(t),rae(e,kS()?Reflect.construct(t,n||[],yf(e).constructor):t.apply(e,n))}function rae(e,t){if(t&&(es(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return aae(e)}function aae(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(kS=function(){return!!e})()}function yf(e){return yf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},yf(e)}function oae(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ov(e,t)}function Ov(e,t){return Ov=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Ov(e,t)}function ir(e,t,n){return t=_S(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _S(e){var t=iae(e,"string");return es(t)=="symbol"?t:t+""}function iae(e,t){if(es(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(es(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var pt=function(e){function t(){var n;eae(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=nae(this,t,[].concat(a)),ir(n,"state",{isAnimationFinished:!0}),ir(n,"id",$o("recharts-area-")),ir(n,"handleAnimationEnd",function(){var i=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),oe(i)&&i()}),ir(n,"handleAnimationStart",function(){var i=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),oe(i)&&i()}),n}return oae(t,e),tae(t,[{key:"renderDots",value:function(r,a,o){var i=this.props.isAnimationActive,s=this.state.isAnimationFinished;if(i&&!s)return null;var l=this.props,u=l.dot,p=l.points,c=l.dataKey,f=re(this.props,!1),d=re(u,!0),h=p.map(function(g,v){var y=Zr(Zr(Zr({key:"dot-".concat(v),r:3},f),d),{},{index:v,cx:g.x,cy:g.y,dataKey:c,value:g.value,payload:g.payload,points:p});return t.renderDotItem(u,y)}),m={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(o,")"):null};return A.createElement(ye,no({className:"recharts-area-dots"},m),h)}},{key:"renderHorizontalRect",value:function(r){var a=this.props,o=a.baseLine,i=a.points,s=a.strokeWidth,l=i[0].x,u=i[i.length-1].x,p=r*Math.abs(l-u),c=da(i.map(function(f){return f.y||0}));return V(o)&&typeof o=="number"?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(da(o.map(function(f){return f.y||0})),c)),V(c)?A.createElement("rect",{x:l<u?l:l-p,y:0,width:p,height:Math.floor(c+(s?parseInt("".concat(s),10):1))}):null}},{key:"renderVerticalRect",value:function(r){var a=this.props,o=a.baseLine,i=a.points,s=a.strokeWidth,l=i[0].y,u=i[i.length-1].y,p=r*Math.abs(l-u),c=da(i.map(function(f){return f.x||0}));return V(o)&&typeof o=="number"?c=Math.max(o,c):o&&Array.isArray(o)&&o.length&&(c=Math.max(da(o.map(function(f){return f.x||0})),c)),V(c)?A.createElement("rect",{x:0,y:l<u?l:l-p,width:c+(s?parseInt("".concat(s),10):1),height:Math.floor(p)}):null}},{key:"renderClipRect",value:function(r){var a=this.props.layout;return a==="vertical"?this.renderVerticalRect(r):this.renderHorizontalRect(r)}},{key:"renderAreaStatically",value:function(r,a,o,i){var s=this.props,l=s.layout,u=s.type,p=s.stroke,c=s.connectNulls,f=s.isRange;s.ref;var d=OS(s,Qre);return A.createElement(ye,{clipPath:o?"url(#clipPath-".concat(i,")"):null},A.createElement(mo,no({},re(d,!0),{points:r,connectNulls:c,type:u,baseLine:a,layout:l,stroke:"none",className:"recharts-area-area"})),p!=="none"&&A.createElement(mo,no({},re(this.props,!1),{className:"recharts-area-curve",layout:l,type:u,connectNulls:c,fill:"none",points:r})),p!=="none"&&f&&A.createElement(mo,no({},re(this.props,!1),{className:"recharts-area-curve",layout:l,type:u,connectNulls:c,fill:"none",points:a})))}},{key:"renderAreaWithAnimation",value:function(r,a){var o=this,i=this.props,s=i.points,l=i.baseLine,u=i.isAnimationActive,p=i.animationBegin,c=i.animationDuration,f=i.animationEasing,d=i.animationId,h=this.state,m=h.prevPoints,g=h.prevBaseLine;return A.createElement(Vn,{begin:p,duration:c,isActive:u,easing:f,from:{t:0},to:{t:1},key:"area-".concat(d),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(v){var y=v.t;if(m){var x=m.length/s.length,P=s.map(function(_,C){var j=Math.floor(C*x);if(m[j]){var E=m[j],T=Xe(E.x,_.x),N=Xe(E.y,_.y);return Zr(Zr({},_),{},{x:T(y),y:N(y)})}return _}),w;if(V(l)&&typeof l=="number"){var S=Xe(g,l);w=S(y)}else if(te(l)||Ps(l)){var O=Xe(g,0);w=O(y)}else w=l.map(function(_,C){var j=Math.floor(C*x);if(g[j]){var E=g[j],T=Xe(E.x,_.x),N=Xe(E.y,_.y);return Zr(Zr({},_),{},{x:T(y),y:N(y)})}return _});return o.renderAreaStatically(P,w,r,a)}return A.createElement(ye,null,A.createElement("defs",null,A.createElement("clipPath",{id:"animationClipPath-".concat(a)},o.renderClipRect(y))),A.createElement(ye,{clipPath:"url(#animationClipPath-".concat(a,")")},o.renderAreaStatically(s,l,r,a)))})}},{key:"renderArea",value:function(r,a){var o=this.props,i=o.points,s=o.baseLine,l=o.isAnimationActive,u=this.state,p=u.prevPoints,c=u.prevBaseLine,f=u.totalLength;return l&&i&&i.length&&(!p&&f>0||!ko(p,i)||!ko(c,s))?this.renderAreaWithAnimation(r,a):this.renderAreaStatically(i,s,r,a)}},{key:"render",value:function(){var r,a=this.props,o=a.hide,i=a.dot,s=a.points,l=a.className,u=a.top,p=a.left,c=a.xAxis,f=a.yAxis,d=a.width,h=a.height,m=a.isAnimationActive,g=a.id;if(o||!s||!s.length)return null;var v=this.state.isAnimationFinished,y=s.length===1,x=ue("recharts-area",l),P=c&&c.allowDataOverflow,w=f&&f.allowDataOverflow,S=P||w,O=te(g)?this.id:g,_=(r=re(i,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},C=_.r,j=C===void 0?3:C,E=_.strokeWidth,T=E===void 0?2:E,N=S8(i)?i:{},M=N.clipDot,I=M===void 0?!0:M,R=j*2+T;return A.createElement(ye,{className:x},P||w?A.createElement("defs",null,A.createElement("clipPath",{id:"clipPath-".concat(O)},A.createElement("rect",{x:P?p:p-d/2,y:w?u:u-h/2,width:P?d:d*2,height:w?h:h*2})),!I&&A.createElement("clipPath",{id:"clipPath-dots-".concat(O)},A.createElement("rect",{x:p-R/2,y:u-R/2,width:d+R,height:h+R}))):null,y?null:this.renderArea(S,O),(i||y)&&this.renderDots(S,I,O),(!m||v)&&dr.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:a.curPoints,prevBaseLine:a.curBaseLine}:r.points!==a.curPoints||r.baseLine!==a.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])}(k.PureComponent);SS=pt;ir(pt,"displayName","Area");ir(pt,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Da.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});ir(pt,"getBaseValue",function(e,t,n,r){var a=e.layout,o=e.baseValue,i=t.props.baseValue,s=i??o;if(V(s)&&typeof s=="number")return s;var l=a==="horizontal"?r:n,u=l.scale.domain();if(l.type==="number"){var p=Math.max(u[0],u[1]),c=Math.min(u[0],u[1]);return s==="dataMin"?c:s==="dataMax"||p<0?p:Math.max(Math.min(u[0],u[1]),0)}return s==="dataMin"?u[0]:s==="dataMax"?u[1]:u[0]});ir(pt,"getComposedData",function(e){var t=e.props,n=e.item,r=e.xAxis,a=e.yAxis,o=e.xAxisTicks,i=e.yAxisTicks,s=e.bandSize,l=e.dataKey,u=e.stackedData,p=e.dataStartIndex,c=e.displayedData,f=e.offset,d=t.layout,h=u&&u.length,m=SS.getBaseValue(t,n,r,a),g=d==="horizontal",v=!1,y=c.map(function(P,w){var S;h?S=u[p+w]:(S=st(P,l),Array.isArray(S)?v=!0:S=[m,S]);var O=S[1]==null||h&&st(P,l)==null;return g?{x:Ui({axis:r,ticks:o,bandSize:s,entry:P,index:w}),y:O?null:a.scale(S[1]),value:S,payload:P}:{x:O?null:r.scale(S[1]),y:Ui({axis:a,ticks:i,bandSize:s,entry:P,index:w}),value:S,payload:P}}),x;return h||v?x=y.map(function(P){var w=Array.isArray(P.value)?P.value[0]:null;return g?{x:P.x,y:w!=null&&P.y!=null?a.scale(w):null}:{x:w!=null?r.scale(w):null,y:P.y}}):x=g?a.scale(m):r.scale(m),Zr({points:y,baseLine:x,layout:d,isRange:v},f)});ir(pt,"renderDotItem",function(e,t){var n;if(A.isValidElement(e))n=A.cloneElement(e,t);else if(oe(e))n=e(t);else{var r=ue("recharts-area-dot",typeof e!="boolean"?e.className:""),a=t.key,o=OS(t,Zre);n=A.createElement(Cd,no({},o,{key:a,className:r}))}return n});function ts(e){"@babel/helpers - typeof";return ts=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ts(e)}function sae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function lae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ES(r.key),r)}}function uae(e,t,n){return t&&lae(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function cae(e,t,n){return t=gf(t),pae(e,CS()?Reflect.construct(t,n||[],gf(e).constructor):t.apply(e,n))}function pae(e,t){if(t&&(ts(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return fae(e)}function fae(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function CS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(CS=function(){return!!e})()}function gf(e){return gf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},gf(e)}function dae(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&kv(e,t)}function kv(e,t){return kv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},kv(e,t)}function AS(e,t,n){return t=ES(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ES(e){var t=mae(e,"string");return ts(t)=="symbol"?t:t+""}function mae(e,t){if(ts(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ts(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Id=function(e){function t(){return sae(this,t),cae(this,t,arguments)}return dae(t,e),uae(t,[{key:"render",value:function(){return null}}])}(k.Component);AS(Id,"displayName","ZAxis");AS(Id,"defaultProps",{zAxisId:0,range:[64,64],scale:"auto",type:"number"});var hae=["option","isActive"];function yl(){return yl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yl.apply(this,arguments)}function vae(e,t){if(e==null)return{};var n=yae(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function yae(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function gae(e){var t=e.option,n=e.isActive,r=vae(e,hae);return typeof t=="string"?k.createElement(pv,yl({option:k.createElement(md,yl({type:t},r)),isActive:n,shapeType:"symbols"},r)):k.createElement(pv,yl({option:t,isActive:n,shapeType:"symbols"},r))}function ns(e){"@babel/helpers - typeof";return ns=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ns(e)}function gl(){return gl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gl.apply(this,arguments)}function N2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function pn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?N2(Object(n),!0).forEach(function(r){ha(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function xae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function M2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,jS(r.key),r)}}function wae(e,t,n){return t&&M2(e.prototype,t),n&&M2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function bae(e,t,n){return t=xf(t),Pae(e,TS()?Reflect.construct(t,n||[],xf(e).constructor):t.apply(e,n))}function Pae(e,t){if(t&&(ns(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Sae(e)}function Sae(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function TS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(TS=function(){return!!e})()}function xf(e){return xf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},xf(e)}function Oae(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_v(e,t)}function _v(e,t){return _v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},_v(e,t)}function ha(e,t,n){return t=jS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jS(e){var t=kae(e,"string");return ns(t)=="symbol"?t:t+""}function kae(e,t){if(ns(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ns(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Dd=function(e){function t(){var n;xae(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=bae(this,t,[].concat(a)),ha(n,"state",{isAnimationFinished:!1}),ha(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0})}),ha(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1})}),ha(n,"id",$o("recharts-scatter-")),n}return Oae(t,e),wae(t,[{key:"renderSymbolsStatically",value:function(r){var a=this,o=this.props,i=o.shape,s=o.activeShape,l=o.activeIndex,u=re(this.props,!1);return r.map(function(p,c){var f=l===c,d=f?s:i,h=pn(pn({},u),p);return A.createElement(ye,gl({className:"recharts-scatter-symbol",key:"symbol-".concat(p==null?void 0:p.cx,"-").concat(p==null?void 0:p.cy,"-").concat(p==null?void 0:p.size,"-").concat(c)},Fl(a.props,p,c),{role:"img"}),A.createElement(gae,gl({option:d,isActive:f,key:"symbol-".concat(c)},h)))})}},{key:"renderSymbolsWithAnimation",value:function(){var r=this,a=this.props,o=a.points,i=a.isAnimationActive,s=a.animationBegin,l=a.animationDuration,u=a.animationEasing,p=a.animationId,c=this.state.prevPoints;return A.createElement(Vn,{begin:s,duration:l,isActive:i,easing:u,from:{t:0},to:{t:1},key:"pie-".concat(p),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(f){var d=f.t,h=o.map(function(m,g){var v=c&&c[g];if(v){var y=Xe(v.cx,m.cx),x=Xe(v.cy,m.cy),P=Xe(v.size,m.size);return pn(pn({},m),{},{cx:y(d),cy:x(d),size:P(d)})}var w=Xe(0,m.size);return pn(pn({},m),{},{size:w(d)})});return A.createElement(ye,null,r.renderSymbolsStatically(h))})}},{key:"renderSymbols",value:function(){var r=this.props,a=r.points,o=r.isAnimationActive,i=this.state.prevPoints;return o&&a&&a.length&&(!i||!ko(i,a))?this.renderSymbolsWithAnimation():this.renderSymbolsStatically(a)}},{key:"renderErrorBar",value:function(){var r=this.props.isAnimationActive;if(r&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.points,i=a.xAxis,s=a.yAxis,l=a.children,u=qt(l,Es);return u?u.map(function(p,c){var f=p.props,d=f.direction,h=f.dataKey;return A.cloneElement(p,{key:"".concat(d,"-").concat(h,"-").concat(o[c]),data:o,xAxis:i,yAxis:s,layout:d==="x"?"vertical":"horizontal",dataPointFormatter:function(g,v){return{x:g.cx,y:g.cy,value:d==="x"?+g.node.x:+g.node.y,errorVal:st(g,v)}}})}):null}},{key:"renderLine",value:function(){var r=this.props,a=r.points,o=r.line,i=r.lineType,s=r.lineJointType,l=re(this.props,!1),u=re(o,!1),p,c;if(i==="joint")p=a.map(function(x){return{x:x.cx,y:x.cy}});else if(i==="fitting"){var f=nR(a),d=f.xmin,h=f.xmax,m=f.a,g=f.b,v=function(P){return m*P+g};p=[{x:d,y:v(d)},{x:h,y:v(h)}]}var y=pn(pn(pn({},l),{},{fill:"none",stroke:l&&l.fill},u),{},{points:p});return A.isValidElement(o)?c=A.cloneElement(o,y):oe(o)?c=o(y):c=A.createElement(mo,gl({},y,{type:s})),A.createElement(ye,{className:"recharts-scatter-line",key:"recharts-scatter-line"},c)}},{key:"render",value:function(){var r=this.props,a=r.hide,o=r.points,i=r.line,s=r.className,l=r.xAxis,u=r.yAxis,p=r.left,c=r.top,f=r.width,d=r.height,h=r.id,m=r.isAnimationActive;if(a||!o||!o.length)return null;var g=this.state.isAnimationFinished,v=ue("recharts-scatter",s),y=l&&l.allowDataOverflow,x=u&&u.allowDataOverflow,P=y||x,w=te(h)?this.id:h;return A.createElement(ye,{className:v,clipPath:P?"url(#clipPath-".concat(w,")"):null},y||x?A.createElement("defs",null,A.createElement("clipPath",{id:"clipPath-".concat(w)},A.createElement("rect",{x:y?p:p-f/2,y:x?c:c-d/2,width:y?f:f*2,height:x?d:d*2}))):null,i&&this.renderLine(),this.renderErrorBar(),A.createElement(ye,{key:"recharts-scatter-symbols"},this.renderSymbols()),(!m||g)&&dr.renderCallByParent(this.props,o))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}}])}(k.PureComponent);ha(Dd,"displayName","Scatter");ha(Dd,"defaultProps",{xAxisId:0,yAxisId:0,zAxisId:0,legendType:"circle",lineType:"joint",lineJointType:"linear",data:[],shape:"circle",hide:!1,isAnimationActive:!Da.isSsr,animationBegin:0,animationDuration:400,animationEasing:"linear"});ha(Dd,"getComposedData",function(e){var t=e.xAxis,n=e.yAxis,r=e.zAxis,a=e.item,o=e.displayedData,i=e.xAxisTicks,s=e.yAxisTicks,l=e.offset,u=a.props.tooltipType,p=qt(a.props.children,gg),c=te(t.dataKey)?a.props.dataKey:t.dataKey,f=te(n.dataKey)?a.props.dataKey:n.dataKey,d=r&&r.dataKey,h=r?r.range:Id.defaultProps.range,m=h&&h[0],g=t.scale.bandwidth?t.scale.bandwidth():0,v=n.scale.bandwidth?n.scale.bandwidth():0,y=o.map(function(x,P){var w=st(x,c),S=st(x,f),O=!te(d)&&st(x,d)||"-",_=[{name:te(t.dataKey)?a.props.name:t.name||t.dataKey,unit:t.unit||"",value:w,payload:x,dataKey:c,type:u},{name:te(n.dataKey)?a.props.name:n.name||n.dataKey,unit:n.unit||"",value:S,payload:x,dataKey:f,type:u}];O!=="-"&&_.push({name:r.name||r.dataKey,unit:r.unit||"",value:O,payload:x,dataKey:d,type:u});var C=Ui({axis:t,ticks:i,bandSize:g,entry:x,index:P,dataKey:c}),j=Ui({axis:n,ticks:s,bandSize:v,entry:x,index:P,dataKey:f}),E=O!=="-"?r.scale(O):m,T=Math.sqrt(Math.max(E,0)/Math.PI);return pn(pn({},x),{},{cx:C,cy:j,x:C-T,y:j-T,xAxis:t,yAxis:n,zAxis:r,width:2*T,height:2*T,size:E,node:{x:w,y:S,z:O},tooltipPayload:_,tooltipPosition:{x:C,y:j},payload:x},p&&p[P]&&p[P].props)});return pn({points:y},l)});function rs(e){"@babel/helpers - typeof";return rs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rs(e)}function _ae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Cae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,MS(r.key),r)}}function Aae(e,t,n){return t&&Cae(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Eae(e,t,n){return t=wf(t),Tae(e,$S()?Reflect.construct(t,n||[],wf(e).constructor):t.apply(e,n))}function Tae(e,t){if(t&&(rs(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return jae(e)}function jae(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return($S=function(){return!!e})()}function wf(e){return wf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},wf(e)}function $ae(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Cv(e,t)}function Cv(e,t){return Cv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Cv(e,t)}function NS(e,t,n){return t=MS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function MS(e){var t=Nae(e,"string");return rs(t)=="symbol"?t:t+""}function Nae(e,t){if(rs(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(rs(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Av(){return Av=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Av.apply(this,arguments)}function Mae(e){var t=e.xAxisId,n=Kg(),r=Xg(),a=uS(t);return a==null?null:k.createElement(Ts,Av({},a,{className:ue("recharts-".concat(a.axisType," ").concat(a.axisType),a.className),viewBox:{x:0,y:0,width:n,height:r},ticksGenerator:function(i){return Er(i,!0)}}))}var Et=function(e){function t(){return _ae(this,t),Eae(this,t,arguments)}return $ae(t,e),Aae(t,[{key:"render",value:function(){return k.createElement(Mae,this.props)}}])}(k.Component);NS(Et,"displayName","XAxis");NS(Et,"defaultProps",{allowDecimals:!0,hide:!1,orientation:"bottom",width:0,height:30,mirror:!1,xAxisId:0,tickCount:5,type:"category",padding:{left:0,right:0},allowDataOverflow:!1,scale:"auto",reversed:!1,allowDuplicatedCategory:!0});function as(e){"@babel/helpers - typeof";return as=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},as(e)}function Rae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Iae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,DS(r.key),r)}}function Dae(e,t,n){return t&&Iae(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Lae(e,t,n){return t=bf(t),Fae(e,RS()?Reflect.construct(t,n||[],bf(e).constructor):t.apply(e,n))}function Fae(e,t){if(t&&(as(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return zae(e)}function zae(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function RS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(RS=function(){return!!e})()}function bf(e){return bf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},bf(e)}function Bae(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ev(e,t)}function Ev(e,t){return Ev=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Ev(e,t)}function IS(e,t,n){return t=DS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function DS(e){var t=Hae(e,"string");return as(t)=="symbol"?t:t+""}function Hae(e,t){if(as(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(as(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Tv(){return Tv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Tv.apply(this,arguments)}var Gae=function(t){var n=t.yAxisId,r=Kg(),a=Xg(),o=cS(n);return o==null?null:k.createElement(Ts,Tv({},o,{className:ue("recharts-".concat(o.axisType," ").concat(o.axisType),o.className),viewBox:{x:0,y:0,width:r,height:a},ticksGenerator:function(s){return Er(s,!0)}}))},yt=function(e){function t(){return Rae(this,t),Lae(this,t,arguments)}return Bae(t,e),Dae(t,[{key:"render",value:function(){return k.createElement(Gae,this.props)}}])}(k.Component);IS(yt,"displayName","YAxis");IS(yt,"defaultProps",{allowDuplicatedCategory:!0,allowDecimals:!0,hide:!1,orientation:"left",width:60,height:0,mirror:!1,yAxisId:0,tickCount:5,type:"number",padding:{top:0,bottom:0},allowDataOverflow:!1,scale:"auto",reversed:!1});function R2(e){return Vae(e)||qae(e)||Wae(e)||Uae()}function Uae(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Wae(e,t){if(e){if(typeof e=="string")return jv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jv(e,t)}}function qae(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Vae(e){if(Array.isArray(e))return jv(e)}function jv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var $v=function(t,n,r,a,o){var i=qt(t,Qg),s=qt(t,Nd),l=[].concat(R2(i),R2(s)),u=qt(t,Rd),p="".concat(a,"Id"),c=a[0],f=n;if(l.length&&(f=l.reduce(function(m,g){if(g.props[p]===r&&mr(g.props,"extendDomain")&&V(g.props[c])){var v=g.props[c];return[Math.min(m[0],v),Math.max(m[1],v)]}return m},f)),u.length){var d="".concat(c,"1"),h="".concat(c,"2");f=u.reduce(function(m,g){if(g.props[p]===r&&mr(g.props,"extendDomain")&&V(g.props[d])&&V(g.props[h])){var v=g.props[d],y=g.props[h];return[Math.min(m[0],v,y),Math.max(m[1],v,y)]}return m},f)}return o&&o.length&&(f=o.reduce(function(m,g){return V(g)?[Math.min(m[0],g),Math.max(m[1],g)]:m},f)),f},LS={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function a(l,u,p){this.fn=l,this.context=u,this.once=p||!1}function o(l,u,p,c,f){if(typeof p!="function")throw new TypeError("The listener must be a function");var d=new a(p,c||l,f),h=n?n+u:u;return l._events[h]?l._events[h].fn?l._events[h]=[l._events[h],d]:l._events[h].push(d):(l._events[h]=d,l._eventsCount++),l}function i(l,u){--l._eventsCount===0?l._events=new r:delete l._events[u]}function s(){this._events=new r,this._eventsCount=0}s.prototype.eventNames=function(){var u=[],p,c;if(this._eventsCount===0)return u;for(c in p=this._events)t.call(p,c)&&u.push(n?c.slice(1):c);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(p)):u},s.prototype.listeners=function(u){var p=n?n+u:u,c=this._events[p];if(!c)return[];if(c.fn)return[c.fn];for(var f=0,d=c.length,h=new Array(d);f<d;f++)h[f]=c[f].fn;return h},s.prototype.listenerCount=function(u){var p=n?n+u:u,c=this._events[p];return c?c.fn?1:c.length:0},s.prototype.emit=function(u,p,c,f,d,h){var m=n?n+u:u;if(!this._events[m])return!1;var g=this._events[m],v=arguments.length,y,x;if(g.fn){switch(g.once&&this.removeListener(u,g.fn,void 0,!0),v){case 1:return g.fn.call(g.context),!0;case 2:return g.fn.call(g.context,p),!0;case 3:return g.fn.call(g.context,p,c),!0;case 4:return g.fn.call(g.context,p,c,f),!0;case 5:return g.fn.call(g.context,p,c,f,d),!0;case 6:return g.fn.call(g.context,p,c,f,d,h),!0}for(x=1,y=new Array(v-1);x<v;x++)y[x-1]=arguments[x];g.fn.apply(g.context,y)}else{var P=g.length,w;for(x=0;x<P;x++)switch(g[x].once&&this.removeListener(u,g[x].fn,void 0,!0),v){case 1:g[x].fn.call(g[x].context);break;case 2:g[x].fn.call(g[x].context,p);break;case 3:g[x].fn.call(g[x].context,p,c);break;case 4:g[x].fn.call(g[x].context,p,c,f);break;default:if(!y)for(w=1,y=new Array(v-1);w<v;w++)y[w-1]=arguments[w];g[x].fn.apply(g[x].context,y)}}return!0},s.prototype.on=function(u,p,c){return o(this,u,p,c,!1)},s.prototype.once=function(u,p,c){return o(this,u,p,c,!0)},s.prototype.removeListener=function(u,p,c,f){var d=n?n+u:u;if(!this._events[d])return this;if(!p)return i(this,d),this;var h=this._events[d];if(h.fn)h.fn===p&&(!f||h.once)&&(!c||h.context===c)&&i(this,d);else{for(var m=0,g=[],v=h.length;m<v;m++)(h[m].fn!==p||f&&!h[m].once||c&&h[m].context!==c)&&g.push(h[m]);g.length?this._events[d]=g.length===1?g[0]:g:i(this,d)}return this},s.prototype.removeAllListeners=function(u){var p;return u?(p=n?n+u:u,this._events[p]&&i(this,p)):(this._events=new r,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=n,s.EventEmitter=s,e.exports=s})(LS);var Kae=LS.exports;const Xae=Ae(Kae);var eh=new Xae,th="recharts.syncMouseEvents";function xu(e){"@babel/helpers - typeof";return xu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xu(e)}function Yae(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Qae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,FS(r.key),r)}}function Zae(e,t,n){return t&&Qae(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function nh(e,t,n){return t=FS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function FS(e){var t=Jae(e,"string");return xu(t)=="symbol"?t:t+""}function Jae(e,t){if(xu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(xu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var eoe=function(){function e(){Yae(this,e),nh(this,"activeIndex",0),nh(this,"coordinateList",[]),nh(this,"layout","horizontal")}return Zae(e,[{key:"setDetails",value:function(n){var r,a=n.coordinateList,o=a===void 0?null:a,i=n.container,s=i===void 0?null:i,l=n.layout,u=l===void 0?null:l,p=n.offset,c=p===void 0?null:p,f=n.mouseHandlerCallback,d=f===void 0?null:f;this.coordinateList=(r=o??this.coordinateList)!==null&&r!==void 0?r:[],this.container=s??this.container,this.layout=u??this.layout,this.offset=c??this.offset,this.mouseHandlerCallback=d??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(n){if(this.coordinateList.length!==0)switch(n.key){case"ArrowRight":{if(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"setIndex",value:function(n){this.activeIndex=n}},{key:"spoofMouse",value:function(){var n,r;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var a=this.container.getBoundingClientRect(),o=a.x,i=a.y,s=a.height,l=this.coordinateList[this.activeIndex].coordinate,u=((n=window)===null||n===void 0?void 0:n.scrollX)||0,p=((r=window)===null||r===void 0?void 0:r.scrollY)||0,c=o+l+u,f=i+this.offset.top+s/2+p;this.mouseHandlerCallback({pageX:c,pageY:f})}}}])}();function toe(e,t,n){if(n==="number"&&t===!0&&Array.isArray(e)){var r=e==null?void 0:e[0],a=e==null?void 0:e[1];if(r&&a&&V(r)&&V(a))return!0}return!1}function noe(e,t,n,r){var a=r/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-a:n.left+.5,y:e==="horizontal"?n.top+.5:t.y-a,width:e==="horizontal"?r:n.width-1,height:e==="horizontal"?n.height-1:r}}function zS(e){var t=e.cx,n=e.cy,r=e.radius,a=e.startAngle,o=e.endAngle,i=vt(t,n,r,a),s=vt(t,n,r,o);return{points:[i,s],cx:t,cy:n,radius:r,startAngle:a,endAngle:o}}function roe(e,t,n){var r,a,o,i;if(e==="horizontal")r=t.x,o=r,a=n.top,i=n.top+n.height;else if(e==="vertical")a=t.y,i=a,r=n.left,o=n.left+n.width;else if(t.cx!=null&&t.cy!=null)if(e==="centric"){var s=t.cx,l=t.cy,u=t.innerRadius,p=t.outerRadius,c=t.angle,f=vt(s,l,u,c),d=vt(s,l,p,c);r=f.x,a=f.y,o=d.x,i=d.y}else return zS(t);return[{x:r,y:a},{x:o,y:i}]}function wu(e){"@babel/helpers - typeof";return wu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wu(e)}function I2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Pc(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?I2(Object(n),!0).forEach(function(r){aoe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function aoe(e,t,n){return t=ooe(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ooe(e){var t=ioe(e,"string");return wu(t)=="symbol"?t:t+""}function ioe(e,t){if(wu(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(wu(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function soe(e){var t,n,r=e.element,a=e.tooltipEventType,o=e.isActive,i=e.activeCoordinate,s=e.activePayload,l=e.offset,u=e.activeTooltipIndex,p=e.tooltipAxisBandSize,c=e.layout,f=e.chartName,d=(t=r.props.cursor)!==null&&t!==void 0?t:(n=r.type.defaultProps)===null||n===void 0?void 0:n.cursor;if(!r||!d||!o||!i||f!=="ScatterChart"&&a!=="axis")return null;var h,m=mo;if(f==="ScatterChart")h=i,m=NJ;else if(f==="BarChart")h=noe(c,i,l,p),m=Ug;else if(c==="radial"){var g=zS(i),v=g.cx,y=g.cy,x=g.radius,P=g.startAngle,w=g.endAngle;h={cx:v,cy:y,startAngle:P,endAngle:w,innerRadius:x,outerRadius:x},m=RP}else h={points:roe(c,i,l)},m=mo;var S=Pc(Pc(Pc(Pc({stroke:"#ccc",pointerEvents:"none"},l),h),re(d,!1)),{},{payload:s,payloadIndex:u,className:ue("recharts-tooltip-cursor",d.className)});return k.isValidElement(d)?k.cloneElement(d,S):k.createElement(m,S)}var loe=["item"],uoe=["children","className","width","height","style","compact","title","desc"];function os(e){"@babel/helpers - typeof";return os=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},os(e)}function ai(){return ai=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ai.apply(this,arguments)}function D2(e,t){return foe(e)||poe(e,t)||HS(e,t)||coe()}function coe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function poe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,o,i,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(p){u=!0,a=p}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}function foe(e){if(Array.isArray(e))return e}function L2(e,t){if(e==null)return{};var n=doe(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function doe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function moe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hoe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,GS(r.key),r)}}function voe(e,t,n){return t&&hoe(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function yoe(e,t,n){return t=Pf(t),goe(e,BS()?Reflect.construct(t,n||[],Pf(e).constructor):t.apply(e,n))}function goe(e,t){if(t&&(os(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return xoe(e)}function xoe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function BS(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(BS=function(){return!!e})()}function Pf(e){return Pf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Pf(e)}function woe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Nv(e,t)}function Nv(e,t){return Nv=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,a){return r.__proto__=a,r},Nv(e,t)}function is(e){return Soe(e)||Poe(e)||HS(e)||boe()}function boe(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function HS(e,t){if(e){if(typeof e=="string")return Mv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Mv(e,t)}}function Poe(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Soe(e){if(Array.isArray(e))return Mv(e)}function Mv(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function F2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?F2(Object(n),!0).forEach(function(r){ee(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):F2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function ee(e,t,n){return t=GS(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function GS(e){var t=Ooe(e,"string");return os(t)=="symbol"?t:t+""}function Ooe(e,t){if(os(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(os(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var koe={xAxis:["bottom","top"],yAxis:["left","right"]},_oe={width:"100%",height:"100%"},US={x:0,y:0};function Sc(e){return e}var Coe=function(t,n){return n==="horizontal"?t.x:n==="vertical"?t.y:n==="centric"?t.angle:t.radius},Aoe=function(t,n,r,a){var o=n.find(function(p){return p&&p.index===r});if(o){if(t==="horizontal")return{x:o.coordinate,y:a.y};if(t==="vertical")return{x:a.x,y:o.coordinate};if(t==="centric"){var i=o.coordinate,s=a.radius;return z(z(z({},a),vt(a.cx,a.cy,s,i)),{},{angle:i,radius:s})}var l=o.coordinate,u=a.angle;return z(z(z({},a),vt(a.cx,a.cy,l,u)),{},{angle:u,radius:l})}return US},Ld=function(t,n){var r=n.graphicalItems,a=n.dataStartIndex,o=n.dataEndIndex,i=(r??[]).reduce(function(s,l){var u=l.props.data;return u&&u.length?[].concat(is(s),is(u)):s},[]);return i.length>0?i:t&&t.length&&V(a)&&V(o)?t.slice(a,o+1):[]};function WS(e){return e==="number"?[0,"auto"]:void 0}var Rv=function(t,n,r,a){var o=t.graphicalItems,i=t.tooltipAxis,s=Ld(n,t);return r<0||!o||!o.length||r>=s.length?null:o.reduce(function(l,u){var p,c=(p=u.props.data)!==null&&p!==void 0?p:n;c&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(c=c.slice(t.dataStartIndex,t.dataEndIndex+1));var f;if(i.dataKey&&!i.allowDuplicatedCategory){var d=c===void 0?s:c;f=bp(d,i.dataKey,a)}else f=c&&c[r]||s[r];return f?[].concat(is(l),[$P(u,f)]):l},[])},z2=function(t,n,r,a){var o=a||{x:t.chartX,y:t.chartY},i=Coe(o,r),s=t.orderedTooltipTicks,l=t.tooltipAxis,u=t.tooltipTicks,p=hY(i,s,u,l);if(p>=0&&u){var c=u[p]&&u[p].value,f=Rv(t,n,p,c),d=Aoe(r,s,p,o);return{activeTooltipIndex:p,activeLabel:c,activePayload:f,activeCoordinate:d}}return null},Eoe=function(t,n){var r=n.axes,a=n.graphicalItems,o=n.axisType,i=n.axisIdKey,s=n.stackGroups,l=n.dataStartIndex,u=n.dataEndIndex,p=t.layout,c=t.children,f=t.stackOffset,d=EP(p,o);return r.reduce(function(h,m){var g,v=m.type.defaultProps!==void 0?z(z({},m.type.defaultProps),m.props):m.props,y=v.type,x=v.dataKey,P=v.allowDataOverflow,w=v.allowDuplicatedCategory,S=v.scale,O=v.ticks,_=v.includeHidden,C=v[i];if(h[C])return h;var j=Ld(t.data,{graphicalItems:a.filter(function(G){var Z,ie=i in G.props?G.props[i]:(Z=G.type.defaultProps)===null||Z===void 0?void 0:Z[i];return ie===C}),dataStartIndex:l,dataEndIndex:u}),E=j.length,T,N,M;toe(v.domain,P,y)&&(T=X0(v.domain,null,P),d&&(y==="number"||S!=="auto")&&(M=ml(j,x,"category")));var I=WS(y);if(!T||T.length===0){var R,L=(R=v.domain)!==null&&R!==void 0?R:I;if(x){if(T=ml(j,x,y),y==="category"&&d){var $=tR(T);w&&$?(N=T,T=of(0,E)):w||(T=mb(L,T,m).reduce(function(G,Z){return G.indexOf(Z)>=0?G:[].concat(is(G),[Z])},[]))}else if(y==="category")w?T=T.filter(function(G){return G!==""&&!te(G)}):T=mb(L,T,m).reduce(function(G,Z){return G.indexOf(Z)>=0||Z===""||te(Z)?G:[].concat(is(G),[Z])},[]);else if(y==="number"){var D=wY(j,a.filter(function(G){var Z,ie,ve=i in G.props?G.props[i]:(Z=G.type.defaultProps)===null||Z===void 0?void 0:Z[i],Pe="hide"in G.props?G.props.hide:(ie=G.type.defaultProps)===null||ie===void 0?void 0:ie.hide;return ve===C&&(_||!Pe)}),x,o,p);D&&(T=D)}d&&(y==="number"||S!=="auto")&&(M=ml(j,x,"category"))}else d?T=of(0,E):s&&s[C]&&s[C].hasStack&&y==="number"?T=f==="expand"?[0,1]:jP(s[C].stackGroups,l,u):T=AP(j,a.filter(function(G){var Z=i in G.props?G.props[i]:G.type.defaultProps[i],ie="hide"in G.props?G.props.hide:G.type.defaultProps.hide;return Z===C&&(_||!ie)}),y,p,!0);if(y==="number")T=$v(c,T,C,o,O),L&&(T=X0(L,T,P));else if(y==="category"&&L){var H=L,W=T.every(function(G){return H.indexOf(G)>=0});W&&(T=H)}}return z(z({},h),{},ee({},C,z(z({},v),{},{axisType:o,domain:T,categoricalDomain:M,duplicateDomain:N,originalDomain:(g=v.domain)!==null&&g!==void 0?g:I,isCategorical:d,layout:p})))},{})},Toe=function(t,n){var r=n.graphicalItems,a=n.Axis,o=n.axisType,i=n.axisIdKey,s=n.stackGroups,l=n.dataStartIndex,u=n.dataEndIndex,p=t.layout,c=t.children,f=Ld(t.data,{graphicalItems:r,dataStartIndex:l,dataEndIndex:u}),d=f.length,h=EP(p,o),m=-1;return r.reduce(function(g,v){var y=v.type.defaultProps!==void 0?z(z({},v.type.defaultProps),v.props):v.props,x=y[i],P=WS("number");if(!g[x]){m++;var w;return h?w=of(0,d):s&&s[x]&&s[x].hasStack?(w=jP(s[x].stackGroups,l,u),w=$v(c,w,x,o)):(w=X0(P,AP(f,r.filter(function(S){var O,_,C=i in S.props?S.props[i]:(O=S.type.defaultProps)===null||O===void 0?void 0:O[i],j="hide"in S.props?S.props.hide:(_=S.type.defaultProps)===null||_===void 0?void 0:_.hide;return C===x&&!j}),"number",p),a.defaultProps.allowDataOverflow),w=$v(c,w,x,o)),z(z({},g),{},ee({},x,z(z({axisType:o},a.defaultProps),{},{hide:!0,orientation:gn(koe,"".concat(o,".").concat(m%2),null),domain:w,originalDomain:P,isCategorical:h,layout:p})))}return g},{})},joe=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,o=n.AxisComp,i=n.graphicalItems,s=n.stackGroups,l=n.dataStartIndex,u=n.dataEndIndex,p=t.children,c="".concat(a,"Id"),f=qt(p,o),d={};return f&&f.length?d=Eoe(t,{axes:f,graphicalItems:i,axisType:a,axisIdKey:c,stackGroups:s,dataStartIndex:l,dataEndIndex:u}):i&&i.length&&(d=Toe(t,{Axis:o,graphicalItems:i,axisType:a,axisIdKey:c,stackGroups:s,dataStartIndex:l,dataEndIndex:u})),d},$oe=function(t){var n=oa(t),r=Er(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:vg(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Yp(n,r)}},B2=function(t){var n=t.children,r=t.defaultShowTooltip,a=Qt(n,Vi),o=0,i=0;return t.data&&t.data.length!==0&&(i=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(o=a.props.startIndex),a.props.endIndex>=0&&(i=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:o,dataEndIndex:i,activeTooltipIndex:-1,isTooltipActive:!!r}},Noe=function(t){return!t||!t.length?!1:t.some(function(n){var r=jr(n&&n.type);return r&&r.indexOf("Bar")>=0})},H2=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},Moe=function(t,n){var r=t.props,a=t.graphicalItems,o=t.xAxisMap,i=o===void 0?{}:o,s=t.yAxisMap,l=s===void 0?{}:s,u=r.width,p=r.height,c=r.children,f=r.margin||{},d=Qt(c,Vi),h=Qt(c,hi),m=Object.keys(l).reduce(function(w,S){var O=l[S],_=O.orientation;return!O.mirror&&!O.hide?z(z({},w),{},ee({},_,w[_]+O.width)):w},{left:f.left||0,right:f.right||0}),g=Object.keys(i).reduce(function(w,S){var O=i[S],_=O.orientation;return!O.mirror&&!O.hide?z(z({},w),{},ee({},_,gn(w,"".concat(_))+O.height)):w},{top:f.top||0,bottom:f.bottom||0}),v=z(z({},g),m),y=v.bottom;d&&(v.bottom+=d.props.height||Vi.defaultProps.height),h&&n&&(v=gY(v,a,r,n));var x=u-v.left-v.right,P=p-v.top-v.bottom;return z(z({brushBottom:y},v),{},{width:Math.max(x,0),height:Math.max(P,0)})},Roe=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},Fd=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,o=a===void 0?"axis":a,i=t.validateTooltipEventTypes,s=i===void 0?["axis"]:i,l=t.axisComponents,u=t.legendContent,p=t.formatAxisMap,c=t.defaultProps,f=function(v,y){var x=y.graphicalItems,P=y.stackGroups,w=y.offset,S=y.updateId,O=y.dataStartIndex,_=y.dataEndIndex,C=v.barSize,j=v.layout,E=v.barGap,T=v.barCategoryGap,N=v.maxBarSize,M=H2(j),I=M.numericAxisName,R=M.cateAxisName,L=Noe(x),$=[];return x.forEach(function(D,H){var W=Ld(v.data,{graphicalItems:[D],dataStartIndex:O,dataEndIndex:_}),G=D.type.defaultProps!==void 0?z(z({},D.type.defaultProps),D.props):D.props,Z=G.dataKey,ie=G.maxBarSize,ve=G["".concat(I,"Id")],Pe=G["".concat(R,"Id")],J={},le=l.reduce(function(Ba,Ha){var Wd=y["".concat(Ha.axisType,"Map")],l1=G["".concat(Ha.axisType,"Id")];Wd&&Wd[l1]||Ha.axisType==="zAxis"||Co();var u1=Wd[l1];return z(z({},Ba),{},ee(ee({},Ha.axisType,u1),"".concat(Ha.axisType,"Ticks"),Er(u1)))},J),q=le[R],K=le["".concat(R,"Ticks")],X=P&&P[ve]&&P[ve].hasStack&&$Y(D,P[ve].stackGroups),F=jr(D.type).indexOf("Bar")>=0,pe=Yp(q,K),ne=[],Ne=L&&vY({barSize:C,stackGroups:P,totalSize:Roe(le,R)});if(F){var Me,Ze,Xn=te(ie)?N:ie,On=(Me=(Ze=Yp(q,K,!0))!==null&&Ze!==void 0?Ze:Xn)!==null&&Me!==void 0?Me:0;ne=yY({barGap:E,barCategoryGap:T,bandSize:On!==pe?On:pe,sizeList:Ne[Pe],maxBarSize:Xn}),On!==pe&&(ne=ne.map(function(Ba){return z(z({},Ba),{},{position:z(z({},Ba.position),{},{offset:Ba.position.offset-On/2})})}))}var Fu=D&&D.type&&D.type.getComposedData;Fu&&$.push({props:z(z({},Fu(z(z({},le),{},{displayedData:W,props:v,dataKey:Z,item:D,bandSize:pe,barPosition:ne,offset:w,stackedData:X,layout:j,dataStartIndex:O,dataEndIndex:_}))),{},ee(ee(ee({key:D.key||"item-".concat(H)},I,le[I]),R,le[R]),"animationId",S)),childIndex:mR(D,v.children),item:D})}),$},d=function(v,y){var x=v.props,P=v.dataStartIndex,w=v.dataEndIndex,S=v.updateId;if(!lw({props:x}))return null;var O=x.children,_=x.layout,C=x.stackOffset,j=x.data,E=x.reverseStackOrder,T=H2(_),N=T.numericAxisName,M=T.cateAxisName,I=qt(O,r),R=EY(j,I,"".concat(N,"Id"),"".concat(M,"Id"),C,E),L=l.reduce(function(G,Z){var ie="".concat(Z.axisType,"Map");return z(z({},G),{},ee({},ie,joe(x,z(z({},Z),{},{graphicalItems:I,stackGroups:Z.axisType===N&&R,dataStartIndex:P,dataEndIndex:w}))))},{}),$=Moe(z(z({},L),{},{props:x,graphicalItems:I}),y==null?void 0:y.legendBBox);Object.keys(L).forEach(function(G){L[G]=p(x,L[G],$,G.replace("Map",""),n)});var D=L["".concat(M,"Map")],H=$oe(D),W=f(x,z(z({},L),{},{dataStartIndex:P,dataEndIndex:w,updateId:S,graphicalItems:I,stackGroups:R,offset:$}));return z(z({formattedGraphicalItems:W,graphicalItems:I,offset:$,stackGroups:R},H),L)},h=function(g){function v(y){var x,P,w;return moe(this,v),w=yoe(this,v,[y]),ee(w,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),ee(w,"accessibilityManager",new eoe),ee(w,"handleLegendBBoxUpdate",function(S){if(S){var O=w.state,_=O.dataStartIndex,C=O.dataEndIndex,j=O.updateId;w.setState(z({legendBBox:S},d({props:w.props,dataStartIndex:_,dataEndIndex:C,updateId:j},z(z({},w.state),{},{legendBBox:S}))))}}),ee(w,"handleReceiveSyncEvent",function(S,O,_){if(w.props.syncId===S){if(_===w.eventEmitterSymbol&&typeof w.props.syncMethod!="function")return;w.applySyncEvent(O)}}),ee(w,"handleBrushChange",function(S){var O=S.startIndex,_=S.endIndex;if(O!==w.state.dataStartIndex||_!==w.state.dataEndIndex){var C=w.state.updateId;w.setState(function(){return z({dataStartIndex:O,dataEndIndex:_},d({props:w.props,dataStartIndex:O,dataEndIndex:_,updateId:C},w.state))}),w.triggerSyncEvent({dataStartIndex:O,dataEndIndex:_})}}),ee(w,"handleMouseEnter",function(S){var O=w.getMouseInfo(S);if(O){var _=z(z({},O),{},{isTooltipActive:!0});w.setState(_),w.triggerSyncEvent(_);var C=w.props.onMouseEnter;oe(C)&&C(_,S)}}),ee(w,"triggeredAfterMouseMove",function(S){var O=w.getMouseInfo(S),_=O?z(z({},O),{},{isTooltipActive:!0}):{isTooltipActive:!1};w.setState(_),w.triggerSyncEvent(_);var C=w.props.onMouseMove;oe(C)&&C(_,S)}),ee(w,"handleItemMouseEnter",function(S){w.setState(function(){return{isTooltipActive:!0,activeItem:S,activePayload:S.tooltipPayload,activeCoordinate:S.tooltipPosition||{x:S.cx,y:S.cy}}})}),ee(w,"handleItemMouseLeave",function(){w.setState(function(){return{isTooltipActive:!1}})}),ee(w,"handleMouseMove",function(S){S.persist(),w.throttleTriggeredAfterMouseMove(S)}),ee(w,"handleMouseLeave",function(S){w.throttleTriggeredAfterMouseMove.cancel();var O={isTooltipActive:!1};w.setState(O),w.triggerSyncEvent(O);var _=w.props.onMouseLeave;oe(_)&&_(O,S)}),ee(w,"handleOuterEvent",function(S){var O=dR(S),_=gn(w.props,"".concat(O));if(O&&oe(_)){var C,j;/.*touch.*/i.test(O)?j=w.getMouseInfo(S.changedTouches[0]):j=w.getMouseInfo(S),_((C=j)!==null&&C!==void 0?C:{},S)}}),ee(w,"handleClick",function(S){var O=w.getMouseInfo(S);if(O){var _=z(z({},O),{},{isTooltipActive:!0});w.setState(_),w.triggerSyncEvent(_);var C=w.props.onClick;oe(C)&&C(_,S)}}),ee(w,"handleMouseDown",function(S){var O=w.props.onMouseDown;if(oe(O)){var _=w.getMouseInfo(S);O(_,S)}}),ee(w,"handleMouseUp",function(S){var O=w.props.onMouseUp;if(oe(O)){var _=w.getMouseInfo(S);O(_,S)}}),ee(w,"handleTouchMove",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&w.throttleTriggeredAfterMouseMove(S.changedTouches[0])}),ee(w,"handleTouchStart",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&w.handleMouseDown(S.changedTouches[0])}),ee(w,"handleTouchEnd",function(S){S.changedTouches!=null&&S.changedTouches.length>0&&w.handleMouseUp(S.changedTouches[0])}),ee(w,"handleDoubleClick",function(S){var O=w.props.onDoubleClick;if(oe(O)){var _=w.getMouseInfo(S);O(_,S)}}),ee(w,"handleContextMenu",function(S){var O=w.props.onContextMenu;if(oe(O)){var _=w.getMouseInfo(S);O(_,S)}}),ee(w,"triggerSyncEvent",function(S){w.props.syncId!==void 0&&eh.emit(th,w.props.syncId,S,w.eventEmitterSymbol)}),ee(w,"applySyncEvent",function(S){var O=w.props,_=O.layout,C=O.syncMethod,j=w.state.updateId,E=S.dataStartIndex,T=S.dataEndIndex;if(S.dataStartIndex!==void 0||S.dataEndIndex!==void 0)w.setState(z({dataStartIndex:E,dataEndIndex:T},d({props:w.props,dataStartIndex:E,dataEndIndex:T,updateId:j},w.state)));else if(S.activeTooltipIndex!==void 0){var N=S.chartX,M=S.chartY,I=S.activeTooltipIndex,R=w.state,L=R.offset,$=R.tooltipTicks;if(!L)return;if(typeof C=="function")I=C($,S);else if(C==="value"){I=-1;for(var D=0;D<$.length;D++)if($[D].value===S.activeLabel){I=D;break}}var H=z(z({},L),{},{x:L.left,y:L.top}),W=Math.min(N,H.x+H.width),G=Math.min(M,H.y+H.height),Z=$[I]&&$[I].value,ie=Rv(w.state,w.props.data,I),ve=$[I]?{x:_==="horizontal"?$[I].coordinate:W,y:_==="horizontal"?G:$[I].coordinate}:US;w.setState(z(z({},S),{},{activeLabel:Z,activeCoordinate:ve,activePayload:ie,activeTooltipIndex:I}))}else w.setState(S)}),ee(w,"renderCursor",function(S){var O,_=w.state,C=_.isTooltipActive,j=_.activeCoordinate,E=_.activePayload,T=_.offset,N=_.activeTooltipIndex,M=_.tooltipAxisBandSize,I=w.getTooltipEventType(),R=(O=S.props.active)!==null&&O!==void 0?O:C,L=w.props.layout,$=S.key||"_recharts-cursor";return A.createElement(soe,{key:$,activeCoordinate:j,activePayload:E,activeTooltipIndex:N,chartName:n,element:S,isActive:R,layout:L,offset:T,tooltipAxisBandSize:M,tooltipEventType:I})}),ee(w,"renderPolarAxis",function(S,O,_){var C=gn(S,"type.axisType"),j=gn(w.state,"".concat(C,"Map")),E=S.type.defaultProps,T=E!==void 0?z(z({},E),S.props):S.props,N=j&&j[T["".concat(C,"Id")]];return k.cloneElement(S,z(z({},N),{},{className:ue(C,N.className),key:S.key||"".concat(O,"-").concat(_),ticks:Er(N,!0)}))}),ee(w,"renderPolarGrid",function(S){var O=S.props,_=O.radialLines,C=O.polarAngles,j=O.polarRadius,E=w.state,T=E.radiusAxisMap,N=E.angleAxisMap,M=oa(T),I=oa(N),R=I.cx,L=I.cy,$=I.innerRadius,D=I.outerRadius;return k.cloneElement(S,{polarAngles:Array.isArray(C)?C:Er(I,!0).map(function(H){return H.coordinate}),polarRadius:Array.isArray(j)?j:Er(M,!0).map(function(H){return H.coordinate}),cx:R,cy:L,innerRadius:$,outerRadius:D,key:S.key||"polar-grid",radialLines:_})}),ee(w,"renderLegend",function(){var S=w.state.formattedGraphicalItems,O=w.props,_=O.children,C=O.width,j=O.height,E=w.props.margin||{},T=C-(E.left||0)-(E.right||0),N=_P({children:_,formattedGraphicalItems:S,legendWidth:T,legendContent:u});if(!N)return null;var M=N.item,I=L2(N,loe);return k.cloneElement(M,z(z({},I),{},{chartWidth:C,chartHeight:j,margin:E,onBBoxUpdate:w.handleLegendBBoxUpdate}))}),ee(w,"renderTooltip",function(){var S,O=w.props,_=O.children,C=O.accessibilityLayer,j=Qt(_,Zn);if(!j)return null;var E=w.state,T=E.isTooltipActive,N=E.activeCoordinate,M=E.activePayload,I=E.activeLabel,R=E.offset,L=(S=j.props.active)!==null&&S!==void 0?S:T;return k.cloneElement(j,{viewBox:z(z({},R),{},{x:R.left,y:R.top}),active:L,label:I,payload:L?M:[],coordinate:N,accessibilityLayer:C})}),ee(w,"renderBrush",function(S){var O=w.props,_=O.margin,C=O.data,j=w.state,E=j.offset,T=j.dataStartIndex,N=j.dataEndIndex,M=j.updateId;return k.cloneElement(S,{key:S.key||"_recharts-brush",onChange:gc(w.handleBrushChange,S.props.onChange),data:C,x:V(S.props.x)?S.props.x:E.left,y:V(S.props.y)?S.props.y:E.top+E.height+E.brushBottom-(_.bottom||0),width:V(S.props.width)?S.props.width:E.width,startIndex:T,endIndex:N,updateId:"brush-".concat(M)})}),ee(w,"renderReferenceElement",function(S,O,_){if(!S)return null;var C=w,j=C.clipPathId,E=w.state,T=E.xAxisMap,N=E.yAxisMap,M=E.offset,I=S.type.defaultProps||{},R=S.props,L=R.xAxisId,$=L===void 0?I.xAxisId:L,D=R.yAxisId,H=D===void 0?I.yAxisId:D;return k.cloneElement(S,{key:S.key||"".concat(O,"-").concat(_),xAxis:T[$],yAxis:N[H],viewBox:{x:M.left,y:M.top,width:M.width,height:M.height},clipPathId:j})}),ee(w,"renderActivePoints",function(S){var O=S.item,_=S.activePoint,C=S.basePoint,j=S.childIndex,E=S.isRange,T=[],N=O.props.key,M=O.item.type.defaultProps!==void 0?z(z({},O.item.type.defaultProps),O.item.props):O.item.props,I=M.activeDot,R=M.dataKey,L=z(z({index:j,dataKey:R,cx:_.x,cy:_.y,r:4,fill:Gg(O.item),strokeWidth:2,stroke:"#fff",payload:_.payload,value:_.value},re(I,!1)),Pp(I));return T.push(v.renderActiveDot(I,L,"".concat(N,"-activePoint-").concat(j))),C?T.push(v.renderActiveDot(I,z(z({},L),{},{cx:C.x,cy:C.y}),"".concat(N,"-basePoint-").concat(j))):E&&T.push(null),T}),ee(w,"renderGraphicChild",function(S,O,_){var C=w.filterFormatItem(S,O,_);if(!C)return null;var j=w.getTooltipEventType(),E=w.state,T=E.isTooltipActive,N=E.tooltipAxis,M=E.activeTooltipIndex,I=E.activeLabel,R=w.props.children,L=Qt(R,Zn),$=C.props,D=$.points,H=$.isRange,W=$.baseLine,G=C.item.type.defaultProps!==void 0?z(z({},C.item.type.defaultProps),C.item.props):C.item.props,Z=G.activeDot,ie=G.hide,ve=G.activeBar,Pe=G.activeShape,J=!!(!ie&&T&&L&&(Z||ve||Pe)),le={};j!=="axis"&&L&&L.props.trigger==="click"?le={onClick:gc(w.handleItemMouseEnter,S.props.onClick)}:j!=="axis"&&(le={onMouseLeave:gc(w.handleItemMouseLeave,S.props.onMouseLeave),onMouseEnter:gc(w.handleItemMouseEnter,S.props.onMouseEnter)});var q=k.cloneElement(S,z(z({},C.props),le));function K(Ha){return typeof N.dataKey=="function"?N.dataKey(Ha.payload):null}if(J)if(M>=0){var X,F;if(N.dataKey&&!N.allowDuplicatedCategory){var pe=typeof N.dataKey=="function"?K:"payload.".concat(N.dataKey.toString());X=bp(D,pe,I),F=H&&W&&bp(W,pe,I)}else X=D==null?void 0:D[M],F=H&&W&&W[M];if(Pe||ve){var ne=S.props.activeIndex!==void 0?S.props.activeIndex:M;return[k.cloneElement(S,z(z(z({},C.props),le),{},{activeIndex:ne})),null,null]}if(!te(X))return[q].concat(is(w.renderActivePoints({item:C,activePoint:X,basePoint:F,childIndex:M,isRange:H})))}else{var Ne,Me=(Ne=w.getItemByXY(w.state.activeCoordinate))!==null&&Ne!==void 0?Ne:{graphicalItem:q},Ze=Me.graphicalItem,Xn=Ze.item,On=Xn===void 0?S:Xn,Fu=Ze.childIndex,Ba=z(z(z({},C.props),le),{},{activeIndex:Fu});return[k.cloneElement(On,Ba),null,null]}return H?[q,null,null]:[q,null]}),ee(w,"renderCustomized",function(S,O,_){return k.cloneElement(S,z(z({key:"recharts-customized-".concat(_)},w.props),w.state))}),ee(w,"renderMap",{CartesianGrid:{handler:Sc,once:!0},ReferenceArea:{handler:w.renderReferenceElement},ReferenceLine:{handler:Sc},ReferenceDot:{handler:w.renderReferenceElement},XAxis:{handler:Sc},YAxis:{handler:Sc},Brush:{handler:w.renderBrush,once:!0},Bar:{handler:w.renderGraphicChild},Line:{handler:w.renderGraphicChild},Area:{handler:w.renderGraphicChild},Radar:{handler:w.renderGraphicChild},RadialBar:{handler:w.renderGraphicChild},Scatter:{handler:w.renderGraphicChild},Pie:{handler:w.renderGraphicChild},Funnel:{handler:w.renderGraphicChild},Tooltip:{handler:w.renderCursor,once:!0},PolarGrid:{handler:w.renderPolarGrid,once:!0},PolarAngleAxis:{handler:w.renderPolarAxis},PolarRadiusAxis:{handler:w.renderPolarAxis},Customized:{handler:w.renderCustomized}}),w.clipPathId="".concat((x=y.id)!==null&&x!==void 0?x:$o("recharts"),"-clip"),w.throttleTriggeredAfterMouseMove=_7(w.triggeredAfterMouseMove,(P=y.throttleDelay)!==null&&P!==void 0?P:1e3/60),w.state={},w}return woe(v,g),voe(v,[{key:"componentDidMount",value:function(){var x,P;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(x=this.props.margin.left)!==null&&x!==void 0?x:0,top:(P=this.props.margin.top)!==null&&P!==void 0?P:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var x=this.props,P=x.children,w=x.data,S=x.height,O=x.layout,_=Qt(P,Zn);if(_){var C=_.props.defaultIndex;if(!(typeof C!="number"||C<0||C>this.state.tooltipTicks.length-1)){var j=this.state.tooltipTicks[C]&&this.state.tooltipTicks[C].value,E=Rv(this.state,w,C,j),T=this.state.tooltipTicks[C].coordinate,N=(this.state.offset.top+S)/2,M=O==="horizontal",I=M?{x:T,y:N}:{y:T,x:N},R=this.state.formattedGraphicalItems.find(function($){var D=$.item;return D.type.name==="Scatter"});R&&(I=z(z({},I),R.props.points[C].tooltipPosition),E=R.props.points[C].tooltipPayload);var L={activeTooltipIndex:C,isTooltipActive:!0,activeLabel:j,activePayload:E,activeCoordinate:I};this.setState(L),this.renderCursor(_),this.accessibilityManager.setIndex(C)}}}},{key:"getSnapshotBeforeUpdate",value:function(x,P){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==P.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==x.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==x.margin){var w,S;this.accessibilityManager.setDetails({offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(S=this.props.margin.top)!==null&&S!==void 0?S:0}})}return null}},{key:"componentDidUpdate",value:function(x){c0([Qt(x.children,Zn)],[Qt(this.props.children,Zn)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var x=Qt(this.props.children,Zn);if(x&&typeof x.props.shared=="boolean"){var P=x.props.shared?"axis":"item";return s.indexOf(P)>=0?P:o}return o}},{key:"getMouseInfo",value:function(x){if(!this.container)return null;var P=this.container,w=P.getBoundingClientRect(),S=BW(w),O={chartX:Math.round(x.pageX-S.left),chartY:Math.round(x.pageY-S.top)},_=w.width/P.offsetWidth||1,C=this.inRange(O.chartX,O.chartY,_);if(!C)return null;var j=this.state,E=j.xAxisMap,T=j.yAxisMap,N=this.getTooltipEventType(),M=z2(this.state,this.props.data,this.props.layout,C);if(N!=="axis"&&E&&T){var I=oa(E).scale,R=oa(T).scale,L=I&&I.invert?I.invert(O.chartX):null,$=R&&R.invert?R.invert(O.chartY):null;return z(z({},O),{},{xValue:L,yValue:$},M)}return M?z(z({},O),M):null}},{key:"inRange",value:function(x,P){var w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,S=this.props.layout,O=x/w,_=P/w;if(S==="horizontal"||S==="vertical"){var C=this.state.offset,j=O>=C.left&&O<=C.left+C.width&&_>=C.top&&_<=C.top+C.height;return j?{x:O,y:_}:null}var E=this.state,T=E.angleAxisMap,N=E.radiusAxisMap;if(T&&N){var M=oa(T);return yb({x:O,y:_},M)}return null}},{key:"parseEventsOfWrapper",value:function(){var x=this.props.children,P=this.getTooltipEventType(),w=Qt(x,Zn),S={};w&&P==="axis"&&(w.props.trigger==="click"?S={onClick:this.handleClick}:S={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var O=Pp(this.props,this.handleOuterEvent);return z(z({},O),S)}},{key:"addListener",value:function(){eh.on(th,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){eh.removeListener(th,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(x,P,w){for(var S=this.state.formattedGraphicalItems,O=0,_=S.length;O<_;O++){var C=S[O];if(C.item===x||C.props.key===x.key||P===jr(C.item.type)&&w===C.childIndex)return C}return null}},{key:"renderClipPath",value:function(){var x=this.clipPathId,P=this.state.offset,w=P.left,S=P.top,O=P.height,_=P.width;return A.createElement("defs",null,A.createElement("clipPath",{id:x},A.createElement("rect",{x:w,y:S,height:O,width:_})))}},{key:"getXScales",value:function(){var x=this.state.xAxisMap;return x?Object.entries(x).reduce(function(P,w){var S=D2(w,2),O=S[0],_=S[1];return z(z({},P),{},ee({},O,_.scale))},{}):null}},{key:"getYScales",value:function(){var x=this.state.yAxisMap;return x?Object.entries(x).reduce(function(P,w){var S=D2(w,2),O=S[0],_=S[1];return z(z({},P),{},ee({},O,_.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(x){var P;return(P=this.state.xAxisMap)===null||P===void 0||(P=P[x])===null||P===void 0?void 0:P.scale}},{key:"getYScaleByAxisId",value:function(x){var P;return(P=this.state.yAxisMap)===null||P===void 0||(P=P[x])===null||P===void 0?void 0:P.scale}},{key:"getItemByXY",value:function(x){var P=this.state,w=P.formattedGraphicalItems,S=P.activeItem;if(w&&w.length)for(var O=0,_=w.length;O<_;O++){var C=w[O],j=C.props,E=C.item,T=E.type.defaultProps!==void 0?z(z({},E.type.defaultProps),E.props):E.props,N=jr(E.type);if(N==="Bar"){var M=(j.data||[]).find(function($){return SJ(x,$)});if(M)return{graphicalItem:C,payload:M}}else if(N==="RadialBar"){var I=(j.data||[]).find(function($){return yb(x,$)});if(I)return{graphicalItem:C,payload:I}}else if(Ad(C,S)||Ed(C,S)||mu(C,S)){var R=kee({graphicalItem:C,activeTooltipItem:S,itemData:T.data}),L=T.activeIndex===void 0?R:T.activeIndex;return{graphicalItem:z(z({},C),{},{childIndex:L}),payload:mu(C,S)?T.data[R]:C.props.data[R]}}}return null}},{key:"render",value:function(){var x=this;if(!lw(this))return null;var P=this.props,w=P.children,S=P.className,O=P.width,_=P.height,C=P.style,j=P.compact,E=P.title,T=P.desc,N=L2(P,uoe),M=re(N,!1);if(j)return A.createElement(h2,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},A.createElement(f0,ai({},M,{width:O,height:_,title:E,desc:T}),this.renderClipPath(),cw(w,this.renderMap)));if(this.props.accessibilityLayer){var I,R;M.tabIndex=(I=this.props.tabIndex)!==null&&I!==void 0?I:0,M.role=(R=this.props.role)!==null&&R!==void 0?R:"application",M.onKeyDown=function($){x.accessibilityManager.keyboardEvent($)},M.onFocus=function(){x.accessibilityManager.focus()}}var L=this.parseEventsOfWrapper();return A.createElement(h2,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},A.createElement("div",ai({className:ue("recharts-wrapper",S),style:z({position:"relative",cursor:"default",width:O,height:_},C)},L,{ref:function(D){x.container=D}}),A.createElement(f0,ai({},M,{width:O,height:_,title:E,desc:T,style:_oe}),this.renderClipPath(),cw(w,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])}(k.Component);ee(h,"displayName",n),ee(h,"defaultProps",z({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},c)),ee(h,"getDerivedStateFromProps",function(g,v){var y=g.dataKey,x=g.data,P=g.children,w=g.width,S=g.height,O=g.layout,_=g.stackOffset,C=g.margin,j=v.dataStartIndex,E=v.dataEndIndex;if(v.updateId===void 0){var T=B2(g);return z(z(z({},T),{},{updateId:0},d(z(z({props:g},T),{},{updateId:0}),v)),{},{prevDataKey:y,prevData:x,prevWidth:w,prevHeight:S,prevLayout:O,prevStackOffset:_,prevMargin:C,prevChildren:P})}if(y!==v.prevDataKey||x!==v.prevData||w!==v.prevWidth||S!==v.prevHeight||O!==v.prevLayout||_!==v.prevStackOffset||!mi(C,v.prevMargin)){var N=B2(g),M={chartX:v.chartX,chartY:v.chartY,isTooltipActive:v.isTooltipActive},I=z(z({},z2(v,x,O)),{},{updateId:v.updateId+1}),R=z(z(z({},N),M),I);return z(z(z({},R),d(z({props:g},R),v)),{},{prevDataKey:y,prevData:x,prevWidth:w,prevHeight:S,prevLayout:O,prevStackOffset:_,prevMargin:C,prevChildren:P})}if(!c0(P,v.prevChildren)){var L,$,D,H,W=Qt(P,Vi),G=W&&(L=($=W.props)===null||$===void 0?void 0:$.startIndex)!==null&&L!==void 0?L:j,Z=W&&(D=(H=W.props)===null||H===void 0?void 0:H.endIndex)!==null&&D!==void 0?D:E,ie=G!==j||Z!==E,ve=!te(x),Pe=ve&&!ie?v.updateId:v.updateId+1;return z(z({updateId:Pe},d(z(z({props:g},v),{},{updateId:Pe,dataStartIndex:G,dataEndIndex:Z}),v)),{},{prevChildren:P,dataStartIndex:G,dataEndIndex:Z})}return null}),ee(h,"renderActiveDot",function(g,v,y){var x;return k.isValidElement(g)?x=k.cloneElement(g,v):oe(g)?x=g(v):x=A.createElement(Cd,v),A.createElement(ye,{className:"recharts-active-dot",key:y},x)});var m=k.forwardRef(function(v,y){return A.createElement(h,ai({},v,{ref:y}))});return m.displayName=h.displayName,m},e1=Fd({chartName:"LineChart",GraphicalChild:Rt,axisComponents:[{axisType:"xAxis",AxisComp:Et},{axisType:"yAxis",AxisComp:yt}],formatAxisMap:jd}),qS=Fd({chartName:"BarChart",GraphicalChild:Vr,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:Et},{axisType:"yAxis",AxisComp:yt}],formatAxisMap:jd}),Sf=Fd({chartName:"AreaChart",GraphicalChild:pt,axisComponents:[{axisType:"xAxis",AxisComp:Et},{axisType:"yAxis",AxisComp:yt}],formatAxisMap:jd}),Ioe=Fd({chartName:"ComposedChart",GraphicalChild:[Rt,pt,Vr,Dd],axisComponents:[{axisType:"xAxis",AxisComp:Et},{axisType:"yAxis",AxisComp:yt},{axisType:"zAxis",AxisComp:Id}],formatAxisMap:jd});const Doe={light:"",dark:".dark"},VS=k.createContext(null);function KS(){const e=k.useContext(VS);if(!e)throw new Error("useChart must be used within a <ChartContainer />");return e}const Fn=k.forwardRef(({id:e,className:t,children:n,config:r,...a},o)=>{const i=k.useId(),s=`chart-${e||i.replace(/:/g,"")}`;return b.jsx(VS.Provider,{value:{config:r},children:b.jsxs("div",{"data-chart":s,ref:o,className:Oe("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[b.jsx(Loe,{id:s,config:r}),b.jsx(MW,{children:n})]})})});Fn.displayName="Chart";const Loe=({id:e,config:t})=>{const n=Object.entries(t).filter(([r,a])=>a.theme||a.color);return n.length?b.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(Doe).map(([r,a])=>`
 ${a} [data-chart=${e}] {
 ${n.map(([o,i])=>{var l;const s=((l=i.theme)==null?void 0:l[r])||i.color;return s?`  --color-${o}: ${s};`:null}).join(`
 `)}
 }
 `).join(`
-`)}}):null},sr=Zn,zn=k.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:o=!1,label:i,labelFormatter:s,labelClassName:l,formatter:u,color:f,nameKey:c,labelKey:p},d)=>{const{config:h}=WS(),m=k.useMemo(()=>{var w;if(a||!(t!=null&&t.length))return null;const[v]=t,y=`${p||v.dataKey||v.name||"value"}`,x=Iy(h,v,y),P=!p&&typeof i=="string"?((w=h[i])==null?void 0:w.label)||i:x==null?void 0:x.label;return s?b.jsx("div",{className:Oe("font-medium",l),children:s(P,t)}):P?b.jsx("div",{className:Oe("font-medium",l),children:P}):null},[i,s,t,a,l,h,p]);if(!e||!(t!=null&&t.length))return null;const g=t.length===1&&r!=="dot";return b.jsxs("div",{ref:d,className:Oe("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[g?null:m,b.jsx("div",{className:"grid gap-1.5",children:t.map((v,y)=>{const x=`${c||v.name||v.dataKey||"value"}`,P=Iy(h,v,x),w=f||v.payload.fill||v.color;return b.jsx("div",{className:Oe("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:u&&(v==null?void 0:v.value)!==void 0&&v.name?u(v.value,v.name,v,y,v.payload):b.jsxs(b.Fragment,{children:[P!=null&&P.icon?b.jsx(P.icon,{}):!o&&b.jsx("div",{className:Oe("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":g&&r==="dashed"}),style:{"--color-bg":w,"--color-border":w}}),b.jsxs("div",{className:Oe("flex flex-1 justify-between leading-none",g?"items-end":"items-center"),children:[b.jsxs("div",{className:"grid gap-1.5",children:[g?m:null,b.jsx("span",{className:"text-muted-foreground",children:(P==null?void 0:P.label)||v.name})]}),v.value&&b.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:v.value.toLocaleString()})]})]})},v.dataKey)})})]})});zn.displayName="ChartTooltip";const koe=k.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},o)=>{const{config:i}=WS();return n!=null&&n.length?b.jsx("div",{ref:o,className:Oe("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.map(s=>{const l=`${a||s.dataKey||"value"}`,u=Iy(i,s,l);return b.jsxs("div",{className:Oe("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[u!=null&&u.icon&&!t?b.jsx(u.icon,{}):b.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:s.color}}),u==null?void 0:u.label]},s.value)})}):null});koe.displayName="ChartLegend";function Iy(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const _oe={empty:{icon:W4,title:"No Data Available",description:"There is no data to display at the moment."},error:{icon:dT,title:"Failed to Load Data",description:"An error occurred while loading the data. Please try again."},loading:{icon:V4,title:"Loading Data",description:"Please wait while we fetch the latest information."},"no-data":{icon:B4,title:"No Chart Data",description:"No data available to display in the chart."}},Aoe=({type:e="empty",title:t,description:n,action:r,className:a})=>{const o=_oe[e],i=o.icon;return b.jsx(xe,{className:`border-dashed ${a}`,children:b.jsxs(be,{className:"flex flex-col items-center justify-center py-12 px-6 text-center",children:[b.jsx("div",{className:"rounded-full bg-gray-100 p-3 mb-4",children:b.jsx(i,{className:`h-8 w-8 text-gray-400 ${e==="loading"?"animate-spin":""}`})}),b.jsx(we,{className:"text-lg font-medium text-gray-900 mb-2",children:t||o.title}),b.jsx("p",{className:"text-sm text-gray-500 mb-6 max-w-sm",children:n||o.description}),r&&b.jsxs(bf,{onClick:r.onClick,variant:"outline",size:"sm",children:[b.jsx(V4,{className:"h-4 w-4 mr-2"}),r.label]})]})})},Bn=({onRetry:e})=>b.jsx(Aoe,{type:"no-data",title:"No Chart Data",description:"Unable to generate chart with the current data set.",action:e?{label:"Retry",onClick:e}:void 0}),lr=({text:e="Kind Cluster / GitHub CI",position:t="top-center",className:n=""})=>{const r=()=>{switch(t){case"bottom-left":return"bottom-8 left-4";case"bottom-right":return"bottom-8 right-4";case"bottom-center":return"bottom-8 left-1/2 transform -translate-x-1/2";case"top-left":return"top-4 left-4";case"top-right":return"top-4 right-4";case"top-center":return"left-1/2 transform -translate-x-1/2 -translate-y-1/2";default:return"bottom-8 left-1/2 transform -translate-x-1/2"}};return b.jsxs("div",{className:`absolute ${r()} z-10 flex items-center gap-1 px-2 py-1 bg-indigo-600/40 rounded-md border border-gray-200/30 shadow-sm ${n}`,children:[b.jsx(q4,{className:"h-3 w-3 text-white"}),b.jsx("span",{className:"text-xs text-white font-medium",children:e})]})},Coe=({performanceMatrix:e,benchmarkResults:t,testConfiguration:n,performanceSummary:r,latencyPercentileComparison:a})=>{const o=e.filter(c=>c.phase==="scaling-up").map(c=>({routes:c.routes,throughput:Math.round(c.throughput),latency:Number(c.meanLatency.toFixed(1))})),i=t.filter(c=>c.phase==="scaling-up").map(c=>({routes:c.routes,gateway:Math.round(c.resources.envoyGateway.memory.mean),proxy:Math.round(c.resources.envoyProxy.memory.mean),total:Math.round(c.resources.envoyGateway.memory.mean+c.resources.envoyProxy.memory.mean)})),l=(()=>{if(a&&a.length>0){const c=a.filter(p=>p.phase==="scaling-up").sort((p,d)=>d.routes-p.routes)[0];if(c)return[{percentile:"P50",value:Number(c.p50.toFixed(1)),status:"excellent"},{percentile:"P75",value:Number(c.p75.toFixed(1)),status:"excellent"},{percentile:"P90",value:Number(c.p90.toFixed(1)),status:"good"},{percentile:"P95",value:Number(c.p95.toFixed(1)),status:"acceptable"},{percentile:"P99",value:Number(c.p99.toFixed(1)),status:"watch"}]}if(t&&t.length>0){const c=t.filter(p=>p.phase==="scaling-up").sort((p,d)=>d.routes-p.routes)[0];if(c&&c.latency&&c.latency.percentiles){const p=c.latency.percentiles;return[{percentile:"P50",value:Number((p.p50/1e3).toFixed(1)),status:"excellent"},{percentile:"P75",value:Number((p.p75/1e3).toFixed(1)),status:"excellent"},{percentile:"P90",value:Number((p.p90/1e3).toFixed(1)),status:"good"},{percentile:"P95",value:Number((p.p95/1e3).toFixed(1)),status:"acceptable"},{percentile:"P99",value:Number((p.p99/1e3).toFixed(1)),status:"watch"}]}}return null})(),u=i.map(c=>({routes:c.routes,gatewayPerRoute:Number((c.gateway/c.routes).toFixed(2)),proxyPerRoute:Number((c.proxy/c.routes).toFixed(2)),totalPerRoute:Number((c.total/c.routes).toFixed(2))})),f={throughput:{label:"Throughput",color:"#8b5cf6"},latency:{label:"Latency",color:"#6366f1"},gateway:{label:"Gateway",color:"#a855f7"},proxy:{label:"Proxy",color:"#4f46e5"},totalPerRoute:{label:"Total per Route",color:"#8b5cf6"},gatewayPerRoute:{label:"Gateway per Route",color:"#a855f7"},proxyPerRoute:{label:"Proxy per Route",color:"#4f46e5"}};return b.jsxs("div",{className:"space-y-6",children:[b.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Avg Throughput"}),b.jsx(wT,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[Math.round(r.avgThroughput)," RPS"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Consistent across all scales"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Mean Response Time"}),b.jsx(U4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[(r.avgLatency/1e3).toFixed(1),"ms"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"End-to-end as measured by Nighthawk"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Max Routes in Test"}),b.jsx(X4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:r.maxRoutes}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Routes tested successfully"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Reliability"}),b.jsx(yT,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:"100%"}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Perfect system reliability"})]})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Throughput Consistency"}),b.jsx(tn,{children:"Throughput remains stable across different route scales"})]}),b.jsx(be,{children:o&&o.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:f,children:b.jsxs(Sp,{data:o,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{domain:[0,"dataMax"],tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(c,p)=>[`${c} RPS`,"Throughput"],labelFormatter:c=>`${c} routes`})}),b.jsx(ft,{dataKey:"throughput",type:"monotone",fill:"#8b5cf6",fillOpacity:.4,stroke:"#8b5cf6",strokeWidth:2})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Usage"}),b.jsx(tn,{children:"Memory scaling patterns for Gateway and Proxy components"})]}),b.jsx(be,{children:i&&i.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:f,children:b.jsxs(Sp,{data:i,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}MB`}),b.jsx(sr,{content:b.jsx(zn,{})}),b.jsx(ft,{dataKey:"gateway",stackId:"memory",type:"monotone",fill:"#a855f7",stroke:"#a855f7"}),b.jsx(ft,{dataKey:"proxy",stackId:"memory",type:"monotone",fill:"#4f46e5",stroke:"#4f46e5"})]})})]}):b.jsx(Bn,{})})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Request RTT Distribution"}),b.jsx(tn,{children:"Latency percentiles at 1000 routes (worst case)"})]}),b.jsx(be,{children:l?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:f,children:b.jsxs(GS,{data:l,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"percentile",tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}ms`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(c,p)=>[`${c}ms`,"Latency"]})}),b.jsx(Vr,{dataKey:"value",fill:"#6366f1",radius:[4,4,0,0]})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Efficiency"}),b.jsx(tn,{children:"Memory usage per route shows how efficiently memory scales with route count"})]}),b.jsx(be,{children:u&&u.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:f,children:b.jsxs(e1,{data:u,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}MB`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(c,p)=>[`${c}MB per route`,p==="gatewayPerRoute"?"Gateway":p==="proxyPerRoute"?"Proxy":"Total"],labelFormatter:c=>`${c} routes`})}),b.jsx(Rt,{dataKey:"totalPerRoute",type:"monotone",stroke:"#8b5cf6",strokeWidth:3,dot:{fill:"#8b5cf6",strokeWidth:2,r:4}}),b.jsx(Rt,{dataKey:"gatewayPerRoute",type:"monotone",stroke:"#a855f7",strokeWidth:2,strokeDasharray:"5 5",dot:{fill:"#a855f7",strokeWidth:2,r:3}}),b.jsx(Rt,{dataKey:"proxyPerRoute",type:"monotone",stroke:"#4f46e5",strokeWidth:2,strokeDasharray:"3 3",dot:{fill:"#4f46e5",strokeWidth:2,r:3}})]})})]}):b.jsx(Bn,{})})]})]})]})},Eoe=({latencyPercentileComparison:e,benchmarkResults:t})=>{const n=e.filter(c=>c.phase==="scaling-up").map(c=>({routes:c.routes,p50:Number(c.p50.toFixed(1)),p95:Number(c.p95.toFixed(1)),p99:Number(c.p99.toFixed(1))})),a=(()=>{if(e&&e.length>0){const c=e.filter(p=>p.phase==="scaling-up").sort((p,d)=>d.routes-p.routes)[0];if(c)return[{percentile:"P50",value:Number(c.p50.toFixed(1)),category:"Median",status:"excellent"},{percentile:"P75",value:Number(c.p75.toFixed(1)),category:"75th",status:"excellent"},{percentile:"P90",value:Number(c.p90.toFixed(1)),category:"90th",status:"good"},{percentile:"P95",value:Number(c.p95.toFixed(1)),category:"95th",status:"watch"},{percentile:"P99",value:Number(c.p99.toFixed(1)),category:"99th",status:"alert"}]}if(t&&t.length>0){const c=t.filter(p=>p.phase==="scaling-up").sort((p,d)=>d.routes-p.routes)[0];if(c&&c.latency&&c.latency.percentiles){const p=c.latency.percentiles;return[{percentile:"P50",value:Number((p.p50/1e3).toFixed(1)),category:"Median",status:"excellent"},{percentile:"P75",value:Number((p.p75/1e3).toFixed(1)),category:"75th",status:"excellent"},{percentile:"P90",value:Number((p.p90/1e3).toFixed(1)),category:"90th",status:"good"},{percentile:"P95",value:Number((p.p95/1e3).toFixed(1)),category:"95th",status:"watch"},{percentile:"P99",value:Number((p.p99/1e3).toFixed(1)),category:"99th",status:"alert"}]}}return null})(),o=t.filter(c=>c.phase==="scaling-up").map(c=>({routes:c.routes,mean:Number((c.latency.mean/1e3).toFixed(1)),p95:Number((c.latency.percentiles.p95/1e3).toFixed(1)),ratio:Number((c.latency.percentiles.p95/c.latency.mean).toFixed(1))})),s=e&&e.length>0?e.filter(c=>c.phase==="scaling-up").sort((c,p)=>c.routes-p.routes).map(c=>({scale:`${c.routes} Routes`,p50:Number(c.p50.toFixed(1)),p95:Number(c.p95.toFixed(1)),p99:Number(c.p99.toFixed(1))})):null,l={p50:{label:"P50 (Median)",color:"#8b5cf6"},p95:{label:"P95",color:"#6366f1"},p99:{label:"P99",color:"#4f46e5"},mean:{label:"Mean",color:"#a855f7"},ratio:{label:"P95/Mean Ratio",color:"#7c3aed"}},f=(()=>{if(n.length===0)return{medianLatency:0,p95Latency:0,p99Latency:0,consistencyRatio:0};const c=n[n.length-1],p=o.length>0?o.reduce((d,h)=>d+h.ratio,0)/o.length:0;return{medianLatency:(c==null?void 0:c.p50)||0,p95Latency:(c==null?void 0:c.p95)||0,p99Latency:(c==null?void 0:c.p99)||0,consistencyRatio:p}})();return b.jsxs("div",{className:"space-y-6",children:[b.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Median RTT"}),b.jsx(gT,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[f.medianLatency.toFixed(1),"ms"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Consistent across all scales"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"P95 RTT"}),b.jsx(hT,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[f.p95Latency.toFixed(1),"ms"]}),b.jsxs("p",{className:"text-xs text-muted-foreground",children:["95% of requests under ",f.p95Latency.toFixed(0),"ms"]})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Tail RTT"}),b.jsx(xT,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[f.p99Latency.toFixed(1),"ms"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"P99 RTT (1% of requests)"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Consistency"}),b.jsx(G4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[f.consistencyRatio.toFixed(1),":1"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"P95/Mean ratio"})]})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Request RTT Scaling Behavior"}),b.jsx(tn,{children:"How key percentiles perform as route count increases"})]}),b.jsx(be,{children:n&&n.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:l,children:b.jsxs(Sp,{data:n,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}ms`}),b.jsx(sr,{content:b.jsx(zn,{labelFormatter:c=>`${c} routes`})}),b.jsx(ft,{dataKey:"p99",stackId:"latency",type:"monotone",fill:"#4f46e5",fillOpacity:.3,stroke:"#4f46e5",strokeWidth:1}),b.jsx(ft,{dataKey:"p95",stackId:"latency",type:"monotone",fill:"#6366f1",fillOpacity:.4,stroke:"#6366f1",strokeWidth:2}),b.jsx(ft,{dataKey:"p50",stackId:"latency",type:"monotone",fill:"#8b5cf6",fillOpacity:.6,stroke:"#8b5cf6",strokeWidth:3})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Request RTT Distribution"}),b.jsx(tn,{children:"Percentile breakdown at 1000 routes (worst case scenario)"})]}),b.jsx(be,{children:a?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:l,children:b.jsxs(GS,{data:a,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"percentile",tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}ms`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(c,p)=>[`${c}ms`,"RTT"],labelFormatter:c=>`${c} Percentile`})}),b.jsx(Vr,{dataKey:"value",fill:"#6366f1",radius:[4,4,0,0]})]})})]}):b.jsx(Bn,{})})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Request RTT Consistency"}),b.jsx(tn,{children:"P95/Mean ratio shows how predictable RTT is"})]}),b.jsx(be,{children:o&&o.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:l,children:b.jsxs(e1,{data:o,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{yAxisId:"ratio",orientation:"left",tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}x`}),b.jsx(yt,{yAxisId:"latency",orientation:"right",tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}ms`}),b.jsx(sr,{content:b.jsx(zn,{labelFormatter:c=>`${c} routes`})}),b.jsx(Rt,{yAxisId:"latency",dataKey:"mean",type:"monotone",stroke:"#a855f7",strokeWidth:2,dot:{fill:"#a855f7",strokeWidth:2,r:3}}),b.jsx(Rt,{yAxisId:"ratio",dataKey:"ratio",type:"monotone",stroke:"#7c3aed",strokeWidth:3,strokeDasharray:"5 5",dot:{fill:"#7c3aed",strokeWidth:2,r:4}})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Performance Summary"}),b.jsx(tn,{children:"RTT performance at different scales"})]}),b.jsx(be,{children:s&&s.length>0?b.jsx("div",{className:"space-y-4",children:s.map((c,p)=>b.jsx("div",{className:"flex items-center justify-between p-3 bg-muted/30 rounded-lg",children:b.jsxs("div",{className:"space-y-1",children:[b.jsx("p",{className:"font-medium",children:c.scale}),b.jsxs("div",{className:"flex space-x-4 text-sm text-muted-foreground",children:[b.jsxs("span",{children:["P50: ",c.p50,"ms"]}),b.jsxs("span",{children:["P95: ",c.p95,"ms"]}),b.jsxs("span",{children:["P99: ",c.p99,"ms"]})]})]})},p))}):b.jsx(Bn,{})})]})]})]})},Toe=({resourceTrends:e,benchmarkResults:t})=>{const n=t.filter(p=>p.phase==="scaling-up").map(p=>({routes:p.routes,gateway:Math.round(p.resources.envoyGateway.memory.mean),proxy:Math.round(p.resources.envoyProxy.memory.mean),total:Math.round(p.resources.envoyGateway.memory.mean+p.resources.envoyProxy.memory.mean)})),r=t.filter(p=>p.phase==="scaling-up").map(p=>({routes:p.routes,gatewayMean:Number(p.resources.envoyGateway.cpu.mean.toFixed(1)),gatewayMax:Number(p.resources.envoyGateway.cpu.max.toFixed(1)),proxyMean:Number(p.resources.envoyProxy.cpu.mean.toFixed(1)),proxyMax:Number(p.resources.envoyProxy.cpu.max.toFixed(1))})),a=n.map(p=>({routes:p.routes,gatewayPerRoute:Number((p.gateway/p.routes).toFixed(2)),proxyPerRoute:Number((p.proxy/p.routes).toFixed(2)),totalPerRoute:Number((p.total/p.routes).toFixed(2))})),o=()=>{if(n.length===0)return[{component:"Gateway",min:0,max:0,scaling:"No Data",efficiency:"Unknown"},{component:"Proxy",min:0,max:0,scaling:"No Data",efficiency:"Unknown"},{component:"Total",min:0,max:0,scaling:"No Data",efficiency:"Unknown"}];const p=n.map(m=>m.gateway),d=n.map(m=>m.proxy),h=n.map(m=>m.total);return[{component:"Gateway",min:Math.min(...p),max:Math.max(...p),scaling:i(n.map(m=>m.routes),p),efficiency:s(n.map(m=>m.routes),p)},{component:"Proxy",min:Math.min(...d),max:Math.max(...d),scaling:i(n.map(m=>m.routes),d),efficiency:s(n.map(m=>m.routes),d)},{component:"Total",min:Math.min(...h),max:Math.max(...h),scaling:i(n.map(m=>m.routes),h),efficiency:s(n.map(m=>m.routes),h)}]},i=(p,d)=>{if(p.length<3)return"Insufficient Data";const h=p.length,m=p.reduce((N,M)=>N+M,0),g=d.reduce((N,M)=>N+M,0),v=p.reduce((N,M,I)=>N+M*d[I],0),y=p.reduce((N,M)=>N+M*M,0),x=d.reduce((N,M)=>N+M*M,0),P=h*v-m*g,w=Math.sqrt((h*y-m*m)*(h*x-g*g)),S=w===0?0:P/w,O=S*S,_=[];for(let N=1;N<d.length;N++)_.push(d[N]-d[N-1]);const A=_.reduce((N,M)=>N+M,0)/_.length,j=_.reduce((N,M)=>N+Math.pow(M-A,2),0)/_.length,E=Math.sqrt(j),T=A===0?0:Math.abs(E/A);return O>.95?"Highly Linear":O>.85?"Linear":T>1.5?"Step-wise":O>.7?"Moderately Linear":"Variable"},s=(p,d)=>{if(p.length<2)return"Unknown";const h=p.map((w,S)=>d[S]/w),m=h[0],g=h[h.length-1],v=(m-g)/m,y=h.reduce((w,S)=>w+S,0)/h.length,x=h.reduce((w,S)=>w+Math.pow(S-y,2),0)/h.length,P=Math.sqrt(x)/y;return v>.3?"Excellent":v>.1||P<.2?"Good":P<.4?"Moderate":"Variable"},l=o(),u={gateway:{label:"Gateway",color:"#a855f7"},proxy:{label:"Proxy",color:"#4f46e5"},gatewayMean:{label:"Gateway Mean",color:"#8b5cf6"},gatewayMax:{label:"Gateway Peak",color:"#c084fc"},proxyMean:{label:"Proxy Mean",color:"#6366f1"},proxyMax:{label:"Proxy Peak",color:"#818cf8"}},c=(()=>{if(n.length===0||r.length===0||a.length===0)return{gatewayMemoryRange:"0-0MB",proxyMemoryRange:"0-0MB",peakCPU:0,memoryPerRouteAtScale:0};const p=n.map(S=>S.gateway),d=n.map(S=>S.proxy),h=Math.min(...p),m=Math.max(...p),g=Math.min(...d),v=Math.max(...d),y=r.flatMap(S=>[S.gatewayMax,S.proxyMax]),x=Math.max(...y),P=a[a.length-1],w=(P==null?void 0:P.totalPerRoute)||0;return{gatewayMemoryRange:`${h}-${m}MB`,proxyMemoryRange:`${g}-${v}MB`,peakCPU:Math.round(x),memoryPerRouteAtScale:w}})();return b.jsxs("div",{className:"space-y-6",children:[b.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Gateway Memory"}),b.jsx(W4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:c.gatewayMemoryRange}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Linear scaling pattern"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Proxy Memory"}),b.jsx(K4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:c.proxyMemoryRange}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Efficient step-wise scaling"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Peak CPU"}),b.jsx(z4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[c.peakCPU,"%"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Brief spikes, stable avg"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Efficiency"}),b.jsx(X4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[c.memoryPerRouteAtScale.toFixed(2),"MB"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Memory per route at scale"})]})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Scaling"}),b.jsx(tn,{children:"How Gateway and Proxy memory usage grows with route count"})]}),b.jsx(be,{children:n&&n.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:u,children:b.jsxs(Sp,{data:n,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:p=>`${p}MB`}),b.jsx(sr,{content:b.jsx(zn,{labelFormatter:p=>`${p} routes`})}),b.jsx(ft,{dataKey:"gateway",stackId:"memory",type:"monotone",fill:"#a855f7",fillOpacity:.6,stroke:"#a855f7",strokeWidth:2}),b.jsx(ft,{dataKey:"proxy",stackId:"memory",type:"monotone",fill:"#4f46e5",fillOpacity:.6,stroke:"#4f46e5",strokeWidth:2})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"CPU Usage Patterns"}),b.jsx(tn,{children:"Mean vs peak CPU usage showing burst characteristics."})]}),b.jsx(be,{children:r&&r.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:u,children:b.jsxs(Poe,{data:r,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:p=>`${p}%`}),b.jsx(sr,{content:b.jsx(zn,{labelFormatter:p=>`${p} routes`})}),b.jsx(ft,{dataKey:"gatewayMax",type:"monotone",fill:"#c084fc",fillOpacity:.1,stroke:"#c084fc",strokeWidth:1,strokeDasharray:"2 2"}),b.jsx(ft,{dataKey:"proxyMax",type:"monotone",fill:"#818cf8",fillOpacity:.1,stroke:"#818cf8",strokeWidth:1,strokeDasharray:"2 2"}),b.jsx(Rt,{dataKey:"gatewayMean",type:"monotone",stroke:"#8b5cf6",strokeWidth:3,dot:{fill:"#8b5cf6",strokeWidth:2,r:4}}),b.jsx(Rt,{dataKey:"proxyMean",type:"monotone",stroke:"#6366f1",strokeWidth:3,dot:{fill:"#6366f1",strokeWidth:2,r:4}})]})})]}):b.jsx(Bn,{})})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Efficiency"}),b.jsx(tn,{children:"Memory usage per route shows how efficiently memory scales with route count"})]}),b.jsx(be,{children:a&&a.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:u,children:b.jsxs(e1,{data:a,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:p=>`${p}MB`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(p,d)=>[`${p}MB per route`,d==="gatewayPerRoute"?"Gateway":d==="proxyPerRoute"?"Proxy":"Total"],labelFormatter:p=>`${p} routes`})}),b.jsx(Rt,{dataKey:"totalPerRoute",type:"monotone",stroke:"#8b5cf6",strokeWidth:3,dot:{fill:"#8b5cf6",strokeWidth:2,r:4}}),b.jsx(Rt,{dataKey:"gatewayPerRoute",type:"monotone",stroke:"#a855f7",strokeWidth:2,strokeDasharray:"5 5",dot:{fill:"#a855f7",strokeWidth:2,r:3}}),b.jsx(Rt,{dataKey:"proxyPerRoute",type:"monotone",stroke:"#4f46e5",strokeWidth:2,strokeDasharray:"3 3",dot:{fill:"#4f46e5",strokeWidth:2,r:3}})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Scaling Summary"}),b.jsx(tn,{children:"Memory usage characteristics and scaling patterns across different components"})]}),b.jsx(be,{children:b.jsx("div",{className:"space-y-4",children:l.map((p,d)=>b.jsxs("div",{className:"flex items-center justify-between p-3 bg-muted/30 rounded-lg",children:[b.jsxs("div",{className:"space-y-1",children:[b.jsx("p",{className:"font-medium",children:p.component}),b.jsxs("div",{className:"flex space-x-4 text-sm text-muted-foreground",children:[b.jsxs("span",{children:["Range: ",p.min,"-",p.max,"MB"]}),b.jsxs("span",{children:["Pattern: ",p.scaling]})]})]}),b.jsxs("div",{className:"flex items-center space-x-2",children:[b.jsx(G4,{className:"h-4 w-4 text-green-600"}),b.jsx("span",{className:"text-sm font-medium text-green-700",children:p.efficiency})]})]},d))})})]})]})]})};var rh="rovingFocusGroup.onEntryFocus",joe={bubbles:!1,cancelable:!0},Lu="RovingFocusGroup",[Dy,qS,$oe]=g6(Lu),[Noe,VS]=ps(Lu,[$oe]),[Moe,Roe]=Noe(Lu),KS=k.forwardRef((e,t)=>b.jsx(Dy.Provider,{scope:e.__scopeRovingFocusGroup,children:b.jsx(Dy.Slot,{scope:e.__scopeRovingFocusGroup,children:b.jsx(Ioe,{...e,ref:t})})}));KS.displayName=Lu;var Ioe=k.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:o,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:f=!1,...c}=e,p=k.useRef(null),d=Ye(t,p),h=R0(o),[m,g]=xf({prop:i,defaultProp:s??null,onChange:l,caller:Lu}),[v,y]=k.useState(!1),x=Aa(u),P=qS(n),w=k.useRef(!1),[S,O]=k.useState(0);return k.useEffect(()=>{const _=p.current;if(_)return _.addEventListener(rh,x),()=>_.removeEventListener(rh,x)},[x]),b.jsx(Moe,{scope:n,orientation:r,dir:h,loop:a,currentTabStopId:m,onItemFocus:k.useCallback(_=>g(_),[g]),onItemShiftTab:k.useCallback(()=>y(!0),[]),onFocusableItemAdd:k.useCallback(()=>O(_=>_+1),[]),onFocusableItemRemove:k.useCallback(()=>O(_=>_-1),[]),children:b.jsx(Ee.div,{tabIndex:v||S===0?-1:0,"data-orientation":r,...c,ref:d,style:{outline:"none",...e.style},onMouseDown:pe(e.onMouseDown,()=>{w.current=!0}),onFocus:pe(e.onFocus,_=>{const A=!w.current;if(_.target===_.currentTarget&&A&&!v){const j=new CustomEvent(rh,joe);if(_.currentTarget.dispatchEvent(j),!j.defaultPrevented){const E=P().filter(R=>R.focusable),T=E.find(R=>R.active),N=E.find(R=>R.id===m),I=[T,N,...E].filter(Boolean).map(R=>R.ref.current);QS(I,f)}}w.current=!1}),onBlur:pe(e.onBlur,()=>y(!1))})})}),XS="RovingFocusGroupItem",YS=k.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:o,children:i,...s}=e,l=Tu(),u=o||l,f=Roe(XS,n),c=f.currentTabStopId===u,p=qS(n),{onFocusableItemAdd:d,onFocusableItemRemove:h,currentTabStopId:m}=f;return k.useEffect(()=>{if(r)return d(),()=>h()},[r,d,h]),b.jsx(Dy.ItemSlot,{scope:n,id:u,focusable:r,active:a,children:b.jsx(Ee.span,{tabIndex:c?0:-1,"data-orientation":f.orientation,...s,ref:t,onMouseDown:pe(e.onMouseDown,g=>{r?f.onItemFocus(u):g.preventDefault()}),onFocus:pe(e.onFocus,()=>f.onItemFocus(u)),onKeyDown:pe(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){f.onItemShiftTab();return}if(g.target!==g.currentTarget)return;const v=Foe(g,f.orientation,f.dir);if(v!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let x=p().filter(P=>P.focusable).map(P=>P.ref.current);if(v==="last")x.reverse();else if(v==="prev"||v==="next"){v==="prev"&&x.reverse();const P=x.indexOf(g.currentTarget);x=f.loop?zoe(x,P+1):x.slice(P+1)}setTimeout(()=>QS(x))}}),children:typeof i=="function"?i({isCurrentTabStop:c,hasTabStop:m!=null}):i})})});YS.displayName=XS;var Doe={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Loe(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Foe(e,t,n){const r=Loe(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Doe[r]}function QS(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function zoe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Boe=KS,Hoe=YS;function Goe(e,t){return k.useReducer((n,r)=>t[n][r]??n,e)}var t1=e=>{const{present:t,children:n}=e,r=Uoe(t),a=typeof n=="function"?n({present:r.isPresent}):k.Children.only(n),o=Ye(r.ref,Woe(a));return typeof n=="function"||r.isPresent?k.cloneElement(a,{ref:o}):null};t1.displayName="Presence";function Uoe(e){const[t,n]=k.useState(),r=k.useRef(null),a=k.useRef(e),o=k.useRef("none"),i=e?"mounted":"unmounted",[s,l]=Goe(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return k.useEffect(()=>{const u=Oc(r.current);o.current=s==="mounted"?u:"none"},[s]),jt(()=>{const u=r.current,f=a.current;if(f!==e){const p=o.current,d=Oc(u);e?l("MOUNT"):d==="none"||(u==null?void 0:u.display)==="none"?l("UNMOUNT"):l(f&&p!==d?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,l]),jt(()=>{if(t){let u;const f=t.ownerDocument.defaultView??window,c=d=>{const m=Oc(r.current).includes(d.animationName);if(d.target===t&&m&&(l("ANIMATION_END"),!a.current)){const g=t.style.animationFillMode;t.style.animationFillMode="forwards",u=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=g)})}},p=d=>{d.target===t&&(o.current=Oc(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",c),t.addEventListener("animationend",c),()=>{f.clearTimeout(u),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",c),t.removeEventListener("animationend",c)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:k.useCallback(u=>{r.current=u?getComputedStyle(u):null,n(u)},[])}}function Oc(e){return(e==null?void 0:e.animationName)||"none"}function Woe(e){var r,a;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=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var zd="Tabs",[qoe,dse]=ps(zd,[VS]),ZS=VS(),[Voe,n1]=qoe(zd),JS=k.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:o,orientation:i="horizontal",dir:s,activationMode:l="automatic",...u}=e,f=R0(s),[c,p]=xf({prop:r,onChange:a,defaultProp:o??"",caller:zd});return b.jsx(Voe,{scope:n,baseId:Tu(),value:c,onValueChange:p,orientation:i,dir:f,activationMode:l,children:b.jsx(Ee.div,{dir:f,"data-orientation":i,...u,ref:t})})});JS.displayName=zd;var eO="TabsList",tO=k.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,o=n1(eO,n),i=ZS(n);return b.jsx(Boe,{asChild:!0,...i,orientation:o.orientation,dir:o.dir,loop:r,children:b.jsx(Ee.div,{role:"tablist","aria-orientation":o.orientation,...a,ref:t})})});tO.displayName=eO;var nO="TabsTrigger",rO=k.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...o}=e,i=n1(nO,n),s=ZS(n),l=iO(i.baseId,r),u=sO(i.baseId,r),f=r===i.value;return b.jsx(Hoe,{asChild:!0,...s,focusable:!a,active:f,children:b.jsx(Ee.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":u,"data-state":f?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:l,...o,ref:t,onMouseDown:pe(e.onMouseDown,c=>{!a&&c.button===0&&c.ctrlKey===!1?i.onValueChange(r):c.preventDefault()}),onKeyDown:pe(e.onKeyDown,c=>{[" ","Enter"].includes(c.key)&&i.onValueChange(r)}),onFocus:pe(e.onFocus,()=>{const c=i.activationMode!=="manual";!f&&!a&&c&&i.onValueChange(r)})})})});rO.displayName=nO;var aO="TabsContent",oO=k.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:o,...i}=e,s=n1(aO,n),l=iO(s.baseId,r),u=sO(s.baseId,r),f=r===s.value,c=k.useRef(f);return k.useEffect(()=>{const p=requestAnimationFrame(()=>c.current=!1);return()=>cancelAnimationFrame(p)},[]),b.jsx(t1,{present:a||f,children:({present:p})=>b.jsx(Ee.div,{"data-state":f?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":l,hidden:!p,id:u,tabIndex:0,...i,ref:t,style:{...e.style,animationDuration:c.current?"0s":void 0},children:p&&o})})});oO.displayName=aO;function iO(e,t){return`${e}-trigger-${t}`}function sO(e,t){return`${e}-content-${t}`}var Koe=JS,lO=tO,uO=rO,cO=oO;const Xoe=Koe,fO=k.forwardRef(({className:e,...t},n)=>b.jsx(lO,{ref:n,className:Oe("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));fO.displayName=lO.displayName;const Bc=k.forwardRef(({className:e,...t},n)=>b.jsx(uO,{ref:n,className:Oe("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",e),...t}));Bc.displayName=uO.displayName;const Hc=k.forwardRef(({className:e,...t},n)=>b.jsx(cO,{ref:n,className:Oe("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));Hc.displayName=cO.displayName;const Yoe={metadata:{version:"1.3.3",runId:"1.3.3-1750189826778",date:"2025-05-09",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.3.3",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.3.3/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5302.05,totalRequests:159067,latency:{min:384,mean:7440,max:68399,pstdev:12191,percentiles:{p50:3692,p75:5903,p80:6670,p90:10777,p95:47519,p99:54405,p999:59346}},resources:{envoyGateway:{memory:{min:126.17,max:126.17,mean:126.17},cpu:{min:.95,max:.95,mean:.95}},envoyProxy:{memory:{min:25.93,max:25.93,mean:25.93},cpu:{min:30.42,max:30.42,mean:30.42}}},poolOverflow:358,upstreamConnections:42},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5270.25,totalRequests:158112,latency:{min:392,mean:7067,max:77467,pstdev:12552,percentiles:{p50:3330,p75:5225,p80:5887,p90:8906,p95:49113,p99:55103,p999:60295}},resources:{envoyGateway:{memory:{min:145.89,max:145.89,mean:145.89},cpu:{min:1.66,max:1.66,mean:1.66}},envoyProxy:{memory:{min:32.1,max:32.1,mean:32.1},cpu:{min:60.71,max:60.71,mean:60.71}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5307.61,totalRequests:159230,latency:{min:387,mean:7350,max:76185,pstdev:12732,percentiles:{p50:3508,p75:5524,p80:6220,p90:9652,p95:49100,p99:55363,p999:62654}},resources:{envoyGateway:{memory:{min:153.05,max:153.05,mean:153.05},cpu:{min:3.08,max:3.08,mean:3.08}},envoyProxy:{memory:{min:38.29,max:38.29,mean:38.29},cpu:{min:91.5,max:91.5,mean:91.5}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5139.63,totalRequests:154189,latency:{min:390,mean:7376,max:78098,pstdev:12993,percentiles:{p50:3429,p75:5431,p80:6116,p90:9633,p95:49809,p99:56043,p999:64651}},resources:{envoyGateway:{memory:{min:152.28,max:152.28,mean:152.28},cpu:{min:15.6,max:15.6,mean:15.6}},envoyProxy:{memory:{min:56.33,max:56.33,mean:56.33},cpu:{min:124.15,max:124.15,mean:124.15}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5169.8,totalRequests:155094,latency:{min:374,mean:7385,max:105918,pstdev:13085,percentiles:{p50:3382,p75:5336,p80:6024,p90:9658,p95:50104,p99:56487,p999:66418}},resources:{envoyGateway:{memory:{min:166.29,max:166.29,mean:166.29},cpu:{min:28.13,max:28.13,mean:28.13}},envoyProxy:{memory:{min:76.53,max:76.53,mean:76.53},cpu:{min:157.45,max:157.45,mean:157.45}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:4963.46,totalRequests:148908,latency:{min:374,mean:7335,max:94580,pstdev:13294,percentiles:{p50:3255,p75:5279,p80:5998,p90:9532,p95:50294,p99:58908,p999:70729}},resources:{envoyGateway:{memory:{min:199.79,max:199.79,mean:199.79},cpu:{min:61.67,max:61.67,mean:61.67}},envoyProxy:{memory:{min:120.77,max:120.77,mean:120.77},cpu:{min:195.1,max:195.1,mean:195.1}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5200.07,totalRequests:156001,latency:{min:395,mean:7530,max:81936,pstdev:13142,percentiles:{p50:3438,p75:5497,p80:6226,p90:10218,p95:50345,p99:56436,p999:61919}},resources:{envoyGateway:{memory:{min:221.87,max:221.87,mean:221.87},cpu:{min:114.77,max:114.77,mean:114.77}},envoyProxy:{memory:{min:121.27,max:121.27,mean:121.27},cpu:{min:356.4,max:356.4,mean:356.4}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5229.66,totalRequests:156893,latency:{min:368,mean:6911,max:72273,pstdev:12396,percentiles:{p50:3227,p75:5075,p80:5695,p90:8751,p95:48676,p99:54822,p999:59865}},resources:{envoyGateway:{memory:{min:221.8,max:221.8,mean:221.8},cpu:{min:114.13,max:114.13,mean:114.13}},envoyProxy:{memory:{min:121.22,max:121.22,mean:121.22},cpu:{min:325.9,max:325.9,mean:325.9}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5099.34,totalRequests:152980,latency:{min:357,mean:6637,max:68100,pstdev:12012,percentiles:{p50:3167,p75:4972,p80:5580,p90:8302,p95:47650,p99:53993,p999:59299}},resources:{envoyGateway:{memory:{min:182.69,max:182.69,mean:182.69},cpu:{min:113.02,max:113.02,mean:113.02}},envoyProxy:{memory:{min:121.2,max:121.2,mean:121.2},cpu:{min:295.3,max:295.3,mean:295.3}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5145.13,totalRequests:154357,latency:{min:379,mean:7234,max:111517,pstdev:12814,percentiles:{p50:3381,p75:5331,p80:5993,p90:9269,p95:49465,p99:55562,p999:64862}},resources:{envoyGateway:{memory:{min:159.09,max:159.09,mean:159.09},cpu:{min:102.57,max:102.57,mean:102.57}},envoyProxy:{memory:{min:121.08,max:121.08,mean:121.08},cpu:{min:263.29,max:263.29,mean:263.29}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5130.95,totalRequests:153929,latency:{min:365,mean:7098,max:95834,pstdev:12843,percentiles:{p50:3267,p75:5110,p80:5752,p90:8975,p95:49702,p99:56408,p999:67330}},resources:{envoyGateway:{memory:{min:163.91,max:163.91,mean:163.91},cpu:{min:91.18,max:91.18,mean:91.18}},envoyProxy:{memory:{min:120.91,max:120.91,mean:120.91},cpu:{min:230.77,max:230.77,mean:230.77}}},poolOverflow:362,upstreamConnections:38}]},Qoe={metadata:{version:"1.4.0",runId:"1.4.0-1750189826781",date:"2025-05-14",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.4.0",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.4.0/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scaling up httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-up",throughput:5433.23,totalRequests:163e3,latency:{min:367,mean:6485,max:65673,pstdev:11042,percentiles:{p50:3222,p75:5166,p80:5879,p90:9253,p95:43970,p99:52201,p999:56854}},resources:{envoyGateway:{memory:{min:128.52,max:156.24,mean:150.28},cpu:{min:.13,max:.67,mean:.44}},envoyProxy:{memory:{min:0,max:27.01,mean:21.73},cpu:{min:0,max:72.36,mean:2.32}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-up",throughput:5340.69,totalRequests:160221,latency:{min:355,mean:6582,max:88674,pstdev:11849,percentiles:{p50:3134,p75:4984,p80:5597,p90:8545,p95:46972,p99:53663,p999:59625}},resources:{envoyGateway:{memory:{min:155.3,max:169.25,mean:159.23},cpu:{min:.27,max:4.73,mean:.91}},envoyProxy:{memory:{min:26.64,max:33.18,mean:32.22},cpu:{min:0,max:99.91,mean:11.1}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling up httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-up",throughput:5205.41,totalRequests:156162,latency:{min:384,mean:4221,max:63500,pstdev:9204,percentiles:{p50:2039,p75:3063,p80:3399,p90:4605,p95:7844,p99:49758,p999:54032}},resources:{envoyGateway:{memory:{min:156.77,max:174.36,mean:168.53},cpu:{min:.4,max:8.8,mean:1.37}},envoyProxy:{memory:{min:32.83,max:37.05,mean:36.58},cpu:{min:0,max:99.97,mean:4.39}}},poolOverflow:377,upstreamConnections:23},{testName:"scaling up httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-up",throughput:5271.84,totalRequests:158157,latency:{min:393,mean:7209,max:93327,pstdev:12640,percentiles:{p50:3281,p75:5443,p80:6241,p90:10258,p95:48494,p99:55793,p999:65497}},resources:{envoyGateway:{memory:{min:179.66,max:187.8,mean:184.81},cpu:{min:.53,max:27.13,mean:4.87}},envoyProxy:{memory:{min:53.06,max:57.31,mean:56.58},cpu:{min:0,max:99.96,mean:15.82}}},poolOverflow:360,upstreamConnections:40},{testName:"scaling up httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-up",throughput:5351.64,totalRequests:160555,latency:{min:370,mean:6797,max:91549,pstdev:12276,percentiles:{p50:3145,p75:5052,p80:5728,p90:8916,p95:47915,p99:54947,p999:65368}},resources:{envoyGateway:{memory:{min:186.4,max:200.27,mean:195.8},cpu:{min:.4,max:26.07,mean:1.71}},envoyProxy:{memory:{min:71.16,max:77.36,mean:77},cpu:{min:0,max:94.88,mean:3.39}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 1000 with 200 routes per hostname",routes:1e3,routesPerHostname:200,phase:"scaling-up",throughput:5239.17,totalRequests:157179,latency:{min:367,mean:6908,max:97939,pstdev:12608,percentiles:{p50:3176,p75:5046,p80:5680,p90:8770,p95:48472,p99:56449,p999:68317}},resources:{envoyGateway:{memory:{min:220.03,max:237.27,mean:233.38},cpu:{min:.07,max:1.2,mean:.78}},envoyProxy:{memory:{min:129.13,max:129.59,mean:129.34},cpu:{min:0,max:74.43,mean:2.24}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-down",throughput:5409.79,totalRequests:162296,latency:{min:386,mean:6690,max:71688,pstdev:12144,percentiles:{p50:3075,p75:4937,p80:5610,p90:8727,p95:48252,p99:54595,p999:59408}},resources:{envoyGateway:{memory:{min:165.91,max:176.04,mean:168.11},cpu:{min:.67,max:3.73,mean:1.23}},envoyProxy:{memory:{min:123.28,max:123.45,mean:123.35},cpu:{min:0,max:99.72,mean:9.08}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-down",throughput:5480.62,totalRequests:164426,latency:{min:378,mean:7119,max:85032,pstdev:12404,percentiles:{p50:3390,p75:5340,p80:6015,p90:9300,p95:48457,p99:55005,p999:60284}},resources:{envoyGateway:{memory:{min:165.36,max:171.88,mean:169.47},cpu:{min:.6,max:6.8,mean:1.44}},envoyProxy:{memory:{min:123.27,max:123.97,mean:123.42},cpu:{min:0,max:100.05,mean:11.5}}},poolOverflow:359,upstreamConnections:41},{testName:"scaling down httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-down",throughput:5413.63,totalRequests:162409,latency:{min:357,mean:6664,max:77307,pstdev:12030,percentiles:{p50:3140,p75:4935,p80:5560,p90:8456,p95:47661,p99:54544,p999:61110}},resources:{envoyGateway:{memory:{min:170.86,max:186.68,mean:173.53},cpu:{min:.67,max:67.27,mean:7.29}},envoyProxy:{memory:{min:123.27,max:129.61,mean:124.04},cpu:{min:0,max:100,mean:5.99}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-down",throughput:5356.13,totalRequests:160684,latency:{min:376,mean:6544,max:86540,pstdev:11908,percentiles:{p50:3079,p75:4927,p80:5554,p90:8360,p95:47069,p99:54265,p999:62601}},resources:{envoyGateway:{memory:{min:176.87,max:192.99,mean:189.97},cpu:{min:.6,max:73.6,mean:5.05}},envoyProxy:{memory:{min:129.54,max:129.76,mean:129.65},cpu:{min:0,max:100.08,mean:11.45}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling down httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-down",throughput:5339.99,totalRequests:160200,latency:{min:395,mean:6772,max:99700,pstdev:12345,percentiles:{p50:3118,p75:4954,p80:5598,p90:8672,p95:48261,p99:55498,p999:65902}},resources:{envoyGateway:{memory:{min:199.81,max:210.76,mean:205.85},cpu:{min:.4,max:31.13,mean:2.01}},envoyProxy:{memory:{min:129.54,max:129.74,mean:129.6},cpu:{min:0,max:99.87,mean:8.99}}},poolOverflow:362,upstreamConnections:38}]},Zoe={metadata:{version:"1.4.1",runId:"1.4.1-1750189826783",date:"2025-06-04",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.4.1",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.4.1/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scaling up httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-up",throughput:5440.31,totalRequests:163209,latency:{min:335,mean:6565,max:66668,pstdev:11480,percentiles:{p50:3258,p75:5079,p80:5722,p90:8679,p95:45924,p99:53512,p999:58220}},resources:{envoyGateway:{memory:{min:128.02,max:151.26,mean:147.41},cpu:{min:.27,max:.67,mean:.45}},envoyProxy:{memory:{min:0,max:26.92,mean:22.58},cpu:{min:0,max:99.73,mean:6.02}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-up",throughput:5429.88,totalRequests:162900,latency:{min:345,mean:6468,max:70791,pstdev:11793,percentiles:{p50:3170,p75:4794,p80:5311,p90:7534,p95:47400,p99:53536,p999:58034}},resources:{envoyGateway:{memory:{min:151.26,max:170.78,mean:161.92},cpu:{min:.4,max:4.33,mean:.97}},envoyProxy:{memory:{min:26.73,max:33.13,mean:31.63},cpu:{min:0,max:99.94,mean:3.35}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling up httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-up",throughput:5499.86,totalRequests:164996,latency:{min:391,mean:8147,max:99663,pstdev:13319,percentiles:{p50:3957,p75:6308,p80:7120,p90:11799,p95:49942,p99:56190,p999:62709}},resources:{envoyGateway:{memory:{min:161.19,max:165.52,mean:163.96},cpu:{min:.4,max:8.67,mean:1.36}},envoyProxy:{memory:{min:32.98,max:39.18,mean:38.14},cpu:{min:0,max:99.97,mean:8.67}}},poolOverflow:353,upstreamConnections:47},{testName:"scaling up httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-up",throughput:5335.1,totalRequests:160053,latency:{min:365,mean:6734,max:90963,pstdev:12096,percentiles:{p50:3228,p75:5042,p80:5649,p90:8465,p95:47704,p99:54396,p999:61714}},resources:{envoyGateway:{memory:{min:183.87,max:223.25,mean:206.96},cpu:{min:.47,max:79.87,mean:3.9}},envoyProxy:{memory:{min:57.15,max:57.52,mean:57.34},cpu:{min:0,max:99.97,mean:13.49}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-up",throughput:5256.52,totalRequests:157696,latency:{min:389,mean:6320,max:77848,pstdev:11829,percentiles:{p50:2974,p75:4705,p80:5292,p90:7729,p95:47173,p99:54317,p999:64679}},resources:{envoyGateway:{memory:{min:186.16,max:199.19,mean:195.68},cpu:{min:.4,max:1.2,mean:.75}},envoyProxy:{memory:{min:63.26,max:79.43,mean:79.04},cpu:{min:0,max:99.86,mean:17.64}}},poolOverflow:365,upstreamConnections:35},{testName:"scaling up httproutes to 1000 with 200 routes per hostname",routes:1e3,routesPerHostname:200,phase:"scaling-up",throughput:5280.09,totalRequests:158409,latency:{min:387,mean:6871,max:94064,pstdev:12441,percentiles:{p50:3186,p75:5019,p80:5651,p90:8766,p95:48361,p99:55758,p999:67403}},resources:{envoyGateway:{memory:{min:230.81,max:243.68,mean:238.65},cpu:{min:.13,max:1.13,mean:.8}},envoyProxy:{memory:{min:127.63,max:127.86,mean:127.72},cpu:{min:0,max:85.57,mean:6.19}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-down",throughput:5430.18,totalRequests:162909,latency:{min:376,mean:6679,max:79630,pstdev:12142,percentiles:{p50:3147,p75:5015,p80:5630,p90:8374,p95:48377,p99:54654,p999:59858}},resources:{envoyGateway:{memory:{min:164.61,max:169.75,mean:165.39},cpu:{min:.8,max:3.47,mean:1.14}},envoyProxy:{memory:{min:121.22,max:121.61,mean:121.3},cpu:{min:0,max:99.74,mean:8.02}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-down",throughput:5506.49,totalRequests:165195,latency:{min:386,mean:8319,max:85860,pstdev:13567,percentiles:{p50:3951,p75:6305,p80:7155,p90:12741,p95:50714,p99:57303,p999:63928}},resources:{envoyGateway:{memory:{min:165.63,max:175.23,mean:169.06},cpu:{min:.8,max:7.53,mean:1.54}},envoyProxy:{memory:{min:111.91,max:121.36,mean:113.46},cpu:{min:0,max:99.75,mean:7.62}}},poolOverflow:352,upstreamConnections:48},{testName:"scaling down httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-down",throughput:5452.96,totalRequests:163589,latency:{min:395,mean:7694,max:97460,pstdev:12949,percentiles:{p50:3636,p75:5828,p80:6627,p90:10929,p95:49506,p99:55681,p999:62369}},resources:{envoyGateway:{memory:{min:166.64,max:195.48,mean:174.79},cpu:{min:.8,max:38.2,mean:5.63}},envoyProxy:{memory:{min:111.8,max:112.36,mean:111.95},cpu:{min:0,max:35.17,mean:2.77}}},poolOverflow:356,upstreamConnections:44},{testName:"scaling down httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-down",throughput:5360.33,totalRequests:160815,latency:{min:354,mean:6538,max:92344,pstdev:12045,percentiles:{p50:3068,p75:4770,p80:5341,p90:7974,p95:47742,p99:54480,p999:62144}},resources:{envoyGateway:{memory:{min:180.27,max:192.65,mean:189.01},cpu:{min:.67,max:46.53,mean:4.41}},envoyProxy:{memory:{min:127.66,max:127.84,mean:127.72},cpu:{min:0,max:100.03,mean:9.14}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling down httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-down",throughput:5334.03,totalRequests:160024,latency:{min:392,mean:6782,max:132493,pstdev:12373,percentiles:{p50:3182,p75:4977,p80:5586,p90:8359,p95:48365,p99:55252,p999:64712}},resources:{envoyGateway:{memory:{min:203.37,max:217.03,mean:209.04},cpu:{min:.67,max:5.67,mean:1.33}},envoyProxy:{memory:{min:127.65,max:127.84,mean:127.72},cpu:{min:0,max:99.86,mean:9.91}}},poolOverflow:362,upstreamConnections:38}]},Joe={metadata:{version:"1.3.2",runId:"1.3.2-1750189826777",date:"2025-03-24",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.3.2",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.3.2/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5203.06,totalRequests:156092,latency:{min:371,mean:6970,max:73949,pstdev:12106,percentiles:{p50:3331,p75:5396,p80:6080,p90:9715,p95:47564,p99:55666,p999:60872}},resources:{envoyGateway:{memory:{min:126.68,max:126.68,mean:126.68},cpu:{min:.99,max:.99,mean:.99}},envoyProxy:{memory:{min:28.17,max:28.17,mean:28.17},cpu:{min:30.49,max:30.49,mean:30.49}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5157.35,totalRequests:154724,latency:{min:380,mean:6752,max:83992,pstdev:12526,percentiles:{p50:3089,p75:4875,p80:5484,p90:8253,p95:49682,p99:55398,p999:61507}},resources:{envoyGateway:{memory:{min:129.05,max:129.05,mean:129.05},cpu:{min:1.79,max:1.79,mean:1.79}},envoyProxy:{memory:{min:32.33,max:32.33,mean:32.33},cpu:{min:61.02,max:61.02,mean:61.02}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5052.19,totalRequests:151566,latency:{min:363,mean:7564,max:72122,pstdev:13492,percentiles:{p50:3384,p75:5472,p80:6191,p90:9941,p95:51320,p99:57128,p999:63107}},resources:{envoyGateway:{memory:{min:146.92,max:146.92,mean:146.92},cpu:{min:3.17,max:3.17,mean:3.17}},envoyProxy:{memory:{min:40.52,max:40.52,mean:40.52},cpu:{min:91.79,max:91.79,mean:91.79}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5101.42,totalRequests:153051,latency:{min:397,mean:6832,max:82624,pstdev:12894,percentiles:{p50:2990,p75:4798,p80:5418,p90:8366,p95:50391,p99:56737,p999:65114}},resources:{envoyGateway:{memory:{min:154.98,max:154.98,mean:154.98},cpu:{min:15.2,max:15.2,mean:15.2}},envoyProxy:{memory:{min:58.7,max:58.7,mean:58.7},cpu:{min:124.54,max:124.54,mean:124.54}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:4948.44,totalRequests:148459,latency:{min:398,mean:7200,max:94949,pstdev:13256,percentiles:{p50:3208,p75:5057,p80:5652,p90:8780,p95:50821,p99:57442,p999:66746}},resources:{envoyGateway:{memory:{min:163.01,max:163.01,mean:163.01},cpu:{min:27.68,max:27.68,mean:27.68}},envoyProxy:{memory:{min:78.9,max:78.9,mean:78.9},cpu:{min:158.2,max:158.2,mean:158.2}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:4933.76,totalRequests:148015,latency:{min:361,mean:7088,max:127959,pstdev:13349,percentiles:{p50:3052,p75:4885,p80:5529,p90:8785,p95:50700,p99:59123,p999:70660}},resources:{envoyGateway:{memory:{min:196.05,max:196.05,mean:196.05},cpu:{min:62.32,max:62.32,mean:62.32}},envoyProxy:{memory:{min:127.19,max:127.19,mean:127.19},cpu:{min:196.79,max:196.79,mean:196.79}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5116.93,totalRequests:153515,latency:{min:387,mean:9017,max:78245,pstdev:15046,percentiles:{p50:3922,p75:6583,p80:7609,p90:16301,p95:54007,p99:59990,p999:67956}},resources:{envoyGateway:{memory:{min:210.06,max:210.06,mean:210.06},cpu:{min:115.56,max:115.56,mean:115.56}},envoyProxy:{memory:{min:110.31,max:110.31,mean:110.31},cpu:{min:358.89,max:358.89,mean:358.89}}},poolOverflow:351,upstreamConnections:49},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:4991.13,totalRequests:149734,latency:{min:391,mean:7071,max:80433,pstdev:12841,percentiles:{p50:3199,p75:5005,p80:5635,p90:8730,p95:49813,p99:55756,p999:61407}},resources:{envoyGateway:{memory:{min:199.41,max:199.41,mean:199.41},cpu:{min:114.89,max:114.89,mean:114.89}},envoyProxy:{memory:{min:127.44,max:127.44,mean:127.44},cpu:{min:328.33,max:328.33,mean:328.33}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5138.59,totalRequests:154161,latency:{min:377,mean:6954,max:86982,pstdev:13049,percentiles:{p50:3045,p75:4886,p80:5525,p90:8466,p95:51048,p99:56733,p999:62337}},resources:{envoyGateway:{memory:{min:219.76,max:219.76,mean:219.76},cpu:{min:113.71,max:113.71,mean:113.71}},envoyProxy:{memory:{min:127.31,max:127.31,mean:127.31},cpu:{min:297.73,max:297.73,mean:297.73}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5051.68,totalRequests:151551,latency:{min:389,mean:7977,max:86577,pstdev:14090,percentiles:{p50:3498,p75:5731,p80:6471,p90:10947,p95:52355,p99:58748,p999:67379}},resources:{envoyGateway:{memory:{min:259.14,max:259.14,mean:259.14},cpu:{min:103.22,max:103.22,mean:103.22}},envoyProxy:{memory:{min:127.31,max:127.31,mean:127.31},cpu:{min:265.59,max:265.59,mean:265.59}}},poolOverflow:357,upstreamConnections:43},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:4962.4,totalRequests:148872,latency:{min:384,mean:7209,max:110186,pstdev:13357,percentiles:{p50:3112,p75:5018,p80:5694,p90:9338,p95:51267,p99:57384,p999:67244}},resources:{envoyGateway:{memory:{min:177.76,max:177.76,mean:177.76},cpu:{min:91.86,max:91.86,mean:91.86}},envoyProxy:{memory:{min:127.24,max:127.24,mean:127.24},cpu:{min:233.07,max:233.07,mean:233.07}}},poolOverflow:362,upstreamConnections:38}]},eie={metadata:{version:"1.3.1",runId:"1.3.1-1750189826775",date:"2025-03-05",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.3.1",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.3.1/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5115.35,totalRequests:153465,latency:{min:389,mean:6604,max:74543,pstdev:11843,percentiles:{p50:3094,p75:5007,p80:5671,p90:8723,p95:46997,p99:55033,p999:60336}},resources:{envoyGateway:{memory:{min:122.23,max:122.23,mean:122.23},cpu:{min:1.04,max:1.04,mean:1.04}},envoyProxy:{memory:{min:25.28,max:25.28,mean:25.28},cpu:{min:30.51,max:30.51,mean:30.51}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5150.43,totalRequests:154513,latency:{min:386,mean:6919,max:87556,pstdev:12645,percentiles:{p50:3126,p75:5009,p80:5646,p90:8620,p95:49580,p99:55326,p999:60073}},resources:{envoyGateway:{memory:{min:151.59,max:151.59,mean:151.59},cpu:{min:1.83,max:1.83,mean:1.83}},envoyProxy:{memory:{min:31.45,max:31.45,mean:31.45},cpu:{min:61.11,max:61.11,mean:61.11}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5211.7,totalRequests:156354,latency:{min:376,mean:6687,max:88604,pstdev:12657,percentiles:{p50:2913,p75:4676,p80:5309,p90:8259,p95:49930,p99:55853,p999:63514}},resources:{envoyGateway:{memory:{min:145.61,max:145.61,mean:145.61},cpu:{min:3.19,max:3.19,mean:3.19}},envoyProxy:{memory:{min:35.5,max:35.5,mean:35.5},cpu:{min:91.72,max:91.72,mean:91.72}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5066.99,totalRequests:152016,latency:{min:386,mean:7628,max:93048,pstdev:13700,percentiles:{p50:3310,p75:5414,p80:6156,p90:10289,p95:51750,p99:58007,p999:66938}},resources:{envoyGateway:{memory:{min:156.12,max:156.12,mean:156.12},cpu:{min:15.73,max:15.73,mean:15.73}},envoyProxy:{memory:{min:55.56,max:55.56,mean:55.56},cpu:{min:124.54,max:124.54,mean:124.54}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5098.53,totalRequests:152960,latency:{min:373,mean:7203,max:108142,pstdev:13209,percentiles:{p50:3161,p75:5083,p80:5791,p90:9292,p95:50372,p99:56864,p999:67850}},resources:{envoyGateway:{memory:{min:181.23,max:181.23,mean:181.23},cpu:{min:28.35,max:28.35,mean:28.35}},envoyProxy:{memory:{min:73.6,max:73.6,mean:73.6},cpu:{min:158.01,max:158.01,mean:158.01}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5048.96,totalRequests:151469,latency:{min:366,mean:7462,max:99799,pstdev:13676,percentiles:{p50:3122,p75:5245,p80:6050,p90:10398,p95:50685,p99:59639,p999:74547}},resources:{envoyGateway:{memory:{min:196.57,max:196.57,mean:196.57},cpu:{min:61.62,max:61.62,mean:61.62}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:196.43,max:196.43,mean:196.43}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5116.49,totalRequests:153495,latency:{min:373,mean:7373,max:79749,pstdev:13231,percentiles:{p50:3334,p75:5268,p80:5935,p90:9436,p95:50972,p99:56680,p999:62969}},resources:{envoyGateway:{memory:{min:213.36,max:213.36,mean:213.36},cpu:{min:114.56,max:114.56,mean:114.56}},envoyProxy:{memory:{min:109.79,max:109.79,mean:109.79},cpu:{min:357.84,max:357.84,mean:357.84}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5128.63,totalRequests:153859,latency:{min:380,mean:6787,max:76259,pstdev:12813,percentiles:{p50:2982,p75:4725,p80:5330,p90:8194,p95:50354,p99:56367,p999:61741}},resources:{envoyGateway:{memory:{min:217.34,max:217.34,mean:217.34},cpu:{min:113.9,max:113.9,mean:113.9}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:327.37,max:327.37,mean:327.37}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5217.06,totalRequests:156516,latency:{min:386,mean:7182,max:93491,pstdev:12999,percentiles:{p50:3211,p75:5188,p80:5872,p90:9449,p95:50083,p99:56135,p999:63309}},resources:{envoyGateway:{memory:{min:220.2,max:220.2,mean:220.2},cpu:{min:112.64,max:112.64,mean:112.64}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:296.73,max:296.73,mean:296.73}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5033.4,totalRequests:151002,latency:{min:380,mean:6522,max:92626,pstdev:12472,percentiles:{p50:2849,p75:4643,p80:5272,p90:8064,p95:49350,p99:55799,p999:64323}},resources:{envoyGateway:{memory:{min:201.77,max:201.77,mean:201.77},cpu:{min:102.25,max:102.25,mean:102.25}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:264.74,max:264.74,mean:264.74}}},poolOverflow:365,upstreamConnections:35},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5061.34,totalRequests:151843,latency:{min:393,mean:7429,max:99934,pstdev:13552,percentiles:{p50:3227,p75:5180,p80:5867,p90:9747,p95:51320,p99:58009,p999:68829}},resources:{envoyGateway:{memory:{min:173.04,max:173.04,mean:173.04},cpu:{min:91.12,max:91.12,mean:91.12}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:231.98,max:231.98,mean:231.98}}},poolOverflow:360,upstreamConnections:40}]},tie={metadata:{version:"1.3.0",runId:"1.3.0-1750189826772",date:"2025-01-31",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.3.0",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.3.0/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5297.23,totalRequests:158917,latency:{min:371,mean:6861,max:69562,pstdev:12096,percentiles:{p50:3223,p75:5219,p80:5926,p90:9360,p95:48029,p99:54945,p999:60096}},resources:{envoyGateway:{memory:{min:116.36,max:116.36,mean:116.36},cpu:{min:.77,max:.77,mean:.77}},envoyProxy:{memory:{min:25.3,max:25.3,mean:25.3},cpu:{min:30.42,max:30.42,mean:30.42}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5276.06,totalRequests:158285,latency:{min:372,mean:6781,max:81436,pstdev:12685,percentiles:{p50:3035,p75:4783,p80:5410,p90:8210,p95:50042,p99:55861,p999:61739}},resources:{envoyGateway:{memory:{min:135.97,max:135.97,mean:135.97},cpu:{min:1.53,max:1.53,mean:1.53}},envoyProxy:{memory:{min:31.45,max:31.45,mean:31.45},cpu:{min:60.97,max:60.97,mean:60.97}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5248.15,totalRequests:157445,latency:{min:386,mean:6832,max:83939,pstdev:12879,percentiles:{p50:2957,p75:4826,p80:5504,p90:8587,p95:50454,p99:56524,p999:63150}},resources:{envoyGateway:{memory:{min:128.67,max:128.67,mean:128.67},cpu:{min:2.88,max:2.88,mean:2.88}},envoyProxy:{memory:{min:35.62,max:35.62,mean:35.62},cpu:{min:91.69,max:91.69,mean:91.69}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5190.05,totalRequests:155708,latency:{min:374,mean:6735,max:105820,pstdev:12667,percentiles:{p50:2997,p75:4715,p80:5323,p90:8205,p95:49692,p99:56199,p999:64403}},resources:{envoyGateway:{memory:{min:147.27,max:147.27,mean:147.27},cpu:{min:15.8,max:15.8,mean:15.8}},envoyProxy:{memory:{min:61.52,max:61.52,mean:61.52},cpu:{min:124.52,max:124.52,mean:124.52}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5171.63,totalRequests:155149,latency:{min:345,mean:7139,max:89923,pstdev:13210,percentiles:{p50:3191,p75:5039,p80:5680,p90:8824,p95:50767,p99:57397,p999:67665}},resources:{envoyGateway:{memory:{min:158.88,max:158.88,mean:158.88},cpu:{min:28.37,max:28.37,mean:28.37}},envoyProxy:{memory:{min:76,max:76,mean:76},cpu:{min:157.59,max:157.59,mean:157.59}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:4998.06,totalRequests:149944,latency:{min:371,mean:6950,max:98525,pstdev:13111,percentiles:{p50:3057,p75:4816,p80:5416,p90:8383,p95:50270,p99:57946,p999:69038}},resources:{envoyGateway:{memory:{min:182.71,max:182.71,mean:182.71},cpu:{min:61.79,max:61.79,mean:61.79}},envoyProxy:{memory:{min:122.12,max:122.12,mean:122.12},cpu:{min:194.7,max:194.7,mean:194.7}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5224.35,totalRequests:156731,latency:{min:376,mean:6870,max:73203,pstdev:12827,percentiles:{p50:3060,p75:4817,p80:5428,p90:8280,p95:50618,p99:56178,p999:61280}},resources:{envoyGateway:{memory:{min:209.85,max:209.85,mean:209.85},cpu:{min:114.89,max:114.89,mean:114.89}},envoyProxy:{memory:{min:110.5,max:110.5,mean:110.5},cpu:{min:356.13,max:356.13,mean:356.13}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5247.75,totalRequests:157436,latency:{min:383,mean:6991,max:88027,pstdev:12998,percentiles:{p50:3091,p75:4901,p80:5532,p90:8568,p95:50655,p99:56272,p999:62160}},resources:{envoyGateway:{memory:{min:208.95,max:208.95,mean:208.95},cpu:{min:114.35,max:114.35,mean:114.35}},envoyProxy:{memory:{min:122.19,max:122.19,mean:122.19},cpu:{min:325.78,max:325.78,mean:325.78}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5201.69,totalRequests:156051,latency:{min:380,mean:7027,max:78663,pstdev:12995,percentiles:{p50:3129,p75:4963,p80:5600,p90:8642,p95:50726,p99:56254,p999:61509}},resources:{envoyGateway:{memory:{min:211.34,max:211.34,mean:211.34},cpu:{min:113.23,max:113.23,mean:113.23}},envoyProxy:{memory:{min:122.17,max:122.17,mean:122.17},cpu:{min:295.15,max:295.15,mean:295.15}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5206.95,totalRequests:156214,latency:{min:386,mean:6893,max:92049,pstdev:12874,percentiles:{p50:3088,p75:4898,p80:5548,p90:8444,p95:50268,p99:56334,p999:65038}},resources:{envoyGateway:{memory:{min:158.73,max:158.73,mean:158.73},cpu:{min:102.79,max:102.79,mean:102.79}},envoyProxy:{memory:{min:122.15,max:122.15,mean:122.15},cpu:{min:263,max:263,mean:263}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5150.23,totalRequests:154507,latency:{min:375,mean:6786,max:84877,pstdev:12812,percentiles:{p50:3009,p75:4734,p80:5340,p90:8236,p95:50247,p99:56647,p999:65042}},resources:{envoyGateway:{memory:{min:168.04,max:168.04,mean:168.04},cpu:{min:91.51,max:91.51,mean:91.51}},envoyProxy:{memory:{min:122.14,max:122.14,mean:122.14},cpu:{min:230.49,max:230.49,mean:230.49}}},poolOverflow:363,upstreamConnections:37}]},nie={metadata:{version:"1.2.8",runId:"1.2.8-1750189826771",date:"2025-03-25",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.8",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.8/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5878.23,totalRequests:176347,latency:{min:376,mean:9154,max:75661,pstdev:14181,percentiles:{p50:4294,p75:7182,p80:8292,p90:22716,p95:52056,p99:58071,p999:64841}},resources:{envoyGateway:{memory:{min:108.89,max:108.89,mean:108.89},cpu:{min:.77,max:.77,mean:.77}},envoyProxy:{memory:{min:28.23,max:28.23,mean:28.23},cpu:{min:30.48,max:30.48,mean:30.48}}},poolOverflow:342,upstreamConnections:58},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5582.21,totalRequests:167469,latency:{min:359,mean:6378,max:69967,pstdev:12106,percentiles:{p50:2864,p75:4529,p80:5113,p90:7717,p95:48431,p99:54521,p999:59967}},resources:{envoyGateway:{memory:{min:132.62,max:132.62,mean:132.62},cpu:{min:1.54,max:1.54,mean:1.54}},envoyProxy:{memory:{min:32.39,max:32.39,mean:32.39},cpu:{min:60.99,max:60.99,mean:60.99}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5454.1,totalRequests:163623,latency:{min:368,mean:6738,max:72437,pstdev:12216,percentiles:{p50:3318,p75:5037,p80:5581,p90:8092,p95:47886,p99:53829,p999:60200}},resources:{envoyGateway:{memory:{min:135.66,max:135.66,mean:135.66},cpu:{min:2.91,max:2.91,mean:2.91}},envoyProxy:{memory:{min:38.6,max:38.6,mean:38.6},cpu:{min:91.91,max:91.91,mean:91.91}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5496.5,totalRequests:164898,latency:{min:375,mean:6453,max:103043,pstdev:12191,percentiles:{p50:2887,p75:4603,p80:5209,p90:7967,p95:48150,p99:54630,p999:63743}},resources:{envoyGateway:{memory:{min:147.15,max:147.15,mean:147.15},cpu:{min:15.47,max:15.47,mean:15.47}},envoyProxy:{memory:{min:60.75,max:60.75,mean:60.75},cpu:{min:125.31,max:125.31,mean:125.31}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5351.8,totalRequests:160554,latency:{min:377,mean:6516,max:93298,pstdev:12549,percentiles:{p50:2857,p75:4496,p80:5076,p90:7615,p95:49512,p99:55822,p999:65318}},resources:{envoyGateway:{memory:{min:155.79,max:155.79,mean:155.79},cpu:{min:28.01,max:28.01,mean:28.01}},envoyProxy:{memory:{min:82.96,max:82.96,mean:82.96},cpu:{min:159.29,max:159.29,mean:159.29}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5102.69,totalRequests:153086,latency:{min:358,mean:6968,max:108298,pstdev:13304,percentiles:{p50:2979,p75:4802,p80:5441,p90:8343,p95:50370,p99:60203,p999:71446}},resources:{envoyGateway:{memory:{min:190.03,max:190.03,mean:190.03},cpu:{min:61.69,max:61.69,mean:61.69}},envoyProxy:{memory:{min:133.22,max:133.22,mean:133.22},cpu:{min:199.84,max:199.84,mean:199.84}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5424.03,totalRequests:162721,latency:{min:362,mean:6570,max:73609,pstdev:12562,percentiles:{p50:2923,p75:4626,p80:5209,p90:7751,p95:49960,p99:55525,p999:60127}},resources:{envoyGateway:{memory:{min:127.89,max:127.89,mean:127.89},cpu:{min:114.69,max:114.69,mean:114.69}},envoyProxy:{memory:{min:112.11,max:112.11,mean:112.11},cpu:{min:363.01,max:363.01,mean:363.01}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5454.96,totalRequests:163653,latency:{min:363,mean:6397,max:73404,pstdev:12347,percentiles:{p50:2884,p75:4452,p80:4989,p90:7300,p95:49477,p99:55369,p999:61495}},resources:{envoyGateway:{memory:{min:136.28,max:136.28,mean:136.28},cpu:{min:114.05,max:114.05,mean:114.05}},envoyProxy:{memory:{min:114.79,max:114.79,mean:114.79},cpu:{min:332.54,max:332.54,mean:332.54}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5402.5,totalRequests:162075,latency:{min:366,mean:6575,max:127266,pstdev:12484,percentiles:{p50:2940,p75:4600,p80:5162,p90:7727,p95:49549,p99:55334,p999:61478}},resources:{envoyGateway:{memory:{min:140.91,max:140.91,mean:140.91},cpu:{min:112.87,max:112.87,mean:112.87}},envoyProxy:{memory:{min:114.76,max:114.76,mean:114.76},cpu:{min:301.85,max:301.85,mean:301.85}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5498.81,totalRequests:164969,latency:{min:349,mean:6325,max:84213,pstdev:12296,percentiles:{p50:2789,p75:4396,p80:4944,p90:7293,p95:48961,p99:55212,p999:65019}},resources:{envoyGateway:{memory:{min:148.36,max:148.36,mean:148.36},cpu:{min:102.53,max:102.53,mean:102.53}},envoyProxy:{memory:{min:133.35,max:133.35,mean:133.35},cpu:{min:269.43,max:269.43,mean:269.43}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5308.76,totalRequests:159263,latency:{min:361,mean:6727,max:98807,pstdev:12828,percentiles:{p50:2916,p75:4650,p80:5273,p90:8161,p95:49971,p99:56840,p999:67182}},resources:{envoyGateway:{memory:{min:157.93,max:157.93,mean:157.93},cpu:{min:91.26,max:91.26,mean:91.26}},envoyProxy:{memory:{min:133.2,max:133.2,mean:133.2},cpu:{min:236.02,max:236.02,mean:236.02}}},poolOverflow:362,upstreamConnections:38}]},rie={metadata:{version:"1.2.7",runId:"1.2.7-1750189826769",date:"2025-03-06",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.7",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.7/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5984.83,totalRequests:179545,latency:{min:402,mean:12033,max:92835,pstdev:16725,percentiles:{p50:5655,p75:9809,p80:11804,p90:49971,p95:55760,p99:64241,p999:73961}},resources:{envoyGateway:{memory:{min:112.35,max:112.35,mean:112.35},cpu:{min:.76,max:.76,mean:.76}},envoyProxy:{memory:{min:28.29,max:28.29,mean:28.29},cpu:{min:30.49,max:30.49,mean:30.49}}},poolOverflow:323,upstreamConnections:77},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5564.85,totalRequests:166949,latency:{min:362,mean:6416,max:73261,pstdev:12268,percentiles:{p50:2855,p75:4514,p80:5094,p90:7660,p95:49031,p99:54939,p999:60436}},resources:{envoyGateway:{memory:{min:125.94,max:125.94,mean:125.94},cpu:{min:1.52,max:1.52,mean:1.52}},envoyProxy:{memory:{min:34.46,max:34.46,mean:34.46},cpu:{min:61.11,max:61.11,mean:61.11}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5618.23,totalRequests:168547,latency:{min:372,mean:6834,max:85766,pstdev:12643,percentiles:{p50:3107,p75:4954,p80:5560,p90:8454,p95:49485,p99:55513,p999:61272}},resources:{envoyGateway:{memory:{min:132.05,max:132.05,mean:132.05},cpu:{min:2.92,max:2.92,mean:2.92}},envoyProxy:{memory:{min:40.63,max:40.63,mean:40.63},cpu:{min:92.02,max:92.02,mean:92.02}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5506.26,totalRequests:165193,latency:{min:383,mean:6670,max:85905,pstdev:12677,percentiles:{p50:2946,p75:4659,p80:5243,p90:7891,p95:49846,p99:56096,p999:65185}},resources:{envoyGateway:{memory:{min:146.09,max:146.09,mean:146.09},cpu:{min:15.43,max:15.43,mean:15.43}},envoyProxy:{memory:{min:62.86,max:62.86,mean:62.86},cpu:{min:125.21,max:125.21,mean:125.21}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5580.92,totalRequests:167428,latency:{min:310,mean:6716,max:89178,pstdev:12233,percentiles:{p50:3157,p75:4861,p80:5446,p90:8231,p95:47419,p99:54634,p999:65587}},resources:{envoyGateway:{memory:{min:163.49,max:163.49,mean:163.49},cpu:{min:28.15,max:28.15,mean:28.15}},envoyProxy:{memory:{min:83.07,max:83.07,mean:83.07},cpu:{min:159.15,max:159.15,mean:159.15}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5298.3,totalRequests:158951,latency:{min:369,mean:6537,max:122015,pstdev:12654,percentiles:{p50:2914,p75:4472,p80:5012,p90:7402,p95:48639,p99:58097,p999:69103}},resources:{envoyGateway:{memory:{min:187.81,max:187.81,mean:187.81},cpu:{min:62.41,max:62.41,mean:62.41}},envoyProxy:{memory:{min:133.27,max:133.27,mean:133.27},cpu:{min:199.13,max:199.13,mean:199.13}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5623.57,totalRequests:168711,latency:{min:380,mean:7190,max:75063,pstdev:13103,percentiles:{p50:3211,p75:5102,p80:5772,p90:9144,p95:50722,p99:56260,p999:61515}},resources:{envoyGateway:{memory:{min:132.38,max:132.38,mean:132.38},cpu:{min:116.08,max:116.08,mean:116.08}},envoyProxy:{memory:{min:128.69,max:128.69,mean:128.69},cpu:{min:362.3,max:362.3,mean:362.3}}},poolOverflow:357,upstreamConnections:43},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5516.59,totalRequests:165498,latency:{min:329,mean:6044,max:69902,pstdev:11632,percentiles:{p50:2893,p75:4337,p80:4790,p90:6742,p95:47155,p99:53372,p999:58073}},resources:{envoyGateway:{memory:{min:144.02,max:144.02,mean:144.02},cpu:{min:115.5,max:115.5,mean:115.5}},envoyProxy:{memory:{min:129.14,max:129.14,mean:129.14},cpu:{min:331.76,max:331.76,mean:331.76}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5515.82,totalRequests:165475,latency:{min:380,mean:6483,max:79159,pstdev:12363,percentiles:{p50:2872,p75:4545,p80:5131,p90:7760,p95:49190,p99:55408,p999:61890}},resources:{envoyGateway:{memory:{min:135.79,max:135.79,mean:135.79},cpu:{min:114.36,max:114.36,mean:114.36}},envoyProxy:{memory:{min:109,max:109,mean:109},cpu:{min:301.13,max:301.13,mean:301.13}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5403.53,totalRequests:162106,latency:{min:354,mean:6429,max:83423,pstdev:12305,percentiles:{p50:2864,p75:4496,p80:5072,p90:7504,p95:48885,p99:55414,p999:63565}},resources:{envoyGateway:{memory:{min:155.42,max:155.42,mean:155.42},cpu:{min:103.9,max:103.9,mean:103.9}},envoyProxy:{memory:{min:133.59,max:133.59,mean:133.59},cpu:{min:268.85,max:268.85,mean:268.85}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5405.24,totalRequests:162162,latency:{min:387,mean:6615,max:90812,pstdev:12660,percentiles:{p50:2913,p75:4593,p80:5174,p90:7866,p95:49461,p99:56510,p999:67248}},resources:{envoyGateway:{memory:{min:165.58,max:165.58,mean:165.58},cpu:{min:92.35,max:92.35,mean:92.35}},envoyProxy:{memory:{min:133.42,max:133.42,mean:133.42},cpu:{min:235.87,max:235.87,mean:235.87}}},poolOverflow:362,upstreamConnections:38}]},aie={metadata:{version:"1.2.6",runId:"1.2.6-1750189826767",date:"2025-01-23",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.6",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.6/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5668.03,totalRequests:170041,latency:{min:354,mean:6713,max:73658,pstdev:11906,percentiles:{p50:3142,p75:5170,p80:5865,p90:9278,p95:47425,p99:54870,p999:59602}},resources:{envoyGateway:{memory:{min:108.82,max:108.82,mean:108.82},cpu:{min:.76,max:.76,mean:.76}},envoyProxy:{memory:{min:25.38,max:25.38,mean:25.38},cpu:{min:30.51,max:30.51,mean:30.51}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5542.06,totalRequests:166262,latency:{min:380,mean:6117,max:73658,pstdev:11949,percentiles:{p50:2749,p75:4310,p80:4842,p90:7067,p95:48484,p99:54499,p999:59725}},resources:{envoyGateway:{memory:{min:135.08,max:135.08,mean:135.08},cpu:{min:1.53,max:1.53,mean:1.53}},envoyProxy:{memory:{min:31.53,max:31.53,mean:31.53},cpu:{min:61.17,max:61.17,mean:61.17}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5556.06,totalRequests:166682,latency:{min:363,mean:6439,max:100163,pstdev:12297,percentiles:{p50:2891,p75:4506,p80:5050,p90:7595,p95:49078,p99:54935,p999:60456}},resources:{envoyGateway:{memory:{min:140.09,max:140.09,mean:140.09},cpu:{min:2.88,max:2.88,mean:2.88}},envoyProxy:{memory:{min:37.7,max:37.7,mean:37.7},cpu:{min:91.98,max:91.98,mean:91.98}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5462.58,totalRequests:163882,latency:{min:372,mean:6376,max:78544,pstdev:12289,percentiles:{p50:2853,p75:4454,p80:5002,p90:7458,p95:49076,p99:55132,p999:63879}},resources:{envoyGateway:{memory:{min:146.71,max:146.71,mean:146.71},cpu:{min:15.64,max:15.64,mean:15.64}},envoyProxy:{memory:{min:59.89,max:59.89,mean:59.89},cpu:{min:125.41,max:125.41,mean:125.41}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5427.5,totalRequests:162825,latency:{min:359,mean:6562,max:97148,pstdev:12598,percentiles:{p50:2881,p75:4518,p80:5091,p90:7774,p95:49301,p99:56102,p999:67338}},resources:{envoyGateway:{memory:{min:155.26,max:155.26,mean:155.26},cpu:{min:28.52,max:28.52,mean:28.52}},envoyProxy:{memory:{min:82.08,max:82.08,mean:82.08},cpu:{min:159.72,max:159.72,mean:159.72}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5261.62,totalRequests:157849,latency:{min:373,mean:6972,max:115060,pstdev:13251,percentiles:{p50:3015,p75:4770,p80:5385,p90:8293,p95:50296,p99:59930,p999:70590}},resources:{envoyGateway:{memory:{min:188.13,max:188.13,mean:188.13},cpu:{min:61.78,max:61.78,mean:61.78}},envoyProxy:{memory:{min:130.35,max:130.35,mean:130.35},cpu:{min:199.1,max:199.1,mean:199.1}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5543.17,totalRequests:166299,latency:{min:360,mean:6447,max:75276,pstdev:12396,percentiles:{p50:2866,p75:4486,p80:5040,p90:7527,p95:49663,p99:55240,p999:60647}},resources:{envoyGateway:{memory:{min:129.36,max:129.36,mean:129.36},cpu:{min:115.21,max:115.21,mean:115.21}},envoyProxy:{memory:{min:122.58,max:122.58,mean:122.58},cpu:{min:362.6,max:362.6,mean:362.6}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5522.73,totalRequests:165682,latency:{min:384,mean:6098,max:68321,pstdev:11922,percentiles:{p50:2776,p75:4326,p80:4838,p90:6958,p95:48431,p99:54296,p999:58857}},resources:{envoyGateway:{memory:{min:140.97,max:140.97,mean:140.97},cpu:{min:114.57,max:114.57,mean:114.57}},envoyProxy:{memory:{min:122.83,max:122.83,mean:122.83},cpu:{min:332.12,max:332.12,mean:332.12}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5500.66,totalRequests:165023,latency:{min:360,mean:6301,max:80400,pstdev:12064,percentiles:{p50:2833,p75:4483,p80:5035,p90:7574,p95:48777,p99:54876,p999:60850}},resources:{envoyGateway:{memory:{min:132.45,max:132.45,mean:132.45},cpu:{min:113.5,max:113.5,mean:113.5}},envoyProxy:{memory:{min:122.84,max:122.84,mean:122.84},cpu:{min:301.26,max:301.26,mean:301.26}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5453.33,totalRequests:163603,latency:{min:357,mean:6324,max:86024,pstdev:12138,percentiles:{p50:2842,p75:4429,p80:4967,p90:7393,p95:48201,p99:54683,p999:65251}},resources:{envoyGateway:{memory:{min:150.62,max:150.62,mean:150.62},cpu:{min:103.11,max:103.11,mean:103.11}},envoyProxy:{memory:{min:130.34,max:130.34,mean:130.34},cpu:{min:269.03,max:269.03,mean:269.03}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5402.96,totalRequests:162089,latency:{min:371,mean:6575,max:90804,pstdev:12621,percentiles:{p50:2877,p75:4543,p80:5114,p90:7832,p95:49375,p99:56092,p999:69132}},resources:{envoyGateway:{memory:{min:159.25,max:159.25,mean:159.25},cpu:{min:91.66,max:91.66,mean:91.66}},envoyProxy:{memory:{min:130.34,max:130.34,mean:130.34},cpu:{min:235.83,max:235.83,mean:235.83}}},poolOverflow:362,upstreamConnections:38}]},oie={metadata:{version:"1.2.5",runId:"1.2.5-1750189826766",date:"2025-01-14",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.5",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.5/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5704.46,totalRequests:171136,latency:{min:370,mean:6520,max:74477,pstdev:11781,percentiles:{p50:3051,p75:4913,p80:5565,p90:8700,p95:47091,p99:54638,p999:59404}},resources:{envoyGateway:{memory:{min:112.07,max:112.07,mean:112.07},cpu:{min:.76,max:.76,mean:.76}},envoyProxy:{memory:{min:24.38,max:24.38,mean:24.38},cpu:{min:30.47,max:30.47,mean:30.47}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5647.86,totalRequests:169439,latency:{min:379,mean:6313,max:80498,pstdev:11935,percentiles:{p50:2854,p75:4550,p80:5158,p90:7820,p95:48025,p99:54390,p999:60321}},resources:{envoyGateway:{memory:{min:123.4,max:123.4,mean:123.4},cpu:{min:1.48,max:1.48,mean:1.48}},envoyProxy:{memory:{min:30.55,max:30.55,mean:30.55},cpu:{min:61.09,max:61.09,mean:61.09}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5529.29,totalRequests:165879,latency:{min:379,mean:6240,max:73539,pstdev:12017,percentiles:{p50:2818,p75:4510,p80:5068,p90:7413,p95:48300,p99:54171,p999:59308}},resources:{envoyGateway:{memory:{min:139.7,max:139.7,mean:139.7},cpu:{min:2.92,max:2.92,mean:2.92}},envoyProxy:{memory:{min:36.73,max:36.73,mean:36.73},cpu:{min:91.9,max:91.9,mean:91.9}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5542.3,totalRequests:166274,latency:{min:365,mean:6463,max:81305,pstdev:12357,percentiles:{p50:2890,p75:4545,p80:5116,p90:7585,p95:49043,p99:55365,p999:64399}},resources:{envoyGateway:{memory:{min:146.11,max:146.11,mean:146.11},cpu:{min:15.2,max:15.2,mean:15.2}},envoyProxy:{memory:{min:58.91,max:58.91,mean:58.91},cpu:{min:124.96,max:124.96,mean:124.96}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5407.59,totalRequests:162228,latency:{min:363,mean:6396,max:88236,pstdev:12419,percentiles:{p50:2816,p75:4450,p80:5012,p90:7485,p95:48762,p99:55666,p999:67457}},resources:{envoyGateway:{memory:{min:154.01,max:154.01,mean:154.01},cpu:{min:27.98,max:27.98,mean:27.98}},envoyProxy:{memory:{min:81.11,max:81.11,mean:81.11},cpu:{min:158.85,max:158.85,mean:158.85}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5247.32,totalRequests:157425,latency:{min:374,mean:6604,max:106491,pstdev:12903,percentiles:{p50:2880,p75:4514,p80:5089,p90:7639,p95:49453,p99:58750,p999:71970}},resources:{envoyGateway:{memory:{min:183.52,max:183.52,mean:183.52},cpu:{min:61.85,max:61.85,mean:61.85}},envoyProxy:{memory:{min:129.33,max:129.33,mean:129.33},cpu:{min:198.98,max:198.98,mean:198.98}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5668.05,totalRequests:170048,latency:{min:366,mean:6143,max:73551,pstdev:12054,percentiles:{p50:2726,p75:4279,p80:4799,p90:7123,p95:48988,p99:54704,p999:58812}},resources:{envoyGateway:{memory:{min:138.57,max:138.57,mean:138.57},cpu:{min:115.2,max:115.2,mean:115.2}},envoyProxy:{memory:{min:121.88,max:121.88,mean:121.88},cpu:{min:361.89,max:361.89,mean:361.89}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5579.16,totalRequests:167375,latency:{min:353,mean:6190,max:87244,pstdev:12028,percentiles:{p50:2803,p75:4357,p80:4889,p90:7110,p95:48482,p99:54329,p999:59113}},resources:{envoyGateway:{memory:{min:132.83,max:132.83,mean:132.83},cpu:{min:114.63,max:114.63,mean:114.63}},envoyProxy:{memory:{min:122.16,max:122.16,mean:122.16},cpu:{min:331.47,max:331.47,mean:331.47}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5581.7,totalRequests:167453,latency:{min:377,mean:6525,max:72724,pstdev:12286,percentiles:{p50:2929,p75:4641,p80:5219,p90:7915,p95:48732,p99:54810,p999:61450}},resources:{envoyGateway:{memory:{min:133.91,max:133.91,mean:133.91},cpu:{min:113.44,max:113.44,mean:113.44}},envoyProxy:{memory:{min:122.02,max:122.02,mean:122.02},cpu:{min:300.79,max:300.79,mean:300.79}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5447.53,totalRequests:163426,latency:{min:368,mean:6540,max:88612,pstdev:12451,percentiles:{p50:2904,p75:4546,p80:5128,p90:7692,p95:49305,p99:55422,p999:64116}},resources:{envoyGateway:{memory:{min:145.28,max:145.28,mean:145.28},cpu:{min:102.98,max:102.98,mean:102.98}},envoyProxy:{memory:{min:129.93,max:129.93,mean:129.93},cpu:{min:268.5,max:268.5,mean:268.5}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5437.61,totalRequests:163132,latency:{min:383,mean:6527,max:102998,pstdev:12600,percentiles:{p50:2827,p75:4470,p80:5070,p90:7714,p95:49029,p99:56436,p999:66684}},resources:{envoyGateway:{memory:{min:164.07,max:164.07,mean:164.07},cpu:{min:91.64,max:91.64,mean:91.64}},envoyProxy:{memory:{min:129.93,max:129.93,mean:129.93},cpu:{min:235.61,max:235.61,mean:235.61}}},poolOverflow:362,upstreamConnections:38}]},iie={metadata:{version:"1.2.4",runId:"1.2.4-1750189826764",date:"2024-12-13",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.4",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.4/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5982.38,totalRequests:179472,latency:{min:349,mean:6011,max:83349,pstdev:11061,percentiles:{p50:2829,p75:4477,p80:5098,p90:7842,p95:43255,p99:53350,p999:59346}},resources:{envoyGateway:{memory:{min:110.54,max:110.54,mean:110.54},cpu:{min:.77,max:.77,mean:.77}},envoyProxy:{memory:{min:24.25,max:24.25,mean:24.25},cpu:{min:30.44,max:30.44,mean:30.44}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5917.46,totalRequests:177524,latency:{min:361,mean:6164,max:70909,pstdev:11809,percentiles:{p50:2843,p75:4366,p80:4876,p90:7109,p95:47788,p99:54372,p999:59932}},resources:{envoyGateway:{memory:{min:119.89,max:119.89,mean:119.89},cpu:{min:1.61,max:1.61,mean:1.61}},envoyProxy:{memory:{min:30.43,max:30.43,mean:30.43},cpu:{min:61.13,max:61.13,mean:61.13}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5930.25,totalRequests:177910,latency:{min:398,mean:6027,max:92041,pstdev:11760,percentiles:{p50:2652,p75:4198,p80:4747,p90:7135,p95:47513,p99:55083,p999:61542}},resources:{envoyGateway:{memory:{min:129.08,max:129.08,mean:129.08},cpu:{min:3.05,max:3.05,mean:3.05}},envoyProxy:{memory:{min:36.57,max:36.57,mean:36.57},cpu:{min:92.01,max:92.01,mean:92.01}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5612.73,totalRequests:168382,latency:{min:368,mean:6361,max:108085,pstdev:12378,percentiles:{p50:2817,p75:4383,p80:4929,p90:7356,p95:48795,p99:56586,p999:68399}},resources:{envoyGateway:{memory:{min:140.63,max:140.63,mean:140.63},cpu:{min:15.35,max:15.35,mean:15.35}},envoyProxy:{memory:{min:58.77,max:58.77,mean:58.77},cpu:{min:125.44,max:125.44,mean:125.44}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5799.01,totalRequests:173974,latency:{min:378,mean:6166,max:97771,pstdev:11964,percentiles:{p50:2818,p75:4251,p80:4742,p90:6922,p95:47560,p99:55281,p999:68112}},resources:{envoyGateway:{memory:{min:152.5,max:152.5,mean:152.5},cpu:{min:28.38,max:28.38,mean:28.38}},envoyProxy:{memory:{min:78.94,max:78.94,mean:78.94},cpu:{min:159.67,max:159.67,mean:159.67}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5474.43,totalRequests:164233,latency:{min:386,mean:6534,max:109809,pstdev:12936,percentiles:{p50:2656,p75:4361,p80:5013,p90:8074,p95:49516,p99:60213,p999:73678}},resources:{envoyGateway:{memory:{min:183.98,max:183.98,mean:183.98},cpu:{min:62.29,max:62.29,mean:62.29}},envoyProxy:{memory:{min:131.16,max:131.16,mean:131.16},cpu:{min:200.46,max:200.46,mean:200.46}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5816.39,totalRequests:174492,latency:{min:340,mean:6131,max:85209,pstdev:11868,percentiles:{p50:2730,p75:4264,p80:4816,p90:7369,p95:47933,p99:54984,p999:61820}},resources:{envoyGateway:{memory:{min:195,max:195,mean:195},cpu:{min:116.53,max:116.53,mean:116.53}},envoyProxy:{memory:{min:120.37,max:120.37,mean:120.37},cpu:{min:363.61,max:363.61,mean:363.61}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5848.8,totalRequests:175470,latency:{min:372,mean:6285,max:77979,pstdev:12136,percentiles:{p50:2760,p75:4334,p80:4906,p90:7492,p95:48553,p99:55732,p999:63037}},resources:{envoyGateway:{memory:{min:205.2,max:205.2,mean:205.2},cpu:{min:115.88,max:115.88,mean:115.88}},envoyProxy:{memory:{min:120.26,max:120.26,mean:120.26},cpu:{min:333.06,max:333.06,mean:333.06}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5897.55,totalRequests:176927,latency:{min:365,mean:6054,max:78041,pstdev:11770,percentiles:{p50:2761,p75:4253,p80:4770,p90:6934,p95:47628,p99:54935,p999:62232}},resources:{envoyGateway:{memory:{min:201.78,max:201.78,mean:201.78},cpu:{min:114.84,max:114.84,mean:114.84}},envoyProxy:{memory:{min:122.23,max:122.23,mean:122.23},cpu:{min:302.66,max:302.66,mean:302.66}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5764.69,totalRequests:172941,latency:{min:376,mean:6540,max:87822,pstdev:12528,percentiles:{p50:2847,p75:4511,p80:5118,p90:7907,p95:49336,p99:56737,p999:66895}},resources:{envoyGateway:{memory:{min:237.36,max:237.36,mean:237.36},cpu:{min:104.3,max:104.3,mean:104.3}},envoyProxy:{memory:{min:131.2,max:131.2,mean:131.2},cpu:{min:270.32,max:270.32,mean:270.32}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5709.58,totalRequests:171290,latency:{min:350,mean:6172,max:93663,pstdev:11978,percentiles:{p50:2864,p75:4285,p80:4782,p90:6980,p95:47689,p99:55115,p999:67440}},resources:{envoyGateway:{memory:{min:158.41,max:158.41,mean:158.41},cpu:{min:92.69,max:92.69,mean:92.69}},envoyProxy:{memory:{min:131.32,max:131.32,mean:131.32},cpu:{min:236.85,max:236.85,mean:236.85}}},poolOverflow:363,upstreamConnections:37}]},sie={metadata:{version:"1.2.3",runId:"1.2.3-1750189826763",date:"2024-12-02",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.3",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.3/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6222.52,totalRequests:186680,latency:{min:349,mean:6177,max:70643,pstdev:11464,percentiles:{p50:2879,p75:4520,p80:5082,p90:7684,p95:46213,p99:54147,p999:60250}},resources:{envoyGateway:{memory:{min:110.2,max:110.2,mean:110.2},cpu:{min:.68,max:.68,mean:.68}},envoyProxy:{memory:{min:25.89,max:25.89,mean:25.89},cpu:{min:30.33,max:30.33,mean:30.33}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6170.38,totalRequests:185112,latency:{min:370,mean:5770,max:72798,pstdev:11358,percentiles:{p50:2657,p75:4054,p80:4535,p90:6537,p95:46632,p99:53751,p999:59174}},resources:{envoyGateway:{memory:{min:122.48,max:122.48,mean:122.48},cpu:{min:1.42,max:1.42,mean:1.42}},envoyProxy:{memory:{min:32.05,max:32.05,mean:32.05},cpu:{min:60.88,max:60.88,mean:60.88}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6085.51,totalRequests:182567,latency:{min:365,mean:5863,max:84721,pstdev:11540,percentiles:{p50:2605,p75:4127,p80:4662,p90:7048,p95:46759,p99:54556,p999:61736}},resources:{envoyGateway:{memory:{min:131.06,max:131.06,mean:131.06},cpu:{min:2.8,max:2.8,mean:2.8}},envoyProxy:{memory:{min:38.19,max:38.19,mean:38.19},cpu:{min:91.64,max:91.64,mean:91.64}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:6032.83,totalRequests:180985,latency:{min:362,mean:6079,max:79421,pstdev:11806,percentiles:{p50:2707,p75:4272,p80:4832,p90:7327,p95:47441,p99:54743,p999:65808}},resources:{envoyGateway:{memory:{min:142.98,max:142.98,mean:142.98},cpu:{min:15.04,max:15.04,mean:15.04}},envoyProxy:{memory:{min:60.39,max:60.39,mean:60.39},cpu:{min:124.47,max:124.47,mean:124.47}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5773.98,totalRequests:173223,latency:{min:344,mean:6360,max:79355,pstdev:12473,percentiles:{p50:2707,p75:4299,p80:4888,p90:7643,p95:49309,p99:57382,p999:68141}},resources:{envoyGateway:{memory:{min:160.84,max:160.84,mean:160.84},cpu:{min:27.66,max:27.66,mean:27.66}},envoyProxy:{memory:{min:80.58,max:80.58,mean:80.58},cpu:{min:156.97,max:156.97,mean:156.97}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5776.08,totalRequests:173283,latency:{min:361,mean:6194,max:89714,pstdev:12241,percentiles:{p50:2703,p75:4241,p80:4791,p90:7296,p95:47755,p99:58537,p999:70676}},resources:{envoyGateway:{memory:{min:186.49,max:186.49,mean:186.49},cpu:{min:61.39,max:61.39,mean:61.39}},envoyProxy:{memory:{min:130.82,max:130.82,mean:130.82},cpu:{min:196.17,max:196.17,mean:196.17}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:6128.86,totalRequests:183866,latency:{min:351,mean:5824,max:73633,pstdev:11470,percentiles:{p50:2578,p75:4038,p80:4570,p90:6823,p95:46927,p99:54392,p999:60213}},resources:{envoyGateway:{memory:{min:218.36,max:218.36,mean:218.36},cpu:{min:114.4,max:114.4,mean:114.4}},envoyProxy:{memory:{min:118.8,max:118.8,mean:118.8},cpu:{min:358.03,max:358.03,mean:358.03}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:6065.62,totalRequests:181969,latency:{min:378,mean:5877,max:82526,pstdev:11643,percentiles:{p50:2588,p75:4048,p80:4587,p90:6876,p95:47429,p99:54710,p999:62111}},resources:{envoyGateway:{memory:{min:222.42,max:222.42,mean:222.42},cpu:{min:113.86,max:113.86,mean:113.86}},envoyProxy:{memory:{min:119.23,max:119.23,mean:119.23},cpu:{min:327.6,max:327.6,mean:327.6}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:6045.71,totalRequests:181360,latency:{min:388,mean:6024,max:80216,pstdev:11596,percentiles:{p50:2802,p75:4253,p80:4761,p90:6951,p95:47183,p99:54065,p999:59455}},resources:{envoyGateway:{memory:{min:142.37,max:142.37,mean:142.37},cpu:{min:112.77,max:112.77,mean:112.77}},envoyProxy:{memory:{min:119.54,max:119.54,mean:119.54},cpu:{min:296.95,max:296.95,mean:296.95}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5956.66,totalRequests:178700,latency:{min:379,mean:6153,max:85528,pstdev:12032,percentiles:{p50:2640,p75:4362,p80:4961,p90:7625,p95:47886,p99:55965,p999:65695}},resources:{envoyGateway:{memory:{min:148.72,max:148.72,mean:148.72},cpu:{min:102.49,max:102.49,mean:102.49}},envoyProxy:{memory:{min:130.98,max:130.98,mean:130.98},cpu:{min:264.96,max:264.96,mean:264.96}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5958.61,totalRequests:178765,latency:{min:362,mean:5967,max:83480,pstdev:11671,percentiles:{p50:2714,p75:4156,p80:4658,p90:6839,p95:46901,p99:54601,p999:65464}},resources:{envoyGateway:{memory:{min:164.87,max:164.87,mean:164.87},cpu:{min:91.25,max:91.25,mean:91.25}},envoyProxy:{memory:{min:130.98,max:130.98,mean:130.98},cpu:{min:231.98,max:231.98,mean:231.98}}},poolOverflow:363,upstreamConnections:37}]},lie={metadata:{version:"1.2.2",runId:"1.2.2-1750189826761",date:"2024-11-28",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.2",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.2/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6249.74,totalRequests:187495,latency:{min:333,mean:5937,max:75075,pstdev:10895,percentiles:{p50:2840,p75:4501,p80:5077,p90:7640,p95:41435,p99:53243,p999:58066}},resources:{envoyGateway:{memory:{min:106.26,max:106.26,mean:106.26},cpu:{min:.73,max:.73,mean:.73}},envoyProxy:{memory:{min:26.09,max:26.09,mean:26.09},cpu:{min:30.41,max:30.41,mean:30.41}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6140.58,totalRequests:184222,latency:{min:373,mean:5812,max:79740,pstdev:11513,percentiles:{p50:2590,p75:4071,p80:4583,p90:6812,p95:46811,p99:54179,p999:61151}},resources:{envoyGateway:{memory:{min:131.24,max:131.24,mean:131.24},cpu:{min:1.34,max:1.34,mean:1.34}},envoyProxy:{memory:{min:32.26,max:32.26,mean:32.26},cpu:{min:60.74,max:60.74,mean:60.74}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6149.72,totalRequests:184494,latency:{min:366,mean:5813,max:89935,pstdev:11434,percentiles:{p50:2637,p75:4073,p80:4561,p90:6680,p95:46505,p99:53872,p999:60348}},resources:{envoyGateway:{memory:{min:133.05,max:133.05,mean:133.05},cpu:{min:2.75,max:2.75,mean:2.75}},envoyProxy:{memory:{min:38.38,max:38.38,mean:38.38},cpu:{min:91.57,max:91.57,mean:91.57}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:6076.78,totalRequests:182305,latency:{min:361,mean:6031,max:87502,pstdev:11819,percentiles:{p50:2675,p75:4203,p80:4751,p90:7118,p95:47147,p99:55078,p999:67106}},resources:{envoyGateway:{memory:{min:153.62,max:153.62,mean:153.62},cpu:{min:14.77,max:14.77,mean:14.77}},envoyProxy:{memory:{min:60.45,max:60.45,mean:60.45},cpu:{min:124.04,max:124.04,mean:124.04}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5928.89,totalRequests:177873,latency:{min:336,mean:6196,max:85643,pstdev:12032,percentiles:{p50:2803,p75:4338,p80:4852,p90:7143,p95:47726,p99:55619,p999:67780}},resources:{envoyGateway:{memory:{min:145.79,max:145.79,mean:145.79},cpu:{min:27.17,max:27.17,mean:27.17}},envoyProxy:{memory:{min:80.64,max:80.64,mean:80.64},cpu:{min:157.65,max:157.65,mean:157.65}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5843.64,totalRequests:175314,latency:{min:339,mean:6452,max:101912,pstdev:12482,percentiles:{p50:2790,p75:4509,p80:5136,p90:8012,p95:47702,p99:58542,p999:74014}},resources:{envoyGateway:{memory:{min:173.7,max:173.7,mean:173.7},cpu:{min:61.12,max:61.12,mean:61.12}},envoyProxy:{memory:{min:130.89,max:130.89,mean:130.89},cpu:{min:195.74,max:195.74,mean:195.74}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:6096.9,totalRequests:182907,latency:{min:365,mean:5840,max:99377,pstdev:11326,percentiles:{p50:2735,p75:4188,p80:4674,p90:6654,p95:46344,p99:53444,p999:58591}},resources:{envoyGateway:{memory:{min:230.99,max:230.99,mean:230.99},cpu:{min:114.22,max:114.22,mean:114.22}},envoyProxy:{memory:{min:121.56,max:121.56,mean:121.56},cpu:{min:358.71,max:358.71,mean:358.71}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:6151.76,totalRequests:184556,latency:{min:376,mean:5805,max:84885,pstdev:11572,percentiles:{p50:2520,p75:3969,p80:4498,p90:6842,p95:46837,p99:54761,p999:62570}},resources:{envoyGateway:{memory:{min:233.63,max:233.63,mean:233.63},cpu:{min:113.65,max:113.65,mean:113.65}},envoyProxy:{memory:{min:121.86,max:121.86,mean:121.86},cpu:{min:328.3,max:328.3,mean:328.3}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:6157.53,totalRequests:184729,latency:{min:379,mean:5964,max:75988,pstdev:11502,percentiles:{p50:2743,p75:4204,p80:4695,p90:6941,p95:46497,p99:54179,p999:62005}},resources:{envoyGateway:{memory:{min:141.36,max:141.36,mean:141.36},cpu:{min:112.67,max:112.67,mean:112.67}},envoyProxy:{memory:{min:122.04,max:122.04,mean:122.04},cpu:{min:297.59,max:297.59,mean:297.59}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:6060.5,totalRequests:181818,latency:{min:360,mean:6022,max:92483,pstdev:11657,percentiles:{p50:2685,p75:4265,p80:4811,p90:7313,p95:46495,p99:54495,p999:64219}},resources:{envoyGateway:{memory:{min:150.71,max:150.71,mean:150.71},cpu:{min:102.4,max:102.4,mean:102.4}},envoyProxy:{memory:{min:130.9,max:130.9,mean:130.9},cpu:{min:265.29,max:265.29,mean:265.29}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5966.83,totalRequests:179008,latency:{min:343,mean:5962,max:102715,pstdev:11763,percentiles:{p50:2668,p75:4125,p80:4633,p90:6863,p95:46741,p99:54929,p999:67018}},resources:{envoyGateway:{memory:{min:162.62,max:162.62,mean:162.62},cpu:{min:91.03,max:91.03,mean:91.03}},envoyProxy:{memory:{min:131.05,max:131.05,mean:131.05},cpu:{min:232.55,max:232.55,mean:232.55}}},poolOverflow:363,upstreamConnections:37}]},uie={metadata:{version:"1.2.1",runId:"1.2.1-1750189826759",date:"2024-11-07",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.1",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.1/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6110.53,totalRequests:183316,latency:{min:337,mean:6415,max:92647,pstdev:11350,percentiles:{p50:3107,p75:5037,p80:5711,p90:8782,p95:45103,p99:53942,p999:60790}},resources:{envoyGateway:{memory:{min:111.18,max:111.18,mean:111.18},cpu:{min:.79,max:.79,mean:.79}},envoyProxy:{memory:{min:24.25,max:24.25,mean:24.25},cpu:{min:30.62,max:30.62,mean:30.62}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6011.43,totalRequests:180343,latency:{min:377,mean:6244,max:72724,pstdev:11870,percentiles:{p50:2835,p75:4408,p80:4939,p90:7412,p95:47611,p99:54769,p999:61716}},resources:{envoyGateway:{memory:{min:116.45,max:116.45,mean:116.45},cpu:{min:1.59,max:1.59,mean:1.59}},envoyProxy:{memory:{min:30.41,max:30.41,mean:30.41},cpu:{min:61.42,max:61.42,mean:61.42}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5961.65,totalRequests:178854,latency:{min:370,mean:5979,max:81096,pstdev:11586,percentiles:{p50:2705,p75:4189,p80:4699,p90:7030,p95:46987,p99:54095,p999:61222}},resources:{envoyGateway:{memory:{min:128.02,max:128.02,mean:128.02},cpu:{min:3.04,max:3.04,mean:3.04}},envoyProxy:{memory:{min:36.55,max:36.55,mean:36.55},cpu:{min:92.49,max:92.49,mean:92.49}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5921.3,totalRequests:177639,latency:{min:376,mean:6208,max:100098,pstdev:11901,percentiles:{p50:2770,p75:4413,p80:5009,p90:7647,p95:46934,p99:55273,p999:68509}},resources:{envoyGateway:{memory:{min:144.93,max:144.93,mean:144.93},cpu:{min:15.11,max:15.11,mean:15.11}},envoyProxy:{memory:{min:58.75,max:58.75,mean:58.75},cpu:{min:125.9,max:125.9,mean:125.9}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5876.24,totalRequests:176290,latency:{min:365,mean:6248,max:80101,pstdev:12134,percentiles:{p50:2759,p75:4348,p80:4922,p90:7422,p95:47855,p99:56041,p999:67145}},resources:{envoyGateway:{memory:{min:155.94,max:155.94,mean:155.94},cpu:{min:27.72,max:27.72,mean:27.72}},envoyProxy:{memory:{min:80.95,max:80.95,mean:80.95},cpu:{min:159.58,max:159.58,mean:159.58}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5744.1,totalRequests:172323,latency:{min:380,mean:6374,max:100245,pstdev:12424,percentiles:{p50:2775,p75:4337,p80:4899,p90:7542,p95:47699,p99:59248,p999:71761}},resources:{envoyGateway:{memory:{min:184.41,max:184.41,mean:184.41},cpu:{min:61.5,max:61.5,mean:61.5}},envoyProxy:{memory:{min:129.19,max:129.19,mean:129.19},cpu:{min:199.75,max:199.75,mean:199.75}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:6028.67,totalRequests:180864,latency:{min:361,mean:5919,max:75882,pstdev:11427,percentiles:{p50:2729,p75:4244,p80:4783,p90:6934,p95:46608,p99:53897,p999:59893}},resources:{envoyGateway:{memory:{min:229.41,max:229.41,mean:229.41},cpu:{min:114.16,max:114.16,mean:114.16}},envoyProxy:{memory:{min:121.69,max:121.69,mean:121.69},cpu:{min:363.78,max:363.78,mean:363.78}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:6093.21,totalRequests:182799,latency:{min:364,mean:5859,max:73809,pstdev:11454,percentiles:{p50:2634,p75:4171,p80:4702,p90:7002,p95:46548,p99:53979,p999:62793}},resources:{envoyGateway:{memory:{min:236.91,max:236.91,mean:236.91},cpu:{min:113.6,max:113.6,mean:113.6}},envoyProxy:{memory:{min:122.3,max:122.3,mean:122.3},cpu:{min:333.22,max:333.22,mean:333.22}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:6057.56,totalRequests:181727,latency:{min:366,mean:5898,max:83623,pstdev:11560,percentiles:{p50:2628,p75:4159,p80:4695,p90:6996,p95:46897,p99:54495,p999:61849}},resources:{envoyGateway:{memory:{min:143.71,max:143.71,mean:143.71},cpu:{min:112.58,max:112.58,mean:112.58}},envoyProxy:{memory:{min:121.84,max:121.84,mean:121.84},cpu:{min:302.58,max:302.58,mean:302.58}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5899.93,totalRequests:176998,latency:{min:329,mean:6218,max:88965,pstdev:12007,percentiles:{p50:2818,p75:4388,p80:4920,p90:7204,p95:47871,p99:55517,p999:65886}},resources:{envoyGateway:{memory:{min:154.24,max:154.24,mean:154.24},cpu:{min:102.3,max:102.3,mean:102.3}},envoyProxy:{memory:{min:129.34,max:129.34,mean:129.34},cpu:{min:270.21,max:270.21,mean:270.21}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5862.2,totalRequests:175868,latency:{min:359,mean:6106,max:107622,pstdev:11962,percentiles:{p50:2648,p75:4343,p80:4933,p90:7617,p95:47341,p99:55508,p999:69103}},resources:{envoyGateway:{memory:{min:153.72,max:153.72,mean:153.72},cpu:{min:91.07,max:91.07,mean:91.07}},envoyProxy:{memory:{min:129.18,max:129.18,mean:129.18},cpu:{min:237.04,max:237.04,mean:237.04}}},poolOverflow:363,upstreamConnections:37}]},cie={metadata:{version:"1.2.0",runId:"1.2.0-1750189826754",date:"2024-11-06",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.0",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.0/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6006.27,totalRequests:180191,latency:{min:359,mean:6202,max:74358,pstdev:11262,percentiles:{p50:2976,p75:4719,p80:5330,p90:8159,p95:44003,p99:54190,p999:59357}},resources:{envoyGateway:{memory:{min:113.66,max:113.66,mean:113.66},cpu:{min:.75,max:.75,mean:.75}},envoyProxy:{memory:{min:25.55,max:25.55,mean:25.55},cpu:{min:30.41,max:30.41,mean:30.41}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5988.15,totalRequests:179650,latency:{min:366,mean:6093,max:82386,pstdev:11670,percentiles:{p50:2838,p75:4283,p80:4798,p90:6972,p95:47523,p99:54038,p999:59813}},resources:{envoyGateway:{memory:{min:119.16,max:119.16,mean:119.16},cpu:{min:1.53,max:1.53,mean:1.53}},envoyProxy:{memory:{min:31.71,max:31.71,mean:31.71},cpu:{min:61.03,max:61.03,mean:61.03}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5930.13,totalRequests:177905,latency:{min:374,mean:6182,max:93884,pstdev:11844,percentiles:{p50:2812,p75:4420,p80:4967,p90:7339,p95:47618,p99:54661,p999:61865}},resources:{envoyGateway:{memory:{min:123.35,max:123.35,mean:123.35},cpu:{min:2.89,max:2.89,mean:2.89}},envoyProxy:{memory:{min:37.86,max:37.86,mean:37.86},cpu:{min:91.87,max:91.87,mean:91.87}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5713.27,totalRequests:171401,latency:{min:384,mean:6405,max:105545,pstdev:12313,percentiles:{p50:2832,p75:4450,p80:5057,p90:7773,p95:48732,p99:56084,p999:66220}},resources:{envoyGateway:{memory:{min:150.92,max:150.92,mean:150.92},cpu:{min:15.08,max:15.08,mean:15.08}},envoyProxy:{memory:{min:60.05,max:60.05,mean:60.05},cpu:{min:125.09,max:125.09,mean:125.09}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5689.03,totalRequests:170675,latency:{min:365,mean:5939,max:98639,pstdev:11585,percentiles:{p50:2715,p75:4258,p80:4772,p90:7055,p95:45996,p99:54368,p999:68464}},resources:{envoyGateway:{memory:{min:156.97,max:156.97,mean:156.97},cpu:{min:27.62,max:27.62,mean:27.62}},envoyProxy:{memory:{min:82.26,max:82.26,mean:82.26},cpu:{min:158.86,max:158.86,mean:158.86}}},poolOverflow:365,upstreamConnections:35},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5407.08,totalRequests:162220,latency:{min:371,mean:6424,max:131579,pstdev:12473,percentiles:{p50:2692,p75:4503,p80:5177,p90:8264,p95:47540,p99:58488,p999:72720}},resources:{envoyGateway:{memory:{min:215.93,max:215.93,mean:215.93},cpu:{min:61.56,max:61.56,mean:61.56}},envoyProxy:{memory:{min:130.5,max:130.5,mean:130.5},cpu:{min:197.45,max:197.45,mean:197.45}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5905.23,totalRequests:177157,latency:{min:396,mean:6205,max:92979,pstdev:12065,percentiles:{p50:2713,p75:4262,p80:4832,p90:7415,p95:48306,p99:55736,p999:63318}},resources:{envoyGateway:{memory:{min:233.71,max:233.71,mean:233.71},cpu:{min:114.53,max:114.53,mean:114.53}},envoyProxy:{memory:{min:118.94,max:118.94,mean:118.94},cpu:{min:360.39,max:360.39,mean:360.39}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5793.19,totalRequests:173800,latency:{min:385,mean:6501,max:86843,pstdev:12452,percentiles:{p50:2744,p75:4568,p80:5227,p90:8494,p95:48965,p99:56467,p999:65382}},resources:{envoyGateway:{memory:{min:202.08,max:202.08,mean:202.08},cpu:{min:113.96,max:113.96,mean:113.96}},envoyProxy:{memory:{min:121.24,max:121.24,mean:121.24},cpu:{min:329.91,max:329.91,mean:329.91}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5783.8,totalRequests:173514,latency:{min:385,mean:6179,max:85405,pstdev:11889,percentiles:{p50:2707,p75:4462,p80:5071,p90:7760,p95:47423,p99:54994,p999:64567}},resources:{envoyGateway:{memory:{min:144.59,max:144.59,mean:144.59},cpu:{min:112.93,max:112.93,mean:112.93}},envoyProxy:{memory:{min:121.22,max:121.22,mean:121.22},cpu:{min:299.28,max:299.28,mean:299.28}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5804.51,totalRequests:174139,latency:{min:384,mean:6147,max:82661,pstdev:11892,percentiles:{p50:2807,p75:4284,p80:4791,p90:7039,p95:47558,p99:55162,p999:66723}},resources:{envoyGateway:{memory:{min:160.23,max:160.23,mean:160.23},cpu:{min:102.85,max:102.85,mean:102.85}},envoyProxy:{memory:{min:130.62,max:130.62,mean:130.62},cpu:{min:267.09,max:267.09,mean:267.09}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5804.87,totalRequests:174149,latency:{min:368,mean:5828,max:106119,pstdev:11561,percentiles:{p50:2647,p75:4078,p80:4553,p90:6656,p95:46047,p99:55025,p999:66633}},resources:{envoyGateway:{memory:{min:155.88,max:155.88,mean:155.88},cpu:{min:91.5,max:91.5,mean:91.5}},envoyProxy:{memory:{min:130.61,max:130.61,mean:130.61},cpu:{min:234.47,max:234.47,mean:234.47}}},poolOverflow:365,upstreamConnections:35}]},fie={metadata:{version:"1.1.4",runId:"1.1.4-1750190329987",date:"2024-12-13",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.4",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.4/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5971.73,totalRequests:179152,latency:{min:354,mean:6247,max:97591,pstdev:11371,percentiles:{p50:2948,p75:4694,p80:5352,p90:8420,p95:44519,p99:54398,p999:62244}},resources:{envoyGateway:{memory:{min:82.79,max:82.79,mean:82.79},cpu:{min:1.5000000000000002,max:1.5000000000000002,mean:1.5000000000000002}},envoyProxy:{memory:{min:24.11,max:24.11,mean:24.11},cpu:{min:101.53333333333335,max:101.53333333333335,mean:101.53333333333335}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5957.22,totalRequests:178717,latency:{min:385,mean:6145,max:93360,pstdev:11838,percentiles:{p50:2751,p75:4352,p80:4922,p90:7436,p95:47679,p99:54878,p999:62414}},resources:{envoyGateway:{memory:{min:103.29,max:103.29,mean:103.29},cpu:{min:6.800000000000001,max:6.800000000000001,mean:6.800000000000001}},envoyProxy:{memory:{min:32.29,max:32.29,mean:32.29},cpu:{min:204,max:204,mean:204}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5896.53,totalRequests:176899,latency:{min:360,mean:6376,max:93995,pstdev:12077,percentiles:{p50:2905,p75:4542,p80:5112,p90:7699,p95:48019,p99:55472,p999:63707}},resources:{envoyGateway:{memory:{min:151.7,max:151.7,mean:151.7},cpu:{min:32.599999999999994,max:32.599999999999994,mean:32.599999999999994}},envoyProxy:{memory:{min:46.46,max:46.46,mean:46.46},cpu:{min:309.8,max:309.8,mean:309.8}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5885.1,totalRequests:176553,latency:{min:370,mean:6378,max:102457,pstdev:12096,percentiles:{p50:2834,p75:4508,p80:5093,p90:7817,p95:48099,p99:55572,p999:64329}},resources:{envoyGateway:{memory:{min:763.38,max:763.38,mean:763.38},cpu:{min:605.6333333333333,max:605.6333333333333,mean:605.6333333333333}},envoyProxy:{memory:{min:150.81,max:150.81,mean:150.81},cpu:{min:494.66666666666674,max:494.66666666666674,mean:494.66666666666674}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5642.37,totalRequests:169274,latency:{min:314,mean:6430,max:135987,pstdev:12216,percentiles:{p50:2801,p75:4489,p80:5175,p90:8673,p95:46690,p99:56358,p999:73814}},resources:{envoyGateway:{memory:{min:1603.28,max:1603.28,mean:1603.28},cpu:{min:41.63333333333333,max:41.63333333333333,mean:41.63333333333333}},envoyProxy:{memory:{min:289.75,max:289.75,mean:289.75},cpu:{min:727.1666666666666,max:727.1666666666666,mean:727.1666666666666}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5993.8,totalRequests:179822,latency:{min:381,mean:5965,max:84086,pstdev:11660,percentiles:{p50:2666,p75:4169,p80:4715,p90:6995,p95:47218,p99:54775,p999:61200}},resources:{envoyGateway:{memory:{min:117.16,max:117.16,mean:117.16},cpu:{min:518.0333333333333,max:518.0333333333333,mean:518.0333333333333}},envoyProxy:{memory:{min:278.72,max:278.72,mean:278.72},cpu:{min:1205.8,max:1205.8,mean:1205.8}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5947.1,totalRequests:178412,latency:{min:346,mean:5809,max:76681,pstdev:11155,percentiles:{p50:2707,p75:4164,p80:4684,p90:6938,p95:45451,p99:53227,p999:59303}},resources:{envoyGateway:{memory:{min:123.23,max:123.23,mean:123.23},cpu:{min:512.5333333333333,max:512.5333333333333,mean:512.5333333333333}},envoyProxy:{memory:{min:291.25,max:291.25,mean:291.25},cpu:{min:1103.6333333333334,max:1103.6333333333334,mean:1103.6333333333334}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:4884.46,totalRequests:146534,latency:{min:362,mean:7148,max:137863,pstdev:11237,percentiles:{p50:3375,p75:6266,p80:7621,p90:17699,p95:31992,p99:59576,p999:83935}},resources:{envoyGateway:{memory:{min:338.12,max:338.12,mean:338.12},cpu:{min:488.1333333333333,max:488.1333333333333,mean:488.1333333333333}},envoyProxy:{memory:{min:294.41,max:294.41,mean:294.41},cpu:{min:993,max:993,mean:993}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5737.62,totalRequests:172120,latency:{min:345,mean:6192,max:117288,pstdev:11530,percentiles:{p50:2822,p75:4535,p80:5155,p90:8463,p95:42631,p99:55584,p999:70291}},resources:{envoyGateway:{memory:{min:679.73,max:679.73,mean:679.73},cpu:{min:18.76666666666667,max:18.76666666666667,mean:18.76666666666667}},envoyProxy:{memory:{min:285.93,max:285.93,mean:285.93},cpu:{min:833.4333333333334,max:833.4333333333334,mean:833.4333333333334}}},poolOverflow:363,upstreamConnections:37}]},pie={metadata:{version:"1.1.3",runId:"1.1.3-1750190329984",date:"2024-11-04",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.3",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.3/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6070.53,totalRequests:182116,latency:{min:353,mean:6263,max:87117,pstdev:11274,percentiles:{p50:2994,p75:4783,p80:5441,p90:8506,p95:44029,p99:54130,p999:59291}},resources:{envoyGateway:{memory:{min:85.16,max:85.16,mean:85.16},cpu:{min:1.3666666666666665,max:1.3666666666666665,mean:1.3666666666666665}},envoyProxy:{memory:{min:26,max:26,mean:26},cpu:{min:101.43333333333334,max:101.43333333333334,mean:101.43333333333334}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5999.45,totalRequests:179985,latency:{min:368,mean:6117,max:76840,pstdev:11675,percentiles:{p50:2803,p75:4339,p80:4903,p90:7204,p95:47128,p99:54317,p999:60557}},resources:{envoyGateway:{memory:{min:102.18,max:102.18,mean:102.18},cpu:{min:7.033333333333333,max:7.033333333333333,mean:7.033333333333333}},envoyProxy:{memory:{min:34.18,max:34.18,mean:34.18},cpu:{min:203.56666666666666,max:203.56666666666666,mean:203.56666666666666}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6053.06,totalRequests:181592,latency:{min:390,mean:5889,max:94826,pstdev:11642,percentiles:{p50:2599,p75:4075,p80:4583,p90:6945,p95:47128,p99:54872,p999:62212}},resources:{envoyGateway:{memory:{min:151.34,max:151.34,mean:151.34},cpu:{min:31.633333333333336,max:31.633333333333336,mean:31.633333333333336}},envoyProxy:{memory:{min:48.34,max:48.34,mean:48.34},cpu:{min:309.06666666666666,max:309.06666666666666,mean:309.06666666666666}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5895.77,totalRequests:176873,latency:{min:378,mean:6220,max:100757,pstdev:12033,percentiles:{p50:2723,p75:4341,p80:4931,p90:7644,p95:47828,p99:55521,p999:67383}},resources:{envoyGateway:{memory:{min:687.16,max:687.16,mean:687.16},cpu:{min:578.2333333333332,max:578.2333333333332,mean:578.2333333333332}},envoyProxy:{memory:{min:150.69,max:150.69,mean:150.69},cpu:{min:488.20000000000005,max:488.20000000000005,mean:488.20000000000005}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5818.09,totalRequests:174543,latency:{min:356,mean:6109,max:107913,pstdev:11285,percentiles:{p50:2832,p75:4538,p80:5163,p90:8134,p95:42639,p99:54546,p999:67543}},resources:{envoyGateway:{memory:{min:1329.35,max:1329.35,mean:1329.35},cpu:{min:61.33333333333333,max:61.33333333333333,mean:61.33333333333333}},envoyProxy:{memory:{min:303.55,max:303.55,mean:303.55},cpu:{min:731.4333333333334,max:731.4333333333334,mean:731.4333333333334}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5996.79,totalRequests:179907,latency:{min:367,mean:6127,max:77688,pstdev:11777,percentiles:{p50:2745,p75:4292,p80:4835,p90:7317,p95:47597,p99:54706,p999:61323}},resources:{envoyGateway:{memory:{min:125.62,max:125.62,mean:125.62},cpu:{min:525.5,max:525.5,mean:525.5}},envoyProxy:{memory:{min:289.68,max:289.68,mean:289.68},cpu:{min:1239.6,max:1239.6,mean:1239.6}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5732.14,totalRequests:171956,latency:{min:336,mean:4876,max:76279,pstdev:10072,percentiles:{p50:2290,p75:3444,p80:3846,p90:5476,p95:24546,p99:51763,p999:57040}},resources:{envoyGateway:{memory:{min:132.64,max:132.64,mean:132.64},cpu:{min:520.8333333333333,max:520.8333333333333,mean:520.8333333333333}},envoyProxy:{memory:{min:291.68,max:291.68,mean:291.68},cpu:{min:1138.0333333333335,max:1138.0333333333335,mean:1138.0333333333335}}},poolOverflow:371,upstreamConnections:29},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5311.34,totalRequests:159332,latency:{min:362,mean:6219,max:144302,pstdev:11133,percentiles:{p50:2808,p75:4741,p80:5579,p90:10689,p95:37480,p99:53626,p999:73998}},resources:{envoyGateway:{memory:{min:179.01,max:179.01,mean:179.01},cpu:{min:497.9666666666666,max:497.9666666666666,mean:497.9666666666666}},envoyProxy:{memory:{min:298.77,max:298.77,mean:298.77},cpu:{min:1034.033333333333,max:1034.033333333333,mean:1034.033333333333}}},poolOverflow:365,upstreamConnections:35},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5633.85,totalRequests:169021,latency:{min:369,mean:6266,max:106577,pstdev:11127,percentiles:{p50:2908,p75:4793,p80:5511,p90:9568,p95:36169,p99:54472,p999:68628}},resources:{envoyGateway:{memory:{min:487.12,max:487.12,mean:487.12},cpu:{min:27.133333333333336,max:27.133333333333336,mean:27.133333333333336}},envoyProxy:{memory:{min:299.84,max:299.84,mean:299.84},cpu:{min:837.8666666666668,max:837.8666666666668,mean:837.8666666666668}}},poolOverflow:363,upstreamConnections:37}]},die={metadata:{version:"1.1.2",runId:"1.1.2-1750190329982",date:"2024-09-24",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.2",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.2/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5649.72,totalRequests:169493,latency:{min:356,mean:6560,max:72347,pstdev:11796,percentiles:{p50:3044,p75:5011,p80:5690,p90:8937,p95:46880,p99:54560,p999:59316}},resources:{envoyGateway:{memory:{min:86.72,max:86.72,mean:86.72},cpu:{min:1.5666666666666667,max:1.5666666666666667,mean:1.5666666666666667}},envoyProxy:{memory:{min:24.26,max:24.26,mean:24.26},cpu:{min:101.63333333333333,max:101.63333333333333,mean:101.63333333333333}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5594.14,totalRequests:167826,latency:{min:377,mean:6225,max:71024,pstdev:11980,percentiles:{p50:2812,p75:4378,p80:4905,p90:7214,p95:48160,p99:54513,p999:59850}},resources:{envoyGateway:{memory:{min:106.76,max:106.76,mean:106.76},cpu:{min:7.7,max:7.7,mean:7.7}},envoyProxy:{memory:{min:32.43,max:32.43,mean:32.43},cpu:{min:204.53333333333333,max:204.53333333333333,mean:204.53333333333333}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5523.65,totalRequests:165711,latency:{min:379,mean:6455,max:77815,pstdev:12317,percentiles:{p50:2868,p75:4510,p80:5086,p90:7645,p95:49127,p99:55048,p999:61448}},resources:{envoyGateway:{memory:{min:149.03,max:149.03,mean:149.03},cpu:{min:29.333333333333332,max:29.333333333333332,mean:29.333333333333332}},envoyProxy:{memory:{min:46.61,max:46.61,mean:46.61},cpu:{min:309.7666666666667,max:309.7666666666667,mean:309.7666666666667}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5554.01,totalRequests:166624,latency:{min:357,mean:6246,max:99753,pstdev:12051,percentiles:{p50:2841,p75:4416,p80:4960,p90:7177,p95:48371,p99:54800,p999:63275}},resources:{envoyGateway:{memory:{min:375.51,max:375.51,mean:375.51},cpu:{min:615.1,max:615.1,mean:615.1}},envoyProxy:{memory:{min:152.97,max:152.97,mean:152.97},cpu:{min:492.4666666666667,max:492.4666666666667,mean:492.4666666666667}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5475.04,totalRequests:164256,latency:{min:365,mean:6546,max:95539,pstdev:12646,percentiles:{p50:2834,p75:4484,p80:5075,p90:7891,p95:49397,p99:56231,p999:67629}},resources:{envoyGateway:{memory:{min:1340.6,max:1340.6,mean:1340.6},cpu:{min:38.333333333333336,max:38.333333333333336,mean:38.333333333333336}},envoyProxy:{memory:{min:281.71,max:281.71,mean:281.71},cpu:{min:718.0666666666666,max:718.0666666666666,mean:718.0666666666666}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5657.68,totalRequests:169734,latency:{min:355,mean:7320,max:87252,pstdev:13162,percentiles:{p50:3307,p75:5218,p80:5885,p90:9252,p95:50671,p99:56332,p999:62406}},resources:{envoyGateway:{memory:{min:371.29,max:371.29,mean:371.29},cpu:{min:578.7666666666667,max:578.7666666666667,mean:578.7666666666667}},envoyProxy:{memory:{min:273.57,max:273.57,mean:273.57},cpu:{min:1224,max:1224,mean:1224}}},poolOverflow:356,upstreamConnections:44},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5587.8,totalRequests:167636,latency:{min:356,mean:6346,max:68095,pstdev:12097,percentiles:{p50:2890,p75:4509,p80:5041,p90:7495,p95:48560,p99:54345,p999:60436}},resources:{envoyGateway:{memory:{min:342.8,max:342.8,mean:342.8},cpu:{min:573.3000000000001,max:573.3000000000001,mean:573.3000000000001}},envoyProxy:{memory:{min:274.84,max:274.84,mean:274.84},cpu:{min:1122.2333333333333,max:1122.2333333333333,mean:1122.2333333333333}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:4098.74,totalRequests:122966,latency:{min:347,mean:3660,max:99745,pstdev:7371,percentiles:{p50:1658,p75:2735,p80:3147,p90:5306,p95:18030,p99:42778,p999:60440}},resources:{envoyGateway:{memory:{min:433.01,max:433.01,mean:433.01},cpu:{min:486.96666666666664,max:486.96666666666664,mean:486.96666666666664}},envoyProxy:{memory:{min:281.27,max:281.27,mean:281.27},cpu:{min:996.0333333333333,max:996.0333333333333,mean:996.0333333333333}}},poolOverflow:384,upstreamConnections:16},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5306.46,totalRequests:159194,latency:{min:360,mean:6884,max:106807,pstdev:12850,percentiles:{p50:2983,p75:4873,p80:5573,p90:9215,p95:49102,p99:58521,p999:70213}},resources:{envoyGateway:{memory:{min:232.76,max:232.76,mean:232.76},cpu:{min:16.299999999999997,max:16.299999999999997,mean:16.299999999999997}},envoyProxy:{memory:{min:282.68,max:282.68,mean:282.68},cpu:{min:825.4333333333333,max:825.4333333333333,mean:825.4333333333333}}},poolOverflow:361,upstreamConnections:39}]},mie={metadata:{version:"1.1.1",runId:"1.1.1-1750190329981",date:"2024-09-12",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.1",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.1/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6258.99,totalRequests:187774,latency:{min:333,mean:5933,max:71266,pstdev:10816,percentiles:{p50:2898,p75:4513,p80:5099,p90:7661,p95:40607,p99:53149,p999:58789}},resources:{envoyGateway:{memory:{min:84.04,max:84.04,mean:84.04},cpu:{min:1.5333333333333334,max:1.5333333333333334,mean:1.5333333333333334}},envoyProxy:{memory:{min:25.57,max:25.57,mean:25.57},cpu:{min:101.33333333333331,max:101.33333333333331,mean:101.33333333333331}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6118.28,totalRequests:183552,latency:{min:359,mean:5828,max:81178,pstdev:11437,percentiles:{p50:2646,p75:4049,p80:4561,p90:6666,p95:46723,p99:53913,p999:60094}},resources:{envoyGateway:{memory:{min:101.33,max:101.33,mean:101.33},cpu:{min:6.8999999999999995,max:6.8999999999999995,mean:6.8999999999999995}},envoyProxy:{memory:{min:33.75,max:33.75,mean:33.75},cpu:{min:203.6,max:203.6,mean:203.6}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6045.36,totalRequests:181361,latency:{min:377,mean:5908,max:88063,pstdev:11539,percentiles:{p50:2659,p75:4143,p80:4675,p90:6863,p95:46733,p99:54091,p999:63211}},resources:{envoyGateway:{memory:{min:115.34,max:115.34,mean:115.34},cpu:{min:32.800000000000004,max:32.800000000000004,mean:32.800000000000004}},envoyProxy:{memory:{min:47.79,max:47.79,mean:47.79},cpu:{min:308.96666666666664,max:308.96666666666664,mean:308.96666666666664}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5881.18,totalRequests:176436,latency:{min:327,mean:6376,max:130330,pstdev:12048,percentiles:{p50:2843,p75:4548,p80:5181,p90:8168,p95:47517,p99:55470,p999:66041}},resources:{envoyGateway:{memory:{min:608.65,max:608.65,mean:608.65},cpu:{min:625.6666666666666,max:625.6666666666666,mean:625.6666666666666}},envoyProxy:{memory:{min:152.29,max:152.29,mean:152.29},cpu:{min:492.5666666666667,max:492.5666666666667,mean:492.5666666666667}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5875.93,totalRequests:176280,latency:{min:381,mean:6086,max:86654,pstdev:11932,percentiles:{p50:2704,p75:4181,p80:4727,p90:7177,p95:47091,p99:55814,p999:68415}},resources:{envoyGateway:{memory:{min:1308.52,max:1308.52,mean:1308.52},cpu:{min:39.49999999999999,max:39.49999999999999,mean:39.49999999999999}},envoyProxy:{memory:{min:283.24,max:283.24,mean:283.24},cpu:{min:707.1333333333332,max:707.1333333333332,mean:707.1333333333332}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:6077.56,totalRequests:182327,latency:{min:362,mean:6197,max:92372,pstdev:11720,percentiles:{p50:2824,p75:4438,p80:5e3,p90:7503,p95:47110,p99:54169,p999:60426}},resources:{envoyGateway:{memory:{min:121.13,max:121.13,mean:121.13},cpu:{min:544.5333333333334,max:544.5333333333334,mean:544.5333333333334}},envoyProxy:{memory:{min:277.29,max:277.29,mean:277.29},cpu:{min:1206.4666666666665,max:1206.4666666666665,mean:1206.4666666666665}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:6047.67,totalRequests:181438,latency:{min:370,mean:6062,max:92168,pstdev:11743,percentiles:{p50:2733,p75:4268,p80:4801,p90:7226,p95:47095,p99:54886,p999:61917}},resources:{envoyGateway:{memory:{min:126.22,max:126.22,mean:126.22},cpu:{min:538.8333333333334,max:538.8333333333334,mean:538.8333333333334}},envoyProxy:{memory:{min:285.62,max:285.62,mean:285.62},cpu:{min:1104.3000000000002,max:1104.3000000000002,mean:1104.3000000000002}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:4654.8,totalRequests:139655,latency:{min:336,mean:4675,max:107409,pstdev:9843,percentiles:{p50:2048,p75:3459,p80:4015,p90:6531,p95:19138,p99:57518,p999:73269}},resources:{envoyGateway:{memory:{min:480.36,max:480.36,mean:480.36},cpu:{min:377,max:377,mean:377}},envoyProxy:{memory:{min:289.51,max:289.51,mean:289.51},cpu:{min:969.2333333333332,max:969.2333333333332,mean:969.2333333333332}}},poolOverflow:377,upstreamConnections:23},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5676.68,totalRequests:170301,latency:{min:376,mean:6244,max:153264,pstdev:11618,percentiles:{p50:2797,p75:4618,p80:5324,p90:8807,p95:40232,p99:56496,p999:73506}},resources:{envoyGateway:{memory:{min:436.58,max:436.58,mean:436.58},cpu:{min:28.066666666666666,max:28.066666666666666,mean:28.066666666666666}},envoyProxy:{memory:{min:283.47,max:283.47,mean:283.47},cpu:{min:813.3666666666667,max:813.3666666666667,mean:813.3666666666667}}},poolOverflow:363,upstreamConnections:37}]},hie={metadata:{version:"1.1.0",runId:"1.1.0-1750190329977",date:"2024-07-23",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.0",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.0/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6181.97,totalRequests:185463,latency:{min:362,mean:5902,max:73084,pstdev:11039,percentiles:{p50:2765,p75:4364,p80:4935,p90:7504,p95:41244,p99:53929,p999:61147}},resources:{envoyGateway:{memory:{min:86.2,max:86.2,mean:86.2},cpu:{min:1.4333333333333333,max:1.4333333333333333,mean:1.4333333333333333}},envoyProxy:{memory:{min:24.09,max:24.09,mean:24.09},cpu:{min:101.36666666666667,max:101.36666666666667,mean:101.36666666666667}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6103.97,totalRequests:183121,latency:{min:354,mean:5852,max:75943,pstdev:11382,percentiles:{p50:2681,p75:4083,p80:4601,p90:6825,p95:46262,p99:53862,p999:60651}},resources:{envoyGateway:{memory:{min:100.14,max:100.14,mean:100.14},cpu:{min:7.233333333333333,max:7.233333333333333,mean:7.233333333333333}},envoyProxy:{memory:{min:32.25,max:32.25,mean:32.25},cpu:{min:203.6,max:203.6,mean:203.6}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6074.87,totalRequests:182247,latency:{min:371,mean:5877,max:94171,pstdev:11399,percentiles:{p50:2732,p75:4191,p80:4677,p90:6801,p95:46481,p99:53866,p999:61036}},resources:{envoyGateway:{memory:{min:114.69,max:114.69,mean:114.69},cpu:{min:30,max:30,mean:30}},envoyProxy:{memory:{min:46.42,max:46.42,mean:46.42},cpu:{min:308.70000000000005,max:308.70000000000005,mean:308.70000000000005}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5993.57,totalRequests:179811,latency:{min:368,mean:6123,max:96571,pstdev:11831,percentiles:{p50:2753,p75:4261,p80:4799,p90:7247,p95:47368,p99:55248,p999:66586}},resources:{envoyGateway:{memory:{min:762.8,max:762.8,mean:762.8},cpu:{min:600.8666666666667,max:600.8666666666667,mean:600.8666666666667}},envoyProxy:{memory:{min:152.78,max:152.78,mean:152.78},cpu:{min:488.70000000000005,max:488.70000000000005,mean:488.70000000000005}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5812.8,totalRequests:174396,latency:{min:388,mean:6310,max:95719,pstdev:12246,percentiles:{p50:2729,p75:4334,p80:4905,p90:7607,p95:47970,p99:56811,p999:68165}},resources:{envoyGateway:{memory:{min:1593.56,max:1593.56,mean:1593.56},cpu:{min:36.56666666666667,max:36.56666666666667,mean:36.56666666666667}},envoyProxy:{memory:{min:289.79,max:289.79,mean:289.79},cpu:{min:715.6333333333333,max:715.6333333333333,mean:715.6333333333333}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5916.93,totalRequests:177517,latency:{min:385,mean:6352,max:82747,pstdev:12011,percentiles:{p50:2822,p75:4461,p80:5061,p90:7769,p95:47847,p99:55068,p999:62578}},resources:{envoyGateway:{memory:{min:124.07,max:124.07,mean:124.07},cpu:{min:519.6333333333332,max:519.6333333333332,mean:519.6333333333332}},envoyProxy:{memory:{min:284.03,max:284.03,mean:284.03},cpu:{min:1194.8666666666666,max:1194.8666666666666,mean:1194.8666666666666}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5876.35,totalRequests:176294,latency:{min:371,mean:6226,max:83869,pstdev:11816,percentiles:{p50:2770,p75:4396,p80:5e3,p90:7848,p95:47163,p99:55156,p999:64434}},resources:{envoyGateway:{memory:{min:131.62,max:131.62,mean:131.62},cpu:{min:513.6,max:513.6,mean:513.6}},envoyProxy:{memory:{min:291.73,max:291.73,mean:291.73},cpu:{min:1092.9333333333334,max:1092.9333333333334,mean:1092.9333333333334}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:4820.43,totalRequests:144617,latency:{min:342,mean:7088,max:172031,pstdev:12642,percentiles:{p50:3156,p75:5480,p80:6443,p90:12007,p95:39675,p99:63842,p999:86532}},resources:{envoyGateway:{memory:{min:374.36,max:374.36,mean:374.36},cpu:{min:462.8,max:462.8,mean:462.8}},envoyProxy:{memory:{min:289.98,max:289.98,mean:289.98},cpu:{min:980.4,max:980.4,mean:980.4}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5746.71,totalRequests:172402,latency:{min:386,mean:6313,max:101535,pstdev:11578,percentiles:{p50:2875,p75:4579,p80:5222,p90:8617,p95:44341,p99:54996,p999:67178}},resources:{envoyGateway:{memory:{min:670.44,max:670.44,mean:670.44},cpu:{min:24.333333333333332,max:24.333333333333332,mean:24.333333333333332}},envoyProxy:{memory:{min:285.86,max:285.86,mean:285.86},cpu:{min:824.5666666666667,max:824.5666666666667,mean:824.5666666666667}}},poolOverflow:362,upstreamConnections:38}]},r1=[Zoe,Qoe,Yoe,Joe,eie,tie,nie,rie,aie,oie,iie,sie,lie,uie,cie,fie,pie,die,mie,hie],vie=()=>r1.map(e=>e.metadata.version),gi=r1.find(e=>e.metadata.version==="1.4.1"),St=(gi==null?void 0:gi.results)||[];gi!=null&&gi.metadata.testConfiguration;St.length,St.filter(e=>e.phase==="scaling-up").length,St.filter(e=>e.phase==="scaling-down").length,St.length>0&&Math.max(...St.map(e=>e.routes)),St.length>0&&Math.min(...St.map(e=>e.routes)),St.length>0&&St.reduce((e,t)=>e+t.throughput,0)/St.length,St.length>0&&St.reduce((e,t)=>e+t.latency.mean,0)/St.length;St.map(e=>({routes:e.routes,phase:e.phase,p50:e.latency.percentiles.p50/1e3,p75:e.latency.percentiles.p75/1e3,p90:e.latency.percentiles.p90/1e3,p95:e.latency.percentiles.p95/1e3,p99:e.latency.percentiles.p99/1e3,p999:e.latency.percentiles.p999/1e3}));St.map(e=>({routes:e.routes,phase:e.phase,envoyGatewayMemory:e.resources.envoyGateway.memory.mean,envoyGatewayCpu:e.resources.envoyGateway.cpu.mean,envoyProxyMemory:e.resources.envoyProxy.memory.mean,envoyProxyCpu:e.resources.envoyProxy.cpu.mean}));St.map(e=>({testName:e.testName,routes:e.routes,phase:e.phase,throughput:e.throughput,meanLatency:e.latency.mean/1e3,p95Latency:e.latency.percentiles.p95/1e3,totalMemory:e.resources.envoyGateway.memory.mean+e.resources.envoyProxy.memory.mean,totalCpu:e.resources.envoyGateway.cpu.mean+e.resources.envoyProxy.cpu.mean}));const yie=()=>{const e=vie(),[t,n]=k.useState(e[0]||""),r=k.useMemo(()=>r1.find(o=>o.metadata.version===t),[t]),a=k.useMemo(()=>{if(!r)return{benchmarkResults:[],testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"},performanceSummary:{totalTests:0,scaleUpTests:0,scaleDownTests:0,maxRoutes:0,minRoutes:0,avgThroughput:0,avgLatency:0},latencyPercentileComparison:[],resourceTrends:[],performanceMatrix:[],metadata:null};const o=r.results;return{benchmarkResults:o,testConfiguration:r.metadata.testConfiguration,performanceSummary:{totalTests:o.length,scaleUpTests:o.filter(i=>i.phase==="scaling-up").length,scaleDownTests:o.filter(i=>i.phase==="scaling-down").length,maxRoutes:o.length>0?Math.max(...o.map(i=>i.routes)):0,minRoutes:o.length>0?Math.min(...o.map(i=>i.routes)):0,avgThroughput:o.length>0?o.reduce((i,s)=>i+s.throughput,0)/o.length:0,avgLatency:o.length>0?o.reduce((i,s)=>i+s.latency.mean,0)/o.length:0},latencyPercentileComparison:o.map(i=>({routes:i.routes,phase:i.phase,p50:i.latency.percentiles.p50/1e3,p75:i.latency.percentiles.p75/1e3,p90:i.latency.percentiles.p90/1e3,p95:i.latency.percentiles.p95/1e3,p99:i.latency.percentiles.p99/1e3,p999:i.latency.percentiles.p999/1e3})),resourceTrends:o.map(i=>({routes:i.routes,phase:i.phase,envoyGatewayMemory:i.resources.envoyGateway.memory.mean,envoyGatewayCpu:i.resources.envoyGateway.cpu.mean,envoyProxyMemory:i.resources.envoyProxy.memory.mean,envoyProxyCpu:i.resources.envoyProxy.cpu.mean})),performanceMatrix:o.map(i=>({testName:i.testName,routes:i.routes,phase:i.phase,throughput:i.throughput,meanLatency:i.latency.mean/1e3,p95Latency:i.latency.percentiles.p95/1e3,totalMemory:i.resources.envoyGateway.memory.mean+i.resources.envoyProxy.memory.mean,totalCpu:i.resources.envoyGateway.cpu.mean+i.resources.envoyProxy.cpu.mean})),metadata:r.metadata}},[r]);return{selectedVersion:t,setSelectedVersion:n,availableVersions:e,...a}},gie=({apiBase:e="https://envoy-gateway-benchmark-report.netlify.app/api",initialVersion:t,theme:n="light",containerClassName:r="",features:a={header:!1,versionSelector:!0,summaryCards:!0,tabs:["overview","latency","resources"]}})=>{var i,s,l,u,f,c;const o=yie();return k.useEffect(()=>{n==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},[n]),k.useEffect(()=>{const p=document.createElement("style");return p.textContent=`
+`)}}):null},sr=Zn,zn=k.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:o=!1,label:i,labelFormatter:s,labelClassName:l,formatter:u,color:p,nameKey:c,labelKey:f},d)=>{const{config:h}=KS(),m=k.useMemo(()=>{var w;if(a||!(t!=null&&t.length))return null;const[v]=t,y=`${f||v.dataKey||v.name||"value"}`,x=Iv(h,v,y),P=!f&&typeof i=="string"?((w=h[i])==null?void 0:w.label)||i:x==null?void 0:x.label;return s?b.jsx("div",{className:Oe("font-medium",l),children:s(P,t)}):P?b.jsx("div",{className:Oe("font-medium",l),children:P}):null},[i,s,t,a,l,h,f]);if(!e||!(t!=null&&t.length))return null;const g=t.length===1&&r!=="dot";return b.jsxs("div",{ref:d,className:Oe("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[g?null:m,b.jsx("div",{className:"grid gap-1.5",children:t.map((v,y)=>{const x=`${c||v.name||v.dataKey||"value"}`,P=Iv(h,v,x),w=p||v.payload.fill||v.color;return b.jsx("div",{className:Oe("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:u&&(v==null?void 0:v.value)!==void 0&&v.name?u(v.value,v.name,v,y,v.payload):b.jsxs(b.Fragment,{children:[P!=null&&P.icon?b.jsx(P.icon,{}):!o&&b.jsx("div",{className:Oe("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":g&&r==="dashed"}),style:{"--color-bg":w,"--color-border":w}}),b.jsxs("div",{className:Oe("flex flex-1 justify-between leading-none",g?"items-end":"items-center"),children:[b.jsxs("div",{className:"grid gap-1.5",children:[g?m:null,b.jsx("span",{className:"text-muted-foreground",children:(P==null?void 0:P.label)||v.name})]}),v.value&&b.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:v.value.toLocaleString()})]})]})},v.dataKey)})})]})});zn.displayName="ChartTooltip";const Foe=k.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},o)=>{const{config:i}=KS();return n!=null&&n.length?b.jsx("div",{ref:o,className:Oe("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.map(s=>{const l=`${a||s.dataKey||"value"}`,u=Iv(i,s,l);return b.jsxs("div",{className:Oe("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[u!=null&&u.icon&&!t?b.jsx(u.icon,{}):b.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:s.color}}),u==null?void 0:u.label]},s.value)})}):null});Foe.displayName="ChartLegend";function Iv(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const zoe={empty:{icon:K4,title:"No Data Available",description:"There is no data to display at the moment."},error:{icon:CT,title:"Failed to Load Data",description:"An error occurred while loading the data. Please try again."},loading:{icon:Y4,title:"Loading Data",description:"Please wait while we fetch the latest information."},"no-data":{icon:U4,title:"No Chart Data",description:"No data available to display in the chart."}},Boe=({type:e="empty",title:t,description:n,action:r,className:a})=>{const o=zoe[e],i=o.icon;return b.jsx(xe,{className:`border-dashed ${a}`,children:b.jsxs(be,{className:"flex flex-col items-center justify-center py-12 px-6 text-center",children:[b.jsx("div",{className:"rounded-full bg-gray-100 p-3 mb-4",children:b.jsx(i,{className:`h-8 w-8 text-gray-400 ${e==="loading"?"animate-spin":""}`})}),b.jsx(we,{className:"text-lg font-medium text-gray-900 mb-2",children:t||o.title}),b.jsx("p",{className:"text-sm text-gray-500 mb-6 max-w-sm",children:n||o.description}),r&&b.jsxs(wp,{onClick:r.onClick,variant:"outline",size:"sm",children:[b.jsx(Y4,{className:"h-4 w-4 mr-2"}),r.label]})]})})},Bn=({onRetry:e})=>b.jsx(Boe,{type:"no-data",title:"No Chart Data",description:"Unable to generate chart with the current data set.",action:e?{label:"Retry",onClick:e}:void 0}),lr=({text:e="Kind Cluster / GitHub CI",position:t="top-center",className:n=""})=>{const r=()=>{switch(t){case"bottom-left":return"bottom-8 left-4";case"bottom-right":return"bottom-8 right-4";case"bottom-center":return"bottom-8 left-1/2 transform -translate-x-1/2";case"top-left":return"top-4 left-4";case"top-right":return"top-4 right-4";case"top-center":return"left-1/2 transform -translate-x-1/2 -translate-y-1/2";default:return"bottom-8 left-1/2 transform -translate-x-1/2"}};return b.jsxs("div",{className:`absolute ${r()} z-10 flex items-center gap-1 px-2 py-1 bg-indigo-600/40 rounded-md border border-gray-200/30 shadow-sm ${n}`,children:[b.jsx(X4,{className:"h-3 w-3 text-white"}),b.jsx("span",{className:"text-xs text-white font-medium",children:e})]})},Hoe=({performanceMatrix:e,benchmarkResults:t,testConfiguration:n,performanceSummary:r,latencyPercentileComparison:a})=>{const o=e.filter(c=>c.phase==="scaling-up").map(c=>({routes:c.routes,throughput:Math.round(c.throughput),latency:Number(c.meanLatency.toFixed(1))})),i=t.filter(c=>c.phase==="scaling-up").map(c=>({routes:c.routes,gateway:Math.round(c.resources.envoyGateway.memory.mean),proxy:Math.round(c.resources.envoyProxy.memory.mean),total:Math.round(c.resources.envoyGateway.memory.mean+c.resources.envoyProxy.memory.mean)})),l=(()=>{if(a&&a.length>0){const c=a.filter(f=>f.phase==="scaling-up").sort((f,d)=>d.routes-f.routes)[0];if(c)return[{percentile:"P50",value:Number(c.p50.toFixed(1)),status:"excellent"},{percentile:"P75",value:Number(c.p75.toFixed(1)),status:"excellent"},{percentile:"P90",value:Number(c.p90.toFixed(1)),status:"good"},{percentile:"P95",value:Number(c.p95.toFixed(1)),status:"acceptable"},{percentile:"P99",value:Number(c.p99.toFixed(1)),status:"watch"}]}if(t&&t.length>0){const c=t.filter(f=>f.phase==="scaling-up").sort((f,d)=>d.routes-f.routes)[0];if(c&&c.latency&&c.latency.percentiles){const f=c.latency.percentiles;return[{percentile:"P50",value:Number((f.p50/1e3).toFixed(1)),status:"excellent"},{percentile:"P75",value:Number((f.p75/1e3).toFixed(1)),status:"excellent"},{percentile:"P90",value:Number((f.p90/1e3).toFixed(1)),status:"good"},{percentile:"P95",value:Number((f.p95/1e3).toFixed(1)),status:"acceptable"},{percentile:"P99",value:Number((f.p99/1e3).toFixed(1)),status:"watch"}]}}return null})(),u=i.map(c=>({routes:c.routes,gatewayPerRoute:Number((c.gateway/c.routes).toFixed(2)),proxyPerRoute:Number((c.proxy/c.routes).toFixed(2)),totalPerRoute:Number((c.total/c.routes).toFixed(2))})),p={throughput:{label:"Throughput",color:"#8b5cf6"},latency:{label:"Latency",color:"#6366f1"},gateway:{label:"Gateway",color:"#a855f7"},proxy:{label:"Proxy",color:"#4f46e5"},totalPerRoute:{label:"Total per Route",color:"#8b5cf6"},gatewayPerRoute:{label:"Gateway per Route",color:"#a855f7"},proxyPerRoute:{label:"Proxy per Route",color:"#4f46e5"}};return b.jsxs("div",{className:"space-y-6",children:[b.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Avg Throughput"}),b.jsx(MT,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[Math.round(r.avgThroughput)," RPS"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Consistent across all scales"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Mean Response Time"}),b.jsx(V4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[(r.avgLatency/1e3).toFixed(1),"ms"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"End-to-end as measured by Nighthawk"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Max Routes in Test"}),b.jsx(Z4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:r.maxRoutes}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Routes tested successfully"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Reliability"}),b.jsx(jT,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:"100%"}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Perfect system reliability"})]})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Throughput Consistency"}),b.jsx(tn,{children:"Throughput remains stable across different route scales"})]}),b.jsx(be,{children:o&&o.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:p,children:b.jsxs(Sf,{data:o,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{domain:[0,"dataMax"],tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(c,f)=>[`${c} RPS`,"Throughput"],labelFormatter:c=>`${c} routes`})}),b.jsx(pt,{dataKey:"throughput",type:"monotone",fill:"#8b5cf6",fillOpacity:.4,stroke:"#8b5cf6",strokeWidth:2})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Usage"}),b.jsx(tn,{children:"Memory scaling patterns for Gateway and Proxy components"})]}),b.jsx(be,{children:i&&i.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:p,children:b.jsxs(Sf,{data:i,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}MB`}),b.jsx(sr,{content:b.jsx(zn,{})}),b.jsx(pt,{dataKey:"gateway",type:"monotone",fill:"#a855f7",fillOpacity:.4,stroke:"#a855f7",strokeWidth:2}),b.jsx(pt,{dataKey:"proxy",type:"monotone",fill:"#4f46e5",fillOpacity:.4,stroke:"#4f46e5",strokeWidth:2})]})})]}):b.jsx(Bn,{})})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Request RTT Distribution"}),b.jsx(tn,{children:"Latency percentiles at 1000 routes (worst case)"})]}),b.jsx(be,{children:l?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:p,children:b.jsxs(qS,{data:l,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"percentile",tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}ms`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(c,f)=>[`${c}ms`,"Latency"]})}),b.jsx(Vr,{dataKey:"value",fill:"#6366f1",radius:[4,4,0,0]})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Efficiency"}),b.jsx(tn,{children:"Memory usage per route shows how efficiently memory scales with route count"})]}),b.jsx(be,{children:u&&u.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:p,children:b.jsxs(e1,{data:u,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}MB`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(c,f)=>[`${c}MB per route`,f==="gatewayPerRoute"?"Gateway":f==="proxyPerRoute"?"Proxy":"Total"],labelFormatter:c=>`${c} routes`})}),b.jsx(Rt,{dataKey:"totalPerRoute",type:"monotone",stroke:"#8b5cf6",strokeWidth:3,dot:{fill:"#8b5cf6",strokeWidth:2,r:4}}),b.jsx(Rt,{dataKey:"gatewayPerRoute",type:"monotone",stroke:"#a855f7",strokeWidth:2,strokeDasharray:"5 5",dot:{fill:"#a855f7",strokeWidth:2,r:3}}),b.jsx(Rt,{dataKey:"proxyPerRoute",type:"monotone",stroke:"#4f46e5",strokeWidth:2,strokeDasharray:"3 3",dot:{fill:"#4f46e5",strokeWidth:2,r:3}})]})})]}):b.jsx(Bn,{})})]})]})]})},Goe=({latencyPercentileComparison:e,benchmarkResults:t})=>{const n=e.filter(c=>c.phase==="scaling-up").map(c=>({routes:c.routes,p50:Number(c.p50.toFixed(1)),p95:Number(c.p95.toFixed(1)),p99:Number(c.p99.toFixed(1))})),a=(()=>{if(e&&e.length>0){const c=e.filter(f=>f.phase==="scaling-up").sort((f,d)=>d.routes-f.routes)[0];if(c)return[{percentile:"P50",value:Number(c.p50.toFixed(1)),category:"Median",status:"excellent"},{percentile:"P75",value:Number(c.p75.toFixed(1)),category:"75th",status:"excellent"},{percentile:"P90",value:Number(c.p90.toFixed(1)),category:"90th",status:"good"},{percentile:"P95",value:Number(c.p95.toFixed(1)),category:"95th",status:"watch"},{percentile:"P99",value:Number(c.p99.toFixed(1)),category:"99th",status:"alert"}]}if(t&&t.length>0){const c=t.filter(f=>f.phase==="scaling-up").sort((f,d)=>d.routes-f.routes)[0];if(c&&c.latency&&c.latency.percentiles){const f=c.latency.percentiles;return[{percentile:"P50",value:Number((f.p50/1e3).toFixed(1)),category:"Median",status:"excellent"},{percentile:"P75",value:Number((f.p75/1e3).toFixed(1)),category:"75th",status:"excellent"},{percentile:"P90",value:Number((f.p90/1e3).toFixed(1)),category:"90th",status:"good"},{percentile:"P95",value:Number((f.p95/1e3).toFixed(1)),category:"95th",status:"watch"},{percentile:"P99",value:Number((f.p99/1e3).toFixed(1)),category:"99th",status:"alert"}]}}return null})(),o=t.filter(c=>c.phase==="scaling-up").map(c=>({routes:c.routes,mean:Number((c.latency.mean/1e3).toFixed(1)),p95:Number((c.latency.percentiles.p95/1e3).toFixed(1)),ratio:Number((c.latency.percentiles.p95/c.latency.mean).toFixed(1))})),s=e&&e.length>0?e.filter(c=>c.phase==="scaling-up").sort((c,f)=>c.routes-f.routes).map(c=>({scale:`${c.routes} Routes`,p50:Number(c.p50.toFixed(1)),p95:Number(c.p95.toFixed(1)),p99:Number(c.p99.toFixed(1))})):null,l={p50:{label:"P50 (Median)",color:"#8b5cf6"},p95:{label:"P95",color:"#6366f1"},p99:{label:"P99",color:"#4f46e5"},mean:{label:"Mean",color:"#a855f7"},ratio:{label:"P95/Mean Ratio",color:"#7c3aed"}},p=(()=>{if(n.length===0)return{medianLatency:0,p95Latency:0,p99Latency:0,consistencyRatio:0};const c=n[n.length-1],f=o.length>0?o.reduce((d,h)=>d+h.ratio,0)/o.length:0;return{medianLatency:(c==null?void 0:c.p50)||0,p95Latency:(c==null?void 0:c.p95)||0,p99Latency:(c==null?void 0:c.p99)||0,consistencyRatio:f}})();return b.jsxs("div",{className:"space-y-6",children:[b.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Median RTT"}),b.jsx($T,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[p.medianLatency.toFixed(1),"ms"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Consistent across all scales"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"P95 RTT"}),b.jsx(ET,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[p.p95Latency.toFixed(1),"ms"]}),b.jsxs("p",{className:"text-xs text-muted-foreground",children:["95% of requests under ",p.p95Latency.toFixed(0),"ms"]})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Tail RTT"}),b.jsx(NT,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[p.p99Latency.toFixed(1),"ms"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"P99 RTT (1% of requests)"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Consistency"}),b.jsx(q4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[p.consistencyRatio.toFixed(1),":1"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"P95/Mean ratio"})]})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Request RTT Scaling Behavior"}),b.jsx(tn,{children:"How key percentiles perform as route count increases"})]}),b.jsx(be,{children:n&&n.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:l,children:b.jsxs(Sf,{data:n,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}ms`}),b.jsx(sr,{content:b.jsx(zn,{labelFormatter:c=>`${c} routes`})}),b.jsx(pt,{dataKey:"p99",type:"monotone",fill:"#4f46e5",fillOpacity:.2,stroke:"#4f46e5",strokeWidth:2}),b.jsx(pt,{dataKey:"p95",type:"monotone",fill:"#6366f1",fillOpacity:.3,stroke:"#6366f1",strokeWidth:2}),b.jsx(pt,{dataKey:"p50",type:"monotone",fill:"#8b5cf6",fillOpacity:.4,stroke:"#8b5cf6",strokeWidth:2})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Request RTT Distribution"}),b.jsx(tn,{children:"Percentile breakdown at 1000 routes (worst case scenario)"})]}),b.jsx(be,{children:a?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:l,children:b.jsxs(qS,{data:a,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"percentile",tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}ms`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(c,f)=>[`${c}ms`,"RTT"],labelFormatter:c=>`${c} Percentile`})}),b.jsx(Vr,{dataKey:"value",fill:"#6366f1",radius:[4,4,0,0]})]})})]}):b.jsx(Bn,{})})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Request RTT Consistency"}),b.jsx(tn,{children:"P95/Mean ratio shows how predictable RTT is"})]}),b.jsx(be,{children:o&&o.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:l,children:b.jsxs(e1,{data:o,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{yAxisId:"ratio",orientation:"left",tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}x`}),b.jsx(yt,{yAxisId:"latency",orientation:"right",tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:c=>`${c}ms`}),b.jsx(sr,{content:b.jsx(zn,{labelFormatter:c=>`${c} routes`})}),b.jsx(Rt,{yAxisId:"latency",dataKey:"mean",type:"monotone",stroke:"#a855f7",strokeWidth:2,dot:{fill:"#a855f7",strokeWidth:2,r:3}}),b.jsx(Rt,{yAxisId:"ratio",dataKey:"ratio",type:"monotone",stroke:"#7c3aed",strokeWidth:3,strokeDasharray:"5 5",dot:{fill:"#7c3aed",strokeWidth:2,r:4}})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Performance Summary"}),b.jsx(tn,{children:"RTT performance at different scales"})]}),b.jsx(be,{children:s&&s.length>0?b.jsx("div",{className:"space-y-4",children:s.map((c,f)=>b.jsx("div",{className:"flex items-center justify-between p-3 bg-muted/30 rounded-lg",children:b.jsxs("div",{className:"space-y-1",children:[b.jsx("p",{className:"font-medium",children:c.scale}),b.jsxs("div",{className:"flex space-x-4 text-sm text-muted-foreground",children:[b.jsxs("span",{children:["P50: ",c.p50,"ms"]}),b.jsxs("span",{children:["P95: ",c.p95,"ms"]}),b.jsxs("span",{children:["P99: ",c.p99,"ms"]})]})]})},f))}):b.jsx(Bn,{})})]})]})]})},Uoe=({resourceTrends:e,benchmarkResults:t})=>{const n=t.filter(f=>f.phase==="scaling-up").map(f=>({routes:f.routes,gateway:Math.round(f.resources.envoyGateway.memory.mean),proxy:Math.round(f.resources.envoyProxy.memory.mean),total:Math.round(f.resources.envoyGateway.memory.mean+f.resources.envoyProxy.memory.mean)})),r=t.filter(f=>f.phase==="scaling-up").map(f=>({routes:f.routes,gatewayMean:Number(f.resources.envoyGateway.cpu.mean.toFixed(1)),gatewayMax:Number(f.resources.envoyGateway.cpu.max.toFixed(1)),proxyMean:Number(f.resources.envoyProxy.cpu.mean.toFixed(1)),proxyMax:Number(f.resources.envoyProxy.cpu.max.toFixed(1))})),a=n.map(f=>({routes:f.routes,gatewayPerRoute:Number((f.gateway/f.routes).toFixed(2)),proxyPerRoute:Number((f.proxy/f.routes).toFixed(2)),totalPerRoute:Number((f.total/f.routes).toFixed(2))})),o=()=>{if(n.length===0)return[{component:"Gateway",min:0,max:0,scaling:"No Data",efficiency:"Unknown"},{component:"Proxy",min:0,max:0,scaling:"No Data",efficiency:"Unknown"},{component:"Total",min:0,max:0,scaling:"No Data",efficiency:"Unknown"}];const f=n.map(m=>m.gateway),d=n.map(m=>m.proxy),h=n.map(m=>m.total);return[{component:"Gateway",min:Math.min(...f),max:Math.max(...f),scaling:i(n.map(m=>m.routes),f),efficiency:s(n.map(m=>m.routes),f)},{component:"Proxy",min:Math.min(...d),max:Math.max(...d),scaling:i(n.map(m=>m.routes),d),efficiency:s(n.map(m=>m.routes),d)},{component:"Total",min:Math.min(...h),max:Math.max(...h),scaling:i(n.map(m=>m.routes),h),efficiency:s(n.map(m=>m.routes),h)}]},i=(f,d)=>{if(f.length<3)return"Insufficient Data";const h=f.length,m=f.reduce((N,M)=>N+M,0),g=d.reduce((N,M)=>N+M,0),v=f.reduce((N,M,I)=>N+M*d[I],0),y=f.reduce((N,M)=>N+M*M,0),x=d.reduce((N,M)=>N+M*M,0),P=h*v-m*g,w=Math.sqrt((h*y-m*m)*(h*x-g*g)),S=w===0?0:P/w,O=S*S,_=[];for(let N=1;N<d.length;N++)_.push(d[N]-d[N-1]);const C=_.reduce((N,M)=>N+M,0)/_.length,j=_.reduce((N,M)=>N+Math.pow(M-C,2),0)/_.length,E=Math.sqrt(j),T=C===0?0:Math.abs(E/C);return O>.95?"Highly Linear":O>.85?"Linear":T>1.5?"Step-wise":O>.7?"Moderately Linear":"Variable"},s=(f,d)=>{if(f.length<2)return"Unknown";const h=f.map((w,S)=>d[S]/w),m=h[0],g=h[h.length-1],v=(m-g)/m,y=h.reduce((w,S)=>w+S,0)/h.length,x=h.reduce((w,S)=>w+Math.pow(S-y,2),0)/h.length,P=Math.sqrt(x)/y;return v>.3?"Excellent":v>.1||P<.2?"Good":P<.4?"Moderate":"Variable"},l=o(),u={gateway:{label:"Gateway",color:"#a855f7"},proxy:{label:"Proxy",color:"#4f46e5"},gatewayMean:{label:"Gateway Mean",color:"#8b5cf6"},gatewayMax:{label:"Gateway Peak",color:"#c084fc"},proxyMean:{label:"Proxy Mean",color:"#6366f1"},proxyMax:{label:"Proxy Peak",color:"#818cf8"}},c=(()=>{if(n.length===0||r.length===0||a.length===0)return{gatewayMemoryRange:"0-0MB",proxyMemoryRange:"0-0MB",peakCPU:0,memoryPerRouteAtScale:0};const f=n.map(S=>S.gateway),d=n.map(S=>S.proxy),h=Math.min(...f),m=Math.max(...f),g=Math.min(...d),v=Math.max(...d),y=r.flatMap(S=>[S.gatewayMax,S.proxyMax]),x=Math.max(...y),P=a[a.length-1],w=(P==null?void 0:P.totalPerRoute)||0;return{gatewayMemoryRange:`${h}-${m}MB`,proxyMemoryRange:`${g}-${v}MB`,peakCPU:Math.round(x),memoryPerRouteAtScale:w}})();return b.jsxs("div",{className:"space-y-6",children:[b.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Gateway Memory"}),b.jsx(K4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:c.gatewayMemoryRange}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Linear scaling pattern"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Proxy Memory"}),b.jsx(Q4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsx("div",{className:"text-2xl font-bold",children:c.proxyMemoryRange}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Efficient step-wise scaling"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Peak CPU"}),b.jsx(G4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[c.peakCPU,"%"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Brief spikes, stable avg"})]})]}),b.jsxs(xe,{children:[b.jsxs(Se,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[b.jsx(we,{className:"text-sm font-medium",children:"Efficiency"}),b.jsx(Z4,{className:"h-4 w-4 text-muted-foreground"})]}),b.jsxs(be,{children:[b.jsxs("div",{className:"text-2xl font-bold",children:[c.memoryPerRouteAtScale.toFixed(2),"MB"]}),b.jsx("p",{className:"text-xs text-muted-foreground",children:"Memory per route at scale"})]})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Scaling"}),b.jsx(tn,{children:"How Gateway and Proxy memory usage grows with route count"})]}),b.jsx(be,{children:n&&n.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:u,children:b.jsxs(Sf,{data:n,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:f=>`${f}MB`}),b.jsx(sr,{content:b.jsx(zn,{labelFormatter:f=>`${f} routes`})}),b.jsx(pt,{dataKey:"gateway",type:"monotone",fill:"#a855f7",fillOpacity:.4,stroke:"#a855f7",strokeWidth:2}),b.jsx(pt,{dataKey:"proxy",type:"monotone",fill:"#4f46e5",fillOpacity:.4,stroke:"#4f46e5",strokeWidth:2})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"CPU Usage Patterns"}),b.jsx(tn,{children:"Mean vs peak CPU usage showing burst characteristics."})]}),b.jsx(be,{children:r&&r.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:u,children:b.jsxs(Ioe,{data:r,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:f=>`${f}%`}),b.jsx(sr,{content:b.jsx(zn,{labelFormatter:f=>`${f} routes`})}),b.jsx(pt,{dataKey:"gatewayMax",type:"monotone",fill:"#c084fc",fillOpacity:.1,stroke:"#c084fc",strokeWidth:1,strokeDasharray:"2 2"}),b.jsx(pt,{dataKey:"proxyMax",type:"monotone",fill:"#818cf8",fillOpacity:.1,stroke:"#818cf8",strokeWidth:1,strokeDasharray:"2 2"}),b.jsx(Rt,{dataKey:"gatewayMean",type:"monotone",stroke:"#8b5cf6",strokeWidth:3,dot:{fill:"#8b5cf6",strokeWidth:2,r:4}}),b.jsx(Rt,{dataKey:"proxyMean",type:"monotone",stroke:"#6366f1",strokeWidth:3,dot:{fill:"#6366f1",strokeWidth:2,r:4}})]})})]}):b.jsx(Bn,{})})]})]}),b.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Efficiency"}),b.jsx(tn,{children:"Memory usage per route shows how efficiently memory scales with route count"})]}),b.jsx(be,{children:a&&a.length>0?b.jsxs("div",{className:"relative",children:[b.jsx(lr,{}),b.jsx(Fn,{config:u,children:b.jsxs(e1,{data:a,children:[b.jsx(Ln,{strokeDasharray:"3 3"}),b.jsx(Et,{dataKey:"routes",type:"number",scale:"linear",domain:[0,1100],ticks:[10,50,100,300,500,1e3],tickLine:!1,axisLine:!1,tickMargin:8}),b.jsx(yt,{tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:f=>`${f}MB`}),b.jsx(sr,{content:b.jsx(zn,{formatter:(f,d)=>[`${f}MB per route`,d==="gatewayPerRoute"?"Gateway":d==="proxyPerRoute"?"Proxy":"Total"],labelFormatter:f=>`${f} routes`})}),b.jsx(Rt,{dataKey:"totalPerRoute",type:"monotone",stroke:"#8b5cf6",strokeWidth:3,dot:{fill:"#8b5cf6",strokeWidth:2,r:4}}),b.jsx(Rt,{dataKey:"gatewayPerRoute",type:"monotone",stroke:"#a855f7",strokeWidth:2,strokeDasharray:"5 5",dot:{fill:"#a855f7",strokeWidth:2,r:3}}),b.jsx(Rt,{dataKey:"proxyPerRoute",type:"monotone",stroke:"#4f46e5",strokeWidth:2,strokeDasharray:"3 3",dot:{fill:"#4f46e5",strokeWidth:2,r:3}})]})})]}):b.jsx(Bn,{})})]}),b.jsxs(xe,{children:[b.jsxs(Se,{children:[b.jsx(we,{children:"Memory Scaling Summary"}),b.jsx(tn,{children:"Memory usage characteristics and scaling patterns across different components"})]}),b.jsx(be,{children:b.jsx("div",{className:"space-y-4",children:l.map((f,d)=>b.jsxs("div",{className:"flex items-center justify-between p-3 bg-muted/30 rounded-lg",children:[b.jsxs("div",{className:"space-y-1",children:[b.jsx("p",{className:"font-medium",children:f.component}),b.jsxs("div",{className:"flex space-x-4 text-sm text-muted-foreground",children:[b.jsxs("span",{children:["Range: ",f.min,"-",f.max,"MB"]}),b.jsxs("span",{children:["Pattern: ",f.scaling]})]})]}),b.jsxs("div",{className:"flex items-center space-x-2",children:[b.jsx(q4,{className:"h-4 w-4 text-green-600"}),b.jsx("span",{className:"text-sm font-medium text-green-700",children:f.efficiency})]})]},d))})})]})]})]})};var rh="rovingFocusGroup.onEntryFocus",Woe={bubbles:!1,cancelable:!0},Lu="RovingFocusGroup",[Dv,XS,qoe]=w6(Lu),[Voe,YS]=fs(Lu,[qoe]),[Koe,Xoe]=Voe(Lu),QS=k.forwardRef((e,t)=>b.jsx(Dv.Provider,{scope:e.__scopeRovingFocusGroup,children:b.jsx(Dv.Slot,{scope:e.__scopeRovingFocusGroup,children:b.jsx(Yoe,{...e,ref:t})})}));QS.displayName=Lu;var Yoe=k.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:o,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:p=!1,...c}=e,f=k.useRef(null),d=Ye(t,f),h=Ry(o),[m,g]=gp({prop:i,defaultProp:s??null,onChange:l,caller:Lu}),[v,y]=k.useState(!1),x=Ca(u),P=XS(n),w=k.useRef(!1),[S,O]=k.useState(0);return k.useEffect(()=>{const _=f.current;if(_)return _.addEventListener(rh,x),()=>_.removeEventListener(rh,x)},[x]),b.jsx(Koe,{scope:n,orientation:r,dir:h,loop:a,currentTabStopId:m,onItemFocus:k.useCallback(_=>g(_),[g]),onItemShiftTab:k.useCallback(()=>y(!0),[]),onFocusableItemAdd:k.useCallback(()=>O(_=>_+1),[]),onFocusableItemRemove:k.useCallback(()=>O(_=>_-1),[]),children:b.jsx(Ee.div,{tabIndex:v||S===0?-1:0,"data-orientation":r,...c,ref:d,style:{outline:"none",...e.style},onMouseDown:fe(e.onMouseDown,()=>{w.current=!0}),onFocus:fe(e.onFocus,_=>{const C=!w.current;if(_.target===_.currentTarget&&C&&!v){const j=new CustomEvent(rh,Woe);if(_.currentTarget.dispatchEvent(j),!j.defaultPrevented){const E=P().filter(R=>R.focusable),T=E.find(R=>R.active),N=E.find(R=>R.id===m),I=[T,N,...E].filter(Boolean).map(R=>R.ref.current);eO(I,p)}}w.current=!1}),onBlur:fe(e.onBlur,()=>y(!1))})})}),ZS="RovingFocusGroupItem",JS=k.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:o,children:i,...s}=e,l=Tu(),u=o||l,p=Xoe(ZS,n),c=p.currentTabStopId===u,f=XS(n),{onFocusableItemAdd:d,onFocusableItemRemove:h,currentTabStopId:m}=p;return k.useEffect(()=>{if(r)return d(),()=>h()},[r,d,h]),b.jsx(Dv.ItemSlot,{scope:n,id:u,focusable:r,active:a,children:b.jsx(Ee.span,{tabIndex:c?0:-1,"data-orientation":p.orientation,...s,ref:t,onMouseDown:fe(e.onMouseDown,g=>{r?p.onItemFocus(u):g.preventDefault()}),onFocus:fe(e.onFocus,()=>p.onItemFocus(u)),onKeyDown:fe(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){p.onItemShiftTab();return}if(g.target!==g.currentTarget)return;const v=Joe(g,p.orientation,p.dir);if(v!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let x=f().filter(P=>P.focusable).map(P=>P.ref.current);if(v==="last")x.reverse();else if(v==="prev"||v==="next"){v==="prev"&&x.reverse();const P=x.indexOf(g.currentTarget);x=p.loop?eie(x,P+1):x.slice(P+1)}setTimeout(()=>eO(x))}}),children:typeof i=="function"?i({isCurrentTabStop:c,hasTabStop:m!=null}):i})})});JS.displayName=ZS;var Qoe={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Zoe(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Joe(e,t,n){const r=Zoe(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Qoe[r]}function eO(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function eie(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var tie=QS,nie=JS;function rie(e,t){return k.useReducer((n,r)=>t[n][r]??n,e)}var t1=e=>{const{present:t,children:n}=e,r=aie(t),a=typeof n=="function"?n({present:r.isPresent}):k.Children.only(n),o=Ye(r.ref,oie(a));return typeof n=="function"||r.isPresent?k.cloneElement(a,{ref:o}):null};t1.displayName="Presence";function aie(e){const[t,n]=k.useState(),r=k.useRef(null),a=k.useRef(e),o=k.useRef("none"),i=e?"mounted":"unmounted",[s,l]=rie(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return k.useEffect(()=>{const u=Oc(r.current);o.current=s==="mounted"?u:"none"},[s]),jt(()=>{const u=r.current,p=a.current;if(p!==e){const f=o.current,d=Oc(u);e?l("MOUNT"):d==="none"||(u==null?void 0:u.display)==="none"?l("UNMOUNT"):l(p&&f!==d?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,l]),jt(()=>{if(t){let u;const p=t.ownerDocument.defaultView??window,c=d=>{const m=Oc(r.current).includes(d.animationName);if(d.target===t&&m&&(l("ANIMATION_END"),!a.current)){const g=t.style.animationFillMode;t.style.animationFillMode="forwards",u=p.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=g)})}},f=d=>{d.target===t&&(o.current=Oc(r.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",c),t.addEventListener("animationend",c),()=>{p.clearTimeout(u),t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",c),t.removeEventListener("animationend",c)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:k.useCallback(u=>{r.current=u?getComputedStyle(u):null,n(u)},[])}}function Oc(e){return(e==null?void 0:e.animationName)||"none"}function oie(e){var r,a;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=(a=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var zd="Tabs",[iie,Ase]=fs(zd,[YS]),tO=YS(),[sie,n1]=iie(zd),nO=k.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:o,orientation:i="horizontal",dir:s,activationMode:l="automatic",...u}=e,p=Ry(s),[c,f]=gp({prop:r,onChange:a,defaultProp:o??"",caller:zd});return b.jsx(sie,{scope:n,baseId:Tu(),value:c,onValueChange:f,orientation:i,dir:p,activationMode:l,children:b.jsx(Ee.div,{dir:p,"data-orientation":i,...u,ref:t})})});nO.displayName=zd;var rO="TabsList",aO=k.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,o=n1(rO,n),i=tO(n);return b.jsx(tie,{asChild:!0,...i,orientation:o.orientation,dir:o.dir,loop:r,children:b.jsx(Ee.div,{role:"tablist","aria-orientation":o.orientation,...a,ref:t})})});aO.displayName=rO;var oO="TabsTrigger",iO=k.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...o}=e,i=n1(oO,n),s=tO(n),l=uO(i.baseId,r),u=cO(i.baseId,r),p=r===i.value;return b.jsx(nie,{asChild:!0,...s,focusable:!a,active:p,children:b.jsx(Ee.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":u,"data-state":p?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:l,...o,ref:t,onMouseDown:fe(e.onMouseDown,c=>{!a&&c.button===0&&c.ctrlKey===!1?i.onValueChange(r):c.preventDefault()}),onKeyDown:fe(e.onKeyDown,c=>{[" ","Enter"].includes(c.key)&&i.onValueChange(r)}),onFocus:fe(e.onFocus,()=>{const c=i.activationMode!=="manual";!p&&!a&&c&&i.onValueChange(r)})})})});iO.displayName=oO;var sO="TabsContent",lO=k.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:o,...i}=e,s=n1(sO,n),l=uO(s.baseId,r),u=cO(s.baseId,r),p=r===s.value,c=k.useRef(p);return k.useEffect(()=>{const f=requestAnimationFrame(()=>c.current=!1);return()=>cancelAnimationFrame(f)},[]),b.jsx(t1,{present:a||p,children:({present:f})=>b.jsx(Ee.div,{"data-state":p?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":l,hidden:!f,id:u,tabIndex:0,...i,ref:t,style:{...e.style,animationDuration:c.current?"0s":void 0},children:f&&o})})});lO.displayName=sO;function uO(e,t){return`${e}-trigger-${t}`}function cO(e,t){return`${e}-content-${t}`}var lie=nO,pO=aO,fO=iO,dO=lO;const uie=lie,mO=k.forwardRef(({className:e,...t},n)=>b.jsx(pO,{ref:n,className:Oe("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));mO.displayName=pO.displayName;const Bc=k.forwardRef(({className:e,...t},n)=>b.jsx(fO,{ref:n,className:Oe("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",e),...t}));Bc.displayName=fO.displayName;const Hc=k.forwardRef(({className:e,...t},n)=>b.jsx(dO,{ref:n,className:Oe("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));Hc.displayName=dO.displayName;const cie={metadata:{version:"1.4.2",runId:"1.4.2-1752805392474",date:"2025-07-18T02:23:12.474Z",environment:"production",description:"Benchmark results for version 1.4.2",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scaling up httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-up",throughput:5153.92,totalRequests:154618,latency:{min:383,mean:7923,max:80375,pstdev:13254,percentiles:{p50:3722,p75:6072,p80:6915,p90:11685,p95:49872,p99:56281,p999:62722}},resources:{envoyGateway:{memory:{min:131.64,max:158.27,mean:153.65},cpu:{min:.13,max:1,mean:.43}},envoyProxy:{memory:{min:0,max:27.04,mean:24.5},cpu:{min:0,max:92.27,mean:13.11}}},poolOverflow:357,upstreamConnections:43},{testName:"scaling up httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-up",throughput:5214.96,totalRequests:156456,latency:{min:392,mean:6917,max:94703,pstdev:12289,percentiles:{p50:3265,p75:5168,p80:5850,p90:9014,p95:48109,p99:54501,p999:61138}},resources:{envoyGateway:{memory:{min:151.75,max:162.37,mean:156.16},cpu:{min:.27,max:4.07,mean:.93}},envoyProxy:{memory:{min:26.85,max:33.23,mean:31.93},cpu:{min:0,max:99.8,mean:2.75}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-up",throughput:5286.96,totalRequests:158609,latency:{min:368,mean:7734,max:92332,pstdev:12933,percentiles:{p50:3787,p75:5897,p80:6637,p90:10518,p95:49209,p99:55494,p999:62668}},resources:{envoyGateway:{memory:{min:154.29,max:162.45,mean:160.12},cpu:{min:.4,max:8.13,mean:1.15}},envoyProxy:{memory:{min:33.08,max:37.43,mean:36.96},cpu:{min:0,max:99.94,mean:12.84}}},poolOverflow:357,upstreamConnections:43},{testName:"scaling up httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-up",throughput:5071.92,totalRequests:152158,latency:{min:367,mean:7108,max:96673,pstdev:12611,percentiles:{p50:3259,p75:5273,p80:5983,p90:9540,p95:48895,p99:55816,p999:64583}},resources:{envoyGateway:{memory:{min:178.72,max:189.43,mean:185.02},cpu:{min:.53,max:49.47,mean:4.51}},envoyProxy:{memory:{min:53.3,max:57.54,mean:57.04},cpu:{min:0,max:100.16,mean:15}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-up",throughput:4987.92,totalRequests:149640,latency:{min:394,mean:7071,max:108810,pstdev:12666,percentiles:{p50:3283,p75:5167,p80:5821,p90:9217,p95:48912,p99:56031,p999:68722}},resources:{envoyGateway:{memory:{min:187.59,max:203.43,mean:199.65},cpu:{min:.27,max:48.25,mean:1.88}},envoyProxy:{memory:{min:73.41,max:79.6,mean:79.35},cpu:{min:0,max:99.91,mean:11.81}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling up httproutes to 1000 with 200 routes per hostname",routes:1e3,routesPerHostname:200,phase:"scaling-up",throughput:4945.69,totalRequests:148373,latency:{min:411,mean:7306,max:101023,pstdev:12990,percentiles:{p50:3249,p75:5440,p80:6223,p90:10246,p95:49207,p99:57444,p999:69570}},resources:{envoyGateway:{memory:{min:231.85,max:243.1,mean:237.75},cpu:{min:.2,max:1.2,mean:.84}},envoyProxy:{memory:{min:129.84,max:130.36,mean:129.96},cpu:{min:0,max:99.89,mean:11.78}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-down",throughput:5200.02,totalRequests:156013,latency:{min:397,mean:7832,max:75223,pstdev:13154,percentiles:{p50:3651,p75:5953,p80:6758,p90:11656,p95:49915,p99:56150,p999:62173}},resources:{envoyGateway:{memory:{min:262.52,max:266.5,mean:263.99},cpu:{min:.67,max:3.53,mean:1.15}},envoyProxy:{memory:{min:123.49,max:123.65,mean:123.54},cpu:{min:0,max:100.22,mean:7.55}}},poolOverflow:357,upstreamConnections:43},{testName:"scaling down httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-down",throughput:5116.68,totalRequests:153503,latency:{min:404,mean:7069,max:71688,pstdev:12498,percentiles:{p50:3313,p75:5203,p80:5888,p90:9173,p95:48934,p99:55580,p999:61552}},resources:{envoyGateway:{memory:{min:266.25,max:277.75,mean:267.54},cpu:{min:.67,max:7.13,mean:1.51}},envoyProxy:{memory:{min:123.47,max:123.67,mean:123.53},cpu:{min:0,max:99.78,mean:4.47}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-down",throughput:5153.5,totalRequests:154605,latency:{min:376,mean:6989,max:80056,pstdev:12394,percentiles:{p50:3284,p75:5189,p80:5871,p90:9047,p95:48644,p99:55019,p999:61106}},resources:{envoyGateway:{memory:{min:170.85,max:277.75,mean:210.44},cpu:{min:.67,max:68.27,mean:7.39}},envoyProxy:{memory:{min:123.46,max:123.75,mean:123.55},cpu:{min:0,max:100.02,mean:16.06}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-down",throughput:5125.52,totalRequests:153766,latency:{min:369,mean:6827,max:85323,pstdev:12196,percentiles:{p50:3193,p75:5036,p80:5699,p90:8862,p95:47597,p99:54747,p999:64284}},resources:{envoyGateway:{memory:{min:181.68,max:196.62,mean:192.08},cpu:{min:.4,max:72.6,mean:3.62}},envoyProxy:{memory:{min:129.86,max:130.06,mean:129.95},cpu:{min:0,max:100.07,mean:13.11}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling down httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-down",throughput:5130.15,totalRequests:153916,latency:{min:389,mean:7004,max:103731,pstdev:12505,percentiles:{p50:3244,p75:5247,p80:5944,p90:9184,p95:48279,p99:55420,p999:66549}},resources:{envoyGateway:{memory:{min:205.04,max:208.2,mean:206.96},cpu:{min:.33,max:54.27,mean:2.52}},envoyProxy:{memory:{min:129.85,max:130.02,mean:129.9},cpu:{min:0,max:91.79,mean:22.69}}},poolOverflow:362,upstreamConnections:38}]},pie={metadata:{version:"1.4.1",runId:"1.4.1-1750189826783",date:"2025-06-04",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.4.1",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.4.1/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scaling up httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-up",throughput:5440.31,totalRequests:163209,latency:{min:335,mean:6565,max:66668,pstdev:11480,percentiles:{p50:3258,p75:5079,p80:5722,p90:8679,p95:45924,p99:53512,p999:58220}},resources:{envoyGateway:{memory:{min:128.02,max:151.26,mean:147.41},cpu:{min:.27,max:.67,mean:.45}},envoyProxy:{memory:{min:0,max:26.92,mean:22.58},cpu:{min:0,max:99.73,mean:6.02}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-up",throughput:5429.88,totalRequests:162900,latency:{min:345,mean:6468,max:70791,pstdev:11793,percentiles:{p50:3170,p75:4794,p80:5311,p90:7534,p95:47400,p99:53536,p999:58034}},resources:{envoyGateway:{memory:{min:151.26,max:170.78,mean:161.92},cpu:{min:.4,max:4.33,mean:.97}},envoyProxy:{memory:{min:26.73,max:33.13,mean:31.63},cpu:{min:0,max:99.94,mean:3.35}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling up httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-up",throughput:5499.86,totalRequests:164996,latency:{min:391,mean:8147,max:99663,pstdev:13319,percentiles:{p50:3957,p75:6308,p80:7120,p90:11799,p95:49942,p99:56190,p999:62709}},resources:{envoyGateway:{memory:{min:161.19,max:165.52,mean:163.96},cpu:{min:.4,max:8.67,mean:1.36}},envoyProxy:{memory:{min:32.98,max:39.18,mean:38.14},cpu:{min:0,max:99.97,mean:8.67}}},poolOverflow:353,upstreamConnections:47},{testName:"scaling up httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-up",throughput:5335.1,totalRequests:160053,latency:{min:365,mean:6734,max:90963,pstdev:12096,percentiles:{p50:3228,p75:5042,p80:5649,p90:8465,p95:47704,p99:54396,p999:61714}},resources:{envoyGateway:{memory:{min:183.87,max:223.25,mean:206.96},cpu:{min:.47,max:79.87,mean:3.9}},envoyProxy:{memory:{min:57.15,max:57.52,mean:57.34},cpu:{min:0,max:99.97,mean:13.49}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-up",throughput:5256.52,totalRequests:157696,latency:{min:389,mean:6320,max:77848,pstdev:11829,percentiles:{p50:2974,p75:4705,p80:5292,p90:7729,p95:47173,p99:54317,p999:64679}},resources:{envoyGateway:{memory:{min:186.16,max:199.19,mean:195.68},cpu:{min:.4,max:1.2,mean:.75}},envoyProxy:{memory:{min:63.26,max:79.43,mean:79.04},cpu:{min:0,max:99.86,mean:17.64}}},poolOverflow:365,upstreamConnections:35},{testName:"scaling up httproutes to 1000 with 200 routes per hostname",routes:1e3,routesPerHostname:200,phase:"scaling-up",throughput:5280.09,totalRequests:158409,latency:{min:387,mean:6871,max:94064,pstdev:12441,percentiles:{p50:3186,p75:5019,p80:5651,p90:8766,p95:48361,p99:55758,p999:67403}},resources:{envoyGateway:{memory:{min:230.81,max:243.68,mean:238.65},cpu:{min:.13,max:1.13,mean:.8}},envoyProxy:{memory:{min:127.63,max:127.86,mean:127.72},cpu:{min:0,max:85.57,mean:6.19}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-down",throughput:5430.18,totalRequests:162909,latency:{min:376,mean:6679,max:79630,pstdev:12142,percentiles:{p50:3147,p75:5015,p80:5630,p90:8374,p95:48377,p99:54654,p999:59858}},resources:{envoyGateway:{memory:{min:164.61,max:169.75,mean:165.39},cpu:{min:.8,max:3.47,mean:1.14}},envoyProxy:{memory:{min:121.22,max:121.61,mean:121.3},cpu:{min:0,max:99.74,mean:8.02}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-down",throughput:5506.49,totalRequests:165195,latency:{min:386,mean:8319,max:85860,pstdev:13567,percentiles:{p50:3951,p75:6305,p80:7155,p90:12741,p95:50714,p99:57303,p999:63928}},resources:{envoyGateway:{memory:{min:165.63,max:175.23,mean:169.06},cpu:{min:.8,max:7.53,mean:1.54}},envoyProxy:{memory:{min:111.91,max:121.36,mean:113.46},cpu:{min:0,max:99.75,mean:7.62}}},poolOverflow:352,upstreamConnections:48},{testName:"scaling down httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-down",throughput:5452.96,totalRequests:163589,latency:{min:395,mean:7694,max:97460,pstdev:12949,percentiles:{p50:3636,p75:5828,p80:6627,p90:10929,p95:49506,p99:55681,p999:62369}},resources:{envoyGateway:{memory:{min:166.64,max:195.48,mean:174.79},cpu:{min:.8,max:38.2,mean:5.63}},envoyProxy:{memory:{min:111.8,max:112.36,mean:111.95},cpu:{min:0,max:35.17,mean:2.77}}},poolOverflow:356,upstreamConnections:44},{testName:"scaling down httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-down",throughput:5360.33,totalRequests:160815,latency:{min:354,mean:6538,max:92344,pstdev:12045,percentiles:{p50:3068,p75:4770,p80:5341,p90:7974,p95:47742,p99:54480,p999:62144}},resources:{envoyGateway:{memory:{min:180.27,max:192.65,mean:189.01},cpu:{min:.67,max:46.53,mean:4.41}},envoyProxy:{memory:{min:127.66,max:127.84,mean:127.72},cpu:{min:0,max:100.03,mean:9.14}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling down httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-down",throughput:5334.03,totalRequests:160024,latency:{min:392,mean:6782,max:132493,pstdev:12373,percentiles:{p50:3182,p75:4977,p80:5586,p90:8359,p95:48365,p99:55252,p999:64712}},resources:{envoyGateway:{memory:{min:203.37,max:217.03,mean:209.04},cpu:{min:.67,max:5.67,mean:1.33}},envoyProxy:{memory:{min:127.65,max:127.84,mean:127.72},cpu:{min:0,max:99.86,mean:9.91}}},poolOverflow:362,upstreamConnections:38}]},fie={metadata:{version:"1.4.0",runId:"1.4.0-1750189826781",date:"2025-05-14",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.4.0",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.4.0/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scaling up httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-up",throughput:5433.23,totalRequests:163e3,latency:{min:367,mean:6485,max:65673,pstdev:11042,percentiles:{p50:3222,p75:5166,p80:5879,p90:9253,p95:43970,p99:52201,p999:56854}},resources:{envoyGateway:{memory:{min:128.52,max:156.24,mean:150.28},cpu:{min:.13,max:.67,mean:.44}},envoyProxy:{memory:{min:0,max:27.01,mean:21.73},cpu:{min:0,max:72.36,mean:2.32}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-up",throughput:5340.69,totalRequests:160221,latency:{min:355,mean:6582,max:88674,pstdev:11849,percentiles:{p50:3134,p75:4984,p80:5597,p90:8545,p95:46972,p99:53663,p999:59625}},resources:{envoyGateway:{memory:{min:155.3,max:169.25,mean:159.23},cpu:{min:.27,max:4.73,mean:.91}},envoyProxy:{memory:{min:26.64,max:33.18,mean:32.22},cpu:{min:0,max:99.91,mean:11.1}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling up httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-up",throughput:5205.41,totalRequests:156162,latency:{min:384,mean:4221,max:63500,pstdev:9204,percentiles:{p50:2039,p75:3063,p80:3399,p90:4605,p95:7844,p99:49758,p999:54032}},resources:{envoyGateway:{memory:{min:156.77,max:174.36,mean:168.53},cpu:{min:.4,max:8.8,mean:1.37}},envoyProxy:{memory:{min:32.83,max:37.05,mean:36.58},cpu:{min:0,max:99.97,mean:4.39}}},poolOverflow:377,upstreamConnections:23},{testName:"scaling up httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-up",throughput:5271.84,totalRequests:158157,latency:{min:393,mean:7209,max:93327,pstdev:12640,percentiles:{p50:3281,p75:5443,p80:6241,p90:10258,p95:48494,p99:55793,p999:65497}},resources:{envoyGateway:{memory:{min:179.66,max:187.8,mean:184.81},cpu:{min:.53,max:27.13,mean:4.87}},envoyProxy:{memory:{min:53.06,max:57.31,mean:56.58},cpu:{min:0,max:99.96,mean:15.82}}},poolOverflow:360,upstreamConnections:40},{testName:"scaling up httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-up",throughput:5351.64,totalRequests:160555,latency:{min:370,mean:6797,max:91549,pstdev:12276,percentiles:{p50:3145,p75:5052,p80:5728,p90:8916,p95:47915,p99:54947,p999:65368}},resources:{envoyGateway:{memory:{min:186.4,max:200.27,mean:195.8},cpu:{min:.4,max:26.07,mean:1.71}},envoyProxy:{memory:{min:71.16,max:77.36,mean:77},cpu:{min:0,max:94.88,mean:3.39}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling up httproutes to 1000 with 200 routes per hostname",routes:1e3,routesPerHostname:200,phase:"scaling-up",throughput:5239.17,totalRequests:157179,latency:{min:367,mean:6908,max:97939,pstdev:12608,percentiles:{p50:3176,p75:5046,p80:5680,p90:8770,p95:48472,p99:56449,p999:68317}},resources:{envoyGateway:{memory:{min:220.03,max:237.27,mean:233.38},cpu:{min:.07,max:1.2,mean:.78}},envoyProxy:{memory:{min:129.13,max:129.59,mean:129.34},cpu:{min:0,max:74.43,mean:2.24}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 10 with 2 routes per hostname",routes:10,routesPerHostname:2,phase:"scaling-down",throughput:5409.79,totalRequests:162296,latency:{min:386,mean:6690,max:71688,pstdev:12144,percentiles:{p50:3075,p75:4937,p80:5610,p90:8727,p95:48252,p99:54595,p999:59408}},resources:{envoyGateway:{memory:{min:165.91,max:176.04,mean:168.11},cpu:{min:.67,max:3.73,mean:1.23}},envoyProxy:{memory:{min:123.28,max:123.45,mean:123.35},cpu:{min:0,max:99.72,mean:9.08}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 50 with 10 routes per hostname",routes:50,routesPerHostname:10,phase:"scaling-down",throughput:5480.62,totalRequests:164426,latency:{min:378,mean:7119,max:85032,pstdev:12404,percentiles:{p50:3390,p75:5340,p80:6015,p90:9300,p95:48457,p99:55005,p999:60284}},resources:{envoyGateway:{memory:{min:165.36,max:171.88,mean:169.47},cpu:{min:.6,max:6.8,mean:1.44}},envoyProxy:{memory:{min:123.27,max:123.97,mean:123.42},cpu:{min:0,max:100.05,mean:11.5}}},poolOverflow:359,upstreamConnections:41},{testName:"scaling down httproutes to 100 with 20 routes per hostname",routes:100,routesPerHostname:20,phase:"scaling-down",throughput:5413.63,totalRequests:162409,latency:{min:357,mean:6664,max:77307,pstdev:12030,percentiles:{p50:3140,p75:4935,p80:5560,p90:8456,p95:47661,p99:54544,p999:61110}},resources:{envoyGateway:{memory:{min:170.86,max:186.68,mean:173.53},cpu:{min:.67,max:67.27,mean:7.29}},envoyProxy:{memory:{min:123.27,max:129.61,mean:124.04},cpu:{min:0,max:100,mean:5.99}}},poolOverflow:362,upstreamConnections:38},{testName:"scaling down httproutes to 300 with 60 routes per hostname",routes:300,routesPerHostname:60,phase:"scaling-down",throughput:5356.13,totalRequests:160684,latency:{min:376,mean:6544,max:86540,pstdev:11908,percentiles:{p50:3079,p75:4927,p80:5554,p90:8360,p95:47069,p99:54265,p999:62601}},resources:{envoyGateway:{memory:{min:176.87,max:192.99,mean:189.97},cpu:{min:.6,max:73.6,mean:5.05}},envoyProxy:{memory:{min:129.54,max:129.76,mean:129.65},cpu:{min:0,max:100.08,mean:11.45}}},poolOverflow:363,upstreamConnections:37},{testName:"scaling down httproutes to 500 with 100 routes per hostname",routes:500,routesPerHostname:100,phase:"scaling-down",throughput:5339.99,totalRequests:160200,latency:{min:395,mean:6772,max:99700,pstdev:12345,percentiles:{p50:3118,p75:4954,p80:5598,p90:8672,p95:48261,p99:55498,p999:65902}},resources:{envoyGateway:{memory:{min:199.81,max:210.76,mean:205.85},cpu:{min:.4,max:31.13,mean:2.01}},envoyProxy:{memory:{min:129.54,max:129.74,mean:129.6},cpu:{min:0,max:99.87,mean:8.99}}},poolOverflow:362,upstreamConnections:38}]},die={metadata:{version:"1.3.3",runId:"1.3.3-1750189826778",date:"2025-05-09",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.3.3",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.3.3/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5302.05,totalRequests:159067,latency:{min:384,mean:7440,max:68399,pstdev:12191,percentiles:{p50:3692,p75:5903,p80:6670,p90:10777,p95:47519,p99:54405,p999:59346}},resources:{envoyGateway:{memory:{min:126.17,max:126.17,mean:126.17},cpu:{min:.95,max:.95,mean:.95}},envoyProxy:{memory:{min:25.93,max:25.93,mean:25.93},cpu:{min:30.42,max:30.42,mean:30.42}}},poolOverflow:358,upstreamConnections:42},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5270.25,totalRequests:158112,latency:{min:392,mean:7067,max:77467,pstdev:12552,percentiles:{p50:3330,p75:5225,p80:5887,p90:8906,p95:49113,p99:55103,p999:60295}},resources:{envoyGateway:{memory:{min:145.89,max:145.89,mean:145.89},cpu:{min:1.66,max:1.66,mean:1.66}},envoyProxy:{memory:{min:32.1,max:32.1,mean:32.1},cpu:{min:60.71,max:60.71,mean:60.71}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5307.61,totalRequests:159230,latency:{min:387,mean:7350,max:76185,pstdev:12732,percentiles:{p50:3508,p75:5524,p80:6220,p90:9652,p95:49100,p99:55363,p999:62654}},resources:{envoyGateway:{memory:{min:153.05,max:153.05,mean:153.05},cpu:{min:3.08,max:3.08,mean:3.08}},envoyProxy:{memory:{min:38.29,max:38.29,mean:38.29},cpu:{min:91.5,max:91.5,mean:91.5}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5139.63,totalRequests:154189,latency:{min:390,mean:7376,max:78098,pstdev:12993,percentiles:{p50:3429,p75:5431,p80:6116,p90:9633,p95:49809,p99:56043,p999:64651}},resources:{envoyGateway:{memory:{min:152.28,max:152.28,mean:152.28},cpu:{min:15.6,max:15.6,mean:15.6}},envoyProxy:{memory:{min:56.33,max:56.33,mean:56.33},cpu:{min:124.15,max:124.15,mean:124.15}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5169.8,totalRequests:155094,latency:{min:374,mean:7385,max:105918,pstdev:13085,percentiles:{p50:3382,p75:5336,p80:6024,p90:9658,p95:50104,p99:56487,p999:66418}},resources:{envoyGateway:{memory:{min:166.29,max:166.29,mean:166.29},cpu:{min:28.13,max:28.13,mean:28.13}},envoyProxy:{memory:{min:76.53,max:76.53,mean:76.53},cpu:{min:157.45,max:157.45,mean:157.45}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:4963.46,totalRequests:148908,latency:{min:374,mean:7335,max:94580,pstdev:13294,percentiles:{p50:3255,p75:5279,p80:5998,p90:9532,p95:50294,p99:58908,p999:70729}},resources:{envoyGateway:{memory:{min:199.79,max:199.79,mean:199.79},cpu:{min:61.67,max:61.67,mean:61.67}},envoyProxy:{memory:{min:120.77,max:120.77,mean:120.77},cpu:{min:195.1,max:195.1,mean:195.1}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5200.07,totalRequests:156001,latency:{min:395,mean:7530,max:81936,pstdev:13142,percentiles:{p50:3438,p75:5497,p80:6226,p90:10218,p95:50345,p99:56436,p999:61919}},resources:{envoyGateway:{memory:{min:221.87,max:221.87,mean:221.87},cpu:{min:114.77,max:114.77,mean:114.77}},envoyProxy:{memory:{min:121.27,max:121.27,mean:121.27},cpu:{min:356.4,max:356.4,mean:356.4}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5229.66,totalRequests:156893,latency:{min:368,mean:6911,max:72273,pstdev:12396,percentiles:{p50:3227,p75:5075,p80:5695,p90:8751,p95:48676,p99:54822,p999:59865}},resources:{envoyGateway:{memory:{min:221.8,max:221.8,mean:221.8},cpu:{min:114.13,max:114.13,mean:114.13}},envoyProxy:{memory:{min:121.22,max:121.22,mean:121.22},cpu:{min:325.9,max:325.9,mean:325.9}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5099.34,totalRequests:152980,latency:{min:357,mean:6637,max:68100,pstdev:12012,percentiles:{p50:3167,p75:4972,p80:5580,p90:8302,p95:47650,p99:53993,p999:59299}},resources:{envoyGateway:{memory:{min:182.69,max:182.69,mean:182.69},cpu:{min:113.02,max:113.02,mean:113.02}},envoyProxy:{memory:{min:121.2,max:121.2,mean:121.2},cpu:{min:295.3,max:295.3,mean:295.3}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5145.13,totalRequests:154357,latency:{min:379,mean:7234,max:111517,pstdev:12814,percentiles:{p50:3381,p75:5331,p80:5993,p90:9269,p95:49465,p99:55562,p999:64862}},resources:{envoyGateway:{memory:{min:159.09,max:159.09,mean:159.09},cpu:{min:102.57,max:102.57,mean:102.57}},envoyProxy:{memory:{min:121.08,max:121.08,mean:121.08},cpu:{min:263.29,max:263.29,mean:263.29}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5130.95,totalRequests:153929,latency:{min:365,mean:7098,max:95834,pstdev:12843,percentiles:{p50:3267,p75:5110,p80:5752,p90:8975,p95:49702,p99:56408,p999:67330}},resources:{envoyGateway:{memory:{min:163.91,max:163.91,mean:163.91},cpu:{min:91.18,max:91.18,mean:91.18}},envoyProxy:{memory:{min:120.91,max:120.91,mean:120.91},cpu:{min:230.77,max:230.77,mean:230.77}}},poolOverflow:362,upstreamConnections:38}]},mie={metadata:{version:"1.3.2",runId:"1.3.2-1750189826777",date:"2025-03-24",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.3.2",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.3.2/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5203.06,totalRequests:156092,latency:{min:371,mean:6970,max:73949,pstdev:12106,percentiles:{p50:3331,p75:5396,p80:6080,p90:9715,p95:47564,p99:55666,p999:60872}},resources:{envoyGateway:{memory:{min:126.68,max:126.68,mean:126.68},cpu:{min:.99,max:.99,mean:.99}},envoyProxy:{memory:{min:28.17,max:28.17,mean:28.17},cpu:{min:30.49,max:30.49,mean:30.49}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5157.35,totalRequests:154724,latency:{min:380,mean:6752,max:83992,pstdev:12526,percentiles:{p50:3089,p75:4875,p80:5484,p90:8253,p95:49682,p99:55398,p999:61507}},resources:{envoyGateway:{memory:{min:129.05,max:129.05,mean:129.05},cpu:{min:1.79,max:1.79,mean:1.79}},envoyProxy:{memory:{min:32.33,max:32.33,mean:32.33},cpu:{min:61.02,max:61.02,mean:61.02}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5052.19,totalRequests:151566,latency:{min:363,mean:7564,max:72122,pstdev:13492,percentiles:{p50:3384,p75:5472,p80:6191,p90:9941,p95:51320,p99:57128,p999:63107}},resources:{envoyGateway:{memory:{min:146.92,max:146.92,mean:146.92},cpu:{min:3.17,max:3.17,mean:3.17}},envoyProxy:{memory:{min:40.52,max:40.52,mean:40.52},cpu:{min:91.79,max:91.79,mean:91.79}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5101.42,totalRequests:153051,latency:{min:397,mean:6832,max:82624,pstdev:12894,percentiles:{p50:2990,p75:4798,p80:5418,p90:8366,p95:50391,p99:56737,p999:65114}},resources:{envoyGateway:{memory:{min:154.98,max:154.98,mean:154.98},cpu:{min:15.2,max:15.2,mean:15.2}},envoyProxy:{memory:{min:58.7,max:58.7,mean:58.7},cpu:{min:124.54,max:124.54,mean:124.54}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:4948.44,totalRequests:148459,latency:{min:398,mean:7200,max:94949,pstdev:13256,percentiles:{p50:3208,p75:5057,p80:5652,p90:8780,p95:50821,p99:57442,p999:66746}},resources:{envoyGateway:{memory:{min:163.01,max:163.01,mean:163.01},cpu:{min:27.68,max:27.68,mean:27.68}},envoyProxy:{memory:{min:78.9,max:78.9,mean:78.9},cpu:{min:158.2,max:158.2,mean:158.2}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:4933.76,totalRequests:148015,latency:{min:361,mean:7088,max:127959,pstdev:13349,percentiles:{p50:3052,p75:4885,p80:5529,p90:8785,p95:50700,p99:59123,p999:70660}},resources:{envoyGateway:{memory:{min:196.05,max:196.05,mean:196.05},cpu:{min:62.32,max:62.32,mean:62.32}},envoyProxy:{memory:{min:127.19,max:127.19,mean:127.19},cpu:{min:196.79,max:196.79,mean:196.79}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5116.93,totalRequests:153515,latency:{min:387,mean:9017,max:78245,pstdev:15046,percentiles:{p50:3922,p75:6583,p80:7609,p90:16301,p95:54007,p99:59990,p999:67956}},resources:{envoyGateway:{memory:{min:210.06,max:210.06,mean:210.06},cpu:{min:115.56,max:115.56,mean:115.56}},envoyProxy:{memory:{min:110.31,max:110.31,mean:110.31},cpu:{min:358.89,max:358.89,mean:358.89}}},poolOverflow:351,upstreamConnections:49},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:4991.13,totalRequests:149734,latency:{min:391,mean:7071,max:80433,pstdev:12841,percentiles:{p50:3199,p75:5005,p80:5635,p90:8730,p95:49813,p99:55756,p999:61407}},resources:{envoyGateway:{memory:{min:199.41,max:199.41,mean:199.41},cpu:{min:114.89,max:114.89,mean:114.89}},envoyProxy:{memory:{min:127.44,max:127.44,mean:127.44},cpu:{min:328.33,max:328.33,mean:328.33}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5138.59,totalRequests:154161,latency:{min:377,mean:6954,max:86982,pstdev:13049,percentiles:{p50:3045,p75:4886,p80:5525,p90:8466,p95:51048,p99:56733,p999:62337}},resources:{envoyGateway:{memory:{min:219.76,max:219.76,mean:219.76},cpu:{min:113.71,max:113.71,mean:113.71}},envoyProxy:{memory:{min:127.31,max:127.31,mean:127.31},cpu:{min:297.73,max:297.73,mean:297.73}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5051.68,totalRequests:151551,latency:{min:389,mean:7977,max:86577,pstdev:14090,percentiles:{p50:3498,p75:5731,p80:6471,p90:10947,p95:52355,p99:58748,p999:67379}},resources:{envoyGateway:{memory:{min:259.14,max:259.14,mean:259.14},cpu:{min:103.22,max:103.22,mean:103.22}},envoyProxy:{memory:{min:127.31,max:127.31,mean:127.31},cpu:{min:265.59,max:265.59,mean:265.59}}},poolOverflow:357,upstreamConnections:43},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:4962.4,totalRequests:148872,latency:{min:384,mean:7209,max:110186,pstdev:13357,percentiles:{p50:3112,p75:5018,p80:5694,p90:9338,p95:51267,p99:57384,p999:67244}},resources:{envoyGateway:{memory:{min:177.76,max:177.76,mean:177.76},cpu:{min:91.86,max:91.86,mean:91.86}},envoyProxy:{memory:{min:127.24,max:127.24,mean:127.24},cpu:{min:233.07,max:233.07,mean:233.07}}},poolOverflow:362,upstreamConnections:38}]},hie={metadata:{version:"1.3.1",runId:"1.3.1-1750189826775",date:"2025-03-05",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.3.1",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.3.1/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5115.35,totalRequests:153465,latency:{min:389,mean:6604,max:74543,pstdev:11843,percentiles:{p50:3094,p75:5007,p80:5671,p90:8723,p95:46997,p99:55033,p999:60336}},resources:{envoyGateway:{memory:{min:122.23,max:122.23,mean:122.23},cpu:{min:1.04,max:1.04,mean:1.04}},envoyProxy:{memory:{min:25.28,max:25.28,mean:25.28},cpu:{min:30.51,max:30.51,mean:30.51}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5150.43,totalRequests:154513,latency:{min:386,mean:6919,max:87556,pstdev:12645,percentiles:{p50:3126,p75:5009,p80:5646,p90:8620,p95:49580,p99:55326,p999:60073}},resources:{envoyGateway:{memory:{min:151.59,max:151.59,mean:151.59},cpu:{min:1.83,max:1.83,mean:1.83}},envoyProxy:{memory:{min:31.45,max:31.45,mean:31.45},cpu:{min:61.11,max:61.11,mean:61.11}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5211.7,totalRequests:156354,latency:{min:376,mean:6687,max:88604,pstdev:12657,percentiles:{p50:2913,p75:4676,p80:5309,p90:8259,p95:49930,p99:55853,p999:63514}},resources:{envoyGateway:{memory:{min:145.61,max:145.61,mean:145.61},cpu:{min:3.19,max:3.19,mean:3.19}},envoyProxy:{memory:{min:35.5,max:35.5,mean:35.5},cpu:{min:91.72,max:91.72,mean:91.72}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5066.99,totalRequests:152016,latency:{min:386,mean:7628,max:93048,pstdev:13700,percentiles:{p50:3310,p75:5414,p80:6156,p90:10289,p95:51750,p99:58007,p999:66938}},resources:{envoyGateway:{memory:{min:156.12,max:156.12,mean:156.12},cpu:{min:15.73,max:15.73,mean:15.73}},envoyProxy:{memory:{min:55.56,max:55.56,mean:55.56},cpu:{min:124.54,max:124.54,mean:124.54}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5098.53,totalRequests:152960,latency:{min:373,mean:7203,max:108142,pstdev:13209,percentiles:{p50:3161,p75:5083,p80:5791,p90:9292,p95:50372,p99:56864,p999:67850}},resources:{envoyGateway:{memory:{min:181.23,max:181.23,mean:181.23},cpu:{min:28.35,max:28.35,mean:28.35}},envoyProxy:{memory:{min:73.6,max:73.6,mean:73.6},cpu:{min:158.01,max:158.01,mean:158.01}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5048.96,totalRequests:151469,latency:{min:366,mean:7462,max:99799,pstdev:13676,percentiles:{p50:3122,p75:5245,p80:6050,p90:10398,p95:50685,p99:59639,p999:74547}},resources:{envoyGateway:{memory:{min:196.57,max:196.57,mean:196.57},cpu:{min:61.62,max:61.62,mean:61.62}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:196.43,max:196.43,mean:196.43}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5116.49,totalRequests:153495,latency:{min:373,mean:7373,max:79749,pstdev:13231,percentiles:{p50:3334,p75:5268,p80:5935,p90:9436,p95:50972,p99:56680,p999:62969}},resources:{envoyGateway:{memory:{min:213.36,max:213.36,mean:213.36},cpu:{min:114.56,max:114.56,mean:114.56}},envoyProxy:{memory:{min:109.79,max:109.79,mean:109.79},cpu:{min:357.84,max:357.84,mean:357.84}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5128.63,totalRequests:153859,latency:{min:380,mean:6787,max:76259,pstdev:12813,percentiles:{p50:2982,p75:4725,p80:5330,p90:8194,p95:50354,p99:56367,p999:61741}},resources:{envoyGateway:{memory:{min:217.34,max:217.34,mean:217.34},cpu:{min:113.9,max:113.9,mean:113.9}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:327.37,max:327.37,mean:327.37}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5217.06,totalRequests:156516,latency:{min:386,mean:7182,max:93491,pstdev:12999,percentiles:{p50:3211,p75:5188,p80:5872,p90:9449,p95:50083,p99:56135,p999:63309}},resources:{envoyGateway:{memory:{min:220.2,max:220.2,mean:220.2},cpu:{min:112.64,max:112.64,mean:112.64}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:296.73,max:296.73,mean:296.73}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5033.4,totalRequests:151002,latency:{min:380,mean:6522,max:92626,pstdev:12472,percentiles:{p50:2849,p75:4643,p80:5272,p90:8064,p95:49350,p99:55799,p999:64323}},resources:{envoyGateway:{memory:{min:201.77,max:201.77,mean:201.77},cpu:{min:102.25,max:102.25,mean:102.25}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:264.74,max:264.74,mean:264.74}}},poolOverflow:365,upstreamConnections:35},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5061.34,totalRequests:151843,latency:{min:393,mean:7429,max:99934,pstdev:13552,percentiles:{p50:3227,p75:5180,p80:5867,p90:9747,p95:51320,p99:58009,p999:68829}},resources:{envoyGateway:{memory:{min:173.04,max:173.04,mean:173.04},cpu:{min:91.12,max:91.12,mean:91.12}},envoyProxy:{memory:{min:119.73,max:119.73,mean:119.73},cpu:{min:231.98,max:231.98,mean:231.98}}},poolOverflow:360,upstreamConnections:40}]},vie={metadata:{version:"1.3.0",runId:"1.3.0-1750189826772",date:"2025-01-31",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.3.0",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.3.0/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5297.23,totalRequests:158917,latency:{min:371,mean:6861,max:69562,pstdev:12096,percentiles:{p50:3223,p75:5219,p80:5926,p90:9360,p95:48029,p99:54945,p999:60096}},resources:{envoyGateway:{memory:{min:116.36,max:116.36,mean:116.36},cpu:{min:.77,max:.77,mean:.77}},envoyProxy:{memory:{min:25.3,max:25.3,mean:25.3},cpu:{min:30.42,max:30.42,mean:30.42}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5276.06,totalRequests:158285,latency:{min:372,mean:6781,max:81436,pstdev:12685,percentiles:{p50:3035,p75:4783,p80:5410,p90:8210,p95:50042,p99:55861,p999:61739}},resources:{envoyGateway:{memory:{min:135.97,max:135.97,mean:135.97},cpu:{min:1.53,max:1.53,mean:1.53}},envoyProxy:{memory:{min:31.45,max:31.45,mean:31.45},cpu:{min:60.97,max:60.97,mean:60.97}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5248.15,totalRequests:157445,latency:{min:386,mean:6832,max:83939,pstdev:12879,percentiles:{p50:2957,p75:4826,p80:5504,p90:8587,p95:50454,p99:56524,p999:63150}},resources:{envoyGateway:{memory:{min:128.67,max:128.67,mean:128.67},cpu:{min:2.88,max:2.88,mean:2.88}},envoyProxy:{memory:{min:35.62,max:35.62,mean:35.62},cpu:{min:91.69,max:91.69,mean:91.69}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5190.05,totalRequests:155708,latency:{min:374,mean:6735,max:105820,pstdev:12667,percentiles:{p50:2997,p75:4715,p80:5323,p90:8205,p95:49692,p99:56199,p999:64403}},resources:{envoyGateway:{memory:{min:147.27,max:147.27,mean:147.27},cpu:{min:15.8,max:15.8,mean:15.8}},envoyProxy:{memory:{min:61.52,max:61.52,mean:61.52},cpu:{min:124.52,max:124.52,mean:124.52}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5171.63,totalRequests:155149,latency:{min:345,mean:7139,max:89923,pstdev:13210,percentiles:{p50:3191,p75:5039,p80:5680,p90:8824,p95:50767,p99:57397,p999:67665}},resources:{envoyGateway:{memory:{min:158.88,max:158.88,mean:158.88},cpu:{min:28.37,max:28.37,mean:28.37}},envoyProxy:{memory:{min:76,max:76,mean:76},cpu:{min:157.59,max:157.59,mean:157.59}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:4998.06,totalRequests:149944,latency:{min:371,mean:6950,max:98525,pstdev:13111,percentiles:{p50:3057,p75:4816,p80:5416,p90:8383,p95:50270,p99:57946,p999:69038}},resources:{envoyGateway:{memory:{min:182.71,max:182.71,mean:182.71},cpu:{min:61.79,max:61.79,mean:61.79}},envoyProxy:{memory:{min:122.12,max:122.12,mean:122.12},cpu:{min:194.7,max:194.7,mean:194.7}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5224.35,totalRequests:156731,latency:{min:376,mean:6870,max:73203,pstdev:12827,percentiles:{p50:3060,p75:4817,p80:5428,p90:8280,p95:50618,p99:56178,p999:61280}},resources:{envoyGateway:{memory:{min:209.85,max:209.85,mean:209.85},cpu:{min:114.89,max:114.89,mean:114.89}},envoyProxy:{memory:{min:110.5,max:110.5,mean:110.5},cpu:{min:356.13,max:356.13,mean:356.13}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5247.75,totalRequests:157436,latency:{min:383,mean:6991,max:88027,pstdev:12998,percentiles:{p50:3091,p75:4901,p80:5532,p90:8568,p95:50655,p99:56272,p999:62160}},resources:{envoyGateway:{memory:{min:208.95,max:208.95,mean:208.95},cpu:{min:114.35,max:114.35,mean:114.35}},envoyProxy:{memory:{min:122.19,max:122.19,mean:122.19},cpu:{min:325.78,max:325.78,mean:325.78}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5201.69,totalRequests:156051,latency:{min:380,mean:7027,max:78663,pstdev:12995,percentiles:{p50:3129,p75:4963,p80:5600,p90:8642,p95:50726,p99:56254,p999:61509}},resources:{envoyGateway:{memory:{min:211.34,max:211.34,mean:211.34},cpu:{min:113.23,max:113.23,mean:113.23}},envoyProxy:{memory:{min:122.17,max:122.17,mean:122.17},cpu:{min:295.15,max:295.15,mean:295.15}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5206.95,totalRequests:156214,latency:{min:386,mean:6893,max:92049,pstdev:12874,percentiles:{p50:3088,p75:4898,p80:5548,p90:8444,p95:50268,p99:56334,p999:65038}},resources:{envoyGateway:{memory:{min:158.73,max:158.73,mean:158.73},cpu:{min:102.79,max:102.79,mean:102.79}},envoyProxy:{memory:{min:122.15,max:122.15,mean:122.15},cpu:{min:263,max:263,mean:263}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5150.23,totalRequests:154507,latency:{min:375,mean:6786,max:84877,pstdev:12812,percentiles:{p50:3009,p75:4734,p80:5340,p90:8236,p95:50247,p99:56647,p999:65042}},resources:{envoyGateway:{memory:{min:168.04,max:168.04,mean:168.04},cpu:{min:91.51,max:91.51,mean:91.51}},envoyProxy:{memory:{min:122.14,max:122.14,mean:122.14},cpu:{min:230.49,max:230.49,mean:230.49}}},poolOverflow:363,upstreamConnections:37}]},yie={metadata:{version:"1.2.8",runId:"1.2.8-1750189826771",date:"2025-03-25",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.8",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.8/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5878.23,totalRequests:176347,latency:{min:376,mean:9154,max:75661,pstdev:14181,percentiles:{p50:4294,p75:7182,p80:8292,p90:22716,p95:52056,p99:58071,p999:64841}},resources:{envoyGateway:{memory:{min:108.89,max:108.89,mean:108.89},cpu:{min:.77,max:.77,mean:.77}},envoyProxy:{memory:{min:28.23,max:28.23,mean:28.23},cpu:{min:30.48,max:30.48,mean:30.48}}},poolOverflow:342,upstreamConnections:58},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5582.21,totalRequests:167469,latency:{min:359,mean:6378,max:69967,pstdev:12106,percentiles:{p50:2864,p75:4529,p80:5113,p90:7717,p95:48431,p99:54521,p999:59967}},resources:{envoyGateway:{memory:{min:132.62,max:132.62,mean:132.62},cpu:{min:1.54,max:1.54,mean:1.54}},envoyProxy:{memory:{min:32.39,max:32.39,mean:32.39},cpu:{min:60.99,max:60.99,mean:60.99}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5454.1,totalRequests:163623,latency:{min:368,mean:6738,max:72437,pstdev:12216,percentiles:{p50:3318,p75:5037,p80:5581,p90:8092,p95:47886,p99:53829,p999:60200}},resources:{envoyGateway:{memory:{min:135.66,max:135.66,mean:135.66},cpu:{min:2.91,max:2.91,mean:2.91}},envoyProxy:{memory:{min:38.6,max:38.6,mean:38.6},cpu:{min:91.91,max:91.91,mean:91.91}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5496.5,totalRequests:164898,latency:{min:375,mean:6453,max:103043,pstdev:12191,percentiles:{p50:2887,p75:4603,p80:5209,p90:7967,p95:48150,p99:54630,p999:63743}},resources:{envoyGateway:{memory:{min:147.15,max:147.15,mean:147.15},cpu:{min:15.47,max:15.47,mean:15.47}},envoyProxy:{memory:{min:60.75,max:60.75,mean:60.75},cpu:{min:125.31,max:125.31,mean:125.31}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5351.8,totalRequests:160554,latency:{min:377,mean:6516,max:93298,pstdev:12549,percentiles:{p50:2857,p75:4496,p80:5076,p90:7615,p95:49512,p99:55822,p999:65318}},resources:{envoyGateway:{memory:{min:155.79,max:155.79,mean:155.79},cpu:{min:28.01,max:28.01,mean:28.01}},envoyProxy:{memory:{min:82.96,max:82.96,mean:82.96},cpu:{min:159.29,max:159.29,mean:159.29}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5102.69,totalRequests:153086,latency:{min:358,mean:6968,max:108298,pstdev:13304,percentiles:{p50:2979,p75:4802,p80:5441,p90:8343,p95:50370,p99:60203,p999:71446}},resources:{envoyGateway:{memory:{min:190.03,max:190.03,mean:190.03},cpu:{min:61.69,max:61.69,mean:61.69}},envoyProxy:{memory:{min:133.22,max:133.22,mean:133.22},cpu:{min:199.84,max:199.84,mean:199.84}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5424.03,totalRequests:162721,latency:{min:362,mean:6570,max:73609,pstdev:12562,percentiles:{p50:2923,p75:4626,p80:5209,p90:7751,p95:49960,p99:55525,p999:60127}},resources:{envoyGateway:{memory:{min:127.89,max:127.89,mean:127.89},cpu:{min:114.69,max:114.69,mean:114.69}},envoyProxy:{memory:{min:112.11,max:112.11,mean:112.11},cpu:{min:363.01,max:363.01,mean:363.01}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5454.96,totalRequests:163653,latency:{min:363,mean:6397,max:73404,pstdev:12347,percentiles:{p50:2884,p75:4452,p80:4989,p90:7300,p95:49477,p99:55369,p999:61495}},resources:{envoyGateway:{memory:{min:136.28,max:136.28,mean:136.28},cpu:{min:114.05,max:114.05,mean:114.05}},envoyProxy:{memory:{min:114.79,max:114.79,mean:114.79},cpu:{min:332.54,max:332.54,mean:332.54}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5402.5,totalRequests:162075,latency:{min:366,mean:6575,max:127266,pstdev:12484,percentiles:{p50:2940,p75:4600,p80:5162,p90:7727,p95:49549,p99:55334,p999:61478}},resources:{envoyGateway:{memory:{min:140.91,max:140.91,mean:140.91},cpu:{min:112.87,max:112.87,mean:112.87}},envoyProxy:{memory:{min:114.76,max:114.76,mean:114.76},cpu:{min:301.85,max:301.85,mean:301.85}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5498.81,totalRequests:164969,latency:{min:349,mean:6325,max:84213,pstdev:12296,percentiles:{p50:2789,p75:4396,p80:4944,p90:7293,p95:48961,p99:55212,p999:65019}},resources:{envoyGateway:{memory:{min:148.36,max:148.36,mean:148.36},cpu:{min:102.53,max:102.53,mean:102.53}},envoyProxy:{memory:{min:133.35,max:133.35,mean:133.35},cpu:{min:269.43,max:269.43,mean:269.43}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5308.76,totalRequests:159263,latency:{min:361,mean:6727,max:98807,pstdev:12828,percentiles:{p50:2916,p75:4650,p80:5273,p90:8161,p95:49971,p99:56840,p999:67182}},resources:{envoyGateway:{memory:{min:157.93,max:157.93,mean:157.93},cpu:{min:91.26,max:91.26,mean:91.26}},envoyProxy:{memory:{min:133.2,max:133.2,mean:133.2},cpu:{min:236.02,max:236.02,mean:236.02}}},poolOverflow:362,upstreamConnections:38}]},gie={metadata:{version:"1.2.7",runId:"1.2.7-1750189826769",date:"2025-03-06",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.7",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.7/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5984.83,totalRequests:179545,latency:{min:402,mean:12033,max:92835,pstdev:16725,percentiles:{p50:5655,p75:9809,p80:11804,p90:49971,p95:55760,p99:64241,p999:73961}},resources:{envoyGateway:{memory:{min:112.35,max:112.35,mean:112.35},cpu:{min:.76,max:.76,mean:.76}},envoyProxy:{memory:{min:28.29,max:28.29,mean:28.29},cpu:{min:30.49,max:30.49,mean:30.49}}},poolOverflow:323,upstreamConnections:77},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5564.85,totalRequests:166949,latency:{min:362,mean:6416,max:73261,pstdev:12268,percentiles:{p50:2855,p75:4514,p80:5094,p90:7660,p95:49031,p99:54939,p999:60436}},resources:{envoyGateway:{memory:{min:125.94,max:125.94,mean:125.94},cpu:{min:1.52,max:1.52,mean:1.52}},envoyProxy:{memory:{min:34.46,max:34.46,mean:34.46},cpu:{min:61.11,max:61.11,mean:61.11}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5618.23,totalRequests:168547,latency:{min:372,mean:6834,max:85766,pstdev:12643,percentiles:{p50:3107,p75:4954,p80:5560,p90:8454,p95:49485,p99:55513,p999:61272}},resources:{envoyGateway:{memory:{min:132.05,max:132.05,mean:132.05},cpu:{min:2.92,max:2.92,mean:2.92}},envoyProxy:{memory:{min:40.63,max:40.63,mean:40.63},cpu:{min:92.02,max:92.02,mean:92.02}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5506.26,totalRequests:165193,latency:{min:383,mean:6670,max:85905,pstdev:12677,percentiles:{p50:2946,p75:4659,p80:5243,p90:7891,p95:49846,p99:56096,p999:65185}},resources:{envoyGateway:{memory:{min:146.09,max:146.09,mean:146.09},cpu:{min:15.43,max:15.43,mean:15.43}},envoyProxy:{memory:{min:62.86,max:62.86,mean:62.86},cpu:{min:125.21,max:125.21,mean:125.21}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5580.92,totalRequests:167428,latency:{min:310,mean:6716,max:89178,pstdev:12233,percentiles:{p50:3157,p75:4861,p80:5446,p90:8231,p95:47419,p99:54634,p999:65587}},resources:{envoyGateway:{memory:{min:163.49,max:163.49,mean:163.49},cpu:{min:28.15,max:28.15,mean:28.15}},envoyProxy:{memory:{min:83.07,max:83.07,mean:83.07},cpu:{min:159.15,max:159.15,mean:159.15}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5298.3,totalRequests:158951,latency:{min:369,mean:6537,max:122015,pstdev:12654,percentiles:{p50:2914,p75:4472,p80:5012,p90:7402,p95:48639,p99:58097,p999:69103}},resources:{envoyGateway:{memory:{min:187.81,max:187.81,mean:187.81},cpu:{min:62.41,max:62.41,mean:62.41}},envoyProxy:{memory:{min:133.27,max:133.27,mean:133.27},cpu:{min:199.13,max:199.13,mean:199.13}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5623.57,totalRequests:168711,latency:{min:380,mean:7190,max:75063,pstdev:13103,percentiles:{p50:3211,p75:5102,p80:5772,p90:9144,p95:50722,p99:56260,p999:61515}},resources:{envoyGateway:{memory:{min:132.38,max:132.38,mean:132.38},cpu:{min:116.08,max:116.08,mean:116.08}},envoyProxy:{memory:{min:128.69,max:128.69,mean:128.69},cpu:{min:362.3,max:362.3,mean:362.3}}},poolOverflow:357,upstreamConnections:43},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5516.59,totalRequests:165498,latency:{min:329,mean:6044,max:69902,pstdev:11632,percentiles:{p50:2893,p75:4337,p80:4790,p90:6742,p95:47155,p99:53372,p999:58073}},resources:{envoyGateway:{memory:{min:144.02,max:144.02,mean:144.02},cpu:{min:115.5,max:115.5,mean:115.5}},envoyProxy:{memory:{min:129.14,max:129.14,mean:129.14},cpu:{min:331.76,max:331.76,mean:331.76}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5515.82,totalRequests:165475,latency:{min:380,mean:6483,max:79159,pstdev:12363,percentiles:{p50:2872,p75:4545,p80:5131,p90:7760,p95:49190,p99:55408,p999:61890}},resources:{envoyGateway:{memory:{min:135.79,max:135.79,mean:135.79},cpu:{min:114.36,max:114.36,mean:114.36}},envoyProxy:{memory:{min:109,max:109,mean:109},cpu:{min:301.13,max:301.13,mean:301.13}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5403.53,totalRequests:162106,latency:{min:354,mean:6429,max:83423,pstdev:12305,percentiles:{p50:2864,p75:4496,p80:5072,p90:7504,p95:48885,p99:55414,p999:63565}},resources:{envoyGateway:{memory:{min:155.42,max:155.42,mean:155.42},cpu:{min:103.9,max:103.9,mean:103.9}},envoyProxy:{memory:{min:133.59,max:133.59,mean:133.59},cpu:{min:268.85,max:268.85,mean:268.85}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5405.24,totalRequests:162162,latency:{min:387,mean:6615,max:90812,pstdev:12660,percentiles:{p50:2913,p75:4593,p80:5174,p90:7866,p95:49461,p99:56510,p999:67248}},resources:{envoyGateway:{memory:{min:165.58,max:165.58,mean:165.58},cpu:{min:92.35,max:92.35,mean:92.35}},envoyProxy:{memory:{min:133.42,max:133.42,mean:133.42},cpu:{min:235.87,max:235.87,mean:235.87}}},poolOverflow:362,upstreamConnections:38}]},xie={metadata:{version:"1.2.6",runId:"1.2.6-1750189826767",date:"2025-01-23",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.6",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.6/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5668.03,totalRequests:170041,latency:{min:354,mean:6713,max:73658,pstdev:11906,percentiles:{p50:3142,p75:5170,p80:5865,p90:9278,p95:47425,p99:54870,p999:59602}},resources:{envoyGateway:{memory:{min:108.82,max:108.82,mean:108.82},cpu:{min:.76,max:.76,mean:.76}},envoyProxy:{memory:{min:25.38,max:25.38,mean:25.38},cpu:{min:30.51,max:30.51,mean:30.51}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5542.06,totalRequests:166262,latency:{min:380,mean:6117,max:73658,pstdev:11949,percentiles:{p50:2749,p75:4310,p80:4842,p90:7067,p95:48484,p99:54499,p999:59725}},resources:{envoyGateway:{memory:{min:135.08,max:135.08,mean:135.08},cpu:{min:1.53,max:1.53,mean:1.53}},envoyProxy:{memory:{min:31.53,max:31.53,mean:31.53},cpu:{min:61.17,max:61.17,mean:61.17}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5556.06,totalRequests:166682,latency:{min:363,mean:6439,max:100163,pstdev:12297,percentiles:{p50:2891,p75:4506,p80:5050,p90:7595,p95:49078,p99:54935,p999:60456}},resources:{envoyGateway:{memory:{min:140.09,max:140.09,mean:140.09},cpu:{min:2.88,max:2.88,mean:2.88}},envoyProxy:{memory:{min:37.7,max:37.7,mean:37.7},cpu:{min:91.98,max:91.98,mean:91.98}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5462.58,totalRequests:163882,latency:{min:372,mean:6376,max:78544,pstdev:12289,percentiles:{p50:2853,p75:4454,p80:5002,p90:7458,p95:49076,p99:55132,p999:63879}},resources:{envoyGateway:{memory:{min:146.71,max:146.71,mean:146.71},cpu:{min:15.64,max:15.64,mean:15.64}},envoyProxy:{memory:{min:59.89,max:59.89,mean:59.89},cpu:{min:125.41,max:125.41,mean:125.41}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5427.5,totalRequests:162825,latency:{min:359,mean:6562,max:97148,pstdev:12598,percentiles:{p50:2881,p75:4518,p80:5091,p90:7774,p95:49301,p99:56102,p999:67338}},resources:{envoyGateway:{memory:{min:155.26,max:155.26,mean:155.26},cpu:{min:28.52,max:28.52,mean:28.52}},envoyProxy:{memory:{min:82.08,max:82.08,mean:82.08},cpu:{min:159.72,max:159.72,mean:159.72}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5261.62,totalRequests:157849,latency:{min:373,mean:6972,max:115060,pstdev:13251,percentiles:{p50:3015,p75:4770,p80:5385,p90:8293,p95:50296,p99:59930,p999:70590}},resources:{envoyGateway:{memory:{min:188.13,max:188.13,mean:188.13},cpu:{min:61.78,max:61.78,mean:61.78}},envoyProxy:{memory:{min:130.35,max:130.35,mean:130.35},cpu:{min:199.1,max:199.1,mean:199.1}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5543.17,totalRequests:166299,latency:{min:360,mean:6447,max:75276,pstdev:12396,percentiles:{p50:2866,p75:4486,p80:5040,p90:7527,p95:49663,p99:55240,p999:60647}},resources:{envoyGateway:{memory:{min:129.36,max:129.36,mean:129.36},cpu:{min:115.21,max:115.21,mean:115.21}},envoyProxy:{memory:{min:122.58,max:122.58,mean:122.58},cpu:{min:362.6,max:362.6,mean:362.6}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5522.73,totalRequests:165682,latency:{min:384,mean:6098,max:68321,pstdev:11922,percentiles:{p50:2776,p75:4326,p80:4838,p90:6958,p95:48431,p99:54296,p999:58857}},resources:{envoyGateway:{memory:{min:140.97,max:140.97,mean:140.97},cpu:{min:114.57,max:114.57,mean:114.57}},envoyProxy:{memory:{min:122.83,max:122.83,mean:122.83},cpu:{min:332.12,max:332.12,mean:332.12}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5500.66,totalRequests:165023,latency:{min:360,mean:6301,max:80400,pstdev:12064,percentiles:{p50:2833,p75:4483,p80:5035,p90:7574,p95:48777,p99:54876,p999:60850}},resources:{envoyGateway:{memory:{min:132.45,max:132.45,mean:132.45},cpu:{min:113.5,max:113.5,mean:113.5}},envoyProxy:{memory:{min:122.84,max:122.84,mean:122.84},cpu:{min:301.26,max:301.26,mean:301.26}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5453.33,totalRequests:163603,latency:{min:357,mean:6324,max:86024,pstdev:12138,percentiles:{p50:2842,p75:4429,p80:4967,p90:7393,p95:48201,p99:54683,p999:65251}},resources:{envoyGateway:{memory:{min:150.62,max:150.62,mean:150.62},cpu:{min:103.11,max:103.11,mean:103.11}},envoyProxy:{memory:{min:130.34,max:130.34,mean:130.34},cpu:{min:269.03,max:269.03,mean:269.03}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5402.96,totalRequests:162089,latency:{min:371,mean:6575,max:90804,pstdev:12621,percentiles:{p50:2877,p75:4543,p80:5114,p90:7832,p95:49375,p99:56092,p999:69132}},resources:{envoyGateway:{memory:{min:159.25,max:159.25,mean:159.25},cpu:{min:91.66,max:91.66,mean:91.66}},envoyProxy:{memory:{min:130.34,max:130.34,mean:130.34},cpu:{min:235.83,max:235.83,mean:235.83}}},poolOverflow:362,upstreamConnections:38}]},wie={metadata:{version:"1.2.5",runId:"1.2.5-1750189826766",date:"2025-01-14",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.5",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.5/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5704.46,totalRequests:171136,latency:{min:370,mean:6520,max:74477,pstdev:11781,percentiles:{p50:3051,p75:4913,p80:5565,p90:8700,p95:47091,p99:54638,p999:59404}},resources:{envoyGateway:{memory:{min:112.07,max:112.07,mean:112.07},cpu:{min:.76,max:.76,mean:.76}},envoyProxy:{memory:{min:24.38,max:24.38,mean:24.38},cpu:{min:30.47,max:30.47,mean:30.47}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5647.86,totalRequests:169439,latency:{min:379,mean:6313,max:80498,pstdev:11935,percentiles:{p50:2854,p75:4550,p80:5158,p90:7820,p95:48025,p99:54390,p999:60321}},resources:{envoyGateway:{memory:{min:123.4,max:123.4,mean:123.4},cpu:{min:1.48,max:1.48,mean:1.48}},envoyProxy:{memory:{min:30.55,max:30.55,mean:30.55},cpu:{min:61.09,max:61.09,mean:61.09}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5529.29,totalRequests:165879,latency:{min:379,mean:6240,max:73539,pstdev:12017,percentiles:{p50:2818,p75:4510,p80:5068,p90:7413,p95:48300,p99:54171,p999:59308}},resources:{envoyGateway:{memory:{min:139.7,max:139.7,mean:139.7},cpu:{min:2.92,max:2.92,mean:2.92}},envoyProxy:{memory:{min:36.73,max:36.73,mean:36.73},cpu:{min:91.9,max:91.9,mean:91.9}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5542.3,totalRequests:166274,latency:{min:365,mean:6463,max:81305,pstdev:12357,percentiles:{p50:2890,p75:4545,p80:5116,p90:7585,p95:49043,p99:55365,p999:64399}},resources:{envoyGateway:{memory:{min:146.11,max:146.11,mean:146.11},cpu:{min:15.2,max:15.2,mean:15.2}},envoyProxy:{memory:{min:58.91,max:58.91,mean:58.91},cpu:{min:124.96,max:124.96,mean:124.96}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5407.59,totalRequests:162228,latency:{min:363,mean:6396,max:88236,pstdev:12419,percentiles:{p50:2816,p75:4450,p80:5012,p90:7485,p95:48762,p99:55666,p999:67457}},resources:{envoyGateway:{memory:{min:154.01,max:154.01,mean:154.01},cpu:{min:27.98,max:27.98,mean:27.98}},envoyProxy:{memory:{min:81.11,max:81.11,mean:81.11},cpu:{min:158.85,max:158.85,mean:158.85}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5247.32,totalRequests:157425,latency:{min:374,mean:6604,max:106491,pstdev:12903,percentiles:{p50:2880,p75:4514,p80:5089,p90:7639,p95:49453,p99:58750,p999:71970}},resources:{envoyGateway:{memory:{min:183.52,max:183.52,mean:183.52},cpu:{min:61.85,max:61.85,mean:61.85}},envoyProxy:{memory:{min:129.33,max:129.33,mean:129.33},cpu:{min:198.98,max:198.98,mean:198.98}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5668.05,totalRequests:170048,latency:{min:366,mean:6143,max:73551,pstdev:12054,percentiles:{p50:2726,p75:4279,p80:4799,p90:7123,p95:48988,p99:54704,p999:58812}},resources:{envoyGateway:{memory:{min:138.57,max:138.57,mean:138.57},cpu:{min:115.2,max:115.2,mean:115.2}},envoyProxy:{memory:{min:121.88,max:121.88,mean:121.88},cpu:{min:361.89,max:361.89,mean:361.89}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5579.16,totalRequests:167375,latency:{min:353,mean:6190,max:87244,pstdev:12028,percentiles:{p50:2803,p75:4357,p80:4889,p90:7110,p95:48482,p99:54329,p999:59113}},resources:{envoyGateway:{memory:{min:132.83,max:132.83,mean:132.83},cpu:{min:114.63,max:114.63,mean:114.63}},envoyProxy:{memory:{min:122.16,max:122.16,mean:122.16},cpu:{min:331.47,max:331.47,mean:331.47}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5581.7,totalRequests:167453,latency:{min:377,mean:6525,max:72724,pstdev:12286,percentiles:{p50:2929,p75:4641,p80:5219,p90:7915,p95:48732,p99:54810,p999:61450}},resources:{envoyGateway:{memory:{min:133.91,max:133.91,mean:133.91},cpu:{min:113.44,max:113.44,mean:113.44}},envoyProxy:{memory:{min:122.02,max:122.02,mean:122.02},cpu:{min:300.79,max:300.79,mean:300.79}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5447.53,totalRequests:163426,latency:{min:368,mean:6540,max:88612,pstdev:12451,percentiles:{p50:2904,p75:4546,p80:5128,p90:7692,p95:49305,p99:55422,p999:64116}},resources:{envoyGateway:{memory:{min:145.28,max:145.28,mean:145.28},cpu:{min:102.98,max:102.98,mean:102.98}},envoyProxy:{memory:{min:129.93,max:129.93,mean:129.93},cpu:{min:268.5,max:268.5,mean:268.5}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5437.61,totalRequests:163132,latency:{min:383,mean:6527,max:102998,pstdev:12600,percentiles:{p50:2827,p75:4470,p80:5070,p90:7714,p95:49029,p99:56436,p999:66684}},resources:{envoyGateway:{memory:{min:164.07,max:164.07,mean:164.07},cpu:{min:91.64,max:91.64,mean:91.64}},envoyProxy:{memory:{min:129.93,max:129.93,mean:129.93},cpu:{min:235.61,max:235.61,mean:235.61}}},poolOverflow:362,upstreamConnections:38}]},bie={metadata:{version:"1.2.4",runId:"1.2.4-1750189826764",date:"2024-12-13",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.4",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.4/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5982.38,totalRequests:179472,latency:{min:349,mean:6011,max:83349,pstdev:11061,percentiles:{p50:2829,p75:4477,p80:5098,p90:7842,p95:43255,p99:53350,p999:59346}},resources:{envoyGateway:{memory:{min:110.54,max:110.54,mean:110.54},cpu:{min:.77,max:.77,mean:.77}},envoyProxy:{memory:{min:24.25,max:24.25,mean:24.25},cpu:{min:30.44,max:30.44,mean:30.44}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5917.46,totalRequests:177524,latency:{min:361,mean:6164,max:70909,pstdev:11809,percentiles:{p50:2843,p75:4366,p80:4876,p90:7109,p95:47788,p99:54372,p999:59932}},resources:{envoyGateway:{memory:{min:119.89,max:119.89,mean:119.89},cpu:{min:1.61,max:1.61,mean:1.61}},envoyProxy:{memory:{min:30.43,max:30.43,mean:30.43},cpu:{min:61.13,max:61.13,mean:61.13}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5930.25,totalRequests:177910,latency:{min:398,mean:6027,max:92041,pstdev:11760,percentiles:{p50:2652,p75:4198,p80:4747,p90:7135,p95:47513,p99:55083,p999:61542}},resources:{envoyGateway:{memory:{min:129.08,max:129.08,mean:129.08},cpu:{min:3.05,max:3.05,mean:3.05}},envoyProxy:{memory:{min:36.57,max:36.57,mean:36.57},cpu:{min:92.01,max:92.01,mean:92.01}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5612.73,totalRequests:168382,latency:{min:368,mean:6361,max:108085,pstdev:12378,percentiles:{p50:2817,p75:4383,p80:4929,p90:7356,p95:48795,p99:56586,p999:68399}},resources:{envoyGateway:{memory:{min:140.63,max:140.63,mean:140.63},cpu:{min:15.35,max:15.35,mean:15.35}},envoyProxy:{memory:{min:58.77,max:58.77,mean:58.77},cpu:{min:125.44,max:125.44,mean:125.44}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5799.01,totalRequests:173974,latency:{min:378,mean:6166,max:97771,pstdev:11964,percentiles:{p50:2818,p75:4251,p80:4742,p90:6922,p95:47560,p99:55281,p999:68112}},resources:{envoyGateway:{memory:{min:152.5,max:152.5,mean:152.5},cpu:{min:28.38,max:28.38,mean:28.38}},envoyProxy:{memory:{min:78.94,max:78.94,mean:78.94},cpu:{min:159.67,max:159.67,mean:159.67}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5474.43,totalRequests:164233,latency:{min:386,mean:6534,max:109809,pstdev:12936,percentiles:{p50:2656,p75:4361,p80:5013,p90:8074,p95:49516,p99:60213,p999:73678}},resources:{envoyGateway:{memory:{min:183.98,max:183.98,mean:183.98},cpu:{min:62.29,max:62.29,mean:62.29}},envoyProxy:{memory:{min:131.16,max:131.16,mean:131.16},cpu:{min:200.46,max:200.46,mean:200.46}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5816.39,totalRequests:174492,latency:{min:340,mean:6131,max:85209,pstdev:11868,percentiles:{p50:2730,p75:4264,p80:4816,p90:7369,p95:47933,p99:54984,p999:61820}},resources:{envoyGateway:{memory:{min:195,max:195,mean:195},cpu:{min:116.53,max:116.53,mean:116.53}},envoyProxy:{memory:{min:120.37,max:120.37,mean:120.37},cpu:{min:363.61,max:363.61,mean:363.61}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5848.8,totalRequests:175470,latency:{min:372,mean:6285,max:77979,pstdev:12136,percentiles:{p50:2760,p75:4334,p80:4906,p90:7492,p95:48553,p99:55732,p999:63037}},resources:{envoyGateway:{memory:{min:205.2,max:205.2,mean:205.2},cpu:{min:115.88,max:115.88,mean:115.88}},envoyProxy:{memory:{min:120.26,max:120.26,mean:120.26},cpu:{min:333.06,max:333.06,mean:333.06}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5897.55,totalRequests:176927,latency:{min:365,mean:6054,max:78041,pstdev:11770,percentiles:{p50:2761,p75:4253,p80:4770,p90:6934,p95:47628,p99:54935,p999:62232}},resources:{envoyGateway:{memory:{min:201.78,max:201.78,mean:201.78},cpu:{min:114.84,max:114.84,mean:114.84}},envoyProxy:{memory:{min:122.23,max:122.23,mean:122.23},cpu:{min:302.66,max:302.66,mean:302.66}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5764.69,totalRequests:172941,latency:{min:376,mean:6540,max:87822,pstdev:12528,percentiles:{p50:2847,p75:4511,p80:5118,p90:7907,p95:49336,p99:56737,p999:66895}},resources:{envoyGateway:{memory:{min:237.36,max:237.36,mean:237.36},cpu:{min:104.3,max:104.3,mean:104.3}},envoyProxy:{memory:{min:131.2,max:131.2,mean:131.2},cpu:{min:270.32,max:270.32,mean:270.32}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5709.58,totalRequests:171290,latency:{min:350,mean:6172,max:93663,pstdev:11978,percentiles:{p50:2864,p75:4285,p80:4782,p90:6980,p95:47689,p99:55115,p999:67440}},resources:{envoyGateway:{memory:{min:158.41,max:158.41,mean:158.41},cpu:{min:92.69,max:92.69,mean:92.69}},envoyProxy:{memory:{min:131.32,max:131.32,mean:131.32},cpu:{min:236.85,max:236.85,mean:236.85}}},poolOverflow:363,upstreamConnections:37}]},Pie={metadata:{version:"1.2.3",runId:"1.2.3-1750189826763",date:"2024-12-02",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.3",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.3/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6222.52,totalRequests:186680,latency:{min:349,mean:6177,max:70643,pstdev:11464,percentiles:{p50:2879,p75:4520,p80:5082,p90:7684,p95:46213,p99:54147,p999:60250}},resources:{envoyGateway:{memory:{min:110.2,max:110.2,mean:110.2},cpu:{min:.68,max:.68,mean:.68}},envoyProxy:{memory:{min:25.89,max:25.89,mean:25.89},cpu:{min:30.33,max:30.33,mean:30.33}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6170.38,totalRequests:185112,latency:{min:370,mean:5770,max:72798,pstdev:11358,percentiles:{p50:2657,p75:4054,p80:4535,p90:6537,p95:46632,p99:53751,p999:59174}},resources:{envoyGateway:{memory:{min:122.48,max:122.48,mean:122.48},cpu:{min:1.42,max:1.42,mean:1.42}},envoyProxy:{memory:{min:32.05,max:32.05,mean:32.05},cpu:{min:60.88,max:60.88,mean:60.88}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6085.51,totalRequests:182567,latency:{min:365,mean:5863,max:84721,pstdev:11540,percentiles:{p50:2605,p75:4127,p80:4662,p90:7048,p95:46759,p99:54556,p999:61736}},resources:{envoyGateway:{memory:{min:131.06,max:131.06,mean:131.06},cpu:{min:2.8,max:2.8,mean:2.8}},envoyProxy:{memory:{min:38.19,max:38.19,mean:38.19},cpu:{min:91.64,max:91.64,mean:91.64}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:6032.83,totalRequests:180985,latency:{min:362,mean:6079,max:79421,pstdev:11806,percentiles:{p50:2707,p75:4272,p80:4832,p90:7327,p95:47441,p99:54743,p999:65808}},resources:{envoyGateway:{memory:{min:142.98,max:142.98,mean:142.98},cpu:{min:15.04,max:15.04,mean:15.04}},envoyProxy:{memory:{min:60.39,max:60.39,mean:60.39},cpu:{min:124.47,max:124.47,mean:124.47}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5773.98,totalRequests:173223,latency:{min:344,mean:6360,max:79355,pstdev:12473,percentiles:{p50:2707,p75:4299,p80:4888,p90:7643,p95:49309,p99:57382,p999:68141}},resources:{envoyGateway:{memory:{min:160.84,max:160.84,mean:160.84},cpu:{min:27.66,max:27.66,mean:27.66}},envoyProxy:{memory:{min:80.58,max:80.58,mean:80.58},cpu:{min:156.97,max:156.97,mean:156.97}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5776.08,totalRequests:173283,latency:{min:361,mean:6194,max:89714,pstdev:12241,percentiles:{p50:2703,p75:4241,p80:4791,p90:7296,p95:47755,p99:58537,p999:70676}},resources:{envoyGateway:{memory:{min:186.49,max:186.49,mean:186.49},cpu:{min:61.39,max:61.39,mean:61.39}},envoyProxy:{memory:{min:130.82,max:130.82,mean:130.82},cpu:{min:196.17,max:196.17,mean:196.17}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:6128.86,totalRequests:183866,latency:{min:351,mean:5824,max:73633,pstdev:11470,percentiles:{p50:2578,p75:4038,p80:4570,p90:6823,p95:46927,p99:54392,p999:60213}},resources:{envoyGateway:{memory:{min:218.36,max:218.36,mean:218.36},cpu:{min:114.4,max:114.4,mean:114.4}},envoyProxy:{memory:{min:118.8,max:118.8,mean:118.8},cpu:{min:358.03,max:358.03,mean:358.03}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:6065.62,totalRequests:181969,latency:{min:378,mean:5877,max:82526,pstdev:11643,percentiles:{p50:2588,p75:4048,p80:4587,p90:6876,p95:47429,p99:54710,p999:62111}},resources:{envoyGateway:{memory:{min:222.42,max:222.42,mean:222.42},cpu:{min:113.86,max:113.86,mean:113.86}},envoyProxy:{memory:{min:119.23,max:119.23,mean:119.23},cpu:{min:327.6,max:327.6,mean:327.6}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:6045.71,totalRequests:181360,latency:{min:388,mean:6024,max:80216,pstdev:11596,percentiles:{p50:2802,p75:4253,p80:4761,p90:6951,p95:47183,p99:54065,p999:59455}},resources:{envoyGateway:{memory:{min:142.37,max:142.37,mean:142.37},cpu:{min:112.77,max:112.77,mean:112.77}},envoyProxy:{memory:{min:119.54,max:119.54,mean:119.54},cpu:{min:296.95,max:296.95,mean:296.95}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5956.66,totalRequests:178700,latency:{min:379,mean:6153,max:85528,pstdev:12032,percentiles:{p50:2640,p75:4362,p80:4961,p90:7625,p95:47886,p99:55965,p999:65695}},resources:{envoyGateway:{memory:{min:148.72,max:148.72,mean:148.72},cpu:{min:102.49,max:102.49,mean:102.49}},envoyProxy:{memory:{min:130.98,max:130.98,mean:130.98},cpu:{min:264.96,max:264.96,mean:264.96}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5958.61,totalRequests:178765,latency:{min:362,mean:5967,max:83480,pstdev:11671,percentiles:{p50:2714,p75:4156,p80:4658,p90:6839,p95:46901,p99:54601,p999:65464}},resources:{envoyGateway:{memory:{min:164.87,max:164.87,mean:164.87},cpu:{min:91.25,max:91.25,mean:91.25}},envoyProxy:{memory:{min:130.98,max:130.98,mean:130.98},cpu:{min:231.98,max:231.98,mean:231.98}}},poolOverflow:363,upstreamConnections:37}]},Sie={metadata:{version:"1.2.2",runId:"1.2.2-1750189826761",date:"2024-11-28",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.2",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.2/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6249.74,totalRequests:187495,latency:{min:333,mean:5937,max:75075,pstdev:10895,percentiles:{p50:2840,p75:4501,p80:5077,p90:7640,p95:41435,p99:53243,p999:58066}},resources:{envoyGateway:{memory:{min:106.26,max:106.26,mean:106.26},cpu:{min:.73,max:.73,mean:.73}},envoyProxy:{memory:{min:26.09,max:26.09,mean:26.09},cpu:{min:30.41,max:30.41,mean:30.41}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6140.58,totalRequests:184222,latency:{min:373,mean:5812,max:79740,pstdev:11513,percentiles:{p50:2590,p75:4071,p80:4583,p90:6812,p95:46811,p99:54179,p999:61151}},resources:{envoyGateway:{memory:{min:131.24,max:131.24,mean:131.24},cpu:{min:1.34,max:1.34,mean:1.34}},envoyProxy:{memory:{min:32.26,max:32.26,mean:32.26},cpu:{min:60.74,max:60.74,mean:60.74}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6149.72,totalRequests:184494,latency:{min:366,mean:5813,max:89935,pstdev:11434,percentiles:{p50:2637,p75:4073,p80:4561,p90:6680,p95:46505,p99:53872,p999:60348}},resources:{envoyGateway:{memory:{min:133.05,max:133.05,mean:133.05},cpu:{min:2.75,max:2.75,mean:2.75}},envoyProxy:{memory:{min:38.38,max:38.38,mean:38.38},cpu:{min:91.57,max:91.57,mean:91.57}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:6076.78,totalRequests:182305,latency:{min:361,mean:6031,max:87502,pstdev:11819,percentiles:{p50:2675,p75:4203,p80:4751,p90:7118,p95:47147,p99:55078,p999:67106}},resources:{envoyGateway:{memory:{min:153.62,max:153.62,mean:153.62},cpu:{min:14.77,max:14.77,mean:14.77}},envoyProxy:{memory:{min:60.45,max:60.45,mean:60.45},cpu:{min:124.04,max:124.04,mean:124.04}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5928.89,totalRequests:177873,latency:{min:336,mean:6196,max:85643,pstdev:12032,percentiles:{p50:2803,p75:4338,p80:4852,p90:7143,p95:47726,p99:55619,p999:67780}},resources:{envoyGateway:{memory:{min:145.79,max:145.79,mean:145.79},cpu:{min:27.17,max:27.17,mean:27.17}},envoyProxy:{memory:{min:80.64,max:80.64,mean:80.64},cpu:{min:157.65,max:157.65,mean:157.65}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5843.64,totalRequests:175314,latency:{min:339,mean:6452,max:101912,pstdev:12482,percentiles:{p50:2790,p75:4509,p80:5136,p90:8012,p95:47702,p99:58542,p999:74014}},resources:{envoyGateway:{memory:{min:173.7,max:173.7,mean:173.7},cpu:{min:61.12,max:61.12,mean:61.12}},envoyProxy:{memory:{min:130.89,max:130.89,mean:130.89},cpu:{min:195.74,max:195.74,mean:195.74}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:6096.9,totalRequests:182907,latency:{min:365,mean:5840,max:99377,pstdev:11326,percentiles:{p50:2735,p75:4188,p80:4674,p90:6654,p95:46344,p99:53444,p999:58591}},resources:{envoyGateway:{memory:{min:230.99,max:230.99,mean:230.99},cpu:{min:114.22,max:114.22,mean:114.22}},envoyProxy:{memory:{min:121.56,max:121.56,mean:121.56},cpu:{min:358.71,max:358.71,mean:358.71}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:6151.76,totalRequests:184556,latency:{min:376,mean:5805,max:84885,pstdev:11572,percentiles:{p50:2520,p75:3969,p80:4498,p90:6842,p95:46837,p99:54761,p999:62570}},resources:{envoyGateway:{memory:{min:233.63,max:233.63,mean:233.63},cpu:{min:113.65,max:113.65,mean:113.65}},envoyProxy:{memory:{min:121.86,max:121.86,mean:121.86},cpu:{min:328.3,max:328.3,mean:328.3}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:6157.53,totalRequests:184729,latency:{min:379,mean:5964,max:75988,pstdev:11502,percentiles:{p50:2743,p75:4204,p80:4695,p90:6941,p95:46497,p99:54179,p999:62005}},resources:{envoyGateway:{memory:{min:141.36,max:141.36,mean:141.36},cpu:{min:112.67,max:112.67,mean:112.67}},envoyProxy:{memory:{min:122.04,max:122.04,mean:122.04},cpu:{min:297.59,max:297.59,mean:297.59}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:6060.5,totalRequests:181818,latency:{min:360,mean:6022,max:92483,pstdev:11657,percentiles:{p50:2685,p75:4265,p80:4811,p90:7313,p95:46495,p99:54495,p999:64219}},resources:{envoyGateway:{memory:{min:150.71,max:150.71,mean:150.71},cpu:{min:102.4,max:102.4,mean:102.4}},envoyProxy:{memory:{min:130.9,max:130.9,mean:130.9},cpu:{min:265.29,max:265.29,mean:265.29}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5966.83,totalRequests:179008,latency:{min:343,mean:5962,max:102715,pstdev:11763,percentiles:{p50:2668,p75:4125,p80:4633,p90:6863,p95:46741,p99:54929,p999:67018}},resources:{envoyGateway:{memory:{min:162.62,max:162.62,mean:162.62},cpu:{min:91.03,max:91.03,mean:91.03}},envoyProxy:{memory:{min:131.05,max:131.05,mean:131.05},cpu:{min:232.55,max:232.55,mean:232.55}}},poolOverflow:363,upstreamConnections:37}]},Oie={metadata:{version:"1.2.1",runId:"1.2.1-1750189826759",date:"2024-11-07",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.1",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.1/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6110.53,totalRequests:183316,latency:{min:337,mean:6415,max:92647,pstdev:11350,percentiles:{p50:3107,p75:5037,p80:5711,p90:8782,p95:45103,p99:53942,p999:60790}},resources:{envoyGateway:{memory:{min:111.18,max:111.18,mean:111.18},cpu:{min:.79,max:.79,mean:.79}},envoyProxy:{memory:{min:24.25,max:24.25,mean:24.25},cpu:{min:30.62,max:30.62,mean:30.62}}},poolOverflow:359,upstreamConnections:41},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6011.43,totalRequests:180343,latency:{min:377,mean:6244,max:72724,pstdev:11870,percentiles:{p50:2835,p75:4408,p80:4939,p90:7412,p95:47611,p99:54769,p999:61716}},resources:{envoyGateway:{memory:{min:116.45,max:116.45,mean:116.45},cpu:{min:1.59,max:1.59,mean:1.59}},envoyProxy:{memory:{min:30.41,max:30.41,mean:30.41},cpu:{min:61.42,max:61.42,mean:61.42}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5961.65,totalRequests:178854,latency:{min:370,mean:5979,max:81096,pstdev:11586,percentiles:{p50:2705,p75:4189,p80:4699,p90:7030,p95:46987,p99:54095,p999:61222}},resources:{envoyGateway:{memory:{min:128.02,max:128.02,mean:128.02},cpu:{min:3.04,max:3.04,mean:3.04}},envoyProxy:{memory:{min:36.55,max:36.55,mean:36.55},cpu:{min:92.49,max:92.49,mean:92.49}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5921.3,totalRequests:177639,latency:{min:376,mean:6208,max:100098,pstdev:11901,percentiles:{p50:2770,p75:4413,p80:5009,p90:7647,p95:46934,p99:55273,p999:68509}},resources:{envoyGateway:{memory:{min:144.93,max:144.93,mean:144.93},cpu:{min:15.11,max:15.11,mean:15.11}},envoyProxy:{memory:{min:58.75,max:58.75,mean:58.75},cpu:{min:125.9,max:125.9,mean:125.9}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5876.24,totalRequests:176290,latency:{min:365,mean:6248,max:80101,pstdev:12134,percentiles:{p50:2759,p75:4348,p80:4922,p90:7422,p95:47855,p99:56041,p999:67145}},resources:{envoyGateway:{memory:{min:155.94,max:155.94,mean:155.94},cpu:{min:27.72,max:27.72,mean:27.72}},envoyProxy:{memory:{min:80.95,max:80.95,mean:80.95},cpu:{min:159.58,max:159.58,mean:159.58}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5744.1,totalRequests:172323,latency:{min:380,mean:6374,max:100245,pstdev:12424,percentiles:{p50:2775,p75:4337,p80:4899,p90:7542,p95:47699,p99:59248,p999:71761}},resources:{envoyGateway:{memory:{min:184.41,max:184.41,mean:184.41},cpu:{min:61.5,max:61.5,mean:61.5}},envoyProxy:{memory:{min:129.19,max:129.19,mean:129.19},cpu:{min:199.75,max:199.75,mean:199.75}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:6028.67,totalRequests:180864,latency:{min:361,mean:5919,max:75882,pstdev:11427,percentiles:{p50:2729,p75:4244,p80:4783,p90:6934,p95:46608,p99:53897,p999:59893}},resources:{envoyGateway:{memory:{min:229.41,max:229.41,mean:229.41},cpu:{min:114.16,max:114.16,mean:114.16}},envoyProxy:{memory:{min:121.69,max:121.69,mean:121.69},cpu:{min:363.78,max:363.78,mean:363.78}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:6093.21,totalRequests:182799,latency:{min:364,mean:5859,max:73809,pstdev:11454,percentiles:{p50:2634,p75:4171,p80:4702,p90:7002,p95:46548,p99:53979,p999:62793}},resources:{envoyGateway:{memory:{min:236.91,max:236.91,mean:236.91},cpu:{min:113.6,max:113.6,mean:113.6}},envoyProxy:{memory:{min:122.3,max:122.3,mean:122.3},cpu:{min:333.22,max:333.22,mean:333.22}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:6057.56,totalRequests:181727,latency:{min:366,mean:5898,max:83623,pstdev:11560,percentiles:{p50:2628,p75:4159,p80:4695,p90:6996,p95:46897,p99:54495,p999:61849}},resources:{envoyGateway:{memory:{min:143.71,max:143.71,mean:143.71},cpu:{min:112.58,max:112.58,mean:112.58}},envoyProxy:{memory:{min:121.84,max:121.84,mean:121.84},cpu:{min:302.58,max:302.58,mean:302.58}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5899.93,totalRequests:176998,latency:{min:329,mean:6218,max:88965,pstdev:12007,percentiles:{p50:2818,p75:4388,p80:4920,p90:7204,p95:47871,p99:55517,p999:65886}},resources:{envoyGateway:{memory:{min:154.24,max:154.24,mean:154.24},cpu:{min:102.3,max:102.3,mean:102.3}},envoyProxy:{memory:{min:129.34,max:129.34,mean:129.34},cpu:{min:270.21,max:270.21,mean:270.21}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5862.2,totalRequests:175868,latency:{min:359,mean:6106,max:107622,pstdev:11962,percentiles:{p50:2648,p75:4343,p80:4933,p90:7617,p95:47341,p99:55508,p999:69103}},resources:{envoyGateway:{memory:{min:153.72,max:153.72,mean:153.72},cpu:{min:91.07,max:91.07,mean:91.07}},envoyProxy:{memory:{min:129.18,max:129.18,mean:129.18},cpu:{min:237.04,max:237.04,mean:237.04}}},poolOverflow:363,upstreamConnections:37}]},kie={metadata:{version:"1.2.0",runId:"1.2.0-1750189826754",date:"2024-11-06",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.2.0",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.2.0/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6006.27,totalRequests:180191,latency:{min:359,mean:6202,max:74358,pstdev:11262,percentiles:{p50:2976,p75:4719,p80:5330,p90:8159,p95:44003,p99:54190,p999:59357}},resources:{envoyGateway:{memory:{min:113.66,max:113.66,mean:113.66},cpu:{min:.75,max:.75,mean:.75}},envoyProxy:{memory:{min:25.55,max:25.55,mean:25.55},cpu:{min:30.41,max:30.41,mean:30.41}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5988.15,totalRequests:179650,latency:{min:366,mean:6093,max:82386,pstdev:11670,percentiles:{p50:2838,p75:4283,p80:4798,p90:6972,p95:47523,p99:54038,p999:59813}},resources:{envoyGateway:{memory:{min:119.16,max:119.16,mean:119.16},cpu:{min:1.53,max:1.53,mean:1.53}},envoyProxy:{memory:{min:31.71,max:31.71,mean:31.71},cpu:{min:61.03,max:61.03,mean:61.03}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5930.13,totalRequests:177905,latency:{min:374,mean:6182,max:93884,pstdev:11844,percentiles:{p50:2812,p75:4420,p80:4967,p90:7339,p95:47618,p99:54661,p999:61865}},resources:{envoyGateway:{memory:{min:123.35,max:123.35,mean:123.35},cpu:{min:2.89,max:2.89,mean:2.89}},envoyProxy:{memory:{min:37.86,max:37.86,mean:37.86},cpu:{min:91.87,max:91.87,mean:91.87}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5713.27,totalRequests:171401,latency:{min:384,mean:6405,max:105545,pstdev:12313,percentiles:{p50:2832,p75:4450,p80:5057,p90:7773,p95:48732,p99:56084,p999:66220}},resources:{envoyGateway:{memory:{min:150.92,max:150.92,mean:150.92},cpu:{min:15.08,max:15.08,mean:15.08}},envoyProxy:{memory:{min:60.05,max:60.05,mean:60.05},cpu:{min:125.09,max:125.09,mean:125.09}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5689.03,totalRequests:170675,latency:{min:365,mean:5939,max:98639,pstdev:11585,percentiles:{p50:2715,p75:4258,p80:4772,p90:7055,p95:45996,p99:54368,p999:68464}},resources:{envoyGateway:{memory:{min:156.97,max:156.97,mean:156.97},cpu:{min:27.62,max:27.62,mean:27.62}},envoyProxy:{memory:{min:82.26,max:82.26,mean:82.26},cpu:{min:158.86,max:158.86,mean:158.86}}},poolOverflow:365,upstreamConnections:35},{testName:"scale-up-httproutes-1000",routes:1e3,routesPerHostname:1,phase:"scaling-up",throughput:5407.08,totalRequests:162220,latency:{min:371,mean:6424,max:131579,pstdev:12473,percentiles:{p50:2692,p75:4503,p80:5177,p90:8264,p95:47540,p99:58488,p999:72720}},resources:{envoyGateway:{memory:{min:215.93,max:215.93,mean:215.93},cpu:{min:61.56,max:61.56,mean:61.56}},envoyProxy:{memory:{min:130.5,max:130.5,mean:130.5},cpu:{min:197.45,max:197.45,mean:197.45}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5905.23,totalRequests:177157,latency:{min:396,mean:6205,max:92979,pstdev:12065,percentiles:{p50:2713,p75:4262,p80:4832,p90:7415,p95:48306,p99:55736,p999:63318}},resources:{envoyGateway:{memory:{min:233.71,max:233.71,mean:233.71},cpu:{min:114.53,max:114.53,mean:114.53}},envoyProxy:{memory:{min:118.94,max:118.94,mean:118.94},cpu:{min:360.39,max:360.39,mean:360.39}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5793.19,totalRequests:173800,latency:{min:385,mean:6501,max:86843,pstdev:12452,percentiles:{p50:2744,p75:4568,p80:5227,p90:8494,p95:48965,p99:56467,p999:65382}},resources:{envoyGateway:{memory:{min:202.08,max:202.08,mean:202.08},cpu:{min:113.96,max:113.96,mean:113.96}},envoyProxy:{memory:{min:121.24,max:121.24,mean:121.24},cpu:{min:329.91,max:329.91,mean:329.91}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5783.8,totalRequests:173514,latency:{min:385,mean:6179,max:85405,pstdev:11889,percentiles:{p50:2707,p75:4462,p80:5071,p90:7760,p95:47423,p99:54994,p999:64567}},resources:{envoyGateway:{memory:{min:144.59,max:144.59,mean:144.59},cpu:{min:112.93,max:112.93,mean:112.93}},envoyProxy:{memory:{min:121.22,max:121.22,mean:121.22},cpu:{min:299.28,max:299.28,mean:299.28}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5804.51,totalRequests:174139,latency:{min:384,mean:6147,max:82661,pstdev:11892,percentiles:{p50:2807,p75:4284,p80:4791,p90:7039,p95:47558,p99:55162,p999:66723}},resources:{envoyGateway:{memory:{min:160.23,max:160.23,mean:160.23},cpu:{min:102.85,max:102.85,mean:102.85}},envoyProxy:{memory:{min:130.62,max:130.62,mean:130.62},cpu:{min:267.09,max:267.09,mean:267.09}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-down",throughput:5804.87,totalRequests:174149,latency:{min:368,mean:5828,max:106119,pstdev:11561,percentiles:{p50:2647,p75:4078,p80:4553,p90:6656,p95:46047,p99:55025,p999:66633}},resources:{envoyGateway:{memory:{min:155.88,max:155.88,mean:155.88},cpu:{min:91.5,max:91.5,mean:91.5}},envoyProxy:{memory:{min:130.61,max:130.61,mean:130.61},cpu:{min:234.47,max:234.47,mean:234.47}}},poolOverflow:365,upstreamConnections:35}]},_ie={metadata:{version:"1.1.4",runId:"1.1.4-1750190329987",date:"2024-12-13",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.4",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.4/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5971.73,totalRequests:179152,latency:{min:354,mean:6247,max:97591,pstdev:11371,percentiles:{p50:2948,p75:4694,p80:5352,p90:8420,p95:44519,p99:54398,p999:62244}},resources:{envoyGateway:{memory:{min:82.79,max:82.79,mean:82.79},cpu:{min:1.5000000000000002,max:1.5000000000000002,mean:1.5000000000000002}},envoyProxy:{memory:{min:24.11,max:24.11,mean:24.11},cpu:{min:101.53333333333335,max:101.53333333333335,mean:101.53333333333335}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5957.22,totalRequests:178717,latency:{min:385,mean:6145,max:93360,pstdev:11838,percentiles:{p50:2751,p75:4352,p80:4922,p90:7436,p95:47679,p99:54878,p999:62414}},resources:{envoyGateway:{memory:{min:103.29,max:103.29,mean:103.29},cpu:{min:6.800000000000001,max:6.800000000000001,mean:6.800000000000001}},envoyProxy:{memory:{min:32.29,max:32.29,mean:32.29},cpu:{min:204,max:204,mean:204}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5896.53,totalRequests:176899,latency:{min:360,mean:6376,max:93995,pstdev:12077,percentiles:{p50:2905,p75:4542,p80:5112,p90:7699,p95:48019,p99:55472,p999:63707}},resources:{envoyGateway:{memory:{min:151.7,max:151.7,mean:151.7},cpu:{min:32.599999999999994,max:32.599999999999994,mean:32.599999999999994}},envoyProxy:{memory:{min:46.46,max:46.46,mean:46.46},cpu:{min:309.8,max:309.8,mean:309.8}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5885.1,totalRequests:176553,latency:{min:370,mean:6378,max:102457,pstdev:12096,percentiles:{p50:2834,p75:4508,p80:5093,p90:7817,p95:48099,p99:55572,p999:64329}},resources:{envoyGateway:{memory:{min:763.38,max:763.38,mean:763.38},cpu:{min:605.6333333333333,max:605.6333333333333,mean:605.6333333333333}},envoyProxy:{memory:{min:150.81,max:150.81,mean:150.81},cpu:{min:494.66666666666674,max:494.66666666666674,mean:494.66666666666674}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5642.37,totalRequests:169274,latency:{min:314,mean:6430,max:135987,pstdev:12216,percentiles:{p50:2801,p75:4489,p80:5175,p90:8673,p95:46690,p99:56358,p999:73814}},resources:{envoyGateway:{memory:{min:1603.28,max:1603.28,mean:1603.28},cpu:{min:41.63333333333333,max:41.63333333333333,mean:41.63333333333333}},envoyProxy:{memory:{min:289.75,max:289.75,mean:289.75},cpu:{min:727.1666666666666,max:727.1666666666666,mean:727.1666666666666}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5993.8,totalRequests:179822,latency:{min:381,mean:5965,max:84086,pstdev:11660,percentiles:{p50:2666,p75:4169,p80:4715,p90:6995,p95:47218,p99:54775,p999:61200}},resources:{envoyGateway:{memory:{min:117.16,max:117.16,mean:117.16},cpu:{min:518.0333333333333,max:518.0333333333333,mean:518.0333333333333}},envoyProxy:{memory:{min:278.72,max:278.72,mean:278.72},cpu:{min:1205.8,max:1205.8,mean:1205.8}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5947.1,totalRequests:178412,latency:{min:346,mean:5809,max:76681,pstdev:11155,percentiles:{p50:2707,p75:4164,p80:4684,p90:6938,p95:45451,p99:53227,p999:59303}},resources:{envoyGateway:{memory:{min:123.23,max:123.23,mean:123.23},cpu:{min:512.5333333333333,max:512.5333333333333,mean:512.5333333333333}},envoyProxy:{memory:{min:291.25,max:291.25,mean:291.25},cpu:{min:1103.6333333333334,max:1103.6333333333334,mean:1103.6333333333334}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:4884.46,totalRequests:146534,latency:{min:362,mean:7148,max:137863,pstdev:11237,percentiles:{p50:3375,p75:6266,p80:7621,p90:17699,p95:31992,p99:59576,p999:83935}},resources:{envoyGateway:{memory:{min:338.12,max:338.12,mean:338.12},cpu:{min:488.1333333333333,max:488.1333333333333,mean:488.1333333333333}},envoyProxy:{memory:{min:294.41,max:294.41,mean:294.41},cpu:{min:993,max:993,mean:993}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5737.62,totalRequests:172120,latency:{min:345,mean:6192,max:117288,pstdev:11530,percentiles:{p50:2822,p75:4535,p80:5155,p90:8463,p95:42631,p99:55584,p999:70291}},resources:{envoyGateway:{memory:{min:679.73,max:679.73,mean:679.73},cpu:{min:18.76666666666667,max:18.76666666666667,mean:18.76666666666667}},envoyProxy:{memory:{min:285.93,max:285.93,mean:285.93},cpu:{min:833.4333333333334,max:833.4333333333334,mean:833.4333333333334}}},poolOverflow:363,upstreamConnections:37}]},Cie={metadata:{version:"1.1.3",runId:"1.1.3-1750190329984",date:"2024-11-04",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.3",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.3/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6070.53,totalRequests:182116,latency:{min:353,mean:6263,max:87117,pstdev:11274,percentiles:{p50:2994,p75:4783,p80:5441,p90:8506,p95:44029,p99:54130,p999:59291}},resources:{envoyGateway:{memory:{min:85.16,max:85.16,mean:85.16},cpu:{min:1.3666666666666665,max:1.3666666666666665,mean:1.3666666666666665}},envoyProxy:{memory:{min:26,max:26,mean:26},cpu:{min:101.43333333333334,max:101.43333333333334,mean:101.43333333333334}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5999.45,totalRequests:179985,latency:{min:368,mean:6117,max:76840,pstdev:11675,percentiles:{p50:2803,p75:4339,p80:4903,p90:7204,p95:47128,p99:54317,p999:60557}},resources:{envoyGateway:{memory:{min:102.18,max:102.18,mean:102.18},cpu:{min:7.033333333333333,max:7.033333333333333,mean:7.033333333333333}},envoyProxy:{memory:{min:34.18,max:34.18,mean:34.18},cpu:{min:203.56666666666666,max:203.56666666666666,mean:203.56666666666666}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6053.06,totalRequests:181592,latency:{min:390,mean:5889,max:94826,pstdev:11642,percentiles:{p50:2599,p75:4075,p80:4583,p90:6945,p95:47128,p99:54872,p999:62212}},resources:{envoyGateway:{memory:{min:151.34,max:151.34,mean:151.34},cpu:{min:31.633333333333336,max:31.633333333333336,mean:31.633333333333336}},envoyProxy:{memory:{min:48.34,max:48.34,mean:48.34},cpu:{min:309.06666666666666,max:309.06666666666666,mean:309.06666666666666}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5895.77,totalRequests:176873,latency:{min:378,mean:6220,max:100757,pstdev:12033,percentiles:{p50:2723,p75:4341,p80:4931,p90:7644,p95:47828,p99:55521,p999:67383}},resources:{envoyGateway:{memory:{min:687.16,max:687.16,mean:687.16},cpu:{min:578.2333333333332,max:578.2333333333332,mean:578.2333333333332}},envoyProxy:{memory:{min:150.69,max:150.69,mean:150.69},cpu:{min:488.20000000000005,max:488.20000000000005,mean:488.20000000000005}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5818.09,totalRequests:174543,latency:{min:356,mean:6109,max:107913,pstdev:11285,percentiles:{p50:2832,p75:4538,p80:5163,p90:8134,p95:42639,p99:54546,p999:67543}},resources:{envoyGateway:{memory:{min:1329.35,max:1329.35,mean:1329.35},cpu:{min:61.33333333333333,max:61.33333333333333,mean:61.33333333333333}},envoyProxy:{memory:{min:303.55,max:303.55,mean:303.55},cpu:{min:731.4333333333334,max:731.4333333333334,mean:731.4333333333334}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5996.79,totalRequests:179907,latency:{min:367,mean:6127,max:77688,pstdev:11777,percentiles:{p50:2745,p75:4292,p80:4835,p90:7317,p95:47597,p99:54706,p999:61323}},resources:{envoyGateway:{memory:{min:125.62,max:125.62,mean:125.62},cpu:{min:525.5,max:525.5,mean:525.5}},envoyProxy:{memory:{min:289.68,max:289.68,mean:289.68},cpu:{min:1239.6,max:1239.6,mean:1239.6}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5732.14,totalRequests:171956,latency:{min:336,mean:4876,max:76279,pstdev:10072,percentiles:{p50:2290,p75:3444,p80:3846,p90:5476,p95:24546,p99:51763,p999:57040}},resources:{envoyGateway:{memory:{min:132.64,max:132.64,mean:132.64},cpu:{min:520.8333333333333,max:520.8333333333333,mean:520.8333333333333}},envoyProxy:{memory:{min:291.68,max:291.68,mean:291.68},cpu:{min:1138.0333333333335,max:1138.0333333333335,mean:1138.0333333333335}}},poolOverflow:371,upstreamConnections:29},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:5311.34,totalRequests:159332,latency:{min:362,mean:6219,max:144302,pstdev:11133,percentiles:{p50:2808,p75:4741,p80:5579,p90:10689,p95:37480,p99:53626,p999:73998}},resources:{envoyGateway:{memory:{min:179.01,max:179.01,mean:179.01},cpu:{min:497.9666666666666,max:497.9666666666666,mean:497.9666666666666}},envoyProxy:{memory:{min:298.77,max:298.77,mean:298.77},cpu:{min:1034.033333333333,max:1034.033333333333,mean:1034.033333333333}}},poolOverflow:365,upstreamConnections:35},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5633.85,totalRequests:169021,latency:{min:369,mean:6266,max:106577,pstdev:11127,percentiles:{p50:2908,p75:4793,p80:5511,p90:9568,p95:36169,p99:54472,p999:68628}},resources:{envoyGateway:{memory:{min:487.12,max:487.12,mean:487.12},cpu:{min:27.133333333333336,max:27.133333333333336,mean:27.133333333333336}},envoyProxy:{memory:{min:299.84,max:299.84,mean:299.84},cpu:{min:837.8666666666668,max:837.8666666666668,mean:837.8666666666668}}},poolOverflow:363,upstreamConnections:37}]},Aie={metadata:{version:"1.1.2",runId:"1.1.2-1750190329982",date:"2024-09-24",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.2",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.2/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:5649.72,totalRequests:169493,latency:{min:356,mean:6560,max:72347,pstdev:11796,percentiles:{p50:3044,p75:5011,p80:5690,p90:8937,p95:46880,p99:54560,p999:59316}},resources:{envoyGateway:{memory:{min:86.72,max:86.72,mean:86.72},cpu:{min:1.5666666666666667,max:1.5666666666666667,mean:1.5666666666666667}},envoyProxy:{memory:{min:24.26,max:24.26,mean:24.26},cpu:{min:101.63333333333333,max:101.63333333333333,mean:101.63333333333333}}},poolOverflow:360,upstreamConnections:40},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:5594.14,totalRequests:167826,latency:{min:377,mean:6225,max:71024,pstdev:11980,percentiles:{p50:2812,p75:4378,p80:4905,p90:7214,p95:48160,p99:54513,p999:59850}},resources:{envoyGateway:{memory:{min:106.76,max:106.76,mean:106.76},cpu:{min:7.7,max:7.7,mean:7.7}},envoyProxy:{memory:{min:32.43,max:32.43,mean:32.43},cpu:{min:204.53333333333333,max:204.53333333333333,mean:204.53333333333333}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:5523.65,totalRequests:165711,latency:{min:379,mean:6455,max:77815,pstdev:12317,percentiles:{p50:2868,p75:4510,p80:5086,p90:7645,p95:49127,p99:55048,p999:61448}},resources:{envoyGateway:{memory:{min:149.03,max:149.03,mean:149.03},cpu:{min:29.333333333333332,max:29.333333333333332,mean:29.333333333333332}},envoyProxy:{memory:{min:46.61,max:46.61,mean:46.61},cpu:{min:309.7666666666667,max:309.7666666666667,mean:309.7666666666667}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5554.01,totalRequests:166624,latency:{min:357,mean:6246,max:99753,pstdev:12051,percentiles:{p50:2841,p75:4416,p80:4960,p90:7177,p95:48371,p99:54800,p999:63275}},resources:{envoyGateway:{memory:{min:375.51,max:375.51,mean:375.51},cpu:{min:615.1,max:615.1,mean:615.1}},envoyProxy:{memory:{min:152.97,max:152.97,mean:152.97},cpu:{min:492.4666666666667,max:492.4666666666667,mean:492.4666666666667}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5475.04,totalRequests:164256,latency:{min:365,mean:6546,max:95539,pstdev:12646,percentiles:{p50:2834,p75:4484,p80:5075,p90:7891,p95:49397,p99:56231,p999:67629}},resources:{envoyGateway:{memory:{min:1340.6,max:1340.6,mean:1340.6},cpu:{min:38.333333333333336,max:38.333333333333336,mean:38.333333333333336}},envoyProxy:{memory:{min:281.71,max:281.71,mean:281.71},cpu:{min:718.0666666666666,max:718.0666666666666,mean:718.0666666666666}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5657.68,totalRequests:169734,latency:{min:355,mean:7320,max:87252,pstdev:13162,percentiles:{p50:3307,p75:5218,p80:5885,p90:9252,p95:50671,p99:56332,p999:62406}},resources:{envoyGateway:{memory:{min:371.29,max:371.29,mean:371.29},cpu:{min:578.7666666666667,max:578.7666666666667,mean:578.7666666666667}},envoyProxy:{memory:{min:273.57,max:273.57,mean:273.57},cpu:{min:1224,max:1224,mean:1224}}},poolOverflow:356,upstreamConnections:44},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5587.8,totalRequests:167636,latency:{min:356,mean:6346,max:68095,pstdev:12097,percentiles:{p50:2890,p75:4509,p80:5041,p90:7495,p95:48560,p99:54345,p999:60436}},resources:{envoyGateway:{memory:{min:342.8,max:342.8,mean:342.8},cpu:{min:573.3000000000001,max:573.3000000000001,mean:573.3000000000001}},envoyProxy:{memory:{min:274.84,max:274.84,mean:274.84},cpu:{min:1122.2333333333333,max:1122.2333333333333,mean:1122.2333333333333}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:4098.74,totalRequests:122966,latency:{min:347,mean:3660,max:99745,pstdev:7371,percentiles:{p50:1658,p75:2735,p80:3147,p90:5306,p95:18030,p99:42778,p999:60440}},resources:{envoyGateway:{memory:{min:433.01,max:433.01,mean:433.01},cpu:{min:486.96666666666664,max:486.96666666666664,mean:486.96666666666664}},envoyProxy:{memory:{min:281.27,max:281.27,mean:281.27},cpu:{min:996.0333333333333,max:996.0333333333333,mean:996.0333333333333}}},poolOverflow:384,upstreamConnections:16},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5306.46,totalRequests:159194,latency:{min:360,mean:6884,max:106807,pstdev:12850,percentiles:{p50:2983,p75:4873,p80:5573,p90:9215,p95:49102,p99:58521,p999:70213}},resources:{envoyGateway:{memory:{min:232.76,max:232.76,mean:232.76},cpu:{min:16.299999999999997,max:16.299999999999997,mean:16.299999999999997}},envoyProxy:{memory:{min:282.68,max:282.68,mean:282.68},cpu:{min:825.4333333333333,max:825.4333333333333,mean:825.4333333333333}}},poolOverflow:361,upstreamConnections:39}]},Eie={metadata:{version:"1.1.1",runId:"1.1.1-1750190329981",date:"2024-09-12",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.1",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.1/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6258.99,totalRequests:187774,latency:{min:333,mean:5933,max:71266,pstdev:10816,percentiles:{p50:2898,p75:4513,p80:5099,p90:7661,p95:40607,p99:53149,p999:58789}},resources:{envoyGateway:{memory:{min:84.04,max:84.04,mean:84.04},cpu:{min:1.5333333333333334,max:1.5333333333333334,mean:1.5333333333333334}},envoyProxy:{memory:{min:25.57,max:25.57,mean:25.57},cpu:{min:101.33333333333331,max:101.33333333333331,mean:101.33333333333331}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6118.28,totalRequests:183552,latency:{min:359,mean:5828,max:81178,pstdev:11437,percentiles:{p50:2646,p75:4049,p80:4561,p90:6666,p95:46723,p99:53913,p999:60094}},resources:{envoyGateway:{memory:{min:101.33,max:101.33,mean:101.33},cpu:{min:6.8999999999999995,max:6.8999999999999995,mean:6.8999999999999995}},envoyProxy:{memory:{min:33.75,max:33.75,mean:33.75},cpu:{min:203.6,max:203.6,mean:203.6}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6045.36,totalRequests:181361,latency:{min:377,mean:5908,max:88063,pstdev:11539,percentiles:{p50:2659,p75:4143,p80:4675,p90:6863,p95:46733,p99:54091,p999:63211}},resources:{envoyGateway:{memory:{min:115.34,max:115.34,mean:115.34},cpu:{min:32.800000000000004,max:32.800000000000004,mean:32.800000000000004}},envoyProxy:{memory:{min:47.79,max:47.79,mean:47.79},cpu:{min:308.96666666666664,max:308.96666666666664,mean:308.96666666666664}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5881.18,totalRequests:176436,latency:{min:327,mean:6376,max:130330,pstdev:12048,percentiles:{p50:2843,p75:4548,p80:5181,p90:8168,p95:47517,p99:55470,p999:66041}},resources:{envoyGateway:{memory:{min:608.65,max:608.65,mean:608.65},cpu:{min:625.6666666666666,max:625.6666666666666,mean:625.6666666666666}},envoyProxy:{memory:{min:152.29,max:152.29,mean:152.29},cpu:{min:492.5666666666667,max:492.5666666666667,mean:492.5666666666667}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5875.93,totalRequests:176280,latency:{min:381,mean:6086,max:86654,pstdev:11932,percentiles:{p50:2704,p75:4181,p80:4727,p90:7177,p95:47091,p99:55814,p999:68415}},resources:{envoyGateway:{memory:{min:1308.52,max:1308.52,mean:1308.52},cpu:{min:39.49999999999999,max:39.49999999999999,mean:39.49999999999999}},envoyProxy:{memory:{min:283.24,max:283.24,mean:283.24},cpu:{min:707.1333333333332,max:707.1333333333332,mean:707.1333333333332}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:6077.56,totalRequests:182327,latency:{min:362,mean:6197,max:92372,pstdev:11720,percentiles:{p50:2824,p75:4438,p80:5e3,p90:7503,p95:47110,p99:54169,p999:60426}},resources:{envoyGateway:{memory:{min:121.13,max:121.13,mean:121.13},cpu:{min:544.5333333333334,max:544.5333333333334,mean:544.5333333333334}},envoyProxy:{memory:{min:277.29,max:277.29,mean:277.29},cpu:{min:1206.4666666666665,max:1206.4666666666665,mean:1206.4666666666665}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:6047.67,totalRequests:181438,latency:{min:370,mean:6062,max:92168,pstdev:11743,percentiles:{p50:2733,p75:4268,p80:4801,p90:7226,p95:47095,p99:54886,p999:61917}},resources:{envoyGateway:{memory:{min:126.22,max:126.22,mean:126.22},cpu:{min:538.8333333333334,max:538.8333333333334,mean:538.8333333333334}},envoyProxy:{memory:{min:285.62,max:285.62,mean:285.62},cpu:{min:1104.3000000000002,max:1104.3000000000002,mean:1104.3000000000002}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:4654.8,totalRequests:139655,latency:{min:336,mean:4675,max:107409,pstdev:9843,percentiles:{p50:2048,p75:3459,p80:4015,p90:6531,p95:19138,p99:57518,p999:73269}},resources:{envoyGateway:{memory:{min:480.36,max:480.36,mean:480.36},cpu:{min:377,max:377,mean:377}},envoyProxy:{memory:{min:289.51,max:289.51,mean:289.51},cpu:{min:969.2333333333332,max:969.2333333333332,mean:969.2333333333332}}},poolOverflow:377,upstreamConnections:23},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5676.68,totalRequests:170301,latency:{min:376,mean:6244,max:153264,pstdev:11618,percentiles:{p50:2797,p75:4618,p80:5324,p90:8807,p95:40232,p99:56496,p999:73506}},resources:{envoyGateway:{memory:{min:436.58,max:436.58,mean:436.58},cpu:{min:28.066666666666666,max:28.066666666666666,mean:28.066666666666666}},envoyProxy:{memory:{min:283.47,max:283.47,mean:283.47},cpu:{min:813.3666666666667,max:813.3666666666667,mean:813.3666666666667}}},poolOverflow:363,upstreamConnections:37}]},Tie={metadata:{version:"1.1.0",runId:"1.1.0-1750190329977",date:"2024-07-23",environment:"GitHub CI",description:"Benchmark report for Envoy Gateway 1.1.0",downloadUrl:"https://github.com/envoyproxy/gateway/releases/download/v1.1.0/benchmark_report.zip",testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"}},results:[{testName:"scale-up-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-up",throughput:6181.97,totalRequests:185463,latency:{min:362,mean:5902,max:73084,pstdev:11039,percentiles:{p50:2765,p75:4364,p80:4935,p90:7504,p95:41244,p99:53929,p999:61147}},resources:{envoyGateway:{memory:{min:86.2,max:86.2,mean:86.2},cpu:{min:1.4333333333333333,max:1.4333333333333333,mean:1.4333333333333333}},envoyProxy:{memory:{min:24.09,max:24.09,mean:24.09},cpu:{min:101.36666666666667,max:101.36666666666667,mean:101.36666666666667}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-up",throughput:6103.97,totalRequests:183121,latency:{min:354,mean:5852,max:75943,pstdev:11382,percentiles:{p50:2681,p75:4083,p80:4601,p90:6825,p95:46262,p99:53862,p999:60651}},resources:{envoyGateway:{memory:{min:100.14,max:100.14,mean:100.14},cpu:{min:7.233333333333333,max:7.233333333333333,mean:7.233333333333333}},envoyProxy:{memory:{min:32.25,max:32.25,mean:32.25},cpu:{min:203.6,max:203.6,mean:203.6}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-up",throughput:6074.87,totalRequests:182247,latency:{min:371,mean:5877,max:94171,pstdev:11399,percentiles:{p50:2732,p75:4191,p80:4677,p90:6801,p95:46481,p99:53866,p999:61036}},resources:{envoyGateway:{memory:{min:114.69,max:114.69,mean:114.69},cpu:{min:30,max:30,mean:30}},envoyProxy:{memory:{min:46.42,max:46.42,mean:46.42},cpu:{min:308.70000000000005,max:308.70000000000005,mean:308.70000000000005}}},poolOverflow:363,upstreamConnections:37},{testName:"scale-up-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-up",throughput:5993.57,totalRequests:179811,latency:{min:368,mean:6123,max:96571,pstdev:11831,percentiles:{p50:2753,p75:4261,p80:4799,p90:7247,p95:47368,p99:55248,p999:66586}},resources:{envoyGateway:{memory:{min:762.8,max:762.8,mean:762.8},cpu:{min:600.8666666666667,max:600.8666666666667,mean:600.8666666666667}},envoyProxy:{memory:{min:152.78,max:152.78,mean:152.78},cpu:{min:488.70000000000005,max:488.70000000000005,mean:488.70000000000005}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-up-httproutes-500",routes:500,routesPerHostname:1,phase:"scaling-up",throughput:5812.8,totalRequests:174396,latency:{min:388,mean:6310,max:95719,pstdev:12246,percentiles:{p50:2729,p75:4334,p80:4905,p90:7607,p95:47970,p99:56811,p999:68165}},resources:{envoyGateway:{memory:{min:1593.56,max:1593.56,mean:1593.56},cpu:{min:36.56666666666667,max:36.56666666666667,mean:36.56666666666667}},envoyProxy:{memory:{min:289.79,max:289.79,mean:289.79},cpu:{min:715.6333333333333,max:715.6333333333333,mean:715.6333333333333}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-10",routes:10,routesPerHostname:1,phase:"scaling-down",throughput:5916.93,totalRequests:177517,latency:{min:385,mean:6352,max:82747,pstdev:12011,percentiles:{p50:2822,p75:4461,p80:5061,p90:7769,p95:47847,p99:55068,p999:62578}},resources:{envoyGateway:{memory:{min:124.07,max:124.07,mean:124.07},cpu:{min:519.6333333333332,max:519.6333333333332,mean:519.6333333333332}},envoyProxy:{memory:{min:284.03,max:284.03,mean:284.03},cpu:{min:1194.8666666666666,max:1194.8666666666666,mean:1194.8666666666666}}},poolOverflow:361,upstreamConnections:39},{testName:"scale-down-httproutes-50",routes:50,routesPerHostname:1,phase:"scaling-down",throughput:5876.35,totalRequests:176294,latency:{min:371,mean:6226,max:83869,pstdev:11816,percentiles:{p50:2770,p75:4396,p80:5e3,p90:7848,p95:47163,p99:55156,p999:64434}},resources:{envoyGateway:{memory:{min:131.62,max:131.62,mean:131.62},cpu:{min:513.6,max:513.6,mean:513.6}},envoyProxy:{memory:{min:291.73,max:291.73,mean:291.73},cpu:{min:1092.9333333333334,max:1092.9333333333334,mean:1092.9333333333334}}},poolOverflow:362,upstreamConnections:38},{testName:"scale-down-httproutes-100",routes:100,routesPerHostname:1,phase:"scaling-down",throughput:4820.43,totalRequests:144617,latency:{min:342,mean:7088,max:172031,pstdev:12642,percentiles:{p50:3156,p75:5480,p80:6443,p90:12007,p95:39675,p99:63842,p999:86532}},resources:{envoyGateway:{memory:{min:374.36,max:374.36,mean:374.36},cpu:{min:462.8,max:462.8,mean:462.8}},envoyProxy:{memory:{min:289.98,max:289.98,mean:289.98},cpu:{min:980.4,max:980.4,mean:980.4}}},poolOverflow:364,upstreamConnections:36},{testName:"scale-down-httproutes-300",routes:300,routesPerHostname:1,phase:"scaling-down",throughput:5746.71,totalRequests:172402,latency:{min:386,mean:6313,max:101535,pstdev:11578,percentiles:{p50:2875,p75:4579,p80:5222,p90:8617,p95:44341,p99:54996,p999:67178}},resources:{envoyGateway:{memory:{min:670.44,max:670.44,mean:670.44},cpu:{min:24.333333333333332,max:24.333333333333332,mean:24.333333333333332}},envoyProxy:{memory:{min:285.86,max:285.86,mean:285.86},cpu:{min:824.5666666666667,max:824.5666666666667,mean:824.5666666666667}}},poolOverflow:362,upstreamConnections:38}]},r1=[cie,pie,fie,die,mie,hie,vie,yie,gie,xie,wie,bie,Pie,Sie,Oie,kie,_ie,Cie,Aie,Eie,Tie],jie=()=>r1.map(e=>e.metadata.version),gi=r1.find(e=>e.metadata.version==="1.4.1"),St=(gi==null?void 0:gi.results)||[];gi!=null&&gi.metadata.testConfiguration;St.length,St.filter(e=>e.phase==="scaling-up").length,St.filter(e=>e.phase==="scaling-down").length,St.length>0&&Math.max(...St.map(e=>e.routes)),St.length>0&&Math.min(...St.map(e=>e.routes)),St.length>0&&St.reduce((e,t)=>e+t.throughput,0)/St.length,St.length>0&&St.reduce((e,t)=>e+t.latency.mean,0)/St.length;St.map(e=>({routes:e.routes,phase:e.phase,p50:e.latency.percentiles.p50/1e3,p75:e.latency.percentiles.p75/1e3,p90:e.latency.percentiles.p90/1e3,p95:e.latency.percentiles.p95/1e3,p99:e.latency.percentiles.p99/1e3,p999:e.latency.percentiles.p999/1e3}));St.map(e=>({routes:e.routes,phase:e.phase,envoyGatewayMemory:e.resources.envoyGateway.memory.mean,envoyGatewayCpu:e.resources.envoyGateway.cpu.mean,envoyProxyMemory:e.resources.envoyProxy.memory.mean,envoyProxyCpu:e.resources.envoyProxy.cpu.mean}));St.map(e=>({testName:e.testName,routes:e.routes,phase:e.phase,throughput:e.throughput,meanLatency:e.latency.mean/1e3,p95Latency:e.latency.percentiles.p95/1e3,totalMemory:e.resources.envoyGateway.memory.mean+e.resources.envoyProxy.memory.mean,totalCpu:e.resources.envoyGateway.cpu.mean+e.resources.envoyProxy.cpu.mean}));const $ie=()=>{const e=jie(),[t,n]=k.useState(e[0]||""),r=k.useMemo(()=>r1.find(o=>o.metadata.version===t),[t]),a=k.useMemo(()=>{if(!r)return{benchmarkResults:[],testConfiguration:{rps:1e4,connections:100,duration:30,cpuLimit:"1000m",memoryLimit:"2000Mi"},performanceSummary:{totalTests:0,scaleUpTests:0,scaleDownTests:0,maxRoutes:0,minRoutes:0,avgThroughput:0,avgLatency:0},latencyPercentileComparison:[],resourceTrends:[],performanceMatrix:[],metadata:null};const o=r.results;return{benchmarkResults:o,testConfiguration:r.metadata.testConfiguration,performanceSummary:{totalTests:o.length,scaleUpTests:o.filter(i=>i.phase==="scaling-up").length,scaleDownTests:o.filter(i=>i.phase==="scaling-down").length,maxRoutes:o.length>0?Math.max(...o.map(i=>i.routes)):0,minRoutes:o.length>0?Math.min(...o.map(i=>i.routes)):0,avgThroughput:o.length>0?o.reduce((i,s)=>i+s.throughput,0)/o.length:0,avgLatency:o.length>0?o.reduce((i,s)=>i+s.latency.mean,0)/o.length:0},latencyPercentileComparison:o.map(i=>({routes:i.routes,phase:i.phase,p50:i.latency.percentiles.p50/1e3,p75:i.latency.percentiles.p75/1e3,p90:i.latency.percentiles.p90/1e3,p95:i.latency.percentiles.p95/1e3,p99:i.latency.percentiles.p99/1e3,p999:i.latency.percentiles.p999/1e3})),resourceTrends:o.map(i=>({routes:i.routes,phase:i.phase,envoyGatewayMemory:i.resources.envoyGateway.memory.mean,envoyGatewayCpu:i.resources.envoyGateway.cpu.mean,envoyProxyMemory:i.resources.envoyProxy.memory.mean,envoyProxyCpu:i.resources.envoyProxy.cpu.mean})),performanceMatrix:o.map(i=>({testName:i.testName,routes:i.routes,phase:i.phase,throughput:i.throughput,meanLatency:i.latency.mean/1e3,p95Latency:i.latency.percentiles.p95/1e3,totalMemory:i.resources.envoyGateway.memory.mean+i.resources.envoyProxy.memory.mean,totalCpu:i.resources.envoyGateway.cpu.mean+i.resources.envoyProxy.cpu.mean})),metadata:r.metadata}},[r]);return{selectedVersion:t,setSelectedVersion:n,availableVersions:e,...a}},Nie=({apiBase:e="https://envoy-gateway-benchmark-report.netlify.app/api",initialVersion:t,theme:n="light",containerClassName:r="",features:a={header:!1,versionSelector:!0,summaryCards:!0,tabs:["overview","latency","resources"]}})=>{var i,s,l,u,p,c;const o=$ie();return k.useEffect(()=>{n==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},[n]),k.useEffect(()=>{const f=document.createElement("style");return f.textContent=`
       .benchmark-dashboard [data-radix-popper-content-wrapper] {
         z-index: 9999 !important;
       }
       .benchmark-dashboard .relative.z-50 {
         z-index: 9999 !important;
       }
-    `,document.head.appendChild(p),()=>{document.head.removeChild(p)}},[]),b.jsxs("div",{className:`benchmark-dashboard ${n} ${r}`,"data-theme":n,children:[a.header&&b.jsxs("div",{className:"mb-8",children:[b.jsx("h2",{className:"text-3xl font-bold",children:"Performance Benchmark Report Explorer"}),b.jsx("p",{className:"text-xl text-gray-600 dark:text-gray-300",children:"Detailed performance analysis"})]}),a.versionSelector&&b.jsx("div",{className:"mb-6",children:b.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-xl shadow-lg p-4 w-full",children:b.jsx(ij,{selectedVersion:o.selectedVersion,availableVersions:o.availableVersions,onVersionChange:o.setSelectedVersion,metadata:o.metadata})})}),a.summaryCards&&o.performanceSummary&&b.jsx("div",{className:"mb-8",children:b.jsx(lj,{performanceSummary:o.performanceSummary,benchmarkResults:o.benchmarkResults})}),a.tabs&&a.tabs.length>0&&b.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-2xl shadow-lg overflow-hidden",children:b.jsxs(Xoe,{defaultValue:a.tabs[0],className:"w-full",children:[b.jsxs(fO,{className:`grid w-full ${a.tabs.length===1?"grid-cols-1":a.tabs.length===2?"grid-cols-2":"grid-cols-3"} bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 h-auto p-0 rounded-none`,children:[((i=a.tabs)==null?void 0:i.includes("overview"))&&b.jsx(Bc,{value:"overview",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-600 data-[state=active]:to-indigo-600 data-[state=active]:text-white data-[state=active]:shadow-lg data-[state=active]:border-b-2 data-[state=active]:border-purple-600 hover:bg-gray-50 dark:hover:bg-gray-700 text-sm sm:text-base py-4 px-6 rounded-t-lg border-b-2 border-transparent transition-all duration-200 font-medium",children:"Overview"}),((s=a.tabs)==null?void 0:s.includes("latency"))&&b.jsx(Bc,{value:"latency",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-600 data-[state=active]:to-indigo-600 data-[state=active]:text-white data-[state=active]:shadow-lg data-[state=active]:border-b-2 data-[state=active]:border-purple-600 hover:bg-gray-50 dark:hover:bg-gray-700 text-sm sm:text-base py-4 px-6 rounded-t-lg border-b-2 border-transparent transition-all duration-200 font-medium",children:"Request RTT Analysis"}),((l=a.tabs)==null?void 0:l.includes("resources"))&&b.jsx(Bc,{value:"resources",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-600 data-[state=active]:to-indigo-600 data-[state=active]:text-white data-[state=active]:shadow-lg data-[state=active]:border-b-2 data-[state=active]:border-purple-600 hover:bg-gray-50 dark:hover:bg-gray-700 text-sm sm:text-base py-4 px-6 rounded-t-lg border-b-2 border-transparent transition-all duration-200 font-medium",children:"Resource Usage"})]}),b.jsxs("div",{className:"p-6",children:[((u=a.tabs)==null?void 0:u.includes("overview"))&&b.jsx(Hc,{value:"overview",children:b.jsx(Coe,{performanceMatrix:o.performanceMatrix,benchmarkResults:o.benchmarkResults,testConfiguration:o.testConfiguration,performanceSummary:o.performanceSummary,latencyPercentileComparison:o.latencyPercentileComparison})}),((f=a.tabs)==null?void 0:f.includes("latency"))&&b.jsx(Hc,{value:"latency",children:b.jsx(Eoe,{latencyPercentileComparison:o.latencyPercentileComparison,benchmarkResults:o.benchmarkResults})}),((c=a.tabs)==null?void 0:c.includes("resources"))&&b.jsx(Hc,{value:"resources",children:b.jsx(Toe,{resourceTrends:o.resourceTrends,benchmarkResults:o.benchmarkResults})})]})]})})]})};class pO{static async getAllCSS(){const t="shadow-dom-css";if(this.cssCache.has(t))return this.cssCache.get(t);try{let n="";const r=this.getBundledCSS();if(r){n=this.transformCSSForShadowDOM(r);const a=`
+    `,document.head.appendChild(f),()=>{document.head.removeChild(f)}},[]),b.jsxs("div",{className:`benchmark-dashboard ${n} ${r}`,"data-theme":n,children:[a.header&&b.jsxs("div",{className:"mb-8",children:[b.jsx("h2",{className:"text-3xl font-bold",children:"Performance Benchmark Report Explorer"}),b.jsx("p",{className:"text-xl text-gray-600 dark:text-gray-300",children:"Detailed performance analysis"})]}),a.versionSelector&&b.jsx("div",{className:"mb-6",children:b.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-xl shadow-lg p-4 w-full",children:b.jsx(wj,{selectedVersion:o.selectedVersion,availableVersions:o.availableVersions,onVersionChange:o.setSelectedVersion,metadata:o.metadata})})}),a.summaryCards&&o.performanceSummary&&b.jsx("div",{className:"mb-8",children:b.jsx(Pj,{performanceSummary:o.performanceSummary,benchmarkResults:o.benchmarkResults})}),a.tabs&&a.tabs.length>0&&b.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-2xl shadow-lg overflow-hidden",children:b.jsxs(uie,{defaultValue:a.tabs[0],className:"w-full",children:[b.jsxs(mO,{className:`grid w-full ${a.tabs.length===1?"grid-cols-1":a.tabs.length===2?"grid-cols-2":"grid-cols-3"} bg-white dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 h-auto p-0 rounded-none`,children:[((i=a.tabs)==null?void 0:i.includes("overview"))&&b.jsx(Bc,{value:"overview",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-600 data-[state=active]:to-indigo-600 data-[state=active]:text-white data-[state=active]:shadow-lg data-[state=active]:border-b-2 data-[state=active]:border-purple-600 hover:bg-gray-50 dark:hover:bg-gray-700 text-sm sm:text-base py-4 px-6 rounded-t-lg border-b-2 border-transparent transition-all duration-200 font-medium",children:"Overview"}),((s=a.tabs)==null?void 0:s.includes("latency"))&&b.jsx(Bc,{value:"latency",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-600 data-[state=active]:to-indigo-600 data-[state=active]:text-white data-[state=active]:shadow-lg data-[state=active]:border-b-2 data-[state=active]:border-purple-600 hover:bg-gray-50 dark:hover:bg-gray-700 text-sm sm:text-base py-4 px-6 rounded-t-lg border-b-2 border-transparent transition-all duration-200 font-medium",children:"Request RTT Analysis"}),((l=a.tabs)==null?void 0:l.includes("resources"))&&b.jsx(Bc,{value:"resources",className:"data-[state=active]:bg-gradient-to-r data-[state=active]:from-purple-600 data-[state=active]:to-indigo-600 data-[state=active]:text-white data-[state=active]:shadow-lg data-[state=active]:border-b-2 data-[state=active]:border-purple-600 hover:bg-gray-50 dark:hover:bg-gray-700 text-sm sm:text-base py-4 px-6 rounded-t-lg border-b-2 border-transparent transition-all duration-200 font-medium",children:"Resource Usage"})]}),b.jsxs("div",{className:"p-6",children:[((u=a.tabs)==null?void 0:u.includes("overview"))&&b.jsx(Hc,{value:"overview",children:b.jsx(Hoe,{performanceMatrix:o.performanceMatrix,benchmarkResults:o.benchmarkResults,testConfiguration:o.testConfiguration,performanceSummary:o.performanceSummary,latencyPercentileComparison:o.latencyPercentileComparison})}),((p=a.tabs)==null?void 0:p.includes("latency"))&&b.jsx(Hc,{value:"latency",children:b.jsx(Goe,{latencyPercentileComparison:o.latencyPercentileComparison,benchmarkResults:o.benchmarkResults})}),((c=a.tabs)==null?void 0:c.includes("resources"))&&b.jsx(Hc,{value:"resources",children:b.jsx(Uoe,{resourceTrends:o.resourceTrends,benchmarkResults:o.benchmarkResults})})]})]})})]})};class hO{static async getAllCSS(){const t="shadow-dom-css";if(this.cssCache.has(t))return this.cssCache.get(t);try{let n="";const r=this.getBundledCSS();if(r){n=this.transformCSSForShadowDOM(r);const a=`
           ${this.getShadowDOMStyles()}
           ${n}
         `;return this.cssCache.set(t,a),a}else{const a=this.getFallbackCSS();return this.cssCache.set(t,a),a}}catch(n){return console.error("Error loading CSS for Shadow DOM:",n),this.getFallbackCSS()}}static getBundledCSS(){return window.__BENCHMARK_CSS__||null}static getCSSVariables(){return`
@@ -569,7 +569,7 @@ ${n.map(([o,i])=>{var l;const s=((l=i.theme)==null?void 0:l[r])||i.color;return
       @media (min-width: 640px) {
         .sm\\:text-base { font-size: 1rem !important; line-height: 1.5rem !important; }
       }
-    `}}f1(pO,"cssCache",new Map);var Bd=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Hd=typeof window>"u"||"Deno"in globalThis;function En(){}function xie(e,t){return typeof e=="function"?e(t):e}function wie(e){return typeof e=="number"&&e>=0&&e!==1/0}function bie(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Ly(e,t){return typeof e=="function"?e(t):e}function Pie(e,t){return typeof e=="function"?e(t):e}function B2(e,t){const{type:n="all",exact:r,fetchStatus:a,predicate:o,queryKey:i,stale:s}=e;if(i){if(r){if(t.queryHash!==a1(i,t.options))return!1}else if(!Pu(t.queryKey,i))return!1}if(n!=="all"){const l=t.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||a&&a!==t.state.fetchStatus||o&&!o(t))}function H2(e,t){const{exact:n,status:r,predicate:a,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(n){if(bu(t.options.mutationKey)!==bu(o))return!1}else if(!Pu(t.options.mutationKey,o))return!1}return!(r&&t.state.status!==r||a&&!a(t))}function a1(e,t){return((t==null?void 0:t.queryKeyHashFn)||bu)(e)}function bu(e){return JSON.stringify(e,(t,n)=>Fy(n)?Object.keys(n).sort().reduce((r,a)=>(r[a]=n[a],r),{}):n)}function Pu(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Pu(e[n],t[n])):!1}function dO(e,t){if(e===t)return e;const n=G2(e)&&G2(t);if(n||Fy(e)&&Fy(t)){const r=n?e:Object.keys(e),a=r.length,o=n?t:Object.keys(t),i=o.length,s=n?[]:{},l=new Set(r);let u=0;for(let f=0;f<i;f++){const c=n?f:o[f];(!n&&l.has(c)||n)&&e[c]===void 0&&t[c]===void 0?(s[c]=void 0,u++):(s[c]=dO(e[c],t[c]),s[c]===e[c]&&e[c]!==void 0&&u++)}return a===i&&u===a?e:s}return t}function G2(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Fy(e){if(!U2(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!U2(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function U2(e){return Object.prototype.toString.call(e)==="[object Object]"}function Sie(e){return new Promise(t=>{setTimeout(t,e)})}function Oie(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?dO(e,t):t}function kie(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function _ie(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var o1=Symbol();function mO(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===o1?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var ro,ia,xi,X2,Aie=(X2=class extends Bd{constructor(){super();me(this,ro);me(this,ia);me(this,xi);ae(this,xi,t=>{if(!Hd&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){B(this,ia)||this.setEventListener(B(this,xi))}onUnsubscribe(){var t;this.hasListeners()||((t=B(this,ia))==null||t.call(this),ae(this,ia,void 0))}setEventListener(t){var n;ae(this,xi,t),(n=B(this,ia))==null||n.call(this),ae(this,ia,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){B(this,ro)!==t&&(ae(this,ro,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof B(this,ro)=="boolean"?B(this,ro):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},ro=new WeakMap,ia=new WeakMap,xi=new WeakMap,X2),hO=new Aie,wi,sa,bi,Y2,Cie=(Y2=class extends Bd{constructor(){super();me(this,wi,!0);me(this,sa);me(this,bi);ae(this,bi,t=>{if(!Hd&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){B(this,sa)||this.setEventListener(B(this,bi))}onUnsubscribe(){var t;this.hasListeners()||((t=B(this,sa))==null||t.call(this),ae(this,sa,void 0))}setEventListener(t){var n;ae(this,bi,t),(n=B(this,sa))==null||n.call(this),ae(this,sa,t(this.setOnline.bind(this)))}setOnline(t){B(this,wi)!==t&&(ae(this,wi,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return B(this,wi)}},wi=new WeakMap,sa=new WeakMap,bi=new WeakMap,Y2),Op=new Cie;function Eie(){let e,t;const n=new Promise((a,o)=>{e=a,t=o});n.status="pending",n.catch(()=>{});function r(a){Object.assign(n,a),delete n.resolve,delete n.reject}return n.resolve=a=>{r({status:"fulfilled",value:a}),e(a)},n.reject=a=>{r({status:"rejected",reason:a}),t(a)},n}function Tie(e){return Math.min(1e3*2**e,3e4)}function vO(e){return(e??"online")==="online"?Op.isOnline():!0}var yO=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function ah(e){return e instanceof yO}function gO(e){let t=!1,n=0,r=!1,a;const o=Eie(),i=m=>{var g;r||(p(new yO(m)),(g=e.abort)==null||g.call(e))},s=()=>{t=!0},l=()=>{t=!1},u=()=>hO.isFocused()&&(e.networkMode==="always"||Op.isOnline())&&e.canRun(),f=()=>vO(e.networkMode)&&e.canRun(),c=m=>{var g;r||(r=!0,(g=e.onSuccess)==null||g.call(e,m),a==null||a(),o.resolve(m))},p=m=>{var g;r||(r=!0,(g=e.onError)==null||g.call(e,m),a==null||a(),o.reject(m))},d=()=>new Promise(m=>{var g;a=v=>{(r||u())&&m(v)},(g=e.onPause)==null||g.call(e)}).then(()=>{var m;a=void 0,r||(m=e.onContinue)==null||m.call(e)}),h=()=>{if(r)return;let m;const g=n===0?e.initialPromise:void 0;try{m=g??e.fn()}catch(v){m=Promise.reject(v)}Promise.resolve(m).then(c).catch(v=>{var S;if(r)return;const y=e.retry??(Hd?0:3),x=e.retryDelay??Tie,P=typeof x=="function"?x(n,v):x,w=y===!0||typeof y=="number"&&n<y||typeof y=="function"&&y(n,v);if(t||!w){p(v);return}n++,(S=e.onFail)==null||S.call(e,n,v),Sie(P).then(()=>u()?void 0:d()).then(()=>{t?p(v):h()})})};return{promise:o,cancel:i,continue:()=>(a==null||a(),o),cancelRetry:s,continueRetry:l,canStart:f,start:()=>(f()?h():d().then(h),o)}}var jie=e=>setTimeout(e,0);function $ie(){let e=[],t=0,n=s=>{s()},r=s=>{s()},a=jie;const o=s=>{t?e.push(s):a(()=>{n(s)})},i=()=>{const s=e;e=[],s.length&&a(()=>{r(()=>{s.forEach(l=>{n(l)})})})};return{batch:s=>{let l;t++;try{l=s()}finally{t--,t||i()}return l},batchCalls:s=>(...l)=>{o(()=>{s(...l)})},schedule:o,setNotifyFunction:s=>{n=s},setBatchNotifyFunction:s=>{r=s},setScheduler:s=>{a=s}}}var Mt=$ie(),ao,Q2,xO=(Q2=class{constructor(){me(this,ao)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),wie(this.gcTime)&&ae(this,ao,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Hd?1/0:5*60*1e3))}clearGcTimeout(){B(this,ao)&&(clearTimeout(B(this,ao)),ae(this,ao,void 0))}},ao=new WeakMap,Q2),Pi,oo,pn,io,Ot,Su,so,Tn,br,Z2,Nie=(Z2=class extends xO{constructor(t){super();me(this,Tn);me(this,Pi);me(this,oo);me(this,pn);me(this,io);me(this,Ot);me(this,Su);me(this,so);ae(this,so,!1),ae(this,Su,t.defaultOptions),this.setOptions(t.options),this.observers=[],ae(this,io,t.client),ae(this,pn,B(this,io).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,ae(this,Pi,Rie(this.options)),this.state=t.state??B(this,Pi),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=B(this,Ot))==null?void 0:t.promise}setOptions(t){this.options={...B(this,Su),...t},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&B(this,pn).remove(this)}setData(t,n){const r=Oie(this.state.data,t,this.options);return wt(this,Tn,br).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){wt(this,Tn,br).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r,a;const n=(r=B(this,Ot))==null?void 0:r.promise;return(a=B(this,Ot))==null||a.cancel(t),n?n.then(En).catch(En):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(B(this,Pi))}isActive(){return this.observers.some(t=>Pie(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===o1||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Ly(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!bie(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=B(this,Ot))==null||n.continue()}onOnline(){var n;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=B(this,Ot))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),B(this,pn).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(B(this,Ot)&&(B(this,so)?B(this,Ot).cancel({revert:!0}):B(this,Ot).cancelRetry()),this.scheduleGc()),B(this,pn).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||wt(this,Tn,br).call(this,{type:"invalidate"})}fetch(t,n){var u,f,c;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(B(this,Ot))return B(this,Ot).continueRetry(),B(this,Ot).promise}if(t&&this.setOptions(t),!this.options.queryFn){const p=this.observers.find(d=>d.options.queryFn);p&&this.setOptions(p.options)}const r=new AbortController,a=p=>{Object.defineProperty(p,"signal",{enumerable:!0,get:()=>(ae(this,so,!0),r.signal)})},o=()=>{const p=mO(this.options,n),h=(()=>{const m={client:B(this,io),queryKey:this.queryKey,meta:this.meta};return a(m),m})();return ae(this,so,!1),this.options.persister?this.options.persister(p,h,this):p(h)},s=(()=>{const p={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:B(this,io),state:this.state,fetchFn:o};return a(p),p})();(u=this.options.behavior)==null||u.onFetch(s,this),ae(this,oo,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((f=s.fetchOptions)==null?void 0:f.meta))&&wt(this,Tn,br).call(this,{type:"fetch",meta:(c=s.fetchOptions)==null?void 0:c.meta});const l=p=>{var d,h,m,g;ah(p)&&p.silent||wt(this,Tn,br).call(this,{type:"error",error:p}),ah(p)||((h=(d=B(this,pn).config).onError)==null||h.call(d,p,this),(g=(m=B(this,pn).config).onSettled)==null||g.call(m,this.state.data,p,this)),this.scheduleGc()};return ae(this,Ot,gO({initialPromise:n==null?void 0:n.initialPromise,fn:s.fetchFn,abort:r.abort.bind(r),onSuccess:p=>{var d,h,m,g;if(p===void 0){l(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(p)}catch(v){l(v);return}(h=(d=B(this,pn).config).onSuccess)==null||h.call(d,p,this),(g=(m=B(this,pn).config).onSettled)==null||g.call(m,p,this.state.error,this),this.scheduleGc()},onError:l,onFail:(p,d)=>{wt(this,Tn,br).call(this,{type:"failed",failureCount:p,error:d})},onPause:()=>{wt(this,Tn,br).call(this,{type:"pause"})},onContinue:()=>{wt(this,Tn,br).call(this,{type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode,canRun:()=>!0})),B(this,Ot).start()}},Pi=new WeakMap,oo=new WeakMap,pn=new WeakMap,io=new WeakMap,Ot=new WeakMap,Su=new WeakMap,so=new WeakMap,Tn=new WeakSet,br=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...Mie(r.data,this.options),fetchMeta:t.meta??null};case"success":return ae(this,oo,void 0),{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const a=t.error;return ah(a)&&a.revert&&B(this,oo)?{...B(this,oo),fetchStatus:"idle"}:{...r,error:a,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),Mt.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),B(this,pn).notify({query:this,type:"updated",action:t})})},Z2);function Mie(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:vO(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Rie(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Jn,J2,Iie=(J2=class extends Bd{constructor(t={}){super();me(this,Jn);this.config=t,ae(this,Jn,new Map)}build(t,n,r){const a=n.queryKey,o=n.queryHash??a1(a,n);let i=this.get(o);return i||(i=new Nie({client:t,queryKey:a,queryHash:o,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(a)}),this.add(i)),i}add(t){B(this,Jn).has(t.queryHash)||(B(this,Jn).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=B(this,Jn).get(t.queryHash);n&&(t.destroy(),n===t&&B(this,Jn).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Mt.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return B(this,Jn).get(t)}getAll(){return[...B(this,Jn).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>B2(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>B2(t,r)):n}notify(t){Mt.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){Mt.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Mt.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Jn=new WeakMap,J2),er,$t,lo,tr,Jr,e5,Die=(e5=class extends xO{constructor(t){super();me(this,tr);me(this,er);me(this,$t);me(this,lo);this.mutationId=t.mutationId,ae(this,$t,t.mutationCache),ae(this,er,[]),this.state=t.state||Lie(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){B(this,er).includes(t)||(B(this,er).push(t),this.clearGcTimeout(),B(this,$t).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){ae(this,er,B(this,er).filter(n=>n!==t)),this.scheduleGc(),B(this,$t).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){B(this,er).length||(this.state.status==="pending"?this.scheduleGc():B(this,$t).remove(this))}continue(){var t;return((t=B(this,lo))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var o,i,s,l,u,f,c,p,d,h,m,g,v,y,x,P,w,S,O,_;const n=()=>{wt(this,tr,Jr).call(this,{type:"continue"})};ae(this,lo,gO({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(A,j)=>{wt(this,tr,Jr).call(this,{type:"failed",failureCount:A,error:j})},onPause:()=>{wt(this,tr,Jr).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>B(this,$t).canRun(this)}));const r=this.state.status==="pending",a=!B(this,lo).canStart();try{if(r)n();else{wt(this,tr,Jr).call(this,{type:"pending",variables:t,isPaused:a}),await((i=(o=B(this,$t).config).onMutate)==null?void 0:i.call(o,t,this));const j=await((l=(s=this.options).onMutate)==null?void 0:l.call(s,t));j!==this.state.context&&wt(this,tr,Jr).call(this,{type:"pending",context:j,variables:t,isPaused:a})}const A=await B(this,lo).start();return await((f=(u=B(this,$t).config).onSuccess)==null?void 0:f.call(u,A,t,this.state.context,this)),await((p=(c=this.options).onSuccess)==null?void 0:p.call(c,A,t,this.state.context)),await((h=(d=B(this,$t).config).onSettled)==null?void 0:h.call(d,A,null,this.state.variables,this.state.context,this)),await((g=(m=this.options).onSettled)==null?void 0:g.call(m,A,null,t,this.state.context)),wt(this,tr,Jr).call(this,{type:"success",data:A}),A}catch(A){try{throw await((y=(v=B(this,$t).config).onError)==null?void 0:y.call(v,A,t,this.state.context,this)),await((P=(x=this.options).onError)==null?void 0:P.call(x,A,t,this.state.context)),await((S=(w=B(this,$t).config).onSettled)==null?void 0:S.call(w,void 0,A,this.state.variables,this.state.context,this)),await((_=(O=this.options).onSettled)==null?void 0:_.call(O,void 0,A,t,this.state.context)),A}finally{wt(this,tr,Jr).call(this,{type:"error",error:A})}}finally{B(this,$t).runNext(this)}}},er=new WeakMap,$t=new WeakMap,lo=new WeakMap,tr=new WeakSet,Jr=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),Mt.batch(()=>{B(this,er).forEach(r=>{r.onMutationUpdate(t)}),B(this,$t).notify({mutation:this,type:"updated",action:t})})},e5);function Lie(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Or,jn,Ou,t5,Fie=(t5=class extends Bd{constructor(t={}){super();me(this,Or);me(this,jn);me(this,Ou);this.config=t,ae(this,Or,new Set),ae(this,jn,new Map),ae(this,Ou,0)}build(t,n,r){const a=new Die({mutationCache:this,mutationId:++zu(this,Ou)._,options:t.defaultMutationOptions(n),state:r});return this.add(a),a}add(t){B(this,Or).add(t);const n=kc(t);if(typeof n=="string"){const r=B(this,jn).get(n);r?r.push(t):B(this,jn).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(B(this,Or).delete(t)){const n=kc(t);if(typeof n=="string"){const r=B(this,jn).get(n);if(r)if(r.length>1){const a=r.indexOf(t);a!==-1&&r.splice(a,1)}else r[0]===t&&B(this,jn).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=kc(t);if(typeof n=="string"){const r=B(this,jn).get(n),a=r==null?void 0:r.find(o=>o.state.status==="pending");return!a||a===t}else return!0}runNext(t){var r;const n=kc(t);if(typeof n=="string"){const a=(r=B(this,jn).get(n))==null?void 0:r.find(o=>o!==t&&o.state.isPaused);return(a==null?void 0:a.continue())??Promise.resolve()}else return Promise.resolve()}clear(){Mt.batch(()=>{B(this,Or).forEach(t=>{this.notify({type:"removed",mutation:t})}),B(this,Or).clear(),B(this,jn).clear()})}getAll(){return Array.from(B(this,Or))}find(t){const n={exact:!0,...t};return this.getAll().find(r=>H2(n,r))}findAll(t={}){return this.getAll().filter(n=>H2(t,n))}notify(t){Mt.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return Mt.batch(()=>Promise.all(t.map(n=>n.continue().catch(En))))}},Or=new WeakMap,jn=new WeakMap,Ou=new WeakMap,t5);function kc(e){var t;return(t=e.options.scope)==null?void 0:t.id}function W2(e){return{onFetch:(t,n)=>{var f,c,p,d,h;const r=t.options,a=(p=(c=(f=t.fetchOptions)==null?void 0:f.meta)==null?void 0:c.fetchMore)==null?void 0:p.direction,o=((d=t.state.data)==null?void 0:d.pages)||[],i=((h=t.state.data)==null?void 0:h.pageParams)||[];let s={pages:[],pageParams:[]},l=0;const u=async()=>{let m=!1;const g=x=>{Object.defineProperty(x,"signal",{enumerable:!0,get:()=>(t.signal.aborted?m=!0:t.signal.addEventListener("abort",()=>{m=!0}),t.signal)})},v=mO(t.options,t.fetchOptions),y=async(x,P,w)=>{if(m)return Promise.reject();if(P==null&&x.pages.length)return Promise.resolve(x);const O=(()=>{const E={client:t.client,queryKey:t.queryKey,pageParam:P,direction:w?"backward":"forward",meta:t.options.meta};return g(E),E})(),_=await v(O),{maxPages:A}=t.options,j=w?_ie:kie;return{pages:j(x.pages,_,A),pageParams:j(x.pageParams,P,A)}};if(a&&o.length){const x=a==="backward",P=x?zie:q2,w={pages:o,pageParams:i},S=P(r,w);s=await y(w,S,x)}else{const x=e??o.length;do{const P=l===0?i[0]??r.initialPageParam:q2(r,s);if(l>0&&P==null)break;s=await y(s,P),l++}while(l<x)}return s};t.options.persister?t.fetchFn=()=>{var m,g;return(g=(m=t.options).persister)==null?void 0:g.call(m,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=u}}}function q2(e,{pages:t,pageParams:n}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function zie(e,{pages:t,pageParams:n}){var r;return t.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n):void 0}var We,la,ua,Si,Oi,ca,ki,_i,n5,Bie=(n5=class{constructor(e={}){me(this,We);me(this,la);me(this,ua);me(this,Si);me(this,Oi);me(this,ca);me(this,ki);me(this,_i);ae(this,We,e.queryCache||new Iie),ae(this,la,e.mutationCache||new Fie),ae(this,ua,e.defaultOptions||{}),ae(this,Si,new Map),ae(this,Oi,new Map),ae(this,ca,0)}mount(){zu(this,ca)._++,B(this,ca)===1&&(ae(this,ki,hO.subscribe(async e=>{e&&(await this.resumePausedMutations(),B(this,We).onFocus())})),ae(this,_i,Op.subscribe(async e=>{e&&(await this.resumePausedMutations(),B(this,We).onOnline())})))}unmount(){var e,t;zu(this,ca)._--,B(this,ca)===0&&((e=B(this,ki))==null||e.call(this),ae(this,ki,void 0),(t=B(this,_i))==null||t.call(this),ae(this,_i,void 0))}isFetching(e){return B(this,We).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return B(this,la).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=B(this,We).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=B(this,We).build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(Ly(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return B(this,We).findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.defaultQueryOptions({queryKey:e}),a=B(this,We).get(r.queryHash),o=a==null?void 0:a.state.data,i=xie(t,o);if(i!==void 0)return B(this,We).build(this,r).setData(i,{...n,manual:!0})}setQueriesData(e,t,n){return Mt.batch(()=>B(this,We).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=B(this,We).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=B(this,We);Mt.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=B(this,We);return Mt.batch(()=>(n.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=Mt.batch(()=>B(this,We).findAll(e).map(a=>a.cancel(n)));return Promise.all(r).then(En).catch(En)}invalidateQueries(e,t={}){return Mt.batch(()=>(B(this,We).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},r=Mt.batch(()=>B(this,We).findAll(e).filter(a=>!a.isDisabled()&&!a.isStatic()).map(a=>{let o=a.fetch(void 0,n);return n.throwOnError||(o=o.catch(En)),a.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(r).then(En)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=B(this,We).build(this,t);return n.isStaleByTime(Ly(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(En).catch(En)}fetchInfiniteQuery(e){return e.behavior=W2(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(En).catch(En)}ensureInfiniteQueryData(e){return e.behavior=W2(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Op.isOnline()?B(this,la).resumePausedMutations():Promise.resolve()}getQueryCache(){return B(this,We)}getMutationCache(){return B(this,la)}getDefaultOptions(){return B(this,ua)}setDefaultOptions(e){ae(this,ua,e)}setQueryDefaults(e,t){B(this,Si).set(bu(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...B(this,Si).values()],n={};return t.forEach(r=>{Pu(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){B(this,Oi).set(bu(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...B(this,Oi).values()],n={};return t.forEach(r=>{Pu(e,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...B(this,ua).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=a1(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===o1&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...B(this,ua).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){B(this,We).clear(),B(this,la).clear()}},We=new WeakMap,la=new WeakMap,ua=new WeakMap,Si=new WeakMap,Oi=new WeakMap,ca=new WeakMap,ki=new WeakMap,_i=new WeakMap,n5),Hie=k.createContext(void 0),Gie=({client:e,children:t})=>(k.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),b.jsx(Hie.Provider,{value:e,children:t})),[Gd,mse]=ps("Tooltip",[Up]),i1=Up(),wO="TooltipProvider",Uie=700,V2="tooltip.open",[Wie,bO]=Gd(wO),PO=e=>{const{__scopeTooltip:t,delayDuration:n=Uie,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:o}=e,i=k.useRef(!0),s=k.useRef(!1),l=k.useRef(0);return k.useEffect(()=>{const u=l.current;return()=>window.clearTimeout(u)},[]),b.jsx(Wie,{scope:t,isOpenDelayedRef:i,delayDuration:n,onOpen:k.useCallback(()=>{window.clearTimeout(l.current),i.current=!1},[]),onClose:k.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>i.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:k.useCallback(u=>{s.current=u},[]),disableHoverableContent:a,children:o})};PO.displayName=wO;var SO="Tooltip",[hse,Ud]=Gd(SO),zy="TooltipTrigger",qie=k.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=Ud(zy,n),o=bO(zy,n),i=i1(n),s=k.useRef(null),l=Ye(t,s,a.onTriggerChange),u=k.useRef(!1),f=k.useRef(!1),c=k.useCallback(()=>u.current=!1,[]);return k.useEffect(()=>()=>document.removeEventListener("pointerup",c),[c]),b.jsx(G6,{asChild:!0,...i,children:b.jsx(Ee.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:l,onPointerMove:pe(e.onPointerMove,p=>{p.pointerType!=="touch"&&!f.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),f.current=!0)}),onPointerLeave:pe(e.onPointerLeave,()=>{a.onTriggerLeave(),f.current=!1}),onPointerDown:pe(e.onPointerDown,()=>{a.open&&a.onClose(),u.current=!0,document.addEventListener("pointerup",c,{once:!0})}),onFocus:pe(e.onFocus,()=>{u.current||a.onOpen()}),onBlur:pe(e.onBlur,a.onClose),onClick:pe(e.onClick,a.onClose)})})});qie.displayName=zy;var Vie="TooltipPortal",[vse,Kie]=Gd(Vie,{forceMount:void 0}),ss="TooltipContent",OO=k.forwardRef((e,t)=>{const n=Kie(ss,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...o}=e,i=Ud(ss,e.__scopeTooltip);return b.jsx(t1,{present:r||i.open,children:i.disableHoverableContent?b.jsx(kO,{side:a,...o,ref:t}):b.jsx(Xie,{side:a,...o,ref:t})})}),Xie=k.forwardRef((e,t)=>{const n=Ud(ss,e.__scopeTooltip),r=bO(ss,e.__scopeTooltip),a=k.useRef(null),o=Ye(t,a),[i,s]=k.useState(null),{trigger:l,onClose:u}=n,f=a.current,{onPointerInTransitChange:c}=r,p=k.useCallback(()=>{s(null),c(!1)},[c]),d=k.useCallback((h,m)=>{const g=h.currentTarget,v={x:h.clientX,y:h.clientY},y=ese(v,g.getBoundingClientRect()),x=tse(v,y),P=nse(m.getBoundingClientRect()),w=ase([...x,...P]);s(w),c(!0)},[c]);return k.useEffect(()=>()=>p(),[p]),k.useEffect(()=>{if(l&&f){const h=g=>d(g,f),m=g=>d(g,l);return l.addEventListener("pointerleave",h),f.addEventListener("pointerleave",m),()=>{l.removeEventListener("pointerleave",h),f.removeEventListener("pointerleave",m)}}},[l,f,d,p]),k.useEffect(()=>{if(i){const h=m=>{const g=m.target,v={x:m.clientX,y:m.clientY},y=(l==null?void 0:l.contains(g))||(f==null?void 0:f.contains(g)),x=!rse(v,i);y?p():x&&(p(),u())};return document.addEventListener("pointermove",h),()=>document.removeEventListener("pointermove",h)}},[l,f,i,u,p]),b.jsx(kO,{...e,ref:o})}),[Yie,Qie]=Gd(SO,{isInside:!1}),Zie=iA("TooltipContent"),kO=k.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:o,onPointerDownOutside:i,...s}=e,l=Ud(ss,n),u=i1(n),{onClose:f}=l;return k.useEffect(()=>(document.addEventListener(V2,f),()=>document.removeEventListener(V2,f)),[f]),k.useEffect(()=>{if(l.trigger){const c=p=>{const d=p.target;d!=null&&d.contains(l.trigger)&&f()};return window.addEventListener("scroll",c,{capture:!0}),()=>window.removeEventListener("scroll",c,{capture:!0})}},[l.trigger,f]),b.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:i,onFocusOutside:c=>c.preventDefault(),onDismiss:f,children:b.jsxs(U6,{"data-state":l.stateAttribute,...u,...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:[b.jsx(Zie,{children:r}),b.jsx(Yie,{scope:n,isInside:!0,children:b.jsx(qC,{id:l.contentId,role:"tooltip",children:a||r})})]})})});OO.displayName=ss;var _O="TooltipArrow",Jie=k.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=i1(n);return Qie(_O,n).isInside?null:b.jsx(W6,{...a,...r,ref:t})});Jie.displayName=_O;function ese(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,a,o)){case o:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function tse(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:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function rse(e,t){const{x:n,y:r}=e;let a=!1;for(let o=0,i=t.length-1;o<t.length;i=o++){const s=t[o],l=t[i],u=s.x,f=s.y,c=l.x,p=l.y;f>r!=p>r&&n<(c-u)*(r-f)/(p-f)+u&&(a=!a)}return a}function ase(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),ose(t)}function ose(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const a=e[r];for(;t.length>=2;){const o=t[t.length-1],i=t[t.length-2];if((o.x-i.x)*(a.y-i.y)>=(o.y-i.y)*(a.x-i.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const o=n[n.length-1],i=n[n.length-2];if((o.x-i.x)*(a.y-i.y)>=(o.y-i.y)*(a.x-i.x))n.pop();else break}n.push(a)}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 ise=PO,AO=OO;const sse=ise,lse=k.forwardRef(({className:e,sideOffset:t=4,...n},r)=>b.jsx(AO,{ref:r,sideOffset:t,className:Oe("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n}));lse.displayName=AO.displayName;const use=e=>{const t=k.useRef(null),n=k.useRef(null),r=k.useRef(null);return k.useEffect(()=>{if(t.current){try{const a=t.current.attachShadow({mode:"open"});n.current=a;const o=document.createElement("div");o.id="shadow-root",o.className="benchmark-dashboard",a.appendChild(o),pO.getAllCSS().then(i=>{const s=document.createElement("style");s.textContent=i,a.insertBefore(s,o);const l=Gc.createRoot(o);r.current=l,l.render(b.jsx(C.StrictMode,{children:b.jsx(Gie,{client:new Bie,children:b.jsx(sse,{children:b.jsx(gie,{...e})})})}))}).catch(i=>{console.error("Failed to inject CSS into Shadow DOM:",i)})}catch(a){console.error("Failed to create Shadow DOM:",a)}return()=>{r.current&&r.current.unmount()}}},[]),b.jsx("div",{ref:t,style:{width:"100%",minHeight:"400px"}})},cse=`*, ::before, ::after {
+    `}}p1(hO,"cssCache",new Map);var Bd=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Hd=typeof window>"u"||"Deno"in globalThis;function En(){}function Mie(e,t){return typeof e=="function"?e(t):e}function Rie(e){return typeof e=="number"&&e>=0&&e!==1/0}function Iie(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Lv(e,t){return typeof e=="function"?e(t):e}function Die(e,t){return typeof e=="function"?e(t):e}function G2(e,t){const{type:n="all",exact:r,fetchStatus:a,predicate:o,queryKey:i,stale:s}=e;if(i){if(r){if(t.queryHash!==a1(i,t.options))return!1}else if(!Pu(t.queryKey,i))return!1}if(n!=="all"){const l=t.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||a&&a!==t.state.fetchStatus||o&&!o(t))}function U2(e,t){const{exact:n,status:r,predicate:a,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(n){if(bu(t.options.mutationKey)!==bu(o))return!1}else if(!Pu(t.options.mutationKey,o))return!1}return!(r&&t.state.status!==r||a&&!a(t))}function a1(e,t){return((t==null?void 0:t.queryKeyHashFn)||bu)(e)}function bu(e){return JSON.stringify(e,(t,n)=>Fv(n)?Object.keys(n).sort().reduce((r,a)=>(r[a]=n[a],r),{}):n)}function Pu(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Pu(e[n],t[n])):!1}function vO(e,t){if(e===t)return e;const n=W2(e)&&W2(t);if(n||Fv(e)&&Fv(t)){const r=n?e:Object.keys(e),a=r.length,o=n?t:Object.keys(t),i=o.length,s=n?[]:{},l=new Set(r);let u=0;for(let p=0;p<i;p++){const c=n?p:o[p];(!n&&l.has(c)||n)&&e[c]===void 0&&t[c]===void 0?(s[c]=void 0,u++):(s[c]=vO(e[c],t[c]),s[c]===e[c]&&e[c]!==void 0&&u++)}return a===i&&u===a?e:s}return t}function W2(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Fv(e){if(!q2(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!q2(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function q2(e){return Object.prototype.toString.call(e)==="[object Object]"}function Lie(e){return new Promise(t=>{setTimeout(t,e)})}function Fie(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?vO(e,t):t}function zie(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function Bie(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var o1=Symbol();function yO(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===o1?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var ro,ia,xi,Q2,Hie=(Q2=class extends Bd{constructor(){super();me(this,ro);me(this,ia);me(this,xi);ae(this,xi,t=>{if(!Hd&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){B(this,ia)||this.setEventListener(B(this,xi))}onUnsubscribe(){var t;this.hasListeners()||((t=B(this,ia))==null||t.call(this),ae(this,ia,void 0))}setEventListener(t){var n;ae(this,xi,t),(n=B(this,ia))==null||n.call(this),ae(this,ia,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){B(this,ro)!==t&&(ae(this,ro,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof B(this,ro)=="boolean"?B(this,ro):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},ro=new WeakMap,ia=new WeakMap,xi=new WeakMap,Q2),gO=new Hie,wi,sa,bi,Z2,Gie=(Z2=class extends Bd{constructor(){super();me(this,wi,!0);me(this,sa);me(this,bi);ae(this,bi,t=>{if(!Hd&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){B(this,sa)||this.setEventListener(B(this,bi))}onUnsubscribe(){var t;this.hasListeners()||((t=B(this,sa))==null||t.call(this),ae(this,sa,void 0))}setEventListener(t){var n;ae(this,bi,t),(n=B(this,sa))==null||n.call(this),ae(this,sa,t(this.setOnline.bind(this)))}setOnline(t){B(this,wi)!==t&&(ae(this,wi,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return B(this,wi)}},wi=new WeakMap,sa=new WeakMap,bi=new WeakMap,Z2),Of=new Gie;function Uie(){let e,t;const n=new Promise((a,o)=>{e=a,t=o});n.status="pending",n.catch(()=>{});function r(a){Object.assign(n,a),delete n.resolve,delete n.reject}return n.resolve=a=>{r({status:"fulfilled",value:a}),e(a)},n.reject=a=>{r({status:"rejected",reason:a}),t(a)},n}function Wie(e){return Math.min(1e3*2**e,3e4)}function xO(e){return(e??"online")==="online"?Of.isOnline():!0}var wO=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function ah(e){return e instanceof wO}function bO(e){let t=!1,n=0,r=!1,a;const o=Uie(),i=m=>{var g;r||(f(new wO(m)),(g=e.abort)==null||g.call(e))},s=()=>{t=!0},l=()=>{t=!1},u=()=>gO.isFocused()&&(e.networkMode==="always"||Of.isOnline())&&e.canRun(),p=()=>xO(e.networkMode)&&e.canRun(),c=m=>{var g;r||(r=!0,(g=e.onSuccess)==null||g.call(e,m),a==null||a(),o.resolve(m))},f=m=>{var g;r||(r=!0,(g=e.onError)==null||g.call(e,m),a==null||a(),o.reject(m))},d=()=>new Promise(m=>{var g;a=v=>{(r||u())&&m(v)},(g=e.onPause)==null||g.call(e)}).then(()=>{var m;a=void 0,r||(m=e.onContinue)==null||m.call(e)}),h=()=>{if(r)return;let m;const g=n===0?e.initialPromise:void 0;try{m=g??e.fn()}catch(v){m=Promise.reject(v)}Promise.resolve(m).then(c).catch(v=>{var S;if(r)return;const y=e.retry??(Hd?0:3),x=e.retryDelay??Wie,P=typeof x=="function"?x(n,v):x,w=y===!0||typeof y=="number"&&n<y||typeof y=="function"&&y(n,v);if(t||!w){f(v);return}n++,(S=e.onFail)==null||S.call(e,n,v),Lie(P).then(()=>u()?void 0:d()).then(()=>{t?f(v):h()})})};return{promise:o,cancel:i,continue:()=>(a==null||a(),o),cancelRetry:s,continueRetry:l,canStart:p,start:()=>(p()?h():d().then(h),o)}}var qie=e=>setTimeout(e,0);function Vie(){let e=[],t=0,n=s=>{s()},r=s=>{s()},a=qie;const o=s=>{t?e.push(s):a(()=>{n(s)})},i=()=>{const s=e;e=[],s.length&&a(()=>{r(()=>{s.forEach(l=>{n(l)})})})};return{batch:s=>{let l;t++;try{l=s()}finally{t--,t||i()}return l},batchCalls:s=>(...l)=>{o(()=>{s(...l)})},schedule:o,setNotifyFunction:s=>{n=s},setBatchNotifyFunction:s=>{r=s},setScheduler:s=>{a=s}}}var Mt=Vie(),ao,J2,PO=(J2=class{constructor(){me(this,ao)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Rie(this.gcTime)&&ae(this,ao,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Hd?1/0:5*60*1e3))}clearGcTimeout(){B(this,ao)&&(clearTimeout(B(this,ao)),ae(this,ao,void 0))}},ao=new WeakMap,J2),Pi,oo,fn,io,Ot,Su,so,Tn,br,e5,Kie=(e5=class extends PO{constructor(t){super();me(this,Tn);me(this,Pi);me(this,oo);me(this,fn);me(this,io);me(this,Ot);me(this,Su);me(this,so);ae(this,so,!1),ae(this,Su,t.defaultOptions),this.setOptions(t.options),this.observers=[],ae(this,io,t.client),ae(this,fn,B(this,io).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,ae(this,Pi,Yie(this.options)),this.state=t.state??B(this,Pi),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=B(this,Ot))==null?void 0:t.promise}setOptions(t){this.options={...B(this,Su),...t},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&B(this,fn).remove(this)}setData(t,n){const r=Fie(this.state.data,t,this.options);return wt(this,Tn,br).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){wt(this,Tn,br).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r,a;const n=(r=B(this,Ot))==null?void 0:r.promise;return(a=B(this,Ot))==null||a.cancel(t),n?n.then(En).catch(En):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(B(this,Pi))}isActive(){return this.observers.some(t=>Die(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===o1||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Lv(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!Iie(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=B(this,Ot))==null||n.continue()}onOnline(){var n;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=B(this,Ot))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),B(this,fn).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(B(this,Ot)&&(B(this,so)?B(this,Ot).cancel({revert:!0}):B(this,Ot).cancelRetry()),this.scheduleGc()),B(this,fn).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||wt(this,Tn,br).call(this,{type:"invalidate"})}fetch(t,n){var u,p,c;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(B(this,Ot))return B(this,Ot).continueRetry(),B(this,Ot).promise}if(t&&this.setOptions(t),!this.options.queryFn){const f=this.observers.find(d=>d.options.queryFn);f&&this.setOptions(f.options)}const r=new AbortController,a=f=>{Object.defineProperty(f,"signal",{enumerable:!0,get:()=>(ae(this,so,!0),r.signal)})},o=()=>{const f=yO(this.options,n),h=(()=>{const m={client:B(this,io),queryKey:this.queryKey,meta:this.meta};return a(m),m})();return ae(this,so,!1),this.options.persister?this.options.persister(f,h,this):f(h)},s=(()=>{const f={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:B(this,io),state:this.state,fetchFn:o};return a(f),f})();(u=this.options.behavior)==null||u.onFetch(s,this),ae(this,oo,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((p=s.fetchOptions)==null?void 0:p.meta))&&wt(this,Tn,br).call(this,{type:"fetch",meta:(c=s.fetchOptions)==null?void 0:c.meta});const l=f=>{var d,h,m,g;ah(f)&&f.silent||wt(this,Tn,br).call(this,{type:"error",error:f}),ah(f)||((h=(d=B(this,fn).config).onError)==null||h.call(d,f,this),(g=(m=B(this,fn).config).onSettled)==null||g.call(m,this.state.data,f,this)),this.scheduleGc()};return ae(this,Ot,bO({initialPromise:n==null?void 0:n.initialPromise,fn:s.fetchFn,abort:r.abort.bind(r),onSuccess:f=>{var d,h,m,g;if(f===void 0){l(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(f)}catch(v){l(v);return}(h=(d=B(this,fn).config).onSuccess)==null||h.call(d,f,this),(g=(m=B(this,fn).config).onSettled)==null||g.call(m,f,this.state.error,this),this.scheduleGc()},onError:l,onFail:(f,d)=>{wt(this,Tn,br).call(this,{type:"failed",failureCount:f,error:d})},onPause:()=>{wt(this,Tn,br).call(this,{type:"pause"})},onContinue:()=>{wt(this,Tn,br).call(this,{type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode,canRun:()=>!0})),B(this,Ot).start()}},Pi=new WeakMap,oo=new WeakMap,fn=new WeakMap,io=new WeakMap,Ot=new WeakMap,Su=new WeakMap,so=new WeakMap,Tn=new WeakSet,br=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...Xie(r.data,this.options),fetchMeta:t.meta??null};case"success":return ae(this,oo,void 0),{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const a=t.error;return ah(a)&&a.revert&&B(this,oo)?{...B(this,oo),fetchStatus:"idle"}:{...r,error:a,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),Mt.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),B(this,fn).notify({query:this,type:"updated",action:t})})},e5);function Xie(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:xO(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Yie(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Jn,t5,Qie=(t5=class extends Bd{constructor(t={}){super();me(this,Jn);this.config=t,ae(this,Jn,new Map)}build(t,n,r){const a=n.queryKey,o=n.queryHash??a1(a,n);let i=this.get(o);return i||(i=new Kie({client:t,queryKey:a,queryHash:o,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(a)}),this.add(i)),i}add(t){B(this,Jn).has(t.queryHash)||(B(this,Jn).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=B(this,Jn).get(t.queryHash);n&&(t.destroy(),n===t&&B(this,Jn).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Mt.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return B(this,Jn).get(t)}getAll(){return[...B(this,Jn).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>G2(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>G2(t,r)):n}notify(t){Mt.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){Mt.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Mt.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Jn=new WeakMap,t5),er,$t,lo,tr,Jr,n5,Zie=(n5=class extends PO{constructor(t){super();me(this,tr);me(this,er);me(this,$t);me(this,lo);this.mutationId=t.mutationId,ae(this,$t,t.mutationCache),ae(this,er,[]),this.state=t.state||Jie(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){B(this,er).includes(t)||(B(this,er).push(t),this.clearGcTimeout(),B(this,$t).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){ae(this,er,B(this,er).filter(n=>n!==t)),this.scheduleGc(),B(this,$t).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){B(this,er).length||(this.state.status==="pending"?this.scheduleGc():B(this,$t).remove(this))}continue(){var t;return((t=B(this,lo))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var o,i,s,l,u,p,c,f,d,h,m,g,v,y,x,P,w,S,O,_;const n=()=>{wt(this,tr,Jr).call(this,{type:"continue"})};ae(this,lo,bO({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(C,j)=>{wt(this,tr,Jr).call(this,{type:"failed",failureCount:C,error:j})},onPause:()=>{wt(this,tr,Jr).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>B(this,$t).canRun(this)}));const r=this.state.status==="pending",a=!B(this,lo).canStart();try{if(r)n();else{wt(this,tr,Jr).call(this,{type:"pending",variables:t,isPaused:a}),await((i=(o=B(this,$t).config).onMutate)==null?void 0:i.call(o,t,this));const j=await((l=(s=this.options).onMutate)==null?void 0:l.call(s,t));j!==this.state.context&&wt(this,tr,Jr).call(this,{type:"pending",context:j,variables:t,isPaused:a})}const C=await B(this,lo).start();return await((p=(u=B(this,$t).config).onSuccess)==null?void 0:p.call(u,C,t,this.state.context,this)),await((f=(c=this.options).onSuccess)==null?void 0:f.call(c,C,t,this.state.context)),await((h=(d=B(this,$t).config).onSettled)==null?void 0:h.call(d,C,null,this.state.variables,this.state.context,this)),await((g=(m=this.options).onSettled)==null?void 0:g.call(m,C,null,t,this.state.context)),wt(this,tr,Jr).call(this,{type:"success",data:C}),C}catch(C){try{throw await((y=(v=B(this,$t).config).onError)==null?void 0:y.call(v,C,t,this.state.context,this)),await((P=(x=this.options).onError)==null?void 0:P.call(x,C,t,this.state.context)),await((S=(w=B(this,$t).config).onSettled)==null?void 0:S.call(w,void 0,C,this.state.variables,this.state.context,this)),await((_=(O=this.options).onSettled)==null?void 0:_.call(O,void 0,C,t,this.state.context)),C}finally{wt(this,tr,Jr).call(this,{type:"error",error:C})}}finally{B(this,$t).runNext(this)}}},er=new WeakMap,$t=new WeakMap,lo=new WeakMap,tr=new WeakSet,Jr=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),Mt.batch(()=>{B(this,er).forEach(r=>{r.onMutationUpdate(t)}),B(this,$t).notify({mutation:this,type:"updated",action:t})})},n5);function Jie(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Or,jn,Ou,r5,ese=(r5=class extends Bd{constructor(t={}){super();me(this,Or);me(this,jn);me(this,Ou);this.config=t,ae(this,Or,new Set),ae(this,jn,new Map),ae(this,Ou,0)}build(t,n,r){const a=new Zie({mutationCache:this,mutationId:++zu(this,Ou)._,options:t.defaultMutationOptions(n),state:r});return this.add(a),a}add(t){B(this,Or).add(t);const n=kc(t);if(typeof n=="string"){const r=B(this,jn).get(n);r?r.push(t):B(this,jn).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(B(this,Or).delete(t)){const n=kc(t);if(typeof n=="string"){const r=B(this,jn).get(n);if(r)if(r.length>1){const a=r.indexOf(t);a!==-1&&r.splice(a,1)}else r[0]===t&&B(this,jn).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=kc(t);if(typeof n=="string"){const r=B(this,jn).get(n),a=r==null?void 0:r.find(o=>o.state.status==="pending");return!a||a===t}else return!0}runNext(t){var r;const n=kc(t);if(typeof n=="string"){const a=(r=B(this,jn).get(n))==null?void 0:r.find(o=>o!==t&&o.state.isPaused);return(a==null?void 0:a.continue())??Promise.resolve()}else return Promise.resolve()}clear(){Mt.batch(()=>{B(this,Or).forEach(t=>{this.notify({type:"removed",mutation:t})}),B(this,Or).clear(),B(this,jn).clear()})}getAll(){return Array.from(B(this,Or))}find(t){const n={exact:!0,...t};return this.getAll().find(r=>U2(n,r))}findAll(t={}){return this.getAll().filter(n=>U2(t,n))}notify(t){Mt.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return Mt.batch(()=>Promise.all(t.map(n=>n.continue().catch(En))))}},Or=new WeakMap,jn=new WeakMap,Ou=new WeakMap,r5);function kc(e){var t;return(t=e.options.scope)==null?void 0:t.id}function V2(e){return{onFetch:(t,n)=>{var p,c,f,d,h;const r=t.options,a=(f=(c=(p=t.fetchOptions)==null?void 0:p.meta)==null?void 0:c.fetchMore)==null?void 0:f.direction,o=((d=t.state.data)==null?void 0:d.pages)||[],i=((h=t.state.data)==null?void 0:h.pageParams)||[];let s={pages:[],pageParams:[]},l=0;const u=async()=>{let m=!1;const g=x=>{Object.defineProperty(x,"signal",{enumerable:!0,get:()=>(t.signal.aborted?m=!0:t.signal.addEventListener("abort",()=>{m=!0}),t.signal)})},v=yO(t.options,t.fetchOptions),y=async(x,P,w)=>{if(m)return Promise.reject();if(P==null&&x.pages.length)return Promise.resolve(x);const O=(()=>{const E={client:t.client,queryKey:t.queryKey,pageParam:P,direction:w?"backward":"forward",meta:t.options.meta};return g(E),E})(),_=await v(O),{maxPages:C}=t.options,j=w?Bie:zie;return{pages:j(x.pages,_,C),pageParams:j(x.pageParams,P,C)}};if(a&&o.length){const x=a==="backward",P=x?tse:K2,w={pages:o,pageParams:i},S=P(r,w);s=await y(w,S,x)}else{const x=e??o.length;do{const P=l===0?i[0]??r.initialPageParam:K2(r,s);if(l>0&&P==null)break;s=await y(s,P),l++}while(l<x)}return s};t.options.persister?t.fetchFn=()=>{var m,g;return(g=(m=t.options).persister)==null?void 0:g.call(m,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=u}}}function K2(e,{pages:t,pageParams:n}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function tse(e,{pages:t,pageParams:n}){var r;return t.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n):void 0}var We,la,ua,Si,Oi,ca,ki,_i,a5,nse=(a5=class{constructor(e={}){me(this,We);me(this,la);me(this,ua);me(this,Si);me(this,Oi);me(this,ca);me(this,ki);me(this,_i);ae(this,We,e.queryCache||new Qie),ae(this,la,e.mutationCache||new ese),ae(this,ua,e.defaultOptions||{}),ae(this,Si,new Map),ae(this,Oi,new Map),ae(this,ca,0)}mount(){zu(this,ca)._++,B(this,ca)===1&&(ae(this,ki,gO.subscribe(async e=>{e&&(await this.resumePausedMutations(),B(this,We).onFocus())})),ae(this,_i,Of.subscribe(async e=>{e&&(await this.resumePausedMutations(),B(this,We).onOnline())})))}unmount(){var e,t;zu(this,ca)._--,B(this,ca)===0&&((e=B(this,ki))==null||e.call(this),ae(this,ki,void 0),(t=B(this,_i))==null||t.call(this),ae(this,_i,void 0))}isFetching(e){return B(this,We).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return B(this,la).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=B(this,We).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=B(this,We).build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(Lv(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return B(this,We).findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.defaultQueryOptions({queryKey:e}),a=B(this,We).get(r.queryHash),o=a==null?void 0:a.state.data,i=Mie(t,o);if(i!==void 0)return B(this,We).build(this,r).setData(i,{...n,manual:!0})}setQueriesData(e,t,n){return Mt.batch(()=>B(this,We).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=B(this,We).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=B(this,We);Mt.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=B(this,We);return Mt.batch(()=>(n.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=Mt.batch(()=>B(this,We).findAll(e).map(a=>a.cancel(n)));return Promise.all(r).then(En).catch(En)}invalidateQueries(e,t={}){return Mt.batch(()=>(B(this,We).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},r=Mt.batch(()=>B(this,We).findAll(e).filter(a=>!a.isDisabled()&&!a.isStatic()).map(a=>{let o=a.fetch(void 0,n);return n.throwOnError||(o=o.catch(En)),a.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(r).then(En)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=B(this,We).build(this,t);return n.isStaleByTime(Lv(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(En).catch(En)}fetchInfiniteQuery(e){return e.behavior=V2(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(En).catch(En)}ensureInfiniteQueryData(e){return e.behavior=V2(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Of.isOnline()?B(this,la).resumePausedMutations():Promise.resolve()}getQueryCache(){return B(this,We)}getMutationCache(){return B(this,la)}getDefaultOptions(){return B(this,ua)}setDefaultOptions(e){ae(this,ua,e)}setQueryDefaults(e,t){B(this,Si).set(bu(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...B(this,Si).values()],n={};return t.forEach(r=>{Pu(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){B(this,Oi).set(bu(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...B(this,Oi).values()],n={};return t.forEach(r=>{Pu(e,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...B(this,ua).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=a1(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===o1&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...B(this,ua).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){B(this,We).clear(),B(this,la).clear()}},We=new WeakMap,la=new WeakMap,ua=new WeakMap,Si=new WeakMap,Oi=new WeakMap,ca=new WeakMap,ki=new WeakMap,_i=new WeakMap,a5),rse=k.createContext(void 0),ase=({client:e,children:t})=>(k.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),b.jsx(rse.Provider,{value:e,children:t})),[Gd,Ese]=fs("Tooltip",[Uf]),i1=Uf(),SO="TooltipProvider",ose=700,X2="tooltip.open",[ise,OO]=Gd(SO),kO=e=>{const{__scopeTooltip:t,delayDuration:n=ose,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:o}=e,i=k.useRef(!0),s=k.useRef(!1),l=k.useRef(0);return k.useEffect(()=>{const u=l.current;return()=>window.clearTimeout(u)},[]),b.jsx(ise,{scope:t,isOpenDelayedRef:i,delayDuration:n,onOpen:k.useCallback(()=>{window.clearTimeout(l.current),i.current=!1},[]),onClose:k.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>i.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:k.useCallback(u=>{s.current=u},[]),disableHoverableContent:a,children:o})};kO.displayName=SO;var _O="Tooltip",[Tse,Ud]=Gd(_O),zv="TooltipTrigger",sse=k.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=Ud(zv,n),o=OO(zv,n),i=i1(n),s=k.useRef(null),l=Ye(t,s,a.onTriggerChange),u=k.useRef(!1),p=k.useRef(!1),c=k.useCallback(()=>u.current=!1,[]);return k.useEffect(()=>()=>document.removeEventListener("pointerup",c),[c]),b.jsx(q6,{asChild:!0,...i,children:b.jsx(Ee.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:l,onPointerMove:fe(e.onPointerMove,f=>{f.pointerType!=="touch"&&!p.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),p.current=!0)}),onPointerLeave:fe(e.onPointerLeave,()=>{a.onTriggerLeave(),p.current=!1}),onPointerDown:fe(e.onPointerDown,()=>{a.open&&a.onClose(),u.current=!0,document.addEventListener("pointerup",c,{once:!0})}),onFocus:fe(e.onFocus,()=>{u.current||a.onOpen()}),onBlur:fe(e.onBlur,a.onClose),onClick:fe(e.onClick,a.onClose)})})});sse.displayName=zv;var lse="TooltipPortal",[jse,use]=Gd(lse,{forceMount:void 0}),ss="TooltipContent",CO=k.forwardRef((e,t)=>{const n=use(ss,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...o}=e,i=Ud(ss,e.__scopeTooltip);return b.jsx(t1,{present:r||i.open,children:i.disableHoverableContent?b.jsx(AO,{side:a,...o,ref:t}):b.jsx(cse,{side:a,...o,ref:t})})}),cse=k.forwardRef((e,t)=>{const n=Ud(ss,e.__scopeTooltip),r=OO(ss,e.__scopeTooltip),a=k.useRef(null),o=Ye(t,a),[i,s]=k.useState(null),{trigger:l,onClose:u}=n,p=a.current,{onPointerInTransitChange:c}=r,f=k.useCallback(()=>{s(null),c(!1)},[c]),d=k.useCallback((h,m)=>{const g=h.currentTarget,v={x:h.clientX,y:h.clientY},y=hse(v,g.getBoundingClientRect()),x=vse(v,y),P=yse(m.getBoundingClientRect()),w=xse([...x,...P]);s(w),c(!0)},[c]);return k.useEffect(()=>()=>f(),[f]),k.useEffect(()=>{if(l&&p){const h=g=>d(g,p),m=g=>d(g,l);return l.addEventListener("pointerleave",h),p.addEventListener("pointerleave",m),()=>{l.removeEventListener("pointerleave",h),p.removeEventListener("pointerleave",m)}}},[l,p,d,f]),k.useEffect(()=>{if(i){const h=m=>{const g=m.target,v={x:m.clientX,y:m.clientY},y=(l==null?void 0:l.contains(g))||(p==null?void 0:p.contains(g)),x=!gse(v,i);y?f():x&&(f(),u())};return document.addEventListener("pointermove",h),()=>document.removeEventListener("pointermove",h)}},[l,p,i,u,f]),b.jsx(AO,{...e,ref:o})}),[pse,fse]=Gd(_O,{isInside:!1}),dse=uC("TooltipContent"),AO=k.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:o,onPointerDownOutside:i,...s}=e,l=Ud(ss,n),u=i1(n),{onClose:p}=l;return k.useEffect(()=>(document.addEventListener(X2,p),()=>document.removeEventListener(X2,p)),[p]),k.useEffect(()=>{if(l.trigger){const c=f=>{const d=f.target;d!=null&&d.contains(l.trigger)&&p()};return window.addEventListener("scroll",c,{capture:!0}),()=>window.removeEventListener("scroll",c,{capture:!0})}},[l.trigger,p]),b.jsx(Iy,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:i,onFocusOutside:c=>c.preventDefault(),onDismiss:p,children:b.jsxs(V6,{"data-state":l.stateAttribute,...u,...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:[b.jsx(dse,{children:r}),b.jsx(pse,{scope:n,isInside:!0,children:b.jsx(iE,{id:l.contentId,role:"tooltip",children:a||r})})]})})});CO.displayName=ss;var EO="TooltipArrow",mse=k.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=i1(n);return fse(EO,n).isInside?null:b.jsx(K6,{...a,...r,ref:t})});mse.displayName=EO;function hse(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,a,o)){case o:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function vse(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 yse(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function gse(e,t){const{x:n,y:r}=e;let a=!1;for(let o=0,i=t.length-1;o<t.length;i=o++){const s=t[o],l=t[i],u=s.x,p=s.y,c=l.x,f=l.y;p>r!=f>r&&n<(c-u)*(r-p)/(f-p)+u&&(a=!a)}return a}function xse(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),wse(t)}function wse(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const a=e[r];for(;t.length>=2;){const o=t[t.length-1],i=t[t.length-2];if((o.x-i.x)*(a.y-i.y)>=(o.y-i.y)*(a.x-i.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const o=n[n.length-1],i=n[n.length-2];if((o.x-i.x)*(a.y-i.y)>=(o.y-i.y)*(a.x-i.x))n.pop();else break}n.push(a)}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 bse=kO,TO=CO;const Pse=bse,Sse=k.forwardRef(({className:e,sideOffset:t=4,...n},r)=>b.jsx(TO,{ref:r,sideOffset:t,className:Oe("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n}));Sse.displayName=TO.displayName;const Ose=e=>{const t=k.useRef(null),n=k.useRef(null),r=k.useRef(null);return k.useEffect(()=>{if(t.current){try{const a=t.current.attachShadow({mode:"open"});n.current=a;const o=document.createElement("div");o.id="shadow-root",o.className="benchmark-dashboard",a.appendChild(o),hO.getAllCSS().then(i=>{const s=document.createElement("style");s.textContent=i,a.insertBefore(s,o);const l=Gc.createRoot(o);r.current=l,l.render(b.jsx(A.StrictMode,{children:b.jsx(ase,{client:new nse,children:b.jsx(Pse,{children:b.jsx(Nie,{...e})})})}))}).catch(i=>{console.error("Failed to inject CSS into Shadow DOM:",i)})}catch(a){console.error("Failed to create Shadow DOM:",a)}return()=>{r.current&&r.current.unmount()}}},[]),b.jsx("div",{ref:t,style:{width:"100%",minHeight:"400px"}})},kse=`*, ::before, ::after {
   --tw-border-spacing-x: 0;
   --tw-border-spacing-y: 0;
   --tw-translate-x: 0;
@@ -4425,4 +4425,4 @@ body {
 [data-side=right] .\\[\\[data-side\\=right\\]_\\&\\]\\:cursor-e-resize {
   cursor: e-resize;
 }
-`;window.__BENCHMARK_CSS__=cse;function s1(){try{if(typeof window>"u")return;const e=document.querySelectorAll('[data-react-component="benchmark-dashboard"]');if(e.length===0)return;e.forEach((t,n)=>{var r;try{const a=t;if(a.dataset.reactInitialized==="true")return;const o={apiBase:a.dataset.apiBase,initialVersion:a.dataset.version,theme:a.dataset.theme||"light",containerClassName:a.dataset.containerClass||"",containerId:`benchmark-dashboard-${n}`,features:{header:a.dataset.showHeader==="true",versionSelector:a.dataset.showVersionSelector!=="false",summaryCards:a.dataset.showSummaryCards!=="false",tabs:((r=a.dataset.tabs)==null?void 0:r.split(",").map(s=>s.trim()))||["overview","latency","resources"]}};Gc.createRoot(a).render(b.jsx(C.StrictMode,{children:b.jsx(use,{...o})})),a.dataset.reactInitialized="true"}catch(a){console.error(`Error initializing benchmark dashboard ${n+1}:`,a)}})}catch(e){console.error("Error in benchmark dashboard initialization:",e)}}function K2(){setTimeout(()=>{s1()},100)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",K2):K2();window.addEventListener("load",()=>{setTimeout(s1,200)});window.initializeBenchmarkDashboardShadow=s1;
+`;window.__BENCHMARK_CSS__=kse;function s1(){try{if(typeof window>"u")return;const e=document.querySelectorAll('[data-react-component="benchmark-dashboard"]');if(e.length===0)return;e.forEach((t,n)=>{var r;try{const a=t;if(a.dataset.reactInitialized==="true")return;const o={apiBase:a.dataset.apiBase,initialVersion:a.dataset.version,theme:a.dataset.theme||"light",containerClassName:a.dataset.containerClass||"",containerId:`benchmark-dashboard-${n}`,features:{header:a.dataset.showHeader==="true",versionSelector:a.dataset.showVersionSelector!=="false",summaryCards:a.dataset.showSummaryCards!=="false",tabs:((r=a.dataset.tabs)==null?void 0:r.split(",").map(s=>s.trim()))||["overview","latency","resources"]}};Gc.createRoot(a).render(b.jsx(A.StrictMode,{children:b.jsx(Ose,{...o})})),a.dataset.reactInitialized="true"}catch(a){console.error(`Error initializing benchmark dashboard ${n+1}:`,a)}})}catch(e){console.error("Error in benchmark dashboard initialization:",e)}}function Y2(){setTimeout(()=>{s1()},100)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Y2):Y2();window.addEventListener("load",()=>{setTimeout(s1,200)});window.initializeBenchmarkDashboardShadow=s1;
diff --git a/site/static/logos/keda.svg b/site/static/logos/keda.svg
new file mode 100644
index 000000000..2dba5f8fd
--- /dev/null
+++ b/site/static/logos/keda.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Warstwa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 906.2 906.2" style="enable-background:new 0 0 906.2 906.2;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#326DE6;}
+	.st1{fill:#FFFFFF;}
+</style>
+<title>keda-word</title>
+<g id="Warstwa_1-2">
+	<g id="Wordmark">
+		<path id="KEDA" class="st0" d="M207.5,492.8l-47.2-84.5L146,422.8v70h-37V308h37v59.7l54.1-59.7H250l-64.7,72.3l66.3,112.5H207.5z
+			 M412.9,308v37H289.7v-37H412.9z M289.7,416.2v-37h102.1v37H289.7z M289.7,493.1v-37h122.5v37H289.7z M450.9,308h52.3
+			c24.5-0.2,48,9.6,65.2,26.9c8.5,8.4,15.3,18.5,19.8,29.6c9.9,23,9.9,49.1,0,72.1c-4.5,11.1-11.2,21-19.8,29.3
+			c-17.3,17.3-40.7,27.1-65.2,27.2H466v-0.3h-15.1V308z M487.9,456.1h15.3c30.7-0.4,55.2-25.6,54.8-56.3
+			c-0.4-30.1-24.7-54.4-54.8-54.8h-15.3V456.1z M698.9,308h10.8l87.4,185.1h-41l-52.8-112.4l-57.3,112.4h-41.5L698.9,308z"/>
+
+			<image style="overflow:visible;opacity:0.95;enable-background:new    ;" width="126" height="231" xlink:href="A04350A68EF731DF.png"  transform="matrix(0.9921 0 0 0.9921 625.9449 369.0308)">
+		</image>
+		<polygon class="st1" points="723.6,485.3 733.6,467.4 694.8,467.4 706.4,387.1 705.8,386 644.6,497 644.6,497 642.7,500.3
+			682.1,499.9 671.6,578.9 671.9,580 719.3,493 719.3,493 719.3,493 		"/>
+		<path id="Combined-Shape" class="st0" d="M719.3,493.1l14.1-25.6h-38.7l12.1-83.3l-60.1,108.9h-13.3l69.8-131l69.8,131H719.3z"/>
+	</g>
+</g>
+</svg>
diff --git a/site/tools/benchmark-dashboard/src/components/BenchmarkTakeaways.tsx b/site/tools/benchmark-dashboard/src/components/BenchmarkTakeaways.tsx
index 14645ac50..8686fc317 100644
--- a/site/tools/benchmark-dashboard/src/components/BenchmarkTakeaways.tsx
+++ b/site/tools/benchmark-dashboard/src/components/BenchmarkTakeaways.tsx
@@ -26,7 +26,7 @@ interface BenchmarkTakeawaysProps {
 }
 
 export const BenchmarkTakeaways: React.FC<BenchmarkTakeawaysProps> = ({
-  version = '1.4.1'
+  version = '1.4.2'
 }) => {
   const performanceInsights = [
     {
diff --git a/site/tools/benchmark-dashboard/src/components/LatencyTab.tsx b/site/tools/benchmark-dashboard/src/components/LatencyTab.tsx
index 483f1a731..f486b5a88 100644
--- a/site/tools/benchmark-dashboard/src/components/LatencyTab.tsx
+++ b/site/tools/benchmark-dashboard/src/components/LatencyTab.tsx
@@ -246,30 +246,27 @@ const LatencyTab = ({ latencyPercentileComparison, benchmarkResults }: LatencyTa
                     />
                     <Area
                       dataKey="p99"
-                      stackId="latency"
                       type="monotone"
                       fill="#4f46e5"
-                      fillOpacity={0.3}
+                      fillOpacity={0.2}
                       stroke="#4f46e5"
-                      strokeWidth={1}
+                      strokeWidth={2}
                     />
                     <Area
                       dataKey="p95"
-                      stackId="latency"
                       type="monotone"
                       fill="#6366f1"
-                      fillOpacity={0.4}
+                      fillOpacity={0.3}
                       stroke="#6366f1"
                       strokeWidth={2}
                     />
                     <Area
                       dataKey="p50"
-                      stackId="latency"
                       type="monotone"
                       fill="#8b5cf6"
-                      fillOpacity={0.6}
+                      fillOpacity={0.4}
                       stroke="#8b5cf6"
-                      strokeWidth={3}
+                      strokeWidth={2}
                     />
                   </AreaChart>
                 </ChartContainer>
diff --git a/site/tools/benchmark-dashboard/src/components/OverviewTab.tsx b/site/tools/benchmark-dashboard/src/components/OverviewTab.tsx
index 10c393918..89ef48ea6 100644
--- a/site/tools/benchmark-dashboard/src/components/OverviewTab.tsx
+++ b/site/tools/benchmark-dashboard/src/components/OverviewTab.tsx
@@ -287,17 +287,19 @@ const OverviewTab = ({
                     />
                     <Area
                       dataKey="gateway"
-                      stackId="memory"
                       type="monotone"
                       fill="#a855f7"
+                      fillOpacity={0.4}
                       stroke="#a855f7"
+                      strokeWidth={2}
                     />
                     <Area
                       dataKey="proxy"
-                      stackId="memory"
                       type="monotone"
                       fill="#4f46e5"
+                      fillOpacity={0.4}
                       stroke="#4f46e5"
+                      strokeWidth={2}
                     />
                   </AreaChart>
                 </ChartContainer>
diff --git a/site/tools/benchmark-dashboard/src/components/ResourcesTab.tsx b/site/tools/benchmark-dashboard/src/components/ResourcesTab.tsx
index 60230f640..a4021e0d7 100644
--- a/site/tools/benchmark-dashboard/src/components/ResourcesTab.tsx
+++ b/site/tools/benchmark-dashboard/src/components/ResourcesTab.tsx
@@ -315,19 +315,17 @@ const ResourcesTab = ({ resourceTrends, benchmarkResults }: ResourcesTabProps) =
                   />
                   <Area
                     dataKey="gateway"
-                    stackId="memory"
                     type="monotone"
                     fill="#a855f7"
-                    fillOpacity={0.6}
+                    fillOpacity={0.4}
                     stroke="#a855f7"
                     strokeWidth={2}
                   />
                   <Area
                     dataKey="proxy"
-                    stackId="memory"
                     type="monotone"
                     fill="#4f46e5"
-                    fillOpacity={0.6}
+                    fillOpacity={0.4}
                     stroke="#4f46e5"
                     strokeWidth={2}
                   />
diff --git a/site/tools/benchmark-dashboard/src/data/index.ts b/site/tools/benchmark-dashboard/src/data/index.ts
index 44e91d302..d749252fa 100644
--- a/site/tools/benchmark-dashboard/src/data/index.ts
+++ b/site/tools/benchmark-dashboard/src/data/index.ts
@@ -6,9 +6,10 @@ import {
   LatencyComparison,
   ResourceComparison
 } from './types';
-import { benchmarkData as v133TestSuite } from './versions/v1.3.3';
-import { benchmarkData as v140TestSuite } from './versions/v1.4.0';
+import { benchmarkData as v142TestSuite } from './versions/v1.4.2';
 import { benchmarkData as v141TestSuite } from './versions/v1.4.1';
+import { benchmarkData as v140TestSuite } from './versions/v1.4.0';
+import { benchmarkData as v133TestSuite } from './versions/v1.3.3';
 import { benchmarkData as v132TestSuite } from './versions/v1.3.2';
 import { benchmarkData as v131TestSuite } from './versions/v1.3.1';
 import { benchmarkData as v130TestSuite } from './versions/v1.3.0';
@@ -29,6 +30,7 @@ import { benchmarkData as v110TestSuite } from './versions/v1.1.0';
 
 // Import all version data
 export const allTestSuites: TestSuite[] = [
+  v142TestSuite,
   v141TestSuite,
   v140TestSuite,
   v133TestSuite,
diff --git a/site/tools/benchmark-dashboard/src/data/versions/v1.4.2.ts b/site/tools/benchmark-dashboard/src/data/versions/v1.4.2.ts
new file mode 100644
index 000000000..50d3f3bcc
--- /dev/null
+++ b/site/tools/benchmark-dashboard/src/data/versions/v1.4.2.ts
@@ -0,0 +1,586 @@
+import { TestSuite } from '../types';
+
+// Benchmark data extracted from markdown report for version 1.4.2
+// Generated on 2025-07-18T02:23:12.475Z
+
+export const benchmarkData: TestSuite = {
+  "metadata": {
+    "version": "1.4.2",
+    "runId": "1.4.2-1752805392474",
+    "date": "2025-07-18T02:23:12.474Z",
+    "environment": "production",
+    "description": "Benchmark results for version 1.4.2",
+    "testConfiguration": {
+      "rps": 10000,
+      "connections": 100,
+      "duration": 30,
+      "cpuLimit": "1000m",
+      "memoryLimit": "2000Mi"
+    }
+  },
+  "results": [
+    {
+      "testName": "scaling up httproutes to 10 with 2 routes per hostname",
+      "routes": 10,
+      "routesPerHostname": 2,
+      "phase": "scaling-up",
+      "throughput": 5153.92,
+      "totalRequests": 154618,
+      "latency": {
+        "min": 383,
+        "mean": 7923,
+        "max": 80375,
+        "pstdev": 13254,
+        "percentiles": {
+          "p50": 3722,
+          "p75": 6072,
+          "p80": 6915,
+          "p90": 11685,
+          "p95": 49872,
+          "p99": 56281,
+          "p999": 62722
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 131.64,
+            "max": 158.27,
+            "mean": 153.65
+          },
+          "cpu": {
+            "min": 0.13,
+            "max": 1,
+            "mean": 0.43
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 0,
+            "max": 27.04,
+            "mean": 24.5
+          },
+          "cpu": {
+            "min": 0,
+            "max": 92.27,
+            "mean": 13.11
+          }
+        }
+      },
+      "poolOverflow": 357,
+      "upstreamConnections": 43
+    },
+    {
+      "testName": "scaling up httproutes to 50 with 10 routes per hostname",
+      "routes": 50,
+      "routesPerHostname": 10,
+      "phase": "scaling-up",
+      "throughput": 5214.96,
+      "totalRequests": 156456,
+      "latency": {
+        "min": 392,
+        "mean": 6917,
+        "max": 94703,
+        "pstdev": 12289,
+        "percentiles": {
+          "p50": 3265,
+          "p75": 5168,
+          "p80": 5850,
+          "p90": 9014,
+          "p95": 48109,
+          "p99": 54501,
+          "p999": 61138
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 151.75,
+            "max": 162.37,
+            "mean": 156.16
+          },
+          "cpu": {
+            "min": 0.27,
+            "max": 4.07,
+            "mean": 0.93
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 26.85,
+            "max": 33.23,
+            "mean": 31.93
+          },
+          "cpu": {
+            "min": 0,
+            "max": 99.8,
+            "mean": 2.75
+          }
+        }
+      },
+      "poolOverflow": 362,
+      "upstreamConnections": 38
+    },
+    {
+      "testName": "scaling up httproutes to 100 with 20 routes per hostname",
+      "routes": 100,
+      "routesPerHostname": 20,
+      "phase": "scaling-up",
+      "throughput": 5286.96,
+      "totalRequests": 158609,
+      "latency": {
+        "min": 368,
+        "mean": 7734,
+        "max": 92332,
+        "pstdev": 12933,
+        "percentiles": {
+          "p50": 3787,
+          "p75": 5897,
+          "p80": 6637,
+          "p90": 10518,
+          "p95": 49209,
+          "p99": 55494,
+          "p999": 62668
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 154.29,
+            "max": 162.45,
+            "mean": 160.12
+          },
+          "cpu": {
+            "min": 0.4,
+            "max": 8.13,
+            "mean": 1.15
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 33.08,
+            "max": 37.43,
+            "mean": 36.96
+          },
+          "cpu": {
+            "min": 0,
+            "max": 99.94,
+            "mean": 12.84
+          }
+        }
+      },
+      "poolOverflow": 357,
+      "upstreamConnections": 43
+    },
+    {
+      "testName": "scaling up httproutes to 300 with 60 routes per hostname",
+      "routes": 300,
+      "routesPerHostname": 60,
+      "phase": "scaling-up",
+      "throughput": 5071.92,
+      "totalRequests": 152158,
+      "latency": {
+        "min": 367,
+        "mean": 7108,
+        "max": 96673,
+        "pstdev": 12611,
+        "percentiles": {
+          "p50": 3259,
+          "p75": 5273,
+          "p80": 5983,
+          "p90": 9540,
+          "p95": 48895,
+          "p99": 55816,
+          "p999": 64583
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 178.72,
+            "max": 189.43,
+            "mean": 185.02
+          },
+          "cpu": {
+            "min": 0.53,
+            "max": 49.47,
+            "mean": 4.51
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 53.3,
+            "max": 57.54,
+            "mean": 57.04
+          },
+          "cpu": {
+            "min": 0,
+            "max": 100.16,
+            "mean": 15
+          }
+        }
+      },
+      "poolOverflow": 362,
+      "upstreamConnections": 38
+    },
+    {
+      "testName": "scaling up httproutes to 500 with 100 routes per hostname",
+      "routes": 500,
+      "routesPerHostname": 100,
+      "phase": "scaling-up",
+      "throughput": 4987.92,
+      "totalRequests": 149640,
+      "latency": {
+        "min": 394,
+        "mean": 7071,
+        "max": 108810,
+        "pstdev": 12666,
+        "percentiles": {
+          "p50": 3283,
+          "p75": 5167,
+          "p80": 5821,
+          "p90": 9217,
+          "p95": 48912,
+          "p99": 56031,
+          "p999": 68722
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 187.59,
+            "max": 203.43,
+            "mean": 199.65
+          },
+          "cpu": {
+            "min": 0.27,
+            "max": 48.25,
+            "mean": 1.88
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 73.41,
+            "max": 79.6,
+            "mean": 79.35
+          },
+          "cpu": {
+            "min": 0,
+            "max": 99.91,
+            "mean": 11.81
+          }
+        }
+      },
+      "poolOverflow": 363,
+      "upstreamConnections": 37
+    },
+    {
+      "testName": "scaling up httproutes to 1000 with 200 routes per hostname",
+      "routes": 1000,
+      "routesPerHostname": 200,
+      "phase": "scaling-up",
+      "throughput": 4945.69,
+      "totalRequests": 148373,
+      "latency": {
+        "min": 411,
+        "mean": 7306,
+        "max": 101023,
+        "pstdev": 12990,
+        "percentiles": {
+          "p50": 3249,
+          "p75": 5440,
+          "p80": 6223,
+          "p90": 10246,
+          "p95": 49207,
+          "p99": 57444,
+          "p999": 69570
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 231.85,
+            "max": 243.1,
+            "mean": 237.75
+          },
+          "cpu": {
+            "min": 0.2,
+            "max": 1.2,
+            "mean": 0.84
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 129.84,
+            "max": 130.36,
+            "mean": 129.96
+          },
+          "cpu": {
+            "min": 0,
+            "max": 99.89,
+            "mean": 11.78
+          }
+        }
+      },
+      "poolOverflow": 362,
+      "upstreamConnections": 38
+    },
+    {
+      "testName": "scaling down httproutes to 10 with 2 routes per hostname",
+      "routes": 10,
+      "routesPerHostname": 2,
+      "phase": "scaling-down",
+      "throughput": 5200.02,
+      "totalRequests": 156013,
+      "latency": {
+        "min": 397,
+        "mean": 7832,
+        "max": 75223,
+        "pstdev": 13154,
+        "percentiles": {
+          "p50": 3651,
+          "p75": 5953,
+          "p80": 6758,
+          "p90": 11656,
+          "p95": 49915,
+          "p99": 56150,
+          "p999": 62173
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 262.52,
+            "max": 266.5,
+            "mean": 263.99
+          },
+          "cpu": {
+            "min": 0.67,
+            "max": 3.53,
+            "mean": 1.15
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 123.49,
+            "max": 123.65,
+            "mean": 123.54
+          },
+          "cpu": {
+            "min": 0,
+            "max": 100.22,
+            "mean": 7.55
+          }
+        }
+      },
+      "poolOverflow": 357,
+      "upstreamConnections": 43
+    },
+    {
+      "testName": "scaling down httproutes to 50 with 10 routes per hostname",
+      "routes": 50,
+      "routesPerHostname": 10,
+      "phase": "scaling-down",
+      "throughput": 5116.68,
+      "totalRequests": 153503,
+      "latency": {
+        "min": 404,
+        "mean": 7069,
+        "max": 71688,
+        "pstdev": 12498,
+        "percentiles": {
+          "p50": 3313,
+          "p75": 5203,
+          "p80": 5888,
+          "p90": 9173,
+          "p95": 48934,
+          "p99": 55580,
+          "p999": 61552
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 266.25,
+            "max": 277.75,
+            "mean": 267.54
+          },
+          "cpu": {
+            "min": 0.67,
+            "max": 7.13,
+            "mean": 1.51
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 123.47,
+            "max": 123.67,
+            "mean": 123.53
+          },
+          "cpu": {
+            "min": 0,
+            "max": 99.78,
+            "mean": 4.47
+          }
+        }
+      },
+      "poolOverflow": 362,
+      "upstreamConnections": 38
+    },
+    {
+      "testName": "scaling down httproutes to 100 with 20 routes per hostname",
+      "routes": 100,
+      "routesPerHostname": 20,
+      "phase": "scaling-down",
+      "throughput": 5153.5,
+      "totalRequests": 154605,
+      "latency": {
+        "min": 376,
+        "mean": 6989,
+        "max": 80056,
+        "pstdev": 12394,
+        "percentiles": {
+          "p50": 3284,
+          "p75": 5189,
+          "p80": 5871,
+          "p90": 9047,
+          "p95": 48644,
+          "p99": 55019,
+          "p999": 61106
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 170.85,
+            "max": 277.75,
+            "mean": 210.44
+          },
+          "cpu": {
+            "min": 0.67,
+            "max": 68.27,
+            "mean": 7.39
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 123.46,
+            "max": 123.75,
+            "mean": 123.55
+          },
+          "cpu": {
+            "min": 0,
+            "max": 100.02,
+            "mean": 16.06
+          }
+        }
+      },
+      "poolOverflow": 362,
+      "upstreamConnections": 38
+    },
+    {
+      "testName": "scaling down httproutes to 300 with 60 routes per hostname",
+      "routes": 300,
+      "routesPerHostname": 60,
+      "phase": "scaling-down",
+      "throughput": 5125.52,
+      "totalRequests": 153766,
+      "latency": {
+        "min": 369,
+        "mean": 6827,
+        "max": 85323,
+        "pstdev": 12196,
+        "percentiles": {
+          "p50": 3193,
+          "p75": 5036,
+          "p80": 5699,
+          "p90": 8862,
+          "p95": 47597,
+          "p99": 54747,
+          "p999": 64284
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 181.68,
+            "max": 196.62,
+            "mean": 192.08
+          },
+          "cpu": {
+            "min": 0.4,
+            "max": 72.6,
+            "mean": 3.62
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 129.86,
+            "max": 130.06,
+            "mean": 129.95
+          },
+          "cpu": {
+            "min": 0,
+            "max": 100.07,
+            "mean": 13.11
+          }
+        }
+      },
+      "poolOverflow": 363,
+      "upstreamConnections": 37
+    },
+    {
+      "testName": "scaling down httproutes to 500 with 100 routes per hostname",
+      "routes": 500,
+      "routesPerHostname": 100,
+      "phase": "scaling-down",
+      "throughput": 5130.15,
+      "totalRequests": 153916,
+      "latency": {
+        "min": 389,
+        "mean": 7004,
+        "max": 103731,
+        "pstdev": 12505,
+        "percentiles": {
+          "p50": 3244,
+          "p75": 5247,
+          "p80": 5944,
+          "p90": 9184,
+          "p95": 48279,
+          "p99": 55420,
+          "p999": 66549
+        }
+      },
+      "resources": {
+        "envoyGateway": {
+          "memory": {
+            "min": 205.04,
+            "max": 208.2,
+            "mean": 206.96
+          },
+          "cpu": {
+            "min": 0.33,
+            "max": 54.27,
+            "mean": 2.52
+          }
+        },
+        "envoyProxy": {
+          "memory": {
+            "min": 129.85,
+            "max": 130.02,
+            "mean": 129.9
+          },
+          "cpu": {
+            "min": 0,
+            "max": 91.79,
+            "mean": 22.69
+          }
+        }
+      },
+      "poolOverflow": 362,
+      "upstreamConnections": 38
+    }
+  ]
+};
+
+export default benchmarkData;



Test patch:
diff --git a/internal/admin/console/api_test.go b/internal/admin/console/api_test.go
new file mode 100644
index 000000000..e677184b0
--- /dev/null
+++ b/internal/admin/console/api_test.go
@@ -0,0 +1,416 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package console
+
+import (
+	"encoding/json"
+	"net/http"
+	"net/http/httptest"
+	"os"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
+	"github.com/telepresenceio/watchable"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+	egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
+	"github.com/envoyproxy/gateway/internal/envoygateway/config"
+	"github.com/envoyproxy/gateway/internal/gatewayapi/resource"
+	"github.com/envoyproxy/gateway/internal/logging"
+	"github.com/envoyproxy/gateway/internal/message"
+)
+
+func TestHandleAPIInfo(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodGet, "/api/info", nil)
+	w := httptest.NewRecorder()
+
+	handler.handleAPIInfo(w, req)
+
+	assert.Equal(t, http.StatusOK, w.Code)
+	assert.Equal(t, "application/json", w.Header().Get("Content-Type"))
+
+	var info SystemInfo
+	err := json.Unmarshal(w.Body.Bytes(), &info)
+	require.NoError(t, err)
+
+	// Version might be empty in test environment
+	assert.NotEmpty(t, info.GoVersion)
+	assert.NotEmpty(t, info.Platform)
+	assert.NotEmpty(t, info.Uptime)
+	assert.False(t, info.StartTime.IsZero())
+	assert.False(t, info.Timestamp.IsZero())
+}
+
+func TestHandleAPIInfoMethodNotAllowed(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodPost, "/api/info", nil)
+	w := httptest.NewRecorder()
+
+	handler.handleAPIInfo(w, req)
+
+	assert.Equal(t, http.StatusMethodNotAllowed, w.Code)
+}
+
+func TestHandleAPIServerInfo(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodGet, "/api/server_info", nil)
+	w := httptest.NewRecorder()
+
+	handler.handleAPIServerInfo(w, req)
+
+	assert.Equal(t, http.StatusOK, w.Code)
+	assert.Equal(t, "application/json", w.Header().Get("Content-Type"))
+
+	var info ServerInfo
+	err := json.Unmarshal(w.Body.Bytes(), &info)
+	require.NoError(t, err)
+
+	assert.Equal(t, "Running", info.State)
+	// Version might be empty in test environment
+	assert.NotEmpty(t, info.Uptime)
+	assert.Len(t, info.Components, 4) // Core components only
+	assert.False(t, info.LastUpdated.IsZero())
+	assert.NotNil(t, info.EnvoyGatewayConfig) // Verify EnvoyGateway config is included
+
+	// Check component details
+	for _, component := range info.Components {
+		assert.NotEmpty(t, component.Name)
+		assert.Equal(t, "Running", component.Status)
+		assert.NotEmpty(t, component.Message)
+	}
+
+	// Verify EnvoyGateway configuration structure
+	configData, ok := info.EnvoyGatewayConfig.(map[string]interface{})
+	if ok {
+		// Check if it has the expected structure (this will be a map when JSON unmarshaled)
+		assert.Contains(t, configData, "kind")
+		assert.Contains(t, configData, "apiVersion")
+	}
+}
+
+func TestHandleAPIConfigDump(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	// Create a mock provider resources
+	providerResources := &message.ProviderResources{}
+
+	handler := NewHandler(cfg, providerResources)
+
+	req := httptest.NewRequest(http.MethodGet, "/api/config_dump", nil)
+	w := httptest.NewRecorder()
+
+	handler.handleAPIConfigDump(w, req)
+
+	assert.Equal(t, http.StatusOK, w.Code)
+	assert.Equal(t, "application/json", w.Header().Get("Content-Type"))
+
+	var configDump ConfigDumpInfo
+	err := json.Unmarshal(w.Body.Bytes(), &configDump)
+	require.NoError(t, err)
+
+	assert.NotNil(t, configDump.Gateways)
+	assert.NotNil(t, configDump.HTTPRoutes)
+	assert.NotNil(t, configDump.GatewayClass)
+	assert.False(t, configDump.LastUpdated.IsZero())
+}
+
+func TestLoadConfigDumpWithData(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	// Create a simple test without the complex watchable structure
+	// This test focuses on the basic functionality
+	providerRes := &message.ProviderResources{}
+	// Initialize empty watchable map
+	providerRes.GatewayAPIResources = watchable.Map[string, *resource.ControllerResources]{}
+
+	// Skip storing to avoid watchable copy issues
+	// providerResources.Store("test", providerRes)
+
+	handler := NewHandler(cfg, providerRes)
+
+	configDump := handler.loadConfigDump()
+
+	// Verify the response structure with empty data
+	// Gateway API Core Resources
+	assert.Empty(t, configDump.GatewayClass)
+	assert.Empty(t, configDump.Gateways)
+	assert.Empty(t, configDump.HTTPRoutes)
+	assert.Empty(t, configDump.GRPCRoutes)
+	assert.Empty(t, configDump.TLSRoutes)
+	assert.Empty(t, configDump.TCPRoutes)
+	assert.Empty(t, configDump.UDPRoutes)
+
+	// Envoy Gateway Policies
+	assert.Empty(t, configDump.ClientTrafficPolicies)
+	assert.Empty(t, configDump.BackendTrafficPolicies)
+	assert.Empty(t, configDump.BackendTLSPolicies)
+	assert.Empty(t, configDump.SecurityPolicies)
+	assert.Empty(t, configDump.EnvoyPatchPolicies)
+	assert.Empty(t, configDump.EnvoyExtensionPolicies)
+
+	// Kubernetes Resources
+	assert.Empty(t, configDump.Services)
+	assert.Empty(t, configDump.Secrets)
+	assert.Empty(t, configDump.ConfigMaps)
+	assert.Empty(t, configDump.Namespaces)
+	assert.Empty(t, configDump.EndpointSlices)
+
+	// Other Resources
+	assert.Empty(t, configDump.ReferenceGrants)
+	assert.Empty(t, configDump.HTTPRouteFilters)
+	assert.Empty(t, configDump.EnvoyProxies)
+	assert.Empty(t, configDump.Backends)
+	assert.Empty(t, configDump.ServiceImports)
+
+	// Verify all fields are properly initialized (not nil)
+	assert.NotNil(t, configDump.GatewayClass)
+	assert.NotNil(t, configDump.Gateways)
+	assert.NotNil(t, configDump.HTTPRoutes)
+	assert.NotNil(t, configDump.GRPCRoutes)
+	assert.NotNil(t, configDump.TLSRoutes)
+	assert.NotNil(t, configDump.TCPRoutes)
+	assert.NotNil(t, configDump.UDPRoutes)
+	assert.NotNil(t, configDump.ClientTrafficPolicies)
+	assert.NotNil(t, configDump.BackendTrafficPolicies)
+	assert.NotNil(t, configDump.BackendTLSPolicies)
+	assert.NotNil(t, configDump.SecurityPolicies)
+	assert.NotNil(t, configDump.EnvoyPatchPolicies)
+	assert.NotNil(t, configDump.EnvoyExtensionPolicies)
+	assert.NotNil(t, configDump.Services)
+	assert.NotNil(t, configDump.Secrets)
+	assert.NotNil(t, configDump.ConfigMaps)
+	assert.NotNil(t, configDump.Namespaces)
+	assert.NotNil(t, configDump.EndpointSlices)
+	assert.NotNil(t, configDump.ReferenceGrants)
+	assert.NotNil(t, configDump.HTTPRouteFilters)
+	assert.NotNil(t, configDump.EnvoyProxies)
+	assert.NotNil(t, configDump.Backends)
+	assert.NotNil(t, configDump.ServiceImports)
+
+	assert.False(t, configDump.LastUpdated.IsZero())
+}
+
+func TestGetGatewayClassStatus(t *testing.T) {
+	tests := []struct {
+		name       string
+		conditions []metav1.Condition
+		expected   string
+	}{
+		{
+			name:       "no conditions",
+			conditions: nil,
+			expected:   "Unknown",
+		},
+		{
+			name: "accepted",
+			conditions: []metav1.Condition{
+				{
+					Type:   string(gwapiv1.GatewayClassConditionStatusAccepted),
+					Status: metav1.ConditionTrue,
+				},
+			},
+			expected: "Accepted",
+		},
+		{
+			name: "not accepted",
+			conditions: []metav1.Condition{
+				{
+					Type:   string(gwapiv1.GatewayClassConditionStatusAccepted),
+					Status: metav1.ConditionFalse,
+				},
+			},
+			expected: "Not Accepted",
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			gc := &gwapiv1.GatewayClass{
+				Status: gwapiv1.GatewayClassStatus{
+					Conditions: tt.conditions,
+				},
+			}
+
+			result := getGatewayClassStatus(gc)
+			assert.Equal(t, tt.expected, result)
+		})
+	}
+}
+
+func TestGetGatewayStatus(t *testing.T) {
+	tests := []struct {
+		name       string
+		conditions []metav1.Condition
+		expected   string
+	}{
+		{
+			name:       "no conditions",
+			conditions: nil,
+			expected:   "Unknown",
+		},
+		{
+			name: "programmed",
+			conditions: []metav1.Condition{
+				{
+					Type:   string(gwapiv1.GatewayConditionProgrammed),
+					Status: metav1.ConditionTrue,
+				},
+			},
+			expected: "Programmed",
+		},
+		{
+			name: "accepted",
+			conditions: []metav1.Condition{
+				{
+					Type:   string(gwapiv1.GatewayConditionAccepted),
+					Status: metav1.ConditionTrue,
+				},
+			},
+			expected: "Accepted",
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			gw := &gwapiv1.Gateway{
+				Status: gwapiv1.GatewayStatus{
+					Conditions: tt.conditions,
+				},
+			}
+
+			result := getGatewayStatus(gw)
+			assert.Equal(t, tt.expected, result)
+		})
+	}
+}
+
+func TestHandleAPIConfigDumpAll(t *testing.T) {
+	cfg := &config.Server{
+		Logger: logging.NewLogger(os.Stdout, egv1a1.DefaultEnvoyGatewayLogging()),
+	}
+
+	providerRes := &message.ProviderResources{}
+	handler := NewHandler(cfg, providerRes)
+
+	req := httptest.NewRequest(http.MethodGet, "/api/config_dump_all", nil)
+	resp := httptest.NewRecorder()
+
+	handler.handleAPIConfigDumpAll(resp, req)
+
+	assert.Equal(t, http.StatusOK, resp.Code)
+	assert.Equal(t, "application/json; charset=utf-8", resp.Header().Get("Content-Type"))
+
+	// Should not have download headers
+	assert.Empty(t, resp.Header().Get("Content-Disposition"))
+
+	// Should return JSON response with structured format
+	var result map[string]interface{}
+	err := json.Unmarshal(resp.Body.Bytes(), &result)
+	require.NoError(t, err)
+
+	// Verify response structure
+	assert.Contains(t, result, "resources")
+	assert.Contains(t, result, "timestamp")
+	assert.Contains(t, result, "totalCount")
+
+	// Verify resources field exists (could be nil for empty case)
+	resources := result["resources"]
+	if resources != nil {
+		resourcesArray, ok := resources.([]interface{})
+		assert.True(t, ok)
+		assert.Empty(t, resourcesArray) // Empty for test case
+	} else {
+		// resources is nil, which is expected for empty provider resources
+		assert.Nil(t, resources)
+	}
+
+	// Verify totalCount matches resources length
+	totalCount, ok := result["totalCount"].(float64)
+	assert.True(t, ok)
+	assert.Equal(t, float64(0), totalCount)
+}
+
+func TestHandleAPIConfigDumpAllMethodNotAllowed(t *testing.T) {
+	cfg := &config.Server{
+		Logger: logging.NewLogger(os.Stdout, egv1a1.DefaultEnvoyGatewayLogging()),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodPost, "/api/config_dump_all", nil)
+	resp := httptest.NewRecorder()
+
+	handler.handleAPIConfigDumpAll(resp, req)
+
+	assert.Equal(t, http.StatusMethodNotAllowed, resp.Code)
+}
+
+func TestHandleAPIMetrics(t *testing.T) {
+	cfg := &config.Server{
+		Logger: logging.NewLogger(os.Stdout, egv1a1.DefaultEnvoyGatewayLogging()),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodGet, "/api/metrics", nil)
+	resp := httptest.NewRecorder()
+
+	handler.handleAPIMetrics(resp, req)
+
+	// Now we're using the Prometheus registry directly, so we should get a successful response
+	assert.Equal(t, http.StatusOK, resp.Code)
+	assert.Contains(t, resp.Header().Get("Content-Type"), "text/plain; version=0.0.4; charset=utf-8")
+
+	// Verify we get actual Prometheus metrics
+	body := resp.Body.String()
+	assert.Contains(t, body, "# HELP")
+	assert.Contains(t, body, "# TYPE")
+	// Should contain Go runtime metrics
+	assert.Contains(t, body, "go_goroutines")
+	assert.Contains(t, body, "process_cpu_seconds_total")
+}
+
+func TestHandleAPIMetricsMethodNotAllowed(t *testing.T) {
+	cfg := &config.Server{
+		Logger: logging.NewLogger(os.Stdout, egv1a1.DefaultEnvoyGatewayLogging()),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodPost, "/api/metrics", nil)
+	resp := httptest.NewRecorder()
+
+	handler.handleAPIMetrics(resp, req)
+
+	assert.Equal(t, http.StatusMethodNotAllowed, resp.Code)
+}
diff --git a/internal/admin/console/handlers_test.go b/internal/admin/console/handlers_test.go
new file mode 100644
index 000000000..9d1b8f1af
--- /dev/null
+++ b/internal/admin/console/handlers_test.go
@@ -0,0 +1,211 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package console
+
+import (
+	"net/http"
+	"net/http/httptest"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
+
+	egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
+	"github.com/envoyproxy/gateway/internal/envoygateway/config"
+	"github.com/envoyproxy/gateway/internal/logging"
+	"github.com/envoyproxy/gateway/internal/message"
+)
+
+func TestNewHandler(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	providerResources := &message.ProviderResources{}
+
+	handler := NewHandler(cfg, providerResources)
+
+	assert.NotNil(t, handler)
+	assert.Equal(t, cfg, handler.cfg)
+	assert.Equal(t, providerResources, handler.providerResources)
+}
+
+func TestHandleIndex(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodGet, "/", nil)
+	w := httptest.NewRecorder()
+
+	handler.handleIndex(w, req)
+
+	assert.Equal(t, http.StatusOK, w.Code)
+	assert.Contains(t, w.Header().Get("Content-Type"), "text/html")
+	assert.Contains(t, w.Body.String(), "Envoy Gateway Admin Console")
+}
+
+func TestHandleIndexMethodNotAllowed(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, nil)
+
+	req := httptest.NewRequest(http.MethodPost, "/", nil)
+	w := httptest.NewRecorder()
+
+	handler.handleIndex(w, req)
+
+	assert.Equal(t, http.StatusMethodNotAllowed, w.Code)
+}
+
+func TestHandlePprof(t *testing.T) {
+	tests := []struct {
+		name        string
+		enablePprof bool
+		expectBody  string
+	}{
+		{
+			name:        "pprof enabled",
+			enablePprof: true,
+			expectBody:  "Performance Profiling",
+		},
+		{
+			name:        "pprof disabled",
+			enablePprof: false,
+			expectBody:  "Performance Profiling",
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			cfg := &config.Server{
+				EnvoyGateway: &egv1a1.EnvoyGateway{
+					EnvoyGatewaySpec: egv1a1.EnvoyGatewaySpec{
+						Admin: &egv1a1.EnvoyGatewayAdmin{
+							EnablePprof: tt.enablePprof,
+						},
+					},
+				},
+				Logger: logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+			}
+
+			handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+			req := httptest.NewRequest(http.MethodGet, "/pprof", nil)
+			w := httptest.NewRecorder()
+
+			handler.handlePprof(w, req)
+
+			assert.Equal(t, http.StatusOK, w.Code)
+			assert.Contains(t, w.Header().Get("Content-Type"), "text/html")
+			assert.Contains(t, w.Body.String(), tt.expectBody)
+		})
+	}
+}
+
+func TestHandleServerInfo(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodGet, "/server_info", nil)
+	w := httptest.NewRecorder()
+
+	handler.handleServerInfo(w, req)
+
+	assert.Equal(t, http.StatusOK, w.Code)
+	assert.Contains(t, w.Header().Get("Content-Type"), "text/html")
+	assert.Contains(t, w.Body.String(), "Server Information")
+}
+
+func TestHandleConfigDump(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodGet, "/config_dump", nil)
+	w := httptest.NewRecorder()
+
+	handler.handleConfigDump(w, req)
+
+	assert.Equal(t, http.StatusOK, w.Code)
+	assert.Contains(t, w.Header().Get("Content-Type"), "text/html")
+	assert.Contains(t, w.Body.String(), "Configuration Dump")
+}
+
+func TestHandleStats(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+
+	req := httptest.NewRequest(http.MethodGet, "/stats", nil)
+	w := httptest.NewRecorder()
+
+	handler.handleStats(w, req)
+
+	assert.Equal(t, http.StatusOK, w.Code)
+	assert.Contains(t, w.Header().Get("Content-Type"), "text/html")
+	assert.Contains(t, w.Body.String(), "Statistics")
+}
+
+func TestRegisterRoutes(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+	mux := http.NewServeMux()
+
+	// This should not panic
+	require.NotPanics(t, func() {
+		handler.RegisterRoutes(mux)
+	})
+
+	// Test that routes are registered by making requests
+	testCases := []struct {
+		path           string
+		expectedStatus int
+	}{
+		{"/", http.StatusOK},
+		{"/pprof", http.StatusOK},
+		{"/server_info", http.StatusOK},
+		{"/config_dump", http.StatusOK},
+		{"/stats", http.StatusOK},
+		{"/api/info", http.StatusOK},
+		{"/api/server_info", http.StatusOK},
+		{"/api/config_dump", http.StatusOK},
+		{"/api/config_dump_all", http.StatusOK},
+		{"/api/metrics", http.StatusOK}, // Now uses Prometheus registry directly
+	}
+
+	for _, tc := range testCases {
+		t.Run(tc.path, func(t *testing.T) {
+			req := httptest.NewRequest(http.MethodGet, tc.path, nil)
+			w := httptest.NewRecorder()
+
+			mux.ServeHTTP(w, req)
+
+			assert.Equal(t, tc.expectedStatus, w.Code)
+		})
+	}
+}
diff --git a/internal/admin/console/static_test.go b/internal/admin/console/static_test.go
new file mode 100644
index 000000000..958851f2f
--- /dev/null
+++ b/internal/admin/console/static_test.go
@@ -0,0 +1,64 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package console
+
+import (
+	"net/http"
+	"net/http/httptest"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+
+	egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
+	"github.com/envoyproxy/gateway/internal/envoygateway/config"
+	"github.com/envoyproxy/gateway/internal/logging"
+	"github.com/envoyproxy/gateway/internal/message"
+)
+
+func TestStaticFiles(t *testing.T) {
+	cfg := &config.Server{
+		EnvoyGateway: egv1a1.DefaultEnvoyGateway(),
+		Logger:       logging.DefaultLogger(nil, egv1a1.LogLevelInfo),
+	}
+
+	handler := NewHandler(cfg, (*message.ProviderResources)(nil))
+	mux := http.NewServeMux()
+	handler.RegisterRoutes(mux)
+
+	// Test CSS file
+	t.Run("CSS file", func(t *testing.T) {
+		req := httptest.NewRequest(http.MethodGet, "/static/css/admin.css", nil)
+		w := httptest.NewRecorder()
+
+		mux.ServeHTTP(w, req)
+
+		assert.Equal(t, http.StatusOK, w.Code)
+		assert.Contains(t, w.Header().Get("Content-Type"), "text/css")
+		assert.Contains(t, w.Body.String(), "Envoy Gateway Admin Console Styles")
+	})
+
+	// Test JS file
+	t.Run("JS file", func(t *testing.T) {
+		req := httptest.NewRequest(http.MethodGet, "/static/js/admin.js", nil)
+		w := httptest.NewRecorder()
+
+		mux.ServeHTTP(w, req)
+
+		assert.Equal(t, http.StatusOK, w.Code)
+		assert.Contains(t, w.Header().Get("Content-Type"), "javascript")
+		assert.Contains(t, w.Body.String(), "EnvoyGatewayAdmin")
+	})
+
+	// Test non-existent file
+	t.Run("Non-existent file", func(t *testing.T) {
+		req := httptest.NewRequest(http.MethodGet, "/static/nonexistent.txt", nil)
+		w := httptest.NewRecorder()
+
+		mux.ServeHTTP(w, req)
+
+		assert.Equal(t, http.StatusNotFound, w.Code)
+	})
+}
diff --git a/internal/admin/console/template_test.go b/internal/admin/console/template_test.go
new file mode 100644
index 000000000..46a2ee2ad
--- /dev/null
+++ b/internal/admin/console/template_test.go
@@ -0,0 +1,70 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package console
+
+import (
+	"bytes"
+	"fmt"
+	"html/template"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
+)
+
+func TestTemplateLoading(t *testing.T) {
+	// Test each template using the same method as the handler
+	testCases := []struct {
+		templateName string
+		contentBlock string
+		expectedText string
+	}{
+		{"index.html", "index-content", "Welcome to the Envoy Gateway Admin Console"},
+		{"server_info.html", "server-info-content", "displays detailed information about the Envoy Gateway server"},
+		{"config_dump.html", "config-dump-content", "current configuration state"},
+		{"stats.html", "stats-content", "Envoy Gateway statistics"},
+		{"pprof.html", "pprof-content", "Performance profiling"},
+	}
+
+	for _, tc := range testCases {
+		t.Run(tc.templateName, func(t *testing.T) {
+			// Create a new template instance for each page (same as handler)
+			tmpl := template.New(tc.templateName)
+
+			// Parse base template and specific page template
+			tmpl, err := tmpl.ParseFS(templateFiles, "templates/base.html", "templates/"+tc.templateName)
+			require.NoError(t, err)
+
+			// Create a wrapper template that calls the correct content block
+			wrapperTemplate := fmt.Sprintf(`{{define "content"}}{{template "%s" .}}{{end}}`, tc.contentBlock)
+			tmpl, err = tmpl.Parse(wrapperTemplate)
+			require.NoError(t, err)
+
+			var buf bytes.Buffer
+			data := struct {
+				Title          string
+				MetricsAddress string
+				EnablePprof    bool
+			}{
+				Title:          "Test",
+				MetricsAddress: "localhost:19001",
+				EnablePprof:    true,
+			}
+
+			// Execute the base template (same as handler)
+			err = tmpl.ExecuteTemplate(&buf, "base.html", data)
+			require.NoError(t, err)
+
+			content := buf.String()
+			assert.Contains(t, content, tc.expectedText, "Template %s should contain expected text", tc.templateName)
+
+			// Verify the template produces valid HTML structure
+			assert.Contains(t, content, "<html", "Template should contain HTML structure")
+			assert.Contains(t, content, "</html>", "Template should be properly closed")
+			assert.Contains(t, content, "Envoy Gateway", "Template should contain Envoy Gateway branding")
+		})
+	}
+}
diff --git a/internal/admin/server_test.go b/internal/admin/server_test.go
index 325af7e7c..7bf13e4cc 100644
--- a/internal/admin/server_test.go
+++ b/internal/admin/server_test.go
@@ -25,7 +25,9 @@ func TestInitAdminServer(t *testing.T) {
 	}
 
 	svrConfig.Logger = logging.NewLogger(os.Stdout, egv1a1.DefaultEnvoyGatewayLogging())
-	runner := New(svrConfig)
+	runner := New(&Config{
+		Server: *svrConfig,
+	})
 	err := runner.Start(context.Background())
 	require.NoError(t, err)
 
diff --git a/internal/extension/registry/extension_manager_test.go b/internal/extension/registry/extension_manager_test.go
index c11bb3929..5c328e690 100644
--- a/internal/extension/registry/extension_manager_test.go
+++ b/internal/extension/registry/extension_manager_test.go
@@ -19,7 +19,9 @@ import (
 	"testing"
 
 	clusterv3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3"
-	v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
+	listenerv3 "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3"
+	routev3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
+	tlsv3 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3"
 	"github.com/stretchr/testify/require"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/codes"
@@ -35,6 +37,7 @@ import (
 
 	egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
 	"github.com/envoyproxy/gateway/internal/envoygateway"
+	extTypes "github.com/envoyproxy/gateway/internal/extension/types"
 	"github.com/envoyproxy/gateway/internal/ir"
 	"github.com/envoyproxy/gateway/proto/extension"
 )
@@ -205,6 +208,15 @@ func (s *testServer) PostRouteModify(ctx context.Context, req *extension.PostRou
 	}, nil
 }
 
+func (s *testServer) PostTranslateModify(ctx context.Context, req *extension.PostTranslateModifyRequest) (*extension.PostTranslateModifyResponse, error) {
+	return &extension.PostTranslateModifyResponse{
+		Clusters:  req.Clusters,
+		Secrets:   req.Secrets,
+		Listeners: req.Listeners,
+		Routes:    req.Routes,
+	}, nil
+}
+
 func Test_TLS(t *testing.T) {
 	testDir := "testdata"
 	caFile := testDir + "/ca.pem"
@@ -280,7 +292,7 @@ func Test_TLS(t *testing.T) {
 	require.NotNil(t, client)
 
 	response, err := client.PostRouteModify(context.Background(), &extension.PostRouteModifyRequest{
-		Route: &v3.Route{
+		Route: &routev3.Route{
 			Name: "test-route",
 		},
 	})
@@ -539,7 +551,7 @@ func Test_Integration_RetryPolicy_MaxAttempts(t *testing.T) {
 			require.NotNil(t, hook)
 
 			_, err = hook.PostRouteModifyHook(
-				&v3.Route{
+				&routev3.Route{
 					Name: "test-route",
 				}, nil, nil)
 
@@ -573,15 +585,19 @@ func (s *clusterUpdateTestServer) PostTranslateModify(ctx context.Context, req *
 	clusters := req.GetClusters()
 	if clusters == nil {
 		return &extension.PostTranslateModifyResponse{
-			Clusters: clusters,
-			Secrets:  req.GetSecrets(),
+			Clusters:  clusters,
+			Secrets:   req.GetSecrets(),
+			Listeners: req.GetListeners(),
+			Routes:    req.GetRoutes(),
 		}, errors.New("No clusters found")
 	}
 
 	if len(req.PostTranslateContext.ExtensionResources) == 0 {
 		return &extension.PostTranslateModifyResponse{
-			Clusters: clusters,
-			Secrets:  req.GetSecrets(),
+			Clusters:  clusters,
+			Secrets:   req.GetSecrets(),
+			Listeners: req.GetListeners(),
+			Routes:    req.GetRoutes(),
 		}, errors.New("No policy found")
 	}
 
@@ -589,23 +605,29 @@ func (s *clusterUpdateTestServer) PostTranslateModify(ctx context.Context, req *
 		extensionResource := unstructured.Unstructured{}
 		if err := extensionResource.UnmarshalJSON(extensionResourceBytes.UnstructuredBytes); err != nil {
 			return &extension.PostTranslateModifyResponse{
-				Clusters: clusters,
-				Secrets:  req.GetSecrets(),
+				Clusters:  clusters,
+				Secrets:   req.GetSecrets(),
+				Listeners: req.GetListeners(),
+				Routes:    req.GetRoutes(),
 			}, err
 		}
 
 		targetKind, err := getTargetRefKind(&extensionResource)
 		if err != nil || extensionResource.GetObjectKind().GroupVersionKind().Kind != "ExampleExtPolicy" || targetKind != "Gateway" {
 			return &extension.PostTranslateModifyResponse{
-				Clusters: clusters,
-				Secrets:  req.GetSecrets(),
+				Clusters:  clusters,
+				Secrets:   req.GetSecrets(),
+				Listeners: req.GetListeners(),
+				Routes:    req.GetRoutes(),
 			}, errors.New("No matching policy found")
 		}
 	}
 
 	ret := &extension.PostTranslateModifyResponse{
-		Clusters: clusters,
-		Secrets:  req.GetSecrets(),
+		Clusters:  clusters,
+		Secrets:   req.GetSecrets(),
+		Listeners: req.GetListeners(),
+		Routes:    req.GetRoutes(),
 	}
 
 	return ret, nil
@@ -712,12 +734,46 @@ func Test_Integration_ClusterUpdateExtensionServer(t *testing.T) {
 			require.NoError(t, err)
 			require.NotNil(t, hook)
 
-			_, _, err = hook.PostTranslateModifyHook(
+			clusters, secrets, listeners, routes, err := hook.PostTranslateModifyHook(
 				[]*clusterv3.Cluster{
 					{
 						Name: "test-cluster",
 					},
-				}, nil, tt.extensionPolicies)
+				},
+				[]*tlsv3.Secret{
+					{
+						Name: "test-secret",
+					},
+				},
+				[]*listenerv3.Listener{
+					{
+						Name: "test-listener",
+					},
+				},
+				[]*routev3.RouteConfiguration{
+					{
+						Name: "test-route",
+					},
+				},
+				tt.extensionPolicies)
+
+			// Verify that all resource types are returned when successful
+			if err == nil && !tt.errorExpected {
+				require.NotNil(t, clusters, "clusters should not be nil")
+				require.NotNil(t, secrets, "secrets should not be nil")
+				require.NotNil(t, listeners, "listeners should not be nil")
+				require.NotNil(t, routes, "routes should not be nil")
+
+				// Verify basic functionality - resources should be passed through
+				require.Len(t, clusters, 1, "should have 1 cluster")
+				require.Equal(t, "test-cluster", clusters[0].Name)
+				require.Len(t, secrets, 1, "should have 1 secret")
+				require.Equal(t, "test-secret", secrets[0].Name)
+				require.Len(t, listeners, 1, "should have 1 listener")
+				require.Equal(t, "test-listener", listeners[0].Name)
+				require.Len(t, routes, 1, "should have 1 route")
+				require.Equal(t, "test-route", routes[0].Name)
+			}
 
 			if (err != nil) != tt.errorExpected {
 				t.Errorf("PostRouteModifyHook() error = %v, errorExpected %v", err, tt.errorExpected)
@@ -726,3 +782,165 @@ func Test_Integration_ClusterUpdateExtensionServer(t *testing.T) {
 		})
 	}
 }
+
+// TestPostTranslateModifyHookWithListenersAndRoutes tests the new functionality
+// of PostTranslateModifyHook that supports listeners and routes in addition to clusters and secrets
+func TestPostTranslateModifyHookWithListenersAndRoutes(t *testing.T) {
+	extManager := egv1a1.ExtensionManager{
+		Hooks: &egv1a1.ExtensionHooks{
+			XDSTranslator: &egv1a1.XDSTranslatorHooks{
+				Post: []egv1a1.XDSTranslatorHook{
+					egv1a1.XDSTranslation,
+				},
+			},
+		},
+		Service: &egv1a1.ExtensionService{
+			BackendEndpoint: egv1a1.BackendEndpoint{
+				FQDN: &egv1a1.FQDNEndpoint{
+					Hostname: "foo.bar",
+					Port:     44344,
+				},
+			},
+		},
+	}
+
+	mgr, _, err := NewInMemoryManager(extManager, &testServer{})
+	require.NoError(t, err)
+
+	hook, err := mgr.GetPostXDSHookClient(egv1a1.XDSTranslation)
+	require.NoError(t, err)
+	require.NotNil(t, hook)
+
+	// Test with all resource types
+	inputClusters := []*clusterv3.Cluster{
+		{Name: "cluster-1"},
+		{Name: "cluster-2"},
+	}
+	inputSecrets := []*tlsv3.Secret{
+		{Name: "secret-1"},
+		{Name: "secret-2"},
+	}
+	inputListeners := []*listenerv3.Listener{
+		{Name: "listener-1"},
+		{Name: "listener-2"},
+	}
+	inputRoutes := []*routev3.RouteConfiguration{
+		{Name: "route-1"},
+		{Name: "route-2"},
+	}
+
+	clusters, secrets, listeners, routes, err := hook.PostTranslateModifyHook(
+		inputClusters, inputSecrets, inputListeners, inputRoutes, nil)
+
+	require.NoError(t, err)
+
+	// Verify all resource types are returned
+	require.NotNil(t, clusters)
+	require.NotNil(t, secrets)
+	require.NotNil(t, listeners)
+	require.NotNil(t, routes)
+
+	// Verify the resources are passed through correctly
+	require.Len(t, clusters, 2)
+	require.Equal(t, "cluster-1", clusters[0].Name)
+	require.Equal(t, "cluster-2", clusters[1].Name)
+
+	require.Len(t, secrets, 2)
+	require.Equal(t, "secret-1", secrets[0].Name)
+	require.Equal(t, "secret-2", secrets[1].Name)
+
+	require.Len(t, listeners, 2)
+	require.Equal(t, "listener-1", listeners[0].Name)
+	require.Equal(t, "listener-2", listeners[1].Name)
+
+	require.Len(t, routes, 2)
+	require.Equal(t, "route-1", routes[0].Name)
+	require.Equal(t, "route-2", routes[1].Name)
+}
+
+// TestGetTranslationHookConfig tests the configuration option
+func TestGetTranslationHookConfig(t *testing.T) {
+	tests := []struct {
+		name     string
+		config   *egv1a1.ExtensionManager
+		expected *egv1a1.TranslationConfig
+	}{
+		{
+			name:     "default behavior when config is nil",
+			config:   nil,
+			expected: nil,
+		},
+		{
+			name: "default behavior when hooks is nil",
+			config: &egv1a1.ExtensionManager{
+				Hooks: nil,
+			},
+			expected: nil,
+		},
+		{
+			name: "default behavior when field is nil",
+			config: &egv1a1.ExtensionManager{
+				Hooks: &egv1a1.ExtensionHooks{
+					XDSTranslator: &egv1a1.XDSTranslatorHooks{
+						Translation: &egv1a1.TranslationConfig{},
+					},
+				},
+			},
+			expected: &egv1a1.TranslationConfig{},
+		},
+		{
+			name: "explicitly configured with listeners enabled",
+			config: &egv1a1.ExtensionManager{
+				Hooks: &egv1a1.ExtensionHooks{
+					XDSTranslator: &egv1a1.XDSTranslatorHooks{
+						Translation: &egv1a1.TranslationConfig{
+							Listener: &egv1a1.ListenerTranslationConfig{
+								IncludeAll: ptr.To(true),
+							},
+						},
+					},
+				},
+			},
+			expected: &egv1a1.TranslationConfig{
+				Listener: &egv1a1.ListenerTranslationConfig{
+					IncludeAll: ptr.To(true),
+				},
+			},
+		},
+		{
+			name: "explicitly configured with routes enabled",
+			config: &egv1a1.ExtensionManager{
+				Hooks: &egv1a1.ExtensionHooks{
+					XDSTranslator: &egv1a1.XDSTranslatorHooks{
+						Translation: &egv1a1.TranslationConfig{
+							Route: &egv1a1.RouteTranslationConfig{
+								IncludeAll: ptr.To(true),
+							},
+						},
+					},
+				},
+			},
+			expected: &egv1a1.TranslationConfig{
+				Route: &egv1a1.RouteTranslationConfig{
+					IncludeAll: ptr.To(true),
+				},
+			},
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			var mgr extTypes.Manager
+			var err error
+
+			if tt.config == nil {
+				mgr, _, err = NewInMemoryManager(egv1a1.ExtensionManager{}, &testServer{})
+			} else {
+				mgr, _, err = NewInMemoryManager(*tt.config, &testServer{})
+			}
+
+			require.NoError(t, err)
+			require.Equal(t, tt.expected, mgr.GetTranslationHookConfig())
+		})
+	}
+}
diff --git a/internal/gatewayapi/testdata/backendtrafficpolicy-status-conditions.out.yaml b/internal/gatewayapi/testdata/backendtrafficpolicy-status-conditions.out.yaml
index 839a7ce90..e4f4fed69 100644
--- a/internal/gatewayapi/testdata/backendtrafficpolicy-status-conditions.out.yaml
+++ b/internal/gatewayapi/testdata/backendtrafficpolicy-status-conditions.out.yaml
@@ -398,12 +398,12 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-1
-    namespace: envoy-gateway
+    name: not-same-namespace-httproute
+    namespace: another-namespace
   spec:
     parentRefs:
-    - name: gateway-1
-      namespace: envoy-gateway
+    - name: not-same-namespace-gateway
+      namespace: another-namespace
     rules:
     - backendRefs:
       - name: service-1
@@ -415,9 +415,9 @@ httpRoutes:
     parents:
     - conditions:
       - lastTransitionTime: null
-        message: Route is accepted
-        reason: Accepted
-        status: "True"
+        message: No listeners included by this parent ref allowed this attachment.
+        reason: NotAllowedByListeners
+        status: "False"
         type: Accepted
       - lastTransitionTime: null
         message: Resolved all the Object references for the Route
@@ -426,18 +426,18 @@ httpRoutes:
         type: ResolvedRefs
       controllerName: gateway.envoyproxy.io/gatewayclass-controller
       parentRef:
-        name: gateway-1
-        namespace: envoy-gateway
+        name: not-same-namespace-gateway
+        namespace: another-namespace
 - apiVersion: gateway.networking.k8s.io/v1beta1
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: not-same-namespace-httproute
-    namespace: another-namespace
+    name: httproute-1
+    namespace: envoy-gateway
   spec:
     parentRefs:
-    - name: not-same-namespace-gateway
-      namespace: another-namespace
+    - name: gateway-1
+      namespace: envoy-gateway
     rules:
     - backendRefs:
       - name: service-1
@@ -449,9 +449,9 @@ httpRoutes:
     parents:
     - conditions:
       - lastTransitionTime: null
-        message: No listeners included by this parent ref allowed this attachment.
-        reason: NotAllowedByListeners
-        status: "False"
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
         type: Accepted
       - lastTransitionTime: null
         message: Resolved all the Object references for the Route
@@ -460,8 +460,8 @@ httpRoutes:
         type: ResolvedRefs
       controllerName: gateway.envoyproxy.io/gatewayclass-controller
       parentRef:
-        name: not-same-namespace-gateway
-        namespace: another-namespace
+        name: gateway-1
+        namespace: envoy-gateway
 infraIR:
   another-namespace/not-same-namespace-gateway:
     proxy:
diff --git a/internal/gatewayapi/testdata/backendtrafficpolicy-with-healthcheck.in.yaml b/internal/gatewayapi/testdata/backendtrafficpolicy-with-healthcheck.in.yaml
index e2c0a82d9..75f9dbd40 100644
--- a/internal/gatewayapi/testdata/backendtrafficpolicy-with-healthcheck.in.yaml
+++ b/internal/gatewayapi/testdata/backendtrafficpolicy-with-healthcheck.in.yaml
@@ -147,6 +147,25 @@ httpRoutes:
       backendRefs:
       - name: service-2
         port: 8080
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: default
+    name: httproute-5
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-2
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          value: "/v5"
+      backendRefs:
+      - name: service-4
+        port: 8080
 backendTrafficPolicies:
 - apiVersion: gateway.envoyproxy.io/v1alpha1
   kind: BackendTrafficPolicy
@@ -304,6 +323,25 @@ backendTrafficPolicies:
         consecutiveGatewayErrors: 0
         consecutiveLocalOriginFailures: 5
         splitExternalLocalOriginErrors: false
+- apiVersion: gateway.envoyproxy.io/v1alpha1
+  kind: BackendTrafficPolicy
+  metadata:
+    namespace: default
+    name: policy-for-route-5
+  spec:
+    targetRef:
+      group: gateway.networking.k8s.io
+      kind: HTTPRoute
+      name: httproute-5
+    healthCheck:
+      active:
+        timeout: "10s"
+        interval: "30s"
+        initialJitter: "15s"
+        unhealthyThreshold: 2
+        healthyThreshold: 2
+        type: TCP
+        tcp: {}
 - apiVersion: gateway.envoyproxy.io/v1alpha1
   kind: BackendTrafficPolicy
   metadata:
@@ -340,4 +378,3 @@ backendTrafficPolicies:
         type: GRPC
         grpc:
           service: foo-service
-
diff --git a/internal/gatewayapi/testdata/backendtrafficpolicy-with-healthcheck.out.yaml b/internal/gatewayapi/testdata/backendtrafficpolicy-with-healthcheck.out.yaml
index e7433b7da..08c012243 100644
--- a/internal/gatewayapi/testdata/backendtrafficpolicy-with-healthcheck.out.yaml
+++ b/internal/gatewayapi/testdata/backendtrafficpolicy-with-healthcheck.out.yaml
@@ -185,6 +185,41 @@ backendTrafficPolicies:
         status: "True"
         type: Accepted
       controllerName: gateway.envoyproxy.io/gatewayclass-controller
+- apiVersion: gateway.envoyproxy.io/v1alpha1
+  kind: BackendTrafficPolicy
+  metadata:
+    creationTimestamp: null
+    name: policy-for-route-5
+    namespace: default
+  spec:
+    healthCheck:
+      active:
+        healthyThreshold: 2
+        initialJitter: 15s
+        interval: 30s
+        tcp: {}
+        timeout: 10s
+        type: TCP
+        unhealthyThreshold: 2
+    targetRef:
+      group: gateway.networking.k8s.io
+      kind: HTTPRoute
+      name: httproute-5
+  status:
+    ancestors:
+    - ancestorRef:
+        group: gateway.networking.k8s.io
+        kind: Gateway
+        name: gateway-2
+        namespace: envoy-gateway
+        sectionName: http
+      conditions:
+      - lastTransitionTime: null
+        message: Policy has been accepted.
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
 - apiVersion: gateway.envoyproxy.io/v1alpha1
   kind: BackendTrafficPolicy
   metadata:
@@ -366,7 +401,7 @@ gateways:
       protocol: HTTP
   status:
     listeners:
-    - attachedRoutes: 4
+    - attachedRoutes: 5
       conditions:
       - lastTransitionTime: null
         message: Sending translated listener configuration to the data plane
@@ -642,6 +677,44 @@ httpRoutes:
         name: gateway-2
         namespace: envoy-gateway
         sectionName: http
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: null
+    name: httproute-5
+    namespace: default
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-2
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: service-4
+        port: 8080
+      matches:
+      - path:
+          value: /v5
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-2
+        namespace: envoy-gateway
+        sectionName: http
 infraIR:
   envoy-gateway/gateway-1:
     proxy:
@@ -985,6 +1058,44 @@ xdsIR:
               interval: 5s
               timeout: 1s
               unhealthyThreshold: 3
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-5
+            namespace: default
+          name: httproute/default/httproute-5/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-4
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-5/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-5
+          namespace: default
+        name: httproute/default/httproute-5/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /v5
+        traffic:
+          healthCheck:
+            active:
+              healthyThreshold: 2
+              initialJitter: 15s
+              interval: 30s
+              tcp: {}
+              timeout: 10s
+              unhealthyThreshold: 2
       - destination:
           metadata:
             kind: HTTPRoute
diff --git a/internal/gatewayapi/testdata/backendtrafficpolicy-with-retries.in.yaml b/internal/gatewayapi/testdata/backendtrafficpolicy-with-retries.in.yaml
index 70a004ae6..5ecc975e1 100644
--- a/internal/gatewayapi/testdata/backendtrafficpolicy-with-retries.in.yaml
+++ b/internal/gatewayapi/testdata/backendtrafficpolicy-with-retries.in.yaml
@@ -115,6 +115,7 @@ backendTrafficPolicies:
       retryOn:
         triggers:
         - cancelled
+        - reset-before-request
       perRetry:
         timeout: 250ms
         backoff:
diff --git a/internal/gatewayapi/testdata/backendtrafficpolicy-with-retries.out.yaml b/internal/gatewayapi/testdata/backendtrafficpolicy-with-retries.out.yaml
index 49f939ba5..a3f97660f 100644
--- a/internal/gatewayapi/testdata/backendtrafficpolicy-with-retries.out.yaml
+++ b/internal/gatewayapi/testdata/backendtrafficpolicy-with-retries.out.yaml
@@ -118,6 +118,7 @@ backendTrafficPolicies:
       retryOn:
         triggers:
         - cancelled
+        - reset-before-request
     targetRef:
       group: gateway.networking.k8s.io
       kind: Gateway
@@ -461,6 +462,7 @@ xdsIR:
             retryOn:
               triggers:
               - cancelled
+              - reset-before-request
     readyListener:
       address: 0.0.0.0
       ipFamily: IPv4
diff --git a/internal/gatewayapi/testdata/envoyextensionpolicy-status-conditions.out.yaml b/internal/gatewayapi/testdata/envoyextensionpolicy-status-conditions.out.yaml
index c76c137b0..796677a80 100644
--- a/internal/gatewayapi/testdata/envoyextensionpolicy-status-conditions.out.yaml
+++ b/internal/gatewayapi/testdata/envoyextensionpolicy-status-conditions.out.yaml
@@ -398,12 +398,12 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-1
-    namespace: envoy-gateway
+    name: not-same-namespace-httproute
+    namespace: another-namespace
   spec:
     parentRefs:
-    - name: gateway-1
-      namespace: envoy-gateway
+    - name: not-same-namespace-gateway
+      namespace: another-namespace
     rules:
     - backendRefs:
       - name: service-1
@@ -415,9 +415,9 @@ httpRoutes:
     parents:
     - conditions:
       - lastTransitionTime: null
-        message: Route is accepted
-        reason: Accepted
-        status: "True"
+        message: No listeners included by this parent ref allowed this attachment.
+        reason: NotAllowedByListeners
+        status: "False"
         type: Accepted
       - lastTransitionTime: null
         message: Resolved all the Object references for the Route
@@ -426,18 +426,18 @@ httpRoutes:
         type: ResolvedRefs
       controllerName: gateway.envoyproxy.io/gatewayclass-controller
       parentRef:
-        name: gateway-1
-        namespace: envoy-gateway
+        name: not-same-namespace-gateway
+        namespace: another-namespace
 - apiVersion: gateway.networking.k8s.io/v1beta1
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: not-same-namespace-httproute
-    namespace: another-namespace
+    name: httproute-1
+    namespace: envoy-gateway
   spec:
     parentRefs:
-    - name: not-same-namespace-gateway
-      namespace: another-namespace
+    - name: gateway-1
+      namespace: envoy-gateway
     rules:
     - backendRefs:
       - name: service-1
@@ -449,9 +449,9 @@ httpRoutes:
     parents:
     - conditions:
       - lastTransitionTime: null
-        message: No listeners included by this parent ref allowed this attachment.
-        reason: NotAllowedByListeners
-        status: "False"
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
         type: Accepted
       - lastTransitionTime: null
         message: Resolved all the Object references for the Route
@@ -460,8 +460,8 @@ httpRoutes:
         type: ResolvedRefs
       controllerName: gateway.envoyproxy.io/gatewayclass-controller
       parentRef:
-        name: not-same-namespace-gateway
-        namespace: another-namespace
+        name: gateway-1
+        namespace: envoy-gateway
 infraIR:
   another-namespace/not-same-namespace-gateway:
     proxy:
diff --git a/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-and-core-backendrefs.out.yaml b/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-and-core-backendrefs.out.yaml
index 6d76ad7e0..541452911 100644
--- a/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-and-core-backendrefs.out.yaml
+++ b/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-and-core-backendrefs.out.yaml
@@ -98,7 +98,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-static
+    name: httproute-fqdn
     namespace: default
   spec:
     parentRefs:
@@ -109,16 +109,16 @@ httpRoutes:
     - backendRefs:
       - group: gateway.envoyproxy.io
         kind: Backend
-        name: backend-ip
-      - name: service-ip
+        name: backend-fqdn
+      - name: service-fqdn
         port: 8080
       - group: multicluster.x-k8s.io
         kind: ServiceImport
-        name: service-import-ip
+        name: service-import-fqdn
         port: 8081
       matches:
       - path:
-          value: /1
+          value: /2
   status:
     parents:
     - conditions:
@@ -141,7 +141,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-fqdn
+    name: httproute-static
     namespace: default
   spec:
     parentRefs:
@@ -152,16 +152,16 @@ httpRoutes:
     - backendRefs:
       - group: gateway.envoyproxy.io
         kind: Backend
-        name: backend-fqdn
-      - name: service-fqdn
+        name: backend-ip
+      - name: service-ip
         port: 8080
       - group: multicluster.x-k8s.io
         kind: ServiceImport
-        name: service-import-fqdn
+        name: service-import-ip
         port: 8081
       matches:
       - path:
-          value: /2
+          value: /1
   status:
     parents:
     - conditions:
@@ -224,109 +224,109 @@ xdsIR:
       - destination:
           metadata:
             kind: HTTPRoute
-            name: httproute-static
+            name: httproute-fqdn
             namespace: default
-          name: httproute/default/httproute-static/rule/0
+          name: httproute/default/httproute-fqdn/rule/0
           settings:
-          - addressType: IP
+          - addressType: FQDN
             endpoints:
-            - host: 1.1.1.1
-              port: 3001
+            - host: primary.foo.com
+              port: 3000
             metadata:
               kind: Backend
-              name: backend-ip
+              name: backend-fqdn
               namespace: default
-            name: httproute/default/httproute-static/rule/0/backend/0
+            name: httproute/default/httproute-fqdn/rule/0/backend/0
             protocol: HTTP
             weight: 1
-          - addressType: IP
+          - addressType: FQDN
             endpoints:
-            - host: 4.3.2.1
+            - host: bar.foo
               port: 8080
             metadata:
               kind: Service
-              name: service-ip
+              name: service-fqdn
               namespace: default
               sectionName: "8080"
-            name: httproute/default/httproute-static/rule/0/backend/1
+            name: httproute/default/httproute-fqdn/rule/0/backend/1
             protocol: HTTP
             weight: 1
-          - addressType: IP
+          - addressType: FQDN
             endpoints:
-            - host: 1.2.3.4
-              port: 8081
+            - host: foo.bar
+              port: 8080
             metadata:
               kind: ServiceImport
-              name: service-import-ip
+              name: service-import-fqdn
               namespace: default
               sectionName: "8081"
-            name: httproute/default/httproute-static/rule/0/backend/2
+            name: httproute/default/httproute-fqdn/rule/0/backend/2
             protocol: HTTP
             weight: 1
         hostname: '*'
         isHTTP2: false
         metadata:
           kind: HTTPRoute
-          name: httproute-static
+          name: httproute-fqdn
           namespace: default
-        name: httproute/default/httproute-static/rule/0/match/0/*
+        name: httproute/default/httproute-fqdn/rule/0/match/0/*
         pathMatch:
           distinct: false
           name: ""
-          prefix: /1
+          prefix: /2
       - destination:
           metadata:
             kind: HTTPRoute
-            name: httproute-fqdn
+            name: httproute-static
             namespace: default
-          name: httproute/default/httproute-fqdn/rule/0
+          name: httproute/default/httproute-static/rule/0
           settings:
-          - addressType: FQDN
+          - addressType: IP
             endpoints:
-            - host: primary.foo.com
-              port: 3000
+            - host: 1.1.1.1
+              port: 3001
             metadata:
               kind: Backend
-              name: backend-fqdn
+              name: backend-ip
               namespace: default
-            name: httproute/default/httproute-fqdn/rule/0/backend/0
+            name: httproute/default/httproute-static/rule/0/backend/0
             protocol: HTTP
             weight: 1
-          - addressType: FQDN
+          - addressType: IP
             endpoints:
-            - host: bar.foo
+            - host: 4.3.2.1
               port: 8080
             metadata:
               kind: Service
-              name: service-fqdn
+              name: service-ip
               namespace: default
               sectionName: "8080"
-            name: httproute/default/httproute-fqdn/rule/0/backend/1
+            name: httproute/default/httproute-static/rule/0/backend/1
             protocol: HTTP
             weight: 1
-          - addressType: FQDN
+          - addressType: IP
             endpoints:
-            - host: foo.bar
-              port: 8080
+            - host: 1.2.3.4
+              port: 8081
             metadata:
               kind: ServiceImport
-              name: service-import-fqdn
+              name: service-import-ip
               namespace: default
               sectionName: "8081"
-            name: httproute/default/httproute-fqdn/rule/0/backend/2
+            name: httproute/default/httproute-static/rule/0/backend/2
             protocol: HTTP
             weight: 1
         hostname: '*'
         isHTTP2: false
         metadata:
           kind: HTTPRoute
-          name: httproute-fqdn
+          name: httproute-static
           namespace: default
-        name: httproute/default/httproute-fqdn/rule/0/match/0/*
+        name: httproute/default/httproute-static/rule/0/match/0/*
         pathMatch:
           distinct: false
           name: ""
-          prefix: /2
+          prefix: /1
     readyListener:
       address: 0.0.0.0
       ipFamily: IPv4
diff --git a/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-backendref-mixed-address-type.out.yaml b/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-backendref-mixed-address-type.out.yaml
index 27901e7b9..2516e49c3 100644
--- a/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-backendref-mixed-address-type.out.yaml
+++ b/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-backendref-mixed-address-type.out.yaml
@@ -165,7 +165,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-3
+    name: httproute-2
     namespace: default
   spec:
     parentRefs:
@@ -176,10 +176,10 @@ httpRoutes:
     - backendRefs:
       - group: gateway.envoyproxy.io
         kind: Backend
-        name: backend-mixed-ip-fqdn
+        name: backend-mixed-uds-fqdn
       matches:
       - path:
-          value: /3
+          value: /2
   status:
     parents:
     - conditions:
@@ -203,7 +203,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-2
+    name: httproute-3
     namespace: default
   spec:
     parentRefs:
@@ -214,10 +214,10 @@ httpRoutes:
     - backendRefs:
       - group: gateway.envoyproxy.io
         kind: Backend
-        name: backend-mixed-uds-fqdn
+        name: backend-mixed-ip-fqdn
       matches:
       - path:
-          value: /2
+          value: /3
   status:
     parents:
     - conditions:
@@ -297,26 +297,26 @@ xdsIR:
         isHTTP2: false
         metadata:
           kind: HTTPRoute
-          name: httproute-3
+          name: httproute-2
           namespace: default
-        name: httproute/default/httproute-3/rule/0/match/0/*
+        name: httproute/default/httproute-2/rule/0/match/0/*
         pathMatch:
           distinct: false
           name: ""
-          prefix: /3
+          prefix: /2
       - directResponse:
           statusCode: 500
         hostname: '*'
         isHTTP2: false
         metadata:
           kind: HTTPRoute
-          name: httproute-2
+          name: httproute-3
           namespace: default
-        name: httproute/default/httproute-2/rule/0/match/0/*
+        name: httproute/default/httproute-3/rule/0/match/0/*
         pathMatch:
           distinct: false
           name: ""
-          prefix: /2
+          prefix: /3
     readyListener:
       address: 0.0.0.0
       ipFamily: IPv4
diff --git a/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-backendref.out.yaml b/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-backendref.out.yaml
index 3eb53ee7f..4731f586b 100644
--- a/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-backendref.out.yaml
+++ b/internal/gatewayapi/testdata/httproute-attaching-to-listener-with-backend-backendref.out.yaml
@@ -174,7 +174,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-3
+    name: httproute-2
     namespace: default
   spec:
     parentRefs:
@@ -185,10 +185,10 @@ httpRoutes:
     - backendRefs:
       - group: gateway.envoyproxy.io
         kind: Backend
-        name: backend-fqdn
+        name: backend-ip
       matches:
       - path:
-          value: /3
+          value: /2
   status:
     parents:
     - conditions:
@@ -211,7 +211,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-2
+    name: httproute-3
     namespace: default
   spec:
     parentRefs:
@@ -222,10 +222,10 @@ httpRoutes:
     - backendRefs:
       - group: gateway.envoyproxy.io
         kind: Backend
-        name: backend-ip
+        name: backend-fqdn
       matches:
       - path:
-          value: /2
+          value: /3
   status:
     parents:
     - conditions:
@@ -377,61 +377,61 @@ xdsIR:
       - destination:
           metadata:
             kind: HTTPRoute
-            name: httproute-3
+            name: httproute-2
             namespace: default
-          name: httproute/default/httproute-3/rule/0
+          name: httproute/default/httproute-2/rule/0
           settings:
-          - addressType: FQDN
+          - addressType: IP
             endpoints:
-            - host: primary.foo.com
-              port: 3000
+            - host: 1.1.1.1
+              port: 3001
             metadata:
               kind: Backend
-              name: backend-fqdn
+              name: backend-ip
               namespace: default
-            name: httproute/default/httproute-3/rule/0/backend/0
+            name: httproute/default/httproute-2/rule/0/backend/0
             protocol: HTTP
             weight: 1
         hostname: '*'
         isHTTP2: false
         metadata:
           kind: HTTPRoute
-          name: httproute-3
+          name: httproute-2
           namespace: default
-        name: httproute/default/httproute-3/rule/0/match/0/*
+        name: httproute/default/httproute-2/rule/0/match/0/*
         pathMatch:
           distinct: false
           name: ""
-          prefix: /3
+          prefix: /2
       - destination:
           metadata:
             kind: HTTPRoute
-            name: httproute-2
+            name: httproute-3
             namespace: default
-          name: httproute/default/httproute-2/rule/0
+          name: httproute/default/httproute-3/rule/0
           settings:
-          - addressType: IP
+          - addressType: FQDN
             endpoints:
-            - host: 1.1.1.1
-              port: 3001
+            - host: primary.foo.com
+              port: 3000
             metadata:
               kind: Backend
-              name: backend-ip
+              name: backend-fqdn
               namespace: default
-            name: httproute/default/httproute-2/rule/0/backend/0
+            name: httproute/default/httproute-3/rule/0/backend/0
             protocol: HTTP
             weight: 1
         hostname: '*'
         isHTTP2: false
         metadata:
           kind: HTTPRoute
-          name: httproute-2
+          name: httproute-3
           namespace: default
-        name: httproute/default/httproute-2/rule/0/match/0/*
+        name: httproute/default/httproute-3/rule/0/match/0/*
         pathMatch:
           distinct: false
           name: ""
-          prefix: /2
+          prefix: /3
       - directResponse:
           statusCode: 500
         hostname: '*'
diff --git a/internal/gatewayapi/testdata/httproute-default-order-by-creation-date-and-route-name.in.yaml b/internal/gatewayapi/testdata/httproute-default-order-by-creation-date-and-route-name.in.yaml
new file mode 100644
index 000000000..f1b9d09ea
--- /dev/null
+++ b/internal/gatewayapi/testdata/httproute-default-order-by-creation-date-and-route-name.in.yaml
@@ -0,0 +1,243 @@
+gateways:
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: Gateway
+  metadata:
+    namespace: envoy-gateway
+    name: gateway-1
+  spec:
+    gatewayClassName: envoy-gateway-class
+    listeners:
+    - name: http
+      protocol: HTTP
+      port: 80
+      hostname: '*.envoyproxy.io'
+      allowedRoutes:
+        namespaces:
+          from: All
+httpRoutes:
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: default
+    name: httproute-default
+    creationTimestamp: 2025-07-12T20:47:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/'
+      backendRefs:
+      - name: service-1
+        port: 8080
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: default
+    name: httproute-3
+    creationTimestamp: 2025-07-12T20:47:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/route3'
+      backendRefs:
+      - name: service-1
+        port: 8080
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: default
+    name: httproute-1
+    creationTimestamp: 2025-07-12T20:47:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/route1'
+      backendRefs:
+      - name: service-1
+        port: 8080
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/foobar'
+      backendRefs:
+      - name: service-2
+        port: 8080
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/bar'
+      backendRefs:
+      - name: service-3
+        port: 8080
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: default
+    name: httproute-5
+    creationTimestamp: 2025-07-10T20:43:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/route5'
+      backendRefs:
+      - name: service-1
+        port: 8080
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/123'
+      backendRefs:
+      - name: service-2
+        port: 8080
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: test-ns
+    name: httproute-2
+    creationTimestamp: 2025-07-12T20:47:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/foo'
+      backendRefs:
+      - name: test-service
+        port: 8080
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/route2'
+      backendRefs:
+      - name: test-service
+        port: 8080
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: test-ns2
+    name: httproute-4
+    creationTimestamp: 2025-07-12T20:47:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/456'
+      backendRefs:
+      - name: test-service
+        port: 8080
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/route4'
+      backendRefs:
+      - name: test-service
+        port: 8080
+namespaces:
+- apiVersion: v1
+  kind: Namespace
+  metadata:
+    name: test-ns
+- apiVersion: v1
+  kind: Namespace
+  metadata:
+    name: test-ns2
+services:
+- apiVersion: v1
+  kind: Service
+  metadata:
+    namespace: test-ns2
+    name: test-service
+  spec:
+    ports:
+    - port: 8080
+      name: http
+      protocol: TCP
+- apiVersion: v1
+  kind: Service
+  metadata:
+    namespace: test-ns
+    name: test-service
+  spec:
+    ports:
+    - port: 8080
+      name: http
+      protocol: TCP
+endpointSlices:
+- apiVersion: discovery.k8s.io/v1
+  kind: EndpointSlice
+  metadata:
+    name: endpointslice-test-service
+    namespace: test-ns
+    labels:
+      kubernetes.io/service-name: test-service
+  addressType: IPv4
+  ports:
+  - name: http
+    protocol: TCP
+    port: 8080
+  endpoints:
+  - addresses:
+    - 8.8.8.8
+    conditions:
+      ready: true
+- apiVersion: discovery.k8s.io/v1
+  kind: EndpointSlice
+  metadata:
+    name: endpointslice-test-service
+    namespace: test-ns2
+    labels:
+      kubernetes.io/service-name: test-service
+  addressType: IPv4
+  ports:
+  - name: http
+    protocol: TCP
+    port: 8080
+  endpoints:
+  - addresses:
+    - 8.8.8.8
+    conditions:
+      ready: true
diff --git a/internal/gatewayapi/testdata/httproute-default-order-by-creation-date-and-route-name.out.yaml b/internal/gatewayapi/testdata/httproute-default-order-by-creation-date-and-route-name.out.yaml
new file mode 100644
index 000000000..b6b5eb715
--- /dev/null
+++ b/internal/gatewayapi/testdata/httproute-default-order-by-creation-date-and-route-name.out.yaml
@@ -0,0 +1,681 @@
+gateways:
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: Gateway
+  metadata:
+    creationTimestamp: null
+    name: gateway-1
+    namespace: envoy-gateway
+  spec:
+    gatewayClassName: envoy-gateway-class
+    listeners:
+    - allowedRoutes:
+        namespaces:
+          from: All
+      hostname: '*.envoyproxy.io'
+      name: http
+      port: 80
+      protocol: HTTP
+  status:
+    listeners:
+    - attachedRoutes: 6
+      conditions:
+      - lastTransitionTime: null
+        message: Sending translated listener configuration to the data plane
+        reason: Programmed
+        status: "True"
+        type: Programmed
+      - lastTransitionTime: null
+        message: Listener has been successfully translated
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Listener references have been resolved
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      name: http
+      supportedKinds:
+      - group: gateway.networking.k8s.io
+        kind: HTTPRoute
+      - group: gateway.networking.k8s.io
+        kind: GRPCRoute
+httpRoutes:
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-07-10T20:43:53Z"
+    name: httproute-5
+    namespace: default
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: service-1
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /route5
+    - backendRefs:
+      - name: service-2
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /123
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-07-12T20:47:53Z"
+    name: httproute-1
+    namespace: default
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: service-1
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /route1
+    - backendRefs:
+      - name: service-2
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /foobar
+    - backendRefs:
+      - name: service-3
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /bar
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-07-12T20:47:53Z"
+    name: httproute-3
+    namespace: default
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: service-1
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /route3
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-07-12T20:47:53Z"
+    name: httproute-default
+    namespace: default
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: service-1
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-07-12T20:47:53Z"
+    name: httproute-2
+    namespace: test-ns
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: test-service
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /foo
+    - backendRefs:
+      - name: test-service
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /route2
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-07-12T20:47:53Z"
+    name: httproute-4
+    namespace: test-ns2
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: test-service
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /456
+    - backendRefs:
+      - name: test-service
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /route4
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+infraIR:
+  envoy-gateway/gateway-1:
+    proxy:
+      listeners:
+      - address: null
+        name: envoy-gateway/gateway-1/http
+        ports:
+        - containerPort: 10080
+          name: http-80
+          protocol: HTTP
+          servicePort: 80
+      metadata:
+        labels:
+          gateway.envoyproxy.io/owning-gateway-name: gateway-1
+          gateway.envoyproxy.io/owning-gateway-namespace: envoy-gateway
+        ownerReference:
+          kind: GatewayClass
+          name: envoy-gateway-class
+      name: envoy-gateway/gateway-1
+      namespace: envoy-gateway-system
+xdsIR:
+  envoy-gateway/gateway-1:
+    accessLog:
+      json:
+      - path: /dev/stdout
+    http:
+    - address: 0.0.0.0
+      hostnames:
+      - '*.envoyproxy.io'
+      isHTTP2: false
+      metadata:
+        kind: Gateway
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+      name: envoy-gateway/gateway-1/http
+      path:
+        escapedSlashesAction: UnescapeAndRedirect
+        mergeSlashes: true
+      port: 10080
+      routes:
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-5
+            namespace: default
+          name: httproute/default/httproute-5/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-1
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-5/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-5
+          namespace: default
+        name: httproute/default/httproute-5/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /route5
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-1
+            namespace: default
+          name: httproute/default/httproute-1/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-1
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-1/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-1
+          namespace: default
+        name: httproute/default/httproute-1/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /route1
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-1
+            namespace: default
+          name: httproute/default/httproute-1/rule/1
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-2
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-1/rule/1/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-1
+          namespace: default
+        name: httproute/default/httproute-1/rule/1/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /foobar
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-3
+            namespace: default
+          name: httproute/default/httproute-3/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-1
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-3/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-3
+          namespace: default
+        name: httproute/default/httproute-3/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /route3
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-2
+            namespace: test-ns
+          name: httproute/test-ns/httproute-2/rule/1
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 8.8.8.8
+              port: 8080
+            metadata:
+              kind: Service
+              name: test-service
+              namespace: test-ns
+              sectionName: "8080"
+            name: httproute/test-ns/httproute-2/rule/1/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-2
+          namespace: test-ns
+        name: httproute/test-ns/httproute-2/rule/1/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /route2
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-4
+            namespace: test-ns2
+          name: httproute/test-ns2/httproute-4/rule/1
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 8.8.8.8
+              port: 8080
+            metadata:
+              kind: Service
+              name: test-service
+              namespace: test-ns2
+              sectionName: "8080"
+            name: httproute/test-ns2/httproute-4/rule/1/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-4
+          namespace: test-ns2
+        name: httproute/test-ns2/httproute-4/rule/1/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /route4
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-5
+            namespace: default
+          name: httproute/default/httproute-5/rule/1
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-2
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-5/rule/1/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-5
+          namespace: default
+        name: httproute/default/httproute-5/rule/1/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /123
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-1
+            namespace: default
+          name: httproute/default/httproute-1/rule/2
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-3
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-1/rule/2/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-1
+          namespace: default
+        name: httproute/default/httproute-1/rule/2/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /bar
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-2
+            namespace: test-ns
+          name: httproute/test-ns/httproute-2/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 8.8.8.8
+              port: 8080
+            metadata:
+              kind: Service
+              name: test-service
+              namespace: test-ns
+              sectionName: "8080"
+            name: httproute/test-ns/httproute-2/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-2
+          namespace: test-ns
+        name: httproute/test-ns/httproute-2/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /foo
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-4
+            namespace: test-ns2
+          name: httproute/test-ns2/httproute-4/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 8.8.8.8
+              port: 8080
+            metadata:
+              kind: Service
+              name: test-service
+              namespace: test-ns2
+              sectionName: "8080"
+            name: httproute/test-ns2/httproute-4/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-4
+          namespace: test-ns2
+        name: httproute/test-ns2/httproute-4/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /456
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-default
+            namespace: default
+          name: httproute/default/httproute-default/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-1
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-default/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-default
+          namespace: default
+        name: httproute/default/httproute-default/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /
+    readyListener:
+      address: 0.0.0.0
+      ipFamily: IPv4
+      path: /ready
+      port: 19003
diff --git a/internal/gatewayapi/testdata/httproute-order-by-creation-date.in.yaml b/internal/gatewayapi/testdata/httproute-order-by-creation-date.in.yaml
new file mode 100644
index 000000000..bbd45b4c7
--- /dev/null
+++ b/internal/gatewayapi/testdata/httproute-order-by-creation-date.in.yaml
@@ -0,0 +1,173 @@
+gateways:
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: Gateway
+  metadata:
+    namespace: envoy-gateway
+    name: gateway-1
+  spec:
+    gatewayClassName: envoy-gateway-class
+    listeners:
+    - name: http
+      protocol: HTTP
+      port: 80
+      hostname: '*.envoyproxy.io'
+      allowedRoutes:
+        namespaces:
+          from: All
+httpRoutes:
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: default
+    name: httproute-3
+    creationTimestamp: 2025-07-01T20:47:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/route3'
+      backendRefs:
+      - name: service-1
+        port: 8080
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: default
+    name: httproute-1
+    creationTimestamp: 2025-07-02T10:47:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/route1'
+      backendRefs:
+      - name: service-1
+        port: 8080
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/foobar'
+      backendRefs:
+      - name: service-2
+        port: 8080
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: test-ns
+    name: httproute-2
+    creationTimestamp: 2025-07-03T20:47:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/route2'
+      backendRefs:
+      - name: test-service
+        port: 8080
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    namespace: test-ns2
+    name: httproute-4
+    creationTimestamp: 2025-04-04T20:47:53Z
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - namespace: envoy-gateway
+      name: gateway-1
+      sectionName: http
+    rules:
+    - matches:
+      - path:
+          type: PathPrefix
+          value: '/route4'
+      backendRefs:
+      - name: test-service
+        port: 8080
+namespaces:
+- apiVersion: v1
+  kind: Namespace
+  metadata:
+    name: test-ns
+- apiVersion: v1
+  kind: Namespace
+  metadata:
+    name: test-ns2
+services:
+- apiVersion: v1
+  kind: Service
+  metadata:
+    namespace: test-ns2
+    name: test-service
+  spec:
+    ports:
+    - port: 8080
+      name: http
+      protocol: TCP
+- apiVersion: v1
+  kind: Service
+  metadata:
+    namespace: test-ns
+    name: test-service
+  spec:
+    ports:
+    - port: 8080
+      name: http
+      protocol: TCP
+endpointSlices:
+- apiVersion: discovery.k8s.io/v1
+  kind: EndpointSlice
+  metadata:
+    name: endpointslice-test-service
+    namespace: test-ns
+    labels:
+      kubernetes.io/service-name: test-service
+  addressType: IPv4
+  ports:
+  - name: http
+    protocol: TCP
+    port: 8080
+  endpoints:
+  - addresses:
+    - 8.8.8.8
+    conditions:
+      ready: true
+- apiVersion: discovery.k8s.io/v1
+  kind: EndpointSlice
+  metadata:
+    name: endpointslice-test-service
+    namespace: test-ns2
+    labels:
+      kubernetes.io/service-name: test-service
+  addressType: IPv4
+  ports:
+  - name: http
+    protocol: TCP
+    port: 8080
+  endpoints:
+  - addresses:
+    - 8.8.8.8
+    conditions:
+      ready: true
diff --git a/internal/gatewayapi/testdata/httproute-order-by-creation-date.out.yaml b/internal/gatewayapi/testdata/httproute-order-by-creation-date.out.yaml
new file mode 100644
index 000000000..21d9d2324
--- /dev/null
+++ b/internal/gatewayapi/testdata/httproute-order-by-creation-date.out.yaml
@@ -0,0 +1,399 @@
+gateways:
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: Gateway
+  metadata:
+    creationTimestamp: null
+    name: gateway-1
+    namespace: envoy-gateway
+  spec:
+    gatewayClassName: envoy-gateway-class
+    listeners:
+    - allowedRoutes:
+        namespaces:
+          from: All
+      hostname: '*.envoyproxy.io'
+      name: http
+      port: 80
+      protocol: HTTP
+  status:
+    listeners:
+    - attachedRoutes: 4
+      conditions:
+      - lastTransitionTime: null
+        message: Sending translated listener configuration to the data plane
+        reason: Programmed
+        status: "True"
+        type: Programmed
+      - lastTransitionTime: null
+        message: Listener has been successfully translated
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Listener references have been resolved
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      name: http
+      supportedKinds:
+      - group: gateway.networking.k8s.io
+        kind: HTTPRoute
+      - group: gateway.networking.k8s.io
+        kind: GRPCRoute
+httpRoutes:
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-04-04T20:47:53Z"
+    name: httproute-4
+    namespace: test-ns2
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: test-service
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /route4
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-07-01T20:47:53Z"
+    name: httproute-3
+    namespace: default
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: service-1
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /route3
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-07-02T10:47:53Z"
+    name: httproute-1
+    namespace: default
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: service-1
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /route1
+    - backendRefs:
+      - name: service-2
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /foobar
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+- apiVersion: gateway.networking.k8s.io/v1
+  kind: HTTPRoute
+  metadata:
+    creationTimestamp: "2025-07-03T20:47:53Z"
+    name: httproute-2
+    namespace: test-ns
+  spec:
+    hostnames:
+    - gateway.envoyproxy.io
+    parentRefs:
+    - name: gateway-1
+      namespace: envoy-gateway
+      sectionName: http
+    rules:
+    - backendRefs:
+      - name: test-service
+        port: 8080
+      matches:
+      - path:
+          type: PathPrefix
+          value: /route2
+  status:
+    parents:
+    - conditions:
+      - lastTransitionTime: null
+        message: Route is accepted
+        reason: Accepted
+        status: "True"
+        type: Accepted
+      - lastTransitionTime: null
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
+        type: ResolvedRefs
+      controllerName: gateway.envoyproxy.io/gatewayclass-controller
+      parentRef:
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+infraIR:
+  envoy-gateway/gateway-1:
+    proxy:
+      listeners:
+      - address: null
+        name: envoy-gateway/gateway-1/http
+        ports:
+        - containerPort: 10080
+          name: http-80
+          protocol: HTTP
+          servicePort: 80
+      metadata:
+        labels:
+          gateway.envoyproxy.io/owning-gateway-name: gateway-1
+          gateway.envoyproxy.io/owning-gateway-namespace: envoy-gateway
+        ownerReference:
+          kind: GatewayClass
+          name: envoy-gateway-class
+      name: envoy-gateway/gateway-1
+      namespace: envoy-gateway-system
+xdsIR:
+  envoy-gateway/gateway-1:
+    accessLog:
+      json:
+      - path: /dev/stdout
+    http:
+    - address: 0.0.0.0
+      hostnames:
+      - '*.envoyproxy.io'
+      isHTTP2: false
+      metadata:
+        kind: Gateway
+        name: gateway-1
+        namespace: envoy-gateway
+        sectionName: http
+      name: envoy-gateway/gateway-1/http
+      path:
+        escapedSlashesAction: UnescapeAndRedirect
+        mergeSlashes: true
+      port: 10080
+      routes:
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-4
+            namespace: test-ns2
+          name: httproute/test-ns2/httproute-4/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 8.8.8.8
+              port: 8080
+            metadata:
+              kind: Service
+              name: test-service
+              namespace: test-ns2
+              sectionName: "8080"
+            name: httproute/test-ns2/httproute-4/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-4
+          namespace: test-ns2
+        name: httproute/test-ns2/httproute-4/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /route4
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-3
+            namespace: default
+          name: httproute/default/httproute-3/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-1
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-3/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-3
+          namespace: default
+        name: httproute/default/httproute-3/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /route3
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-1
+            namespace: default
+          name: httproute/default/httproute-1/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-1
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-1/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-1
+          namespace: default
+        name: httproute/default/httproute-1/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /route1
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-1
+            namespace: default
+          name: httproute/default/httproute-1/rule/1
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 7.7.7.7
+              port: 8080
+            metadata:
+              name: service-2
+              namespace: default
+              sectionName: "8080"
+            name: httproute/default/httproute-1/rule/1/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-1
+          namespace: default
+        name: httproute/default/httproute-1/rule/1/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /foobar
+      - destination:
+          metadata:
+            kind: HTTPRoute
+            name: httproute-2
+            namespace: test-ns
+          name: httproute/test-ns/httproute-2/rule/0
+          settings:
+          - addressType: IP
+            endpoints:
+            - host: 8.8.8.8
+              port: 8080
+            metadata:
+              kind: Service
+              name: test-service
+              namespace: test-ns
+              sectionName: "8080"
+            name: httproute/test-ns/httproute-2/rule/0/backend/0
+            protocol: HTTP
+            weight: 1
+        hostname: gateway.envoyproxy.io
+        isHTTP2: false
+        metadata:
+          kind: HTTPRoute
+          name: httproute-2
+          namespace: test-ns
+        name: httproute/test-ns/httproute-2/rule/0/match/0/gateway_envoyproxy_io
+        pathMatch:
+          distinct: false
+          name: ""
+          prefix: /route2
+    readyListener:
+      address: 0.0.0.0
+      ipFamily: IPv4
+      path: /ready
+      port: 19003
diff --git a/internal/gatewayapi/testdata/httproute-with-direct-response.out.yaml b/internal/gatewayapi/testdata/httproute-with-direct-response.out.yaml
index dd9b65737..1cb64e5c1 100644
--- a/internal/gatewayapi/testdata/httproute-with-direct-response.out.yaml
+++ b/internal/gatewayapi/testdata/httproute-with-direct-response.out.yaml
@@ -95,7 +95,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: direct-response-with-value-not-found
+    name: direct-response-too-long
     namespace: default
   spec:
     parentRefs:
@@ -107,24 +107,25 @@ httpRoutes:
       - extensionRef:
           group: gateway.envoyproxy.io
           kind: HTTPRouteFilter
-          name: direct-response-value-ref-not-found
+          name: direct-response-too-long
         type: ExtensionRef
       matches:
       - path:
           type: PathPrefix
-          value: /value-ref-not-found
+          value: /too-long
   status:
     parents:
     - conditions:
       - lastTransitionTime: null
-        message: 'Unable to translate HTTPRouteFilter: default/direct-response-value-ref-not-found'
+        message: 'Invalid filter HTTPRouteFilter: response.body size 4097 greater
+          than the max size 4096'
         reason: UnsupportedValue
         status: "False"
         type: Accepted
       - lastTransitionTime: null
-        message: 'Unable to translate HTTPRouteFilter: default/direct-response-value-ref-not-found'
-        reason: BackendNotFound
-        status: "False"
+        message: Resolved all the Object references for the Route
+        reason: ResolvedRefs
+        status: "True"
         type: ResolvedRefs
       controllerName: gateway.envoyproxy.io/gatewayclass-controller
       parentRef:
@@ -135,7 +136,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: direct-response-too-long
+    name: direct-response-with-value-not-found
     namespace: default
   spec:
     parentRefs:
@@ -147,25 +148,24 @@ httpRoutes:
       - extensionRef:
           group: gateway.envoyproxy.io
           kind: HTTPRouteFilter
-          name: direct-response-too-long
+          name: direct-response-value-ref-not-found
         type: ExtensionRef
       matches:
       - path:
           type: PathPrefix
-          value: /too-long
+          value: /value-ref-not-found
   status:
     parents:
     - conditions:
       - lastTransitionTime: null
-        message: 'Invalid filter HTTPRouteFilter: response.body size 4097 greater
-          than the max size 4096'
+        message: 'Unable to translate HTTPRouteFilter: default/direct-response-value-ref-not-found'
         reason: UnsupportedValue
         status: "False"
         type: Accepted
       - lastTransitionTime: null
-        message: Resolved all the Object references for the Route
-        reason: ResolvedRefs
-        status: "True"
+        message: 'Unable to translate HTTPRouteFilter: default/direct-response-value-ref-not-found'
+        reason: BackendNotFound
+        status: "False"
         type: ResolvedRefs
       controllerName: gateway.envoyproxy.io/gatewayclass-controller
       parentRef:
diff --git a/internal/gatewayapi/testdata/httproute-with-urlrewrite-filter-regex-match-replace-http.out.yaml b/internal/gatewayapi/testdata/httproute-with-urlrewrite-filter-regex-match-replace-http.out.yaml
index 70d124e47..ca3284339 100644
--- a/internal/gatewayapi/testdata/httproute-with-urlrewrite-filter-regex-match-replace-http.out.yaml
+++ b/internal/gatewayapi/testdata/httproute-with-urlrewrite-filter-regex-match-replace-http.out.yaml
@@ -370,6 +370,12 @@ xdsIR:
         urlRewrite:
           host:
             name: rewrite.com
+          path:
+            fullReplace: null
+            prefixMatchReplace: null
+            regexMatchReplace:
+              pattern: .*
+              substitution: foo
       - destination:
           metadata:
             kind: HTTPRoute
diff --git a/internal/gatewayapi/testdata/httproute-with-urlrewrite-hostname-filter-invalid.out.yaml b/internal/gatewayapi/testdata/httproute-with-urlrewrite-hostname-filter-invalid.out.yaml
index 6ad4a1c5b..1cc501df2 100644
--- a/internal/gatewayapi/testdata/httproute-with-urlrewrite-hostname-filter-invalid.out.yaml
+++ b/internal/gatewayapi/testdata/httproute-with-urlrewrite-hostname-filter-invalid.out.yaml
@@ -45,7 +45,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-invalid-header
+    name: httproute-header-and-backend-host-rewrites
     namespace: default
   spec:
     hostnames:
@@ -62,16 +62,21 @@ httpRoutes:
       - extensionRef:
           group: gateway.envoyproxy.io
           kind: HTTPRouteFilter
-          name: invalid-header
+          name: valid-header
+        type: ExtensionRef
+      - extensionRef:
+          group: gateway.envoyproxy.io
+          kind: HTTPRouteFilter
+          name: valid-header
         type: ExtensionRef
       matches:
       - path:
-          value: /invalid-header
+          value: /header-and-backend
   status:
     parents:
     - conditions:
       - lastTransitionTime: null
-        message: Header must be set when rewrite path type is "Header"
+        message: Cannot configure multiple urlRewrite filters for a single HTTPRouteRule
         reason: UnsupportedValue
         status: "False"
         type: Accepted
@@ -89,7 +94,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-multiple-host-rewrites-1
+    name: httproute-invalid-header
     namespace: default
   spec:
     hostnames:
@@ -106,19 +111,16 @@ httpRoutes:
       - extensionRef:
           group: gateway.envoyproxy.io
           kind: HTTPRouteFilter
-          name: valid-header
+          name: invalid-header
         type: ExtensionRef
-      - type: URLRewrite
-        urlRewrite:
-          hostname: rewrite.com
       matches:
       - path:
-          value: /ext-first
+          value: /invalid-header
   status:
     parents:
     - conditions:
       - lastTransitionTime: null
-        message: Cannot configure multiple urlRewrite filters for a single HTTPRouteRule
+        message: Header must be set when rewrite path type is "Header"
         reason: UnsupportedValue
         status: "False"
         type: Accepted
@@ -136,7 +138,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-multiple-path-rewrites-2
+    name: httproute-multiple-header-host-rewrites
     namespace: default
   spec:
     hostnames:
@@ -150,17 +152,19 @@ httpRoutes:
       - name: service-1
         port: 8080
       filters:
-      - type: URLRewrite
-        urlRewrite:
-          hostname: rewrite.com
       - extensionRef:
           group: gateway.envoyproxy.io
           kind: HTTPRouteFilter
           name: valid-header
         type: ExtensionRef
+      - extensionRef:
+          group: gateway.envoyproxy.io
+          kind: HTTPRouteFilter
+          name: valid-header-2
+        type: ExtensionRef
       matches:
       - path:
-          value: /inline-first
+          value: /two-headers
   status:
     parents:
     - conditions:
@@ -200,16 +204,16 @@ httpRoutes:
       - extensionRef:
           group: gateway.envoyproxy.io
           kind: HTTPRouteFilter
-          name: valid-header
+          name: valid-backend
         type: ExtensionRef
       - extensionRef:
           group: gateway.envoyproxy.io
           kind: HTTPRouteFilter
-          name: valid-header-2
+          name: valid-backend-2
         type: ExtensionRef
       matches:
       - path:
-          value: /two-headers
+          value: /two-backends
   status:
     parents:
     - conditions:
@@ -232,7 +236,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-multiple-header-host-rewrites
+    name: httproute-multiple-host-rewrites-1
     namespace: default
   spec:
     hostnames:
@@ -249,16 +253,14 @@ httpRoutes:
       - extensionRef:
           group: gateway.envoyproxy.io
           kind: HTTPRouteFilter
-          name: valid-backend
-        type: ExtensionRef
-      - extensionRef:
-          group: gateway.envoyproxy.io
-          kind: HTTPRouteFilter
-          name: valid-backend-2
+          name: valid-header
         type: ExtensionRef
+      - type: URLRewrite
+        urlRewrite:
+          hostname: rewrite.com
       matches:
       - path:
-          value: /two-backends
+          value: /ext-first
   status:
     parents:
     - conditions:
@@ -281,7 +283,7 @@ httpRoutes:
   kind: HTTPRoute
   metadata:
     creationTimestamp: null
-    name: httproute-header-and-backend-host-rewrites
+    name: httproute-multiple-path-rewrites-2
     namespace: default
   spec:
     hostnames:
@@ -295,11 +297,9 @@ httpRoutes:
       - name: service-1
         port: 8080
       filters:
-      - extensionRef:
-          group: gateway.envoyproxy.io
-          kind: HTTPRouteFilter
-          name: valid-header
-        type: ExtensionRef
+      - type: URLRewrite
+        urlRewrite:
+          hostname: rewrite.com
       - extensionRef:
           group: gateway.envoyproxy.io
           kind: HTTPRouteFilter
@@ -307,7 +307,7 @@ httpRoutes:
         type: ExtensionRef
       matches:
       - path:
-          value: /header-and-backend
+          value: /inline-first
   status:
     parents:
     - conditions:
diff --git a/internal/gatewayapi/testdata/httproute-with-urlrewrite-hostname-filter.out.yaml b/internal/gatewayapi/testdata/httproute-with-urlrewrite-hostname-filter.out.yaml
index 15a17b99c..d28bfb180 100644
--- a/internal/gatewayapi/testdata/httproute-with-urlrewrite-hostname-filter.out.yaml
+++ b/internal/gatewayapi/testdata/httproute-with-urlrewrite-hostname-filter.out.yaml
@@ -333,6 +333,8 @@ xdsIR:
           name: ""
           prefix: /header-host-and-path
         urlRewrite:
+          host:
+            header: my-host
           path:
             fullReplace: null
             prefixMatchReplace: /rewrite
diff --git a/internal/ir/xds_test.go b/internal/ir/xds_test.go
index b97dd0d94..9ad48cbcf 100644
--- a/internal/ir/xds_test.go
+++ b/internal/ir/xds_test.go
@@ -17,6 +17,7 @@ import (
 	apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/utils/ptr"
+	gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
 
 	egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
 )
@@ -1580,6 +1581,27 @@ func TestValidateHealthCheck(t *testing.T) {
 			},
 			want: ErrHealthCheckIntervalInvalid,
 		},
+		{
+			name: "invalid initial jitter",
+			input: HealthCheck{
+				&ActiveHealthCheck{
+					Timeout:            &metav1.Duration{Duration: time.Second},
+					Interval:           &metav1.Duration{Duration: time.Second},
+					InitialJitter:      ptr.To(gwapiv1.Duration("-1s")),
+					UnhealthyThreshold: ptr.To[uint32](3),
+					HealthyThreshold:   ptr.To[uint32](3),
+					HTTP: &HTTPHealthChecker{
+						Host:             "*",
+						Path:             "/healthz",
+						Method:           ptr.To(http.MethodGet),
+						ExpectedStatuses: []HTTPStatus{200, 400},
+					},
+				},
+				&OutlierDetection{},
+				ptr.To[uint32](10),
+			},
+			want: ErrHealthCheckInitialJitterInvalid,
+		},
 		{
 			name: "invalid unhealthy threshold",
 			input: HealthCheck{
diff --git a/internal/provider/kubernetes/test/utils.go b/internal/provider/kubernetes/test/utils.go
index 3eac5782a..eaeaabaa8 100644
--- a/internal/provider/kubernetes/test/utils.go
+++ b/internal/provider/kubernetes/test/utils.go
@@ -395,7 +395,7 @@ func GetEndpointSlice(nsName types.NamespacedName, svcName string, isServiceImpo
 			{
 				Addresses: []string{"10.0.0.1"},
 				Conditions: discoveryv1.EndpointConditions{
-					Ready: &[]bool{true}[0],
+					Ready: ptr.To(true),
 				},
 			},
 		},
diff --git a/internal/xds/translator/extension_config_test.go b/internal/xds/translator/extension_config_test.go
new file mode 100644
index 000000000..c244f9e2c
--- /dev/null
+++ b/internal/xds/translator/extension_config_test.go
@@ -0,0 +1,142 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package translator
+
+import (
+	"context"
+	"testing"
+
+	clusterv3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3"
+	listenerv3 "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3"
+	routev3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
+	tlsv3 "github.com/envoyproxy/go-control-plane/envoy/extensions/transport_sockets/tls/v3"
+	resourceTypes "github.com/envoyproxy/go-control-plane/pkg/cache/types"
+	resourcev3 "github.com/envoyproxy/go-control-plane/pkg/resource/v3"
+	"github.com/stretchr/testify/require"
+	"k8s.io/utils/ptr"
+
+	egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
+	"github.com/envoyproxy/gateway/internal/extension/registry"
+	"github.com/envoyproxy/gateway/internal/ir"
+	"github.com/envoyproxy/gateway/internal/xds/types"
+	"github.com/envoyproxy/gateway/proto/extension"
+)
+
+// mockExtensionServer implements the extension server interface for testing
+type mockExtensionServer struct {
+	extension.UnimplementedEnvoyGatewayExtensionServer
+	receivedListeners []*listenerv3.Listener
+	receivedRoutes    []*routev3.RouteConfiguration
+}
+
+func (m *mockExtensionServer) PostTranslateModify(ctx context.Context, req *extension.PostTranslateModifyRequest) (*extension.PostTranslateModifyResponse, error) {
+	// Store what we received for verification
+	m.receivedListeners = req.Listeners
+	m.receivedRoutes = req.Routes
+
+	// Return the same resources
+	return &extension.PostTranslateModifyResponse{
+		Clusters:  req.Clusters,
+		Secrets:   req.Secrets,
+		Listeners: req.Listeners,
+		Routes:    req.Routes,
+	}, nil
+}
+
+func TestProcessExtensionPostTranslationHookConfig(t *testing.T) {
+	tests := []struct {
+		name                     string
+		enableListenersAndRoutes *bool
+		expectListenersAndRoutes bool
+	}{
+		{
+			name:                     "default behavior (disabled for backward compatibility)",
+			enableListenersAndRoutes: nil,
+			expectListenersAndRoutes: false,
+		},
+		{
+			name:                     "explicitly enabled",
+			enableListenersAndRoutes: ptr.To(true),
+			expectListenersAndRoutes: true,
+		},
+		{
+			name:                     "explicitly disabled",
+			enableListenersAndRoutes: ptr.To(false),
+			expectListenersAndRoutes: false,
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			// Create mock extension server
+			mockServer := &mockExtensionServer{}
+
+			// Create extension manager with the test configuration
+			extManager := egv1a1.ExtensionManager{
+				Hooks: &egv1a1.ExtensionHooks{
+					XDSTranslator: &egv1a1.XDSTranslatorHooks{
+						Post: []egv1a1.XDSTranslatorHook{egv1a1.XDSTranslation},
+						Translation: &egv1a1.TranslationConfig{
+							Listener: &egv1a1.ListenerTranslationConfig{
+								IncludeAll: tt.enableListenersAndRoutes,
+							},
+							Route: &egv1a1.RouteTranslationConfig{
+								IncludeAll: tt.enableListenersAndRoutes,
+							},
+						},
+					},
+				},
+				Service: &egv1a1.ExtensionService{
+					BackendEndpoint: egv1a1.BackendEndpoint{
+						FQDN: &egv1a1.FQDNEndpoint{
+							Hostname: "test.example.com",
+							Port:     8080,
+						},
+					},
+				},
+			}
+
+			mgr, cleanup, err := registry.NewInMemoryManager(extManager, mockServer)
+			require.NoError(t, err)
+			defer cleanup()
+
+			// Create test resource table with sample resources
+			tCtx := &types.ResourceVersionTable{
+				XdsResources: map[string][]resourceTypes.Resource{
+					resourcev3.ClusterType: {
+						&clusterv3.Cluster{Name: "test-cluster"},
+					},
+					resourcev3.SecretType: {
+						&tlsv3.Secret{Name: "test-secret"},
+					},
+					resourcev3.ListenerType: {
+						&listenerv3.Listener{Name: "test-listener"},
+					},
+					resourcev3.RouteType: {
+						&routev3.RouteConfiguration{Name: "test-route"},
+					},
+				},
+			}
+
+			// Call the function under test
+			err = processExtensionPostTranslationHook(tCtx, &mgr, []*ir.UnstructuredRef{})
+			require.NoError(t, err)
+
+			// Verify the behavior based on configuration
+			if tt.expectListenersAndRoutes {
+				// Should have received listeners and routes
+				require.Len(t, mockServer.receivedListeners, 1)
+				require.Equal(t, "test-listener", mockServer.receivedListeners[0].Name)
+				require.Len(t, mockServer.receivedRoutes, 1)
+				require.Equal(t, "test-route", mockServer.receivedRoutes[0].Name)
+			} else {
+				// Should not have received listeners and routes (nil or empty)
+				require.Empty(t, mockServer.receivedListeners)
+				require.Empty(t, mockServer.receivedRoutes)
+			}
+		})
+	}
+}
diff --git a/internal/xds/translator/extensionserver_test.go b/internal/xds/translator/extensionserver_test.go
index 1a3d4112d..e266dd7a1 100644
--- a/internal/xds/translator/extensionserver_test.go
+++ b/internal/xds/translator/extensionserver_test.go
@@ -259,21 +259,25 @@ func (t *testingExtensionServer) PostHTTPListenerModify(_ context.Context, req *
 	}, nil
 }
 
-// PostTranslateModifyHook inserts and overrides some clusters/secrets
+// PostTranslateModifyHook inserts and overrides some clusters/secrets/listeners/routes
 func (t *testingExtensionServer) PostTranslateModify(_ context.Context, req *pb.PostTranslateModifyRequest) (*pb.PostTranslateModifyResponse, error) {
 	for _, cluster := range req.Clusters {
 		if cluster.Name == "custom-backend-dest" {
 			return &pb.PostTranslateModifyResponse{
-				Clusters: req.Clusters,
-				Secrets:  req.Secrets,
+				Clusters:  req.Clusters,
+				Secrets:   req.Secrets,
+				Listeners: req.Listeners,
+				Routes:    req.Routes,
 			}, nil
 		}
 		// This simulates an extension server that returns an error. It allows verifying that fail-close is working.
 		if edsConfig := cluster.GetEdsClusterConfig(); edsConfig != nil {
 			if strings.Contains(edsConfig.ServiceName, "fail-close-error") {
 				return &pb.PostTranslateModifyResponse{
-					Clusters: req.Clusters,
-					Secrets:  req.Secrets,
+					Clusters:  req.Clusters,
+					Secrets:   req.Secrets,
+					Listeners: req.Listeners,
+					Routes:    req.Routes,
 				}, fmt.Errorf("cluster hook resource error: %s", edsConfig.ServiceName)
 			}
 		}
@@ -296,8 +300,10 @@ func (t *testingExtensionServer) PostTranslateModify(_ context.Context, req *pb.
 	}
 
 	response := &pb.PostTranslateModifyResponse{
-		Clusters: make([]*clusterV3.Cluster, len(req.Clusters)),
-		Secrets:  make([]*tlsV3.Secret, len(req.Secrets)),
+		Clusters:  make([]*clusterV3.Cluster, len(req.Clusters)),
+		Secrets:   make([]*tlsV3.Secret, len(req.Secrets)),
+		Listeners: make([]*listenerV3.Listener, len(req.Listeners)),
+		Routes:    make([]*routeV3.RouteConfiguration, len(req.Routes)),
 	}
 	for idx, cluster := range req.Clusters {
 		response.Clusters[idx] = proto.Clone(cluster).(*clusterV3.Cluster)
@@ -397,6 +403,61 @@ func (t *testingExtensionServer) PostTranslateModify(_ context.Context, req *pb.
 		},
 	})
 
+	// Process listeners - clone and potentially modify them
+	for idx, listener := range req.Listeners {
+		response.Listeners[idx] = proto.Clone(listener).(*listenerV3.Listener)
+		// Example: Modify listener for testing - add a stat prefix if listener name matches
+		if listener.Name == "test-listener-modify" {
+			response.Listeners[idx].StatPrefix = "extension-modified-listener"
+		}
+	}
+
+	// Process routes - clone and potentially modify them
+	for idx, route := range req.Routes {
+		response.Routes[idx] = proto.Clone(route).(*routeV3.RouteConfiguration)
+		// Example: Modify route for testing - add metadata if route name matches
+		if route.Name == "test-route-modify" {
+			if response.Routes[idx].ResponseHeadersToAdd == nil {
+				response.Routes[idx].ResponseHeadersToAdd = []*coreV3.HeaderValueOption{}
+			}
+			response.Routes[idx].ResponseHeadersToAdd = append(response.Routes[idx].ResponseHeadersToAdd,
+				&coreV3.HeaderValueOption{
+					Header: &coreV3.HeaderValue{
+						Key:   "x-extension-modified",
+						Value: "true",
+					},
+				})
+		}
+	}
+
+	// Only inject new resources for specific test cases to avoid breaking existing tests
+	for _, policy := range req.PostTranslateContext.ExtensionResources {
+		extensionResource := unstructured.Unstructured{}
+		if err := extensionResource.UnmarshalJSON(policy.UnstructuredBytes); err == nil {
+			if extensionResource.GetObjectKind().GroupVersionKind().Kind == "ExampleExtPolicy" {
+				// Example: Add a new listener for testing
+				response.Listeners = append(response.Listeners, &listenerV3.Listener{
+					Name:       "extension-injected-listener",
+					StatPrefix: "extension-injected",
+				})
+
+				// Example: Add a new route for testing
+				response.Routes = append(response.Routes, &routeV3.RouteConfiguration{
+					Name: "extension-injected-route",
+					ResponseHeadersToAdd: []*coreV3.HeaderValueOption{
+						{
+							Header: &coreV3.HeaderValue{
+								Key:   "x-extension-injected",
+								Value: "route",
+							},
+						},
+					},
+				})
+				break
+			}
+		}
+	}
+
 	return response, nil
 }
 
diff --git a/internal/xds/translator/testdata/in/extension-xds-ir/extensionpolicy-extension-server.yaml b/internal/xds/translator/testdata/in/extension-xds-ir/extensionpolicy-extension-server.yaml
index 2ad12b9f3..99385eff4 100644
--- a/internal/xds/translator/testdata/in/extension-xds-ir/extensionpolicy-extension-server.yaml
+++ b/internal/xds/translator/testdata/in/extension-xds-ir/extensionpolicy-extension-server.yaml
@@ -11,3 +11,11 @@ extensionServerPolicies:
         group: gateway.networking.k8s.io
         kind: Gateway
         name: gateway-1
+extensionManagerConfig:
+  hooks:
+    xdsTranslator:
+      translation:
+        listener:
+          includeAll: true
+        route:
+          includeAll: true
diff --git a/internal/xds/translator/testdata/in/extension-xds-ir/post-translate-listeners-routes.yaml b/internal/xds/translator/testdata/in/extension-xds-ir/post-translate-listeners-routes.yaml
new file mode 100644
index 000000000..4bd256117
--- /dev/null
+++ b/internal/xds/translator/testdata/in/extension-xds-ir/post-translate-listeners-routes.yaml
@@ -0,0 +1,61 @@
+http:
+- name: "test-listener-modify"
+  address: "0.0.0.0"
+  port: 10080
+  hostnames:
+  - "*"
+  path:
+    mergeSlashes: true
+    escapedSlashesAction: UnescapeAndRedirect
+  routes:
+  - name: "test-route-modify"
+    hostname: "*"
+    pathMatch:
+      prefix: "/"
+    destination:
+      name: "test-route-dest"
+      settings:
+      - endpoints:
+        - host: "1.2.3.4"
+          port: 50000
+        name: "test-route-dest/backend/0"
+- name: "second-listener"
+  address: "0.0.0.0"
+  port: 10081
+  hostnames:
+  - "example.com"
+  path:
+    mergeSlashes: true
+    escapedSlashesAction: UnescapeAndRedirect
+  routes:
+  - name: "second-route"
+    hostname: "example.com"
+    pathMatch:
+      prefix: "/api"
+    destination:
+      name: "second-route-dest"
+      settings:
+      - endpoints:
+        - host: "2.3.4.5"
+          port: 8080
+        name: "second-route-dest/backend/0"
+extensionServerPolicies:
+- Object:
+    apiVersion: foo.example.io/v1alpha1
+    kind: ExampleExtPolicy
+    metadata:
+      name: test-policy
+      namespace: default
+    spec:
+      targetRef:
+        group: gateway.networking.k8s.io
+        kind: Gateway
+        name: test-gateway
+extensionManagerConfig:
+  hooks:
+    xdsTranslator:
+      translation:
+        listener:
+          includeAll: true
+        route:
+          includeAll: true
diff --git a/internal/xds/translator/testdata/in/xds-ir/retry.yaml b/internal/xds/translator/testdata/in/xds-ir/retry.yaml
index 7b15593ef..5ca639cb6 100644
--- a/internal/xds/translator/testdata/in/xds-ir/retry.yaml
+++ b/internal/xds/translator/testdata/in/xds-ir/retry.yaml
@@ -62,6 +62,7 @@ http:
         retryOn:
           triggers:
           - reset
+          - reset-before-request
           - connect-failure
     destination:
       name: "first-route-dest"
diff --git a/internal/xds/translator/testdata/out/extension-xds-ir/extensionpolicy-extension-server.listeners.yaml b/internal/xds/translator/testdata/out/extension-xds-ir/extensionpolicy-extension-server.listeners.yaml
index fe51488c7..317afb118 100644
--- a/internal/xds/translator/testdata/out/extension-xds-ir/extensionpolicy-extension-server.listeners.yaml
+++ b/internal/xds/translator/testdata/out/extension-xds-ir/extensionpolicy-extension-server.listeners.yaml
@@ -1 +1,2 @@
-[]
+- name: extension-injected-listener
+  statPrefix: extension-injected
diff --git a/internal/xds/translator/testdata/out/extension-xds-ir/extensionpolicy-extension-server.routes.yaml b/internal/xds/translator/testdata/out/extension-xds-ir/extensionpolicy-extension-server.routes.yaml
index fe51488c7..73992512a 100644
--- a/internal/xds/translator/testdata/out/extension-xds-ir/extensionpolicy-extension-server.routes.yaml
+++ b/internal/xds/translator/testdata/out/extension-xds-ir/extensionpolicy-extension-server.routes.yaml
@@ -1 +1,5 @@
-[]
+- name: extension-injected-route
+  responseHeadersToAdd:
+  - header:
+      key: x-extension-injected
+      value: route
diff --git a/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.clusters.yaml b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.clusters.yaml
new file mode 100644
index 000000000..eb6c60665
--- /dev/null
+++ b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.clusters.yaml
@@ -0,0 +1,71 @@
+- circuitBreakers:
+    thresholds:
+    - maxRetries: 1024
+  commonLbConfig: {}
+  connectTimeout: 10s
+  dnsLookupFamily: V4_PREFERRED
+  edsClusterConfig:
+    edsConfig:
+      ads: {}
+      resourceApiVersion: V3
+    serviceName: test-route-dest
+  ignoreHealthOnHostRemoval: true
+  lbPolicy: LEAST_REQUEST
+  loadBalancingPolicy:
+    policies:
+    - typedExtensionConfig:
+        name: envoy.load_balancing_policies.least_request
+        typedConfig:
+          '@type': type.googleapis.com/envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest
+          localityLbConfig:
+            localityWeightedLbConfig: {}
+  name: test-route-dest
+  perConnectionBufferLimitBytes: 32768
+  type: EDS
+- circuitBreakers:
+    thresholds:
+    - maxRetries: 1024
+  commonLbConfig: {}
+  connectTimeout: 10s
+  dnsLookupFamily: V4_PREFERRED
+  edsClusterConfig:
+    edsConfig:
+      ads: {}
+      resourceApiVersion: V3
+    serviceName: second-route-dest
+  ignoreHealthOnHostRemoval: true
+  lbPolicy: LEAST_REQUEST
+  loadBalancingPolicy:
+    policies:
+    - typedExtensionConfig:
+        name: envoy.load_balancing_policies.least_request
+        typedConfig:
+          '@type': type.googleapis.com/envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest
+          localityLbConfig:
+            localityWeightedLbConfig: {}
+  name: second-route-dest
+  perConnectionBufferLimitBytes: 32768
+  type: EDS
+- loadAssignment:
+    clusterName: mock-extension-injected-cluster
+    endpoints:
+    - lbEndpoints:
+      - endpoint:
+          address:
+            socketAddress:
+              address: exampleservice.examplenamespace.svc.cluster.local
+              portValue: 5000
+  name: mock-extension-injected-cluster
+  transportSocket:
+    name: envoy.transport_sockets.tls
+    typedConfig:
+      '@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
+      commonTlsContext:
+        tlsCertificateSdsSecretConfigs:
+        - name: default
+          sdsConfig:
+            apiConfigSource:
+              apiType: GRPC
+              grpcServices:
+              - envoyGrpc:
+                  clusterName: sds-cluster
diff --git a/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.endpoints.yaml b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.endpoints.yaml
new file mode 100644
index 000000000..904075df1
--- /dev/null
+++ b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.endpoints.yaml
@@ -0,0 +1,24 @@
+- clusterName: test-route-dest
+  endpoints:
+  - lbEndpoints:
+    - endpoint:
+        address:
+          socketAddress:
+            address: 1.2.3.4
+            portValue: 50000
+      loadBalancingWeight: 1
+    loadBalancingWeight: 1
+    locality:
+      region: test-route-dest/backend/0
+- clusterName: second-route-dest
+  endpoints:
+  - lbEndpoints:
+    - endpoint:
+        address:
+          socketAddress:
+            address: 2.3.4.5
+            portValue: 8080
+      loadBalancingWeight: 1
+    loadBalancingWeight: 1
+    locality:
+      region: second-route-dest/backend/0
diff --git a/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.listeners.yaml b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.listeners.yaml
new file mode 100644
index 000000000..b9ec83b9e
--- /dev/null
+++ b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.listeners.yaml
@@ -0,0 +1,73 @@
+- address:
+    socketAddress:
+      address: 0.0.0.0
+      portValue: 10080
+  defaultFilterChain:
+    filters:
+    - name: envoy.filters.network.http_connection_manager
+      typedConfig:
+        '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
+        commonHttpProtocolOptions:
+          headersWithUnderscoresAction: REJECT_REQUEST
+        http2ProtocolOptions:
+          initialConnectionWindowSize: 1048576
+          initialStreamWindowSize: 65536
+          maxConcurrentStreams: 100
+        httpFilters:
+        - name: envoy.filters.http.router
+          typedConfig:
+            '@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
+            suppressEnvoyHeaders: true
+        mergeSlashes: true
+        normalizePath: true
+        pathWithEscapedSlashesAction: UNESCAPE_AND_REDIRECT
+        rds:
+          configSource:
+            ads: {}
+            resourceApiVersion: V3
+          routeConfigName: test-listener-modify
+        serverHeaderTransformation: PASS_THROUGH
+        statPrefix: http-10080
+        useRemoteAddress: true
+    name: test-listener-modify
+  maxConnectionsToAcceptPerSocketEvent: 1
+  name: test-listener-modify
+  perConnectionBufferLimitBytes: 32768
+  statPrefix: extension-modified-listener
+- address:
+    socketAddress:
+      address: 0.0.0.0
+      portValue: 10081
+  defaultFilterChain:
+    filters:
+    - name: envoy.filters.network.http_connection_manager
+      typedConfig:
+        '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
+        commonHttpProtocolOptions:
+          headersWithUnderscoresAction: REJECT_REQUEST
+        http2ProtocolOptions:
+          initialConnectionWindowSize: 1048576
+          initialStreamWindowSize: 65536
+          maxConcurrentStreams: 100
+        httpFilters:
+        - name: envoy.filters.http.router
+          typedConfig:
+            '@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
+            suppressEnvoyHeaders: true
+        mergeSlashes: true
+        normalizePath: true
+        pathWithEscapedSlashesAction: UNESCAPE_AND_REDIRECT
+        rds:
+          configSource:
+            ads: {}
+            resourceApiVersion: V3
+          routeConfigName: second-listener
+        serverHeaderTransformation: PASS_THROUGH
+        statPrefix: http-10081
+        useRemoteAddress: true
+    name: second-listener
+  maxConnectionsToAcceptPerSocketEvent: 1
+  name: second-listener
+  perConnectionBufferLimitBytes: 32768
+- name: extension-injected-listener
+  statPrefix: extension-injected
diff --git a/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.routes.yaml b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.routes.yaml
new file mode 100644
index 000000000..1461a5960
--- /dev/null
+++ b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.routes.yaml
@@ -0,0 +1,33 @@
+- ignorePortInHostMatching: true
+  name: test-listener-modify
+  virtualHosts:
+  - domains:
+    - '*'
+    name: test-listener-modify/*
+    routes:
+    - match:
+        prefix: /
+      name: test-route-modify
+      route:
+        cluster: test-route-dest
+        upgradeConfigs:
+        - upgradeType: websocket
+- ignorePortInHostMatching: true
+  name: second-listener
+  virtualHosts:
+  - domains:
+    - example.com
+    name: second-listener/example_com
+    routes:
+    - match:
+        pathSeparatedPrefix: /api
+      name: second-route
+      route:
+        cluster: second-route-dest
+        upgradeConfigs:
+        - upgradeType: websocket
+- name: extension-injected-route
+  responseHeadersToAdd:
+  - header:
+      key: x-extension-injected
+      value: route
diff --git a/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.secrets.yaml b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.secrets.yaml
new file mode 100644
index 000000000..b04034756
--- /dev/null
+++ b/internal/xds/translator/testdata/out/extension-xds-ir/post-translate-listeners-routes.secrets.yaml
@@ -0,0 +1,4 @@
+- genericSecret:
+    secret:
+      inlineString: super-secret-extension-secret
+  name: mock-extension-injected-secret
diff --git a/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.clusters.yaml b/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.clusters.yaml
new file mode 100644
index 000000000..054f90bb7
--- /dev/null
+++ b/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.clusters.yaml
@@ -0,0 +1,24 @@
+- circuitBreakers:
+    thresholds:
+    - maxRetries: 1024
+  commonLbConfig: {}
+  connectTimeout: 10s
+  dnsLookupFamily: V4_PREFERRED
+  edsClusterConfig:
+    edsConfig:
+      ads: {}
+      resourceApiVersion: V3
+    serviceName: first-route-dest
+  ignoreHealthOnHostRemoval: true
+  lbPolicy: LEAST_REQUEST
+  loadBalancingPolicy:
+    policies:
+    - typedExtensionConfig:
+        name: envoy.load_balancing_policies.least_request
+        typedConfig:
+          '@type': type.googleapis.com/envoy.extensions.load_balancing_policies.least_request.v3.LeastRequest
+          localityLbConfig:
+            localityWeightedLbConfig: {}
+  name: first-route-dest
+  perConnectionBufferLimitBytes: 32768
+  type: EDS
diff --git a/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.endpoints.yaml b/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.endpoints.yaml
new file mode 100644
index 000000000..3b3f2d090
--- /dev/null
+++ b/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.endpoints.yaml
@@ -0,0 +1,12 @@
+- clusterName: first-route-dest
+  endpoints:
+  - lbEndpoints:
+    - endpoint:
+        address:
+          socketAddress:
+            address: 1.2.3.4
+            portValue: 50000
+      loadBalancingWeight: 1
+    loadBalancingWeight: 1
+    locality:
+      region: first-route-dest/backend/0
diff --git a/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.listeners.yaml b/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.listeners.yaml
new file mode 100644
index 000000000..5dd5e46e3
--- /dev/null
+++ b/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.listeners.yaml
@@ -0,0 +1,35 @@
+- address:
+    socketAddress:
+      address: '::'
+      portValue: 10080
+  defaultFilterChain:
+    filters:
+    - name: envoy.filters.network.http_connection_manager
+      typedConfig:
+        '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
+        commonHttpProtocolOptions:
+          headersWithUnderscoresAction: REJECT_REQUEST
+        http2ProtocolOptions:
+          initialConnectionWindowSize: 1048576
+          initialStreamWindowSize: 65536
+          maxConcurrentStreams: 100
+        httpFilters:
+        - name: envoy.filters.http.router
+          typedConfig:
+            '@type': type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
+            suppressEnvoyHeaders: true
+        mergeSlashes: true
+        normalizePath: true
+        pathWithEscapedSlashesAction: UNESCAPE_AND_REDIRECT
+        rds:
+          configSource:
+            ads: {}
+            resourceApiVersion: V3
+          routeConfigName: first-listener
+        serverHeaderTransformation: PASS_THROUGH
+        statPrefix: http-10080
+        useRemoteAddress: true
+    name: first-listener
+  maxConnectionsToAcceptPerSocketEvent: 1
+  name: first-listener
+  perConnectionBufferLimitBytes: 32768
diff --git a/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.routes.yaml b/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.routes.yaml
new file mode 100644
index 000000000..1eabe7a1b
--- /dev/null
+++ b/internal/xds/translator/testdata/out/xds-ir/retry-reset-before-request.routes.yaml
@@ -0,0 +1,45 @@
+- ignorePortInHostMatching: true
+  name: first-listener
+  virtualHosts:
+  - domains:
+    - '*'
+    name: first-listener/*
+    routes:
+    - match:
+        prefix: /
+      name: reset-before-request-route
+      route:
+        cluster: first-route-dest
+        retryPolicy:
+          hostSelectionRetryMaxAttempts: "5"
+          numRetries: 3
+          perTryTimeout: 0.250s
+          retryBackOff:
+            baseInterval: 0.100s
+            maxInterval: 10s
+          retryHostPredicate:
+          - name: envoy.retry_host_predicates.previous_hosts
+            typedConfig:
+              '@type': type.googleapis.com/envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate
+          retryOn: reset-before-request
+        upgradeConfigs:
+        - upgradeType: websocket
+  - domains:
+    - foo
+    name: first-listener/foo
+    routes:
+    - match:
+        prefix: /
+      name: mixed-triggers-route
+      route:
+        cluster: first-route-dest
+        retryPolicy:
+          hostSelectionRetryMaxAttempts: "5"
+          numRetries: 5
+          retryHostPredicate:
+          - name: envoy.retry_host_predicates.previous_hosts
+            typedConfig:
+              '@type': type.googleapis.com/envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate
+          retryOn: reset,reset-before-request,connect-failure
+        upgradeConfigs:
+        - upgradeType: websocket
diff --git a/internal/xds/translator/testdata/out/xds-ir/retry.routes.yaml b/internal/xds/translator/testdata/out/xds-ir/retry.routes.yaml
index 456d6c203..d07883d92 100644
--- a/internal/xds/translator/testdata/out/xds-ir/retry.routes.yaml
+++ b/internal/xds/translator/testdata/out/xds-ir/retry.routes.yaml
@@ -57,7 +57,7 @@
           - name: envoy.retry_host_predicates.previous_hosts
             typedConfig:
               '@type': type.googleapis.com/envoy.extensions.retry.host.previous_hosts.v3.PreviousHostsPredicate
-          retryOn: reset,connect-failure
+          retryOn: reset,reset-before-request,connect-failure
           retryPriority:
             name: envoy.retry_priorities.previous_priorities
             typedConfig:
diff --git a/internal/xds/translator/translator_test.go b/internal/xds/translator/translator_test.go
index 71163eabb..130fb086f 100644
--- a/internal/xds/translator/translator_test.go
+++ b/internal/xds/translator/translator_test.go
@@ -21,6 +21,7 @@ import (
 	"github.com/google/go-cmp/cmp/cmpopts"
 	"github.com/stretchr/testify/require"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	"k8s.io/utils/ptr"
 	"sigs.k8s.io/yaml"
 
 	egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
@@ -316,6 +317,15 @@ func TestTranslateXdsWithExtensionErrorsWhenFailOpen(t *testing.T) {
 							egv1a1.XDSCluster,
 							egv1a1.XDSTranslation,
 						},
+						// Enable listeners and routes for PostTranslateModifyHook for these tests
+						Translation: &egv1a1.TranslationConfig{
+							Listener: &egv1a1.ListenerTranslationConfig{
+								IncludeAll: ptr.To(true),
+							},
+							Route: &egv1a1.RouteTranslationConfig{
+								IncludeAll: ptr.To(true),
+							},
+						},
 					},
 				},
 			}
@@ -448,6 +458,15 @@ func TestTranslateXdsWithExtensionErrorsWhenFailClosed(t *testing.T) {
 							egv1a1.XDSHTTPListener,
 							egv1a1.XDSTranslation,
 						},
+						// Enable listeners and routes for PostTranslateModifyHook for these tests
+						Translation: &egv1a1.TranslationConfig{
+							Listener: &egv1a1.ListenerTranslationConfig{
+								IncludeAll: ptr.To(true),
+							},
+							Route: &egv1a1.RouteTranslationConfig{
+								IncludeAll: ptr.To(true),
+							},
+						},
 					},
 				},
 			}
diff --git a/site/content/en/latest/api/extension_types.md b/site/content/en/latest/api/extension_types.md
index 9dd5ecf16..c2645e233 100644
--- a/site/content/en/latest/api/extension_types.md
+++ b/site/content/en/latest/api/extension_types.md
@@ -129,6 +129,7 @@ _Appears in:_
 | ---   | ---  | ---      | ---     | ---         |
 | `timeout` | _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#duration-v1-meta)_ |  false  | 1s | Timeout defines the time to wait for a health check response. |
 | `interval` | _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#duration-v1-meta)_ |  false  | 3s | Interval defines the time between active health checks. |
+| `initialJitter` | _[Duration](https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.Duration)_ |  false  |  | InitialJitter defines the maximum time Envoy will wait before the first health check.<br />Envoy will randomly select a value between 0 and the initial jitter value. |
 | `unhealthyThreshold` | _integer_ |  false  | 3 | UnhealthyThreshold defines the number of unhealthy health checks required before a backend host is marked unhealthy. |
 | `healthyThreshold` | _integer_ |  false  | 1 | HealthyThreshold defines the number of healthy health checks required before a backend host is marked healthy. |
 | `type` | _[ActiveHealthCheckerType](#activehealthcheckertype)_ |  true  |  | Type defines the type of health checker. |
@@ -833,6 +834,20 @@ _Appears in:_
 | `http2` | _[HTTP2Settings](#http2settings)_ |  false  |  | HTTP2 provides HTTP/2 configuration for backend connections. |
 
 
+#### ClusterTranslationConfig
+
+
+
+
+
+_Appears in:_
+- [TranslationConfig](#translationconfig)
+
+| Field | Type | Required | Default | Description |
+| ---   | ---  | ---      | ---     | ---         |
+| `includeAll` | _boolean_ |  false  |  | IncludeAll defines whether all clusters should be included in the translation hook.<br />Default is true for backward compatibility. |
+
+
 #### Compression
 
 
@@ -3028,6 +3043,20 @@ _Appears in:_
 | `disable` | _boolean_ |  true  |  | Disable provides the option to turn off leader election, which is enabled by default. |
 
 
+#### ListenerTranslationConfig
+
+
+
+
+
+_Appears in:_
+- [TranslationConfig](#translationconfig)
+
+| Field | Type | Required | Default | Description |
+| ---   | ---  | ---      | ---     | ---         |
+| `includeAll` | _boolean_ |  false  |  | IncludeAll defines whether all listeners should be included in the translation hook.<br />Default is false. |
+
+
 #### LiteralCustomTag
 
 
@@ -4369,6 +4398,20 @@ _Appears in:_
 
 
 
+#### RouteTranslationConfig
+
+
+
+
+
+_Appears in:_
+- [TranslationConfig](#translationconfig)
+
+| Field | Type | Required | Default | Description |
+| ---   | ---  | ---      | ---     | ---         |
+| `includeAll` | _boolean_ |  false  |  | IncludeAll defines whether all routes should be included in the translation hook.<br />Default is false. |
+
+
 #### RoutingType
 
 _Underlying type:_ _string_
@@ -4386,6 +4429,20 @@ _Appears in:_
 
 
 
+#### SecretTranslationConfig
+
+
+
+
+
+_Appears in:_
+- [TranslationConfig](#translationconfig)
+
+| Field | Type | Required | Default | Description |
+| ---   | ---  | ---      | ---     | ---         |
+| `includeAll` | _boolean_ |  false  |  | IncludeAll defines whether all secrets should be included in the translation hook.<br />Default is true for backward compatibility. |
+
+
 #### SecurityPolicy
 
 
@@ -4887,6 +4944,23 @@ _Appears in:_
 | `Datadog` |  | 
 
 
+#### TranslationConfig
+
+
+
+TranslationConfig defines the configuration for the translation hook.
+
+_Appears in:_
+- [XDSTranslatorHooks](#xdstranslatorhooks)
+
+| Field | Type | Required | Default | Description |
+| ---   | ---  | ---      | ---     | ---         |
+| `listener` | _[ListenerTranslationConfig](#listenertranslationconfig)_ |  false  |  | Listener defines the configuration for the listener translation hook. |
+| `route` | _[RouteTranslationConfig](#routetranslationconfig)_ |  false  |  | Route defines the configuration for the route translation hook. |
+| `cluster` | _[ClusterTranslationConfig](#clustertranslationconfig)_ |  false  |  | Cluster defines the configuration for the cluster translation hook. |
+| `secret` | _[SecretTranslationConfig](#secrettranslationconfig)_ |  false  |  | Secret defines the configuration for the secret translation hook. |
+
+
 #### TriggerEnum
 
 _Underlying type:_ _string_
@@ -4901,6 +4975,7 @@ _Appears in:_
 | `5xx` | The upstream server responds with any 5xx response code, or does not respond at all (disconnect/reset/read timeout).<br />Includes connect-failure and refused-stream.<br /> | 
 | `gateway-error` | The response is a gateway error (502,503 or 504).<br /> | 
 | `reset` | The upstream server does not respond at all (disconnect/reset/read timeout.)<br /> | 
+| `reset-before-request` | Like reset, but only retry if the request headers have not been sent to the upstream server.<br /> | 
 | `connect-failure` | Connection failure to the upstream server (connect timeout, etc.). (Included in *5xx*)<br /> | 
 | `retriable-4xx` | The upstream server responds with a retriable 4xx response code.<br />Currently, the only response code in this category is 409.<br /> | 
 | `refused-stream` | The upstream server resets the stream with a REFUSED_STREAM error code.<br /> | 
@@ -5060,6 +5135,7 @@ _Appears in:_
 | ---   | ---  | ---      | ---     | ---         |
 | `pre` | _[XDSTranslatorHook](#xdstranslatorhook) array_ |  true  |  |  |
 | `post` | _[XDSTranslatorHook](#xdstranslatorhook) array_ |  true  |  |  |
+| `translation` | _[TranslationConfig](#translationconfig)_ |  true  |  | Translation defines the configuration for the translation hook. |
 
 
 #### XFCCCertData
diff --git a/site/content/en/latest/concepts/introduction/gateway_api_extensions/backend-traffic-policy.md b/site/content/en/latest/concepts/introduction/gateway_api_extensions/backend-traffic-policy.md
index b0313539e..995d66e7d 100644
--- a/site/content/en/latest/concepts/introduction/gateway_api_extensions/backend-traffic-policy.md
+++ b/site/content/en/latest/concepts/introduction/gateway_api_extensions/backend-traffic-policy.md
@@ -69,6 +69,77 @@ In this example `my-route` and `my-gateway` would both affect the route. However
 
 Lastly, it's important to note that even when you apply a policy to a Gateway, the policy's effects are tracked separately for each backend service referenced in your routes. For example, if you set up circuit breaking on a Gateway with multiple backend services, each backend service will have its own independent circuit breaker counter. This ensures that issues with one backend service don't affect the others.
 
+## Policy Merging
+
+BackendTrafficPolicy supports merging configurations using the `mergeType` field, which allows route-level policies to combine with gateway-level policies rather than completely overriding them. This enables layered policy strategies where platform teams can set baseline configurations at the Gateway level, while application teams can add specific policies for their routes.
+
+### Merge Types
+
+- **StrategicMerge**: Uses Kubernetes strategic merge patch semantics, providing intelligent merging for complex data structures including arrays
+- **JSONMerge**: Uses RFC 7396 JSON Merge Patch semantics, with simple replacement strategy where arrays are completely replaced
+
+### Example Usage
+
+Here's an example demonstrating policy merging for rate limiting:
+
+```yaml
+# Platform team: Gateway-level policy with global abuse prevention
+apiVersion: gateway.envoyproxy.io/v1alpha1
+kind: BackendTrafficPolicy
+metadata:
+  name: global-backendtrafficpolicy
+spec:
+  rateLimit:
+    type: Global
+    global:
+      rules:
+      - clientSelectors:
+        - sourceCIDR:
+            type: Distinct
+            value: 0.0.0.0/0
+        limit:
+          requests: 100
+          unit: Second
+        shared: true
+  targetRefs:
+  - group: gateway.networking.k8s.io
+    kind: Gateway
+    name: eg
+
+---
+# Application team: Route-level policy with specific limits
+apiVersion: gateway.envoyproxy.io/v1alpha1
+kind: BackendTrafficPolicy
+metadata:
+  name: route-backendtrafficpolicy
+spec:
+  mergeType: StrategicMerge  # Enables merging with gateway policy
+  rateLimit:
+    type: Global
+    global:
+      rules:
+      - clientSelectors:
+        - sourceCIDR:
+            type: Distinct
+            value: 0.0.0.0/0
+        limit:
+          requests: 5
+          unit: Minute
+        shared: false
+  targetRefs:
+  - group: gateway.networking.k8s.io
+    kind: HTTPRoute
+    name: signup-service-httproute
+```
+
+In this example, the route-level policy merges with the gateway-level policy, resulting in both rate limits being enforced: the global 100 requests/second abuse limit and the route-specific 5 requests/minute limit.
+
+### Key Constraints
+
+- The `mergeType` field can only be set on policies targeting child resources (like HTTPRoute), not parent resources (like Gateway)
+- When `mergeType` is unset, no merging occurs - only the most specific policy takes effect
+- The merged configuration combines both policies, enabling layered protection strategies
+
 ## Related Resources
 
 - [Circuit Breakers](../../../tasks/traffic/circuit-breaker.md)
diff --git a/site/content/en/latest/tasks/extensibility/extension-server.md b/site/content/en/latest/tasks/extensibility/extension-server.md
index 63b865e81..a6a83f310 100644
--- a/site/content/en/latest/tasks/extensibility/extension-server.md
+++ b/site/content/en/latest/tasks/extensibility/extension-server.md
@@ -18,22 +18,113 @@ especially when using the same extension server across different Envoy Gateway v
 
 ## Introduction
 
-One of the Envoy Gateway project goals is to "provide a common foundation for vendors to 
+One of the Envoy Gateway project goals is to "provide a common foundation for vendors to
 build value-added products without having to re-engineer fundamental interactions". The
 Envoy Gateway Extension Server provides a mechanism where Envoy Gateway tracks all provider
 resources and then calls a set of hooks that allow the generated xDS configuration to be
 modified before it is sent to Envoy Proxy. See the [design documentation][] for full details.
 
+## Extension Hooks Overview
+
+Envoy Gateway provides several extension hooks that are called at different stages of the xDS translation process. These hooks allow extensions to modify various aspects of the generated xDS configuration:
+
+### Available Hooks
+
+| Hook Type | Hook Method Name | Purpose | Resources Modified | Execution Context |
+|-----------|------------------|---------|-------------------|-------------------|
+| `Route` | `PostRouteModifyHook` | Modify individual routes | Single `envoy.config.route.v3.Route` | Per-route, only for routes with extension filters |
+| `Cluster` | `PostClusterModifyHook` | Modify clusters for custom backends | Single `envoy.config.cluster.v3.Cluster` | Per-cluster, only for custom backend clusters |
+| `VirtualHost` | `PostVirtualHostModifyHook` | Modify virtual hosts and add custom routes | Single `envoy.config.route.v3.VirtualHost` | Per-virtual-host |
+| `HTTPListener` | `PostHTTPListenerModifyHook` | Modify HTTP listeners | Single `envoy.config.listener.v3.Listener` | Per-listener |
+| `Translation` | `PostTranslateModifyHook` | Global modification of all xDS resources | All clusters, secrets, listeners, and routes | Once per translation cycle |
+
+### Hook Execution Order
+
+The hooks are executed in the following order during xDS translation:
+
+1. **Route Processing Phase**
+   - `Route` hook (`PostRouteModifyHook`): Called for each route that has extension filters attached
+   - `Cluster` hook (`PostClusterModifyHook`): Called for each cluster generated from custom backend references
+
+2. **Virtual Host Processing Phase**
+   - `VirtualHost` hook (`PostVirtualHostModifyHook`): Called for each virtual host after all routes are processed
+
+3. **Listener Processing Phase**
+   - `HTTPListener` hook (`PostHTTPListenerModifyHook`): Called for each HTTP listener after virtual hosts are configured
+
+4. **Final Translation Phase**
+   - `Translation` hook (`PostTranslateModifyHook`): Called once with all generated clusters, secrets, listeners, and routes
+
+### Hook Details
+
+#### Route Hook (`PostRouteModifyHook`)
+
+- **When called**: After each individual route is generated from an HTTPRoute with extension filters
+- **Input**: Single route, hostnames, and extension resources from the HTTPRoute
+- **Output**: Modified route
+- **Use cases**: Add route-specific filters, modify route configuration, add typed per-filter config
+
+#### Cluster Hook (`PostClusterModifyHook`)
+
+- **When called**: During cluster generation for custom backend references only
+- **Input**: Single cluster and extension resources from the backend reference
+- **Output**: Modified cluster
+- **Use cases**: Configure custom backend clusters, add health checks, modify load balancing
+
+#### VirtualHost Hook (`PostVirtualHostModifyHook`)
+
+- **When called**: After all routes for a virtual host are processed
+- **Input**: Complete virtual host with all its routes
+- **Output**: Modified virtual host (can add/remove/modify routes)
+- **Use cases**: Add virtual host-level configuration, inject additional routes
+
+#### HTTPListener Hook (`PostHTTPListenerModifyHook`)
+
+- **When called**: After listener is fully configured with all virtual hosts
+- **Input**: Complete HTTP listener and associated extension policies
+- **Output**: Modified listener
+- **Use cases**: Add listener filters, modify listener configuration, add authentication
+
+#### Translation Hook (`PostTranslateModifyHook`)
+
+- **When called**: After all individual resources are generated and processed
+- **Input**: All clusters, secrets, listeners, and routes, plus extension policies
+- **Output**: Complete set of modified resources
+- **Use cases**: Global resource injection, cross-resource modifications, cleanup operations
+
+### Configuration
+
+Extensions must specify which hooks they want to use in the `extensionManager.hooks` configuration:
+
+```yaml
+extensionManager:
+  hooks:
+    xdsTranslator:
+      post:
+        - Route          # Enable route modification hook
+        - VirtualHost    # Enable virtual host modification hook
+        - HTTPListener   # Enable HTTP listener modification hook
+        - Cluster        # Enable cluster modification hook
+        - Translation    # Enable global translation hook
+      # Configure which resources to include in PostTranslateModifyHook
+      # Default: true for clusters and secrets (for backward compatibility)
+      # Default: false for listeners and routes (for backward compatibility)
+      translation:
+        listener:
+          includeAll: true
+        route:
+          includeAll: true
+```
+
 This task sets up an example extension server that adds the Envoy Proxy Basic Authentication
-HTTP filter to all the listeners generated by Envoy Gateway. The example extension server 
+HTTP filter to all the listeners generated by Envoy Gateway. The example extension server
 includes its own CRD which allows defining username/password pairs that will be accepted by
-the Envoy Proxy. 
+the Envoy Proxy.
 
 **Note:** Envoy Gateway supports adding Basic Authentication to routes using a [SecurityPolicy][].
 See [this task](../security/basic-auth) for the preferred way to configure Basic 
 Authentication.
 
-
 ## Quickstart
 
 ### Prerequisites
diff --git a/test/cel-validation/envoyextensionpolicy_test.go b/test/cel-validation/envoyextensionpolicy_test.go
index 977dc3684..7202634be 100644
--- a/test/cel-validation/envoyextensionpolicy_test.go
+++ b/test/cel-validation/envoyextensionpolicy_test.go
@@ -447,6 +447,112 @@ func TestEnvoyExtensionPolicyTarget(t *testing.T) {
 				"spec.extProc[0].processingMode.request.body: Unsupported value: \"not-a-body-mode\": supported values: \"Streamed\", \"Buffered\", \"BufferedPartial\"",
 			},
 		},
+		{
+			desc: "valid ExtProc with request attributes and failOpen true",
+			mutate: func(sp *egv1a1.EnvoyExtensionPolicy) {
+				sp.Spec = egv1a1.EnvoyExtensionPolicySpec{
+					ExtProc: []egv1a1.ExtProc{
+						{
+							BackendCluster: egv1a1.BackendCluster{
+								BackendRefs: []egv1a1.BackendRef{
+									{
+										BackendObjectReference: gwapiv1.BackendObjectReference{
+											Name: "grpc-proc-service",
+											Port: ptr.To(gwapiv1.PortNumber(80)),
+										},
+									},
+								},
+							},
+							ProcessingMode: &egv1a1.ExtProcProcessingMode{
+								Request: &egv1a1.ProcessingModeOptions{
+									Attributes: []string{"request.headers"},
+								},
+							},
+							FailOpen: ptr.To(true),
+						},
+					},
+					PolicyTargetReferences: egv1a1.PolicyTargetReferences{
+						TargetRef: &gwapiv1a2.LocalPolicyTargetReferenceWithSectionName{
+							LocalPolicyTargetReference: gwapiv1a2.LocalPolicyTargetReference{
+								Group: "gateway.networking.k8s.io",
+								Kind:  "Gateway",
+								Name:  "eg",
+							},
+						},
+					},
+				}
+			},
+			wantErrors: []string{},
+		},
+		{
+			desc: "valid ExtProc with response attributes and failOpen true",
+			mutate: func(sp *egv1a1.EnvoyExtensionPolicy) {
+				sp.Spec = egv1a1.EnvoyExtensionPolicySpec{
+					ExtProc: []egv1a1.ExtProc{
+						{
+							BackendCluster: egv1a1.BackendCluster{
+								BackendRefs: []egv1a1.BackendRef{
+									{
+										BackendObjectReference: gwapiv1.BackendObjectReference{
+											Name: "grpc-proc-service",
+											Port: ptr.To(gwapiv1.PortNumber(80)),
+										},
+									},
+								},
+							},
+							ProcessingMode: &egv1a1.ExtProcProcessingMode{
+								Response: &egv1a1.ProcessingModeOptions{
+									Attributes: []string{"response.headers"},
+								},
+							},
+							FailOpen: ptr.To(true),
+						},
+					},
+					PolicyTargetReferences: egv1a1.PolicyTargetReferences{
+						TargetRef: &gwapiv1a2.LocalPolicyTargetReferenceWithSectionName{
+							LocalPolicyTargetReference: gwapiv1a2.LocalPolicyTargetReference{
+								Group: "gateway.networking.k8s.io",
+								Kind:  "Gateway",
+								Name:  "eg",
+							},
+						},
+					},
+				}
+			},
+			wantErrors: []string{},
+		},
+		{
+			desc: "valid ExtProc with failOpen true",
+			mutate: func(sp *egv1a1.EnvoyExtensionPolicy) {
+				sp.Spec = egv1a1.EnvoyExtensionPolicySpec{
+					ExtProc: []egv1a1.ExtProc{
+						{
+							BackendCluster: egv1a1.BackendCluster{
+								BackendRefs: []egv1a1.BackendRef{
+									{
+										BackendObjectReference: gwapiv1.BackendObjectReference{
+											Name: "grpc-proc-service",
+											Port: ptr.To(gwapiv1.PortNumber(80)),
+										},
+									},
+								},
+							},
+							FailOpen: ptr.To(true),
+						},
+					},
+					PolicyTargetReferences: egv1a1.PolicyTargetReferences{
+						TargetRef: &gwapiv1a2.LocalPolicyTargetReferenceWithSectionName{
+							LocalPolicyTargetReference: gwapiv1a2.LocalPolicyTargetReference{
+								Group: "gateway.networking.k8s.io",
+								Kind:  "Gateway",
+								Name:  "eg",
+							},
+						},
+					},
+				}
+			},
+			wantErrors: []string{},
+		},
 		{
 			desc: "valid ExtProc without FullDuplexStreamed body and failOpen true",
 			mutate: func(sp *egv1a1.EnvoyExtensionPolicy) {
diff --git a/test/helm/gateway-crds-helm/all.out.yaml b/test/helm/gateway-crds-helm/all.out.yaml
index cf3656837..f43b093dc 100644
--- a/test/helm/gateway-crds-helm/all.out.yaml
+++ b/test/helm/gateway-crds-helm/all.out.yaml
@@ -17990,6 +17990,13 @@ spec:
                         required:
                         - path
                         type: object
+                      initialJitter:
+                        description: |-
+                          InitialJitter defines the maximum time Envoy will wait before the first health check.
+                          Envoy will randomly select a value between 0 and the initial jitter value.
+                        format: duration
+                        pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                        type: string
                       interval:
                         default: 3s
                         description: Interval defines the time between active health
@@ -19293,6 +19300,7 @@ spec:
                           - 5xx
                           - gateway-error
                           - reset
+                          - reset-before-request
                           - connect-failure
                           - retriable-4xx
                           - refused-stream
@@ -21829,6 +21837,13 @@ spec:
                                   required:
                                   - path
                                   type: object
+                                initialJitter:
+                                  description: |-
+                                    InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                    Envoy will randomly select a value between 0 and the initial jitter value.
+                                  format: duration
+                                  pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                  type: string
                                 interval:
                                   default: 3s
                                   description: Interval defines the time between active
@@ -22291,6 +22306,7 @@ spec:
                                     - 5xx
                                     - gateway-error
                                     - reset
+                                    - reset-before-request
                                     - connect-failure
                                     - retriable-4xx
                                     - refused-stream
@@ -22487,10 +22503,11 @@ spec:
                       ''gateway.envoyproxy.io'')) : true'
                   - message: If FullDuplexStreamed body processing mode is used, FailOpen
                       must be false.
-                    rule: '!(has(self.failOpen) && self.failOpen == true && ((has(self.processingMode.request.body)
+                    rule: '!(has(self.failOpen) && self.failOpen == true && has(self.processingMode)
+                      && ((has(self.processingMode.request) && has(self.processingMode.request.body)
                       && self.processingMode.request.body == ''FullDuplexStreamed'')
-                      || (has(self.processingMode.response.body) && self.processingMode.response.body
-                      == ''FullDuplexStreamed'')))'
+                      || (has(self.processingMode.response) && has(self.processingMode.response.body)
+                      && self.processingMode.response.body == ''FullDuplexStreamed'')))'
                 maxItems: 16
                 type: array
               lua:
@@ -34835,6 +34852,13 @@ spec:
                                                     required:
                                                     - path
                                                     type: object
+                                                  initialJitter:
+                                                    description: |-
+                                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                                    format: duration
+                                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                                    type: string
                                                   interval:
                                                     default: 3s
                                                     description: Interval defines
@@ -35343,6 +35367,7 @@ spec:
                                                       - 5xx
                                                       - gateway-error
                                                       - reset
+                                                      - reset-before-request
                                                       - connect-failure
                                                       - retriable-4xx
                                                       - refused-stream
@@ -35907,6 +35932,13 @@ spec:
                                                     required:
                                                     - path
                                                     type: object
+                                                  initialJitter:
+                                                    description: |-
+                                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                                    format: duration
+                                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                                    type: string
                                                   interval:
                                                     default: 3s
                                                     description: Interval defines
@@ -36415,6 +36447,7 @@ spec:
                                                       - 5xx
                                                       - gateway-error
                                                       - reset
+                                                      - reset-before-request
                                                       - connect-failure
                                                       - retriable-4xx
                                                       - refused-stream
@@ -37082,6 +37115,13 @@ spec:
                                               required:
                                               - path
                                               type: object
+                                            initialJitter:
+                                              description: |-
+                                                InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                Envoy will randomly select a value between 0 and the initial jitter value.
+                                              format: duration
+                                              pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                              type: string
                                             interval:
                                               default: 3s
                                               description: Interval defines the time
@@ -37566,6 +37606,7 @@ spec:
                                                 - 5xx
                                                 - gateway-error
                                                 - reset
+                                                - reset-before-request
                                                 - connect-failure
                                                 - retriable-4xx
                                                 - refused-stream
@@ -38159,6 +38200,13 @@ spec:
                                         required:
                                         - path
                                         type: object
+                                      initialJitter:
+                                        description: |-
+                                          InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                          Envoy will randomly select a value between 0 and the initial jitter value.
+                                        format: duration
+                                        pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                        type: string
                                       interval:
                                         default: 3s
                                         description: Interval defines the time between
@@ -38639,6 +38687,7 @@ spec:
                                           - 5xx
                                           - gateway-error
                                           - reset
+                                          - reset-before-request
                                           - connect-failure
                                           - retriable-4xx
                                           - refused-stream
@@ -40056,6 +40105,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -40527,6 +40583,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
@@ -41026,6 +41083,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -41497,6 +41561,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
@@ -42192,6 +42257,13 @@ spec:
                                           required:
                                           - path
                                           type: object
+                                        initialJitter:
+                                          description: |-
+                                            InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                            Envoy will randomly select a value between 0 and the initial jitter value.
+                                          format: duration
+                                          pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                          type: string
                                         interval:
                                           default: 3s
                                           description: Interval defines the time between
@@ -42674,6 +42746,7 @@ spec:
                                             - 5xx
                                             - gateway-error
                                             - reset
+                                            - reset-before-request
                                             - connect-failure
                                             - retriable-4xx
                                             - refused-stream
@@ -43409,6 +43482,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -43880,6 +43960,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
diff --git a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
index 6dff81bf3..eb1809d82 100644
--- a/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
+++ b/test/helm/gateway-crds-helm/envoy-gateway-crds.out.yaml
@@ -678,6 +678,13 @@ spec:
                         required:
                         - path
                         type: object
+                      initialJitter:
+                        description: |-
+                          InitialJitter defines the maximum time Envoy will wait before the first health check.
+                          Envoy will randomly select a value between 0 and the initial jitter value.
+                        format: duration
+                        pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                        type: string
                       interval:
                         default: 3s
                         description: Interval defines the time between active health
@@ -1981,6 +1988,7 @@ spec:
                           - 5xx
                           - gateway-error
                           - reset
+                          - reset-before-request
                           - connect-failure
                           - retriable-4xx
                           - refused-stream
@@ -4517,6 +4525,13 @@ spec:
                                   required:
                                   - path
                                   type: object
+                                initialJitter:
+                                  description: |-
+                                    InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                    Envoy will randomly select a value between 0 and the initial jitter value.
+                                  format: duration
+                                  pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                  type: string
                                 interval:
                                   default: 3s
                                   description: Interval defines the time between active
@@ -4979,6 +4994,7 @@ spec:
                                     - 5xx
                                     - gateway-error
                                     - reset
+                                    - reset-before-request
                                     - connect-failure
                                     - retriable-4xx
                                     - refused-stream
@@ -5175,10 +5191,11 @@ spec:
                       ''gateway.envoyproxy.io'')) : true'
                   - message: If FullDuplexStreamed body processing mode is used, FailOpen
                       must be false.
-                    rule: '!(has(self.failOpen) && self.failOpen == true && ((has(self.processingMode.request.body)
+                    rule: '!(has(self.failOpen) && self.failOpen == true && has(self.processingMode)
+                      && ((has(self.processingMode.request) && has(self.processingMode.request.body)
                       && self.processingMode.request.body == ''FullDuplexStreamed'')
-                      || (has(self.processingMode.response.body) && self.processingMode.response.body
-                      == ''FullDuplexStreamed'')))'
+                      || (has(self.processingMode.response) && has(self.processingMode.response.body)
+                      && self.processingMode.response.body == ''FullDuplexStreamed'')))'
                 maxItems: 16
                 type: array
               lua:
@@ -17523,6 +17540,13 @@ spec:
                                                     required:
                                                     - path
                                                     type: object
+                                                  initialJitter:
+                                                    description: |-
+                                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                                    format: duration
+                                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                                    type: string
                                                   interval:
                                                     default: 3s
                                                     description: Interval defines
@@ -18031,6 +18055,7 @@ spec:
                                                       - 5xx
                                                       - gateway-error
                                                       - reset
+                                                      - reset-before-request
                                                       - connect-failure
                                                       - retriable-4xx
                                                       - refused-stream
@@ -18595,6 +18620,13 @@ spec:
                                                     required:
                                                     - path
                                                     type: object
+                                                  initialJitter:
+                                                    description: |-
+                                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                                    format: duration
+                                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                                    type: string
                                                   interval:
                                                     default: 3s
                                                     description: Interval defines
@@ -19103,6 +19135,7 @@ spec:
                                                       - 5xx
                                                       - gateway-error
                                                       - reset
+                                                      - reset-before-request
                                                       - connect-failure
                                                       - retriable-4xx
                                                       - refused-stream
@@ -19770,6 +19803,13 @@ spec:
                                               required:
                                               - path
                                               type: object
+                                            initialJitter:
+                                              description: |-
+                                                InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                                Envoy will randomly select a value between 0 and the initial jitter value.
+                                              format: duration
+                                              pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                              type: string
                                             interval:
                                               default: 3s
                                               description: Interval defines the time
@@ -20254,6 +20294,7 @@ spec:
                                                 - 5xx
                                                 - gateway-error
                                                 - reset
+                                                - reset-before-request
                                                 - connect-failure
                                                 - retriable-4xx
                                                 - refused-stream
@@ -20847,6 +20888,13 @@ spec:
                                         required:
                                         - path
                                         type: object
+                                      initialJitter:
+                                        description: |-
+                                          InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                          Envoy will randomly select a value between 0 and the initial jitter value.
+                                        format: duration
+                                        pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                        type: string
                                       interval:
                                         default: 3s
                                         description: Interval defines the time between
@@ -21327,6 +21375,7 @@ spec:
                                           - 5xx
                                           - gateway-error
                                           - reset
+                                          - reset-before-request
                                           - connect-failure
                                           - retriable-4xx
                                           - refused-stream
@@ -22744,6 +22793,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -23215,6 +23271,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
@@ -23714,6 +23771,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -24185,6 +24249,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream
@@ -24880,6 +24945,13 @@ spec:
                                           required:
                                           - path
                                           type: object
+                                        initialJitter:
+                                          description: |-
+                                            InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                            Envoy will randomly select a value between 0 and the initial jitter value.
+                                          format: duration
+                                          pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                          type: string
                                         interval:
                                           default: 3s
                                           description: Interval defines the time between
@@ -25362,6 +25434,7 @@ spec:
                                             - 5xx
                                             - gateway-error
                                             - reset
+                                            - reset-before-request
                                             - connect-failure
                                             - retriable-4xx
                                             - refused-stream
@@ -26097,6 +26170,13 @@ spec:
                                     required:
                                     - path
                                     type: object
+                                  initialJitter:
+                                    description: |-
+                                      InitialJitter defines the maximum time Envoy will wait before the first health check.
+                                      Envoy will randomly select a value between 0 and the initial jitter value.
+                                    format: duration
+                                    pattern: ^([0-9]{1,5}(h|m|s|ms)){1,4}$
+                                    type: string
                                   interval:
                                     default: 3s
                                     description: Interval defines the time between
@@ -26568,6 +26648,7 @@ spec:
                                       - 5xx
                                       - gateway-error
                                       - reset
+                                      - reset-before-request
                                       - connect-failure
                                       - retriable-4xx
                                       - refused-stream