diff --git a/scripts/verify-binaries.js b/scripts/verify-binaries.js index 6d2ae0a..8448446 100644 --- a/scripts/verify-binaries.js +++ b/scripts/verify-binaries.js @@ -170,8 +170,21 @@ console.log('\n─── 6. yt-dlp packaging ───'); ok('_internal/ symlinks valid'); } } + + const requiredRuntimeFiles = [ + path.join(internalDir, 'Python'), + path.join(internalDir, 'yt_dlp_ejs', 'yt', 'solver', 'core.min.js'), + path.join(internalDir, 'yt_dlp_ejs', 'yt', 'solver', 'lib.min.js'), + ]; + for (const required of requiredRuntimeFiles) { + if (fs.existsSync(required)) { + ok(`yt-dlp runtime component: ${path.relative(binariesDir, required)}`); + } else { + fail(`Missing yt-dlp runtime component: ${path.relative(binariesDir, required)}`); + } + } } else { - console.log(' No _internal/ directory, assuming standalone onefile binary'); + fail('yt-dlp must use the self-contained onedir distribution; onefile adds ~17 seconds to every launch'); } } } @@ -209,7 +222,8 @@ function runEngine(label, engine, args, timeout = 30000) { } } -runEngine('yt-dlp', 'yt-dlp', ['--version'], 45000); +runEngine('yt-dlp cold start', 'yt-dlp', ['--version'], 20000); +runEngine('yt-dlp warm start', 'yt-dlp', ['--version'], 8000); runEngine('ffmpeg', 'ffmpeg', ['-version']); runEngine('deno', 'deno', ['--version']); runEngine('aria2c', 'aria2c', ['--version']); diff --git a/src-tauri/binaries/_internal/81d243bd2c585b0f4821__mypyc.cpython-314-darwin.so b/src-tauri/binaries/_internal/81d243bd2c585b0f4821__mypyc.cpython-314-darwin.so new file mode 100755 index 0000000..f5a46ef Binary files /dev/null and b/src-tauri/binaries/_internal/81d243bd2c585b0f4821__mypyc.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_ARC4.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_ARC4.abi3.so new file mode 100755 index 0000000..e858970 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_ARC4.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_Salsa20.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_Salsa20.abi3.so new file mode 100755 index 0000000..58e6885 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_Salsa20.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_chacha20.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_chacha20.abi3.so new file mode 100755 index 0000000..7a39334 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_chacha20.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_pkcs1_decode.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_pkcs1_decode.abi3.so new file mode 100755 index 0000000..f72d8dd Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_pkcs1_decode.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_aes.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_aes.abi3.so new file mode 100755 index 0000000..cbd607e Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_aes.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_arc2.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_arc2.abi3.so new file mode 100755 index 0000000..9c2de4f Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_arc2.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_blowfish.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_blowfish.abi3.so new file mode 100755 index 0000000..1ec3c42 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_blowfish.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_cast.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_cast.abi3.so new file mode 100755 index 0000000..ac12ef4 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_cast.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_cbc.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_cbc.abi3.so new file mode 100755 index 0000000..da2f375 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_cbc.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_cfb.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_cfb.abi3.so new file mode 100755 index 0000000..3f5b63c Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_cfb.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ctr.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ctr.abi3.so new file mode 100755 index 0000000..9087012 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ctr.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_des.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_des.abi3.so new file mode 100755 index 0000000..5a0defa Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_des.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_des3.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_des3.abi3.so new file mode 100755 index 0000000..0d70aba Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_des3.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ecb.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ecb.abi3.so new file mode 100755 index 0000000..3361d66 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ecb.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_eksblowfish.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_eksblowfish.abi3.so new file mode 100755 index 0000000..075b67d Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_eksblowfish.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ocb.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ocb.abi3.so new file mode 100755 index 0000000..d05419c Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ocb.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ofb.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ofb.abi3.so new file mode 100755 index 0000000..6e79efa Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Cipher/_raw_ofb.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_BLAKE2b.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_BLAKE2b.abi3.so new file mode 100755 index 0000000..bcce968 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_BLAKE2b.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_BLAKE2s.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_BLAKE2s.abi3.so new file mode 100755 index 0000000..e7a8159 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_BLAKE2s.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_MD2.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_MD2.abi3.so new file mode 100755 index 0000000..5683282 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_MD2.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_MD4.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_MD4.abi3.so new file mode 100755 index 0000000..484b106 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_MD4.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_MD5.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_MD5.abi3.so new file mode 100755 index 0000000..e61dd85 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_MD5.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_RIPEMD160.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_RIPEMD160.abi3.so new file mode 100755 index 0000000..d280470 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_RIPEMD160.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA1.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA1.abi3.so new file mode 100755 index 0000000..9de2aa3 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA1.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA224.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA224.abi3.so new file mode 100755 index 0000000..d45e5d9 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA224.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA256.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA256.abi3.so new file mode 100755 index 0000000..bb5997b Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA256.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA384.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA384.abi3.so new file mode 100755 index 0000000..bdc498d Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA384.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA512.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA512.abi3.so new file mode 100755 index 0000000..dcd6826 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_SHA512.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_ghash_portable.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_ghash_portable.abi3.so new file mode 100755 index 0000000..3c0ad82 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_ghash_portable.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_keccak.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_keccak.abi3.so new file mode 100755 index 0000000..baf039e Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_keccak.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Hash/_poly1305.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Hash/_poly1305.abi3.so new file mode 100755 index 0000000..18c9881 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Hash/_poly1305.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Math/_modexp.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Math/_modexp.abi3.so new file mode 100755 index 0000000..6f51f9d Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Math/_modexp.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Protocol/_scrypt.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Protocol/_scrypt.abi3.so new file mode 100755 index 0000000..e809b86 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Protocol/_scrypt.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/PublicKey/_curve25519.abi3.so b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_curve25519.abi3.so new file mode 100755 index 0000000..9cf13c6 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_curve25519.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/PublicKey/_curve448.abi3.so b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_curve448.abi3.so new file mode 100755 index 0000000..f302b3d Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_curve448.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/PublicKey/_ec_ws.abi3.so b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_ec_ws.abi3.so new file mode 100755 index 0000000..1679e5a Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_ec_ws.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/PublicKey/_ed25519.abi3.so b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_ed25519.abi3.so new file mode 100755 index 0000000..48eebf2 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_ed25519.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/PublicKey/_ed448.abi3.so b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_ed448.abi3.so new file mode 100755 index 0000000..65d0092 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/PublicKey/_ed448.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Util/_cpuid_c.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Util/_cpuid_c.abi3.so new file mode 100755 index 0000000..a2aacea Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Util/_cpuid_c.abi3.so differ diff --git a/src-tauri/binaries/_internal/Cryptodome/Util/_strxor.abi3.so b/src-tauri/binaries/_internal/Cryptodome/Util/_strxor.abi3.so new file mode 100755 index 0000000..f93aed7 Binary files /dev/null and b/src-tauri/binaries/_internal/Cryptodome/Util/_strxor.abi3.so differ diff --git a/src-tauri/binaries/_internal/Python b/src-tauri/binaries/_internal/Python new file mode 100755 index 0000000..d9782ba Binary files /dev/null and b/src-tauri/binaries/_internal/Python differ diff --git a/src-tauri/binaries/_internal/Python.framework/Python b/src-tauri/binaries/_internal/Python.framework/Python new file mode 100755 index 0000000..d9782ba Binary files /dev/null and b/src-tauri/binaries/_internal/Python.framework/Python differ diff --git a/src-tauri/binaries/_internal/Python.framework/Resources/Info.plist b/src-tauri/binaries/_internal/Python.framework/Resources/Info.plist new file mode 100644 index 0000000..d72ed27 --- /dev/null +++ b/src-tauri/binaries/_internal/Python.framework/Resources/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleName + Python + CFBundleIdentifier + org.python.python + CFBundleVersion + 3.14.5 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleExecutable + Python + CFBundleInfoDictionaryVersion + 6.0 + CFBundleShortVersionString + 3.14.5 + CFBundleSupportedPlatforms + + MacOSX + + NSHumanReadableCopyright + Copyright © 2001 Python Software Foundation. All rights reserved. + CFBundleDevelopmentRegion + English + CFBundleAllowMixedLocalizations + + + diff --git a/src-tauri/binaries/_internal/Python.framework/Versions/3.14/Python b/src-tauri/binaries/_internal/Python.framework/Versions/3.14/Python new file mode 100755 index 0000000..d9782ba Binary files /dev/null and b/src-tauri/binaries/_internal/Python.framework/Versions/3.14/Python differ diff --git a/src-tauri/binaries/_internal/Python.framework/Versions/3.14/Resources/Info.plist b/src-tauri/binaries/_internal/Python.framework/Versions/3.14/Resources/Info.plist new file mode 100644 index 0000000..d72ed27 --- /dev/null +++ b/src-tauri/binaries/_internal/Python.framework/Versions/3.14/Resources/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleName + Python + CFBundleIdentifier + org.python.python + CFBundleVersion + 3.14.5 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleExecutable + Python + CFBundleInfoDictionaryVersion + 6.0 + CFBundleShortVersionString + 3.14.5 + CFBundleSupportedPlatforms + + MacOSX + + NSHumanReadableCopyright + Copyright © 2001 Python Software Foundation. All rights reserved. + CFBundleDevelopmentRegion + English + CFBundleAllowMixedLocalizations + + + diff --git a/src-tauri/binaries/_internal/Python.framework/Versions/Current/Python b/src-tauri/binaries/_internal/Python.framework/Versions/Current/Python new file mode 100755 index 0000000..d9782ba Binary files /dev/null and b/src-tauri/binaries/_internal/Python.framework/Versions/Current/Python differ diff --git a/src-tauri/binaries/_internal/Python.framework/Versions/Current/Resources/Info.plist b/src-tauri/binaries/_internal/Python.framework/Versions/Current/Resources/Info.plist new file mode 100644 index 0000000..d72ed27 --- /dev/null +++ b/src-tauri/binaries/_internal/Python.framework/Versions/Current/Resources/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleName + Python + CFBundleIdentifier + org.python.python + CFBundleVersion + 3.14.5 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleExecutable + Python + CFBundleInfoDictionaryVersion + 6.0 + CFBundleShortVersionString + 3.14.5 + CFBundleSupportedPlatforms + + MacOSX + + NSHumanReadableCopyright + Copyright © 2001 Python Software Foundation. All rights reserved. + CFBundleDevelopmentRegion + English + CFBundleAllowMixedLocalizations + + + diff --git a/src-tauri/binaries/_internal/_brotli.cpython-314-darwin.so b/src-tauri/binaries/_internal/_brotli.cpython-314-darwin.so new file mode 100755 index 0000000..68994e7 Binary files /dev/null and b/src-tauri/binaries/_internal/_brotli.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/_cffi_backend.cpython-314-darwin.so b/src-tauri/binaries/_internal/_cffi_backend.cpython-314-darwin.so new file mode 100755 index 0000000..aa1b7bf Binary files /dev/null and b/src-tauri/binaries/_internal/_cffi_backend.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/base_library.zip b/src-tauri/binaries/_internal/base_library.zip new file mode 100644 index 0000000..52ed9d0 Binary files /dev/null and b/src-tauri/binaries/_internal/base_library.zip differ diff --git a/src-tauri/binaries/_internal/certifi/py.typed b/src-tauri/binaries/_internal/certifi/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/binaries/_internal/charset_normalizer/cd.cpython-314-darwin.so b/src-tauri/binaries/_internal/charset_normalizer/cd.cpython-314-darwin.so new file mode 100755 index 0000000..bc18b94 Binary files /dev/null and b/src-tauri/binaries/_internal/charset_normalizer/cd.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/charset_normalizer/md.cpython-314-darwin.so b/src-tauri/binaries/_internal/charset_normalizer/md.cpython-314-darwin.so new file mode 100755 index 0000000..f0e2095 Binary files /dev/null and b/src-tauri/binaries/_internal/charset_normalizer/md.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/INSTALLER b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/METADATA b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/METADATA new file mode 100644 index 0000000..a2fb43c --- /dev/null +++ b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/METADATA @@ -0,0 +1,403 @@ +Metadata-Version: 2.4 +Name: curl_cffi +Version: 0.15.0 +Summary: libcurl ffi bindings for Python, with impersonation support. +Author-email: lexiforest +License-Expression: MIT +Project-URL: repository, https://github.com/lexiforest/curl_cffi +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Classifier: Programming Language :: Python :: Free Threading +Requires-Python: >=3.10 +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: cffi>=2.0.0 +Requires-Dist: certifi>=2024.2.2 +Requires-Dist: rich +Provides-Extra: extra +Requires-Dist: readability-lxml>=0.8.1; extra == "extra" +Requires-Dist: markdownify>=1.1.0; extra == "extra" +Requires-Dist: lxml_html_clean; extra == "extra" +Provides-Extra: dev +Requires-Dist: charset_normalizer<4.0,>=3.3.2; extra == "dev" +Requires-Dist: coverage<7.0,>=6.4.1; extra == "dev" +Requires-Dist: cryptography<47.0,>=46.0.4; extra == "dev" +Requires-Dist: httpx==0.23.1; extra == "dev" +Requires-Dist: mypy<2.0,>=1.9.0; extra == "dev" +Requires-Dist: pytest<9.0,>=8.1.1; extra == "dev" +Requires-Dist: pytest-asyncio<1.0,>=0.23.6; extra == "dev" +Requires-Dist: pytest-trio<1.0,>=0.8.0; extra == "dev" +Requires-Dist: ruff<1.0,>=0.3.5; extra == "dev" +Requires-Dist: trio<1.0,>=0.25.0; extra == "dev" +Requires-Dist: trustme<2.0,>=1.1.0; extra == "dev" +Requires-Dist: uvicorn<1.0,>=0.29.0; extra == "dev" +Requires-Dist: websockets>=14.0; extra == "dev" +Requires-Dist: typing_extensions; extra == "dev" +Provides-Extra: build +Requires-Dist: cibuildwheel; extra == "build" +Requires-Dist: wheel; extra == "build" +Provides-Extra: test +Requires-Dist: charset_normalizer<4.0,>=3.3.2; extra == "test" +Requires-Dist: cryptography<47.0,>=46.0.4; extra == "test" +Requires-Dist: litestar<3.0,>=2.19.0; extra == "test" +Requires-Dist: httpx==0.23.1; extra == "test" +Requires-Dist: proxy.py<3.0,>=2.4.3; extra == "test" +Requires-Dist: pytest<9.0,>=8.1.1; extra == "test" +Requires-Dist: pytest-asyncio<1.0,>=0.23.6; extra == "test" +Requires-Dist: pytest-trio<1.0,>=0.8.0; extra == "test" +Requires-Dist: python-multipart<1.0,>=0.0.9; extra == "test" +Requires-Dist: trio<1.0,>=0.25.0; extra == "test" +Requires-Dist: trustme<2.0,>=1.1.0; extra == "test" +Requires-Dist: uvicorn<1.0,>=0.29.0; extra == "test" +Requires-Dist: websockets>=14.0; extra == "test" +Requires-Dist: typing_extensions; extra == "test" +Dynamic: license-file + +# curl_cffi + +[![PyPI Downloads](https://static.pepy.tech/badge/curl-cffi/week)](https://pepy.tech/projects/curl-cffi) +![PyPI - Python Version](https://img.shields.io/pypi/pyversions/curl_cffi) +[![PyPI version](https://badge.fury.io/py/curl-cffi.svg)](https://badge.fury.io/py/curl-cffi) +[![Generic badge](https://img.shields.io/badge/Telegram%20Channel-join-blue?logo=telegram)](https://t.me/impersonate_pro) +[![Generic badge](https://img.shields.io/badge/Discord-join-purple?logo=blue)](https://discord.gg/kJqMHHgdn2) + +[Documentation](https://curl-cffi.readthedocs.io) + +Python binding for [curl-impersonate fork](https://github.com/lexiforest/curl-impersonate) +via [cffi](https://cffi.readthedocs.io/en/latest/). For commercial support, visit [impersonate.pro](https://impersonate.pro). + +`curl_cffi` is the most popular Python binding for `curl`. Unlike other pure +python http clients like `httpx` or `requests`, `curl_cffi` can impersonate +browsers' TLS/JA3 and HTTP/2 fingerprints. If you are blocked by some +website for no obvious reason, you can give `curl_cffi` a try. + +Python 3.10 is the minimum supported version since v0.14. + +## Recent highlights + +- 💨 http/3 fingerprints and UDP socks5 proxy support was added in `v0.15.0`! +- 🦞 Added `curl-cffi` CLI and skills for debugging and for claws/agents. + +## Recall.ai - API for meeting recordings + +Recall.ai + +If you’re looking for a meeting recording API, consider checking out [Recall.ai](https://www.recall.ai/?utm_source=github&utm_medium=sponsorship&utm_campaign=lexiforest-curl_cffi), an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. + +## Residential Proxies + +Thordata + +Thordata: A reliable and cost-effective proxy service provider. One-click collection of public network data, providing enterprises and developers with stable, efficient, and compliant global proxy IP services. Register for a free trial of [residential proxies](https://www.thordata.com/?ls=github&lk=curl_) and receive 2000 free SERP API calls. + +## Sponsors + +Maintenance of this project is made possible by all the contributors and sponsors. If you'd like to sponsor this project and have your avatar or company logo appear below click here. 💖 + +------ + +### Bypass Cloudflare with API + +Yes Captcha! + +Yescaptcha is a proxy service that bypasses Cloudflare and uses the API interface to +obtain verified cookies (e.g. `cf_clearance`). Click [here](https://yescaptcha.com/i/stfnIO) +to register: + +------ + + + +TLS fingerprinting alone isn't enough for modern bot protection. [Hyper Solutions](https://hypersolutions.co?utm_source=github&utm_medium=readme&utm_campaign=curl_cffi) provides the missing piece - API endpoints that generate valid antibot tokens for: + +Akamai • DataDome • Kasada • Incapsula + +No browser automation. Just simple API calls that return the exact cookies and headers these systems require. + +🚀 [Get Your API Key](https://hypersolutions.co?utm_source=github&utm_medium=readme&utm_campaign=curl_cffi) | 📖 [Docs](https://docs.justhyped.dev) | 💬 [Discord](https://discord.gg/akamai) + +------ + +## Features + +- Supports JA3/TLS and http2 fingerprints impersonation, including recent browsers and custom fingerprints. +- Much faster than requests/httpx, on par with aiohttp/pycurl, see [benchmarks](https://github.com/lexiforest/curl_cffi/tree/main/benchmark). +- Mimics the requests API, no need to learn another one. +- Pre-compiled, so you don't have to compile on your machine. +- Supports `asyncio` with proxy rotation on each request. +- Supports http 2.0, which requests does not. +- Supports http 3.0, with fingerprints and udp proxy. +- Supports websocket. +- MIT licensed. + +||requests|aiohttp|httpx|pycurl|curl_cffi| +|---|---|---|---|---|---| +|http/2|❌|❌|✅|✅|✅| +|http/3|❌|❌|❌|☑️1|✅2| +|sync|✅|❌|✅|✅|✅| +|async|❌|✅|✅|❌|✅| +|websocket|❌|✅|❌|❌|✅| +|native retry|❌|❌|❌|❌|✅| +|fingerprints|❌|❌|❌|❌|✅| +|speed|🐇|🐇🐇|🐇|🐇🐇|🐇🐇| + +Notes: + +1. For pycurl, http/3 is usually disabled at compile time by default. +2. http/3 support since v0.11.4, http/3 proxy and fingerprints since v0.15.0. + +### curl-cffi CLI(new) + +Since v0.15, `curl_cffi` comes with a CLI called `curl-cffi`, you can use it for debugging +a certain url with the `--impersonate` option. It can also serve as a `web_fetch` +replacement for "claws" and "agents". + +||curl|httpie|curl-cffi| +|---|---|---|---| +|http/2|✅|❌|✅| +|http/3|☑️1|❌|✅| +|human-friendly|☑️2|✅|✅| +|colorful|❌|✅|✅| +|fingerprints|❌|❌|✅| + +Notes: + +1. You need an http/3 enabled curl build, it's not enabled by default, at leat on my machine. +2. As a long time command line user, I personally feel very comfortable using `curl -X POST httpbin.org`, but some users may prefer `http GET httpbin.org` syntax. If you prefer the curl syntax, you can keep using `curl-impersonate`. + +## Install + + pip install curl_cffi --upgrade + +This should work on Linux, macOS and Windows out of the box. +If it does not work on you platform, you may need to compile and install `curl-impersonate` +first and set some environment variables like `LD_LIBRARY_PATH`. + +Android support, including Termux, is currently in beta, you can install the beta release for testing. +For BSD systems, we need to get libcurl-impersonate compile first, and then add support in curl_cffi. +If you are using these OSes, please lend an hand. + +To install beta releases: + + pip install curl_cffi --upgrade --pre + +To install unstable version from GitHub: + + git clone https://github.com/lexiforest/curl_cffi/ + cd curl_cffi + make preprocess + pip install . + +## Usage + +`curl_cffi` comes with a low-level `curl` API and a high-level `requests`-like API. +`curl_cffi` also bundles with a CLI called `curl-cffi`. + +### CLI + +```sh +curl-cffi get tls.browserleaks.com/json + +# curl-cffi can be hard to type, use an alias if you want +alias imp=curl-cffi +imp get tls.browserleaks.com/json --impersonate chrome +``` + +For a complete CLI guide, see [docs](https://curl-cffi.readthedocs.io). + +### requests-like + +```python +import curl_cffi + +# Notice the impersonate parameter +r = curl_cffi.get("https://tls.browserleaks.com/json", impersonate="chrome") + +print(r.json()) +# output: {..., "ja3n_hash": "aa56c057ad164ec4fdcb7a5a283be9fc", ...} +# the js3n fingerprint should be the same as target browser + +# To keep using the latest browser version as `curl_cffi` updates, +# simply set impersonate="chrome" without specifying a version. +# Other similar values are: "safari" and "safari_ios" +r = curl_cffi.get("https://tls.browserleaks.com/json", impersonate="chrome") + +# Use http/3 with impersonation +r = curl_cffi.get( + "https://fp.impersonate.pro/api/http3", + http_version="v3", + impersonate="chrome" +) + +# Randomly choose a browser version based on current market share in real world +# from: https://caniuse.com/usage-table +# NOTE: this is a pro feature. +r = curl_cffi.get("https://example.com", impersonate="realworld") + +# To pin a specific version, use version numbers together. +r = curl_cffi.get("https://tls.browserleaks.com/json", impersonate="chrome124") + +# To impersonate other than browsers, bring your own ja3/akamai strings +# See examples directory for details. +r = curl_cffi.get("https://tls.browserleaks.com/json", ja3=..., akamai=...) + +# http/socks proxies are supported +proxies = {"https": "http://localhost:3128"} +r = curl_cffi.get("https://tls.browserleaks.com/json", impersonate="chrome", proxies=proxies) + +proxies = {"https": "socks://localhost:3128"} +r = curl_cffi.get("https://tls.browserleaks.com/json", impersonate="chrome", proxies=proxies) +``` + +### Sessions + +```python +s = curl_cffi.Session() + +# httpbin is a http test website, this endpoint makes the server set cookies +s.get("https://httpbin.org/cookies/set/foo/bar") +print(s.cookies) +# ]> + +# retrieve cookies again to verify +r = s.get("https://httpbin.org/cookies") +print(r.json()) +# {'cookies': {'foo': 'bar'}} +``` + +### Supported impersonate browsers + +`curl_cffi` supports the same browser versions as supported by my [fork](https://github.com/lexiforest/curl-impersonate) of [curl-impersonate](https://github.com/lwthiker/curl-impersonate): + +Open source version of curl_cffi includes versions whose fingerprints differ from previous versions. +If you see a version, e.g. `chrome135`, were skipped, you can simply impersonate it with your own headers and the previous version. + +If you don't want to look up the headers etc, by yourself, consider buying commercial support from [impersonate.pro](https://impersonate.pro), +we have comprehensive browser fingerprints database for almost all the browser versions on various platforms. + +If you are trying to impersonate a target other than a browser, use `ja3=...` and `akamai=...` +to specify your own customized fingerprints. See the [docs on impersonation](https://curl-cffi.readthedocs.io/en/latest/impersonate/_index.html) for details. + +|Browser|Open Source| Pro version| +|---|---|---| +|Chrome|chrome99, chrome100, chrome101, chrome104, chrome107, chrome110, chrome116[1], chrome119[1], chrome120[1], chrome123[3], chrome124[3], chrome131[4], chrome133a[5][6], chrome136[6], chrome142, chrome145[9], chrome146[9]|chrome132, chrome134, chrome135| +|Chrome Android| chrome99_android, chrome131_android [4]|chrome132_android, chrome133_android, chrome134_android, chrome135_android| +|Chrome iOS|N/A|coming soon| +|Safari [7]|safari153 [2], safari155 [2], safari170 [1], safari180 [4], safari184 [6], safari260 [8]|coming soon| +|Safari iOS [7]| safari172_ios[1], safari180_ios[4], safari184_ios [6], safari260_ios [8]|coming soon| +|Firefox|firefox133[5], firefox135[7], firefox144, firefox147[9]|coming soon| +|Firefox Android|N/A|firefox135_android| +|Tor|tor145 [7]|coming soon| +|Edge|edge99, edge101|edge133, edge135| +|Opera|N/A|coming soon| +|Brave|N/A|coming soon| + + +Notes: + +1. Added in version `0.6.0`. +2. Fixed in version `0.6.0`, previous http2 fingerprints were [not correct](https://github.com/lwthiker/curl-impersonate/issues/215). +3. Added in version `0.7.0`. +4. Added in version `0.8.0`. +5. Added in version `0.9.0`. +6. The version postfix `-a`(e.g. `chrome133a`) means that this is an alternative version, i.e. the fingerprint has not been officially updated by browser, but has been observed because of A/B testing. +5. Added in version `0.10.0`. +6. Added in version `0.11.0`. +7. Since `0.11.0`, the format `safari184_ios` is preferred over `safari18_4_ios`, both are supported, but the latter is quite confusing and hard to parse. +8. Added in `0.12.0`. +9. http3 support included. + +### Asyncio + +```python +from curl_cffi import AsyncSession + +async with AsyncSession() as s: + r = await s.get("https://example.com") +``` + +More concurrency: + +```python +import asyncio +from curl_cffi import AsyncSession + +urls = [ + "https://google.com/", + "https://facebook.com/", + "https://twitter.com/", +] + +async with AsyncSession() as s: + tasks = [] + for url in urls: + task = s.get(url) + tasks.append(task) + results = await asyncio.gather(*tasks) +``` + +For low-level APIs, Scrapy integration and other advanced topics, see the +[docs](https://curl-cffi.readthedocs.io) for more details. + +### WebSockets + +```python +from curl_cffi import WebSocket + +def on_message(ws: WebSocket, message: str | bytes): + print(message) + +ws = WebSocket(on_message=on_message) +ws.run_forever("wss://api.gemini.com/v1/marketdata/BTCUSD") +``` + +### Asyncio WebSockets + +```python +import asyncio +from curl_cffi import AsyncSession + +async with AsyncSession() as session: + async with session.ws_connect("wss://echo.websocket.org") as ws: + await asyncio.gather(*[ws.send_str("Hello, World!") for _ in range(10)]) + async for message in ws: + print(message) +``` + +## Ecosystem + +- Integrating with Scrapy: [divtiply/scrapy-curl-cffi](https://github.com/divtiply/scrapy-curl-cffi), [jxlil/scrapy-impersonate](https://github.com/jxlil/scrapy-impersonate) and [tieyongjie/scrapy-fingerprint](https://github.com/tieyongjie/scrapy-fingerprint). +- Integrating with [requests](https://github.com/el1s7/curl-adapter), [httpx](https://github.com/vgavro/httpx-curl-cffi) as adapter. +- Integrating with captcha resolvers: [YesCaptcha](https://yescaptcha.atlassian.net/wiki/spaces/YESCAPTCHA/overview). Please see the head area for promo code and link. + +## Acknowledgement + +- Originally forked from [multippt/python_curl_cffi](https://github.com/multippt/python_curl_cffi), which is under the MIT license. +- Headers/Cookies files are copied from [httpx](https://github.com/encode/httpx/blob/master/httpx/_models.py), which is under the BSD license. +- Asyncio support is inspired by Tornado's curl http client. +- The synchronous WebSocket API is inspired by [websocket_client](https://github.com/websocket-client/websocket-client). +- The asynchronous WebSocket API is inspired by [aiohttp](https://github.com/aio-libs/aiohttp). + +## Contributing + +When submitting an PR, please use a different branch other than `main` and check the +"Allow edits by maintainers" box, so I can update your PR with lint or style fixes. Thanks! + +### AI Policy + +- Using AI is neither encouraged nor discouraged, use it by your own choice. +- The bottom line here is that every line of code should be **reviewed by human**, and should be [proven to work](https://simonwillison.net/2025/Dec/18/code-proven-to-work/). +- It's not guaranteed that AI will come up with the cleanest solution, you are responsible to guide it to the right way you know. +- Fix any lint errors, make sure your code follows the established convention in this project. +- LLM tends to generate extensive or none comments, revise the comments and make sure they are concise and helpful. +- It's absolutely **not acceptable** to generate the entire PR summary by LLM. To communicate with other human, use words from a human. +- The only acceptable exception is to fix grammar issues if you are not a native English speaker. +- The essence here is to keep [Human in the loop](https://discourse.llvm.org/t/rfc-llvm-ai-tool-policy-human-in-the-loop/89159) + +You can even feed the policy above to your "copilot" to let it adjust the style for you. :P diff --git a/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/RECORD b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/RECORD new file mode 100644 index 0000000..b63418a --- /dev/null +++ b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/RECORD @@ -0,0 +1,60 @@ +../../../bin/curl-cffi,sha256=1WNmf_w0emP0-PeIpDGlHiBy4Gdet6ASfQxBOR-BNMA,187 +curl_cffi-0.15.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +curl_cffi-0.15.0.dist-info/METADATA,sha256=ryYvNCZOl96BIMI2134ZhyRWy7sr-0-xOc0Q_TfaU9A,18405 +curl_cffi-0.15.0.dist-info/RECORD,, +curl_cffi-0.15.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +curl_cffi-0.15.0.dist-info/WHEEL,sha256=BX73HzL_Z8VmcUg66xwFel1CJ1goP9ZPbeeVSSFaesY,140 +curl_cffi-0.15.0.dist-info/direct_url.json,sha256=lpNNgQ8844-2Q1nCwxiwtLw07Je0dsNXHPwhnLfnit4,313 +curl_cffi-0.15.0.dist-info/entry_points.txt,sha256=HzTwoUpbiKIo5uJrqnxPk5OdxZ0PhT0dPTSqUP8Js70,49 +curl_cffi-0.15.0.dist-info/licenses/LICENSE,sha256=PoiwKbULav021rGGQs5Mi27uTJA_HPq-9bgR9h4HBQs,1106 +curl_cffi-0.15.0.dist-info/top_level.txt,sha256=b51YB50I_vu6XAbSERmqtgaYciYADCA_baVoZ_T5Lzs,10 +curl_cffi/__init__.py,sha256=fPBkVIThnbk_a7U41V5S3Qwhh1_WxZkMerXQNv1iOpA,1781 +curl_cffi/__main__.py,sha256=L0AH-xyDlgmsPM-HTecPVb1_hV9X35Qf1Mw7h7JVnx0,39 +curl_cffi/__pycache__/__init__.cpython-314.pyc,, +curl_cffi/__pycache__/__main__.cpython-314.pyc,, +curl_cffi/__pycache__/__version__.cpython-314.pyc,, +curl_cffi/__pycache__/_asyncio_selector.cpython-314.pyc,, +curl_cffi/__pycache__/aio.cpython-314.pyc,, +curl_cffi/__pycache__/const.cpython-314.pyc,, +curl_cffi/__pycache__/curl.cpython-314.pyc,, +curl_cffi/__pycache__/utils.cpython-314.pyc,, +curl_cffi/__version__.py,sha256=FdOv9cpHIUGkFkcWA4O9gte0sun1QgJI69rIgzUkswo,413 +curl_cffi/_asyncio_selector.py,sha256=dxKOC6B8mlRu3WYi0trSq0L-FsWV6l_pg9TP35OpDI4,13043 +curl_cffi/_wrapper.abi3.so,sha256=4sMTX_Q2WMouO96xfxc3BZjZxnMZnLjZV8nF_FCU_zE,12691712 +curl_cffi/aio.py,sha256=oTiffUFDNfxxSHmCVAsjX0CIOs4IuBQ6mhm4WuY5KZs,11925 +curl_cffi/cli/__init__.py,sha256=y-XQAfYkBDN3ejfVex1aKy5bcqsPUglAvm-i177wM5I,7290 +curl_cffi/cli/__pycache__/__init__.cpython-314.pyc,, +curl_cffi/cli/__pycache__/doctor.cpython-314.pyc,, +curl_cffi/cli/__pycache__/output.cpython-314.pyc,, +curl_cffi/cli/__pycache__/parse.cpython-314.pyc,, +curl_cffi/cli/__pycache__/request.cpython-314.pyc,, +curl_cffi/cli/__pycache__/run.cpython-314.pyc,, +curl_cffi/cli/doctor.py,sha256=4wfyWF44JLxDtoH9YCDdmxrJ-1cWbNwSXcMc9Aopd1c,416 +curl_cffi/cli/output.py,sha256=YzWbYLJ2zowR6G9mJxeTytcPrnSk2WQVwfmv8V404X4,6709 +curl_cffi/cli/parse.py,sha256=OzqGEZPqOrH2nq14UKnaXwKAblAw6V867tDEp9XSLdo,2549 +curl_cffi/cli/request.py,sha256=MJskNMJBIR8oq_fvrPvsi61Wy-bR4-aC8QQJb1YcqRg,3522 +curl_cffi/cli/run.py,sha256=WYaPbX9h85DZQNkDbUUyvp3bryaAuNOxnjU6GpenigQ,7554 +curl_cffi/const.py,sha256=mF3H1kHsqj-dfd7GWHMHyuB2bZ3QZd61tC1iCZgEjyo,18523 +curl_cffi/curl.py,sha256=woBPw1OQk4FH7neNETuj_GwqcQa1jCjd1tA0ZxPSTA8,26928 +curl_cffi/py.typed,sha256=dcrsqJrcYfTX-ckLFJMTaj6mD8aDe2u0tkQG-ZYxnEg,26 +curl_cffi/requests/__init__.py,sha256=3ZO7mC7gNJZydze0VQLEYpEc9dMlf1uRbFS-fxKSQPs,6148 +curl_cffi/requests/__pycache__/__init__.cpython-314.pyc,, +curl_cffi/requests/__pycache__/cookies.cpython-314.pyc,, +curl_cffi/requests/__pycache__/errors.cpython-314.pyc,, +curl_cffi/requests/__pycache__/exceptions.cpython-314.pyc,, +curl_cffi/requests/__pycache__/headers.cpython-314.pyc,, +curl_cffi/requests/__pycache__/impersonate.cpython-314.pyc,, +curl_cffi/requests/__pycache__/models.cpython-314.pyc,, +curl_cffi/requests/__pycache__/session.cpython-314.pyc,, +curl_cffi/requests/__pycache__/utils.cpython-314.pyc,, +curl_cffi/requests/__pycache__/websockets.cpython-314.pyc,, +curl_cffi/requests/cookies.py,sha256=QDEuhtsSjh6iNAKmp5TnGyyAe8wdDJCADCHY_GWCeCc,11867 +curl_cffi/requests/errors.py,sha256=R6N5lmOTdRukThkNGUihDAQRu8HSh27M8E3zfUJJX74,250 +curl_cffi/requests/exceptions.py,sha256=ViyLx3XHii_s7kjrO3GhVOVXhq2_UsYfAQl8MPwDnEM,6187 +curl_cffi/requests/headers.py,sha256=Q1jrRdJ2YMLOcl5W3WBaKZAdLbPGPPERJ6MYzos3YXk,11535 +curl_cffi/requests/impersonate.py,sha256=dKRpbPTqLCABrCmSKmgXyhA1zmrv0DMuSuqQyhn5-FU,13389 +curl_cffi/requests/models.py,sha256=SaN9QUYyljUDFDQnUrYZRl9KiUe25nb2c2ca-dfq3Nw,11487 +curl_cffi/requests/session.py,sha256=LkfPvAr8BIVzB_K91xwh0wIPRW26mi2VJd1cEYorIho,58871 +curl_cffi/requests/utils.py,sha256=zMKaWoXcAPFNBv6FglE3FSAPNuxYr_leUcWKnhfYecw,26618 +curl_cffi/requests/websockets.py,sha256=RJVNqCDrlLWzQ12Ym9M5_T0SW4EmoqKUYsXXTaQmBRQ,71685 +curl_cffi/utils.py,sha256=gRVzO-vhjf596V6kr_SjwHlwJfDIwTrPbRLJvvNlUNE,307 diff --git a/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/REQUESTED b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/WHEEL b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/WHEEL new file mode 100644 index 0000000..fcf9a3b --- /dev/null +++ b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (82.0.1) +Root-Is-Purelib: false +Generator: delocate 0.13.0 +Tag: cp310-abi3-macosx_10_9_universal2 + diff --git a/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/direct_url.json b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/direct_url.json new file mode 100644 index 0000000..1db6c56 --- /dev/null +++ b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/direct_url.json @@ -0,0 +1 @@ +{"archive_info": {"hash": "sha256=bf985a468ffb52bdcdfa1dac713555144c7711521428cd9267578a208c8f45ab", "hashes": {"sha256": "bf985a468ffb52bdcdfa1dac713555144c7711521428cd9267578a208c8f45ab"}}, "url": "file:///Users/runner/work/yt-dlp/yt-dlp/build/universal2/curl_cffi-0.15.0-cp310-abi3-macosx_10_9_universal2.whl"} \ No newline at end of file diff --git a/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/entry_points.txt b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/entry_points.txt new file mode 100644 index 0000000..ea2286b --- /dev/null +++ b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +curl-cffi = curl_cffi.cli:main diff --git a/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/licenses/LICENSE b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..f11cc44 --- /dev/null +++ b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/licenses/LICENSE @@ -0,0 +1,23 @@ +MIT License + + +Copyright (c) 2018 multippt +Copyright (c) 2022 curl_cffi developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/top_level.txt b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/top_level.txt new file mode 100644 index 0000000..ddbee0c --- /dev/null +++ b/src-tauri/binaries/_internal/curl_cffi-0.15.0.dist-info/top_level.txt @@ -0,0 +1 @@ +curl_cffi diff --git a/src-tauri/binaries/_internal/curl_cffi/_wrapper.abi3.so b/src-tauri/binaries/_internal/curl_cffi/_wrapper.abi3.so new file mode 100755 index 0000000..e41b367 Binary files /dev/null and b/src-tauri/binaries/_internal/curl_cffi/_wrapper.abi3.so differ diff --git a/src-tauri/binaries/_internal/libcrypto.3.dylib b/src-tauri/binaries/_internal/libcrypto.3.dylib new file mode 100755 index 0000000..7efeedd Binary files /dev/null and b/src-tauri/binaries/_internal/libcrypto.3.dylib differ diff --git a/src-tauri/binaries/_internal/libssl.3.dylib b/src-tauri/binaries/_internal/libssl.3.dylib new file mode 100755 index 0000000..c6b59c1 Binary files /dev/null and b/src-tauri/binaries/_internal/libssl.3.dylib differ diff --git a/src-tauri/binaries/_internal/libzstd.1.dylib b/src-tauri/binaries/_internal/libzstd.1.dylib new file mode 100755 index 0000000..184d016 Binary files /dev/null and b/src-tauri/binaries/_internal/libzstd.1.dylib differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_asyncio.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_asyncio.cpython-314-darwin.so new file mode 100755 index 0000000..bad4ecf Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_asyncio.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_bisect.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_bisect.cpython-314-darwin.so new file mode 100755 index 0000000..8cf3ac3 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_bisect.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_blake2.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_blake2.cpython-314-darwin.so new file mode 100755 index 0000000..dbb6e21 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_blake2.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_bz2.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_bz2.cpython-314-darwin.so new file mode 100755 index 0000000..86c1dd3 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_bz2.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_cn.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_cn.cpython-314-darwin.so new file mode 100755 index 0000000..559c54f Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_cn.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_hk.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_hk.cpython-314-darwin.so new file mode 100755 index 0000000..135836e Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_hk.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_iso2022.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_iso2022.cpython-314-darwin.so new file mode 100755 index 0000000..466631a Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_iso2022.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_jp.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_jp.cpython-314-darwin.so new file mode 100755 index 0000000..3c85c93 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_jp.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_kr.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_kr.cpython-314-darwin.so new file mode 100755 index 0000000..7c1b3e0 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_kr.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_tw.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_tw.cpython-314-darwin.so new file mode 100755 index 0000000..7dd002d Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_codecs_tw.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_csv.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_csv.cpython-314-darwin.so new file mode 100755 index 0000000..6653e45 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_csv.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_ctypes.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_ctypes.cpython-314-darwin.so new file mode 100755 index 0000000..3f1d97f Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_ctypes.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_decimal.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_decimal.cpython-314-darwin.so new file mode 100755 index 0000000..c4dc85f Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_decimal.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_elementtree.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_elementtree.cpython-314-darwin.so new file mode 100755 index 0000000..65f2623 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_elementtree.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_hashlib.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_hashlib.cpython-314-darwin.so new file mode 100755 index 0000000..c86b1b3 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_hashlib.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_heapq.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_heapq.cpython-314-darwin.so new file mode 100755 index 0000000..6ebbc45 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_heapq.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_hmac.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_hmac.cpython-314-darwin.so new file mode 100755 index 0000000..e4c8376 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_hmac.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_interpqueues.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_interpqueues.cpython-314-darwin.so new file mode 100755 index 0000000..bc8ff38 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_interpqueues.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_interpreters.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_interpreters.cpython-314-darwin.so new file mode 100755 index 0000000..64bd77a Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_interpreters.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_json.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_json.cpython-314-darwin.so new file mode 100755 index 0000000..8dfdd2a Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_json.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_lzma.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_lzma.cpython-314-darwin.so new file mode 100755 index 0000000..1a622f3 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_lzma.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_md5.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_md5.cpython-314-darwin.so new file mode 100755 index 0000000..bfdb04d Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_md5.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_multibytecodec.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_multibytecodec.cpython-314-darwin.so new file mode 100755 index 0000000..62fb090 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_multibytecodec.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_multiprocessing.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_multiprocessing.cpython-314-darwin.so new file mode 100755 index 0000000..b277406 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_multiprocessing.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_pickle.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_pickle.cpython-314-darwin.so new file mode 100755 index 0000000..282869f Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_pickle.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_posixshmem.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_posixshmem.cpython-314-darwin.so new file mode 100755 index 0000000..793bcfd Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_posixshmem.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_posixsubprocess.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_posixsubprocess.cpython-314-darwin.so new file mode 100755 index 0000000..6330638 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_posixsubprocess.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_queue.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_queue.cpython-314-darwin.so new file mode 100755 index 0000000..f53b266 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_queue.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_random.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_random.cpython-314-darwin.so new file mode 100755 index 0000000..7a1ef4b Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_random.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_scproxy.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_scproxy.cpython-314-darwin.so new file mode 100755 index 0000000..0539d28 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_scproxy.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_sha1.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_sha1.cpython-314-darwin.so new file mode 100755 index 0000000..305a72f Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_sha1.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_sha2.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_sha2.cpython-314-darwin.so new file mode 100755 index 0000000..ee944c4 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_sha2.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_sha3.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_sha3.cpython-314-darwin.so new file mode 100755 index 0000000..d0c36ac Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_sha3.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_socket.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_socket.cpython-314-darwin.so new file mode 100755 index 0000000..9c0d7cb Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_socket.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_sqlite3.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_sqlite3.cpython-314-darwin.so new file mode 100755 index 0000000..72064be Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_sqlite3.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_ssl.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_ssl.cpython-314-darwin.so new file mode 100755 index 0000000..ecc95ea Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_ssl.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_statistics.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_statistics.cpython-314-darwin.so new file mode 100755 index 0000000..4edf635 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_statistics.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_struct.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_struct.cpython-314-darwin.so new file mode 100755 index 0000000..5db5dab Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_struct.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_uuid.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_uuid.cpython-314-darwin.so new file mode 100755 index 0000000..f1a3466 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_uuid.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/_zstd.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/_zstd.cpython-314-darwin.so new file mode 100755 index 0000000..7c9ff8a Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/_zstd.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/array.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/array.cpython-314-darwin.so new file mode 100755 index 0000000..20f9989 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/array.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/binascii.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/binascii.cpython-314-darwin.so new file mode 100755 index 0000000..a9f08b1 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/binascii.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/fcntl.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/fcntl.cpython-314-darwin.so new file mode 100755 index 0000000..c605f1a Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/fcntl.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/grp.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/grp.cpython-314-darwin.so new file mode 100755 index 0000000..392828f Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/grp.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/math.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/math.cpython-314-darwin.so new file mode 100755 index 0000000..f30f643 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/math.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/mmap.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/mmap.cpython-314-darwin.so new file mode 100755 index 0000000..7d708e8 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/mmap.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so new file mode 100755 index 0000000..2c33e7e Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/readline.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/readline.cpython-314-darwin.so new file mode 100755 index 0000000..400608b Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/readline.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/resource.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/resource.cpython-314-darwin.so new file mode 100755 index 0000000..f15c886 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/resource.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/select.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/select.cpython-314-darwin.so new file mode 100755 index 0000000..abad6cd Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/select.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/syslog.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/syslog.cpython-314-darwin.so new file mode 100755 index 0000000..f93ca98 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/syslog.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/termios.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/termios.cpython-314-darwin.so new file mode 100755 index 0000000..f4ab7b0 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/termios.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/unicodedata.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/unicodedata.cpython-314-darwin.so new file mode 100755 index 0000000..d01cf9a Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/unicodedata.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/python3.14/lib-dynload/zlib.cpython-314-darwin.so b/src-tauri/binaries/_internal/python3.14/lib-dynload/zlib.cpython-314-darwin.so new file mode 100755 index 0000000..870b278 Binary files /dev/null and b/src-tauri/binaries/_internal/python3.14/lib-dynload/zlib.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/INSTALLER b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/INSTALLER new file mode 100644 index 0000000..5c69047 --- /dev/null +++ b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/INSTALLER @@ -0,0 +1 @@ +uv \ No newline at end of file diff --git a/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/METADATA b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/METADATA new file mode 100644 index 0000000..9d894b4 --- /dev/null +++ b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/METADATA @@ -0,0 +1,133 @@ +Metadata-Version: 2.4 +Name: importlib_metadata +Version: 8.7.1 +Summary: Read metadata from Python packages +Author-email: "Jason R. Coombs" +License-Expression: Apache-2.0 +Project-URL: Source, https://github.com/python/importlib_metadata +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Requires-Python: >=3.9 +Description-Content-Type: text/x-rst +License-File: LICENSE +Requires-Dist: zipp>=3.20 +Provides-Extra: test +Requires-Dist: pytest!=8.1.*,>=6; extra == "test" +Requires-Dist: packaging; extra == "test" +Requires-Dist: pyfakefs; extra == "test" +Requires-Dist: flufl.flake8; extra == "test" +Requires-Dist: pytest-perf>=0.9.2; extra == "test" +Requires-Dist: jaraco.test>=5.4; extra == "test" +Provides-Extra: doc +Requires-Dist: sphinx>=3.5; extra == "doc" +Requires-Dist: jaraco.packaging>=9.3; extra == "doc" +Requires-Dist: rst.linker>=1.9; extra == "doc" +Requires-Dist: furo; extra == "doc" +Requires-Dist: sphinx-lint; extra == "doc" +Requires-Dist: jaraco.tidelift>=1.4; extra == "doc" +Provides-Extra: perf +Requires-Dist: ipython; extra == "perf" +Provides-Extra: check +Requires-Dist: pytest-checkdocs>=2.4; extra == "check" +Requires-Dist: pytest-ruff>=0.2.1; sys_platform != "cygwin" and extra == "check" +Provides-Extra: cover +Requires-Dist: pytest-cov; extra == "cover" +Provides-Extra: enabler +Requires-Dist: pytest-enabler>=3.4; extra == "enabler" +Provides-Extra: type +Requires-Dist: pytest-mypy>=1.0.1; extra == "type" +Requires-Dist: mypy<1.19; platform_python_implementation == "PyPy" and extra == "type" +Dynamic: license-file + +.. image:: https://img.shields.io/pypi/v/importlib_metadata.svg + :target: https://pypi.org/project/importlib_metadata + +.. image:: https://img.shields.io/pypi/pyversions/importlib_metadata.svg + +.. image:: https://github.com/python/importlib_metadata/actions/workflows/main.yml/badge.svg + :target: https://github.com/python/importlib_metadata/actions?query=workflow%3A%22tests%22 + :alt: tests + +.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json + :target: https://github.com/astral-sh/ruff + :alt: Ruff + +.. image:: https://readthedocs.org/projects/importlib-metadata/badge/?version=latest + :target: https://importlib-metadata.readthedocs.io/en/latest/?badge=latest + +.. image:: https://img.shields.io/badge/skeleton-2025-informational + :target: https://blog.jaraco.com/skeleton + +.. image:: https://tidelift.com/badges/package/pypi/importlib-metadata + :target: https://tidelift.com/subscription/pkg/pypi-importlib-metadata?utm_source=pypi-importlib-metadata&utm_medium=readme + +Library to access the metadata for a Python package. + +This package supplies third-party access to the functionality of +`importlib.metadata `_ +including improvements added to subsequent Python versions. + + +Compatibility +============= + +New features are introduced in this third-party library and later merged +into CPython. The following table indicates which versions of this library +were contributed to different versions in the standard library: + +.. list-table:: + :header-rows: 1 + + * - importlib_metadata + - stdlib + * - 7.0 + - 3.13 + * - 6.5 + - 3.12 + * - 4.13 + - 3.11 + * - 4.6 + - 3.10 + * - 1.4 + - 3.8 + + +Usage +===== + +See the `online documentation `_ +for usage details. + +`Finder authors +`_ can +also add support for custom package installers. See the above documentation +for details. + + +Caveats +======= + +This project primarily supports third-party packages installed by PyPA +tools (or other conforming packages). It does not support: + +- Packages in the stdlib. +- Packages installed without metadata. + +Project details +=============== + + * Project home: https://github.com/python/importlib_metadata + * Report bugs at: https://github.com/python/importlib_metadata/issues + * Code hosting: https://github.com/python/importlib_metadata + * Documentation: https://importlib-metadata.readthedocs.io/ + +For Enterprise +============== + +Available as part of the Tidelift Subscription. + +This project and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use. + +`Learn more `_. diff --git a/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/RECORD b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/RECORD new file mode 100644 index 0000000..78aa761 --- /dev/null +++ b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/RECORD @@ -0,0 +1,21 @@ +importlib_metadata-8.7.1.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2 +importlib_metadata-8.7.1.dist-info/METADATA,sha256=o-OLnuQyYonUhkcE8w4pnudp4jCc6fSnXw3hpQrQo1Y,4670 +importlib_metadata-8.7.1.dist-info/RECORD,, +importlib_metadata-8.7.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_metadata-8.7.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 +importlib_metadata-8.7.1.dist-info/licenses/LICENSE,sha256=RYUC4S2Xu_ZEOGBqIARKqF6wX7CoqAe7NdvsJT_R_AQ,10278 +importlib_metadata-8.7.1.dist-info/top_level.txt,sha256=CO3fD9yylANiXkrMo4qHLV_mqXL2sC5JFKgt1yWAT-A,19 +importlib_metadata/__init__.py,sha256=u7Ew4-UkpzNY-ka6k-WRkDhQZS1akkLMfWs2eEnUmGo,37734 +importlib_metadata/_adapters.py,sha256=r5i8XLrKT6xmrpoREZhZrfczOYDmrVZeJBW5u0HzIGU,3797 +importlib_metadata/_collections.py,sha256=CxAhzlF3g1rwu_fMiB53JtRQiUFh0RgiMpoOvmK_ocg,760 +importlib_metadata/_compat.py,sha256=VC5ZDLlT-BcshauCShdFJvMNLntJJfZzNK1meGa-enw,1313 +importlib_metadata/_functools.py,sha256=0pA2OoiVK6wnsGq8HvVIzgdkvLiZ0nfnfw7IsndjoHk,3510 +importlib_metadata/_itertools.py,sha256=nMvp9SfHAQ_JYwK4L2i64lr3GRXGlYlikGTVzWbys_E,5351 +importlib_metadata/_meta.py,sha256=EtHyiJ5kGzWFDfKyQ2XQp6Vu113CeadKW1Vf6aGc1B4,1765 +importlib_metadata/_text.py,sha256=HCsFksZpJLeTP3NEk_ngrAeXVRRtTrtyh9eOABoRP4A,2166 +importlib_metadata/_typing.py,sha256=EQKhhsEgz_Sa-FnePI-faC72rNOOQwopjA1i5pG8FDU,367 +importlib_metadata/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +importlib_metadata/compat/py311.py,sha256=uqm-K-uohyj1042TH4a9Er_I5o7667DvulcD-gC_fSA,608 +importlib_metadata/compat/py39.py,sha256=J3W7PUVRPNYMmcvT12RF8ndBU9e8_T0Ac4U87Bsrq70,1187 +importlib_metadata/diagnose.py,sha256=nkSRMiowlmkhLYhKhvCg9glmt_11Cox-EmLzEbqYTa8,379 +importlib_metadata/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/REQUESTED b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/WHEEL b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/WHEEL new file mode 100644 index 0000000..e7fa31b --- /dev/null +++ b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/licenses/LICENSE b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/licenses/LICENSE new file mode 100644 index 0000000..5c1d8bb --- /dev/null +++ b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/licenses/LICENSE @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright 2025 [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/top_level.txt b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/top_level.txt new file mode 100644 index 0000000..bbb0754 --- /dev/null +++ b/src-tauri/binaries/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/top_level.txt @@ -0,0 +1 @@ +importlib_metadata diff --git a/src-tauri/binaries/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt b/src-tauri/binaries/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt new file mode 100644 index 0000000..986f944 --- /dev/null +++ b/src-tauri/binaries/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt @@ -0,0 +1,2 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus vulputate vehicula. Donec lobortis risus a elit. Etiam tempor. Ut ullamcorper, ligula eu tempor congue, eros est euismod turpis, id tincidunt sapien risus a quam. Maecenas fermentum consequat mi. Donec fermentum. Pellentesque malesuada nulla a mi. Duis sapien sem, aliquet nec, commodo eget, consequat quis, neque. Aliquam faucibus, elit ut dictum aliquet, felis nisl adipiscing sapien, sed malesuada diam lacus eget erat. Cras mollis scelerisque nunc. Nullam arcu. Aliquam consequat. Curabitur augue lorem, dapibus quis, laoreet et, pretium ac, nisi. Aenean magna nisl, mollis quis, molestie eu, feugiat in, orci. In hac habitasse platea dictumst. diff --git a/src-tauri/binaries/_internal/websockets-16.0.dist-info/INSTALLER b/src-tauri/binaries/_internal/websockets-16.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/src-tauri/binaries/_internal/websockets-16.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/src-tauri/binaries/_internal/websockets-16.0.dist-info/METADATA b/src-tauri/binaries/_internal/websockets-16.0.dist-info/METADATA new file mode 100644 index 0000000..53b147e --- /dev/null +++ b/src-tauri/binaries/_internal/websockets-16.0.dist-info/METADATA @@ -0,0 +1,179 @@ +Metadata-Version: 2.4 +Name: websockets +Version: 16.0 +Summary: An implementation of the WebSocket Protocol (RFC 6455 & 7692) +Author-email: Aymeric Augustin +License-Expression: BSD-3-Clause +Project-URL: Homepage, https://github.com/python-websockets/websockets +Project-URL: Changelog, https://websockets.readthedocs.io/en/stable/project/changelog.html +Project-URL: Documentation, https://websockets.readthedocs.io/ +Project-URL: Funding, https://tidelift.com/subscription/pkg/pypi-websockets?utm_source=pypi-websockets&utm_medium=referral&utm_campaign=readme +Project-URL: Tracker, https://github.com/python-websockets/websockets/issues +Keywords: WebSocket +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 +Requires-Python: >=3.10 +Description-Content-Type: text/x-rst +License-File: LICENSE +Dynamic: description +Dynamic: description-content-type +Dynamic: license-file + +.. image:: logo/horizontal.svg + :width: 480px + :alt: websockets + +|licence| |version| |pyversions| |tests| |docs| |openssf| + +.. |licence| image:: https://img.shields.io/pypi/l/websockets.svg + :target: https://pypi.python.org/pypi/websockets + +.. |version| image:: https://img.shields.io/pypi/v/websockets.svg + :target: https://pypi.python.org/pypi/websockets + +.. |pyversions| image:: https://img.shields.io/pypi/pyversions/websockets.svg + :target: https://pypi.python.org/pypi/websockets + +.. |tests| image:: https://img.shields.io/github/checks-status/python-websockets/websockets/main?label=tests + :target: https://github.com/python-websockets/websockets/actions/workflows/tests.yml + +.. |docs| image:: https://img.shields.io/readthedocs/websockets.svg + :target: https://websockets.readthedocs.io/ + +.. |openssf| image:: https://bestpractices.coreinfrastructure.org/projects/6475/badge + :target: https://bestpractices.coreinfrastructure.org/projects/6475 + +What is ``websockets``? +----------------------- + +websockets is a library for building WebSocket_ servers and clients in Python +with a focus on correctness, simplicity, robustness, and performance. + +.. _WebSocket: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API + +Built on top of ``asyncio``, Python's standard asynchronous I/O framework, the +default implementation provides an elegant coroutine-based API. + +An implementation on top of ``threading`` and a Sans-I/O implementation are also +available. + +`Documentation is available on Read the Docs. `_ + +.. copy-pasted because GitHub doesn't support the include directive + +Here's an echo server with the ``asyncio`` API: + +.. code:: python + + #!/usr/bin/env python + + import asyncio + from websockets.asyncio.server import serve + + async def echo(websocket): + async for message in websocket: + await websocket.send(message) + + async def main(): + async with serve(echo, "localhost", 8765) as server: + await server.serve_forever() + + asyncio.run(main()) + +Here's how a client sends and receives messages with the ``threading`` API: + +.. code:: python + + #!/usr/bin/env python + + from websockets.sync.client import connect + + def hello(): + with connect("ws://localhost:8765") as websocket: + websocket.send("Hello world!") + message = websocket.recv() + print(f"Received: {message}") + + hello() + + +Does that look good? + +`Get started with the tutorial! `_ + +Why should I use ``websockets``? +-------------------------------- + +The development of ``websockets`` is shaped by four principles: + +1. **Correctness**: ``websockets`` is heavily tested for compliance with + :rfc:`6455`. Continuous integration fails under 100% branch coverage. + +2. **Simplicity**: all you need to understand is ``msg = await ws.recv()`` and + ``await ws.send(msg)``. ``websockets`` takes care of managing connections + so you can focus on your application. + +3. **Robustness**: ``websockets`` is built for production. For example, it was + the only library to `handle backpressure correctly`_ before the issue + became widely known in the Python community. + +4. **Performance**: memory usage is optimized and configurable. A C extension + accelerates expensive operations. It's pre-compiled for Linux, macOS and + Windows and packaged in the wheel format for each system and Python version. + +Documentation is a first class concern in the project. Head over to `Read the +Docs`_ and see for yourself. + +.. _Read the Docs: https://websockets.readthedocs.io/ +.. _handle backpressure correctly: https://vorpus.org/blog/some-thoughts-on-asynchronous-api-design-in-a-post-asyncawait-world/#websocket-servers + +Why shouldn't I use ``websockets``? +----------------------------------- + +* If you prefer callbacks over coroutines: ``websockets`` was created to + provide the best coroutine-based API to manage WebSocket connections in + Python. Pick another library for a callback-based API. + +* If you're looking for a mixed HTTP / WebSocket library: ``websockets`` aims + at being an excellent implementation of :rfc:`6455`: The WebSocket Protocol + and :rfc:`7692`: Compression Extensions for WebSocket. Its support for HTTP + is minimal — just enough for an HTTP health check. + + If you want to do both in the same server, look at HTTP + WebSocket servers + that build on top of ``websockets`` to support WebSocket connections, like + uvicorn_ or Sanic_. + +.. _uvicorn: https://www.uvicorn.org/ +.. _Sanic: https://sanic.dev/en/ + +What else? +---------- + +Bug reports, patches and suggestions are welcome! + +To report a security vulnerability, please use the `Tidelift security +contact`_. Tidelift will coordinate the fix and disclosure. + +.. _Tidelift security contact: https://tidelift.com/security + +For anything else, please open an issue_ or send a `pull request`_. + +.. _issue: https://github.com/python-websockets/websockets/issues/new +.. _pull request: https://github.com/python-websockets/websockets/compare/ + +Participants must uphold the `Contributor Covenant code of conduct`_. + +.. _Contributor Covenant code of conduct: https://github.com/python-websockets/websockets/blob/main/CODE_OF_CONDUCT.md + +``websockets`` is released under the `BSD license`_. + +.. _BSD license: https://github.com/python-websockets/websockets/blob/main/LICENSE diff --git a/src-tauri/binaries/_internal/websockets-16.0.dist-info/RECORD b/src-tauri/binaries/_internal/websockets-16.0.dist-info/RECORD new file mode 100644 index 0000000..fe15222 --- /dev/null +++ b/src-tauri/binaries/_internal/websockets-16.0.dist-info/RECORD @@ -0,0 +1,110 @@ +../../../bin/websockets,sha256=Aec6LJ-SgqOC29VvGIAfJo3DbDp5-znjkFZaF7aEUTM,188 +websockets-16.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +websockets-16.0.dist-info/METADATA,sha256=JcDvWo8DVSw5uoDAFbk9N8fJXuRJvnrcLXVBFyBjwN8,6799 +websockets-16.0.dist-info/RECORD,, +websockets-16.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +websockets-16.0.dist-info/WHEEL,sha256=MzHA8aA11K4m-mjpjTobbWUqTlhv5RdoytLBFWQb_k4,142 +websockets-16.0.dist-info/direct_url.json,sha256=CKQvi9piWBTuZxzuK4J8f71FvL_6alBevkUUKBa4QCg,310 +websockets-16.0.dist-info/entry_points.txt,sha256=Dnhn4dm5EsI4ZMAsHldGF6CwBXZrGXnR7cnK2-XR7zY,51 +websockets-16.0.dist-info/licenses/LICENSE,sha256=PWoMBQ2L7FL6utUC5F-yW9ArytvXDeo01Ee2oP9Obag,1514 +websockets-16.0.dist-info/top_level.txt,sha256=CMpdKklxKsvZgCgyltxUWOHibZXZ1uYIVpca9xsQ8Hk,11 +websockets/__init__.py,sha256=AC2Hq92uSc_WOo9_xvITpGshJ7Dy0Md5m2_ywsdSt_Y,7058 +websockets/__main__.py,sha256=wu5N2wk8mvBgyvr2ghmQf4prezAe0_i-p123VVreyYc,62 +websockets/__pycache__/__init__.cpython-314.pyc,, +websockets/__pycache__/__main__.cpython-314.pyc,, +websockets/__pycache__/auth.cpython-314.pyc,, +websockets/__pycache__/cli.cpython-314.pyc,, +websockets/__pycache__/client.cpython-314.pyc,, +websockets/__pycache__/connection.cpython-314.pyc,, +websockets/__pycache__/datastructures.cpython-314.pyc,, +websockets/__pycache__/exceptions.cpython-314.pyc,, +websockets/__pycache__/frames.cpython-314.pyc,, +websockets/__pycache__/headers.cpython-314.pyc,, +websockets/__pycache__/http.cpython-314.pyc,, +websockets/__pycache__/http11.cpython-314.pyc,, +websockets/__pycache__/imports.cpython-314.pyc,, +websockets/__pycache__/protocol.cpython-314.pyc,, +websockets/__pycache__/proxy.cpython-314.pyc,, +websockets/__pycache__/server.cpython-314.pyc,, +websockets/__pycache__/streams.cpython-314.pyc,, +websockets/__pycache__/typing.cpython-314.pyc,, +websockets/__pycache__/uri.cpython-314.pyc,, +websockets/__pycache__/utils.cpython-314.pyc,, +websockets/__pycache__/version.cpython-314.pyc,, +websockets/asyncio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +websockets/asyncio/__pycache__/__init__.cpython-314.pyc,, +websockets/asyncio/__pycache__/async_timeout.cpython-314.pyc,, +websockets/asyncio/__pycache__/client.cpython-314.pyc,, +websockets/asyncio/__pycache__/compatibility.cpython-314.pyc,, +websockets/asyncio/__pycache__/connection.cpython-314.pyc,, +websockets/asyncio/__pycache__/messages.cpython-314.pyc,, +websockets/asyncio/__pycache__/router.cpython-314.pyc,, +websockets/asyncio/__pycache__/server.cpython-314.pyc,, +websockets/asyncio/async_timeout.py,sha256=N-6Mubyiaoh66PAXGvCzhgxCM-7V2XiRnH32Xi6J6TE,8971 +websockets/asyncio/client.py,sha256=e4xlgtzb3v29M2vN-UDiyoUtThg--d5GqKg3lt2pDdE,30850 +websockets/asyncio/compatibility.py,sha256=gkenDDhzNbm6_iXV5Edvbvp6uHZYdrTvGNjt8P_JtyQ,786 +websockets/asyncio/connection.py,sha256=87RdVURijJk8V-ShWAWfTEyhW5Z1YUXKV8ezUzxt5L0,49099 +websockets/asyncio/messages.py,sha256=u2M5WKY9xPyw8G3nKoXfdO5K41hrTnf4MdizVHzgdM4,11129 +websockets/asyncio/router.py,sha256=S-69vszK-SqUCcZbXXPOnux-eH2fTHYC2JNh7tOtmmA,7520 +websockets/asyncio/server.py,sha256=wQ9oBc0WBOIzbXKDYJ8UhXRTeoXrSfLu6CWCrUl-vck,37941 +websockets/auth.py,sha256=U_Jwmn59ZRQ6EecpOvMizQCG_ZbAvgUf1ik7haZRC3c,568 +websockets/cli.py,sha256=YnegH59z93JxSVIGiXiWhR3ktgI6k1_pf_BRLanxKrQ,5336 +websockets/client.py,sha256=fljI5k5oQ-Sfm53MCoyTlr2jFtOOIuO13H9bbtpBPes,13789 +websockets/connection.py,sha256=OLiMVkNd25_86sB8Q7CrCwBoXy9nA0OCgdgLRA8WUR8,323 +websockets/datastructures.py,sha256=Uq2CpjmXak9_pPWcOqh36rzJMo8eCi2lVPTFWDvK5sA,5518 +websockets/exceptions.py,sha256=bgaMdqQGGZosAEULeCB30XW2YnwomWa3c8YOrEfeOoY,12859 +websockets/extensions/__init__.py,sha256=QkZsxaJVllVSp1uhdD5uPGibdbx_091GrVVfS5LXcpw,98 +websockets/extensions/__pycache__/__init__.cpython-314.pyc,, +websockets/extensions/__pycache__/base.cpython-314.pyc,, +websockets/extensions/__pycache__/permessage_deflate.cpython-314.pyc,, +websockets/extensions/base.py,sha256=JNfyk543C7VuPH0QOobiqKoGrzjJILje6sz5ILvOPl4,2903 +websockets/extensions/permessage_deflate.py,sha256=AkuhkAKFo5lqJQMXnckbSs9b2KBBrOFsE1DHIcbLL3k,25770 +websockets/frames.py,sha256=5IK4GZpl8ukr0bZ_UA_jjjztK09yYQAl9m5NVmGLiK0,12889 +websockets/headers.py,sha256=yQnPljVZwV1_V-pOSRKNLG_u827wFC1h72cciojcQ8M,16046 +websockets/http.py,sha256=T1tNLmbkFCneXQ6qepBmsVVDXyP9i500IVzTJTeBMR4,659 +websockets/http11.py,sha256=T8ai5BcBGkV0n9It63oDeNpmtQMyg8Cpav5rf_yT0r4,15619 +websockets/imports.py,sha256=T_B9TUmHoceKMQ-PNphdQQAH2XdxAxwSQNeQEgqILkE,2795 +websockets/legacy/__init__.py,sha256=wQ5zRIENGUS_5eKNAX9CRE7x1TwKapKimrQFFWN9Sxs,276 +websockets/legacy/__pycache__/__init__.cpython-314.pyc,, +websockets/legacy/__pycache__/auth.cpython-314.pyc,, +websockets/legacy/__pycache__/client.cpython-314.pyc,, +websockets/legacy/__pycache__/exceptions.cpython-314.pyc,, +websockets/legacy/__pycache__/framing.cpython-314.pyc,, +websockets/legacy/__pycache__/handshake.cpython-314.pyc,, +websockets/legacy/__pycache__/http.cpython-314.pyc,, +websockets/legacy/__pycache__/protocol.cpython-314.pyc,, +websockets/legacy/__pycache__/server.cpython-314.pyc,, +websockets/legacy/auth.py,sha256=DcQcCSeVeP93JcH8vFWE0HIJL-X-f23LZ0DsJpav1So,6531 +websockets/legacy/client.py,sha256=fV2mbiU9rciXhJfAEKVSm0GztJDUbDpRQ-K5EMbkuQ0,26815 +websockets/legacy/exceptions.py,sha256=ViEjpoT09fzx_Zqf0aNGDVtRDNjXaOw0gdCta3LkjFc,1924 +websockets/legacy/framing.py,sha256=r9P1wiXv_1XuAVQw8SOPkuE9d4eZ0r_JowAkz9-WV4w,6366 +websockets/legacy/handshake.py,sha256=2Nzr5AN2xvDC5EdNP-kB3lOcrAaUNlYuj_-hr_jv7pM,5285 +websockets/legacy/http.py,sha256=cOCQmDWhIKQmm8UWGXPW7CDZg03wjogCsb0LP9oetNQ,7061 +websockets/legacy/protocol.py,sha256=ajtVXDb-lEm9BN0NF3iEaTI_b1q5fBCKTB9wvUoGOxY,63632 +websockets/legacy/server.py,sha256=7mwY-yD0ljNF93oPYumTWD7OIVbCWtaEOw1FFJBhIAM,45251 +websockets/protocol.py,sha256=vTqjPIg2HmO-bSxsczuEmWMxPTxPXU1hmVUjqnahV44,27247 +websockets/proxy.py,sha256=oFrbEYtasYWv-WDcniObD9nBR5Q5qkHpyCVLngx7WMQ,4969 +websockets/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +websockets/server.py,sha256=E4SWBA8WZRmAOpsUm-oCqacBGZre9e0iDmDIrfpV21Q,21790 +websockets/speedups.c,sha256=u_dncR4M38EX6He_fzb1TY6D3Hke67ZpoHLLhZZ0hvQ,5920 +websockets/speedups.cpython-314-darwin.so,sha256=G3h5TQnbLQ1QpRmDTLznIO5RkWVjFwHMJFy_2-5zXwM,84144 +websockets/speedups.pyi,sha256=unjvBNg-uW4c7z-9OW4WiSzZk_QH2bLEcjYAMuoSgBI,102 +websockets/streams.py,sha256=pXqga7ttjuF6lChWYiWLSfUlt3FCaQpEX1ae_jvcCeQ,4071 +websockets/sync/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +websockets/sync/__pycache__/__init__.cpython-314.pyc,, +websockets/sync/__pycache__/client.cpython-314.pyc,, +websockets/sync/__pycache__/connection.cpython-314.pyc,, +websockets/sync/__pycache__/messages.cpython-314.pyc,, +websockets/sync/__pycache__/router.cpython-314.pyc,, +websockets/sync/__pycache__/server.cpython-314.pyc,, +websockets/sync/__pycache__/utils.cpython-314.pyc,, +websockets/sync/client.py,sha256=_2Erytw1f3f9O_u2jLtS1oNV4HsHUi_h3lGvT9ZEaDQ,22108 +websockets/sync/connection.py,sha256=1pJYEMRHLWIN7538vJcIeFVnvSXVrD0n1xrfX7wDNSc,41868 +websockets/sync/messages.py,sha256=yZV1zhY07ZD0vRF5b1yDa7ug0rbA5UDOCCCQmWwAcds,12858 +websockets/sync/router.py,sha256=BqKSAKNZYtRWiOxol9qYeyfgyXRrMNJ6FrTTZLNcXMg,7172 +websockets/sync/server.py,sha256=s07HNK_2s1kLN62Uqc77uvND0z7C0YTXGePsCiBtXaE,27655 +websockets/sync/utils.py,sha256=TtW-ncYFvJmiSW2gO86ngE2BVsnnBdL-4H88kWNDYbg,1107 +websockets/typing.py,sha256=A6xh4m65pRzKAbuOs0kFuGhL4DWIIko-ppS4wvJVc0Q,1946 +websockets/uri.py,sha256=2fFMw-AbKJ5HVHNCuw1Rx1MnkCkNWRpogxWhhM30EU4,3125 +websockets/utils.py,sha256=AwhS4UmlbKv7meAaR7WNbUqD5JFoStOP1bAyo9sRMus,1197 +websockets/version.py,sha256=IhaztWxysdY-pd-0nOubnnPduvySSvdoBwrQdJKtZ2g,3202 diff --git a/src-tauri/binaries/_internal/websockets-16.0.dist-info/REQUESTED b/src-tauri/binaries/_internal/websockets-16.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/binaries/_internal/websockets-16.0.dist-info/WHEEL b/src-tauri/binaries/_internal/websockets-16.0.dist-info/WHEEL new file mode 100644 index 0000000..3884d2a --- /dev/null +++ b/src-tauri/binaries/_internal/websockets-16.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (80.9.0) +Root-Is-Purelib: false +Tag: cp314-cp314-macosx_10_15_universal2 +Generator: delocate 0.13.0 + diff --git a/src-tauri/binaries/_internal/websockets-16.0.dist-info/direct_url.json b/src-tauri/binaries/_internal/websockets-16.0.dist-info/direct_url.json new file mode 100644 index 0000000..c4f358a --- /dev/null +++ b/src-tauri/binaries/_internal/websockets-16.0.dist-info/direct_url.json @@ -0,0 +1 @@ +{"archive_info": {"hash": "sha256=8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", "hashes": {"sha256": "8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0"}}, "url": "file:///Users/runner/work/yt-dlp/yt-dlp/build/wheels/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl"} \ No newline at end of file diff --git a/src-tauri/binaries/_internal/websockets-16.0.dist-info/entry_points.txt b/src-tauri/binaries/_internal/websockets-16.0.dist-info/entry_points.txt new file mode 100644 index 0000000..60cd61c --- /dev/null +++ b/src-tauri/binaries/_internal/websockets-16.0.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +websockets = websockets.cli:main diff --git a/src-tauri/binaries/_internal/websockets-16.0.dist-info/licenses/LICENSE b/src-tauri/binaries/_internal/websockets-16.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000..5d61ece --- /dev/null +++ b/src-tauri/binaries/_internal/websockets-16.0.dist-info/licenses/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) Aymeric Augustin and contributors + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src-tauri/binaries/_internal/websockets-16.0.dist-info/top_level.txt b/src-tauri/binaries/_internal/websockets-16.0.dist-info/top_level.txt new file mode 100644 index 0000000..14774b4 --- /dev/null +++ b/src-tauri/binaries/_internal/websockets-16.0.dist-info/top_level.txt @@ -0,0 +1 @@ +websockets diff --git a/src-tauri/binaries/_internal/websockets/speedups.cpython-314-darwin.so b/src-tauri/binaries/_internal/websockets/speedups.cpython-314-darwin.so new file mode 100755 index 0000000..10955a1 Binary files /dev/null and b/src-tauri/binaries/_internal/websockets/speedups.cpython-314-darwin.so differ diff --git a/src-tauri/binaries/_internal/yt_dlp_ejs/yt/solver/core.min.js b/src-tauri/binaries/_internal/yt_dlp_ejs/yt/solver/core.min.js new file mode 100644 index 0000000..66f7978 --- /dev/null +++ b/src-tauri/binaries/_internal/yt_dlp_ejs/yt/solver/core.min.js @@ -0,0 +1,5 @@ +/*! + * SPDX-License-Identifier: Unlicense + * This file was automatically generated by https://github.com/yt-dlp/ejs + */ +var jsc=function(e,n){"use strict";function t(e,n){if(Array.isArray(n))return!!Array.isArray(e)&&(n.length===e.length&&n.every((n,o)=>t(e[o],n)));if("object"==typeof n){if(!e)return!n;if("or"in n)return n.or.some(n=>t(e,n));if("anykey"in n&&Array.isArray(n.anykey)){const o=Array.isArray(e)?e:Object.values(e);return n.anykey.every(e=>o.some(n=>t(n,e)))}for(const[o,s]of Object.entries(n))if(!t(e[o],s))return!1;return!0}return n===e}function o(n){return e.parse(n).body[0].expression}function s(e){let n,t=e[0],o=1;for(;ot.call(n,...e)),n=void 0)}return t}const r={or:[{type:"ExpressionStatement",expression:{type:"AssignmentExpression",operator:"=",left:{or:[{type:"Identifier"},{type:"MemberExpression"}]},right:{type:"FunctionExpression",async:!1}}},{type:"FunctionDeclaration",async:!1,id:{type:"Identifier"}},{type:"VariableDeclaration",declarations:{anykey:[{type:"VariableDeclarator",init:{type:"FunctionExpression",async:!1}}]}}]},i={type:"ExpressionStatement",expression:{type:"CallExpression",callee:{type:"MemberExpression",object:{type:"Identifier"},property:{},optional:!1},arguments:[{type:"Literal",value:"alr"},{type:"Literal",value:"yes"}],optional:!1}};function p(e){if(!t(e,r))return null;const n=[];if("FunctionDeclaration"===e.type)e.id&&s([e,"access",e=>e.body,"optionalAccess",e=>e.body])&&n.push({name:e.id,statements:s([e,"access",e=>e.body,"optionalAccess",e=>e.body])});else if("ExpressionStatement"===e.type){if("AssignmentExpression"!==e.expression.type)return null;const t=e.expression.left,o=s([e.expression.right,"optionalAccess",e=>e.body,"optionalAccess",e=>e.body]);t&&o&&n.push({name:t,statements:o})}else if("VariableDeclaration"===e.type)for(const t of e.declarations){const e=t.id,o=s([t.init,"optionalAccess",e=>e.body,"optionalAccess",e=>e.body]);e&&o&&n.push({name:e,statements:o})}for(const{name:e,statements:o}of n)if(t(o,{anykey:[i]}))return a(e);return null}function a(e){return o(`\n({sig, n}) => {\n const url = (${n.generate(e)})("https://youtube.com/watch?v=yt-dlp-wins", "s", sig ? encodeURIComponent(sig) : undefined);\n url.set("n", n);\n const proto = Object.getPrototypeOf(url);\n const keys = Object.keys(proto).concat(Object.getOwnPropertyNames(proto));\n for (const key of keys) {\n if (!["constructor", "set", "get", "clone"].includes(key)) {\n url[key]();\n break;\n }\n }\n const s = url.get("s");\n return {\n sig: s ? decodeURIComponent(s) : null,\n n: url.get("n") ?? null,\n };\n}\n`)}const l=e.parse('\nif (typeof globalThis.XMLHttpRequest === "undefined") {\n globalThis.XMLHttpRequest = { prototype: {} };\n}\nif (typeof URL === "undefined") {\n globalThis.location = {\n hash: "",\n host: "www.youtube.com",\n hostname: "www.youtube.com",\n href: "https://www.youtube.com/watch?v=yt-dlp-wins",\n origin: "https://www.youtube.com",\n password: "",\n pathname: "/watch",\n port: "",\n protocol: "https:",\n search: "?v=yt-dlp-wins",\n username: "",\n };\n} else {\n globalThis.location = new URL("https://www.youtube.com/watch?v=yt-dlp-wins");\n}\nif (typeof globalThis.document === "undefined") {\n globalThis.document = Object.create(null);\n}\nif (typeof globalThis.navigator === "undefined") {\n globalThis.navigator = Object.create(null);\n}\nif (typeof globalThis.self === "undefined") {\n globalThis.self = globalThis;\n}\nif (typeof globalThis.window === "undefined") {\n globalThis.window = globalThis;\n}\n').body;function c(e){let n,t=e[0],o=1;for(;ot.call(n,...e)),n=void 0)}return t}function u(t){const o=e.parse(t),s=function(e){const n=e.body,t=(()=>{switch(n.length){case 1:{const e=n[0];if("ExpressionStatement"===c([e,"optionalAccess",e=>e.type])&&"CallExpression"===e.expression.type&&"MemberExpression"===e.expression.callee.type&&"FunctionExpression"===e.expression.callee.object.type)return e.expression.callee.object.body;break}case 2:{const e=n[1];if("ExpressionStatement"===c([e,"optionalAccess",e=>e.type])&&"CallExpression"===e.expression.type&&"FunctionExpression"===e.expression.callee.type){const n=e.expression.callee.body;return n.body.splice(0,1),n}break}}throw"unexpected structure"})();return t.body=t.body.filter(e=>"ExpressionStatement"!==e.type||("AssignmentExpression"===e.expression.type||"Literal"===e.expression.type)),t.body}(o),r=function(e){const n={n:[],sig:[]};for(const t of e){const e=p(t);e&&(n.n.push(y(e,{type:"Identifier",name:"n"})),n.sig.push(y(e,{type:"Identifier",name:"sig"})))}return n}(s);for(const[e,n]of Object.entries(r))s.push({type:"ExpressionStatement",expression:{type:"AssignmentExpression",operator:"=",left:{type:"MemberExpression",computed:!1,object:{type:"Identifier",name:"_result"},property:{type:"Identifier",name:e},optional:!1},right:f(n)}});return o.body.splice(0,0,...l),n.generate(o)}function y(e,n){return{type:"ArrowFunctionExpression",params:[n],body:{type:"MemberExpression",object:{type:"CallExpression",callee:e,arguments:[{type:"ObjectExpression",properties:[{type:"Property",key:n,value:n,kind:"init",computed:!1,method:!1,shorthand:!0}]}],optional:!1},computed:!1,property:n,optional:!1},async:!1,expression:!0,generator:!1}}function f(e){return o(`\n(_input) => {\n const _results = new Set();\n const errors = [];\n for (const _generator of ${n.generate({type:"ArrayExpression",elements:e})}) {\n try {\n _results.add(_generator(_input));\n } catch (e) {\n errors.push(e);\n }\n }\n if (!_results.size) {\n throw \`no solutions: \${errors.join(", ")}\`;\n }\n if (_results.size !== 1) {\n throw \`invalid solutions: \${[..._results].map(x => JSON.stringify(x)).join(", ")}\`;\n }\n return _results.values().next().value;\n}\n`)}return function(e){const n="player"===e.type?u(e.player):e.preprocessed_player,t=function(e){const n={n:null,sig:null};return Function("_result",e)(n),n}(n),o={type:"result",responses:e.requests.map(e=>{if(!function(e,...n){return n.includes(e)}(e.type,"n","sig"))return{type:"error",error:`Unknown request type: ${e.type}`};const n=t[e.type];if(!n)return{type:"error",error:`Failed to extract ${e.type} function`};try{return{type:"result",data:Object.fromEntries(e.challenges.map(e=>[e,n(e)]))}}catch(e){return{type:"error",error:e instanceof Error?`${e.message}\n${e.stack}`:`${e}`}}})};return"player"===e.type&&e.output_preprocessed&&(o.preprocessed_player=n),o}}(meriyah,astring); \ No newline at end of file diff --git a/src-tauri/binaries/_internal/yt_dlp_ejs/yt/solver/lib.min.js b/src-tauri/binaries/_internal/yt_dlp_ejs/yt/solver/lib.min.js new file mode 100644 index 0000000..7fbd088 --- /dev/null +++ b/src-tauri/binaries/_internal/yt_dlp_ejs/yt/solver/lib.min.js @@ -0,0 +1,52 @@ +/*! + * SPDX-License-Identifier: Unlicense + * This file was automatically generated by https://github.com/yt-dlp/ejs + * + * Bundled Dependencies: + * + * --- + * Name: meriyah + * Version: 6.1.4 + * License: ISC + * Repository: git+https://github.com/meriyah/meriyah.git + * Author: Kenny F. (https://github.com/KFlash) + * + * ISC License + * + * Copyright (c) 2019 and later, KFlash and others. + * + * Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * --- + * Name: astring + * Version: 1.9.0 + * License: MIT + * Repository: https://github.com/davidbonnet/astring.git + * Author: David Bonnet + * + * Copyright (c) 2015, David Bonnet + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * --- + */ +var lib=function(e){"use strict";const t=((e,t)=>{const r=new Uint32Array(69632);let n=0,o=0;for(;n<2571;){const i=e[n++];if(i<0)o-=i;else{let a=e[n++];2&i&&(a=t[a]),1&i?r.fill(a,o,o+=e[n++]):r[o++]=a}}return r})([-1,2,26,2,27,2,5,-1,0,77595648,3,44,2,3,0,14,2,63,2,64,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,41,3,0,4,0,4294966523,3,0,4,2,16,2,65,2,0,0,4294836735,0,3221225471,0,4294901942,2,66,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,18,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,60,2,7,2,6,0,4286611199,3,0,2,2,1,3,0,3,0,4294901711,2,40,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,0,65472,2,3,0,4093640191,0,660618719,0,65487,0,4294828015,0,4092591615,0,1616920031,0,982991,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,71,0,4284449919,0,851904,2,4,2,12,0,67076095,-1,2,72,0,1073741743,0,4093607775,-1,0,50331649,0,3265266687,2,33,0,4294844415,0,4278190047,2,20,2,137,-1,3,0,2,2,23,2,0,2,10,2,0,2,15,2,22,3,0,10,2,74,2,0,2,75,2,76,2,77,2,0,2,78,2,0,2,11,0,261632,2,25,3,0,2,2,13,2,4,3,0,18,2,79,2,5,3,0,2,2,80,0,2151677951,2,29,2,9,0,909311,3,0,2,0,814743551,2,49,0,67090432,3,0,2,2,42,2,0,2,6,2,0,2,30,2,8,0,268374015,2,110,2,51,2,0,2,81,0,134153215,-1,2,7,2,0,2,8,0,2684354559,0,67044351,0,3221160064,2,17,-1,3,0,2,2,53,0,1046528,3,0,3,2,9,2,0,2,54,0,4294960127,2,10,2,6,2,11,0,4294377472,2,12,3,0,16,2,13,2,0,2,82,2,10,2,0,2,83,2,84,2,85,0,12288,2,55,0,1048577,2,86,2,14,-1,2,14,0,131042,2,87,2,88,2,89,2,0,2,34,-83,3,0,7,0,1046559,2,0,2,15,2,0,0,2147516671,2,21,3,90,2,2,0,-16,2,91,0,524222462,2,4,2,0,0,4269801471,2,4,3,0,2,2,28,2,16,3,0,2,2,17,2,0,-1,2,18,-16,3,0,206,-2,3,0,692,2,73,-1,2,18,2,10,3,0,8,2,93,2,133,2,0,0,3220242431,3,0,3,2,19,2,94,2,95,3,0,2,2,96,2,0,2,97,2,46,2,0,0,4351,2,0,2,9,3,0,2,0,67043391,0,3909091327,2,0,2,24,2,9,2,20,3,0,2,0,67076097,2,8,2,0,2,21,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,101,2,102,2,22,2,23,3,0,3,0,67057663,3,0,349,2,103,2,104,2,7,-264,3,0,11,2,24,3,0,2,2,32,-1,0,3774349439,2,105,2,106,3,0,2,2,19,2,107,3,0,10,2,10,2,18,2,0,2,47,2,0,2,31,2,108,2,25,0,1638399,0,57344,2,109,3,0,3,2,20,2,26,2,27,2,5,2,28,2,0,2,8,2,111,-1,2,112,2,113,2,114,-1,3,0,3,2,12,-2,2,0,2,29,-3,0,536870912,-4,2,20,2,0,2,36,0,1,2,0,2,67,2,6,2,12,2,10,2,0,2,115,-1,3,0,4,2,10,2,23,2,116,2,7,2,0,2,117,2,0,2,118,2,119,2,120,2,0,2,9,3,0,9,2,21,2,30,2,31,2,121,2,122,-2,2,123,2,124,2,30,2,21,2,8,-2,2,125,2,30,2,32,-2,2,0,2,39,-2,0,4277137519,0,2269118463,-1,3,20,2,-1,2,33,2,38,2,0,3,30,2,2,35,2,19,-3,3,0,2,2,34,-1,2,0,2,35,2,0,2,35,2,0,2,48,2,0,0,4294950463,2,37,-7,2,0,0,203775,2,57,0,4026531840,2,20,2,43,2,36,2,18,2,37,2,18,2,126,2,21,3,0,2,2,38,0,2151677888,2,0,2,12,0,4294901764,2,144,2,0,2,58,2,56,0,5242879,3,0,2,0,402644511,-1,2,128,2,39,0,3,-1,2,129,2,130,2,0,0,67045375,2,40,0,4226678271,0,3766565279,0,2039759,2,132,2,41,0,1046437,0,6,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,42,2,23,2,50,2,11,2,61,2,38,-5,2,0,2,12,-3,3,0,2,0,2147484671,2,134,0,4190109695,2,52,-2,2,135,0,4244635647,0,27,2,0,2,8,2,43,2,0,2,68,2,18,2,0,2,42,-6,2,0,2,45,2,59,2,44,2,45,2,46,2,47,0,8388351,-2,2,136,0,3028287487,2,48,2,138,0,33259519,2,49,-9,2,21,0,4294836223,0,3355443199,0,134152199,-2,2,69,-2,3,0,28,2,32,-3,3,0,3,2,17,3,0,6,2,50,-81,2,18,3,0,2,2,36,3,0,33,2,25,2,30,3,0,124,2,12,3,0,18,2,38,-213,2,0,2,32,-54,3,0,17,2,42,2,8,2,23,2,0,2,8,2,23,2,51,2,0,2,21,2,52,2,139,2,25,-13,2,0,2,53,-6,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,54,3,0,38,2,30,2,55,2,34,-278,2,140,3,0,9,2,141,2,142,2,56,3,0,11,2,7,-72,3,0,3,2,143,0,1677656575,-130,2,26,-16,2,0,2,24,2,38,-16,0,4161266656,0,4071,0,15360,-4,2,57,-13,3,0,2,2,58,2,0,2,145,2,146,2,62,2,0,2,147,2,148,2,149,3,0,10,2,150,2,151,2,22,3,58,2,3,152,2,3,59,2,0,4294954999,2,0,-16,2,0,2,92,2,0,0,2105343,0,4160749584,0,65534,-34,2,8,2,154,-6,0,4194303871,0,4294903771,2,0,2,60,2,100,-3,2,0,0,1073684479,0,17407,-9,2,18,2,17,2,0,2,32,-14,2,18,2,32,-6,2,18,2,12,-15,2,155,3,0,6,0,8323103,-1,3,0,2,2,61,-37,2,62,2,156,2,157,2,158,2,159,2,160,-105,2,26,-32,3,0,1335,-1,3,0,129,2,32,3,0,6,2,10,3,0,180,2,161,3,0,233,2,162,3,0,18,2,10,-77,3,0,16,2,10,-47,3,0,154,2,6,3,0,130,2,25,-22250,3,0,7,2,25,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,63,2,64,-3,0,3168731136,0,4294956864,2,1,2,0,2,41,3,0,4,0,4294966275,3,0,4,2,16,2,65,2,0,2,34,-1,2,18,2,66,-1,2,0,0,2047,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,25,2,67,3,0,2,0,131135,2,98,0,70256639,0,71303167,0,272,2,42,2,6,0,32511,2,0,2,49,-1,2,99,2,68,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,70,2,69,0,33554435,2,131,2,70,0,2952790016,0,131075,0,3594373096,0,67094296,2,69,-1,0,4294828e3,0,603979263,0,654311424,0,3,0,4294828001,0,602930687,0,1610612736,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,71,2,38,-1,2,4,0,917503,2,38,-1,2,72,0,537788335,0,4026531935,-1,0,1,-1,2,33,2,73,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,15,2,22,3,0,10,2,74,2,0,2,75,2,76,2,77,2,0,2,78,2,0,2,12,-1,2,25,3,0,2,2,13,2,4,3,0,18,2,79,2,5,3,0,2,2,80,0,2147745791,3,19,2,0,122879,2,0,2,9,0,276824064,-2,3,0,2,2,42,2,0,0,4294903295,2,0,2,30,2,8,-1,2,18,2,51,2,0,2,81,2,49,-1,2,21,2,0,2,29,-2,0,128,-2,2,28,2,9,0,8160,-1,2,127,0,4227907585,2,0,2,37,2,0,2,50,0,4227915776,2,10,2,6,2,11,-1,0,74440192,3,0,6,-2,3,0,8,2,13,2,0,2,82,2,10,2,0,2,83,2,84,2,85,-3,2,86,2,14,-3,2,87,2,88,2,89,2,0,2,34,-83,3,0,7,0,817183,2,0,2,15,2,0,0,33023,2,21,3,90,2,-17,2,91,0,524157950,2,4,2,0,2,92,2,4,2,0,2,22,2,28,2,16,3,0,2,2,17,2,0,-1,2,18,-16,3,0,206,-2,3,0,692,2,73,-1,2,18,2,10,3,0,8,2,93,0,3072,2,0,0,2147516415,2,10,3,0,2,2,25,2,94,2,95,3,0,2,2,96,2,0,2,97,2,46,0,4294965179,0,7,2,0,2,9,2,95,2,9,-1,0,1761345536,2,98,0,4294901823,2,38,2,20,2,99,2,35,2,100,0,2080440287,2,0,2,34,2,153,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,101,2,102,2,22,2,23,3,0,3,0,7,3,0,349,2,103,2,104,2,7,-264,3,0,11,2,24,3,0,2,2,32,-1,0,2700607615,2,105,2,106,3,0,2,2,19,2,107,3,0,10,2,10,2,18,2,0,2,47,2,0,2,31,2,108,-3,2,109,3,0,3,2,20,-1,3,5,2,2,110,2,0,2,8,2,111,-1,2,112,2,113,2,114,-1,3,0,3,2,12,-2,2,0,2,29,-8,2,20,2,0,2,36,-1,2,0,2,67,2,6,2,30,2,10,2,0,2,115,-1,3,0,4,2,10,2,18,2,116,2,7,2,0,2,117,2,0,2,118,2,119,2,120,2,0,2,9,3,0,9,2,21,2,30,2,31,2,121,2,122,-2,2,123,2,124,2,30,2,21,2,8,-2,2,125,2,30,2,32,-2,2,0,2,39,-2,0,4277075969,2,30,-1,3,20,2,-1,2,33,2,126,2,0,3,30,2,2,35,2,19,-3,3,0,2,2,34,-1,2,0,2,35,2,0,2,35,2,0,2,50,2,98,0,4294934591,2,37,-7,2,0,0,197631,2,57,-1,2,20,2,43,2,37,2,18,0,3,2,18,2,126,2,21,2,127,2,54,-1,0,2490368,2,127,2,25,2,18,2,34,2,127,2,38,0,4294901904,0,4718591,2,127,2,35,0,335544350,-1,2,128,0,2147487743,0,1,-1,2,129,2,130,2,8,-1,2,131,2,70,0,3758161920,0,3,2,132,0,12582911,0,655360,-1,2,0,2,29,0,2147485568,0,3,2,0,2,25,0,176,-5,2,0,2,17,0,251658240,-1,2,0,2,25,0,16,-1,2,0,0,16779263,-2,2,12,-1,2,38,-5,2,0,2,133,-3,3,0,2,2,55,2,134,0,2147549183,0,2,-2,2,135,2,36,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,2,18,2,0,2,42,-6,2,0,0,1,2,59,2,17,0,1,2,46,2,25,-3,2,136,2,36,2,137,2,138,0,16778239,-10,2,35,0,4294836212,2,9,-3,2,69,-2,3,0,28,2,32,-3,3,0,3,2,17,3,0,6,2,50,-81,2,18,3,0,2,2,36,3,0,33,2,25,0,126,3,0,124,2,12,3,0,18,2,38,-213,2,10,-55,3,0,17,2,42,2,8,2,18,2,0,2,8,2,18,2,60,2,0,2,25,2,50,2,139,2,25,-13,2,0,2,73,-6,3,0,2,-4,3,0,2,0,67583,-1,2,107,-2,0,11,3,0,191,2,54,3,0,38,2,30,2,55,2,34,-278,2,140,3,0,9,2,141,2,142,2,56,3,0,11,2,7,-72,3,0,3,2,143,2,144,-187,3,0,2,2,58,2,0,2,145,2,146,2,62,2,0,2,147,2,148,2,149,3,0,10,2,150,2,151,2,22,3,58,2,3,152,2,3,59,2,2,153,-57,2,8,2,154,-7,2,18,2,0,2,60,-4,2,0,0,1065361407,0,16384,-9,2,18,2,60,2,0,2,133,-14,2,18,2,133,-6,2,18,0,81919,-15,2,155,3,0,6,2,126,-1,3,0,2,0,2063,-37,2,62,2,156,2,157,2,158,2,159,2,160,-138,3,0,1335,-1,3,0,129,2,32,3,0,6,2,10,3,0,180,2,161,3,0,233,2,162,3,0,18,2,10,-77,3,0,16,2,10,-47,3,0,154,2,6,3,0,130,2,25,-28386],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,4294903807,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4294901759,32767,4294901760,262143,536870911,8388607,4160749567,4294902783,4294918143,65535,67043328,2281701374,4294967264,2097151,4194303,255,67108863,4294967039,511,524287,131071,63,127,3238002687,4294549487,4290772991,33554431,4294901888,4286578687,67043329,4294705152,4294770687,67043583,1023,15,2047999,67043343,67051519,16777215,2147483648,4294902e3,28,4292870143,4294966783,16383,67047423,4294967279,262083,20511,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,535511039,4294966272,4294967280,32768,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,4294967232,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4160684047,4290246655,469499899,4294967231,134086655,4294966591,2445279231,3670015,31,4294967288,4294705151,3221208447,4294902271,4294549472,4294921215,4095,4285526655,4294966527,4294966143,64,4294966719,3774873592,1877934080,262151,2555904,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4294934527,4087,2016,2147446655,184024726,2862017156,1593309078,268434431,268434414,4294901763,4294901761]),r=e=>!!(1&t[(e>>>5)+34816]>>>e);function n(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function o(e){const t=e.currentChar;if(55296!=(64512&t))return 0;const r=e.source.charCodeAt(e.index+1);return 56320!=(64512&r)?0:65536+((1023&t)<<10)+(1023&r)}function i(e,t){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,4&t||(e.column=0,e.line++)}function a(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function s(e){return 160===e||65279===e||133===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||8201===e||65519===e}function c(e){return e<65?e-48:e-65+10&15}function l(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 131:return"TemplateLiteral";default:return 143360&~e?4096&~e?"Punctuator":"Keyword":"Identifier"}}const u=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],p=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],d=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function g(e){return e<=127?p[e]>0:r(e)}function f(e){return e<=127?d[e]>0:(e=>!!(1&t[(e>>>5)+0]>>>e))(e)||8204===e||8205===e}const h=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function k(e,t,r,n,o,i){return 2&n&&e.report(0),m(e,t,r,o,i)}function m(e,t,r,o,i){const{index:s}=e;for(e.tokenIndex=e.index,e.tokenLine=e.line,e.tokenColumn=e.column;e.index=e.source.length)return e.report(34)}const o=e.index-1;let i=y.Empty,a=e.currentChar;const{index:s}=e;for(;f(a);){switch(a){case 103:i&y.Global&&e.report(36,"g"),i|=y.Global;break;case 105:i&y.IgnoreCase&&e.report(36,"i"),i|=y.IgnoreCase;break;case 109:i&y.Multiline&&e.report(36,"m"),i|=y.Multiline;break;case 117:i&y.Unicode&&e.report(36,"u"),i&y.UnicodeSets&&e.report(36,"vu"),i|=y.Unicode;break;case 118:i&y.Unicode&&e.report(36,"uv"),i&y.UnicodeSets&&e.report(36,"v"),i|=y.UnicodeSets;break;case 121:i&y.Sticky&&e.report(36,"y"),i|=y.Sticky;break;case 115:i&y.DotAll&&e.report(36,"s"),i|=y.DotAll;break;case 100:i&y.Indices&&e.report(36,"d"),i|=y.Indices;break;default:e.report(35)}a=n(e)}const c=e.source.slice(s,e.index),l=e.source.slice(t,o);return e.tokenRegExp={pattern:l,flags:c},e.options.raw&&(e.tokenRaw=e.source.slice(e.tokenIndex,e.index)),e.tokenValue=function(e,t,r){try{return new RegExp(t,r)}catch{try{return new RegExp(t,r),null}catch{e.report(34)}}}(e,l,c),65540}function x(e,t,r){const{index:o}=e;let i="",a=n(e),s=e.index;for(;!(8&u[a]);){if(a===r)return i+=e.source.slice(s,e.index),n(e),e.options.raw&&(e.tokenRaw=e.source.slice(o,e.index)),e.tokenValue=i,134283267;if(8&~a||92!==a)8232!==a&&8233!==a||(e.column=-1,e.line++);else{if(i+=e.source.slice(s,e.index),a=n(e),a<127||8232===a||8233===a){const r=S(e,t,a);r>=0?i+=String.fromCodePoint(r):v(e,r,0)}else i+=String.fromCodePoint(a);s=e.index+1}e.index>=e.end&&e.report(16),a=n(e)}e.report(16)}function S(e,t,r,o=0){switch(r){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:t}{if(!(64&u[t]))return-4;const r=e.source.charCodeAt(e.index+1);if(!(64&u[r]))return-4;const n=e.source.charCodeAt(e.index+2);if(!(64&u[n]))return-4;const o=e.source.charCodeAt(e.index+3);return 64&u[o]?(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),c(t)<<12|c(r)<<8|c(n)<<4|c(o)):-4}}case 56:case 57:if(o||!e.options.webcompat||1&t)return-3;e.flags|=4096;default:return r}}function v(e,t,r){switch(t){case-1:return;case-2:e.report(r?2:1);case-3:e.report(r?3:14);case-4:e.report(7);case-5:e.report(104)}}function C(e,t){const{index:r}=e;let o=67174409,i="",a=n(e);for(;96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){n(e),o=67174408;break}if(92===a)if(a=n(e),a>126)i+=String.fromCodePoint(a);else{const{index:r,line:n,column:s}=e,c=S(e,1|t,a,1);if(c>=0)i+=String.fromCodePoint(c);else{if(-1!==c&&64&t){e.index=r,e.line=n,e.column=s,i=null,a=E(e,a),a<0&&(o=67174408);break}v(e,c,1)}}else e.index=e.end&&e.report(17),a=n(e)}return n(e),e.tokenValue=i,e.tokenRaw=e.source.slice(r+1,e.index-(67174409===o?1:2)),o}function E(e,t){for(;96!==t;){switch(t){case 36:{const r=e.index+1;if(r=e.end&&e.report(17),t=n(e)}return t}function q(e,t){return e.index>=e.end&&e.report(0),e.index--,e.column--,C(e,t)}!function(e){e[e.Empty=0]="Empty",e[e.Escape=1]="Escape",e[e.Class=2]="Class"}(w||(w={})),function(e){e[e.Empty=0]="Empty",e[e.IgnoreCase=1]="IgnoreCase",e[e.Global=2]="Global",e[e.Multiline=4]="Multiline",e[e.Unicode=16]="Unicode",e[e.Sticky=8]="Sticky",e[e.DotAll=32]="DotAll",e[e.Indices=64]="Indices",e[e.UnicodeSets=128]="UnicodeSets"}(y||(y={}));const N={0:"Unexpected token",30:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"\\8 and \\9 are not allowed in template strings",4:"Private identifier #%0 is not defined",5:"Illegal Unicode escape sequence",6:"Invalid code point %0",7:"Invalid hexadecimal escape sequence",9:"Octal literals are not allowed in strict mode",8:"Decimal integer literals with a leading zero are forbidden in strict mode",10:"Expected number in radix %0",151:"Invalid left-hand side assignment to a destructible right-hand side",11:"Non-number found after exponent indicator",12:"Invalid BigIntLiteral",13:"No identifiers allowed directly after numeric literal",14:"Escapes \\8 or \\9 are not syntactically valid escapes",15:"Escapes \\8 or \\9 are not allowed in strict mode",16:"Unterminated string literal",17:"Unterminated template literal",18:"Multiline comment was not closed properly",19:"The identifier contained dynamic unicode escape that was not closed",20:"Illegal character '%0'",21:"Missing hexadecimal digits",22:"Invalid implicit octal",23:"Invalid line break in string literal",24:"Only unicode escapes are legal in identifier names",25:"Expected '%0'",26:"Invalid left-hand side in assignment",27:"Invalid left-hand side in async arrow",28:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',29:"Member access on super must be in a method",31:"Await expression not allowed in formal parameter",32:"Yield expression not allowed in formal parameter",95:"Unexpected token: 'escaped keyword'",33:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",123:"Async functions can only be declared at the top level or inside a block",34:"Unterminated regular expression",35:"Unexpected regular expression flag",36:"Duplicate regular expression flag '%0'",37:"%0 functions must have exactly %1 argument%2",38:"Setter function argument must not be a rest parameter",39:"%0 declaration must have a name in this context",40:"Function name may not contain any reserved words or be eval or arguments in strict mode",41:"The rest operator is missing an argument",42:"A getter cannot be a generator",43:"A setter cannot be a generator",44:"A computed property name must be followed by a colon or paren",134:"Object literal keys that are strings or numbers must be a method or have a colon",46:"Found `* async x(){}` but this should be `async * x(){}`",45:"Getters and setters can not be generators",47:"'%0' can not be generator method",48:"No line break is allowed after '=>'",49:"The left-hand side of the arrow can only be destructed through assignment",50:"The binding declaration is not destructible",51:"Async arrow can not be followed by new expression",52:"Classes may not have a static property named 'prototype'",53:"Class constructor may not be a %0",54:"Duplicate constructor method in class",55:"Invalid increment/decrement operand",56:"Invalid use of `new` keyword on an increment/decrement expression",57:"`=>` is an invalid assignment target",58:"Rest element may not have a trailing comma",59:"Missing initializer in %0 declaration",60:"'for-%0' loop head declarations can not have an initializer",61:"Invalid left-hand side in for-%0 loop: Must have a single binding",62:"Invalid shorthand property initializer",63:"Property name __proto__ appears more than once in object literal",64:"Let is disallowed as a lexically bound name",65:"Invalid use of '%0' inside new expression",66:"Illegal 'use strict' directive in function with non-simple parameter list",67:'Identifier "let" disallowed as left-hand side expression in strict mode',68:"Illegal continue statement",69:"Illegal break statement",70:"Cannot have `let[...]` as a var name in strict mode",71:"Invalid destructuring assignment target",72:"Rest parameter may not have a default initializer",73:"The rest argument must the be last parameter",74:"Invalid rest argument",76:"In strict mode code, functions can only be declared at top level or inside a block",77:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",78:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",79:"Class declaration can't appear in single-statement context",80:"Invalid left-hand side in for-%0",81:"Invalid assignment in for-%0",82:"for await (... of ...) is only valid in async functions and async generators",83:"The first token after the template expression should be a continuation of the template",85:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",84:"`let \n [` is a restricted production at the start of a statement",86:"Catch clause requires exactly one parameter, not more (and no trailing comma)",87:"Catch clause parameter does not support default values",88:"Missing catch or finally after try",89:"More than one default clause in switch statement",90:"Illegal newline after throw",91:"Strict mode code may not include a with statement",92:"Illegal return statement",93:"The left hand side of the for-header binding declaration is not destructible",94:"new.target only allowed within functions or static blocks",96:"'#' not followed by identifier",102:"Invalid keyword",101:"Can not use 'let' as a class name",100:"'A lexical declaration can't define a 'let' binding",99:"Can not use `let` as variable name in strict mode",97:"'%0' may not be used as an identifier in this context",98:"Await is only valid in async functions",103:"The %0 keyword can only be used with the module goal",104:"Unicode codepoint must not be greater than 0x10FFFF",105:"%0 source must be string",106:"Only a identifier or string can be used to indicate alias",107:"Only '*' or '{...}' can be imported after default",108:"Trailing decorator may be followed by method",109:"Decorators can't be used with a constructor",110:"Can not use `await` as identifier in module or async func",111:"Can not use `await` as identifier in module",112:"HTML comments are only allowed with web compatibility (Annex B)",113:"The identifier 'let' must not be in expression position in strict mode",114:"Cannot assign to `eval` and `arguments` in strict mode",115:"The left-hand side of a for-of loop may not start with 'let'",116:"Block body arrows can not be immediately invoked without a group",117:"Block body arrows can not be immediately accessed without a group",118:"Unexpected strict mode reserved word",119:"Unexpected eval or arguments in strict mode",120:"Decorators must not be followed by a semicolon",121:"Calling delete on expression not allowed in strict mode",122:"Pattern can not have a tail",124:"Can not have a `yield` expression on the left side of a ternary",125:"An arrow function can not have a postfix update operator",126:"Invalid object literal key character after generator star",127:"Private fields can not be deleted",129:"Classes may not have a field called constructor",128:"Classes may not have a private element named constructor",130:"A class field initializer or static block may not contain arguments",131:"Generators can only be declared at the top level or inside a block",132:"Async methods are a restricted production and cannot have a newline following it",133:"Unexpected character after object literal property name",135:"Invalid key token",136:"Label '%0' has already been declared",137:"continue statement must be nested within an iteration statement",138:"Undefined label '%0'",139:"Trailing comma is disallowed inside import(...) arguments",140:"Invalid binding in JSON import",141:"import() requires exactly one argument",142:"Cannot use new with import(...)",143:"... is not allowed in import()",144:"Expected '=>'",145:"Duplicate binding '%0'",146:"Duplicate private identifier #%0",147:"Cannot export a duplicate name '%0'",150:"Duplicate %0 for-binding",148:"Exported binding '%0' needs to refer to a top-level declared variable",149:"Unexpected private field",153:"Numeric separators are not allowed at the end of numeric literals",152:"Only one underscore is allowed as numeric separator",154:"JSX value should be either an expression or a quoted JSX text",155:"Expected corresponding JSX closing tag for %0",156:"Adjacent JSX elements must be wrapped in an enclosing tag",157:"JSX attributes must only be assigned a non-empty 'expression'",158:"'%0' has already been declared",159:"'%0' shadowed a catch clause binding",160:"Dot property must be an identifier",161:"Encountered invalid input after spread/rest argument",162:"Catch without try",163:"Finally without try",164:"Expected corresponding closing tag for JSX fragment",165:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",166:"Invalid tagged template on optional chain",167:"Invalid optional chain from super property",168:"Invalid optional chain from new expression",169:'Cannot use "import.meta" outside a module',170:"Leading decorators must be attached to a class declaration",171:"An export name cannot include a lone surrogate, found %0",172:"A string literal cannot be used as an exported binding without `from`",173:"Private fields can't be accessed on super",174:"The only valid meta property for import is 'import.meta'",175:"'import.meta' must not contain escaped characters",176:'cannot use "await" as identifier inside an async function',177:'cannot use "await" in static blocks'};class L extends SyntaxError{start;end;range;loc;description;constructor(e,t,r,...n){const o=N[r].replace(/%(\d+)/g,(e,t)=>n[t]);super("["+e.line+":"+e.column+"-"+t.line+":"+t.column+"]: "+o),this.start=e.index,this.end=t.index,this.range=[e.index,t.index],this.loc={start:{line:e.line,column:e.column},end:{line:t.line,column:t.column}},this.description=o}}function A(e,t,r){let o=e.currentChar,i=0,a=9,s=64&r?0:1,l=0,p=0;if(64&r)i="."+I(e,o),o=e.currentChar,110===o&&e.report(12);else{if(48===o)if(o=n(e),120==(32|o)){for(r=136,o=n(e);4160&u[o];)95!==o?(p=1,i=16*i+c(o),l++,o=n(e)):(p||e.report(152),p=0,o=n(e));0!==l&&p||e.report(0===l?21:153)}else if(111==(32|o)){for(r=132,o=n(e);4128&u[o];)95!==o?(p=1,i=8*i+(o-48),l++,o=n(e)):(p||e.report(152),p=0,o=n(e));0!==l&&p||e.report(0===l?0:153)}else if(98==(32|o)){for(r=130,o=n(e);4224&u[o];)95!==o?(p=1,i=2*i+(o-48),l++,o=n(e)):(p||e.report(152),p=0,o=n(e));0!==l&&p||e.report(0===l?0:153)}else if(32&u[o])for(1&t&&e.report(1),r=1;16&u[o];){if(512&u[o]){r=32,s=0;break}i=8*i+(o-48),o=n(e)}else 512&u[o]?(1&t&&e.report(1),e.flags|=64,r=32):95===o&&e.report(0);if(48&r){if(s){for(;a>=0&&4112&u[o];)if(95!==o)p=0,i=10*i+(o-48),o=n(e),--a;else{if(o=n(e),95===o||32&r)throw new L(e.currentLocation,{index:e.index+1,line:e.line,column:e.column},152);p=1}if(p)throw new L(e.currentLocation,{index:e.index+1,line:e.line,column:e.column},153);if(a>=0&&!g(o)&&46!==o)return e.tokenValue=i,e.options.raw&&(e.tokenRaw=e.source.slice(e.tokenIndex,e.index)),134283266}i+=I(e,o),o=e.currentChar,46===o&&(95===n(e)&&e.report(0),r=64,i+="."+I(e,e.currentChar),o=e.currentChar)}}const d=e.index;let f=0;if(110===o&&128&r)f=1,o=n(e);else if(101==(32|o)){o=n(e),256&u[o]&&(o=n(e));const{index:t}=e;16&u[o]||e.report(11),i+=e.source.substring(d,t)+I(e,o),o=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","accessor","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],V={this:86111,function:86104,if:20569,return:20572,var:86088,else:20563,for:20567,new:86107,in:8673330,typeof:16863275,while:20578,case:20556,break:20555,try:20577,catch:20557,delete:16863276,throw:86112,switch:86110,continue:20559,default:20561,instanceof:8411187,do:20562,void:16863277,finally:20566,async:209005,await:209006,class:86094,const:86090,constructor:12399,debugger:20560,export:20564,extends:20565,false:86021,from:209011,get:209008,implements:36964,import:86106,interface:36965,let:241737,null:86023,of:471156,package:36966,private:36967,protected:36968,public:36969,set:209009,static:36970,super:86109,true:86022,with:20579,yield:241771,enum:86133,eval:537079926,as:77932,arguments:537079927,target:209029,meta:209030,accessor:12402};function P(e,t){!(1&e.flags)&&1048576&~e.getToken()&&e.report(30,D[255&e.getToken()]),U(e,t,1074790417)||e.options.onInsertedSemicolon?.(e.startIndex)}function R(e,t,r,n){return t-r<13&&"use strict"===n&&(!(1048576&~e.getToken())||1&e.flags)?1:0}function B(e,t,r){return e.getToken()!==r?0:(ee(e,t),1)}function U(e,t,r){return e.getToken()===r&&(ee(e,t),!0)}function O(e,t,r){e.getToken()!==r&&e.report(25,D[255&r]),ee(e,t)}function M(e,t){switch(t.type){case"ArrayExpression":{t.type="ArrayPattern";const{elements:r}=t;for(let t=0,n=r.length;t0)f(t)||e.report(20,String.fromCodePoint(t)),e.currentChar=t,e.index++,e.column++;else if(!f(e.currentChar))break;n(e)}e.index<=e.end&&(e.tokenValue+=e.source.slice(a,e.index));const{length:s}=e.tokenValue;if(i&&s>=2&&s<=11){const n=$(V,e.tokenValue);return void 0===n?208897|(r?-2147483648:0):r?209006===n?2050&t?-2147483528:-2147483648|n:1&t?36970===n?-2147483527:36864&~n?20480&~n?-2147274630:262144&t&&!(8&t)?-2147483648|n:-2147483528:-2147483527:!(262144&t)||8&t||20480&~n?241771===n?262144&t?-2147274630:1024&t?-2147483528:-2147483648|n:209005===n?-2147274630:36864&~n?-2147483528:12288|n|-2147483648:-2147483648|n:n}return 208897|(r?-2147483648:0)}function Z(e){let t=n(e);if(92===t)return 130;const r=o(e);return r&&(t=r),g(t)||e.report(96),130}function K(e){return 117!==e.source.charCodeAt(e.index+1)&&e.report(5),e.currentChar=e.source.charCodeAt(e.index+=2),e.column+=2,function(e){let t=0;const r=e.currentChar;if(123===r){const r=e.index-2;for(;64&u[n(e)];)if(t=t<<4|c(e.currentChar),t>1114111)throw new L({index:r,line:e.line,column:e.column},e.currentLocation,104);if(125!==e.currentChar)throw new L({index:r,line:e.line,column:e.column},e.currentLocation,7);return n(e),t}64&u[r]||e.report(7);const o=e.source.charCodeAt(e.index+1);64&u[o]||e.report(7);const i=e.source.charCodeAt(e.index+2);64&u[i]||e.report(7);const a=e.source.charCodeAt(e.index+3);64&u[a]||e.report(7);return t=c(r)<<12|c(o)<<8|c(i)<<4|c(a),e.currentChar=e.source.charCodeAt(e.index+=4),e.column+=4,t}(e)}const Q=[128,128,128,128,128,128,128,128,128,127,135,127,127,129,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,127,16842798,134283267,130,208897,8391477,8390213,134283267,67174411,16,8391476,25233968,18,25233969,67108877,8457014,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456256,1077936155,8390721,22,132,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,136,20,8389959,208897,131,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8389702,1074790415,16842799,128];function ee(e,t){e.flags=1^(1|e.flags),e.startIndex=e.index,e.startColumn=e.column,e.startLine=e.line,e.setToken(te(e,t,0))}function te(e,t,c){const l=0===e.index,{source:u}=e;let p=e.currentLocation;for(;e.index=e.end)return 8391476;const t=e.currentChar;return 61===t?(n(e),4194338):42!==t?8391476:61!==n(e)?8391735:(n(e),4194335)}case 8389959:return 61!==n(e)?8389959:(n(e),4194341);case 25233968:{n(e);const t=e.currentChar;return 43===t?(n(e),33619993):61===t?(n(e),4194336):25233968}case 25233969:{n(e);const r=e.currentChar;if(45===r){if(n(e),(1&c||l)&&62===e.currentChar){e.options.webcompat||e.report(112),n(e),c=k(e,u,c,t,3,p),p=e.tokenStart;continue}return 33619994}return 61===r?(n(e),4194337):25233969}case 8457014:if(n(e),e.index=48&&r<=57)return A(e,t,80);if(46===r){const t=e.index+1;if(t=48&&t<=57)))return n(e),67108990}return 22}}}else{if((8232^d)<=1){c=-5&c|1,a(e);continue}const i=o(e);if(i>0&&(d=i),r(d))return e.tokenValue="",Y(e,t,0,0);if(s(d)){n(e);continue}e.report(20,String.fromCodePoint(d))}}return 1048576}const re={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},ne={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function oe(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,e=>{if("#"===e.charAt(1)){const t=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";return String.fromCodePoint($(ne,e)??e)}("X"===t||"x"===t?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return $(re,e.slice(1,-1))??e})}function ie(e,t){return e.startIndex=e.tokenIndex=e.index,e.startColumn=e.tokenColumn=e.column,e.startLine=e.tokenLine=e.line,e.setToken(8192&u[e.currentChar]?function(e){const t=e.currentChar;let r=n(e);const o=e.index;for(;r!==t;)e.index>=e.end&&e.report(16),r=n(e);r!==t&&e.report(16);e.tokenValue=e.source.slice(o,e.index),n(e),e.options.raw&&(e.tokenRaw=e.source.slice(e.tokenIndex,e.index));return 134283267}(e):te(e,t,0)),e.getToken()}function ae(e){if(e.startIndex=e.tokenIndex=e.index,e.startColumn=e.tokenColumn=e.column,e.startLine=e.tokenLine=e.line,e.index>=e.end)return void e.setToken(1048576);if(60===e.currentChar)return n(e),void e.setToken(8456256);if(123===e.currentChar)return n(e),void e.setToken(2162700);let t=0;for(;e.indexe.declareUnboundVariable(t))):(c&&e.report(172),r&&(n.forEach(t=>e.declareUnboundVariable(t)),i.forEach(t=>e.addBindingToExports(t)))),P(e,32|t);break}case 132:case 86094:i=yt(e,t,r,void 0,2);break;case 86104:i=ot(e,t,r,void 0,4,1,2,0,e.tokenStart);break;case 241737:i=Se(e,t,r,void 0,8,64);break;case 86090:i=Se(e,t,r,void 0,16,64);break;case 86088:i=ve(e,t,r,void 0,64);break;case 209005:{const{tokenStart:n}=e;if(ee(e,t),!(1&e.flags)&&86104===e.getToken()){i=ot(e,t,r,void 0,4,1,2,1,n);break}}default:e.report(30,D[255&e.getToken()])}const c={type:"ExportNamedDeclaration",declaration:i,specifiers:o,source:a,attributes:s};return e.finishNode(c,n)}(e,t,r);break;case 86106:n=function(e,t,r){const n=e.tokenStart;ee(e,t);let o=null;const{tokenStart:i}=e;let a=[];if(134283267===e.getToken())o=nt(e,t);else{if(143360&e.getToken()){const n=qe(e,t,r);if(a=[e.finishNode({type:"ImportDefaultSpecifier",local:n},i)],U(e,t,18))switch(e.getToken()){case 8391476:a.push(Ne(e,t,r));break;case 2162700:Le(e,t,r,a);break;default:e.report(107)}}else switch(e.getToken()){case 8391476:a=[Ne(e,t,r)];break;case 2162700:Le(e,t,r,a);break;case 67174411:return Ie(e,t,void 0,n);case 67108877:return Ae(e,t,n);default:e.report(30,D[255&e.getToken()])}o=function(e,t){O(e,t,209011),134283267!==e.getToken()&&e.report(105,"Import");return nt(e,t)}(e,t)}const s=Xe(e,t),c={type:"ImportDeclaration",specifiers:a,source:o,attributes:s};return P(e,32|t),e.finishNode(c,n)}(e,t,r);break;default:n=fe(e,t,r,void 0,4,{})}return e.leadingDecorators?.decorators.length&&e.report(170),n}function fe(e,t,r,n,o,i){const a=e.tokenStart;switch(e.getToken()){case 86104:return ot(e,t,r,n,o,1,0,0,a);case 132:case 86094:return yt(e,t,r,n,0);case 86090:return Se(e,t,r,n,16,0);case 241737:return function(e,t,r,n,o){const{tokenValue:i,tokenStart:a}=e,s=e.getToken();let c=rt(e,t);if(2240512&e.getToken()){const o=Ce(e,t,r,n,8,0);return P(e,32|t),e.finishNode({type:"VariableDeclaration",kind:"let",declarations:o},a)}e.assignable=1,1&t&&e.report(85);if(21===e.getToken())return be(e,t,r,n,o,{},i,c,s,0,a);if(10===e.getToken()){let r;e.options.lexical&&(r=le(e,t,i)),e.flags=128^(128|e.flags),c=ht(e,t,r,n,[c],0,a)}else c=Fe(e,t,n,c,0,0,a),c=Re(e,t,n,0,0,a,c);18===e.getToken()&&(c=Ve(e,t,n,0,a,c));return me(e,t,c,a)}(e,t,r,n,o);case 20564:e.report(103,"export");case 86106:switch(ee(e,t),e.getToken()){case 67174411:return Ie(e,t,n,a);case 67108877:return Ae(e,t,a);default:e.report(103,"import")}case 209005:return we(e,t,r,n,o,i,1);default:return he(e,t,r,n,o,i,1)}}function he(e,t,r,n,o,i,a){switch(e.getToken()){case 86088:return ve(e,t,r,n,0);case 20572:return function(e,t,r){4096&t||e.report(92);const n=e.tokenStart;ee(e,32|t);const o=1&e.flags||1048576&e.getToken()?null:Pe(e,t,r,0,1,e.tokenStart);return P(e,32|t),e.finishNode({type:"ReturnStatement",argument:o},n)}(e,t,n);case 20569:return function(e,t,r,n,o){const i=e.tokenStart;ee(e,t),O(e,32|t,67174411),e.assignable=1;const a=Pe(e,t,n,0,1,e.tokenStart);O(e,32|t,16);const s=Te(e,t,r,n,o);let c=null;20563===e.getToken()&&(ee(e,32|t),c=Te(e,t,r,n,o));return e.finishNode({type:"IfStatement",test:a,consequent:s,alternate:c},i)}(e,t,r,n,i);case 20567:return function(e,t,r,n,o){const i=e.tokenStart;ee(e,t);const a=((2048&t)>0||(2&t)>0&&(8&t)>0)&&U(e,t,209006);O(e,32|t,67174411),r=r?.createChildScope(1);let s,c=null,l=null,u=0,p=null,d=86088===e.getToken()||241737===e.getToken()||86090===e.getToken();const{tokenStart:g}=e,f=e.getToken();if(d)241737===f?(p=rt(e,t),2240512&e.getToken()?(8673330===e.getToken()?1&t&&e.report(67):p=e.finishNode({type:"VariableDeclaration",kind:"let",declarations:Ce(e,131072|t,r,n,8,32)},g),e.assignable=1):1&t?e.report(67):(d=!1,e.assignable=1,p=Fe(e,t,n,p,0,0,g),471156===e.getToken()&&e.report(115))):(ee(e,t),p=e.finishNode(86088===f?{type:"VariableDeclaration",kind:"var",declarations:Ce(e,131072|t,r,n,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:Ce(e,131072|t,r,n,16,32)},g),e.assignable=1);else if(1074790417===f)a&&e.report(82);else if(2097152&~f)p=je(e,131072|t,n,1,0,1);else{const r=e.tokenStart;p=2162700===f?ut(e,t,void 0,n,1,0,0,2,32):at(e,t,void 0,n,1,0,0,2,32),u=e.destructible,64&u&&e.report(63),e.assignable=16&u?2:1,p=Fe(e,131072|t,n,p,0,0,r)}if(!(262144&~e.getToken())){if(471156===e.getToken()){2&e.assignable&&e.report(80,a?"await":"of"),M(e,p),ee(e,32|t),s=De(e,t,n,1,0,e.tokenStart),O(e,32|t,16);const c=xe(e,t,r,n,o);return e.finishNode({type:"ForOfStatement",left:p,right:s,body:c,await:a},i)}2&e.assignable&&e.report(80,"in"),M(e,p),ee(e,32|t),a&&e.report(82),s=Pe(e,t,n,0,1,e.tokenStart),O(e,32|t,16);const c=xe(e,t,r,n,o);return e.finishNode({type:"ForInStatement",body:c,left:p,right:s},i)}a&&e.report(82);d||(8&u&&1077936155!==e.getToken()&&e.report(80,"loop"),p=Re(e,131072|t,n,0,0,g,p));18===e.getToken()&&(p=Ve(e,t,n,0,g,p));O(e,32|t,1074790417),1074790417!==e.getToken()&&(c=Pe(e,t,n,0,1,e.tokenStart));O(e,32|t,1074790417),16!==e.getToken()&&(l=Pe(e,t,n,0,1,e.tokenStart));O(e,32|t,16);const h=xe(e,t,r,n,o);return e.finishNode({type:"ForStatement",init:p,test:c,update:l,body:h},i)}(e,t,r,n,i);case 20562:return function(e,t,r,n,o){const i=e.tokenStart;ee(e,32|t);const a=xe(e,t,r,n,o);O(e,t,20578),O(e,32|t,67174411);const s=Pe(e,t,n,0,1,e.tokenStart);return O(e,32|t,16),U(e,32|t,1074790417),e.finishNode({type:"DoWhileStatement",body:a,test:s},i)}(e,t,r,n,i);case 20578:return function(e,t,r,n,o){const i=e.tokenStart;ee(e,t),O(e,32|t,67174411);const a=Pe(e,t,n,0,1,e.tokenStart);O(e,32|t,16);const s=xe(e,t,r,n,o);return e.finishNode({type:"WhileStatement",test:a,body:s},i)}(e,t,r,n,i);case 86110:return function(e,t,r,n,o){const i=e.tokenStart;ee(e,t),O(e,32|t,67174411);const a=Pe(e,t,n,0,1,e.tokenStart);O(e,t,16),O(e,t,2162700);const s=[];let c=0;r=r?.createChildScope(8);for(;1074790415!==e.getToken();){const{tokenStart:i}=e;let a=null;const l=[];for(U(e,32|t,20556)?a=Pe(e,t,n,0,1,e.tokenStart):(O(e,32|t,20561),c&&e.report(89),c=1),O(e,32|t,21);20556!==e.getToken()&&1074790415!==e.getToken()&&20561!==e.getToken();)l.push(fe(e,4|t,r,n,2,{$:o}));s.push(e.finishNode({type:"SwitchCase",test:a,consequent:l},i))}return O(e,32|t,1074790415),e.finishNode({type:"SwitchStatement",discriminant:a,cases:s},i)}(e,t,r,n,i);case 1074790417:return function(e,t){const r=e.tokenStart;return ee(e,32|t),e.finishNode({type:"EmptyStatement"},r)}(e,t);case 2162700:return ke(e,t,r?.createChildScope(),n,i,e.tokenStart);case 86112:return function(e,t,r){const n=e.tokenStart;ee(e,32|t),1&e.flags&&e.report(90);const o=Pe(e,t,r,0,1,e.tokenStart);return P(e,32|t),e.finishNode({type:"ThrowStatement",argument:o},n)}(e,t,n);case 20555:return function(e,t,r){const n=e.tokenStart;ee(e,32|t);let o=null;if(!(1&e.flags)&&143360&e.getToken()){const{tokenValue:n}=e;o=rt(e,32|t),J(e,r,n,0)||e.report(138,n)}else 132&t||e.report(69);return P(e,32|t),e.finishNode({type:"BreakStatement",label:o},n)}(e,t,i);case 20559:return function(e,t,r){128&t||e.report(68);const n=e.tokenStart;ee(e,t);let o=null;if(!(1&e.flags)&&143360&e.getToken()){const{tokenValue:n}=e;o=rt(e,32|t),J(e,r,n,1)||e.report(138,n)}return P(e,32|t),e.finishNode({type:"ContinueStatement",label:o},n)}(e,t,i);case 20577:return function(e,t,r,n,o){const i=e.tokenStart;ee(e,32|t);const a=r?.createChildScope(16),s=ke(e,t,a,n,{$:o}),{tokenStart:c}=e,l=U(e,32|t,20557)?function(e,t,r,n,o,i){let a=null,s=r;U(e,t,67174411)&&(r=r?.createChildScope(4),a=qt(e,t,r,n,2097152&~e.getToken()?512:256,0),18===e.getToken()?e.report(86):1077936155===e.getToken()&&e.report(87),O(e,32|t,16));s=r?.createChildScope(32);const c=ke(e,t,s,n,{$:o});return e.finishNode({type:"CatchClause",param:a,body:c},i)}(e,t,r,n,o,c):null;let u=null;if(20566===e.getToken()){ee(e,32|t);const i=r?.createChildScope(4);u=ke(e,t,i,n,{$:o})}l||u||e.report(88);return e.finishNode({type:"TryStatement",block:s,handler:l,finalizer:u},i)}(e,t,r,n,i);case 20579:return function(e,t,r,n,o){const i=e.tokenStart;ee(e,t),1&t&&e.report(91);O(e,32|t,67174411);const a=Pe(e,t,n,0,1,e.tokenStart);O(e,32|t,16);const s=he(e,t,r,n,2,o,0);return e.finishNode({type:"WithStatement",object:a,body:s},i)}(e,t,r,n,i);case 20560:return function(e,t){const r=e.tokenStart;return ee(e,32|t),P(e,32|t),e.finishNode({type:"DebuggerStatement"},r)}(e,t);case 209005:return we(e,t,r,n,o,i,0);case 20557:e.report(162);case 20566:e.report(163);case 86104:e.report(1&t?76:e.options.webcompat?77:78);case 86094:e.report(79);default:return function(e,t,r,n,o,i,a){const{tokenValue:s,tokenStart:c}=e,l=e.getToken();let u;if(241737===l)u=rt(e,t),1&t&&e.report(85),69271571===e.getToken()&&e.report(84);else u=Je(e,t,n,2,0,1,0,1,e.tokenStart);if(143360&l&&21===e.getToken())return be(e,t,r,n,o,i,s,u,l,a,c);u=Fe(e,t,n,u,0,0,c),u=Re(e,t,n,0,0,c,u),18===e.getToken()&&(u=Ve(e,t,n,0,c,u));return me(e,t,u,c)}(e,t,r,n,o,i,a)}}function ke(e,t,r,n,o,i=e.tokenStart,a="BlockStatement"){const s=[];for(O(e,32|t,2162700);1074790415!==e.getToken();)s.push(fe(e,t,r,n,2,{$:o}));return O(e,32|t,1074790415),e.finishNode({type:a,body:s},i)}function me(e,t,r,n){return P(e,32|t),e.finishNode({type:"ExpressionStatement",expression:r},n)}function be(e,t,r,n,o,i,a,s,c,l,u){j(e,t,0,c,1),function(e,t,r){let n=t;for(;n;)n["$"+r]&&e.report(136,r),n=n.$;t["$"+r]=1}(e,i,a),ee(e,32|t);const p=!l||1&t||!e.options.webcompat||86104!==e.getToken()?he(e,t,r,n,o,i,l):ot(e,t,r?.createChildScope(),n,o,0,0,0,e.tokenStart);return e.finishNode({type:"LabeledStatement",label:s,body:p},u)}function we(e,t,r,n,o,i,a){const{tokenValue:s,tokenStart:c}=e,l=e.getToken();let u=rt(e,t);if(21===e.getToken())return be(e,t,r,n,o,i,s,u,l,1,c);const p=1&e.flags;if(!p){if(86104===e.getToken())return a||e.report(123),ot(e,t,r,n,o,1,0,1,c);if(H(t,e.getToken()))return u=bt(e,t,n,1,c),18===e.getToken()&&(u=Ve(e,t,n,0,c,u)),me(e,t,u,c)}return 67174411===e.getToken()?u=wt(e,t,n,u,1,1,0,p,c):(10===e.getToken()&&(X(e,t,l),36864&~l||(e.flags|=256),u=gt(e,2048|t,n,e.tokenValue,u,0,1,0,c)),e.assignable=1),u=Fe(e,t,n,u,0,0,c),u=Re(e,t,n,0,0,c,u),e.assignable=1,18===e.getToken()&&(u=Ve(e,t,n,0,c,u)),me(e,t,u,c)}function ye(e,t,r,n,o){const i=e.startIndex;1074790417!==n&&(e.assignable=2,r=Fe(e,t,void 0,r,0,0,o),1074790417!==e.getToken()&&(r=Re(e,t,void 0,0,0,o,r),18===e.getToken()&&(r=Ve(e,t,void 0,0,o,r))),P(e,32|t));const a={type:"ExpressionStatement",expression:r};return"Literal"===r.type&&"string"==typeof r.value&&(a.directive=e.source.slice(o.index+1,i-1)),e.finishNode(a,o)}function Te(e,t,r,n,o){const{tokenStart:i}=e;return 1&t||!e.options.webcompat||86104!==e.getToken()?he(e,t,r,n,0,{$:o},0):ot(e,t,r?.createChildScope(),n,0,0,0,0,i)}function xe(e,t,r,n,o){return he(e,131072^(131072|t)|128,r,n,0,{loop:1,$:o},0)}function Se(e,t,r,n,o,i){const a=e.tokenStart;ee(e,t);const s=Ce(e,t,r,n,o,i);return P(e,32|t),e.finishNode({type:"VariableDeclaration",kind:8&o?"let":"const",declarations:s},a)}function ve(e,t,r,n,o){const i=e.tokenStart;ee(e,t);const a=Ce(e,t,r,n,4,o);return P(e,32|t),e.finishNode({type:"VariableDeclaration",kind:"var",declarations:a},i)}function Ce(e,t,r,n,o,i){let a=1;const s=[Ee(e,t,r,n,o,i)];for(;U(e,t,18);)a++,s.push(Ee(e,t,r,n,o,i));return a>1&&32&i&&262144&e.getToken()&&e.report(61,D[255&e.getToken()]),s}function Ee(e,t,r,n,o,i){const{tokenStart:a}=e,s=e.getToken();let c=null;const l=qt(e,t,r,n,o,i);if(1077936155===e.getToken()){if(ee(e,32|t),c=De(e,t,n,1,0,e.tokenStart),(32&i||!(2097152&s))&&(471156===e.getToken()||8673330===e.getToken()&&(2097152&s||!(4&o)||1&t)))throw new L(a,e.currentLocation,60,471156===e.getToken()?"of":"in")}else(16&o||(2097152&s)>0)&&262144&~e.getToken()&&e.report(59,16&o?"const":"destructuring");return e.finishNode({type:"VariableDeclarator",id:l,init:c},a)}function qe(e,t,r){return H(t,e.getToken())||e.report(118),537079808&~e.getToken()||e.report(119),r?.addBlockName(t,e.tokenValue,8,0),rt(e,t)}function Ne(e,t,r){const{tokenStart:n}=e;if(ee(e,t),O(e,t,77932),!(134217728&~e.getToken()))throw new L(n,e.currentLocation,30,D[255&e.getToken()]);return e.finishNode({type:"ImportNamespaceSpecifier",local:qe(e,t,r)},n)}function Le(e,t,r,n){for(ee(e,t);143360&e.getToken()||134283267===e.getToken();){let{tokenValue:o,tokenStart:i}=e;const a=e.getToken(),s=_e(e,t);let c;U(e,t,77932)?(134217728&~e.getToken()&&18!==e.getToken()?j(e,t,16,e.getToken(),0):e.report(106),o=e.tokenValue,c=rt(e,t)):"Identifier"===s.type?(j(e,t,16,a,0),c=s):e.report(25,D[108]),r?.addBlockName(t,o,8,0),n.push(e.finishNode({type:"ImportSpecifier",local:c,imported:s},i)),1074790415!==e.getToken()&&O(e,t,18)}return O(e,t,1074790415),n}function Ae(e,t,r){let n=ze(e,t,e.finishNode({type:"Identifier",name:"import"},r),r);return n=Fe(e,t,void 0,n,0,0,r),n=Re(e,t,void 0,0,0,r,n),18===e.getToken()&&(n=Ve(e,t,void 0,0,r,n)),me(e,t,n,r)}function Ie(e,t,r,n){let o=He(e,t,r,0,n);return o=Fe(e,t,r,o,0,0,n),18===e.getToken()&&(o=Ve(e,t,r,0,n,o)),me(e,t,o,n)}function De(e,t,r,n,o,i){let a=Je(e,t,r,2,0,n,o,1,i);return a=Fe(e,t,r,a,o,0,i),Re(e,t,r,o,0,i,a)}function Ve(e,t,r,n,o,i){const a=[i];for(;U(e,32|t,18);)a.push(De(e,t,r,1,n,e.tokenStart));return e.finishNode({type:"SequenceExpression",expressions:a},o)}function Pe(e,t,r,n,o,i){const a=De(e,t,r,o,n,i);return 18===e.getToken()?Ve(e,t,r,n,i,a):a}function Re(e,t,r,n,o,i,a){const s=e.getToken();if(!(4194304&~s)){2&e.assignable&&e.report(26),(!o&&1077936155===s&&"ArrayExpression"===a.type||"ObjectExpression"===a.type)&&M(e,a),ee(e,32|t);const c=De(e,t,r,1,n,e.tokenStart);return e.assignable=2,e.finishNode(o?{type:"AssignmentPattern",left:a,right:c}:{type:"AssignmentExpression",left:a,operator:D[255&s],right:c},i)}return 8388608&~s||(a=Oe(e,t,r,n,i,4,s,a)),U(e,32|t,22)&&(a=Ue(e,t,r,a,i)),a}function Be(e,t,r,n,o,i,a){const s=e.getToken();ee(e,32|t);const c=De(e,t,r,1,n,e.tokenStart);return a=e.finishNode(o?{type:"AssignmentPattern",left:a,right:c}:{type:"AssignmentExpression",left:a,operator:D[255&s],right:c},i),e.assignable=2,a}function Ue(e,t,r,n,o){const i=De(e,131072^(131072|t),r,1,0,e.tokenStart);O(e,32|t,21),e.assignable=1;const a=De(e,t,r,1,0,e.tokenStart);return e.assignable=2,e.finishNode({type:"ConditionalExpression",test:n,consequent:i,alternate:a},o)}function Oe(e,t,r,n,o,i,a,s){const c=8673330&-((131072&t)>0);let l,u;for(e.assignable=2;8388608&e.getToken()&&(l=e.getToken(),u=3840&l,(524288&l&&268435456&a||524288&a&&268435456&l)&&e.report(165),!(u+((8391735===l)<<8)-((c===l)<<12)<=i));)ee(e,32|t),s=e.finishNode({type:524288&l||268435456&l?"LogicalExpression":"BinaryExpression",left:s,right:Oe(e,t,r,n,e.tokenStart,u,l,je(e,t,r,0,n,1)),operator:D[255&l]},o);return 1077936155===e.getToken()&&e.report(26),s}function Me(e,t,r,n,o,i,a){const{tokenStart:s}=e;O(e,32|t,2162700);const c=[];if(1074790415!==e.getToken()){for(;134283267===e.getToken();){const{index:r,tokenStart:n,tokenIndex:o,tokenValue:i}=e,s=e.getToken(),l=nt(e,t);if(R(e,r,o,i)){if(t|=1,128&e.flags)throw new L(n,e.currentLocation,66);if(64&e.flags)throw new L(n,e.currentLocation,9);if(4096&e.flags)throw new L(n,e.currentLocation,15);a?.reportScopeError()}c.push(ye(e,t,l,s,n))}1&t&&(i&&(537079808&~i||e.report(119),36864&~i||e.report(40)),512&e.flags&&e.report(119),256&e.flags&&e.report(118))}for(e.flags=4928^(4928|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.getToken();)c.push(fe(e,t,r,n,4,{}));return O(e,24&o?32|t:t,1074790415),e.flags&=-4289,1077936155===e.getToken()&&e.report(26),e.finishNode({type:"BlockStatement",body:c},s)}function je(e,t,r,n,o,i){const a=e.tokenStart;return Fe(e,t,r,Je(e,t,r,2,0,n,o,i,a),o,0,a)}function Fe(e,t,r,n,o,i,a){if(33619968&~e.getToken()||1&e.flags){if(!(67108864&~e.getToken())){switch(t=131072^(131072|t),e.getToken()){case 67108877:{ee(e,8^(262152|t)),16&t&&130===e.getToken()&&"super"===e.tokenValue&&e.report(173),e.assignable=1;const o=Ge(e,64|t,r);n=e.finishNode({type:"MemberExpression",object:n,computed:!1,property:o,optional:!1},a);break}case 69271571:{let i=!1;2048&~e.flags||(i=!0,e.flags=2048^(2048|e.flags)),ee(e,32|t);const{tokenStart:s}=e,c=Pe(e,t,r,o,1,s);O(e,t,20),e.assignable=1,n=e.finishNode({type:"MemberExpression",object:n,computed:!0,property:c,optional:!1},a),i&&(e.flags|=2048);break}case 67174411:{if(!(1024&~e.flags))return e.flags=1024^(1024|e.flags),n;let i=!1;2048&~e.flags||(i=!0,e.flags=2048^(2048|e.flags));const s=tt(e,t,r,o);e.assignable=2,n=e.finishNode({type:"CallExpression",callee:n,arguments:s,optional:!1},a),i&&(e.flags|=2048);break}case 67108990:ee(e,8^(262152|t)),e.flags|=2048,e.assignable=2,n=function(e,t,r,n,o){let i,a=!1;69271571!==e.getToken()&&67174411!==e.getToken()||2048&~e.flags||(a=!0,e.flags=2048^(2048|e.flags));if(69271571===e.getToken()){ee(e,32|t);const{tokenStart:a}=e,s=Pe(e,t,r,0,1,a);O(e,t,20),e.assignable=2,i=e.finishNode({type:"MemberExpression",object:n,computed:!0,optional:!0,property:s},o)}else if(67174411===e.getToken()){const a=tt(e,t,r,0);e.assignable=2,i=e.finishNode({type:"CallExpression",callee:n,arguments:a,optional:!0},o)}else{const a=Ge(e,t,r);e.assignable=2,i=e.finishNode({type:"MemberExpression",object:n,computed:!1,optional:!0,property:a},o)}a&&(e.flags|=2048);return i}(e,t,r,n,a);break;default:2048&~e.flags||e.report(166),e.assignable=2,n=e.finishNode({type:"TaggedTemplateExpression",tag:n,quasi:67174408===e.getToken()?Ke(e,64|t,r):Ze(e,t)},a)}n=Fe(e,t,r,n,0,1,a)}}else n=function(e,t,r,n){2&e.assignable&&e.report(55);const o=e.getToken();return ee(e,t),e.assignable=2,e.finishNode({type:"UpdateExpression",argument:r,operator:D[255&o],prefix:!1},n)}(e,t,n,a);return 0!==i||2048&~e.flags||(e.flags=2048^(2048|e.flags),n=e.finishNode({type:"ChainExpression",expression:n},a)),n}function Ge(e,t,r){return 143360&e.getToken()||-2147483528===e.getToken()||-2147483527===e.getToken()||130===e.getToken()||e.report(160),130===e.getToken()?Ct(e,t,r,0):rt(e,t)}function Je(e,t,r,n,o,i,a,s,c){if(!(143360&~e.getToken())){switch(e.getToken()){case 209006:return function(e,t,r,n,o,i){o&&(e.destructible|=128),524288&t&&e.report(177);const a=dt(e,t,r);if("ArrowFunctionExpression"===a.type||!(65536&e.getToken())){if(2048&t)throw new L(i,{index:e.startIndex,line:e.startLine,column:e.startColumn},176);if(2&t)throw new L(i,{index:e.startIndex,line:e.startLine,column:e.startColumn},110);if(8192&t&&2048&t)throw new L(i,{index:e.startIndex,line:e.startLine,column:e.startColumn},110);return a}if(8192&t)throw new L(i,{index:e.startIndex,line:e.startLine,column:e.startColumn},31);if(2048&t||2&t&&8&t){if(n)throw new L(i,{index:e.startIndex,line:e.startLine,column:e.startColumn},0);const o=je(e,t,r,0,0,1);return 8391735===e.getToken()&&e.report(33),e.assignable=2,e.finishNode({type:"AwaitExpression",argument:o},i)}if(2&t)throw new L(i,{index:e.startIndex,line:e.startLine,column:e.startColumn},98);return a}(e,t,r,o,a,c);case 241771:return function(e,t,r,n,o,i){if(n&&(e.destructible|=256),1024&t){ee(e,32|t),8192&t&&e.report(32),o||e.report(26),22===e.getToken()&&e.report(124);let n=null,a=!1;return 1&e.flags?8391476===e.getToken()&&e.report(30,D[255&e.getToken()]):(a=U(e,32|t,8391476),(77824&e.getToken()||a)&&(n=De(e,t,r,1,0,e.tokenStart))),e.assignable=2,e.finishNode({type:"YieldExpression",argument:n,delegate:a},i)}return 1&t&&e.report(97,"yield"),dt(e,t,r)}(e,t,r,a,i,c);case 209005:return function(e,t,r,n,o,i,a,s){const c=e.getToken(),l=rt(e,t),{flags:u}=e;if(!(1&u)){if(86104===e.getToken())return it(e,t,r,1,n,s);if(H(t,e.getToken()))return o||e.report(0),36864&~e.getToken()||(e.flags|=256),bt(e,t,r,i,s)}return a||67174411!==e.getToken()?10===e.getToken()?(X(e,t,c),a&&e.report(51),36864&~c||(e.flags|=256),gt(e,t,r,e.tokenValue,l,a,i,0,s)):(e.assignable=1,l):wt(e,t,r,l,i,1,0,u,s)}(e,t,r,a,s,i,o,c)}const{tokenValue:l}=e,u=e.getToken(),p=rt(e,64|t);return 10===e.getToken()?(s||e.report(0),X(e,t,u),36864&~u||(e.flags|=256),gt(e,t,r,l,p,o,i,0,c)):(!(16&t)||32768&t||8192&t||"arguments"!==e.tokenValue||e.report(130),73==(255&u)&&(1&t&&e.report(113),24&n&&e.report(100)),e.assignable=1&t&&!(537079808&~u)?2:1,p)}if(!(134217728&~e.getToken()))return nt(e,t);switch(e.getToken()){case 33619993:case 33619994:return function(e,t,r,n,o,i){n&&e.report(56),o||e.report(0);const a=e.getToken();ee(e,32|t);const s=je(e,t,r,0,0,1);return 2&e.assignable&&e.report(55),e.assignable=2,e.finishNode({type:"UpdateExpression",argument:s,operator:D[255&a],prefix:!0},i)}(e,t,r,o,s,c);case 16863276:case 16842798:case 16842799:case 25233968:case 25233969:case 16863275:case 16863277:return function(e,t,r,n,o){n||e.report(0);const{tokenStart:i}=e,a=e.getToken();ee(e,32|t);const s=je(e,t,r,0,o,1);var c;return 8391735===e.getToken()&&e.report(33),1&t&&16863276===a&&("Identifier"===s.type?e.report(121):(c=s).property&&"PrivateIdentifier"===c.property.type&&e.report(127)),e.assignable=2,e.finishNode({type:"UnaryExpression",operator:D[255&a],argument:s,prefix:!0},i)}(e,t,r,s,a);case 86104:return it(e,t,r,0,a,c);case 2162700:return function(e,t,r,n,o){const i=ut(e,t,void 0,r,n,o,0,2,0);64&e.destructible&&e.report(63);8&e.destructible&&e.report(62);return i}(e,t,r,i?0:1,a);case 69271571:return function(e,t,r,n,o){const i=at(e,t,void 0,r,n,o,0,2,0);64&e.destructible&&e.report(63);8&e.destructible&&e.report(62);return i}(e,t,r,i?0:1,a);case 67174411:return function(e,t,r,n,o,i,a){e.flags=128^(128|e.flags);const s=e.tokenStart;ee(e,262176|t);const c=e.createScopeIfLexical()?.createChildScope(512);if(t=131072^(131072|t),U(e,t,16))return ft(e,t,c,r,[],n,0,a);let l,u=0;e.destructible&=-385;let p=[],d=0,g=0,f=0;const h=e.tokenStart;e.assignable=1;for(;16!==e.getToken();){const{tokenStart:n}=e,a=e.getToken();if(143360&a)c?.addBlockName(t,e.tokenValue,1,0),537079808&~a?36864&~a||(f=1):g=1,l=Je(e,t,r,o,0,1,1,1,n),16===e.getToken()||18===e.getToken()?2&e.assignable&&(u|=16,g=1):(1077936155===e.getToken()?g=1:u|=16,l=Fe(e,t,r,l,1,0,n),16!==e.getToken()&&18!==e.getToken()&&(l=Re(e,t,r,1,0,n,l)));else{if(2097152&~a){if(14===a){l=ct(e,t,c,r,16,o,i,0,1,0),16&e.destructible&&e.report(74),g=1,!d||16!==e.getToken()&&18!==e.getToken()||p.push(l),u|=8;break}if(u|=16,l=De(e,t,r,1,1,n),!d||16!==e.getToken()&&18!==e.getToken()||p.push(l),18===e.getToken()&&(d||(d=1,p=[l])),d){for(;U(e,32|t,18);)p.push(De(e,t,r,1,1,e.tokenStart));e.assignable=2,l=e.finishNode({type:"SequenceExpression",expressions:p},h)}return O(e,t,16),e.destructible=u,e.options.preserveParens?e.finishNode({type:"ParenthesizedExpression",expression:l},s):l}l=2162700===a?ut(e,262144|t,c,r,0,1,0,o,i):at(e,262144|t,c,r,0,1,0,o,i),u|=e.destructible,g=1,e.assignable=2,16!==e.getToken()&&18!==e.getToken()&&(8&u&&e.report(122),l=Fe(e,t,r,l,0,0,n),u|=16,16!==e.getToken()&&18!==e.getToken()&&(l=Re(e,t,r,0,0,n,l)))}if(!d||16!==e.getToken()&&18!==e.getToken()||p.push(l),!U(e,32|t,18))break;if(d||(d=1,p=[l]),16===e.getToken()){u|=8;break}}d&&(e.assignable=2,l=e.finishNode({type:"SequenceExpression",expressions:p},h));O(e,t,16),16&u&&8&u&&e.report(151);if(u|=256&e.destructible?256:128&e.destructible?128:0,10===e.getToken())return 48&u&&e.report(49),2050&t&&128&u&&e.report(31),1025&t&&256&u&&e.report(32),g&&(e.flags|=128),f&&(e.flags|=256),ft(e,t,c,r,d?p:[l],n,0,a);64&u&&e.report(63);8&u&&e.report(144);return e.destructible=256^(256|e.destructible)|u,e.options.preserveParens?e.finishNode({type:"ParenthesizedExpression",expression:l},s):l}(e,64|t,r,i,1,0,c);case 86021:case 86022:case 86023:return function(e,t){const r=e.tokenStart,n=D[255&e.getToken()],o=86023===e.getToken()?null:"true"===n;return ee(e,t),e.assignable=2,e.finishNode(e.options.raw?{type:"Literal",value:o,raw:n}:{type:"Literal",value:o},r)}(e,t);case 86111:return function(e,t){const{tokenStart:r}=e;return ee(e,t),e.assignable=2,e.finishNode({type:"ThisExpression"},r)}(e,t);case 65540:return function(e,t){const{tokenRaw:r,tokenRegExp:n,tokenValue:o,tokenStart:i}=e;ee(e,t),e.assignable=2;const a={type:"Literal",value:o,regex:n};e.options.raw&&(a.raw=r);return e.finishNode(a,i)}(e,t);case 132:case 86094:return function(e,t,r,n,o){let i=null,a=null;const s=Tt(e,t,r);t=16384^(16385|t),ee(e,t),4096&e.getToken()&&20565!==e.getToken()&&(G(e,t,e.getToken())&&e.report(118),537079808&~e.getToken()||e.report(119),i=rt(e,t));let c=t;U(e,32|t,20565)?(a=je(e,t,r,0,n,0),c|=512):c=512^(512|c);const l=St(e,c,t,void 0,r,2,0,n);return e.assignable=2,e.finishNode({type:"ClassExpression",id:i,superClass:a,body:l,...e.options.next?{decorators:s}:null},o)}(e,t,r,a,c);case 86109:return function(e,t){const{tokenStart:r}=e;switch(ee(e,t),e.getToken()){case 67108990:e.report(167);case 67174411:512&t||e.report(28),e.assignable=2;break;case 69271571:case 67108877:256&t||e.report(29),e.assignable=1;break;default:e.report(30,"super")}return e.finishNode({type:"Super"},r)}(e,t);case 67174409:return Ze(e,t);case 67174408:return Ke(e,t,r);case 86107:return function(e,t,r,n){const{tokenStart:o}=e,i=rt(e,32|t),{tokenStart:a}=e;if(U(e,t,67108877)){if(65536&t&&209029===e.getToken())return e.assignable=2,function(e,t,r,n){const o=rt(e,t);return e.finishNode({type:"MetaProperty",meta:r,property:o},n)}(e,t,i,o);e.report(94)}e.assignable=2,16842752&~e.getToken()||e.report(65,D[255&e.getToken()]);const s=Je(e,t,r,2,1,0,n,1,a);t=131072^(131072|t),67108990===e.getToken()&&e.report(168);const c=mt(e,t,r,s,n,a);return e.assignable=2,e.finishNode({type:"NewExpression",callee:c,arguments:67174411===e.getToken()?tt(e,t,r,n):[]},o)}(e,t,r,a);case 134283388:return Ye(e,t);case 130:return Ct(e,t,r,0);case 86106:return function(e,t,r,n,o,i){let a=rt(e,t);if(67108877===e.getToken())return ze(e,t,a,i);n&&e.report(142);return a=He(e,t,r,o,i),e.assignable=2,Fe(e,t,r,a,o,0,i)}(e,t,r,o,a,c);case 8456256:if(e.options.jsx)return Lt(e,t,r,0,e.tokenStart);default:if(H(t,e.getToken()))return dt(e,t,r);e.report(30,D[255&e.getToken()])}}function ze(e,t,r,n){2&t||e.report(169),ee(e,t);const o=e.getToken();return 209030!==o&&"meta"!==e.tokenValue?e.report(174):-2147483648&o&&e.report(175),e.assignable=2,e.finishNode({type:"MetaProperty",meta:r,property:rt(e,t)},n)}function He(e,t,r,n,o){O(e,32|t,67174411),14===e.getToken()&&e.report(143);const i=De(e,t,r,1,n,e.tokenStart);let a=null;if(18===e.getToken()){if(O(e,t,18),16!==e.getToken()){a=De(e,131072^(131072|t),r,1,n,e.tokenStart)}U(e,t,18)}const s={type:"ImportExpression",source:i,options:a};return O(e,t,16),e.finishNode(s,o)}function Xe(e,t){if(!U(e,t,20579))return[];O(e,t,2162700);const r=[],n=new Set;for(;1074790415!==e.getToken();){const o=e.tokenStart,i=We(e,t);O(e,t,21);const a=$e(e,t),s="Literal"===i.type?i.value:i.name;n.has(s)&&e.report(145,`${s}`),n.add(s),r.push(e.finishNode({type:"ImportAttribute",key:i,value:a},o)),1074790415!==e.getToken()&&O(e,t,18)}return O(e,t,1074790415),r}function $e(e,t){if(134283267===e.getToken())return nt(e,t);e.report(30,D[255&e.getToken()])}function We(e,t){return 134283267===e.getToken()?nt(e,t):143360&e.getToken()?rt(e,t):void e.report(30,D[255&e.getToken()])}function _e(e,t){return 134283267===e.getToken()?(function(e,t){const r=t.length;for(let n=0;n56319||++n>=r||56320!=(64512&t.charCodeAt(n)))&&e.report(171,JSON.stringify(t.charAt(n--)))}}(e,e.tokenValue),nt(e,t)):143360&e.getToken()?rt(e,t):void e.report(30,D[255&e.getToken()])}function Ye(e,t){const{tokenRaw:r,tokenValue:n,tokenStart:o}=e;ee(e,t),e.assignable=2;const i={type:"Literal",value:n,bigint:String(n)};return e.options.raw&&(i.raw=r),e.finishNode(i,o)}function Ze(e,t){e.assignable=2;const{tokenValue:r,tokenRaw:n,tokenStart:o}=e;O(e,t,67174409);const i=[Qe(e,r,n,o,!0)];return e.finishNode({type:"TemplateLiteral",expressions:[],quasis:i},o)}function Ke(e,t,r){t=131072^(131072|t);const{tokenValue:n,tokenRaw:o,tokenStart:i}=e;O(e,-65&t|32,67174408);const a=[Qe(e,n,o,i,!1)],s=[Pe(e,-65&t,r,0,1,e.tokenStart)];for(1074790415!==e.getToken()&&e.report(83);67174409!==e.setToken(q(e,t),!0);){const{tokenValue:n,tokenRaw:o,tokenStart:i}=e;O(e,-65&t|32,67174408),a.push(Qe(e,n,o,i,!1)),s.push(Pe(e,t,r,0,1,e.tokenStart)),1074790415!==e.getToken()&&e.report(83)}{const{tokenValue:r,tokenRaw:n,tokenStart:o}=e;O(e,t,67174409),a.push(Qe(e,r,n,o,!0))}return e.finishNode({type:"TemplateLiteral",expressions:s,quasis:a},i)}function Qe(e,t,r,n,o){const i=e.finishNode({type:"TemplateElement",value:{cooked:t,raw:r},tail:o},n),a=o?1:2;return e.options.ranges&&(i.start+=1,i.range[0]+=1,i.end-=a,i.range[1]-=a),e.options.loc&&(i.loc.start.column+=1,i.loc.end.column-=a),i}function et(e,t,r){const n=e.tokenStart;O(e,32|(t=131072^(131072|t)),14);const o=De(e,t,r,1,0,e.tokenStart);return e.assignable=1,e.finishNode({type:"SpreadElement",argument:o},n)}function tt(e,t,r,n){ee(e,32|t);const o=[];if(16===e.getToken())return ee(e,64|t),o;for(;16!==e.getToken()&&(14===e.getToken()?o.push(et(e,t,r)):o.push(De(e,t,r,1,n,e.tokenStart)),18===e.getToken())&&(ee(e,32|t),16!==e.getToken()););return O(e,64|t,16),o}function rt(e,t){const{tokenValue:r,tokenStart:n}=e,o="await"===r&&!(-2147483648&e.getToken());return ee(e,t|(o?32:0)),e.finishNode({type:"Identifier",name:r},n)}function nt(e,t){const{tokenValue:r,tokenRaw:n,tokenStart:o}=e;return 134283388===e.getToken()?Ye(e,t):(ee(e,t),e.assignable=2,e.finishNode(e.options.raw?{type:"Literal",value:r,raw:n}:{type:"Literal",value:r},o))}function ot(e,t,r,n,o,i,a,s,c){ee(e,32|t);const l=i?B(e,t,8391476):0;let u,p=null,d=r?e.createScope():void 0;if(67174411===e.getToken())1&a||e.report(39,"Function");else{const n=!(4&o)||8&t&&2&t?64|(s?1024:0)|(l?1024:0):4;F(e,t,e.getToken()),r&&(4&n?r.addVarName(t,e.tokenValue,n):r.addBlockName(t,e.tokenValue,n,o),d=d?.createChildScope(128),a&&2&a&&e.declareUnboundVariable(e.tokenValue)),u=e.getToken(),143360&e.getToken()?p=rt(e,t):e.report(30,D[255&e.getToken()])}{const e=28416;t=(t|e)^e|65536|(s?2048:0)|(l?1024:0)|(l?0:262144)}d=d?.createChildScope(256);const g=kt(e,-524289&t|8192,d,n,0,1),f=524428,h=Me(e,36864|(t|f)^f,d?.createChildScope(64),n,8,u,d);return e.finishNode({type:"FunctionDeclaration",id:p,params:g,body:h,async:1===s,generator:1===l},c)}function it(e,t,r,n,o,i){ee(e,32|t);const a=B(e,t,8391476),s=(n?2048:0)|(a?1024:0);let c,l=null,u=e.createScopeIfLexical();const p=552704;143360&e.getToken()&&(F(e,(t|p)^p|s,e.getToken()),u=u?.createChildScope(128),c=e.getToken(),l=rt(e,t)),t=(t|p)^p|65536|s|(a?0:262144),u=u?.createChildScope(256);const d=kt(e,-524289&t|8192,u,r,o,1),g=Me(e,36864|-131229&t,u?.createChildScope(64),r,0,c,u);return e.assignable=2,e.finishNode({type:"FunctionExpression",id:l,params:d,body:g,async:1===n,generator:1===a},i)}function at(e,t,r,n,o,i,a,s,c){const{tokenStart:l}=e;ee(e,32|t);const u=[];let p=0;for(t=131072^(131072|t);20!==e.getToken();)if(U(e,32|t,18))u.push(null);else{let o;const{tokenStart:l,tokenValue:d}=e,g=e.getToken();if(143360&g)if(o=Je(e,t,n,s,0,1,i,1,l),1077936155===e.getToken()){2&e.assignable&&e.report(26),ee(e,32|t),r?.addVarOrBlock(t,d,s,c);const u=De(e,t,n,1,i,e.tokenStart);o=e.finishNode(a?{type:"AssignmentPattern",left:o,right:u}:{type:"AssignmentExpression",operator:"=",left:o,right:u},l),p|=256&e.destructible?256:128&e.destructible?128:0}else 18===e.getToken()||20===e.getToken()?(2&e.assignable?p|=16:r?.addVarOrBlock(t,d,s,c),p|=256&e.destructible?256:128&e.destructible?128:0):(p|=1&s?32:2&s?0:16,o=Fe(e,t,n,o,i,0,l),18!==e.getToken()&&20!==e.getToken()?(1077936155!==e.getToken()&&(p|=16),o=Re(e,t,n,i,a,l,o)):1077936155!==e.getToken()&&(p|=2&e.assignable?16:32));else 2097152&g?(o=2162700===e.getToken()?ut(e,t,r,n,0,i,a,s,c):at(e,t,r,n,0,i,a,s,c),p|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.getToken()||20===e.getToken()?2&e.assignable&&(p|=16):8&e.destructible?e.report(71):(o=Fe(e,t,n,o,i,0,l),p=2&e.assignable?16:0,18!==e.getToken()&&20!==e.getToken()?o=Re(e,t,n,i,a,l,o):1077936155!==e.getToken()&&(p|=2&e.assignable?16:32))):14===g?(o=ct(e,t,r,n,20,s,c,0,i,a),p|=e.destructible,18!==e.getToken()&&20!==e.getToken()&&e.report(30,D[255&e.getToken()])):(o=je(e,t,n,1,0,1),18!==e.getToken()&&20!==e.getToken()?(o=Re(e,t,n,i,a,l,o),3&s||67174411!==g||(p|=16)):2&e.assignable?p|=16:67174411===g&&(p|=1&e.assignable&&3&s?32:16));if(u.push(o),!U(e,32|t,18))break;if(20===e.getToken())break}O(e,t,20);const d=e.finishNode({type:a?"ArrayPattern":"ArrayExpression",elements:u},l);return!o&&4194304&e.getToken()?st(e,t,n,p,i,a,l,d):(e.destructible=p,d)}function st(e,t,r,n,o,i,a,s){1077936155!==e.getToken()&&e.report(26),ee(e,32|t),16&n&&e.report(26),i||M(e,s);const{tokenStart:c}=e,l=De(e,t,r,1,o,c);return e.destructible=72^(72|n)|(128&e.destructible?128:0)|(256&e.destructible?256:0),e.finishNode(i?{type:"AssignmentPattern",left:s,right:l}:{type:"AssignmentExpression",left:s,operator:"=",right:l},a)}function ct(e,t,r,n,o,i,a,s,c,l){const{tokenStart:u}=e;ee(e,32|t);let p=null,d=0;const{tokenValue:g,tokenStart:f}=e;let h=e.getToken();if(143360&h)e.assignable=1,p=Je(e,t,n,i,0,1,c,1,f),h=e.getToken(),p=Fe(e,t,n,p,c,0,f),18!==e.getToken()&&e.getToken()!==o&&(2&e.assignable&&1077936155===e.getToken()&&e.report(71),d|=16,p=Re(e,t,n,c,l,f,p)),2&e.assignable?d|=16:h===o||18===h?r?.addVarOrBlock(t,g,i,a):d|=32,d|=128&e.destructible?128:0;else if(h===o)e.report(41);else{if(!(2097152&h)){d|=32,p=je(e,t,n,1,c,1);const{tokenStart:r}=e,i=e.getToken();return 1077936155===i?(2&e.assignable&&e.report(26),p=Re(e,t,n,c,l,r,p),d|=16):(18===i?d|=16:i!==o&&(p=Re(e,t,n,c,l,r,p)),d|=1&e.assignable?32:16),e.destructible=d,e.getToken()!==o&&18!==e.getToken()&&e.report(161),e.finishNode({type:l?"RestElement":"SpreadElement",argument:p},u)}p=2162700===e.getToken()?ut(e,t,r,n,1,c,l,i,a):at(e,t,r,n,1,c,l,i,a),h=e.getToken(),1077936155!==h&&h!==o&&18!==h?(8&e.destructible&&e.report(71),p=Fe(e,t,n,p,c,0,f),d|=2&e.assignable?16:0,4194304&~e.getToken()?(8388608&~e.getToken()||(p=Oe(e,t,n,1,f,4,h,p)),U(e,32|t,22)&&(p=Ue(e,t,n,p,f)),d|=2&e.assignable?16:32):(1077936155!==e.getToken()&&(d|=16),p=Re(e,t,n,c,l,f,p))):d|=1074790415===o&&1077936155!==h?16:e.destructible}if(e.getToken()!==o)if(1&i&&(d|=s?16:32),U(e,32|t,1077936155)){16&d&&e.report(26),M(e,p);const r=De(e,t,n,1,c,e.tokenStart);p=e.finishNode(l?{type:"AssignmentPattern",left:p,right:r}:{type:"AssignmentExpression",left:p,operator:"=",right:r},f),d=16}else d|=16;return e.destructible=d,e.finishNode({type:l?"RestElement":"SpreadElement",argument:p},u)}function lt(e,t,r,n,o,i){const a=11264|(64&n?0:16896);t=98560|((t|a)^a|(8&n?1024:0)|(16&n?2048:0)|(64&n?16384:0));let s=e.createScopeIfLexical(256);const c=function(e,t,r,n,o,i,a){O(e,t,67174411);const s=[];if(e.flags=128^(128|e.flags),16===e.getToken())return 512&o&&e.report(37,"Setter","one",""),ee(e,t),s;256&o&&e.report(37,"Getter","no","s");512&o&&14===e.getToken()&&e.report(38);t=131072^(131072|t);let c=0,l=0;for(;18!==e.getToken();){let u=null;const{tokenStart:p}=e;if(143360&e.getToken()?(1&t||(36864&~e.getToken()||(e.flags|=256),537079808&~e.getToken()||(e.flags|=512)),u=Nt(e,t,r,1|o,0)):(2162700===e.getToken()?u=ut(e,t,r,n,1,a,1,i,0):69271571===e.getToken()?u=at(e,t,r,n,1,a,1,i,0):14===e.getToken()&&(u=ct(e,t,r,n,16,i,0,0,a,1)),l=1,48&e.destructible&&e.report(50)),1077936155===e.getToken()){ee(e,32|t),l=1;const r=De(e,t,n,1,0,e.tokenStart);u=e.finishNode({type:"AssignmentPattern",left:u,right:r},p)}if(c++,s.push(u),!U(e,t,18))break;if(16===e.getToken())break}512&o&&1!==c&&e.report(37,"Setter","one","");r?.reportScopeError(),l&&(e.flags|=128);return O(e,t,16),s}(e,-524289&t|8192,s,r,n,1,o);s=s?.createChildScope(64);const l=Me(e,36864|-655373&t,s,r,0,void 0,s?.parent);return e.finishNode({type:"FunctionExpression",params:c,body:l,async:(16&n)>0,generator:(8&n)>0,id:null},i)}function ut(e,t,r,n,o,i,a,s,c){const{tokenStart:l}=e;ee(e,t);const u=[];let p=0,d=0;for(t=131072^(131072|t);1074790415!==e.getToken();){const{tokenValue:o,tokenStart:l}=e,g=e.getToken();if(14===g)u.push(ct(e,t,r,n,1074790415,s,c,0,i,a));else{let f,h=0,k=null;if(143360&e.getToken()||-2147483528===e.getToken()||-2147483527===e.getToken())if(-2147483527===e.getToken()&&(p|=16),k=rt(e,t),18===e.getToken()||1074790415===e.getToken()||1077936155===e.getToken())if(h|=4,1&t&&!(537079808&~g)?p|=16:j(e,t,s,g,0),r?.addVarOrBlock(t,o,s,c),U(e,32|t,1077936155)){p|=8;const r=De(e,t,n,1,i,e.tokenStart);p|=256&e.destructible?256:128&e.destructible?128:0,f=e.finishNode({type:"AssignmentPattern",left:e.options.uniqueKeyInPattern?Object.assign({},k):k,right:r},l)}else p|=(209006===g?128:0)|(-2147483528===g?16:0),f=e.options.uniqueKeyInPattern?Object.assign({},k):k;else if(U(e,32|t,21)){const{tokenStart:l}=e;if("__proto__"===o&&d++,143360&e.getToken()){const o=e.getToken(),u=e.tokenValue;f=Je(e,t,n,s,0,1,i,1,l);const d=e.getToken();f=Fe(e,t,n,f,i,0,l),18===e.getToken()||1074790415===e.getToken()?1077936155===d||1074790415===d||18===d?(p|=128&e.destructible?128:0,2&e.assignable?p|=16:143360&~o||r?.addVarOrBlock(t,u,s,c)):p|=1&e.assignable?32:16:4194304&~e.getToken()?(p|=16,8388608&~e.getToken()||(f=Oe(e,t,n,1,l,4,d,f)),U(e,32|t,22)&&(f=Ue(e,t,n,f,l))):(2&e.assignable?p|=16:1077936155!==d?p|=32:r?.addVarOrBlock(t,u,s,c),f=Re(e,t,n,i,a,l,f))}else 2097152&~e.getToken()?(f=je(e,t,n,1,i,1),p|=1&e.assignable?32:16,18===e.getToken()||1074790415===e.getToken()?2&e.assignable&&(p|=16):(f=Fe(e,t,n,f,i,0,l),p=2&e.assignable?16:0,18!==e.getToken()&&1074790415!==g&&(1077936155!==e.getToken()&&(p|=16),f=Re(e,t,n,i,a,l,f)))):(f=69271571===e.getToken()?at(e,t,r,n,0,i,a,s,c):ut(e,t,r,n,0,i,a,s,c),p=e.destructible,e.assignable=16&p?2:1,18===e.getToken()||1074790415===e.getToken()?2&e.assignable&&(p|=16):8&e.destructible?e.report(71):(f=Fe(e,t,n,f,i,0,l),p=2&e.assignable?16:0,4194304&~e.getToken()?(8388608&~e.getToken()||(f=Oe(e,t,n,1,l,4,g,f)),U(e,32|t,22)&&(f=Ue(e,t,n,f,l)),p|=2&e.assignable?16:32):f=Be(e,t,n,i,a,l,f)))}else 69271571===e.getToken()?(p|=16,209005===g&&(h|=16),h|=2|(209008===g?256:209009===g?512:1),k=pt(e,t,n,i),p|=e.assignable,f=lt(e,t,n,h,i,e.tokenStart)):143360&e.getToken()?(p|=16,-2147483528===g&&e.report(95),209005===g?(1&e.flags&&e.report(132),h|=17):209008===g?h|=256:209009===g?h|=512:e.report(0),k=rt(e,t),f=lt(e,t,n,h,i,e.tokenStart)):67174411===e.getToken()?(p|=16,h|=1,f=lt(e,t,n,h,i,e.tokenStart)):8391476===e.getToken()?(p|=16,209008===g?e.report(42):209009===g?e.report(43):209005!==g&&e.report(30,D[52]),ee(e,t),h|=9|(209005===g?16:0),143360&e.getToken()?k=rt(e,t):134217728&~e.getToken()?69271571===e.getToken()?(h|=2,k=pt(e,t,n,i),p|=e.assignable):e.report(30,D[255&e.getToken()]):k=nt(e,t),f=lt(e,t,n,h,i,e.tokenStart)):134217728&~e.getToken()?e.report(133):(209005===g&&(h|=16),h|=209008===g?256:209009===g?512:1,p|=16,k=nt(e,t),f=lt(e,t,n,h,i,e.tokenStart));else if(134217728&~e.getToken())if(69271571===e.getToken())if(k=pt(e,t,n,i),p|=256&e.destructible?256:0,h|=2,21===e.getToken()){ee(e,32|t);const{tokenStart:o,tokenValue:l}=e,u=e.getToken();if(143360&e.getToken()){f=Je(e,t,n,s,0,1,i,1,o);const d=e.getToken();f=Fe(e,t,n,f,i,0,o),4194304&~e.getToken()?18===e.getToken()||1074790415===e.getToken()?1077936155===d||1074790415===d||18===d?2&e.assignable?p|=16:143360&~u||r?.addVarOrBlock(t,l,s,c):p|=1&e.assignable?32:16:(p|=16,f=Re(e,t,n,i,a,o,f)):(p|=2&e.assignable?16:1077936155===d?0:32,f=Be(e,t,n,i,a,o,f))}else 2097152&~e.getToken()?(f=je(e,t,n,1,0,1),p|=1&e.assignable?32:16,18===e.getToken()||1074790415===e.getToken()?2&e.assignable&&(p|=16):(f=Fe(e,t,n,f,i,0,o),p=1&e.assignable?0:16,18!==e.getToken()&&1074790415!==e.getToken()&&(1077936155!==e.getToken()&&(p|=16),f=Re(e,t,n,i,a,o,f)))):(f=69271571===e.getToken()?at(e,t,r,n,0,i,a,s,c):ut(e,t,r,n,0,i,a,s,c),p=e.destructible,e.assignable=16&p?2:1,18===e.getToken()||1074790415===e.getToken()?2&e.assignable&&(p|=16):8&p?e.report(62):(f=Fe(e,t,n,f,i,0,o),p=2&e.assignable?16|p:0,4194304&~e.getToken()?(8388608&~e.getToken()||(f=Oe(e,t,n,1,o,4,g,f)),U(e,32|t,22)&&(f=Ue(e,t,n,f,o)),p|=2&e.assignable?16:32):(1077936155!==e.getToken()&&(p|=16),f=Be(e,t,n,i,a,o,f))))}else 67174411===e.getToken()?(h|=1,f=lt(e,t,n,h,i,e.tokenStart),p=16):e.report(44);else if(8391476===g)if(O(e,32|t,8391476),h|=8,143360&e.getToken()){const r=e.getToken();if(k=rt(e,t),h|=1,67174411!==e.getToken())throw new L(e.tokenStart,e.currentLocation,209005===r?46:209008===r||209009===e.getToken()?45:47,D[255&r]);p|=16,f=lt(e,t,n,h,i,e.tokenStart)}else 134217728&~e.getToken()?69271571===e.getToken()?(p|=16,h|=3,k=pt(e,t,n,i),f=lt(e,t,n,h,i,e.tokenStart)):e.report(126):(p|=16,k=nt(e,t),h|=1,f=lt(e,t,n,h,i,e.tokenStart));else e.report(30,D[255&g]);else if(k=nt(e,t),21===e.getToken()){O(e,32|t,21);const{tokenStart:l}=e;if("__proto__"===o&&d++,143360&e.getToken()){f=Je(e,t,n,s,0,1,i,1,l);const{tokenValue:o}=e,u=e.getToken();f=Fe(e,t,n,f,i,0,l),18===e.getToken()||1074790415===e.getToken()?1077936155===u||1074790415===u||18===u?2&e.assignable?p|=16:r?.addVarOrBlock(t,o,s,c):p|=1&e.assignable?32:16:1077936155===e.getToken()?(2&e.assignable&&(p|=16),f=Re(e,t,n,i,a,l,f)):(p|=16,f=Re(e,t,n,i,a,l,f))}else 2097152&~e.getToken()?(f=je(e,t,n,1,0,1),p|=1&e.assignable?32:16,18===e.getToken()||1074790415===e.getToken()?2&e.assignable&&(p|=16):(f=Fe(e,t,n,f,i,0,l),p=1&e.assignable?0:16,18!==e.getToken()&&1074790415!==e.getToken()&&(1077936155!==e.getToken()&&(p|=16),f=Re(e,t,n,i,a,l,f)))):(f=69271571===e.getToken()?at(e,t,r,n,0,i,a,s,c):ut(e,t,r,n,0,i,a,s,c),p=e.destructible,e.assignable=16&p?2:1,18===e.getToken()||1074790415===e.getToken()?2&e.assignable&&(p|=16):8&~e.destructible&&(f=Fe(e,t,n,f,i,0,l),p=2&e.assignable?16:0,4194304&~e.getToken()?(8388608&~e.getToken()||(f=Oe(e,t,n,1,l,4,g,f)),U(e,32|t,22)&&(f=Ue(e,t,n,f,l)),p|=2&e.assignable?16:32):f=Be(e,t,n,i,a,l,f)))}else 67174411===e.getToken()?(h|=1,f=lt(e,t,n,h,i,e.tokenStart),p=16|e.assignable):e.report(134);p|=128&e.destructible?128:0,e.destructible=p,u.push(e.finishNode({type:"Property",key:k,value:f,kind:768&h?512&h?"set":"get":"init",computed:(2&h)>0,method:(1&h)>0,shorthand:(4&h)>0},l))}if(p|=e.destructible,18!==e.getToken())break;ee(e,t)}O(e,t,1074790415),d>1&&(p|=64);const g=e.finishNode({type:a?"ObjectPattern":"ObjectExpression",properties:u},l);return!o&&4194304&e.getToken()?st(e,t,n,p,i,a,l,g):(e.destructible=p,g)}function pt(e,t,r,n){ee(e,32|t);const o=De(e,131072^(131072|t),r,1,n,e.tokenStart);return O(e,t,20),o}function dt(e,t,r){const{tokenStart:n}=e,{tokenValue:o}=e;let i=0,a=0;537079808&~e.getToken()?36864&~e.getToken()||(a=1):i=1;const s=rt(e,t);if(e.assignable=1,10===e.getToken()){const c=e.options.lexical?le(e,t,o):void 0;return i&&(e.flags|=128),a&&(e.flags|=256),ht(e,t,c,r,[s],0,n)}return s}function gt(e,t,r,n,o,i,a,s,c){a||e.report(57),i&&e.report(51),e.flags&=-129;return ht(e,t,e.options.lexical?le(e,t,n):void 0,r,[o],s,c)}function ft(e,t,r,n,o,i,a,s){i||e.report(57);for(let t=0;t0&&"constructor"===e.tokenValue&&e.report(109),1074790415===e.getToken()&&e.report(108),U(e,t,1074790417)?a.length>0&&e.report(120):d.push(vt(e,t,n,l,r,i,a,0,s,a.length>0?o:e.tokenStart))}return O(e,8&a?32|t:t,1074790415),l?.validatePrivateIdentifierRefs(),e.flags=-33&e.flags|p,e.finishNode({type:"ClassBody",body:d},c)}function vt(e,t,r,n,o,i,a,s,c,l){let u=s?32:0,p=null;const d=e.getToken();if(176128&d||-2147483528===d)switch(p=rt(e,t),d){case 36970:if(!s&&67174411!==e.getToken()&&1048576&~e.getToken()&&1077936155!==e.getToken())return vt(e,t,r,n,o,i,a,1,c,l);break;case 209005:if(67174411!==e.getToken()&&!(1&e.flags)){if(!(1073741824&~e.getToken()))return Et(e,t,n,p,u,a,l);u|=16|(B(e,t,8391476)?8:0)}break;case 209008:if(67174411!==e.getToken()){if(!(1073741824&~e.getToken()))return Et(e,t,n,p,u,a,l);u|=256}break;case 209009:if(67174411!==e.getToken()){if(!(1073741824&~e.getToken()))return Et(e,t,n,p,u,a,l);u|=512}break;case 12402:if(67174411!==e.getToken()&&!(1&e.flags)){if(!(1073741824&~e.getToken()))return Et(e,t,n,p,u,a,l);e.options.next&&(u|=1024)}}else if(69271571===d)u|=2,p=pt(e,o,n,c);else if(134217728&~d)if(8391476===d)u|=8,ee(e,t);else if(130===e.getToken())u|=8192,p=Ct(e,16|t,n,768);else if(1073741824&~e.getToken()){if(s&&2162700===d)return function(e,t,r,n,o){return r=r?.createChildScope(),ke(e,t=592128|5764^(5764|t),r,n,{},o,"StaticBlock")}(e,16|t,r,n,l);-2147483527===d?(p=rt(e,t),67174411!==e.getToken()&&e.report(30,D[255&e.getToken()])):e.report(30,D[255&e.getToken()])}else u|=128;else p=nt(e,t);if(1816&u&&(143360&e.getToken()||-2147483528===e.getToken()||-2147483527===e.getToken()?p=rt(e,t):134217728&~e.getToken()?69271571===e.getToken()?(u|=2,p=pt(e,t,n,0)):130===e.getToken()?(u|=8192,p=Ct(e,t,n,u)):e.report(135):p=nt(e,t)),2&u||("constructor"===e.tokenValue?(1073741824&~e.getToken()?32&u||67174411!==e.getToken()||(920&u?e.report(53,"accessor"):512&t||(32&e.flags?e.report(54):e.flags|=32)):e.report(129),u|=64):!(8192&u)&&32&u&&"prototype"===e.tokenValue&&e.report(52)),1024&u||67174411!==e.getToken()&&!(768&u))return Et(e,t,n,p,u,a,l);const g=lt(e,16|t,n,u,c,e.tokenStart);return e.finishNode({type:"MethodDefinition",kind:!(32&u)&&64&u?"constructor":256&u?"get":512&u?"set":"method",static:(32&u)>0,computed:(2&u)>0,key:p,value:g,...e.options.next?{decorators:a}:null},l)}function Ct(e,t,r,n){const{tokenStart:o}=e;ee(e,t);const{tokenValue:i}=e;return"constructor"===i&&e.report(128),e.options.lexical&&(r||e.report(4,i),n?r.addPrivateIdentifier(i,n):r.addPrivateIdentifierRef(i)),ee(e,t),e.finishNode({type:"PrivateIdentifier",name:i},o)}function Et(e,t,r,n,o,i,a){let s=null;if(8&o&&e.report(0),1077936155===e.getToken()){ee(e,32|t);const{tokenStart:n}=e;537079927===e.getToken()&&e.report(119);const i=11264|(64&o?0:16896);s=Je(e,16|(t=65792|((t|i)^i|(8&o?1024:0)|(16&o?2048:0)|(64&o?16384:0))),r,2,0,1,0,1,n),!(1073741824&~e.getToken())&&4194304&~e.getToken()||(s=Fe(e,16|t,r,s,0,0,n),s=Re(e,16|t,r,0,0,n,s))}return P(e,t),e.finishNode({type:1024&o?"AccessorProperty":"PropertyDefinition",key:n,value:s,static:(32&o)>0,computed:(2&o)>0,...e.options.next?{decorators:i}:null},a)}function qt(e,t,r,n,o,i){if(143360&e.getToken()||!(1&t)&&-2147483527===e.getToken())return Nt(e,t,r,o,i);2097152&~e.getToken()&&e.report(30,D[255&e.getToken()]);const a=69271571===e.getToken()?at(e,t,r,n,1,0,1,o,i):ut(e,t,r,n,1,0,1,o,i);return 16&e.destructible&&e.report(50),32&e.destructible&&e.report(50),a}function Nt(e,t,r,n,o){const i=e.getToken();1&t&&(537079808&~i?36864&~i&&-2147483527!==i||e.report(118):e.report(119)),20480&~i||e.report(102),241771===i&&(1024&t&&e.report(32),2&t&&e.report(111)),73==(255&i)&&24&n&&e.report(100),209006===i&&(2048&t&&e.report(176),2&t&&e.report(110));const{tokenValue:a,tokenStart:s}=e;return ee(e,t),r?.addVarOrBlock(t,a,n,o),e.finishNode({type:"Identifier",name:a},s)}function Lt(e,t,r,n,o){if(n||O(e,t,8456256),8390721===e.getToken()){const i=function(e,t){return ae(e),e.finishNode({type:"JSXOpeningFragment"},t)}(e,o),[a,s]=function(e,t,r,n){const o=[];for(;;){const i=It(e,t,r,n);if("JSXClosingFragment"===i.type)return[o,i];o.push(i)}}(e,t,r,n);return e.finishNode({type:"JSXFragment",openingFragment:i,children:a,closingFragment:s},o)}8457014===e.getToken()&&e.report(30,D[255&e.getToken()]);let i=null,a=[];const s=function(e,t,r,n,o){143360&~e.getToken()&&4096&~e.getToken()&&e.report(0);const i=Vt(e,t),a=function(e,t,r){const n=[];for(;8457014!==e.getToken()&&8390721!==e.getToken()&&1048576!==e.getToken();)n.push(Rt(e,t,r));return n}(e,t,r),s=8457014===e.getToken();s&&O(e,t,8457014);8390721!==e.getToken()&&e.report(25,D[65]);n||!s?ae(e):ee(e,t);return e.finishNode({type:"JSXOpeningElement",name:i,attributes:a,selfClosing:s},o)}(e,t,r,n,o);if(!s.selfClosing){[a,i]=function(e,t,r,n){const o=[];for(;;){const i=At(e,t,r,n);if("JSXClosingElement"===i.type)return[o,i];o.push(i)}}(e,t,r,n);const o=z(i.name);z(s.name)!==o&&e.report(155,o)}return e.finishNode({type:"JSXElement",children:a,openingElement:s,closingElement:i},o)}function At(e,t,r,n){if(137===e.getToken())return Dt(e,t);if(2162700===e.getToken())return Ut(e,t,r,1,0);if(8456256===e.getToken()){const{tokenStart:o}=e;return ee(e,t),8457014===e.getToken()?function(e,t,r,n){O(e,t,8457014);const o=Vt(e,t);return 8390721!==e.getToken()&&e.report(25,D[65]),r?ae(e):ee(e,t),e.finishNode({type:"JSXClosingElement",name:o},n)}(e,t,n,o):Lt(e,t,r,1,o)}e.report(0)}function It(e,t,r,n){if(137===e.getToken())return Dt(e,t);if(2162700===e.getToken())return Ut(e,t,r,1,0);if(8456256===e.getToken()){const{tokenStart:o}=e;return ee(e,t),8457014===e.getToken()?function(e,t,r,n){return O(e,t,8457014),8390721!==e.getToken()&&e.report(25,D[65]),r?ae(e):ee(e,t),e.finishNode({type:"JSXClosingFragment"},n)}(e,t,n,o):Lt(e,t,r,1,o)}e.report(0)}function Dt(e,t){const r=e.tokenStart;ee(e,t);const n={type:"JSXText",value:e.tokenValue};return e.options.raw&&(n.raw=e.tokenRaw),e.finishNode(n,r)}function Vt(e,t){const{tokenStart:r}=e;se(e);let n=Ot(e,t);if(21===e.getToken())return Bt(e,t,n,r);for(;U(e,t,67108877);)se(e),n=Pt(e,t,n,r);return n}function Pt(e,t,r,n){const o=Ot(e,t);return e.finishNode({type:"JSXMemberExpression",object:r,property:o},n)}function Rt(e,t,r){const{tokenStart:n}=e;if(2162700===e.getToken())return function(e,t,r){const n=e.tokenStart;ee(e,t),O(e,t,14);const o=De(e,t,r,1,0,e.tokenStart);return O(e,t,1074790415),e.finishNode({type:"JSXSpreadAttribute",argument:o},n)}(e,t,r);se(e);let o=null,i=Ot(e,t);if(21===e.getToken()&&(i=Bt(e,t,i,n)),1077936155===e.getToken()){switch(ie(e,t)){case 134283267:o=nt(e,t);break;case 8456256:o=Lt(e,t,r,0,e.tokenStart);break;case 2162700:o=Ut(e,t,r,0,1);break;default:e.report(154)}}return e.finishNode({type:"JSXAttribute",value:o,name:i},n)}function Bt(e,t,r,n){O(e,t,21);const o=Ot(e,t);return e.finishNode({type:"JSXNamespacedName",namespace:r,name:o},n)}function Ut(e,t,r,n,o){const{tokenStart:i}=e;ee(e,32|t);const{tokenStart:a}=e;if(14===e.getToken())return function(e,t,r,n){O(e,t,14);const o=De(e,t,r,1,0,e.tokenStart);return O(e,t,1074790415),e.finishNode({type:"JSXSpreadChild",expression:o},n)}(e,t,r,i);let s=null;return 1074790415===e.getToken()?(o&&e.report(157),s=function(e,t){return e.finishNode({type:"JSXEmptyExpression"},t,e.tokenStart)}(e,{index:e.startIndex,line:e.startLine,column:e.startColumn})):s=De(e,t,r,1,0,a),1074790415!==e.getToken()&&e.report(25,D[15]),n?ae(e):ee(e,t),e.finishNode({type:"JSXExpressionContainer",expression:s},i)}function Ot(e,t){const r=e.tokenStart;143360&e.getToken()||e.report(30,D[255&e.getToken()]);const{tokenValue:n}=e;return ee(e,t),e.finishNode({type:"JSXIdentifier",name:n},r)}const{stringify:Mt}=JSON;if(!String.prototype.repeat)throw new Error("String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation");if(!String.prototype.endsWith)throw new Error("String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation");const jt={"||":2,"??":3,"&&":4,"|":5,"^":6,"&":7,"==":8,"!=":8,"===":8,"!==":8,"<":9,">":9,"<=":9,">=":9,in:9,instanceof:9,"<<":10,">>":10,">>>":10,"+":11,"-":11,"*":12,"%":12,"/":12,"**":13},Ft=17,Gt={ArrayExpression:20,TaggedTemplateExpression:20,ThisExpression:20,Identifier:20,PrivateIdentifier:20,Literal:18,TemplateLiteral:20,Super:20,SequenceExpression:20,MemberExpression:19,ChainExpression:19,CallExpression:19,NewExpression:19,ArrowFunctionExpression:Ft,ClassExpression:Ft,FunctionExpression:Ft,ObjectExpression:Ft,UpdateExpression:16,UnaryExpression:15,AwaitExpression:15,BinaryExpression:14,LogicalExpression:13,ConditionalExpression:4,AssignmentExpression:3,YieldExpression:2,RestElement:1};function Jt(e,t){const{generator:r}=e;if(e.write("("),null!=t&&t.length>0){r[t[0].type](t[0],e);const{length:n}=t;for(let o=1;o0){e.write(n);for(let t=1;t0){r.VariableDeclarator(n[0],e);for(let t=1;t0){t.write(n),o&&null!=e.comments&&$t(t,e.comments,i,n);const{length:s}=a;for(let e=0;e0){for(;i0&&t.write(", ");const e=r[i],n=e.type[6];if("D"===n)t.write(e.local.name,e),i++;else{if("N"!==n)break;t.write("* as "+e.local.name,e),i++}}if(i0){t.write(" with { ");for(let e=0;e0)for(let e=0;;){const o=r[e],{name:i}=o.local;if(t.write(i,o),i!==o.exported.name&&t.write(" as "+o.exported.name),!(++e0){t.write(" with { ");for(let r=0;r0){t.write(" with { ");for(let r=0;r "),"O"===e.body.type[0]?(t.write("("),this.ObjectExpression(e.body,t),t.write(")")):this[e.body.type](e.body,t)},ThisExpression(e,t){t.write("this",e)},Super(e,t){t.write("super",e)},RestElement:Zt=function(e,t){t.write("..."),this[e.argument.type](e.argument,t)},SpreadElement:Zt,YieldExpression(e,t){t.write(e.delegate?"yield*":"yield"),e.argument&&(t.write(" "),this[e.argument.type](e.argument,t))},AwaitExpression(e,t){t.write("await ",e),Ht(t,e.argument,e)},TemplateLiteral(e,t){const{quasis:r,expressions:n}=e;t.write("`");const{length:o}=n;for(let e=0;e0){const{elements:r}=e,{length:n}=r;for(let e=0;;){const o=r[e];if(null!=o&&this[o.type](o,t),!(++e0){t.write(n),o&&null!=e.comments&&$t(t,e.comments,i,n);const a=","+n,{properties:s}=e,{length:c}=s;for(let e=0;;){const r=s[e];if(o&&null!=r.comments&&$t(t,r.comments,i,n),t.write(i),this[r.type](r,t),!(++e0){const{properties:r}=e,{length:n}=r;for(let e=0;this[r[e].type](r[e],t),++e1)&&("U"!==o[0]||"n"!==o[1]&&"p"!==o[1]||!n.prefix||n.operator[0]!==r||"+"!==r&&"-"!==r)||t.write(" "),i?(t.write(r.length>1?" (":"("),this[o](n,t),t.write(")")):this[o](n,t)}else this[e.argument.type](e.argument,t),t.write(e.operator)},UpdateExpression(e,t){e.prefix?(t.write(e.operator),this[e.argument.type](e.argument,t)):(this[e.argument.type](e.argument,t),t.write(e.operator))},AssignmentExpression(e,t){this[e.left.type](e.left,t),t.write(" "+e.operator+" "),this[e.right.type](e.right,t)},AssignmentPattern(e,t){this[e.left.type](e.left,t),t.write(" = "),this[e.right.type](e.right,t)},BinaryExpression:Kt=function(e,t){const r="in"===e.operator;r&&t.write("("),Ht(t,e.left,e,!1),t.write(" "+e.operator+" "),Ht(t,e.right,e,!0),r&&t.write(")")},LogicalExpression:Kt,ConditionalExpression(e,t){const{test:r}=e,n=t.expressionsPrecedence[r.type];n===Ft||n<=t.expressionsPrecedence.ConditionalExpression?(t.write("("),this[r.type](r,t),t.write(")")):this[r.type](r,t),t.write(" ? "),this[e.consequent.type](e.consequent,t),t.write(" : "),this[e.alternate.type](e.alternate,t)},NewExpression(e,t){t.write("new ");const r=t.expressionsPrecedence[e.callee.type];r===Ft||r0&&(this.lineEndSize>0&&(1===n.length?e[r-1]===n:e.endsWith(n))?(this.line+=this.lineEndSize,this.column=0):this.column+=r)}toString(){return this.output}}const or={parse:function(e,t){return de(e,t)}},ir={generate:function(e,t){const r=new nr(t);return r.generator[e.type](e,r),r.output}};return e.astring=ir,e.meriyah=or,e}({}); \ No newline at end of file diff --git a/src-tauri/binaries/yt-dlp-aarch64-apple-darwin b/src-tauri/binaries/yt-dlp-aarch64-apple-darwin index 10de174..996f1c3 100755 Binary files a/src-tauri/binaries/yt-dlp-aarch64-apple-darwin and b/src-tauri/binaries/yt-dlp-aarch64-apple-darwin differ diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 71c15ab..242ba13 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -754,6 +754,7 @@ async fn fetch_metadata(url: String, user_agent: Option, username: Optio const MEDIA_METADATA_CACHE_TTL: Duration = Duration::from_secs(60); const MEDIA_METADATA_TIMEOUT: Duration = Duration::from_secs(55); +const MEDIA_METADATA_CACHE_MAX_ENTRIES: usize = 128; static MEDIA_METADATA_CACHE: OnceLock>> = OnceLock::new(); static MEDIA_METADATA_LOCKS: OnceLock>>>> = OnceLock::new(); @@ -772,6 +773,21 @@ fn media_metadata_cache_key( hasher.finish() } +async fn release_media_metadata_lock( + cache_key: u64, + request_lock: &std::sync::Arc>, +) { + let locks = MEDIA_METADATA_LOCKS.get_or_init(|| tokio::sync::Mutex::new(HashMap::new())); + let mut locks_guard = locks.lock().await; + if std::sync::Arc::strong_count(request_lock) == 2 + && locks_guard + .get(&cache_key) + .is_some_and(|current| std::sync::Arc::ptr_eq(current, request_lock)) + { + locks_guard.remove(&cache_key); + } +} + fn resolve_metadata_ytdlp_path(app_handle: &tauri::AppHandle) -> Result<(PathBuf, &'static str), String> { resolve_bundled_binary_path(app_handle, "yt-dlp") .map(|path| (path, "bundled")) @@ -789,11 +805,12 @@ async fn fetch_media_metadata( let cache_key = media_metadata_cache_key(&url, &cookie_browser, &username, &password); let cache = MEDIA_METADATA_CACHE.get_or_init(|| tokio::sync::Mutex::new(HashMap::new())); - if let Some((cached_at, metadata)) = cache.lock().await.get(&cache_key).cloned() { - if cached_at.elapsed() <= MEDIA_METADATA_CACHE_TTL { - return Ok(metadata); - } + let mut cache_guard = cache.lock().await; + cache_guard.retain(|_, (cached_at, _)| cached_at.elapsed() <= MEDIA_METADATA_CACHE_TTL); + if let Some((_, metadata)) = cache_guard.get(&cache_key).cloned() { + return Ok(metadata); } + drop(cache_guard); let request_lock = { let locks = MEDIA_METADATA_LOCKS.get_or_init(|| tokio::sync::Mutex::new(HashMap::new())); @@ -804,54 +821,69 @@ async fn fetch_media_metadata( .clone() }; - let _request_guard = request_lock.lock().await; + let request_guard = request_lock.lock().await; - if let Some((cached_at, metadata)) = cache.lock().await.get(&cache_key).cloned() { - if cached_at.elapsed() <= MEDIA_METADATA_CACHE_TTL { - return Ok(metadata); - } + let mut cache_guard = cache.lock().await; + cache_guard.retain(|_, (cached_at, _)| cached_at.elapsed() <= MEDIA_METADATA_CACHE_TTL); + if let Some((_, metadata)) = cache_guard.get(&cache_key).cloned() { + drop(cache_guard); + drop(request_guard); + release_media_metadata_lock(cache_key, &request_lock).await; + return Ok(metadata); } + drop(cache_guard); - let metadata = fetch_media_metadata_uncached( + let result = fetch_media_metadata_uncached( app_handle, url, cookie_browser, username, password, ) - .await?; + .await; - if metadata.formats.is_empty() { - return Err("yt-dlp returned no usable media formats for this URL".to_string()); - } + let result = match result { + Ok(metadata) if metadata.formats.is_empty() => { + Err("yt-dlp returned no usable media formats for this URL".to_string()) + } + Ok(metadata) => { + let mut cache_guard = cache.lock().await; + if cache_guard.len() >= MEDIA_METADATA_CACHE_MAX_ENTRIES + && !cache_guard.contains_key(&cache_key) + { + if let Some(oldest_key) = cache_guard + .iter() + .min_by_key(|(_, (cached_at, _))| *cached_at) + .map(|(key, _)| *key) + { + cache_guard.remove(&oldest_key); + } + } + cache_guard.insert(cache_key, (Instant::now(), metadata.clone())); + Ok(metadata) + } + Err(error) => Err(error), + }; - cache - .lock() - .await - .insert(cache_key, (Instant::now(), metadata.clone())); + drop(request_guard); + release_media_metadata_lock(cache_key, &request_lock).await; - Ok(metadata) + result } async fn fetch_media_metadata_uncached(app_handle: tauri::AppHandle, url: String, cookie_browser: Option, username: Option, password: Option) -> Result { - // Resolve bundled deno and ffmpeg binaries and create a temporary PATH for yt-dlp + // Pass bundled tools by absolute path so extraction never depends on + // system Python, a user-managed PATH, or auto-detection heuristics. let deno_path = resolve_bundled_binary_path(&app_handle, "deno").map_err(|e| format!("failed to find bundled deno: {e}"))?; let ffmpeg_path = resolve_bundled_binary_path(&app_handle, "ffmpeg").map_err(|e| format!("failed to find bundled ffmpeg: {e}"))?; - - let bin_dir = tempfile::tempdir().map_err(|e| format!("failed to create bundling temp dir: {e}"))?; - { - use std::os::unix::fs::symlink; - symlink(&deno_path, bin_dir.path().join("deno")).map_err(|e| format!("failed to symlink deno: {e}"))?; - symlink(&ffmpeg_path, bin_dir.path().join("ffmpeg")).map_err(|e| format!("failed to symlink ffmpeg: {e}"))?; - } - let bin_dir_str = bin_dir.path().to_string_lossy().to_string(); - let path_env = format!("{}:/usr/bin:/bin", bin_dir_str); + let deno_runtime = format!("deno:{}", deno_path.to_string_lossy()); use tauri_plugin_shell::ShellExt; let (ytdlp_path, _) = resolve_metadata_ytdlp_path(&app_handle)?; let mut cmd = app_handle.shell().command(ytdlp_path.to_string_lossy().to_string()); - cmd = cmd.env("PATH", &path_env) - .arg("--ffmpeg-location").arg(&bin_dir_str) + cmd = cmd.env("PATH", "/usr/bin:/bin") + .arg("--ffmpeg-location").arg(&ffmpeg_path) + .arg("--js-runtimes").arg(&deno_runtime) .arg("--no-warnings") .arg("--no-playlist") .arg("--skip-download") @@ -1319,23 +1351,10 @@ async fn run_sidecar_version( let output_future = command.output(); tokio::pin!(output_future); - const NORMAL_VERSION_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(5); - const YTDLP_FIRST_RUN_GRACE: std::time::Duration = std::time::Duration::from_secs(40); - - let result = match tokio::time::timeout(NORMAL_VERSION_TIMEOUT, &mut output_future).await { - Ok(result) => Ok(result), - Err(_) if sidecar_name == "yt-dlp" && !ytdlp_expects_internal_dir(&binary_path) => { - log::info!( - "Bundled yt-dlp version check exceeded {} seconds; allowing {} seconds for standalone first-run initialization", - NORMAL_VERSION_TIMEOUT.as_secs(), - YTDLP_FIRST_RUN_GRACE.as_secs() - ); - tokio::time::timeout(YTDLP_FIRST_RUN_GRACE, &mut output_future) - .await - .map_err(|_| NORMAL_VERSION_TIMEOUT + YTDLP_FIRST_RUN_GRACE) - } - Err(_) => Err(NORMAL_VERSION_TIMEOUT), - }; + const VERSION_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(12); + let result = tokio::time::timeout(VERSION_TIMEOUT, &mut output_future) + .await + .map_err(|_| VERSION_TIMEOUT); let output = match result { Ok(Ok(output)) => output, @@ -1399,12 +1418,6 @@ fn version_cache_key(binary_path: &std::path::Path, args: &[&str]) -> String { format!("{}:{modified}:{}", binary_path.display(), args.join("\u{1f}")) } -fn ytdlp_expects_internal_dir(binary_path: &std::path::Path) -> bool { - binary_path - .parent() - .is_some_and(|parent| parent.join("_internal").is_dir()) -} - fn validate_bundled_binary(binary_path: &std::path::Path) -> Result<(), String> { let metadata = std::fs::metadata(binary_path).map_err(|error| { format!( @@ -1908,6 +1921,7 @@ pub(crate) async fn start_media_download_internal( .arg("--downloader").arg("aria2c") .arg("--downloader-args").arg("aria2c:-c -x 16 -s 16 -k 1M --summary-interval=1") .arg("--ffmpeg-location").arg(&bin_dir_str) + .arg("--js-runtimes").arg(format!("deno:{}", deno_path.to_string_lossy())) .arg("--concurrent-fragments").arg("4") .arg("--no-warnings") .arg("--continue") diff --git a/src/components/AddDownloadsModal.tsx b/src/components/AddDownloadsModal.tsx index 29a6db6..cd04e19 100644 --- a/src/components/AddDownloadsModal.tsx +++ b/src/components/AddDownloadsModal.tsx @@ -1,7 +1,6 @@ import { useState, useEffect, useRef } from 'react'; import { useDownloadStore, - getSiteLogin, type AddDownloadAction } from '../store/useDownloadStore'; @@ -288,6 +287,7 @@ export const AddDownloadsModal = () => { const [pendingUseSharedDestination, setPendingUseSharedDestination] = useState(false); const [resolvedLocation, setResolvedLocation] = useState(''); const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); + const [isQueueMenuOpen, setIsQueueMenuOpen] = useState(false); const actionMenuRef = useRef(null); // Right Form @@ -332,6 +332,7 @@ export const AddDownloadsModal = () => { setCookies(pendingAddCookies); setMirrors(''); setIsActionMenuOpen(false); + setIsQueueMenuOpen(false); } else { setUrls(''); } @@ -341,8 +342,7 @@ export const AddDownloadsModal = () => { pendingAddReferer, pendingAddHeaders, pendingAddCookies, - baseDownloadFolder, - queues + baseDownloadFolder ]); useEffect(() => { @@ -350,6 +350,7 @@ export const AddDownloadsModal = () => { const closeMenu = (event: PointerEvent) => { if (!actionMenuRef.current?.contains(event.target as Node)) { setIsActionMenuOpen(false); + setIsQueueMenuOpen(false); } }; window.addEventListener('pointerdown', closeMenu); @@ -1006,7 +1007,7 @@ export const AddDownloadsModal = () => {
- setConnections(Number(e.target.value))} className={`add-download-range w-24 accent-blue-500 cursor-pointer ${parsedItems.some(i => i.isMedia) ? 'opacity-50 pointer-events-none' : ''}`} aria-label="Connections per file" /> + setConnections(Number(e.target.value))} className="add-download-range w-24 accent-blue-500 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50" disabled={parsedItems.some(i => i.isMedia)} aria-label="Connections per file" /> {connections}
@@ -1111,7 +1112,10 @@ export const AddDownloadsModal = () => {
-
+
{queues.map(queue => (