diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md index b889066..7059a96 100644 --- a/README.md +++ b/README.md @@ -1,197 +1,12 @@ -# Jeffrey Epstein Prison Video Forensic Analysis +# React + Vite -A comprehensive computational analysis of the DOJ's "raw" surveillance video that reveals definitive evidence of professional video editing using Adobe software. +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. -## ๐Ÿšจ Key Findings +Currently, two official plugins are available: -This analysis provides **computational proof** that the DOJ's "raw" surveillance video: -- Was processed through **Adobe Media Encoder 2024.0** -- Contains metadata from **multiple source video files** -- Shows evidence of **professional video editing and splicing** -- Has a **splice point at 6 hours 36 minutes** into the video -- Contradicts claims of being "raw" surveillance footage +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh -## ๐Ÿ“Š Live Analysis Report - -**[๐Ÿ” View Interactive Analysis Report](https://codegen-sh.github.io/forensic-analysis/)** - -The live report includes: -- Step-by-step computational analysis -- Visual frame comparisons showing splice evidence -- Complete metadata breakdown -- Technical methodology details - -## ๐Ÿ”ฌ Technical Evidence Summary - -### Adobe Editing Signatures -- **Software**: Adobe Media Encoder 2024.0 (Windows) -- **User Account**: `MJCOLE~1` -- **Project File**: `mcc_4.prproj` -- **XMP Metadata**: Extensive Adobe-specific editing data - -### Source Clips Identified -- **File 1**: `2025-05-22 21-12-48.mp4` (23.76 seconds) -- **File 2**: `2025-05-22 16-35-21.mp4` (15.56 seconds) -- **Total spliced content**: ~39 seconds - -### Splice Point Evidence -- **Location**: 23,760.47 seconds (6h 36m 0s) into the video -- **Visual Evidence**: 5.0% file size change between consecutive frames -- **Timing Accuracy**: Metadata prediction confirmed by frame analysis - -## ๐Ÿš€ Quick Start - -### Prerequisites - -#### System Requirements -- Python 3.6 or higher -- At least 25 GB free disk space -- Internet connection for video download - -#### Required Tools - -**Ubuntu/Debian:** -```bash -sudo apt update -sudo apt install ffmpeg exiftool python3 python3-pip -``` - -**macOS (with Homebrew):** -```bash -brew install ffmpeg exiftool python3 -``` - -**Windows:** -1. Install Python from https://python.org -2. Download ffmpeg from https://ffmpeg.org/download.html and add to PATH -3. Download exiftool from https://exiftool.org and add to PATH - -### Installation & Usage - -```bash -# Clone the repository -git clone https://github.com/codegen-sh/forensic-analysis.git -cd forensic-analysis - -# Install Python dependencies (none required - uses standard library) -pip install -r requirements.txt - -# Run the complete analysis -python epstein_video_analyzer.py -``` - -### What the Analysis Does - -1. **Downloads** the 19.5 GB DOJ video automatically -2. **Extracts** comprehensive metadata using industry-standard tools -3. **Identifies** Adobe editing signatures and splice points -4. **Analyzes** frame discontinuities around the splice location -5. **Generates** professional HTML forensic reports -6. **Creates** visual evidence of the splice point - -## ๐Ÿ“ Output Files - -After running the analysis, you'll find: - -- **`analysis_report.html`** - Main forensic report (open in browser) -- **`raw_video.mp4`** - Downloaded DOJ video file (19.5 GB) -- **`metadata.json`** - Complete extracted metadata -- **`xmp_metadata.xml`** - Adobe XMP editing metadata -- **`splice_frames/`** - Extracted frames around splice points -- **`splice_evidence_visualization.html`** - Interactive frame comparison - -## ๐Ÿ” Key Evidence Commands - -### Extract Adobe Editing Metadata -```bash -exiftool -CreatorTool -WindowsAtomUncProjectPath raw_video.mp4 -# Output: Adobe Media Encoder 2024.0 (Windows) -``` - -### Calculate Splice Point Location -```bash -python3 -c "print(6035539564454400 / 254016000000)" -# Output: 23760.47 seconds = 6h 36m 0s -``` - -### Extract Frames Around Splice Point -```bash -ffmpeg -ss 23759 -t 4 -vf "fps=1" -q:v 2 splice_frames/frame_%03d.png raw_video.mp4 -``` - -### Analyze Frame Size Discontinuities -```bash -ls -la splice_frames/frame_*.png | awk '{print $9, $5}' -# Shows 5.0% size jump between frames 2 and 3 -``` - -## ๐Ÿ“Š Evidence Summary - -### Definitive Proof of Editing -- โœ… **Adobe software signatures** embedded in metadata -- โœ… **Multiple source files** identified and documented -- โœ… **Professional editing timeline** with 5 save operations -- โœ… **Splice point location** calculated and visually confirmed -- โœ… **Frame discontinuities** showing 5.0% compression change - -### Chain of Custody Issues -- โŒ **Not raw footage** - processed through professional editing software -- โŒ **Multiple sources** - assembled from separate video files -- โŒ **Content substitution** - 39 seconds replaced at critical time point -- โŒ **Deceptive labeling** - calling edited footage "raw" surveillance - -## ๐Ÿ”— Related Resources - -- [Original Wired Article](https://www.wired.com/story/metadata-shows-the-dojs-raw-jeffrey-epstein-prison-video-was-likely-modified/) -- [DOJ Video Release](https://www.justice.gov/opa/media/1407001/dl?inline) -- [ExifTool Documentation](https://exiftool.org/) -- [FFmpeg Documentation](https://ffmpeg.org/documentation.html) - -## ๐Ÿ› ๏ธ Troubleshooting - -### Common Issues - -**"Tool not found" errors:** -- Ensure ffmpeg and exiftool are installed and in your PATH -- On Windows, restart command prompt after installation - -**Download fails:** -- Check internet connection and disk space (25+ GB required) -- Download may take 10-60 minutes depending on connection speed - -**Memory issues:** -- Ensure at least 4 GB RAM available -- Close other applications during analysis - -**Permission errors:** -- Ensure write permissions in the analysis directory -- Try running from a different location - -## โš–๏ธ Legal and Ethical Considerations - -This analysis is provided for: -- **Digital forensics research and education** -- **Transparency in government evidence presentation** -- **Academic investigation of metadata analysis techniques** -- **Public interest in evidence integrity** - -The analysis: -- Does not modify the original video file -- Focuses solely on technical metadata examination -- Uses standard digital forensics methodologies -- Makes no claims about the events depicted in the video - -## โš ๏ธ Disclaimer - -This tool is provided for educational and research purposes. The analysis is based on technical metadata examination using standard digital forensics practices. Users should verify findings independently and consult with qualified digital forensics experts for legal or evidentiary purposes. - -## ๐Ÿ“„ License - -This project is released under the MIT License. See LICENSE file for details. - ---- - -**Generated by**: Computational forensics analysis -**Last Updated**: January 2025 -**Analysis Version**: 1.0 +## Expanding the ESLint configuration +If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/docs-backup/index.html b/docs-backup/index.html new file mode 100644 index 0000000..7f97b16 --- /dev/null +++ b/docs-backup/index.html @@ -0,0 +1,720 @@ + + + + + + Jeffrey Epstein Prison Video - Forensic Analysis + + + + + + + + + + +
+
+

๐Ÿšจ FORENSIC ANALYSIS REPORT

+

Jeffrey Epstein Prison Video

+

Computational evidence revealing professional video editing in DOJ's "raw" surveillance footage

+
+ +
+

๐ŸŽฏ CRITICAL FINDINGS

+ +
+ +
+
+ 19.5 +
GB Video File
+
+
+ 10.9 +
Hours Duration
+
+
+ 6:36 +
Splice Location
+
+
+ 5.0% +
Frame Size Change
+
+
+ +
+
+

๐Ÿ” Adobe Editing Signatures

+

Definitive proof of professional video editing software usage:

+
+CreatorTool: Adobe Media Encoder 2024.0 (Windows) +WindowsAtomUncProjectPath: MJCOLE~1 +Project: mcc_4.prproj +
+

Command used:

+
+exiftool -CreatorTool -WindowsAtomUncProjectPath raw_video.mp4 +
+
+ +
+

โฐ Splice Point Calculation

+

Adobe timing metadata reveals exact splice location:

+
+Adobe Timing: time:0d6035539564454400f254016000000 +Calculation: 6035539564454400 รท 254016000000 +Result: 23760.47 seconds = 6h 36m 0s +
+

Command used:

+
+python3 -c "print(6035539564454400 / 254016000000)" +
+
+ +
+

๐ŸŽฌ Visual Frame Evidence

+

Frame analysis confirms splice point with compression discontinuity:

+
+Frame 2 (6h36m00s): 2,155,188 bytes +Frame 3 (6h36m01s): 2,263,396 bytes +Size Change: +108,208 bytes (+5.0%) +
+ + +
+

๐ŸŽฌ Interactive Frame Analysis - Splice Point Evidence

+

Use the slider below to examine frames around the splice point and observe the discontinuity:

+ +
+ Frame 1 +
+ Frame 1 of 10 + frame_001.png + Size: Loading... +
+
+ +
+ + + + +
+ +
+ Before Splice (6h35m55s) +
+ After Splice (6h36m05s) +
+ +
+

๐Ÿ” What to look for:

+
    +
  • Frame 2-3: Notice the 5.0% file size jump indicating compression change
  • +
  • Visual artifacts or quality differences between frames
  • +
  • Timing discontinuities at the splice boundary
  • +
+
+
+ +

Commands used:

+
+ffmpeg -ss 23759 -t 4 -vf "fps=1" frames/frame_%03d.png video.mp4 +ls -la frames/*.png | awk '{print $9, $5}' +
+
+ +
+

๐Ÿ“ Source Clips Identified

+

Multiple source files found in Adobe XMP metadata:

+
+Clip 1: 2025-05-22 21-12-48.mp4 (23.76 sec) +Clip 2: 2025-05-22 16-35-21.mp4 (15.56 sec) +Total: 39.32 seconds of replacement content +
+

These clips were spliced into the surveillance video at the 6h 36m mark, replacing original footage.

+
+
+ +
+

๐Ÿ”ฌ Computational Forensics Methodology

+

This analysis used industry-standard digital forensics tools and techniques:

+ +
+

1. Metadata Extraction

+

Used ExifTool to extract all embedded metadata, including Adobe's proprietary XMP editing data.

+
exiftool -j -a -u -g1 raw_video.mp4
+
+ +
+

2. Adobe XMP Analysis

+

Parsed Adobe's internal editing metadata to identify software signatures and timing information.

+
exiftool -xmp -b raw_video.mp4
+
+ +
+

3. Timing Calculation

+

Decoded Adobe's proprietary timing format to locate exact splice points in the video.

+
python3 -c "print(6035539564454400 / 254016000000)"
+
+ +
+

4. Frame Extraction & Analysis

+

Extracted frames around predicted splice points and analyzed file sizes for compression discontinuities.

+
ffmpeg -ss 23759 -t 4 -vf "fps=1" frames/frame_%03d.png video.mp4
+
+
+ +
+

๐Ÿš€ Run Your Own Analysis

+

Verify these findings yourself using our open-source forensic analysis tools

+ ๐Ÿ“ View on GitHub + โฌ‡๏ธ Download Tools +
+ +
+

โš–๏ธ Legal and Ethical Implications

+

This computational analysis reveals several concerning issues:

+ +

Note: This analysis focuses solely on technical metadata examination and makes no claims about the events depicted in the video.

+
+ + +
+ + + + diff --git a/docs-backup/splice_frames/splice_1/frame_001.png b/docs-backup/splice_frames/splice_1/frame_001.png new file mode 100644 index 0000000..f4e8a5e Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_001.png differ diff --git a/docs-backup/splice_frames/splice_1/frame_002.png b/docs-backup/splice_frames/splice_1/frame_002.png new file mode 100644 index 0000000..5b4d5b1 Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_002.png differ diff --git a/docs-backup/splice_frames/splice_1/frame_003.png b/docs-backup/splice_frames/splice_1/frame_003.png new file mode 100644 index 0000000..30942ef Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_003.png differ diff --git a/docs-backup/splice_frames/splice_1/frame_004.png b/docs-backup/splice_frames/splice_1/frame_004.png new file mode 100644 index 0000000..887f621 Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_004.png differ diff --git a/docs-backup/splice_frames/splice_1/frame_005.png b/docs-backup/splice_frames/splice_1/frame_005.png new file mode 100644 index 0000000..f4443cf Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_005.png differ diff --git a/docs-backup/splice_frames/splice_1/frame_006.png b/docs-backup/splice_frames/splice_1/frame_006.png new file mode 100644 index 0000000..ded1105 Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_006.png differ diff --git a/docs-backup/splice_frames/splice_1/frame_007.png b/docs-backup/splice_frames/splice_1/frame_007.png new file mode 100644 index 0000000..1cdf92a Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_007.png differ diff --git a/docs-backup/splice_frames/splice_1/frame_008.png b/docs-backup/splice_frames/splice_1/frame_008.png new file mode 100644 index 0000000..300b72e Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_008.png differ diff --git a/docs-backup/splice_frames/splice_1/frame_009.png b/docs-backup/splice_frames/splice_1/frame_009.png new file mode 100644 index 0000000..4181d84 Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_009.png differ diff --git a/docs-backup/splice_frames/splice_1/frame_010.png b/docs-backup/splice_frames/splice_1/frame_010.png new file mode 100644 index 0000000..56d30f8 Binary files /dev/null and b/docs-backup/splice_frames/splice_1/frame_010.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_001.png b/docs-backup/splice_frames/splice_2/frame_001.png new file mode 100644 index 0000000..f4e8a5e Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_001.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_002.png b/docs-backup/splice_frames/splice_2/frame_002.png new file mode 100644 index 0000000..5b4d5b1 Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_002.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_003.png b/docs-backup/splice_frames/splice_2/frame_003.png new file mode 100644 index 0000000..30942ef Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_003.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_004.png b/docs-backup/splice_frames/splice_2/frame_004.png new file mode 100644 index 0000000..887f621 Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_004.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_005.png b/docs-backup/splice_frames/splice_2/frame_005.png new file mode 100644 index 0000000..f4443cf Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_005.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_006.png b/docs-backup/splice_frames/splice_2/frame_006.png new file mode 100644 index 0000000..ded1105 Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_006.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_007.png b/docs-backup/splice_frames/splice_2/frame_007.png new file mode 100644 index 0000000..1cdf92a Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_007.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_008.png b/docs-backup/splice_frames/splice_2/frame_008.png new file mode 100644 index 0000000..300b72e Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_008.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_009.png b/docs-backup/splice_frames/splice_2/frame_009.png new file mode 100644 index 0000000..4181d84 Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_009.png differ diff --git a/docs-backup/splice_frames/splice_2/frame_010.png b/docs-backup/splice_frames/splice_2/frame_010.png new file mode 100644 index 0000000..56d30f8 Binary files /dev/null and b/docs-backup/splice_frames/splice_2/frame_010.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_001.png b/docs-backup/splice_frames/splice_3/frame_001.png new file mode 100644 index 0000000..a186159 Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_001.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_002.png b/docs-backup/splice_frames/splice_3/frame_002.png new file mode 100644 index 0000000..6ad25fe Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_002.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_003.png b/docs-backup/splice_frames/splice_3/frame_003.png new file mode 100644 index 0000000..e850213 Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_003.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_004.png b/docs-backup/splice_frames/splice_3/frame_004.png new file mode 100644 index 0000000..389cca3 Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_004.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_005.png b/docs-backup/splice_frames/splice_3/frame_005.png new file mode 100644 index 0000000..bdb6aae Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_005.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_006.png b/docs-backup/splice_frames/splice_3/frame_006.png new file mode 100644 index 0000000..4a33e65 Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_006.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_007.png b/docs-backup/splice_frames/splice_3/frame_007.png new file mode 100644 index 0000000..bd20405 Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_007.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_008.png b/docs-backup/splice_frames/splice_3/frame_008.png new file mode 100644 index 0000000..7112156 Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_008.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_009.png b/docs-backup/splice_frames/splice_3/frame_009.png new file mode 100644 index 0000000..e97929b Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_009.png differ diff --git a/docs-backup/splice_frames/splice_3/frame_010.png b/docs-backup/splice_frames/splice_3/frame_010.png new file mode 100644 index 0000000..4f8ee3e Binary files /dev/null and b/docs-backup/splice_frames/splice_3/frame_010.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_001.png b/docs-backup/splice_frames/splice_4/frame_001.png new file mode 100644 index 0000000..a186159 Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_001.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_002.png b/docs-backup/splice_frames/splice_4/frame_002.png new file mode 100644 index 0000000..6ad25fe Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_002.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_003.png b/docs-backup/splice_frames/splice_4/frame_003.png new file mode 100644 index 0000000..e850213 Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_003.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_004.png b/docs-backup/splice_frames/splice_4/frame_004.png new file mode 100644 index 0000000..389cca3 Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_004.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_005.png b/docs-backup/splice_frames/splice_4/frame_005.png new file mode 100644 index 0000000..bdb6aae Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_005.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_006.png b/docs-backup/splice_frames/splice_4/frame_006.png new file mode 100644 index 0000000..4a33e65 Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_006.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_007.png b/docs-backup/splice_frames/splice_4/frame_007.png new file mode 100644 index 0000000..bd20405 Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_007.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_008.png b/docs-backup/splice_frames/splice_4/frame_008.png new file mode 100644 index 0000000..7112156 Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_008.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_009.png b/docs-backup/splice_frames/splice_4/frame_009.png new file mode 100644 index 0000000..e97929b Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_009.png differ diff --git a/docs-backup/splice_frames/splice_4/frame_010.png b/docs-backup/splice_frames/splice_4/frame_010.png new file mode 100644 index 0000000..4f8ee3e Binary files /dev/null and b/docs-backup/splice_frames/splice_4/frame_010.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_001.png b/docs-backup/splice_frames/splice_5/frame_001.png new file mode 100644 index 0000000..a186159 Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_001.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_002.png b/docs-backup/splice_frames/splice_5/frame_002.png new file mode 100644 index 0000000..6ad25fe Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_002.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_003.png b/docs-backup/splice_frames/splice_5/frame_003.png new file mode 100644 index 0000000..e850213 Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_003.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_004.png b/docs-backup/splice_frames/splice_5/frame_004.png new file mode 100644 index 0000000..389cca3 Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_004.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_005.png b/docs-backup/splice_frames/splice_5/frame_005.png new file mode 100644 index 0000000..bdb6aae Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_005.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_006.png b/docs-backup/splice_frames/splice_5/frame_006.png new file mode 100644 index 0000000..4a33e65 Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_006.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_007.png b/docs-backup/splice_frames/splice_5/frame_007.png new file mode 100644 index 0000000..bd20405 Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_007.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_008.png b/docs-backup/splice_frames/splice_5/frame_008.png new file mode 100644 index 0000000..7112156 Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_008.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_009.png b/docs-backup/splice_frames/splice_5/frame_009.png new file mode 100644 index 0000000..e97929b Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_009.png differ diff --git a/docs-backup/splice_frames/splice_5/frame_010.png b/docs-backup/splice_frames/splice_5/frame_010.png new file mode 100644 index 0000000..4f8ee3e Binary files /dev/null and b/docs-backup/splice_frames/splice_5/frame_010.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_001.png b/docs-backup/splice_frames/splice_6/frame_001.png new file mode 100644 index 0000000..a186159 Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_001.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_002.png b/docs-backup/splice_frames/splice_6/frame_002.png new file mode 100644 index 0000000..6ad25fe Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_002.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_003.png b/docs-backup/splice_frames/splice_6/frame_003.png new file mode 100644 index 0000000..e850213 Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_003.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_004.png b/docs-backup/splice_frames/splice_6/frame_004.png new file mode 100644 index 0000000..389cca3 Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_004.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_005.png b/docs-backup/splice_frames/splice_6/frame_005.png new file mode 100644 index 0000000..bdb6aae Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_005.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_006.png b/docs-backup/splice_frames/splice_6/frame_006.png new file mode 100644 index 0000000..4a33e65 Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_006.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_007.png b/docs-backup/splice_frames/splice_6/frame_007.png new file mode 100644 index 0000000..bd20405 Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_007.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_008.png b/docs-backup/splice_frames/splice_6/frame_008.png new file mode 100644 index 0000000..7112156 Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_008.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_009.png b/docs-backup/splice_frames/splice_6/frame_009.png new file mode 100644 index 0000000..e97929b Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_009.png differ diff --git a/docs-backup/splice_frames/splice_6/frame_010.png b/docs-backup/splice_frames/splice_6/frame_010.png new file mode 100644 index 0000000..4f8ee3e Binary files /dev/null and b/docs-backup/splice_frames/splice_6/frame_010.png differ diff --git a/docs/assets/index-BGZUxVG6.css b/docs/assets/index-BGZUxVG6.css new file mode 100644 index 0000000..eed7a81 --- /dev/null +++ b/docs/assets/index-BGZUxVG6.css @@ -0,0 +1 @@ +:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#0a0a0a,#1a1a1a);color:#e0e0e0;line-height:1.6;min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:20px}.header{text-align:center;margin-bottom:40px;padding:40px 20px;background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border-radius:15px;box-shadow:0 10px 30px #00000080}.header h1{color:#ff6b6b;font-size:clamp(2rem,5vw,3.5rem);margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.header h2{color:#4ecdc4;font-size:clamp(1.5rem,4vw,2.5rem);margin-bottom:15px;font-weight:300}.header p{font-size:clamp(1rem,2.5vw,1.3rem);color:#ccc;max-width:800px;margin:0 auto}.critical-alert{background:linear-gradient(135deg,#ff6b6b,#ee5a52);color:#fff;padding:30px;border-radius:15px;margin:30px 0;box-shadow:0 10px 30px #ff6b6b4d}.critical-alert h3{font-size:1.8rem;margin-bottom:20px;text-align:center}.critical-alert ul{list-style:none;padding:0}.critical-alert li{margin:15px 0;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.2);font-size:1.1rem}.critical-alert li:last-child{border-bottom:none}.evidence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px;margin:40px 0}.evidence-card{background:linear-gradient(135deg,#2d2d2d,#3d3d3d);padding:25px;border-radius:15px;border-left:5px solid #4ecdc4;box-shadow:0 5px 20px #0000004d;transition:transform .3s ease,box-shadow .3s ease}.evidence-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0006}.evidence-card h3{color:#4ecdc4;font-size:1.5rem;margin-bottom:15px}.command-block{background:#000;color:#0f0;padding:15px;border-radius:8px;font-family:Courier New,monospace;margin:15px 0;overflow-x:auto;border:1px solid #333}.highlight{background:linear-gradient(135deg,#ffd54f,#ffb300);color:#000;padding:3px 8px;border-radius:5px;font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin:30px 0}.stat-card{background:linear-gradient(135deg,#1a1a1a,#2d2d2d);padding:20px;border-radius:10px;text-align:center;border:2px solid #333}.stat-number{font-size:2.5rem;font-weight:700;color:#ff6b6b;display:block}.stat-label{color:#888;font-size:.9rem;margin-top:5px}.methodology{background:linear-gradient(135deg,#2d2d2d,#1a1a1a);padding:30px;border-radius:15px;margin:40px 0;border:2px solid #333}.methodology h3{color:#4ecdc4;font-size:1.8rem;margin-bottom:20px}.step{margin:20px 0;padding:15px;background:#ffffff0d;border-radius:8px;border-left:4px solid #4ecdc4}.step h4{color:#fff;margin-bottom:10px}.cta-section{background:linear-gradient(135deg,#4ecdc4,#45b7aa);color:#000;padding:40px;border-radius:15px;text-align:center;margin:40px 0;box-shadow:0 10px 30px #4ecdc44d}.cta-section h3{font-size:2rem;margin-bottom:15px}.cta-section p{font-size:1.2rem;margin-bottom:25px}.cta-button{display:inline-block;background:#000;color:#4ecdc4;padding:15px 30px;margin:10px;border-radius:8px;text-decoration:none;font-weight:700;font-size:1.1rem;transition:all .3s ease;border:2px solid #000}.cta-button:hover{background:#4ecdc4;color:#000;transform:translateY(-2px);box-shadow:0 5px 15px #0000004d}.footer{background:linear-gradient(135deg,#1a1a1a,#0a0a0a);padding:30px;border-radius:15px;margin-top:40px;text-align:center;border:2px solid #333}.footer p{margin:10px 0;color:#888}.footer a{color:#4ecdc4;text-decoration:none}.footer a:hover{text-decoration:underline}.frame-viewer{margin:30px 0;padding:25px;background:linear-gradient(135deg,#1a1a1a,#2d2d2d);border-radius:15px;border:2px solid #333}.frame-viewer h4{color:#4ecdc4;font-size:1.3rem;margin-bottom:15px;text-align:center}.frame-container{text-align:center;margin:20px 0}.frame-image{max-width:100%;height:auto;border:2px solid #555;border-radius:8px;box-shadow:0 5px 15px #0000004d}.frame-info{display:flex;justify-content:space-between;align-items:center;margin:15px 0;padding:10px;background:#ffffff0d;border-radius:8px;font-size:.9rem}.frame-controls{display:flex;justify-content:center;align-items:center;gap:15px;margin:20px 0;flex-wrap:wrap}.frame-btn{background:#4ecdc4;color:#000;border:none;padding:10px 15px;border-radius:5px;cursor:pointer;font-weight:700;transition:all .3s ease}.frame-btn:hover{background:#45b7aa;transform:translateY(-1px)}.frame-btn:disabled{background:#666;color:#999;cursor:not-allowed;transform:none}.frame-slider{flex:1;max-width:300px;height:8px;background:#333;border-radius:5px;outline:none;-webkit-appearance:none}.frame-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:#4ecdc4;border-radius:50%;cursor:pointer}.frame-slider::-moz-range-thumb{width:20px;height:20px;background:#4ecdc4;border-radius:50%;cursor:pointer;border:none}.frame-timeline{display:flex;justify-content:space-between;align-items:center;margin:15px 0;font-size:.9em;color:#888}.splice-indicator{width:4px;height:20px;background:#ff6b6b;border-radius:2px;position:relative}.splice-indicator:before{content:"SPLICE";position:absolute;top:-25px;left:50%;transform:translate(-50%);font-size:.7em;color:#ff6b6b;font-weight:700}.discontinuity-info{background:#1a1a1a;border-left:4px solid #ff6b6b;padding:15px;margin:20px 0;border-radius:5px}.discontinuity-info ul{margin:10px 0 0 20px}.discontinuity-info li{margin:8px 0;color:#ccc}@media (max-width: 768px){.container{padding:10px}.evidence-grid{grid-template-columns:1fr}.frame-controls{flex-direction:column;gap:10px}.frame-slider{max-width:100%}.frame-info{flex-direction:column;gap:5px;text-align:center}} diff --git a/docs/assets/index-D6QH742S.js b/docs/assets/index-D6QH742S.js new file mode 100644 index 0000000..6425fef --- /dev/null +++ b/docs/assets/index-D6QH742S.js @@ -0,0 +1,58 @@ +(function(){const B=document.createElement("link").relList;if(B&&B.supports&&B.supports("modulepreload"))return;for(const Q of document.querySelectorAll('link[rel="modulepreload"]'))y(Q);new MutationObserver(Q=>{for(const J of Q)if(J.type==="childList")for(const fl of J.addedNodes)fl.tagName==="LINK"&&fl.rel==="modulepreload"&&y(fl)}).observe(document,{childList:!0,subtree:!0});function C(Q){const J={};return Q.integrity&&(J.integrity=Q.integrity),Q.referrerPolicy&&(J.referrerPolicy=Q.referrerPolicy),Q.crossOrigin==="use-credentials"?J.credentials="include":Q.crossOrigin==="anonymous"?J.credentials="omit":J.credentials="same-origin",J}function y(Q){if(Q.ep)return;Q.ep=!0;const J=C(Q);fetch(Q.href,J)}})();var $c={exports:{}},me={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var $0;function Dr(){if($0)return me;$0=1;var p=Symbol.for("react.transitional.element"),B=Symbol.for("react.fragment");function C(y,Q,J){var fl=null;if(J!==void 0&&(fl=""+J),Q.key!==void 0&&(fl=""+Q.key),"key"in Q){J={};for(var _l in Q)_l!=="key"&&(J[_l]=Q[_l])}else J=Q;return Q=J.ref,{$$typeof:p,type:y,key:fl,ref:Q!==void 0?Q:null,props:J}}return me.Fragment=B,me.jsx=C,me.jsxs=C,me}var k0;function Ur(){return k0||(k0=1,$c.exports=Dr()),$c.exports}var g=Ur(),kc={exports:{}},X={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var F0;function Nr(){if(F0)return X;F0=1;var p=Symbol.for("react.transitional.element"),B=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),y=Symbol.for("react.strict_mode"),Q=Symbol.for("react.profiler"),J=Symbol.for("react.consumer"),fl=Symbol.for("react.context"),_l=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),A=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),F=Symbol.iterator;function tl(s){return s===null||typeof s!="object"?null:(s=F&&s[F]||s["@@iterator"],typeof s=="function"?s:null)}var Tl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ql=Object.assign,ot={};function Bl(s,z,M){this.props=s,this.context=z,this.refs=ot,this.updater=M||Tl}Bl.prototype.isReactComponent={},Bl.prototype.setState=function(s,z){if(typeof s!="object"&&typeof s!="function"&&s!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,s,z,"setState")},Bl.prototype.forceUpdate=function(s){this.updater.enqueueForceUpdate(this,s,"forceUpdate")};function oa(){}oa.prototype=Bl.prototype;function zt(s,z,M){this.props=s,this.context=z,this.refs=ot,this.updater=M||Tl}var Ul=zt.prototype=new oa;Ul.constructor=zt,ql(Ul,Bl.prototype),Ul.isPureReactComponent=!0;var ht=Array.isArray,W={H:null,A:null,T:null,S:null,V:null},Vl=Object.prototype.hasOwnProperty;function Ll(s,z,M,_,R,$){return M=$.ref,{$$typeof:p,type:s,key:z,ref:M!==void 0?M:null,props:$}}function Kl(s,z){return Ll(s.type,z,void 0,void 0,void 0,s.props)}function yt(s){return typeof s=="object"&&s!==null&&s.$$typeof===p}function Ra(s){var z={"=":"=0",":":"=2"};return"$"+s.replace(/[=:]/g,function(M){return z[M]})}var pt=/\/+/g;function Nl(s,z){return typeof s=="object"&&s!==null&&s.key!=null?Ra(""+s.key):z.toString(36)}function ha(){}function ra(s){switch(s.status){case"fulfilled":return s.value;case"rejected":throw s.reason;default:switch(typeof s.status=="string"?s.then(ha,ha):(s.status="pending",s.then(function(z){s.status==="pending"&&(s.status="fulfilled",s.value=z)},function(z){s.status==="pending"&&(s.status="rejected",s.reason=z)})),s.status){case"fulfilled":return s.value;case"rejected":throw s.reason}}throw s}function xl(s,z,M,_,R){var $=typeof s;($==="undefined"||$==="boolean")&&(s=null);var G=!1;if(s===null)G=!0;else switch($){case"bigint":case"string":case"number":G=!0;break;case"object":switch(s.$$typeof){case p:case B:G=!0;break;case N:return G=s._init,xl(G(s._payload),z,M,_,R)}}if(G)return R=R(s),G=_===""?"."+Nl(s,0):_,ht(R)?(M="",G!=null&&(M=G.replace(pt,"$&/")+"/"),xl(R,z,M,"",function(Ct){return Ct})):R!=null&&(yt(R)&&(R=Kl(R,M+(R.key==null||s&&s.key===R.key?"":(""+R.key).replace(pt,"$&/")+"/")+G)),z.push(R)),1;G=0;var Jl=_===""?".":_+":";if(ht(s))for(var sl=0;sl>>1,s=b[nl];if(0>>1;nlQ(_,q))RQ($,_)?(b[nl]=$,b[R]=q,nl=R):(b[nl]=_,b[M]=q,nl=M);else if(RQ($,q))b[nl]=$,b[R]=q,nl=R;else break l}}return O}function Q(b,O){var q=b.sortIndex-O.sortIndex;return q!==0?q:b.id-O.id}if(p.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var J=performance;p.unstable_now=function(){return J.now()}}else{var fl=Date,_l=fl.now();p.unstable_now=function(){return fl.now()-_l}}var x=[],A=[],N=1,F=null,tl=3,Tl=!1,ql=!1,ot=!1,Bl=!1,oa=typeof setTimeout=="function"?setTimeout:null,zt=typeof clearTimeout=="function"?clearTimeout:null,Ul=typeof setImmediate<"u"?setImmediate:null;function ht(b){for(var O=C(A);O!==null;){if(O.callback===null)y(A);else if(O.startTime<=b)y(A),O.sortIndex=O.expirationTime,B(x,O);else break;O=C(A)}}function W(b){if(ot=!1,ht(b),!ql)if(C(x)!==null)ql=!0,Vl||(Vl=!0,Nl());else{var O=C(A);O!==null&&xl(W,O.startTime-b)}}var Vl=!1,Ll=-1,Kl=5,yt=-1;function Ra(){return Bl?!0:!(p.unstable_now()-ytb&&Ra());){var nl=F.callback;if(typeof nl=="function"){F.callback=null,tl=F.priorityLevel;var s=nl(F.expirationTime<=b);if(b=p.unstable_now(),typeof s=="function"){F.callback=s,ht(b),O=!0;break t}F===C(x)&&y(x),ht(b)}else y(x);F=C(x)}if(F!==null)O=!0;else{var z=C(A);z!==null&&xl(W,z.startTime-b),O=!1}}break l}finally{F=null,tl=q,Tl=!1}O=void 0}}finally{O?Nl():Vl=!1}}}var Nl;if(typeof Ul=="function")Nl=function(){Ul(pt)};else if(typeof MessageChannel<"u"){var ha=new MessageChannel,ra=ha.port2;ha.port1.onmessage=pt,Nl=function(){ra.postMessage(null)}}else Nl=function(){oa(pt,0)};function xl(b,O){Ll=oa(function(){b(p.unstable_now())},O)}p.unstable_IdlePriority=5,p.unstable_ImmediatePriority=1,p.unstable_LowPriority=4,p.unstable_NormalPriority=3,p.unstable_Profiling=null,p.unstable_UserBlockingPriority=2,p.unstable_cancelCallback=function(b){b.callback=null},p.unstable_forceFrameRate=function(b){0>b||125nl?(b.sortIndex=q,B(A,b),C(x)===null&&b===C(A)&&(ot?(zt(Ll),Ll=-1):ot=!0,xl(W,q-nl))):(b.sortIndex=s,B(x,b),ql||Tl||(ql=!0,Vl||(Vl=!0,Nl()))),b},p.unstable_shouldYield=Ra,p.unstable_wrapCallback=function(b){var O=tl;return function(){var q=tl;tl=O;try{return b.apply(this,arguments)}finally{tl=q}}}}(Pc)),Pc}var lo;function Rr(){return lo||(lo=1,Ic.exports=xr()),Ic.exports}var lf={exports:{}},Hl={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var to;function jr(){if(to)return Hl;to=1;var p=tf();function B(x){var A="https://react.dev/errors/"+x;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(p)}catch(B){console.error(B)}}return p(),lf.exports=jr(),lf.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var uo;function qr(){if(uo)return ye;uo=1;var p=Rr(),B=tf(),C=Hr();function y(l){var t="https://react.dev/errors/"+l;if(1s||(l.current=nl[s],nl[s]=null,s--)}function _(l,t){s++,nl[s]=l.current,l.current=t}var R=z(null),$=z(null),G=z(null),Jl=z(null);function sl(l,t){switch(_(G,t),_($,l),_(R,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?z0(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=z0(t),l=p0(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}M(R),_(R,l)}function Ct(){M(R),M($),M(G)}function Hn(l){l.memoizedState!==null&&_(Jl,l);var t=R.current,a=p0(t,l.type);t!==a&&(_($,l),_(R,a))}function ge(l){$.current===l&&(M(R),M($)),Jl.current===l&&(M(Jl),de._currentValue=q)}var qn=Object.prototype.hasOwnProperty,Yn=p.unstable_scheduleCallback,Bn=p.unstable_cancelCallback,no=p.unstable_shouldYield,io=p.unstable_requestPaint,gt=p.unstable_now,co=p.unstable_getCurrentPriorityLevel,af=p.unstable_ImmediatePriority,uf=p.unstable_UserBlockingPriority,Se=p.unstable_NormalPriority,fo=p.unstable_LowPriority,ef=p.unstable_IdlePriority,so=p.log,oo=p.unstable_setDisableYieldValue,Su=null,wl=null;function Qt(l){if(typeof so=="function"&&oo(l),wl&&typeof wl.setStrictMode=="function")try{wl.setStrictMode(Su,l)}catch{}}var Wl=Math.clz32?Math.clz32:vo,ho=Math.log,ro=Math.LN2;function vo(l){return l>>>=0,l===0?32:31-(ho(l)/ro|0)|0}var be=256,Te=4194304;function va(l){var t=l&42;if(t!==0)return t;switch(l&-l){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:return 64;case 128:return 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 l&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Ee(l,t,a){var u=l.pendingLanes;if(u===0)return 0;var e=0,n=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var c=u&134217727;return c!==0?(u=c&~n,u!==0?e=va(u):(i&=c,i!==0?e=va(i):a||(a=c&~l,a!==0&&(e=va(a))))):(c=u&~n,c!==0?e=va(c):i!==0?e=va(i):a||(a=u&~l,a!==0&&(e=va(a)))),e===0?0:t!==0&&t!==e&&(t&n)===0&&(n=e&-e,a=t&-t,n>=a||n===32&&(a&4194048)!==0)?t:e}function bu(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function mo(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32: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:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function nf(){var l=be;return be<<=1,(be&4194048)===0&&(be=256),l}function cf(){var l=Te;return Te<<=1,(Te&62914560)===0&&(Te=4194304),l}function Gn(l){for(var t=[],a=0;31>a;a++)t.push(l);return t}function Tu(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function yo(l,t,a,u,e,n){var i=l.pendingLanes;l.pendingLanes=a,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=a,l.entangledLanes&=a,l.errorRecoveryDisabledLanes&=a,l.shellSuspendCounter=0;var c=l.entanglements,f=l.expirationTimes,r=l.hiddenUpdates;for(a=i&~a;0)":-1e||f[u]!==r[e]){var S=` +`+f[u].replace(" at new "," at ");return l.displayName&&S.includes("")&&(S=S.replace("",l.displayName)),S}while(1<=u&&0<=e);break}}}finally{Ln=!1,Error.prepareStackTrace=a}return(a=l?l.displayName||l.name:"")?Ga(a):""}function Ao(l){switch(l.tag){case 26:case 27:case 5:return Ga(l.type);case 16:return Ga("Lazy");case 13:return Ga("Suspense");case 19:return Ga("SuspenseList");case 0:case 15:return Kn(l.type,!1);case 11:return Kn(l.type.render,!1);case 1:return Kn(l.type,!0);case 31:return Ga("Activity");default:return""}}function gf(l){try{var t="";do t+=Ao(l),l=l.return;while(l);return t}catch(a){return` +Error generating stack: `+a.message+` +`+a.stack}}function at(l){switch(typeof l){case"bigint":case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function Sf(l){var t=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function zo(l){var t=Sf(l)?"checked":"value",a=Object.getOwnPropertyDescriptor(l.constructor.prototype,t),u=""+l[t];if(!l.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var e=a.get,n=a.set;return Object.defineProperty(l,t,{configurable:!0,get:function(){return e.call(this)},set:function(i){u=""+i,n.call(this,i)}}),Object.defineProperty(l,t,{enumerable:a.enumerable}),{getValue:function(){return u},setValue:function(i){u=""+i},stopTracking:function(){l._valueTracker=null,delete l[t]}}}}function pe(l){l._valueTracker||(l._valueTracker=zo(l))}function bf(l){if(!l)return!1;var t=l._valueTracker;if(!t)return!0;var a=t.getValue(),u="";return l&&(u=Sf(l)?l.checked?"true":"false":l.value),l=u,l!==a?(t.setValue(l),!0):!1}function _e(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var po=/[\n"\\]/g;function ut(l){return l.replace(po,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Jn(l,t,a,u,e,n,i,c){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),t!=null?i==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+at(t)):l.value!==""+at(t)&&(l.value=""+at(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?wn(l,i,at(t)):a!=null?wn(l,i,at(a)):u!=null&&l.removeAttribute("value"),e==null&&n!=null&&(l.defaultChecked=!!n),e!=null&&(l.checked=e&&typeof e!="function"&&typeof e!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+at(c):l.removeAttribute("name")}function Tf(l,t,a,u,e,n,i,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||a!=null){if(!(n!=="submit"&&n!=="reset"||t!=null))return;a=a!=null?""+at(a):"",t=t!=null?""+at(t):a,c||t===l.value||(l.value=t),l.defaultValue=t}u=u??e,u=typeof u!="function"&&typeof u!="symbol"&&!!u,l.checked=c?l.checked:!!u,l.defaultChecked=!!u,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i)}function wn(l,t,a){t==="number"&&_e(l.ownerDocument)===l||l.defaultValue===""+a||(l.defaultValue=""+a)}function Xa(l,t,a,u){if(l=l.options,t){t={};for(var e=0;e"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),In=!1;if(Ot)try{var pu={};Object.defineProperty(pu,"passive",{get:function(){In=!0}}),window.addEventListener("test",pu,pu),window.removeEventListener("test",pu,pu)}catch{In=!1}var Vt=null,Pn=null,Me=null;function Mf(){if(Me)return Me;var l,t=Pn,a=t.length,u,e="value"in Vt?Vt.value:Vt.textContent,n=e.length;for(l=0;l=Mu),jf=" ",Hf=!1;function qf(l,t){switch(l){case"keyup":return Io.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Yf(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Va=!1;function lh(l,t){switch(l){case"compositionend":return Yf(t);case"keypress":return t.which!==32?null:(Hf=!0,jf);case"textInput":return l=t.data,l===jf&&Hf?null:l;default:return null}}function th(l,t){if(Va)return l==="compositionend"||!ei&&qf(l,t)?(l=Mf(),Me=Pn=Vt=null,Va=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-l};l=u}l:{for(;a;){if(a.nextSibling){a=a.nextSibling;break l}a=a.parentNode}a=void 0}a=Lf(a)}}function Jf(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?Jf(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function wf(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=_e(l.document);t instanceof l.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)l=t.contentWindow;else break;t=_e(l.document)}return t}function ci(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var sh=Ot&&"documentMode"in document&&11>=document.documentMode,La=null,fi=null,xu=null,si=!1;function Wf(l,t,a){var u=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;si||La==null||La!==_e(u)||(u=La,"selectionStart"in u&&ci(u)?u={start:u.selectionStart,end:u.selectionEnd}:(u=(u.ownerDocument&&u.ownerDocument.defaultView||window).getSelection(),u={anchorNode:u.anchorNode,anchorOffset:u.anchorOffset,focusNode:u.focusNode,focusOffset:u.focusOffset}),xu&&Nu(xu,u)||(xu=u,u=Sn(fi,"onSelect"),0>=i,e-=i,Dt=1<<32-Wl(t)+e|a<n?n:8;var i=b.T,c={};b.T=c,Wi(l,!1,t,a);try{var f=e(),r=b.S;if(r!==null&&r(c,f),f!==null&&typeof f=="object"&&typeof f.then=="function"){var S=Sh(f,u);Ju(l,t,S,lt(l))}else Ju(l,t,u,lt(l))}catch(E){Ju(l,t,{then:function(){},status:"rejected",reason:E},lt())}finally{O.p=n,b.T=i}}function zh(){}function Ji(l,t,a,u){if(l.tag!==5)throw Error(y(476));var e=$s(l).queue;Ws(l,e,t,q,a===null?zh:function(){return ks(l),a(u)})}function $s(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:q,baseState:q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Rt,lastRenderedState:q},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Rt,lastRenderedState:a},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function ks(l){var t=$s(l).next.queue;Ju(l,t,{},lt())}function wi(){return jl(de)}function Fs(){return gl().memoizedState}function Is(){return gl().memoizedState}function ph(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var a=lt();l=Jt(a);var u=wt(t,l,a);u!==null&&(tt(u,t,a),Cu(u,t,a)),t={cache:zi()},l.payload=t;return}t=t.return}}function _h(l,t,a){var u=lt();a={lane:u,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null},Fe(l)?ld(t,a):(a=ri(l,t,a,u),a!==null&&(tt(a,l,u),td(a,t,u)))}function Ps(l,t,a){var u=lt();Ju(l,t,a,u)}function Ju(l,t,a,u){var e={lane:u,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null};if(Fe(l))ld(t,e);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var i=t.lastRenderedState,c=n(i,a);if(e.hasEagerState=!0,e.eagerState=c,$l(c,i))return He(l,t,e,0),cl===null&&je(),!1}catch{}finally{}if(a=ri(l,t,e,u),a!==null)return tt(a,l,u),td(a,t,u),!0}return!1}function Wi(l,t,a,u){if(u={lane:2,revertLane:Oc(),action:u,hasEagerState:!1,eagerState:null,next:null},Fe(l)){if(t)throw Error(y(479))}else t=ri(l,a,u,2),t!==null&&tt(t,l,2)}function Fe(l){var t=l.alternate;return l===Z||t!==null&&t===Z}function ld(l,t){lu=Ke=!0;var a=l.pending;a===null?t.next=t:(t.next=a.next,a.next=t),l.pending=t}function td(l,t,a){if((a&4194048)!==0){var u=t.lanes;u&=l.pendingLanes,a|=u,t.lanes=a,sf(l,a)}}var Ie={readContext:jl,use:we,useCallback:vl,useContext:vl,useEffect:vl,useImperativeHandle:vl,useLayoutEffect:vl,useInsertionEffect:vl,useMemo:vl,useReducer:vl,useRef:vl,useState:vl,useDebugValue:vl,useDeferredValue:vl,useTransition:vl,useSyncExternalStore:vl,useId:vl,useHostTransitionStatus:vl,useFormState:vl,useActionState:vl,useOptimistic:vl,useMemoCache:vl,useCacheRefresh:vl},ad={readContext:jl,use:we,useCallback:function(l,t){return Cl().memoizedState=[l,t===void 0?null:t],l},useContext:jl,useEffect:Xs,useImperativeHandle:function(l,t,a){a=a!=null?a.concat([l]):null,ke(4194308,4,Vs.bind(null,t,l),a)},useLayoutEffect:function(l,t){return ke(4194308,4,l,t)},useInsertionEffect:function(l,t){ke(4,2,l,t)},useMemo:function(l,t){var a=Cl();t=t===void 0?null:t;var u=l();if(Ma){Qt(!0);try{l()}finally{Qt(!1)}}return a.memoizedState=[u,t],u},useReducer:function(l,t,a){var u=Cl();if(a!==void 0){var e=a(t);if(Ma){Qt(!0);try{a(t)}finally{Qt(!1)}}}else e=t;return u.memoizedState=u.baseState=e,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:e},u.queue=l,l=l.dispatch=_h.bind(null,Z,l),[u.memoizedState,l]},useRef:function(l){var t=Cl();return l={current:l},t.memoizedState=l},useState:function(l){l=Zi(l);var t=l.queue,a=Ps.bind(null,Z,t);return t.dispatch=a,[l.memoizedState,a]},useDebugValue:Li,useDeferredValue:function(l,t){var a=Cl();return Ki(a,l,t)},useTransition:function(){var l=Zi(!1);return l=Ws.bind(null,Z,l.queue,!0,!1),Cl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,a){var u=Z,e=Cl();if(I){if(a===void 0)throw Error(y(407));a=a()}else{if(a=t(),cl===null)throw Error(y(349));(w&124)!==0||zs(u,t,a)}e.memoizedState=a;var n={value:a,getSnapshot:t};return e.queue=n,Xs(_s.bind(null,u,n,l),[l]),u.flags|=2048,au(9,$e(),ps.bind(null,u,n,a,t),null),a},useId:function(){var l=Cl(),t=cl.identifierPrefix;if(I){var a=Ut,u=Dt;a=(u&~(1<<32-Wl(u)-1)).toString(32)+a,t="ยซ"+t+"R"+a,a=Je++,0H?(pl=U,U=null):pl=U.sibling;var k=v(o,U,h[H],T);if(k===null){U===null&&(U=pl);break}l&&U&&k.alternate===null&&t(o,U),d=n(k,d,H),V===null?D=k:V.sibling=k,V=k,U=pl}if(H===h.length)return a(o,U),I&&Ea(o,H),D;if(U===null){for(;HH?(pl=U,U=null):pl=U.sibling;var da=v(o,U,k.value,T);if(da===null){U===null&&(U=pl);break}l&&U&&da.alternate===null&&t(o,U),d=n(da,d,H),V===null?D=da:V.sibling=da,V=da,U=pl}if(k.done)return a(o,U),I&&Ea(o,H),D;if(U===null){for(;!k.done;H++,k=h.next())k=E(o,k.value,T),k!==null&&(d=n(k,d,H),V===null?D=k:V.sibling=k,V=k);return I&&Ea(o,H),D}for(U=u(U);!k.done;H++,k=h.next())k=m(U,o,H,k.value,T),k!==null&&(l&&k.alternate!==null&&U.delete(k.key===null?H:k.key),d=n(k,d,H),V===null?D=k:V.sibling=k,V=k);return l&&U.forEach(function(Mr){return t(o,Mr)}),I&&Ea(o,H),D}function el(o,d,h,T){if(typeof h=="object"&&h!==null&&h.type===ql&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case tl:l:{for(var D=h.key;d!==null;){if(d.key===D){if(D=h.type,D===ql){if(d.tag===7){a(o,d.sibling),T=e(d,h.props.children),T.return=o,o=T;break l}}else if(d.elementType===D||typeof D=="object"&&D!==null&&D.$$typeof===Kl&&ed(D)===d.type){a(o,d.sibling),T=e(d,h.props),Wu(T,h),T.return=o,o=T;break l}a(o,d);break}else t(o,d);d=d.sibling}h.type===ql?(T=ba(h.props.children,o.mode,T,h.key),T.return=o,o=T):(T=Ye(h.type,h.key,h.props,null,o.mode,T),Wu(T,h),T.return=o,o=T)}return i(o);case Tl:l:{for(D=h.key;d!==null;){if(d.key===D)if(d.tag===4&&d.stateNode.containerInfo===h.containerInfo&&d.stateNode.implementation===h.implementation){a(o,d.sibling),T=e(d,h.children||[]),T.return=o,o=T;break l}else{a(o,d);break}else t(o,d);d=d.sibling}T=yi(h,o.mode,T),T.return=o,o=T}return i(o);case Kl:return D=h._init,h=D(h._payload),el(o,d,h,T)}if(xl(h))return Y(o,d,h,T);if(Nl(h)){if(D=Nl(h),typeof D!="function")throw Error(y(150));return h=D.call(h),j(o,d,h,T)}if(typeof h.then=="function")return el(o,d,Pe(h),T);if(h.$$typeof===Ul)return el(o,d,Ce(o,h),T);ln(o,h)}return typeof h=="string"&&h!==""||typeof h=="number"||typeof h=="bigint"?(h=""+h,d!==null&&d.tag===6?(a(o,d.sibling),T=e(d,h),T.return=o,o=T):(a(o,d),T=mi(h,o.mode,T),T.return=o,o=T),i(o)):a(o,d)}return function(o,d,h,T){try{wu=0;var D=el(o,d,h,T);return uu=null,D}catch(U){if(U===Gu||U===Ze)throw U;var V=kl(29,U,null,o.mode);return V.lanes=T,V.return=o,V}finally{}}}var eu=nd(!0),id=nd(!1),ft=z(null),bt=null;function $t(l){var t=l.alternate;_(bl,bl.current&1),_(ft,l),bt===null&&(t===null||Pa.current!==null||t.memoizedState!==null)&&(bt=l)}function cd(l){if(l.tag===22){if(_(bl,bl.current),_(ft,l),bt===null){var t=l.alternate;t!==null&&t.memoizedState!==null&&(bt=l)}}else kt()}function kt(){_(bl,bl.current),_(ft,ft.current)}function jt(l){M(ft),bt===l&&(bt=null),M(bl)}var bl=z(0);function tn(l){for(var t=l;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||Gc(a)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===l)break;for(;t.sibling===null;){if(t.return===null||t.return===l)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function $i(l,t,a,u){t=l.memoizedState,a=a(u,t),a=a==null?t:N({},t,a),l.memoizedState=a,l.lanes===0&&(l.updateQueue.baseState=a)}var ki={enqueueSetState:function(l,t,a){l=l._reactInternals;var u=lt(),e=Jt(u);e.payload=t,a!=null&&(e.callback=a),t=wt(l,e,u),t!==null&&(tt(t,l,u),Cu(t,l,u))},enqueueReplaceState:function(l,t,a){l=l._reactInternals;var u=lt(),e=Jt(u);e.tag=1,e.payload=t,a!=null&&(e.callback=a),t=wt(l,e,u),t!==null&&(tt(t,l,u),Cu(t,l,u))},enqueueForceUpdate:function(l,t){l=l._reactInternals;var a=lt(),u=Jt(a);u.tag=2,t!=null&&(u.callback=t),t=wt(l,u,a),t!==null&&(tt(t,l,a),Cu(t,l,a))}};function fd(l,t,a,u,e,n,i){return l=l.stateNode,typeof l.shouldComponentUpdate=="function"?l.shouldComponentUpdate(u,n,i):t.prototype&&t.prototype.isPureReactComponent?!Nu(a,u)||!Nu(e,n):!0}function sd(l,t,a,u){l=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(a,u),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(a,u),t.state!==l&&ki.enqueueReplaceState(t,t.state,null)}function Da(l,t){var a=t;if("ref"in t){a={};for(var u in t)u!=="ref"&&(a[u]=t[u])}if(l=l.defaultProps){a===t&&(a=N({},a));for(var e in l)a[e]===void 0&&(a[e]=l[e])}return a}var an=typeof reportError=="function"?reportError:function(l){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof l=="object"&&l!==null&&typeof l.message=="string"?String(l.message):String(l),error:l});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",l);return}console.error(l)};function dd(l){an(l)}function od(l){console.error(l)}function hd(l){an(l)}function un(l,t){try{var a=l.onUncaughtError;a(t.value,{componentStack:t.stack})}catch(u){setTimeout(function(){throw u})}}function rd(l,t,a){try{var u=l.onCaughtError;u(a.value,{componentStack:a.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Fi(l,t,a){return a=Jt(a),a.tag=3,a.payload={element:null},a.callback=function(){un(l,t)},a}function vd(l){return l=Jt(l),l.tag=3,l}function md(l,t,a,u){var e=a.type.getDerivedStateFromError;if(typeof e=="function"){var n=u.value;l.payload=function(){return e(n)},l.callback=function(){rd(t,a,u)}}var i=a.stateNode;i!==null&&typeof i.componentDidCatch=="function"&&(l.callback=function(){rd(t,a,u),typeof e!="function"&&(aa===null?aa=new Set([this]):aa.add(this));var c=u.stack;this.componentDidCatch(u.value,{componentStack:c!==null?c:""})})}function Mh(l,t,a,u,e){if(a.flags|=32768,u!==null&&typeof u=="object"&&typeof u.then=="function"){if(t=a.alternate,t!==null&&qu(t,a,e,!0),a=ft.current,a!==null){switch(a.tag){case 13:return bt===null?Ec():a.alternate===null&&rl===0&&(rl=3),a.flags&=-257,a.flags|=65536,a.lanes=e,u===Oi?a.flags|=16384:(t=a.updateQueue,t===null?a.updateQueue=new Set([u]):t.add(u),zc(l,u,e)),!1;case 22:return a.flags|=65536,u===Oi?a.flags|=16384:(t=a.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([u])},a.updateQueue=t):(a=t.retryQueue,a===null?t.retryQueue=new Set([u]):a.add(u)),zc(l,u,e)),!1}throw Error(y(435,a.tag))}return zc(l,u,e),Ec(),!1}if(I)return t=ft.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=e,u!==bi&&(l=Error(y(422),{cause:u}),Hu(et(l,a)))):(u!==bi&&(t=Error(y(423),{cause:u}),Hu(et(t,a))),l=l.current.alternate,l.flags|=65536,e&=-e,l.lanes|=e,u=et(u,a),e=Fi(l.stateNode,u,e),Ui(l,e),rl!==4&&(rl=2)),!1;var n=Error(y(520),{cause:u});if(n=et(n,a),te===null?te=[n]:te.push(n),rl!==4&&(rl=2),t===null)return!0;u=et(u,a),a=t;do{switch(a.tag){case 3:return a.flags|=65536,l=e&-e,a.lanes|=l,l=Fi(a.stateNode,u,l),Ui(a,l),!1;case 1:if(t=a.type,n=a.stateNode,(a.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||n!==null&&typeof n.componentDidCatch=="function"&&(aa===null||!aa.has(n))))return a.flags|=65536,e&=-e,a.lanes|=e,e=vd(e),md(e,l,a,u),Ui(a,e),!1}a=a.return}while(a!==null);return!1}var yd=Error(y(461)),Al=!1;function Ol(l,t,a,u){t.child=l===null?id(t,null,a,u):eu(t,l.child,a,u)}function gd(l,t,a,u,e){a=a.render;var n=t.ref;if("ref"in u){var i={};for(var c in u)c!=="ref"&&(i[c]=u[c])}else i=u;return _a(t),u=Hi(l,t,a,i,n,e),c=qi(),l!==null&&!Al?(Yi(l,t,e),Ht(l,t,e)):(I&&c&&gi(t),t.flags|=1,Ol(l,t,u,e),t.child)}function Sd(l,t,a,u,e){if(l===null){var n=a.type;return typeof n=="function"&&!vi(n)&&n.defaultProps===void 0&&a.compare===null?(t.tag=15,t.type=n,bd(l,t,n,u,e)):(l=Ye(a.type,null,u,t,t.mode,e),l.ref=t.ref,l.return=t,t.child=l)}if(n=l.child,!nc(l,e)){var i=n.memoizedProps;if(a=a.compare,a=a!==null?a:Nu,a(i,u)&&l.ref===t.ref)return Ht(l,t,e)}return t.flags|=1,l=Mt(n,u),l.ref=t.ref,l.return=t,t.child=l}function bd(l,t,a,u,e){if(l!==null){var n=l.memoizedProps;if(Nu(n,u)&&l.ref===t.ref)if(Al=!1,t.pendingProps=u=n,nc(l,e))(l.flags&131072)!==0&&(Al=!0);else return t.lanes=l.lanes,Ht(l,t,e)}return Ii(l,t,a,u,e)}function Td(l,t,a){var u=t.pendingProps,e=u.children,n=l!==null?l.memoizedState:null;if(u.mode==="hidden"){if((t.flags&128)!==0){if(u=n!==null?n.baseLanes|a:a,l!==null){for(e=t.child=l.child,n=0;e!==null;)n=n|e.lanes|e.childLanes,e=e.sibling;t.childLanes=n&~u}else t.childLanes=0,t.child=null;return Ed(l,t,u,a)}if((a&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},l!==null&&Qe(t,n!==null?n.cachePool:null),n!==null?bs(t,n):xi(),cd(t);else return t.lanes=t.childLanes=536870912,Ed(l,t,n!==null?n.baseLanes|a:a,a)}else n!==null?(Qe(t,n.cachePool),bs(t,n),kt(),t.memoizedState=null):(l!==null&&Qe(t,null),xi(),kt());return Ol(l,t,e,a),t.child}function Ed(l,t,a,u){var e=_i();return e=e===null?null:{parent:Sl._currentValue,pool:e},t.memoizedState={baseLanes:a,cachePool:e},l!==null&&Qe(t,null),xi(),cd(t),l!==null&&qu(l,t,u,!0),null}function en(l,t){var a=t.ref;if(a===null)l!==null&&l.ref!==null&&(t.flags|=4194816);else{if(typeof a!="function"&&typeof a!="object")throw Error(y(284));(l===null||l.ref!==a)&&(t.flags|=4194816)}}function Ii(l,t,a,u,e){return _a(t),a=Hi(l,t,a,u,void 0,e),u=qi(),l!==null&&!Al?(Yi(l,t,e),Ht(l,t,e)):(I&&u&&gi(t),t.flags|=1,Ol(l,t,a,e),t.child)}function Ad(l,t,a,u,e,n){return _a(t),t.updateQueue=null,a=Es(t,u,a,e),Ts(l),u=qi(),l!==null&&!Al?(Yi(l,t,n),Ht(l,t,n)):(I&&u&&gi(t),t.flags|=1,Ol(l,t,a,n),t.child)}function zd(l,t,a,u,e){if(_a(t),t.stateNode===null){var n=Wa,i=a.contextType;typeof i=="object"&&i!==null&&(n=jl(i)),n=new a(u,n),t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=ki,t.stateNode=n,n._reactInternals=t,n=t.stateNode,n.props=u,n.state=t.memoizedState,n.refs={},Mi(t),i=a.contextType,n.context=typeof i=="object"&&i!==null?jl(i):Wa,n.state=t.memoizedState,i=a.getDerivedStateFromProps,typeof i=="function"&&($i(t,a,i,u),n.state=t.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof n.getSnapshotBeforeUpdate=="function"||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(i=n.state,typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount(),i!==n.state&&ki.enqueueReplaceState(n,n.state,null),Zu(t,u,n,e),Qu(),n.state=t.memoizedState),typeof n.componentDidMount=="function"&&(t.flags|=4194308),u=!0}else if(l===null){n=t.stateNode;var c=t.memoizedProps,f=Da(a,c);n.props=f;var r=n.context,S=a.contextType;i=Wa,typeof S=="object"&&S!==null&&(i=jl(S));var E=a.getDerivedStateFromProps;S=typeof E=="function"||typeof n.getSnapshotBeforeUpdate=="function",c=t.pendingProps!==c,S||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(c||r!==i)&&sd(t,n,u,i),Kt=!1;var v=t.memoizedState;n.state=v,Zu(t,u,n,e),Qu(),r=t.memoizedState,c||v!==r||Kt?(typeof E=="function"&&($i(t,a,E,u),r=t.memoizedState),(f=Kt||fd(t,a,f,u,v,r,i))?(S||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount()),typeof n.componentDidMount=="function"&&(t.flags|=4194308)):(typeof n.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=u,t.memoizedState=r),n.props=u,n.state=r,n.context=i,u=f):(typeof n.componentDidMount=="function"&&(t.flags|=4194308),u=!1)}else{n=t.stateNode,Di(l,t),i=t.memoizedProps,S=Da(a,i),n.props=S,E=t.pendingProps,v=n.context,r=a.contextType,f=Wa,typeof r=="object"&&r!==null&&(f=jl(r)),c=a.getDerivedStateFromProps,(r=typeof c=="function"||typeof n.getSnapshotBeforeUpdate=="function")||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(i!==E||v!==f)&&sd(t,n,u,f),Kt=!1,v=t.memoizedState,n.state=v,Zu(t,u,n,e),Qu();var m=t.memoizedState;i!==E||v!==m||Kt||l!==null&&l.dependencies!==null&&Xe(l.dependencies)?(typeof c=="function"&&($i(t,a,c,u),m=t.memoizedState),(S=Kt||fd(t,a,S,u,v,m,f)||l!==null&&l.dependencies!==null&&Xe(l.dependencies))?(r||typeof n.UNSAFE_componentWillUpdate!="function"&&typeof n.componentWillUpdate!="function"||(typeof n.componentWillUpdate=="function"&&n.componentWillUpdate(u,m,f),typeof n.UNSAFE_componentWillUpdate=="function"&&n.UNSAFE_componentWillUpdate(u,m,f)),typeof n.componentDidUpdate=="function"&&(t.flags|=4),typeof n.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof n.componentDidUpdate!="function"||i===l.memoizedProps&&v===l.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||i===l.memoizedProps&&v===l.memoizedState||(t.flags|=1024),t.memoizedProps=u,t.memoizedState=m),n.props=u,n.state=m,n.context=f,u=S):(typeof n.componentDidUpdate!="function"||i===l.memoizedProps&&v===l.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||i===l.memoizedProps&&v===l.memoizedState||(t.flags|=1024),u=!1)}return n=u,en(l,t),u=(t.flags&128)!==0,n||u?(n=t.stateNode,a=u&&typeof a.getDerivedStateFromError!="function"?null:n.render(),t.flags|=1,l!==null&&u?(t.child=eu(t,l.child,null,e),t.child=eu(t,null,a,e)):Ol(l,t,a,e),t.memoizedState=n.state,l=t.child):l=Ht(l,t,e),l}function pd(l,t,a,u){return ju(),t.flags|=256,Ol(l,t,a,u),t.child}var Pi={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function lc(l){return{baseLanes:l,cachePool:os()}}function tc(l,t,a){return l=l!==null?l.childLanes&~a:0,t&&(l|=st),l}function _d(l,t,a){var u=t.pendingProps,e=!1,n=(t.flags&128)!==0,i;if((i=n)||(i=l!==null&&l.memoizedState===null?!1:(bl.current&2)!==0),i&&(e=!0,t.flags&=-129),i=(t.flags&32)!==0,t.flags&=-33,l===null){if(I){if(e?$t(t):kt(),I){var c=hl,f;if(f=c){l:{for(f=c,c=St;f.nodeType!==8;){if(!c){c=null;break l}if(f=mt(f.nextSibling),f===null){c=null;break l}}c=f}c!==null?(t.memoizedState={dehydrated:c,treeContext:Ta!==null?{id:Dt,overflow:Ut}:null,retryLane:536870912,hydrationErrors:null},f=kl(18,null,null,0),f.stateNode=c,f.return=t,t.child=f,Yl=t,hl=null,f=!0):f=!1}f||za(t)}if(c=t.memoizedState,c!==null&&(c=c.dehydrated,c!==null))return Gc(c)?t.lanes=32:t.lanes=536870912,null;jt(t)}return c=u.children,u=u.fallback,e?(kt(),e=t.mode,c=nn({mode:"hidden",children:c},e),u=ba(u,e,a,null),c.return=t,u.return=t,c.sibling=u,t.child=c,e=t.child,e.memoizedState=lc(a),e.childLanes=tc(l,i,a),t.memoizedState=Pi,u):($t(t),ac(t,c))}if(f=l.memoizedState,f!==null&&(c=f.dehydrated,c!==null)){if(n)t.flags&256?($t(t),t.flags&=-257,t=uc(l,t,a)):t.memoizedState!==null?(kt(),t.child=l.child,t.flags|=128,t=null):(kt(),e=u.fallback,c=t.mode,u=nn({mode:"visible",children:u.children},c),e=ba(e,c,a,null),e.flags|=2,u.return=t,e.return=t,u.sibling=e,t.child=u,eu(t,l.child,null,a),u=t.child,u.memoizedState=lc(a),u.childLanes=tc(l,i,a),t.memoizedState=Pi,t=e);else if($t(t),Gc(c)){if(i=c.nextSibling&&c.nextSibling.dataset,i)var r=i.dgst;i=r,u=Error(y(419)),u.stack="",u.digest=i,Hu({value:u,source:null,stack:null}),t=uc(l,t,a)}else if(Al||qu(l,t,a,!1),i=(a&l.childLanes)!==0,Al||i){if(i=cl,i!==null&&(u=a&-a,u=(u&42)!==0?1:Xn(u),u=(u&(i.suspendedLanes|a))!==0?0:u,u!==0&&u!==f.retryLane))throw f.retryLane=u,wa(l,u),tt(i,l,u),yd;c.data==="$?"||Ec(),t=uc(l,t,a)}else c.data==="$?"?(t.flags|=192,t.child=l.child,t=null):(l=f.treeContext,hl=mt(c.nextSibling),Yl=t,I=!0,Aa=null,St=!1,l!==null&&(it[ct++]=Dt,it[ct++]=Ut,it[ct++]=Ta,Dt=l.id,Ut=l.overflow,Ta=t),t=ac(t,u.children),t.flags|=4096);return t}return e?(kt(),e=u.fallback,c=t.mode,f=l.child,r=f.sibling,u=Mt(f,{mode:"hidden",children:u.children}),u.subtreeFlags=f.subtreeFlags&65011712,r!==null?e=Mt(r,e):(e=ba(e,c,a,null),e.flags|=2),e.return=t,u.return=t,u.sibling=e,t.child=u,u=e,e=t.child,c=l.child.memoizedState,c===null?c=lc(a):(f=c.cachePool,f!==null?(r=Sl._currentValue,f=f.parent!==r?{parent:r,pool:r}:f):f=os(),c={baseLanes:c.baseLanes|a,cachePool:f}),e.memoizedState=c,e.childLanes=tc(l,i,a),t.memoizedState=Pi,u):($t(t),a=l.child,l=a.sibling,a=Mt(a,{mode:"visible",children:u.children}),a.return=t,a.sibling=null,l!==null&&(i=t.deletions,i===null?(t.deletions=[l],t.flags|=16):i.push(l)),t.child=a,t.memoizedState=null,a)}function ac(l,t){return t=nn({mode:"visible",children:t},l.mode),t.return=l,l.child=t}function nn(l,t){return l=kl(22,l,null,t),l.lanes=0,l.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},l}function uc(l,t,a){return eu(t,l.child,null,a),l=ac(t,t.pendingProps.children),l.flags|=2,t.memoizedState=null,l}function Od(l,t,a){l.lanes|=t;var u=l.alternate;u!==null&&(u.lanes|=t),Ei(l.return,t,a)}function ec(l,t,a,u,e){var n=l.memoizedState;n===null?l.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:u,tail:a,tailMode:e}:(n.isBackwards=t,n.rendering=null,n.renderingStartTime=0,n.last=u,n.tail=a,n.tailMode=e)}function Md(l,t,a){var u=t.pendingProps,e=u.revealOrder,n=u.tail;if(Ol(l,t,u.children,a),u=bl.current,(u&2)!==0)u=u&1|2,t.flags|=128;else{if(l!==null&&(l.flags&128)!==0)l:for(l=t.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&Od(l,a,t);else if(l.tag===19)Od(l,a,t);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===t)break l;for(;l.sibling===null;){if(l.return===null||l.return===t)break l;l=l.return}l.sibling.return=l.return,l=l.sibling}u&=1}switch(_(bl,u),e){case"forwards":for(a=t.child,e=null;a!==null;)l=a.alternate,l!==null&&tn(l)===null&&(e=a),a=a.sibling;a=e,a===null?(e=t.child,t.child=null):(e=a.sibling,a.sibling=null),ec(t,!1,e,a,n);break;case"backwards":for(a=null,e=t.child,t.child=null;e!==null;){if(l=e.alternate,l!==null&&tn(l)===null){t.child=e;break}l=e.sibling,e.sibling=a,a=e,e=l}ec(t,!0,a,null,n);break;case"together":ec(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Ht(l,t,a){if(l!==null&&(t.dependencies=l.dependencies),ta|=t.lanes,(a&t.childLanes)===0)if(l!==null){if(qu(l,t,a,!1),(a&t.childLanes)===0)return null}else return null;if(l!==null&&t.child!==l.child)throw Error(y(153));if(t.child!==null){for(l=t.child,a=Mt(l,l.pendingProps),t.child=a,a.return=t;l.sibling!==null;)l=l.sibling,a=a.sibling=Mt(l,l.pendingProps),a.return=t;a.sibling=null}return t.child}function nc(l,t){return(l.lanes&t)!==0?!0:(l=l.dependencies,!!(l!==null&&Xe(l)))}function Dh(l,t,a){switch(t.tag){case 3:sl(t,t.stateNode.containerInfo),Lt(t,Sl,l.memoizedState.cache),ju();break;case 27:case 5:Hn(t);break;case 4:sl(t,t.stateNode.containerInfo);break;case 10:Lt(t,t.type,t.memoizedProps.value);break;case 13:var u=t.memoizedState;if(u!==null)return u.dehydrated!==null?($t(t),t.flags|=128,null):(a&t.child.childLanes)!==0?_d(l,t,a):($t(t),l=Ht(l,t,a),l!==null?l.sibling:null);$t(t);break;case 19:var e=(l.flags&128)!==0;if(u=(a&t.childLanes)!==0,u||(qu(l,t,a,!1),u=(a&t.childLanes)!==0),e){if(u)return Md(l,t,a);t.flags|=128}if(e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null,e.lastEffect=null),_(bl,bl.current),u)break;return null;case 22:case 23:return t.lanes=0,Td(l,t,a);case 24:Lt(t,Sl,l.memoizedState.cache)}return Ht(l,t,a)}function Dd(l,t,a){if(l!==null)if(l.memoizedProps!==t.pendingProps)Al=!0;else{if(!nc(l,a)&&(t.flags&128)===0)return Al=!1,Dh(l,t,a);Al=(l.flags&131072)!==0}else Al=!1,I&&(t.flags&1048576)!==0&&es(t,Ge,t.index);switch(t.lanes=0,t.tag){case 16:l:{l=t.pendingProps;var u=t.elementType,e=u._init;if(u=e(u._payload),t.type=u,typeof u=="function")vi(u)?(l=Da(u,l),t.tag=1,t=zd(null,t,u,l,a)):(t.tag=0,t=Ii(null,t,u,l,a));else{if(u!=null){if(e=u.$$typeof,e===ht){t.tag=11,t=gd(null,t,u,l,a);break l}else if(e===Ll){t.tag=14,t=Sd(null,t,u,l,a);break l}}throw t=ra(u)||u,Error(y(306,t,""))}}return t;case 0:return Ii(l,t,t.type,t.pendingProps,a);case 1:return u=t.type,e=Da(u,t.pendingProps),zd(l,t,u,e,a);case 3:l:{if(sl(t,t.stateNode.containerInfo),l===null)throw Error(y(387));u=t.pendingProps;var n=t.memoizedState;e=n.element,Di(l,t),Zu(t,u,null,a);var i=t.memoizedState;if(u=i.cache,Lt(t,Sl,u),u!==n.cache&&Ai(t,[Sl],a,!0),Qu(),u=i.element,n.isDehydrated)if(n={element:u,isDehydrated:!1,cache:i.cache},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){t=pd(l,t,u,a);break l}else if(u!==e){e=et(Error(y(424)),t),Hu(e),t=pd(l,t,u,a);break l}else{switch(l=t.stateNode.containerInfo,l.nodeType){case 9:l=l.body;break;default:l=l.nodeName==="HTML"?l.ownerDocument.body:l}for(hl=mt(l.firstChild),Yl=t,I=!0,Aa=null,St=!0,a=id(t,null,u,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling}else{if(ju(),u===e){t=Ht(l,t,a);break l}Ol(l,t,u,a)}t=t.child}return t;case 26:return en(l,t),l===null?(a=R0(t.type,null,t.pendingProps,null))?t.memoizedState=a:I||(a=t.type,l=t.pendingProps,u=Tn(G.current).createElement(a),u[Rl]=t,u[Gl]=l,Dl(u,a,l),El(u),t.stateNode=u):t.memoizedState=R0(t.type,l.memoizedProps,t.pendingProps,l.memoizedState),null;case 27:return Hn(t),l===null&&I&&(u=t.stateNode=U0(t.type,t.pendingProps,G.current),Yl=t,St=!0,e=hl,na(t.type)?(Xc=e,hl=mt(u.firstChild)):hl=e),Ol(l,t,t.pendingProps.children,a),en(l,t),l===null&&(t.flags|=4194304),t.child;case 5:return l===null&&I&&((e=u=hl)&&(u=ar(u,t.type,t.pendingProps,St),u!==null?(t.stateNode=u,Yl=t,hl=mt(u.firstChild),St=!1,e=!0):e=!1),e||za(t)),Hn(t),e=t.type,n=t.pendingProps,i=l!==null?l.memoizedProps:null,u=n.children,qc(e,n)?u=null:i!==null&&qc(e,i)&&(t.flags|=32),t.memoizedState!==null&&(e=Hi(l,t,Th,null,null,a),de._currentValue=e),en(l,t),Ol(l,t,u,a),t.child;case 6:return l===null&&I&&((l=a=hl)&&(a=ur(a,t.pendingProps,St),a!==null?(t.stateNode=a,Yl=t,hl=null,l=!0):l=!1),l||za(t)),null;case 13:return _d(l,t,a);case 4:return sl(t,t.stateNode.containerInfo),u=t.pendingProps,l===null?t.child=eu(t,null,u,a):Ol(l,t,u,a),t.child;case 11:return gd(l,t,t.type,t.pendingProps,a);case 7:return Ol(l,t,t.pendingProps,a),t.child;case 8:return Ol(l,t,t.pendingProps.children,a),t.child;case 12:return Ol(l,t,t.pendingProps.children,a),t.child;case 10:return u=t.pendingProps,Lt(t,t.type,u.value),Ol(l,t,u.children,a),t.child;case 9:return e=t.type._context,u=t.pendingProps.children,_a(t),e=jl(e),u=u(e),t.flags|=1,Ol(l,t,u,a),t.child;case 14:return Sd(l,t,t.type,t.pendingProps,a);case 15:return bd(l,t,t.type,t.pendingProps,a);case 19:return Md(l,t,a);case 31:return u=t.pendingProps,a=t.mode,u={mode:u.mode,children:u.children},l===null?(a=nn(u,a),a.ref=t.ref,t.child=a,a.return=t,t=a):(a=Mt(l.child,u),a.ref=t.ref,t.child=a,a.return=t,t=a),t;case 22:return Td(l,t,a);case 24:return _a(t),u=jl(Sl),l===null?(e=_i(),e===null&&(e=cl,n=zi(),e.pooledCache=n,n.refCount++,n!==null&&(e.pooledCacheLanes|=a),e=n),t.memoizedState={parent:u,cache:e},Mi(t),Lt(t,Sl,e)):((l.lanes&a)!==0&&(Di(l,t),Zu(t,null,null,a),Qu()),e=l.memoizedState,n=t.memoizedState,e.parent!==u?(e={parent:u,cache:u},t.memoizedState=e,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=e),Lt(t,Sl,u)):(u=n.cache,Lt(t,Sl,u),u!==e.cache&&Ai(t,[Sl],a,!0))),Ol(l,t,t.pendingProps.children,a),t.child;case 29:throw t.pendingProps}throw Error(y(156,t.tag))}function qt(l){l.flags|=4}function Ud(l,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)l.flags&=-16777217;else if(l.flags|=16777216,!B0(t)){if(t=ft.current,t!==null&&((w&4194048)===w?bt!==null:(w&62914560)!==w&&(w&536870912)===0||t!==bt))throw Xu=Oi,hs;l.flags|=8192}}function cn(l,t){t!==null&&(l.flags|=4),l.flags&16384&&(t=l.tag!==22?cf():536870912,l.lanes|=t,fu|=t)}function $u(l,t){if(!I)switch(l.tailMode){case"hidden":t=l.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?l.tail=null:a.sibling=null;break;case"collapsed":a=l.tail;for(var u=null;a!==null;)a.alternate!==null&&(u=a),a=a.sibling;u===null?t||l.tail===null?l.tail=null:l.tail.sibling=null:u.sibling=null}}function ol(l){var t=l.alternate!==null&&l.alternate.child===l.child,a=0,u=0;if(t)for(var e=l.child;e!==null;)a|=e.lanes|e.childLanes,u|=e.subtreeFlags&65011712,u|=e.flags&65011712,e.return=l,e=e.sibling;else for(e=l.child;e!==null;)a|=e.lanes|e.childLanes,u|=e.subtreeFlags,u|=e.flags,e.return=l,e=e.sibling;return l.subtreeFlags|=u,l.childLanes=a,t}function Uh(l,t,a){var u=t.pendingProps;switch(Si(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ol(t),null;case 1:return ol(t),null;case 3:return a=t.stateNode,u=null,l!==null&&(u=l.memoizedState.cache),t.memoizedState.cache!==u&&(t.flags|=2048),xt(Sl),Ct(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(l===null||l.child===null)&&(Ru(t)?qt(t):l===null||l.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,cs())),ol(t),null;case 26:return a=t.memoizedState,l===null?(qt(t),a!==null?(ol(t),Ud(t,a)):(ol(t),t.flags&=-16777217)):a?a!==l.memoizedState?(qt(t),ol(t),Ud(t,a)):(ol(t),t.flags&=-16777217):(l.memoizedProps!==u&&qt(t),ol(t),t.flags&=-16777217),null;case 27:ge(t),a=G.current;var e=t.type;if(l!==null&&t.stateNode!=null)l.memoizedProps!==u&&qt(t);else{if(!u){if(t.stateNode===null)throw Error(y(166));return ol(t),null}l=R.current,Ru(t)?ns(t):(l=U0(e,u,a),t.stateNode=l,qt(t))}return ol(t),null;case 5:if(ge(t),a=t.type,l!==null&&t.stateNode!=null)l.memoizedProps!==u&&qt(t);else{if(!u){if(t.stateNode===null)throw Error(y(166));return ol(t),null}if(l=R.current,Ru(t))ns(t);else{switch(e=Tn(G.current),l){case 1:l=e.createElementNS("http://www.w3.org/2000/svg",a);break;case 2:l=e.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;default:switch(a){case"svg":l=e.createElementNS("http://www.w3.org/2000/svg",a);break;case"math":l=e.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;case"script":l=e.createElement("div"),l.innerHTML=" - + + + + +
+ diff --git a/docs/vite.svg b/docs/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/docs/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..cee1e2c --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,29 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{js,jsx}'], + extends: [ + js.configs.recommended, + reactHooks.configs['recommended-latest'], + reactRefresh.configs.vite, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + rules: { + 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }], + }, + }, +]) diff --git a/index.html b/index.html new file mode 100644 index 0000000..9c725d9 --- /dev/null +++ b/index.html @@ -0,0 +1,19 @@ + + + + + + + Jeffrey Epstein Prison Video - Forensic Analysis + + + + + + + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..ecf7902 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2796 @@ +{ + "name": "react-temp", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "react-temp", + "version": "0.0.0", + "dependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@eslint/js": "^9.30.1", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "eslint": "^9.30.1", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^16.3.0", + "vite": "^7.0.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz", + "integrity": "sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz", + "integrity": "sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz", + "integrity": "sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz", + "integrity": "sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz", + "integrity": "sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz", + "integrity": "sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz", + "integrity": "sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz", + "integrity": "sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz", + "integrity": "sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz", + "integrity": "sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz", + "integrity": "sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz", + "integrity": "sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz", + "integrity": "sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz", + "integrity": "sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz", + "integrity": "sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz", + "integrity": "sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz", + "integrity": "sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz", + "integrity": "sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz", + "integrity": "sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz", + "integrity": "sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz", + "integrity": "sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz", + "integrity": "sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz", + "integrity": "sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz", + "integrity": "sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz", + "integrity": "sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz", + "integrity": "sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", + "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.3.tgz", + "integrity": "sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.19", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz", + "integrity": "sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz", + "integrity": "sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz", + "integrity": "sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz", + "integrity": "sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz", + "integrity": "sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz", + "integrity": "sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz", + "integrity": "sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz", + "integrity": "sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz", + "integrity": "sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz", + "integrity": "sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz", + "integrity": "sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz", + "integrity": "sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz", + "integrity": "sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz", + "integrity": "sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz", + "integrity": "sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz", + "integrity": "sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz", + "integrity": "sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz", + "integrity": "sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz", + "integrity": "sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz", + "integrity": "sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz", + "integrity": "sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", + "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz", + "integrity": "sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.19", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.182", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.182.tgz", + "integrity": "sha512-Lv65Btwv9W4J9pyODI6EWpdnhfvrve/us5h1WspW8B2Fb0366REPtY3hX7ounk1CkV/TBjWCEvCBBbYbmV0qCA==", + "dev": true, + "license": "ISC" + }, + "node_modules/esbuild": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz", + "integrity": "sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.6", + "@esbuild/android-arm": "0.25.6", + "@esbuild/android-arm64": "0.25.6", + "@esbuild/android-x64": "0.25.6", + "@esbuild/darwin-arm64": "0.25.6", + "@esbuild/darwin-x64": "0.25.6", + "@esbuild/freebsd-arm64": "0.25.6", + "@esbuild/freebsd-x64": "0.25.6", + "@esbuild/linux-arm": "0.25.6", + "@esbuild/linux-arm64": "0.25.6", + "@esbuild/linux-ia32": "0.25.6", + "@esbuild/linux-loong64": "0.25.6", + "@esbuild/linux-mips64el": "0.25.6", + "@esbuild/linux-ppc64": "0.25.6", + "@esbuild/linux-riscv64": "0.25.6", + "@esbuild/linux-s390x": "0.25.6", + "@esbuild/linux-x64": "0.25.6", + "@esbuild/netbsd-arm64": "0.25.6", + "@esbuild/netbsd-x64": "0.25.6", + "@esbuild/openbsd-arm64": "0.25.6", + "@esbuild/openbsd-x64": "0.25.6", + "@esbuild/openharmony-arm64": "0.25.6", + "@esbuild/sunos-x64": "0.25.6", + "@esbuild/win32-arm64": "0.25.6", + "@esbuild/win32-ia32": "0.25.6", + "@esbuild/win32-x64": "0.25.6" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", + "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", + "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", + "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.45.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz", + "integrity": "sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.45.0", + "@rollup/rollup-android-arm64": "4.45.0", + "@rollup/rollup-darwin-arm64": "4.45.0", + "@rollup/rollup-darwin-x64": "4.45.0", + "@rollup/rollup-freebsd-arm64": "4.45.0", + "@rollup/rollup-freebsd-x64": "4.45.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.45.0", + "@rollup/rollup-linux-arm-musleabihf": "4.45.0", + "@rollup/rollup-linux-arm64-gnu": "4.45.0", + "@rollup/rollup-linux-arm64-musl": "4.45.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.45.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.45.0", + "@rollup/rollup-linux-riscv64-gnu": "4.45.0", + "@rollup/rollup-linux-riscv64-musl": "4.45.0", + "@rollup/rollup-linux-s390x-gnu": "4.45.0", + "@rollup/rollup-linux-x64-gnu": "4.45.0", + "@rollup/rollup-linux-x64-musl": "4.45.0", + "@rollup/rollup-win32-arm64-msvc": "4.45.0", + "@rollup/rollup-win32-ia32-msvc": "4.45.0", + "@rollup/rollup-win32-x64-msvc": "4.45.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz", + "integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.6", + "picomatch": "^4.0.2", + "postcss": "^8.5.6", + "rollup": "^4.40.0", + "tinyglobby": "^0.2.14" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..23ddff9 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "react-temp", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@eslint/js": "^9.30.1", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "eslint": "^9.30.1", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^16.3.0", + "vite": "^7.0.4" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..52d38ec --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,26 @@ +import Header from './components/Header' +import CriticalFindings from './components/CriticalFindings' +import StatsGrid from './components/StatsGrid' +import EvidenceGrid from './components/EvidenceGrid' +import Methodology from './components/Methodology' +import CallToAction from './components/CallToAction' +import LegalImplications from './components/LegalImplications' +import Footer from './components/Footer' +import './styles/globals.css' + +function App() { + return ( +
+
+ + + + + + +
+
+ ) +} + +export default App diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/CallToAction.jsx b/src/components/CallToAction.jsx new file mode 100644 index 0000000..2800c4c --- /dev/null +++ b/src/components/CallToAction.jsx @@ -0,0 +1,13 @@ +function CallToAction() { + return ( +
+

๐Ÿš€ Run Your Own Analysis

+

Verify these findings yourself using our open-source forensic analysis tools

+ ๐Ÿ“ View on GitHub + โฌ‡๏ธ Download Tools +
+ ) +} + +export default CallToAction + diff --git a/src/components/CriticalFindings.jsx b/src/components/CriticalFindings.jsx new file mode 100644 index 0000000..86a3fb6 --- /dev/null +++ b/src/components/CriticalFindings.jsx @@ -0,0 +1,17 @@ +function CriticalFindings() { + return ( +
+

๐ŸŽฏ CRITICAL FINDINGS

+
    +
  • Adobe Software Detected: Video processed through Adobe Media Encoder 2024.0
  • +
  • Multiple Source Files: Evidence of content splicing from separate video files
  • +
  • Splice Point Identified: 39 seconds of content replaced at 6h 36m mark
  • +
  • Chain of Custody Broken: Original surveillance footage was modified
  • +
  • Deceptive Labeling: Video labeled as "raw" despite extensive editing
  • +
+
+ ) +} + +export default CriticalFindings + diff --git a/src/components/EvidenceGrid.jsx b/src/components/EvidenceGrid.jsx new file mode 100644 index 0000000..cabc411 --- /dev/null +++ b/src/components/EvidenceGrid.jsx @@ -0,0 +1,67 @@ +import FrameViewer from './FrameViewer' + +function EvidenceGrid() { + return ( +
+
+

๐Ÿ” Adobe Editing Signatures

+

Definitive proof of professional video editing software usage:

+
+CreatorTool: Adobe Media Encoder 2024.0 (Windows) +{'\n'}WindowsAtomUncProjectPath: MJCOLE~1 +{'\n'}Project: mcc_4.prproj +
+

Command used:

+
+exiftool -CreatorTool -WindowsAtomUncProjectPath raw_video.mp4 +
+
+ +
+

โฐ Splice Point Calculation

+

Adobe timing metadata reveals exact splice location:

+
+Adobe Timing: time:0d6035539564454400f254016000000 +{'\n'}Calculation: 6035539564454400 รท 254016000000 +{'\n'}Result: 23760.47 seconds = 6h 36m 0s +
+

Command used:

+
+python3 -c "print(6035539564454400 / 254016000000)" +
+
+ +
+

๐ŸŽฌ Visual Frame Evidence

+

Frame analysis confirms splice point with compression discontinuity:

+
+Frame 2 (6h36m00s): 2,155,188 bytes +{'\n'}Frame 3 (6h36m01s): 2,263,396 bytes +{'\n'}Size Change: +108,208 bytes (+5.0%) +
+ + + +

Commands used:

+
+ffmpeg -ss 23759 -t 4 -vf "fps=1" frames/frame_%03d.png video.mp4 +{'\n'}ls -la frames/*.png | awk '{'{'}print $9, $5{'}'}' +
+
+ +
+

๐Ÿ“ Source Clips Identified

+

Multiple source files found in Adobe XMP metadata:

+
+Clip 1: 2025-05-22 21-12-48.mp4 (23.76 sec) +{'\n'}Clip 2: 2025-05-22 16-35-21.mp4 (15.56 sec) +{'\n'}Total: 39.32 seconds of replacement content +
+

These clips were spliced into the surveillance video at the 6h 36m mark, replacing original footage.

+
+
+ ) +} + +export default EvidenceGrid + diff --git a/src/components/ExpandableSection.jsx b/src/components/ExpandableSection.jsx new file mode 100644 index 0000000..9a26b26 --- /dev/null +++ b/src/components/ExpandableSection.jsx @@ -0,0 +1,53 @@ +import { useState } from 'react' + +function ExpandableSection({ title, children, defaultExpanded = false }) { + const [isExpanded, setIsExpanded] = useState(defaultExpanded) + + return ( +
+ + {isExpanded && ( +
+ {children} +
+ )} +
+ ) +} + +export default ExpandableSection + diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx new file mode 100644 index 0000000..b84813e --- /dev/null +++ b/src/components/Footer.jsx @@ -0,0 +1,17 @@ +function Footer() { + return ( +
+

Forensic Analysis Tools: ExifTool, FFmpeg, FFprobe, Python 3

+

Analysis Date: January 2025

+

Source: GitHub Repository

+

Related: Original Wired Article

+

+ This analysis is provided for educational and research purposes. + Users should verify findings independently and consult with qualified digital forensics experts for legal or evidentiary purposes. +

+
+ ) +} + +export default Footer + diff --git a/src/components/FrameViewer.jsx b/src/components/FrameViewer.jsx new file mode 100644 index 0000000..a806436 --- /dev/null +++ b/src/components/FrameViewer.jsx @@ -0,0 +1,139 @@ +import { useState, useEffect } from 'react' + +function FrameViewer() { + const frameData = [ + { filename: "frame_001.png", path: "splice_frames/splice_1/frame_001.png", size: "2,116,047 bytes", time: "6h35m55s" }, + { filename: "frame_002.png", path: "splice_frames/splice_1/frame_002.png", size: "2,084,324 bytes", time: "6h35m56s" }, + { filename: "frame_003.png", path: "splice_frames/splice_1/frame_003.png", size: "2,012,467 bytes", time: "6h35m57s" }, + { filename: "frame_004.png", path: "splice_frames/splice_1/frame_004.png", size: "2,086,191 bytes", time: "6h35m58s" }, + { filename: "frame_005.png", path: "splice_frames/splice_1/frame_005.png", size: "2,062,775 bytes", time: "6h35m59s" }, + { filename: "frame_006.png", path: "splice_frames/splice_1/frame_006.png", size: "2,108,242 bytes", time: "6h36m00s" }, + { filename: "frame_007.png", path: "splice_frames/splice_1/frame_007.png", size: "2,067,485 bytes", time: "6h36m01s" }, + { filename: "frame_008.png", path: "splice_frames/splice_1/frame_008.png", size: "2,048,178 bytes", time: "6h36m02s" }, + { filename: "frame_009.png", path: "splice_frames/splice_1/frame_009.png", size: "2,010,795 bytes", time: "6h36m03s" }, + { filename: "frame_010.png", path: "splice_frames/splice_1/frame_010.png", size: "2,055,549 bytes", time: "6h36m04s" } + ] + + const [currentFrameIndex, setCurrentFrameIndex] = useState(0) + const [isAutoPlaying, setIsAutoPlaying] = useState(false) + + useEffect(() => { + let interval = null + if (isAutoPlaying) { + interval = setInterval(() => { + setCurrentFrameIndex(prevIndex => { + const nextIndex = prevIndex + 1 + return nextIndex >= frameData.length ? 0 : nextIndex + }) + }, 1000) + } + return () => { + if (interval) clearInterval(interval) + } + }, [isAutoPlaying, frameData.length]) + + const currentFrame = frameData[currentFrameIndex] + const isDiscontinuityFrame = currentFrameIndex === 1 || currentFrameIndex === 2 + + const handleSliderChange = (e) => { + setCurrentFrameIndex(parseInt(e.target.value)) + } + + const previousFrame = () => { + if (currentFrameIndex > 0) { + setCurrentFrameIndex(currentFrameIndex - 1) + } + } + + const nextFrame = () => { + if (currentFrameIndex < frameData.length - 1) { + setCurrentFrameIndex(currentFrameIndex + 1) + } + } + + const toggleAutoPlay = () => { + setIsAutoPlaying(!isAutoPlaying) + } + + return ( +
+

๐ŸŽฌ Interactive Frame Analysis - Splice Point Evidence

+

Use the slider below to examine frames around the splice point and observe the discontinuity:

+ +
+ {`Frame +
+ Frame {currentFrameIndex + 1} of {frameData.length} + {currentFrame.filename} ({currentFrame.time}) + + Size: {currentFrame.size} + +
+
+ +
+ + + + +
+ +
+ Before Splice (6h35m55s) +
+ After Splice (6h36m05s) +
+ +
+

๐Ÿ” What to look for:

+
    +
  • Frame 2-3: Notice the 5.0% file size jump indicating compression change
  • +
  • Visual artifacts or quality differences between frames
  • +
  • Timing discontinuities at the splice boundary
  • +
+
+
+ ) +} + +export default FrameViewer + diff --git a/src/components/Header.jsx b/src/components/Header.jsx new file mode 100644 index 0000000..5478dc1 --- /dev/null +++ b/src/components/Header.jsx @@ -0,0 +1,12 @@ +function Header() { + return ( +
+

๐Ÿšจ FORENSIC ANALYSIS REPORT

+

Jeffrey Epstein Prison Video

+

Computational evidence revealing professional video editing in DOJ's "raw" surveillance footage

+
+ ) +} + +export default Header + diff --git a/src/components/LegalImplications.jsx b/src/components/LegalImplications.jsx new file mode 100644 index 0000000..44b9586 --- /dev/null +++ b/src/components/LegalImplications.jsx @@ -0,0 +1,29 @@ +function LegalImplications() { + const implications = [ + "Misrepresentation: Video labeled as \"raw\" despite professional editing", + "Content Modification: Original surveillance footage was altered using Adobe software", + "Source Substitution: Multiple video files combined into single presentation", + "Chain of Custody: Evidence integrity compromised through undisclosed editing", + "Transparency: Editing process not disclosed in official documentation" + ] + + return ( +
+

โš–๏ธ Legal and Ethical Implications

+

This computational analysis reveals several concerning issues:

+
    + {implications.map((implication, index) => ( +
  • + {implication.split(':')[0]}: {implication.split(':')[1]} +
  • + ))} +
+

+ Note: This analysis focuses solely on technical metadata examination and makes no claims about the events depicted in the video. +

+
+ ) +} + +export default LegalImplications + diff --git a/src/components/Methodology.jsx b/src/components/Methodology.jsx new file mode 100644 index 0000000..4a68571 --- /dev/null +++ b/src/components/Methodology.jsx @@ -0,0 +1,49 @@ +import ExpandableSection from './ExpandableSection' + +function Methodology() { + const steps = [ + { + title: "1. Metadata Extraction", + description: "Used ExifTool to extract all embedded metadata, including Adobe's proprietary XMP editing data.", + command: "exiftool -j -a -u -g1 raw_video.mp4", + details: "ExifTool is the industry standard for metadata extraction. The flags used: -j (JSON output), -a (allow duplicate tags), -u (unknown tags), -g1 (group by category)." + }, + { + title: "2. Adobe XMP Analysis", + description: "Parsed Adobe's internal editing metadata to identify software signatures and timing information.", + command: "exiftool -xmp -b raw_video.mp4", + details: "XMP (Extensible Metadata Platform) contains Adobe's proprietary editing information, including project files, timing data, and software signatures." + }, + { + title: "3. Timing Calculation", + description: "Decoded Adobe's proprietary timing format to locate exact splice points in the video.", + command: 'python3 -c "print(6035539564454400 / 254016000000)"', + details: "Adobe uses a specific timing format where the numerator represents ticks and the denominator represents ticks per second. This calculation reveals the exact timestamp." + }, + { + title: "4. Frame Extraction & Analysis", + description: "Extracted frames around predicted splice points and analyzed file sizes for compression discontinuities.", + command: 'ffmpeg -ss 23759 -t 4 -vf "fps=1" frames/frame_%03d.png video.mp4', + details: "FFmpeg extracts frames at 1fps starting from the calculated splice point. File size analysis reveals compression changes that indicate editing." + } + ] + + return ( +
+

๐Ÿ”ฌ Computational Forensics Methodology

+

This analysis used industry-standard digital forensics tools and techniques:

+ + {steps.map((step, index) => ( + +

{step.description}

+
{step.command}
+

+ Technical Details: {step.details} +

+
+ ))} +
+ ) +} + +export default Methodology diff --git a/src/components/StatsGrid.jsx b/src/components/StatsGrid.jsx new file mode 100644 index 0000000..7c8d8ec --- /dev/null +++ b/src/components/StatsGrid.jsx @@ -0,0 +1,22 @@ +function StatsGrid() { + const stats = [ + { number: "19.5", label: "GB Video File" }, + { number: "10.9", label: "Hours Duration" }, + { number: "6:36", label: "Splice Location" }, + { number: "5.0%", label: "Frame Size Change" } + ] + + return ( +
+ {stats.map((stat, index) => ( +
+ {stat.number} +
{stat.label}
+
+ ))} +
+ ) +} + +export default StatsGrid + diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..08a3ac9 --- /dev/null +++ b/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..b9a1a6d --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.jsx' + +createRoot(document.getElementById('root')).render( + + + , +) diff --git a/src/styles/globals.css b/src/styles/globals.css new file mode 100644 index 0000000..9b9c631 --- /dev/null +++ b/src/styles/globals.css @@ -0,0 +1,440 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background: linear-gradient(135deg, #0a0a0a, #1a1a1a); + color: #e0e0e0; + line-height: 1.6; + min-height: 100vh; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; +} + +.header { + text-align: center; + margin-bottom: 40px; + padding: 40px 20px; + background: linear-gradient(135deg, #1a1a1a, #2d2d2d); + border-radius: 15px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); +} + +.header h1 { + color: #ff6b6b; + font-size: clamp(2rem, 5vw, 3.5rem); + margin-bottom: 10px; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); +} + +.header h2 { + color: #4ecdc4; + font-size: clamp(1.5rem, 4vw, 2.5rem); + margin-bottom: 15px; + font-weight: 300; +} + +.header p { + font-size: clamp(1rem, 2.5vw, 1.3rem); + color: #ccc; + max-width: 800px; + margin: 0 auto; +} + +.critical-alert { + background: linear-gradient(135deg, #ff6b6b, #ee5a52); + color: #fff; + padding: 30px; + border-radius: 15px; + margin: 30px 0; + box-shadow: 0 10px 30px rgba(255, 107, 107, 0.3); +} + +.critical-alert h3 { + font-size: 1.8rem; + margin-bottom: 20px; + text-align: center; +} + +.critical-alert ul { + list-style: none; + padding: 0; +} + +.critical-alert li { + margin: 15px 0; + padding: 10px 0; + border-bottom: 1px solid rgba(255, 255, 255, 0.2); + font-size: 1.1rem; +} + +.critical-alert li:last-child { + border-bottom: none; +} + +.evidence-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); + gap: 30px; + margin: 40px 0; +} + +.evidence-card { + background: linear-gradient(135deg, #2d2d2d, #3d3d3d); + padding: 25px; + border-radius: 15px; + border-left: 5px solid #4ecdc4; + box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3); + transition: transform 0.3s ease, box-shadow 0.3s ease; +} + +.evidence-card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); +} + +.evidence-card h3 { + color: #4ecdc4; + font-size: 1.5rem; + margin-bottom: 15px; +} + +.command-block { + background: #000; + color: #00ff00; + padding: 15px; + border-radius: 8px; + font-family: 'Courier New', monospace; + margin: 15px 0; + overflow-x: auto; + border: 1px solid #333; +} + +.highlight { + background: linear-gradient(135deg, #ffd54f, #ffb300); + color: #000; + padding: 3px 8px; + border-radius: 5px; + font-weight: bold; +} + +.stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 20px; + margin: 30px 0; +} + +.stat-card { + background: linear-gradient(135deg, #1a1a1a, #2d2d2d); + padding: 20px; + border-radius: 10px; + text-align: center; + border: 2px solid #333; +} + +.stat-number { + font-size: 2.5rem; + font-weight: bold; + color: #ff6b6b; + display: block; +} + +.stat-label { + color: #888; + font-size: 0.9rem; + margin-top: 5px; +} + +.methodology { + background: linear-gradient(135deg, #2d2d2d, #1a1a1a); + padding: 30px; + border-radius: 15px; + margin: 40px 0; + border: 2px solid #333; +} + +.methodology h3 { + color: #4ecdc4; + font-size: 1.8rem; + margin-bottom: 20px; +} + +.step { + margin: 20px 0; + padding: 15px; + background: rgba(255, 255, 255, 0.05); + border-radius: 8px; + border-left: 4px solid #4ecdc4; +} + +.step h4 { + color: #fff; + margin-bottom: 10px; +} + +.cta-section { + background: linear-gradient(135deg, #4ecdc4, #45b7aa); + color: #000; + padding: 40px; + border-radius: 15px; + text-align: center; + margin: 40px 0; + box-shadow: 0 10px 30px rgba(78, 205, 196, 0.3); +} + +.cta-section h3 { + font-size: 2rem; + margin-bottom: 15px; +} + +.cta-section p { + font-size: 1.2rem; + margin-bottom: 25px; +} + +.cta-button { + display: inline-block; + background: #000; + color: #4ecdc4; + padding: 15px 30px; + margin: 10px; + border-radius: 8px; + text-decoration: none; + font-weight: bold; + font-size: 1.1rem; + transition: all 0.3s ease; + border: 2px solid #000; +} + +.cta-button:hover { + background: #4ecdc4; + color: #000; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); +} + +.footer { + background: linear-gradient(135deg, #1a1a1a, #0a0a0a); + padding: 30px; + border-radius: 15px; + margin-top: 40px; + text-align: center; + border: 2px solid #333; +} + +.footer p { + margin: 10px 0; + color: #888; +} + +.footer a { + color: #4ecdc4; + text-decoration: none; +} + +.footer a:hover { + text-decoration: underline; +} + +/* Frame Viewer Styles */ +.frame-viewer { + margin: 30px 0; + padding: 25px; + background: linear-gradient(135deg, #1a1a1a, #2d2d2d); + border-radius: 15px; + border: 2px solid #333; +} + +.frame-viewer h4 { + color: #4ecdc4; + font-size: 1.3rem; + margin-bottom: 15px; + text-align: center; +} + +.frame-container { + text-align: center; + margin: 20px 0; +} + +.frame-image { + max-width: 100%; + height: auto; + border: 2px solid #555; + border-radius: 8px; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); +} + +.frame-info { + display: flex; + justify-content: space-between; + align-items: center; + margin: 15px 0; + padding: 10px; + background: rgba(255, 255, 255, 0.05); + border-radius: 8px; + font-size: 0.9rem; +} + +.frame-controls { + display: flex; + justify-content: center; + align-items: center; + gap: 15px; + margin: 20px 0; + flex-wrap: wrap; +} + +.frame-btn { + background: #4ecdc4; + color: #000; + border: none; + padding: 10px 15px; + border-radius: 5px; + cursor: pointer; + font-weight: bold; + transition: all 0.3s ease; +} + +.frame-btn:hover { + background: #45b7aa; + transform: translateY(-1px); +} + +.frame-btn:disabled { + background: #666; + color: #999; + cursor: not-allowed; + transform: none; +} + +.frame-slider { + flex: 1; + max-width: 300px; + height: 8px; + background: #333; + border-radius: 5px; + outline: none; + -webkit-appearance: none; +} + +.frame-slider::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 20px; + height: 20px; + background: #4ecdc4; + border-radius: 50%; + cursor: pointer; +} + +.frame-slider::-moz-range-thumb { + width: 20px; + height: 20px; + background: #4ecdc4; + border-radius: 50%; + cursor: pointer; + border: none; +} + +.frame-timeline { + display: flex; + justify-content: space-between; + align-items: center; + margin: 15px 0; + font-size: 0.9em; + color: #888; +} + +.splice-indicator { + width: 4px; + height: 20px; + background: #ff6b6b; + border-radius: 2px; + position: relative; +} + +.splice-indicator::before { + content: "SPLICE"; + position: absolute; + top: -25px; + left: 50%; + transform: translateX(-50%); + font-size: 0.7em; + color: #ff6b6b; + font-weight: bold; +} + +.discontinuity-info { + background: #1a1a1a; + border-left: 4px solid #ff6b6b; + padding: 15px; + margin: 20px 0; + border-radius: 5px; +} + +.discontinuity-info ul { + margin: 10px 0 0 20px; +} + +.discontinuity-info li { + margin: 8px 0; + color: #ccc; +} + +/* Animations */ +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Expandable Section Styles */ +.expandable-section { + margin: 20px 0; +} + +.expand-button:hover { + background: linear-gradient(135deg, #45b7aa, #3da89e) !important; + transform: translateY(-1px); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); +} + +/* Responsive Design */ +@media (max-width: 768px) { + .container { + padding: 10px; + } + + .evidence-grid { + grid-template-columns: 1fr; + } + + .frame-controls { + flex-direction: column; + gap: 10px; + } + + .frame-slider { + max-width: 100%; + } + + .frame-info { + flex-direction: column; + gap: 5px; + text-align: center; + } +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..9d02071 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,23 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], + base: '/forensic-analysis/', + build: { + outDir: 'docs', + emptyOutDir: false, // Don't empty docs folder to preserve splice_frames + rollupOptions: { + output: { + // Preserve the splice_frames directory structure + assetFileNames: (assetInfo) => { + if (assetInfo.name && assetInfo.name.includes('splice_frames')) { + return assetInfo.name; + } + return 'assets/[name]-[hash][extname]'; + } + } + } + } +})