From cd531a2218e1bb159b53353d85bcb601685cf16f Mon Sep 17 00:00:00 2001 From: viraladmin <00purple@gmail.com> Date: Sun, 2 Aug 2026 15:08:45 -0600 Subject: [PATCH] Initial Contractless Web3 wallet releases --- .gitignore | 4 + README.md | 131 + core/Cargo.lock | 1066 +++++ core/Cargo.toml | 40 + core/README.md | 84 + core/src/address.rs | 131 + core/src/crypto.rs | 54 + core/src/error.rs | 30 + core/src/legacy_wallet.rs | 264 ++ core/src/lib.rs | 347 ++ core/src/message.rs | 263 ++ core/src/registry.rs | 1459 +++++++ core/src/transfer.rs | 216 ++ core/src/wallet.rs | 338 ++ extension/README.md | 206 + .../assets/contractless-logo-BgfMS-Kf.png | Bin 0 -> 5286 bytes ...contractless_browser_core_bg-C_vtp2Os.wasm | Bin 0 -> 703517 bytes extension/dist/assets/popup-C5oUQoSX.css | 1 + extension/dist/assets/print-DTb91-bp.css | 1 + extension/dist/background.js | 3 + .../assets/contractless-logo-BgfMS-Kf.png | Bin 0 -> 5286 bytes ...contractless_browser_core_bg-CM1Z7v2F.wasm | Bin 0 -> 703467 bytes ...contractless_browser_core_bg-Dl61GrlP.wasm | Bin 0 -> 703517 bytes .../chrome/assets/import-wallet-D9ROrgVZ.css | 1 + .../dist/chrome/assets/popup-B3vY8vDf.css | 1 + .../dist/chrome/assets/print-DTb91-bp.css | 1 + extension/dist/chrome/background.js | 3 + extension/dist/chrome/chunks/core-D2IK1U91.js | 1 + .../chunks/modulepreload-polyfill-B5Qt9EMX.js | 1 + extension/dist/chrome/content.js | 1 + .../dist/chrome/contractless-logo-128.png | Bin 0 -> 6168 bytes .../dist/chrome/contractless-logo-16.png | Bin 0 -> 707 bytes .../dist/chrome/contractless-logo-32.png | Bin 0 -> 1486 bytes .../dist/chrome/contractless-logo-48.png | Bin 0 -> 2272 bytes extension/dist/chrome/contractless-logo.png | Bin 0 -> 5286 bytes extension/dist/chrome/import-wallet.html | 70 + extension/dist/chrome/import-wallet.js | 1 + extension/dist/chrome/manifest.json | 45 + extension/dist/chrome/popup.html | 654 ++++ extension/dist/chrome/popup.js | 8 + extension/dist/chrome/print.html | 44 + extension/dist/chrome/print.js | 1 + extension/dist/chrome/provider.js | 1 + extension/dist/chunks/core-CvwXoH-U.js | 1 + .../chunks/modulepreload-polyfill-B5Qt9EMX.js | 1 + extension/dist/content.js | 1 + extension/dist/contractless-logo.png | Bin 0 -> 5286 bytes .../assets/contractless-logo-BgfMS-Kf.png | Bin 0 -> 5286 bytes ...contractless_browser_core_bg-CM1Z7v2F.wasm | Bin 0 -> 703467 bytes ...contractless_browser_core_bg-Dl61GrlP.wasm | Bin 0 -> 703517 bytes .../firefox/assets/import-wallet-D9ROrgVZ.css | 1 + .../dist/firefox/assets/popup-B3vY8vDf.css | 1 + .../dist/firefox/assets/print-DTb91-bp.css | 1 + extension/dist/firefox/background.js | 3 + .../dist/firefox/chunks/core-D2IK1U91.js | 1 + .../chunks/modulepreload-polyfill-B5Qt9EMX.js | 1 + extension/dist/firefox/content.js | 1 + .../dist/firefox/contractless-logo-128.png | Bin 0 -> 6168 bytes .../dist/firefox/contractless-logo-16.png | Bin 0 -> 707 bytes .../dist/firefox/contractless-logo-32.png | Bin 0 -> 1486 bytes .../dist/firefox/contractless-logo-48.png | Bin 0 -> 2272 bytes extension/dist/firefox/contractless-logo.png | Bin 0 -> 5286 bytes extension/dist/firefox/import-wallet.html | 70 + extension/dist/firefox/import-wallet.js | 1 + extension/dist/firefox/manifest.json | 57 + extension/dist/firefox/popup.html | 654 ++++ extension/dist/firefox/popup.js | 8 + extension/dist/firefox/print.html | 44 + extension/dist/firefox/print.js | 1 + extension/dist/firefox/provider.js | 1 + extension/dist/manifest.json | 45 + extension/dist/popup.html | 635 +++ extension/dist/popup.js | 8 + extension/dist/print.html | 44 + extension/dist/print.js | 1 + extension/dist/provider.js | 1 + extension/package.json | 29 + extension/pnpm-lock.yaml | 3418 +++++++++++++++++ extension/pnpm-workspace.yaml | 4 + .../src/assets/contractless-logo-128.png | Bin 0 -> 6168 bytes extension/src/assets/contractless-logo-16.png | Bin 0 -> 707 bytes extension/src/assets/contractless-logo-32.png | Bin 0 -> 1486 bytes extension/src/assets/contractless-logo-48.png | Bin 0 -> 2272 bytes extension/src/assets/contractless-logo.png | Bin 0 -> 5286 bytes extension/src/background.ts | 1655 ++++++++ extension/src/content.ts | 25 + extension/src/core.ts | 12 + extension/src/import-wallet.css | 200 + extension/src/import-wallet.html | 69 + extension/src/import-wallet.ts | 78 + extension/src/manifest.chrome.json | 45 + extension/src/manifest.firefox.json | 57 + extension/src/popup.html | 652 ++++ extension/src/popup.ts | 2293 +++++++++++ extension/src/print.css | 73 + extension/src/print.html | 43 + extension/src/print.ts | 32 + extension/src/provider.ts | 36 + extension/src/types.ts | 48 + extension/src/wallet.css | 2076 ++++++++++ extension/tsconfig.json | 12 + extension/vite.config.ts | 42 + sdk/README.md | 310 ++ sdk/contractless.js | 399 ++ serve-tests.mjs | 33 + tests/dual-signature-store.php | 141 + tests/storage/.gitkeep | 1 + tests/tests.html | 1652 ++++++++ 108 files changed, 20488 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 core/Cargo.lock create mode 100644 core/Cargo.toml create mode 100644 core/README.md create mode 100644 core/src/address.rs create mode 100644 core/src/crypto.rs create mode 100644 core/src/error.rs create mode 100644 core/src/legacy_wallet.rs create mode 100644 core/src/lib.rs create mode 100644 core/src/message.rs create mode 100644 core/src/registry.rs create mode 100644 core/src/transfer.rs create mode 100644 core/src/wallet.rs create mode 100644 extension/README.md create mode 100644 extension/dist/assets/contractless-logo-BgfMS-Kf.png create mode 100644 extension/dist/assets/contractless_browser_core_bg-C_vtp2Os.wasm create mode 100644 extension/dist/assets/popup-C5oUQoSX.css create mode 100644 extension/dist/assets/print-DTb91-bp.css create mode 100644 extension/dist/background.js create mode 100644 extension/dist/chrome/assets/contractless-logo-BgfMS-Kf.png create mode 100644 extension/dist/chrome/assets/contractless_browser_core_bg-CM1Z7v2F.wasm create mode 100644 extension/dist/chrome/assets/contractless_browser_core_bg-Dl61GrlP.wasm create mode 100644 extension/dist/chrome/assets/import-wallet-D9ROrgVZ.css create mode 100644 extension/dist/chrome/assets/popup-B3vY8vDf.css create mode 100644 extension/dist/chrome/assets/print-DTb91-bp.css create mode 100644 extension/dist/chrome/background.js create mode 100644 extension/dist/chrome/chunks/core-D2IK1U91.js create mode 100644 extension/dist/chrome/chunks/modulepreload-polyfill-B5Qt9EMX.js create mode 100644 extension/dist/chrome/content.js create mode 100644 extension/dist/chrome/contractless-logo-128.png create mode 100644 extension/dist/chrome/contractless-logo-16.png create mode 100644 extension/dist/chrome/contractless-logo-32.png create mode 100644 extension/dist/chrome/contractless-logo-48.png create mode 100644 extension/dist/chrome/contractless-logo.png create mode 100644 extension/dist/chrome/import-wallet.html create mode 100644 extension/dist/chrome/import-wallet.js create mode 100644 extension/dist/chrome/manifest.json create mode 100644 extension/dist/chrome/popup.html create mode 100644 extension/dist/chrome/popup.js create mode 100644 extension/dist/chrome/print.html create mode 100644 extension/dist/chrome/print.js create mode 100644 extension/dist/chrome/provider.js create mode 100644 extension/dist/chunks/core-CvwXoH-U.js create mode 100644 extension/dist/chunks/modulepreload-polyfill-B5Qt9EMX.js create mode 100644 extension/dist/content.js create mode 100644 extension/dist/contractless-logo.png create mode 100644 extension/dist/firefox/assets/contractless-logo-BgfMS-Kf.png create mode 100644 extension/dist/firefox/assets/contractless_browser_core_bg-CM1Z7v2F.wasm create mode 100644 extension/dist/firefox/assets/contractless_browser_core_bg-Dl61GrlP.wasm create mode 100644 extension/dist/firefox/assets/import-wallet-D9ROrgVZ.css create mode 100644 extension/dist/firefox/assets/popup-B3vY8vDf.css create mode 100644 extension/dist/firefox/assets/print-DTb91-bp.css create mode 100644 extension/dist/firefox/background.js create mode 100644 extension/dist/firefox/chunks/core-D2IK1U91.js create mode 100644 extension/dist/firefox/chunks/modulepreload-polyfill-B5Qt9EMX.js create mode 100644 extension/dist/firefox/content.js create mode 100644 extension/dist/firefox/contractless-logo-128.png create mode 100644 extension/dist/firefox/contractless-logo-16.png create mode 100644 extension/dist/firefox/contractless-logo-32.png create mode 100644 extension/dist/firefox/contractless-logo-48.png create mode 100644 extension/dist/firefox/contractless-logo.png create mode 100644 extension/dist/firefox/import-wallet.html create mode 100644 extension/dist/firefox/import-wallet.js create mode 100644 extension/dist/firefox/manifest.json create mode 100644 extension/dist/firefox/popup.html create mode 100644 extension/dist/firefox/popup.js create mode 100644 extension/dist/firefox/print.html create mode 100644 extension/dist/firefox/print.js create mode 100644 extension/dist/firefox/provider.js create mode 100644 extension/dist/manifest.json create mode 100644 extension/dist/popup.html create mode 100644 extension/dist/popup.js create mode 100644 extension/dist/print.html create mode 100644 extension/dist/print.js create mode 100644 extension/dist/provider.js create mode 100644 extension/package.json create mode 100644 extension/pnpm-lock.yaml create mode 100644 extension/pnpm-workspace.yaml create mode 100644 extension/src/assets/contractless-logo-128.png create mode 100644 extension/src/assets/contractless-logo-16.png create mode 100644 extension/src/assets/contractless-logo-32.png create mode 100644 extension/src/assets/contractless-logo-48.png create mode 100644 extension/src/assets/contractless-logo.png create mode 100644 extension/src/background.ts create mode 100644 extension/src/content.ts create mode 100644 extension/src/core.ts create mode 100644 extension/src/import-wallet.css create mode 100644 extension/src/import-wallet.html create mode 100644 extension/src/import-wallet.ts create mode 100644 extension/src/manifest.chrome.json create mode 100644 extension/src/manifest.firefox.json create mode 100644 extension/src/popup.html create mode 100644 extension/src/popup.ts create mode 100644 extension/src/print.css create mode 100644 extension/src/print.html create mode 100644 extension/src/print.ts create mode 100644 extension/src/provider.ts create mode 100644 extension/src/types.ts create mode 100644 extension/src/wallet.css create mode 100644 extension/tsconfig.json create mode 100644 extension/vite.config.ts create mode 100644 sdk/README.md create mode 100644 sdk/contractless.js create mode 100644 serve-tests.mjs create mode 100644 tests/dual-signature-store.php create mode 100644 tests/storage/.gitkeep create mode 100644 tests/tests.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..286b1e0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +core/target/ +extension/node_modules/ +extension/web-ext-artifacts/ +tests/storage/dual-signatures/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..715c1b6 --- /dev/null +++ b/README.md @@ -0,0 +1,131 @@ +# Contractless Web3 Wallet + +This repository contains the Contractless browser wallet, its browser-safe +cryptography and transaction codecs, and the JavaScript SDK used by websites +to communicate with the wallet. + +## Repository Structure + +```text +web3_wallet/ +|-- core/ Rust and WebAssembly wallet cryptography and transaction codecs +|-- extension/ Browser extension source and distributable wallet interface +|-- sdk/ JavaScript library for website and application integration +|-- tests/ Integration tests and complete working SDK usage examples +`-- mockups/ Design references used while developing the wallet interface +``` + +The components remain separated internally because they have different +responsibilities: + +- `core` handles deterministic hashing, keys, wallet encryption, transaction + inspection, encoding, signing, and message proofs. +- `extension` owns wallet storage, approvals, application sessions, API + communication, and the browser interface. +- `sdk` gives websites a stable interface for detecting, connecting to, and + requesting actions from the installed wallet. +- `tests` verifies wallet integration and provides complete working example + code for every supported SDK operation. + +The SDK can be published independently later without separating the wallet's +source today. + +## Build the Browser Extensions + +Install Rust, `wasm-pack`, Node.js, and pnpm. From `extension`: + +```text +pnpm install +pnpm run build +``` + +The build compiles separate testnet and mainnet versions of `core` to +`extension/src/wasm/testnet` and `extension/src/wasm/mainnet`. Both cores are +bundled into each browser package so the wallet can enforce the selected +network's address format and transaction codecs locally. Vite then creates +separate unpacked packages: + +```text +extension/dist/chrome/ +extension/dist/firefox/ +``` + +Build a single browser target with: + +```text +pnpm run build:chrome +pnpm run build:firefox +``` + +The wallet stores testnet and mainnet API URLs separately. Testnet defaults to +`https://api.contractless.dev`; mainnet remains unconfigured until a mainnet +API is available. Wallets and active website sessions are isolated by network, +and changing networks locks the active wallet. + +See `extension/README.md` for temporary installation, Firefox validation, +packaging, and Mozilla source-submission instructions. + +## Development Checks + +Run the Rust tests from `core`: + +```text +cargo test +``` + +Run the TypeScript check from `extension`: + +```text +pnpm run check +``` + +## Website Integration + +Websites should use `sdk/contractless.js` instead of communicating with the +injected browser provider directly. See `sdk/README.md` for connection, +session, message-signing, and transaction-signing examples. + +Private keys remain inside the extension. Websites receive only approved +addresses, signatures, signed transaction bytes, and session-scoped access +keys. + +## Integration Test + +The `tests/tests.html` page verifies that a website can detect the extension, +request a connection, retrieve the authorized wallet address, and disconnect +the temporary application session. It also contains editable, copyable, +end-to-end transaction examples for transfers, tokens, NFTs/RWAs, marketing, +burning, and vanity addresses. Successful requests display the +returned transaction ID, complete signed bytes, byte count, and API broadcast +reply. + +The tests are also the complete example-code documentation for using the SDK. +Each available wallet action includes working source that developers can view, +copy, and adapt directly for their own applications. This covers wallet +detection, connection and session handling, address and balance requests, +message signing, single-signature transactions, data transactions, and the +complete dual-signature swap and loan process. + +The dual-signature examples use the included PHP JSON storage endpoint. Serve +the repository from its root directory with PHP: + +```text +php -S 127.0.0.1:8080 -t . +``` + +Then open: + +```text +http://127.0.0.1:8080/tests/tests.html +``` + +PHP creates `tests/storage/dual-signatures/.json` when the +first wallet signs. The second wallet loads and updates that record, and the +broadcast example loads both signatures from it. The web-server user must be +able to write to `tests/storage`. JSON is used only to keep the example easy +to follow; applications can use any backend language or database. + +The unpacked browser extension must be installed and the wallet must be +unlocked before approving the connection request. Opening the page through a +`file://` URL is intentionally unsupported because it has no trustworthy +website origin. diff --git a/core/Cargo.lock b/core/Cargo.lock new file mode 100644 index 0000000..b6a5298 --- /dev/null +++ b/core/Cargo.lock @@ -0,0 +1,1066 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "async-trait" +version = "0.1.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae36dc4177970ef04fde5178d3e2429882def40e57a451f919c098f72baa6cec" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytemuck" +version = "1.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[package]] +name = "contractless-browser-core" +version = "0.1.0" +dependencies = [ + "aes", + "aes-gcm", + "base64", + "cbc", + "falcon-rs", + "fn-dsa", + "getrandom", + "hex", + "hmac", + "image", + "pbkdf2", + "rand", + "ripemd", + "serde", + "serde-wasm-bindgen", + "serde_json", + "sha2", + "skein", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-test", + "zeroize", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "deflate" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid", + "crypto-common 0.2.2", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "falcon-rs" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f667f04b165f849d6b7cba41b58b8b092556b253051e30062b1233aed7489969" +dependencies = [ + "getrandom", + "libm", + "zeroize", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fn-dsa" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb39d94be3f4538ccfdf23dc69a89904c9b802331b1975538fcc251973593f9" +dependencies = [ + "fn-dsa-comm", + "fn-dsa-kgen", + "fn-dsa-sign", + "fn-dsa-vrfy", +] + +[[package]] +name = "fn-dsa-comm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28104bba227c79bff8ffe34dff7c5a5631fd790dfd4d4f0a84b01952ef7c6f46" +dependencies = [ + "cpufeatures", + "rand_core", +] + +[[package]] +name = "fn-dsa-kgen" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a04fe82799cc1550d32778b415648d1962a7b4b4860ff5f2e6ca32494fc9aa" +dependencies = [ + "fn-dsa-comm", + "zeroize", +] + +[[package]] +name = "fn-dsa-sign" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ffb7d9c94e56de7e64019849b3b6110b1495690da2e9e1decef8f1744b3bab4" +dependencies = [ + "fn-dsa-comm", + "zeroize", +] + +[[package]] +name = "fn-dsa-vrfy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc96b904b213160c8804cc2642ccd15cb968318a64648fc5ca3edab9153cda2b" +dependencies = [ + "fn-dsa-comm", +] + +[[package]] +name = "futures-core" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" + +[[package]] +name = "futures-task" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" + +[[package]] +name = "futures-util" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hybrid-array" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c" +dependencies = [ + "typenum", +] + +[[package]] +name = "image" +version = "0.23.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-iter", + "num-rational", + "num-traits", + "png", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "js-sys" +version = "0.3.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "libc" +version = "0.2.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "minicov" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4869b6a491569605d66d3952bcdf03df789e5b536e5f0cf7758a7f08a55ae24d" +dependencies = [ + "cc", + "walkdir", +] + +[[package]] +name = "miniz_oxide" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" +dependencies = [ + "adler32", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "oorandom" +version = "11.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "png" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +dependencies = [ + "bitflags", + "crc32fast", + "deflate", + "miniz_oxide", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "ripemd" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dd4211456b4172d7e44261920c25acf07367c4f04bb5f5d54fc21b090d9b159" +dependencies = [ + "digest 0.11.3", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "indexmap", + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "skein" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a90a220ab98dbbfeabeae7c558a79f37839c10b9ef55c77082a741a463cab7" +dependencies = [ + "digest 0.10.7", + "threefish", +] + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "2.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "threefish" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a693d0c8cf16973fac5a93fbe47b8c6452e7097d4fcac49f3d7a18e39c76e62e" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.119", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-bindgen-test" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0d555ca874445df8d314f94f5c948a4e74e5418f332c89f660a3d8310a96f4" +dependencies = [ + "async-trait", + "cast", + "js-sys", + "libm", + "minicov", + "nu-ansi-term", + "num-traits", + "oorandom", + "serde", + "serde_json", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test-macro", + "wasm-bindgen-test-shared", +] + +[[package]] +name = "wasm-bindgen-test-macro" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94eb68555b95bcea5e8cf4abe280b529049479fa995bfc23734af96a6aedc120" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "wasm-bindgen-test-shared" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31d56021e873866c968588ed85ccdf56db5c426e44afdb4618c39895104b920" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "zerocopy" +version = "0.8.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/core/Cargo.toml b/core/Cargo.toml new file mode 100644 index 0000000..7999f3d --- /dev/null +++ b/core/Cargo.toml @@ -0,0 +1,40 @@ +[package] +name = "contractless-browser-core" +version = "0.1.0" +edition = "2021" +description = "Browser-compatible cryptography and transaction codecs for Contractless" +license = "MIT" + +[lib] +crate-type = ["cdylib", "rlib"] + +[features] +default = ["testnet"] +mainnet = [] +testnet = [] + +[dependencies] +aes = "0.8" +aes-gcm = "0.10" +base64 = "0.22" +cbc = { version = "0.1", features = ["alloc", "block-padding"] } +falcon-rs = "0.2.4" +fn-dsa = "0.3.0" +getrandom = { version = "0.2", features = ["js"] } +hex = "0.4" +hmac = "0.12" +image = { version = "0.23", default-features = false, features = ["png"] } +pbkdf2 = "0.12" +rand = "0.8" +ripemd = { version = "0.2.0-rc.0" } +serde = { version = "1", features = ["derive"] } +serde-wasm-bindgen = "0.6" +serde_json = { version = "1", features = ["arbitrary_precision", "preserve_order"] } +sha2 = "0.10" +skein = "0.1.0" +thiserror = "2" +wasm-bindgen = "0.2" +zeroize = { version = "1", features = ["zeroize_derive"] } + +[dev-dependencies] +wasm-bindgen-test = "0.3" diff --git a/core/README.md b/core/README.md new file mode 100644 index 0000000..5fa26d6 --- /dev/null +++ b/core/README.md @@ -0,0 +1,84 @@ +# Contractless Browser Core + +The `core` directory contains the deterministic cryptography and transaction +codec layer for the Contractless Web3 wallet. Its Rust crate and generated +WASM package retain the name `contractless-browser-core`. + +The crate is intentionally independent from the Contractless node runtime. It +does not connect to RPC servers, broadcast transactions, access PostgreSQL or +Sled, run Tokio tasks, or read files from the operating system. + +The browser wallet is responsible for: + +- obtaining wallet files through browser file APIs; +- keeping decrypted private keys inside the extension; +- presenting transaction details for user approval; +- calling this package to hash, sign, verify, and encode transactions; and +- sending signed transaction bytes to a configured Contractless PHP API. + +The initial API exposes: + +- Skein-128, Skein-256, and Skein-512 hashing; +- FN-DSA signing and verification; +- public-key to short-address derivation; and +- short-address byte encoding and decoding. +- signed transfer creation and fixed 750-byte transfer decoding. +- strict inspection and signing for every externally submitted transaction type; +- signer-role checks against the wallet public key; +- staged signing for swaps and loans; and +- exact fixed-width wire encoding for completed transactions. +- domain-separated website message signing and verification. +- browser-native wallet generation and AES-256-GCM encrypted storage; +- direct import from existing Contractless private-key images; +- direct import from hexadecimal FN-DSA private keys; +- export compatibility with existing Contractless wallet images; and +- wallet-registration payload creation. + +Browser transfer inputs use decimal strings for `value` and `txfee`. This +prevents JavaScript's numeric precision limit from changing a signed `u64` +value. + +Fixed transaction codecs will be added individually and tested against the +native Contractless implementation before they are used by the wallet. + +## Wallet storage + +New browser wallets encrypt their FN-DSA private key with AES-256-GCM. The key +is derived from the wallet password with PBKDF2-SHA256 and a unique random +salt. Only the encrypted wallet JSON is stored persistently by the extension. + +Existing Contractless wallet files can be imported with their encryption key. +Browser wallets can also be exported back to the existing wallet image format +for use with the CLI or desktop wallet. The encrypted browser-wallet backup and +its password are both required for recovery. + +## Transaction request flow + +Websites submit unsigned transaction JSON to `inspect_transaction_request`. +The core rejects unsupported types, missing fields, extra fields, invalid +addresses, incorrect fixed-width values, and malformed numeric values. The +returned review object is the canonical data the wallet must show to the user. + +After approval, `sign_transaction_request` receives the wallet private and +public keys. The public key determines the wallet address, and that address +must match the signer role stored in the transaction. + +For swaps and loans, signer two must also provide signer one's registered +public key. The core verifies the first signature before adding the second. +Only a complete transaction receives `bytes_hex` suitable for broadcasting. + +Genesis and mining reward transactions are intentionally excluded from the +signing registry because users and websites must never create them. + +## Website message proofs + +`sign_message_request` signs a short-lived website proof without creating a +transaction. The signed payload contains the requesting origin, wallet +address, message, random nonce, issue time, and expiration time. + +Message proofs use a Contractless-specific domain prefix. Their signatures +cannot be reused as transaction signatures. Proofs are limited to 15 minutes, +and production origins must use HTTPS. + +`verify_message_proof` verifies the public key, derived wallet address, +signature, expected origin, expected nonce, and current validity window. diff --git a/core/src/address.rs b/core/src/address.rs new file mode 100644 index 0000000..12a9d65 --- /dev/null +++ b/core/src/address.rs @@ -0,0 +1,131 @@ +use ripemd::{Digest, Ripemd160}; + +use crate::crypto::skein_256; +use crate::error::BrowserCoreError; +use crate::{PUBLIC_KEY_LENGTH, REQUIRED_PUBLIC_KEY_HASH_BYTE}; + +const SHORT_ADDRESS_HASH_BYTES: usize = 20; +const SHORT_ADDRESS_BYTES: usize = 22; + +pub fn network_byte() -> u8 { + if cfg!(feature = "mainnet") { + 0b0000_0001 + } else { + 0b0000_0010 + } +} + +pub fn network_suffix() -> &'static str { + if cfg!(feature = "mainnet") { + "clc" + } else { + "cltc" + } +} + +pub fn valid_public_key(public_key: &[u8]) -> bool { + public_key.len() == PUBLIC_KEY_LENGTH + && public_key.first() == Some(&9) + && skein_256(public_key) + .first() + .is_some_and(|byte| *byte == REQUIRED_PUBLIC_KEY_HASH_BYTE) +} + +pub fn public_key_to_short_address(public_key: &[u8]) -> Result { + if !valid_public_key(public_key) { + return Err(BrowserCoreError::InvalidPublicKey); + } + let payload = Ripemd160::digest(skein_256(public_key)); + Ok(format!("{}.{}", hex::encode(payload), network_suffix())) +} + +pub fn short_address_to_bytes(address: &str) -> Result, BrowserCoreError> { + let (payload, suffix) = address + .rsplit_once('.') + .ok_or_else(|| BrowserCoreError::InvalidAddress(address.to_string()))?; + if !suffix.eq_ignore_ascii_case(network_suffix()) || payload.len() != 40 { + return Err(BrowserCoreError::InvalidAddress(address.to_string())); + } + let decoded = + hex::decode(payload).map_err(|_| BrowserCoreError::InvalidAddress(address.to_string()))?; + if decoded.len() != SHORT_ADDRESS_HASH_BYTES { + return Err(BrowserCoreError::InvalidAddress(address.to_string())); + } + let mut bytes = Vec::with_capacity(SHORT_ADDRESS_BYTES); + bytes.extend_from_slice(&decoded); + bytes.push(b'.'); + bytes.push(network_byte()); + Ok(bytes) +} + +pub fn bytes_to_short_address(bytes: &[u8]) -> Result { + if bytes.len() != SHORT_ADDRESS_BYTES + || bytes[SHORT_ADDRESS_HASH_BYTES] != b'.' + || bytes[SHORT_ADDRESS_BYTES - 1] != network_byte() + { + return Err(BrowserCoreError::InvalidAddress(hex::encode(bytes))); + } + Ok(format!( + "{}.{}", + hex::encode(&bytes[..SHORT_ADDRESS_HASH_BYTES]), + network_suffix() + )) +} + +pub fn vanity_address_to_bytes(address: &str) -> Result, BrowserCoreError> { + let normalized = normalize_vanity_address(address)?; + let (payload, _) = normalized + .rsplit_once('.') + .ok_or_else(|| BrowserCoreError::InvalidAddress(address.to_string()))?; + let mut bytes = payload.as_bytes().to_vec(); + bytes.push(b'.'); + bytes.push(network_byte()); + Ok(bytes) +} + +pub fn normalize_vanity_address(address: &str) -> Result { + let (payload, suffix) = address + .rsplit_once('.') + .ok_or_else(|| BrowserCoreError::InvalidAddress(address.to_string()))?; + let visible = payload.trim(); + if !suffix.eq_ignore_ascii_case(network_suffix()) + || visible.is_empty() + || visible.len() > SHORT_ADDRESS_HASH_BYTES + || !visible + .chars() + .all(|character| character.is_ascii_alphabetic()) + { + return Err(BrowserCoreError::InvalidAddress(address.to_string())); + } + + Ok(format!( + "{:>width$}.{}", + visible.to_ascii_lowercase(), + network_suffix(), + width = SHORT_ADDRESS_HASH_BYTES + )) +} + +#[cfg(test)] +mod tests { + use super::{network_suffix, normalize_vanity_address, vanity_address_to_bytes}; + + #[test] + fn vanity_address_is_left_padded_and_lowercased() { + let input = format!("BruceBates.{}", network_suffix()); + let normalized = normalize_vanity_address(&input).unwrap(); + + assert_eq!( + normalized, + format!(" brucebates.{}", network_suffix()) + ); + assert_eq!(vanity_address_to_bytes(&input).unwrap().len(), 22); + } + + #[test] + fn vanity_address_rejects_non_letters() { + let input = format!("bruce123.{}", network_suffix()); + + assert!(normalize_vanity_address(&input).is_err()); + } +} diff --git a/core/src/crypto.rs b/core/src/crypto.rs new file mode 100644 index 0000000..8c1545c --- /dev/null +++ b/core/src/crypto.rs @@ -0,0 +1,54 @@ +use fn_dsa::{ + SigningKey, SigningKeyStandard, VerifyingKey, VerifyingKeyStandard, DOMAIN_NONE, HASH_ID_RAW, +}; +use rand::thread_rng; +use skein::digest::consts::{U32, U64}; +use skein::digest::{Digest, Output}; +use skein::{Skein256, Skein512}; + +use crate::error::BrowserCoreError; +use crate::SIGNATURE_LENGTH; + +pub fn skein_128(data: &[u8]) -> Vec { + let mut hasher = Skein256::new(); + hasher.update(data); + let result: Output = hasher.finalize(); + result.iter().step_by(2).copied().collect() +} + +pub fn skein_256(data: &[u8]) -> Vec { + let mut hasher = Skein256::::new(); + hasher.update(data); + hasher.finalize().to_vec() +} + +pub fn skein_512(data: &[u8]) -> Vec { + let mut hasher = Skein512::::new(); + hasher.update(data); + hasher.finalize().to_vec() +} + +pub fn sign(message: &[u8], private_key: &[u8]) -> Result, BrowserCoreError> { + let mut signing_key = + SigningKeyStandard::decode(private_key).ok_or(BrowserCoreError::InvalidPrivateKey)?; + let mut signature = vec![0u8; SIGNATURE_LENGTH]; + let mut rng = thread_rng(); + signing_key.sign( + &mut rng, + &DOMAIN_NONE, + &HASH_ID_RAW, + message, + &mut signature, + ); + Ok(signature) +} + +pub fn verify(message: &[u8], signature: &[u8], public_key: &[u8]) -> bool { + if signature.len() != SIGNATURE_LENGTH { + return false; + } + let Some(verifying_key) = VerifyingKeyStandard::decode(public_key) else { + return false; + }; + verifying_key.verify(signature, &DOMAIN_NONE, &HASH_ID_RAW, message) +} diff --git a/core/src/error.rs b/core/src/error.rs new file mode 100644 index 0000000..7f06f1f --- /dev/null +++ b/core/src/error.rs @@ -0,0 +1,30 @@ +use thiserror::Error; +use wasm_bindgen::JsValue; + +#[derive(Debug, Error)] +pub enum BrowserCoreError { + #[error("invalid hex value: {0}")] + InvalidHex(String), + #[error("invalid FN-DSA private key")] + InvalidPrivateKey, + #[error("invalid FN-DSA public key")] + InvalidPublicKey, + #[error("invalid FN-DSA signature")] + InvalidSignature, + #[error("invalid Contractless address: {0}")] + InvalidAddress(String), + #[error("invalid transfer transaction: {0}")] + InvalidTransfer(String), + #[error("JSON serialization failed: {0}")] + Json(String), + #[error("unsupported transaction type: {0}")] + UnsupportedTransaction(u8), + #[error("invalid transaction request: {0}")] + InvalidRequest(String), +} + +impl From for JsValue { + fn from(error: BrowserCoreError) -> Self { + JsValue::from_str(&error.to_string()) + } +} diff --git a/core/src/legacy_wallet.rs b/core/src/legacy_wallet.rs new file mode 100644 index 0000000..9073dbe --- /dev/null +++ b/core/src/legacy_wallet.rs @@ -0,0 +1,264 @@ +use aes::Aes128; +use base64::{engine::general_purpose::STANDARD, Engine}; +use cbc::cipher::{block_padding::Pkcs7, BlockDecryptMut, BlockEncryptMut, KeyIvInit}; +use hmac::{Hmac, Mac}; +use image::{png::PngEncoder, ColorType, ImageBuffer, Rgba}; +use sha2::Sha256; + +use crate::error::BrowserCoreError; + +type Aes128CbcEnc = cbc::Encryptor; +type Aes128CbcDec = cbc::Decryptor; +type HmacSha256 = Hmac; + +const WIDTH: u32 = 350; +const HEIGHT: u32 = 350; +const ANCHORS: [u32; 11] = [0, 35, 70, 105, 140, 175, 210, 245, 280, 315, 349]; +const HEADER: usize = 4; +const CAPACITY: usize = ANCHORS.len() * WIDTH as usize - HEADER; + +const COLORS: &[(char, (u8, u8, u8))] = &[ + ('a', (204, 180, 194)), + ('A', (255, 255, 255)), + ('b', (197, 186, 201)), + ('B', (221, 206, 212)), + ('c', (181, 185, 193)), + ('C', (184, 201, 223)), + ('d', (224, 218, 192)), + ('D', (185, 191, 195)), + ('e', (181, 197, 198)), + ('E', (193, 206, 255)), + ('f', (252, 193, 211)), + ('F', (183, 192, 229)), + ('g', (180, 191, 192)), + ('G', (187, 219, 189)), + ('h', (195, 187, 234)), + ('H', (182, 216, 189)), + ('i', (197, 183, 248)), + ('I', (200, 182, 204)), + ('j', (255, 235, 196)), + ('J', (194, 186, 228)), + ('k', (199, 238, 239)), + ('K', (208, 247, 234)), + ('l', (244, 214, 189)), + ('L', (187, 243, 239)), + ('m', (188, 231, 238)), + ('M', (187, 197, 227)), + ('n', (186, 240, 191)), + ('N', (187, 198, 206)), + ('o', (205, 193, 184)), + ('O', (191, 187, 197)), + ('p', (194, 200, 206)), + ('P', (195, 183, 229)), + ('q', (182, 219, 196)), + ('Q', (238, 216, 184)), + ('r', (199, 181, 208)), + ('R', (239, 231, 198)), + ('s', (189, 188, 230)), + ('S', (242, 192, 230)), + ('t', (199, 199, 199)), + ('T', (188, 190, 230)), + ('u', (230, 180, 253)), + ('U', (241, 247, 247)), + ('v', (242, 190, 199)), + ('V', (230, 247, 234)), + ('w', (197, 186, 249)), + ('W', (194, 247, 249)), + ('x', (242, 182, 246)), + ('X', (188, 222, 193)), + ('y', (188, 194, 183)), + ('Y', (197, 195, 197)), + ('z', (187, 249, 240)), + ('Z', (233, 231, 242)), + ('0', (195, 184, 218)), + ('1', (232, 180, 196)), + ('2', (191, 193, 196)), + ('3', (185, 186, 186)), + ('4', (191, 247, 180)), + ('5', (187, 199, 248)), + ('6', (248, 198, 184)), + ('7', (243, 195, 184)), + ('8', (232, 192, 208)), + ('9', (239, 197, 183)), + ('/', (199, 187, 241)), + ('+', (195, 216, 223)), + ('=', (193, 211, 184)), +]; + +pub fn decrypt_private_key(image_base64: &str, password: &str) -> Result { + let encrypted = decode_image(image_base64)?; + let packed = STANDARD.decode(encrypted).map_err(|_| { + BrowserCoreError::InvalidRequest("legacy wallet encryption is invalid".into()) + })?; + if packed.len() < 49 { + return Err(BrowserCoreError::InvalidRequest( + "legacy wallet payload is too short".into(), + )); + } + let key = normalized_key(password); + let (iv, remainder) = packed.split_at(16); + let (expected_hmac, ciphertext) = remainder.split_at(32); + let mut mac = HmacSha256::new_from_slice(&key).unwrap(); + mac.update(ciphertext); + mac.verify_slice(expected_hmac).map_err(|_| { + BrowserCoreError::InvalidRequest("wallet password or integrity check failed".into()) + })?; + let plaintext = Aes128CbcDec::new_from_slices(&key, iv) + .unwrap() + .decrypt_padded_vec_mut::(ciphertext) + .map_err(|_| BrowserCoreError::InvalidRequest("wallet decryption failed".into()))?; + String::from_utf8(plaintext) + .map_err(|_| BrowserCoreError::InvalidRequest("wallet private key is not UTF-8".into())) +} + +pub fn encrypt_private_key(private_key: &str, password: &str) -> Result { + if private_key.len() < 10 { + return Err(BrowserCoreError::InvalidPrivateKey); + } + let key = normalized_key(password); + let iv_text = STANDARD.encode(&private_key.as_bytes()[..10]); + let iv = iv_text.as_bytes(); + let ciphertext = Aes128CbcEnc::new_from_slices(&key, iv) + .unwrap() + .encrypt_padded_vec_mut::(private_key.as_bytes()); + let mut mac = HmacSha256::new_from_slice(&key).unwrap(); + mac.update(&ciphertext); + let mut packed = Vec::with_capacity(48 + ciphertext.len()); + packed.extend_from_slice(iv); + packed.extend_from_slice(&mac.finalize().into_bytes()); + packed.extend_from_slice(&ciphertext); + encode_image(&STANDARD.encode(packed)) +} + +fn normalized_key(password: &str) -> [u8; 16] { + let mut key = [0u8; 16]; + let bytes = password.as_bytes(); + key[..bytes.len().min(16)].copy_from_slice(&bytes[..bytes.len().min(16)]); + key +} + +fn vivid((r, g, b): (u8, u8, u8)) -> (u8, u8, u8) { + let average = (r as f32 + g as f32 + b as f32) / 3.0; + let apply = |value: u8| { + let saturated = average + ((value as f32 - average) * 2.35); + (((saturated - 128.0) * 1.12) + 128.0 - 18.0) + .clamp(0.0, 255.0) + .round() as u8 + }; + (apply(r), apply(g), apply(b)) +} + +fn color(character: char) -> Option<(u8, u8, u8)> { + COLORS + .iter() + .find(|(candidate, _)| *candidate == character) + .map(|(_, value)| vivid(*value)) +} + +fn character(rgb: (u8, u8, u8)) -> Option { + COLORS + .iter() + .find(|(_, value)| vivid(*value) == rgb) + .map(|(character, _)| *character) +} + +fn decode_image(image_base64: &str) -> Result { + let bytes = STANDARD + .decode(image_base64) + .map_err(|_| BrowserCoreError::InvalidRequest("wallet image is not valid base64".into()))?; + let image = image::load_from_memory_with_format(&bytes, image::ImageFormat::Png) + .map_err(|_| BrowserCoreError::InvalidRequest("wallet image is not a PNG".into()))? + .to_rgba8(); + if image.width() != WIDTH || image.height() != HEIGHT { + return Err(BrowserCoreError::InvalidRequest( + "wallet image dimensions are invalid".into(), + )); + } + let mut text = String::with_capacity(ANCHORS.len() * WIDTH as usize); + for row in ANCHORS { + for x in 0..WIDTH { + let pixel = image.get_pixel(x, row).0; + text.push(character((pixel[0], pixel[1], pixel[2])).ok_or_else(|| { + BrowserCoreError::InvalidRequest( + "wallet image contains an unknown anchor color".into(), + ) + })?); + } + } + let length = text + .get(..HEADER) + .and_then(|value| value.parse::().ok()) + .ok_or_else(|| { + BrowserCoreError::InvalidRequest("wallet image length header is invalid".into()) + })?; + text.get(HEADER..HEADER + length) + .map(str::to_owned) + .ok_or_else(|| { + BrowserCoreError::InvalidRequest("wallet image payload is incomplete".into()) + }) +} + +fn encode_image(ciphertext: &str) -> Result { + if ciphertext.len() > CAPACITY { + return Err(BrowserCoreError::InvalidRequest( + "encrypted wallet exceeds image capacity".into(), + )); + } + let payload = format!("{:04}{}", ciphertext.len(), ciphertext); + let chars: Vec = payload.chars().collect(); + let slot_count = ANCHORS.len() * WIDTH as usize; + let slots: Vec = (0..slot_count) + .map(|index| chars[index % chars.len()]) + .collect(); + let mut image: ImageBuffer, Vec> = ImageBuffer::new(WIDTH, HEIGHT); + for x in 0..WIDTH as usize { + for anchor in 0..ANCHORS.len() - 1 { + let upper_y = ANCHORS[anchor]; + let lower_y = ANCHORS[anchor + 1]; + let upper = color(slots[anchor * WIDTH as usize + x]).unwrap(); + let lower = color(slots[(anchor + 1) * WIDTH as usize + x]).unwrap(); + let distance = lower_y - upper_y; + for y in upper_y..=lower_y { + let ratio = (y - upper_y) as f32 / distance as f32; + let blend = |start: u8, end: u8| { + (start as f32 + ((end as f32 - start as f32) * ratio)).round() as u8 + }; + image.put_pixel( + x as u32, + y, + Rgba([ + blend(upper.0, lower.0), + blend(upper.1, lower.1), + blend(upper.2, lower.2), + 255, + ]), + ); + } + } + } + let mut png = Vec::new(); + PngEncoder::new(&mut png) + .encode(image.as_raw(), WIDTH, HEIGHT, ColorType::Rgba8) + .map_err(|_| BrowserCoreError::InvalidRequest("failed to encode wallet image".into()))?; + Ok(STANDARD.encode(png)) +} + +#[cfg(test)] +mod tests { + use super::{decrypt_private_key, encrypt_private_key}; + + #[test] + fn legacy_private_key_image_round_trips() { + let private_key = "ab".repeat(1281); + let encrypted = encrypt_private_key(&private_key, "correct horse battery staple").unwrap(); + let decrypted = decrypt_private_key(&encrypted, "correct horse battery staple").unwrap(); + assert_eq!(decrypted, private_key); + } + + #[test] + fn legacy_private_key_image_rejects_wrong_password() { + let private_key = "cd".repeat(1281); + let encrypted = encrypt_private_key(&private_key, "correct horse battery staple").unwrap(); + assert!(decrypt_private_key(&encrypted, "this password is incorrect").is_err()); + } +} diff --git a/core/src/lib.rs b/core/src/lib.rs new file mode 100644 index 0000000..1c88b0e --- /dev/null +++ b/core/src/lib.rs @@ -0,0 +1,347 @@ +#[cfg(all(feature = "mainnet", feature = "testnet"))] +compile_error!("contractless-browser-core must be built for exactly one network"); + +#[cfg(not(any(feature = "mainnet", feature = "testnet")))] +compile_error!("contractless-browser-core requires either the mainnet or testnet feature"); + +mod address; +mod crypto; +mod error; +mod legacy_wallet; +mod message; +mod registry; +mod transfer; +mod wallet; + +use wasm_bindgen::prelude::*; + +use error::BrowserCoreError; + +pub const PUBLIC_KEY_LENGTH: usize = 897; +pub const PRIVATE_KEY_LENGTH: usize = 1281; +pub const SIGNATURE_LENGTH: usize = 666; +pub const REQUIRED_PUBLIC_KEY_HASH_BYTE: u8 = 239; + +fn decode_hex(value: &str) -> Result, BrowserCoreError> { + hex::decode(value).map_err(|error| BrowserCoreError::InvalidHex(error.to_string())) +} + +#[wasm_bindgen] +pub fn skein_128_hex(data: &[u8]) -> String { + hex::encode(crypto::skein_128(data)) +} + +#[wasm_bindgen] +pub fn skein_256_hex(data: &[u8]) -> String { + hex::encode(crypto::skein_256(data)) +} + +#[wasm_bindgen] +pub fn skein_512_hex(data: &[u8]) -> String { + hex::encode(crypto::skein_512(data)) +} + +#[wasm_bindgen] +pub fn verify_bytes_hex( + message: &[u8], + signature_hex: &str, + public_key_hex: &str, +) -> Result { + let signature = decode_hex(signature_hex)?; + let public_key = decode_hex(public_key_hex)?; + Ok(crypto::verify(message, &signature, &public_key)) +} + +#[wasm_bindgen] +pub fn verify_hash_hex( + hash_hex: &str, + signature_hex: &str, + public_key_hex: &str, +) -> Result { + let hash = decode_hex(hash_hex)?; + verify_bytes_hex(&hash, signature_hex, public_key_hex) +} + +#[wasm_bindgen] +pub fn public_key_to_short_address(public_key_hex: &str) -> Result { + let public_key = decode_hex(public_key_hex)?; + Ok(address::public_key_to_short_address(&public_key)?) +} + +#[wasm_bindgen] +pub fn short_address_to_bytes(address: &str) -> Result, JsValue> { + Ok(address::short_address_to_bytes(address)?) +} + +#[wasm_bindgen] +pub fn bytes_to_short_address(bytes: &[u8]) -> Result { + Ok(address::bytes_to_short_address(bytes)?) +} + +#[wasm_bindgen] +pub fn decode_transfer(transaction_hex: &str) -> Result { + let bytes = decode_hex(transaction_hex)?; + let transfer = transfer::SignedTransfer::from_bytes(&bytes)?; + serde_json::to_string(&transfer.browser_output()?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn decode_transaction(transaction_hex: &str) -> Result { + let bytes = decode_hex(transaction_hex)?; + if bytes.is_empty() { + return Err(BrowserCoreError::InvalidRequest("transaction bytes were empty".into()).into()); + } + + let decoded = match bytes[0] { + 0 => { + if bytes.len() != 49 { + return Err(BrowserCoreError::InvalidRequest( + "genesis transaction must contain exactly 49 bytes".into(), + ) + .into()); + } + let message = std::str::from_utf8(&bytes[1..]) + .map_err(|_| BrowserCoreError::InvalidRequest("invalid genesis message".into()))? + .trim_end_matches(|character| character == '\0' || character == ' '); + serde_json::json!({ + "txtype": 0, + "transaction_name": "Genesis", + "fields": { + "txtype": 0, + "message": message + }, + "stored_hash": null, + "signature": null, + "signature1": null, + "signature2": null + }) + } + 1 => { + if bytes.len() != 13 { + return Err(BrowserCoreError::InvalidRequest( + "reward transaction must contain exactly 13 bytes".into(), + ) + .into()); + } + let timestamp = u32::from_le_bytes(bytes[1..5].try_into().unwrap()); + let value = u64::from_le_bytes(bytes[5..13].try_into().unwrap()); + serde_json::json!({ + "txtype": 1, + "transaction_name": "Mining Reward", + "fields": { + "txtype": 1, + "timestamp": timestamp, + "value": value.to_string() + }, + "stored_hash": null, + "signature": null, + "signature1": null, + "signature2": null + }) + } + _ => serde_json::to_value(registry::decode_transaction(&bytes)?) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?, + }; + + serde_json::to_string(&decoded) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn inspect_transaction_request(request_json: &str) -> Result { + let request: serde_json::Value = serde_json::from_str(request_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + serde_json::to_string(®istry::inspect(&request)?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn sign_transaction_request( + request_json: &str, + private_key_hex: &str, + public_key_hex: &str, + signer_slot: u8, +) -> Result { + let request: serde_json::Value = serde_json::from_str(request_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + let private_key = decode_hex(private_key_hex)?; + let public_key = decode_hex(public_key_hex)?; + serde_json::to_string(®istry::sign_request( + &request, + &private_key, + &public_key, + signer_slot, + )?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn complete_dual_transaction_request( + request_json: &str, + signature1_hex: &str, + public_key1_hex: &str, + signature2_hex: &str, + public_key2_hex: &str, +) -> Result { + let request: serde_json::Value = serde_json::from_str(request_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + let public_key1 = decode_hex(public_key1_hex)?; + let public_key2 = decode_hex(public_key2_hex)?; + serde_json::to_string(®istry::complete_dual_request( + &request, + signature1_hex, + &public_key1, + signature2_hex, + &public_key2, + )?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn transaction_type_registry() -> Result { + serde_json::to_string(®istry::entries()) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn generate_browser_wallet(password: &str) -> Result { + serde_json::to_string_pretty(&wallet::generate(password)?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn unlock_browser_wallet(wallet_json: &str, password: &str) -> Result { + let wallet: wallet::BrowserWallet = serde_json::from_str(wallet_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + serde_json::to_string(&wallet::unlock(&wallet, password)?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn import_legacy_wallet( + legacy_wallet_json: &str, + legacy_password: &str, + browser_password: &str, +) -> Result { + let legacy: wallet::LegacySavedWallet = serde_json::from_str(legacy_wallet_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + serde_json::to_string_pretty(&wallet::import_legacy( + &legacy, + legacy_password, + browser_password, + )?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn import_private_key_image( + image_base64: &str, + image_password: &str, + browser_password: &str, +) -> Result { + serde_json::to_string_pretty(&wallet::import_private_key_image( + image_base64, + image_password, + browser_password, + )?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn import_private_key( + private_key_hex: &str, + browser_password: &str, +) -> Result { + serde_json::to_string_pretty(&wallet::import_private_key( + private_key_hex, + browser_password, + )?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn export_legacy_wallet( + browser_wallet_json: &str, + browser_password: &str, + legacy_password: &str, +) -> Result { + let wallet: wallet::BrowserWallet = serde_json::from_str(browser_wallet_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + serde_json::to_string_pretty(&wallet::export_legacy( + &wallet, + browser_password, + legacy_password, + )?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn create_wallet_registration( + browser_wallet_json: &str, + password: &str, +) -> Result { + let wallet: wallet::BrowserWallet = serde_json::from_str(browser_wallet_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + serde_json::to_string(&wallet::registration(&wallet, password)?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn create_wallet_registration_from_keys( + short_address: &str, + public_key_hex: &str, + private_key_hex: &str, +) -> Result { + serde_json::to_string(&wallet::registration_from_keys( + short_address, + public_key_hex, + private_key_hex, + )?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn create_handshake_proof( + public_key_hex: &str, + private_key_hex: &str, +) -> Result { + Ok(wallet::handshake_proof(public_key_hex, private_key_hex)?) +} + +#[wasm_bindgen] +pub fn sign_message_request( + request_json: &str, + private_key_hex: &str, + public_key_hex: &str, +) -> Result { + let request: message::MessageRequest = serde_json::from_str(request_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + let private_key = decode_hex(private_key_hex)?; + let public_key = decode_hex(public_key_hex)?; + serde_json::to_string(&message::sign(request, &private_key, &public_key)?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} + +#[wasm_bindgen] +pub fn verify_message_proof( + proof_json: &str, + expected_origin: &str, + expected_nonce: &str, + current_time: &str, +) -> Result { + let proof: message::MessageProof = serde_json::from_str(proof_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + let current_time = current_time.parse::().map_err(|_| { + BrowserCoreError::InvalidRequest( + "current_time must be an unsigned decimal timestamp".into(), + ) + })?; + serde_json::to_string(&message::verify( + proof, + expected_origin, + expected_nonce, + current_time, + )?) + .map_err(|error| BrowserCoreError::Json(error.to_string()).into()) +} diff --git a/core/src/message.rs b/core/src/message.rs new file mode 100644 index 0000000..5dd7af3 --- /dev/null +++ b/core/src/message.rs @@ -0,0 +1,263 @@ +use serde::{Deserialize, Serialize}; + +use crate::address; +use crate::crypto; +use crate::error::BrowserCoreError; +use crate::{PRIVATE_KEY_LENGTH, PUBLIC_KEY_LENGTH, SIGNATURE_LENGTH}; + +const MESSAGE_DOMAIN: &[u8] = b"CONTRACTLESS_WEB_MESSAGE_V1\0"; +const MAX_MESSAGE_BYTES: usize = 4096; +const MAX_ORIGIN_BYTES: usize = 255; +const MIN_NONCE_BYTES: usize = 16; +const MAX_PROOF_LIFETIME_SECONDS: u64 = 15 * 60; + +#[derive(Debug, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct MessageRequest { + pub origin: String, + pub message: String, + pub nonce: String, + pub issued_at: u64, + pub expires_at: u64, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct MessagePayload { + pub version: u8, + pub origin: String, + pub address: String, + pub message: String, + pub nonce: String, + pub issued_at: u64, + pub expires_at: u64, +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct MessageProof { + pub payload: MessagePayload, + pub public_key: String, + pub hash: String, + pub signature: String, +} + +#[derive(Debug, Serialize)] +pub struct MessageVerification { + pub valid: bool, + pub address: String, + pub origin: String, + pub message: String, + pub nonce: String, + pub issued_at: u64, + pub expires_at: u64, +} + +pub fn sign( + request: MessageRequest, + private_key: &[u8], + public_key: &[u8], +) -> Result { + if private_key.len() != PRIVATE_KEY_LENGTH { + return Err(BrowserCoreError::InvalidPrivateKey); + } + if public_key.len() != PUBLIC_KEY_LENGTH { + return Err(BrowserCoreError::InvalidPublicKey); + } + + validate_request(&request)?; + let payload = MessagePayload { + version: 1, + origin: request.origin, + address: address::public_key_to_short_address(public_key)?, + message: request.message, + nonce: request.nonce.to_ascii_lowercase(), + issued_at: request.issued_at, + expires_at: request.expires_at, + }; + let hash = payload_hash(&payload)?; + let signature = crypto::sign(&hash, private_key)?; + if !crypto::verify(&hash, &signature, public_key) { + return Err(BrowserCoreError::InvalidRequest( + "private key does not match the wallet public key".into(), + )); + } + + Ok(MessageProof { + payload, + public_key: hex::encode(public_key), + hash: hex::encode(hash), + signature: hex::encode(signature), + }) +} + +pub fn verify( + proof: MessageProof, + expected_origin: &str, + expected_nonce: &str, + current_time: u64, +) -> Result { + if proof.payload.version != 1 { + return Err(BrowserCoreError::InvalidRequest( + "unsupported message proof version".into(), + )); + } + validate_request(&MessageRequest { + origin: proof.payload.origin.clone(), + message: proof.payload.message.clone(), + nonce: proof.payload.nonce.clone(), + issued_at: proof.payload.issued_at, + expires_at: proof.payload.expires_at, + })?; + let public_key = + hex::decode(&proof.public_key).map_err(|_| BrowserCoreError::InvalidPublicKey)?; + let derived_address = address::public_key_to_short_address(&public_key)?; + if derived_address != proof.payload.address { + return Err(BrowserCoreError::InvalidRequest( + "message address does not match its public key".into(), + )); + } + if proof.payload.origin != expected_origin { + return Err(BrowserCoreError::InvalidRequest( + "message proof was issued for a different origin".into(), + )); + } + if !proof.payload.nonce.eq_ignore_ascii_case(expected_nonce) { + return Err(BrowserCoreError::InvalidRequest( + "message proof nonce does not match".into(), + )); + } + if current_time < proof.payload.issued_at || current_time > proof.payload.expires_at { + return Err(BrowserCoreError::InvalidRequest( + "message proof is not currently valid".into(), + )); + } + + let hash = payload_hash(&proof.payload)?; + if proof.hash != hex::encode(&hash) { + return Err(BrowserCoreError::InvalidRequest( + "message proof hash does not match its payload".into(), + )); + } + let signature = + hex::decode(&proof.signature).map_err(|_| BrowserCoreError::InvalidSignature)?; + if signature.len() != SIGNATURE_LENGTH || !crypto::verify(&hash, &signature, &public_key) { + return Err(BrowserCoreError::InvalidSignature); + } + + Ok(MessageVerification { + valid: true, + address: proof.payload.address, + origin: proof.payload.origin, + message: proof.payload.message, + nonce: proof.payload.nonce, + issued_at: proof.payload.issued_at, + expires_at: proof.payload.expires_at, + }) +} + +fn validate_request(request: &MessageRequest) -> Result<(), BrowserCoreError> { + let valid_origin = request + .origin + .strip_prefix("https://") + .is_some_and(valid_https_authority) + || request + .origin + .strip_prefix("http://localhost") + .is_some_and(valid_local_port) + || request + .origin + .strip_prefix("http://127.0.0.1") + .is_some_and(valid_local_port); + if request.origin.is_empty() + || request.origin.len() > MAX_ORIGIN_BYTES + || !request.origin.is_ascii() + || request.origin.chars().any(char::is_whitespace) + || !valid_origin + { + return Err(BrowserCoreError::InvalidRequest( + "origin must be HTTPS or a local development origin".into(), + )); + } + if request.message.is_empty() || request.message.as_bytes().len() > MAX_MESSAGE_BYTES { + return Err(BrowserCoreError::InvalidRequest(format!( + "message must contain 1 to {MAX_MESSAGE_BYTES} bytes" + ))); + } + let nonce = hex::decode(&request.nonce) + .map_err(|_| BrowserCoreError::InvalidRequest("nonce must be hexadecimal".into()))?; + if nonce.len() < MIN_NONCE_BYTES { + return Err(BrowserCoreError::InvalidRequest(format!( + "nonce must contain at least {MIN_NONCE_BYTES} random bytes" + ))); + } + if request.expires_at <= request.issued_at { + return Err(BrowserCoreError::InvalidRequest( + "expires_at must be after issued_at".into(), + )); + } + if request.expires_at - request.issued_at > MAX_PROOF_LIFETIME_SECONDS { + return Err(BrowserCoreError::InvalidRequest(format!( + "message proofs may remain valid for at most {MAX_PROOF_LIFETIME_SECONDS} seconds" + ))); + } + Ok(()) +} + +fn valid_https_authority(authority: &str) -> bool { + !authority.is_empty() + && !authority.contains('/') + && !authority.contains('?') + && !authority.contains('#') +} + +fn valid_local_port(suffix: &str) -> bool { + suffix.is_empty() + || suffix.strip_prefix(':').is_some_and(|port| { + !port.is_empty() && port.chars().all(|character| character.is_ascii_digit()) + }) +} + +fn payload_hash(payload: &MessagePayload) -> Result, BrowserCoreError> { + let json = serde_json::to_string(payload) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + let mut domain_payload = Vec::with_capacity(MESSAGE_DOMAIN.len() + json.len()); + domain_payload.extend_from_slice(MESSAGE_DOMAIN); + domain_payload.extend_from_slice(json.as_bytes()); + Ok(crypto::skein_256(&domain_payload)) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn message_domain_differs_from_transaction_hashing() { + let payload = MessagePayload { + version: 1, + origin: "https://example.com".into(), + address: "11".repeat(20) + ".cltc", + message: "Welcome to XYZ".into(), + nonce: "22".repeat(16), + issued_at: 100, + expires_at: 200, + }; + let json = serde_json::to_string(&payload).unwrap(); + assert_ne!( + payload_hash(&payload).unwrap(), + crypto::skein_256(json.as_bytes()) + ); + } + + #[test] + fn message_requests_reject_long_lived_replay_windows() { + let request = MessageRequest { + origin: "https://example.com".into(), + message: "Welcome to XYZ".into(), + nonce: "22".repeat(16), + issued_at: 100, + expires_at: 100 + MAX_PROOF_LIFETIME_SECONDS + 1, + }; + assert!(validate_request(&request).is_err()); + } +} diff --git a/core/src/registry.rs b/core/src/registry.rs new file mode 100644 index 0000000..dacdf30 --- /dev/null +++ b/core/src/registry.rs @@ -0,0 +1,1459 @@ +use std::str::FromStr; + +use serde::Serialize; +use serde_json::{Map, Number, Value}; + +use crate::address; +use crate::crypto; +use crate::error::BrowserCoreError; +use crate::{PRIVATE_KEY_LENGTH, SIGNATURE_LENGTH}; + +#[derive(Clone, Copy)] +enum FieldKind { + U8, + U16, + U32, + U64, + U128, + I8, + I16, + I32, + I64, + I128, + Bool, + Address, + VanityAddress, + Hash(usize), + Text(usize), + PaddedText(usize), +} + +#[derive(Clone, Copy)] +struct Field { + name: &'static str, + kind: FieldKind, +} + +#[derive(Clone, Copy, PartialEq, Eq)] +enum SignatureMode { + Single, + Dual, +} + +struct Schema { + txtype: u8, + name: &'static str, + wrapper: &'static str, + fields: &'static [Field], + signatures: SignatureMode, + stores_hash: bool, +} + +macro_rules! f { + ($name:literal, $kind:expr) => { + Field { + name: $name, + kind: $kind, + } + }; +} + +const TRANSFER: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("value", FieldKind::U64), + f!("coin", FieldKind::PaddedText(15)), + f!("nft_series", FieldKind::U32), + f!("sender", FieldKind::Address), + f!("receiver", FieldKind::Address), + f!("txfee", FieldKind::U64), +]; +const TOKEN: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("creator", FieldKind::Address), + f!("ticker", FieldKind::PaddedText(15)), + f!("number", FieldKind::U64), + f!("hard_limit", FieldKind::U8), + f!("txfee", FieldKind::U64), +]; +const NFT: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("creator", FieldKind::Address), + f!("series", FieldKind::U8), + f!("ownership_type", FieldKind::U8), + f!("nft_name", FieldKind::PaddedText(15)), + f!("item_ipfs", FieldKind::PaddedText(100)), + f!("count", FieldKind::U32), + f!("desc", FieldKind::PaddedText(100)), + f!("txfee", FieldKind::U64), +]; +const MARKETING: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("campaign", FieldKind::U64), + f!("ad_type", FieldKind::PaddedText(6)), + f!("keyword", FieldKind::PaddedText(40)), + f!("displayed", FieldKind::PaddedText(100)), + f!("impression", FieldKind::U8), + f!("click", FieldKind::U8), + f!("impression_value", FieldKind::U16), + f!("click_value", FieldKind::U16), + f!("advertiser", FieldKind::Address), + f!("txfee", FieldKind::U64), +]; +const SWAP: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("timestamp", FieldKind::U32), + f!("offer_expiration", FieldKind::U32), + f!("ticker1", FieldKind::PaddedText(15)), + f!("nft_series1", FieldKind::U32), + f!("value1", FieldKind::U64), + f!("ticker2", FieldKind::PaddedText(15)), + f!("nft_series2", FieldKind::U32), + f!("value2", FieldKind::U64), + f!("sender1", FieldKind::Address), + f!("sender2", FieldKind::Address), + f!("tip1", FieldKind::U64), + f!("tip2", FieldKind::U64), + f!("txfee1", FieldKind::U64), + f!("txfee2", FieldKind::U64), +]; +const LOAN: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("timestamp", FieldKind::U32), + f!("loan_coin", FieldKind::PaddedText(15)), + f!("loan_amount", FieldKind::U64), + f!("lender", FieldKind::Address), + f!("collateral", FieldKind::PaddedText(21)), + f!("collateral_amount", FieldKind::U64), + f!("borrower", FieldKind::Address), + f!("payment_period", FieldKind::Text(1)), + f!("payment_number", FieldKind::U8), + f!("payment_amount", FieldKind::U64), + f!("grace_period", FieldKind::U8), + f!("max_late_value", FieldKind::U64), + f!("txfee", FieldKind::U64), +]; +const LOAN_PAYMENT: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("timestamp", FieldKind::U32), + f!("payback_amount", FieldKind::U64), + f!("contract_hash", FieldKind::Hash(32)), + f!("address", FieldKind::Address), + f!("tip", FieldKind::U64), + f!("txfee", FieldKind::U64), +]; +const COLLATERAL: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("contract_hash", FieldKind::Hash(32)), + f!("address", FieldKind::Address), + f!("txfee", FieldKind::U64), +]; +const BURN: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("address", FieldKind::Address), + f!("coin", FieldKind::PaddedText(15)), + f!("nft_series", FieldKind::U32), + f!("value", FieldKind::U64), + f!("txfee", FieldKind::U64), +]; +const ISSUE_TOKEN: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("creator", FieldKind::Address), + f!("ticker", FieldKind::PaddedText(15)), + f!("number", FieldKind::U64), + f!("txfee", FieldKind::U64), +]; +const VANITY: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("timestamp", FieldKind::U32), + f!("address", FieldKind::Address), + f!("vanity_address", FieldKind::VanityAddress), + f!("txfee", FieldKind::U64), +]; +const STORAGE_KEY: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("address", FieldKind::Address), + f!("txfee", FieldKind::U64), +]; + +macro_rules! storage_fields { + ($kind:expr) => { + &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("storagekey", FieldKind::Hash(32)), + f!("key", FieldKind::PaddedText(50)), + f!("value", $kind), + f!("address", FieldKind::Address), + f!("txfee", FieldKind::U64), + ] + }; +} + +const STORAGE_BOOL: &[Field] = storage_fields!(FieldKind::Bool); +const STORAGE_U8: &[Field] = storage_fields!(FieldKind::U8); +const STORAGE_U16: &[Field] = storage_fields!(FieldKind::U16); +const STORAGE_U32: &[Field] = storage_fields!(FieldKind::U32); +const STORAGE_U64: &[Field] = storage_fields!(FieldKind::U64); +const STORAGE_U128: &[Field] = storage_fields!(FieldKind::U128); +const STORAGE_I8: &[Field] = storage_fields!(FieldKind::I8); +const STORAGE_I16: &[Field] = storage_fields!(FieldKind::I16); +const STORAGE_I32: &[Field] = storage_fields!(FieldKind::I32); +const STORAGE_I64: &[Field] = storage_fields!(FieldKind::I64); +const STORAGE_I128: &[Field] = storage_fields!(FieldKind::I128); +const STORAGE_STRING: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("storagekey", FieldKind::Hash(32)), + f!("key", FieldKind::PaddedText(50)), + f!("value", FieldKind::PaddedText(180)), + f!("address", FieldKind::Address), + f!("previous", FieldKind::Hash(32)), + f!("txfee", FieldKind::U64), +]; +const DELETE_KEY: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("storagekey", FieldKind::Hash(32)), + f!("key", FieldKind::PaddedText(50)), + f!("address", FieldKind::Address), + f!("txfee", FieldKind::U64), +]; +const PROPOSAL_KEY: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("proposal_hash", FieldKind::Hash(32)), + f!("address", FieldKind::Address), + f!("txfee", FieldKind::U64), +]; +const PROPOSAL_VOTE: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("proposal_key", FieldKind::Hash(32)), + f!("address", FieldKind::Address), + f!("vote", FieldKind::U8), + f!("txfee", FieldKind::U64), +]; +const ACTIVATION_VOTE: &[Field] = &[ + f!("txtype", FieldKind::U8), + f!("time", FieldKind::U32), + f!("proposal_key", FieldKind::Hash(32)), + f!("development_hash", FieldKind::Hash(32)), + f!("development_location", FieldKind::PaddedText(100)), + f!("address", FieldKind::Address), + f!("vote", FieldKind::U8), + f!("txfee", FieldKind::U64), +]; + +const SCHEMAS: &[Schema] = &[ + Schema { + txtype: 2, + name: "Transfer", + wrapper: "unsigned_transfer", + fields: TRANSFER, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 3, + name: "Create Token", + wrapper: "unsigned_create_token", + fields: TOKEN, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 4, + name: "Create NFT/RWA", + wrapper: "unsigned_create_nft", + fields: NFT, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 5, + name: "Marketing", + wrapper: "unsigned_marketing", + fields: MARKETING, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 6, + name: "Swap", + wrapper: "unsigned_swap", + fields: SWAP, + signatures: SignatureMode::Dual, + stores_hash: false, + }, + Schema { + txtype: 7, + name: "Loan", + wrapper: "unsigned_loan_contract", + fields: LOAN, + signatures: SignatureMode::Dual, + stores_hash: true, + }, + Schema { + txtype: 8, + name: "Loan Payment", + wrapper: "unsigned_contract_payment", + fields: LOAN_PAYMENT, + signatures: SignatureMode::Single, + stores_hash: true, + }, + Schema { + txtype: 9, + name: "Collateral Claim", + wrapper: "unsigned_collateral_claim", + fields: COLLATERAL, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 10, + name: "Burn", + wrapper: "unsigned_burn", + fields: BURN, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 11, + name: "Issue Token", + wrapper: "unsigned_issue_token", + fields: ISSUE_TOKEN, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 12, + name: "Vanity Address", + wrapper: "unsigned_vanity_address", + fields: VANITY, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 100, + name: "Storage Key", + wrapper: "unsigned_storagekey", + fields: STORAGE_KEY, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 101, + name: "Storage Bool", + wrapper: "unsigned_storagebool", + fields: STORAGE_BOOL, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 102, + name: "Storage U8", + wrapper: "unsigned_storageu8", + fields: STORAGE_U8, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 103, + name: "Storage U16", + wrapper: "unsigned_storageu16", + fields: STORAGE_U16, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 104, + name: "Storage U32", + wrapper: "unsigned_storageu32", + fields: STORAGE_U32, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 105, + name: "Storage U64", + wrapper: "unsigned_storageu64", + fields: STORAGE_U64, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 106, + name: "Storage U128", + wrapper: "unsigned_storageu128", + fields: STORAGE_U128, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 107, + name: "Storage String", + wrapper: "unsigned_storage", + fields: STORAGE_STRING, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 108, + name: "Storage I8", + wrapper: "unsigned_storagei8", + fields: STORAGE_I8, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 109, + name: "Storage I16", + wrapper: "unsigned_storagei16", + fields: STORAGE_I16, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 110, + name: "Storage I32", + wrapper: "unsigned_storagei32", + fields: STORAGE_I32, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 111, + name: "Storage I64", + wrapper: "unsigned_storagei64", + fields: STORAGE_I64, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 112, + name: "Storage I128", + wrapper: "unsigned_storagei128", + fields: STORAGE_I128, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 113, + name: "Delete Storage Key", + wrapper: "unsigned_deletekey", + fields: DELETE_KEY, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 200, + name: "Proposal Key", + wrapper: "unsigned_proposalkey", + fields: PROPOSAL_KEY, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 201, + name: "Proposal Vote", + wrapper: "unsigned_proposalvote", + fields: PROPOSAL_VOTE, + signatures: SignatureMode::Single, + stores_hash: false, + }, + Schema { + txtype: 202, + name: "Activation Vote", + wrapper: "unsigned_activationvote", + fields: ACTIVATION_VOTE, + signatures: SignatureMode::Single, + stores_hash: false, + }, +]; + +#[derive(Serialize)] +pub struct Inspection { + pub txtype: u8, + pub transaction_name: &'static str, + pub canonical_unsigned_json: String, + pub hash: String, + pub unsigned_bytes_hex: String, + pub required_signatures: u8, + pub review: Value, +} + +#[derive(Serialize)] +pub struct RegistryEntry { + pub txtype: u8, + pub transaction_name: &'static str, + pub byte_length: usize, + pub required_signatures: u8, + pub signer1_field: &'static str, + pub signer2_field: Option<&'static str>, +} + +#[derive(Serialize)] +pub struct SigningResult { + pub complete: bool, + pub txtype: u8, + pub transaction_name: &'static str, + pub hash: String, + pub unsigned_bytes_hex: String, + pub signature1: Option, + pub signature2: Option, + pub signed_transaction: Value, + pub bytes_hex: Option, +} + +#[derive(Serialize)] +pub struct DecodedTransaction { + pub txtype: u8, + pub transaction_name: &'static str, + pub fields: Value, + pub stored_hash: Option, + pub signature: Option, + pub signature1: Option, + pub signature2: Option, +} + +fn schema(txtype: u8) -> Result<&'static Schema, BrowserCoreError> { + SCHEMAS + .iter() + .find(|schema| schema.txtype == txtype) + .ok_or(BrowserCoreError::UnsupportedTransaction(txtype)) +} + +fn request_object(request: &Value) -> Result<&Map, BrowserCoreError> { + request + .as_object() + .ok_or_else(|| BrowserCoreError::InvalidRequest("request must be a JSON object".into())) +} + +fn request_source<'a>( + request: &'a Value, + schema: &Schema, +) -> Result<&'a Map, BrowserCoreError> { + let object = request_object(request)?; + match object.get(schema.wrapper) { + Some(Value::Object(unsigned)) => Ok(unsigned), + Some(_) => Err(BrowserCoreError::InvalidRequest(format!( + "{} must be a JSON object", + schema.wrapper + ))), + None => Ok(object), + } +} + +fn request_type(request: &Value) -> Result { + let object = request_object(request)?; + if let Some(value) = object.get("txtype") { + return parse_integer::(value, "txtype"); + } + for schema in SCHEMAS { + if let Some(Value::Object(unsigned)) = object.get(schema.wrapper) { + let value = unsigned + .get("txtype") + .ok_or_else(|| BrowserCoreError::InvalidRequest("txtype is required".into()))?; + return parse_integer::(value, "txtype"); + } + } + Err(BrowserCoreError::InvalidRequest( + "txtype is required".into(), + )) +} + +fn canonical_unsigned(request: &Value, schema: &Schema) -> Result { + let source = request_source(request, schema)?; + let allowed_extra = ["signature", "signature1", "signature2", "hash"]; + for key in source.keys() { + if !schema.fields.iter().any(|field| field.name == key) + && !allowed_extra.contains(&key.as_str()) + { + return Err(BrowserCoreError::InvalidRequest(format!( + "unexpected field: {key}" + ))); + } + } + let mut canonical = Map::new(); + for field in schema.fields { + let value = source.get(field.name).ok_or_else(|| { + BrowserCoreError::InvalidRequest(format!("missing field: {}", field.name)) + })?; + canonical.insert(field.name.into(), canonical_value(value, field)?); + } + if canonical.get("txtype").and_then(Value::as_u64) != Some(schema.txtype as u64) { + return Err(BrowserCoreError::InvalidRequest(format!( + "txtype must be {}", + schema.txtype + ))); + } + let canonical = Value::Object(canonical); + validate_semantics(schema, &canonical)?; + Ok(canonical) +} + +fn validate_semantics(schema: &Schema, unsigned: &Value) -> Result<(), BrowserCoreError> { + let object = request_object(unsigned)?; + let byte_flag = |name: &str| { + let value = object.get(name).and_then(Value::as_u64); + if matches!(value, Some(0 | 1)) { + Ok(()) + } else { + Err(BrowserCoreError::InvalidRequest(format!( + "{name} must be 0 or 1" + ))) + } + }; + + match schema.txtype { + 2 => { + if object.get("sender") == object.get("receiver") { + return Err(BrowserCoreError::InvalidRequest( + "sender and receiver cannot be the same".into(), + )); + } + if object + .get("nft_series") + .and_then(Value::as_u64) + .unwrap_or(0) + > 0 + && object.get("value").and_then(Value::as_u64) != Some(100_000_000) + { + return Err(BrowserCoreError::InvalidRequest( + "series NFT transfers must have a value of 100000000".into(), + )); + } + } + 3 => byte_flag("hard_limit")?, + 4 => { + byte_flag("series")?; + byte_flag("ownership_type")?; + if object.get("count").and_then(Value::as_u64) == Some(0) { + return Err(BrowserCoreError::InvalidRequest( + "NFT count cannot be zero".into(), + )); + } + } + 6 => { + if object.get("sender1") == object.get("sender2") { + return Err(BrowserCoreError::InvalidRequest( + "swap participants cannot be the same".into(), + )); + } + if object.get("offer_expiration").and_then(Value::as_u64) + <= object.get("timestamp").and_then(Value::as_u64) + { + return Err(BrowserCoreError::InvalidRequest( + "swap expiration must be after its timestamp".into(), + )); + } + } + 7 => { + if object.get("lender") == object.get("borrower") { + return Err(BrowserCoreError::InvalidRequest( + "lender and borrower cannot be the same".into(), + )); + } + if !matches!( + object.get("payment_period").and_then(Value::as_str), + Some("d" | "w" | "m") + ) { + return Err(BrowserCoreError::InvalidRequest( + "payment_period must be d, w, or m".into(), + )); + } + } + 201 | 202 => byte_flag("vote")?, + _ => {} + } + Ok(()) +} + +fn canonical_value(value: &Value, field: &Field) -> Result { + let invalid = || BrowserCoreError::InvalidRequest(format!("invalid {}", field.name)); + match field.kind { + FieldKind::Bool => value.as_bool().map(Value::Bool).ok_or_else(invalid), + FieldKind::U8 => number_unsigned::(value, field.name), + FieldKind::U16 => number_unsigned::(value, field.name), + FieldKind::U32 => number_unsigned::(value, field.name), + FieldKind::U64 => number_unsigned::(value, field.name), + FieldKind::U128 => number_from_text::(value, field.name), + FieldKind::I8 => number_signed::(value, field.name), + FieldKind::I16 => number_signed::(value, field.name), + FieldKind::I32 => number_signed::(value, field.name), + FieldKind::I64 => number_signed::(value, field.name), + FieldKind::I128 => number_from_text::(value, field.name), + FieldKind::Address => { + let text = value.as_str().ok_or_else(invalid)?; + address::short_address_to_bytes(text)?; + Ok(Value::String(text.into())) + } + FieldKind::VanityAddress => { + let text = value.as_str().ok_or_else(invalid)?; + Ok(Value::String(address::normalize_vanity_address(text)?)) + } + FieldKind::Hash(length) => { + let text = value.as_str().ok_or_else(invalid)?; + let bytes = hex::decode(text).map_err(|_| invalid())?; + if bytes.len() != length { + return Err(invalid()); + } + Ok(Value::String(text.to_ascii_lowercase())) + } + FieldKind::Text(length) => { + let text = value.as_str().ok_or_else(invalid)?; + if !text.is_ascii() || text.len() != length { + return Err(invalid()); + } + Ok(Value::String(text.into())) + } + FieldKind::PaddedText(length) => { + let text = value.as_str().ok_or_else(invalid)?.trim(); + if text.is_empty() || !text.is_ascii() || text.len() > length { + return Err(invalid()); + } + Ok(Value::String(format!("{text:(value: &Value, name: &str) -> Result { + let text = match value { + Value::String(text) => text.clone(), + Value::Number(number) => number.to_string(), + _ => { + return Err(BrowserCoreError::InvalidRequest(format!( + "{name} must be an integer" + ))) + } + }; + text.parse::() + .map_err(|_| BrowserCoreError::InvalidRequest(format!("invalid {name}"))) +} + +fn number_unsigned(value: &Value, name: &str) -> Result +where + T: FromStr + Into, +{ + let parsed = parse_integer::(value, name)?; + let number = Number::from_str(&parsed.into().to_string()) + .map_err(|_| BrowserCoreError::InvalidRequest(format!("invalid {name}")))?; + Ok(Value::Number(number)) +} + +fn number_signed(value: &Value, name: &str) -> Result +where + T: FromStr + Into, +{ + let parsed = parse_integer::(value, name)?; + let number = Number::from_str(&parsed.into().to_string()) + .map_err(|_| BrowserCoreError::InvalidRequest(format!("invalid {name}")))?; + Ok(Value::Number(number)) +} + +fn number_from_text( + value: &Value, + name: &str, +) -> Result { + let parsed = parse_integer::(value, name)?; + let number = Number::from_str(&parsed.to_string()) + .map_err(|_| BrowserCoreError::InvalidRequest(format!("invalid {name}")))?; + Ok(Value::Number(number)) +} + +pub fn inspect(request: &Value) -> Result { + let txtype = request_type(request)?; + let schema = schema(txtype)?; + let unsigned = canonical_unsigned(request, schema)?; + let canonical_unsigned_json = serde_json::to_string(&unsigned) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + let hash = hex::encode(crypto::skein_256(canonical_unsigned_json.as_bytes())); + let unsigned_bytes_hex = hex::encode(encode_unsigned_prefix(schema, &unsigned, &hash)?); + Ok(Inspection { + txtype, + transaction_name: schema.name, + canonical_unsigned_json, + hash, + unsigned_bytes_hex, + required_signatures: if schema.signatures == SignatureMode::Dual { + 2 + } else { + 1 + }, + review: unsigned, + }) +} + +pub fn sign_request( + request: &Value, + private_key: &[u8], + signer_public_key: &[u8], + signer_slot: u8, +) -> Result { + if private_key.len() != PRIVATE_KEY_LENGTH { + return Err(BrowserCoreError::InvalidPrivateKey); + } + let inspection = inspect(request)?; + let schema = schema(inspection.txtype)?; + let source = request_object(request)?; + let signature_source = if source.contains_key(schema.wrapper) { + source + } else { + request_source(request, schema)? + }; + let unsigned: Value = serde_json::from_str(&inspection.canonical_unsigned_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + let signer_address = address::public_key_to_short_address(signer_public_key)?; + validate_signer(schema, &unsigned, &signer_address, signer_slot)?; + let hash_bytes = hex::decode(&inspection.hash).unwrap(); + let new_signature_bytes = crypto::sign(&hash_bytes, private_key)?; + if !crypto::verify(&hash_bytes, &new_signature_bytes, signer_public_key) { + return Err(BrowserCoreError::InvalidRequest( + "private key does not match the wallet public key".into(), + )); + } + let new_signature = hex::encode(new_signature_bytes); + let mut signature1 = signature_source + .get("signature1") + .or_else(|| source.get("signature")) + .and_then(Value::as_str) + .map(str::to_owned); + let mut signature2 = signature_source + .get("signature2") + .and_then(Value::as_str) + .map(str::to_owned); + + if schema.signatures == SignatureMode::Dual && (signature1.is_some() || signature2.is_some()) { + return Err(BrowserCoreError::InvalidRequest( + "dual-signature wallets must sign the unsigned transaction independently".into(), + )); + } + + match schema.signatures { + SignatureMode::Single => { + if signer_slot != 1 { + return Err(BrowserCoreError::InvalidRequest( + "single-signature transactions use signer slot 1".into(), + )); + } + signature1 = Some(new_signature); + } + SignatureMode::Dual => match signer_slot { + 1 if signature1.is_none() => signature1 = Some(new_signature), + 2 if signature2.is_none() => signature2 = Some(new_signature), + 1 => { + return Err(BrowserCoreError::InvalidRequest( + "signature1 already exists".into(), + )) + } + 2 => { + return Err(BrowserCoreError::InvalidRequest( + "signature2 already exists".into(), + )) + } + _ => { + return Err(BrowserCoreError::InvalidRequest( + "signer slot must be 1 or 2".into(), + )) + } + }, + } + + if signature1.is_some() { + validate_signature(signature1.as_deref())?; + } + if signature2.is_some() { + validate_signature(signature2.as_deref())?; + } + let complete = signature1.is_some() + && (schema.signatures == SignatureMode::Single || signature2.is_some()); + let mut signed = Map::new(); + signed.insert(schema.wrapper.into(), unsigned.clone()); + if schema.stores_hash { + signed.insert("hash".into(), Value::String(inspection.hash.clone())); + } + if schema.signatures == SignatureMode::Single { + signed.insert( + "signature".into(), + Value::String(signature1.clone().unwrap()), + ); + } else { + if let Some(value) = &signature1 { + signed.insert("signature1".into(), Value::String(value.clone())); + } + if let Some(value) = &signature2 { + signed.insert("signature2".into(), Value::String(value.clone())); + } + } + let bytes_hex = if complete { + Some(hex::encode(encode_transaction( + schema, + &unsigned, + &inspection.hash, + signature1.as_deref(), + signature2.as_deref(), + )?)) + } else { + None + }; + Ok(SigningResult { + complete, + txtype: schema.txtype, + transaction_name: schema.name, + hash: inspection.hash, + unsigned_bytes_hex: inspection.unsigned_bytes_hex, + signature1, + signature2, + signed_transaction: Value::Object(signed), + bytes_hex, + }) +} + +pub fn complete_dual_request( + request: &Value, + signature1: &str, + public_key1: &[u8], + signature2: &str, + public_key2: &[u8], +) -> Result { + let inspection = inspect(request)?; + let schema = schema(inspection.txtype)?; + if schema.signatures != SignatureMode::Dual { + return Err(BrowserCoreError::InvalidRequest( + "only swaps and loan creation use dual signatures".into(), + )); + } + validate_signature(Some(signature1))?; + validate_signature(Some(signature2))?; + let unsigned: Value = serde_json::from_str(&inspection.canonical_unsigned_json) + .map_err(|error| BrowserCoreError::Json(error.to_string()))?; + let address1 = address::public_key_to_short_address(public_key1)?; + let address2 = address::public_key_to_short_address(public_key2)?; + validate_signer(schema, &unsigned, &address1, 1)?; + validate_signer(schema, &unsigned, &address2, 2)?; + let hash_bytes = hex::decode(&inspection.hash).unwrap(); + let signature1_bytes = + hex::decode(signature1).map_err(|_| BrowserCoreError::InvalidSignature)?; + let signature2_bytes = + hex::decode(signature2).map_err(|_| BrowserCoreError::InvalidSignature)?; + if !crypto::verify(&hash_bytes, &signature1_bytes, public_key1) { + return Err(BrowserCoreError::InvalidRequest( + "signature1 is not valid for signer 1".into(), + )); + } + if !crypto::verify(&hash_bytes, &signature2_bytes, public_key2) { + return Err(BrowserCoreError::InvalidRequest( + "signature2 is not valid for signer 2".into(), + )); + } + let mut signed = Map::new(); + signed.insert(schema.wrapper.into(), unsigned.clone()); + if schema.stores_hash { + signed.insert("hash".into(), Value::String(inspection.hash.clone())); + } + signed.insert("signature1".into(), Value::String(signature1.into())); + signed.insert("signature2".into(), Value::String(signature2.into())); + let bytes_hex = hex::encode(encode_transaction( + schema, + &unsigned, + &inspection.hash, + Some(signature1), + Some(signature2), + )?); + Ok(SigningResult { + complete: true, + txtype: schema.txtype, + transaction_name: schema.name, + hash: inspection.hash, + unsigned_bytes_hex: inspection.unsigned_bytes_hex, + signature1: Some(signature1.into()), + signature2: Some(signature2.into()), + signed_transaction: Value::Object(signed), + bytes_hex: Some(bytes_hex), + }) +} + +pub fn entries() -> Vec { + SCHEMAS + .iter() + .map(|schema| RegistryEntry { + txtype: schema.txtype, + transaction_name: schema.name, + byte_length: wire_length(schema), + required_signatures: if schema.signatures == SignatureMode::Dual { + 2 + } else { + 1 + }, + signer1_field: signer_field(schema.txtype, 1).unwrap(), + signer2_field: signer_field(schema.txtype, 2), + }) + .collect() +} + +pub fn decode_transaction(bytes: &[u8]) -> Result { + let txtype = *bytes + .first() + .ok_or_else(|| BrowserCoreError::InvalidRequest("transaction bytes were empty".into()))?; + let schema = schema(txtype)?; + if bytes.len() != wire_length(schema) { + return Err(BrowserCoreError::InvalidRequest(format!( + "{} transaction must contain exactly {} bytes", + schema.name, + wire_length(schema) + ))); + } + + let mut offset = 0usize; + let mut fields = Map::new(); + for field in schema.fields { + fields.insert(field.name.into(), decode_field(bytes, &mut offset, field)?); + } + + let stored_hash = if schema.stores_hash { + Some(hex::encode(read_bytes(bytes, &mut offset, 32)?)) + } else { + None + }; + let first_signature = hex::encode(read_bytes(bytes, &mut offset, SIGNATURE_LENGTH)?); + let (signature, signature1, signature2) = if schema.signatures == SignatureMode::Dual { + let second_signature = hex::encode(read_bytes(bytes, &mut offset, SIGNATURE_LENGTH)?); + (None, Some(first_signature), Some(second_signature)) + } else { + (Some(first_signature), None, None) + }; + + if offset != bytes.len() { + return Err(BrowserCoreError::InvalidRequest( + "transaction contained trailing bytes".into(), + )); + } + + Ok(DecodedTransaction { + txtype, + transaction_name: schema.name, + fields: Value::Object(fields), + stored_hash, + signature, + signature1, + signature2, + }) +} + +fn read_bytes<'a>( + bytes: &'a [u8], + offset: &mut usize, + length: usize, +) -> Result<&'a [u8], BrowserCoreError> { + let end = offset.checked_add(length).ok_or_else(|| { + BrowserCoreError::InvalidRequest("transaction field offset overflowed".into()) + })?; + let value = bytes.get(*offset..end).ok_or_else(|| { + BrowserCoreError::InvalidRequest("transaction bytes were truncated".into()) + })?; + *offset = end; + Ok(value) +} + +fn decode_field( + bytes: &[u8], + offset: &mut usize, + field: &Field, +) -> Result { + let raw = read_bytes(bytes, offset, field_width(field.kind))?; + let invalid = || BrowserCoreError::InvalidRequest(format!("invalid encoded {}", field.name)); + Ok(match field.kind { + FieldKind::Bool => match raw[0] { + 0 => Value::Bool(false), + 1 => Value::Bool(true), + _ => return Err(invalid()), + }, + FieldKind::U8 => Value::Number(Number::from(raw[0])), + FieldKind::U16 => Value::Number(Number::from(u16::from_le_bytes( + raw.try_into().map_err(|_| invalid())?, + ))), + FieldKind::U32 => Value::Number(Number::from(u32::from_le_bytes( + raw.try_into().map_err(|_| invalid())?, + ))), + FieldKind::U64 => { + Value::String(u64::from_le_bytes(raw.try_into().map_err(|_| invalid())?).to_string()) + } + FieldKind::U128 => { + Value::String(u128::from_le_bytes(raw.try_into().map_err(|_| invalid())?).to_string()) + } + FieldKind::I8 => Value::Number(Number::from(raw[0] as i8)), + FieldKind::I16 => Value::Number(Number::from(i16::from_le_bytes( + raw.try_into().map_err(|_| invalid())?, + ))), + FieldKind::I32 => Value::Number(Number::from(i32::from_le_bytes( + raw.try_into().map_err(|_| invalid())?, + ))), + FieldKind::I64 => { + Value::String(i64::from_le_bytes(raw.try_into().map_err(|_| invalid())?).to_string()) + } + FieldKind::I128 => { + Value::String(i128::from_le_bytes(raw.try_into().map_err(|_| invalid())?).to_string()) + } + FieldKind::Address => Value::String(address::bytes_to_short_address(raw)?), + FieldKind::VanityAddress => { + if raw.len() != 22 || raw[20] != b'.' || raw[21] != address::network_byte() { + return Err(invalid()); + } + let name = std::str::from_utf8(&raw[..20]) + .map_err(|_| invalid())? + .trim() + .to_string(); + Value::String(format!("{name}.{}", address::network_suffix())) + } + FieldKind::Hash(_) => Value::String(hex::encode(raw)), + FieldKind::Text(_) | FieldKind::PaddedText(_) => { + let text = std::str::from_utf8(raw).map_err(|_| invalid())?; + Value::String( + text.trim_end_matches(|character| character == '\0' || character == ' ') + .to_string(), + ) + } + }) +} + +fn validate_signer( + schema: &Schema, + unsigned: &Value, + signer_address: &str, + signer_slot: u8, +) -> Result<(), BrowserCoreError> { + address::short_address_to_bytes(signer_address)?; + let field = signer_field(schema.txtype, signer_slot).ok_or_else(|| { + BrowserCoreError::InvalidRequest(format!( + "transaction type {} does not use signer slot {signer_slot}", + schema.txtype + )) + })?; + let expected = request_object(unsigned)? + .get(field) + .and_then(Value::as_str) + .ok_or_else(|| { + BrowserCoreError::InvalidRequest(format!("missing signer field: {field}")) + })?; + if !expected.eq_ignore_ascii_case(signer_address) { + return Err(BrowserCoreError::InvalidRequest(format!( + "wallet address does not match {field}" + ))); + } + Ok(()) +} + +fn signer_field(txtype: u8, slot: u8) -> Option<&'static str> { + match (txtype, slot) { + (2, 1) => Some("sender"), + (3 | 4 | 11, 1) => Some("creator"), + (5, 1) => Some("advertiser"), + (6, 1) => Some("sender1"), + (6, 2) => Some("sender2"), + (7, 1) => Some("lender"), + (7, 2) => Some("borrower"), + (8 | 9 | 10 | 12 | 100..=113 | 200..=202, 1) => Some("address"), + _ => None, + } +} + +fn validate_signature(signature: Option<&str>) -> Result<(), BrowserCoreError> { + let signature = signature.ok_or(BrowserCoreError::InvalidSignature)?; + if hex::decode(signature).map_or(true, |bytes| bytes.len() != SIGNATURE_LENGTH) { + return Err(BrowserCoreError::InvalidSignature); + } + Ok(()) +} + +fn encode_transaction( + schema: &Schema, + unsigned: &Value, + hash: &str, + signature1: Option<&str>, + signature2: Option<&str>, +) -> Result, BrowserCoreError> { + let mut bytes = encode_unsigned_prefix(schema, unsigned, hash)?; + bytes.extend_from_slice( + &hex::decode(signature1.ok_or(BrowserCoreError::InvalidSignature)?).unwrap(), + ); + if schema.signatures == SignatureMode::Dual { + bytes.extend_from_slice( + &hex::decode(signature2.ok_or(BrowserCoreError::InvalidSignature)?).unwrap(), + ); + } + Ok(bytes) +} + +fn encode_unsigned_prefix( + schema: &Schema, + unsigned: &Value, + hash: &str, +) -> Result, BrowserCoreError> { + let object = request_object(unsigned)?; + let mut bytes = Vec::new(); + for field in schema.fields { + encode_field(&mut bytes, object.get(field.name).unwrap(), field)?; + } + if schema.stores_hash { + bytes.extend_from_slice(&hex::decode(hash).unwrap()); + } + Ok(bytes) +} + +fn encode_field(bytes: &mut Vec, value: &Value, field: &Field) -> Result<(), BrowserCoreError> { + match field.kind { + FieldKind::Bool => bytes.push(u8::from(value.as_bool().unwrap())), + FieldKind::U8 => bytes.push(parse_integer::(value, field.name)?), + FieldKind::U16 => { + bytes.extend_from_slice(&parse_integer::(value, field.name)?.to_le_bytes()) + } + FieldKind::U32 => { + bytes.extend_from_slice(&parse_integer::(value, field.name)?.to_le_bytes()) + } + FieldKind::U64 => { + bytes.extend_from_slice(&parse_integer::(value, field.name)?.to_le_bytes()) + } + FieldKind::U128 => { + bytes.extend_from_slice(&parse_integer::(value, field.name)?.to_le_bytes()) + } + FieldKind::I8 => bytes.push(parse_integer::(value, field.name)? as u8), + FieldKind::I16 => { + bytes.extend_from_slice(&parse_integer::(value, field.name)?.to_le_bytes()) + } + FieldKind::I32 => { + bytes.extend_from_slice(&parse_integer::(value, field.name)?.to_le_bytes()) + } + FieldKind::I64 => { + bytes.extend_from_slice(&parse_integer::(value, field.name)?.to_le_bytes()) + } + FieldKind::I128 => { + bytes.extend_from_slice(&parse_integer::(value, field.name)?.to_le_bytes()) + } + FieldKind::Address => { + bytes.extend_from_slice(&address::short_address_to_bytes(value.as_str().unwrap())?) + } + FieldKind::VanityAddress => { + bytes.extend_from_slice(&address::vanity_address_to_bytes(value.as_str().unwrap())?) + } + FieldKind::Hash(_) => { + bytes.extend_from_slice(&hex::decode(value.as_str().unwrap()).unwrap()) + } + FieldKind::Text(_) | FieldKind::PaddedText(_) => { + bytes.extend_from_slice(value.as_str().unwrap().as_bytes()) + } + } + Ok(()) +} + +fn field_width(kind: FieldKind) -> usize { + match kind { + FieldKind::U8 | FieldKind::I8 | FieldKind::Bool => 1, + FieldKind::U16 | FieldKind::I16 => 2, + FieldKind::U32 | FieldKind::I32 => 4, + FieldKind::U64 | FieldKind::I64 => 8, + FieldKind::U128 | FieldKind::I128 => 16, + FieldKind::Address | FieldKind::VanityAddress => 22, + FieldKind::Hash(length) | FieldKind::Text(length) | FieldKind::PaddedText(length) => length, + } +} + +fn wire_length(schema: &Schema) -> usize { + let fields: usize = schema + .fields + .iter() + .map(|field| field_width(field.kind)) + .sum(); + fields + + usize::from(schema.stores_hash) * 32 + + if schema.signatures == SignatureMode::Dual { + SIGNATURE_LENGTH * 2 + } else { + SIGNATURE_LENGTH + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn registry_contains_every_externally_submitted_type() { + let types: Vec = SCHEMAS.iter().map(|schema| schema.txtype).collect(); + assert_eq!( + types, + vec![ + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 200, 201, 202 + ] + ); + } + + #[test] + fn node_only_types_are_not_signable() { + assert!(matches!( + schema(0), + Err(BrowserCoreError::UnsupportedTransaction(0)) + )); + assert!(matches!( + schema(1), + Err(BrowserCoreError::UnsupportedTransaction(1)) + )); + } + + #[test] + fn registry_wire_lengths_match_node_command_map() { + let expected = [ + (2, 750), + (3, 725), + (4, 922), + (5, 861), + (6, 1471), + (7, 1492), + (8, 781), + (9, 733), + (10, 728), + (11, 724), + (12, 723), + (100, 701), + (101, 784), + (102, 784), + (103, 785), + (104, 787), + (105, 791), + (106, 799), + (107, 995), + (108, 784), + (109, 785), + (110, 787), + (111, 791), + (112, 799), + (113, 783), + (200, 733), + (201, 734), + (202, 866), + ]; + for (txtype, expected_length) in expected { + assert_eq!( + wire_length(schema(txtype).unwrap()), + expected_length, + "txtype {txtype}" + ); + } + } + + #[test] + fn signed_transaction_bytes_decode_without_losing_fields() { + let schema = schema(2).unwrap(); + let suffix = crate::address::network_suffix(); + let request = serde_json::json!({ + "txtype": 2, + "time": 1_700_000_000, + "value": "9007199254740993", + "coin": "CLTC", + "nft_series": 0, + "sender": format!("1111111111111111111111111111111111111111.{suffix}"), + "receiver": format!("2222222222222222222222222222222222222222.{suffix}"), + "txfee": "2500" + }); + let unsigned = canonical_unsigned(&request, schema).unwrap(); + let signature = "33".repeat(SIGNATURE_LENGTH); + let bytes = encode_transaction(schema, &unsigned, &"00".repeat(32), Some(&signature), None) + .unwrap(); + + let decoded = decode_transaction(&bytes).unwrap(); + let fields = decoded.fields.as_object().unwrap(); + assert_eq!(decoded.transaction_name, "Transfer"); + assert_eq!(fields["value"], "9007199254740993"); + assert_eq!(fields["coin"], "CLTC"); + assert_eq!(fields["receiver"], format!("2222222222222222222222222222222222222222.{suffix}")); + assert_eq!(decoded.signature.as_deref(), Some(signature.as_str())); + assert!(decoded.signature1.is_none()); + assert!(decoded.signature2.is_none()); + } + + #[test] + fn storage_keys_are_right_padded_during_canonicalization() { + let schema = schema(101).unwrap(); + let suffix = crate::address::network_suffix(); + let request = serde_json::json!({ + "txtype": 101, + "time": 1_700_000_000, + "storagekey": "00".repeat(32), + "key": "profile_name", + "value": true, + "address": format!("1111111111111111111111111111111111111111.{suffix}"), + "txfee": "100000000" + }); + + let unsigned = canonical_unsigned(&request, schema).unwrap(); + let key = unsigned.get("key").and_then(Value::as_str).unwrap(); + + assert_eq!(key.len(), 50); + assert_eq!(key.trim_end(), "profile_name"); + } + + #[test] + fn dual_signatures_are_created_independently_and_combined() { + let first_wallet = crate::wallet::generate("first wallet password").unwrap(); + let second_wallet = crate::wallet::generate("second wallet password").unwrap(); + let first = crate::wallet::unlock(&first_wallet, "first wallet password").unwrap(); + let second = crate::wallet::unlock(&second_wallet, "second wallet password").unwrap(); + let request = serde_json::json!({ + "txtype": 6, + "timestamp": 1_800_000_000, + "offer_expiration": 1_800_003_600u32, + "ticker1": "CLTC", + "nft_series1": 0, + "value1": "100000000", + "ticker2": "TEST", + "nft_series2": 0, + "value2": "200000000", + "sender1": first.short_address, + "sender2": second.short_address, + "tip1": "1000000", + "tip2": "1000000", + "txfee1": "1000000", + "txfee2": "1000000" + }); + let second_private = hex::decode(&second.private_key).unwrap(); + let second_public = hex::decode(&second.public_key).unwrap(); + let first_private = hex::decode(&first.private_key).unwrap(); + let first_public = hex::decode(&first.public_key).unwrap(); + let first_result = sign_request(&request, &first_private, &first_public, 1).unwrap(); + let second_result = sign_request(&request, &second_private, &second_public, 2).unwrap(); + + assert!(!first_result.complete); + assert!(first_result.signature1.is_some()); + assert!(first_result.signature2.is_none()); + assert!(!second_result.complete); + assert!(second_result.signature1.is_none()); + assert!(second_result.signature2.is_some()); + assert_eq!(first_result.hash, second_result.hash); + assert_eq!( + first_result.unsigned_bytes_hex, + second_result.unsigned_bytes_hex + ); + + let completed = complete_dual_request( + &request, + first_result.signature1.as_deref().unwrap(), + &first_public, + second_result.signature2.as_deref().unwrap(), + &second_public, + ) + .unwrap(); + + assert!(completed.complete); + assert!(completed.signature1.is_some()); + assert!(completed.signature2.is_some()); + assert_eq!(completed.bytes_hex.unwrap().len() / 2, 1471); + } +} diff --git a/core/src/transfer.rs b/core/src/transfer.rs new file mode 100644 index 0000000..ed2c598 --- /dev/null +++ b/core/src/transfer.rs @@ -0,0 +1,216 @@ +use serde::{Deserialize, Serialize}; + +use crate::address; +use crate::crypto; +use crate::error::BrowserCoreError; +use crate::SIGNATURE_LENGTH; + +pub const TRANSFER_TYPE: u8 = 2; +pub const COIN_BYTES: usize = 15; +pub const TRANSFER_BYTES: usize = 750; + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +pub struct UnsignedTransfer { + pub txtype: u8, + pub time: u32, + pub value: u64, + pub coin: String, + pub nft_series: u32, + pub sender: String, + pub receiver: String, + pub txfee: u64, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +pub struct SignedTransfer { + pub unsigned_transfer: UnsignedTransfer, + pub signature: String, +} + +#[derive(Debug, Serialize)] +pub struct BrowserTransferOutput { + pub txtype: u8, + pub time: u32, + pub value: String, + pub coin: String, + pub nft_series: u32, + pub sender: String, + pub receiver: String, + pub txfee: String, + pub hash: String, + pub signature: String, + pub bytes_hex: String, +} + +impl UnsignedTransfer { + pub fn validate(&self) -> Result<(), BrowserCoreError> { + if self.txtype != TRANSFER_TYPE { + return Err(BrowserCoreError::InvalidTransfer( + "transaction type must be 2".into(), + )); + } + if self.coin.len() != COIN_BYTES || !self.coin.is_ascii() { + return Err(BrowserCoreError::InvalidTransfer( + "coin must use the canonical 15-byte padded format".into(), + )); + } + address::short_address_to_bytes(&self.sender)?; + address::short_address_to_bytes(&self.receiver)?; + Ok(()) + } + + pub fn json(&self) -> Result { + serde_json::to_string(self).map_err(|error| BrowserCoreError::Json(error.to_string())) + } + + pub fn hash(&self) -> Result, BrowserCoreError> { + Ok(crypto::skein_256(self.json()?.as_bytes())) + } +} + +impl SignedTransfer { + pub fn validate_shape(&self) -> Result<(), BrowserCoreError> { + self.unsigned_transfer.validate()?; + let signature = + hex::decode(&self.signature).map_err(|_| BrowserCoreError::InvalidSignature)?; + if signature.len() != SIGNATURE_LENGTH { + return Err(BrowserCoreError::InvalidSignature); + } + Ok(()) + } + + pub fn to_bytes(&self) -> Result, BrowserCoreError> { + self.validate_shape()?; + let mut bytes = Vec::with_capacity(TRANSFER_BYTES); + bytes.push(self.unsigned_transfer.txtype); + bytes.extend_from_slice(&self.unsigned_transfer.time.to_le_bytes()); + bytes.extend_from_slice(&self.unsigned_transfer.value.to_le_bytes()); + bytes.extend_from_slice(self.unsigned_transfer.coin.as_bytes()); + bytes.extend_from_slice(&self.unsigned_transfer.nft_series.to_le_bytes()); + bytes.extend_from_slice(&address::short_address_to_bytes( + &self.unsigned_transfer.sender, + )?); + bytes.extend_from_slice(&address::short_address_to_bytes( + &self.unsigned_transfer.receiver, + )?); + bytes.extend_from_slice(&self.unsigned_transfer.txfee.to_le_bytes()); + bytes.extend_from_slice( + &hex::decode(&self.signature).map_err(|_| BrowserCoreError::InvalidSignature)?, + ); + debug_assert_eq!(bytes.len(), TRANSFER_BYTES); + Ok(bytes) + } + + pub fn from_bytes(bytes: &[u8]) -> Result { + if bytes.len() != TRANSFER_BYTES || bytes[0] != TRANSFER_TYPE { + return Err(BrowserCoreError::InvalidTransfer(format!( + "expected a {TRANSFER_BYTES}-byte type-2 transaction" + ))); + } + + let mut offset = 1; + let time = read_u32(bytes, &mut offset); + let value = read_u64(bytes, &mut offset); + let coin = String::from_utf8(bytes[offset..offset + COIN_BYTES].to_vec()) + .map_err(|_| BrowserCoreError::InvalidTransfer("coin is not UTF-8".into()))?; + offset += COIN_BYTES; + let nft_series = read_u32(bytes, &mut offset); + let sender = address::bytes_to_short_address(&bytes[offset..offset + 22])?; + offset += 22; + let receiver = address::bytes_to_short_address(&bytes[offset..offset + 22])?; + offset += 22; + let txfee = read_u64(bytes, &mut offset); + let signature = hex::encode(&bytes[offset..offset + SIGNATURE_LENGTH]); + + let transfer = Self { + unsigned_transfer: UnsignedTransfer { + txtype: TRANSFER_TYPE, + time, + value, + coin, + nft_series, + sender, + receiver, + txfee, + }, + signature, + }; + transfer.validate_shape()?; + Ok(transfer) + } + + pub fn browser_output(&self) -> Result { + let bytes_hex = hex::encode(self.to_bytes()?); + let hash = hex::encode(self.unsigned_transfer.hash()?); + Ok(BrowserTransferOutput { + txtype: self.unsigned_transfer.txtype, + time: self.unsigned_transfer.time, + value: self.unsigned_transfer.value.to_string(), + coin: self.unsigned_transfer.coin.clone(), + nft_series: self.unsigned_transfer.nft_series, + sender: self.unsigned_transfer.sender.clone(), + receiver: self.unsigned_transfer.receiver.clone(), + txfee: self.unsigned_transfer.txfee.to_string(), + hash, + signature: self.signature.clone(), + bytes_hex, + }) + } +} + +fn read_u32(bytes: &[u8], offset: &mut usize) -> u32 { + let value = u32::from_le_bytes(bytes[*offset..*offset + 4].try_into().unwrap()); + *offset += 4; + value +} + +fn read_u64(bytes: &[u8], offset: &mut usize) -> u64 { + let value = u64::from_le_bytes(bytes[*offset..*offset + 8].try_into().unwrap()); + *offset += 8; + value +} + +#[cfg(test)] +mod tests { + use super::*; + + fn address(byte: u8) -> String { + format!("{}.{}", hex::encode([byte; 20]), crate::address::network_suffix()) + } + + fn unsigned() -> UnsignedTransfer { + UnsignedTransfer { + txtype: TRANSFER_TYPE, + time: 1_700_000_000, + value: 123_456_789, + coin: "CLTC ".to_string(), + nft_series: 0, + sender: address(0x11), + receiver: address(0x22), + txfee: 1_234_568, + } + } + + #[test] + fn unsigned_json_matches_node_field_order() { + let serialized = unsigned().json().unwrap(); + assert!(serialized.contains(&format!("1111111111111111111111111111111111111111.{}", crate::address::network_suffix()))); + assert!(serialized.contains(&format!("2222222222222222222222222222222222222222.{}", crate::address::network_suffix()))); + #[cfg(feature = "testnet")] + assert_eq!( + hex::encode(unsigned().hash().unwrap()), + "7e6a1ef0232eee327dd6c18640f85b16e632762a7c424abfc720ee72fb002c32" + ); + } + + #[test] + fn transfer_wire_layout_round_trips() { + let transfer = SignedTransfer { + unsigned_transfer: unsigned(), + signature: hex::encode([0x33; SIGNATURE_LENGTH]), + }; + let bytes = transfer.to_bytes().unwrap(); + assert_eq!(bytes.len(), TRANSFER_BYTES); + assert_eq!(SignedTransfer::from_bytes(&bytes).unwrap(), transfer); + } +} diff --git a/core/src/wallet.rs b/core/src/wallet.rs new file mode 100644 index 0000000..5d97728 --- /dev/null +++ b/core/src/wallet.rs @@ -0,0 +1,338 @@ +use aes_gcm::aead::{Aead, KeyInit}; +use aes_gcm::{Aes256Gcm, Nonce}; +use falcon::FnDsaKeyPair; +use pbkdf2::pbkdf2_hmac; +use rand::{rngs::OsRng, RngCore}; +use serde::{Deserialize, Serialize}; +use sha2::Sha256; +use zeroize::Zeroize; + +use crate::address; +use crate::crypto; +use crate::error::BrowserCoreError; +use crate::legacy_wallet; +use crate::{PRIVATE_KEY_LENGTH, PUBLIC_KEY_LENGTH}; + +const KDF_ITERATIONS: u32 = 310_000; +const REGISTRATION_COMMAND: u8 = 38; + +#[derive(Debug, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct BrowserWallet { + pub version: u8, + pub network: String, + pub short_address: String, + pub vanity_address: Option, + pub public_key: String, + pub salt: String, + pub iterations: u32, + pub nonce: String, + pub encrypted_private_key: String, +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(deny_unknown_fields)] +pub struct LegacySavedWallet { + pub short_address: String, + pub vanity_address: Option, + pub public_key: String, + pub private_key: String, +} + +#[derive(Debug, Serialize)] +pub struct UnlockedWallet { + pub short_address: String, + pub vanity_address: Option, + pub public_key: String, + pub private_key: String, +} + +#[derive(Debug, Serialize)] +pub struct RegistrationPayload { + pub command: u8, + pub short_address: String, + pub public_key: String, + pub hash: String, + pub signature: String, + pub payload_hex: String, +} + +pub fn generate(password: &str) -> Result { + let (public_key, mut private_key) = generate_keypair()?; + let wallet = encrypt_wallet(&public_key, &private_key, None, password); + private_key.zeroize(); + wallet +} + +pub fn unlock(wallet: &BrowserWallet, password: &str) -> Result { + if wallet.version != 1 || wallet.iterations < 100_000 { + return Err(BrowserCoreError::InvalidRequest( + "unsupported browser wallet format".into(), + )); + } + let salt = decode_length(&wallet.salt, 32, "wallet salt")?; + let nonce = decode_length(&wallet.nonce, 12, "wallet nonce")?; + let ciphertext = hex::decode(&wallet.encrypted_private_key) + .map_err(|_| BrowserCoreError::InvalidPrivateKey)?; + let key = derive_key(password, &salt, wallet.iterations); + let private_key = Aes256Gcm::new_from_slice(&key) + .unwrap() + .decrypt(Nonce::from_slice(&nonce), ciphertext.as_ref()) + .map_err(|_| { + BrowserCoreError::InvalidRequest("wallet password or integrity check failed".into()) + })?; + validate_key_material(&private_key, &wallet.public_key, &wallet.short_address)?; + Ok(UnlockedWallet { + short_address: wallet.short_address.clone(), + vanity_address: wallet.vanity_address.clone(), + public_key: wallet.public_key.clone(), + private_key: hex::encode(private_key), + }) +} + +pub fn import_legacy( + legacy: &LegacySavedWallet, + legacy_password: &str, + browser_password: &str, +) -> Result { + let private_key_hex = legacy_wallet::decrypt_private_key(&legacy.private_key, legacy_password)?; + let mut private_key = + hex::decode(&private_key_hex).map_err(|_| BrowserCoreError::InvalidPrivateKey)?; + validate_key_material(&private_key, &legacy.public_key, &legacy.short_address)?; + let public_key = + hex::decode(&legacy.public_key).map_err(|_| BrowserCoreError::InvalidPublicKey)?; + let wallet = encrypt_wallet( + &public_key, + &private_key, + legacy.vanity_address.clone(), + browser_password, + ); + private_key.zeroize(); + wallet +} + +pub fn import_private_key_image( + image_base64: &str, + image_password: &str, + browser_password: &str, +) -> Result { + let mut private_key_hex = legacy_wallet::decrypt_private_key(image_base64, image_password)?; + let result = import_private_key(&private_key_hex, browser_password); + private_key_hex.zeroize(); + result +} + +pub fn import_private_key( + private_key_hex: &str, + browser_password: &str, +) -> Result { + let mut private_key = + hex::decode(private_key_hex).map_err(|_| BrowserCoreError::InvalidPrivateKey)?; + if private_key.len() != PRIVATE_KEY_LENGTH { + private_key.zeroize(); + return Err(BrowserCoreError::InvalidPrivateKey); + } + let result = wallet_from_private_key(&private_key, browser_password); + private_key.zeroize(); + result +} + +pub fn export_legacy( + wallet: &BrowserWallet, + browser_password: &str, + legacy_password: &str, +) -> Result { + let mut unlocked = unlock(wallet, browser_password)?; + let image = legacy_wallet::encrypt_private_key(&unlocked.private_key, legacy_password)?; + unlocked.private_key.zeroize(); + Ok(LegacySavedWallet { + short_address: wallet.short_address.clone(), + vanity_address: wallet.vanity_address.clone(), + public_key: wallet.public_key.clone(), + private_key: image, + }) +} + +pub fn registration( + wallet: &BrowserWallet, + password: &str, +) -> Result { + let mut unlocked = unlock(wallet, password)?; + let result = registration_from_keys( + &unlocked.short_address, + &unlocked.public_key, + &unlocked.private_key, + ); + unlocked.private_key.zeroize(); + result +} + +pub fn registration_from_keys( + short_address: &str, + public_key_hex: &str, + private_key_hex: &str, +) -> Result { + let address_bytes = address::short_address_to_bytes(short_address)?; + let public_key = decode_length(public_key_hex, PUBLIC_KEY_LENGTH, "public key")?; + let mut signed_payload = Vec::with_capacity(1 + 22 + PUBLIC_KEY_LENGTH); + signed_payload.push(REGISTRATION_COMMAND); + signed_payload.extend_from_slice(&address_bytes); + signed_payload.extend_from_slice(&public_key); + let hash = crypto::skein_256(&signed_payload); + let private_key = + hex::decode(private_key_hex).map_err(|_| BrowserCoreError::InvalidPrivateKey)?; + validate_key_material(&private_key, public_key_hex, short_address)?; + let signature = crypto::sign(&hash, &private_key)?; + let mut payload = signed_payload.clone(); + payload.extend_from_slice(&signature); + Ok(RegistrationPayload { + command: REGISTRATION_COMMAND, + short_address: short_address.to_owned(), + public_key: public_key_hex.to_owned(), + hash: hex::encode(hash), + signature: hex::encode(signature), + payload_hex: hex::encode(payload), + }) +} + +pub fn handshake_proof( + public_key_hex: &str, + private_key_hex: &str, +) -> Result { + let public_key = decode_length(public_key_hex, PUBLIC_KEY_LENGTH, "public key")?; + let private_key = + hex::decode(private_key_hex).map_err(|_| BrowserCoreError::InvalidPrivateKey)?; + let keypair = FnDsaKeyPair::from_private_key(&private_key) + .map_err(|_| BrowserCoreError::InvalidPrivateKey)?; + if keypair.public_key() != public_key { + return Err(BrowserCoreError::InvalidRequest( + "wallet public key does not match its private key".into(), + )); + } + Ok(hex::encode(crypto::sign( + &crypto::skein_256(b"aced"), + &private_key, + )?)) +} + +fn generate_keypair() -> Result<(Vec, Vec), BrowserCoreError> { + loop { + let keypair = FnDsaKeyPair::generate(9).map_err(|_| BrowserCoreError::InvalidPrivateKey)?; + let public_key = keypair.public_key().to_vec(); + if address::valid_public_key(&public_key) { + return Ok((public_key, keypair.private_key().to_vec())); + } + } +} + +fn wallet_from_private_key( + private_key: &[u8], + password: &str, +) -> Result { + let keypair = FnDsaKeyPair::from_private_key(private_key) + .map_err(|_| BrowserCoreError::InvalidPrivateKey)?; + let public_key = keypair.public_key(); + address::public_key_to_short_address(public_key)?; + encrypt_wallet(public_key, private_key, None, password) +} + +fn encrypt_wallet( + public_key: &[u8], + private_key: &[u8], + vanity_address: Option, + password: &str, +) -> Result { + let short_address = address::public_key_to_short_address(public_key)?; + let mut salt = [0u8; 32]; + let mut nonce = [0u8; 12]; + OsRng.fill_bytes(&mut salt); + OsRng.fill_bytes(&mut nonce); + let mut key = derive_key(password, &salt, KDF_ITERATIONS); + let ciphertext = Aes256Gcm::new_from_slice(&key) + .unwrap() + .encrypt(Nonce::from_slice(&nonce), private_key) + .map_err(|_| BrowserCoreError::InvalidRequest("wallet encryption failed".into()))?; + key.zeroize(); + Ok(BrowserWallet { + version: 1, + network: address::network_suffix().into(), + short_address, + vanity_address, + public_key: hex::encode(public_key), + salt: hex::encode(salt), + iterations: KDF_ITERATIONS, + nonce: hex::encode(nonce), + encrypted_private_key: hex::encode(ciphertext), + }) +} + +fn derive_key(password: &str, salt: &[u8], iterations: u32) -> [u8; 32] { + let mut key = [0u8; 32]; + pbkdf2_hmac::(password.as_bytes(), salt, iterations, &mut key); + key +} + +fn validate_key_material( + private_key: &[u8], + public_key_hex: &str, + short_address: &str, +) -> Result<(), BrowserCoreError> { + if private_key.len() != PRIVATE_KEY_LENGTH { + return Err(BrowserCoreError::InvalidPrivateKey); + } + let keypair = FnDsaKeyPair::from_private_key(private_key) + .map_err(|_| BrowserCoreError::InvalidPrivateKey)?; + let public_key = keypair.public_key(); + if public_key.len() != PUBLIC_KEY_LENGTH || hex::encode(public_key) != public_key_hex { + return Err(BrowserCoreError::InvalidRequest( + "wallet public key does not match its private key".into(), + )); + } + if address::public_key_to_short_address(public_key)? != short_address { + return Err(BrowserCoreError::InvalidRequest( + "wallet address does not match its private key".into(), + )); + } + Ok(()) +} + +fn decode_length(value: &str, length: usize, name: &str) -> Result, BrowserCoreError> { + let bytes = hex::decode(value) + .map_err(|_| BrowserCoreError::InvalidRequest(format!("{name} is not hexadecimal")))?; + if bytes.len() != length { + return Err(BrowserCoreError::InvalidRequest(format!( + "{name} has an invalid length" + ))); + } + Ok(bytes) +} + +#[cfg(test)] +mod tests { + use super::{export_legacy, generate, import_private_key, import_private_key_image, unlock}; + + #[test] + fn private_key_import_recreates_the_same_wallet() { + let original = generate("original password").unwrap(); + let unlocked = unlock(&original, "original password").unwrap(); + let imported = import_private_key(&unlocked.private_key, "new password").unwrap(); + let imported_unlocked = unlock(&imported, "new password").unwrap(); + + assert_eq!(imported.short_address, original.short_address); + assert_eq!(imported.public_key, original.public_key); + assert_eq!(imported_unlocked.private_key, unlocked.private_key); + } + + #[test] + fn private_key_image_import_recreates_the_same_wallet() { + let original = generate("browser password").unwrap(); + let legacy = export_legacy(&original, "browser password", "image password").unwrap(); + let imported = + import_private_key_image(&legacy.private_key, "image password", "new password") + .unwrap(); + + assert_eq!(imported.short_address, original.short_address); + assert_eq!(imported.public_key, original.public_key); + assert!(unlock(&imported, "new password").is_ok()); + } +} diff --git a/extension/README.md b/extension/README.md new file mode 100644 index 0000000..b359f97 --- /dev/null +++ b/extension/README.md @@ -0,0 +1,206 @@ +# Contractless Browser Wallet + +This is the WebExtension application for the Contractless Web3 wallet. It uses +the repository's `core` package for wallet generation, encryption, +transaction inspection, signing, message proofs, and wallet registration. + +The private key is encrypted in extension-local storage. Decrypted key +material exists only in the background service worker while the wallet is +unlocked and is cleared when the wallet locks or the worker is suspended. + +## Requirements + +Install: + +- Rust and Cargo +- `wasm-pack` +- Node.js 20 or later +- pnpm + +Install the JavaScript dependencies from this directory: + +```text +cargo install wasm-pack +pnpm install +``` + +## Build + +Build both browser packages: + +```text +pnpm run build +``` + +This compiles separate testnet and mainnet versions of the Rust core to +WebAssembly and creates: + +```text +dist/chrome/ +dist/firefox/ +``` + +Build only one browser when developing: + +```text +pnpm run build:chrome +pnpm run build:firefox +``` + +Chrome and Firefox use the same TypeScript, HTML, CSS, SDK provider, and two +network-specific WebAssembly cores. Each output receives its own manifest because Chrome uses a +Manifest V3 background service worker while Firefox uses a Manifest V3 +background event script. + +### Load in Chrome + +Open `chrome://extensions`, enable **Developer mode**, select **Load +unpacked**, and choose `dist/chrome`. + +### Load in Firefox + +Open `about:debugging`, select **This Firefox**, select **Load Temporary +Add-on**, and choose `dist/firefox/manifest.json`. + +The Firefox build requires Firefox 149 or later. Firefox 149 removed the user +gesture restriction from `action.openPopup`, allowing website connection and +transaction requests to open the wallet approval interface automatically in +the same way as the Chrome build. + +Run Mozilla's validator after building Firefox: + +```text +pnpm run lint:firefox +``` + +Create the Firefox submission archive: + +```text +pnpm run package:firefox +``` + +The archive is written to `web-ext-artifacts`. Firefox requires Mozilla signing +before the packaged extension can be installed permanently in standard +Firefox releases. + +Safari requires conversion through Apple's Safari Web Extension tooling and +Xcode. + +## Networks + +The wallet presents a Testnet/Mainnet selector before wallet creation and +unlock. Addresses, active wallets, WebAssembly transaction codecs, API URLs, +and website sessions are isolated by the selected network. Switching networks +locks the wallet and expires all application access keys. + +Testnet uses `.cltc` addresses and defaults to +`https://api.contractless.dev`. Mainnet uses `.clc` addresses and has no API +configured by default. A mainnet wallet may still be created, imported, and +backed up while that endpoint is empty; network lookups, registration, and +transaction broadcasts remain unavailable until a mainnet API is configured. + +## Provider + +Websites receive `window.contractless` with a Promise-based `request` method. +Applications should normally use the downloadable client in +`../sdk/contractless.js` instead of calling the provider directly: + +```js +import { ContractlessWallet } from "./contractless.js"; + +const wallet = new ContractlessWallet({ + appId: "example-application" +}); + +const connection = await wallet.connect({ + message: "Sign in to Example Application" +}); +``` + +Transaction and message requests are routed through the background worker and +wallet approval screen. Websites never receive wallet private keys or +unrestricted raw-signing access. Single-signer transactions are signed and +broadcast by the wallet. The transaction ID and signed bytes are returned only +after the configured API accepts the broadcast. + +Supported provider methods are: + +- `contractless_detect` +- `contractless_connect` +- `contractless_accounts` +- `contractless_balances` +- `contractless_disconnect` +- `contractless_signMessage` +- `contractless_sendTransaction` + +Connection, message signing, and transaction submission wait for an explicit +approval or rejection. A successful connection creates a random 256-bit +access key bound to the browser-derived origin, stable application ID, active +wallet, and current wallet unlock session. + +The website stores its copy in browser `sessionStorage`. The extension stores +the matching authorization in extension session storage. The key is reusable +until the wallet locks, changes active wallets, or the application +disconnects. It is not a permanent connected-site permission. + +Every authorized request includes the claimed origin, application ID, and +access key. The extension independently derives the real origin from the +browser message sender and rejects mismatches. + +See `../sdk/README.md` for complete website integration examples. + +## Wallet registration + +The **Register wallet** button creates the command-38 registration signature +and the fixed API handshake proof locally. It sends the address, public key, +and signatures to: + +```text +POST /api/v1/addresses/register +``` + +The private key and wallet encryption key never leave the extension. The API +requires the authenticated address and public key to match the registration +being submitted before forwarding it to a Contractless node. + +The API operator must include the installed extension origin in +`API_CORS_ORIGINS`, for example: + +```text +API_CORS_ORIGINS=chrome-extension://extension-id +``` + +Keep any existing allowed website origins in the comma-separated list. +Changing the API endpoint in the wallet prompts the user for permission to +contact that HTTPS origin. + +Firefox extension pages use a `moz-extension://` origin. The production API +must allow the installed Firefox extension to make the same wallet requests as +the Chrome build. + +## Firefox Submission Source + +Mozilla reviewers must receive the readable source because Vite bundles the +TypeScript and `wasm-pack` generates the WebAssembly package. Submit the built +Firefox archive as the add-on and a separate source archive containing at +least: + +```text +core/ +extension/src/ +extension/package.json +extension/pnpm-lock.yaml +extension/pnpm-workspace.yaml +extension/tsconfig.json +extension/vite.config.ts +README.md +``` + +Do not include `extension/node_modules`, `extension/dist`, or `core/target` in +the source archive. Reviewers can reproduce the Firefox build by entering the +`extension` directory and running: + +```text +pnpm install --frozen-lockfile +pnpm run build:firefox +``` diff --git a/extension/dist/assets/contractless-logo-BgfMS-Kf.png b/extension/dist/assets/contractless-logo-BgfMS-Kf.png new file mode 100644 index 0000000000000000000000000000000000000000..729e4d758734de7d40045dd953e5e6ccae13c5b0 GIT binary patch literal 5286 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 z%0A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℞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

i%IR|R&_l@C#~DyaC}rvsXEht;dN14m7n`OZdC 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�c>wsTnrCg!bi&`qTXh`=w& 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 XB!}y{nck*G#gndQcl&W$&!_wkCz)I4 literal 0 HcmV?d00001 diff --git a/extension/dist/assets/popup-C5oUQoSX.css b/extension/dist/assets/popup-C5oUQoSX.css new file mode 100644 index 0000000..e5133e2 --- /dev/null +++ b/extension/dist/assets/popup-C5oUQoSX.css @@ -0,0 +1 @@ +:root{--blue: #2167a5;--blue-deep: #174d7c;--ink: #13202a;--muted-white: rgb(255 255 255 / 90%);--danger: #b9382e;--danger-soft: #fff0ee;--success: #1d8054;--dark: #0c151d;--surface: #111e28;--surface-raised: #172936;--surface-active: #1b3547;--dark-line: #314957;--dark-muted: #c4d0d7;--accent: #55c5dc;font:14px/1.45 Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{width:390px;min-width:390px;min-height:600px;margin:0;background:var(--blue);color:#fff}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.wallet-shell{position:relative;width:390px;height:600px;overflow:hidden;background:var(--blue)}.screen{width:100%;height:100%;background:var(--blue)}.screen[hidden]{display:none}.wallet-header{height:72px;display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid rgb(255 255 255 / 70%)}.wallet-header img{width:37px;filter:brightness(0) invert(1)}.wallet-header div{display:grid}.wallet-header strong{font-size:18px}.wallet-header small{color:var(--muted-white);font-size:14px}.wallet-header>span{margin-left:auto;font-size:13px;font-weight:700}.screen-content{padding:28px 24px 22px}.screen-content.compact{padding-top:18px}.eyebrow{font-size:11px;font-weight:700;text-transform:uppercase}h1{margin:7px 0 9px;font-size:27px;line-height:1.12;letter-spacing:0}.intro{margin:0 0 24px;color:var(--muted-white);line-height:1.5}label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}.input-row{height:49px;display:grid;grid-template-columns:1fr auto;border:1px solid white;background:#fff}.input-row:focus-within,textarea:focus{outline:2px solid rgb(255 255 255 / 28%);outline-offset:2px}.input-row input{min-width:0;border:0;padding:0 13px;color:var(--ink);outline:0}.reveal{border:0;border-left:1px solid #d9e0e5;padding:0 13px;background:#fff;color:var(--blue);font-size:11px;font-weight:700}textarea{width:100%;min-height:82px;margin-bottom:13px;resize:none;border:1px solid white;padding:11px 13px;color:var(--ink);outline:0}.note{display:grid;gap:2px;margin:18px 0 23px;border-left:3px solid var(--accent);padding:13px;background:var(--surface-raised);color:#fff;font-size:12px}.note span{color:var(--dark-muted)}.compact-note{margin:12px 0 14px;padding:10px 13px}.warning{margin:18px 0 25px;border-left:3px solid var(--danger);padding:13px;background:#321c20;color:#ffbbb5;font-size:12px;line-height:1.4}.warning strong{display:block}.primary,.secondary{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--accent);background:var(--accent);color:#08202b;font-weight:700}.primary span{font-size:18px}.secondary{min-height:42px;margin-top:9px;background:transparent;color:#dcecf3;font-size:12px}.secondary:disabled{border-color:#ffffff59;color:#ffffff7f}.text-button{width:100%;margin-top:8px;border:0;padding:8px;background:transparent;color:var(--muted-white)}.divider{display:flex;align-items:center;gap:10px;margin:17px 0 12px;color:#ffffffad;font-size:12px;text-transform:uppercase}.divider:before,.divider:after{height:1px;flex:1;background:#ffffff4d;content:""}.file-heading{margin-top:20px}.file-picker{min-height:86px;display:flex;align-items:center;gap:13px;margin-bottom:24px;border:1px dashed rgb(255 255 255 / 72%);padding:14px;background:#ffffff1a;cursor:pointer}.file-picker>span:last-child{display:grid;gap:4px}.file-picker small{color:#ffffffad;font-weight:400}.file-icon{width:34px;height:34px;display:grid;flex:0 0 34px;place-items:center;border:1px solid white;font-size:22px;font-weight:400}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.loading-screen{position:relative}.loading-brand{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:34px}.loading-brand img,.large-logo{width:148px;filter:brightness(0) invert(1)}.spinner{width:28px;aspect-ratio:1;border:3px solid rgb(255 255 255 / 28%);border-top-color:#fff;border-radius:50%;animation:spin .85s linear infinite}.loading-screen>p{position:absolute;bottom:35px;width:100%;margin:0;color:#ffffffb8;font-size:12px;text-align:center;text-transform:uppercase}@keyframes spin{to{transform:rotate(360deg)}}.success-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:1px solid #55c98a;background:#123727;color:#66dfa0;font-size:22px;font-weight:700}.image-preview{position:relative;height:142px;margin:18px 0;overflow:hidden;border:1px solid var(--dark-line);background:var(--surface)}.image-preview img{width:100%;height:100%;display:block;object-fit:contain}.confirmation{display:grid;grid-template-columns:18px 1fr;gap:9px;align-items:start;margin:14px 0;color:#ffffffd6;font-size:11px;line-height:1.35}.confirmation input{width:16px;height:16px;margin:0}.centered-content{height:100%;display:flex;flex-direction:column;justify-content:center;padding:36px 28px;text-align:center}.centered-content{align-items:stretch}.centered-content .large-logo{align-self:center;width:92px;margin-bottom:25px}.centered-content h1{text-align:center}.centered-content .primary{margin-top:22px}.dashboard-header{height:66px}.account-button{min-width:105px;max-width:132px;height:34px;display:flex;align-items:center;gap:7px;margin-left:auto;overflow:hidden;border:1px solid rgb(255 255 255 / 45%);padding:0 10px;background:transparent;color:#fff;font-size:14px}.account-button>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#63d18d}.assets-dashboard{height:calc(100% - 66px);overflow:hidden}.portfolio-balance{padding:22px 22px 19px;border-bottom:1px solid rgb(255 255 255 / 24%);background:var(--blue-deep)}.portfolio-balance>span{color:var(--muted-white);font-size:14px;text-transform:uppercase}.portfolio-balance>strong{display:block;margin-top:4px;font-size:31px;line-height:1.2}.portfolio-balance>strong small{font-size:13px}.portfolio-balance p{max-width:100%;margin:7px 0 0;overflow:hidden;color:#ffffffd1;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.wallet-actions{height:88px;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid rgb(255 255 255 / 24%)}.wallet-actions button{display:grid;place-items:center;align-content:center;gap:5px;border:0;border-right:1px solid rgb(255 255 255 / 18%);background:transparent;color:#fff;font-size:14px;font-weight:700}.wallet-actions button:last-child{border-right:0}.action-icon{width:29px;height:29px;display:grid;place-items:center;border:1px solid rgb(255 255 255 / 65%);font-size:16px;font-weight:400}.asset-ledger{height:calc(100% - 209px);background:var(--dark);color:#fff}.asset-filter{height:42px;display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--dark-line);padding:5px 19px;background:#0f1a22}.asset-filter button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--dark-muted);font-size:14px;font-weight:700}.asset-filter button.active{border-bottom-color:var(--accent);color:#fff}.asset-ledger-heading{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 19px;border-bottom:1px solid var(--dark-line)}.asset-ledger-heading h1{margin:0;font-size:19px}.asset-ledger-heading button{width:30px;height:30px;border:0;background:transparent;color:var(--accent);font-size:17px}.asset-row{min-height:66px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px 19px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.asset-symbol{width:36px;height:36px;display:grid;place-items:center;background:var(--blue);color:#fff;font-size:12px;font-weight:700}.contractless-symbol img{width:25px;filter:brightness(0) invert(1)}.asset-name,.asset-value{min-width:0;display:grid;gap:2px}.asset-name strong,.asset-value strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.asset-name span,.asset-value span{color:var(--dark-muted);font-size:13px}.asset-value{max-width:125px;text-align:right}.token-list{max-height:calc(100% - 148px);overflow-y:auto}.empty-assets{display:grid;gap:5px;padding:27px 20px;color:var(--dark-muted);text-align:center}.empty-assets strong{color:#dce8ee;font-size:16px}.empty-assets span{font-size:14px}.receive-screen{background:var(--dark)}.receive-screen .wallet-header{background:var(--blue)}.send-screen,.send-review-screen,.send-success-screen{background:var(--dark);color:#fff}.send-screen .wallet-header,.send-review-screen .wallet-header,.send-success-screen .wallet-header{background:var(--blue)}.send-content,.send-review-content,.send-success-content{height:calc(100% - 72px);padding:22px;overflow-y:auto}.send-content{display:grid;align-content:start;gap:17px}.send-content label{color:#fff;font-size:14px}.send-content input,.send-content select{width:100%;min-height:48px;border:1px solid var(--dark-line);padding:0 13px;background:var(--surface);color:#fff;outline:0}.send-content input:focus,.send-content select:focus{border-color:var(--accent)}.send-amount-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.send-amount-row input{border-right:0}.send-amount-row>span{min-width:64px;display:grid;place-items:center;border:1px solid var(--dark-line);background:var(--surface-raised);color:var(--accent);font-weight:700}.field-note{display:block;margin-top:7px;color:var(--dark-muted);font-size:13px}.send-continue{margin-top:5px}.send-review-content{padding:0 22px 24px}.send-review-amount{margin:0 -22px 20px;padding:24px 22px;background:var(--blue-deep)}.send-review-amount>span{color:var(--muted-white);font-size:13px;text-transform:uppercase}.send-review-amount strong{display:block;margin-top:5px;font-size:29px}.send-review-amount small{color:var(--accent);font-size:15px}.send-review-details{margin:0 0 18px}.send-review-details>div{padding:12px 0;border-bottom:1px solid var(--dark-line)}.send-review-details dt{margin-bottom:4px;color:var(--dark-muted);font-size:13px}.send-review-details dd{margin:0;overflow-wrap:anywhere;color:#fff;font-weight:700}.signing-notice{margin:18px 0;padding-left:12px;border-left:3px solid var(--accent);color:var(--dark-muted)}.send-success-content{text-align:center}.send-success-content p{color:var(--dark-muted)}.send-txid{margin:24px 0 14px;padding:14px;border:1px solid var(--dark-line);background:var(--surface);text-align:left}.send-txid span{display:block;margin-bottom:5px;color:var(--dark-muted);font-size:13px}.send-txid strong{overflow-wrap:anywhere}.send-success-content .secondary{margin-bottom:10px}.receive-content{height:calc(100% - 72px);overflow-y:auto;padding:25px 24px 22px;text-align:center}.receive-label{color:var(--accent);font-size:12px;font-weight:700;text-transform:uppercase}.receive-content h1{margin-top:8px}.receive-content>p{margin:0 auto 20px;color:var(--dark-muted);font-size:11px;line-height:1.45}.qr-frame{width:238px;height:238px;display:grid;place-items:center;margin:0 auto 19px;border:1px solid #708693;padding:8px;background:#fff}.qr-frame canvas{width:220px;height:220px;display:block}.receive-address{display:grid;gap:6px;border:1px solid var(--dark-line);padding:13px;background:var(--surface);text-align:left}.receive-address span{color:var(--dark-muted);font-size:11px;font-weight:700;text-transform:uppercase}.receive-address strong{overflow-wrap:anywhere;color:#e5f0f5;font:12px/1.4 Consolas,monospace}.receive-copy{margin-top:13px}.nfts-screen,.nft-detail-screen{background:var(--dark);color:#fff}.nfts-screen .wallet-header,.nft-detail-screen .wallet-header{background:var(--blue)}.header-refresh{width:34px;height:34px;display:grid;place-items:center;margin-left:auto;border:1px solid rgb(255 255 255 / 70%);background:transparent;color:#fff;font-size:18px}.nfts-content,.nft-detail-content{height:calc(100% - 72px);overflow-y:auto}.nfts-summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:#0f1a22;color:var(--dark-muted);font-size:13px;font-weight:700;text-transform:uppercase}.nfts-summary span:first-child{color:var(--accent)}.nfts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:1px;background:var(--dark-line)}.nft-card{min-width:0;display:grid;align-content:start;border:0;padding:0;background:var(--surface);color:#fff;text-align:left}.nft-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nft-card-media{width:100%;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;background:#17303e;color:var(--accent);font-size:28px;font-weight:700}.nft-card-media img{width:100%;height:100%;display:block;object-fit:cover}.nft-card-identity{min-height:116px;display:grid;align-content:start;gap:3px;padding:11px 12px 13px}.nft-card-identity>span{color:var(--accent);font-size:11px;font-weight:700}.nft-card-identity strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.nft-card-identity small{overflow:hidden;color:var(--dark-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.nft-card-identity b{margin-top:5px;color:#fff;font-size:12px}.nft-card-identity em{color:#e9c667;font-size:11px;font-style:normal}.nfts-empty{grid-column:1 / -1;min-height:300px;display:grid;place-content:center;gap:6px;padding:30px;background:var(--surface);color:var(--dark-muted);text-align:center}.nfts-empty strong{color:#fff;font-size:17px}.nfts-pagination{min-height:52px;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:10px;padding:7px 14px;border-top:1px solid var(--dark-line);background:#0f1a22;text-align:center}.nfts-pagination[hidden]{display:none}.nfts-pagination button{width:38px;height:38px;border:1px solid var(--dark-line);background:var(--surface);color:var(--accent);font-size:17px}.nfts-pagination button:disabled{color:#61727c}.nfts-pagination span{color:var(--dark-muted);font-size:13px}.nft-detail-media{width:100%;aspect-ratio:16 / 11;display:grid;place-items:center;overflow:hidden;border-bottom:1px solid var(--dark-line);background:#142934}.nft-detail-media img{width:100%;height:100%;display:block;object-fit:contain}.nft-detail-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;align-items:end;padding:18px 20px 14px}.nft-detail-heading>div{min-width:0}.nft-detail-heading span{color:var(--accent);font-size:11px;font-weight:700}.nft-detail-heading h1{overflow-wrap:anywhere;margin:4px 0 0;font-size:23px}.nft-detail-heading>strong{color:#63d18d;font-size:13px;text-align:right}.nft-detail-description{margin:0;padding:0 20px 17px;color:var(--dark-muted);font-size:14px;line-height:1.5}.nft-detail-attributes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 20px 18px}.nft-detail-attributes[hidden]{display:none}.nft-detail-attributes>div{min-width:0;display:grid;gap:2px;border:1px solid var(--dark-line);padding:9px;background:var(--surface-raised)}.nft-detail-attributes span{overflow:hidden;color:var(--dark-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.nft-detail-attributes strong{overflow-wrap:anywhere;font-size:13px}.nft-detail-fields{margin:0;border-top:1px solid var(--dark-line)}.nft-detail-fields>div{display:grid;gap:4px;padding:12px 20px;border-bottom:1px solid var(--dark-line)}.nft-detail-fields dt{color:var(--dark-muted);font-size:12px}.nft-detail-fields dd{margin:0;overflow-wrap:anywhere;color:#fff;font:12px/1.45 Consolas,monospace}.nft-detail-actions{padding:18px 20px 0}.nft-provenance{padding:18px 20px 25px}.nft-provenance h2{margin:0 0 11px;font-size:16px}.nft-provenance p{color:var(--dark-muted)}.nft-history-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;border:0;padding:10px 0;border-bottom:1px solid var(--dark-line);background:transparent;color:#fff;text-align:left}.nft-history-row:hover,.nft-history-row:focus-visible{background:var(--surface-raised)}.nft-history-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nft-history-row strong{font-size:13px}.nft-history-row span{color:var(--dark-muted);font-size:12px;text-align:right}.nft-history-row small{grid-column:1 / -1;color:var(--accent);font:11px Consolas,monospace}.activity-screen{background:var(--dark);color:#fff}.activity-screen .wallet-header{background:var(--blue)}.activity-content{height:calc(100% - 72px);overflow-y:auto}.activity-summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:#0f1a22;color:var(--dark-muted);font-size:13px;text-transform:uppercase}.activity-summary strong{color:var(--accent);font-size:13px}.activity-summary>div{display:flex;align-items:center;gap:8px}.activity-summary button{width:30px;height:30px;border:1px solid var(--dark-line);background:transparent;color:var(--accent);font-size:17px}.activity-list{background:var(--surface)}.activity-row{width:100%;min-height:98px;display:grid;grid-template-columns:31px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 17px;border-bottom:1px solid var(--dark-line);border-top:0;border-right:0;border-left:0;background:transparent;color:#fff;text-align:left}.activity-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.activity-marker{width:29px;height:29px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:13px;font-weight:700}.activity-marker.incoming,.activity-status .incoming{color:#63d18d}.activity-marker.outgoing,.activity-status .outgoing{color:#fff}.activity-details,.activity-status{min-width:0;display:grid;gap:2px}.activity-details strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.activity-details span{color:#c1d0d8;font:13px Consolas,monospace}.activity-details small,.activity-status span{color:var(--dark-muted);font-size:13px}.activity-status{max-width:132px;text-align:right}.activity-status strong{font-size:14px;white-space:nowrap}.activity-status .confirmed{color:#63d18d}.activity-status .pending{color:#e9c667}.activity-empty{display:grid;gap:6px;padding:42px 24px;color:var(--dark-muted);font-size:14px;text-align:center}.activity-empty strong{color:#dce8ee;font-size:16px}.activity-error{color:#ffaaa4}.transaction-screen{background:var(--dark);color:#fff}.transaction-screen .wallet-header{background:var(--blue)}.transaction-confirmed{color:#84e7aa}.transaction-pending{color:#f1d27b}.transaction-content{height:calc(100% - 72px);overflow-y:auto;padding-bottom:24px}.transaction-identity{display:grid;gap:13px;padding:18px;border-bottom:1px solid var(--dark-line);background:var(--surface-raised)}.transaction-identity>div{display:grid;gap:7px}.transaction-identity span,.transaction-field span{color:var(--dark-muted);font-size:12px;font-weight:700;text-transform:uppercase}.transaction-identity strong{overflow-wrap:anywhere;color:#fff;font:13px/1.55 Consolas,monospace}.transaction-identity button{min-height:40px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:14px;font-weight:700}.transaction-section{border-top:1px solid var(--dark-line)}.transaction-section h2{margin:0;padding:16px 18px 10px;font-size:16px}.transaction-fields{display:grid}.transaction-field{display:grid;gap:6px;padding:13px 18px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.transaction-field strong{overflow-wrap:anywhere;color:#fff;font-size:15px;font-weight:600;line-height:1.45}.transaction-technical{border-top:1px solid var(--dark-line)}.transaction-technical summary{padding:17px 18px;color:var(--accent);font-size:15px;font-weight:700;cursor:pointer}.technical-field strong{font:12px/1.55 Consolas,monospace;word-break:break-all}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#091a278a}.account-drawer{position:absolute;top:0;right:0;bottom:0;z-index:11;width:338px;display:flex;flex-direction:column;border-left:1px solid var(--dark-line);background:var(--dark);color:#fff;transform:translate(100%);transition:transform .18s ease-out}.account-drawer.open{transform:translate(0)}.drawer-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:var(--blue);color:#fff}.drawer-header>div{display:grid;gap:2px}.drawer-header strong{font-size:19px}.drawer-header span{color:var(--muted-white);font-size:14px}.drawer-header button{width:34px;height:34px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:23px;line-height:1}.drawer-section{max-height:244px;overflow-y:auto;padding:17px 15px 14px;border-bottom:1px solid var(--dark-line)}.drawer-label{display:block;margin:0 3px 8px;color:var(--dark-muted);font-size:13px;font-weight:700;text-transform:uppercase}.known-address{width:100%;min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:4px;align-items:center;border:1px solid var(--dark-line);padding:4px;background:var(--surface);color:#fff}.known-address+.known-address{margin-top:7px}.known-address.active-address{border-color:var(--accent);background:var(--surface-active)}.address-select{min-width:0;min-height:48px;display:grid;grid-template-columns:36px minmax(0,1fr) 20px;gap:10px;align-items:center;border:0;padding:5px 6px;background:transparent;color:#fff;text-align:left}.rename-address{width:28px;height:34px;border:0;background:transparent;color:var(--accent);font-size:16px}.address-avatar{width:34px;height:34px;display:grid;place-items:center;background:#204f70}.address-avatar img{width:24px;filter:brightness(0) invert(1)}.address-details{min-width:0;display:grid;gap:2px}.address-details strong{font-size:15px}.address-details small{overflow:hidden;color:var(--dark-muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.selected-mark{color:var(--success);font-size:14px;font-weight:700}.drawer-navigation{display:grid;padding:8px 0}.drawer-navigation button{min-height:72px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:10px;align-items:center;border:0;border-bottom:1px solid var(--dark-line);padding:9px 18px;background:transparent;color:#fff;text-align:left}.drawer-navigation button>span:nth-child(2){display:grid;gap:2px}.drawer-navigation strong{font-size:16px}.drawer-navigation small{color:var(--dark-muted);font-size:13px}.menu-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:15px;font-weight:700}.menu-arrow{color:var(--dark-muted);font-size:20px;text-align:right}.drawer-lock{min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;margin:auto 15px 15px;border:1px solid var(--dark-line);background:var(--surface-raised);color:#dce8ee;font-size:14px;font-weight:700}.header-back{width:34px;height:34px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:18px}.settings-screen{background:var(--dark);color:#fff}.settings-screen .wallet-header{background:var(--blue);color:#fff}.settings-content{height:calc(100% - 72px);overflow-y:auto;padding-bottom:20px}.settings-group{padding:18px 20px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.settings-heading{display:grid;gap:3px;margin-bottom:15px}.settings-heading strong{font-size:13px}.settings-heading span{color:var(--dark-muted);font-size:12px;line-height:1.4}.settings-group label{color:#b7c6ce;font-size:12px;text-transform:uppercase}.settings-group input,.settings-group select{width:100%;height:44px;border:1px solid #8699a5;padding:0 11px;background:#fff;color:var(--ink);outline:0}.settings-group input:focus,.settings-group select:focus{border-color:var(--blue);outline:2px solid rgb(33 103 165 / 14%)}.settings-save{width:calc(100% - 40px);margin:16px 20px;border-color:var(--accent);background:var(--accent);color:#08202b}.backup-settings{padding-right:0;padding-left:0}.backup-settings .settings-heading{padding:0 20px}.settings-action{width:100%;min-height:61px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:10px;align-items:center;border:0;border-top:1px solid var(--dark-line);padding:9px 20px;background:transparent;color:#fff;text-align:left}.settings-action:last-child{border-bottom:1px solid var(--dark-line)}.settings-action>span:nth-child(2){display:grid;gap:2px}.settings-action strong{font-size:14px}.settings-action small{color:var(--dark-muted);font-size:11px}.settings-action>span:last-child{color:var(--dark-muted);font-size:20px}.settings-action-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:15px;font-weight:700}.private-key-result{margin:16px 20px 0;border:1px solid var(--dark-line);padding:13px;background:var(--surface-raised)}.private-key-result>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.private-key-result>div>strong{font-size:11px;text-transform:uppercase}.private-key-result>div>button{width:28px;height:28px;border:0;background:transparent;color:var(--dark-muted);font-size:19px}.private-key-result textarea{height:95px;min-height:95px;margin:0 0 10px;border:1px solid #8699a5;padding:9px;background:#fff;color:var(--ink);font-size:11px}.private-key-result .secondary{border-color:var(--accent);color:var(--accent)}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:#091a27ad}.backup-key-modal{position:absolute;top:50%;right:20px;left:20px;z-index:31;border:1px solid white;background:var(--blue);color:#fff;transform:translateY(-50%)}.backup-key-modal>header{min-height:65px;display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid rgb(255 255 255 / 40%)}.backup-key-modal>header>div{display:grid;gap:2px}.backup-key-modal>header strong{font-size:13px}.backup-key-modal>header span{color:var(--muted-white);font-size:11px}.backup-key-modal>header button{width:30px;height:30px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:20px}.backup-key-modal>div{padding:17px 15px}.backup-key-modal .primary{margin-top:16px}#notice{position:absolute;right:18px;bottom:14px;left:18px;z-index:40;margin:0;padding:10px 12px;border:1px solid #8d4448;border-left:3px solid #ff7168;background:#321c20;color:#ffc0bb;font-size:11px}#notice:empty{display:none}.provider-approval-screen{display:flex;flex-direction:column}.provider-approval-screen .screen-content{min-height:0;flex:1;overflow-y:auto;padding-bottom:18px}.approval-context{display:flex;align-items:center;justify-content:space-between;gap:12px}.approval-context .eyebrow{min-width:0;overflow-wrap:anywhere}.risk-label{flex:0 0 auto;padding:5px 8px;border:1px solid currentColor;font-size:11px;font-weight:700;text-transform:uppercase}.risk-safe{background:#123b2d;color:#63e5a9}.risk-low{background:#403612;color:#ffe16c}.risk-high{background:#481f24;color:#ff8b8b}.approval-details{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.4fr);margin:20px 0;border:1px solid #315466;background:#091923}.approval-details dt,.approval-details dd{min-width:0;margin:0;padding:11px 12px;border-bottom:1px solid #203d4c;overflow-wrap:anywhere}.approval-details dt{color:#85dce8;font-size:12px;font-weight:700;text-transform:capitalize}.approval-details dd{color:#f5f9fb;font:13px/1.45 Arial,Helvetica,sans-serif;white-space:pre-wrap}.approval-details dt:last-of-type,.approval-details dd:last-of-type{border-bottom:0}.approval-actions{display:grid;flex:0 0 auto;grid-template-columns:1fr 1fr;gap:10px;padding:14px 24px 18px;border-top:1px solid rgb(255 255 255 / 35%);background:var(--blue-deep)}.approval-actions button{min-height:48px;margin:0}.approval-actions button.is-processing:before{width:15px;height:15px;content:"";border:2px solid currentcolor;border-right-color:transparent;border-radius:50%;animation:approval-spin .7s linear infinite}.approval-actions button:disabled{opacity:.72}@keyframes approval-spin{to{transform:rotate(360deg)}} diff --git a/extension/dist/assets/print-DTb91-bp.css b/extension/dist/assets/print-DTb91-bp.css new file mode 100644 index 0000000..b6c42aa --- /dev/null +++ b/extension/dist/assets/print-DTb91-bp.css @@ -0,0 +1 @@ +*{box-sizing:border-box}body{max-width:760px;margin:0 auto;padding:34px;color:#111820;font:14px/1.45 Arial,Helvetica,sans-serif}header{display:flex;align-items:center;gap:15px;padding-bottom:18px;border-bottom:3px solid #2167a5}header img{width:58px}h1{margin:0;font-size:24px}header p{margin:2px 0 0;color:#5c6972}.warning{margin:22px 0;border:2px solid #9b1c1c;padding:12px;color:#7a1111;font-weight:700}section{margin-top:18px}h2{margin:0 0 7px;color:#42515b;font-size:12px;text-transform:uppercase}pre{margin:0;overflow-wrap:anywhere;white-space:pre-wrap;border:1px solid #aebac2;padding:11px;font:10px/1.35 Consolas,monospace}.print-error{color:#9b1c1c;font-weight:700}@media print{body{max-width:none;padding:0}} diff --git a/extension/dist/background.js b/extension/dist/background.js new file mode 100644 index 0000000..d670490 --- /dev/null +++ b/extension/dist/background.js @@ -0,0 +1,3 @@ +import{c as yt}from"./chunks/core-CvwXoH-U.js";const F="contractlessWallet",M="contractlessWallets",V="contractlessSettings",L="contractlessAutoLock",K="contractlessUnlockedWallet",j="contractlessApplicationSessions",ct=12e4,vt=10,bt={apiUrl:"https://api.contractless.dev",autoLockMinutes:60};let s;const J="pending-provider-approvals";async function k(){const e=await chrome.storage.local.get(V);return{...bt,...e[V]??{}}}function lt(e){const t=JSON.parse(e);if(typeof t.short_address!="string"||typeof t.public_key!="string")throw new Error("The encrypted wallet metadata is invalid.");return{address:t.short_address,publicKey:t.public_key}}async function $(){const e=await chrome.storage.local.get([M,F]),t=e[M];if((t==null?void 0:t.version)===1&&Array.isArray(t.wallets))return t;const a=e[F];if(typeof a!="string")return{version:1,wallets:[]};const i=lt(a),d={id:crypto.randomUUID(),label:"Contractless Account 1",address:i.address,publicKey:i.publicKey,walletJson:a},l={version:1,activeWalletId:d.id,wallets:[d]};return await chrome.storage.local.set({[M]:l}),await chrome.storage.local.remove(F),l}async function H(e){await chrome.storage.local.set({[M]:e})}function P(e){return e.wallets.find(t=>t.id===e.activeWalletId)??e.wallets[0]}async function X(e){const t=await $(),a=lt(e),i=t.wallets.find(l=>l.address===a.address);if(i)return i.walletJson=e,i.publicKey=a.publicKey,t.activeWalletId=i.id,await H(t),i;const d={id:crypto.randomUUID(),label:`Contractless Account ${t.wallets.length+1}`,address:a.address,publicKey:a.publicKey,walletJson:e};return t.wallets.push(d),t.activeWalletId=d.id,await H(t),d}async function E(){await dt();const e=await $(),t=P(e),a=await k();return{exists:e.wallets.length>0,unlocked:!!(s&&s.walletId===(t==null?void 0:t.id)),activeWalletId:t==null?void 0:t.id,activeWalletLabel:t==null?void 0:t.label,address:s==null?void 0:s.short_address,publicKey:s==null?void 0:s.public_key,wallets:e.wallets.map(i=>({id:i.id,label:i.label,address:i.address,publicKey:i.publicKey,active:i.id===(t==null?void 0:t.id)})),apiUrl:a.apiUrl,autoLockMinutes:a.autoLockMinutes}}async function b(){if(!s)return;const e=await k();s.expiresAt=Date.now()+e.autoLockMinutes*6e4,await chrome.storage.session.set({[K]:s}),await chrome.alarms.clear(L),await chrome.alarms.create(L,{when:s.expiresAt})}function kt(e,t){const a=new Uint8Array(e);let i="";const d=32768;for(let l=0;l{});if(!l.ok||(f==null?void 0:f.success)!==!0)throw new Error((f==null?void 0:f.error)??`Wallet registration failed with HTTP ${l.status}.`);return f.data}async function St(e,t){var f;const a=await k(),i=e.create_handshake_proof(t.public_key,t.private_key),d=await fetch(`${a.apiUrl}/api/v1/addresses/registration?address=${encodeURIComponent(t.short_address)}`,{headers:{"X-Contractless-Address":t.short_address,"X-Contractless-Public-Key":t.public_key,"X-Contractless-Signature":i}}),l=await d.json().catch(()=>{});if(!d.ok||(l==null?void 0:l.success)!==!0)throw new Error((l==null?void 0:l.error)??`Wallet registration lookup failed with HTTP ${d.status}.`);((f=l.data)==null?void 0:f.registered)!==!0&&await Y(e,t)}async function dt(){if(s){if(s.expiresAt>Date.now())return;await R();return}const t=(await chrome.storage.session.get(K))[K];if(!t||t.expiresAt<=Date.now()){await chrome.storage.session.remove(K);return}t.sessionId||(t.sessionId=crypto.randomUUID(),await wt(),await chrome.storage.session.set({[K]:t})),s=t}async function R(){s&&(s.private_key="",s=void 0),await chrome.storage.session.remove([K,j]),await chrome.alarms.clear(L)}async function Q(){const t=(await chrome.storage.session.get(j))[j];return Array.isArray(t)?t:[]}async function pt(e){await chrome.storage.session.set({[j]:e})}async function wt(){await chrome.storage.session.remove(j)}function Tt(e){const t=crypto.getRandomValues(new Uint8Array(e));return Array.from(t,a=>a.toString(16).padStart(2,"0")).join("")}async function Et(e){const t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(t),a=>a.toString(16).padStart(2,"0")).join("")}function O(e){return!e.params||typeof e.params!="object"?{}:e.params}function C(e){const t=String(e??"").trim();if(!/^[A-Za-z0-9_-]{5,32}$/.test(t))throw new Error("The application ID must contain 5 to 32 URL-safe characters.");return t}function Z(e,t){if(String(e.origin??"")!==t)throw new Error("The application origin does not match the requesting website.")}function ut(e){const t=Number(e),a=Math.floor(Date.now()/1e3);if(!Number.isInteger(t)||Math.abs(a-t)>300)throw new Error("The application connection timestamp must be within five minutes.");return t}function ht(e){const t=String(e??"").trim().toLowerCase();if(!/^[0-9a-f]{32,128}$/.test(t)||t.length%2!==0)throw new Error("The application nonce must contain 16 to 64 random hexadecimal bytes.");return t}function gt(e){const t=String(e??"").trim();if(!t||new TextEncoder().encode(t).length>75)throw new Error("The application connection message must contain 1 to 75 bytes.");return t}function ft(e){const t=String(e??"").trim();if(!t||new TextEncoder().encode(t).length>75)throw new Error("A signed website message must contain 1 to 75 bytes.");return t}function st(e,t){if(e==="contractless_connect"||e==="contractless_signMessage")return"safe";const a=t.transaction;if(!a||typeof a!="object")return"high";const i=Number(a.txtype);return Number.isInteger(i)&&i>=100&&i<=113?"low":"high"}function _t(e){if(!e||typeof e!="object")throw new Error("A complete transaction object is required.");const t=e,a=Number(t.txtype);if(!Number.isInteger(a))throw new Error("The transaction type is invalid.");if(a===6||a===7)throw new Error("Swaps and loan creation require a staged signing workflow.");return t}function z(e){if(!e||typeof e!="object")throw new Error("A complete or partially signed transaction object is required.");const t=e,a=t.unsigned_swap??t.unsigned_loan_contract??t;if(!a||typeof a!="object")throw new Error("The unsigned transaction fields are missing.");const i=Number(a.txtype);if(i!==6&&i!==7)throw new Error("Staged signing is only available for swaps and loan creation.");return t}async function rt(e,t){var S;if(!s)throw new Error("Wallet is locked.");const a=t.unsigned_swap??t.unsigned_loan_contract??t;if(!a||typeof a!="object")return;const i=a,d=Number(i.txtype),l=d===2?[["Receiving",String(i.receiver??"")]]:d===6?[["First swap participant",String(i.sender1??"")],["Second swap participant",String(i.sender2??"")]]:d===7?[["Lender",String(i.lender??"")],["Borrower",String(i.borrower??"")]]:[];if(l.length===0)return;e.inspect_transaction_request(JSON.stringify(t));const f=await k(),v=e.create_handshake_proof(s.public_key,s.private_key),y={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":v},T=new Map;for(const[x,U]of l){const A=U.trim().toLowerCase();let I=T.get(A);if(I===void 0){const r=await fetch(`${f.apiUrl}/api/v1/addresses/registration?address=${encodeURIComponent(A)}`,{headers:y}),o=await r.json().catch(()=>{});if(!r.ok||(o==null?void 0:o.success)!==!0)throw new Error((o==null?void 0:o.error)??`Address registration lookup failed with HTTP ${r.status}.`);I=((S=o.data)==null?void 0:S.registered)===!0,T.set(A,I)}if(!I)throw new Error(`${x} wallet is not registered.`)}}async function mt(e,t){if(t.complete!==!0||typeof t.bytes_hex!="string"||typeof t.hash!="string")throw new Error("The transaction could not be completed.");if(!s)throw new Error("Wallet is locked.");const a=await k(),i=e.create_handshake_proof(s.public_key,s.private_key),d=await fetch(`${a.apiUrl}/api/v1/transactions/broadcast`,{method:"POST",headers:{"Content-Type":"application/json","X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i},body:JSON.stringify({transaction_hex:t.bytes_hex})}),l=await d.json().catch(()=>{});if(!d.ok||(l==null?void 0:l.success)!==!0)throw new Error((l==null?void 0:l.error)??`Transaction broadcast failed with HTTP ${d.status}.`);return await b(),{txid:t.hash,bytes:t.bytes_hex,broadcast:l.data}}async function N(e,t){if(!s)throw new Error("Wallet is locked.");Z(e,t);const a=C(e.appId),i=String(e.accessKey??""),d=(await Q()).find(l=>l.origin===t&&l.appId===a&&l.accessKey===i&&l.walletId===(s==null?void 0:s.walletId)&&l.unlockSessionId===(s==null?void 0:s.sessionId));if(!d)throw new Error("The application session is invalid or has expired. Reconnect the wallet.");return d}async function B(){const t=(await chrome.storage.session.get(J))[J],a=Array.isArray(t)?t.filter(y=>typeof y=="string"&&y.length>0):typeof t=="string"&&t.length>0?[t]:[];if(a.length===0)return[];const i=a.map(y=>`approval:${y}`),d=await chrome.storage.session.get(i),l=Date.now(),f=[],v=[];for(const y of a){const T=`approval:${y}`,S=d[T];!S||l-S.createdAt>=ct?v.push(T):f.push(y)}return(v.length>0||f.length!==a.length)&&(await chrome.storage.session.set({[J]:f}),v.length>0&&await chrome.storage.session.remove(v)),f}async function G(e){const t=(await B()).filter(a=>a!==e);return await chrome.storage.session.set({[J]:t}),t}async function ot(e){const t=await B(),a=await chrome.storage.session.get(t.map(d=>`approval:${d}`));if(e.method==="contractless_connect"&&t.some(d=>{const l=a[`approval:${d}`];if(!l||l.method!=="contractless_connect")return!1;const f=O(l),v=O(e);return l.origin===e.origin&&f.appId===v.appId}))throw new Error("This application already has a wallet connection request pending.");if(t.length>=vt)throw new Error("The wallet approval queue is full. Resolve a pending request first.");await chrome.storage.session.set({[J]:[...t,e.id],[`approval:${e.id}`]:e});try{await chrome.action.openPopup()}catch{}}async function nt(e){const t=`approval-result:${e}`,a=Date.now()+ct;for(;Date.now()setTimeout(d,150))}throw await chrome.storage.session.remove([`approval:${e}`,t]),await G(e),new Error("Wallet approval request expired.")}function At(e){const t=e.url??e.origin;if(!t)throw new Error("The requesting website origin is unavailable.");const a=new URL(t).origin;if(a==="null")throw new Error("Requests from opaque origins are not supported.");return a}async function it(e,t){if(!s)throw new Error("Wallet is locked.");switch(await b(),t.method){case"contractless_connect":{const a=O(t);Z(a,t.origin);const i=String(a.walletSessionId??"");if(i&&i!==s.sessionId)throw new Error("The active wallet changed while the connection was being approved.");const d=C(a.appId),l=ut(a.timestamp),f=ht(a.nonce),v=gt(a.message),y=Tt(32),T=await Et(y),S=Math.floor(Date.now()/1e3),x=Math.min(S+900,Math.floor(s.expiresAt/1e3)),U=["Contractless application connection",`Application ID: ${d}`,`Origin: ${t.origin}`,`Requested timestamp: ${l}`,`Message: ${v}`,`Session key hash: ${T}`].join(` +`),A=JSON.parse(e.sign_message_request(JSON.stringify({origin:t.origin,message:U,nonce:f,issued_at:S,expires_at:x}),s.private_key,s.public_key)),I={origin:t.origin,appId:d,accessKey:y,walletId:s.walletId,unlockSessionId:s.sessionId,createdAt:Date.now()},r=await Q();return r.push(I),await pt(r),{address:s.short_address,publicKey:s.public_key,signature:A.signature,proof:A,accessKey:y,appId:d,origin:t.origin,sessionExpiresAt:s.expiresAt}}case"contractless_signMessage":{const a=O(t);await N(a,t.origin);const i=Math.floor(Date.now()/1e3),d=Number(a.expires_at??i+300),l=C(a.appId),f={origin:t.origin,message:["Contractless application message",`Application ID: ${l}`,`Message: ${ft(a.message)}`].join(` +`),nonce:String(a.nonce??""),issued_at:i,expires_at:d};return JSON.parse(e.sign_message_request(JSON.stringify(f),s.private_key,s.public_key))}case"contractless_sendTransaction":{const a=O(t);await N(a,t.origin);const i=_t(a.transaction),d=JSON.parse(e.sign_transaction_request(JSON.stringify(i),s.private_key,s.public_key,1));return mt(e,d)}case"contractless_signDualTransaction":{const a=O(t);await N(a,t.origin);const i=z(a.transaction),d=Number(a.signerSlot);if(d!==1&&d!==2)throw new Error("The signer slot must be 1 or 2.");const l=JSON.parse(e.sign_transaction_request(JSON.stringify(i),s.private_key,s.public_key,d));return{complete:!1,txid:l.hash,unsignedBytes:l.unsigned_bytes_hex,canonicalUnsignedJson:JSON.parse(e.inspect_transaction_request(JSON.stringify(i))).canonical_unsigned_json,signedTransaction:l.signed_transaction,signature:d===1?l.signature1:l.signature2,signature1:l.signature1,signature2:l.signature2,signerSlot:d,signerPublicKey:s.public_key}}default:throw new Error("The website requested an unsupported wallet method.")}}async function It(e,t){var i,d,l,f,v,y,T,S,x,U,A,I;const a=await yt();switch(await dt(),e.type){case"status":return E();case"create-wallet":{const r=String(e.password),o=a.generate_browser_wallet(r),n=JSON.parse(a.unlock_browser_wallet(o,r));await Y(a,n);const u=await X(o);return await W({walletId:u.id,...n}),E()}case"import-wallet":{const r=a.import_legacy_wallet(String(e.walletJson),String(e.legacyPassword),String(e.password)),o=await X(r),n=JSON.parse(a.unlock_browser_wallet(r,String(e.password)));return await W({walletId:o.id,...n}),E()}case"import-wallet-image":{const r=String(e.password),o=a.import_private_key_image(String(e.imageBase64),String(e.imagePassword),r),n=await X(o),u=JSON.parse(a.unlock_browser_wallet(o,r));return await W({walletId:n.id,...u}),E()}case"import-private-key":{const r=String(e.password),o=a.import_private_key(String(e.privateKey),r),n=await X(o),u=JSON.parse(a.unlock_browser_wallet(o,r));return await W({walletId:n.id,...u}),E()}case"unlock":{const r=await $(),o=P(r);if(!o)throw new Error("No wallet exists.");const n=JSON.parse(a.unlock_browser_wallet(o.walletJson,String(e.password)));await W({walletId:o.id,...n});try{await St(a,n)}catch(u){console.warn("Automatic wallet registration failed during unlock.",u)}return E()}case"switch-wallet":{const r=await $(),o=String(e.walletId);if(!r.wallets.some(n=>n.id===o))throw new Error("The selected wallet does not exist.");return await R(),r.activeWalletId=o,await H(r),E()}case"rename-wallet":{const r=await $(),o=r.wallets.find(u=>u.id===String(e.walletId));if(!o)throw new Error("The selected wallet does not exist.");const n=String(e.label).trim();if(n.length<1||n.length>40)throw new Error("Wallet labels must contain between 1 and 40 characters.");return o.label=n,await H(r),E()}case"lock":return await R(),E();case"save-settings":{const r={apiUrl:String(e.apiUrl).replace(/\/+$/,""),autoLockMinutes:Math.max(1,Number(e.autoLockMinutes))};return await chrome.storage.local.set({[V]:r}),await b(),E()}case"register-wallet":{if(!s)throw new Error("Wallet is locked.");const r=await Y(a,s);return await b(),r}case"wallet-balances":{if(!s)throw new Error("Wallet is locked.");const r=await k(),o=a.create_handshake_proof(s.public_key,s.private_key),n={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o},u=encodeURIComponent(s.short_address),[c,h,w]=await Promise.all([fetch(`${r.apiUrl}/api/v1/balances?address=${u}`,{headers:n}),fetch(`${r.apiUrl}/api/v1/tokens`,{headers:n}),fetch(`${r.apiUrl}/api/v1/nfts`,{headers:n})]),[p,_,g]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{}),w.json().catch(()=>{})]);if(!c.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Balance lookup failed with HTTP ${c.status}.`);return await b(),{address:s.short_address,balances:((i=p.data)==null?void 0:i.balances)??[],tokens:h.ok&&(_==null?void 0:_.success)===!0?((d=_.data)==null?void 0:d.tokens)??[]:[],nfts:w.ok&&(g==null?void 0:g.success)===!0?((l=g.data)==null?void 0:l.nfts)??[]:[],tokenCatalogError:h.ok&&(_==null?void 0:_.success)===!0?void 0:(_==null?void 0:_.error)??`Token lookup failed with HTTP ${h.status}.`,nftCatalogError:w.ok&&(g==null?void 0:g.success)===!0?void 0:(g==null?void 0:g.error)??`NFT lookup failed with HTTP ${w.status}.`}}case"wallet-nft-details":{if(!s)throw new Error("Wallet is locked.");const r=String(e.name??"").trim(),o=Number(e.series??0);if(!r||r.length>15||!Number.isInteger(o)||o<0||o>4294967295)throw new Error("A valid NFT or RWA identifier is required.");const n=await k(),u=a.create_handshake_proof(s.public_key,s.private_key),c={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":u},h=`name=${encodeURIComponent(r)}&series=${o}`,[w,p]=await Promise.all([fetch(`${n.apiUrl}/api/v1/nfts/details?${h}`,{headers:c}),fetch(`${n.apiUrl}/api/v1/nfts/media?${h}`,{headers:c})]),[_,g]=await Promise.all([w.json().catch(()=>{}),p.json().catch(()=>{})]);if(!w.ok||(_==null?void 0:_.success)!==!0)throw new Error((_==null?void 0:_.error)??`NFT details lookup failed with HTTP ${w.status}.`);let m="",tt=!1,et={},D;if(p.ok&&(g==null?void 0:g.success)===!0){et=(f=g.data)!=null&&f.metadata&&typeof g.data.metadata=="object"?g.data.metadata:{},tt=((v=g.data)==null?void 0:v.image_available)===!0;const at=String(((y=g.data)==null?void 0:y.image_url)??"");if(at)try{const q=await fetch(new URL(at,`${n.apiUrl}/`).toString(),{headers:c});q.ok?m=kt(await q.arrayBuffer(),q.headers.get("Content-Type")??"image/png"):D=`NFT image returned HTTP ${q.status}.`}catch{D="NFT image could not be retrieved."}}else D=(g==null?void 0:g.error)??`NFT media lookup failed with HTTP ${p.status}.`;return await b(),{..._.data,metadata:et,image_data_url:m,image_available:tt,media_error:D}}case"wallet-receive-address":{if(!s)throw new Error("Wallet is locked.");const r=await k(),o=a.create_handshake_proof(s.public_key,s.private_key),n=encodeURIComponent(s.short_address),u=await fetch(`${r.apiUrl}/api/v1/addresses/vanity?address=${n}`,{headers:{"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o}}),c=await u.json().catch(()=>{});if(!u.ok||(c==null?void 0:c.success)!==!0)throw new Error((c==null?void 0:c.error)??`Vanity address lookup failed with HTTP ${u.status}.`);await b();const h=typeof((T=c.data)==null?void 0:T.vanity_address)=="string"&&c.data.vanity_address.trim()!==""?c.data.vanity_address:void 0;return{shortAddress:s.short_address,receiveAddress:h??s.short_address,vanity:!!h}}case"wallet-prepare-transfer":{if(!s)throw new Error("Wallet is locked.");const r=await k(),o=a.create_handshake_proof(s.public_key,s.private_key),n={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o},u=String(e.receiver??"").trim().toLowerCase(),c=s.short_address.endsWith(".cltc")?"cltc":"clc";let h=u;if(new RegExp(`^[0-9a-f]{40}\\.${c}$`).test(u)){const g=await fetch(`${r.apiUrl}/api/v1/addresses/registration?address=${encodeURIComponent(h)}`,{headers:n}),m=await g.json().catch(()=>{});if(!g.ok||(m==null?void 0:m.success)!==!0)throw new Error((m==null?void 0:m.error)??`Address lookup failed with HTTP ${g.status}.`);if(((x=m.data)==null?void 0:x.registered)!==!0)throw new Error("The receiving wallet is not registered.")}else{if(!new RegExp(`^[a-z]{1,20}\\.${c}$`).test(u))throw new Error(`Enter a valid Contractless ${c.toUpperCase()} address.`);const g=await fetch(`${r.apiUrl}/api/v1/addresses/vanity/resolve?address=${encodeURIComponent(u)}`,{headers:n}),m=await g.json().catch(()=>{});if(!g.ok||(m==null?void 0:m.success)!==!0)throw new Error((m==null?void 0:m.error)??`Vanity address lookup failed with HTTP ${g.status}.`);if(h=String(((S=m.data)==null?void 0:S.owner_address)??""),!h)throw new Error("That vanity address is not registered.")}const w=Number(e.nftSeries??0);if(!Number.isInteger(w)||w<0||w>4294967295)throw new Error("The NFT/RWA series number is invalid.");const p={txtype:2,time:Math.floor(Date.now()/1e3),value:String(e.valueAtomic??""),coin:String(e.asset??"").trim().padEnd(15," "),nft_series:w,sender:s.short_address,receiver:h,txfee:String(e.feeAtomic??"")},_=JSON.parse(a.inspect_transaction_request(JSON.stringify(p)));return await b(),{transaction:p,review:_.review,hash:_.hash,receiverInput:u}}case"wallet-broadcast-transfer":{if(!s)throw new Error("Wallet is locked.");const r=e.transaction;if(!r||typeof r!="object")throw new Error("The reviewed transfer is unavailable.");const o=JSON.parse(a.sign_transaction_request(JSON.stringify(r),s.private_key,s.public_key,1));return mt(a,o)}case"wallet-activity":{if(!s)throw new Error("Wallet is locked.");const r=await k(),o=a.create_handshake_proof(s.public_key,s.private_key),n=encodeURIComponent(s.short_address),u={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o},[c,h]=await Promise.all([fetch(`${r.apiUrl}/api/v1/addresses/latest?address=${n}&limit=25`,{headers:u}),fetch(`${r.apiUrl}/api/v1/height`,{headers:u})]),[w,p]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{})]);if(!c.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Activity lookup failed with HTTP ${c.status}.`);if(!h.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Block height lookup failed with HTTP ${h.status}.`);return await b(),{address:s.short_address,current_height:Number(((U=p.data)==null?void 0:U.height)??0),transactions:Array.isArray((A=w.data)==null?void 0:A.transactions)?w.data.transactions:[]}}case"wallet-transaction":{if(!s)throw new Error("Wallet is locked.");const r=String(e.txid);if(!/^[0-9a-f]{64}$/i.test(r))throw new Error("A valid transaction ID is required.");const o=await k(),n=a.create_handshake_proof(s.public_key,s.private_key),u={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":n},[c,h]=await Promise.all([fetch(`${o.apiUrl}/api/v1/transactions/lookup?txid=${encodeURIComponent(r)}`,{headers:u}),fetch(`${o.apiUrl}/api/v1/height`,{headers:u})]),[w,p]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{})]);if(!c.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Transaction lookup failed with HTTP ${c.status}.`);if(!h.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Block height lookup failed with HTTP ${h.status}.`);return await b(),{...w.data,current_height:Number(((I=p.data)==null?void 0:I.height)??0)}}case"export-wallet":{const r=P(await $());if(!r)throw new Error("No wallet exists.");return r.walletJson}case"export-legacy-wallet":{const r=P(await $());if(!r)throw new Error("No wallet exists.");return a.export_legacy_wallet(r.walletJson,String(e.password),String(e.legacyPassword))}case"export-private-key-image":{const r=P(await $());if(!r)throw new Error("No wallet exists.");const o=JSON.parse(a.export_legacy_wallet(r.walletJson,String(e.password),String(e.imagePassword)));if(typeof o.private_key!="string")throw new Error("The wallet image could not be created.");return o.private_key}case"reveal-private-key":{const r=P(await $());if(!r)throw new Error("No wallet exists.");const o=JSON.parse(a.unlock_browser_wallet(r.walletJson,String(e.password)));if(typeof o.private_key!="string")throw new Error("The private key could not be decrypted.");return await b(),{label:r.label,address:r.address,privateKey:o.private_key}}case"provider-request":{const r=At(t),o=String(e.method),n=e.params&&typeof e.params=="object"?e.params:{};if(o==="contractless_detect")return{installed:!0,providerVersion:"1.0.0"};if(o==="contractless_connect"){Z(n,r);const c=C(n.appId),h=ut(n.timestamp);ht(n.nonce);const w=gt(n.message),p={id:crypto.randomUUID(),method:o,params:{...n,walletSessionId:s==null?void 0:s.sessionId},origin:r,createdAt:Date.now(),risk:st(o,n),display:{request:"Connect application",application_id:c,website:r,wallet_address:(s==null?void 0:s.short_address)??"Unlock wallet to continue",message:w,requested_timestamp:h,access:"Address access and future wallet requests until this wallet locks"}};if(await ot(p),!await nt(p.id))throw new Error("The wallet connection request was rejected.");return it(a,p)}if(o==="contractless_accounts")try{return await N(n,r),s?[s.short_address]:[]}catch{return[]}if(o==="contractless_balances"){if(await N(n,r),!s)throw new Error("Wallet is locked.");const c=await k(),h=a.create_handshake_proof(s.public_key,s.private_key),w=await fetch(`${c.apiUrl}/api/v1/balances?address=${encodeURIComponent(s.short_address)}`,{headers:{"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":h}}),p=await w.json().catch(()=>{});if(!w.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Balance lookup failed with HTTP ${w.status}.`);return await b(),p.data}if(o==="contractless_disconnect"){const c=await N(n,r),h=(await Q()).filter(w=>!(w.origin===c.origin&&w.appId===c.appId&&w.accessKey===c.accessKey));return await pt(h),{disconnected:!0}}if(o==="contractless_completeDualTransaction"){await N(n,r);const c=z(n.transaction);return JSON.parse(a.complete_dual_transaction_request(JSON.stringify(c),String(n.signature1??""),String(n.publicKey1??""),String(n.signature2??""),String(n.publicKey2??"")))}if(!["contractless_signMessage","contractless_sendTransaction","contractless_signDualTransaction"].includes(o))throw new Error("The website requested an unsupported wallet method.");if(await N(n,r),o==="contractless_sendTransaction"){const c=_t(n.transaction);await rt(a,c)}else if(o==="contractless_signDualTransaction"){const c=z(n.transaction);await rt(a,c)}const u={id:crypto.randomUUID(),method:o,params:n,origin:r,createdAt:Date.now(),risk:st(o,n),display:o==="contractless_signMessage"?{request:"Sign a text message",application_id:C(n.appId),website:r,message:ft(n.message),warning:"This is a text signature. It cannot move wallet assets."}:o==="contractless_signDualTransaction"?(()=>{const c=JSON.parse(a.inspect_transaction_request(JSON.stringify(n.transaction)));return{application_id:C(n.appId),website:r,transaction_type:c.transaction_name,signer_slot:n.signerSlot,transaction_fields:c.review,action:"Sign and return this signature to the application without broadcasting."}})():(()=>{const c=JSON.parse(a.inspect_transaction_request(JSON.stringify(n.transaction)));return{application_id:C(n.appId),website:r,transaction_type:c.transaction_name,transaction_fields:c.review,action:"Sign and broadcast this transaction."}})()};if(await ot(u),!await nt(u.id))throw new Error("The wallet request was rejected.");return it(a,u)}case"pending-provider-approval":{const r=await B(),o=r[0]??"";if(!o)return null;const n=`approval:${o}`,c=(await chrome.storage.session.get(n))[n];return c?s?(c.method==="contractless_connect"&&(c.params={...c.params,walletSessionId:s.sessionId},c.display={...c.display??{},wallet_address:s.short_address},await chrome.storage.session.set({[n]:c})),{locked:!1,request:c,position:1,total:r.length}):{locked:!0}:(await G(o),null)}case"resolve-provider-approval":{if(!s)throw new Error("Unlock the wallet before approving this request.");const r=String(e.id??""),o=await B();if(!r||o[0]!==r)throw new Error("The wallet approval request has expired.");const n=`approval:${r}`,c=(await chrome.storage.session.get(n))[n];if(!c)throw new Error("The wallet approval request has expired.");return c.method==="contractless_connect"&&(c.params={...c.params,walletSessionId:s.sessionId},await chrome.storage.session.set({[n]:c})),await chrome.storage.session.set({[`approval-result:${r}`]:{approved:e.approved===!0}}),await chrome.storage.session.remove(n),{resolved:!0,remaining:(await G(r)).length}}default:throw new Error("Unsupported wallet request.")}}chrome.runtime.onMessage.addListener((e,t,a)=>(It(e,t).then(i=>a({ok:!0,result:i})).catch(i=>a({ok:!1,error:i instanceof Error?i.message:String(i)})),!0));chrome.alarms.onAlarm.addListener(e=>{e.name===L&&R()}); diff --git a/extension/dist/chrome/assets/contractless-logo-BgfMS-Kf.png b/extension/dist/chrome/assets/contractless-logo-BgfMS-Kf.png new file mode 100644 index 0000000000000000000000000000000000000000..729e4d758734de7d40045dd953e5e6ccae13c5b0 GIT binary patch literal 5286 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°qBLr4hXKR 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%0AX&pAfC9mR_gU>z@a-G*5n=uQ8 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

5M_^LIf#S`Ah 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

@$%tNFm-?lL>`(*CBxE_tqhJl;2;6 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 o4>5({ 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�{sdFH!%5%amikrib}ed?o* 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

jUA1GWQhf zpp&3i@T3#6_wl5;b!A4%5zLCXP@XfvycdIcLU~ba>sY6bh{dKR@C(O-`tdz*7B~mU z^qVbb;D7oI{T=chsi}BQxn^qO%pn`w985{WEQ7&dG~^g^4JJdL!EDGkSPTV5gVAWr zG3FXg#yq3hm~XTg3vvuO#+;m-+#FL*UXD2@KgW_&kZZ^_=H}$)=9+Tza?QEW zv&CGHZ^$?1=j7++oAUGW&H4HHmiz*X!D6)JSaK~UOP zfS_yVc3+sI-C!kSK|RJT5#y7C!6QCGpZ}}hbq6%a7 z4xGumeG1+~X&=RLA<38!{Um5Q-?^q9b_A3S!$$3NH@;rV$iUp5hqT>*5WNQPR5vVt z?o8NmX4qkyf^Dz?;)3k!ZC7k;E*L|c%y8%qUJ+?Me_Zi>E1;X^29G2DM%KrdQn!g9|B>8q6Pg-}$mKOYmq03HI85V0?`yk;ALt2qc=cZ(a z_FxXma%#Z*mPP`+n&U5#NxV{kCz{$?50!9*)DLD4<)4o9bg~|5SH=wi z9(){)yzcz*VOha#rR+wW1v8s08)j|;%ISr2i1*Auh^Ev0bb!NQ7Y_ael}00IwK_qs z3KJrwXq;5VsyZZfV+4?mxOJ?0pXBvIQ(PXC&H)r!=e+a zlfu{1H^N!@2kAHA59tCQ-lu55=rM~QfBcEr3m#hbg`xBtFt_XnR;Zhb8= zNu$+=b&NL`6mEF-v(I(;4=&lD(H9Mt`zuAEDC^8=5#mTOLuW(fhadh}5fx>AQ-hRwn5sVQx%GS%3dK{nWfvp-MCf&5;?BEqsFB|GcGZM24i(2$5?4%DJCOF=B)` zQ>s#jOMFzgWI=yZwHcBypm}_FS5dFBXp+=AjsK5%Y8-;ARBE-LQEN527=2P$m+*v$ z=*aLWDO!w;?VyX}B}<=u>5Vtv-M#nyW2e7r z;UvZY`GrOOOGi$bw+NA2-gtBO`}+@^{)%g5k0RoasWxTal2woG-G3k=Cath&Xz9es zl~b#1$^%QDMV5E>9zXrn4-qj#OKpmO-pku|?ELuCAO17=d!;>}a5?pw6@rLC{+e0%qvPh;ZZCs+RR>*W@I!>z}TMz$ST%nPsW+;ia5<14vA%U2i{ zC+|P-kHh<0Mvs{^S)+}L?vs7?oYR%xf8gMu4=yR6=6i4N!9$;Y{`KV+POj=P=eRVd zM4Kq7W12Tb`ZubQwarOl7cDPkOD0Jp@*1@!Mn5(xR#Tx7r6j#h)QTDrHXJcrQi)+| zKC+W)v?ftA5w@ZD@UhYm5!MnZMjaJiD0S^sB{xX7^zy%_n)9NVpq_I{yjc^c>#U<` zcMDh~L4C6(T{TRfAz^Ze#;^=2K^-RgHz6w9=s&ORCq{__U_?n*&1s40tj&(e6uU=t zkMb{+=B$hh>vZqKs%#hlgvic1|BfEsaQ`O>&Cx3VN!^c+i}||d%8vfmwf-+V6^VMa zMLSFzuJ(p?6DLVG>-=*&C+XvKWs?7X^~QDK@se?^)O@73CS0ZRua9p2S;NbH)rfsS z^6wB6#i)pDR#ZCFudz=HD81aH<*`g(+KBam*0F1KN2e>WgSj@wW}jyFda$`RU1vKL zxGRIhb6UKi<&Z{Wvy=LTdnYnoE8-Hy$1Fk=SN=BA(rCV zqqPju0Ro$*T?nT&J`^9wABbZ$;g%P+LbTIDCPr|lk%!jbKk%geVlD20SJk;)4OJ|6 zp&Yyi6(}p%5M2Im)jrvV3%BDuu(k$_t5+sPnVl;FI>G=vX)WG_eIYX=I{93NoZi>4Cf&8ZIz!lSBBR@d6Pes)+5C7*wfPc%(#-3-=ch!R z%-ww1tYfc9tv4OhHw6I482MELjFQ)m&pR)YRr$EHd_Sd6@=tW=?LJdM38(K93sre(^^U;qC9E zb_m`DmQ!<#)>@0fWGzVJ>Z1aGI#5-oSn}Cy#xLL1ZJkj zMre?kb+}^>1uH$Q#^`*LuK*nYiPc9);VFxFm<`xtZRkM#Yn^XLtK?ThFKb E4-kMs0ssI2 literal 0 HcmV?d00001 diff --git a/extension/dist/chrome/assets/contractless_browser_core_bg-Dl61GrlP.wasm b/extension/dist/chrome/assets/contractless_browser_core_bg-Dl61GrlP.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c1c41b848cf2c81b672630b0ce5c3ee48ac73c17 GIT binary patch literal 703517 zcmeFa3!GhNUGKea`@Z+gp8GY)+Pk?-nxwfjnMn&m)*RAM3l{La9{jxeNpqP(XWFKj z456G)n+{DtS7IYoOssiNu81_~4?P$6K8tro3N6eN`>1yPIE1A3}P`hI`Uv)0;s z&rC9@!sqb5pEreB`&sK*&;S4Ypa1>2EN9n&8(hb6+&>C-T;tt#n|s?e{%z($!7;y` zYg~Q>+~tzdg{!NYj=5tprnhgO`Ay5F7l#D=P>lC2@%2_+q0-yHQ`@-QC(WIQ*Kg2)hnnF_4vr1af51KNlHLB3YA=L{G z@qjB`au3mSifK!xRndXQ^*+@Sa`V$Y#0y|Z{ZbP!o@8i62&v-+tbQ1h=!c<+d#iiv zHO0njmfGpi*kS_AmiVhi1KR+Ys#}3+*E`uZP`hOPo_#mYOz+w=bN$4D13Pz5?|bWk ziRqnt_DxUh-2J9YCJ!vxx$~{N-?Vej^xJNl*|+o3t$VNCw0qa?jhjYyk6yZWk5gT| zg{8KIo2K{e5s1y3_l)h@xOrmZ#)-?W9ldPgLYi1+n>aWzec-x%Hy+rzX>4@&rm@Sm z?B2L%bl0Yhmt9C3L$-|@_wAk7xpnizuB~HRHgDXxY0KulyEk6Q`*Am>C-%SPIuU2{ z#NOR|_gs7F#HL*vC$8P#)EB2jjKZE>*I&PL*XYESJzMtfnb@*nMMVI=hnR&ckkM}XLRfCExX1x zU%S~UFOK1wg`55H?XS6F=f=&WTee=hWz*(sC-`~U?h9#e-NNntmn(nlRagI)o!4&K zy6LiAn>Jm#dGFZPjWG5FV0exe#&ty_1GT}X?uyk0+X83qfca84eH8HW_GH2!DZCqlzroY$Sxc5yHH}1Udz|ObaxOd{(>u#Lb zyK~P5SmM&%mu=Z~DT003*o9Cl=CRf$_wAmX*fXQ+NQmiZrZqU&*rhwEsnSNfS5r|hT_KSW_C{8JTozU z33b%%XmTHxwPVxx}0F6=R2O` z`J4PDTn6}kDd=Q8uTbQ=*~xf?iZ_t;Jg4B~wv0Mu$1Rk+3c#GAQ!Eq;MQ6;Xeor6( z-d5ks;%xG-Q1B`lrz|*G5axeQj`kfY`&lmlr04oh#VZ6}G3Q+7_(9;hLE!XzPA(^S zA`57MmFHbfRX-PaUQi5Ny`6D_TmZ-%FtY{T>@S$#f$umkqm^uy|Mj?#z$yAUUZx0s zLC!Q=eEE;Of*x=u^Gb)>fD~oi!1Z&PPGI3KLoq0l0Z(U}6FE-K8LxEfU&i6C6Lbc( zS}*^2(q{jagN*OxA(%5bI7kycB17<>!tBz@vVfn33>Y{-(S2Y9{G-`|3i8k`;Y3CK zqqF?XfxHG$C@uW26YP1zw7?Hq^gDx+ca!@(|Lt>T^BLcDy0QcQZEiF>d&()@=0wju z@PxVEbCPTBo7v^r8zyepH~luxsT`P^xDGY3Y3t56Pu%Q$&yR0x+A?ZxyqMhBvT>8S zF&k9zs;;~CZ98|rZ3gSDx1ROe<9l!3b>PkB);Ij2o8GefdW`eb#M^e_2p)LzzG)QP z-o4Y9YUkU2Z_5qUFzq>i=l9x%=e_gye*4~uJ@UqIKW{v6?ZmY6yx-Y;3#SyF=lp{| zblr^yZjwSZHSO)4a>OPM%sBtc?>}(en{Hh2+0%Y)&%PUOx_)A2V&~qs?7DuzN}u-! zn%kAhqwzOghl+fg^Ur=CW@2J`7cC^t@mulVCT5)P_&smA@%nvxrsh8Qrr&+t4L6BC z*H64@*PgfSj9>T@zdycz)AV%*)uM=b-3`0mG~xWI-#P!8^H+ZN#LWw|^ksi=&-8>^ zuuUiU;yyvJZ~4p5{dDKG)BA1^-~-NA{NA|Un{nU{ym{Bu#7?aKzH6Po_PY&DZ(wl2 zE~WLK`Q0&RBu{MpKl0mm?%cIoT~<@qPfYu6&(56;+sv*T_b|c}(>GjqBlzz1z3wJ; zJ#q7mI}gkdYdD_``gYD${yU-bzCF%Y)KqG)Qv-3pbvv5w-(V~Mtv@iooxKzG;W43^ zwsh_E#Dw$yptI=~G&La4`qiepbYgnO=`DO6NsQdm-@6|Tek=Hb_mSWagL{Jy`e)t0 z2)+>fwfB_&qW9h4pMviM{}}x5;A_F32Y(X$Y4D}sk+{|ugBQH}ygP#1gLnCV9N&97 z_=bBpct`NZ{!{+n_|N#K{bRu|2G97v<=-3pjDO1ih2YD<*SwSdr~S`*_XfY`e8 za5{J<_=NkRxP>#pM}j|#fB&QV@!&(jd%cfR{*eD~?$?9A3?8E;{l1ra9}iv#J`p@0 zoDJ>?js}l-cYB`)=}k#tXo(cYfPH;eRkV z;eC*|KNFnd{=Wg?lffDP7yX|Pj`&~kPJ4F-zoFm3&-%X-yu-gc_@&@}|7U~y{5ykR z^?%j;eOGYY|GD6Q_{Y5W1-}veW^f`n?DzHmn}K~dJ^YCOqWibB`EL67$>4bKXz;tx z{d4|f!E?b~!M}L#@%|9_|1J1U|2^RKi2ru)+ri%jAAnk)3w|%S+r87f$GgYZMw z*}b`V^knTD!C&t3dT+}gy2y#n_)~Rnx#Mkn>Hmf9h*yn{%+Ai<{F-1}^iCA^I>#A| zmPBs#V?o{DUU5S|>Y0o_^1)NiYR4IK9Lm+n=)val@kYUm@|QbjJSycUqx+lhFB$co z^Fp4Cdf(z2QGV7d7fYc_d$oLmyD;jnSKF|QF3(21?s^ctd~(EdqU?@}7k%dFDJKk~ zt@cj!V}8XeQ_+h?Cc`{!>3Ni`e%L*c{QO0rjd&xGyI;NG=h}KMtX^I5P3yIw6b2Q) z6g~g8T43RofLHUw5WId=jrN*#zro)!8 z!}MJ+U60FRhV9wr;bxehmw+u55(z1LB#_j1SO;$QAK z<@Tf}z13fV`RBB^9xyLc<;bVKb>(!8t)reIOl3!#u7RB+(iNhKr`$XxkJ*T!@01S_ZBxPu7Y^uZu7TyoqGKyjBV` zAXBUbMzE10g!Br)1yL|1d8N|Uu!PWVw=#xq60=pO>N!NsJl4DV4-FAawdFjbl!C&R z=${ZI8Y`5S6 zn3?X@a&T;*&V|7w%wl-CR@^+h- zv)U8I2~$gz8B3t6wFFh8G_#Tj6lLgNjWrST%N%DzsWP#9L3GU72L(IYJLs3#-!Ox< zJeiU-n?VUX>iig-Zt!9t5wggwb(gVysogiCVvR^QP=i`GEFX3^X;ScMXwopCy>4;E z*`g!m90sG_S<$_F)O$f!%HMU>d;Yu4{5=$x?7f%pSBS$?Q*G_8=LeZ=E?+2?%9XZu z0GmFcTWm*hF&^+KWZ(#{vKUy@LWohU{?}CTG;~#k0UamL@UULWpB#VDJv`<=s5jxM z<6JE_jCuE%*4}=K+s~p{$B)BlZDYotq4GWcWF3%azGy^`VBx{4Z05hhO%QI{c{& z&_3_Rupq>0pw#-S{{}_2)4c%RbgNGU%WE3jExm4<(Yf5lL^!r5Xb#edyPttlgrCxdX`$6la zFNM}e;DFQuS5Tc>WYm8!#9sSDKVj~`l6B~18)V5KaXHbe)RJx`3R{Jk_vBKu}^Zfpg>ySYD`r??S zuf7fz*4I(K=0``Zq78G~E5iyAt?ph}pQJjvNkgj-Px)wb8W?IcfQ&3o@x)MGw~(Pk zrC=aGD-TWd4hP0x`3^e_|4~!r;GR0R^GUZBqC;b)F{4%i2<9f!1e~Raf$ye~MfZN3F%8C)Nw*$C2VApe# ztZ%QBL%&AuF9_S40(R4j6zOs^(gx+~8=7QuafHk8a~c)e4Br45KAexZ4{=->N0|dB zYMIDDCvN1`R%}Y<22>;CQOO%Z(qA~8_?T$(QQ}^O+~ZyxV-wgbBvw}8jIJi;9`&Br zFGbvDJgT3=F(2_B^vND_y~j5#X)H+mm|G9|BuPv-%vu9(+t{0&R=HqC;vwJWDA9TveyJ!gV17(xX3&LQX zY1x68Rh1}yqPYF-%&(Cx|hk5tCU|QMdpfR$_fIH3{yQbxfT%4t1G!M zliY@&3*Bb!ExFAgRdO^phsoh7(+NnS48FQ&x>G$2pNd1v_3Wrg`KXYu=SICJ$=E5^ z7k4<<)ZrW*&cz+}!`u|M(OhWGB_ne9})!kRVUa+dQJL zjYo~!^fkF1=BJsfp``-6So5u#M8rGPHq=f>XuBrZNGn}g@ewtqtCY&mL@&PRzgEg7 zToQYNi!&4TR2AE!a$10&PJxdHRtrU>6Ql2PyZVAAq+pu4-DUK4 zRLFXo?vlPoiBo7*;~mQDH|1SZHQrH?!hnuJ*fB?8bikiR+02pZqz7RKz4A|nOA`sN z_t%!nPL;XeUmGkN?Vpf!fxP0sSFk0v(rE2yx$`2}ZV_D8gy1s0{O?jX56v0u55|N1 zp?Hu{J4XFH9IGGAH)64#^JJ^myWfmwp}wJ6D0qZS8N4z=HdQigvN>j|LK9+U9%7E= zrYbX|jAB#7E{RAjeo|lcN|?c;HmYZ2?N4}w+9M>$>+bf7;Y)JnuGPU1rAJN8V*8x1 zM{})MJ5ORgYHl!n;6-;a8E7X(dhG1rF;d;xbe;q|`5;22`I7r}B|H5-U5hVse@#~= zf$!6mS;OO8qq|%+`dxRj`azdWmhz})-2@~RR)g!9KdY*mg{_7IC-^zbPcJ&ogw77G zPtisfb12OD#1lEuo|N3??@h9u&;*Is0DJrOYKh$kwQJ_W!8ML!hyqSo>Y3AhSq}S<^J9*OZXo#Hy zsCo>jSj!v%IYR-H!ddMdbJJN)&1M=?2jnAeEn|2tg>`B^tXSkkQ`&@-F$|zJ!5HyQ z(U=C{QPP$^L;KFnqfA4A3f>z8Cj`?T2c;0E7H|IZQ zo)=pA!pv&C`h_(LxOa0_zXY1|Z(9ArXtykM38Kbom}m(acOF<5->i+bp>9WzF?1|i z>mS|!4sqg>vXh3m<_43sU-hIP)JsX4D_TS3S%?getDnd4kpFX~qa^F=MX@sxJ$7tP zbGpIOm%vqx!xgy9ul|h3Fk^E3O1a6t zt%Ry8twRh|vox`kHANpz*AxZtPV|B1GE_d%T!za3qq+Rw(t_C7i`rr${z2SpZh?8E zV$>G*xs99iN!TWOCq!&4o{0WNuV&&`E4+$G;#em1KZT-($$7Baf82eYeg)C*fK}9A z{dvEP=WQ^6cE9>_+{}quqTO$#r6$@H8?=)tt+1FN^$nIoyX7hEH62RlFv39J&Uc4E@dFNG2%V$+K?Xe37KS0t=hmtdJ3;E`t$qeC`;Xl z0y7F1pnKhtHE7>*ChMd(qqEj8Gp6Zz?v=TB#5ca0x%UG1u*uP#eyexIJk~Wr4__2( zpE!{5N+~n7D<9P?l98vOs?U4%cIy#|8RFGe#)FMcJ8(|yFnZC`l*;m=a37i5qSTR; z)Z{f|-mCB^+DFB;A!cvTM!mb-IX2NQ451;K%8nL1qE+dc=yukC(B+5yXx7s(U;}Rp12QwwcLm=(aY`&6q1h4d z)mpH{xLHiB4?g0(%H(?#Hu+{1l|=xC-^}{P>Th^3tQK3*JhON%VY9*FIL-hxAY8z4 z`<{;l0z7UT|92X|6=ZwShPdz5_xhzejo5y$xDa>3AVxAxBgeWBJu(LKdkOsvH25&5 z=6R=_WXYs`LXs4xL=MJUk%jS)79oUlO2{uZr9EFF5EHoH0n~SwG)s>$U9o$u zRmgN6cVJdY#xwfa!07|@jO97dNrMxUC?-%SCqjfB!4+poE7!-}>c!$J5jHAZfzt?+ zonw{dYKbZM-7$lv{TU3Sy}z7}K(JQI1TaEeaFDpEzxq1h53S zrUR@-fHztR5F`XZ@wF1biJn3wcw&Mo1Q1`^oP^+_cBL19J?g!jOL>%4l5}DIUefHCWuuTBr0z8xgKq zqlyVscrh?^x%1N?!6Mk7;)3$ppw*X1h#Nf%Lz{)f(bFs`jz*%hT&jOS>c)gnN+~@G zxuUZeZp+kKX7wbul$&bKaXzkUHpdCC#MAdA8H@muWH5aApiihzJ(2NaB>YJ48`(;f z;r;VNz`%x@8x{&RpEhxg8vDF!daP)a6wH~laeusQw?8&B$K5yxQHY30 zWM|?wTf`JD(F$Sg1@bF8~x*rMtFNmnw@gxs+>lUGlY1m!P&p7cF}9=%GF%!i ziWg6WSEts!*C*?Ra5!8_3rl&uAUq2O&w{}-diOh@d1sC! z5RR2VXAJ0!0S#YfDpqB#Lq-t^f0nG~egd_yDF-dqL&|NI@55viNk>xnUv@p!; zMS(6F&_xUSgU8PPF8oo#?-4Q&jXCj#9q z1;4~D;4IQYf!A{aoim_w7W7vizyCwiQqVjR z=)OsOY(Q%v(76eI`d{AucUjE`EXrmg_^<(85NKxG5;iNOpm`$D1LAO+JU_vI`?EiP zB4a==#%3aTcwqz|6o)TL@NfOrUwqn3jx5S%BKYzPBRJ;IU!34?|LD)%O|%4xi?Nvq zK5}6MFU4$jeu97MXFqoz2?9Vb#%3b;+6yCiIcBr-bNKK6>j&?*9KM(~6TvrJ7{Mzs zo1LG-zx#=Q{v}iyy+j@xeL-}t`_@a zJQfu#WI5JmZGg_lDy2=J+YIP73;HYn>s|LD*VV<@%vG8g(2MFaMp$e{lT{`n+W?(M zBUJ^uYCu;l=sW-WUEg7facFTi>x>58%6^SD%u8qFA3P9tOom8NA!?T~tZ=&!6%QVe z4#W4%gf!WK<6Z@H8=yM`y2F6(u%JKvz%P6i^Fh7E*sM#SyA0?q0~)K06cq)!Xh0V& zXnHC(qsdOv^c{e%0=iS6I}PYg3;JK4zvFfbdNDTZ7U*sRy4!&6BA`dL3v|wa&RNj( zRBQ(5uCOEQ1at?Wy9Bz+fbO!OKljNyzDFX0dW#v&9)a#LpnD8xtTIxR7wEhJowuOr zso0DryV={)1?WydcMEj40o`puKl!^KI*v-A-eTIUSD%~ z%x1l8hv@-yH=uh3y4Qg2wV;3NonQDOZX+lz#%2QoJzzi&7|>W{1h_+>I}GR!3!0wB zY}UtwVK1P20Np3heFk)&1%3L9pZx}k6wr&Y*`PoV8qk9VG*%e_?iA=w1G>|Krl&ER z4TQa6AE0{yJs{8n2K0ah{b%p~=EqQ^fL@Hv`USe*fbKV-vC0T=mq2$J&|MZZJ&oCH zFzgEl0Nn@ZL4h7Lpa(7J_dj#Tr_g4AUX0C30$nnoO9nLh1Oe_A=xzhL+k&R2F`M;= z1K}W`2LRnK(ESEc?lqu$Eogcgvssy4YyI@P zAJAoiE*sEg3;N@;zkJk!UX0D!1-jjUZa1LOCkSw#K=&EYeHQefRJ+k;6+o8(T>^AP zpeqJ+#e)91Z@u`qH6M$ySwWx+26VxIMxS(va{)bIKo3~Z{Zj2ln*lhi0J^*&!9V`Y zUwi?#uzhhhD++YcfG!%)=o18ZP@o45=s^p*Ak|JfR=MMn0bN;;;D7wN|2aA-$cu4V zPLOj3GV6!1nWz)ww_lL^4di|cxhTy}8g{aNetQ4a7v6Ut4k`5(xhd=uq z^Ungk7?)KAx@tgI4QSMfRH;DEG1m~>U!34)zxu(y#(DsHF=f^v&>aSJhXIW`kt!AF zIp!LI8!kIP!GH0W&%77w0qDip>>RGyLgpHR8#X&XgFpSv|9L;j3_vf&W(&Dy=P=h0 z+_2gCIsB8qbpMAjT!3DT%@%Ua&S9=0xM8#N6Z{L`{_Z~z0RVb2He1LwJBPW3;D*i4 zPw;>J&5u2Y%>?vfY_^bVb`En5!3~?8pWt76|LosjGXcFAn=Ry;ox@y1aKmQjC-_G` z{GLx+(2KFzLay04%ryizY<7Nv-}Tpj{A~=^1+dvduGu-vH3TO1h`@VS1jOmxlSgZL1rUOrOYSzNB;Sf}wrF19~3zWqX!Ii~PDrG*wKm6Y3AGe?vW3zME>vn-|H=x@s=uSmqS%E%3 z!GHhhzx*d0BiWUm5A$VqSg8$voPrVNZ3DAqNS&o@@-3{P4P09G)fQgToui!ucHj+`In#EBI!8i?i7|?DhN*fb68$ zj3${0FnLNP3w_179KS|B)3-713;+7{_u9m8PIFB;GtEWTj~c8NX`XAU64XKPImr|( z_Wal$=Y`d~5-xxv*UHY$PYmBNd*okm3p*ENGxn(SB7e;cn*cY5*VbOo&s`ank|FA6 z4Hy$`wBQ3eqh4oBuQRsSzx11*dIsN&dU^FaZ+cC_kzTWM-+<NSlR0YJ>6ZMZEUzIFJJAl3bpYcdacC9z$mzqbwnLu zJF}=-P3!ok4w7}dcNL7-cC}e#$5u5RcxX1{kukZFl}*K3MeA9(Rpt0AE;{LoOTN}^ z>eY(6(DkrX>r|^znPF}VJEx*H;0O~|Vj!Pav0$!<>~lI{SY#T0npZj_+$G-Qd3Cx} zt6IE67rb7~?T_4<$xB?#H#x6nTV|0hlf_z&*79LiV~;kxO;bM6r`gxXxks=dRrEkB9y6j&LVWnoEVUcP6g4upMNYqU$7Vz4%(LS2gB?X9a8(Xytj?2vz{SL z1Ap}l{&!zn8DFd~bNf+A`_a^gis?hq^kI9W55=SpdP#j?@mqyHT*-+_6@zh!%~u^) zSGKhx%}sKAIW53xxAfpG`oKtLVbn^EMUuJbMSnj$G3)7k&F&ft{aE#<6@=Na<4R;U zt2QcX1CG%UwNFKd;hG>GR}oUH6R94Z`a(j;Z1mqfZ8yonAjMiW3boCdv6zaM?Prjl zqT=K_$AOD9K+*FmuXo`$55`FOqe0(So{zrFEOxOpZjiC+((vWcPhB(660Vp80Uo1F z)v6H6heZ*v(e^9SwzCWKA!}t?cyQ6Ni;}ThLT6(Bn>Thn>DaY!8h7o8ED^e*T}`xu zp=Y9}z8I6KoAQGyK*PHFZphYd_Q#5U&(%Q$EjvfhpbcD}73E;{2IaaZIUUX^h0C_X zM%`B%{Vi;kXd`!zn8BR=Hc&n3QOGHQX*dIZfEx;7msRU58I(%rL^!E)HoHib=TYP3 zQPq;H*DLmJDb@zLY3+i=sK9NtQmny{A6T`a2hgsu9zcHB&}wu51CI`{^7D#h4Eh^m zpqH%tM0FGstACK8F|Lw&p~LZgaEe7ojS4l#BFsdGeZ|{f85NJd79|QnEUD3}F!F0T zRyOWawY5(b)64mNVz3*1l8UmrjXr_OOVw*=DCsrztvohQx8>4air*}H0-_!o?J;Kc z1?%==eNlwu=nFbkly(WYH1r8$)81rI+{B=`+E#6BL{KM$6-yeMkkbwhxcDlw6_|4v zF%;0Osr&JemSE9JRKniakws}V4Q}2j#~hlS{TbFI@ZOKH|AxNE@5o*qYe+k~4)-;_ zS64s^slS4A5-KcwgXdA)lMHDI844?`ike1MRHE!vm4c_GgA3rsV;{UCP<$!4l_A{1 zxM5xlZfyI(PHG9iOe`CyD#!(gNrD?zH^$A%0~=-|{N3mQ8LcOEL@vvBBxFSnhuDB| zYth57v?MHMY0*41Vpf@H5i$cdS1Mo1DWNV0uC7w6)Gi}T(nbOx<6s!#iprWOG{4dD zl{JRr6UE-7%dOxybiEp3LL?%KF$9CIVWO2r@amp_{r1Ym79N`vS-Prmnv!EB9`+Bi z435FNY6x8X8T=QqE(bJ+MQktZ74_3h0ma3V!Tr+uhP8MzxBuXNF}FuhS1W}pw+mOT zSuaO@1_9deqo(gma8(dwF%KycR4NrZQ@Z4#av) z%1gU{7GxoLE|zzim|7Z38{)+zaQ|G5rQIr}^14#2sJJjDHI_I_iE&iGN?@Z>rDvtU z8tMx~q6%GIIR`rtn5pBbT8YyfBja?PLt)2iObXk$w1zu4mC#617o9W&%UVT{w>lt) zKF%{-D9|u>CBr7$fEyrHkPADm!u=>F^n`voKSTIowm=$nZP-zDqF$&>+`;|ax zp9-^APh-5It_Z4%Md3ed=wu&d=!`onBw!~xp2uRU|7Jwt5}h()U&yOvAm9|q&2CU) zpn8*VlJ0~!SD8-NVF{e5(C`r4U5>hHIK%R^)hHV`A`gut`iC6==j^3smJ}jV*<1s; z;|3)|K{eG80cVImMS5i2z;@07W!&xHadu6VPnC3D*367;Ma`frq#Uy|@{5eRlnR#< zp#g&pT?9;aotrV+X&J4Ur4#yb;+z^W-m|c?$K+J&MTwK3aKS;Oqly(0ST-7>_hqW8kfV+bB+bG;gn@|&gn&DL3^p`Z7Pb6gaQ_2DdUMmw2|_BAR|84rRMsV;@Hyz;oO zghP>~hYUjv-%Z+Hw5wX$X)^|%^p&aHXq%wh>Nq{1Wy9Z>3Kzrgen? zZ3hd#%Q_AkLi&dHq>;^lQfF!_SiqCoifn2t%mGcYtzb`$hT0AU#sJHq^EuENH2?hT z?azaT&Yb!4dcf0WJVsfZJ;4kt=fnFVahvbB9w(8zIG3QTB891Zgy3>97+<_?lFnhuu@ z4e?StK2upoH~>s1%|sZvFg9>TS`dAU06PI+pETz24xGWRP!4bhDP5oA$|iNyD(LhJ z{AYX(5yl+nQm~gbyjiBd#@ri@N^+knl1>B9F#&k-SOzJcw`2a}}m#ba>M^LUKXKzUB!PN)U?elFA7L64?rRA}En8VHceK zM&?WuDW{6KnfYhck{IIQus23juYgUMi<6WU8Y`h1|wD zRF}{qmsT-5kr%?pB>6-XgLN}L#wAPe5s6CpyOnd})6@v~n2Id~CZlTcA>d+|ECEC& zv-7x>N+z*Xl;z>zF-x9eGkNgb4SD7ch9Qr*dbE;2Tcj%5_! zi7a_Gw;2{f$>GlC>t#iGC^cCr!W1#KN_x#$JJRZ6p{{Vb7Md%VCd^S{6aqFGV~Ut+ zX#{LHh*Oo-{*jMEurT6O>=M%0gchWY)Zx>~y*JtPe;3+9xmzfAy%dyT|2ZhfNHQDL zgd{q`^4m*A5+}KtwhX&+k_rjep<Px{K=RqL`OzDKHA}2cT$@0W%zF^g7 zR}H;e2nn5~5tE#!UeV-(Wj@1l3XDAC;FaZdkT{bac<%MJ3Ot$Dgjw8mqX?5sl`KO| zT9IgkYF34n;PXcCMs`Fz7Qc~jAv}nl%qnU_6PZ>dm++BvS6*twRSpA&)`H9#2}N2Hibj=^`ZFjd zs??%bHUwG##ioW7h6%-@Z763*#yx<$+jXY zgGZO_fU3vRv2jBnYPG9Tw$N3B4|B$J6qn+LNZXR=N%&iNHFF~80?*PA#Uw!JT*Ag# zaqwLzWUPJEg_>e7?rVo?6=}qX86j+LCK(GOMln!iNMHil-FXHM9+0ttd%_ATE?h;c z|0Kl-hhg(^Rb@Z4xE!+m=UUgcWybYROM91gHw#tx~7s-(K1F;TGnsemAAU79?-npxg_sVIR zc2WkTL?E;Ed!5=Xer9I4kpvClw8XwP~$r z_!WY8NB4P3QgrkG5x$z$ZPU9(X6V6v9urj1#>!Gr3t@_ijI(iMj9(rOLPBuP#c!(a zcVAB+XyV00R0&hMvA)r9<$+D+H>cu*X;CWRlu9N}R{OSS>aJGtfs|Axb+6HhduoP- zK?*NXo`a!6>DTD4f~Y>u-Kyt7Q>j7}Yaaj!$<>}lnJNNC`P7$CO&I^uJ+1f-s~IfT?aQXXYvZ8tcHQ! znW(UTJ8{2j;(mSZBR_Nsl$=*1%{*@phsA#+1(bI;t7u+$Jqz}f4e6(B4&x;>x1J&C zYnB=D&Q$eP7NE%@^hZ_Zi#Xncpm3$4%!(Hsip*(T@>g~YK??dlOn&)HN^(HjlA$;* z>*bD?7OC+%aivxp;iuTuXN)aJgs@nswmx)E$}6)Ok&-g*%tAY?Vp8PEOEv&?qJMK~ zZ`>)>Hn8|+!_+QSkBI<8rHA2J;P}6)_ajp=b3Zh4nB_KchGH>*@+#&46 ztPZoFld$X6LrAj8V_S>R`WM?)rS=u|0!dGll7b_xOsndAWrkweTcWo=_#$dN%)(0; z9r&HZl#U8wj*|6vT4B0yRSvkG#HbtpUNDTJX{t%_tDQf_B)-OrP^47ERdlSwgb_NX9z0YgDjcyU_%aY z2|Xj%$dXq0n1xO3A6;@i=a{7^vd(0tzA8nLy7_RG#cVwYY;MJlJJoQN#c(}DT~%8z zuYP@W=f`5~((}raYMZ5~+e@{rDGKEVbRzR+0s)=%e-`=*U=7ZL&R|>UD`?fLtsu4w zS40oYhaOiO6!dbbb{X>7ftD#V!8lZB>NOc65_xklSc3~;aBym)5uX8WI^8c2ddehd zggiA}s*Q%s7*)cHl`2}xsz6SVoUFer46dB6Z3#O#gEMk#>lmFSA*Y?9rs4A<92!ezB8yx$eQlT`4~K7FK6Yo~*wzeC46~%fo(t9U2!sbB7OwFTZ7c*|8Hw2{UJ` z)4rTn51pji%T+h682-o)YgIbv?w?W*B}yB@D(a{UnW*Rl)^q>I;IOPt>31@+Qa2=R za80Fya#}sAMeQBZFTT`_&)8Y#P+A7oTn^8NYhfsurHv5KqdgEg2)_~Vu`rfV;HB3N zvFs5?6UVkq%v4_;r~cqrmV3}fK}@xg5|@h@Kz!yJnzhzVgKcbp#R=#RhfVULTk%vk z%@!s(f_eoA!FpTBv1puX+sx?aYI$BH>8ZW`C9O+gc9xL->dIO=q&{!tiC%g|!UJY# z!&e-#jL^rfaTtM%7=deES)5Ii^-IG`^?-{Wh)zA>rm%0S-UEY$MRwO41s-cSY%b0vc((Z#!IL#Y@T3kdT=2pz zl^)rmZXpysu>wxdVIAdHBblcG1?Fz@y{IQbLSsGL< z2wjw)EPpO+pzE?YNYPh&bovvCC1P<@^junk#?jfdL=rW+^OH$Uh!fqLmh|2OX-V%r zl9u$|lW9qdl24~4?FD!)Eg5)e$-sLgfhQu<(7ovm#4LIsEg2vws%q%;@1(B+9nNxo=i)6?~$~$g-Ke3Xf7`kEGP>4A-y}mi6J`8h{YSAVpZ;>ML{yuMMCyux4t`!;Y|5 zg1Sr}X!1?CQRl-EmmsoysAQ5oH#Cz(C83Q<;&6n%$ca*nLf=MMCCQ$h8khAVMu%b% zYf_=XJ2l%JkvAj~vB5`O;>uh>94*M1Q@rpac!u?tN4Tc?PreR+;y7f%AM=Bfl})jR ziAsK0qllLf@z{XF5=kDvXHR2>J}}jg0{a?Y3qy^tS43n-zYLkZF}ahqmuvDNCtzJC z57oD|`jy+PU#TUc(3*?<${H&r&J&Eysm$C|SeTIt6CdD&heIsIM`<+zP{vvd)mBzt z7kW(|vM;pdC8HiY;kb_L>nzJ5*1$A$Ff}p6UG`V9g4~CRO@g)7X0*4*dmTot($$ma ziYu7yP_H!UL9fg-fC^3b6zVjWO)r8eqlj^ebM%AfU2tw2(twP>w9(RoQ~Q;QvLQ%r zG7~w>4uOA3n!SRfN{nPv$&w+00DbbSd?iP*(r{jmH+dpPh2_p@pnFphmYhU)KAdPo zl84dR4gfSh)!OK0UsZtzglvfj0XH`yWOUMqaKqe)khox`w%SI78=>%pM1%ws z7d1zOidbrq8J=9Nz>u1Va3F~YFESA!S@baC|EnkK1BwX8n&l-3PaT32hpqaB3eX+D|n55dbT2Jv$RVkY4jhaGWlC2ZE04d-{AvE3$hQ;0z{2Vw|^l9>wx zVg^KOAQl=L)(aX=gR&yhA1KQCum)u;2q|D<0A-sN2*f~lZXgz>aihMYWdpGXQVXrH z?2)u&!ilsbm2o;PDG+-uE$O|pX~~2ysV>ob_clsa)jW{iFo988Qap2S+RzqekLHis z0=G&@tP)2qn$IFg8DZjQ#6%|}Hafv^T!Y(jS`mneIhdr;?B%NMOl)vyJ3QhAh0m2ecNgIN-N3gI$t42G9+15a1CP*wIvDcs7l&EeLj zXY12vV?0|Hjx`#3S$%oPtengDW;E&OM$e^qXufWeJEs*vDWgkS|9dhihb~VaNlNk4 z2hwu-Wvy9ax@2xAoylV2(B9?SYnsuR)#o~By%0V2XMgrl*UmUbFMi;~&*$)hHJd3< z*HIPMRHvqym5l5BrjVJ?j!W}KCMMJ#j|M< z1l{OP^-d!TD2n$cMH+Gsk~$}+4~Lz7e@wBDzRK%8)OMRafnw!yCsB~+ztXVzG?qS` zqmK?7=SP#WCC!;;`K$;Noq1jOq^d5gF45F;TexzZ1sD4F!YehK+-qi#%p_9sAb*4a zXr&f&y1ZF$U$91JG-|el^$<^V-8%ltW8?0v_3m58-8(q^f?HwtVN>XgS3-MJ=z&Em z8#e)g7~g#CMD$|2HtoApQS~iE2Dcq}fc2=fFz&qJWWDo9*fTzMtll&39zGU!9ywg^ z9QTgFoxMlHuJKpiarnsiVb2MsnkJ($oYLsYJ`R>)*7`v7 zP@XShZoY##c8AsAyuDHfd-RMC91{Uvd06B*KG zdw@>UF;O8Q6)~e`F*?#4#_i5ei+n|q?=WatdXTT^IhqXj?CfoaY1BJ*QnbI_9m!L zdF>9>msfMqL#zoRT;ww&ISmzu9W(|CkV)TJ`A76J62VFtQLZ|y(lu(+ZSwxwVVg^LC(n{y95028!9hE@vpi#OV0q759X zi+fJM2mOZ-t(Ygc-DhsMCsYeNl3%PXu=LY3df!6y6YD|0KKNhsI}C_;oZIG(bB7&g z0dB>z1AL$th}dy9QV%ot2v5VWoc5!~0|w9j1iPkjPVm&Syn%)A9DsMgv;SB)V8)qE zqL8ysV^D(nMLWVQY)?cHTv|rBU`SoEBiybLZVQ*pAK~_Ng!>!gTTI3`EVYiX8Jc8- zZ)Hr}TTxzN`;qZizJvC=j~>R^?mo(c&G0DwHfrg`_Q|Mp@Z|W|9T45WWBdi%!Yffc z4*h8h`;OMdDD^)3Mp=ibWV9dpY|B4jiku-2(h>ppTc1-AXI&9fxnl1N~@zs>+9w zS-GSCnt9r)xi&g`B3!BOL;g;Fa=#QIFPDzpB9@0j{$c(vh~tH033UM;OU8>YI)~Bz zbm4H=ZRl2oDl#(WANmEflG5yLPzIv5ALR`QR9%3i-7URONXi?Aq!JPap@pP<^GMon zNUD6og_3ljg`|Ckr2R2T+r#R@B+Za_Vucwi<2dh1mbT3<@~T?Gwl6@~_JptqSxi{C ztwC7SVS`wQZ>hfEvZIYpKAqtUa1r?pmKNeBwgJ`Gu`;L3SHp}lZk6di24Sw8Bjviy zz#-hJ+UWoSgq8@(whaPy+7=WwNk&4b`7>2IH)xR4oOj3 zv{|r?>gME?`GVb0-6)NW%z{zf8Dqr}>r9jC=&mk*Kv6REht zRMD{-nyURMC#rTI4ZEAGa;Ad(CRRj4@D_%r>84SlKc!~2O{8yf% z#9@vmR<%04q19V>a=!o49d;eUqsN7<8q;rt0Oirg{ltUm4EqvY(ePlT*jsf)^<26F z?J8YSjXfA}OO%6j1&g_@Z^s5P`F648U%WueoXr z@ZoT*_(T=tbJY}>B+@qAq{hldjn$1By9hCe)mW=;WPxmpw1MqKx1e?5E2IruF^mpA z8rF~1+a+y7Va-Y#`dQ9YDOF?AU$K3VDQOE^$%t=TX^IW_n9L!Rv7G-7iHl(fjXu8> zWu9n^dDuojt>{>%nm4)+-NFgQWrEiQqQW*C0d(LC+6bUce!lhHk`TB<@*pqRn#)3~ zxirD6KoW=^%m5d2peoD_x2S4EmZ1=eLP-6=KtpV%tVnIPaU-mSD1< zuIQZO&V{I}P>2Rm9CCA4kf zLGbIoCG0o?2zaoAB*tO=tsbj)hzCs^Cx^acj>ac5mbZp9XC0Le7?Cg4It-5)%y>Yp zUs7t=g~fbO$kz1!txB{IP8<$dAA=HFOv5VefNPAi+U_BI8al{^q zav+dZJIqtER_Bqm+mLmzLDo5O66cwumfOZjgDoBkmX$cEJ9X;27WPnl`SS%!*sLXN znw6P?_n_Z-JnygLOfzU%(vOY%v z3}NGF$#3c>f-zTTGVdRD#{8-@ljYY;O4#-$!e)%lObDB~V19+LP5g=yg5T&&Ux7{$n#25t#MuUkO<+pqtBFwOi&IG& zH^)iyJ)BOGgL4gck9;1J9K~8!Q?&*%(rfr2sn)}HNnE3b)=P7HtRS~>k``lB7gBgi zX`=8tkI^G#zZ$*|TsYOpTk?sPI8KV)pdOn5>78%8ds5roc>=IO94GlEPRi;K>PCvC zO>t5$UNT#os>Zp3mM{lu#SGuu%GIRqzc#uQ%b_yJ&==RgxO@gyCWFLyMnrab%9O#R|1w(4*rT*Wr2)s56VQ(ss{ zEyrY^q0;Xw!i%+TYlYpH$a)>k;;qnxleWwFGxZgd_4UdUq}0umY|n-(^d)dqXRLE` zCfh8+kc@958Om!L^cveFSp~<2z50lX9peti1dY~KfQXXrZAm7+8YkbmMdV`&UEvC5 zc2-1W;#VwQ*<|9E%j~wunc-E~6#FebKaMEes-(FZG>Q2x7#QseYsMm(ljSu@_++5Z zyy#&6=Sf@_95+`AJC%D*q!9PXBurBoM9ai^XHJrkcV%;^gD5=fd!(^QeMKyV?F`L= zIn+U7B&3iWs?9++q;QQQkhNfuc-0K&RDGRshb~D1k~H7iDvdO1^6K;RFoWQZ@0TXd zJE>|l3$9f>S771>>l&u|gbaG(8g5KA%f^Mh!nvAd9r@Nvly6;Q(k5%*s>%8#)}_Cs zNhLJq6fQ|r&bp+d1P^?gaK6fEL|&+z72zeZ%2{Dl&bs~KibnfV`O7uEv`*}`7RAs) z*-H#%*BVC?KW!dQ^ol2p5k(Ed0CujW8uq5qsNoA6tfm~$G{=(Att;HPutvry5ifKR zCs`M?8tYSpsiURqR50T^pPPjbObLD#k=~SRu^eJ_0>5@Ww*GQ&GOA!ScYJ%nb3s>G z1`0fhn(bT=KB{QHhEZK(=)QJ;xTZmOz$SziPlru}MxJF%Sh(8Ky*UvC5w&UEaE~2X zAT*6^^*wI5T%-+cDs5q0 zQ!P%iOE8_tSLKW8Ws%jxKT1bvx!qRgvkFNy%*BQ zV*Z@>SY4DpTS4h;QfioB`-_oVVb36dgl@#dJ4SnZeZ2;bLkGf(?TQNa3Tr368CgFb z_wDr&)zVh1c(}~)1b{aqyLtytR|~N(C5W+8ce1u2H1BO-tm5~;VXD4HATq4+fGO7M zH^+s5f{g!UeHD%JfAQPMWSvIweKXZfct=nhqoRj`rSa$gBdipl9fSnLr(hqJcoxu@ zG+nInfd*~^+`dvBB`l`%IY6(Ns%1jc_f-Ih`@V`-Ef%ZETDW-qwGFHm;sgo(hXa9^ zAy0-Rft(iB%-~@(3#Ej&#K`h?K^K7I*s$Go!$G#Vm9#rvGa(PZE0NF@z`H*!8SL^F zt$bUQ-c}vV}TPTlG1Ye_CQk!UTrFoN=!=^A_LEjwMH4+gSA`)3?>3amH7z2Qi04R?;X+}U96Jmnmzt>e~dRoa-|x+Hq) zw;yxlxUL;1Q*rSLR++3F&mTL%%*tBw7$^9cNG5t3c!OLY<=PppJptdi(Vy{EZcfJ1 zXGSs+TM?IX?{O-G@S(TPaSVrYqQ@I~%;^DL@Ea$Dz0B3DM%QYWWBCyAbxflM69@3!}oW7WIT+c5A+Bw2O9D7-*k{NM}^>SF!2}+suPJ6f% zq;x_=tr%w3IqXuMYV)!=y`Z{nquw=d@oFLyTvj88tVDBUMcFINow>VWb2$F7M4qaaG6VsC@oLTo%TmsNA=b!8lGfj*5wwz zM=|a??&wtw^8d7{@BAbcG9sV{WWFiH(dh>vTb5%%Ae%WuswedLm`=9VR)(w=2+bd3 z;a+>lkppPQ0lO}%B=HI>b&ifRJI3219iKvs)Zi>_KFilTF(qI!#G`Z>8>{`?>c@gQ z$62^Kz{Xh0PK*kNSZWhTr?pM&%P^$Dexc{sz_ya0ieQcJB8_<62q_nB$<0OO$=a&0 zU2JalrEvH^TY4ggw<@n4!h19u(kq;z4H60{`NF|0&(L~Y`G!$t(i{+A9ud#-l@wb| zhK_>v2LX#yZ>F@feHCwd)pwbDpg|AFd$S6vGFj8&IL>%7o8Wni%7M@@$G!5AAOWgO zX2JmHMW|@Hj5U^o^rhqMVM$p-oXX8H9e$2dK*KC$-sU zVVbRXO@&o0=Hw8bu$ls6XAn80DNe-OrvGT{?X%|OEP+RLn(|a_DUUd~alc(A8q_=u zFVxnadrCg1ROl1P(w-uAygQCXhi12oEOj0$U7|C5<*5!1OLfpKUyJ;$Z` zzqJ%K13V|})PhKMJt2cn1Vj-;1D(j04||8Lik_L-=z z&$4r#CX3?YVP*i02@Yj)Ame`aTXDW#4~BgQn;1XC`Mqpge40x|8_Hx0>CH9VLF>9) ztTB1VFTDF_kZo+FaC=N28YyAB*o5{d-%X>LTCYwO?unkA*DQ)drzWcxj#>UHFp(oi z;8C|y;M-;r7}ns9c(02B=}~^YW(04-EAu6ZN8kS#OwK#Q(F)$1b!+N#JO4-1>yslo z`l?`jf2?upW5&Mxk@NyT)f(xK`^_J-d3q3x7&NnWsY2b`!%4j&+5@!?if(aiEoo5@&XXXrA-D;)^ z$D-+D6H#Sllr<4(pVUNf*eceNjll~T2$)g^W2zR?qxJ<2L@_oHW$;N2M7%*EHV`(H ziwy+d?pT6q4y}RETQyWrt?Vn94(+!h%dkSM8O#nIHISAu5S)M1C}SWvcRnd|0<#Wo zEoxYo7y}^?e2vu@2s)}TRNfNfy(AnGeKkY{9XD%EnIJwDx3O0dt5A_$=Ww-<-4075 zjt{(zALv8AaLI(1u>n?fD?o)eqI*&WuaB%W6ueQ{L?>L)@MWvv&!xf7t@fqc<;WMd zgE1fA^umEFtWPWVSY9b#t9v76H?!UyQAFd)yS>H)A4v`4w>H%fL;bW;V8$jSK6k_- z2>K%rk0q@H3DeONKlAZl3$D<&WMpBoXs;q3Zr*6EuxrFcB)W0Nm!K3!9hUAzoU+I_ zVN1rC$le%7ACz=FfUpG#WMC9DapFguzEQ?Pr>aW0UZ;~xne=B1SYk4z6>0V2c&K5T zTvWjNNNeJX_0RBU_Io}jz|TzcGk?&O^yJ|5wB+{))WD0xThW#iYb1=1&oeZ;5>8GO zFskzn%aiZ^Ss4~%P`)XH@@#5Q5Ly;Xj$)FzJ^;3(3~`tl_r@^AV76||e>E2y{}Szv z!Rh#|K;e?%OQW2ts#l-K_8OI5{XE4Hw$?Pv{Y?#PpP2cZ83Wn=63RmxrqH(KHi$Rk zy{ev5(g`{s7YsjtRb7;96Ku5%+EzcG0{ zBsS**7F1crk7XRZRz!cG;q}ELMNT8$tL@upyqwfcNWGlYjoOrs%c)hYr*s@%wbgMt z)lxc+%{F@YDm4pfUZvXxjf8)NjpguA98T(#4$*;gFuAE@So^1&>cZ~55UvNK*@js5 zm2fI!Dux$9h*DGZh3d;J9QPYU4XqV+C!#|Kdf-96!-MNW0FLK^_|(gzj0UmlsJB*{ zcHtJy6FrUp6NER{yNNUE+3h%1Pu%tHU&!o`$cq(CWIoll)?H=(dG^xyo6*l~S`PT- zuM)d%!%ZOM^>7n5aGE6Zk+6vrpcrv2qabkzwficVtp1iOY=lWz@3up?oQXrqYt?ra zr0Y#MP_OYNO#a=h2-a_esS#4AFqH!r847l58X4EZSD?xp<-!j5C{R%7;zmSF%~u~a zEF&8RtZuz!j4OwUQcF|MEJkljxX0H=m=VKnSjwN0uC^_O%+SwkN&AIm)1$lp{&9!T zCf2)O=HL|}3(C{ZdEdU4Ty75%V=^G*V1zwbIlZPC%X88)JIt4acUb7aV7RM`JyB zYFq53Rp%jXEHawFoREqnkqDz&x6b6(_|a}ws+h4gX}Nwr=^;mv(TX1b_TzDoqhufa zlZimtsKDbNNK_z4J(w3~J5YKzp%UF#B^qTHtGx}aT5nsOZFJ%wGPc{zM>A1{uL3QF zSh752eWb64gq{Ke!UKud7Zez*5K&*p3Lj4CWaoS8YwII(J<*ec7I$u&=LP<#eSMziYT8em8w@M`c9K5LA#YX@0vB(y=GW z&oOzVfxBhD{T4+E&(&868Dl<(mLQ=oo6s3WPvv1*(TiWubHs@ za%X#)LpkZmYwB$ZdHO;wL9NEaHc}&XoDOn~I#~BTw+H+AR!&sCYPvFr(#Ucc8@h@x zjsNR>S!G3ufY3AN0k%@O&~l;Pak+DZu@5_DqGudh<}(zutbQ1ykhEt&SW*wJK3vo%udJ`(mGz}w z8Bg%akcXP8)EZUz=1}ao@kCX!un|&fCK%)uwI%wY&FTl(@@7nj(GTL$S+}K%<|X(_ zI!kDiD*B@HDHL}IbA6g?^mgxM&hO|34$~vL;^9B6E4KO}RlvA^Fuvl_#R_T^NR8h! z{6sgr8Pd_pk8+{)E4ctn?w?5``*^Fv$_219!Rji$r)veP)+T9@U59Yevg!6^R37YZ z%x8Xk1!q?wB3~~{g2VY;7HiM#Gw|_B>7sFiO&38Q-MS5pIwYK8b%V-JapGg}>mZek z{W?fh>pnM*63KZulK(d5Sq#Rj;PhtHt;KGp4qsSB-`6yd91ku<52j#z3l|W+*_LL) z?zX^l{UM{Yuy8+#z%93$`GrI?o5hD}clI{UQ`U*{!w^fjvEABsS2?DiWF&~A8UlXy zgXfZ~ZX*c`$oc18rL#C;^-3n{+c>8lZO<_->l^|qa!ATjjd-_I`UEH&Wz$;3Oi3+M zLniCB%{dpF4EwCk!B6pkSDW^jXVA8o~`@+K<6}X-XL5#O5Jc4XGG` zG`x{&p45+c;6vvck@+f@q3DZMjtsguOkyZu4T&B)4A`Wnlweyc1B> zKT?vG@X|8WBMCz_Og;Gk#^EK?8DvCIlVz~xZ%1WFM^NE0C%B?$u1A3ofW8?_7bCqs z;fp(EbxMvdbaOmA_}VTAM`@FW(7lcT!k0gsj1=cBFh_!ky%3Hea3R~<9dXQ-hMe?@ zVQdHf$yPiDP~SY$1>&Ire+tdSx6jF)T8)Av?2y(nD$fMp*(=a_=M9-J`G44Z|0uhT ztIqeFbMNhYyZhem+fqwv{jPf?J1yIaWyg^eTZwf#{z(#ISgcvB`SD)FMr)t-(UAuPe+O=y>?Zbe_$~iO>_N}#YKGQa|rA%0} z?QfuSXInG*fG(U{B@wofy<~o~CBqu4$R*RqtWOsxtC+;8iD{lsC~(j^+=~AGQqfoP zq9Hf0ugyz8wRDQ~JKVdx^jm_zBq^YMqu*_zt{H|e1K)=`Oq5zL1Ni6d5BN* zv0)>#QnFoA2%%`*C^ZV1)j5A)D>#?E^i>oq;=m9m17G7)>m$#WZCFj_u~S7XrUN^e zw1oVQ7B7wLOgy_I;VLmjOex}2DFXFlBRg4&Fj6>CM8N$2X?`(cK05FUPn*j_!z9VI zh}X%e%sHAX86j->j>1zBJ4~-sa8(3;Mme1~Av&a}6>!ywfm~JBL*ODsWq`idW13;-ss${`oODCXMnC6e1DNllwX^|MAl zFy^Q?qJoXcz4T*sK>tr7sJhm@IPu|efMrdjQE^_eYj9DH#Uw8WxaF}lYR}m^mW^Nt!`_n@!O(1LE)F- z+2dhz(IZbt9KJQWgK?r+X1_kumW+s@b9bk1muYI_=b=$stOs$G#+L-QrDB4&B3hp9 z{)TmITjRTt?d5D4vj#ek6a|(T7wQ=8FYokw-3_-2o|E3Z2V0Sb+u(I0Oowc7_T0^< zkz%#kDbe!2-gfET|8egcI=rcvTYB4cPX(?Xl}SEc%|1jXESS~!cA|a&Nlmv^7u(`B z^MLHCV(CS-w~pLx=2hCs7rCg3`z(6PN3ODS)!go-F`?v zaDTh@6X&#-&q5fs&&{}a{oc2`)G`D!nPl}l#Ja=KZ^##h(H{4A#BV8S$anQMMj==ntpu_-^A0=4eaXjn8xmf$0P@`a2z}x-I8){z`t%vQ9n*c+tZDDI8@{IGR4`N zNi_Rw6p)LWx*q-f>G-9Xs6l%+j{sg=JcZv;$AYH zI6Rw;Jt)O!SKqR+#z$S;v}{(eX~9;?PALX6ZsM@(l7IX`Od{Ebs#y)~l#!qV6BGJ^ zED2fK4?;nyGB+ONY54M^2i9#tnY7EyMCl&@9!*n>VZ zjlwu#SOsyxl6@laHQJX>=&+3}VHDhzS_uXiB@9!-kb#3sT-OG%8Euf2L#b9i+ndI! zc+}TP1K94=w=|s_ulQCQZfYx^ae4Tm+3eGQ@dM8{tTftc*aEEa02t;1P#*b*g%)6I zam@w*)(!$iQY``Sgb$Y-M21{cI@J$bPjZ}n@poVkAaPgB`7TwZ6?FwP5N)t?0L1HgCQA&)5y zzwjA-;lZ`fj2grtLMptc1S!fCL5fKUhu8w1*?Y7xD@fJQ3a}u#1Z=xs?y|trv7R)n zD5LBWuz+(FU_GPC(Yn3>R_BL3QE<#rz^)qzEHDiQ)(=t0VKHW5o{NDkb%-Zo`9l^~ z{5b1l0K7xNZ2<;XuQ6vB;P6$9Aqs$TmE~58j$v!sa9D(2001Ax1lW`!RYdmq@gM$J z^8k!C48K0p3Mp+;1eU6XNUdF^55;mdWJ!j(^chz8njV5A3~*S4WF|5~yfS#>4VD*3 z!m!*H>k{0R3Ou4)VtJyOQW~Wj%hRz{!(1uNGc573Wgv$D7y?&;of1m0>wJTUeWCcq~bZmqua4!NU z*#v*a>4=0rtfd@ln7Uwcn-8onB~sDWkvOrLC_S9Dmz z(CgyjBgg?^RKC{bqf?y~N+SWO6Dt~{+fo9cB5Shv0toPEkn}&xnJ(!{4Hf2vLSAMQ zKuTv8q1u2QV=+kW#3BE(Di*|CmL}R=1QVazNg~}dRsojI0ww|5sV2acu~}FSSW>ZZ zm&^A-z=F>bu$u~CWp{X+!)0A7k_i%PmyXtx~FkV==2kc0ci;y@_s4<+z&`g^?>(N>8%pH8w+^X z7Vx5KGvYVyVP!P?pXWp(+Nl5w9tQ(Uf*+6rfn~T}1z1niMgp+9u#$w;O%=eR)-1@v zi=ri9>6^irEm)nwRKje*Jq7|xc~=3pN(p_wjDcW52@Jk^SoT^CC1B}PfR%;lBFuVV zN5oA!Xq7zm{qfg-_BWfR)&RK-3mAq~QgDrsfsX;%7|w_?h>|NM(4q93rNJXOAE#U( zdwm!YLGYsyn&{EKiUTZy!gBypmcR!-p*Dk045CuA@A^Jy{h<|LhjJLU)^MZo+TwaC z0oW}K*tt(Uz^)^g8m@vJ^1#cM(MXx8_N#z*jffvFf!$BugJJjc$W>tX4D%|mQ$hi| zlnIQw0%n%EP01U+Ul-$zE(K;x5)b+YYcH#USUQJ@J3ekQ_1jHR{$gd(n zGKE{r6tbjl9@Jvg%f)L!x}?3ZTmTSOr0e*478SK_N8ik1gHB&(>sNqSQ~dxC)}k#G z&e3-CTO~kgOTbJ}cgGS^M`(nhgt16d*;L_>0>UBfl+fF&mOo^GNSD3_aaYO;4&|t# zDc@-59il~l{tWVd>7vghg@F@W zXoa1S>$NiHZE)-sYwX@}l<>(fMLVKsPbBMB&bB;SgtJzU%GmkHK2gLGo-YEK!wwqN zIW<0!_@ia#62587a6%eyw++We?-P1*)bfnvrjrfM=BY_ToHC+Gs*z~gg;8fqUWnw5 zBbhmYb zvCBDh+jDLT#P4Gv_lMs_FfB}B=)lY10>Tl_Ru zjru$)0MU6GZ0+^HL!J^DyaHNP*aA-w zp*|waUY`%wPK5Xu6;B_Y=P7fTmlZF|sqUWI1)rz(jGpnH+H=Z-q3{bBK)<5;z}02q zRPH6^3Ey2r6m!Gf_oE(9PSpG{7qc)vQQO0A)KIovO*vJ|n=+&=l{hHmupHX&t|`n*g> zn`Sy1+kSLbt`+rncBh;`6W2isdFTcZs*LyX8|^E1+N&iLO48HYq!xJ)Bs=wmFZltJUHUp6AY}5?f1@UF|EOww>J|B1QRO#VGmGHIOec$V>z?ml0Q1NBz`~1hZu)Ua zD(S+G^8lVYF?P)m}X9GdMu7xO}2@XLsUd{bcoO-l#6Zt!m?2Y1?=d+Q$P4UZ6_ zH!K#cN|x#xO$M9lrAFAET2e%bZ8IhUn=G{j`bx4J1m_F2+3YD#?!GzAMNJu2xYUf1 zeiH<$0hkDU13D28vWDah1S>Q!Q6!3Onbk2NQ8AMVBbY<)u{!0A{n=4SF{Pm>Y1N{7 zJjzg$SwQ?j#n$VM$tDM6xc@VcX$`L)!Fq_NopW-th;S*!0cV_(T`exfT<` zZSf?2oAip+#$+2SGG15d6~jJ`@!T45MNc;WR>h2Q#+9iY<1b={6ysmV^omshv1|3p zDdi#ZVLL-iT`~T(tycsAVzCXG6gO#*5B^C^OELZxJD5osd=NXOSGaFed+(av5iC&aZWTI-(SSGBSC=hM@lXrkV$@jypa=3gDF!w5l-5b;+`X}MckA9 zIN6Rp*4R@!ui@0-D19RzPL1pYr0xX|_V%-rB77)DB#%WIA>D0cAqt@Yc%6ZZJ75wU z*;8nup7!)el@P1SxHzGUqXO7FgA=kntEfX*&2=@t!!HQw4v-J-<~jU z{rA{rDaa0YP3#i5_{M1XwkX!yj)ZeS+OvnRFqPTqPKlb70KOl_u9a_fAj4JyV~ zU48<-%{9ua%(u6VvJ(FG)`&-gWorDhZ&5$4`nJ~yulqK)(F}73j*f2?R^i;swDDUt z9(7*$+e@qdw2Llxgf+B#O?X`EtQ+N`>+2Do@AHPi@>X&EX|6fPE{+o~EdH7QupZXD zrRAAU2g>AJ27DA#E=}d>0E?uQ`2K#$r@i!6Em_C@L&;2oMag&@(9AcWPMn_eX<{cYiwMOr9b)~0#s2~I4e zbX?>4Kh5Hv8D48g$-}JFBo8CApb53f5Iu5-4E|HuRzk1`Bo-ROs?Q7(AMQ}1E-(2Hw!N)Jf| zi4vn(Pc}%*BcM2(!pCJtexltUY}Y9yTZrSw0KIoSOHuOtlD5rG+UR*H1%qh}284c1 z9RragJ6mjM+e?r$*+-7>q87!=V`jBs#%7@9k+W8gv&zV6e@JT-(1QaXX$^Q|X)Hu> zABiDqM5f`0@*F5Id?{B>iZPTXZIDJC`0{UgM8FqI4B?B%2&y9R)d~1QTXc1N;p1u$ zF|GFaT1rf-`}kTJF|G0_t9|Hd^t5J_<4*x)=#V%#`TgK%0A&>j%WCGU%aG=AQ=&4^ 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

XaWm#u8se`Klha_|`pxpcWT3M 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≤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

He|P8r~1olnUT)PG;@MT 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≶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

-nEi9+%qNN1hr~WBPy+f4TQ!L1!J%` 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 W8{TirGYbOsnhZ?&7 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:last-child{display:grid;gap:3px}.file-picker small{color:#afc6d1;font-weight:400}.file-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #62d7e9;color:#62d7e9;font-size:25px}.input-row{display:grid;grid-template-columns:1fr auto}.input-row input{min-width:0;height:50px;padding:0 14px;border:1px solid #5a7180;border-right:0;background:#08151e;color:#fff}.input-row button{width:68px;border:1px solid #5a7180;background:#173345;color:#fff}.security-note,.address-result{display:grid;gap:4px;margin-top:20px;padding:13px 14px;border-left:3px solid #57d0df;background:#0a1922}.security-note span,.address-result span{color:#b7cad4;font-size:13px}.address-result strong{overflow-wrap:anywhere}.primary{min-height:50px;margin-top:24px;border:1px solid #67d5e4;background:#236eaa;color:#fff;font-weight:700}#notice{margin:14px 0 0;padding:10px 12px;border-left:3px solid #ff7168;background:#321c20;color:#ffc0bb;font-size:13px}#notice:empty{display:none}.success-mark{display:grid;place-items:center;width:58px;height:58px;margin-bottom:25px;border:2px solid #62d7e9;border-radius:50%;color:#62d7e9;font-size:31px;font-weight:700}.completion-message{margin-top:24px!important}@media(max-width:560px){.site-header{padding:0 18px}.local-page{display:none}main{padding:24px 12px}.import-panel,.success-panel{padding:24px 20px}h1{font-size:27px}} diff --git a/extension/dist/chrome/assets/popup-B3vY8vDf.css b/extension/dist/chrome/assets/popup-B3vY8vDf.css new file mode 100644 index 0000000..aaa5acc --- /dev/null +++ b/extension/dist/chrome/assets/popup-B3vY8vDf.css @@ -0,0 +1 @@ +:root{--blue: #2167a5;--blue-deep: #174d7c;--ink: #13202a;--muted-white: rgb(255 255 255 / 90%);--danger: #b9382e;--danger-soft: #fff0ee;--success: #1d8054;--dark: #0c151d;--surface: #111e28;--surface-raised: #172936;--surface-active: #1b3547;--dark-line: #314957;--dark-muted: #c4d0d7;--accent: #55c5dc;font:14px/1.45 Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{width:390px;min-width:390px;min-height:600px;margin:0;background:var(--blue);color:#fff}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.wallet-shell{position:relative;width:390px;height:600px;overflow:hidden;background:var(--blue)}.screen{width:100%;height:100%;background:var(--blue)}.screen[hidden]{display:none}.wallet-header{height:72px;display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid rgb(255 255 255 / 70%)}.wallet-header img{width:37px;filter:brightness(0) invert(1)}.wallet-header div{display:grid}.wallet-header strong{font-size:18px}.wallet-header small{color:var(--muted-white);font-size:14px}.wallet-header>span{margin-left:auto;font-size:13px;font-weight:700}.screen-content{padding:28px 24px 22px}.screen-content.compact{padding-top:18px}.eyebrow{font-size:11px;font-weight:700;text-transform:uppercase}h1{margin:7px 0 9px;font-size:27px;line-height:1.12;letter-spacing:0}.intro{margin:0 0 24px;color:var(--muted-white);line-height:1.5}label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}.input-row{height:49px;display:grid;grid-template-columns:1fr auto;border:1px solid white;background:#fff}.input-row:focus-within,textarea:focus{outline:2px solid rgb(255 255 255 / 28%);outline-offset:2px}.input-row input{min-width:0;border:0;padding:0 13px;color:var(--ink);outline:0}.reveal{border:0;border-left:1px solid #d9e0e5;padding:0 13px;background:#fff;color:var(--blue);font-size:11px;font-weight:700}textarea{width:100%;min-height:82px;margin-bottom:13px;resize:none;border:1px solid white;padding:11px 13px;color:var(--ink);outline:0}.note{display:grid;gap:2px;margin:18px 0 23px;border-left:3px solid var(--accent);padding:13px;background:var(--surface-raised);color:#fff;font-size:12px}.note span{color:var(--dark-muted)}.compact-note{margin:12px 0 14px;padding:10px 13px}.warning{margin:18px 0 25px;border-left:3px solid var(--danger);padding:13px;background:#321c20;color:#ffbbb5;font-size:12px;line-height:1.4}.warning strong{display:block}.primary,.secondary{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--accent);background:var(--accent);color:#08202b;font-weight:700}.primary span{font-size:18px}.secondary{min-height:42px;margin-top:9px;background:transparent;color:#dcecf3;font-size:12px}.secondary:disabled{border-color:#ffffff59;color:#ffffff7f}.text-button{width:100%;margin-top:8px;border:0;padding:8px;background:transparent;color:var(--muted-white)}.divider{display:flex;align-items:center;gap:10px;margin:17px 0 12px;color:#ffffffad;font-size:12px;text-transform:uppercase}.divider:before,.divider:after{height:1px;flex:1;background:#ffffff4d;content:""}.file-heading{margin-top:20px}.file-picker{min-height:86px;display:flex;align-items:center;gap:13px;margin-bottom:24px;border:1px dashed rgb(255 255 255 / 72%);padding:14px;background:#ffffff1a;cursor:pointer}.file-picker>span:last-child{display:grid;gap:4px}.file-picker small{color:#ffffffad;font-weight:400}.file-icon{width:34px;height:34px;display:grid;flex:0 0 34px;place-items:center;border:1px solid white;font-size:22px;font-weight:400}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.loading-screen{position:relative}.loading-brand{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:34px}.loading-brand img,.large-logo{width:148px;filter:brightness(0) invert(1)}.spinner{width:28px;aspect-ratio:1;border:3px solid rgb(255 255 255 / 28%);border-top-color:#fff;border-radius:50%;animation:spin .85s linear infinite}.loading-screen>p{position:absolute;bottom:35px;width:100%;margin:0;color:#ffffffb8;font-size:12px;text-align:center;text-transform:uppercase}@keyframes spin{to{transform:rotate(360deg)}}.success-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:1px solid #55c98a;background:#123727;color:#66dfa0;font-size:22px;font-weight:700}.image-preview{position:relative;height:142px;margin:18px 0;overflow:hidden;border:1px solid var(--dark-line);background:var(--surface)}.image-preview img{width:100%;height:100%;display:block;object-fit:contain}.confirmation{display:grid;grid-template-columns:18px 1fr;gap:9px;align-items:start;margin:14px 0;color:#ffffffd6;font-size:11px;line-height:1.35}.confirmation input{width:16px;height:16px;margin:0}.centered-content{height:100%;display:flex;flex-direction:column;justify-content:center;padding:36px 28px;text-align:center}.centered-content{align-items:stretch}.centered-content .large-logo{align-self:center;width:92px;margin-bottom:25px}.centered-content h1{text-align:center}.centered-content .primary{margin-top:22px}.dashboard-header{height:66px}.account-button{min-width:105px;max-width:132px;height:34px;display:flex;align-items:center;gap:7px;margin-left:auto;overflow:hidden;border:1px solid rgb(255 255 255 / 45%);padding:0 10px;background:transparent;color:#fff;font-size:14px}.account-button>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#63d18d}.assets-dashboard{height:calc(100% - 66px);overflow:hidden}.portfolio-balance{padding:22px 22px 19px;border-bottom:1px solid rgb(255 255 255 / 24%);background:var(--blue-deep)}.portfolio-balance>span{color:var(--muted-white);font-size:14px;text-transform:uppercase}.portfolio-balance>strong{display:block;margin-top:4px;font-size:31px;line-height:1.2}.portfolio-balance>strong small{font-size:13px}.portfolio-balance p{max-width:100%;margin:7px 0 0;overflow:hidden;color:#ffffffd1;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.wallet-actions{height:88px;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid rgb(255 255 255 / 24%)}.wallet-actions button{display:grid;place-items:center;align-content:center;gap:5px;border:0;border-right:1px solid rgb(255 255 255 / 18%);background:transparent;color:#fff;font-size:14px;font-weight:700}.wallet-actions button:last-child{border-right:0}.action-icon{width:29px;height:29px;display:grid;place-items:center;border:1px solid rgb(255 255 255 / 65%);font-size:16px;font-weight:400}.asset-ledger{height:calc(100% - 209px);background:var(--dark);color:#fff}.asset-filter{height:42px;display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--dark-line);padding:5px 19px;background:#0f1a22}.asset-filter button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--dark-muted);font-size:14px;font-weight:700}.asset-filter button.active{border-bottom-color:var(--accent);color:#fff}.asset-ledger-heading{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 19px;border-bottom:1px solid var(--dark-line)}.asset-ledger-heading h1{margin:0;font-size:19px}.asset-ledger-heading button{width:30px;height:30px;border:0;background:transparent;color:var(--accent);font-size:17px}.asset-row{min-height:66px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px 19px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.asset-symbol{width:36px;height:36px;display:grid;place-items:center;background:var(--blue);color:#fff;font-size:12px;font-weight:700}.contractless-symbol img{width:25px;filter:brightness(0) invert(1)}.asset-name,.asset-value{min-width:0;display:grid;gap:2px}.asset-name strong,.asset-value strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.asset-name span,.asset-value span{color:var(--dark-muted);font-size:13px}.asset-value{max-width:125px;text-align:right}.token-list{max-height:calc(100% - 148px);overflow-y:auto}.empty-assets{display:grid;gap:5px;padding:27px 20px;color:var(--dark-muted);text-align:center}.empty-assets strong{color:#dce8ee;font-size:16px}.empty-assets span{font-size:14px}.receive-screen{background:var(--dark)}.receive-screen .wallet-header{background:var(--blue)}.send-screen,.send-review-screen,.send-success-screen{background:var(--dark);color:#fff}.send-screen .wallet-header,.send-review-screen .wallet-header,.send-success-screen .wallet-header{background:var(--blue)}.send-content,.send-review-content,.send-success-content{height:calc(100% - 72px);padding:22px;overflow-y:auto}.send-content{display:grid;align-content:start;gap:17px}.send-content label{color:#fff;font-size:14px}.send-content input,.send-content select{width:100%;min-height:48px;border:1px solid var(--dark-line);padding:0 13px;background:var(--surface);color:#fff;outline:0}.send-content input:focus,.send-content select:focus{border-color:var(--accent)}.send-amount-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.send-amount-row input{border-right:0}.send-amount-row>span{min-width:64px;display:grid;place-items:center;border:1px solid var(--dark-line);background:var(--surface-raised);color:var(--accent);font-weight:700}.field-note{display:block;margin-top:7px;color:var(--dark-muted);font-size:13px}.send-continue{margin-top:5px}.send-review-content{padding:0 22px 24px}.send-review-amount{margin:0 -22px 20px;padding:24px 22px;background:var(--blue-deep)}.send-review-amount>span{color:var(--muted-white);font-size:13px;text-transform:uppercase}.send-review-amount strong{display:block;margin-top:5px;font-size:29px}.send-review-amount small{color:var(--accent);font-size:15px}.send-review-details{margin:0 0 18px}.send-review-details>div{padding:12px 0;border-bottom:1px solid var(--dark-line)}.send-review-details dt{margin-bottom:4px;color:var(--dark-muted);font-size:13px}.send-review-details dd{margin:0;overflow-wrap:anywhere;color:#fff;font-weight:700}.signing-notice{margin:18px 0;padding-left:12px;border-left:3px solid var(--accent);color:var(--dark-muted)}.send-success-content{text-align:center}.send-success-content p{color:var(--dark-muted)}.send-txid{margin:24px 0 14px;padding:14px;border:1px solid var(--dark-line);background:var(--surface);text-align:left}.send-txid span{display:block;margin-bottom:5px;color:var(--dark-muted);font-size:13px}.send-txid strong{overflow-wrap:anywhere}.send-success-content .secondary{margin-bottom:10px}.receive-content{height:calc(100% - 72px);overflow-y:auto;padding:25px 24px 22px;text-align:center}.receive-label{color:var(--accent);font-size:12px;font-weight:700;text-transform:uppercase}.receive-content h1{margin-top:8px}.receive-content>p{margin:0 auto 20px;color:var(--dark-muted);font-size:11px;line-height:1.45}.qr-frame{width:238px;height:238px;display:grid;place-items:center;margin:0 auto 19px;border:1px solid #708693;padding:8px;background:#fff}.qr-frame canvas{width:220px;height:220px;display:block}.receive-address{display:grid;gap:6px;border:1px solid var(--dark-line);padding:13px;background:var(--surface);text-align:left}.receive-address span{color:var(--dark-muted);font-size:11px;font-weight:700;text-transform:uppercase}.receive-address strong{overflow-wrap:anywhere;color:#e5f0f5;font:12px/1.4 Consolas,monospace}.receive-copy{margin-top:13px}.nfts-screen,.nft-detail-screen{background:var(--dark);color:#fff}.nfts-screen .wallet-header,.nft-detail-screen .wallet-header{background:var(--blue)}.header-refresh{width:34px;height:34px;display:grid;place-items:center;margin-left:auto;border:1px solid rgb(255 255 255 / 70%);background:transparent;color:#fff;font-size:18px}.nfts-content,.nft-detail-content{height:calc(100% - 72px);overflow-y:auto}.nfts-summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:#0f1a22;color:var(--dark-muted);font-size:13px;font-weight:700;text-transform:uppercase}.nfts-summary span:first-child{color:var(--accent)}.nfts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:1px;background:var(--dark-line)}.nft-card{min-width:0;display:grid;align-content:start;border:0;padding:0;background:var(--surface);color:#fff;text-align:left}.nft-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nft-card-media{width:100%;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;background:#17303e;color:var(--accent);font-size:28px;font-weight:700}.nft-card-media img{width:100%;height:100%;display:block;object-fit:cover}.nft-card-identity{min-height:116px;display:grid;align-content:start;gap:3px;padding:11px 12px 13px}.nft-card-identity>span{color:var(--accent);font-size:11px;font-weight:700}.nft-card-identity strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.nft-card-identity small{overflow:hidden;color:var(--dark-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.nft-card-identity b{margin-top:5px;color:#fff;font-size:12px}.nft-card-identity em{color:#e9c667;font-size:11px;font-style:normal}.nfts-empty{grid-column:1 / -1;min-height:300px;display:grid;place-content:center;gap:6px;padding:30px;background:var(--surface);color:var(--dark-muted);text-align:center}.nfts-empty strong{color:#fff;font-size:17px}.nfts-pagination{min-height:52px;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:10px;padding:7px 14px;border-top:1px solid var(--dark-line);background:#0f1a22;text-align:center}.nfts-pagination[hidden]{display:none}.nfts-pagination button{width:38px;height:38px;border:1px solid var(--dark-line);background:var(--surface);color:var(--accent);font-size:17px}.nfts-pagination button:disabled{color:#61727c}.nfts-pagination span{color:var(--dark-muted);font-size:13px}.nft-detail-media{width:100%;aspect-ratio:16 / 11;display:grid;place-items:center;overflow:hidden;border-bottom:1px solid var(--dark-line);background:#142934}.nft-detail-media img{width:100%;height:100%;display:block;object-fit:contain}.nft-detail-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;align-items:end;padding:18px 20px 14px}.nft-detail-heading>div{min-width:0}.nft-detail-heading span{color:var(--accent);font-size:11px;font-weight:700}.nft-detail-heading h1{overflow-wrap:anywhere;margin:4px 0 0;font-size:23px}.nft-detail-heading>strong{color:#63d18d;font-size:13px;text-align:right}.nft-detail-description{margin:0;padding:0 20px 17px;color:var(--dark-muted);font-size:14px;line-height:1.5}.nft-detail-attributes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 20px 18px}.nft-detail-attributes[hidden]{display:none}.nft-detail-attributes>div{min-width:0;display:grid;gap:2px;border:1px solid var(--dark-line);padding:9px;background:var(--surface-raised)}.nft-detail-attributes span{overflow:hidden;color:var(--dark-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.nft-detail-attributes strong{overflow-wrap:anywhere;font-size:13px}.nft-detail-fields{margin:0;border-top:1px solid var(--dark-line)}.nft-detail-fields>div{display:grid;gap:4px;padding:12px 20px;border-bottom:1px solid var(--dark-line)}.nft-detail-fields dt{color:var(--dark-muted);font-size:12px}.nft-detail-fields dd{margin:0;overflow-wrap:anywhere;color:#fff;font:12px/1.45 Consolas,monospace}.nft-detail-actions{padding:18px 20px 0}.nft-provenance{padding:18px 20px 25px}.nft-provenance h2{margin:0 0 11px;font-size:16px}.nft-provenance p{color:var(--dark-muted)}.nft-history-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;border:0;padding:10px 0;border-bottom:1px solid var(--dark-line);background:transparent;color:#fff;text-align:left}.nft-history-row:hover,.nft-history-row:focus-visible{background:var(--surface-raised)}.nft-history-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nft-history-row strong{font-size:13px}.nft-history-row span{color:var(--dark-muted);font-size:12px;text-align:right}.nft-history-row small{grid-column:1 / -1;color:var(--accent);font:11px Consolas,monospace}.activity-screen{background:var(--dark);color:#fff}.activity-screen .wallet-header{background:var(--blue)}.activity-content{height:calc(100% - 72px);overflow-y:auto}.activity-summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:#0f1a22;color:var(--dark-muted);font-size:13px;text-transform:uppercase}.activity-summary strong{color:var(--accent);font-size:13px}.activity-summary>div{display:flex;align-items:center;gap:8px}.activity-summary button{width:30px;height:30px;border:1px solid var(--dark-line);background:transparent;color:var(--accent);font-size:17px}.activity-list{background:var(--surface)}.activity-row{width:100%;min-height:98px;display:grid;grid-template-columns:31px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 17px;border-bottom:1px solid var(--dark-line);border-top:0;border-right:0;border-left:0;background:transparent;color:#fff;text-align:left}.activity-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.activity-marker{width:29px;height:29px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:13px;font-weight:700}.activity-marker.incoming,.activity-status .incoming{color:#63d18d}.activity-marker.outgoing,.activity-status .outgoing{color:#fff}.activity-details,.activity-status{min-width:0;display:grid;gap:2px}.activity-details strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.activity-details span{color:#c1d0d8;font:13px Consolas,monospace}.activity-details small,.activity-status span{color:var(--dark-muted);font-size:13px}.activity-status{max-width:132px;text-align:right}.activity-status strong{font-size:14px;white-space:nowrap}.activity-status .confirmed{color:#63d18d}.activity-status .pending{color:#e9c667}.activity-empty{display:grid;gap:6px;padding:42px 24px;color:var(--dark-muted);font-size:14px;text-align:center}.activity-empty strong{color:#dce8ee;font-size:16px}.activity-error{color:#ffaaa4}.transaction-screen{background:var(--dark);color:#fff}.transaction-screen .wallet-header{background:var(--blue)}.transaction-confirmed{color:#84e7aa}.transaction-pending{color:#f1d27b}.transaction-content{height:calc(100% - 72px);overflow-y:auto;padding-bottom:24px}.transaction-identity{display:grid;gap:13px;padding:18px;border-bottom:1px solid var(--dark-line);background:var(--surface-raised)}.transaction-identity>div{display:grid;gap:7px}.transaction-identity span,.transaction-field span{color:var(--dark-muted);font-size:12px;font-weight:700;text-transform:uppercase}.transaction-identity strong{overflow-wrap:anywhere;color:#fff;font:13px/1.55 Consolas,monospace}.transaction-identity button{min-height:40px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:14px;font-weight:700}.transaction-section{border-top:1px solid var(--dark-line)}.transaction-section h2{margin:0;padding:16px 18px 10px;font-size:16px}.transaction-fields{display:grid}.transaction-field{display:grid;gap:6px;padding:13px 18px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.transaction-field strong{overflow-wrap:anywhere;color:#fff;font-size:15px;font-weight:600;line-height:1.45}.transaction-technical{border-top:1px solid var(--dark-line)}.transaction-technical summary{padding:17px 18px;color:var(--accent);font-size:15px;font-weight:700;cursor:pointer}.technical-field strong{font:12px/1.55 Consolas,monospace;word-break:break-all}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#091a278a}.account-drawer{position:absolute;top:0;right:0;bottom:0;z-index:11;width:338px;display:flex;flex-direction:column;border-left:1px solid var(--dark-line);background:var(--dark);color:#fff;transform:translate(100%);transition:transform .18s ease-out}.account-drawer.open{transform:translate(0)}.drawer-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:var(--blue);color:#fff}.drawer-header>div{display:grid;gap:2px}.drawer-header strong{font-size:19px}.drawer-header span{color:var(--muted-white);font-size:14px}.drawer-header button{width:34px;height:34px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:23px;line-height:1}.drawer-section{max-height:244px;overflow-y:auto;padding:17px 15px 14px;border-bottom:1px solid var(--dark-line)}.drawer-label{display:block;margin:0 3px 8px;color:var(--dark-muted);font-size:13px;font-weight:700;text-transform:uppercase}.known-address{width:100%;min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:4px;align-items:center;border:1px solid var(--dark-line);padding:4px;background:var(--surface);color:#fff}.known-address+.known-address{margin-top:7px}.known-address.active-address{border-color:var(--accent);background:var(--surface-active)}.address-select{min-width:0;min-height:48px;display:grid;grid-template-columns:36px minmax(0,1fr) 20px;gap:10px;align-items:center;border:0;padding:5px 6px;background:transparent;color:#fff;text-align:left}.rename-address{width:28px;height:34px;border:0;background:transparent;color:var(--accent);font-size:16px}.address-avatar{width:34px;height:34px;display:grid;place-items:center;background:#204f70}.address-avatar img{width:24px;filter:brightness(0) invert(1)}.address-details{min-width:0;display:grid;gap:2px}.address-details strong{font-size:15px}.address-details small{overflow:hidden;color:var(--dark-muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.selected-mark{color:var(--success);font-size:14px;font-weight:700}.drawer-navigation{display:grid;padding:8px 0}.drawer-navigation button{min-height:72px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:10px;align-items:center;border:0;border-bottom:1px solid var(--dark-line);padding:9px 18px;background:transparent;color:#fff;text-align:left}.drawer-navigation button>span:nth-child(2){display:grid;gap:2px}.drawer-navigation strong{font-size:16px}.drawer-navigation small{color:var(--dark-muted);font-size:13px}.menu-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:15px;font-weight:700}.menu-arrow{color:var(--dark-muted);font-size:20px;text-align:right}.drawer-lock{min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;margin:auto 15px 15px;border:1px solid var(--dark-line);background:var(--surface-raised);color:#dce8ee;font-size:14px;font-weight:700}.header-back{width:34px;height:34px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:18px}.settings-screen{background:var(--dark);color:#fff}.settings-screen .wallet-header{background:var(--blue);color:#fff}.settings-content{height:calc(100% - 72px);overflow-y:auto;padding-bottom:20px}.settings-group{padding:18px 20px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.settings-heading{display:grid;gap:3px;margin-bottom:15px}.settings-heading strong{font-size:13px}.settings-heading span{color:var(--dark-muted);font-size:12px;line-height:1.4}.settings-group label{color:#b7c6ce;font-size:12px;text-transform:uppercase}.settings-group input,.settings-group select{width:100%;height:44px;border:1px solid #8699a5;padding:0 11px;background:#fff;color:var(--ink);outline:0}.settings-group input:focus,.settings-group select:focus{border-color:var(--blue);outline:2px solid rgb(33 103 165 / 14%)}.settings-save{width:calc(100% - 40px);margin:16px 20px;border-color:var(--accent);background:var(--accent);color:#08202b}.backup-settings{padding-right:0;padding-left:0}.backup-settings .settings-heading{padding:0 20px}.settings-action{width:100%;min-height:61px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:10px;align-items:center;border:0;border-top:1px solid var(--dark-line);padding:9px 20px;background:transparent;color:#fff;text-align:left}.settings-action:last-child{border-bottom:1px solid var(--dark-line)}.settings-action>span:nth-child(2){display:grid;gap:2px}.settings-action strong{font-size:14px}.settings-action small{color:var(--dark-muted);font-size:11px}.settings-action>span:last-child{color:var(--dark-muted);font-size:20px}.settings-action-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:15px;font-weight:700}.private-key-result{margin:16px 20px 0;border:1px solid var(--dark-line);padding:13px;background:var(--surface-raised)}.private-key-result>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.private-key-result>div>strong{font-size:11px;text-transform:uppercase}.private-key-result>div>button{width:28px;height:28px;border:0;background:transparent;color:var(--dark-muted);font-size:19px}.private-key-result textarea{height:95px;min-height:95px;margin:0 0 10px;border:1px solid #8699a5;padding:9px;background:#fff;color:var(--ink);font-size:11px}.private-key-result .secondary{border-color:var(--accent);color:var(--accent)}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:#091a27ad}.backup-key-modal{position:absolute;top:50%;right:20px;left:20px;z-index:31;border:1px solid white;background:var(--blue);color:#fff;transform:translateY(-50%)}.backup-key-modal>header{min-height:65px;display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid rgb(255 255 255 / 40%)}.backup-key-modal>header>div{display:grid;gap:2px}.backup-key-modal>header strong{font-size:13px}.backup-key-modal>header span{color:var(--muted-white);font-size:11px}.backup-key-modal>header button{width:30px;height:30px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:20px}.backup-key-modal>div{padding:17px 15px}.backup-key-modal .primary{margin-top:16px}#notice{position:absolute;right:18px;bottom:14px;left:18px;z-index:40;margin:0;padding:10px 12px;border:1px solid #8d4448;border-left:3px solid #ff7168;background:#321c20;color:#ffc0bb;font-size:11px}#notice:empty{display:none}.provider-approval-screen{display:flex;flex-direction:column}.provider-approval-screen .screen-content{min-height:0;flex:1;overflow-y:auto;padding-bottom:18px}.approval-context{display:flex;align-items:center;justify-content:space-between;gap:12px}.approval-context .eyebrow{min-width:0;overflow-wrap:anywhere}.risk-label{flex:0 0 auto;padding:5px 8px;border:1px solid currentColor;font-size:11px;font-weight:700;text-transform:uppercase}.risk-safe{background:#123b2d;color:#63e5a9}.risk-low{background:#403612;color:#ffe16c}.risk-high{background:#481f24;color:#ff8b8b}.approval-details{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.4fr);margin:20px 0;border:1px solid #315466;background:#091923}.approval-details dt,.approval-details dd{min-width:0;margin:0;padding:11px 12px;border-bottom:1px solid #203d4c;overflow-wrap:anywhere}.approval-details dt{color:#85dce8;font-size:12px;font-weight:700;text-transform:capitalize}.approval-details dd{color:#f5f9fb;font:13px/1.45 Arial,Helvetica,sans-serif;white-space:pre-wrap}.approval-details dt:last-of-type,.approval-details dd:last-of-type{border-bottom:0}.approval-actions{display:grid;flex:0 0 auto;grid-template-columns:1fr 1fr;gap:10px;padding:14px 24px 18px;border-top:1px solid rgb(255 255 255 / 35%);background:var(--blue-deep)}.approval-actions button{min-height:48px;margin:0}.approval-actions button.is-processing:before{width:15px;height:15px;content:"";border:2px solid currentcolor;border-right-color:transparent;border-radius:50%;animation:approval-spin .7s linear infinite}.approval-actions button:disabled{opacity:.72}@keyframes approval-spin{to{transform:rotate(360deg)}}.network-choice{display:grid;grid-template-columns:1fr 1fr;width:100%;margin:0 0 18px;border:1px solid #5b8caf;background:#0a1b27}.network-choice button{min-height:42px;border:0;border-right:1px solid #315466;background:transparent;color:#b9cfdb;font:700 13px/1 Arial,Helvetica,sans-serif}.network-choice button:last-child{border-right:0}.network-choice button.active{background:#43d6e8;color:#06151e}.drawer-network{margin:8px 0 0}.settings-help{display:block;margin-top:8px;color:#a9c2cf;font-size:12px;line-height:1.45} diff --git a/extension/dist/chrome/assets/print-DTb91-bp.css b/extension/dist/chrome/assets/print-DTb91-bp.css new file mode 100644 index 0000000..b6c42aa --- /dev/null +++ b/extension/dist/chrome/assets/print-DTb91-bp.css @@ -0,0 +1 @@ +*{box-sizing:border-box}body{max-width:760px;margin:0 auto;padding:34px;color:#111820;font:14px/1.45 Arial,Helvetica,sans-serif}header{display:flex;align-items:center;gap:15px;padding-bottom:18px;border-bottom:3px solid #2167a5}header img{width:58px}h1{margin:0;font-size:24px}header p{margin:2px 0 0;color:#5c6972}.warning{margin:22px 0;border:2px solid #9b1c1c;padding:12px;color:#7a1111;font-weight:700}section{margin-top:18px}h2{margin:0 0 7px;color:#42515b;font-size:12px;text-transform:uppercase}pre{margin:0;overflow-wrap:anywhere;white-space:pre-wrap;border:1px solid #aebac2;padding:11px;font:10px/1.35 Consolas,monospace}.print-error{color:#9b1c1c;font-weight:700}@media print{body{max-width:none;padding:0}} diff --git a/extension/dist/chrome/background.js b/extension/dist/chrome/background.js new file mode 100644 index 0000000..79b546a --- /dev/null +++ b/extension/dist/chrome/background.js @@ -0,0 +1,3 @@ +import{c as St}from"./chunks/core-D2IK1U91.js";const z="contractlessWallet",F="contractlessWallets",B="contractlessSettings",V="contractlessAutoLock",x="contractlessUnlockedWallet",M="contractlessApplicationSessions",pt=12e4,At=10,ot={testnetApiUrl:"https://api.contractless.dev",autoLockMinutes:60};let s;const q="pending-provider-approvals";async function S(){const t=(await chrome.storage.local.get(B))[B]??{},r=t.selectedNetwork==="mainnet"?"mainnet":"testnet",a=t.testnetApiUrl??t.apiUrl??ot.testnetApiUrl,l=t.mainnetApiUrl??"";return{selectedNetwork:r,testnetApiUrl:a,mainnetApiUrl:l,apiUrl:r==="mainnet"?l:a,autoLockMinutes:t.autoLockMinutes??ot.autoLockMinutes}}function y(e){if(!e.apiUrl)throw new Error(`No ${e.selectedNetwork} API is configured.`);return e.apiUrl}function ut(e){if(e.endsWith(".cltc"))return"testnet";if(e.endsWith(".clc"))return"mainnet";throw new Error("The wallet address does not identify a supported Contractless network.")}function ht(e){const t=JSON.parse(e);if(typeof t.short_address!="string"||typeof t.public_key!="string")throw new Error("The encrypted wallet metadata is invalid.");return{address:t.short_address,publicKey:t.public_key,network:ut(t.short_address)}}async function C(){const e=await chrome.storage.local.get([F,z]),t=e[F];if((t==null?void 0:t.version)===2&&Array.isArray(t.wallets))return t;if((t==null?void 0:t.version)===1&&Array.isArray(t.wallets)){const f=t,v=f.wallets.map(b=>({...b,network:ut(b.address)})),m=v.find(b=>b.id===f.activeWalletId),A={version:2,activeWalletIds:m?{[m.network]:m.id}:{},wallets:v};return await L(A),A}const r=e[z];if(typeof r!="string")return{version:2,activeWalletIds:{},wallets:[]};const a=ht(r),l={id:crypto.randomUUID(),label:"Contractless Account 1",address:a.address,publicKey:a.publicKey,walletJson:r,network:a.network},d={version:2,activeWalletIds:{[a.network]:l.id},wallets:[l]};return await chrome.storage.local.set({[F]:d}),await chrome.storage.local.remove(z),d}async function L(e){await chrome.storage.local.set({[F]:e})}function O(e,t){const r=e.wallets.filter(a=>a.network===t);return r.find(a=>a.id===e.activeWalletIds[t])??r[0]}async function R(e){const t=await C(),r=ht(e),a=t.wallets.find(d=>d.address===r.address);if(a)return a.walletJson=e,a.publicKey=r.publicKey,t.activeWalletIds[r.network]=a.id,await L(t),a;const l={id:crypto.randomUUID(),label:`Contractless Account ${t.wallets.filter(d=>d.network===r.network).length+1}`,address:r.address,publicKey:r.publicKey,walletJson:e,network:r.network};return t.wallets.push(l),t.activeWalletIds[r.network]=l.id,await L(t),l}async function E(){await gt();const e=await C(),t=await S(),r=O(e,t.selectedNetwork),a=e.wallets.filter(l=>l.network===t.selectedNetwork);return{exists:a.length>0,unlocked:!!(s&&s.walletId===(r==null?void 0:r.id)&&s.network===t.selectedNetwork),activeWalletId:r==null?void 0:r.id,activeWalletLabel:r==null?void 0:r.label,address:s==null?void 0:s.short_address,publicKey:s==null?void 0:s.public_key,wallets:a.map(l=>({id:l.id,label:l.label,address:l.address,publicKey:l.publicKey,network:l.network,active:l.id===(r==null?void 0:r.id)})),selectedNetwork:t.selectedNetwork,networkName:t.selectedNetwork==="testnet"?"Testnet":"Mainnet",networkSymbol:t.selectedNetwork==="testnet"?"CLTC":"CLC",testnetApiUrl:t.testnetApiUrl,mainnetApiUrl:t.mainnetApiUrl,apiUrl:t.apiUrl,autoLockMinutes:t.autoLockMinutes}}async function T(){if(!s)return;const e=await S();s.expiresAt=Date.now()+e.autoLockMinutes*6e4,await chrome.storage.session.set({[x]:s}),await chrome.alarms.clear(V),await chrome.alarms.create(V,{when:s.expiresAt})}function Tt(e,t){const r=new Uint8Array(e);let a="";const l=32768;for(let d=0;d{});if(!d.ok||(f==null?void 0:f.success)!==!0)throw new Error((f==null?void 0:f.error)??`Wallet registration failed with HTTP ${d.status}.`);return f.data}async function Et(e,t){var f;const r=await S();if(!r.apiUrl)return;const a=e.create_handshake_proof(t.public_key,t.private_key),l=await fetch(`${y(r)}/api/v1/addresses/registration?address=${encodeURIComponent(t.short_address)}`,{headers:{"X-Contractless-Address":t.short_address,"X-Contractless-Public-Key":t.public_key,"X-Contractless-Signature":a}}),d=await l.json().catch(()=>{});if(!l.ok||(d==null?void 0:d.success)!==!0)throw new Error((d==null?void 0:d.error)??`Wallet registration lookup failed with HTTP ${l.status}.`);((f=d.data)==null?void 0:f.registered)!==!0&&await G(e,t)}async function gt(){const e=await S();if(s){if(s.expiresAt>Date.now()&&s.network===e.selectedNetwork)return;await D();return}const r=(await chrome.storage.session.get(x))[x];if(!r||r.expiresAt<=Date.now()){await chrome.storage.session.remove(x);return}if(r.network!==e.selectedNetwork){await chrome.storage.session.remove(x),await Q();return}r.sessionId||(r.sessionId=crypto.randomUUID(),await Q(),await chrome.storage.session.set({[x]:r})),s=r}async function D(){s&&(s.private_key="",s=void 0),await chrome.storage.session.remove([x,M]),await chrome.alarms.clear(V)}async function et(){const t=(await chrome.storage.session.get(M))[M];return Array.isArray(t)?t:[]}async function ft(e){await chrome.storage.session.set({[M]:e})}async function Q(){await chrome.storage.session.remove(M)}function Nt(e){const t=crypto.getRandomValues(new Uint8Array(e));return Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}async function It(e){const t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(t),r=>r.toString(16).padStart(2,"0")).join("")}function J(e){return!e.params||typeof e.params!="object"?{}:e.params}function P(e){const t=String(e??"").trim();if(!/^[A-Za-z0-9_-]{5,32}$/.test(t))throw new Error("The application ID must contain 5 to 32 URL-safe characters.");return t}function rt(e,t){if(String(e.origin??"")!==t)throw new Error("The application origin does not match the requesting website.")}function _t(e){const t=Number(e),r=Math.floor(Date.now()/1e3);if(!Number.isInteger(t)||Math.abs(r-t)>300)throw new Error("The application connection timestamp must be within five minutes.");return t}function mt(e){const t=String(e??"").trim().toLowerCase();if(!/^[0-9a-f]{32,128}$/.test(t)||t.length%2!==0)throw new Error("The application nonce must contain 16 to 64 random hexadecimal bytes.");return t}function kt(e){const t=String(e??"").trim();if(!t||new TextEncoder().encode(t).length>75)throw new Error("The application connection message must contain 1 to 75 bytes.");return t}function yt(e){const t=String(e??"").trim();if(!t||new TextEncoder().encode(t).length>75)throw new Error("A signed website message must contain 1 to 75 bytes.");return t}function it(e,t){if(e==="contractless_connect"||e==="contractless_signMessage")return"safe";const r=t.transaction;if(!r||typeof r!="object")return"high";const a=Number(r.txtype);return Number.isInteger(a)&&a>=100&&a<=113?"low":"high"}function vt(e){if(!e||typeof e!="object")throw new Error("A complete transaction object is required.");const t=e,r=Number(t.txtype);if(!Number.isInteger(r))throw new Error("The transaction type is invalid.");if(r===6||r===7)throw new Error("Swaps and loan creation require a staged signing workflow.");return t}function Z(e){if(!e||typeof e!="object")throw new Error("A complete or partially signed transaction object is required.");const t=e,r=t.unsigned_swap??t.unsigned_loan_contract??t;if(!r||typeof r!="object")throw new Error("The unsigned transaction fields are missing.");const a=Number(r.txtype);if(a!==6&&a!==7)throw new Error("Staged signing is only available for swaps and loan creation.");return t}async function ct(e,t){var b;if(!s)throw new Error("Wallet is locked.");const r=t.unsigned_swap??t.unsigned_loan_contract??t;if(!r||typeof r!="object")return;const a=r,l=Number(a.txtype),d=l===2?[["Receiving",String(a.receiver??"")]]:l===6?[["First swap participant",String(a.sender1??"")],["Second swap participant",String(a.sender2??"")]]:l===7?[["Lender",String(a.lender??"")],["Borrower",String(a.borrower??"")]]:[];if(d.length===0)return;e.inspect_transaction_request(JSON.stringify(t));const f=await S(),v=e.create_handshake_proof(s.public_key,s.private_key),m={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":v},A=new Map;for(const[W,K]of d){const N=K.trim().toLowerCase();let I=A.get(N);if(I===void 0){const $=await fetch(`${y(f)}/api/v1/addresses/registration?address=${encodeURIComponent(N)}`,{headers:m}),n=await $.json().catch(()=>{});if(!$.ok||(n==null?void 0:n.success)!==!0)throw new Error((n==null?void 0:n.error)??`Address registration lookup failed with HTTP ${$.status}.`);I=((b=n.data)==null?void 0:b.registered)===!0,A.set(N,I)}if(!I)throw new Error(`${W} wallet is not registered.`)}}async function bt(e,t){if(t.complete!==!0||typeof t.bytes_hex!="string"||typeof t.hash!="string")throw new Error("The transaction could not be completed.");if(!s)throw new Error("Wallet is locked.");const r=await S(),a=e.create_handshake_proof(s.public_key,s.private_key),l=await fetch(`${y(r)}/api/v1/transactions/broadcast`,{method:"POST",headers:{"Content-Type":"application/json","X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":a},body:JSON.stringify({transaction_hex:t.bytes_hex})}),d=await l.json().catch(()=>{});if(!l.ok||(d==null?void 0:d.success)!==!0)throw new Error((d==null?void 0:d.error)??`Transaction broadcast failed with HTTP ${l.status}.`);return await T(),{txid:t.hash,bytes:t.bytes_hex,broadcast:d.data}}async function U(e,t){if(!s)throw new Error("Wallet is locked.");rt(e,t);const r=P(e.appId),a=String(e.accessKey??""),l=(await et()).find(d=>d.origin===t&&d.appId===r&&d.accessKey===a&&d.walletId===(s==null?void 0:s.walletId)&&d.unlockSessionId===(s==null?void 0:s.sessionId));if(!l)throw new Error("The application session is invalid or has expired. Reconnect the wallet.");return l}async function Y(){const t=(await chrome.storage.session.get(q))[q],r=Array.isArray(t)?t.filter(m=>typeof m=="string"&&m.length>0):typeof t=="string"&&t.length>0?[t]:[];if(r.length===0)return[];const a=r.map(m=>`approval:${m}`),l=await chrome.storage.session.get(a),d=Date.now(),f=[],v=[];for(const m of r){const A=`approval:${m}`,b=l[A];!b||d-b.createdAt>=pt?v.push(A):f.push(m)}return(v.length>0||f.length!==r.length)&&(await chrome.storage.session.set({[q]:f}),v.length>0&&await chrome.storage.session.remove(v)),f}async function tt(e){const t=(await Y()).filter(r=>r!==e);return await chrome.storage.session.set({[q]:t}),t}async function lt(e){const t=await Y(),r=await chrome.storage.session.get(t.map(l=>`approval:${l}`));if(e.method==="contractless_connect"&&t.some(l=>{const d=r[`approval:${l}`];if(!d||d.method!=="contractless_connect")return!1;const f=J(d),v=J(e);return d.origin===e.origin&&f.appId===v.appId}))throw new Error("This application already has a wallet connection request pending.");if(t.length>=At)throw new Error("The wallet approval queue is full. Resolve a pending request first.");await chrome.storage.session.set({[q]:[...t,e.id],[`approval:${e.id}`]:e});try{await chrome.action.openPopup()}catch{}}async function dt(e){const t=`approval-result:${e}`,r=Date.now()+pt;for(;Date.now()setTimeout(l,150))}throw await chrome.storage.session.remove([`approval:${e}`,t]),await tt(e),new Error("Wallet approval request expired.")}function $t(e){const t=e.url??e.origin;if(!t)throw new Error("The requesting website origin is unavailable.");const r=new URL(t).origin;if(r==="null")throw new Error("Requests from opaque origins are not supported.");return r}async function wt(e,t){if(!s)throw new Error("Wallet is locked.");switch(await T(),t.method){case"contractless_connect":{const r=J(t);rt(r,t.origin);const a=String(r.walletSessionId??"");if(a&&a!==s.sessionId)throw new Error("The active wallet changed while the connection was being approved.");const l=P(r.appId),d=_t(r.timestamp),f=mt(r.nonce),v=kt(r.message),m=Nt(32),A=await It(m),b=Math.floor(Date.now()/1e3),W=Math.min(b+900,Math.floor(s.expiresAt/1e3)),K=["Contractless application connection",`Application ID: ${l}`,`Origin: ${t.origin}`,`Requested timestamp: ${d}`,`Message: ${v}`,`Session key hash: ${A}`].join(` +`),N=JSON.parse(e.sign_message_request(JSON.stringify({origin:t.origin,message:K,nonce:f,issued_at:b,expires_at:W}),s.private_key,s.public_key)),I={origin:t.origin,appId:l,accessKey:m,walletId:s.walletId,unlockSessionId:s.sessionId,createdAt:Date.now()},$=await et();return $.push(I),await ft($),{address:s.short_address,publicKey:s.public_key,signature:N.signature,proof:N,accessKey:m,appId:l,origin:t.origin,sessionExpiresAt:s.expiresAt}}case"contractless_signMessage":{const r=J(t);await U(r,t.origin);const a=Math.floor(Date.now()/1e3),l=Number(r.expires_at??a+300),d=P(r.appId),f={origin:t.origin,message:["Contractless application message",`Application ID: ${d}`,`Message: ${yt(r.message)}`].join(` +`),nonce:String(r.nonce??""),issued_at:a,expires_at:l};return JSON.parse(e.sign_message_request(JSON.stringify(f),s.private_key,s.public_key))}case"contractless_sendTransaction":{const r=J(t);await U(r,t.origin);const a=vt(r.transaction),l=JSON.parse(e.sign_transaction_request(JSON.stringify(a),s.private_key,s.public_key,1));return bt(e,l)}case"contractless_signDualTransaction":{const r=J(t);await U(r,t.origin);const a=Z(r.transaction),l=Number(r.signerSlot);if(l!==1&&l!==2)throw new Error("The signer slot must be 1 or 2.");const d=JSON.parse(e.sign_transaction_request(JSON.stringify(a),s.private_key,s.public_key,l));return{complete:!1,txid:d.hash,unsignedBytes:d.unsigned_bytes_hex,canonicalUnsignedJson:JSON.parse(e.inspect_transaction_request(JSON.stringify(a))).canonical_unsigned_json,signedTransaction:d.signed_transaction,signature:l===1?d.signature1:d.signature2,signature1:d.signature1,signature2:d.signature2,signerSlot:l,signerPublicKey:s.public_key}}default:throw new Error("The website requested an unsupported wallet method.")}}async function Ct(e,t){var l,d,f,v,m,A,b,W,K,N,I,$;const r=await S();if(e.type==="switch-network"){const n=e.network==="mainnet"?"mainnet":"testnet";await D();const i={...r,selectedNetwork:n,apiUrl:n==="mainnet"?r.mainnetApiUrl:r.testnetApiUrl};return await chrome.storage.local.set({[B]:i}),E()}const a=await St(r.selectedNetwork);switch(await gt(),e.type){case"status":return E();case"create-wallet":{const n=String(e.password),i=a.generate_browser_wallet(n),o=JSON.parse(a.unlock_browser_wallet(i,n)),u=await R(i);if(await j({walletId:u.id,network:r.selectedNetwork,...o}),r.apiUrl)try{await G(a,o)}catch(c){console.warn("Automatic wallet registration failed during creation.",c)}return E()}case"import-wallet":{const n=a.import_legacy_wallet(String(e.walletJson),String(e.legacyPassword),String(e.password)),i=await R(n),o=JSON.parse(a.unlock_browser_wallet(n,String(e.password)));return await j({walletId:i.id,network:r.selectedNetwork,...o}),E()}case"import-wallet-image":{const n=String(e.password),i=a.import_private_key_image(String(e.imageBase64),String(e.imagePassword),n),o=await R(i),u=JSON.parse(a.unlock_browser_wallet(i,n));return await j({walletId:o.id,network:r.selectedNetwork,...u}),E()}case"import-private-key":{const n=String(e.password),i=a.import_private_key(String(e.privateKey),n),o=await R(i),u=JSON.parse(a.unlock_browser_wallet(i,n));return await j({walletId:o.id,network:r.selectedNetwork,...u}),E()}case"unlock":{const n=await C(),i=O(n,r.selectedNetwork);if(!i)throw new Error("No wallet exists.");const o=JSON.parse(a.unlock_browser_wallet(i.walletJson,String(e.password)));await j({walletId:i.id,network:r.selectedNetwork,...o});try{await Et(a,o)}catch(u){console.warn("Automatic wallet registration failed during unlock.",u)}return E()}case"switch-wallet":{const n=await C(),i=String(e.walletId),o=n.wallets.find(u=>u.id===i);if(!o||o.network!==r.selectedNetwork)throw new Error("The selected wallet does not exist.");return await D(),n.activeWalletIds[r.selectedNetwork]=i,await L(n),E()}case"rename-wallet":{const n=await C(),i=n.wallets.find(u=>u.id===String(e.walletId));if(!i)throw new Error("The selected wallet does not exist.");const o=String(e.label).trim();if(o.length<1||o.length>40)throw new Error("Wallet labels must contain between 1 and 40 characters.");return i.label=o,await L(n),E()}case"lock":return await D(),E();case"save-settings":{const n=String(e.testnetApiUrl??r.testnetApiUrl).replace(/\/+$/,""),i=String(e.mainnetApiUrl??r.mainnetApiUrl).replace(/\/+$/,""),o={selectedNetwork:r.selectedNetwork,testnetApiUrl:n,mainnetApiUrl:i,apiUrl:r.selectedNetwork==="mainnet"?i:n,autoLockMinutes:Math.max(1,Number(e.autoLockMinutes))};return await chrome.storage.local.set({[B]:o}),await T(),E()}case"register-wallet":{if(!s)throw new Error("Wallet is locked.");const n=await G(a,s);return await T(),n}case"wallet-balances":{if(!s)throw new Error("Wallet is locked.");const n=await S(),i=a.create_handshake_proof(s.public_key,s.private_key),o={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i},u=encodeURIComponent(s.short_address),[c,h,p]=await Promise.all([fetch(`${y(n)}/api/v1/balances?address=${u}`,{headers:o}),fetch(`${y(n)}/api/v1/tokens`,{headers:o}),fetch(`${y(n)}/api/v1/nfts`,{headers:o})]),[w,_,g]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{}),p.json().catch(()=>{})]);if(!c.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Balance lookup failed with HTTP ${c.status}.`);return await T(),{address:s.short_address,balances:((l=w.data)==null?void 0:l.balances)??[],tokens:h.ok&&(_==null?void 0:_.success)===!0?((d=_.data)==null?void 0:d.tokens)??[]:[],nfts:p.ok&&(g==null?void 0:g.success)===!0?((f=g.data)==null?void 0:f.nfts)??[]:[],tokenCatalogError:h.ok&&(_==null?void 0:_.success)===!0?void 0:(_==null?void 0:_.error)??`Token lookup failed with HTTP ${h.status}.`,nftCatalogError:p.ok&&(g==null?void 0:g.success)===!0?void 0:(g==null?void 0:g.error)??`NFT lookup failed with HTTP ${p.status}.`}}case"wallet-nft-details":{if(!s)throw new Error("Wallet is locked.");const n=String(e.name??"").trim(),i=Number(e.series??0);if(!n||n.length>15||!Number.isInteger(i)||i<0||i>4294967295)throw new Error("A valid NFT or RWA identifier is required.");const o=await S(),u=a.create_handshake_proof(s.public_key,s.private_key),c={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":u},h=`name=${encodeURIComponent(n)}&series=${i}`,[p,w]=await Promise.all([fetch(`${y(o)}/api/v1/nfts/details?${h}`,{headers:c}),fetch(`${y(o)}/api/v1/nfts/media?${h}`,{headers:c})]),[_,g]=await Promise.all([p.json().catch(()=>{}),w.json().catch(()=>{})]);if(!p.ok||(_==null?void 0:_.success)!==!0)throw new Error((_==null?void 0:_.error)??`NFT details lookup failed with HTTP ${p.status}.`);let k="",st=!1,at={},X;if(w.ok&&(g==null?void 0:g.success)===!0){at=(v=g.data)!=null&&v.metadata&&typeof g.data.metadata=="object"?g.data.metadata:{},st=((m=g.data)==null?void 0:m.image_available)===!0;const nt=String(((A=g.data)==null?void 0:A.image_url)??"");if(nt)try{const H=await fetch(new URL(nt,`${y(o)}/`).toString(),{headers:c});H.ok?k=Tt(await H.arrayBuffer(),H.headers.get("Content-Type")??"image/png"):X=`NFT image returned HTTP ${H.status}.`}catch{X="NFT image could not be retrieved."}}else X=(g==null?void 0:g.error)??`NFT media lookup failed with HTTP ${w.status}.`;return await T(),{..._.data,metadata:at,image_data_url:k,image_available:st,media_error:X}}case"wallet-receive-address":{if(!s)throw new Error("Wallet is locked.");const n=await S(),i=a.create_handshake_proof(s.public_key,s.private_key),o=encodeURIComponent(s.short_address),u=await fetch(`${y(n)}/api/v1/addresses/vanity?address=${o}`,{headers:{"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i}}),c=await u.json().catch(()=>{});if(!u.ok||(c==null?void 0:c.success)!==!0)throw new Error((c==null?void 0:c.error)??`Vanity address lookup failed with HTTP ${u.status}.`);await T();const h=typeof((b=c.data)==null?void 0:b.vanity_address)=="string"&&c.data.vanity_address.trim()!==""?c.data.vanity_address:void 0;return{shortAddress:s.short_address,receiveAddress:h??s.short_address,vanity:!!h}}case"wallet-prepare-transfer":{if(!s)throw new Error("Wallet is locked.");const n=await S(),i=a.create_handshake_proof(s.public_key,s.private_key),o={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i},u=String(e.receiver??"").trim().toLowerCase(),c=s.short_address.endsWith(".cltc")?"cltc":"clc";let h=u;if(new RegExp(`^[0-9a-f]{40}\\.${c}$`).test(u)){const g=await fetch(`${y(n)}/api/v1/addresses/registration?address=${encodeURIComponent(h)}`,{headers:o}),k=await g.json().catch(()=>{});if(!g.ok||(k==null?void 0:k.success)!==!0)throw new Error((k==null?void 0:k.error)??`Address lookup failed with HTTP ${g.status}.`);if(((K=k.data)==null?void 0:K.registered)!==!0)throw new Error("The receiving wallet is not registered.")}else{if(!new RegExp(`^[a-z]{1,20}\\.${c}$`).test(u))throw new Error(`Enter a valid Contractless ${c.toUpperCase()} address.`);const g=await fetch(`${y(n)}/api/v1/addresses/vanity/resolve?address=${encodeURIComponent(u)}`,{headers:o}),k=await g.json().catch(()=>{});if(!g.ok||(k==null?void 0:k.success)!==!0)throw new Error((k==null?void 0:k.error)??`Vanity address lookup failed with HTTP ${g.status}.`);if(h=String(((W=k.data)==null?void 0:W.owner_address)??""),!h)throw new Error("That vanity address is not registered.")}const p=Number(e.nftSeries??0);if(!Number.isInteger(p)||p<0||p>4294967295)throw new Error("The NFT/RWA series number is invalid.");const w={txtype:2,time:Math.floor(Date.now()/1e3),value:String(e.valueAtomic??""),coin:String(e.asset??"").trim().padEnd(15," "),nft_series:p,sender:s.short_address,receiver:h,txfee:String(e.feeAtomic??"")},_=JSON.parse(a.inspect_transaction_request(JSON.stringify(w)));return await T(),{transaction:w,review:_.review,hash:_.hash,receiverInput:u}}case"wallet-broadcast-transfer":{if(!s)throw new Error("Wallet is locked.");const n=e.transaction;if(!n||typeof n!="object")throw new Error("The reviewed transfer is unavailable.");const i=JSON.parse(a.sign_transaction_request(JSON.stringify(n),s.private_key,s.public_key,1));return bt(a,i)}case"wallet-activity":{if(!s)throw new Error("Wallet is locked.");const n=await S(),i=a.create_handshake_proof(s.public_key,s.private_key),o=encodeURIComponent(s.short_address),u={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i},[c,h]=await Promise.all([fetch(`${y(n)}/api/v1/addresses/latest?address=${o}&limit=25`,{headers:u}),fetch(`${y(n)}/api/v1/height`,{headers:u})]),[p,w]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{})]);if(!c.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Activity lookup failed with HTTP ${c.status}.`);if(!h.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Block height lookup failed with HTTP ${h.status}.`);return await T(),{address:s.short_address,current_height:Number(((N=w.data)==null?void 0:N.height)??0),transactions:Array.isArray((I=p.data)==null?void 0:I.transactions)?p.data.transactions:[]}}case"wallet-transaction":{if(!s)throw new Error("Wallet is locked.");const n=String(e.txid);if(!/^[0-9a-f]{64}$/i.test(n))throw new Error("A valid transaction ID is required.");const i=await S(),o=a.create_handshake_proof(s.public_key,s.private_key),u={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o},[c,h]=await Promise.all([fetch(`${y(i)}/api/v1/transactions/lookup?txid=${encodeURIComponent(n)}`,{headers:u}),fetch(`${y(i)}/api/v1/height`,{headers:u})]),[p,w]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{})]);if(!c.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Transaction lookup failed with HTTP ${c.status}.`);if(!h.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Block height lookup failed with HTTP ${h.status}.`);return await T(),{...p.data,current_height:Number((($=w.data)==null?void 0:$.height)??0)}}case"export-wallet":{const n=O(await C(),r.selectedNetwork);if(!n)throw new Error("No wallet exists.");return n.walletJson}case"export-legacy-wallet":{const n=O(await C(),r.selectedNetwork);if(!n)throw new Error("No wallet exists.");return a.export_legacy_wallet(n.walletJson,String(e.password),String(e.legacyPassword))}case"export-private-key-image":{const n=O(await C(),r.selectedNetwork);if(!n)throw new Error("No wallet exists.");const i=JSON.parse(a.export_legacy_wallet(n.walletJson,String(e.password),String(e.imagePassword)));if(typeof i.private_key!="string")throw new Error("The wallet image could not be created.");return i.private_key}case"reveal-private-key":{const n=O(await C(),r.selectedNetwork);if(!n)throw new Error("No wallet exists.");const i=JSON.parse(a.unlock_browser_wallet(n.walletJson,String(e.password)));if(typeof i.private_key!="string")throw new Error("The private key could not be decrypted.");return await T(),{label:n.label,address:n.address,privateKey:i.private_key}}case"provider-request":{const n=$t(t),i=String(e.method),o=e.params&&typeof e.params=="object"?e.params:{};if(i==="contractless_detect")return{installed:!0,providerVersion:"1.0.0"};if(i==="contractless_connect"){rt(o,n);const c=P(o.appId),h=_t(o.timestamp);mt(o.nonce);const p=kt(o.message),w={id:crypto.randomUUID(),method:i,params:{...o,walletSessionId:s==null?void 0:s.sessionId},origin:n,createdAt:Date.now(),risk:it(i,o),display:{request:"Connect application",application_id:c,website:n,wallet_address:(s==null?void 0:s.short_address)??"Unlock wallet to continue",message:p,requested_timestamp:h,access:"Address access and future wallet requests until this wallet locks"}};if(await lt(w),!await dt(w.id))throw new Error("The wallet connection request was rejected.");return wt(a,w)}if(i==="contractless_accounts")try{return await U(o,n),s?[s.short_address]:[]}catch{return[]}if(i==="contractless_balances"){if(await U(o,n),!s)throw new Error("Wallet is locked.");const c=await S(),h=a.create_handshake_proof(s.public_key,s.private_key),p=await fetch(`${y(c)}/api/v1/balances?address=${encodeURIComponent(s.short_address)}`,{headers:{"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":h}}),w=await p.json().catch(()=>{});if(!p.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Balance lookup failed with HTTP ${p.status}.`);return await T(),w.data}if(i==="contractless_disconnect"){const c=await U(o,n),h=(await et()).filter(p=>!(p.origin===c.origin&&p.appId===c.appId&&p.accessKey===c.accessKey));return await ft(h),{disconnected:!0}}if(i==="contractless_completeDualTransaction"){await U(o,n);const c=Z(o.transaction);return JSON.parse(a.complete_dual_transaction_request(JSON.stringify(c),String(o.signature1??""),String(o.publicKey1??""),String(o.signature2??""),String(o.publicKey2??"")))}if(!["contractless_signMessage","contractless_sendTransaction","contractless_signDualTransaction"].includes(i))throw new Error("The website requested an unsupported wallet method.");if(await U(o,n),i==="contractless_sendTransaction"){const c=vt(o.transaction);await ct(a,c)}else if(i==="contractless_signDualTransaction"){const c=Z(o.transaction);await ct(a,c)}const u={id:crypto.randomUUID(),method:i,params:o,origin:n,createdAt:Date.now(),risk:it(i,o),display:i==="contractless_signMessage"?{request:"Sign a text message",application_id:P(o.appId),website:n,message:yt(o.message),warning:"This is a text signature. It cannot move wallet assets."}:i==="contractless_signDualTransaction"?(()=>{const c=JSON.parse(a.inspect_transaction_request(JSON.stringify(o.transaction)));return{application_id:P(o.appId),website:n,transaction_type:c.transaction_name,signer_slot:o.signerSlot,transaction_fields:c.review,action:"Sign and return this signature to the application without broadcasting."}})():(()=>{const c=JSON.parse(a.inspect_transaction_request(JSON.stringify(o.transaction)));return{application_id:P(o.appId),website:n,transaction_type:c.transaction_name,transaction_fields:c.review,action:"Sign and broadcast this transaction."}})()};if(await lt(u),!await dt(u.id))throw new Error("The wallet request was rejected.");return wt(a,u)}case"pending-provider-approval":{const n=await Y(),i=n[0]??"";if(!i)return null;const o=`approval:${i}`,c=(await chrome.storage.session.get(o))[o];return c?s?(c.method==="contractless_connect"&&(c.params={...c.params,walletSessionId:s.sessionId},c.display={...c.display??{},wallet_address:s.short_address},await chrome.storage.session.set({[o]:c})),{locked:!1,request:c,position:1,total:n.length}):{locked:!0}:(await tt(i),null)}case"resolve-provider-approval":{if(!s)throw new Error("Unlock the wallet before approving this request.");const n=String(e.id??""),i=await Y();if(!n||i[0]!==n)throw new Error("The wallet approval request has expired.");const o=`approval:${n}`,c=(await chrome.storage.session.get(o))[o];if(!c)throw new Error("The wallet approval request has expired.");return c.method==="contractless_connect"&&(c.params={...c.params,walletSessionId:s.sessionId},await chrome.storage.session.set({[o]:c})),await chrome.storage.session.set({[`approval-result:${n}`]:{approved:e.approved===!0}}),await chrome.storage.session.remove(o),{resolved:!0,remaining:(await tt(n)).length}}default:throw new Error("Unsupported wallet request.")}}chrome.runtime.onMessage.addListener((e,t,r)=>(Ct(e,t).then(a=>r({ok:!0,result:a})).catch(a=>r({ok:!1,error:a instanceof Error?a.message:String(a)})),!0));chrome.alarms.onAlarm.addListener(e=>{e.name===V&&D()}); diff --git a/extension/dist/chrome/chunks/core-D2IK1U91.js b/extension/dist/chrome/chunks/core-D2IK1U91.js new file mode 100644 index 0000000..ace83d1 --- /dev/null +++ b/extension/dist/chrome/chunks/core-D2IK1U91.js @@ -0,0 +1 @@ +function _e(n){let e,t;try{const i=F(n,o.__wbindgen_malloc),l=w,s=o.bytes_to_short_address(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function re(n,e,t,_,r){let i,l;try{const f=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),A=w,W=u(_,o.__wbindgen_malloc,o.__wbindgen_realloc),$=w,z=u(r,o.__wbindgen_malloc,o.__wbindgen_realloc),G=w,T=o.complete_dual_transaction_request(f,d,m,p,b,A,W,$,z,G);var s=T[0],a=T[1];if(T[3])throw s=0,a=0,x(T[2]);return i=s,l=a,h(s,a)}finally{o.__wbindgen_free(i,l,1)}}function oe(n,e){let t,_;try{const l=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),s=w,a=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=o.create_handshake_proof(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,x(d[2]);return t=r,_=i,h(r,i)}finally{o.__wbindgen_free(t,_,1)}}function ce(n,e){let t,_;try{const l=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),s=w,a=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=o.create_wallet_registration(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,x(d[2]);return t=r,_=i,h(r,i)}finally{o.__wbindgen_free(t,_,1)}}function ie(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.create_wallet_registration_from_keys(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function se(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.decode_transaction(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function le(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.decode_transfer(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function ae(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.export_legacy_wallet(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function de(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.generate_browser_wallet(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function fe(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.import_legacy_wallet(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function be(n,e){let t,_;try{const l=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),s=w,a=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=o.import_private_key(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,x(d[2]);return t=r,_=i,h(r,i)}finally{o.__wbindgen_free(t,_,1)}}function we(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.import_private_key_image(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function ge(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.inspect_transaction_request(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function ue(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.public_key_to_short_address(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function ye(n){const e=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),t=w,_=o.short_address_to_bytes(e,t);if(_[3])throw x(_[2]);var r=Y(_[0],_[1]).slice();return o.__wbindgen_free(_[0],_[1]*1,1),r}function me(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.sign_message_request(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function pe(n,e,t,_){let r,i;try{const a=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),m=w,p=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),b=w,A=o.sign_transaction_request(a,f,d,m,p,b,_);var l=A[0],s=A[1];if(A[3])throw l=0,s=0,x(A[2]);return r=l,i=s,h(l,s)}finally{o.__wbindgen_free(r,i,1)}}function he(n){let e,t;try{const _=F(n,o.__wbindgen_malloc),r=w,i=o.skein_128_hex(_,r);return e=i[0],t=i[1],h(i[0],i[1])}finally{o.__wbindgen_free(e,t,1)}}function ve(n){let e,t;try{const _=F(n,o.__wbindgen_malloc),r=w,i=o.skein_256_hex(_,r);return e=i[0],t=i[1],h(i[0],i[1])}finally{o.__wbindgen_free(e,t,1)}}function xe(n){let e,t;try{const _=F(n,o.__wbindgen_malloc),r=w,i=o.skein_512_hex(_,r);return e=i[0],t=i[1],h(i[0],i[1])}finally{o.__wbindgen_free(e,t,1)}}function ke(){let n,e;try{const r=o.transaction_type_registry();var t=r[0],_=r[1];if(r[3])throw t=0,_=0,x(r[2]);return n=t,e=_,h(t,_)}finally{o.__wbindgen_free(n,e,1)}}function Ae(n,e){let t,_;try{const l=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),s=w,a=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=o.unlock_browser_wallet(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,x(d[2]);return t=r,_=i,h(r,i)}finally{o.__wbindgen_free(t,_,1)}}function $e(n,e,t){const _=F(n,o.__wbindgen_malloc),r=w,i=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=o.verify_bytes_hex(_,r,i,l,s,a);if(f[2])throw x(f[1]);return f[0]!==0}function Te(n,e,t){const _=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),r=w,i=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=o.verify_hash_hex(_,r,i,l,s,a);if(f[2])throw x(f[1]);return f[0]!==0}function We(n,e,t,_){let r,i;try{const a=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),m=w,p=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),b=w,A=u(_,o.__wbindgen_malloc,o.__wbindgen_realloc),W=w,$=o.verify_message_proof(a,f,d,m,p,b,A,W);var l=$[0],s=$[1];if($[3])throw l=0,s=0,x($[2]);return r=l,i=s,h(l,s)}finally{o.__wbindgen_free(r,i,1)}}function J(){return{__proto__:null,"./contractless_browser_core_bg.js":{__proto__:null,__wbg___wbindgen_is_function_1ff95bcc5517c252:function(e){return typeof e=="function"},__wbg___wbindgen_is_object_a27215656b807791:function(e){const t=e;return typeof t=="object"&&t!==null},__wbg___wbindgen_is_string_ea5e6cc2e4141dfe:function(e){return typeof e=="string"},__wbg___wbindgen_is_undefined_c05833b95a3cf397:function(e){return e===void 0},__wbg___wbindgen_throw_344f42d3211c4765:function(e,t){throw new Error(h(e,t))},__wbg_call_a6e5c5dce5018821:function(){return U(function(e,t,_){return e.call(t,_)},arguments)},__wbg_crypto_38df2bab126b63dc:function(e){return e.crypto},__wbg_getRandomValues_c44a50d8cfdaebeb:function(){return U(function(e,t){e.getRandomValues(t)},arguments)},__wbg_length_1f0964f4a5e2c6d8:function(e){return e.length},__wbg_msCrypto_bd5a034af96bcba6:function(e){return e.msCrypto},__wbg_new_with_length_e6785c33c8e4cce8:function(e){return new Uint8Array(e>>>0)},__wbg_node_84ea875411254db1:function(e){return e.node},__wbg_process_44c7a14e11e9f69e:function(e){return e.process},__wbg_prototypesetcall_4770620bbe4688a0:function(e,t,_){Uint8Array.prototype.set.call(Y(e,t),_)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return U(function(e,t){e.randomFillSync(t)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return U(function(){return module.require},arguments)},__wbg_static_accessor_GLOBAL_4ef717fb391d88b7:function(){const e=typeof global>"u"?null:global;return D(e)?0:q(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){const e=typeof globalThis>"u"?null:globalThis;return D(e)?0:q(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){const e=typeof self>"u"?null:self;return D(e)?0:q(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){const e=typeof window>"u"?null:window;return D(e)?0:q(e)},__wbg_subarray_3ed232c8a6baee09:function(e,t,_){return e.subarray(t>>>0,_>>>0)},__wbg_versions_276b2795b1c6a219:function(e){return e.versions},__wbindgen_cast_0000000000000001:function(e,t){return Y(e,t)},__wbindgen_cast_0000000000000002:function(e,t){return h(e,t)},__wbindgen_init_externref_table:function(){const e=o.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}function q(n){const e=o.__externref_table_alloc();return o.__wbindgen_externrefs.set(e,n),e}function Y(n,e){return n=n>>>0,S().subarray(n/1,n/1+e)}function h(n,e){return Oe(n>>>0,e)}let R=null;function S(){return(R===null||R.byteLength===0)&&(R=new Uint8Array(o.memory.buffer)),R}function U(n,e){try{return n.apply(this,e)}catch(t){const _=q(t);o.__wbindgen_exn_store(_)}}function D(n){return n==null}function F(n,e){const t=e(n.length*1,1)>>>0;return S().set(n,t/1),w=n.length,t}function u(n,e,t){if(t===void 0){const s=j.encode(n),a=e(s.length,1)>>>0;return S().subarray(a,a+s.length).set(s),w=s.length,a}let _=n.length,r=e(_,1)>>>0;const i=S();let l=0;for(;l<_;l++){const s=n.charCodeAt(l);if(s>127)break;i[r+l]=s}if(l!==_){l!==0&&(n=n.slice(l)),r=t(r,_,_=l+n.length*3,1)>>>0;const s=S().subarray(r+l,r+_),a=j.encodeInto(n,s);l+=a.written,r=t(r,_,l,1)>>>0}return w=l,r}function x(n){const e=o.__wbindgen_externrefs.get(n);return o.__externref_table_dealloc(n),e}let N=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});N.decode();const Se=2146435072;let H=0;function Oe(n,e){return H+=e,H>=Se&&(N=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),N.decode(),H=e),N.decode(S().subarray(n,n+e))}const j=new TextEncoder;"encodeInto"in j||(j.encodeInto=function(n,e){const t=j.encode(n);return e.set(t),{read:n.length,written:t.length}});let w=0,o;function K(n,e){return o=n.exports,R=null,o.__wbindgen_start(),o}async function qe(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(r){if(n.ok&&t(n.type)&&n.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}const _=await n.arrayBuffer();return await WebAssembly.instantiate(_,e)}else{const _=await WebAssembly.instantiate(n,e);return _ instanceof WebAssembly.Instance?{instance:_,module:n}:_}function t(_){switch(_){case"basic":case"cors":case"default":return!0}return!1}}function Re(n){if(o!==void 0)return o;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const e=J();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));const t=new WebAssembly.Instance(n,e);return K(t)}async function Q(n){if(o!==void 0)return o;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),n===void 0&&(n=new URL("/assets/contractless_browser_core_bg-Dl61GrlP.wasm",import.meta.url));const e=J();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));const{instance:t,module:_}=await qe(await n,e);return K(t)}const Ee=Object.freeze(Object.defineProperty({__proto__:null,bytes_to_short_address:_e,complete_dual_transaction_request:re,create_handshake_proof:oe,create_wallet_registration:ce,create_wallet_registration_from_keys:ie,decode_transaction:se,decode_transfer:le,default:Q,export_legacy_wallet:ae,generate_browser_wallet:de,import_legacy_wallet:fe,import_private_key:be,import_private_key_image:we,initSync:Re,inspect_transaction_request:ge,public_key_to_short_address:ue,short_address_to_bytes:ye,sign_message_request:me,sign_transaction_request:pe,skein_128_hex:he,skein_256_hex:ve,skein_512_hex:xe,transaction_type_registry:ke,unlock_browser_wallet:Ae,verify_bytes_hex:$e,verify_hash_hex:Te,verify_message_proof:We},Symbol.toStringTag,{value:"Module"}));function Me(n){let e,t;try{const i=I(n,c.__wbindgen_malloc),l=g,s=c.bytes_to_short_address(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function je(n,e,t,_,r){let i,l;try{const f=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),A=g,W=y(_,c.__wbindgen_malloc,c.__wbindgen_realloc),$=g,z=y(r,c.__wbindgen_malloc,c.__wbindgen_realloc),G=g,T=c.complete_dual_transaction_request(f,d,m,p,b,A,W,$,z,G);var s=T[0],a=T[1];if(T[3])throw s=0,a=0,k(T[2]);return i=s,l=a,v(s,a)}finally{c.__wbindgen_free(i,l,1)}}function Le(n,e){let t,_;try{const l=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),s=g,a=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=c.create_handshake_proof(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,k(d[2]);return t=r,_=i,v(r,i)}finally{c.__wbindgen_free(t,_,1)}}function Fe(n,e){let t,_;try{const l=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),s=g,a=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=c.create_wallet_registration(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,k(d[2]);return t=r,_=i,v(r,i)}finally{c.__wbindgen_free(t,_,1)}}function Ie(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.create_wallet_registration_from_keys(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function Ue(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.decode_transaction(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function De(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.decode_transfer(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function Be(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.export_legacy_wallet(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function Ce(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.generate_browser_wallet(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function Pe(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.import_legacy_wallet(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function Ne(n,e){let t,_;try{const l=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),s=g,a=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=c.import_private_key(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,k(d[2]);return t=r,_=i,v(r,i)}finally{c.__wbindgen_free(t,_,1)}}function Ve(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.import_private_key_image(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function ze(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.inspect_transaction_request(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function Ge(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.public_key_to_short_address(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function He(n){const e=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),t=g,_=c.short_address_to_bytes(e,t);if(_[3])throw k(_[2]);var r=Z(_[0],_[1]).slice();return c.__wbindgen_free(_[0],_[1]*1,1),r}function Xe(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.sign_message_request(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function Ye(n,e,t,_){let r,i;try{const a=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),m=g,p=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),b=g,A=c.sign_transaction_request(a,f,d,m,p,b,_);var l=A[0],s=A[1];if(A[3])throw l=0,s=0,k(A[2]);return r=l,i=s,v(l,s)}finally{c.__wbindgen_free(r,i,1)}}function Ze(n){let e,t;try{const _=I(n,c.__wbindgen_malloc),r=g,i=c.skein_128_hex(_,r);return e=i[0],t=i[1],v(i[0],i[1])}finally{c.__wbindgen_free(e,t,1)}}function Je(n){let e,t;try{const _=I(n,c.__wbindgen_malloc),r=g,i=c.skein_256_hex(_,r);return e=i[0],t=i[1],v(i[0],i[1])}finally{c.__wbindgen_free(e,t,1)}}function Ke(n){let e,t;try{const _=I(n,c.__wbindgen_malloc),r=g,i=c.skein_512_hex(_,r);return e=i[0],t=i[1],v(i[0],i[1])}finally{c.__wbindgen_free(e,t,1)}}function Qe(){let n,e;try{const r=c.transaction_type_registry();var t=r[0],_=r[1];if(r[3])throw t=0,_=0,k(r[2]);return n=t,e=_,v(t,_)}finally{c.__wbindgen_free(n,e,1)}}function en(n,e){let t,_;try{const l=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),s=g,a=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=c.unlock_browser_wallet(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,k(d[2]);return t=r,_=i,v(r,i)}finally{c.__wbindgen_free(t,_,1)}}function nn(n,e,t){const _=I(n,c.__wbindgen_malloc),r=g,i=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=c.verify_bytes_hex(_,r,i,l,s,a);if(f[2])throw k(f[1]);return f[0]!==0}function tn(n,e,t){const _=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),r=g,i=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=c.verify_hash_hex(_,r,i,l,s,a);if(f[2])throw k(f[1]);return f[0]!==0}function _n(n,e,t,_){let r,i;try{const a=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),m=g,p=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),b=g,A=y(_,c.__wbindgen_malloc,c.__wbindgen_realloc),W=g,$=c.verify_message_proof(a,f,d,m,p,b,A,W);var l=$[0],s=$[1];if($[3])throw l=0,s=0,k($[2]);return r=l,i=s,v(l,s)}finally{c.__wbindgen_free(r,i,1)}}function ee(){return{__proto__:null,"./contractless_browser_core_bg.js":{__proto__:null,__wbg___wbindgen_is_function_1ff95bcc5517c252:function(e){return typeof e=="function"},__wbg___wbindgen_is_object_a27215656b807791:function(e){const t=e;return typeof t=="object"&&t!==null},__wbg___wbindgen_is_string_ea5e6cc2e4141dfe:function(e){return typeof e=="string"},__wbg___wbindgen_is_undefined_c05833b95a3cf397:function(e){return e===void 0},__wbg___wbindgen_throw_344f42d3211c4765:function(e,t){throw new Error(v(e,t))},__wbg_call_a6e5c5dce5018821:function(){return B(function(e,t,_){return e.call(t,_)},arguments)},__wbg_crypto_38df2bab126b63dc:function(e){return e.crypto},__wbg_getRandomValues_c44a50d8cfdaebeb:function(){return B(function(e,t){e.getRandomValues(t)},arguments)},__wbg_length_1f0964f4a5e2c6d8:function(e){return e.length},__wbg_msCrypto_bd5a034af96bcba6:function(e){return e.msCrypto},__wbg_new_with_length_e6785c33c8e4cce8:function(e){return new Uint8Array(e>>>0)},__wbg_node_84ea875411254db1:function(e){return e.node},__wbg_process_44c7a14e11e9f69e:function(e){return e.process},__wbg_prototypesetcall_4770620bbe4688a0:function(e,t,_){Uint8Array.prototype.set.call(Z(e,t),_)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return B(function(e,t){e.randomFillSync(t)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return B(function(){return module.require},arguments)},__wbg_static_accessor_GLOBAL_4ef717fb391d88b7:function(){const e=typeof global>"u"?null:global;return C(e)?0:E(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){const e=typeof globalThis>"u"?null:globalThis;return C(e)?0:E(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){const e=typeof self>"u"?null:self;return C(e)?0:E(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){const e=typeof window>"u"?null:window;return C(e)?0:E(e)},__wbg_subarray_3ed232c8a6baee09:function(e,t,_){return e.subarray(t>>>0,_>>>0)},__wbg_versions_276b2795b1c6a219:function(e){return e.versions},__wbindgen_cast_0000000000000001:function(e,t){return Z(e,t)},__wbindgen_cast_0000000000000002:function(e,t){return v(e,t)},__wbindgen_init_externref_table:function(){const e=c.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}function E(n){const e=c.__externref_table_alloc();return c.__wbindgen_externrefs.set(e,n),e}function Z(n,e){return n=n>>>0,O().subarray(n/1,n/1+e)}function v(n,e){return on(n>>>0,e)}let M=null;function O(){return(M===null||M.byteLength===0)&&(M=new Uint8Array(c.memory.buffer)),M}function B(n,e){try{return n.apply(this,e)}catch(t){const _=E(t);c.__wbindgen_exn_store(_)}}function C(n){return n==null}function I(n,e){const t=e(n.length*1,1)>>>0;return O().set(n,t/1),g=n.length,t}function y(n,e,t){if(t===void 0){const s=L.encode(n),a=e(s.length,1)>>>0;return O().subarray(a,a+s.length).set(s),g=s.length,a}let _=n.length,r=e(_,1)>>>0;const i=O();let l=0;for(;l<_;l++){const s=n.charCodeAt(l);if(s>127)break;i[r+l]=s}if(l!==_){l!==0&&(n=n.slice(l)),r=t(r,_,_=l+n.length*3,1)>>>0;const s=O().subarray(r+l,r+_),a=L.encodeInto(n,s);l+=a.written,r=t(r,_,l,1)>>>0}return g=l,r}function k(n){const e=c.__wbindgen_externrefs.get(n);return c.__externref_table_dealloc(n),e}let V=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});V.decode();const rn=2146435072;let X=0;function on(n,e){return X+=e,X>=rn&&(V=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),V.decode(),X=e),V.decode(O().subarray(n,n+e))}const L=new TextEncoder;"encodeInto"in L||(L.encodeInto=function(n,e){const t=L.encode(n);return e.set(t),{read:n.length,written:t.length}});let g=0,c;function ne(n,e){return c=n.exports,M=null,c.__wbindgen_start(),c}async function cn(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(r){if(n.ok&&t(n.type)&&n.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}const _=await n.arrayBuffer();return await WebAssembly.instantiate(_,e)}else{const _=await WebAssembly.instantiate(n,e);return _ instanceof WebAssembly.Instance?{instance:_,module:n}:_}function t(_){switch(_){case"basic":case"cors":case"default":return!0}return!1}}function sn(n){if(c!==void 0)return c;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const e=ee();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));const t=new WebAssembly.Instance(n,e);return ne(t)}async function te(n){if(c!==void 0)return c;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),n===void 0&&(n=new URL("/assets/contractless_browser_core_bg-CM1Z7v2F.wasm",import.meta.url));const e=ee();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));const{instance:t,module:_}=await cn(await n,e);return ne(t)}const ln=Object.freeze(Object.defineProperty({__proto__:null,bytes_to_short_address:Me,complete_dual_transaction_request:je,create_handshake_proof:Le,create_wallet_registration:Fe,create_wallet_registration_from_keys:Ie,decode_transaction:Ue,decode_transfer:De,default:te,export_legacy_wallet:Be,generate_browser_wallet:Ce,import_legacy_wallet:Pe,import_private_key:Ne,import_private_key_image:Ve,initSync:sn,inspect_transaction_request:ze,public_key_to_short_address:Ge,short_address_to_bytes:He,sign_message_request:Xe,sign_transaction_request:Ye,skein_128_hex:Ze,skein_256_hex:Je,skein_512_hex:Ke,transaction_type_registry:Qe,unlock_browser_wallet:en,verify_bytes_hex:nn,verify_hash_hex:tn,verify_message_proof:_n},Symbol.toStringTag,{value:"Module"})),P={};async function an(n="testnet"){const e=n==="mainnet"?ln:Ee;return P[n]??(P[n]=n==="mainnet"?te():Q()),await P[n],e}export{an as c}; diff --git a/extension/dist/chrome/chunks/modulepreload-polyfill-B5Qt9EMX.js b/extension/dist/chrome/chunks/modulepreload-polyfill-B5Qt9EMX.js new file mode 100644 index 0000000..3e0a78a --- /dev/null +++ b/extension/dist/chrome/chunks/modulepreload-polyfill-B5Qt9EMX.js @@ -0,0 +1 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function s(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=s(e);fetch(e.href,r)}})(); diff --git a/extension/dist/chrome/content.js b/extension/dist/chrome/content.js new file mode 100644 index 0000000..0ce4e56 --- /dev/null +++ b/extension/dist/chrome/content.js @@ -0,0 +1 @@ +const o=document.createElement("script");o.src=chrome.runtime.getURL("provider.js");o.onload=()=>o.remove();(document.head||document.documentElement).appendChild(o);window.addEventListener("message",e=>{var t;e.source!==window||((t=e.data)==null?void 0:t.source)!=="contractless-page"||chrome.runtime.sendMessage({type:"provider-request",method:e.data.method,params:e.data.params},a=>{window.postMessage({source:"contractless-wallet",id:e.data.id,response:a},window.location.origin)})}); diff --git a/extension/dist/chrome/contractless-logo-128.png b/extension/dist/chrome/contractless-logo-128.png new file mode 100644 index 0000000000000000000000000000000000000000..86681b09fe7274de45113b33cf43455c76d808a1 GIT binary patch literal 6168 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 literal 0 HcmV?d00001 diff --git a/extension/dist/chrome/contractless-logo-48.png b/extension/dist/chrome/contractless-logo-48.png new file mode 100644 index 0000000000000000000000000000000000000000..3697789f60ef783d9c37fa6a55e870cf0e8cee4a GIT binary patch literal 2272 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 sz + + + + + Import Contractless Wallet + + + + + +

+ +
+
+ Restore Contractless wallet +

Import wallet image

+

+ Select your encrypted Contractless private-key image and enter the + encryption key originally used to create it. +

+ +
+ + + + +
+ + +
+ +
+ Processed locally by Contractless Wallet + The wallet image and encryption key are not sent to the website you were visiting. +
+ + + +
+
+ + +
+ + + diff --git a/extension/dist/chrome/import-wallet.js b/extension/dist/chrome/import-wallet.js new file mode 100644 index 0000000..7b1b204 --- /dev/null +++ b/extension/dist/chrome/import-wallet.js @@ -0,0 +1 @@ +import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";const a=t=>document.getElementById(t),u=a("import-form"),l=a("wallet-image"),r=a("image-password"),s=a("import-button"),i=a("notice");m("status").then(t=>{const e=t;a("selected-network").textContent=e.networkName}).catch(t=>{i.textContent=d(t)});function w(t){let e="";for(let o=0;o{var t,e;a("image-file-name").textContent=((e=(t=l.files)==null?void 0:t[0])==null?void 0:e.name)??"Choose wallet image",i.textContent=""});a("reveal-password").addEventListener("click",t=>{const e=t.currentTarget,n=r.type==="text";r.type=n?"password":"text",e.textContent=n?"Show":"Hide"});u.addEventListener("submit",t=>{t.preventDefault(),(async()=>{var c;const e=(c=l.files)==null?void 0:c[0];if(!e)throw new Error("Choose a wallet image.");if(!r.value.trim())throw new Error("Enter the wallet image encryption key.");i.textContent="",s.disabled=!0,s.textContent="Importing wallet...";const n=w(new Uint8Array(await e.arrayBuffer())),o=await m("import-wallet-image",{imageBase64:n,imagePassword:r.value,password:r.value});r.value="",a("imported-address").textContent=o.address??"Imported wallet",a("import-panel").hidden=!0,a("success-panel").hidden=!1})().catch(e=>{i.textContent=d(e),s.disabled=!1,s.textContent="Import wallet"})});a("close-page").addEventListener("click",()=>window.close()); diff --git a/extension/dist/chrome/manifest.json b/extension/dist/chrome/manifest.json new file mode 100644 index 0000000..c42233e --- /dev/null +++ b/extension/dist/chrome/manifest.json @@ -0,0 +1,45 @@ +{ + "manifest_version": 3, + "name": "Contractless Wallet", + "version": "0.1.1", + "description": "A local-signing Web3 wallet for Contractless.", + "content_security_policy": { + "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'" + }, + "permissions": ["storage", "alarms", "activeTab", "clipboardWrite"], + "host_permissions": ["https://api.contractless.dev/*"], + "optional_host_permissions": ["https://*/"], + "action": { + "default_popup": "popup.html", + "default_title": "Contractless Wallet", + "default_icon": { + "16": "contractless-logo-16.png", + "32": "contractless-logo-32.png", + "48": "contractless-logo-48.png", + "128": "contractless-logo-128.png" + } + }, + "icons": { + "16": "contractless-logo-16.png", + "32": "contractless-logo-32.png", + "48": "contractless-logo-48.png", + "128": "contractless-logo-128.png" + }, + "background": { + "service_worker": "background.js", + "type": "module" + }, + "content_scripts": [ + { + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"], + "js": ["content.js"], + "run_at": "document_start" + } + ], + "web_accessible_resources": [ + { + "resources": ["provider.js"], + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"] + } + ] +} diff --git a/extension/dist/chrome/popup.html b/extension/dist/chrome/popup.html new file mode 100644 index 0000000..1aaf6fa --- /dev/null +++ b/extension/dist/chrome/popup.html @@ -0,0 +1,654 @@ + + + + + + Contractless Wallet + + + + + + +
+
+
+ Contractless +
+
+

Opening wallet

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/extension/dist/chrome/popup.js b/extension/dist/chrome/popup.js new file mode 100644 index 0000000..f57b0b4 --- /dev/null +++ b/extension/dist/chrome/popup.js @@ -0,0 +1,8 @@ +import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";import{c as Yt}from"./chunks/core-D2IK1U91.js";function Cn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var de={},De,Ct;function En(){return Ct||(Ct=1,De=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),De}var Ue={},ee={},Et;function se(){if(Et)return ee;Et=1;let e;const t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return ee.getSymbolSize=function(o){if(!o)throw new Error('"version" cannot be null or undefined');if(o<1||o>40)throw new Error('"version" should be in range from 1 to 40');return o*4+17},ee.getSymbolTotalCodewords=function(o){return t[o]},ee.getBCHDigit=function(n){let o=0;for(;n!==0;)o++,n>>>=1;return o},ee.setToSJISFunction=function(o){if(typeof o!="function")throw new Error('"toSJISFunc" is not a valid function.');e=o},ee.isKanjiModeEnabled=function(){return typeof e<"u"},ee.toSJIS=function(o){return e(o)},ee}var qe={},bt;function lt(){return bt||(bt=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,r){if(e.isValid(o))return o;try{return t(o)}catch{return r}}})(qe)),qe}var Fe,kt;function bn(){if(kt)return Fe;kt=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const n=Math.floor(t/8);return(this.buffer[n]>>>7-t%8&1)===1},put:function(t,n){for(let o=0;o>>n-o-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),t&&(this.buffer[n]|=128>>>this.length%8),this.length++}},Fe=e,Fe}var Ve,At;function kn(){if(At)return Ve;At=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,n,o,r){const i=t*this.size+n;this.data[i]=o,r&&(this.reservedBit[i]=!0)},e.prototype.get=function(t,n){return this.data[t*this.size+n]},e.prototype.xor=function(t,n,o){this.data[t*this.size+n]^=o},e.prototype.isReserved=function(t,n){return this.reservedBit[t*this.size+n]},Ve=e,Ve}var Ke={},Nt;function An(){return Nt||(Nt=1,(function(e){const t=se().getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const r=Math.floor(o/7)+2,i=t(o),a=i===145?26:Math.ceil((i-13)/(2*r-2))*2,l=[i-7];for(let s=1;s=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const i=r.size;let a=0,l=0,s=0,d=null,u=null;for(let m=0;m=5&&(a+=t.N1+(l-5)),d=f,l=1),f=r.get(p,m),f===u?s++:(s>=5&&(a+=t.N1+(s-5)),u=f,s=1)}l>=5&&(a+=t.N1+(l-5)),s>=5&&(a+=t.N1+(s-5))}return a},e.getPenaltyN2=function(r){const i=r.size;let a=0;for(let l=0;l=10&&(l===1488||l===93)&&a++,s=s<<1&2047|r.get(u,d),u>=10&&(s===1488||s===93)&&a++}return a*t.N3},e.getPenaltyN4=function(r){let i=0;const a=r.data.length;for(let s=0;s=0;){const a=i[0];for(let s=0;s0){const l=new Uint8Array(this.degree);return l.set(i,a),l}return i},Je=t,Je}var We={},He={},Ye={},Rt;function Qt(){return Rt||(Rt=1,Ye.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),Ye}var O={},It;function Zt(){if(It)return O;It=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let n="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";n=n.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+n+`)(?:.|[\r +]))+`;O.KANJI=new RegExp(n,"g"),O.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),O.BYTE=new RegExp(o,"g"),O.NUMERIC=new RegExp(e,"g"),O.ALPHANUMERIC=new RegExp(t,"g");const r=new RegExp("^"+n+"$"),i=new RegExp("^"+e+"$"),a=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return O.testKanji=function(s){return r.test(s)},O.testNumeric=function(s){return i.test(s)},O.testAlphanumeric=function(s){return a.test(s)},O}var Pt;function ce(){return Pt||(Pt=1,(function(e){const t=Qt(),n=Zt();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(i,a){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!t.isValid(a))throw new Error("Invalid version: "+a);return a>=1&&a<10?i.ccBits[0]:a<27?i.ccBits[1]:i.ccBits[2]},e.getBestModeForData=function(i){return n.testNumeric(i)?e.NUMERIC:n.testAlphanumeric(i)?e.ALPHANUMERIC:n.testKanji(i)?e.KANJI:e.BYTE},e.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},e.isValid=function(i){return i&&i.bit&&i.ccBits};function o(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(i,a){if(e.isValid(i))return i;try{return o(i)}catch{return a}}})(He)),He}var Mt;function Bn(){return Mt||(Mt=1,(function(e){const t=se(),n=Gt(),o=lt(),r=ce(),i=Qt(),a=7973,l=t.getBCHDigit(a);function s(p,f,h){for(let w=1;w<=40;w++)if(f<=e.getCapacity(w,h,p))return w}function d(p,f){return r.getCharCountIndicator(p,f)+4}function u(p,f){let h=0;return p.forEach(function(w){const R=d(w.mode,f);h+=R+w.getBitsLength()}),h}function m(p,f){for(let h=1;h<=40;h++)if(u(p,h)<=e.getCapacity(h,f,r.MIXED))return h}e.from=function(f,h){return i.isValid(f)?parseInt(f,10):h},e.getCapacity=function(f,h,w){if(!i.isValid(f))throw new Error("Invalid QR Code version");typeof w>"u"&&(w=r.BYTE);const R=t.getSymbolTotalCodewords(f),C=n.getTotalCodewordsCount(f,h),B=(R-C)*8;if(w===r.MIXED)return B;const E=B-d(w,f);switch(w){case r.NUMERIC:return Math.floor(E/10*3);case r.ALPHANUMERIC:return Math.floor(E/11*2);case r.KANJI:return Math.floor(E/13);case r.BYTE:default:return Math.floor(E/8)}},e.getBestVersionForData=function(f,h){let w;const R=o.from(h,o.M);if(Array.isArray(f)){if(f.length>1)return m(f,R);if(f.length===0)return 1;w=f[0]}else w=f;return s(w.mode,w.getLength(),R)},e.getEncodedBits=function(f){if(!i.isValid(f)||f<7)throw new Error("Invalid QR Code version");let h=f<<12;for(;t.getBCHDigit(h)-l>=0;)h^=a<=0;)s^=t<0&&(i=this.data.substr(r),a=parseInt(i,10),o.put(a,l*3+1))},Ze=t,Ze}var Xe,Ut;function In(){if(Ut)return Xe;Ut=1;const e=ce(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function n(o){this.mode=e.ALPHANUMERIC,this.data=o}return n.getBitsLength=function(r){return 11*Math.floor(r/2)+6*(r%2)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(r){let i;for(i=0;i+2<=this.data.length;i+=2){let a=t.indexOf(this.data[i])*45;a+=t.indexOf(this.data[i+1]),r.put(a,11)}this.data.length%2&&r.put(t.indexOf(this.data[i]),6)},Xe=n,Xe}var et,qt;function Pn(){if(qt)return et;qt=1;const e=ce();function t(n){this.mode=e.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}return t.getBitsLength=function(o){return o*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(n){for(let o=0,r=this.data.length;o=33088&&i<=40956)i-=33088;else if(i>=57408&&i<=60351)i-=49472;else throw new Error("Invalid SJIS character: "+this.data[r]+` +Make sure your charset is UTF-8`);i=(i>>>8&255)*192+(i&255),o.put(i,13)}},tt=n,tt}var nt={exports:{}},Vt;function $n(){return Vt||(Vt=1,(function(e){var t={single_source_shortest_paths:function(n,o,r){var i={},a={};a[o]=0;var l=t.PriorityQueue.make();l.push(o,0);for(var s,d,u,m,p,f,h,w,R;!l.empty();){s=l.pop(),d=s.value,m=s.cost,p=n[d]||{};for(u in p)p.hasOwnProperty(u)&&(f=p[u],h=m+f,w=a[u],R=typeof a[u]>"u",(R||w>h)&&(a[u]=h,l.push(u,h),i[u]=d))}if(typeof r<"u"&&typeof a[r]>"u"){var C=["Could not find a path from ",o," to ",r,"."].join("");throw new Error(C)}return i},extract_shortest_path_from_predecessor_list:function(n,o){for(var r=[],i=o;i;)r.push(i),n[i],i=n[i];return r.reverse(),r},find_path:function(n,o,r){var i=t.single_source_shortest_paths(n,o,r);return t.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(n){var o=t.PriorityQueue,r={},i;n=n||{};for(i in o)o.hasOwnProperty(i)&&(r[i]=o[i]);return r.queue=[],r.sorter=n.sorter||o.default_sorter,r},default_sorter:function(n,o){return n.cost-o.cost},push:function(n,o){var r={value:n,cost:o};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(nt)),nt.exports}var Kt;function Dn(){return Kt||(Kt=1,(function(e){const t=ce(),n=Rn(),o=In(),r=Pn(),i=Mn(),a=Zt(),l=se(),s=$n();function d(C){return unescape(encodeURIComponent(C)).length}function u(C,B,E){const L=[];let D;for(;(D=C.exec(E))!==null;)L.push({data:D[0],index:D.index,mode:B,length:D[0].length});return L}function m(C){const B=u(a.NUMERIC,t.NUMERIC,C),E=u(a.ALPHANUMERIC,t.ALPHANUMERIC,C);let L,D;return l.isKanjiModeEnabled()?(L=u(a.BYTE,t.BYTE,C),D=u(a.KANJI,t.KANJI,C)):(L=u(a.BYTE_KANJI,t.BYTE,C),D=[]),B.concat(E,L,D).sort(function(N,A){return N.index-A.index}).map(function(N){return{data:N.data,mode:N.mode,length:N.length}})}function p(C,B){switch(B){case t.NUMERIC:return n.getBitsLength(C);case t.ALPHANUMERIC:return o.getBitsLength(C);case t.KANJI:return i.getBitsLength(C);case t.BYTE:return r.getBitsLength(C)}}function f(C){return C.reduce(function(B,E){const L=B.length-1>=0?B[B.length-1]:null;return L&&L.mode===E.mode?(B[B.length-1].data+=E.data,B):(B.push(E),B)},[])}function h(C){const B=[];for(let E=0;E=0&&k<=6&&(_===0||_===6)||_>=0&&_<=6&&(k===0||k===6)||k>=2&&k<=4&&_>=2&&_<=4?y.set(b+k,S+_,!0,!0):y.set(b+k,S+_,!1,!0))}}function h(y){const N=y.size;for(let A=8;A>k&1)===1,y.set(T,b,S,!0),y.set(b,T,S,!0)}function C(y,N,A){const v=y.size,T=u.getEncodedBits(N,A);let b,S;for(b=0;b<15;b++)S=(T>>b&1)===1,b<6?y.set(b,8,S,!0):b<8?y.set(b+1,8,S,!0):y.set(v-15+b,8,S,!0),b<8?y.set(8,v-b-1,S,!0):b<9?y.set(8,15-b-1+1,S,!0):y.set(8,15-b-1,S,!0);y.set(v-8,8,1,!0)}function B(y,N){const A=y.size;let v=-1,T=A-1,b=7,S=0;for(let k=A-1;k>0;k-=2)for(k===6&&k--;;){for(let _=0;_<2;_++)if(!y.isReserved(T,k-_)){let X=!1;S>>b&1)===1),y.set(T,k-_,X),b--,b===-1&&(S++,b=7)}if(T+=v,T<0||A<=T){T-=v,v=-v;break}}}function E(y,N,A){const v=new n;A.forEach(function(_){v.put(_.mode.bit,4),v.put(_.getLength(),m.getCharCountIndicator(_.mode,y)),_.write(v)});const T=e.getSymbolTotalCodewords(y),b=l.getTotalCodewordsCount(y,N),S=(T-b)*8;for(v.getLengthInBits()+4<=S&&v.put(0,4);v.getLengthInBits()%8!==0;)v.putBit(0);const k=(S-v.getLengthInBits())/8;for(let _=0;_=7&&R(_,N),B(_,S),isNaN(v)&&(v=a.getBestMask(_,C.bind(null,_,A))),a.applyMask(v,_),C(_,A,v),{modules:_,version:N,errorCorrectionLevel:A,maskPattern:v,segments:T}}return Ue.create=function(N,A){if(typeof N>"u"||N==="")throw new Error("No input text");let v=t.M,T,b;return typeof A<"u"&&(v=t.from(A.errorCorrectionLevel,t.M),T=d.from(A.version),b=a.from(A.maskPattern),A.toSJISFunc&&e.setToSJISFunction(A.toSJISFunc)),D(N,T,v,b)},Ue}var rt={},ot={},zt;function Xt(){return zt||(zt=1,(function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let o=n.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+n);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(i){return[i,i]}))),o.length===6&&o.push("F","F");const r=parseInt(o.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const r=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,i=o.width&&o.width>=21?o.width:void 0,a=o.scale||4;return{width:i,scale:i?4:a,margin:r,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,r){return r.width&&r.width>=o+r.margin*2?r.width/(o+r.margin*2):r.scale},e.getImageWidth=function(o,r){const i=e.getScale(o,r);return Math.floor((o+r.margin*2)*i)},e.qrToImageData=function(o,r,i){const a=r.modules.size,l=r.modules.data,s=e.getScale(a,i),d=Math.floor((a+i.margin*2)*s),u=i.margin*s,m=[i.color.light,i.color.dark];for(let p=0;p=u&&f>=u&&p"u"&&(!a||!a.getContext)&&(s=a,a=void 0),a||(d=o()),s=t.getOptions(s);const u=t.getImageWidth(i.modules.size,s),m=d.getContext("2d"),p=m.createImageData(u,u);return t.qrToImageData(p.data,i,s),n(m,d,u),m.putImageData(p,0,0),d},e.renderToDataURL=function(i,a,l){let s=l;typeof s>"u"&&(!a||!a.getContext)&&(s=a,a=void 0),s||(s={});const d=e.render(i,a,s),u=s.type||"image/png",m=s.rendererOpts||{};return d.toDataURL(u,m.quality)}})(rt)),rt}var it={},Jt;function Fn(){if(Jt)return it;Jt=1;const e=Xt();function t(r,i){const a=r.a/255,l=i+'="'+r.hex+'"';return a<1?l+" "+i+'-opacity="'+a.toFixed(2).slice(1)+'"':l}function n(r,i,a){let l=r+i;return typeof a<"u"&&(l+=" "+a),l}function o(r,i,a){let l="",s=0,d=!1,u=0;for(let m=0;m0&&p>0&&r[m-1]||(l+=d?n("M",p+a,.5+f+a):n("m",s,0),s=0,d=!1),p+1':"",f="',h='viewBox="0 0 '+m+" "+m+'"',R=''+p+f+` +`;return typeof l=="function"&&l(null,R),R},it}var Wt;function Vn(){if(Wt)return de;Wt=1;const e=En(),t=Un(),n=qn(),o=Fn();function r(i,a,l,s,d){const u=[].slice.call(arguments,1),m=u.length,p=typeof u[m-1]=="function";if(!p&&!e())throw new Error("Callback required as last argument");if(p){if(m<2)throw new Error("Too few arguments provided");m===2?(d=l,l=a,a=s=void 0):m===3&&(a.getContext&&typeof d>"u"?(d=s,s=void 0):(d=s,s=l,l=a,a=void 0))}else{if(m<1)throw new Error("Too few arguments provided");return m===1?(l=a,a=s=void 0):m===2&&!a.getContext&&(s=l,l=a,a=void 0),new Promise(function(f,h){try{const w=t.create(l,s);f(i(w,a,s))}catch(w){h(w)}})}try{const f=t.create(l,s);d(null,i(f,a,s))}catch(f){d(f)}}return de.create=t.create,de.toCanvas=r.bind(null,n.render),de.toDataURL=r.bind(null,n.renderToDataURL),de.toString=r.bind(null,function(i,a,l){return o.render(i,l)}),de}var Kn=Vn();const jn=Cn(Kn),c=e=>document.getElementById(e),zn=Array.from(document.querySelectorAll(".screen")),M=c("notice"),en=navigator.userAgent.includes("Firefox");let Le="",fe="",ge="",ie="",g,dt,Te="held",K=1,ae=0;const we=8;let x,H=[],Z,P,_e,tn="activity",G,ve="",oe="";const he=20,On={1:"Mining Reward",2:"Transfer",3:"Token Creation",4:"NFT/RWA Creation",5:"Marketing",6:"Swap",7:"Loan",8:"Loan Payment",9:"Collateral Claim",10:"Asset Burn",11:"Token Issuance",12:"Vanity Address",100:"Storage Key",101:"Data Storage Bool",102:"Data Storage U8",103:"Data Storage U16",104:"Data Storage U32",105:"Data Storage U64",106:"Data Storage U128",107:"Data Storage String",108:"Data Storage I8",109:"Data Storage I16",110:"Data Storage I32",111:"Data Storage I64",112:"Data Storage I128",113:"Delete Stored Data",200:"Proposal",201:"Proposal Vote",202:"Activation Vote"};async function $(e,t={}){const n=await chrome.runtime.sendMessage({type:e,...t});if(!(n!=null&&n.ok))throw new Error((n==null?void 0:n.error)??"Wallet request failed.");return n.result}function I(e,t=!0){zn.forEach(n=>{n.hidden=n.id!==e}),t&&(M.textContent="")}function V(e){g=e;const t=e.networkName,n=e.networkSymbol;document.querySelectorAll("[data-network-name]").forEach(o=>{o.textContent=t}),document.querySelectorAll("[data-network-symbol]").forEach(o=>{o.textContent=n}),c("base-asset-name").textContent=`Contractless ${t}`,c("wallet-address").textContent=e.address??"",c("wallet-address-short").textContent=e.address?`${e.address.slice(0,6)}...${e.address.slice(-6)}`:"Account",c("settings-testnet-api-url").value=e.testnetApiUrl,c("settings-mainnet-api-url").value=e.mainnetApiUrl,document.querySelectorAll("[data-select-network]").forEach(o=>{const r=o.dataset.selectNetwork===e.selectedNetwork;o.classList.toggle("active",r),o.setAttribute("aria-pressed",String(r))}),c("settings-lock-timeout").value=String(e.autoLockMinutes),Xn(e),e.exists?e.unlocked?at().then(o=>{o||(I("dashboard-screen"),Be())}):I("locked-screen"):I("create-screen")}function Jn(e,t){return e==="contractless_connect"?"Connect application":e==="contractless_signMessage"?"Sign text message":e==="contractless_sendTransaction"||e==="contractless_signDualTransaction"?`Sign ${String(t.transaction_type??"transaction")}`:"Review request"}function j(e,t,n){const o=document.createElement("dt");o.textContent=t.replaceAll("_"," ");const r=document.createElement("dd");r.textContent=typeof n=="object"?JSON.stringify(n,null,2):String(n),e.append(o,r)}function te(e,t,n,o){const r=re(e[t]),i=String(e[n]??"").trim().toUpperCase(),a=Number(e[o]??0);return`${r} ${i}${a>0?` #${a}`:""}`}function Ht(e,t,n){const o=n===1?2:1,r=(g==null?void 0:g.networkSymbol)??"CLTC";j(e,"Your miner tip",te(t,`tip${n}`,`ticker${n}`,`nft_series${n}`)),j(e,"Your transaction fee",`${re(t[`txfee${n}`])} ${r}`),j(e,"Other party miner tip",te(t,`tip${o}`,`ticker${o}`,`nft_series${o}`)),j(e,"Other party transaction fee",`${re(t[`txfee${o}`])} ${r}`)}function Wn(e,t){var a;const n=((a=g==null?void 0:g.address)==null?void 0:a.trim().toLowerCase())??"",o=String(t.sender1??"").trim().toLowerCase(),r=String(t.sender2??"").trim().toLowerCase(),i=n===o?1:n===r?2:0;if(i===1){j(e,"Sending",te(t,"value1","ticker1","nft_series1")),j(e,"Receiving",te(t,"value2","ticker2","nft_series2")),Ht(e,t,1);return}if(i===2){j(e,"Sending",te(t,"value2","ticker2","nft_series2")),j(e,"Receiving",te(t,"value1","ticker1","nft_series1")),Ht(e,t,2);return}j(e,"First party sending",te(t,"value1","ticker1","nft_series1")),j(e,"Second party sending",te(t,"value2","ticker2","nft_series2"))}function ye(e){const t=c("approve-provider-approval"),n=c("reject-provider-approval"),o=e!==null;t.disabled=o,n.disabled=o,t.classList.toggle("is-processing",e==="approve"),n.classList.toggle("is-processing",e==="reject"),t.textContent=e==="approve"?"Processing...":"Approve",n.textContent=e==="reject"?"Rejecting...":"Reject"}async function at(){const e=await $("pending-provider-approval");if(!(e!=null&&e.request))return!1;const t=e.request;ye(null),oe=t.id;const n=(e.total??0)>1?` · Request ${e.position??1} of ${e.total}`:"";c("provider-approval-origin").textContent=`${t.origin}${n}`;const o=c("provider-approval-risk");o.className=`risk-label risk-${t.risk}`,o.textContent=t.risk==="safe"?"Safe":t.risk==="low"?"Low risk":"High risk";const r=t.display??{},i=t.method==="contractless_sendTransaction"||t.method==="contractless_signDualTransaction";c("provider-approval-title").textContent=Jn(t.method,r),c("provider-approval-intro").textContent=i?"Review every transaction field before signing.":"Review this request before approving it.";const a=c("provider-approval-details");return a.replaceChildren(),Object.entries(r).forEach(([l,s])=>{if(l==="transaction_fields"&&s&&typeof s=="object"){const d=s,u=Number(d.txtype??0),m=new Set(["ticker1","nft_series1","value1","ticker2","nft_series2","value2","tip1","tip2","txfee1","txfee2"]);u===6&&Wn(a,d),Object.entries(d).forEach(([p,f])=>{u===6&&m.has(p)||j(a,p==="txtype"?"transaction_type_id":p,dn(u,p,f))});return}j(a,l,s)}),I("provider-approval-screen"),!0}async function nn(e,t){if(!(e>0&&await at())){if(t){const n=Date.now()+1500;for(;Date.now()setTimeout(o,75))}}window.close()}}function Hn(e){return e.replace(/[.0]/g,"").length>0}function st(){const e=c("token-list");if(e.replaceChildren(),!x){const s=document.createElement("div");s.className="empty-assets";const d=document.createElement("strong");d.textContent="Loading token balances...";const u=document.createElement("span");u.textContent="Balances are retrieved from the selected Contractless API.",s.append(d,u),e.append(s);return}const t=(g==null?void 0:g.networkSymbol)??"CLTC",n=new Set(x.tokens.map(s=>s.token.trim().toUpperCase())),o=new Set(x.nfts.map(s=>`${s.name.trim().toUpperCase()}|${Number(s.series||0)}`)),r=x.balances.filter(s=>{const d=s.asset.trim().toUpperCase(),u=`${d}|${Number(s.nft_series||0)}`;return s.nft_series===0&&d!=="CLTC"&&d!=="CLC"&&n.has(d)&&!o.has(u)}),i=new Map(r.map(s=>[s.asset.trim().toUpperCase(),s])),a=Te==="all"?x.tokens.map(s=>s.token):r.filter(s=>Hn(s.balance)).map(s=>s.asset),l=[...new Set(a.map(s=>s.trim().toUpperCase()))].filter(s=>s!==t&&!o.has(`${s}|0`)).sort((s,d)=>s.localeCompare(d));if(l.length===0){const s=document.createElement("div");s.className="empty-assets";const d=document.createElement("strong");d.textContent=Te==="held"?"No token balances found":"No tokens found";const u=document.createElement("span");u.textContent=Te==="held"?"Switch to All tokens to view the complete network token list.":x.tokenCatalogError?`Token catalog unavailable: ${x.tokenCatalogError}`:"The selected API did not return any fungible tokens.",s.append(d,u),e.append(s);return}l.forEach(s=>{const d=i.get(s),u=document.createElement("div");u.className="asset-row";const m=document.createElement("div");m.className="asset-symbol token-symbol",m.textContent=s.slice(0,3);const p=document.createElement("div");p.className="asset-name";const f=document.createElement("strong");f.textContent=s;const h=document.createElement("span");h.textContent="Contractless token",p.append(f,h);const w=document.createElement("div");w.className="asset-value";const R=document.createElement("strong");R.textContent=(d==null?void 0:d.balance)??"0.00000000";const C=document.createElement("span");C.textContent=s,w.append(R,C),u.append(m,p,w),e.append(u)})}async function Be(){if(g!=null&&g.unlocked){x=void 0,c("base-balance").textContent="--",c("base-asset-balance").textContent="--",st();try{if(!g.apiUrl)throw new Error(`No ${g.networkName} API is configured.`);const e=await $("wallet-balances");x={balances:Array.isArray(e.balances)?e.balances:[],tokens:Array.isArray(e.tokens)?e.tokens:[],nfts:Array.isArray(e.nfts)?e.nfts:[],tokenCatalogError:e.tokenCatalogError,nftCatalogError:e.nftCatalogError};const t=g.networkSymbol,n=x.balances.find(r=>r.nft_series===0&&r.asset.toUpperCase()===t),o=(n==null?void 0:n.balance)??"0.00000000";c("base-balance").textContent=o,c("base-asset-balance").textContent=o,st()}catch(e){const t=c("token-list");t.replaceChildren();const n=document.createElement("div");n.className="empty-assets balance-error";const o=document.createElement("strong");o.textContent="Unable to load balances";const r=document.createElement("span");r.textContent=F(e),n.append(o,r),t.append(n),M.textContent=F(e)}}}function Ne(e,t){return`${e.trim().toUpperCase()}|${t}`}function Yn(e){try{return Y(e,"Balance")>0n}catch{return!1}}function rn(e){if(e.ownership_type!==1)return"Complete ownership";try{const t=Y(e.balance,"Balance"),n=Y(e.supply,"Supply");if(n<=0n)return"0% ownership";const o=t*100000000n/n,r=o/1000000n,i=(o%1000000n).toString().padStart(6,"0").replace(/0+$/,"");return`${r}${i?`.${i}`:""}% ownership`}catch{return"Fractional ownership"}}function ut(e){var t;return(t=e.details)!=null&&t.metadata&&typeof e.details.metadata=="object"?e.details.metadata:{}}function ft(e){const t=ut(e).name;return typeof t=="string"&&t.trim()?t.trim():e.series>0?`${e.name} #${e.series}`:e.name}function on(e){const n=ut(e).contractless;return n&&typeof n=="object"&&String(n.metadata_type??"").toLowerCase()==="rwa"?"RWA":"NFT"}function be(e){return e.series>0?`${e.name}_${e.series}`:e.name}function Gn(e,t=7,n=7){return e.length>t+n+3?`${e.slice(0,t)}...${e.slice(-n)}`:e}function Qn(e,t){var r;const n=document.createElement("div");if(n.className=t,(r=e.details)!=null&&r.image_data_url){const i=document.createElement("img");return i.src=e.details.image_data_url,i.alt=ft(e),n.append(i),n}const o=document.createElement("span");return o.textContent=e.loading?"...":e.name.slice(0,2).toUpperCase(),n.append(o),n}function an(){const e=(K-1)*we;return H.slice(e,e+we)}function Ce(){const e=c("nfts-list");e.replaceChildren();const t=Math.max(1,Math.ceil(H.length/we));if(K=Math.min(Math.max(1,K),t),c("nfts-count").textContent=H.length===1?"1 owned asset":`${H.length} owned assets`,c("nfts-page").textContent=String(K),c("nfts-pages").textContent=String(t),c("nfts-pagination").hidden=t<=1,c("nfts-previous").disabled=K<=1,c("nfts-next").disabled=K>=t,!H.length){const n=document.createElement("div");n.className="nfts-empty";const o=document.createElement("strong");o.textContent="No NFTs or RWAs found";const r=document.createElement("span");r.textContent=x!=null&&x.nftCatalogError?`NFT catalog unavailable: ${x.nftCatalogError}`:"Assets owned by this wallet will appear here.",n.append(o,r),e.append(n);return}an().forEach(n=>{const o=document.createElement("button");o.type="button",o.className="nft-card",o.append(Qn(n,"nft-card-media"));const r=document.createElement("div");r.className="nft-card-identity";const i=document.createElement("span");i.textContent=on(n);const a=document.createElement("strong");a.textContent=ft(n);const l=document.createElement("small");l.textContent=be(n);const s=document.createElement("b");if(s.textContent=rn(n),r.append(i,a,l,s),n.error){const d=document.createElement("em");d.textContent="Media unavailable",r.append(d)}o.append(r),o.addEventListener("click",()=>Zn(n)),e.append(o)})}function Se(e,t,n){const o=document.createElement("div"),r=document.createElement("dt");r.textContent=t;const i=document.createElement("dd");i.textContent=n||"--",o.append(r,i),e.append(o)}function xe(e){Z=e;const t=e.details,n=ut(e),o=on(e),r=ft(e);c("nft-detail-title").textContent=r,c("nft-detail-kind").textContent=`${o} details`,c("nft-detail-badge").textContent=o,c("nft-detail-name").textContent=r,c("nft-detail-ownership").textContent=rn(e);const i=c("nft-detail-image");i.src=(t==null?void 0:t.image_data_url)??"",i.alt=r,i.hidden=!(t!=null&&t.image_data_url);const a=n.description??n.summary;c("nft-detail-description").textContent=typeof a=="string"&&a.trim()?a.trim():t?"No description was included in the NFT metadata.":"Loading NFT metadata and provenance...";const l=c("nft-detail-attributes");l.replaceChildren(),(Array.isArray(n.attributes)?n.attributes.slice(0,12):[]).forEach(m=>{if(!m||typeof m!="object")return;const p=m,f=document.createElement("div"),h=document.createElement("span");h.textContent=String(p.trait_type??p.type??"Attribute");const w=document.createElement("strong");w.textContent=String(p.value??""),f.append(h,w),l.append(f)}),l.hidden=l.childElementCount===0;const d=c("nft-detail-fields");d.replaceChildren(),Se(d,"Asset",be(e)),Se(d,"Creator",(t==null?void 0:t.creator)??"--"),Se(d,"IPFS CID",(t==null?void 0:t.item_ipfs)??"--"),Se(d,"Origin transaction",(t==null?void 0:t.genesis_txid)??e.origin_txid);const u=c("nft-detail-history");if(u.replaceChildren(),t)if(t.history.length)t.history.slice().reverse().forEach(m=>{const p=document.createElement("button");p.type="button",p.className="nft-history-row",p.title=`View full transaction ${m.txid}`;const f=document.createElement("strong");f.textContent=m.action;const h=document.createElement("span");h.textContent=`Block ${Number(m.block).toLocaleString()}`;const w=document.createElement("small");w.textContent=Gn(m.txid),p.append(f,h,w),p.addEventListener("click",()=>{fn({txid:m.txid,block_height:Number(m.block),transaction_hex:""},"nft")}),u.append(p)});else{const m=document.createElement("p");m.textContent="No provenance records were returned.",u.append(m)}else{const m=document.createElement("p");m.textContent="Loading provenance...",u.append(m)}}function Zn(e){xe(e),I("nft-detail-screen")}async function mt(e){const t=an().filter(r=>!r.details&&!r.loading);let n=0;const o=async()=>{for(;n[Ne(r.name,r.series),r]));H=x.nfts.map(r=>{const i=x==null?void 0:x.balances.find(l=>Ne(l.asset,Number(l.nft_series||0))===Ne(r.name,Number(r.series||0)));if(!i||!Yn(i.balance))return null;const a=n.get(Ne(r.name,r.series));return{name:r.name.trim(),series:Number(r.series||0),origin_txid:r.origin_txid,ownership_type:Number(r.ownership_type||0),supply:r.supply,balance:i.balance,details:a==null?void 0:a.details,error:a==null?void 0:a.error}}).filter(r=>r!==null).sort((r,i)=>r.name.localeCompare(i.name)||r.series-i.series);const o=Math.max(1,Math.ceil(H.length/we));K=Math.min(K,o),Ce(),await mt(t)}function Xn(e){const t=c("known-addresses");t.replaceChildren(),e.wallets.forEach(n=>{const o=document.createElement("div");o.className=`known-address${n.active?" active-address":""}`;const r=document.createElement("button");r.type="button",r.className="address-select",r.dataset.walletId=n.id;const i=document.createElement("span");i.className="address-avatar";const a=document.createElement("img");a.src=chrome.runtime.getURL("contractless-logo.png"),a.alt="",i.append(a);const l=document.createElement("span");l.className="address-details";const s=document.createElement("strong");s.textContent=n.label;const d=document.createElement("small");d.textContent=n.address,l.append(s,d);const u=document.createElement("span");u.className="selected-mark",u.textContent=n.active?"✓":"",r.append(i,l,u),r.addEventListener("click",()=>{if(n.active){z(!1);return}U(async()=>{z(!1),fe="",ie="",V(await $("switch-wallet",{walletId:n.id}))})});const m=document.createElement("button");m.type="button",m.className="rename-address",m.title="Rename wallet",m.setAttribute("aria-label",`Rename ${n.label}`),m.textContent="✎",m.addEventListener("click",()=>{const p=window.prompt("Wallet label",n.label);p===null||p.trim()===n.label||U(async()=>{const f=await $("rename-wallet",{walletId:n.id,label:p});V(f),z(!0)})}),o.append(r,m),t.append(o)})}function z(e){const t=c("account-drawer"),n=c("drawer-backdrop"),o=c("account-menu-button");t.classList.toggle("open",e),t.setAttribute("aria-hidden",String(!e)),o.setAttribute("aria-expanded",String(e)),n.hidden=!e}function gt(){c("revealed-private-key").value="",c("private-key-result").hidden=!0}function Ee(e){if(c("backup-key-modal").hidden=!e,c("backup-key-backdrop").hidden=!e,e){const t=c("backup-key-input");t.value="",t.focus()}else c("backup-key-input").value="",dt=void 0}async function er(){const e=await $("wallet-receive-address"),t=String(e.receiveAddress??"");if(!t)throw new Error("No active wallet address is available.");c("receive-address-label").textContent=e.vanity?"Vanity address":"Wallet address",c("receive-address-value").textContent=t;const n=c("receive-qr");await jn.toCanvas(n,t,{width:220,margin:1,errorCorrectionLevel:"M",color:{dark:"#071016",light:"#ffffff"}}),I("receive-screen")}function Y(e,t){const n=e.trim();if(!/^(?:0|[1-9]\d*)(?:\.\d{1,8})?$/.test(n))throw new Error(`${t} must be a positive number with no more than 8 decimal places.`);const[o,r=""]=n.split(".");return BigInt(o)*100000000n+BigInt(r.padEnd(8,"0"))}function ne(e){const t=e/100000000n,n=(e%100000000n).toString().padStart(8,"0");return`${t}.${n}`}function sn(){if(P)return P.balance;const e=c("send-asset").value,t=x==null?void 0:x.balances.find(n=>n.nft_series===0&&n.asset.trim().toUpperCase()===e);return(t==null?void 0:t.balance)??"0.00000000"}function cn(){const e=c("send-asset").value,t=(g==null?void 0:g.networkSymbol)??"CLTC";if(e!==t)return 100000000n;const n=c("send-amount").value.trim();if(!n)return 0n;try{return(Y(n,"Amount")+99n)/100n}catch{return 0n}}function Re(){const e=(P==null?void 0:P.name)??c("send-asset").value,t=(g==null?void 0:g.networkSymbol)??"CLTC",n=P?be(P):e;c("send-amount-symbol").textContent=n,c("send-available").textContent=`Available: ${sn()} ${n}`;const o=cn();c("send-fee").value=ne(o),c("send-fee-note").textContent=!P&&e===t?"Minimum fee: 1% of the transfer amount.":`Minimum fee: 1 ${t} for asset transfers.`}function tr(){const e=c("send-asset");e.replaceChildren();const t=(g==null?void 0:g.networkSymbol)??"CLTC",n=new Set([t]);x==null||x.tokens.forEach(o=>{const r=o.token.trim().toUpperCase();(x==null?void 0:x.balances.find(a=>a.nft_series===0&&a.asset.trim().toUpperCase()===r&&Y(a.balance,"Balance")>0n))&&n.add(r)}),n.forEach(o=>{const r=document.createElement("option");r.value=o,r.textContent=o,e.append(r)}),Re()}function nr(){if(!x)throw new Error("Wallet balances are still loading.");P=void 0,G=void 0,c("send-form").reset(),c("send-asset").disabled=!1,c("send-amount").disabled=!1,tr(),I("send-screen")}function rr(e){if(!x)throw new Error("Wallet balances are still loading.");P=e,G=void 0,c("send-form").reset();const t=c("send-asset");t.replaceChildren();const n=document.createElement("option");n.value=e.name,n.textContent=be(e),t.append(n),t.disabled=!0;const o=c("send-amount");e.ownership_type===0?(o.value="1.00000000",o.disabled=!0):(o.value="",o.disabled=!1),Re(),I("send-screen")}async function or(){var w;if(!(g!=null&&g.address))throw new Error("No active wallet is available.");const e=(P==null?void 0:P.name)??c("send-asset").value,t=P?be(P):e,n=Q(c("send-recipient").value,"Enter a receiving address."),o=Q(c("send-amount").value,"Enter an amount to send."),r=Q(c("send-fee").value,"Enter a transaction fee."),i=Y(o,"Amount"),a=Y(r,"Transaction fee");if(i===0n)throw new Error("The transfer amount must be greater than zero.");if((P==null?void 0:P.ownership_type)===0&&i!==100000000n)throw new Error("An indivisible NFT must be transferred as one complete asset.");if((P==null?void 0:P.ownership_type)===1&&i>100000000n)throw new Error("A fractional NFT/RWA transfer cannot exceed one complete asset.");const l=cn();if(as)throw new Error(`Insufficient ${e} balance.`);const d=g.networkSymbol,u=((w=x==null?void 0:x.balances.find(R=>R.nft_series===0&&R.asset.trim().toUpperCase()===d))==null?void 0:w.balance)??"0.00000000",m=Y(u,"Base balance");if((e===d?i+a:a)>m)throw new Error(`Insufficient ${d} balance including the fee.`);const f=await $("wallet-prepare-transfer",{receiver:n,asset:e,nftSeries:(P==null?void 0:P.series)??0,valueAtomic:i.toString(),feeAtomic:a.toString()}),h=e===d?`${ne(i+a)} ${d}`:`${ne(i)} ${t} + ${ne(a)} ${d}`;G={transaction:f.transaction,receiverInput:f.receiverInput,asset:e,amount:ne(i),fee:ne(a),total:h},c("review-amount").textContent=G.amount,c("review-asset").textContent=t,c("review-sender").textContent=g.address,c("review-recipient").textContent=f.receiverInput,c("review-resolved-recipient").textContent=String(f.review.receiver??""),c("review-fee").textContent=G.fee,c("review-total").textContent=h,I("send-review-screen")}function ln(e){if(!/^[0-9a-f]+$/i.test(e)||e.length<10)return;const t=e.slice(2,10).match(/../g);if(!t||t.length!==4)return;const n=t.reduce((r,i,a)=>r+Number.parseInt(i,16)*2**(a*8),0),o=new Date(n*1e3);return Number.isNaN(o.getTime())?void 0:o}function ir(e){return e.split("_").map(t=>t&&`${t[0].toUpperCase()}${t.slice(1)}`).join(" ")}function re(e){try{const t=ne(BigInt(String(e??"0"))),[n,o]=t.split("."),r=o.replace(/0+$/,"");return r?`${n}.${r}`:`${n}.0`}catch{return String(e??"")}}function ar(e,t){var o;return t.startsWith("txfee")?!0:((o={1:new Set(["value"]),2:new Set(["value"]),3:new Set(["number"]),6:new Set(["value1","value2","tip1","tip2"]),7:new Set(["loan_amount","collateral_amount","payment_amount","max_late_value"]),8:new Set(["payback_amount","tip"]),10:new Set(["value"]),11:new Set(["number"])}[e])==null?void 0:o.has(t))??!1}function dn(e,t,n){if(typeof n=="boolean")return n?"True":"False";if(ar(e,t))return re(n);if(t==="time"||t==="timestamp"||t==="offer_expiration"){const o=Number(n);if(Number.isFinite(o))return`${new Date(o*1e3).toLocaleString()} (${o})`}return t==="payment_period"?{d:"Daily",w:"Weekly",m:"Monthly"}[String(n).trim().toLowerCase()]??String(n??""):e===3&&t==="hard_limit"?Number(n)===1?"Yes":"No":e===4&&t==="series"?Number(n)===1?"Series":"Single NFT/RWA":e===4&&t==="ownership_type"?Number(n)===1?"Fractional ownership":"Complete ownership":(e===201||e===202)&&t==="vote"?Number(n)===1?"Approve":"Reject":(t==="previous"||t.endsWith("_hash"))&&/^0+$/.test(String(n))?"None":e===5&&(t==="impression_value"||t==="click_value")?(Number(n)/100).toFixed(2):typeof n=="string"?n.trim():String(n??"")}function q(e,t,n,o=!1,r=0){const i=document.createElement("div");i.className=`transaction-field${o?" technical-field":""}`;const a=document.createElement("span");a.textContent=ir(t);const l=document.createElement("strong");l.textContent=o?String(n??""):dn(r,t,n),i.append(a,l),e.append(i)}function ht(e,t){return!e||!t||t=he?`${n} confirmations`:`${n}/${he} confirmations`:`Pending · 0/${he} confirmations`}async function fn(e,t="activity"){_e=e,tn=t;const n=c("close-transaction");n.title=t==="nft"?"Back to NFT/RWA details":"Back to activity",n.setAttribute("aria-label",t==="nft"?"Back to NFT/RWA details":"Back to activity"),I("transaction-screen"),c("transaction-title").textContent="Loading transaction",c("transaction-header-status").textContent="",c("transaction-full-txid").textContent=e.txid,c("transaction-overview").replaceChildren(),c("transaction-fields").replaceChildren(),c("transaction-technical-fields").replaceChildren(),c("transaction-miner-earnings").replaceChildren(),c("miner-earnings-section").hidden=!0;try{const o=await $("wallet-transaction",{txid:e.txid}),r=await Yt((g==null?void 0:g.selectedNetwork)??"testnet"),i=JSON.parse(r.decode_transaction(o.transaction_hex)),l=ht(o.block_height,o.current_height){q(u,f,h,!1,i.txtype)});const m=e.miner_earnings??[];if(m.length>0){const f=c("transaction-miner-earnings");m.forEach((h,w)=>{q(f,`earning_${w+1}_type`,h.type),q(f,`earning_${w+1}_asset`,h.asset),q(f,`earning_${w+1}_nft_series`,h.nft_series),q(f,`earning_${w+1}_amount`,`${re(h.amount_atomic)} ${h.asset.trim()}`)}),c("miner-earnings-section").hidden=!1}const p=c("transaction-technical-fields");i.stored_hash&&q(p,"stored_hash",i.stored_hash,!0),i.signature&&q(p,"signature",i.signature,!0),i.signature1&&q(p,"signature_1",i.signature1,!0),i.signature2&&q(p,"signature_2",i.signature2,!0),q(p,"raw_transaction_bytes",o.transaction_hex,!0)}catch(o){c("transaction-title").textContent="Transaction unavailable";const r=c("transaction-fields");r.replaceChildren(),q(r,"error",F(o))}}function ue(e){const t=String(e??"").trim();return t.length>18?`${t.slice(0,8)}...${t.slice(-7)}`:t}function sr(e,t){const n=e.fields,o=t.trim().toLowerCase(),r=(g==null?void 0:g.networkSymbol)??"CLTC",i=s=>String(n[s]??"").trim(),a=(s,d,u="")=>`${u}${re(n[s])} ${d}`,l=()=>`-${re(n.txfee??0)} ${r}`;switch(e.txtype){case 1:return{title:"Mining reward",subtitle:"From network",amount:a("value",r,"+"),direction:"incoming"};case 2:{const s=i("coin"),d=String(n.sender??"").trim().toLowerCase()===o;return{title:d?`Sent ${s}`:`Received ${s}`,subtitle:d?`To: ${ue(n.receiver)}`:`From: ${ue(n.sender)}`,amount:a("value",s,d?"-":"+"),direction:d?"outgoing":"incoming"}}case 3:{const s=i("ticker");return{title:`Created ${s}`,subtitle:"Token creation",amount:a("number",s,"+"),secondary:l(),direction:"incoming"}}case 4:{const s=String(n.count??"1");return{title:`Created ${i("nft_name")}`,subtitle:Number(n.series??0)===0?"NFT/RWA":"NFT/RWA collection",amount:`+${s} ${Number(s)===1?"item":"items"}`,secondary:l(),direction:"incoming"}}case 6:{const s=String(n.sender1??"").trim().toLowerCase()===o,d=i(s?"ticker1":"ticker2"),u=i(s?"ticker2":"ticker1");return{title:"Completed swap",subtitle:`With: ${ue(n[s?"sender2":"sender1"])}`,amount:a(s?"value1":"value2",d,"-"),secondary:a(s?"value2":"value1",u,"+"),direction:"neutral"}}case 7:{const s=String(n.lender??"").trim().toLowerCase()===o;return{title:s?"Loan funded":"Loan received",subtitle:s?`To: ${ue(n.borrower)}`:`From: ${ue(n.lender)}`,amount:a("loan_amount",i("loan_coin"),s?"-":"+"),direction:s?"outgoing":"incoming"}}case 8:return{title:"Loan payment",subtitle:`Contract: ${ue(n.contract_hash)}`,amount:`-${re(n.payback_amount)}`,direction:"outgoing"};case 10:return{title:`Burned ${i("coin")}`,subtitle:"Removed from supply",amount:a("value",i("coin"),"-"),direction:"outgoing"};case 11:{const s=i("ticker");return{title:`Issued ${s}`,subtitle:"Additional token supply",amount:a("number",s,"+"),secondary:l(),direction:"incoming"}}case 12:return{title:"Created vanity address",subtitle:String(n.vanity_address??"").trim(),amount:l(),direction:"outgoing"};default:return{title:e.transaction_name,subtitle:"Contractless transaction",amount:l(),direction:"outgoing"}}}async function cr(e,t){const n=c("activity-list");if(n.replaceChildren(),c("activity-count").textContent=`${e.length} shown`,e.length===0){const r=document.createElement("div");r.className="activity-empty";const i=document.createElement("strong");i.textContent="No wallet activity found";const a=document.createElement("span");a.textContent="New transactions will appear here after they reach the selected API.",r.append(i,a),n.append(r);return}const o=await Yt((g==null?void 0:g.selectedNetwork)??"testnet");e.forEach(r=>{let i;try{i=JSON.parse(o.decode_transaction(r.transaction_hex))}catch{const E=Number.parseInt(r.transaction_hex.slice(0,2),16);i={txtype:E,transaction_name:On[E]??`Transaction Type ${E}`,fields:{}}}const a=sr(i,(g==null?void 0:g.address)??""),l=ln(r.transaction_hex),d=ht(r.block_height,t){fn(r)}),n.append(u)})}async function mn(){if(!(g!=null&&g.unlocked))return;c("activity-count").textContent="Loading";const e=c("activity-list");e.replaceChildren();const t=document.createElement("div");t.className="activity-empty",t.textContent="Loading recent activity...",e.append(t);try{const n=await $("wallet-activity");await cr(Array.isArray(n.transactions)?n.transactions:[],Number(n.current_height??0))}catch(n){e.replaceChildren();const o=document.createElement("div");o.className="activity-empty activity-error",o.textContent=F(n),e.append(o),c("activity-count").textContent="Unavailable"}}function F(e){return e instanceof Error?e.message:String(e).replace(/^JsValue\((.*)\)$/,"$1")}async function U(e,t=!1){M.textContent="",t&&I("loading");try{await e()}catch(n){throw M.textContent=F(n),n}}function Q(e,t){if(!e.trim())throw new Error(t);return e}function lr(e){let t="";for(let o=0;oURL.revokeObjectURL(r),1e3)}async function gn(e,t){g=e,fe=t,ie=String(await $("export-private-key-image",{password:t,imagePassword:t})),c("wallet-image-preview").src=`data:image/png;base64,${ie}`;const n=c("backup-confirmed");n.disabled=!0,n.checked=!1,c("open-wallet").disabled=!0,I("backup-screen")}document.querySelectorAll(".navigation").forEach(e=>{e.addEventListener("click",()=>{const t=String(e.dataset.screen);if(t==="image-screen"&&en){chrome.tabs.create({url:chrome.runtime.getURL("import-wallet.html"),active:!0});return}I(t)})});c("account-menu-button").addEventListener("click",()=>z(!0));c("close-account-drawer").addEventListener("click",()=>z(!1));c("drawer-backdrop").addEventListener("click",()=>z(!1));function hn(e){z(!1),c("cancel-wallet-add").hidden=!1,I(e)}c("menu-create-wallet").addEventListener("click",()=>{hn("create-screen")});c("menu-import-wallet").addEventListener("click",()=>{z(!1),en?chrome.tabs.create({url:chrome.runtime.getURL("import-wallet.html"),active:!0}):hn("image-screen")});c("cancel-wallet-add").addEventListener("click",()=>{c("cancel-wallet-add").hidden=!0,g&&V(g)});c("menu-settings").addEventListener("click",()=>{z(!1),gt(),g&&(c("settings-testnet-api-url").value=g.testnetApiUrl,c("settings-mainnet-api-url").value=g.mainnetApiUrl,c("settings-lock-timeout").value=String(g.autoLockMinutes)),I("settings-screen")});c("close-settings").addEventListener("click",()=>{gt(),g&&V(g)});c("drawer-lock-wallet").addEventListener("click",()=>{U(async()=>{z(!1),fe="",ie="",V(await $("lock"))})});c("open-receive").addEventListener("click",()=>{U(er)});c("open-send").addEventListener("click",()=>{U(async()=>nr())});c("close-send").addEventListener("click",()=>{G=void 0,P?(xe(P),I("nft-detail-screen")):g&&V(g)});c("send-asset").addEventListener("change",Re);c("send-amount").addEventListener("input",Re);c("send-form").addEventListener("submit",e=>{e.preventDefault(),U(or)});c("send-form").addEventListener("keydown",e=>{!(e instanceof KeyboardEvent)||e.key!=="Enter"||e.target instanceof HTMLInputElement&&(e.preventDefault(),c("send-form").requestSubmit())});c("edit-send").addEventListener("click",()=>{I("send-screen")});c("sign-broadcast-transfer").addEventListener("click",()=>{U(async()=>{if(!G)throw new Error("The reviewed transfer is unavailable.");ve=(await $("wallet-broadcast-transfer",{transaction:G.transaction})).txid,c("send-result-txid").textContent=ve,G=void 0,I("send-success-screen")})});c("copy-send-txid").addEventListener("click",()=>{ve&&navigator.clipboard.writeText(ve).then(()=>{M.textContent="Transaction ID copied."}).catch(e=>{M.textContent=F(e)})});c("finish-send").addEventListener("click",()=>{ve="";const e=!!P;P=void 0,g&&(Be(),e?(Z=void 0,I("nfts-screen"),pt(!0)):V(g))});c("open-activity").addEventListener("click",()=>{I("activity-screen"),mn()});c("open-nfts").addEventListener("click",()=>{K=1,Z=void 0,I("nfts-screen"),pt(!0)});c("close-nfts").addEventListener("click",()=>{ae+=1,g&&V(g)});c("refresh-nfts").addEventListener("click",()=>{pt(!0)});c("close-nft-detail").addEventListener("click",()=>{Z=void 0,I("nfts-screen")});c("transfer-nft").addEventListener("click",()=>{U(async()=>{if(!Z)throw new Error("No NFT or RWA is selected.");rr(Z)})});c("nfts-previous").addEventListener("click",()=>{if(K<=1)return;K-=1;const e=++ae;Ce(),mt(e)});c("nfts-next").addEventListener("click",()=>{const e=Math.max(1,Math.ceil(H.length/we));if(K>=e)return;K+=1;const t=++ae;Ce(),mt(t)});c("close-activity").addEventListener("click",()=>{g&&V(g)});c("close-transaction").addEventListener("click",()=>{tn==="nft"&&Z?(xe(Z),I("nft-detail-screen")):I("activity-screen")});c("copy-transaction-txid").addEventListener("click",()=>{const e=_e==null?void 0:_e.txid;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Transaction ID copied."}).catch(t=>{M.textContent=F(t)})});c("refresh-activity").addEventListener("click",()=>{mn()});c("refresh-balances").addEventListener("click",()=>{Be()});document.querySelectorAll("[data-token-filter]").forEach(e=>{e.addEventListener("click",()=>{Te=e.dataset.tokenFilter==="all"?"all":"held",document.querySelectorAll("[data-token-filter]").forEach(t=>{t.classList.toggle("active",t===e)}),st()})});c("close-receive").addEventListener("click",()=>{g&&V(g)});c("copy-receive-address").addEventListener("click",()=>{var t;const e=(t=c("receive-address-value").textContent)==null?void 0:t.trim();if(!e){M.textContent="No active wallet address is available.";return}navigator.clipboard.writeText(e).then(()=>{M.textContent="Wallet address copied."}).catch(n=>{M.textContent=F(n)})});c("save-wallet-settings").addEventListener("click",()=>{U(async()=>{const e=c("settings-testnet-api-url").value.replace(/\/+$/,""),t=c("settings-mainnet-api-url").value.replace(/\/+$/,"");if(!e)throw new Error("A testnet API URL is required.");for(const n of[e,t].filter(Boolean)){const o=new URL(n);if(o.protocol!=="https:"&&o.hostname!=="localhost"&&o.hostname!=="127.0.0.1")throw new Error("Contractless API URLs must use HTTPS.");const r=`${o.origin}/*`;if(!await chrome.permissions.contains({origins:[r]})&&!await chrome.permissions.request({origins:[r]}))throw new Error("Permission to contact this API endpoint was denied.")}g=await $("save-settings",{testnetApiUrl:e,mainnetApiUrl:t,autoLockMinutes:c("settings-lock-timeout").value}),M.textContent="Settings saved."})});document.querySelectorAll("[data-select-network]").forEach(e=>{e.addEventListener("click",()=>{const t=e.dataset.selectNetwork;!t||t===(g==null?void 0:g.selectedNetwork)||U(async()=>{z(!1),V(await $("switch-network",{network:t}))})})});document.querySelectorAll("[data-backup-action]").forEach(e=>{e.addEventListener("click",()=>{dt=e.dataset.backupAction,Ee(!0)})});c("close-backup-key").addEventListener("click",()=>Ee(!1));c("backup-key-backdrop").addEventListener("click",()=>Ee(!1));c("confirm-backup-key").addEventListener("click",()=>{const e=dt,t=c("backup-key-input").value;if(e){if(!t){M.textContent="Enter the active wallet encryption key.";return}U(async()=>{var r;if(e==="image"){const i=String(await $("export-private-key-image",{password:t,imagePassword:t})),a=((r=g==null?void 0:g.address)==null?void 0:r.split(".")[0])??"contractless";pn(i,`${a}.wallet.png`),Ee(!1),M.textContent="Wallet image downloaded.";return}const n=await $("reveal-private-key",{password:t});if(Ee(!1),e==="private"){c("revealed-private-key").value=n.privateKey,c("private-key-result").hidden=!1,c("private-key-result").scrollIntoView({block:"nearest"});return}const o=crypto.randomUUID();await chrome.storage.session.set({[`print-backup:${o}`]:{label:n.label,address:n.address,privateKey:n.privateKey,encryptionKey:t}}),await chrome.windows.create({url:chrome.runtime.getURL(`print.html?id=${encodeURIComponent(o)}`),type:"popup",width:820,height:760})})}});c("clear-private-key").addEventListener("click",gt);c("copy-private-key").addEventListener("click",()=>{const e=c("revealed-private-key").value;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Private key copied."}).catch(t=>{M.textContent=F(t)})});document.querySelectorAll(".reveal").forEach(e=>{e.addEventListener("click",()=>{const t=c(String(e.dataset.input)),n=t.type==="text";t.type=n?"password":"text",e.textContent=n?"Show":"Hide"})});c("continue-create").addEventListener("click",()=>{try{Le=Q(c("new-password").value,"Enter an encryption key."),c("verify-password").value="",I("verify-screen")}catch(e){M.textContent=F(e)}});c("create-wallet").addEventListener("click",()=>{if(c("verify-password").value!==Le){M.textContent="The encryption keys do not match.";return}U(async()=>{const t=Le,n=await $("create-wallet",{password:t});Le="",c("new-password").value="",c("verify-password").value="",await gn(n,t)},!0).catch(()=>I("verify-screen",!1))});const ct=c("wallet-image");ct.addEventListener("change",()=>{var t;const e=(t=ct.files)==null?void 0:t[0];ge="",c("image-file-name").textContent=(e==null?void 0:e.name)??"Choose wallet image",e&&e.arrayBuffer().then(n=>{ge=lr(new Uint8Array(n))}).catch(n=>{M.textContent=F(n)})});c("import-image-form").addEventListener("submit",e=>{e.preventDefault();const t=c("image-password").value;try{Q(t,"Enter the wallet image encryption key."),Q(ge,"Choose a wallet image.")}catch(n){M.textContent=F(n);return}U(async()=>{const n=await $("import-wallet-image",{imageBase64:ge,imagePassword:t,password:t});fe=t,ge="",ct.value="",c("image-password").value="",V(n)},!0).catch(()=>I("image-screen",!1))});c("import-private").addEventListener("click",()=>{const e=c("private-key").value.trim(),t=c("private-password").value;try{Q(e,"Paste the private key."),Q(t,"Enter a new encryption key.")}catch(n){M.textContent=F(n);return}U(async()=>{const n=await $("import-private-key",{privateKey:e,password:t});c("private-key").value="",c("private-password").value="",await gn(n,t)},!0).catch(()=>I("private-screen",!1))});c("save-image").addEventListener("click",()=>{U(async()=>{var n;if(!ie)throw new Error("The wallet image is not ready.");const e=((n=g==null?void 0:g.address)==null?void 0:n.split(".")[0])??"contractless";pn(ie,`${e}.wallet.png`);const t=c("backup-confirmed");t.disabled=!1,t.checked=!1,c("open-wallet").disabled=!0})});c("backup-confirmed").addEventListener("change",e=>{c("open-wallet").disabled=!e.currentTarget.checked});c("open-wallet").addEventListener("click",()=>{fe="",ie="",c("wallet-image-preview").removeAttribute("src"),g&&V(g)});c("unlock-form").addEventListener("submit",e=>{e.preventDefault();const t=c("unlock-password").value;try{Q(t,"Enter your encryption key.")}catch(n){M.textContent=F(n);return}U(async()=>{const n=await $("unlock",{password:t});fe=t,c("unlock-password").value="",V(n)},!0).catch(()=>I("locked-screen",!1))});c("approve-provider-approval").addEventListener("click",()=>{oe&&(ye("approve"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!0});oe="",await nn(e.remaining??0,!0)}).catch(()=>ye(null)))});c("reject-provider-approval").addEventListener("click",()=>{oe&&(ye("reject"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!1});oe="",await nn(e.remaining??0,!1)}).catch(()=>ye(null)))});$("status").then(e=>V(e)).catch(e=>{I("create-screen"),M.textContent=F(e)}); diff --git a/extension/dist/chrome/print.html b/extension/dist/chrome/print.html new file mode 100644 index 0000000..7eeccfa --- /dev/null +++ b/extension/dist/chrome/print.html @@ -0,0 +1,44 @@ + + + + + + Contractless Wallet Backup + + + + + +
+ +
+

Contractless Wallet Backup

+

Private recovery information

+
+
+ +

+ Keep this page private. Anyone with the private key and encryption key can + control this wallet. +

+ +
+

Wallet

+

+    
+
+

Address

+

+    
+
+

Private Key

+

+    
+
+

Encryption Key

+

+    
+ + + + diff --git a/extension/dist/chrome/print.js b/extension/dist/chrome/print.js new file mode 100644 index 0000000..c86b6e5 --- /dev/null +++ b/extension/dist/chrome/print.js @@ -0,0 +1 @@ +import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";async function a(){const e=new URLSearchParams(location.search).get("id");if(!e)throw new Error("Missing printable wallet backup.");const n=`print-backup:${e}`,o=await chrome.storage.session.get(n);await chrome.storage.session.remove(n);const t=o[n];if(!t)throw new Error("The printable wallet backup has expired.");document.getElementById("wallet-label").textContent=t.label,document.getElementById("wallet-address").textContent=t.address,document.getElementById("wallet-private-key").textContent=t.privateKey,document.getElementById("wallet-encryption-key").textContent=t.encryptionKey,setTimeout(()=>{window.focus(),window.print()},150)}a().catch(e=>{document.getElementById("print-error").textContent=e instanceof Error?e.message:String(e)}); diff --git a/extension/dist/chrome/provider.js b/extension/dist/chrome/provider.js new file mode 100644 index 0000000..47444f0 --- /dev/null +++ b/extension/dist/chrome/provider.js @@ -0,0 +1 @@ +const a=new Map;window.addEventListener("message",e=>{var s,t,o;if(e.source!==window||((s=e.data)==null?void 0:s.source)!=="contractless-wallet")return;const r=a.get(e.data.id);r&&(a.delete(e.data.id),(t=e.data.response)!=null&&t.ok?r.resolve(e.data.response.result):r.reject(new Error(((o=e.data.response)==null?void 0:o.error)??"Wallet request failed.")))});const n=Object.freeze({isContractless:!0,request({method:e,params:r}){const s=crypto.randomUUID();return new Promise((t,o)=>{a.set(s,{resolve:t,reject:o}),window.postMessage({source:"contractless-page",id:s,method:e,params:r},window.location.origin)})}});Object.defineProperty(window,"contractless",{value:n,writable:!1,configurable:!1}); diff --git a/extension/dist/chunks/core-CvwXoH-U.js b/extension/dist/chunks/core-CvwXoH-U.js new file mode 100644 index 0000000..559b415 --- /dev/null +++ b/extension/dist/chunks/core-CvwXoH-U.js @@ -0,0 +1 @@ +function I(t,e,r,_,o){let l,c;try{const w=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),p=a,q=s(_,n.__wbindgen_malloc,n.__wbindgen_realloc),v=a,F=s(o,n.__wbindgen_malloc,n.__wbindgen_realloc),U=a,k=n.complete_dual_transaction_request(w,d,y,m,b,p,q,v,F,U);var i=k[0],f=k[1];if(k[3])throw i=0,f=0,u(k[2]);return l=i,c=f,g(i,f)}finally{n.__wbindgen_free(l,c,1)}}function M(t,e){let r,_;try{const c=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),i=a,f=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=n.create_handshake_proof(c,i,f,w);var o=d[0],l=d[1];if(d[3])throw o=0,l=0,u(d[2]);return r=o,_=l,g(o,l)}finally{n.__wbindgen_free(r,_,1)}}function B(t,e){let r,_;try{const c=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),i=a,f=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=n.create_wallet_registration(c,i,f,w);var o=d[0],l=d[1];if(d[3])throw o=0,l=0,u(d[2]);return r=o,_=l,g(o,l)}finally{n.__wbindgen_free(r,_,1)}}function C(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.create_wallet_registration_from_keys(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function D(t){let e,r;try{const l=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),c=a,i=n.decode_transaction(l,c);var _=i[0],o=i[1];if(i[3])throw _=0,o=0,u(i[2]);return e=_,r=o,g(_,o)}finally{n.__wbindgen_free(e,r,1)}}function j(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.export_legacy_wallet(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function z(t){let e,r;try{const l=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),c=a,i=n.generate_browser_wallet(l,c);var _=i[0],o=i[1];if(i[3])throw _=0,o=0,u(i[2]);return e=_,r=o,g(_,o)}finally{n.__wbindgen_free(e,r,1)}}function N(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.import_legacy_wallet(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function V(t,e){let r,_;try{const c=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),i=a,f=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=n.import_private_key(c,i,f,w);var o=d[0],l=d[1];if(d[3])throw o=0,l=0,u(d[2]);return r=o,_=l,g(o,l)}finally{n.__wbindgen_free(r,_,1)}}function G(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.import_private_key_image(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function H(t){let e,r;try{const l=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),c=a,i=n.inspect_transaction_request(l,c);var _=i[0],o=i[1];if(i[3])throw _=0,o=0,u(i[2]);return e=_,r=o,g(_,o)}finally{n.__wbindgen_free(e,r,1)}}function P(t,e,r){let _,o;try{const i=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),f=a,w=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),d=a,y=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),m=a,b=n.sign_message_request(i,f,w,d,y,m);var l=b[0],c=b[1];if(b[3])throw l=0,c=0,u(b[2]);return _=l,o=c,g(l,c)}finally{n.__wbindgen_free(_,o,1)}}function X(t,e,r,_){let o,l;try{const f=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),y=a,m=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),b=a,p=n.sign_transaction_request(f,w,d,y,m,b,_);var c=p[0],i=p[1];if(p[3])throw c=0,i=0,u(p[2]);return o=c,l=i,g(c,i)}finally{n.__wbindgen_free(o,l,1)}}function Y(){let t,e;try{const o=n.transaction_type_registry();var r=o[0],_=o[1];if(o[3])throw r=0,_=0,u(o[2]);return t=r,e=_,g(r,_)}finally{n.__wbindgen_free(t,e,1)}}function J(t,e){let r,_;try{const c=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),i=a,f=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=n.unlock_browser_wallet(c,i,f,w);var o=d[0],l=d[1];if(d[3])throw o=0,l=0,u(d[2]);return r=o,_=l,g(o,l)}finally{n.__wbindgen_free(r,_,1)}}function K(t,e,r,_){let o,l;try{const f=s(t,n.__wbindgen_malloc,n.__wbindgen_realloc),w=a,d=s(e,n.__wbindgen_malloc,n.__wbindgen_realloc),y=a,m=s(r,n.__wbindgen_malloc,n.__wbindgen_realloc),b=a,p=s(_,n.__wbindgen_malloc,n.__wbindgen_realloc),q=a,v=n.verify_message_proof(f,w,d,y,m,b,p,q);var c=v[0],i=v[1];if(v[3])throw c=0,i=0,u(v[2]);return o=c,l=i,g(c,i)}finally{n.__wbindgen_free(o,l,1)}}function Q(){return{__proto__:null,"./contractless_browser_core_bg.js":{__proto__:null,__wbg___wbindgen_is_function_1ff95bcc5517c252:function(e){return typeof e=="function"},__wbg___wbindgen_is_object_a27215656b807791:function(e){const r=e;return typeof r=="object"&&r!==null},__wbg___wbindgen_is_string_ea5e6cc2e4141dfe:function(e){return typeof e=="string"},__wbg___wbindgen_is_undefined_c05833b95a3cf397:function(e){return e===void 0},__wbg___wbindgen_throw_344f42d3211c4765:function(e,r){throw new Error(g(e,r))},__wbg_call_a6e5c5dce5018821:function(){return R(function(e,r,_){return e.call(r,_)},arguments)},__wbg_crypto_38df2bab126b63dc:function(e){return e.crypto},__wbg_getRandomValues_c44a50d8cfdaebeb:function(){return R(function(e,r){e.getRandomValues(r)},arguments)},__wbg_length_1f0964f4a5e2c6d8:function(e){return e.length},__wbg_msCrypto_bd5a034af96bcba6:function(e){return e.msCrypto},__wbg_new_with_length_e6785c33c8e4cce8:function(e){return new Uint8Array(e>>>0)},__wbg_node_84ea875411254db1:function(e){return e.node},__wbg_process_44c7a14e11e9f69e:function(e){return e.process},__wbg_prototypesetcall_4770620bbe4688a0:function(e,r,_){Uint8Array.prototype.set.call(S(e,r),_)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return R(function(e,r){e.randomFillSync(r)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return R(function(){return module.require},arguments)},__wbg_static_accessor_GLOBAL_4ef717fb391d88b7:function(){const e=typeof global>"u"?null:global;return W(e)?0:h(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){const e=typeof globalThis>"u"?null:globalThis;return W(e)?0:h(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){const e=typeof self>"u"?null:self;return W(e)?0:h(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){const e=typeof window>"u"?null:window;return W(e)?0:h(e)},__wbg_subarray_3ed232c8a6baee09:function(e,r,_){return e.subarray(r>>>0,_>>>0)},__wbg_versions_276b2795b1c6a219:function(e){return e.versions},__wbindgen_cast_0000000000000001:function(e,r){return S(e,r)},__wbindgen_cast_0000000000000002:function(e,r){return g(e,r)},__wbindgen_init_externref_table:function(){const e=n.__wbindgen_externrefs,r=e.grow(4);e.set(0,void 0),e.set(r+0,void 0),e.set(r+1,null),e.set(r+2,!0),e.set(r+3,!1)}}}}function h(t){const e=n.__externref_table_alloc();return n.__wbindgen_externrefs.set(e,t),e}function S(t,e){return t=t>>>0,A().subarray(t/1,t/1+e)}function g(t,e){return $(t>>>0,e)}let x=null;function A(){return(x===null||x.byteLength===0)&&(x=new Uint8Array(n.memory.buffer)),x}function R(t,e){try{return t.apply(this,e)}catch(r){const _=h(r);n.__wbindgen_exn_store(_)}}function W(t){return t==null}function s(t,e,r){if(r===void 0){const i=T.encode(t),f=e(i.length,1)>>>0;return A().subarray(f,f+i.length).set(i),a=i.length,f}let _=t.length,o=e(_,1)>>>0;const l=A();let c=0;for(;c<_;c++){const i=t.charCodeAt(c);if(i>127)break;l[o+c]=i}if(c!==_){c!==0&&(t=t.slice(c)),o=r(o,_,_=c+t.length*3,1)>>>0;const i=A().subarray(o+c,o+_),f=T.encodeInto(t,i);c+=f.written,o=r(o,_,c,1)>>>0}return a=c,o}function u(t){const e=n.__wbindgen_externrefs.get(t);return n.__externref_table_dealloc(t),e}let E=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});E.decode();const Z=2146435072;let O=0;function $(t,e){return O+=e,O>=Z&&(E=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),E.decode(),O=e),E.decode(A().subarray(t,t+e))}const T=new TextEncoder;"encodeInto"in T||(T.encodeInto=function(t,e){const r=T.encode(t);return e.set(r),{read:t.length,written:r.length}});let a=0,n;function ee(t,e){return n=t.exports,x=null,n.__wbindgen_start(),n}async function ne(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(o){if(t.ok&&r(t.type)&&t.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",o);else throw o}const _=await t.arrayBuffer();return await WebAssembly.instantiate(_,e)}else{const _=await WebAssembly.instantiate(t,e);return _ instanceof WebAssembly.Instance?{instance:_,module:t}:_}function r(_){switch(_){case"basic":case"cors":case"default":return!0}return!1}}async function te(t){if(n!==void 0)return n;t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),t===void 0&&(t=new URL("/assets/contractless_browser_core_bg-C_vtp2Os.wasm",import.meta.url));const e=Q();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:r,module:_}=await ne(await t,e);return ee(r)}let L;async function re(){return L??(L=te()),await L,{complete_dual_transaction_request:I,create_handshake_proof:M,create_wallet_registration:B,create_wallet_registration_from_keys:C,decode_transaction:D,export_legacy_wallet:j,generate_browser_wallet:z,import_legacy_wallet:N,import_private_key:V,import_private_key_image:G,inspect_transaction_request:H,sign_message_request:P,sign_transaction_request:X,transaction_type_registry:Y,unlock_browser_wallet:J,verify_message_proof:K}}export{re as c}; diff --git a/extension/dist/chunks/modulepreload-polyfill-B5Qt9EMX.js b/extension/dist/chunks/modulepreload-polyfill-B5Qt9EMX.js new file mode 100644 index 0000000..3e0a78a --- /dev/null +++ b/extension/dist/chunks/modulepreload-polyfill-B5Qt9EMX.js @@ -0,0 +1 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function s(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=s(e);fetch(e.href,r)}})(); diff --git a/extension/dist/content.js b/extension/dist/content.js new file mode 100644 index 0000000..0ce4e56 --- /dev/null +++ b/extension/dist/content.js @@ -0,0 +1 @@ +const o=document.createElement("script");o.src=chrome.runtime.getURL("provider.js");o.onload=()=>o.remove();(document.head||document.documentElement).appendChild(o);window.addEventListener("message",e=>{var t;e.source!==window||((t=e.data)==null?void 0:t.source)!=="contractless-page"||chrome.runtime.sendMessage({type:"provider-request",method:e.data.method,params:e.data.params},a=>{window.postMessage({source:"contractless-wallet",id:e.data.id,response:a},window.location.origin)})}); diff --git a/extension/dist/contractless-logo.png b/extension/dist/contractless-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..729e4d758734de7d40045dd953e5e6ccae13c5b0 GIT binary patch literal 5286 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°qBLr4hXKR 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%0AX&pAfC9mR_gU>z@a-G*5n=uQ8 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

5M_^LIf#S`Ah z)*Oa8~K4dji1>_I_#A42lRYdxoHP=r$)lEM;v07Aiieln^vB zHX}qD2nsQKE3$9qQh$Ruk6mV0S*>Yn`6ixNeBa;AwfYeq)X+obNyAE<7W ztO^r?ce>1GRq<(iPsKcEvZ)kVby3U8se!*cOzkJ zfQ&9`E4&yG2hd@;(Fex>^Zf_AJ*&ZlD{>X7LI2ZO;6>nX^c^u~nt{tUItOMIq63M> zrr`wQR%;PVPdXvr`di0v3;?&q(Oog^D%;t&N!$37A<^PsnH_! z=Sp2$q~6EkbypXuPb;;dNPSzWvY&seRN3C#out+lIS(o&n6K8Bht5W^_Q)1MT$w6K1HXP^h|&&7>KuJootB^D-@`52gQv z-R~o=q4bs)x8)9flAJ8W_MXK2)6dIR-0ub*6m|DXHPns%y)7YQ zt@y+KqCv4hyMxke4a#2Hpm<}0@^N^P!^!1D+~^O~zn1rUPOphTMs1p+JU$e!kvkuX zxBlux)^^r93ypQE){RjL#)l9=K&scW=(LyCI&awNLNH#H?<7vvc2@bW%et@OOvSQj)QO_sq;c^{@Q_d3w*-x4S>&!L<`p(lCkt`siTkB_K4Yv*%giU$7k68A zbBXO_i|W*_WcK`p^L8>ZRkz?EqE*hMFw^^p*-Uy4Tby)(o;H)P{GPoQdfH5~jr*B| zNC)R3_Z!wZKa(($VJ4w(VJ5BDekKj046zXPY6(O=R~A0s2~FT`fDS7R4z4cm_0YQH zFI|(CF2V%wb)koiv>#`@_j-Xd3%%FR8;1E!{j69<}6*P%MU?nb?R#H7HvH*27~*$*CodCC~f*kR9rOv z-kF)o_M3OG5o!f-2!dgO%OH@mF=FN)dasr~-bbp^JBZ%P2?UsK(w}R6aMh(bubYQs49S%ENG=8ESnW?8<)HgU1d^+fVP*}xTo$|98zSAR z&51=LwgIU7iM&&|&wxQ~PPpbEadeoiJaK3Et+aoS$7`Z{Ss1qrje>F{-lYVU@MR-K z+JDfKg&2~`fUzbkXF=icMVzIM6Taw4d)OO;B)qs+UV@rRUG_b=oC{g?+(}*J4t$O= zeJ^29D~#LN7t6dtef2%8B)}Ebf2J51rk^&jKN!4S&ImxUpO`QVIKRKCs=+d50sZrt=p z(*#~%3Nn8VaOyPViKQj^4WcF1FX*nXO%eBsmauXAO|mOco*ylg^l8sF7Gr5@GmNxfc; z>-JyGG)&?4+>cA7SPeJJwm+T@Ny-XAHr<(t7GhpVHXvnM)qPjj%ML4}Tn!OynO|4c zc{gC*6ULcr;bK#=Nzj3u(5|DdZiG4c@1Ode4@`UKHc(Y7=Af?k@_BOJ z3E8SOB~8`&3qh3=9^W;TlZ{)#+YRnfT^8DGf1V|7@)h-3A9aSdAYvFK@}xH!k&zzm z*YV44V{%r5J|Ci*xW6UW~+v|Gqeq)h0rz(%`Q;AW(i6Hrxke^hl36?NOHGBi5B z?rxz_H{yWK66q=n{Er6Pt*l+fnQ@P)?%|?tz7_pG*5B`Lp-}f2buYv3uUr_BR&rPu z>i3_2mbwRuy7^YreI87@g+kp(G&-wMmWF=gsxdf>gw7{b_aCa?m7;FGU9j$Mp-^{5 z-77%MP&cY=w3S(hh;ebJ<2OZHvv4Ua-FCiKJY3FhA;|?R9c+|5Qvp$bEQ->U|Mma3 z$g7a0A|(kJDkez$QJk$U*gM!gqm=NX`2tF5w0(nkJ9JXwyc36L-}0gdS(q0$2_J*h z@|rG4jd@mVBeaJNkQ`SNsfnMBpfa*fuDLX{C2B#Shyw8+e+Cd&3lQ_|f*|e|3Lxe( z)6Q~jg&yq?5zE40Wq0}_x_3fTxIEO~!Hq%MB5`BbKQbZbwPr(O0d=bht=SGtNo-+R zd{&EU8xhKk!UVVjLd1Ie*Ztz`Qh}ZY>he+MJnSOna>=h8>#QviTna4gk;9mB zg$XevqWkVk8rpz0sGUWx!Xoy4=xCHx;kQ18by9pPN(2$^*8}DN1F_|ZpfhZd zU|g-TFl$zdojw5B>W(|iuR6V)skGGas%r_E(voYb zGPN!#l1lilr<|`30DI5Mx6usynGf}A>1e-28;vvp$a{1X+8M%>C<+=}j?RT_$ZpM?Ltk z_D2#$FF(c3mbGq(p4RWk=H#S)QE@+|-({PV6Z&1dnS1j1t#3}A)Gut|6Z&1bIXR}^ zD>f%b^-Iv?dHoJ=P9D>5#906;aBVcE9ga+K^2-w>k0dt!p=FsM-9p(s_ z+Z-{6Hb=nP<_Or@95L56N5p2eIRY1Kj+hIZBj(WNh`F~pVs31Xm{Xf0=J5PEDrZQf zPAgIqQ6jovU|x9VPn@759;|PUBt$f5Y1J;3tWib7Y=^1f2mFXsIbx6YN1?#y&zGv7 zNf1$iMF`$DhFY0H)%%pk9tmFbHG`SpXKilLkY&Kj`H2^+EG!ix3miqBdT~(ND-JTI z9ezQK0um^|pCKMI2~@WoiKgV9UsKTZS?N@lh>57VSxy|ZM1G`{UOH<(y&zUTb7z7W}j2Q{%^WK<|w)Q1S{f-n-sM&%@<+R6SW7O7|m9CO6MWpYhJLl~T zw@)70lf}EZ7OxW*x!aw{ZSFKuaZ@p!NC+l=J9p-d$F~Ei%AVWFjj$sckLNfXk%ROe z<*Mz<>qSO1Mtd}XJz2U-_bMTY$m&*<`J&D}<1$aN|DruvZI=|V1RL*Q{^JnZ>AHpS zW8AdIesqotsan&AZ`Z|pKXVwJA(#K{$)gZ}+=}hehBobfAZ02qHqSjYx!vNAw|;+F zlHM^Wfg+)5nj0c_^d9rW$wyefc>BCvPQ*N@C%@>8Wop7L#Pw4;`}2?z2fLv?GVa)? zf$;1oPH*E|#NQaYw3eb1~8`hhQk<6`LaRPvfW>>V7`p#?Ur0jx|X8fC1DJXX@c(3$r-D z7}iWkh23y(ll8DXv#{!ky|GK(9i91Hu!?TT;#uC$5|yIm%u`*iSQ)>8u=bz3$2%NJ zDT;L??5Yq3mlSNF2o#^6mj&EL&~5%H@@b(Oq2Ep0`)W!;Ho3IOMWs5ctS?_IYf4sJ zUKXiD;eUIaWYQidnY470VK6w!4Yx~EiA{M3n*|2v20zi8jw9;E({h-)h_@R+#(j6nIYd!*Qw~@@Vdajhk?q4Ksja?TO1)9cvV~!TC1NM zwANf6w8kz7t+k6o>k8k_KM=Rp8E!QeU8d^=l=GKqjGlBDQiqdbjS&1C%S6Q)_JBK5 z5IFZX#}1&BtW`Y~w!aItD_H2e^xxz|1Rl<6a^r~2U;dh7Q6`o!=jX#p9wbr0f&EaZ3G=z3=}f^rxR});_@{anaS$r zb=zC)+?p%Wy+hzIH6g{m-7=@n9w|F3qwS+*O8frtGNnO2U8HDjglMX~lk=<|xcH3x zI4XA%A)vNwbhO)ZJD+25BRj7j*H$ZM5Zl@L2`|+w(r9hN{DhbE&@S-+cJ9=(0i2wk zVUs6>vQ4NitZBV{7a|E5Nx+5XMpE!7<4_P%;W1+9oz>$)Hoe>79A??yPz{d>y_J)mixP z>O*j<6(aaRI9%ly5S3T7teb>%-@zBW-|S1GF9{dly=F)8RTgICsKUbU$*8tYPY#P^ zY|RDry-qyb!ad9Od(%4~a-Sf)RN&t^1Mu=(x`+SoQb(F|#l=JCUoAAS;A)|F7g2bm zdOTI6?#CwuV8|*VW$7vO5GVB5O!cGynQ7Z&>NJrk{ogRw(pg7mw3Mh{6csDzklV_H zLiL~@Vk+R|p%MbE)hBM-S7!CkRP;ji!~V|1+zJEXBDHkdomPrTAXPKg(>{v=670JB z!gMXY6_hznE?R+?MQ7-f?5NyZGAbyu;bawuH|4_Si8~H_FHpl zhpQMj(R1vG?%V|xt0??R#iA5S_GSGwp7Gn_a@$9>Y37P) zr@gd`hK?Gw<3)cBZV&2RqsEbRd zJ`!;0M;>0%7s@pBM+9E)OOkYVsyIoQ)q-IO@B*0H-p=66Zii*$mj6|JFTBS=aXgO@b`M2bV+y zPSC+Xbt9zqP5!A$kcGumG$8vPIKzdv($s=OCLy`5N*2GBM$-PIy&r&6f$xb=$z=q| zUg(5A3r)_ut41<$pmjsUrjlW5#8la7GmBb}fNFO%Y?mZ#Jmym!kVO}kj^BCL?A+c1 z^E2@sI-kqv146J}cp!p-5trx-4u(cPJVp+shK(|<^Ko5wHNL)w=w>I;tQCFYq) zn96)rU$WjWtb8l;KlEi;?-yeleBaghrTczb&S$-S*TDSH)r8euj6z5zw}sZB;7bTJ zBWaLF(==`cgshS5E_JiEQ!%xn2XR`iEidNU0WyKx6N zV!{5X1tw1w#7sJ#3BCe_)9+R=DtrLbr8m17WD6C<3JpjF3wluX72x)=uUmmRxNAWm zF6i%pn}M&S7D#|y84o~&75D@Re~D$dM5H73L$kK&yERQ7!78h?K9I!K65$vjoAfSR z&Lv7<`-TLg!ej6XmLOA{$jRry4A9YAK`lkwyoa*6aTI*f@paDycjp~XtX z=VY=&e1eWetdQ3&YqkN$n{IJ4JW*2>7j?~SWhZ_ucvt)P(!%w=g=eMYJHn3wK$!0j zp0M0Pi%1kAhG|vkCjGH)G8Au8rah|)P{gJRc4dGKXs)&gj4cWoT5BH$p9UUhjDE0H z+KFZjM*)S_VX5#lN-^G!D%gwu zDX}WA4=0QtY6_`j(TGW?Kz~_eRR}PMRfY80WYHByZ2?U;Ca*)1CBLUzCFGL7sG&%$ zuyozR5HiN%d%R_`6NO!0w}N-1Rjo4P))1J+I@EGiSOoKdlGi*wb*LKJzY{-{)!O&? z{m9monH3XWz>Bggj;4ef>_OT#7B;BCu-=M+p-?Vrj;!V=)C^w8@!57e)ojsVC2>Bh zgOcqLX)uKkCn*h@MQ0>iX1uLmO9EC3cb?D%V#;z1eA68Ytfo1thoRBZ#P>%1W%)J* z1zz!z2-*@qrc*3pd+q^DoWXrC@VllLe zf@%PW>k$FoEsn~Ni8Uykk|^G;nMsv0Ih#O-NgBF)zeee#ogCV)5}ty$bj!X#cVr3! z*MH~(#5G>;p5VtWEl~H}y-FFF>Tb2WuSmU1;w~_Ah8FAy1;TV}GZo}mL|UM2W2Wpe z+s+&SHKqfa_;ur0mF$SbB?be|=jZS#CiWm#OmG7<@c5ef7!SN*Ob3~S(P%9ZQ-ME~ zX+u0MC3g>3zB+^S1RatoL&CM)M&B>l#C0glxTfo}TF`o;J$AwG$HnCXp0l+@XqG(; z7w#iZ0JiA*1cRV|DPmftKoEd!=W1QW(5-D918%5cfKkQW*?7YkKUhhWA8UtonSC~Q zn@ondC%xgRpaiV8Re(pCBqsdLD%<22ZDbS*i^~=0iSj^~W}tZ2a;f6_*FH%Z=1U$% zkOgg>_JUgiQF#FJ#~xsnJRm+uzGt@bG1HB}Pvg2g8`}Cp@9>RMC0po2IdZ4XraM?I z3l@cu^#;LJD~I!XF)TC=M9$zpIeybmjfcN>U$&~yU|cNyj0Pi`0<^StdT+|sU|?@G z7=8wI4gtV!?|YAi!PwiFQBYkunACXc|5XMv`vorRw3)fsVE)M>=G>p6s=Fj&-Zu#8 z28X~#&Lg(>Mz4r5IFVuv8tvLs&=S)hD_j<66x~XkECqxqwo;u5DeuF%9QoE~EqE{l z>Iz*~57AN77Q67k-N`yvc-wujRTj90uV5dUFhrV~ctwoYC9zx-!NxH5$hUoE1TCZC zdqUN06(P8dsXkbo7Tr+7!OVm|(9@?GyQ12dC{QYJqmNV~UN8teLsT0p=cT0Ql_Psm z)YwQi0xeW^T7h1yqke=Y$540`-?bvD4Lby5wQx5YBs?Z}h!#nQW=t>~?Y8*~vW|Y^M#Tmg^pM7y7yH6UJFO-TJhN zjtMQtE->Mq4s!`&tmC+={T12+G8`f7Q;7~9Peks)hT{MabU+8GApG&P{%jR4)ZEj5 z1!jP!y8goU_2-Qd0UqaL#6Jj>*4Im61Q9kdVZbh!fe2*u&u!@jf_pKwwgaFw5n_ zkJ2rE0edY{T#Rs_Rr+X1QKb(v&3KKPvd!dXk%#yag zbZ6O+(s#|%FI4>69gL~(=jj2?LWViH0GkiD4q>A6m*DdebOHrq@iFGmi3G&5V>9F< zllchjzF2)@@#kI#K-e`DQX??>i*oozujqoLAb_wwFmPCmXcJ+x8F}=|NoGFqhQM^8G$NW_AHQSQtpM-}k6CQHRx*Kx^ zgoo7&3JV6Y}Uyf^W}!?pE!?2$mBMNCbT0BNgY=>QWTg=|>|k;H+V z2wQm=oRG{BWS@z(LimMPz>C7n2Wy9@w06LujSq#jgIEbdxpa*ixIKdxJ=P9G&IB!b zTNq4~dCcD7yefvA#qy-Y4H0fp*4LiWLq(Hj^FUzaR{K|MIErJ@`hUGR%Va7n16C43 z1b!KM9t#50$oY_wGhjf})>mFfJsRAgS!MF{uZ*t|B(FUxPu9ELDCLh;LOjDiDTS>{ z*x*Jd(jv17n9R(i5TOn*4>kKN%m#4h8Ipx9W@Z5zC7mK?AR>@;`fccAb?c8>AtZ-R z(VDHYyL#QByY|xbZ@f{}?)&Dl%TeXS(g#_X$}JoPkp!wfe|WR%0F+3b+W@B^M4=t<;OMx9g#D&oHSapqo< znF_&~{#qwTkY1WbwPCG=Dk3-gP2F1ssC2$lJ6k3}D##EEWEa8(f0oYD{|FWA5!6HH zDsKHR7XipM3XF`n=1MrDbF>|z?TCys3PaK| zqTGXd{Wn9WPVfG|Smf1E!y?702(yyF!)qUgQW)WSbBN{OWw<()~o9p1v%V?xgJG(epdGF${cO6*8Wz`kFBQ#s$WY$1{BeBH|3o zs!yI@bpg{SFWpysfi?c5a-G!){n0#~y>Oi;FI^|zN-AueZW@l=K_zupuOh0)?vRqHlE|-O_faJ)N}59FV@g_8QX9HY zDmkLBut2fi_%hxkzTg?3uO<+OI|S2&Hld_7m0agZzQlivIUJ8gmc%L?~C^b6Z~F3JxdxP`)Aw z9fO{2U>!m(Gpe%y7${TrC_<)44XRZ!D+vV8uavz5AdGx;wVeqSx+^8oGSSG~KFS-A zwB&6&`A@7-zxT48lv)&Sh|1zg&mzP?#EWS8Jv?5!hq0TGHBK-EcnATl1u%W1Ng^x$ zFA9l;BFV-Ak))In7Z6Dzt7N-ZZixBA`wQ`^UUp)TQfh2|z(}ShHFA$^KH^`Q`Lh+6 zP`CHP^CI_KF83eM(qTNA9R7T~woAyOAI^V$u_b>fjjUcXX7m^08-vvtO6YRtLk6co zLf; zs0vT{Ct`e@^-lz0*!PH)z#{(<|3uiPC;Sup`zim#`keh8Hg?#l`R%v~$S8QLw z9_LP}GVLxktu2W)CuO|>@{m_HvJ21w zfN4u!^f+-RVc0J%&A;ch$t%5G+3Bw@pUhWrl33*qd}5euao}T~ydU4>7Vn6K#YMeP zjL+O(f3~Ic-09jxzMAlFJf7uo4Z-GkoI#E=#?2}`&T;$NS{|O*%fnK=(ZdybnCJGk zI`yCCOcXBt>!&%=@PZZBL=iSfr=coOnsv{B7|H?Hd_y+i1_)mb)07QN5`?MWG@NI~l+@?}#d;*oU>52MR>C)9Lx5NtsF+yAJjXIJoN)Yn{1$9=D2b(TIV0sn1lhX!{ za*eDgL#zt4n%XzX>t^3CF$(7$Uk9@Oo;pnBR@AYa!8Ag<(k^uCIP;sK4)ub-j5Mmq ze~i7ol`vOaibV6AE7~(eP}BgGkOUIP+!?NLnPfcnNqGoYpghE(Rebq62h1T1!3N~c zqI;l+-EObr;N&!%Et5+Net>dmK|hV`Ijc!gvd*3S&+mKSj&1TAyz^vazW`^@o%^$y zM|W>yy$qiB4c%jJcAwMTdEngVqRD(^#?40yzNE; zU2rHb+yI{k{Q9OMo>;sWuVuPZ)L`HUK7I1ATc_Ec%&OZV{N^>tWh&++1k-|0f2*)w zH;_F288Ft&1D0_a)$t-FYA`_j7}@*uo=4#X?koS@PUSImL%WXn`-LrbN+r zEg}yFl(!7&>J0hmrgGezIS^*S9pK4ra7Xn*GF<`0J=t@yy5QnY_PmgE)159}xLuB$ ziB;PCRRtbI)AqtVS^*UoWkD5j*<)VZ7h`QO7@E*SrU)sw{%I%hhBEAN7|Mtv*piwA z9eo16!Md#rqt0v?D}d$92!qs13}u>-(sT;ybPO8?o=ZcSs?BawhBD-s?yOM6AtsRU zjWU#3k*(lpPen`3PzI~g!cfLK*932cQp`Ot9i|FWn8xd;t^kjd`EnBialN;(A*mV4 zz=Eq=_JuQx3}rZ9xo3X)bF!3q>{sx`H7IM6?o-N^!U{>=i`040K*VQuJ{p?@zp|@& ziVCf4QT4rL)m+GD1N4?aX6o2CU*)l8UdeVm4qXiC?i zx}@x=X1KYt$~7WQS6A5)W+_ZaPFsRlYduU+mvs6nU5@cbz*~zBsKH zncHjZhp5Jg#JijL0jDLh8_6PVCsj}e;S!6uUu`y>(U&LiEr4%Q?90EA0il#h^)M}Pftr>!FJ#RuK2+24oN^z0Ub&AvuiQt=+(sSVL%)nXE=+MM zoY2)?990IQC>uralSVrCjdCprBtnOo_IpTkX1>3!RiHB=rvZ0d^=nrWwq&a|CY*%) z8FH2T8d-t-D)%s_qq6c<2<_SJF~1D0`O_2Cg%_nl!@VD(qZ_?eU=_=e|MOaYVl_JdJewdIAlN)Gi#t*fhs=if;>acFK<2Orkxy zBHVeB^#ZO|u1g7p8lL90h6ro+n0}!;kLnA3e?;lc9Pw{V4%y?4$;0|3_Q65@BELJJ z-|H;PefD@`vR}UndZu5Z8gms`1xmd+nJdBAsT)AO?Hyzh!ovKa6W8`FV`J^ckZtihQg;-{h)AW99bT=BoZYq5$+=;}LRmD`BEwEamGoXxhhRJ7DVRT4Hx%=zj7JqdiZQMZ{-WdQf9zh>f zMUE1OV|l)MV=}+Do;Rm@ZPR;690PBP4koUpz#wdCcJVwhxn|IAPIJBEHfkf8a@`H; zI^HYE?UnqU)X~pXMKxHAZO-vl-Gj}_qqtQ zz}718@VHzBLd8?Nc+v|DQ+2Tp%SW~?{9qZPXEcN5GjA=ml?Wlb$n9p1MO-DUY&A7| zlJ=KDm=Od|xp~o=XT$CVsJ>|9Ip16w<|2vUI`?%exq?z-@ETCzx>JF?XL>P zl*{t)o#*oVP5S&2fSza9WH0e^=4Y2~Go=6sE<^o3p= z=KaM!nPyjQ<%pMNui84)%&xted!Y@E>!__4u4B|z4q}~e$ObXSv!+c0(tFY+f{b-5 zY3hS|M#eBv>$(+=@J&;!O7t8mX=+IA+`nw+@Kh|d4r+d8cF3dzHD;CT^s-noEb~v* zT;|uYPaTWh_v=g^;q-_lb#7$)q#OQ)L%bNcXM9HDYyP`wPsz*8N3(lC1OmBizI&W| zpfikq+St_~{kmx<5u1Hrmd$r(D}7*=>kBQJD)F^Z->&f+=d$a^e|&CsZam&Ij?1GJ zq}6PWiudq;qE8XoWp3Bqw?8!Tc;3$1+n|{{z)?l8Vqn_GVVDykQ(~tYMm)lYWfo}@ z`8uqmq3r)E!_3O$r9+aLL1s$Ao+1~6B;`owA-3PBuv4iX5{Z`)UK1APh(QSmb(ll+ zBs$dLLgBF(=3>eLN$jkQ!zf#RC)X63#O{CLe}6LZZ}f+G1Pe;V2=Rgt%S!qfAw|N3 zBg?CKp|Ru`3s;V>ktd2pS8;mOY%%F&iz&x+7+XYiJYpLZk?!<-fu$>(*jYKOUN!MC6}4`A?od`A=S~KN<2Yjw750 z3&9CD^H5ztg2pbR2t+Hm2`R|Ba9HrhIDoQNCR(ONKVq-CG&;K}Z?Wl@!4QC*LDmIw zK>bklJj<-mFBbDt83dj8tm-heos^^j5X;&1Q$%QXM~?IYV-a^S>JvJOMZy4pOlu2wkL z)e7gjTH#y=rwIgmogOV9ybjUFuj%|v3RtjYs4q5hx(z3sAyB-AgTwdDzKix9Xu6%?sISaAz`xx2BA=`1^ogqh0yvj_eL{7mC|^7`8N7j9xHFxcH#0Pb}-R;D?1b zM1TQ@ia1eRND(FwER*E73~ofnns9$Dx{a`Dm?mJ!Qj4zyFurpEY#fB;DgntGIs}}G zlYN+Z4F4J!#~(lP>1uZ6evN;m4qbr0la@CLMlyb!MycROaL{$@;@h zva!`iO8)3e zAf2Mm(llrm7se)4&+RNuPO&2PIz0i;hG08>E#rQc-!-CG4#XVXR3?+W;cZr8f>`FK zFu}c5zs2`>s?gZK-Lq=A)RD%H`|s709qixj-VPwj@1u^%@}2tS--hD*4QsqRt8+1+ zeO>2bO%4C#SDs2%C%kciIQu0s4a2nNuJ49(-hu0s_OX#O=bwE6I$A7d6)iW=kBL=y zQh=H$0{Lb}lo~YLL%|@NNdzXoF>4_RdsfKnPN)#ZwXs>{@toM~f9r1cw{@I)zX42E z|2JUe{{GPc>Pp-)GksfQ*%pMC8yaHW;NO0e5L_5bRBwar)3^40I?SgK8fvv>&i!dt zaC=7voU&peaLU*yhXrdPh{+o9o!E7>I)sgznA>@3FMu|kO zyP>B#*V9X_`mp#n;ZD)2aL#AI`0+n^DmZ{o(uv1nV55p~6h|?1A8CK&{5(P01(A3u zKj=2{s)YxIe&8X;*A61oRPgqP9xU(JBj}8{2~tSj=x%>#PkFmV4!94xJ04VWljPg& zO%B4e9Yc@+nM?AAu5&0)kutoeOyIQB;BUc(vZ;Jp8xHgVsBG1$8#4UR1~8um)j=T; z1pvZt6qau-W{2g1|KGt9oXnXH6+Wz=jBfsy27I`k@ePP#2%ync&}nNy857skp*?$k zQR82YI%AHjs)+b^7korb!a6JX=lZjO8a6}8`n@Nd)lj)=x)o||pGpp`e`sduf#ldH zZw!fRsn5&3(6+(^qE4fPX?5DUKf0if4mPd?WweS}vyW>b7}>R(x%DrH z)+(W53D*)O0!{15@mBoL=HrJt#iClnzxW$ZRh|gb!tS-w9hUI0#mCqBJ-_}G5iN|= zw)ps3n(B8x$JeGIpGfZACzX3|%w4r~*Z%&N-ajpTy!68=PYaS&c}HWIA)V^@=l-lK zFZBg)zx>gC&)xcSKltqW_hDn|$}QM8GKno(tiFyiO-ymGQ|Uu)nR|QZrp9_)4YvDd zxJ*V%%h%K;<33`F%otr;X&W6VZTA7j@j-MFN8A1WCkcH{8cHotiaEX}R65oxX}V^y zA||Xf)#_qu&Nr5ch7e1m94FCmFF%hSvR$aA~ z&cbXFvlo;TN|}-8^)b)u-O89Jfu=W#Mf_s}WkzEd)Yz@q@9m4*eWXrg?RLzc*00ZtZgaIe?njR6Ei z#?C_x<-TB$8FjCZ(ThYf7-LSEp_6n6%Hz`_%aP}F^btb3XiFm06j5SXPB>;1RqCnz zxi<<8-?$OMiV>Ri#p`M$9M*7C75)rvD$cIIeuKV#L;QNSmziIm=SFBKLi&j`H1v8^ zx7P-RH+6yYCif&=b}kM>e`u6WWQroMg^X z2mx*^)JHgbhrwYD+8{qKUyoDofLo4Od^!^FcB3myE9=FeXbd=SZjyLqBcF=ETJB-KCp0?{nIBx}9U)SXNth?_I@hl!4hY>6~kz&lJOIFv-`l^?gMuf@8|8-yWOpK0fYA`_xtWqq3^q= zxTTsTewhg#?{O{KvW*rG>??2DcGvi_A1!X<%rysZ zq2U;am~s~a-CMWaMLRVY%T!@XD{p?dno>4R-L39D+uUt;QS`e=ys06UIn;|8Jj!J^0ubNJXXxflK3+AhQ#lYMczgPx4U}O0bAQPXs+h(+D^jqAn z(N}I4i&;%kWJrvBXU}HPfZdOR=S!nTew0n?Vi+ECg=qjH8V< z-JAGVSb68UcQdXxJEg4lXHAx?{cFtg)oT!gD-3fwGlInul!tbMMBJCg<{w5FLlH(! z7;=U?g&1VY*_Nhn z?LgL0AN|!zVxAFN>UT@-G8gfS-BQ0dhI|8YtXU5K>QKC-jkhE-(ExzEjN5a>##lBeNZwA(z;s6R;b1)3)*^9|g4`S=EOSwNkRp z`VvL0bfb7ym^OF2p?&4M;a0FN@oFRjD+um<_0m{}>*oHp%?fDJO_KpO@U(s9tzq4Q z?r?tNO()O=a=S}$ZQn79za5dd_$c3q^k_Sn0+F~y0K&`+>L z&g*82%)k#>^zlHRpn`^5%z1UtGL0!Wx2YmZ77H%u( zkDFc;q9u}!KkH7(US`S$jWWD4krY_Ju$ImHwriRARs(oqZ^G=2d&mZU83w#6v<_t} zZ4H0)*^0V&2FxF;>7~ZOA5)@KQxRF4Wir|J%+G4lvms_?WQWKpj#g&4SMpDDG|45q zb?0U&iHJMsqlOsii>w(o@mKd1Tt%Wkrttfz28x-PDkueiU>|4me9h+haW>EP(w)tf z5LJ$KZm3&P*UmiXMrUhE$VTZ%M@)jzMgk^p&VR2*o%6CQV>mv}>wtfOpXLPrG zyJoEjg!K^uA-=%BMsDl?X?dz~Rhes^@}|k#a&`@BwJ0RIYoBVuaJ`HMjsFkVm>0tP zW7vxE2kT(V*)^e+DX_0J@K4w+=OhGfnj!Rrys(x)p#e*vRwJlHQYO$Z+D4<79g9*e=6LmDvfeoI|8D%bD#F&7&X$Y`#` zkLc=bBQHt>lJKawNJJyU4wR!V5$k3XVA-K7P?*%p!n>xu)^*v~6K6dgp_2xl1?ni1 z(b_2AXu*yF{AX`vAWb8SBNK2P58} zJxe60Kuzd33ym@ZUOYgEOf{*)b@y-p9ZM|q5i>aYg(!#8jm#gegEVxaTwz^n&|Eli z69mT)p!VzS1H`g>sjc^S!%A!x6t`liJ#V61&csm1N$la+B84@wOLqj>CD5B>b+cni z>Vvr^QU3=5B@!^50QgO}oQVRH{dwlxqya23NCx+;^vrU6(YEkMRw*cY(4RCPoFhnU6(>MmRf4!|M+Vsca7&BnoM>4w4fbtAmz#XN__e++7Fl z+r4$rzTIC3E%U(`6mGZtewA!XENYTJSXTu8h}wS^+N2iP8$`2u15Q;cV65IiwdxJd zAQ6;r;Ud)=45xZSBCXyKcQ--xgT%bD0IvlSw!&J|4t}m@+R@V9V8`#SgH!DF^g9)l zL4jTnJoX1MXhj`WP`zZ8j@{D2T>i06Qmp3R82@k$leLE#wH4dRqb$*x^2D9ch()+q zpR0XK+cs_Fh9j28(jdHqUpLQ$V;1V-VvMe~N&Mle5cack!cz>;gt$&KK4YDR!x;m= z92aYx*Dl_HL3OEC63%5GL2-^tc^zlTF}3w71Gqb9Ygt0*Gre4dTaoIX;);Rt3^jEv zTT6_!yT+ZNbwL4zb-`0rw9FkvLTO84X}#-`Vusbq zs8%I?Mv}$7MiK_m zSwRfcaf~G2W?2D^j3fpdjV2RNzMb@@aBdOsOtHaZjso66hHAP+;dI@7#d|;-m+mXy zD6RDev%Q~@%DYrFTbWPwmHmjS6KvqZjRD|OR?upGH4Ty%7f4xGSnf=S1WGp3ER zID{=`$adn)V{L2{qn9>CCU~QbazfN1CZ{aKI*eqT=3t>MmTO+oHI}o~J<4p(X<(6n zL*sa;CuZeVpeGIqu`g^bXW1^HHreGNm!vx{(P)M6d@N&u(abMh1f}$L!Q#9-bt57( zxVc1Urc~x8b`07IuKLGuNTG`ZARoSS{e2vm)<+glPoR%%`&EB*V!PG8fGchCXBt{MXj0bcZ(+&$CZ)1YtVu2`h!X{dk)a@dtV{v z{yHZ+klm>pj9}1!qncZ$blNTPV;y-`zM-UQ#S~XJXDgzZeDOWxTqf zmnrJKGJ9a=Hsj=AO+`yB=oF`c8g1lTxzQ_+-}!VkBKp`BM)!42Trb?19f6UohCwba zRtx`E``!BTLD}DEs%+=yvo@%sHsB|0p}Zc)lS^0+>yKG&MTL9g&t$ars*teGQB}>M ze?3FiWJrvMt;dO?PMF^57>=1`Em+SGUB$n1HOCw7G#^>TX<`+pMOHD}OP5vH_~QHg z<{k@NtVEi0-J%$Io>(o#%l>v+&9hGHEk`KSz*4-vR1su`Y7Hr z4+_O{Dw@lA#Y!gyYY>39!H|k6oi>Sk#$`QBXj-WQ}jiuA>`vl>o4L`b!SZDlbfC=E3 z#S_I!zUAmWzJ&+y-86n==7VVP7q6icGx$+AF7Tsncy?Mn-zTi4eb+4f$Ofk3N9?S> zess{Wja=j=@*(E0!<`>KI|LSdW)0 zJ7(G+eK+pIV;J3@^AWBIOz3nl(U{Oko3TjT8P_Agvd$n^d$x9)7I_BoXJVz5#YN}X77pOhG&XHs(ZKWP7D{Y3|L~Y8b>BQN#3M zl=cfe^dYhu`T{J}b?~VVBti}h59$+QYe1YXND#mQ3nxT`;zBXXcZSvydtfqmF;|R= zLAR|p#}36Y7Zi5ZeG`Os*CC}Ht#b-D%}_90y-=Dv+j=ghc`o~(->emh^JYY~-4&IL zW6V0i(K*7SLar;c?yps|MsYg-97WeyMmV7WW9O$|F?vd!fPrUzOmL=>q8c71+}+mLMu zfoveNIRW9?2n07X3Kmf>%j9mX+e&vj6v!3$0v0RHQmv~i8C6DKC$4ZlD{`)esi(@E$Z%w-4e{~#FJPE{vpn#kcBUeQWD^J~*><}^_E=a+%{))Q|S&Z}z7 zoF?u5!qt_;y*?nqDx0aYw!#WzZAFU|TIlpT9>ZYAN{!u0GaG6vD4NN^IC_wpEBxWl zRHO#Jfq^WhS~EA1h30_bxmcMsI#iVxD@nTAf9yIpyVxaE2*XY~%X zn1w!tM$x|r4Z0gJ_1$odbl4lP=8Y~i+Ac

@$%tNFm-?lL>`(*CBxE_tqhJl;2;6 z7&L#d4(YqYbx7YGjUnTjM^)d0fotOD^;AS`S#FNW15IhL$hH1x9l}!T4=ZFkoJ^?) z>ogJjgRx8o9Zp1FkTQy)g2Dy%=lG z+aU8oP8j1bQ#uPaaMsNw=-1O@647WrjjmfMRmx$P7<$m?iSRq2nXQdOpsg)Jz_*C?^WPO#HWG~I%>Z7{FD zj$e+Fmk+I?_$?-j`rA>y9i8J_c?Gupu=?+ZxuqNf$s1-AwxXx76%@826b9tpAP3F` zjNSR}4UFi7q9zT}=XU-?CxY1kj3Aep9Z}<~Gc3!=TQO0?(r9hc~_`Bxfi#Gr_<>-r?9U~QY!O-Z(|b%E6`X4WYZs%=kSZ*?`G74L8-h*sCG($M1&f?}qHVp$ZM>yCu5UR3v0!;3e#% zSt36H=@_SiPN3otskUFbCyvv?gm6RQ0XjM8q01S>1%^9e5X%ob+X?*x4^i41G3IJh z;~kKPHwIjJ$TmF>x;wNt`h(gntDUITs82^2t6|76RM`0~s3ExaAh}raLs%MY%PHV7 zobPX(q!V|J?aT+}C<0;$%&f56X^1YegA01rElY;yYG=5WYa3y)*-VsUY;GL`HWs7x zdumqq!yeFj+v`|J>DdU|kl#WBevkV-;FYw*ZVQn^_J4~C;8dbfTQR*Tk}>I%L+RZD z+cu(8DW3B4CqYk{TePRIrUb*8-hpcx2bR|r}5U6 zZUBf3L24?C>>?0zk@m!`BxZLkRt0Hjq#OT$Vd+EV9iJ-IB=qy6-RihdnP1j3@6{`qF^A}N8B0L(H|au zuR1E88ZJ0twE@5?zdwS^y-7<&J#`$6 zb(r)b`UQD2d0>%|j0V)v1r;fUWz zrz;sm`}PCo9;;=WxhtRu9sCNtN0wYfam=ITbahxf#&%pvSuU7H=9=H&ndD$=lsSRf za)-vG6@6O+2aFQAN^^VDDqmPDA1tIM1scRH2SZYhaz5;sdMWW9!;et0QZGFEZ*ZOK zmXXg=MmDXCP=afl{t1CF(Z5Dms`Y#OLi_6wr>#pb<3<ZihrgM$qTWHKarX`~ zRVh7`ZiK7$q&c@I{4q`G&qFpWC}){^j*Ecp)VNj2sCo*SLZw;H={tw(uN9Qa)%W$$ zI#~*zg-q%fy+0afjZy!@F$6dZf3Ob8TzFKq+WPAo2py|KeX1J3lM8YrZh=U4fBi0b z8DXnP01GD&!;AQv%6tmsKBm3s3ulYu(cNhbzQ1+E_g^q}$!_G(ngf;j32EdF_VoUb)p(4!nyb2IEZ_dX46(Q&}`J zQ(0i0Gy;Kv%dxHYPnEIjM=s-3549}HtO$Gvc2nWM)?MBB%X;HKTF2Ldpu7DQ#K7N? zels0V0LieI0YNrm>;f9GdqIu-pn<3qN(hz#Zg()g1gsN5i5ltRK|dNWD9FF!D2o^r z*Zh{0Uvo(fH2*XWGy~+@LnC=Nv@&(C+kGKueMv_5Gfpk9KePET=VuTr8(|THDKTW~ zq_@k8LDkQoU&(P_xO`s8!4`P<7`S=_`g*J{+cR?<5$IoOBqh+(dI5J(a?~L8G2>LJ zgdl5+Hfu)daVgT{NZ6stCwWf`8D}?gCHpEU>6_m|(>1CarTSWksu!36x(2gUY=JkZ zS@j0VsNSG>)f>E_dJ_u^f`zzSc!OnDEDH8fz0Ipr7soe1({g?DZgCIcR#|XP_PWlD zl!KtgIKUOU4yhGf<>PB6YVC*1t1`p`JD=yiiUEb zvhx!xTdil3fJZ{0mLX6SCb~k)TyFu`0Ih!`O(mGf{m02UJNRl3`KQ0~mES_tQ0M&1 zzxwj$2Rk>g+(z?5Hs9(?V|^8RI%i_fAXW95XHjf?-85_xHY^&ye7$-?cjJyXy@lqnRI)aD=Cw1lljD+n^nT$pKO>LudnvUq);4-mw66yC*R+=p_kHFiX68Aol!`=w|d&=LhM}axD_$= zW+P;!!mqL<&XGt!dSjoB+l$Q%Wp$7W4V%O7@Gom8a-=L z|LKJmhjY#AYF3L~vn%n$FkRNWYTD{GPTLchXEVRF84J3LdK?eqXaBm!cpEs_?cBSN z0zEw4z3v-Ff<=Y|fe!z(A^`)78iWuLofB}oV_?lh#ysb$xr(g@UvdWksdl1O_#qyJRSG(SWedPaCOIxuLV6V8 znUyHQUFJ@lISDz&Ze(Wc08~lSkP*aTis?DXXbuE*!$wc%;|f-#{5f|#$D%yT7KYNTDg&)q$WI9fk;ppg2S$MRg>_;ls5oD!A{g zMWRX=@%v+p=i83o`$h6Uh~X~;_xA@6_6HC52Wtn3@a?qV(f-Uk|6^Z8yZeKC`-A)I zAV+C9f3OZ(n~%kkffRk*9eWgl$NC{~v+ z#ZOw*@kbRj&{^O7h#!U(-BrGzE){FGcs1H|)dj#80I~8dE+TZ2cmPPgncDorv+1O=Kh(lfA6Yscsjhom_kyDx z`VFYoH+=arf!y3eSV`&!MC>j{5M$F|Ne#q!1@(<>l%yX=8LLFU{@zrFj@TaKeo-8q zj9tcaio2|+y+Yyw=yAt7Cr?6iRHUTM5lm+ApR7rYztt7n@kp*UcsbfC7Vt2bT zLY#ygaAHNCvuy+w1c_vl zx$duBMZLpC);s?lI6!$jfUHdzd~a2z~VQ&~vOP^y(xG#eA4dTe4jHZeDFH8k~Y zZ{0k4ZbjuZoi}g==9?47QvxINU+~Q0l@%IpE|TEaEuF+h8irqD3$kSx`GoUo14ZZR zUTpK&LH+hCN6|0U2E2f`M!Q^dMjKwvbr-X=b{fL^BhpZFT3Y}_b(VeCCglJZ@W5?w zVGoo9PGV`oqM5N!$6hOCl^5y=-|T~Rm4cvpDqe{6Tj(>v3nqlwEN`iqDl;phAHjnmr2%|YrZ}VJqNpTogICIXbSk@l&YD{RmWs(Wffo90_~rft)cN|NsKHT zPO#%wj-HPDNVEX%RRe?R)p{F)K_WdGg^3V6)*sv{SV(>|;Q8GVG_;5#En_IG((aXs z*Ye8f{Jfwhuz29_4=H4Aklr*$np)ue{#Z}wd=owXzz zl8?m>&?aII#-IWU_kX=R2CL+qF&r7GapD;)7}_TmJbPlrpJz|3*1l&=6iyq$VJ^kd zyK`mPVmF-Dk_u)$=%Q5@Ig#QgqBU2tUzouM_&J`EEP7ROYQ4g#-Jrg0zN&A<(Yg~g znefl-`lp{7jup|I__q1`@+YK{GGQa=x5qq@2v9}vi;_kkn=J(DR6Qt+e{d&aS zT2tt9rP+8J(66`%10b@f-2<>MaSXk-s&m}9bzNHq!z6(~@2s8YMaz}{@UK?Q7e=?b z()=jiK-VcIqd=Rm^p*o#o{PoRiCi(^CRQZwa{tHN@|E}>ku6bw#Hfy8ZdRx+UMiE$ zQ>iF5LVn;S$OXe;!`0;zyt;gn14=9x4(W_AQUL<=j$uy6^grVH%!PdTuWyJqGpNku z3i49hj^V2|m&sCO!>fsrB}<)g0K_2$&*cX2~R@N7|2{quiZ1$}d3-axaFXK4b3e~aht z<|RCKaE1C}_ZD~cMOmi`j_5h8>p9-yF4skPAqaw3D`ID<;Q}vrc5$}DbE!)^{~+zn zq#!QHsunL3=ACX7iMa*l@EwkJ^;=%QHR`u!{Weg)4OVYb5+!VfYODg&=t6C=hN>~< z&FU`Dtz8#oU)3dJXIX>KQiIP@v>_>{B+Fv8^2N6fC z`8L;0@6!`*umrAxpPukeOW4484=In&OgRuz z4$MqBL<;z0_;)1bsX4DnqKhIqXDN~?2K=Jz;y#+T#uU4Ce*Gk0eKO0^?ddkq`3M&Q zW|Su_qmbGH1g~{j@Z4UTT~5rdfA}M?I^_D-Y?jzLQh#BXr=288JRS6!^a z`}#?Kp0Sg`L}ti&Zg%ye34G!)BA3I2SEN6}9Ya!gBu4iScmN|FdPTf_E`bucT zLb`h<<1*uY!H;~149=n)4PZ*qa{V;O)SBr0Y$~JNx)Mi3y#NH8_%a8Bg?5|iV|2)` zCBjYkJ$m2&k6d=NgLQOnHXYpVb?{P3A3VHab+W-{s3c3JcuT;dvwoec!nqDATbH0VxDc(s@2RJg&Y#f{I>+fXa8<;>i?TC;CCqMx z_}iP4B}787bZZJ}9UcQVYaDzOrArt9Cv;pOD}jN60JCe~m!$*S;VI2P0~;%nY<;#K z)YFotJgH9LQoDpr54u{vp$ET5qE5Xzz3^YSEX3<93j$&g=u)#!kzabqkSDRa5v zKmO;RNs0j}Z|t0t|2_}@@xS;?B?~AcMf&BO!Ke>q;Xp0{x+ z{OPt-SG{ti2(u{mo&E|dt;=bq;lSsrC1KrTBha8V-<0E#rAf;X;1m9dpMn4UT~?%F zgamgcaKknYaxHn;7=Jl^Cv9iME>4t5qKi@)olsz7Ed^?{Vv+Yhbs*`ykcC@-$&^UE zN<(2&8JBU9H#?bc`|AcG@-+k{>;3wm;<*{^Xa#tPOQyc9D&!!>PftfRyVWR~3@V1H zYgb`NEaJb9T*)@g&7vp_qse79CMi=E$WygF|83&o=LRyJSVr8$j2)GBZ)0_p$QT33?a7*$ zl)mYTn0Do6W-D8FdcNc4Wsj+?`gSSr_9f`4FGqQDZby5Z)7~?N#ahxx^0bk$%MXV^ z@OV7qk+#PfTusa-7bor8<_5QwgX3S<4&>y{ys&Kr_k9tm$Oh3rQ@wT`YiMdQ zfEQ(}z)U8txZD)Ufy<@F<%n8Uv9PJd$75k4ICV*1dv;n$p`xAwpG}Tepo&|gsq;{l zHUtC+R&xcjr5K1{fFr3B;9Lnc94XTUX)>B9b#;Qy3|yEcgZ?k?`z)V1OEoTSbaz35 zep#JT_E*Zm9Mbo4NoSsOy_aigp0kleL&Ig_WD*ZzTArJ=)}qMiNTvCP_q>TOiTp!h zME5CPMU7=0ega}2p zluQucyngAtW}^`V0FqrS;!F~um~1op$fh!zRA(pr(1b0d&{8nF0L2XDs531Rq^zX# z%S=wBYZKDZfkAloMHv|ubsE@ep9_674A_J+$pU9&M%96nWy zp~5eA2}Ld0h)M9Ve(<(Hp-=>e|MQK}I$9$dk|SS9_7>BXM~5<0-vmwz%jZ)Bvmj*V zb~ZkppvX+-i#(H9X%q*c+Sn%rG&+ayYS&OoHsWE$WHxJQe5N)m(bxw9eDrW6n|48K z2GaOvzI3R%pf$fj^DqvQ4-~}y(<03))5UCojuRR-6mG`AOq~ZT~{Us8Vf1nQO zyGLW_lTrr)GffeEA(!D#Shct`H0zXhq@~n2Fo5_G?I_RI)0C#Vh3GLfId4UhG#dOr z{lDI*0bz0g4|G?aX|_y>eCEM{6+EDOs;BcSYNQA(vr#{bJ5TBk4hYVFPgoY!7pI0V zpp1EMb`$YNl)Z;qEVd&{_~?}I5#+Y-qa~{2Og>V<#$TU9P^m;xO`94nUFbk+k*%N# zjpl$vSsLDeFpW^c6AwR~c6p3$9d;lh+4in83o&UjFipIMFKJ)A8@fIa=8u!S0l^F z#wBlve)+!$EMN4hYIV@al=kP-d3*s(kt30HXn4BGl%yUIKiSi+2tNiq^`B9~Lc!0l zGtyH#wG$p+QwrOG&N1q(+t0P*S5WiCaCbz)VTmrp-RB%Vd8uya0DTc=)*HNb}Bp zA65JAb?H5K^N*-yoA%v{IMM#6Gzh>!S+%hdJ@Jox?hs?u`Nv#HY9L2Qm{TTBE16h? z1DO~@NhJsy^(8XO$YG{JJXy{4A4iDwxG^9N`Io)`6}~6qcuxPQq6Ol`6aE3-6?|26$?rDgb1stiy!N$uoa4e?M zGig~#G-gyZp0D_;WAwEQWgYAM^Iw7vpoA+=E9Mc=s`D(4u~5Yj8?Xu0lO;fXCu}hR zX>)i;BPIGHF~0&+w5u;u_3h5IH`gOstn5+YVcmxPbv&X@PyB&8{$L&7{#yxm5$7em z-6P?R`U0`eB-Z7jE&mcEx_dIZ3qxS~o3#XdE!~m2NjGHu)4@63fhEv$B!$8urL3soDdW#X}4!e(CFFcgjt?wuc;c6 zwS@mJX@9Yzfk1Ptd8&n#c?h)zY}f(1-$S`iqFj z>W%(DT(W%|=p(&4$Tz5v>}{kiqg<$#fo?R4B(FLgI}JR{j5znK1q}dTpdK(I17=qn zYfL&2xvP!&L=qB+UT|x#2w$tQ9&Kz8$PehuASs3!t>Hy097c!YAlNXFfGeBm3KxEp zqfaR$(Z$ctB(YWso0D)iR*-9@keo}(W~gX!k!v+I7lI#yLI_ z1FaN84FoZX(x8C!h%_}<+%_hpeF>6-q%p=+ur7QSHAabTI`6|aYBHf!yv|e51;5WM+)WIPuU)1olkw>l`KeN^TOMgUB~ zh?k>Z`~R%T?YS|^X)y7FlPZ=$?*H4^M!)DzM5+h2Z?we(A5=|PX6Env!{kFG@z^*S zOR7Gg^;_}C`{nyt0y9kx7%>LFREI^PR3;k|GM~1oITf_G(wOc?s9HpJKVrpReN>|X ztR71x0jn%}hc{=#uYmwaylww+YQ|oOImXPUqK-8C*vL&W+TVe% zvsVwEJ<4YfHuwz1-6sX5X-3F;hmM7gpM|4k68|wxgJ3s9jgx;LG7bby#xxOXQ=q;w zm=7Rk+p5a5i5Z<3&g#!_kzUNp(Vu_>ZPOZ%t*#6Q)&?{}Za4h9c4ey!!Y?Ox$1@CG zd^rh=A2dd-F;!wX!t5<b?c1P1V$iPG(HxORy7 zYl;+>0bActhz186qZp(L=z`7~Q$TtGt+*&#BgTX4s~RaWNlb|!BUpl#tYO(=83`Lu zw9ap50lL9H5)5TvlWJvID16(h%z!o}Z7Hbpbxp}QEJg{iXBMq4UbS3Hcr|p78=3{L zT0MA`2D}1Yd+{orhF3zE3a?1&LiD8Z3d2dnE1}Qq$kf|8K;8)E)Ox{+8E6Yuj{YJI z$c`aEI~;e7Dh22>{@FG^^=qFMsWNl0zmEX6$fD(Ug*Vd~JC7nP5*|+(7RzHmF3muU zNjGV8Y*P}fR7pTba%$C%9O}T3zEg>AXgs}3V~Y*@;FB20S$EVL?urTjLJS+;W)WSO zLxD*FVERLqVqE2X_bapQE%g8kkvYC z5@h3g@&*OGMjaZD$zFY6EHtB8Q3l(CuYv%NhX5+{u}buUXqinB+kc+C;v@xs#l#-? zcTc11v0@5rfdp6^oB>`KVc{eA2aI9vFmnt@AJ|k!&HzDf%Vgs~J+wKg*(_Rkl0|3C zB7gY7r|Bb721Ub?G7K440JGHZrG@zRJ=Va;1QCSWh6NXh^_ROAbb2kpj3bZ(jf%gD zY|P7&RHQ_7)hH?0#)_I4H(I6&gqU*dRIud=L)Fm|jJi6obgB)9+wvK0&=~cSEXE~J zZW)K+u4*>~E(zq>wCM;UL70IIb#^4#$OMAzP-Q&!c;zhhFRf$Gzf^Iuf0NaQk|u_N zNB6N>q#wZ?Sp!Uy)+D(D&?jfG+VJ9IpG81V6ws@!ZTn+-(~l7jedRH4zs%|>3!ozE zvKsI(Mwtk0mn>k~a8}`Zzo)J)c^eE!L1ni>_J%Zl$yDRB#eBv)2E5nsz{TK99?V2r zRAY**MFy=tqB7j@9|_>*Xh+1j@A{=Fv zpp&!?GyCF5A@^h=Mv8$P{tdDXNL-T9_YFys=lnnYzgeQHEKQ~XVw40AQ422MpQ4Gu1z0^5*e|A_hexXGl^uuEmCm%9?`}?<*3G}T&Pu_ zBCmALQH^Fvc{dq7Y{LN7%GVPuB;zBEuBndfZ}^$dnsHlK5wHzWhBlqOqsba{5^3(E zAOw$*vawmDpFDCi&=Qv{23j*M(;kzfwX3pv_q5ASEw!}D>fM_rd!Jc2m?N72LEyN5 z)yUf08{2|_GY9}Anj4y0YjxZCeP}7ek~Vi`MPi*ikZ}2vrngpH4`t=N@#OnxCRv`% zjN*Y?^TwyLkFF)v4ZBvS&;%PU66#rx>Onm@tJc9gHb<_HZ)5RI5zaux4+2-Sv!5v= z1zWnky^aV8fTLz3@X`WI?w`B+_d!a&lpwH586jsu7MNOuEU?6)grsB4qGxvgeq8Q5 zH+S5biC@kbhe`8T!%=oT)^YX8{U0OO@8p~?`atzIAOyIG{@aXM#RKVPOa^wfI&t%v z&zDFdbMr5O$g<@%$Z_*5UI;Vq5|f6)D!#;=H344hNCR9n+x##AKlSX&#I1F~n_&)O z6qbOA0>01wy<)^hf~|a@lRuC+<|%hyY%O_n1J^8t|KrooJ)U>sgx8d6#|9#Q*QT#clqk(y# zfxG5pY>Sz=%(9B7$=MC+Kt$weK=K>oX|z~8&3G6(`AnXsI(r$`$?-G>ysIJr7DnIX zeXBL_w6t@?xTA4{yZ=Q)f-%?7&kltxHD}-XFB=H*JeUgzzt=^Df7z2_M-cSphQ!ld zNPH&6%OkM12CNOaLCf`sd#Jo}{FDaBx~!&C!+-VHo+O^bo`R|>8-1(dP#sfN6%&+I zS?@c)YYKS%`HS`EnKWHUoa8Nt&Vpj>*L8k8%hpS!eI~f_k7b8a*5dLzk!DhV2)`4^IfO%p<->TTx^u}kLBEa# z=6htX$fWo@LpHw)7_qPjbw4+sN~7^@YHBVFWlfwRUDHQ3+(w8jx?JI+8zZIDzMBn@-7lt`O}@M9@M;VjD> zTN0v?-9JL9esPbmY1A0`&p)A*Q+iTFj?5woZ#6Gxcxx2U;g+&$rgrAJIBlg>8 zC`cMddA5Ii)~kow7ZChOCBYWLmyaM@zGkm3z zQv1|alC5RI3}r3oVSQ4H*wiS)KZ+_?R{_pE!j33(s zOBj!*ussLGFW{VdR8=Lbnn?#i2bEAGmXjI&Q;QG_7fz%TG-m3PWiKaPhDk}XG0f~z z3hEHt-@owXL&~#6MkkKqP&<*#D8b5B2k@p*Ip$|?v8+c}li4o(=ki~JSP7IW#&GIT zMba>PwxI-?Ee?R%G(ft+t(H;2kR>e$IaFE@;*?<9R`p0KSQrNI)<6?&abVwY@b76$ z)yW(W_H+dQ9*s1$epCH>+9q^r6gRd1Q<`flldTufn;?Cz&+O0orO93`7jP1dc40um z%==EeFzg04ETL?^2yuz;F4%cJS8|c26*Ll(r5R1z9vyD zzM6_6>xNMv6EcF8T@_&gWZp?fH_(SnZ9hcgf3C@L+!<`=#jin4GVuP)K=3vUY8SCK zMe|5*l<$%KK_1ED?ma2h&UAe)swN~%CAd=|WB6KAenWe4E3Q z+znPNngT9KE`q#ENXj>3bO>fyzxM?;8k(g5!vaDQ(@^9T_|Oo5?bD`D%=#cMOH;K+ zG)PF2XzG0;W=X`{-Yrhn0?3{w9oK0?jR4Enp{Ot@d{Hgcir~)^}*mw5E zJ_1J#nI9Dc$9qSIdoVB>k19n&jfNDql#;-{s_+T!>0(oX>yz;4D5Gbbpx-(2vC&wi zn5pTZFw+4U*=#NiFnz(&AdxZfodp9*8W1`l##@cD3i5{RBXuLAr68n5R7j$o8se~O zrn1<(b*aS9s8Mo2umm5Wg(OK6^Vv9PGqLm6fRtIrioqXM#%RV)~zYyG?K&^PO$*Dbkxuc5brZzkD# zEhcE-c>rb&yzRQOQLP5vBI%ls>(VQV5~^5 zO!cz!BBN9!x7Hqw-U7;gjWk7x?Jjw#oBbN8c`(pR>w8@m5d|QP#MTft3&i#pB35=H z7D#ld@#xGL>w06yV(hBk*b8Fpy5886p&hry65bz6Xn(TOl$qX9&o5vX46=;So&N>^ zq=F&15s6wj^yzYa^Q#RBD>nU^acS-%S|RiB>EO`*s_!sqXl@5FL7Lj zdSGe;g46h+r=Fg=kHs_`c}UhWo*3&+HS|TuC$u_luA*U?@##l7R*nDUwjX^o%r-WN zXGL_r5LGqXNYZ(df<+^!ROeHG`PVsI2(H=`M9xH#8neO3mVV?Bh45-8MnK*fkPsnS zA5M&5@wj5|mAlhEp@BwUe?|f4HItOXA|U91j-7!zo&w6)Dn%ZPw62k4mzPN)sFE6Cm1lspfr@m zf0cr4mHrt>X~4>1-a0>%(s47Y4Y*;AO#Av#pdn0}uXrr`2n1&Lwm5FR#0Oj% z@fO7>CZ|#Sido#na+*(u(@SJ1W0e&A88EBs0Bk+*IKDKUq7`+DOgaT_9pnHVdkwE* zb7W8OI8}X>KbufkeBXA{!@`+QqQbhOShXiUDOxs|uwAX!4qijqbY|H#ayU>mC3m|K zG05WVNi>jk-@evWekai^T%gO#?Dfd~2s{$C#hhof6juTI56~K&4U{KM$S{HNs{LCT zE%v)oS2e`)JaHp2;F@yW6p=F*%iumK7fV?|gO6?df2pWgux@~_pofSK59G&aB9RCX zOe8Ca+yf=yfFmSHqUFNkcuL5kHJ!g^W=6HsbijVKlS~MRX}1fMVJ^CwjBHp(RG`sN(A$q~3OPvpctt`~wEo{dVz^ZM| zla;CI%|Vd3)yce)!R14wg4Jw3OD2UwvhHeHn>&eB#&=Q+jN9){qq8oqxSUB zdJp~iSunb?SO5EJFe}-}fRT27N3+)8P#vctFa$wihj;>wvWBv^PX>u3aEcgf150(R ze+zz<>$T<^U758Y;tlVFu1s!8VSG<{HS~T??Id;CCfrGqBGDYotw1@`BO!5kkxO0r zx)d(W&qn|9pH4l#eIt8D{f;99c^>(rpM7xKM!)CL=l{=?O{Cp~bmA@gO!pih5b8mZ z@*V)^?E-Gdy&$>&>1u5Z0>R0qG4%XUx>!VXih=ED%8g|QItBM%BbIO`K8tTUba_G{ zCmDsyUbf;T!~M#e%C>LIR?F#_E&u$F;V%=eRCY?PT?aCAspgs`KO?ughF&%b{L0TeXma z|KU1L~0Kg$~!ky-DyK=0WcYXptP<#0~3#+GP6ST2fGiuE>Oja`-?n>^^WQ3`I zo=a3e+mCHV=t4S8hk0rTX?kdK$eG4v)*PwdYRu7J?41vX>k!UQw1;Md7mn()7w+g@ z(D|B{K$ZOKDHp5=p@7M(tpf`+W}3dPsd=67qp=7xSM8isLs^TJ^Uy0b^jMs#*6f`T zh84Vip5w*`^VHc=wWn} z4B8w7T`W{?lb}f4szVqlTT3+uJ{H!;ZOzY?aDpiPLa_47y0Rup*TcqR!37hD)_@f` zgA@EH5k!6uUK|`kUR_g;d@Gvrv)EBexXsv=#;z2aCuUfn|FHN#@)1Lu@R>xzzfFobWW4qMsD6GO&Xfj6$iayZ- zbyhX`83%cl%B7Cu8n8LQa0>3*2=WfpGhc5*1Ao^jI+-fhelu#^eQJ72r5X>@$#g79 z;4(ZKh6xPIATHVf3#Df)8QCK3XBe*yDOBYsFeGLPF-!^6Tmp*;gze)5q&6Rs^g_|Y z(w4QZK>0khgwJDy@@**rr)i}b2?YHDs*j)?6WuC@tYS@!+$v0U9-L-5{`g39B7zuz zgkY#k%!8pVCB|Q;6xZ5P;;OKMcMfIeYpG{Le#usTrv544B$?psPN(&NOwa%yVL*1Up@0F%Nt%md?g^Ged(9J^h-^B5nhl^NYM5M8mub0 zqbXJiMC1R-Bu+$v97Y!TP46jUqqJ{+?YO~CY9&i${|iw z<)o{1o`V)b~UR@IZD>c6=NyOk=j%x&eTu9B^7Rh6Wu%5Uzp{0LQsIkM9_>;|@!4EG&s z3FuLR0UHGfLy#Zh&4>xHA6IsxGGw>2z(bzh(pI&y&+*@$t4w69hhtb+yj;gWOQ?YS zVM6?=hYs#yH{T%9CTb{lAjVQNHg&Ra$e-kO^8Qq|scdcBLOkyeH8!!0Vj#Y@ExyVm zDZBb~VB?mmL@<76BaLovq#KQm^1R!)Wy_YTV0f4tP^2Z3k#iX=IaIY-^F@)CoNpA^ zEICxOS&ZEbqfI((dM5n$@f6L9=l-;SDvxD{Q+6=({Ayav*YnwwJvHc)W7z{~xj@hR z)3Uimr$LWpkEC15g?f1+Esr}9F!a`>q|r-CaEz`=Nu!sPus(99KOCraqlc6b4G!=N zl(Rbp>p^~L#$#!@NY6bfs?C9ol#hXjog_GVq|ok8)q;=XR?U~e-Adzv}e z+f20ex|xI1nz>~QfH`aH7D&W0`#qgsn(|y)nj`4PCA2JVJ+t6|-0cy&uEe~0fI z4l4@yJ0HwF0f4_s7E|@7m&K?*_Mb3ajbDUCVTe{O{{OxmZXqpkr|LwQCNSbhSkM%p zpjpg)M){RE6+Ry|8V>ZLA-Z`zTLya3kllzi8V>ZJ;g;zmCr&y7d@#MJ6|clSAQyEj zn!T+MCRCNvsU8VScoOGqv!@kILbXGaNRvSmHZzc9hC!JD#@Ib%2zgWs2BXNM!GYRT zl3`mKfEt+@qK!If$H1&dctZX}fn3uZCfmMX9&6s@w&&O&x5G^*m*#bI(bkJ>?znDM9RE+Iul;ZC+sqr{o z6%sixue&}W?VSao-%aU?76`o^SDx59e6V$!)dI8*%2D3gkCH@A+)UJ3)~yisgYhG% zyY2ruSRlfBm<)d^)=H5deX6jj11))6QkYadMUDsrW}S$B>nzG>?M}eYQH3x$=*^f# zBI+TxAhh^k$v2m`yK3u)oE$RtJsbcWIK&DLw%1n(hy-aXWq$9kKWWw@+lH}%Txv@& zeLSWeFxr7EJA8<;of+DItYrg%Rm%!&vEgYuU_O)%Y;%Cl&YYNkH*+nGuLGPO4wcH; z!dddp<=CY0KC}%J1ji}fRSv6**t^{D_wFO-&^EHPZrrD%7Rj({=Uo!{8r!Hn-*y+r zceL8~PQ$`~E(DZTs_}Et@O36wj}`BgP9QctZb?|~E>g)rI&dllj)k-lbi&+h#}tdf zAGF~EmKDQU!fjj#?5y>$UK3r5)ds8sEJPk}R}NUt_@NQ{gLfZD{38ElJ-|%AS1-@$ z2iqkB@AvcG`GVaZmHIzX!cc{_ssAel7ZD6NjDr5dvh2*hK0^nzJ|nph+_mfX20V76 zt`$`_-rhABTGY4rB4hK;z0ue#tUDHs&0Vx_g7)B+dWV`VeHY(5%>eqN836SZ>NowP z_vwgq&Tt5B{$jHc^?*=Vs8*=@XbaWZ2R$ zRwr7qQPz&YLfu6O>Yh<0gH`VtRnW>Jlixic((+1mLRBVo$V3XN6RNWIhvF(C7@!`@ z7u6ibtjVeySrj8wXF*ews>z-T4pOCZE?WUMveOMPsUD`We7rOeI_hNsiWX6`MM`G1 zRm)ddU8+v>)TX*9yv*tfk?dIu(iRq?>gsL_MC`sIcw%a^bB>2Ta`PE5?n6*Z)QQed zp>(o|t`mHN<)~?jz%#6|9qh;`DIOqP>-?>m$}lkv`1=akk+uSq)k&gBTD#q38;c}c zuRj{8afGz$f|xY?m&i260OEFNB-^fvfmnykc3q5B#`+D{#h3-PdtD44PP8}njF}8( z-7(W1MjJC5F(ZQ<4bUo^4`VN^K`1Kt@Nq#{omps1(K^E(rC?}%_J3NL`WGIx^HN4L zd-K}`b#he4p`=iiayWGh5cpp~^MlOHwJ$e`6AG6Q>kI>U>a;R~i`NfVG5n^d6nG=nqv+@R4+Yx%P2 zqn&?8r4Kfe_6K^&q{yRAQ|Hkr$ZreO^83T*D5nwXh*+Zx%c6YI0Z@ZS{vM*NJUt$K z?+fV4RK#z%XIL?Tgkc3+!(<#_+R3ITAj_&JvkP-kgG!y%%+Q2Qi3+nM_yM;kBJxBj zMOSnh_sP(QiRlO}ey{7LMOTR?Adchju*LWwrX63gV8qDfy!S{ic!)I6o>wHqY&JNd* zrABBo3+KN7Cwn>ft{8exJ$a7H$K-Ua!p-OU1g1{Kygrx&Dx)wFNy3o4Eq?gM1x!uq&q8%mw!i;1|JOrl59Kk4E>2BVYkw!6t8Q2vEK z{Y>Kb*z_XqnZb$id;azAN1omDhps@kU==VCx`@D{#;43l) zZ00W5BSy0%7o8K1U-ZFP^sQlet)`H6#&ZUW16}rkJz8C(MyG?KVLI)VoX`+lk_C>u zQibC>u)GrJb|90t(sbtHT;)Gdl@C)3pTXEPq*hzP$eZ^-b#a-viSn6Mpep}+YFhGY z7_o52_%2+@q|u7?o_MKe&BETl@luz4OG>4)GenWO+A3UT+z@a?*Wmmxm8%+v<%l)H z4vmG`bL?#_TTw58Gc}l@?INYRiZxdVVS2^M7OVsO!rJ!L8%n+NWv1b zk&p`?4}ahj5|%i&Dv(MELw)L=q@}zf#W|$7l8@d|W7)}btQiolc$8*_;W=6)I2eeY z3A}(73KDmDa1D2_k9e3KCi*fLcK4k{VB$BLg?V^aI9$&>ARyW3=pk`DKq?3z`$oUf z`@&&g;zYCgjmG)>_8Jn6KEZc}J|nr$aDW#RdS}3)Qd@2W4jF{ zY?l+Di~D|`{q&Q_fAkN5=>YGQz{K4#me6bJc!ybiY%Z8ntL6Y4Au&5ZuxUynGn){D z+TC!F!a9hMyf$r%11*gcEk#&~gD#BVatkEYYAcJhCEm5!#Aw$1iG9I%mhm(N-smFV z*)01+R`2Twvq8-SsyfGDB+P4MBSSy#YCV8kMm3M^pbCa69@l4A*pM+OEl56}R&Iey zX9;pfh5!8+0bh@Cp9^uhV7ixgon-;0g}Z8a*j+U#qmKQ$dshu~1K1r`$uOlcG<}X! z`vd|YLD8DSDF5GG1KFgsihx=F*?*$4@Ebq`64_vf!P3spgG&*CMb0W=B1|DG@@@4* z5Qc%jWS4*tS{G;}-S7MXB*-YD709ueMGAB)J2qepZEb%a#bxV5InQNa^{(K6ZKwJm z#HO8}&U{sP>VK3ufka}RWJI3>wn!x)Cfcw*_0Rl5C3#;9DncgY~r%aISuZ!a6@uNlM>vK|gsC1#K{}(PyWW2MtVgm-SJiURT-J zkI44uEUG%~NC+DAi_3xyMZ1P1O)|tK(vcobBSD~T5zqjl{oabk6+NlCeZhFtvC?G+H1z7>9s^{+j&QjX`KyfQy<Y>J)2qF7evuJ{!jH7rZ`c0|6df+1}2I#BT2V7(VZG{M(zYT*?G8OAh0ng zkcncoq$Yd-GbEBxLyai`fdkVrW~Ov02*$FEcpJSo?y4W1Pt0scq<(`rDqmWPbyIWU z)f8oi7k!h8lG@i_)MeHeXcE@eN#B^%P||@oqIzawfg$sc{WSN8nsc_&8EJO5Uzn|F z3%_cJ8)zh0k_B0^79kD(K|U1rnyMwFr9snV$+k#qfRyn}GU#Msq1MMW?4$luda&T) zzb35ug%C1ac&Q(?uIR%BE#`s?+U5){j09YOrs-O1hDl9g285AoXf1F&-w9f@cYG*c zzI_qLQrU8iai3gOAVw7ly^zPMME7;STb!+x8@KLL zmnZh$3)|nLJ=K{z+ZKo^l>031E?4%1-YyI1+3{5U!Mn@zVq$A2@#($e9EGR<=HE^5 z0xb3~;{}^6EzcQG?=HsN${W;Gcis&gHw3tTqs5h@<7u(djopC3G?wKY+3)3tCg{J` z+e>b7K4&}|r!Py3mHu--?4S8zUR@%RKX!v|K>_@4Nk774<=Xs*Sl8nEgF6VFvo^nt z2ZwU~NWD^s!I%|BT9Out|C^6PXuie|4Nl&{>P(0MCA190)}yn>FWvR9OE(uw0hV;4 z{Ccjb;*h^QL-1&N#!2S^|1Cvm&7CE-x1^4uPgC&(-Gq+Wuk*domoKDacT~PY`&s6* z35a2m6$5IYt>e$x48#w@!J^4Qv`Y+nsY)d5$~# zMy~5Q+pWBj-4!)Jr`%24^O?vJ!?_o4N!RgCo{yGeTIK_y?wo&BuDrKA&#l~5p1U?* zPt3XBJvyXMs@x$XAB|sncR6-%d9EAVrO($>&=^_$9#lHF@?iiy`6P~Q8~tMsbLr3@ zc770v?u*Iwqqy|aW#&*re&LV(cU-}(L*t1%$F00~Jn6gyB^NtnT-uAV z=kbs0TWm@blm608`^r@`hT9X1)!L)b;f9go^?FMf#^McnYZY(gtN*R~O4H`td`WSE z9%JQ2dN}fyYws#w$5k2S`EC_Ug_x87P)Aqu<$;~wwP92ScpyL$BuMej5F`PL zkSIkK8A-7@kR?l@6f1kQt=7l8tDdTj58#s{(W;Moj{d+Ft7TO0)^h66=kl3r;>=Vf@cfI?bN0Mt~=d&Q5Y{*^b zZg|vP{fL0MS6OyKimEv__pabh#l=6Iz^G-T@@2$^5;JnwLROu&S@dJefR!OU*Yl2X zevfc`huf<|cdD*wF`89n6`Ha`s3?+?>{fX~IF-jFXgGnP9ZhVxC3CN%9^3#m3+@5>YhDS6(ANi0Zk-#=qoU;zTSdea!qYT+j`aSJt)msHct9pRMxGb=gG=De|(~UY)c=CJTfkBee@%Ni?*8nef zEkBRC>BnfYCa^lQTj?{8CcA0uE?UPx&E6{8@^u3 zBj|%a603oc$4u<@Rka|Kj!80py0$DyTC&u%{Z4Pv`a3dcNrH6dOA@zQlC(N;t2Ift zJNRSDPTyzuJ2h{kJ<;Z5o%}B+67^@tduarF#VqGTy7#jB--u}~sS%SDI{=n`u%nCdIc-MR5Gcbu(uU{v_$LB?mLFwY- zSCs86K^}{mvkO%{J>%PX_wh?^eW-@Ozdw>pPap^id?jCihLTx4tir?s0MbzNpey5 zj-mwJ`2y}Jz6Xa1?)y;p4lO!wYyUuX(%|G{DyH&$)ysmOX{J=?kOQT0Hm!(Hrl1yy z0Y90u4<#mXgYq&b+JwcAv-dufgrXA-B=slqYSuniYRZOIuL-Yw9Y4k#-~V8d#;Xz%W-U;>@3c za0y;d4H}$c;1p#uCRXB$#KRQ!P5n2YGtzOivbfJ(%>nr;Mx7bWP;=uYkFOJ5%XdbFJ6N@_FfdUncZji2h(jv z2F7x7fWhz>l!wNNLL-$JoKGCr7i#lK!u8eqe3H5eeUxl*o9w#PldXgR9Z8dsX(r-s zjAn)HriROCmP;XcA_hjfjBG*njCuunh3~$_g;9PeQBpN0YMGX0m1KY#;Jt~`P2;Ls z9$-;`1wHIv7zi;$p(wE!+*Q_wk$i2i93s3exKqw~VRJaRBz3|NN^|%?Zn#3^5Vsy=H@KnYyrpE!!ciGfg>o?4@Ur%_W`84WQ`qP0mrJq zhGm@KX!5V78&|?=aO_`ZX-hvG0fYJj-nvbz!m)ZO92vT$3a+o5Ud0B=;_V-oGXK{}79D0k|hqCE|9pox*$g_nCXaMc?^cStJ=@vgh0T=r3&% z-RS4gYqH3J7Wy{%QDVsyhwhKnb2SlPBX;*ikOpi08;`k=ULxkf$O$T zo184UA{kYLHOgUv4jk}}qUDtR?oPYSo&d6yoqQItrNZ2q5c3tp@Fv96Yj(7~*KHcu zYGpxA|042xFY6DI{I`pQAnSh{k$;~y;B1i)^aV?Kf{VnfH(Ac;Pd$O>m9RiP${v^C zgH0nVIDKNhi$JbKy7}yTtusnYg^%K#m0YpquyGqX8Gt&0Kw%lU&Gxzm!a1RJJG)Lx zW*tOFFs(Or-Y7cVsH78kkLtDGII)5P(561)b@qA=A3bS{GwM2$$Bw$D#DJrY2re3$ zrKY5$oZ_L6-qc5S@?>0wXm$qBXPZ5Ur8l9;C4h4uo+MO804h1@J^Hy<0od-#5RhiX z>-@ut(gwf?F4jM<_v0;6BIyJFpF+>)=35EbWqi?tNE=Ly{=4emLG za6^Urnx1#;tDe;r#rQXe;*vg;F-Mc@w?~zdCU=)Kx%EPmTPOI{WHN~iSDM`Fp~RtO z19J;aZd?V^hNQ_oMm<55`?PM+8}5v-K7$Hg#7EzG8vsNkl(MLFztpa({W z8?UazmDb%9xYa^|JBProP~Xb)Qtp@1y&@RP4v0@K>1)%LX>4~Lc@|hzODfs9ira+( zO^UMJZU;69*bP7#ku%^&4JFP_|0u^dG4mYee_9h)XlK=|wY0Ou%t3G4)6Ui}(azST z;w`kZk|eICovo7?w6nEVPdi(mgaYN-*|!SK>R}q3O=TyzcmjQvS6Pys%oC{O9aOD# zb+D&uWfIsQ+mWi2tf%0|L6_?H1Ev;IV3z)lI(Ne7QleWpk zTqgQ#J~P8m=0mD$n4{4p>NKV&i6skdi5 z;W#DbnykU>MN^7-O_nWX1TMAfSy-Uwfc#pTtV*9IYY+*oX|S|}6DeJ#UaGcIF4BYM zs%ttb%gkKJbyOUjO=u)vM3A1=QZP`a7=!ZGGGt~EeyN7n58JyY;8Pf0=Z~?3P17yR zn~VJ^|JTM=t;L5yO2-fR#b==NPedITCM5#h5t^yAX5Zsf8SrE8r@Zz>Mya#8_leI!uJSk%T0K{7)1@ z2P~ogLRAY}EYcaIAsbDnIG+v!|H?!2>4XVEg3e5w|0V`EXftCdv;;sfMa1bsdta&vc4uQ`OM;!GN;av$A5EbF!B+qf zJL5HYp-F0thTA5p$xNzYr%*+FDASk$t<#>p$2=upAfI|0F1>8N^h}WuwlvQb31QRo z42E0&ldvs%sz~@t@%ED?-ri0rixMMyB7Zj7SKTSs;{!m&6s0!S19MD#WiK|$k-<8# z7aj@n4RO%<8I4%E=QZ_^hV_!&aCmc>eX>lzZT<=KZL+h2T3NkqtW`ZZgU$~bq$evF zws?)7j4e2>PpiEl4ZL%{O=bf;pNLXxbMl-?4MFLoZEI2I6eBwZb8$zSfJYrSW?TiE zUC&hv3%drhS3y|88Cnmw>PabMo$?_VltwEzT;-N1i#3lmM z5uJS&NsFkDxP!~6x#2rI%qj>2(q#gUyHSQ&0ByR_dG^SP5s2>J?|0WZ2!{@_1g;cC z51G6lU|2oDvgRAD63wc6B+rImI8-%|qfE`5CY7j?+wNCNo*DVCL@W4Yst#YcUPK4YpNQTwoiOU|Yu95^SL%YrrK@ou3fMB- z9&amRVoI=uF8|fS7AgsPdzwI-gtsI;%wi%k+eZ^T(_d1|6}W3^xl3@@Rw)xB3U_O6 zR46BkS!`TAq~ik?kS5Eabj2&bX%|*o`HkT3*JVfX~&X3C? z*X~q_F{Wh!!?3-Xr5-EC3^8gPh zP7KP+%k1?c>pE#9MBtWdQbizm8Yshv`;vBnd02wqC5j1-&T&K6RL~w zGO{Ji4v>~R)Y=kAOBq3uVhnH@VveqmJ=@~IOQ|MI!0mMtg}j+b{jJER-$GiQ?Z}?N zjo0tPDyn&n!UZ%~?i=G*Xt$ttMpuUhQ&&V#%LI$&YXoFcfDEDD5ah%!WF_b*wpsc4 z)_#{f!A6*_A8cBI!WHiI_=p#uL>ErQZ zUPixuD)KiIsC6c^ja%m$$uMbWIr^_fB9l|0`XLNA#^T%UQv(h+(-#rX}b-lN0)qrg)4r5)x3O! zt;uSbZ*5qW45zwZj}ag;r2FxAqI{~qF+Q#??b&BtR8Wj}9zxJ{xCFF~YXXfutpN>V zohty^#uY#tz6{Xp{VlLD1~mNTgln9UDxgub0Sz7Oy9G32;D6gdbDOkKjk`@Y?7|*s z;+JhfGR#TjfFp{~gd#MsRqCE*d^04uMUr#!UACP=Rczhi}BS*evPZbkS#m0x31NTzH zNRd<8&U@e%$5`6C|0vc}a?RO@`ny>}SWhVMYolMP+#G2e3O(WFmr(IiNtg~4%P9eS zN-g6Xnmoh>gqNJOOMaT0&(reN7n62pBLE6Ws2<`jpRcCj(2emCj9fK$A%;!ac!La> z6&o_pr|gJ=eJqnEQ1HuK*5svi_j5!6mm}2z8Al`sBIyADkWbo?FdC|HI{t_o(XjNg zvHflOr0ywBcn0(~nZ?e6Vhm&|m74+rYE3YpD1n|gs0v_3r;Mc*MD?9U* z<;dutp51)5Tz=LOx8-M|#=cN~#;@u``FW{$z?s!X5JA0`*PY#0Ld{b5mM?STTzby&Gle@@Q*;7v} zN8L|WBh9yER@hxEY}RL_eK8}y|1bw*T0RmQq$@ga_qBNSwc+K?1;gq z^ygUEo7pQ679XXesb!j!S4%0Z)1An1yO*24i@p#3uMu} z>H)%y2oShzTPB@;X=j;i)0NKy#ncYEsCe|rvq6sz(Hnfe6!A)& zUiD5z$cl_ZY2swNuBZ{F+-45%OkKhX-RXYXj-j)aAv<%DnLO3~31(RKD~y0Gy_&Z9 z?7V*;3!A1HK(+bBBIxIr4Z)Y0H<}COA<))Q^-a0$hDzo7-u&*=7eAIQ{*uMV_S@*A zJit06d$J?`&a(wt1)r;0RvBpFG{IX<+mn^RWr)XU5q_bWy^RIn(x+L60-+G2@mg%< zxmkSTjVTdDy}+;*;2|eOF3gHp>x?$OIz;c@_jeTw&z*D zfQY*>{sHz4M~vBMvm_Xy`Pt|GDfq%!wQ84d`(*bsdUygV!@1HAa;usA*V+Zy`{Z3f z-hyBB-d-?i*QC=>I~LOHDPiN)%RSayHUM0<&+IyF z;L>4`u^74(;*c?TX;P#zeCc*l8NhT$k;)KakI>8*#B>*_rD05`NoOF_nLPJphtdz> z?(8!f!cvE>Hp;Sghlpt)JOmv>RU2I1@a-;dEGAAx0}1EwEi_8llGA;t)g2;PcZptF zvpycyfKIUntig6)+4{%6nE9^h)&0-5IiWHZK4zd+O;5F<-Ws;Ezj}(v{StGMu5W;w zHcs2`RSA;9?$>jOB?kK!IgFXv1Ej((hU0W(LPJJECAL0RCQp1?}8WwHVMn)O*x2uvBK-zGWmEF$QObhqVxtrw2SULve5QIV)|T0}GPYrEX&pmW(OyG<<+jk!jc!W-;3l5d*wurIY1_+% z(hfUz+heyR-zV{@>U}#L4ryPPvCVT!X0}x6Z5S8P>1fC3mJA)5uTR z+O@LZta5CS9?pC{Uj`dgfs{L-L!Br1(C{?Klk61yT*LlAq$xb1)pdxp{gaK<m_k+b3r^Z#03cIls%&~6J`v{_gMwq$;ICYpm6KKTK$kwj2b@_V0l|1l4Xdc z9c$w$yA1tcV@Pg^?I}&)@uTpC6m8)Ozi?YTQ%KBr&u0ljJBTB3PeX<*OlkjxN4#&TgmwX8m4iI8TWKwOvT<*(M7`K8)wSs^t5r|^%ggt zqxCqGx?!BHD=N1k}hu}b^Rv1 z{hOy5^ShIFdt-~VjjXd$*Aa4R0{VnvQQfuHtLL%j;PN1lv`=rxQfo-A zZT!Azwgp-qvC_5_oa@5)qKBG^AHY;wP2=_%mS*G!6!mbjOP5b1*XZ&HTR<+0mBiqC zxRTH?gn$)Blj~EJWJcGcm1MWBPgjyu*JG9BYBqA5?Yvq)+v|G03nN(c?i@e?6cBqZ z_otilZjEkM!bjk+)+{y|X^-{_4zONXFtQ3Ocrq{8D*6bVT(4Y=gZl?Y5F^qC`XRNyGsehc@`xrOCeyQh?d`Rm;;V|*@4YD)O0N@iA0S7M#HTaJ%$<&Umr!)D*vtgw@OmTG5~pV4qrJo?kD3gII^*;+1+^B;hBAcamX9q)f4&Lj+oF6x(N|I$_^uJ3l{65>%(a;= z1=0x&R3aLR-sf{a3FN?1KeH> zA1soS-pJy?b+?@!KICTXNbwdKq&9RtijPE11~8k$0^s=q z48Xgo&K}@q92Uec4m@nhQ(ZZAI!~2~vB-Nvo~r%1rJ|3!1RsqBDONe}Lo((zBn>go z+lAeRIoIZ24rQgagSNNKOebH_z^;yDY+-@ZLtuY0j)?+9ta`9n@*amH(1ea!AfEt8 zZ3R#d`LDDxqf0ijoP*PClA%Bt<2+vpqHZjFFs6KAW|s05pw1fxsSLB>cDG&eFV|D+ zF3~<)k*9c?c2nU=vWJ;M_K<4qu6Aj7*^m)u&OTxSHsLmQe<9Y47vJXbEuS`FB7tvt zNWX#Ki@Iv3tt-03 z=XAx0`Gl_Pq+SM&VM;)*TmynVWMUtiW_c$Sy_57(w`ETFKza8zfq(??%E=E1wVy&tDm1TR&kugNW9pkdko6l zOm7OLaU-pyd*v9Cx6P##(nFN)Dv0v0Byr3U1unCIn5VdKnR&{08Bxw74Hp$>1YYA7 ziff2rh_Wdl3W)RVBT9iLpvVSo(gTGM+pqzW4HP6UG+sOJbHJMt6xPNYI*{WH9q7Xw zV@y~!%P6t|6oFD~D4|k8hvdpKDoETT?dhmiw*6dK*lys$y0(`K%i10;tZLI-Sk$Jt zu%;mm)RMM^3rpGr7nZbfE-YzXE);uU9}>q=cwOJ;(A!ZH=CaEuHhZI*k{{+9X5@Wb zn2`5!VLr+*h3R+~7iQxfTqt(0Mv%x62F3jWap+_YX=JM#yT4c!7LIE2YD=xq6PhSz zW2B1A<#Fu*{Rbk$TPg2?iS;PQzn)GT$~Bd45a&4#L&!#q1ebIHdc$=C`q^V)gu6{QqdzHKm0@>7d1xaY;9HZ*Mfyw0ZK_IhDp(`*h=N%Bn74hLj5hYd;on#PA< zXy9!Q^}Z^b!!PO;!osE4ZIz&~;auM3$T@Y{WQ593UNaz6L!h>%m&Je(`-3HY*A)AX z1_9YeVG#8;=z=*^A){=XcA(q{6Wu;cdqEbIdyZWv+M2v|qvidWs}Hk_kw^_`#)S4E zSF^LJRurJZKMJ}sqSkv*fhdyoY#k>TiwxAk86urmS|F0;=IEVvL*em4MacC`GAnbMK+GiFMQ=oUCF9`@v^MCR$G z?$-#_^wljPnW*eNl|oXCBGu1*QMKsb<2p94BLKtWWQjz>G)d|~8_GZUqveQJ`)7vo zcX=*`8fgA@`I({odinX+iU&oG_}06_EGhK{(yMWqj_+ZHnBf}tcQK(`nK$FT&s*^d z^h{DrY}G3deil_NN?|0vh6aZ9CfTaXefG8ZwyiSHBV{0{)U-4Px@yXiPEK$z6O+iq z!W4P4WC`>cUuZH$+&`p&?rPGiREGN6XjBH0ovg}G&qlJ#(fE%i*Xu1i8;R#T?s_e> z9xx-{HQ5uBY4)LBRpsSmZxHL_C?Vah5GWt;EJ z1|N2fL$13bse4F%go5^4{})@swEMql-b{K#*Gew{_$d&L<@lyK5p`u#6XwLm+@z)l zlRk`|Eif9e%{}k&c_l{A_F?pn`RrE;r1Tj6%jIV<{1?j4VEF%1eg?z8P=5aD;z1a$ z3Gc2`T>R^d4BTfX%Gs~|AuyPF_h7(2zm@%w3cdE-D-`*Fq4IDSuJ>KVUzIGxCCUq^ z4gwiAk5QdBEszEO2nrN$v2Q98acip51Z6)A;`20Qh|DBrnl=*W>`Z%?w`(&tgbumIvFr@ z=|tW%q6=7;nC-Uhm#&)-)8R=*2G1wT+^f~6uDkm}vg`<2*-r~k zXWunErLBVMm`Ia{DiW8ZcPt%Gv%M#8jbG}Egcg0BflSjsTCFg^zWY3E$x|Vxy;PWf zpLb6=^@coke>rtcAo&t<7(p|Hjl$Xlx|kRBKv7gnuTgAb@}MmPSN4I1FrIhTKD8?T zd^$c~NhdrG3PU{~-6&^0Lsqz^;WaoWEq54nBIJazFJv>AKU>PvFw%vou%+NUP^8G% zp_v^nrD*Gp@gR-Oze00D%3GxrwgHGWf<+iSX#6IdZp5Zd@uO<(qV7=#u^TIF>CxEt z*iqY-h%?kuZ=B&GDq^vQR0Y$gO$aO=y6O=Fq7=gltes+c$Rx1!TF{a$2IW%nkH?m* z{h=jNgxM)#Ks=A;RP&mtuLXM~TO=^t5VU24sh9l+=|Bdlmc0)&<-kJs>lLx)T1!!z zQcL$Oww;2qLygt`w&mPle7C}*$yKHpTjCs_wZ z=xn~{l<%kCV2W}W1~Y(ux)~}?Goad#vppC_DmM5hx#oLP3`z1msc<3R zlNx@Q`KU(?Gg6^oA&B;+8nibIIZyUBfI`O?FjCRxR{Kud%z{3C^0c*8y<`KbwxT+o zQ1hK0POy0%;udyvfD337u?6(~2G7}p8NnszGZmZr>a2zB%+pU4>Cg40zeu`>86O~~ z%!yP}4hVQ&;yqf)uFp=q63jVxV%l6{=+eyoMfDOxmpaY+_Dx%6#R&%)Bq+}oI0i$s zdRHCq%(O+ix8*z)$C{g!9saz<9WoPnx3P;^B&Z9VB) z+$y_uJ~}l1pZ~{zKgzWGr*XLXPjTyLY)5KS!Q~71mwX3l(ov2B&?fD&lBkM*6W-t1 zU&5zwiuFS@VDBLyu@7rU4)VgHFrqJT<9Mm^Zs6n86K5j_B}o$fdh(}m>xI`>8PK7O z+zZ`*hyybZ3Q2m!75)wlco%AH9jH_uD`>Zq5jn`9v0Nh)+@U)*qw19*XACggGtL%b|o(dP_de5N>$+%1gWpwDv zl8U6DzS4T+F33YU@l|a@k~R9OF!M{X4;0x|5pqFBNm7UdC3;8CV&XtE1RN5PCNYQu zO*9`|kWsUn|7uMnxu)gV^WR#aQNWuxa7di(NYb03k_++>YaWr(zik6r;IqvI zc}P~drXuuy+wTg{Fp~SWfrcUp#sEEb;4WlI6^Hog3-ix9B7+%cf9=~nG0Ir3_zx?D-G(!ssbW-`JgHyjCE z^11mD9TZuYNjokfRt2)WAce0>X@iuuUfO-A*!XEv-_|wxIz?uo>isBlkkiUD+0|zw zs;_yOTf^0_jZRf0bZcag7+(Gwn_!xW-BBf>2{R})z{y_2XeupM91FBqoJ^;A>jiw+ zBV>m~TJD0MDYhZ9x@Qejpyj?&vaR;H7opY&>zw_wUn)eVHTsafP=03PaH9OY)O(-_ z&)dv9%Zbs|AqkkQ`Dq7^1;&`mP%^B6lZax%>l}ax592s{-!cyyBJ-{mGoF}qOi(dC zZAnQw1F`~Byh?}zU}YQ1i!W84wd>~)jPMPWv2Ov#mA4Ei$rB`&gx}a&@+S%ygJa!G z9B=Sl84jsOYy^cxGx1%FU|lro6W|{dNbuxmON)|m5} zm2{D~n>o3=zY@T!ysN$oEKe3ugFa`!B3x65L?A60r=jl!v{zrk zi${*V`t-|Hzo7gG#nTJS-`VK;d#;2@w`?=fkMP~^2)P&~vi**E_JY|n2zI;oh02GE%4eV(9=Za10f{mVqn6=79IW(o zl#H)}ahoJl^e8nP$R*1OZ`GER=!{moEL1<)?0$i)Hc5hK@!B-&$~tbI#fXNjGTf{; zV~&$o$n}*-FwA?moB=!YLG_zk>V>M79K- zUk9hW*K27EMr8rE5rSjeH?=79g5Fm&MZ92lnOm9Vp0+E|Bu&W-k{YTqVqJX5o7{NS{-Kk*{h>!br^l>l%iZP zVi$VbXbt3rYJpM$DHJYyO~d!=5xug-L9__E-8J0|#J|4P(UCbBi?40~TH>(nnUs1lKCR;<_hM(2jYk8}LcMXTEzd6qlS}0{2>2E2j zyO*07kk-hhm|jJ$H*Da*a-^jB3kgX=EQh-Mrm_{m91JTI(%`||J=S;F++$DTFzel8 zf!a*`1{?}#VU#+1Gnbv_i%v0+1wyJDMky}F-QUjX0KCiXpyNoy@H^sQwtbeo#1c%idqK%zZU zDVDN@Yeqdg&HydtZseM>@Rf^I?}dI<@Ito*{1|<<1$>bSeUt~Wbw{}NywIP~6Sh9= zdBsEN$Gp&OeA%7WwN%Ip-BSjx3It(Ovev%B6}@CUX@6m@lX^c-67< znvNgjtSj+K+Ab>S5u_RdHIbl>bDM0p@nNlJrf}~XmHUXTZ*W@skUVOstFk?c-w%r^ z|MyL-pn)lCSPP_RDiRJXP!!Btksxh;vE5<;Zpf38O$Zw-uT*TvbPIA`NKcsAJF`DVX^p$c*&hq-Uuu#V*h||4_a@E$ zrHztiKcwE*Yw9#^JR$XgUaIea7{SE>)D4oA;h$fU9GR#W=@W2BYlZ9xS)KXkv!o+* ztZBjKTdnZN*#52|-8D7Zc%eeu05sPSc_BMx{qR!mZtihElu2bhR5JNgD{}vQFA4|Y zgMYpWMweDmLVJ0kL=Ywg1ru|uDPsYS!rv^X5l`3gG}`)QNJX}=AVx&95w`lYcI55 z78xLdf4<4sP1vuNBWEX4w^W~f!gdMFB+E8eRM`vTJ)udV<7IglRGya^E1D4e^RdG= zB_^xn>S{~;mf;3h_~#D-(ku4CckA$pm3MntRf%TGoZXWMg%N^!bxF?eNyHj02l#JO zRY`F`p-r#?&_tmN5brB=fhoAwGiO#)Qm%u@Iey3}7L^|gu)MAPYL6K4)A(_t<8pR% zKzB6KnG;z>QFh_2GPHfXLlfxGWVS~uQS0Ys;z?9#=!39_*qAGfCYh*{QW%-Xz0NTr z!C2{A;GbyZelE292GK7J0LS@0n9Q3U@#{9Gc|oe#St25IyyiP>xN;=L?akF} zS-?0G&5U{5ADEYF%Jxb!gH16Tz+7F{1Ko7^PDXV^&h}&o;>g2$JqGTa7cX zQ+b}6_o<~QHUE2OUwdXo_C6vjc~|?6T7lHx6Ldxnr0S)!8_P*`jClna&VK(CT zFwOUBs;oM^n>`UFZ}&vx20J&9MHmmj4fJz1x-NIK-zzCQU7PNn3+@b({ZGeyqRU>) zRBZXy3Cuk2#~PIUt5(up-z!?AhN7*g>F!reVR8e4dnpwr7O!~9*em2_6EH+>!!L|@jK^w2aU0v?!At`i+S1UfL<|xWF z06SogW6l~$;$S@{9dpLF2~4ZWFQ*nf&~HF=sZq${+dD0JpigtCY=QZqcpI10WzB`* z!Af;7mizhU?9ZM#6=lP+JeHUigf{o{&Dp2_G3f;JsiL1~6z=Dnvu`SY$5a$1ZrYqZ z{RL85%4xbBb3ey(Qu0?A-3DS#mn|tz?tX67$n1lH$)>NA+YoKqG>K~Jo_0G3-UO2w z=3(x89$<{LDf`7=N4C|GUn_vZTiuUPEw~*QvnYH4RKr-{&}q5-ltKkBQ^<}V7?t~y z${o(jC76ND?ppT@bD%Uk!xt(yAJa&o56GiwRZE5?=V|Lp%+!B@)PXMCpQL}=^`ZD(8`;H_is%CwHe6ewim_AJkUR3!o;`__lC@26!i7s7DyZ^895z4lcrhpa5A; zl&|FUMGt;LgQIyOfbuTuH?XUMbs)Ngpg~;)ghG!rjW?s71J!ew@XS*f;5-{lLJnq4 zLc(O2qmgdC;qs?MvF{*TN6)B_?LBd94J0@!7VdKdy74V8%C7W4*UQzTedY>`+nQ}_ z3bM&2tdDGBCxOwed7`ei0)yr6FqW>_N`ksYcn44<1NZcLIN{rz4u`h5o@j}0U|Jg^{+N}Av) z-%X(kJl9M-B|)`CNit)2W5$%gKAHGegdFzPy5q7yZ=pjjo>}QyFnYx^Y?M5q{4@Rb z)oo#?C1rG46X(_=$}bHi{m_lq3%eA{rDZ!-x4do?j^;uPt<{3E}ct)?2_ zi3ftbEbry1q1C)4ZJwGP>1P1EWc&yrrD-C@aNNUNENsfk>CLuH0hHqp4^z3#>h1Vz zAA){qk)75AGz{aRZ6=@G6n+ZIGLfgkIQhKhf-q#8Mw-(u_S-GVRXppg)mS_DC7D22 zJ2m16lrf@(g+D5Z4of{2MD?5*Hzlm!F~Z^J+HLXtb?whR!+#V$x<)7(GuNtTKW3V< z;K3fTO_1;v2leO)v?|&cB79+6jhgUBOj~UdZDLnMUsMBNbeC{s^&9$NLL+d({e~T6 z-OFpRI1hMMhu7dsjM9q)Xfq1zKIL8XKTCB@?Yv=IpN^VR@<-Gh(6+BNSnBL!HWdv+ z1SMJAaaa>9w*0u#fA%?T_Bps-Hm9JTew)MTv5XH3?=-Vh4pk1I<5h~cfL9-5Q+#c- z_2y_0kxw0C_t|KhBy-J~*d+->q6q?M_O@N3gGo?e-xQSsQybGlo~gvtm`>*t+ra8O z>gWsBj@gmy#ip24Y;+tKHkn(v;2g=|?cqw_)$$PUzU!lVdfO?HJp@A)HEBGEt3-r@ss!&^3)J0;pd zRu-FbF#1yeaP?OII9uYK`$x1=_HtQ%AcsZUxBmHc%!sp}9HD>s@cB;Bk%S6Gr$%TB zeF$_@aI!AfXfN6a4}w4lpiVl_P&Pvf+{#uM0Yvvk?^~19Ab70bh5$y(m?3`-Xyim^ z3)Di|)y|aq6fAW(t3Q-_2rkqyZrdN}*UL$=|i0x-`PrO)#_%vr7YT2?LYu=@>Z zgT-B~xT}Xd1yy6KJ><8>S~68fxyhF_lL26j(l~%_kS6-#fdN^`Q~lyM68HwNiGtaH z2Z~2<5|qn1pT+uELNF6j_GN|ihO9!mz0f&k^D!ewqe7f&pgzZ?=7YKz?F);#(LSR@ z5;Epl$%g+6i}e}=NM&HqMVq++pF^{Gm@bH_t9epR;+}GjZvGuhL+`sSG8eG6xsWW7 zVN_yrYaP>l#zzaSD~7CfPwj;y)&*rGE|NXd?0A3A@N7|DD&F#}MAe01_&n52^k}3V zG(ehK7m+xjjL#6}(jp0nN*aM*ss#EX362smyFm3SbfAAYUF5B&VBafizWHUCPC;2p z6Uwx02r_M{ImtC&YGn5lgp8;AFGXThzTbl=eFXUEQJ1o z2zEqv(12f2RJP>m78Af0p}wUBI2xit^K*ZU326lf{IV07;QL)4b`QdQ)HUXK;QSkK z9+irMOh^T2!p)}`mA>Gk_3U3TufHSV=0-#!lfq>Q2_=iMElWjd2s0ruRWIE1&(I%k zzEk1mMlaml=!Kgc7_5bT(gcY-}~A_PCKd14T`ABN>p8dMi~ zV`Z{fA2jqvECqR%`a|H>QnbibH0TpNdJ<$Xme~WU`9OedC=HAvKmlCXYFhMSfJCXi z=*9L-f4M4)@3n`XT7Z?AwdhS%Ed1~8i{DV1=XI$)r$01_Wb7hkBfw#SEH0F)!St#T z4h4jn<)F-h*|af#1A1)TgrBuu(iM$BlXEFxf%}F*02Kb9B%H<-QJXbCHe7fI^-~O{=AbvNGopB^L6`}o1MA5alT*$Iv+f5cQ<+I{nkQR7%uN*rUSB{^b023A z8g{NOH-jO+rEGTp+!P%SBMmTq3TX-6O6DVFZX3WX|AVk}#n=*ru)#?YS|TvLrH5#l z?e2oUrE=}evU9P8p&!!z8B+@XRLdTG2!cr@o2#?vj*cey)d(gKhVGzuJ@T%DAg*Sq zIysQ;fN6(FxvLd_$oEZU<|U#xt`XL{1dwIXRNU(%Pa{@s4aSngWL?9+0jvm+t!;sS zMMs9+FsH!^P?*CJLuE{ZFX#$Z%QZ8GV{7JiaKs119o>^i=Er5Te?|{GnBTfW`K1Hb zYU*FX*;N1q<)1{Hzq)RioS(jFVXlOQSC*P+_CwZ?f z!^!(}8A*s$N&7(qsM;offqQTVK6X=tDS+GV-p3usOuNLrmpjA+Zqj`pcSy6`PIn7; z!ZPP>=B~-zRqiJ4ST>17v5z|jmO#8Wa>pnjfO`*jU>f$}H*hz|-3IqP+=*RT=dR~Y z=cbIf>$qe0f*AH1?qCC4%kAb4zDlwtL{D8daNao{#BkIb8M3Hq-F4Iyb)0SrFj(JK;bcfiN#^??z zM|*U~9H&XT8zhjuzk@ZWVM?pct8KbtE2neUxPz_oC(wizYFZJWSK9D~WFicXMA%GQ z=DbbgFmais7@}xO_a?5*R1_0T(G+B4QroQc({oJtSxGiY7-x=Ong|GrbYToMADE-M zY|zsHW6aY4W6aZ_=A|xM^i*Svd8#E&Pj$war#fTI(-33K(~!nkGiOFmjRebRO(4#d z( zrrLV9g*#2Pakr5>Kh-vHr>TaXgF8(%lr`LGsxc7UT{_jMRa1>dYO0OtvYi-sT&5T) zE<5~e-05fIEsZHPx6$nrfT;RGaWqZOl(KT!A#zn(Amn69)CZudm_j zBN(~rBVeTJYxw#azCLVOR3GLps;}YeGc&_Mo~*uxv-&`A)n~3p=(K%(`82`52&X>N z9-m?ve^4r&Xx957d=Zjmd$82|BsIqLnW(b{8>V;6PK+&5F!x)L!dl<=Rb8AU!Vx?cBg}?aYbhVW<+)Fvk`upg z_z4nTD<>?GaJH17!|YCKeLs^Y9@En?D3tb(n^$f2H=|41T_p7yUL^He9+LW+PHnHj z5wZWzTOf#^B?;^Qa+2{)eT~n~k!!-v<16=ISv?RRWj)|t!iI?gCMK6Cp5W3YG7Rt{ z>RpeYGCP(UY49Gy9d%NqfPj;X>y3`R5J;Rh>5Y6 zX%1!QByJ`$9Q+*6Bi+VW8 zPw)z&D{8+%=??l{`*=G1JZB|_HsTK1-K=HqeGeHsECR%2eh7Xz?-q3BWW{EJVs7HL zDvrI6Nv9By+KYmjcYYgSGmup}-yrZzKe0;{bBqKZ{}|{30#{wNRne&RhK4a?PBREg zLn*iDgDRTT_2<*O=5BscuzsPQ9-M1Dnf`#gYp(j_VbTfv^TgcrlZQ!ITztF!#N5P_ zcDs0S zQ%2=fx^4fIe2g(Qz*(hg12lh$MA6;n>P&!%hiSQDA!S1kAL4fC7yn zU9Q9Aa6Mi3;Wp0H{XYMdI_wVVXY1m3boXjKZ3%HO2+9!$YuJD|ybMH=JQu+MLoVJ}t|<`=<-!Iu&jrm0xp-r_9J$7n3$vd**I1E@ zHl5R1arLhAWBZYx6#mLzh4f1T0e; zD|$NNQ_n^u8`YueWmRod2U@LSSY7yqQg?sDL`Bck(w!`bJJniNbAN&ayCH14yHio# zUb?#J_D+Pnx3&jcX;gAQU<4H_W1t}(O#}_Lt-=xnvevV04?l z=Q(3?GIq6x4_W>P?<6DI;H*u8imY13Mz-!@A?x4Wm*OYG@u3|N@96Qn%K!+8L*_p16b@VJ+Q_Etk!D4 z;&ek`qx=ReDYW~6HFhbm?3*62qbo$3b;6e--VR~Q# zt>?f47@}$*QVO4G&*e6W$8I6};55|%Ne~q}lv3L!myRQ02EsAHYC@~_;p zlG(KsR~((@B`Fs*r+9Pt$H>cd0z(h`Kyc*wO?{Cxwd;}>!mUyC_^tfF^);`p45Sip znz)il*nRkr{1m>F-pWEX^zkpH@Bgf8eksj9Oa21~KA+CH%*}o7*1!MvHyn6cY05LbE8mynoVe^eP$YZ`Pc< z^}A8ax|OxO{|aiEb8~rL{B7QsIqQpmNndnheUXbrX@o_u-}RA%Zymc6I(q3~Y6V_p zF!9~_s~XHNIgKVLblc~W+xuHM=dJ|e-zxTe$!+izzW;N{2Ub>iC5ZH`4)K?;zqTIU z@wwzq4aLHjlJ9q8!Mf`IjJ3di02)WS`~J_T+0*X*p9TAqIR`J8eIx#;gRVdxD8$|F zczv5*r?(nH`I!kq=|%{}oK(g&&`moKy}ncB++pRck<$#iKLL{&(X{#pq2Ewk-QEe& z4}8y=X5f2{4wM+5zC^J-bKm&X;^Mih z_r+&aa+&vm>&cFaf?uq%;eJCaj(p~`SMxij63bgHYZ)y=mjwLoguZbDphe%zQ&NnS ztz_5&7;pATBKLCquxg`@5YO-e+|*TYQc@zz;>22F2EJN-poNs%nj5+$I))wFT-%KWodyEz+0hn^t%5CnTQn||D z1uIk(RJJj0dA&8Uw|)GZhU}J+EoQI$uHX;rI|nTNKTdYAr5wAbdu$ht^!aZm-GW2p z@xGLp{tLt1D2gNEZ07$eu`G5#tXCuA`F69~!9(69pqsIlz#UNJhg0HYqg+5umUb4h zy0BUv1B47?eT5m(8yUb`A|OWkAP%N8Klhn0e&wIPdg@a@-jue8UC2!l2JDi6N|Jrq z-3Hygf_((l!3o@4L4hNw`@J_sY%I|DAcq{zUOxI$pGA%h*MoP@Z%Pfyg6LS^1Unx$ z2#Zj!m6jYr-<&=6TmLI_LiWG>I6hnPkq1k#Y1CJyU>eTeI{p>n#Pf}r%#E-5p&0LT z{)8a{>mZ6ZLw(7G;oRgo1x}g26I`~&yOzE1x*u<|t?_#%qKf+c#0ABR(=HH^W1hCC z8R$q;t7L=BQK4c62o1=#B2+*Z8W~ZUgiyb~IzowIc=<=a@^eI4L=9qb_=N_<)E-Kk z3-Ii8oL0k;1~kwcm<#2AeMO2R3S&8pEv1k8{)#^J^%kECr5Iy%rY5VaQ*0<`70^I+?6Ib>`L}V0NSVz)4_Nn? za^P}9T4Cr<%Vp>aK4N!+gMAi@-EUb`HOL>Fo_Ywp#M(0wW@WJ?eIK4xm_UA`g1UyY z?ulguu&>JO_z(uQC1o8)Mnv<7=_SrXpr8cgu)&I=1;|KPEG(Vm+d;xph2g!NKS+4G zl)#|_oC#k_z<-34lrKFD_{vidM7Aa%^gonpL8PywwL^rfa5@z^iHUY^N5%tN1wA0%k=Txx&sxtpJ zG)_=2D1cGCR`(BL6i@aZhWxd!e$^OqWxMO6xi_R<-={HJ7;eOo|5u4LWrqB&8WjEE zl>b0ArsD8NKLCN(UghYoel_a;UX`q%%EO#L$rW*L159XWvs=OQv%)djE9JjJEOtIv zRyPal4Hcn8-0N7e?R=SgT;rn>YoM_cJg}96P=iG0JDi)M#e!w=964vB|60qzKy_fS zhSkT$4DBoCnc0bdEn zn|swHa{tn#f>n01^FO`_g|buy=_i@~__9JN{(B~eAWk+MRH~4!x7aMZhzgXx0sVAuQE7QtSc^DCszTO11;k z*l|mwW%BXx!O3LCjZ5z=*FSCf))y^_50C@4OKlkeO-Hgw2?)m7MT~Ilv4R^4PLop0 z*R$#&{{XSCXK{Fl^-!?~?YQA?){An=|8l?>sS(}DPo9hEY>=SbT$zFu0D2On;IAw} z%I2G*om^&a=6vw3+kSI}ovoLolk=u%mw)Q&J2?$>wWHPoAViMU?(TmOJC|?G{bVFP z4#1{^!#JS^Sa2aC_0;kW1c>v#}^AKf!&osQ(mOvsB zVb6+jpAmU8{iVChb-|{Voj}M_&khgTfZB>F9tB8=eXw&GYeo!o_9%o(V=RL41@Rs} z<4JW44ER;9E-?cBoRVIY9Z7Fx8fN}TP-LeNXfWUW>0DGaAke;DJXW%u*;79gUTP+C z&H|)BI?%IhlXV~!MCora9i#&sOX{{+ZYt`n+X8Z+Vb}k6PBNvq9_)aWBxBLxx?Ydg zaWm-AL>-u$`~m};dkp2v7QpTtv`CT@$j(glTt^G%#_W^g14ZVHnDAw)*$un+TF0Pg zMPNE~%8EEi_zW!>#F2Yyl0~983FxUw_MW1zghN2LkL}+iD_5=iTI>!!3%_yD6W)9NU=@O7Fu^QIlLTKGp^%I7{9=q z!7KH6GhYvaJ@ICci*d0rmV*x448P(}>HEpaH9mJuiHgPCiy`YBu>yH->P4s>HJ%?c z%;y#Wg?(UbmPoW;tYGuB%xExeNLX5o(}UM_O*lQ8alXR}46Db?$h8ctzd_5u8?+3v z?tvGD?ip+ZhJxdhCs)C|>W!FJOYFf!jI0ONh)Gg6`i+C;iQ*6qGwPn$%LD8n zv?_B76or8YCxr*r3*o{>)QXp&9n^9GYnEYz0f^g8gprK*b1VH%ZpPN`W~&l)e z$w3;!C42m1=?LWAHMFf~uHOy5<95G*(aZ?JR1%g9H=>n`RbhbzDYEn6FiOE-l9Y6t zzLYRv+ua?h)LCUVyUp;D+$Z8Gd2G1tcDD`7A`bet`*hxIUPyPlZ7O2hschsQq}x8m z6WCjQh@{iB5qDmJYGGM=Y?F}4TuCzR^Um&MljV?t1{R5tnzVdD+k3Mv?e9O z9)*UGl>;rZxW((-I{TO(<%aDW@uN?`myXme$UDZfSOmo^ZPs&d9AfWl6kOcA+x@z`EP3aX0Y@PyJwgoz8TDF#W!TuH+BC_UEkD7 z-#`#%qZ;4TvU>3inf1+(|3+uW@v_%8*e?wF_@=IDsu4e4;DY7>2~YPWBrxnCPxfMw ziUnTwMu8N1cQ}6+GZ+0hkHCBIRE#>zkVd&Q@;R#bp=02&1}g?$Qht!2H1Ke-_OTy$ z|M7~kAEe)s-IT{Z|IClQ|7^wZ>oZ#(OT(Xk=7-;ZwgLn68H1|Y3Jl0U^BCYiTY&`n zjB(Xx1rp?+c_i?kt-u3)#?b1s0uS=fJRbPZR-l4D0~PdHfeQI&9u@p&W_YBbJY5W| z=KhPt6D0O-SVE%{sIE$MLIl`If|W-Zo+N-`A`3k-;H9f7_32)z;yoc#UO(VQ)KV*J zTzi9pyjWRA;s~83=3P4-q2ckOB$fMC@l@i3Sf0cM5voPJhC(-wO2Y1)Q{`I*NMh*^CbmkhGQI63cHdz_>|B6vX_6nDlcdQ^B*gkO|?yH;^?3vt|qA zV~guBwWj1oF3oFu))R4*$)o^k;25QNEf^wR!|G1 zNHKmn?oeH7ur&iZK)s!#N{DzP$u7y_l0CBUK)4f+PDNB4`xLX7JdgMKjWHgXjV{!( zCZ+WDmA#`xMA|tqj+{(6KeI?aMzZF}&QO9(Gp%gKWeRZn;*n=4 zZ(Sxgs|M+&Q9q3gX&LDa5NhXZhWLC0WS@GntJYpOpk63V10!@@%Jn=G^ zHsm7B%PtAh-2XgN?M>cu-doSdONKyc~z&=W{J0?^0fSPjV)_SzgCtRq6a zS5d9|GOz(|3Zq76qXS@zc_zytEz0nY!y#={K>=oDXt2*a!SQOJ^drGd4rwTnxkP?T z-g0|s3T|ryoDJ)n!oyUKi?@rk!Eh+YbkSHIz-XV^!(mdvVfEm9OFbBsfS4I*9({If zrgk{yQ1^cM9*-igkdO1Igd4L=Qvzi8dB9>aJ00KQA2egkTX0r=R0wZ51txc!M_>Z` z+u&nL(hKFle=QtVW7SEAAxm09bB!CNKZW>+PT zLLBf$F-kVkiX|WeFpoSvxVtQq!*Ot$Csc35U$Vk;*yh7b>URWNnrgvg@}ZKj9fW9S z7p1{;`z21He{#BvAK)ws{7R=$0!Sk0efY_G9#G^VEzCRf0tEklw{;D#P&bQbG0Y}k z;={}@;(Yohu(j>P%eH*KO^%}!c{{h|6knvgLQ3vPX$^bWT%Yr*y=N^jV`<6-baaaz z=Jqv(=d6b1xV&cN8;;6?7dJ%@;yR1K_#-@d*YF3_{R~wGXFD-_F=>-$URy(sq=PTm zh$~DB@o31>)-A!8_|c+(!Sd}4nsjM2fkvQ&RI*1g68##Z`GQ*6ALWWj!b`a%C61ua zwGe`kN|zazM)$YzM~6YE!EzOcxcZO)EE2?o`Dbgs4?zxX0egpHLWD!IF$eP6!YGT? zfqD8o?)}mt$o$H0`ptw9{K$iJa0_%js@j0-nOPXJgo!BCEsigyUbc}rS@LOyZ^(U` z8HU`YnXw_+LUi1(_cFoa%7Azu`L;#qXp0@mF-r&>B6OJ7vW>RXQx>JbB6Nrk^b$5V zt@fCY{Ipu@PfYcRywemH`kIft-Y@&$$=sc`eUR~bJiXBie3jEZQqTA0;Rqa2KGM(j zrN2hHqGI#n_0kK!W_wdIkouBH9qsQtQpYY#4)=hNDC3X~D$b53B|=6JEz$-ZQfLAp%2z=P1eKn~v*_juluO?-ug#!tcPtl%8z)!wNz{?y{ zxl#filhzIZWbJ-HKIWlCzzfC|+`W`64r!IGi623Dub5Wa{D>&tqmKnDEQv8m(4VEC zaqa#=B^^@l4H{N}HcftiqUp|ydlO)(_mEi4tq>4{3XX>Qp5vNp`;IHk2gIQMe6p)W zY#c=>X-#%i1kkrB4~Vg(1ws1UFxjo=gkXw~sX+LXr*&16ne6EHeN4F0pwJ#*!`CQ2 zjY;DEKCdXVSCA~5@(tfziyCWloP6!H?o+X(2&*Wm6L~6z8NJl0JQY&XOWm6iv4rs= z$Z9VcM1`&v^Zb%ilC3}AS=@~#^PGLcUuoQpre?N0=h5FFu-2?+S5lhi<+vMKNVS@h zQS+Q17FR#d|NXvr)8l#6jm`N?FQSHTaxucufuy4uUoAxsXOPqaIa(UQvD0soF|u8V z{Bi6fV%HRyCfy3tS{OEWJQJo#$hj} z;(Wko+79QBl^9U72$6o?VSFsQ&FPgMviMTh`9|H| z@gd65n-zsJTPVUe-M$e>AI||8iWjeE#cxy=HQuuN+8je`ROj|ijYhvGo=&zQlUlve zvNOn=tRNSDWN+wx%o-{%`J&n7qP2eUtBlTH_;|KNfkT%>_0w3KtPXl>l#}UMV8SGL+OE_@L{34rdID<$6c`(qyx!5N#D%fkR zj!H`JL!~VqmGDpUs03H~vmTX@Sr|+SQ|PZ@2tj$;?UMr7iwNaRIX`aYQ4`UIo%iGk zTGIrpjcV}#BU;OT|C`HE zR#)ioLAOycTqI^C{og5lQ0Wq8Vx4J0$!po4D7~TdD(O|FGXyXwO0SWQKH8`JnNlo# zIf~Oy?0>1U>%Fo;AVY{t%FgF;QT941)@)7?HUrdSECN>KW&dlHJ=iN-`TN^#ld3m~ zeSh6J@KF?Y&9^O*Ic=M({2+rBKK`0Hz&jy|=1MYGNw#Uk(`Pk-eFb?QL{m1O$diJ- z!le>)?Xd@ty#1ol+n!aN(m4Bu`p~dQ=G0M4hyXSVaBj9jQNm``Y|*-mk8YjDQ4^Ih zY%>m707rv4lJsDc*Li4|`@&}p=Xd;>yz3skK8CEaJK2f)L6=OZ(nSeoR-!`}qd? zl{ZmVEb`Cv^t>Twxtx55@)gBg6h9{jASP=N4aYW_k9+OvTM2y7Ulci3vgna4Fq$D; zIU}7n02a!^mW$p^=%m&?T(C8t;=;zpaakvmt_kt$6I_Ts%n3g-O6qcPG9jA4Mgop< zLQB|@_r`lwT>%gY;mV8@lNJ`O4*r8ZV-)0XQ0`+L?}d+#$Z;Vr)0|Gj}Zd#|lX> zrin7X(nO_)&UAX{%;Ik7l05PZN&!Xl1-=aGFSw`DxHZ@vT4vBgYPN=~BPGU6{a_L^ zD8E47P)FO?v!RQIOPDo7x`p%6kZQq`<1t!h*h$`krF$~&p@y92N3=)fnB+OvQ|jmg2~5)l^=3OaK~x%8Al;mbI)PL?zI-rrfltq>br$%K`D(9jbc>7 zs1Y&iM@>x&!)DD@qg+chFX5V3pI&=3M!jR4v|Af}pmJtk`8GLYg>_Gg76UU~12df| zCy%BY7&aD{=MmJZ7T`JC;5iArFaZr-d`5v!1FzYQ@M7B`!OKpIFnGB$Osp!w%bvF@ zFio#1@YZ}da9`%-9lT(s#|d6Iz@Ia`5*%0}UDo*+UCU9U^&&3SMhXSTr))-v6~{Sh z=)6}^fzGxU0kQT+v@0|fAw8n|Ggg$3>I&=EA;}`2Bf27Qp3t?GSU_Fjh(r~zaU)ag zx*~`k*A?+}fUB_AR&L^MW}lwC-I-{1$(U^q^J)~9qUz?dEr%t zx#3l8lKfScgcV+e)=45kEEft_iIAIX{cQSDyTLkuBQW3p_|+@QWAxB>K+}w0Qt*Ph zbT+pd40V;4-0ALF*Vy_~Z85w(fk+t*vyiqaeH2z`&RgVwrp(P1c(u-pM_rumVNBze z$kfx}GTbk)$X#2%FD|F;eQ`J=Boz2bvAMgnq)pnWjfo_nRWf115_TUVsv7iI?5H*U zsbXO_ch1DS10Q0?fMmu(ViISu^$@{=gs+@>XsN%fn z5@~souS#RtGI?|l;|@O49zzF)d2#gWmqr?X#2t^W5?JJTry!mZfg`WoH1SWlUkj+9J^O^# zymK`Qjjsd;t~>YP8Wz``1X0!A!&H>2tUdoKVGwTNo2t~(5tIv6$cjOQ3ZY^OabfrUjBXCyHnNSwRXI-y}U}t)L z+_?Y(e9#MfRu<`@Il*m`^IW6GHPQ~17p zN~gn@_~x1G;F}p@TwaYA=1pD#tkFuCnal|#;OusFs}xxZp<9}Vw-H6_GICUO71VV< z@N_W@W=ZCip2)|6B^XZ3uTR$~DBQql1D3la&%4irS5(+V%6Q*UEB)Nr6#Ge%@SoK1#Gvc(UgaP^aIixa11FH5kk z%Q;@dyt%1G2c=~2l9Ud*=CuyQ-rg8-<|oHFO#)^GfQl30(fBV=FBvdzabSYyB5Q%hsioeo$~9@r zV*vOz6Ll>z)-BU2=fz4wT-O3<7A0+^{Vo)ape~9Oe-2LlzO#UL5omY zJD^V=`yL;$=1-j2`r?JJR5OUgO>cukh3RcWVx^tUp;v;+Ne4}bV#7GY!rfehcD_q_ z&ZwG1J>OMkY^52e_t++h&VcX-dF+?sr=z)Pv1FoA#xBnOeoVR=#*^7_;Ii~|IxKsu zfiA;z?kVcXL7Uq;#pZaOg#{XoBU*YNXqGMsZ@wdSS{uk7Yr3yF{aE>VZnJ+X$oq>v zfa6p*%XX@p)<0EKZ&M$@aVmq5@Ke!Gi+q+fybD=Md*3uD%jQ~+Xn z^nW};KGR_CPUm19Dn)JgRZ7)clad&K1%cHzOC;NEVz*kr*%>*;RmG~mHHp&0%~$YJ zHBp4#j;}@oe9EPtxB*+_kscz8h|Uq>BYyjL9`VbUr}IIaZqL%~q?>5bAwG1Ujr*Wu z+y|(D!hc0qP<7gR>GbGS-w0J$el{hQ+dAWv=F?LxYMHA}$GGe{G@(jx^m_7%JU)GM zq5WX0aYjDVD@nYbX2ct6HyHgX?A9YoQmTEmVkcOaYCnnn%|FL&%cEETo+lYoN{_tb;V7MFGcy`cQ1M+l|2j(V zpima@&EZyr&~{FS)dFgqM8<{MDdO=DeG!OKBnbT&_qE-?$&tb{Y2<&DCuyXoAwsN6 z)P_BzmM{(?CA{1|__XALPfHM0;v!GabFJjN$%0n*ykla}>S6LMX!Y1t-ut`m(}`8S ztAwP@vVz?3t`B#jneA>5e^CARcZn8dbq|)u+-yND@kDLbu)~g^&!4@Jxp# zIomz2;jkmsE`cpP^r1M^Mb~7@85nHc?fH6v)%Vi8oLr?u6naP zUKm(s6VRY_xT;rvdCbEV>XZCk9Cjr!iciFO9dIZ*R~Ke%E21|aRC*#!DD&9h=XSc# z!(SdFHkslUKX+k>!xtUSBZ6t1IU=wxj~)g@a7viw0PyomF!7@aUqggXw3k{ul4fYo z3fgEJ4%;DTj2(MST#3{$u}o}X`Iy`q<0^fsUgbI_+n{*tOQowZ$hMM@(__cJR8$)5 zpb|!D7x#XcRCpLCtFV&pQrN0hc7#g66z5j1q;Ey_A*MV#_Ju0WCUVnG&9ozfDi+vV z3CF(ZdD$KNQjunKE#${&Y7Lm-lO+4J1aG8yV)V8@_JvzJ_63s`4-e;GR&?x(y3G_v zrFiU11;FY%cT6W#tzF1*3ko;0>ZkFI;Krd=0J`2Lw5h#sZy#q*%c&V%gAhk`Cd1a}mpQ1Y53Bh}uKITTULfSFwoYN+DvoqC=b#s}C4i z!(7C2s9NSQ)Hiv=a#d7qgT9WJfNu|}Q8>l5DoUVG=(6LHRnX6d+?iewp)oKYgA8NI ztskCQ46NtRW28yE&0coLtWzlg z$&aJUPyOZ{@5aP|1t^T^*k!td*Lf3e=-$K>UD?{kH@v7rwMc z0vIck1uB;r66o1R0VR=?G!^sW+o0WQ;ef@!jp51T#f9t`FEhT}l!YfZg`h>JI%vZah*-x6 zI+?*NBdFq)9S-j^u2q-0{KqBRa+`c_5}~Osq9y%GXYM2w%>&u*r>YVS_uy#W8hIj~&8Sk><0NWH^LR z)Usb8gqvKKNTOn}K?elGA$%SI_Y-++Y*Bs$U|S$s<{Kd}wyx%t2C}7h;H{DE6I_Gz zJfu9Q59m<#gT0T zv=vw^WJQjNa74GwCO*0FET>x$FtWSg9heaGZ!jAl4E*%8#5$CQ;NOzbQ3NfyH7dqc zL`x+wi9^>VA|mOW7K7F#%0hD}&{8o3IEXOVE)6jS7VXdUue+zmt+$r_ z!F$btnzCU37N}|8Gt$7O17OLs)(IMzS8a@tG)!nNZoO{UM)L0}B;;4NP7x!*HwKYhazN;#WjX!^s$v)f=b0Hv$TYoFmj#g@yl0bf zEYe#7Ix(E9>p|wg=P^$FIe7l;OkssZUHXGRg^W#ZE{nc+s%vsfB8dF(^Pf#R!7i-c z;CNCBG4m-uJydf_^^R;=#F9FO4%lU~l2+6{kYO4dN_`-iVQD5=CL>$%Q$l9IQhxlygb`QnE=x5APv)eQUFr*Ahr&din$`VWJ_ZwNDv0W7oXE&C(|=hcy!(um#mO%Xy}%ZvejW$b#xi z^PK7n&W=s8STC0$Q>(sv;!IFL!vI0c%UPKsH?xC~7ZekeJJXj?{u-nNn0}uKPZk^3 zASK3>=cGhWE+w3DH)ab1dCsZOV1K2k+&yR{j{i8oRZ?P%Zr`s0krJjgs>#lj64g%_ zCt*Hv-z#@mtfEFE^jt{j@mMAw;X(nw$Um0i=AeX#F1&vzE2mKbJd!JVPZmCa%NB*x zB#PeGa3+pBJNoH`lO|)PQuH*VBdF+ViXJ!5Q_;iyAVsg)DS8%$gf-+G*2VQH<@D%R z!qg)!f1E{THc2>fM*&Va?dynZMK4hjcg}=e;zYyM#|`eGii|ZpqqCAy{RHM=(;vJ` zR#5E=lD2T@sLrH|d_17a;;5v_arQw0#o69QGeuyMPK4tr^{Vac*C$qnACbob4-eSv zR+ma=t0NPNE@K`!b-f)0w_>g&`JGG`1J9g}%Xy^Yz!Dwv(1L1QS$$TK3ySh|Bq*18 z_OZ={c`EBdl1m$-sfsKqgqxVZ$>*wV`o4>p2QCXRB{!?nz%xwwNahyaRu`=18hg_4 zUVEqSUN!V9ToW3N^XX!`*uhkBq{w-7b3WVR-wl8(wT+>2I;AOG&R|n;KmfVosh<_OIL#;sLy&vkmpCE#Dy!3Bi*RB*K&yS}QY}ns{hRw{Gri zrx0jtJvd+`>FaO@HTgWIg#4Yh5LAssuxEEo*&SBBJ(WGrtZ5bC5VqV*WvZjtV&6(k zXckS`TW0VwT8WYE`OywptH(Oz?)&9iAL_&l(UE&bZtR_ndBP_Ooxy<$H9!A0k zG(Z&V)7`~12O8`urrB#^XEBW*Vn;E(Jx|C!cy=S8^~sZtfR<$){}GVjKb|8%=sGxD z!KrFQ!K9e6MDX3kUf3)dbK26l4I4$!E)XPQL}Xhjb!?^#zDW!0(ea;r1t8B5r(504Wzq>wMO;DND; zote5b5i?JBwymg%9X392x)Z!hlT+w0YLwn(%8yG$55Pw`QY7$aO7<8m6#hReECdth zPIL%-ZVtc?<Z^i8KZfgO>G;Vyakx^ta}=54XX>_dUzn+TQADdF<_zCgp}S&? z8Mm}-xMhjhW6g%z)MHxeq*rW2M-Oc-u+GGFl>Xfgrb$bhmlTQ5ECCJ8Dk5It#BE2b z@w80QK&3#pAO=T{;40LO!w|=q(>G8&f{dhH#px*9IU+V$E=eD|>8Mzs(vV}W&(X*; z#F~!MotukdY-@EF!)>Uexu&v4JaXY0RmYGtxLaIz^KU0zrbqz(g3azfeWgEEAmv@{mQRa0d~wDrJg_T=W*6 z9!L5j8=G}UO%eFYid|JJjNH8)fXT7oeBo;w}_(qTv zX9Q^qrlgVif4qw19P^GKi~b)_9+DRx@nc3163waDe-snj;n2Noc<+>Jz(!MQ>wY18 z4VRW^Rn#QDW}K`%o|D0e0w-fL$ap*_!$VQvWOna3SpZy<2OL-+l3?aroUH70OCjQ9 zoUAOs@xzM(96#+0k2%gBI40nJtRT0azeM=o5^}p2#wXqydzT|yu{-SJfIIv{Fk7sR z&I)-4aXW&NIk#oZi~QE6|I41=GD_mNxQ)wVxVVjNfbmtA#SjmQk`&g3%>)rFKJ6qjrGYecd!=_frMQBu8fRqE*y^_!d~WY&$ej`gxI@@M4ODdFI>~BNd#MB)6hE zt3c5Q8yQVi(jUrb(OKhB8grLRQkZa6YYe-hl6K-w6&{OZmB=N!@$6{2xlVP~L~A-b zL{W=s;3FNi+e(rUiQA7Lvt?$wGBD6&9$RtMI&XZO`V|v=%zxB*5xsK7tENR;^a1&|A~xu3lGb z2g^(VUrZFPr0N0_NgbI;nqQx@A{yoa%TBZ(I}J(ZXulhv{mM>M1#f%YLVha)ht{yw zZizHq9*^+c86cauJ7_g%uB$_K2)jKkk6+0JnSBWt7~TcEMI|&xIPx-=TFHgz+-u0h z8+HyCl!hf-XoobElUI}zDdM#^Q|7{G6IzOOiCJxk$pXo-oB-U}(Po9&%P6Br=F0r2 zHh{2Mz|MxY3D7VTVdHGt?v;jYK=f)}a{4WaYwHzlM#x={&(_*-$@HjGGjP%&*m++u z5jXkz&yH>qvZ`6-O|Dsmf#fJ6M1?GZy!Oy2Y!jyTJJLN5pn<-(5-Bw^PYGJ41f_?; zRjurZ&u6M?0hh5)KQy|JhzY0RDIg#CF%QpAVyEx~ESPOROf}C?w}@n>sI&_w45Gg2 z2GM^B5S5BDY7z3Vg&i^GMo>5)c_9+N%)t<264eJO`8(E1Oi zzzD&mtI!hDwF{${)n^O6ZR)mGKXG})AmibrpAk5v$(j30V9*b_*;7iVOSMl~iSmH? z1jRp555+FOSCwWOr+aXh=@1AhX2kl_nmvdIT^}gvV|MIiqL>*aYXI@C1b2%qh(gh@ zL4{EGY+fg9%64-_F;dBt3!!HvQ=;|v{!%qjkqnUIm0<%~S{Vzbw6RM+3u^0ffFfdO zO_xM~0B9U~0oX}u5017CmxcZ~HL;=A&=Dq%d5cgU^}~+RP(Sb}hJI+d3XA6WSiXnQ zm~+&amB*to05bqre08eEFnYkEu`vvC3qs6wx4OZd+2+6uS1y3LPzO+Eb?thX0yv|X zW?X6r08XYa<8q)=mw*a*xk2`>_yUuzF4pp1Mnc+_WCSBTp9}H>b_h)F)oed9B<0X2 z1Ce~)H0wb>y!Vz&W0R$8o?9M`Wu8!=8Y0Z7)gHMKeV9oT-??VSGGGuRR_NLTU=Ev| z@Y(%r+^8T@fl$lc{9p=AwGb+kE?~2yw{!Br$Gu2ZPXL7aRW+}lm^n^9jkx5i$^n^O zIXPvH3YkTYVxLBBlmM3upwZ!MfUfG7<-`gaR>@kH1CnOYyWbcF4LlvWK^QhKG!0?eO>~Z_yKdW?`oUf$2ll zGMhbt=tDy>@6gM7I3I4Th_S}Uck3}`CDt>m-rQr%A1x`Up9Cs3EsUZIHQ?#*yY^IR z4@`|!H*KycQK{w-E%J;p-E6zt+DO9U)5ktZ1#T4#dGjffix`!Yej_T8Jl%hP-UtMzzilQ~)CUBHH)F|V_-Oq&U)ygTVwvv$yp zZE@i=cMF}dTF`Q-O}sHQLa5{$F{bQY0EsDlwUYp}xq5@Eil8a-!eP?fA}wcmAslP##aJ5zW*I~?#Oba=h6Hz<-k0a7r|i>=IxE>a zN~Oj|&W`VNnw6gKBo|dxx7v>I0!q*(6|5AONf3tX$iZLI!-cI0 zu4PLbE%lNLDFi~djC41jF8U$W@Qc66gqs4Y6Nc7cDooL!7^)E71Y;orvE-OC!VQCh ztypkX!Eqtb&)Jgk7Rmk3GAl{=iBt-`gp)CA*D~2MGw_vISS;xb2_V99$!6Cm@wk>TG)6%E&#wSAA(60 z`iZtHxDxo`W0$3QmQ#W$>}=aQf*YF)*Hv9-btE!s5mNL7ZBE&u1k0od#!`+hWd7i3kr-j7*H>SbCLk@qxj2APKRdzv?QJDFRRBtLfT_vuaa zmaqc#7+w0q@Ty;d%B%8}imfr~MUm=woeSnJ2vl=t#;f&TB7cu3F~d7WfHLmJYUEZ@ znzH>XjtXts!7%edS%|_^u0a~@Q{L3hFGc+bk5giNjO@W?7aUqnA0zAs%df%8i}#^- zKCCj~k7K%m>mqjWSz$j7-Y~hwWxh^VgAbr>=`czt2%A@gCwBAmVh6x67|>RW^KMXG z?%g19O<*L~W{iZ~bs@LEm^%`373k}P74MEhP;Sh&X$~&Szcb6<(U8A0%fF`~|6cMX z3@LJV;Q>xq`Nf%eD8X{l2~kPq^t%(Il1enF(V0I3ZBR$S75o+8Xi0fQ9=XX8cMlG7 z(_TLzsmKK7B@N&SXpd=$4`5~)GTMD|!eq0RGhF=93~ju@xghcgM>v<|x2L#NC#2=^ zN8zk%UZgqtVKWkYx9zrjOYyvHgWOrcRecgn_9VHgXVXAASr2liXv4&yBd74&;I`HY zQIM3gq;? z$Y;}dlNj9I3rS?aBE4J7j4YqvANQ(1^wm!sQtw@=7eAreB}(2+D*`3&Qi~iVtC>Ns zw5D4FU9;6_*HnBTwww(;Xjj~Mx_YEmERUa3EvK)r-pZLxZ@n{ncCPQtHcACp0g6*! z2^0lCG7rf-dM)3zIGF64bk|qMqOK^CJ3(erx|6i`P!buMCoHx`jgg?+QOuv`8x8YN ze^b(efenaa4%w^GH81Hv;h7OfC6=RC)1{0~-maxtyJUAQS)bmuZ!B{95$Ue=>7Asr zcHzU`R!q~6r@mHrPCuS3rVr(bhJHLz%wIaLAEX=mF-y1!nqh9^gI~{PE6%rnq&&{K z&#tE)$e5RD$NKcMIlK&hpDLz5nkQnNLT(rkfJxdKL0}WWcWWxz)etsHD{E;Q8>N-k zcUI$D%d1noTgZtv!plyjUPXZ|h$0-*(It2Vn$uOA&G2OEs0w83&0}Z_t6v2tX-?1B zEXr#Nudtu>gjYJUS17yUULX`FZ5kPB%YNi!NWc5DpGDd`Na|DDhBg}aTj}V>AJN)l z2dEt+(DFJ@Pq(`}NA{xN`%vG=!*^U}X*_pW3gx5a`sq@3xjn+d^D`I*EU9#qFiEMw z@UK|g|7^12v^nZ6_O^(0dns{5D)VWS1hiFVt{^@7nE&|BJZ2)5@#?69t-WDl=_8EI z;wXBlQO6fabU9LqQ&jxJDvp6V#8v5ox(Yuk=SQ{A7)6g(+>-2zrk}(!qICJ)NeFxJ zqQ(-@+tl(#$>RWCQ~fbyEsyaJISxWA%Dcpla4qwT!?^bG zk~oa~&ivw44mPN)u!F$m2)uwNqgWTs$>|^9_K3X-W363GiVZH9c_~MJ6w;lf3#}lP zw|x((ymt?f;`>TN3y+prGf<`?2OHzk;*7OFLY8KnN}GVXv8ZO53<})m8;rx*n$-}? zdNfZEJ~D1lNFOYvGSpm2a?=pe_#M9K3Ow&G^F*B9j!DV-d19vH6fc)pyha#tVd-ZN zS3`(oN~q%DFxV6!%RuDt(#|2&4Ss|%);=EOfJIr(^MLXMjQ<AJEY6=PKgfr|Yi} zaT|f|t7gOvS<}D+)du3;SLNJbPu$oLCphAUCGhGmgSc5pn~z6MmV}myEdM^oHddPC z2_wCR@qjcLkE-_9Yl)fPaVoIvnY?&8HT@hA+RijLXMjKo4(|qHmtI*UcBLJ$KN~nZ zVxJ1ih-M@Ay4GnI2%b4XBl&umbc3-YL~tvaSP0zbkOjVis?_j}ynG zM9`G162D6ZG28La;K6AfzTKEI{;r%&X+A9kazw%A@!~;CYY1fjNsfAz^dCuhVPmor zw*gK*G!D5Rf|uPgGF5=*rV2Q?;M&RH>tKgZIm>aPp6Ht_M`Mr+P&Z21Ce7BZl?{*` zC*TR6L+z19lneJMA?rl@FI@;}L5CC2Co=*__}kFSGv)u^CXN6zYU*Loy+}S!fZJ$h zL-2nD(ETo>@Wwd~=x+t+ndHBn#5lBXZ3H^W{|j`-nV*i^=DcPC(BDx6`rC>?M_Y&2 z;}?D$0lQ?Q|cYBZ&W`W;uqCV$DfMor{iHo z_0#dWNtAr}f1{GW3xfhBpGH_PH32ah%@K5B7D$$nC}VpT?qbtvNW?-00Vp=@7e3K2 zY+@H!ogY+9r#JW){MsR~y%lW7pK!S7Kfs@Gu$ac5aG;pRpRli(9?KIA{)D~7d=@A* znDV3>{RtF#BsWX9q0+8t)Q-jySCC4EPpXi%ONCRJ3Pm4@_TJQWG5-GqOZk}) zcY|ftXemD(ap%O~q>9{NIU(o7ofC3S+^vD_2TNuu;(j(3oVmfUl)b}dqNS{s6p6dg z3dlKcyNEmQ-SZ&sTsJ<+(e#I)!b~@QUy&qn0br0!p&K6rw3Q^O{YZp)n{#s=QFooI zuV6(;m1r7oMNFnjRLnW}OVlGWZkOhUz83G`xcyiWN*^ZC6&$x%_J>iWGUI`?>9Nmo zMn^F~#<~e%#^U3d4_%YrI=2GoMVvKpsKWUA8SYD`I%<>K>WK=U!a9=|II7?77 zmz)8YRD8^6a82&=eyN?hLTz{X^bW3*kL9E;-^s=k?FxUA9KOHAF|`v9u1 zaBq!);_0SV7_qd{pa{)Q}at>rKBL9C6 z_T0Soj-+GzG@1+MwN2tR`ZWG8*pKN$&N!!zrm~F$sgtmuik?% zlrZt79x~QtQJE+rloIk zs^B&3szcz04!*HHR4g`R-)Azt$zntHlJ-tPbJLC$(+}hc{OBLCiMg@zHu+;vXKaO& z1%T8~t=&y*+QR4vVO4Iq4~v)|>`Y z&D3ZkQVyeytRj69S{Fj0LH7h)!)ZBjsIi*9S{sR!j{eP^rYo(PiA1~;z0 zq_!|RmGhX=WOI6dYx=ILGESMRXp+|T$q5QUwE)3+Q~7|-C`L;dJST~kAk6n@scr|r zaC?NqGEYY*)vB|HBZ7VIU;tgj1oQ92le<~f(|yE*)xR=v@rjyLUBY)e!#6J@qLzZY z98_7zK@YS&L#txaOxtBKCf%-#tnZx5hfCIX&f@}kI%KHnH0QEJkw=bb8?G-~4#zoO zG>}DN?3;|sl2Cm`;&H^8`bV>tf z>uMM{VgnL(SEo7+oZFeGoU%R|7FAAn{qYz|2)YeHuN6>B8 zl?j$@L_~Lvhded00mpNPJ>N4l;cWAqUHuk7Rg`tT`Er`Z(RY_mFHGPkoh@mSd8p>n zA^f!a7?_MF;iuhOOf!`g+#%JudQgjm7#S$$WAjflmi7Rwn}ewYWh9c`;^ z>>^O5Xsz*O5hx3B{Sq)BZ;|fmDp7bke^HC5Y}=1h+uARN8u{-jfKk%qxtk|8h z)@nVaaN~O(6p@G`wDxx!V8o7V$;f|2880E3VgZD1>P`lP5l_uXfq+?(d$S$mdBrv} zjJ~Pj1LUEHzhIBj-xu`D>0e^cDHv#XNpW$;Zv-!9vWoB`TEM~U)3Jk>pryF~V?yg9 zR$D$7XmJuVa^d&_M{M9By8V9FZ2?Ix4MK7XkXaawvAN91^60&#cBU6HXz*$g8n9^x z4R+Qx>=86{DC9Arap7}>#)*PP%d>NJGG7p)egQ%m@K3Yp}ay@9)Pe8!_A~} zsEgz0Y(X3O|13K>fgYsG=JX)7=$+-4Mjx?GE{yJG!=I1Y{nBV>`DHftpat`Mb;pGQ zLwfW1El8nVCFFwodM4p;ORKq#w=jDP!j9*|=!jBG(c(AY^w12i-YQ$xc>NAzAG zLYC=vO`TE$&Lt zZ#p*g&rd4P3HlK5FQ2<|rl8}lKv&##B6QO;8bEshL&iW`35eY~0kmyJ(6*(AGSIeq z&}w4a5Zi*hr$+4bIf7Pn`zyq%IXm(Avg$i3)91G{biabEn(b15(X9Hh^7J#?sTW(J z;v50Sso@IorPDh&Qtx?ac8!uOebjgvzI-f)<%lE1%GvP_j=uiFI9|rq)d*=lPrsD& zGQu}aEHWihVe=xn4~}Yz#Ws}W-LB|gQ3l+1i=+RDU+UGQvr#h<^C}Mqf$8mLV4_W* z7k!}Au5vkIUJHb{j+UkJFN~hjF(}AhmL#9Xn`v!i$iS4IbTLbp5oWW~MgESHp>=1h z0H!%xOF}4V2cScpdNvR|0w8$*NKrRtQ#WV4BS!00?Ch|;Nw6jq^HcFlYMOPZbf-*a zctmHjHWOvFvRo8N74=$a-e%p07Moe@teuUi87m(^+pKTLO-p4#w5}`}4je%~!DPVh zk;#AoVOv4ztB1EC8sE!KLG&sUR$cL47CA|2^{PEa6${Vx3Yt%s7FqGTvs}Bq_@LKq%8Z<3zIDSX(=rGVc@_7 zHkJ{VX?>A=MMYnPsb`w%Y=d;Fo#H_3n)Pr2Uyhqad2GaECm9xNfBqqqUJW-3?6j|i zxpYwegcP)_X`%%pC0wSK*aZ7!*l-H7HN1W0m$uzb=+_#$twXD*RX+C(90Z9+HTJT zS>>fp;GxUhc%Ju$2>u5Ba>`_%I}y%4mX*kpJz~6UfH$TZh_EcD+d>Q}*l)%sTdGJ# z({zm|0UQvB(9l9T%I^HJ582Np-5|^^>41x*+G+?KN()C9goZ#?0jIfMB68^Z?Q`I{u?f{X1)tw zD8*imeiod0Y0}^Z)tZIl;|67FBd;TKvtpe?Kspi@|2769Zg<#||Dh6$gf#4(IV-iqB!OilE(0nw7SQQWlVY7S zyb2a^#s?5r$p=uYp>BOUURP+o_$CJ^rC3)H;!^%9J=y|ph zXd0iAW)V_W06R)$&T}xVhK%X#6jY6#dbmSNzm`kua(074DqH^RxkK5xnhT?FC6~nV zU&$SqdI=W@>H;pOYRjl;NhkAyGA4`}r~8@qP3PO3N&4>wT$VQ#jl3&YFqy0F3Sn(B z3&9w9{h*xw3sEX=EpGuKJV=KegymFa3v^QvP?TI|;h8g06fNe5#6P=;nJ(pJ8-I++ zWVAuM2peL^ZRzoFz%0Y7Z2O{@fp75$JEn71N*(v4&|O9Mix# z89)WC-T(n`{jI$CnUmvUxt9=!gzuPiFS&~q0 zcwIySaartOXE=eq394?QFX^9-QT+*NbL~6$Cc5GaG!v+s)$A$|3%A?c8g6ZS1-=LC zk2NNIpD*vwBoY}2eUGe7!rmsS1z85@-6UNi%K-nIv~O#c0f97W7Byrjtn3m60W>)_ zWye~Jvr?@2<8;)exbv+R&uT229nM6_m8Frk9|#OLUY&;UZu(S7A7aisH9xSvtb}tO zFJe!8+kB5qZA0b|t4Yg)b?6}7*PNOmnAj%UAhPr1ig**?=9PXffTUhYPFEDJPBkzM z0`*rrK$F3#b8bCPbE@UM%{sZ*>tfB~$^EvPw>jO-!zL66X=BZ)f|M1C+suIRgWl%> z)GY2mP96x>Z2NqZUw8)y^Ul6P4ue3>fjmdc6!xG8t|Xh)L-&grA_|)F?SIoqqP6X;w3vK#KJEvzYaT66z7i!fZ1Ljm{WzyV-h7l3Snu&>GVGf`^yzmJ%b7?e(lUYx5Lz21#L@dn~$3X3|uD0 znkB|q;GBsuUg)wtvbdSw*-VAa5@X^dC^F8MnTq+4FgjNijamcdjy_%0P%a zdTk9}OLC5r5)#N3w4gPBFiP93yNW%h==cMT!dV?5_wighlR7l%JBJ(IIWp-xPd2>s z)THkqA6=_0gnv};++lK7O;KZx;Fh|#gsj9o)~c8D#p;9?N3v~%m`96Kj@)A#)yyHGz4*zvtB_$km*)G4 zTU9?o8dw8tGjr*0u4VBylv~cgQKb`GCOZKw*@a0?XdwH&ii2vKcpVDc-XV;im+oex zp0Io8(uUN@4XIi~3L#neu8McZZ!(An}*?WwFXpgKe= zBcYH{g|7MU^JuHpsT?K3;jP2qB@6zpn5$5vYE&T@NxMa}Yo*bliby~H2>h{Hd!Q_T zy_K4NN?8?U>1}gX^8kH>+HIThTJ6216eL_2F(blceEC#|8_fKacd2c=h}!>pS>}ZQ z5H4676}wXzOVk5Zjwks~RG0QSri4o6)^s%14j_9%E<(wzI)qcfo?u_rb?yIoFL$!= zs^V|J4EDxR=&o{#0KcoX_v^Tjs`wr-Vb+AOL2H5bjMF~fXm@VANRCsZuzUH7^2&9} zMl464b)xo8wr-{n*9Qh!^AY-r@nLF4j!t`DK>bXBpw%YnsTcK)7lpWiW-IF`QxELg z>oncjZlVQ`&A6=x9{}mouJoXA|53$g8A)OJ8lDi?k?}0%E{?Hd-3~(;y~1b)o+XZ@ zk~oEyU$ENirhwPx^4vB_a!-bl6$(2hHan=r5q-eU^Z*m@KUp5RjzpWL0hzc>V?W__ zy`|$e-CKh8!K$n$-0RtKRNuuyYdi$jL}tbagb{+R@Fd;+H6ZmO$^iq@ol5NI$E+;A zn$|$ht$FHc%Gkq7GhYTnz3&i#DetwjG7xuJDk*`4Q6ef1Cpyi-Mmeb{O3_85PIjVJ zNGE77o5kJ7t98>}Kc!(4$Wxs1TB6uo@Y;QH%4C~B&PotrEgX<{ij*kMhm}j}By;DO zZl9b|*aT9WSZgP1UX*0#r#+cv@3#F-J13-vfGLt`W*Q_^-gx-Fa|Gx`#9((ZX#)6;*Y z%0P4Eu0Q3iuoX4lBtWY1(jMIWaPYNv_IqKwtsq-X*dl!kltl41*{G&t1=h>v9{G}z zVlc(l;N8+G<7&7yjCL)gRmS$AF}B*Vuz0={lq(#T#;I{^Cm%DzZ*1S-8m4igdb_ky zEA3#ZKHbeDBtDZQ{k5$qnTp7%+4YyA|HvK9C~(_=T9qi+-Ydbh0_|WY+d@}4qndeE zL6gyEt|NO}4k@HuFwZlISJt+bHu#6R3ety^9u-z70~vVGZ}waP2kAFM&dJRjcgK%h zFfH{abz0$X&>s}|Hi{9EX(~{e$P04_YTnOp_RKV#3`zt5hY_^In2L;q_YpwlG8g`~ zR4>Dym>k6`;O!viXwa+9eC1VkLB2gc)|(H?(B-@(SupH^Jaw6j;M--dNNCBj@h?lc zkxlb%&fDWG1RNg=!|?*&SJAV0{%vb77-~lhOkG8KRA0!z`jE8*hJ>af5RTtDnM~U` z`N>f}a7PhnEyVmNUakM^WKQtzpiTKPPAKxAlH>Ox6s0NKzv6H!Kd=!Kz=m9^aG-aB zB?7$*0|LPtRv@z!Lm`AnA7}i+b8?(2st#?e5fP7oh=)|B$XZtr$8D2do^W6~ zNM`hHYkCiZdfMY%L@z5DK1zqYNwcnQhmd#S`YAhRuRe~1+^xmjQ7}kcPBWu#j~}0HP?-i<9La;wrVaZw`JA?l49V%MLi7KmTjngQ)G0gK7IX_}Npokb zB08jhwxY*0TTlvZYEIwOd@;4#xpUKWrxxSwep54Nb*L5W-O8m!b^l}OB0?(gaHu0X z`&SQurzsNCQKDO|PShwl=sHQEH8D1!K8ti^icyNNJFgp8urRk-hi=nc>BTTXVr0$i zSBNb5!8&wzaCnOj4%gS>j^GeMR5tkj@b5SU2Ynv8t-r(RB0d<7;y0%Y=tI z1`l$7gKA;!hY%!JfXA=*)7w(&X!a|eCW>T7laI??Ubk_=uZ4CmN3%^e^2IU-L#H^dBE7nW8@{A68c-+(# zJK;eGJvenmU9bHwtZpi{b7*4kSGW^kIs4Vy*aoww*D_exr=tRL$FR3%b%sE&X5Brc ztTP3k=aB|&PRrmd1R)EDoeQnqF$E?F8;&%PIgs$fixQsvwBt*cM$&c`2NOFBHi8f$ z?PFEpA_100wTH^w+j~nmsGXK;L-Tr+-YT~?|52n^6qQ$!lCn6S!_D=!E!7J;YF$Q) zZlp1D&N^;RJ+Nw$@`dN2W>AxK$X91)!JAeiGT?M&y^5}>?p6v7W#HJ|r(|X(1b;%k1blEgIx>VY@rXfo_;j|WMxuN16*IyQ6gj% zs2af!a7J^6tPPKY$Q)(qKzW1DN>YI798w$-v4j*x?aaE+0;Nj0qMw$|SqS3xbY6eD zK-QpAK&NaJP#F%!k|v!hoeNjBqQc=FTp}&YCe{gUn9Hf1C#9db?;(augPAsU zwx;(fIj)7V#BjV}Mq6_nHL%Pr!c3-6Yv zrByg9K zbEI~dIiSO3XxgesL`iDr!t;V)H@Mf_C@e@yL9EXwC-@ypL8@z%O3bV|Hb9`Nh8j!W zM0$ySk+dVPvvHrl0wiO8_q>R))G?EI&gqkU57TnS$P5{1rB+T;16K-$NDQHxJp!-D zMka|{X(XAi8G(T*G^)hh21Yl8fgg+cFv7ONtlH=#{sc8*oS+x<5|*$jT%+hfP&yOq z?w%L9X|FR{&Ur9Hjc#++*9Z8)i@LG}v1GD4{(;h=ATB|#XqEkp7e7}Fzfdjwu< zkaXgDs!uv2I*fi-d!MG{D2Iw-^$412V^E^DGgYXlq7IE{VPMSZ<{P-ZbvQlaM(m)! zEVX^3EuN7H=ynrQZm~bCaQ6Dn83?U?EaGsYo9OWKO*J?FcD)=D+oeH<#3+esNbKSZ z>7x2~fjN5hWNQ-Z!n&CF{846=ckAXGJMMVbEH^=?hY!dhCiOnH$&#eDy~J&jHJ~dm z_=s;4d`)|{TQv+qW*D$I9d$N)vN9`U^@h++VwS=!o=op1kcWF~)@aQeD7HvYub0zK z;TSyWMt;uNTrXdUoe1K?2+L`bl;^@2H7AA%7MW>@5(b-- zQpQP?W!WS`TrxpCGA&0eh=tf!Wr7y>1Q-)BG`y_Gf9y96rYwJdNhUKn9p&?q!U zwG0oHN~U@Ala(LBl~_IAtFM4KPH}7i2k)J62A3V#tsu2s!}EZ5bmD!_pu2}W`6R%J zEN?e?n)(DaLY~SPr3??_UEE}SxYgD_8H$XlnqB5R9fhm5xK#V1eC?e_=mogFzp39j5;?54e0;+UeDpW>~17kRa$_YRDOFOAeYB;=pIwBKEskYp6(DQj!#Byx# zNk@?{w3A1r4S<<=4RIlIdIWIPS1nh7lvP+0iXo54wN{~<5w*R(vkV1UDP>;@yL^xv z3gdfp%6bcG9#Wg_W$X}J*<&yT8Jx6UESxdkrvvn)Kd^km!h|S=dD7261ke`XB@$ui z++pr?Xs{-&+_}SY6_QNciPM?dtR^^N2aI6DF2!I`MGI;Pms&kiWIlK8&ZBL2Fa|fA zf{zB!JgDwIiOjKWe$=QSaN3>V#Vk^v6cR>XG!3Gk3M#&tia#xtDh+lAEZuQ%PEMwY z_;^w2=h1O47O;`^U*gL3-;~h#04(%BR{zCp8cMXVs}KX<Cxsa$HrI{(ryDy<<~B3deQ=!Q zaiD{~%d{BD!y;2POQJ`OqpeQ%$SI$ca@ivdz)cA=^9O{qwW@$3g58zh68;f#2^I;r z+w{bsod8dJ_V0a_|Gz;I3 zk;m{!<^}T&88Y!`at)Q|*7f6^T z5(Gw;K!3B2*f;XlW=~*A)&-uxsVZWJNV<6-KbJWsAOdTzB&f*7+TmGZ?FvJ4tX*z) zl8&|U;q1DRP+;bX0>Whl7^9DoL}G1LMXlZ<)=mb#C`oU-<6Xzv;BmeXJ+pg`!bVBQ zCzYb}6d?{&7K1sCCQ#4}{a`ZEiQ3(; z0P$a&G;WtKQ4SbD6s5DBh4w<4B=1(Vj(}aLeB)~nHRV(Cx2Ky*24>r^>Es;9$pl+b!E04P8t4fEi6rngfCtX z84s%XXG~2&( zD&LL+g+U2#+*FSU7(9*IX_HVoy$gq`EN`-)gAS~dd0AIAK~iFj)InOLheBprN}Y7z z=-aWKtF^b5I^=rz52Y%k+|crxpt9(qA+x&$gHr9|4r$Y)yT9mal~_X0wf4-V0c~@} z_sIGa(VwhYruYTszJEU1;Qwn@UZ$7Wb#6 zcREW}{n6|#hC2cPZMwX<-aI!ct(S_05k+s#k_@d}I#-Kz;?=OvX?g~isC^xMOeU1= z=8``4vp2E|JH==17VqhL>D*4fA{xSQb2PpbW(aN#T{@(j4J@Z?xnc;TiS1w*0k}Ad zcfQq1f_S;i+VS|FM>O0QF*C;ksgNMh1C*ov@n&}5ux=18EZe(uDH-yg{uM<~QN5hj zE}f3wfg;ssB8!L8ct}zPVv^7=r)83IgHiyznS#@j<;cG@R4!& z6=q+TL^=Lzwy#O|x%Or)i-Cx5REGqonqJzRR6>g;6oLhcn(oXd^+2zOm$T-(#`@-) z{Pex}t#hfMwNUhh5>^K3@qa#*S6I_MUcS|Qns`>jwC|5SKd&Li)S3f zjyRG2 zO8~*86c659Y70bROWFz|zEDptx2!7rEn@e<-x;3JjJZIzQxP`mWg6ze^QzEx-ys@#iSbdXDa^ zl>rKmCR@7COn3skqo6pr9G`9M>r{m|vr0I{}FP<=z4R!~=`fUn{(b&VTZIcfa#L-t*nh{Z}nHkIsMU4<2~`xA#5v zlRw655cyBC_Fbzk&??B=ijvYUZkKkMLY;2=fRtR=iwb_{PY*r$<43>wgY~Z9ZF}GM zp*wawcE=~JV0+_FKJiDN`Nutf{JUSpGoiXa_Mv+|_wH?P-Mvax7t4Kcuhhw?4ecyC z{|`R)jlcQxum0}0K1)IR>hXhr`-%N`{nxFE{%c>~(c9kn*?0W#PrvBCv?l$}??3W`v48y9$G`7i`Tf1$`iBoa{LzC;vL-c} z590xXEg%pHKoTho;O~)xE-Bp-$i1M1c3En>jvU8Z7%^Ukvq=CK#jn>A<5X-?dLlBI z0+7KF{L>5Iwi&>Hl3!4&oq)>Rw!!JM_-V`N>y)SwgL45KI1tQ%IGptU4~k+4#Zg=t z!4hOuinP$BEXNy+5E6SuTmDEd&2;={RM-ArU|rikbX@x7L7Fmxn%V4#(jQ5CcoCzb zRcYh94JZX-;UCa3c~8jO@oNe?hBXDh1}$U4{`N5$r_iJ&4?NnCJanibdEeiYJTZHD z`x6bx$CaF=r|k}n=ip^Ln3FA8sc+s!a(b5BeOE(r^gSeJ zXHUnJoRcLF{UOQFn<#zavk%cnQImCU|G$5s`1Hu{KAb;g&D(pw=#zO9|IIi5?H~T) zgy!$}r5+jMSzhN|kLJas+xMgLE~}jwsR8&lzPYzh1unuEj^Ur}#riF@b&RAdRUQfr z6l_UEAEl2#(Q{|UXp(BEO2M)3OL=eyY|MJB=>t6#%&qrN(7yth|KR=Br7-Zjl`Lm~ z{BUFP;2|J)s-8|$Kg0mqTDU`QoZ9y1Wnu*_S`fn?r=NIK_|INJJ)6Nhv{6lh!wJV@ zNWZR*z3m`9jcfk~UrBfAUeB1*+rfS94*8tVJ};V;-X9*#TA$wQ9_7(Nvz-T+02wJT z9DQ)l-|h{&DbVTl>0PAHc6;mKPRtW=N_3J!o9NOUsv9CR`w#F)u5%k-1i|z+#+v`zKJ*9Ewniw2V^P~bmtJw+HNQUGJ2ZUF zk|mqA3|+HmZTHX(gVzl8-q1HZGIaAb!$WJY=^N(0II+;dl4e+}RF^sZSyJUFm$>7pfzmY%!Rz9W0l&~T)GwWyol54J?nNnHQ? z_1*o$y(2?gdIz@j_rG!R(3atmwTqWuw`9q6YhS!_<&vc@S-E`4lBF+R(z|r+^~;xC zxAOXx-7k6ZIWIZqoRurru3g;Ucim9;(9Mg7M|u|1zQuimi~BZi>L0esZl|uxsN-lU zie_+a;;)^*3V+S~(S&Fky}ym#-(BXVsFlC&OM17yVqN!8H!T}lYeRNLPtPlR2W}Wy=ij)> z>T+4fq2>L3YkSr3f2G~OMmzolV4lXcZ-5pIboV=WotFU1-XS2kWniecd+oaJ>-u|> zwSzsq0W0o>0e117{{77V+Y#5IboU*M(WO@pbq@?*-#fHrV7TuFMqBL}TxdbP z_U}ui1<_Y$n%AY{8w;2nlm~AbfOV|v+q6bQA?Ocu zZ|vD{=dZ`1X|YX`RsjP&#luLbm~?gh`R?dg5L&C6`xtcIr#D)FbK%SeeTLbrZ{ zw1BL14}aaHr*RE~w4QVrL_HrQT^!`l)62VuHh@F}H)NgM7;@HjZ`{-k&UJ%xbZ`6;WWAN{{Q6XY2;;E0n)gnF zw}P~|mwGE&d3hnN-d#umkoIaK%1E1mJM^yEG@pr3R3tE`M2`zs&NNIa*!n zF3U#xHu2`BWk$10?RS~lt$*Xe_UlcJgZ`VO)wh5o1EdAEfD~IutDgbPqof7i@cx^} zz5ljx@9*^Q2UxwwzaP@?_vujneWZ&>w`W}Xe$qwS{ESb(a(&nT_rqR>y8H9HHSUG$1`#DU^$u<7zFCrO%_dmnU{6RnMiWx*iyNq` z*T1*1d+QpN>~Iab1cbZIEn*1iq2Hl3C!T1Dd|=OX54ZilJRDj|LV_~1oEZ++VK zJTtjD5%jO^9_SmnIZ55%XRx@@ve$T=XiTxJ=l5vS_2UO2kkEJ#33>JJZFuB_{^LP# z)yUvb_YJ+tWxY3N^$)u|gcdHboz&JlzP70bWUA879~|r-U;K6CS97EU=-;z$&P00a6TRJkFU|R2`MJ`Y6fymK*3FrO-ujLMy~*;^zh~N> z3wrx|F~tKu7X@dJJ(4K%|DG$1o=$RIIW)Lwa2P*HvGz?qllsH$8tImh{s$PbH#}Wq z_RTuB0vWWXtn$|mj`U{yCRBMNnc;p7O;H-_ayKnF_vu>jn%PdH_`6S@svo<(>t_#F881)zw8Z5Iz7}b6qg-Y1+|M=W_Ve*h zNV8kUb(Y@cDoseRnvFp&{63BA30${vRXJjq7kGp660YjW7*{d*Ce(#J7)<*9ey;Mm zzS5gL&81Sb06RiutmJwM*R9^pXu-5P%)KCS)IXcu>Kq7aLl5^Va~)UJx0S2=xvI=t zxT?Nh{+{4o_5Osb;L-3&~_WS=TW}I38}aZb*Yzgd$*)~?#jBFR>(=8zpFB5nOnr8a!&~R)P5Op$#&6!z zhbvi*;BNf#z1hvu>~5JDga0Jd8bv3c;@Y?o%Mf2*a(!QKf6sYIw8ZD8WH`xOZ}#e@Zn=#6Hgym1XksS7VZa&C723IhrA?;wqG0|Lu21mr-_ZLY!zusV zkGit$s~|QVT1ZqeVWgQCT;VB-g&CcX&(x$a&{&8MtYvdsElh*CsRz*j&qm z(zOm*vwD_L&pCXXb#c0SOH8^^HuG3O$2ZwsyTp%Q}7$`#}iyVjGm zpYCK)7?TV9dm+7ywA!?`f9;~s&Wrg*_r>}(_mSjOGahTB*Yk~Zoj$Ioat%Dz<4s_- z(Oo>39^#43d&csD9XX<}@Sf;8wDbM6^VNkkbK246h4d#$zod}<6lvjf`2J5wCx!H* zU^JwW+Au=-rd$I%}TVqOm3k_Ja&rHew{GuOBE4Ze|rpTj9 zI&0DO)HlSR^zGx&_b~k)jZyZmQKp-JPw#y=^nE5~ewH{PN*~S=vzW!n60?~^$r2~B zdM8T|O}Xuhl=cw=rF1*O6}F(bUCuNI4(Hc+?e3<&k#)(r35K(T_%QF?S+7Me;HrN? zM$O@VaH#Kwz5(V9^*QK|ZX{QI&l;GX<_~*^xofP12^qvjPhypILj?#sly%2te3(!!+f4Xg>|Szm&c9g@cR33{YMN?VP=77TNf@U; zX)4b~^PYc}^9IO+A+0^Mw%Er>70Pp7;`)Ah-+V^WjyJA4_kVr)8^8I~8&*B>$s4D=^o?&=^?Ubx`L+{E zZ&-EiS!=#}>Dz8z^$*_~_~Pr%xOvqhU+VeJ=RdV|)%Q+a`jgYI+PW&#!hV0or$c%k zX~oGE(=RHd&-Cwa#Qu7Df_lfZ=s!6hVEBfx-6$!1vy!y*nehB2lcbAv=(*%^c>ks2 z-hbJ+^vg+$&xZGvKC6&kHSW36l1<_L)sv)W7oK0q^Ugy0)#K7@$9>;R`fOCYzhLA( z-164fUeL7i+do?M!Z&~9@kOWo)2cVz@}a-F=$e08^@4x@wbxzq>3>@Fsrpa9^x@e* zUiF1w13z9h|MTy?{=fX`k5}#bYj&pRne7R{gag3h@!{?p8*^Uqo^ZTZTxPOs0IzN~fTDW{$FqLwpPo^(8@ zrn|Sh2XZ-g(J~_!#{y~V!57t{-{ATdkNd|_#6+)L&?sZDV9pvzZW=yL9=YmDXWr<+=dlKcij$jXuj8DXa?VN4b|qFe+Lp ztzEZeU<1B}H{`qx4RoPAZoKo_g*AIOeESXZ#A`x&Klk!{-ZV4__wDH(>9(R4$Wdp} zz)5lgZj1{ci-)>z9!6yKzUJcdFI8xFZ%>w$_HSC(O@4YjM$Aw_vi`-3mY!pScHI_* z3L>j7H7v0x-$t|OMMXE>qV-=qEFHb3Ml&+_eD*Kpl{S4m?K(ti#YxVVtsPrCU0 z%?N0D$AeCDZ)muexf@>n=Qh&E?#r7hkyMwM(NxzR`Pt*8Zf^2ybQ8 zUjp1Ooz1x}LwyK7A|KO3XF3KHohSfecTH+DdKJU#+SV}+iSM?WzDbM_ztEC9&NcH%-`Le z^z?~M*?dINUy)4Vveb-BK6QYyyk*lSd;k>JSdVv9tQ#5GG<@FT#kz9Q#C89=!Ql~~ zUb<`rYiN*k4idrZj~}qxtKZ<&Hjy9y8Y;l#VFAlf??yb<1^<0FGaVG4B*VD*;IK>1 zsj;O%6kWqrzM0(dlI#3#rYX2)oNifYPjGfqbboKR%Er9v8Qkd12+F*NvZXmaz*Sa` zl+)1G2J2>NGBW6W<&X2OBNt4 zy*~Zy%Jwd>V>_#&)0VsT&gZK3E&BhMdk?TEl5TIjPB&r5Lmu*whYUtch#50tLPg1v zg9HT?3te5aV$Oa`^X+%vd*8e7|M|~jS^evZUE$QJ zb50fLGpbwx%{;X@ixM;h&()D$E%UR1_#@gr%g#)UHffSO-R#2P0u*brJA( z#P%Y*0WsUbu_=_CfHSC;V_*uWth6+FCT>1)_n9V-PfJFX3~KI_JVv+JoGkg^3{~kO9;nvp-K)`z^xH8Ro~zQJT&!F zJH!}Cl%8hCAsu9lDAUp@%lw(o7EI?a%6A{)h9X>wn9VhzoFj!w!nA>%3x2!)O7M9}DHZ#!T4$ zvsFxFN@MINEG!vM9H6=!MXjg~M#U%-qhb}Z;;~0rPuKB|f93H3^Dq+S`4O>Pgw?Qa zsyILt{vG2t6Jd5rq`nB7B4+*F4z>8WFx7S{Eh`$kd5g7iA+zN6We>UpU`TInz0{ttkQWaQ7v!I%JQkhLVRDu znM|*Ox{>hOqdCgmW9?=!C%je>m8qR&>6Zgt`98HsJfP9mi-qWbe2(QrZe z6TX2_tln9J{go$Jm1|6RHXad7!vmRV8BAe`;cTYqqGM?qpkqHFJ)>0ZGtyFi=AqP7 zDpUUwuMwi)gq+yqwkWW~1C^*$$w^Po&PA7vq`y@v_BJ!hsH-wIQ@C=K$Yf9Kv~Om& zw5)iPrYdv&t52BZiv3vsFjqG*e%7xsz6(-LKYYNSP;W+Y+b~+t8jnw>DxccaXfAXp>Cplk(IZyC(k6xqjI656s>?jxjOs$sTwuCpZi zX>jp3jj9x8D09X5Li${MW~-8bN8qy+y5{H@rDtQM1v-Jk_wLo+Ux-Wby%Re26UG!< zv3h0XvgyzZ4U=s!3zM%klvgQ3em zHbv1IFg`W|r)UH3I>{UEnUZjV8n><$mDa-sLPLoOR%uGjKOvzQ& z>8KeE!3m@sK+HTz$Yl#AWCEanB_RI?n(XI@eS%-m3Ck3&8vp{WTDNK2u6>7~j-5Jp z>DsM(aF39ly?XcQ8``gbWK?ua?BKZggv6xel+?8JAsLxj*+Ylrhyw*4i2TGllR(fP+COh@cHr`5- zh{FC{WN%}mljOBbe_ce}@-b@$Ty1}SFO~+?31g7tdHEy5H3`Sw0!=pd0?{QaEAZ14 zv(D;6*!Z#Cz^^fcp~-A6QGQcve2V#uZ(D1=JPMzgiGqNK<1?cqk?2nEIIJ|;!lorr zh>z|)L0Y4K>+GM(g=6QQL!=Gj;uCk2ipR?9rKBz5JtbvI)AOB2kCAqW51sv?H0!B3 zbcwV_yu0)vVa&vil2WB$df$x$O0)8^ea}b`zTZ`GfFz)QbayrBh<^F5(@OL4AJ2~{ z$MoU7_y@)C{qa|?m1Yj-KRr{LiNC*cfONt4``*1KDd_Ki{7Pv8x9{kErJ{UqRSD_F z!jGL*nt-1&6kKN!_c8Vx>va@tx;M2!_9Y ze2g$b@`3%2NKf?NmOdg`=pR3Rob*C}|G`Hj8~sN+z9~)O-hBE*hO&4Ek1I{$9$|fl zAwIhIGhqzC;ZL7Q4h!G)Q7O3IfBO(&3*`R8yOm0+qh&`4>z93>t4M$JpFVy|e9>3;Ze0Ho9w`s*)&a}e z-l|rlT5E2GFYxDxj*S7VD`%Yl#4IBAgG!5!o;k@4b+I%Zk9(H3S7R!#X6d|d0-%)l86 zYN%&r56?l4J%sCq@+bH#x}1>8f0xAnE1k#bpkH+!e@Pl@HGl%aQ1%nnMVRi_@tI9w z0pGx9Hs$Kb1~P(mjS`y^9g9Z_>h|~1k+}9DiNgbXv+$dhhHt1e+VK;h4dD?6*0Liu z%Ed45-~IHz(K4Lr_^X!T|2xJ2t?i{+=UUrKwq<3zZvnGimbnNs4xMrS|895w z9eceP%N8>$tFVnDunblYMlb~21_u*ctOVR0G22ZFm=PKlUN>f$Az|I4QYv5f{I3^l zw&VUM+MQV~Wh6vACL9JNz0-Q1XOxTQRh3yn6=k6MECGyj^py46MeuT(~VWh`f6MWo$zw771s{&SOK*sa!bURb8Yx**o3 z?B|bhjM1-CK>TZC)W2+Ae>F>04yd10Qf!+_!mtdsd5f;|6VYedonh#+ZNND6S-(t2 zpKZKm)!`-RGm5eTeJ1^^(?tAYS1Yn&CI7E{O}f{fdi#GF$>Q3Wf_kW5YoXsVyQI^JlE2H&)&d{eOa*F!3JlF>u4`hXzfx_J4vw(`hVk z5SB9szlUi`{)zJb?^Q$DPfBB=<~?fVS8QL>6w6cY&+X;C*eNkQPL<9W2WIeu+ac7q z)*dJH?iJ6rAUK6lOA+TON5e%Fk>N=~)Pb;B&Ge{@;tP4d!)G>M1bh{rJ<$neW#qCA zH!4%mgeo1as3PUHrm6BMwu`SdXGa2u_C{H#iC`)q`-H*r+_Y@e3Mmg1D)lBT-O8!G~Si_c63Cg275%;rPa+UBflVEdop*4P(} zt_blR5i99UUH&$R*=i|-$KW%Q!J)vc_9ntQE#hFjZIbna5HA*=1JV5xP4TZZpangD z)qwsJWh!}ICWrlLV8zs~(V1ab8P)-6y=qtC`}mDo=-3ASzjHIAkgf{Tuy*`+X~<8) zskH4@p2t&;i!E5MZkX>!Tol-PfZeD3F?z^;e66QkL)fG6o~ZzU@8l{^Fb$IfUqZ*$0TxGmx>dJNt*+()HUi^N zYmXAw-3TY}cC%*c>w762<;`;B7jlb5Hs5G=dRE~?& z`0b2ao{SyN#+@MfQuM_wSm`F@A-}2rcgOHx%qtS}pqLla=LlFh=OEx39DFSNpJ=VW z+wI`yNBM2@@f+AW)*1WN@;_Lfu)C6k{<_m}`l~COHmzf}nl|mGykt~3v8g-_A&-cd zjcEHF2`E78}%xG~vi48qRE))pm?z;_KWjIAj`9sh~``>Tom{vP8{ER&6?|Ac+v z8O*yg<}I9TYKzaTofyq)hmMJsn0?_6oCPbTtXDdq`~QP|;rRZ4V_*2+ou>c6ZbM;S zb}YM_8t0$k0I5E#lZQY-SdN22Zu8h~<6_y%-~n zHuo{?_;>9NSbX+JX)i9=6V_u3k218@A{(i0SnaH1f?g&EQI>^FB(pZE71^UjHd51{ z2Jeyb+5%a=UiHMsjK~qpi_P3~=*!UmpWfB{%NFkEIpu$1u>AdLquSjD>N?mxy+2hL zO;NcU=Z$Nu!cE?y1p~Eb!SEpV@K{B1T3o6dep|r6T1tBq`yUw^JpcaJxt#|X#yBq_ zjuW;Y;}it!jMzzpT~x3uVtY}z7h<^xcU8e`wPRyc$e+pb#CSAf#&xjY@F_q#`QTrX zn5;p@FV-WncGjf*il$^2N+f6V<0^>#n+!&wP7#1+wVTf@P72HDwhty$gCgqQnEj-KddLH3f@L4#% zuM}2Bu4$`P7$@z9U-iJH?OumTcOGH&udLoLw?G%R04huV&T2gIELL>fx9-r z!Wm0MdVpmzNtqB)AQs|@&LZxpi>JKVMQG(c`nbR%Lf|J=0QR z|0~Ywe_x-!)`BXmk9aK*a1jn1Hpkgd;Fu$#kYlbsg1o{W;r4%2+SdJb06DW!MI$jZ zjzv;OaxgBN*OSm^(medL0dh2u!prBG*<%bER%c~)th?I>C2veLQLDE42S4rtmM#9a ze}vMro3K;8GBVi?*}I`~-oJ%LSp&*<9S@gSUlY-|cR95Lh21ss9cMT9q~ zgm0`1|7vjFwt+{vhp*K~>2ESSm&O`DWa`c{O*(Oh%rb0VIj5>=T5Q%h%I~xKVzW%& z-C~nsmEAzi`5L{{`zdy~-gMmN6Cr!ZXOqoFjSclQ3a#{Xnp$)>-01McN=;jCcG6&p z&ldRMc3Ew&&3Eb>p*kJTnky{5Vib~SZ&lC^MpYyMR?lYgjq3b)lAbsBnr%P#E; zK8eO}6oXvXt6k^rY3Lig(o{2F=ic0Lp~($L6a8cQw_THUC+jsgnx=KYW}Q=O-rRPF zWoNy|ChvV}^iFBCb#LZ!*Y%OXb)T;G%M}N-*I9RSn{U3E&u}`be!=pHGw46H7~*rs zAV#0q*4TZtJfqj$<)rylF4J{@mA%yxP2Q!Y+gkJCP-5H6;i!Y2(=>h4qTWtw0gXWLI(s@28OQ+Aij&>vuwYu3jxPG3r9@~urA z-O3F&XztW|FAuX(H+|`LK{wCJNv*rid#l|JFHN*8)a5gE9?Qy&pILl1HG@_B2iH3e z*KNWf#OWouXQpf0Nq3OX3LABaspob5UM61*|I~2u>;+U`!^jifxSus{7+^`Ce^p>xJsK ztT#KXc01%bQaWEf*!_t##lExVE2ng=C;C~An>a($8(QzA_sx^IwY-r|xa~RJW?F$Z zmFA_!{`^hXbzc3{{?N{G$>(2aUNRn}U8y*2JJF}9>31DsvB7b^SFTTy;b;6i+^0P+ zxHNXHcD^Fn?Nsd143-)GuC~!U+_Il{EF8B!W_XqFV_ztr=9*~Z>||gVYqHFsqeDO4 zZdMM`v0mPKmp!j(IKfl^D$tU?V z(tPMT-)ELB^{zCn@A96%z*TCSSkAY2U=n0lXn9%w*u~bQfz}q&StbqDBOMMnPqAKX z=50KcAL!*_=qc*|{xd&5yu4vA;a&QeYsPZ;Rgz!p{KdQUbPy- zO1s^j3y72TZ)SImg{KeqwU2Ol zd@GA6V}+}`q>tGrH(fr@$iS$N#8q# z%zn5O+NIeRShlgrmt|^}xzCVUc^8=P@tmdh#_^l&W-SN1j-GR^&N&2GPP5o%H`1ZZ z;+kHKlrvf)>1(yluGn<0BEhLlD@7~b`mSXkw=kz$PWSY_>&BTM^6snm)hE@(&gX@6 zu5ByNGZwFXYBUFU?Xf=O5#TjP|Fy#xmjN2YI^1Bd@k#9Ldt4X4D7Y_$0wq0-O?R`dTo5fy( z&1T!w`|x`RM8ERG}5*5N*|0J5iHb1(+}LNH-lPyX{!&nac&Z zI(UIurn8M!gw+PC-Nts-6J4Agn{Xdx1KrO#cafj>Op>0_iKr8ESgd8H|53KWsJ0`Gw(5*KFAjvoP)buAUl`6}CpV zT)rCk88%Tnqjpbgl(~-G1ruZK=|+JTyS>t^YP31?lWxwsT_r`D8{HG!Rw)Kbdum=a zi?Y`=YH!lqGsNwS*({H{@^?OQZe})p&EDt@G#}~O$uL9CyLT}1^x!mlc*l^&^1Bw_ zoGnax>20$;ZuZ_O(&W9{N!t*cDL&So%gwtZ?`CPW%b~03Gs6FJqlbGqd**2LG*M5D%XwUM4d z7l+=8CbqXVO03d6-}o%FU#~mCVvWsod%4$T^PReHT#B3*8qU|>XxZLyKj2Q;EL@k zF3aZgRy{1wxZJn0)bcclG~HusW0hd`($wDB*Gtdytd_my7)Uit zAl8yoieV(vz{v28XQ=*W&sSWLZVTPF+(v^1-d`L!(*$pA4^F3<=3wIwcKO;ZWJ@iV z@;N$>r6sOgt(KV|cB)Z)bSTnFlT~mtY>LcF71kcJwZ3Yf(%;IvINnrCbI|g*=%Hc$ zP-ZHhiQc9 zIT^>fe=_diyi=xW^Ui?iPIt(2ndCazWRB-z3m@2{ZfBrnywl9y^{wS=-Dc(o>~ES$ z4GQ^o#v%6IH77{QOh1_|(Cg~u>U_=4k@#tMHqW>7SJU*Vk-yM+sNcjR*iysZN$bAN zP|eG3?If$6Ig2UgT_mQq!?atPjFJ%>XYI+B8cx04Wia0Um~NzHJ*_hRE9N7OT+9z? zmD>9$ZkUJrOw;+{(?BuT&X3<|P)~c6x{i6d*G=6Vt$W6utb3a*H+kSPO`BNW;mRZv zyjt;&x+BeJSPoVzlZ`Q%r&#B_)MSsIo67|q9sZhApq`%1Vy@hEvmLc4vgqy}V$ng~ z-K>GjCFoSf7U~*m4rlb9Qo4!|u<{qQQ&K;~*$iZZdo2HhLUb1}|7pN9wyoOU(7?B2MrF@d1sogy? zOG|^Sa|ncmGTzb7!AWPe&Uy{G=>p@~E&(p{b&@nYTK1K$Gl_BiVWV!Ra0oCPr`KJY zX|~6-o?enkF@HxI;-Y3K)lKyX;)lo{LArT>`ZUF8^Mgi1OlKNKN;$1ui!${GvUZNK zcKtMxt;QNfnVHy~lMS*^x0>qN(&oDBde^r$V{JZoYHO^wxaxXMvdp^FY^-MsuP@H0 zBqbg%OscHCbXFStaC`uRZ4Nn|^3jvEa_lHEP+Zk&;asJE&wi2T1owqTuAU%G)rzpV z>(bOs!SB`yksOqI`C<#8;`V}VB_Id>5}Q#N-|O3OX1?0=={i`wTGp% z3&a_<)QeP4cRb^I&2W8$5KsZgt-5tzxEpmU#m!7mZ@~2b#;Ze%R$hi1u1-b5knW;dIG6 z+RohYlEqA8C-3!+D?Q`MY1w+`Sj%ocZ%lW)+i>H_T^+ggD2rRh@jjh+d#So@2ajj+ zDt@(gjn_K!u4+p)pUC~qZdyL{4tKq3vW$PGVF-KVcO(fW9*Qht=RJUI_xixe)MISw zTSVAhx0Bn1OB;f|)_chU#V{`|=d(UhZjsJUZ1WY%UHG%rJDvel3QO!;-0tezm@Jlc(~gx+Qt#o~ zT)IAYlE2~GP2fGF|Iji<=Wg*@Ax^!Pr z?e`spNk5qSPmWHCj-8od0xy(vFac^ldV%PKv@!UO$xj7*7BQ2}37E;nnS4sX#}G5Q zq8Kx|@INR{BJ%8CS1uC z%@MUu!Jzm;oBJHAzx~BYH>mtf%e~Ep9IJQ92}(cH?dEgRQ;O5IApSG`RFDVL*DCBF z=rf)EVVrS0J%0}TS^SM&Q&vxH1L@T?q>m)+f+S82q}8-S+g9e$@r4VJYC7m%O6Jau z!OdXHCt6j%I?TSeXsU} z>UY$1!e)c169W4~#5=nF+%*Mn`rHhH-qGT3og3$tXv@L>9W`pq@85_f5ywvzJ@}wN zRuOM!2$Cu~V|}h+`|MN0pz1Y!U$I_0-;nPCrLXDv>*@U~HFhRK!D~8rX!i)mRYM2C zgx9p;_I7?5FMOOp@tRr(G$pUs8x4UcuV{6%GeO~MsY9Xs6_uv%52+rpwjSiaqP;JS zN_sGVV-(0=Q9mbWG4D}#DO9|q6(4m2$4hTo!IqbFe}@@>RB^r3m~)5e}? z2gT3nnC0~o_9f@EgbB}StZS@u-;LLMLhy6?&1XYos{zADLgh31rB7J@>sQ>}p!^v< zWa`s3YGJt%ls=yBkcN;I27!85w+du7UtDsu`!&!~G=UaKaBBTPZ|jQZ}5iFkE8 zGz-WxI$F9SX?bGt2q=0=)h{%XcH{HoLGhF-{GN5_bGCUdkf&6d=+G%Sq^cd9e?mJf zzT2SFk?<~1^_ZHki;pVu<{LrIV_G$LU-bUl^#UONF@4tAx}$FWw4PA)i0&NQx9{F9 zZ@a@@S_Z6hdrNSEHz8C=*YCI-?U z(pd$|x-Q<_zytgr(!7zUZFiLKwSe*mbU<`lJ2#jd0Ywk!yq(7~?*EwE6y`smXFsg6 zs`+Hx6(Sx`>!ClqQf^Ia0LAy|8}3WL8qcSG;Cr7+*ZrZl-ma`3Nbl2*Gc1!rr`>i2 z`911ze1*GTPIWXC-KE$2=mZ2c`KSZ_cj=j%i~TP~UQU81m9+oCqtP>xHmQTOk}iHP z^Idk*wKtUCp~+X~_gq7%78Ks0&)TjYwWM9~AeeuL4p=rLD5{n5K$vicT5fVTN!#*6 z4MOiwwK1U~Z-+E<0qGsO>to0C@e3>mK=o}}>@dH37q1sQRNkhE+Zzs(W~F4nmfQ5= ztZq&2b?Mj<;&0P)OWQVj+1M}}if+-V{_B0|u|F*#{TBTaJgN6sosWr7eUsV+{(w=z z6`i5-Ce`X`BJH@TeF&7_q+g@L_?g%8xO5q2UYOH|5JaN!l@~=_8>64_dA&&t9uTk6NJ6-c14$J}hHM+1#6K?5) z!zqwoL95?ohP!S^L|RutXP&yJ9&_N%Ctmgf=J{0g?)O(r&fCF{R%DH*|%*% zY=s-qSJUZNw*fA>w+8J-N1OVs7Pwu4Xa z*d|bMksi~wiC?hOnLyD+x_WLw@(mJ)YtTiychSy9gMF+zL&XK!qW(0qcRMExgrE!b z!O0=oR%PdtL3V+*`Q9Nmd(Q_G$Ujg2*mS?8*J0}>pg2!QOf^q%acU@s>T}d&zF*59 zAI~*{%5(Hs#uV3^ioSiI;vC%?rQ5RF)Y}mX&e5tdD`E=`zxIKMbM)zkB;&!PQxpW9 zqc1N?Jb$mZ-VzGV(x}#9P2z4fZ3sDM>4(N^qYmn9YY4$-=%eFl`s8@#K=409r-a`0 z^1c<-393%hPdzM+y{$`ZVasWnXu3Oc=pS#rpz0Kzv6D+E{+5g1eu_puRkx^)^V5Z( zQ`A|$-L)!Z#YiBhsKJiby^IRR^#}P$Iw|U0$8+BOt)c1!%}(rU^!=n`dzgQMUQPcn zTxak@ZwNj?dwf0AJ#(||K=3_5-R>Hwz0<3w4zd&U%jv2{yS|Sxhr)8&>c}Ja(`UYD zLTEX4&m7aX&B_m{;D4OD{O*@}Xn$dMkRPXJna16Zta8+VoMSXx$KChOhws~h{1}ZM z?P9)t#-$86f0S-|VAcEcyB+aRdX(m6e;#t+=-H-_ew1!rzBbqIj++@o9Hl+}?AYaO z?8+PnI!gOYdErFS=<+Jd6@vHDnRC)P*JtArp=uAU3LG``%IQD_RP3Q6u1@e- zedA^~DBMFI&1f^ib)su8$k{`=HB*90;`a9jvWFhukSbf45S{?@i)pKKF o4>5({ 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�{sdFH!%5%amikrib}ed?o* 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

XaWm#u8se`Klha_|`pxpcWT3M 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≤!BcVou!(AX>iaj#hf?1o52C!Q<|7(OBGtnSsby6)zu3^l<@9~r=>H{x- z50fT}b9HHTl%2f$(eu=@w{Xp?3+ZcU0wfjb&Wqi{vRnBPW#Z|7AIVadv1r^6K5Gg1 zA(CLty8joIOrt5OgAV?6pbep9B|ebHFSa$w*CWGBXk6M6=`sV8C>{1S$?`TNlk$MC zTeuI!@T0A^!PNw`w*nD)g(7C{0-=_brXKpdP!F_0!_}PfCcUw1_4m`gOYF>S43^r{Mc~e9n?o%H_AZ8 z@+DcDGSmdK?~O7HK^e58!TCjy36#NhIYUVW$`E_XKpvi<4BBse55b3}_AqA?B<%8L zz^q+#LX)|t_JB(Lb|8Wh1E7EsW#Gq)xY z+OUlNqD?|uIC(}Jb6}2YyRB-MxoTdr#A5$&qq{j0u)4i!aU2L9|JNkRJ5#rX2=?~-^q4sQaKU}8;y>E-G<(x;` zPxzujYO#%p#;T|uX_w$;k(TAJHVTAC#jf!Hry7KrKsvCVY%w|Id@$>Na59yd1gCkj^~2m$Vc_)z1U2_@ z2BBf+>T)v}@>|Mg_dl4T!(pTW#!n$F!CT3Eq|9vtnB{*EmaZ6Ef)F-1DMCvGrnmGE z_hh@fpl_*MJG1OuY+>k!w138w!avor2OflA63OQ3EV{j;34S$#3520L=v|Mz>mZ1$ zS*lJBq&r~RAyV#Y#UJv0Q<-^*=#6WHwJrf*I?2^VK>ZaumTk3aKum<)8Grbg4J@(jN#atxg8ww0dYt7B$D}Y+3cUu!w%-Ru26pI zz%?6QLA#~&GrE#~T314;~QQ`@;2N;rQBT9l-^ zL|SryU9yRd-LOj$RLw?FqTNYFQY||yBepx8A62zG0@O1_^j2q`4BFjB?rL_2IW}?v zyC#Ew ztIKfmK3zrPF?meNL*%**NQG<28&_m}(%frW)9*sRrt5s)4tf zY9Otq8W^jo2D)mhfvXY(gQ%KnV5z1W^GH)|lb>o6eyWZ6sfH_%rdm@SZD_)v-uLx2 ze0>BXSA7JGRDBI!U&GgjEsN^I+(q>@e0^qSILMRL*Kk%J2(J3f^$4A|uP>h__!r^S zXWHX4EP_~lR^49aN;fxzWO1tsXSA@&)GNQm(kj1wt#^B_cYD6L)q2c!_xUQzW}PL_ zW+Lhy7!I(5d6$VgYp`K@$Lz$|A_a556)CLseP7kZNg^D1W zH8>)+-FXWH@v|h=`V6I@L^qB4X0- zWtv0TIf=@bG|dr>g+&Tj*32C_=$8w8%|Cw8e~j*;Nw9|K)L;Hs;(DjK!k&@g7qX$E0w zDCHJ?P(_ov{#<(J+)a-Q*3Z||LvxMC(;snn&Q%{jLONl8K0P=6_z@Bo7vHXbdT!!z zyIs6E^69yu$B!Iwhvq7eYwt_~_ajgEd`jQOJ)gTDnLF^rkt0WvLngngXYZ5dh0DiM z9cxBEK_xe4JB507;A2_+kW3Xk=0SWlxp^uPt`a#b5xElSD-lF?9)Sw#B6C-Fh%-#Y zPZ^a{>9+k-@-fEL0B4n|4bc205=D1U)R_Pi57BbPLdu37I?V0R$L)!`iH{#Xd_(*; z#VYf&SCaW+$b9@tGQSlvFI`FI3nBBaaVcpRJ4E(cP={v?avBASg#1tYHJ<@J5J(HE4}}7P&A_ z$#b#q3b}Y=xu(fAp~Q547qq?xu!%glnWcsJQp-0Fxa^xCQF3f)NTw_Hp z-dHZSKul3`K`!!KC^17>ys=y`ctDC=h-~v*Y$!r5-dHX+SDGmAJcZzSF_|+WW@KG! z+m0Y(V8o4JqWBSw!^*yD+yowk6ph{zZq1g0{PZ@mJX=j*mz4Pg{t7q5Z!#u28Q^>^ zm%hX-9@*npNgOnkA;~<>IA_Oy_7p;?CEb$rl&()%($SFgG*=SO*XDgBhc1B}2w0{x zR`hhjr=E>SHmXC_%c|O_4zyauu)6RIrSATgiHe@Cr8`*=cdE6l=Kcf;c0<^7cT2_~ zV9ITs2zhU954O^%mf#OJk+bHS538ZCO1_v~t1|mvgc}bes$zB<-q{IVQ>?}R7#ssX^YQW-j zLtvx)1}rJG`++rfDX{FD9Cb&t8-nF3_J)2mtW&Ow9&Dx2M@R17=8*?H=k5(!zeawnZo^J^GeHu^_4>Y^f@MWg7NM6umj~&0N1)e6Wk`x&C}A z+a=II4AonE8sK8#4rrd-sV;?0wK!*v2f5BorH~rKlc<>A9oXgzY=WqG@e}BWlr<4}`#^-LC z`S8!Y?4leVMbq_?PrWH`W)qSd>Os>&v@7lJKo#cR)uk9Zapjs|+T- zJAYM!`GV7Ef&voApV_V&kF>?vI^h-`Q!sDE4&g!`c8-V1?;b_!rMQe z+@YaZcp>>=Hx{g`{&lPc_5;v3(%lb#AfDCVRxu7Pgaf#~%eD(7}9XN{a@(ESOR%!sDdKM4JX;_CJeh%U!b zK*8ASh)$k{wUq_UGS`Cdc>+3%ohb~9l>LG4InxY$&(VPrnSE~=SkaAmdLpMjquw$F6-5mX# z?AdBJMPJ}5TZgA~{U)s7(fsB~-C$<;*>J@uA(;G|$wYCF(E=p^Q?6RM%^g%KR~fuu zg^Gg8HpVTlwPp?A6~F{9%3PfTjP($qu%ZWA}8o?V^!B|LvrkbF>mh z-s-)>erblAHDbTifxxC4s(a7vtPlnbcI(#}Fw z7goz-fRJIVuP`HeBLjF#1jI-m#KCmt=RW(Tul(Apr#|&lO=*kRh1?inz%B`>B-xkU zZP48-*hf$uoWM;L6gcYWJvT;dEYSEMhaApcKKiqtLyisCgLlvGNDaz@=vdzbJ0CX) zi%_qXmK;LgoIUo9|DHJ^`(J(>pRM@FgC*EB>MK()4QFp1{|a&9`NmA<##jANjQ2Tz z!VrOV5XGCJzU0DiZt|Q0r_A38E?eVW%TB)T$J=ac{GN%ZqJBSdLGj|W3nbu3p0=nN z=txtmWP{96p<)II4al}4R6rLR8Bv*pP~Tb|p~Nt}{1adKMWQUC2C+E&LIYxI52eio zcy>BYtKmok8t4tog>t~YBE=Dfu^h&h(no!NMW6b5i_e8pjIlaXliWs67`38Ypo{RK zH_{CF39gK8m(hLattWh$HAM}+Ojp!D!|2c{HWai9XrMawSX0>i+qgrd%;uj5toutj zaJeC^F!ZP8`{1y_N9=BJu+L(#`z?#A*2=JXAgSkMD=eYgOVanXWOUN~W(9Q(XWbLa z3SeKA+3_I^YD>yGe6gZ=#Pky9Ay7~Pa@b%+(E?;7EEbkd^6enu$-?kn&L1Q^RZ8H{ zftJq0Ey}=ugp}i@6h&y@Q20`cc~)fDz7}6$x>;vZ75X^}z(l=Pn+l2N@;NOVJ+Bw>bMW)qNX5mBF9NISj#aZUyMuPXCz zL*oSXf&v)DYjyuHM)73tVaQ+m>Q{{+SGGGpntMa)^}QOSh2cgV`G1v2Q)bBTszK2o zOZg8}V=4}R^aBuh?NyHc`d6dwA5_T-syxK`lUxz^Ho%02HoFx(KPw!gy;A-w#A4@z zWp%T#-cS)r#J!Fc+s>D{+ciEau?8AD!2?@42sN-i-{IU8Efy?`=g2u5{ij+E2C4&t zHLN~1W@ukA&&;0x-$ZP%*7T?=S|raVQKdI1B0Fugf)YAf{NGd()o_5~B=vW)laqlk znV>_5Uv!v1CE15grO=r#)}oEvp6iG#$-A+Wy)-$Wz5cH_aH;}1k4Siphv^CpIynhb zLIRt6)g*HN(xie_cCzz7wFrf>R0ZiLnf~~)LMi@xCWjzVDdkjH)a60+4^vSA)9h29 zf}m;F*tOxX=jA{BT4b64ieQ6^3RLY*IADj~N#Y{lnN2k7hQ1J%>KrL{fd-UxoIWMn z0cz~HCDJnac=+ICGULXjcb4m)wtVZ0mc$3i0o$dvjDV&iS)>F63zRsjDYB4Rp1m)&d|zj@9n&zZW}~Z_WK= zBs~tmrh~&cp#g(lmTd7HJ<0oDM`|Gu449Hht$b3@4zQ=0dRn{)ia=_!pO$+>_UF<_ zg(gtes~5vK7L{ZdM!g(k1pC%r>Q3J(JpQES=5&>=&iT@v#3;9OH!i%ayo6*%ahivr z=0TMv!p`$_?-{$SVTf+=9{P)*wD)`#syJMTWGHYMV+{hQ&xd&c-=y;pWq;2!yvLS6 zA`)TGigBM2c{BZ`yUTUKrj|X6kf)v<8MFbl6;nJ4kP`b~=Q7re80hR#2$jZI1mlb1 zJ$%NK>KGXC>s(!81pI`OUX&e4Z)F;0{zy<{rx0i`-}*}J(WLc zCUVXKq(C~*vuu-fAQeREZ!sOD0~|~0wpnf}>aE)Xa-drMMpIfRrR-(c!vY zkJfQB=+Q(Sn4A0p1Dksc<;xbp?i{p8k`u_zO!Ztx3+Kk{li~wK=8Tx|WvbZ?yZBni zpl3y3I&{j4I7#>nEg8g-dvcORqBsfY$w~H}qOSyPM7NLa-y|znt@~Q+4m|_EamW+j z5Ap4xIrqdf*g3GCd{~E*4AI|VlazI`m!J5|FA}_hY9t}WHbGlx-O1$ea$L>0jx%BW z0&fPd)Z@*3JqY&1n?Wwd#l~0;I&3riia(|ACnwkV+%+XC7IQC#taro;2xcuj`s{dNkvFhZPuBkC~Bc8CZXVmVq~D z8D!l9FACi=*a!>-$0tv&f_c>&F|U@`gNYbf53CWBq;B*Z2h9`3AsS}XJ;S%o7UP!( z*gI}o_wD4j!D@t-7&c! zhL(r`>J18m1$vX{f-#dW+i8t9xj+Db*l;xvjnPG72WV6lQf9{oIRpm3-UYDc^vm#K zPZ}@g#?{|-q*J!C=5P@=rzjq;p2_nZ(wH%ExV4poVh>r9 z5@C-*L&(a37Fpclb#9$~%#U)z_Ko<_C*Vs*>K5c3<5?_%VwN`Rxi=26_caPG^g4W9 z$zUiQ9W6M;z_-=KXdz9F-|fj;UR(KufAzCk~ZhKFye*+B6P znf1+}|3-(U@v`>~%Q5D4d^3;@7T=Ir-_-m!HGMN!`i9*z%n;uUX0_rQGV7bV|E8{Q zYNc-=2(wX*Z)#b+_=e2-X2^e|v*UQ#Ya8qr27P=}*EH3LA1`o0^MHh>`VtZtc917~ zu}H-NFMFdv3cWj$zl)iRew;_(J$Ncc9cD@TW1oNK$KHRoV)*r$Esv$)&p-3S?>}3C0s4$VRc!?Zazj~^3OaH_|I10fj(ns^;v-j`DY#v{AVjrL7#yN`m8{O{4NnYqR`T zw0U7g>_5E)m;`5M@+bNU zmvTYe3A+v37r)KB8?>|T%&|exZd;5?c7*M+Nwis-y4h2DI;(Bai~sGZDC7L5qsQTo zk81_$Ahv*$mQ+VkZ#|pw0Rob?GF)Q$?FAS&35kN3KQB@9Ig_d2SzE}2aNrxr8iQH0 z1@f`Qb(mUHawC`KwLR;JILc&F05x!oQoI%n5wGD)O#m#8kscc+N=NNEM*IGXJ}snq zR)H6%34#;IuwnBgp~O)|^NAgvqqypd#=WO2zJS$H7aiASd*Dvo`MSxlbCd;P{3kIY6F zYFU#~di%=WQ6eJkoEY+rLT}77%Ai-u&+I}@m!DtiJzUj&w&JFA0!c}wZRe2$l{R{K z%&atBxWis0Z{H@#Ydp43WL}F8;*)2&X1N_XnR0$+k$j9~&5@m<1es=9*^J8+;P%BM z&rsgFOm0+Xuf8c0O=AD?-Bdf!t2UfL^3vl>7_-T&WV^EB$zyrMI7S|^;HCtcD7*OV z%V64&i!?90BuI0Af>IEwk~5SC2rm5|dIE_@0Qz_wt0B3W~N&TK+OH(a)Og>Z+wu2Du z?4mT7?tsK8^iNKg@%@}dfnVt~N&ra&y{9f&&jX4)q=k8BUVz}==eDll73ya3EQZEH`C z;tJD3JQ@~^wr&Z&#E%vQ43=+W(4?>~k?7YL%@@?l{wP;O5?;zBDRBgS zu7wbURJzQ#G`hcwKROIT4VJ4o#MOrcV38mu%s*T6eF$=B3)njp6CxavjX99l7DidD z4$RXRaPOBELFQL}({Cn>;71;$gIl2MQPl=q&&})t7x*ftd!(N4%fk^kqI{&E z?Mr`+bVbGH#p|UPe$Do#WFYk=kviJnd!&wCm>li_Ay-D~AZ;j#;Qp)LAKyQNp4@z| zkveucTl#kSNFBR;q>ep?TatyPS{`eS~QHgjM6B2Gu0 z7tbSF(ex#50n?Xd*HxSyO-h7}j8u_&A-H$l7VSgCBwy`b#8PQ)?=Cc^j9txE15Ch; zRw{q>;Qs2}KBkXmet}nT>H)86Xb||YNBe40WwJ9bNMB9LP74PTD4(J|k$|6kk${&u zkswM5cuZP50Fbr&e)*V(76C69S8(@IvN)twwkCcA;k{y7Y4anZc(*N~+T*Y+J(nh%IU{rO~9 zi`Y1dP|}+0s0g5MQyvgwNehDXxnZ(f&k4a4A5($wCr|0BCNtU5?faN;r9q)Rz=p3; zd>WI){k>jMX0ISwHsu?>yB0Op<~aGTq7T#RsZAn9nvS4+{u86>qpj+RDn?DU&t zjBFPoe;oUW*fj;FNw>nZ7KROI9r5OvLPW}U<8CC!S;bm2lLxklBdF3WVEMsb^zacl z&=ekPJZ*~A>Za?Yc2F<~4BJU)CtY|%G(#qvh6hK-yGj(wQE4g6HU;;5w@xAzvF|8g z9QI-=&If#^?Qs5Bi2*f>5b5U~#>bNG*E%^%aXD?Tl&3o2JH2S!iPX zZ|!VH`v8FP;`&~caC2IL+f}mbMF}6aIMCBX#pZ*Rby(TVY6U0`rPBhM(@ujZw zjk>MlLzJU8D+*<{P=s%~eIt-QmIE*pFJ8}z->58Vyk+&ZIfmA#&TX9A35*K% z8mps{()&jt9M~jX-);Hn=cct5l;}Jiv(7vTuEB zIm+q^9X{wbDu#>1tfc>`(g&3;VJ6m@7L=S*sFdDNdX@C5(is8-`bw{njy~F_d|N3N zz8uAIHb72U%dkH&BR#@IV0`uDpI9v~8~L^BBdvIrOYn46ND_i;d+ijDoH;H|J z-8k@36n4$GEs{BHo2&dNgB3nLV-E06h@!cY%vF+Y8u9cQO<-R^o(IvC%_s7tV6R|a zg04OG0Ft*~Gq7-TKc-=vB)cSEno4a%SjT1+Qay!}9@(H`;*2<dZqIo#i5hy4+Lui~3(Pv~dn`)bR-p6^J}i3PZP%9Tbf8csG{b#?m65!#BW6!3+~x+V@`aW4bcl&o|Jo zyos`6k$Wh*uPElC`1XaEh;7fX2GMYAlX>d3t8XRnL4Q%?SjnPCvcPDD zaOI42-T+uA3tKLFH=&bS_i(}1e2NPj8^>jxOu8n-uTO9x`YXd-YX>Y2;_)KTm2>ygL5SuTqwR^tVXck`v2H_8vwhi^4@!&ea@NhBqt<5 zAQAQ)q72uBdfmqD@<>@9+Ptwf5d;J_3aJao>9;c_tymdgu?_TjREA>%T~ zG*QM^nyB>9nNAO#S=l1H9FDWGV+z?VV&Irmf=w+4HLmKpSrnyn$5krHF3elUp{ zlwTlksH1J{+0aG9CCr*G-NN~3NVVX}@fa;L>@;t|(mfe>^38CQd!=V+tBc_A0_e?M z@o2W=tkgedRo$+NaCM9M8)XJOm{u{-SDWK-F620*?);tUGtipYgS z{-nR7B~E|lgC~d>)@C5L$7qiPpz^MrlrEPm%5t+DK=``|{G12atnGmR-H zkER+JHWruX5!9*{;5pmiISITl0S#V!MuATPui1_8V%s6X%T9|hc)2r7tSZ6Fo_8oP zO|L2N)_gc{U*_eP#ex^i^d!Lx2lxrYE5U&!(q)~G(X|{kS})>K?W9m}e9C5&SaF=A zhR%Bx73gex5fE#CM7u&$5z+&?KYMxkn69vX9g-~aIjSr2<}qE{hy~OYj(9{@?B2t= zB8VQ*74bw+opU$HB?yssDyaLQ^GAw)jD}9-6n1eDj@fCJ;$Y6Vq`k%@-oofA9mcHf zmhd=Sr70rLK$q)Fl7)#H%kY@A*5-rj9Tu&MQ1?tu;y>F9cC8?!s1HpY>s6R};Z=sY z;Z(2_nD2l5^5x|*dgwc#X~r)qctKq{ zk6R6fy2?xLboZ=lZ2hUW7~Y;jq>P4HNZXV?2rD$_tz3b;Vy?hzbY48_;xrFq8n;-c zo(`Acet|{qwq0UcCtd`&2M%Y1gaSV)Hg}hnv`HJaF_8qcN+wKL!tO&vRf8Uj9kr!D zQ7r7%&Y5_3;6v;fkW61lOyVrI9wJzf@Rc(!PpfQUF{GYoE1B@d^l@)Yw>M^j5y*vU z&htYp9GJu8fJ!EULnTie_uVvoCzzNUd91XNuzOy@qZPs30F9!-bygl;iOkIfRa_KZ zCM{1AmR$>_PFWx}>W+~7VlLpc6hTri;;K*y&D*h?=YXKFsXP?lT zcdkL9@s;4fb>}`@%i_AzAgbECnTk@CwP#)>48kpZQSuvsk-Iw$q74G2C+Cg7-W{AwY;`Yo)Fu5w6k1kNft6Uw6atm`!q>`bqZ zI~PEJFPfxw%$?uV`WVKDSY2P zrPJX{eDln8@Xd5FF0aN5^Cm9=)@UWnOy-0VaCW=8Rf;Ty&@Iiw+lZod896Gt3hKHK zc)Az{vn2CMPvzsl5)3Ei*QaR|6mH&S9xq|KZoDerAm2c^2f@X@Q>>9UZ5*V35c!z9`6$U}Lgkm3Gt*#@OR+FCM$ zO3~)6ffy~~Ktbd=?Enpgxe*gG^>*f`4F{SvV?^fuY%)}mExr$htDkIJoY?@;BMwB<1X ze2a;?78&c7X_fP0B_XbB0W_#%&E$l$w!QB$sJFTHo>F{E(yA&es-e|yp-ijA(!OTr zusnlmFB0jqgG%kM5M_!pWBv!}bKs8%!0Sqna;ZI7j@q>usW=(B4t=UUUdA(FvX5|~ zd(=>Z5oAf$ZjF!k>c{meGb=h(>PcSxlwQ^9*u&YY$U5W7E#R3}G+ZL}YO8`4p|lP_ zpFaE@K4Q(EIJ5P|3ty>b5Q&@K28RmM+lItSJDWqV1eKExnhwQ=afXF^xCZTfxAL4( zHHmt@yUf^1GfwZaO%j~};Sch7Sc;#H=BCAxiAEW_Is5w|>1r5HX2YSYNl&N4vbP%O zGEC>5p^hB3xvev7j@MaOpwT#@rT2km>5}l~TT-XBf$Z_7`H|2=WDpYmRP?7se>ymx3<)>3pxxF(^X+AyGqL#Vpbd1ZMLlde5M{gvb$m6rN z7TOP{8fWA)y^_QmX-2%Mb`wbr!3-HI+Gamy036iNY~zHri$6uYMA}`woGu=s=;bQE z?Q+|>88~g~WT1FfxuH`HnsJ3(N2=?M04t4M8OTU#uBbj{fF((vMulicC!@yp6=0b| z7TUo2W5W=;^~jQxYG0|?3D%|Bk7IxHqqu!p6br!fBx6eHvA6Ay(s?#BqX7jK-=Xub zqx3ckWdYwDZbb;~7i3s1pvFmLT&RO09{J!GfG9w`T z<=wyMKAl+QJ4#5}Oq*~w%~Wn4AleSBbcA@d_S&Qh$e+>)>rf-^sFu3%3=7mI*er?W zO0jC}F*Gcee?+tqr3)%Vi8oLr?u6naPUKm*C5zwG@xT;rvdCbG*>XZCk9Cjr!iciFO9dIZ*R~Ke%8=^NKRC*#! zDD&9h=k~hLm&S-qrnp5XE(~$_qQiMaFpV=u1oq|8!+;1*3DX<^etroi{%FG25aFX8 zr52B*85*>KHrj^6cE}lH#~u?`A{k696I)n5Cb!18N}sA%xsJ&;C?5M#>1qtJtt901 z*s(7al?FSggi+efy&onO9>&QkvtwVV;yfZZ?bJ*= zGN@vKy_In6i=LO=u`d;AMr$EIMpJ9Rgf4ajX={Qv(mXMG+aLSFZAyq5#*aKaoPSx- zu`lX2Qyi7zu`d+>tMA+~olv!QA;&E!+{~(PF23`WbJ)}nA6l+zKK%vlO$0MttpAES)y&ytk zU_J&JV$ZD~o>>gCWl{u8KnR}2AXnwdM2QKe7k8*x?j&^T5XLskY-oZ~t3_j^NxaQo zcE_w!DFMlkpvzDFraO3@Hwj}pewpszb>4&znv$wCJj_wEMCheiB4j#CgxwFl zCE|1$&ykyi3nDZJVhD_O2jgG#M#1iRfn(Y@u@RPy2$9N_K!!vr2Qp-Y0u^e^Dj`z2 zVv)+id>K+^f>bP0nW&k}IOqK=QrQU2(YG@}=;?&hyyO}X%pr`fc!L?y!X><9!WMKb z(Fq8w$77|s2}}!AcAe$91u8SrBI8Sws#~Bz?xQ6S5POF}W&bUK%7t$+(*PidXO>*{ zU|gW`gaF3MWP!?Mh6H-HQ9wx~B~8V=_%>*_SU6xYFuBwjg8^tWo$SvF76=l$c1k7V z=0pRNDYd;5uCGAF4lbrPv^YD)4i6KfmmHwNv@tw+ytt4Z<7LK|nzHcZrVzB~R0nN% z0uk#NK_@eqWrUr1WrxH2jBC|p?)bG3fys@q*ur5nJ!TNHv->U;e%q{+g#`Qe%WJht z#`Erm(BzDFJH`x43vNWmm?aOyG>wV1WlVYPq=)e3Yzv#*_!c&}V_Y0l2ldz?d=+Uv z+ewB)_(UxaD}->1>k>&+3^wS1U^s-&BjCeC9vfSf9|71Fh?eA{*AOL-;Ck?U|fbD?HgAHnxvAFr6Lj7uo6%KIePfkm$Lum;9Eg2m} z(2`rDVq8VER06Yj`I#KL2YH%)i%uyblFn%{XicIll&%6T#f1>yAi`j~G{h8Gv_I3o z-Z?F9yQS<8-fIrjlm+{@Kurgqk_I*n085^=P0+x+YGZ_?VL}5NJwEH7L<6&BDyD&r zGJ#Vit_2jrd`aJF8kpz&kw+ocs6=nYOc$HaG_c<%(>*Wmw1fA&24>U8RS3XXx8Mk- zdAt%rN(0+TIg}&~%w}q|Kjf2YV4*^j4Xm?G{EDb)I2mKIY7@1fkhOY+ zOw&tsSrF{D=5;cgjAN1BV$g}+RENpytoIGxYSICAGW`N`e9JljQ?0Mgq* z8m9TiskK5wQ(e5&Hde2Nc-GOt>QUFrYe6{E(L7ZQ3rmdQuBP{1$pkEggf zC?TQ??;pv^X;c7@=8E3qg%9AeMd37wqW4vtiQ~?WesbZY$(X4WJ>voNzigBd!&_L`mE^6LyIc z4ObsGxQ9&5!!tT7Db-J59ya~KJFrvQYM+<1g+oVmCSBy?0aX@7B~6aA4+<#G_BNU+ z0+Vzi98alNZD+qeu`>LKJQjF(z-G6)R65&4B>E@qdaF~{J5X>d=1P*^$#gOB%;~tC zM=B01(J>GFu5o4cSw$`=%F~gcT;|!wHW%iptP4plZH%TWvZN4hVg%-M)i!m87r39n|FWm=f}L+Coq@62YF`X(tSq zhgENPvgesKtpXgvmYbadkwQsbQE-5%+=S+4E3CEJpSYMv zh!CfX9YUJbWGP{U#WpaP2{&LQd_V(4u`%6SOmm>Yo?@E4CUzIo_#t)`(>wEo?1QH_ z0$QIu=?G|9*2y0M3I3Bg0)(!E!xfyWMifkn8A}A;UF?O;k};<(jobW=B4`%~5-}pO ztrT)0RFL1>EN$|&NAC%sv!Yuj1?K-A=xiHzEKZMRdp}mB2L#*~FKf(Ttw%!!0tq-0 z746|D9mEb0wU|Uj9=q@{?F7U)%@?s$67BS1)I_d1z6%9h0_!T2AleE=nEZR%)kRr# zYP;O(OnJr^WFkd_A@TI;gNc7{lZkCLntP_VTrMpLw zDSoDIC-;S!y5~l;I%3Z7y%oAE#+Y$S%Z6K)SOKEhP@8&8OP%zJjp*p1%>~w(xQ^2A z?PQv?qq;rlVqkN<)shK1U?Wc>Q=L@9V=C1| z6!AWqh@x0cM3tp)i(6%evw0=VA*0?Yii(#uh&1NZ%Nc2$7oDNW1%V*JVPGPR*k7n3 zYL^Pmd#gk&Vr|qoxRaWyP+lFs3kQ8SGX$q#Kk@g zyLX%{0FKF10~}Z&lE8H&PF8lhr4Vs4PF5D+_`{2go&Iz%JmxsN_qc%jp@Q6g_7dTL zOUUh67@vAe>|Ks*#qO|=1Mct-!ECWMIxFNI#_b473LC<|27YVP|7Fi_871*s+{R@w zT-?Ss!1$`mVu*)DNeb)buUq({ku5|3Xp9lJT&}9eQV_Vi27X{F1$>3%tKIW!I@{c9 zGYecd!=^ULMQBu8fRqE*y^0*ib=9uGcCD?}s%5cjr+LULV!bq)wFxZxB_)BlX-ys zvHz3zBbd#G5+_dYBkk=MHd@US6ls8mpuJ>S#VwY!g@b9W?CP02WTaP9T&t1R0n_k# zSku;`Hky^5R)Yjri3C~9=Ohnm)S{?U9)PMm06aQJ3OeFpK3z8@Yk{i+K&$Y)a&6D% z*t8Zp;3UB6WkO8e0KS+gTuIdhCX!}kB58ho&hluO2P`|$ ze(W?PnWOz~fc8r|Q5C%HaWnaC3>;d+cDp6gbXh#Yb7z2T;qI{2pt-IYvP0PIX<7Ud zF39Z5xWMo(<}E6rIl_?_y3`6TMCV>hCf=|MxS%vF=0ZEVxSYPcoJbL`y^%5(MqAKQ ztV_&lLrfM(j^za4&WpAx%w9$rMG`;lN3{Wj%>s5dv`v79nFt$a({`^iWCNnt@RHMS zNvy3`v>73HJw97&!zI(BPR+nchhXP@#YEib>pw5LQOK%hmAANN6$X-{h!7RB2=dxP zqp(ew+Mki$doLR3dn%DqGxL<7WlB(b6kOHHj(9awRSUQr_~iYg2Z@+)8lD33fgkhm z{7LK-o`40j&4;Px8R{01%oLRl;eK`YFV#omoOdD$F6Iq@XS)GfbJ1qx@3Dp{h7nU5^7*hidL z0W9<}z0|-86|Hj6y~-7WTcn8+EMhn9Qb;qd`u(aHwEn>q7$LZH6aWIUYG zrNJpp&g?6JLEq?!{fELm;G>5$jKD_97m1 zy|<)~*|C?2VrG=A0mQo!+%2{s3Pr;P6++>&d7ZE++szflNF`G)gr1d5iPqnJrD~!g z86d|i!v?gpG8Rl}W0(FcsP*OmMa0mWE{OmE&^Yu0u#?nY9BrGf2>o$tVneN=BTO9g z7NI=qhaIJ%e&A6I{m^n17R~Xod=H^97pO5SPDWz@W&p1E>Qs$k^ngWUV;JNXgqZ7Y zb(1@@&4C%NTmW;S4xr5H+Kn&;a7HoBxYQ5;oJ?QFqXZzT=Q9+~vp_aS(!4#TmAyg(^z-CEr=j4Nr zdy%T100{M~YF^VPGK(C=K8@Na0WKLpqr=$%UDYqki4`=g zlC>-cB+a0=&lm;|AQCz9KZS2ZLGUl!So=rdFfD@fz&Q4n5Mmr$t;h05;yQX%k0~j8 z_}hBOSl0ew{FDDDd}d*%1cB*8)iRqsf#^d+G4BdZm=8Br#8~6wKhR^$N~~vAy}8Gj zKUz{yKMhoBS{Ox_Xu#7Cx%O0P4@`|!H|?${QK{w-E%J;p-DV;t8W6FB`W}t@8sF zfCzu`k=GPM-~hbAEMXiJ{rk92_wJK&KoLRFSD{7^b&5`sij_vB>YrCQdm&CGT4__d zKbtq^byk*XGXa%%2ZYqD9du(`T-fSvp)*zsS}wJTH-<(Cm3$+{l)W1uF@>*o>VfE! zcAkd#_YIKVz}{Dl)$gVHtH{=Dc!jV8R~121 zg$xPqIK3y&QBT>Y8Ff~&b(Bhtjhq+X;WR5f-$gE}s&2I%;l-4oO)6L^kkzDTOxs;+ zN}XS^*ODL%H;{wb-@}Ei5Z1D#jh1>zg%kpzTSmH@PZ#}=YWT(9WWr4W)d@puFcqd~ zPz+UwO@Xlxfmm`(8R3RO!B#A|s^GW~=x1%oc#GuzrqXg>tw7Iwx@UCl6{K!>)EB2YnB2y+=~XQ}3z z2{_eE7{4O=Xf&-=ka0t6T{o#4(nlqs==7jPU!lqzfh71 zY^><5V~8vMS0NInY+(#P3=)9OsJ&>jajy09_w=a`|v4U@Hg z)Je<_xn0HF#UU3VpTD~*nUC9FU_PM1C%UiB+bc~zcLu{B1$C{i7-bHUsNfokr|c$NMo z^7nWWGrUs-DC2IdMs6jgDcir|sL-Yz3^VVOg(ytr8l=%do%$R2EV z!J*~!A;NyJ{2Hvh_#k@cew7J-9MctC7qNrS3j1mBhRHQ9^L3gUduG4d|X#FkfXZB=}xV>9)*_E-Oxgu z9xdDIHAs7Bxjw_n@Kc6&%48#-P2){saC6<`G@PJJa%6#U3MB=hLCeAnV&S{{||VXV8NNbUrgN$GCV-a}bo zQF4~B*cvrPf^Jtaf1YnN%tQT6Nec!xAc{F;uSVCrWCjY)^f)T99KD(@VRZ6#Ey>y? zb8Yd)^sa+rk<*VzcWq4XB%QSjANC!^H2v67Ow*4izFK(yu{_bxkH?GoOUCtsbYnke z2{%DA%x!$|8`*5d`Sy>N$2s@e_0$6y^D>>WG5tagFN5D_is_H%iCCwQ8wLbmlD0+= z*aYz1nu-oJgpJb5TAId2Y2}Tb)%ce3sub@Qa-yB^vNNeyQD6(A2*-4E8D4?rbmdkv zJefMG0@-@=7}~}NgUl^NM9lwENz5Q>vFjSRJCf8=CHzx~sn zM%p__>Qnosb{hA(bo3(+Xzj5B)J_s;d7Wpax4Sz>_M+f>P~XVIcU)#^Jav~I@sD9CYJs=W3woVUSQPmWfEPERN@pB|4|jkKpo+#^kH3vAC=Wn?Ndh4 zqZPL#`_gHr@r)>4{_fJ5QC=^PC8EjONnUWXVs2XA?c}v(?-9Yvd!yuW0I#Y3ak|Iy z82^ytAY^Bw(-N}-aTwP=QWA%e-r9E6 zj#Io`V(}Vb#D%4I>-x0dY6y``2~|8C2Ad*eZIr`^YUdE@1V6GILD;Y;%XtP+o`CV+ z2OJs3f3FA|F#H~m@q0YRqXPU4NE@wbJZT>-O-9>{h6!M!Z4DK)eN0Wui9614=V=o6 zA@l(a{li>E+y{02B_eJk(1X>CxFKsAc&OSy+y|?i8|;Z28{!m4+^_^*{Y4Nr3u*K5 z$jOq>Qjz5kb8KThTAnb{YZwnmlkuo(f4!EN`5mVM%bv-Lms8Wv0io@*x;X;`QgC=T z5WDosBC#v&i2don*%A9xP)0Nxx!1K$yFl>F2^z`Q!=xLG9U+2S$;5&fuM=kwKGEz> zfSi)$Li}~9TQJ#rn9ze3BsHgIv%K$x2Ry%)mF0y@HfNcMqC$=rScM!f*76(^L&%i^ zyTtqF#1ON1<9(bsE+vAdWR>_`GKkrZe+Cau>+tQyl<{}vY)bP1)3cl{(g;VMsuWwX8 z9pYnTWTfEuQ&IhNJPacyd&lv)NtAr}f1{GW8-oHRpGH_PH32bMAq1V61(IbX%D6oX zcd_X-Bw`_h02G_{3!i8hwy+DV&JU`l(;EB>e(ez0-UhbgPdHli7vN8Lw3x=9aJZPp zpKz#{K9DCG{0Rq(`7BUsFy%=%`V&rJ>%I%4QfC4yn?a1>^74kCg*yE+wv_QjJrhg0 zG{I6PPOM-lhp?ogrJRe$+)~b!r`%G`tx|{B$4;iDT%F2NR!a)%UBNb%Etj`lc3j@O zXJEtSmU3IhX&g&`x|XuGuXTc0Yj>FKdT)-_}=`8^6h#yi1Ws+~xTF|YY2t&tDQ z3$=?`-T{S-YDNm~OXweG32Nq&GvJbnj~NZF$=%*BwM$p1?M|QG$#wFvoYdtz*?6K| z;ZKso_ZK*(cH#lHJ+N?rq(VpYU0dX~^MuGDjkcJ39K4(K_Ck&*kRBCs92M@$bAq43 z0mB9|^HYd4#>HYa_$e9$6^ivQ8g4l%<^Bw|K6r9}Msx6Ij2ZjLW2!O=Y4m3tDrn%2 zYacA+IG%l=kRx2mIiXX;h^GtOTVtSjx~UZg?SV15N26g3WLt#EieI?0FoA0y-=o3W zk;%EXGp$Yp`(61XdwRvuZAaom@m9~FTRjpwCMU7yESTZoE&Agzm>3>-OSOK=ST6X!ap4q{5pQK zBZKvfm;ehA$|hEeAt0^k>zyiiExYOvxS@k@Y!4NS4LSI!OmDK-kOQR8({eJ!iZBs7 zR!rZUC-9?x*e2%2$~)wbL7lM`P8I-CKeP5uV$&8zM+vKP%Y9hHv?%(4?LTCP^YHM8 z76MGf)#D0AC&u-d=CF&+)np$#RcWS18mNw+H_8$0Ln;o^;*^SD5s z4jF1X&ABX5u{LMG>X>r(-A~_+D)( z^%IINCMq9EwScx6^8TEjo+7*dahD)Y~B{a^7Lm* z^=iwbb3pC#c~O#`)KpH-4J$}fLy2cT7x9iFT%MK!<^VjGV15RcPy zYQF>UyBKS50mk#VXb4!aUifYe7wmDjU~|^5C>oTj9rAjQ#bRRJQHMne81f zh8p?z1VF0Yq4fxrG*;|RS!=bPP`L43_lZbE5nB7Z12AI8wPfVKyo{HSOtAn$H+3fi z!icA4q(HzdNt9mjYZ=7AE4GBCIEfj#aB_hoHgG@PexK{MfFzd&Avp!eER4q3 zTxMih^qx`&(+e3ic(n)(*tCNNJ8K*E2pT#R^0?5rN##%%$Ip3!HuC>zc5(teNSDp&L2A+4%P)vNY@J*fy^{@p z{@Cu9M7zo_w6O;*nCGiIE)*Ej8&|g=g?5*a3+n5IkP;oP=q-RyRu>unj*UDZ$5?M}Xc(r3hK-Ksy+Ftxt4!-sy%u^exyY%!#=W#}3EXSi{76^^f2k+{wRu~; z%BucNtWIbZH*>5k#`&eNRkYW%ELosaCAIu!A!;7_7|T}??G{JO*$033dB>5`GN-sJ z#t2SEfG$c&MX|8Cn~eppM5B98zT4lsUChF`p;f_3R=-M{R*M_XbllKV5zR1ecxrpc ziySw+8pGW;DS6lf-Mwe8{0+ zodEr&BJ|k^IfH)HL*L@A1pTJtLw|KrIU(pnz`uCz%9(Nt*NM7ZV0g^F_o7^j9S#FtN-!I65;K(lLI7oPIIqWrS~$yIs-0p$xe17DfLVzrd?W=b>gI z=2adJ0@K^gz(kwAD0+XXL*;VBycP&?9W6`cUl=_RV=f_kS(5xL-b`yFLk6bwv=_5< z8DTa%J>TDPgs1L|6~HuSYe@(t?F4kFQ%?tiM*#%yA1&&}Z0hEWcf@GDik%&{Hwo5+ zVty)qNlmj3mF|?u43Fq+)@GutR+ft*siIyh&D*T|&|))-owc(uHDl!iXq)xzxM`^@ zh}M-Q!+|5nCzuS_Ju(?EAZ#lreYJmwUl2#HGGWyfA7GJ_lvc0WV^p#5T(6+{bZL)g;+w##mjYr-$K4E?S+fN8V>#Il?3R`Srj3it ze0eB0Us!f#<_rD~X+=6V*YrXRVzn^cZ?AeC)pWv9W$$Y+XBI}Ez#}*!O!^ZFVV@7J zGUIx$&g%fr_8FdO-Itve%oBEo_eTg1b+id8A|v5^Kr14h9hkI}kN|~oi0RKOtYXF^ zW6ORj3nH24w(O_Ht?8+zEc>Z|%=MNrPDr<9KP`UQPe*tKm*Rw1+_E3N!jQ7;M=wmW z?5Cx$?1zB^6WCZrSf=$w@)Z?*5vHDLs)K`!YR| zp~}1Ji4_Qluvmc=2#XD8ZUBnyAW9X5*4CwTuz^eYmxU#(DZ2=*!2H-#auE?g@H~tT zc^`M`m~|)`A0sX;xeevn%6!cLZHFzY#qZZ8SCa^r9UHI|4XGWOux``HWM|p2t(rv$7uEb9HlpqmM1_$u zqQcsE3|w%ZNQc9Xc^(cVZDTM;U^vw;Q=8*lf1?OCw{C3?E-V0fdtn_n+)46Ez{NFe z;1%>T2b8wkGeK5)ffIP>GB;f0y&;0XLBE{d%ix3)=xk(m@?@_VFB{;EsRkk}%ju2~ zLkjkr@yV7dlF>9>UolRssiFH8TQE;CZ%z=G{frCNArt4P(y=Tu#_hItDjoNeyliD= z@65?F6dHCaEy&&=7L*LOt8=Rz%D_x_S2aYC+Rh3VL8_Cn0MFb@+200l;yf=YtDPM4 z$jDS+Jhr!d6U&wNXN*NIcL;gsCL&;GnqbP(_x(f|Q_KSF31pzaIdTfGX z67XwFti)}+N!t+yN=beq*fa}w;zKX*NwY$wa<8{ELq>>2yywL&+G&T@<+VvMETu_K z5PYs(1H>Ai%3NMfTu*3DuVLhXjP@d9-FukJ6A?lq94~9nQ1DiN|uz@N_&GEn6HI zV5^f1EAn)r=h;f2Rz4-oA|%f-TXjBG<~#?(YRH(*PC?b^sfRnX^tD{tma!WYQrYrf z%^k|lHCz~ltGFbV{}S%N)XTU)P#1GKQ(H#0CY{U+%9t=_oId=iu_&Eyb0+D37;stM zR5bFgTFzvyx+{dW$t(n8=oH zAQo=7yEWX}_6mFt)*ow3_Wp-Ch%5c(cjn}oehQVX&S(7Q>xM3#YO)TDh|vkVBN zNwcUSLt$l?DF~p+u_-%hTAY<)%^#AvRF48g=U*#?oFCzr=t05`An za{(mvN^+K>aCNGIX%MKt+5wsjPMve>d74vVdC7P@JBF@VJh|Ui^ERh@c-VvjA#JQV zRgkhmaht^enx*%705yv{kdp_3HQPSls zLqtJSzWr|+NwhbMu}T^y+LNiupxdsmQxAhqycWH{FFL0eMuYM2iyA~@E$QCRG9ER< zZyOKKA1+PW3gZzN1i*CT0o$5#Jb0xag-+THVY($X`4XG{($48wOWZ_-(}mh}$bdN& z+L$!=VY$sAESEuK9-XNwUE!}cyX5v~KD353Kj+~kyrsklWP3d;4mnRX47Lq5gTkZ^ z{6HHBD!L+vU;|yDZ5)Q9FdN}^)OdtMmu4|xH=?uVz@3{5{@khwhZehf~WSKuzCX=8dhb;5AKI${si7v~8U@170!p6hM$i%eq zFfua3#dsJQNuWaGVPs^+kMS@v%wm#O&}4L~$@n5?!}x){@{s){KM*T$rGerma$aL{ zAhE7)Z$54oFmRa|YnB*efpaFtc%jSo$l_*xXEPNxON@z=pvX91k~5>aVs?adWzXk9 zCdK$L-?_?!Dgz%W3TJhM+(&ZhOzOy_ z?>yS@&e2KVdA#ABCnkLd`RH10A^f9y=QfkGYKj_j6t~pfC1fS$u~xmT7OQ8<*!G5) za`z`TY4E#05nK-Uw-`Pw3HHI%)}|lAxX3ncfDowZJW3?KfhKF)HvXmW_pb08?Qyi5 zQ#ZHRtrk2Urb&FHt=<1YtveLq(8ocquDk>%%jCANA9tWYUYs8 zUi@U-S;(-ROY{B2t*Rd&4XgpSnYr{g*RpsA$}MN$sM3iolbwK;?7}1`G?4vX#X+@A zybgu!m?4axm)`S`cO#Qp(vUj6AysQgHBXfi$7p!g-jG_{kZLS*TEnwKDN=nJo)yZZ zw>W9}%c$522ETep5IR~mUzwbY<|wmWj2Iuo5N+Jo;Ngx}xqr}&lSraR!$sR>4A9x~ zQthd%GN3v{D zb`!P#wX)0!{~=tkHY#?fG8U@`svJ-9=Tw*WIi`e4<(70b)(#;1LM}qdtvZBL!Jc4W z)^+Xwc{g{m@T%f(zzp`rQRuF6iU7Z>wfE_`kgE6|Fk#k&ut95q_Ked$-)MJkyGV{x zqp-XAjq=KM%0?_lpLL@4cD8P&5Z4C=S@RM4it%A;MvhK8Tg>jTeQu zfo3b~7?FtV+Uqpk*>0i*kIlHP2k(Pe(ysJ~Xy!r1Xc-(@Sewv*K)T_lH8MFWQD?xiOmjbaYP@m zGd;k>`%jlgZbqU_(|}CeuCbr+y57=po9-<^`*2m(6YllwII3@Bp*0=?3wWAx!c;>A zTj5E%_p3naxs(G2rn{ARgg<6w@l|X76{)s7^(1B7%Stm}219-52!Sc@v9mG|cUdYa zfrL>aDh?+)&B8`Gttd*-MWar3qE<*JXfK<^-N&nR(@{U8VH3zRobp$U8$y6z9Wg98WWMj_LNv8HG(CwTZQMvgSoecK&oEv+UjWzwh9L^l)4e zrk3-FwPHTD;#xB8f0S7zcjg0CYO8AM(s3%J7Hb&6FQFpaqgQGl4onKhCUFZD+$Q!U zOVbALFdrWlcJcKta4|^Wox)3p&6FLGS+#-7Vb}e`X8Km#;pnkVN!$JbLgOf)F_Mxg zX*(R<7S4g&(HEJMcF)V2p8i`^2AU&x{V8vSt*G%P0aA^Z_Tc6Z2VZ+|hn8Gd8?2G=l+6V*GUjaq4kOZ91P9wG6WB$BwktDR@&e{%2kj)qV%Y+ zLK(=w!+x{p3OGo=8FEf;=D0il$OY3lQfqzudvv~eD)?P4_Mz$ZP ziu4J6Ap`4!))E*Jnu-i7O@ z?3lg!I1+NV7js9!AaOa(jOO{m7`I^xlXJmY2xZ)j+TbKhCjD48F;4nTB4?UGiB`!O zh{iKklQZOHa>m^=Y}|Cz+mcwb7YHNqw68 z{hEAETSkWD^i`qxKk1e^%PMusj7Q-rG0hf~LYtb?*EheI+U?xA zR^6$^c)MTU%vl|31$(!0X;Iz(T)LEy3OpR@h|d1i1K??j#59!XHmeggN)EbCQfN(# zO{mWzU72E(BJ9rV#uY5gZPuaNG*@~tOpq8^Gy4@H3x2Q;-5ng>qJzWrwYVcVL=cq? zzCZjsPQgK+hi>cdaQgT=^fP}4Z}oTK;BeK;ktj_-0L_~t61LW3I;e_@?e%R0;m|7V zRYH73f_|#1qK=pcUdkkEw<5-&DfsxB9Qrchp^m|WT(Ga8mB|_noOfEaN;7Su70ghE zuwX^MRyt!~;Jc4KD+tD_m}YI{b523pRPP87v~w-Cc4}{cjs`%^Hb8cqWI)cQdH~ts z06EKG*g>oE7W-DtQY&XYDGb3Xa4rY2*=j&2Kf}7=aeGpu${Fk^Zb-?u#%KhhnTFK> zQ&I{XM+L4eH~2Q8va}YPI0;aZ7epVaxiKy->ac^riE`pwP)AHEJJ+7lPBK&_{()-6 zqo+Z&buy?H=6(o)a$sX|H!Tu^gcFv;OEa+Pae;KX9}hxfVUFs(>P6gxp|%(R0N^qS z@AAyeMMCJL#C**B0i9yUGqqTUN|{=QEyF>XKB;R`l>=?0xuO$VB*@6}^4h@dq%&

He|P8r~1olnUT)PG;@MT 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≶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

-nEi9+%qNN1hr~WBPy+f4TQ!L1!J%` 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 W8{TirGYbOsnhZ?&7 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:last-child{display:grid;gap:3px}.file-picker small{color:#afc6d1;font-weight:400}.file-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #62d7e9;color:#62d7e9;font-size:25px}.input-row{display:grid;grid-template-columns:1fr auto}.input-row input{min-width:0;height:50px;padding:0 14px;border:1px solid #5a7180;border-right:0;background:#08151e;color:#fff}.input-row button{width:68px;border:1px solid #5a7180;background:#173345;color:#fff}.security-note,.address-result{display:grid;gap:4px;margin-top:20px;padding:13px 14px;border-left:3px solid #57d0df;background:#0a1922}.security-note span,.address-result span{color:#b7cad4;font-size:13px}.address-result strong{overflow-wrap:anywhere}.primary{min-height:50px;margin-top:24px;border:1px solid #67d5e4;background:#236eaa;color:#fff;font-weight:700}#notice{margin:14px 0 0;padding:10px 12px;border-left:3px solid #ff7168;background:#321c20;color:#ffc0bb;font-size:13px}#notice:empty{display:none}.success-mark{display:grid;place-items:center;width:58px;height:58px;margin-bottom:25px;border:2px solid #62d7e9;border-radius:50%;color:#62d7e9;font-size:31px;font-weight:700}.completion-message{margin-top:24px!important}@media(max-width:560px){.site-header{padding:0 18px}.local-page{display:none}main{padding:24px 12px}.import-panel,.success-panel{padding:24px 20px}h1{font-size:27px}} diff --git a/extension/dist/firefox/assets/popup-B3vY8vDf.css b/extension/dist/firefox/assets/popup-B3vY8vDf.css new file mode 100644 index 0000000..aaa5acc --- /dev/null +++ b/extension/dist/firefox/assets/popup-B3vY8vDf.css @@ -0,0 +1 @@ +:root{--blue: #2167a5;--blue-deep: #174d7c;--ink: #13202a;--muted-white: rgb(255 255 255 / 90%);--danger: #b9382e;--danger-soft: #fff0ee;--success: #1d8054;--dark: #0c151d;--surface: #111e28;--surface-raised: #172936;--surface-active: #1b3547;--dark-line: #314957;--dark-muted: #c4d0d7;--accent: #55c5dc;font:14px/1.45 Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{width:390px;min-width:390px;min-height:600px;margin:0;background:var(--blue);color:#fff}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.wallet-shell{position:relative;width:390px;height:600px;overflow:hidden;background:var(--blue)}.screen{width:100%;height:100%;background:var(--blue)}.screen[hidden]{display:none}.wallet-header{height:72px;display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid rgb(255 255 255 / 70%)}.wallet-header img{width:37px;filter:brightness(0) invert(1)}.wallet-header div{display:grid}.wallet-header strong{font-size:18px}.wallet-header small{color:var(--muted-white);font-size:14px}.wallet-header>span{margin-left:auto;font-size:13px;font-weight:700}.screen-content{padding:28px 24px 22px}.screen-content.compact{padding-top:18px}.eyebrow{font-size:11px;font-weight:700;text-transform:uppercase}h1{margin:7px 0 9px;font-size:27px;line-height:1.12;letter-spacing:0}.intro{margin:0 0 24px;color:var(--muted-white);line-height:1.5}label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}.input-row{height:49px;display:grid;grid-template-columns:1fr auto;border:1px solid white;background:#fff}.input-row:focus-within,textarea:focus{outline:2px solid rgb(255 255 255 / 28%);outline-offset:2px}.input-row input{min-width:0;border:0;padding:0 13px;color:var(--ink);outline:0}.reveal{border:0;border-left:1px solid #d9e0e5;padding:0 13px;background:#fff;color:var(--blue);font-size:11px;font-weight:700}textarea{width:100%;min-height:82px;margin-bottom:13px;resize:none;border:1px solid white;padding:11px 13px;color:var(--ink);outline:0}.note{display:grid;gap:2px;margin:18px 0 23px;border-left:3px solid var(--accent);padding:13px;background:var(--surface-raised);color:#fff;font-size:12px}.note span{color:var(--dark-muted)}.compact-note{margin:12px 0 14px;padding:10px 13px}.warning{margin:18px 0 25px;border-left:3px solid var(--danger);padding:13px;background:#321c20;color:#ffbbb5;font-size:12px;line-height:1.4}.warning strong{display:block}.primary,.secondary{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--accent);background:var(--accent);color:#08202b;font-weight:700}.primary span{font-size:18px}.secondary{min-height:42px;margin-top:9px;background:transparent;color:#dcecf3;font-size:12px}.secondary:disabled{border-color:#ffffff59;color:#ffffff7f}.text-button{width:100%;margin-top:8px;border:0;padding:8px;background:transparent;color:var(--muted-white)}.divider{display:flex;align-items:center;gap:10px;margin:17px 0 12px;color:#ffffffad;font-size:12px;text-transform:uppercase}.divider:before,.divider:after{height:1px;flex:1;background:#ffffff4d;content:""}.file-heading{margin-top:20px}.file-picker{min-height:86px;display:flex;align-items:center;gap:13px;margin-bottom:24px;border:1px dashed rgb(255 255 255 / 72%);padding:14px;background:#ffffff1a;cursor:pointer}.file-picker>span:last-child{display:grid;gap:4px}.file-picker small{color:#ffffffad;font-weight:400}.file-icon{width:34px;height:34px;display:grid;flex:0 0 34px;place-items:center;border:1px solid white;font-size:22px;font-weight:400}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.loading-screen{position:relative}.loading-brand{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:34px}.loading-brand img,.large-logo{width:148px;filter:brightness(0) invert(1)}.spinner{width:28px;aspect-ratio:1;border:3px solid rgb(255 255 255 / 28%);border-top-color:#fff;border-radius:50%;animation:spin .85s linear infinite}.loading-screen>p{position:absolute;bottom:35px;width:100%;margin:0;color:#ffffffb8;font-size:12px;text-align:center;text-transform:uppercase}@keyframes spin{to{transform:rotate(360deg)}}.success-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:1px solid #55c98a;background:#123727;color:#66dfa0;font-size:22px;font-weight:700}.image-preview{position:relative;height:142px;margin:18px 0;overflow:hidden;border:1px solid var(--dark-line);background:var(--surface)}.image-preview img{width:100%;height:100%;display:block;object-fit:contain}.confirmation{display:grid;grid-template-columns:18px 1fr;gap:9px;align-items:start;margin:14px 0;color:#ffffffd6;font-size:11px;line-height:1.35}.confirmation input{width:16px;height:16px;margin:0}.centered-content{height:100%;display:flex;flex-direction:column;justify-content:center;padding:36px 28px;text-align:center}.centered-content{align-items:stretch}.centered-content .large-logo{align-self:center;width:92px;margin-bottom:25px}.centered-content h1{text-align:center}.centered-content .primary{margin-top:22px}.dashboard-header{height:66px}.account-button{min-width:105px;max-width:132px;height:34px;display:flex;align-items:center;gap:7px;margin-left:auto;overflow:hidden;border:1px solid rgb(255 255 255 / 45%);padding:0 10px;background:transparent;color:#fff;font-size:14px}.account-button>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#63d18d}.assets-dashboard{height:calc(100% - 66px);overflow:hidden}.portfolio-balance{padding:22px 22px 19px;border-bottom:1px solid rgb(255 255 255 / 24%);background:var(--blue-deep)}.portfolio-balance>span{color:var(--muted-white);font-size:14px;text-transform:uppercase}.portfolio-balance>strong{display:block;margin-top:4px;font-size:31px;line-height:1.2}.portfolio-balance>strong small{font-size:13px}.portfolio-balance p{max-width:100%;margin:7px 0 0;overflow:hidden;color:#ffffffd1;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.wallet-actions{height:88px;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid rgb(255 255 255 / 24%)}.wallet-actions button{display:grid;place-items:center;align-content:center;gap:5px;border:0;border-right:1px solid rgb(255 255 255 / 18%);background:transparent;color:#fff;font-size:14px;font-weight:700}.wallet-actions button:last-child{border-right:0}.action-icon{width:29px;height:29px;display:grid;place-items:center;border:1px solid rgb(255 255 255 / 65%);font-size:16px;font-weight:400}.asset-ledger{height:calc(100% - 209px);background:var(--dark);color:#fff}.asset-filter{height:42px;display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--dark-line);padding:5px 19px;background:#0f1a22}.asset-filter button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--dark-muted);font-size:14px;font-weight:700}.asset-filter button.active{border-bottom-color:var(--accent);color:#fff}.asset-ledger-heading{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 19px;border-bottom:1px solid var(--dark-line)}.asset-ledger-heading h1{margin:0;font-size:19px}.asset-ledger-heading button{width:30px;height:30px;border:0;background:transparent;color:var(--accent);font-size:17px}.asset-row{min-height:66px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px 19px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.asset-symbol{width:36px;height:36px;display:grid;place-items:center;background:var(--blue);color:#fff;font-size:12px;font-weight:700}.contractless-symbol img{width:25px;filter:brightness(0) invert(1)}.asset-name,.asset-value{min-width:0;display:grid;gap:2px}.asset-name strong,.asset-value strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.asset-name span,.asset-value span{color:var(--dark-muted);font-size:13px}.asset-value{max-width:125px;text-align:right}.token-list{max-height:calc(100% - 148px);overflow-y:auto}.empty-assets{display:grid;gap:5px;padding:27px 20px;color:var(--dark-muted);text-align:center}.empty-assets strong{color:#dce8ee;font-size:16px}.empty-assets span{font-size:14px}.receive-screen{background:var(--dark)}.receive-screen .wallet-header{background:var(--blue)}.send-screen,.send-review-screen,.send-success-screen{background:var(--dark);color:#fff}.send-screen .wallet-header,.send-review-screen .wallet-header,.send-success-screen .wallet-header{background:var(--blue)}.send-content,.send-review-content,.send-success-content{height:calc(100% - 72px);padding:22px;overflow-y:auto}.send-content{display:grid;align-content:start;gap:17px}.send-content label{color:#fff;font-size:14px}.send-content input,.send-content select{width:100%;min-height:48px;border:1px solid var(--dark-line);padding:0 13px;background:var(--surface);color:#fff;outline:0}.send-content input:focus,.send-content select:focus{border-color:var(--accent)}.send-amount-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.send-amount-row input{border-right:0}.send-amount-row>span{min-width:64px;display:grid;place-items:center;border:1px solid var(--dark-line);background:var(--surface-raised);color:var(--accent);font-weight:700}.field-note{display:block;margin-top:7px;color:var(--dark-muted);font-size:13px}.send-continue{margin-top:5px}.send-review-content{padding:0 22px 24px}.send-review-amount{margin:0 -22px 20px;padding:24px 22px;background:var(--blue-deep)}.send-review-amount>span{color:var(--muted-white);font-size:13px;text-transform:uppercase}.send-review-amount strong{display:block;margin-top:5px;font-size:29px}.send-review-amount small{color:var(--accent);font-size:15px}.send-review-details{margin:0 0 18px}.send-review-details>div{padding:12px 0;border-bottom:1px solid var(--dark-line)}.send-review-details dt{margin-bottom:4px;color:var(--dark-muted);font-size:13px}.send-review-details dd{margin:0;overflow-wrap:anywhere;color:#fff;font-weight:700}.signing-notice{margin:18px 0;padding-left:12px;border-left:3px solid var(--accent);color:var(--dark-muted)}.send-success-content{text-align:center}.send-success-content p{color:var(--dark-muted)}.send-txid{margin:24px 0 14px;padding:14px;border:1px solid var(--dark-line);background:var(--surface);text-align:left}.send-txid span{display:block;margin-bottom:5px;color:var(--dark-muted);font-size:13px}.send-txid strong{overflow-wrap:anywhere}.send-success-content .secondary{margin-bottom:10px}.receive-content{height:calc(100% - 72px);overflow-y:auto;padding:25px 24px 22px;text-align:center}.receive-label{color:var(--accent);font-size:12px;font-weight:700;text-transform:uppercase}.receive-content h1{margin-top:8px}.receive-content>p{margin:0 auto 20px;color:var(--dark-muted);font-size:11px;line-height:1.45}.qr-frame{width:238px;height:238px;display:grid;place-items:center;margin:0 auto 19px;border:1px solid #708693;padding:8px;background:#fff}.qr-frame canvas{width:220px;height:220px;display:block}.receive-address{display:grid;gap:6px;border:1px solid var(--dark-line);padding:13px;background:var(--surface);text-align:left}.receive-address span{color:var(--dark-muted);font-size:11px;font-weight:700;text-transform:uppercase}.receive-address strong{overflow-wrap:anywhere;color:#e5f0f5;font:12px/1.4 Consolas,monospace}.receive-copy{margin-top:13px}.nfts-screen,.nft-detail-screen{background:var(--dark);color:#fff}.nfts-screen .wallet-header,.nft-detail-screen .wallet-header{background:var(--blue)}.header-refresh{width:34px;height:34px;display:grid;place-items:center;margin-left:auto;border:1px solid rgb(255 255 255 / 70%);background:transparent;color:#fff;font-size:18px}.nfts-content,.nft-detail-content{height:calc(100% - 72px);overflow-y:auto}.nfts-summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:#0f1a22;color:var(--dark-muted);font-size:13px;font-weight:700;text-transform:uppercase}.nfts-summary span:first-child{color:var(--accent)}.nfts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:1px;background:var(--dark-line)}.nft-card{min-width:0;display:grid;align-content:start;border:0;padding:0;background:var(--surface);color:#fff;text-align:left}.nft-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nft-card-media{width:100%;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;background:#17303e;color:var(--accent);font-size:28px;font-weight:700}.nft-card-media img{width:100%;height:100%;display:block;object-fit:cover}.nft-card-identity{min-height:116px;display:grid;align-content:start;gap:3px;padding:11px 12px 13px}.nft-card-identity>span{color:var(--accent);font-size:11px;font-weight:700}.nft-card-identity strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.nft-card-identity small{overflow:hidden;color:var(--dark-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.nft-card-identity b{margin-top:5px;color:#fff;font-size:12px}.nft-card-identity em{color:#e9c667;font-size:11px;font-style:normal}.nfts-empty{grid-column:1 / -1;min-height:300px;display:grid;place-content:center;gap:6px;padding:30px;background:var(--surface);color:var(--dark-muted);text-align:center}.nfts-empty strong{color:#fff;font-size:17px}.nfts-pagination{min-height:52px;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:10px;padding:7px 14px;border-top:1px solid var(--dark-line);background:#0f1a22;text-align:center}.nfts-pagination[hidden]{display:none}.nfts-pagination button{width:38px;height:38px;border:1px solid var(--dark-line);background:var(--surface);color:var(--accent);font-size:17px}.nfts-pagination button:disabled{color:#61727c}.nfts-pagination span{color:var(--dark-muted);font-size:13px}.nft-detail-media{width:100%;aspect-ratio:16 / 11;display:grid;place-items:center;overflow:hidden;border-bottom:1px solid var(--dark-line);background:#142934}.nft-detail-media img{width:100%;height:100%;display:block;object-fit:contain}.nft-detail-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;align-items:end;padding:18px 20px 14px}.nft-detail-heading>div{min-width:0}.nft-detail-heading span{color:var(--accent);font-size:11px;font-weight:700}.nft-detail-heading h1{overflow-wrap:anywhere;margin:4px 0 0;font-size:23px}.nft-detail-heading>strong{color:#63d18d;font-size:13px;text-align:right}.nft-detail-description{margin:0;padding:0 20px 17px;color:var(--dark-muted);font-size:14px;line-height:1.5}.nft-detail-attributes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 20px 18px}.nft-detail-attributes[hidden]{display:none}.nft-detail-attributes>div{min-width:0;display:grid;gap:2px;border:1px solid var(--dark-line);padding:9px;background:var(--surface-raised)}.nft-detail-attributes span{overflow:hidden;color:var(--dark-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.nft-detail-attributes strong{overflow-wrap:anywhere;font-size:13px}.nft-detail-fields{margin:0;border-top:1px solid var(--dark-line)}.nft-detail-fields>div{display:grid;gap:4px;padding:12px 20px;border-bottom:1px solid var(--dark-line)}.nft-detail-fields dt{color:var(--dark-muted);font-size:12px}.nft-detail-fields dd{margin:0;overflow-wrap:anywhere;color:#fff;font:12px/1.45 Consolas,monospace}.nft-detail-actions{padding:18px 20px 0}.nft-provenance{padding:18px 20px 25px}.nft-provenance h2{margin:0 0 11px;font-size:16px}.nft-provenance p{color:var(--dark-muted)}.nft-history-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;border:0;padding:10px 0;border-bottom:1px solid var(--dark-line);background:transparent;color:#fff;text-align:left}.nft-history-row:hover,.nft-history-row:focus-visible{background:var(--surface-raised)}.nft-history-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nft-history-row strong{font-size:13px}.nft-history-row span{color:var(--dark-muted);font-size:12px;text-align:right}.nft-history-row small{grid-column:1 / -1;color:var(--accent);font:11px Consolas,monospace}.activity-screen{background:var(--dark);color:#fff}.activity-screen .wallet-header{background:var(--blue)}.activity-content{height:calc(100% - 72px);overflow-y:auto}.activity-summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:#0f1a22;color:var(--dark-muted);font-size:13px;text-transform:uppercase}.activity-summary strong{color:var(--accent);font-size:13px}.activity-summary>div{display:flex;align-items:center;gap:8px}.activity-summary button{width:30px;height:30px;border:1px solid var(--dark-line);background:transparent;color:var(--accent);font-size:17px}.activity-list{background:var(--surface)}.activity-row{width:100%;min-height:98px;display:grid;grid-template-columns:31px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 17px;border-bottom:1px solid var(--dark-line);border-top:0;border-right:0;border-left:0;background:transparent;color:#fff;text-align:left}.activity-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.activity-marker{width:29px;height:29px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:13px;font-weight:700}.activity-marker.incoming,.activity-status .incoming{color:#63d18d}.activity-marker.outgoing,.activity-status .outgoing{color:#fff}.activity-details,.activity-status{min-width:0;display:grid;gap:2px}.activity-details strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.activity-details span{color:#c1d0d8;font:13px Consolas,monospace}.activity-details small,.activity-status span{color:var(--dark-muted);font-size:13px}.activity-status{max-width:132px;text-align:right}.activity-status strong{font-size:14px;white-space:nowrap}.activity-status .confirmed{color:#63d18d}.activity-status .pending{color:#e9c667}.activity-empty{display:grid;gap:6px;padding:42px 24px;color:var(--dark-muted);font-size:14px;text-align:center}.activity-empty strong{color:#dce8ee;font-size:16px}.activity-error{color:#ffaaa4}.transaction-screen{background:var(--dark);color:#fff}.transaction-screen .wallet-header{background:var(--blue)}.transaction-confirmed{color:#84e7aa}.transaction-pending{color:#f1d27b}.transaction-content{height:calc(100% - 72px);overflow-y:auto;padding-bottom:24px}.transaction-identity{display:grid;gap:13px;padding:18px;border-bottom:1px solid var(--dark-line);background:var(--surface-raised)}.transaction-identity>div{display:grid;gap:7px}.transaction-identity span,.transaction-field span{color:var(--dark-muted);font-size:12px;font-weight:700;text-transform:uppercase}.transaction-identity strong{overflow-wrap:anywhere;color:#fff;font:13px/1.55 Consolas,monospace}.transaction-identity button{min-height:40px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:14px;font-weight:700}.transaction-section{border-top:1px solid var(--dark-line)}.transaction-section h2{margin:0;padding:16px 18px 10px;font-size:16px}.transaction-fields{display:grid}.transaction-field{display:grid;gap:6px;padding:13px 18px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.transaction-field strong{overflow-wrap:anywhere;color:#fff;font-size:15px;font-weight:600;line-height:1.45}.transaction-technical{border-top:1px solid var(--dark-line)}.transaction-technical summary{padding:17px 18px;color:var(--accent);font-size:15px;font-weight:700;cursor:pointer}.technical-field strong{font:12px/1.55 Consolas,monospace;word-break:break-all}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#091a278a}.account-drawer{position:absolute;top:0;right:0;bottom:0;z-index:11;width:338px;display:flex;flex-direction:column;border-left:1px solid var(--dark-line);background:var(--dark);color:#fff;transform:translate(100%);transition:transform .18s ease-out}.account-drawer.open{transform:translate(0)}.drawer-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--dark-line);background:var(--blue);color:#fff}.drawer-header>div{display:grid;gap:2px}.drawer-header strong{font-size:19px}.drawer-header span{color:var(--muted-white);font-size:14px}.drawer-header button{width:34px;height:34px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:23px;line-height:1}.drawer-section{max-height:244px;overflow-y:auto;padding:17px 15px 14px;border-bottom:1px solid var(--dark-line)}.drawer-label{display:block;margin:0 3px 8px;color:var(--dark-muted);font-size:13px;font-weight:700;text-transform:uppercase}.known-address{width:100%;min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:4px;align-items:center;border:1px solid var(--dark-line);padding:4px;background:var(--surface);color:#fff}.known-address+.known-address{margin-top:7px}.known-address.active-address{border-color:var(--accent);background:var(--surface-active)}.address-select{min-width:0;min-height:48px;display:grid;grid-template-columns:36px minmax(0,1fr) 20px;gap:10px;align-items:center;border:0;padding:5px 6px;background:transparent;color:#fff;text-align:left}.rename-address{width:28px;height:34px;border:0;background:transparent;color:var(--accent);font-size:16px}.address-avatar{width:34px;height:34px;display:grid;place-items:center;background:#204f70}.address-avatar img{width:24px;filter:brightness(0) invert(1)}.address-details{min-width:0;display:grid;gap:2px}.address-details strong{font-size:15px}.address-details small{overflow:hidden;color:var(--dark-muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.selected-mark{color:var(--success);font-size:14px;font-weight:700}.drawer-navigation{display:grid;padding:8px 0}.drawer-navigation button{min-height:72px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:10px;align-items:center;border:0;border-bottom:1px solid var(--dark-line);padding:9px 18px;background:transparent;color:#fff;text-align:left}.drawer-navigation button>span:nth-child(2){display:grid;gap:2px}.drawer-navigation strong{font-size:16px}.drawer-navigation small{color:var(--dark-muted);font-size:13px}.menu-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:15px;font-weight:700}.menu-arrow{color:var(--dark-muted);font-size:20px;text-align:right}.drawer-lock{min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;margin:auto 15px 15px;border:1px solid var(--dark-line);background:var(--surface-raised);color:#dce8ee;font-size:14px;font-weight:700}.header-back{width:34px;height:34px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:18px}.settings-screen{background:var(--dark);color:#fff}.settings-screen .wallet-header{background:var(--blue);color:#fff}.settings-content{height:calc(100% - 72px);overflow-y:auto;padding-bottom:20px}.settings-group{padding:18px 20px;border-bottom:1px solid var(--dark-line);background:var(--surface)}.settings-heading{display:grid;gap:3px;margin-bottom:15px}.settings-heading strong{font-size:13px}.settings-heading span{color:var(--dark-muted);font-size:12px;line-height:1.4}.settings-group label{color:#b7c6ce;font-size:12px;text-transform:uppercase}.settings-group input,.settings-group select{width:100%;height:44px;border:1px solid #8699a5;padding:0 11px;background:#fff;color:var(--ink);outline:0}.settings-group input:focus,.settings-group select:focus{border-color:var(--blue);outline:2px solid rgb(33 103 165 / 14%)}.settings-save{width:calc(100% - 40px);margin:16px 20px;border-color:var(--accent);background:var(--accent);color:#08202b}.backup-settings{padding-right:0;padding-left:0}.backup-settings .settings-heading{padding:0 20px}.settings-action{width:100%;min-height:61px;display:grid;grid-template-columns:34px minmax(0,1fr) 16px;gap:10px;align-items:center;border:0;border-top:1px solid var(--dark-line);padding:9px 20px;background:transparent;color:#fff;text-align:left}.settings-action:last-child{border-bottom:1px solid var(--dark-line)}.settings-action>span:nth-child(2){display:grid;gap:2px}.settings-action strong{font-size:14px}.settings-action small{color:var(--dark-muted);font-size:11px}.settings-action>span:last-child{color:var(--dark-muted);font-size:20px}.settings-action-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid #607987;color:var(--accent);font-size:15px;font-weight:700}.private-key-result{margin:16px 20px 0;border:1px solid var(--dark-line);padding:13px;background:var(--surface-raised)}.private-key-result>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.private-key-result>div>strong{font-size:11px;text-transform:uppercase}.private-key-result>div>button{width:28px;height:28px;border:0;background:transparent;color:var(--dark-muted);font-size:19px}.private-key-result textarea{height:95px;min-height:95px;margin:0 0 10px;border:1px solid #8699a5;padding:9px;background:#fff;color:var(--ink);font-size:11px}.private-key-result .secondary{border-color:var(--accent);color:var(--accent)}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:#091a27ad}.backup-key-modal{position:absolute;top:50%;right:20px;left:20px;z-index:31;border:1px solid white;background:var(--blue);color:#fff;transform:translateY(-50%)}.backup-key-modal>header{min-height:65px;display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid rgb(255 255 255 / 40%)}.backup-key-modal>header>div{display:grid;gap:2px}.backup-key-modal>header strong{font-size:13px}.backup-key-modal>header span{color:var(--muted-white);font-size:11px}.backup-key-modal>header button{width:30px;height:30px;border:1px solid rgb(255 255 255 / 45%);background:transparent;color:#fff;font-size:20px}.backup-key-modal>div{padding:17px 15px}.backup-key-modal .primary{margin-top:16px}#notice{position:absolute;right:18px;bottom:14px;left:18px;z-index:40;margin:0;padding:10px 12px;border:1px solid #8d4448;border-left:3px solid #ff7168;background:#321c20;color:#ffc0bb;font-size:11px}#notice:empty{display:none}.provider-approval-screen{display:flex;flex-direction:column}.provider-approval-screen .screen-content{min-height:0;flex:1;overflow-y:auto;padding-bottom:18px}.approval-context{display:flex;align-items:center;justify-content:space-between;gap:12px}.approval-context .eyebrow{min-width:0;overflow-wrap:anywhere}.risk-label{flex:0 0 auto;padding:5px 8px;border:1px solid currentColor;font-size:11px;font-weight:700;text-transform:uppercase}.risk-safe{background:#123b2d;color:#63e5a9}.risk-low{background:#403612;color:#ffe16c}.risk-high{background:#481f24;color:#ff8b8b}.approval-details{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.4fr);margin:20px 0;border:1px solid #315466;background:#091923}.approval-details dt,.approval-details dd{min-width:0;margin:0;padding:11px 12px;border-bottom:1px solid #203d4c;overflow-wrap:anywhere}.approval-details dt{color:#85dce8;font-size:12px;font-weight:700;text-transform:capitalize}.approval-details dd{color:#f5f9fb;font:13px/1.45 Arial,Helvetica,sans-serif;white-space:pre-wrap}.approval-details dt:last-of-type,.approval-details dd:last-of-type{border-bottom:0}.approval-actions{display:grid;flex:0 0 auto;grid-template-columns:1fr 1fr;gap:10px;padding:14px 24px 18px;border-top:1px solid rgb(255 255 255 / 35%);background:var(--blue-deep)}.approval-actions button{min-height:48px;margin:0}.approval-actions button.is-processing:before{width:15px;height:15px;content:"";border:2px solid currentcolor;border-right-color:transparent;border-radius:50%;animation:approval-spin .7s linear infinite}.approval-actions button:disabled{opacity:.72}@keyframes approval-spin{to{transform:rotate(360deg)}}.network-choice{display:grid;grid-template-columns:1fr 1fr;width:100%;margin:0 0 18px;border:1px solid #5b8caf;background:#0a1b27}.network-choice button{min-height:42px;border:0;border-right:1px solid #315466;background:transparent;color:#b9cfdb;font:700 13px/1 Arial,Helvetica,sans-serif}.network-choice button:last-child{border-right:0}.network-choice button.active{background:#43d6e8;color:#06151e}.drawer-network{margin:8px 0 0}.settings-help{display:block;margin-top:8px;color:#a9c2cf;font-size:12px;line-height:1.45} diff --git a/extension/dist/firefox/assets/print-DTb91-bp.css b/extension/dist/firefox/assets/print-DTb91-bp.css new file mode 100644 index 0000000..b6c42aa --- /dev/null +++ b/extension/dist/firefox/assets/print-DTb91-bp.css @@ -0,0 +1 @@ +*{box-sizing:border-box}body{max-width:760px;margin:0 auto;padding:34px;color:#111820;font:14px/1.45 Arial,Helvetica,sans-serif}header{display:flex;align-items:center;gap:15px;padding-bottom:18px;border-bottom:3px solid #2167a5}header img{width:58px}h1{margin:0;font-size:24px}header p{margin:2px 0 0;color:#5c6972}.warning{margin:22px 0;border:2px solid #9b1c1c;padding:12px;color:#7a1111;font-weight:700}section{margin-top:18px}h2{margin:0 0 7px;color:#42515b;font-size:12px;text-transform:uppercase}pre{margin:0;overflow-wrap:anywhere;white-space:pre-wrap;border:1px solid #aebac2;padding:11px;font:10px/1.35 Consolas,monospace}.print-error{color:#9b1c1c;font-weight:700}@media print{body{max-width:none;padding:0}} diff --git a/extension/dist/firefox/background.js b/extension/dist/firefox/background.js new file mode 100644 index 0000000..79b546a --- /dev/null +++ b/extension/dist/firefox/background.js @@ -0,0 +1,3 @@ +import{c as St}from"./chunks/core-D2IK1U91.js";const z="contractlessWallet",F="contractlessWallets",B="contractlessSettings",V="contractlessAutoLock",x="contractlessUnlockedWallet",M="contractlessApplicationSessions",pt=12e4,At=10,ot={testnetApiUrl:"https://api.contractless.dev",autoLockMinutes:60};let s;const q="pending-provider-approvals";async function S(){const t=(await chrome.storage.local.get(B))[B]??{},r=t.selectedNetwork==="mainnet"?"mainnet":"testnet",a=t.testnetApiUrl??t.apiUrl??ot.testnetApiUrl,l=t.mainnetApiUrl??"";return{selectedNetwork:r,testnetApiUrl:a,mainnetApiUrl:l,apiUrl:r==="mainnet"?l:a,autoLockMinutes:t.autoLockMinutes??ot.autoLockMinutes}}function y(e){if(!e.apiUrl)throw new Error(`No ${e.selectedNetwork} API is configured.`);return e.apiUrl}function ut(e){if(e.endsWith(".cltc"))return"testnet";if(e.endsWith(".clc"))return"mainnet";throw new Error("The wallet address does not identify a supported Contractless network.")}function ht(e){const t=JSON.parse(e);if(typeof t.short_address!="string"||typeof t.public_key!="string")throw new Error("The encrypted wallet metadata is invalid.");return{address:t.short_address,publicKey:t.public_key,network:ut(t.short_address)}}async function C(){const e=await chrome.storage.local.get([F,z]),t=e[F];if((t==null?void 0:t.version)===2&&Array.isArray(t.wallets))return t;if((t==null?void 0:t.version)===1&&Array.isArray(t.wallets)){const f=t,v=f.wallets.map(b=>({...b,network:ut(b.address)})),m=v.find(b=>b.id===f.activeWalletId),A={version:2,activeWalletIds:m?{[m.network]:m.id}:{},wallets:v};return await L(A),A}const r=e[z];if(typeof r!="string")return{version:2,activeWalletIds:{},wallets:[]};const a=ht(r),l={id:crypto.randomUUID(),label:"Contractless Account 1",address:a.address,publicKey:a.publicKey,walletJson:r,network:a.network},d={version:2,activeWalletIds:{[a.network]:l.id},wallets:[l]};return await chrome.storage.local.set({[F]:d}),await chrome.storage.local.remove(z),d}async function L(e){await chrome.storage.local.set({[F]:e})}function O(e,t){const r=e.wallets.filter(a=>a.network===t);return r.find(a=>a.id===e.activeWalletIds[t])??r[0]}async function R(e){const t=await C(),r=ht(e),a=t.wallets.find(d=>d.address===r.address);if(a)return a.walletJson=e,a.publicKey=r.publicKey,t.activeWalletIds[r.network]=a.id,await L(t),a;const l={id:crypto.randomUUID(),label:`Contractless Account ${t.wallets.filter(d=>d.network===r.network).length+1}`,address:r.address,publicKey:r.publicKey,walletJson:e,network:r.network};return t.wallets.push(l),t.activeWalletIds[r.network]=l.id,await L(t),l}async function E(){await gt();const e=await C(),t=await S(),r=O(e,t.selectedNetwork),a=e.wallets.filter(l=>l.network===t.selectedNetwork);return{exists:a.length>0,unlocked:!!(s&&s.walletId===(r==null?void 0:r.id)&&s.network===t.selectedNetwork),activeWalletId:r==null?void 0:r.id,activeWalletLabel:r==null?void 0:r.label,address:s==null?void 0:s.short_address,publicKey:s==null?void 0:s.public_key,wallets:a.map(l=>({id:l.id,label:l.label,address:l.address,publicKey:l.publicKey,network:l.network,active:l.id===(r==null?void 0:r.id)})),selectedNetwork:t.selectedNetwork,networkName:t.selectedNetwork==="testnet"?"Testnet":"Mainnet",networkSymbol:t.selectedNetwork==="testnet"?"CLTC":"CLC",testnetApiUrl:t.testnetApiUrl,mainnetApiUrl:t.mainnetApiUrl,apiUrl:t.apiUrl,autoLockMinutes:t.autoLockMinutes}}async function T(){if(!s)return;const e=await S();s.expiresAt=Date.now()+e.autoLockMinutes*6e4,await chrome.storage.session.set({[x]:s}),await chrome.alarms.clear(V),await chrome.alarms.create(V,{when:s.expiresAt})}function Tt(e,t){const r=new Uint8Array(e);let a="";const l=32768;for(let d=0;d{});if(!d.ok||(f==null?void 0:f.success)!==!0)throw new Error((f==null?void 0:f.error)??`Wallet registration failed with HTTP ${d.status}.`);return f.data}async function Et(e,t){var f;const r=await S();if(!r.apiUrl)return;const a=e.create_handshake_proof(t.public_key,t.private_key),l=await fetch(`${y(r)}/api/v1/addresses/registration?address=${encodeURIComponent(t.short_address)}`,{headers:{"X-Contractless-Address":t.short_address,"X-Contractless-Public-Key":t.public_key,"X-Contractless-Signature":a}}),d=await l.json().catch(()=>{});if(!l.ok||(d==null?void 0:d.success)!==!0)throw new Error((d==null?void 0:d.error)??`Wallet registration lookup failed with HTTP ${l.status}.`);((f=d.data)==null?void 0:f.registered)!==!0&&await G(e,t)}async function gt(){const e=await S();if(s){if(s.expiresAt>Date.now()&&s.network===e.selectedNetwork)return;await D();return}const r=(await chrome.storage.session.get(x))[x];if(!r||r.expiresAt<=Date.now()){await chrome.storage.session.remove(x);return}if(r.network!==e.selectedNetwork){await chrome.storage.session.remove(x),await Q();return}r.sessionId||(r.sessionId=crypto.randomUUID(),await Q(),await chrome.storage.session.set({[x]:r})),s=r}async function D(){s&&(s.private_key="",s=void 0),await chrome.storage.session.remove([x,M]),await chrome.alarms.clear(V)}async function et(){const t=(await chrome.storage.session.get(M))[M];return Array.isArray(t)?t:[]}async function ft(e){await chrome.storage.session.set({[M]:e})}async function Q(){await chrome.storage.session.remove(M)}function Nt(e){const t=crypto.getRandomValues(new Uint8Array(e));return Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}async function It(e){const t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(t),r=>r.toString(16).padStart(2,"0")).join("")}function J(e){return!e.params||typeof e.params!="object"?{}:e.params}function P(e){const t=String(e??"").trim();if(!/^[A-Za-z0-9_-]{5,32}$/.test(t))throw new Error("The application ID must contain 5 to 32 URL-safe characters.");return t}function rt(e,t){if(String(e.origin??"")!==t)throw new Error("The application origin does not match the requesting website.")}function _t(e){const t=Number(e),r=Math.floor(Date.now()/1e3);if(!Number.isInteger(t)||Math.abs(r-t)>300)throw new Error("The application connection timestamp must be within five minutes.");return t}function mt(e){const t=String(e??"").trim().toLowerCase();if(!/^[0-9a-f]{32,128}$/.test(t)||t.length%2!==0)throw new Error("The application nonce must contain 16 to 64 random hexadecimal bytes.");return t}function kt(e){const t=String(e??"").trim();if(!t||new TextEncoder().encode(t).length>75)throw new Error("The application connection message must contain 1 to 75 bytes.");return t}function yt(e){const t=String(e??"").trim();if(!t||new TextEncoder().encode(t).length>75)throw new Error("A signed website message must contain 1 to 75 bytes.");return t}function it(e,t){if(e==="contractless_connect"||e==="contractless_signMessage")return"safe";const r=t.transaction;if(!r||typeof r!="object")return"high";const a=Number(r.txtype);return Number.isInteger(a)&&a>=100&&a<=113?"low":"high"}function vt(e){if(!e||typeof e!="object")throw new Error("A complete transaction object is required.");const t=e,r=Number(t.txtype);if(!Number.isInteger(r))throw new Error("The transaction type is invalid.");if(r===6||r===7)throw new Error("Swaps and loan creation require a staged signing workflow.");return t}function Z(e){if(!e||typeof e!="object")throw new Error("A complete or partially signed transaction object is required.");const t=e,r=t.unsigned_swap??t.unsigned_loan_contract??t;if(!r||typeof r!="object")throw new Error("The unsigned transaction fields are missing.");const a=Number(r.txtype);if(a!==6&&a!==7)throw new Error("Staged signing is only available for swaps and loan creation.");return t}async function ct(e,t){var b;if(!s)throw new Error("Wallet is locked.");const r=t.unsigned_swap??t.unsigned_loan_contract??t;if(!r||typeof r!="object")return;const a=r,l=Number(a.txtype),d=l===2?[["Receiving",String(a.receiver??"")]]:l===6?[["First swap participant",String(a.sender1??"")],["Second swap participant",String(a.sender2??"")]]:l===7?[["Lender",String(a.lender??"")],["Borrower",String(a.borrower??"")]]:[];if(d.length===0)return;e.inspect_transaction_request(JSON.stringify(t));const f=await S(),v=e.create_handshake_proof(s.public_key,s.private_key),m={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":v},A=new Map;for(const[W,K]of d){const N=K.trim().toLowerCase();let I=A.get(N);if(I===void 0){const $=await fetch(`${y(f)}/api/v1/addresses/registration?address=${encodeURIComponent(N)}`,{headers:m}),n=await $.json().catch(()=>{});if(!$.ok||(n==null?void 0:n.success)!==!0)throw new Error((n==null?void 0:n.error)??`Address registration lookup failed with HTTP ${$.status}.`);I=((b=n.data)==null?void 0:b.registered)===!0,A.set(N,I)}if(!I)throw new Error(`${W} wallet is not registered.`)}}async function bt(e,t){if(t.complete!==!0||typeof t.bytes_hex!="string"||typeof t.hash!="string")throw new Error("The transaction could not be completed.");if(!s)throw new Error("Wallet is locked.");const r=await S(),a=e.create_handshake_proof(s.public_key,s.private_key),l=await fetch(`${y(r)}/api/v1/transactions/broadcast`,{method:"POST",headers:{"Content-Type":"application/json","X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":a},body:JSON.stringify({transaction_hex:t.bytes_hex})}),d=await l.json().catch(()=>{});if(!l.ok||(d==null?void 0:d.success)!==!0)throw new Error((d==null?void 0:d.error)??`Transaction broadcast failed with HTTP ${l.status}.`);return await T(),{txid:t.hash,bytes:t.bytes_hex,broadcast:d.data}}async function U(e,t){if(!s)throw new Error("Wallet is locked.");rt(e,t);const r=P(e.appId),a=String(e.accessKey??""),l=(await et()).find(d=>d.origin===t&&d.appId===r&&d.accessKey===a&&d.walletId===(s==null?void 0:s.walletId)&&d.unlockSessionId===(s==null?void 0:s.sessionId));if(!l)throw new Error("The application session is invalid or has expired. Reconnect the wallet.");return l}async function Y(){const t=(await chrome.storage.session.get(q))[q],r=Array.isArray(t)?t.filter(m=>typeof m=="string"&&m.length>0):typeof t=="string"&&t.length>0?[t]:[];if(r.length===0)return[];const a=r.map(m=>`approval:${m}`),l=await chrome.storage.session.get(a),d=Date.now(),f=[],v=[];for(const m of r){const A=`approval:${m}`,b=l[A];!b||d-b.createdAt>=pt?v.push(A):f.push(m)}return(v.length>0||f.length!==r.length)&&(await chrome.storage.session.set({[q]:f}),v.length>0&&await chrome.storage.session.remove(v)),f}async function tt(e){const t=(await Y()).filter(r=>r!==e);return await chrome.storage.session.set({[q]:t}),t}async function lt(e){const t=await Y(),r=await chrome.storage.session.get(t.map(l=>`approval:${l}`));if(e.method==="contractless_connect"&&t.some(l=>{const d=r[`approval:${l}`];if(!d||d.method!=="contractless_connect")return!1;const f=J(d),v=J(e);return d.origin===e.origin&&f.appId===v.appId}))throw new Error("This application already has a wallet connection request pending.");if(t.length>=At)throw new Error("The wallet approval queue is full. Resolve a pending request first.");await chrome.storage.session.set({[q]:[...t,e.id],[`approval:${e.id}`]:e});try{await chrome.action.openPopup()}catch{}}async function dt(e){const t=`approval-result:${e}`,r=Date.now()+pt;for(;Date.now()setTimeout(l,150))}throw await chrome.storage.session.remove([`approval:${e}`,t]),await tt(e),new Error("Wallet approval request expired.")}function $t(e){const t=e.url??e.origin;if(!t)throw new Error("The requesting website origin is unavailable.");const r=new URL(t).origin;if(r==="null")throw new Error("Requests from opaque origins are not supported.");return r}async function wt(e,t){if(!s)throw new Error("Wallet is locked.");switch(await T(),t.method){case"contractless_connect":{const r=J(t);rt(r,t.origin);const a=String(r.walletSessionId??"");if(a&&a!==s.sessionId)throw new Error("The active wallet changed while the connection was being approved.");const l=P(r.appId),d=_t(r.timestamp),f=mt(r.nonce),v=kt(r.message),m=Nt(32),A=await It(m),b=Math.floor(Date.now()/1e3),W=Math.min(b+900,Math.floor(s.expiresAt/1e3)),K=["Contractless application connection",`Application ID: ${l}`,`Origin: ${t.origin}`,`Requested timestamp: ${d}`,`Message: ${v}`,`Session key hash: ${A}`].join(` +`),N=JSON.parse(e.sign_message_request(JSON.stringify({origin:t.origin,message:K,nonce:f,issued_at:b,expires_at:W}),s.private_key,s.public_key)),I={origin:t.origin,appId:l,accessKey:m,walletId:s.walletId,unlockSessionId:s.sessionId,createdAt:Date.now()},$=await et();return $.push(I),await ft($),{address:s.short_address,publicKey:s.public_key,signature:N.signature,proof:N,accessKey:m,appId:l,origin:t.origin,sessionExpiresAt:s.expiresAt}}case"contractless_signMessage":{const r=J(t);await U(r,t.origin);const a=Math.floor(Date.now()/1e3),l=Number(r.expires_at??a+300),d=P(r.appId),f={origin:t.origin,message:["Contractless application message",`Application ID: ${d}`,`Message: ${yt(r.message)}`].join(` +`),nonce:String(r.nonce??""),issued_at:a,expires_at:l};return JSON.parse(e.sign_message_request(JSON.stringify(f),s.private_key,s.public_key))}case"contractless_sendTransaction":{const r=J(t);await U(r,t.origin);const a=vt(r.transaction),l=JSON.parse(e.sign_transaction_request(JSON.stringify(a),s.private_key,s.public_key,1));return bt(e,l)}case"contractless_signDualTransaction":{const r=J(t);await U(r,t.origin);const a=Z(r.transaction),l=Number(r.signerSlot);if(l!==1&&l!==2)throw new Error("The signer slot must be 1 or 2.");const d=JSON.parse(e.sign_transaction_request(JSON.stringify(a),s.private_key,s.public_key,l));return{complete:!1,txid:d.hash,unsignedBytes:d.unsigned_bytes_hex,canonicalUnsignedJson:JSON.parse(e.inspect_transaction_request(JSON.stringify(a))).canonical_unsigned_json,signedTransaction:d.signed_transaction,signature:l===1?d.signature1:d.signature2,signature1:d.signature1,signature2:d.signature2,signerSlot:l,signerPublicKey:s.public_key}}default:throw new Error("The website requested an unsupported wallet method.")}}async function Ct(e,t){var l,d,f,v,m,A,b,W,K,N,I,$;const r=await S();if(e.type==="switch-network"){const n=e.network==="mainnet"?"mainnet":"testnet";await D();const i={...r,selectedNetwork:n,apiUrl:n==="mainnet"?r.mainnetApiUrl:r.testnetApiUrl};return await chrome.storage.local.set({[B]:i}),E()}const a=await St(r.selectedNetwork);switch(await gt(),e.type){case"status":return E();case"create-wallet":{const n=String(e.password),i=a.generate_browser_wallet(n),o=JSON.parse(a.unlock_browser_wallet(i,n)),u=await R(i);if(await j({walletId:u.id,network:r.selectedNetwork,...o}),r.apiUrl)try{await G(a,o)}catch(c){console.warn("Automatic wallet registration failed during creation.",c)}return E()}case"import-wallet":{const n=a.import_legacy_wallet(String(e.walletJson),String(e.legacyPassword),String(e.password)),i=await R(n),o=JSON.parse(a.unlock_browser_wallet(n,String(e.password)));return await j({walletId:i.id,network:r.selectedNetwork,...o}),E()}case"import-wallet-image":{const n=String(e.password),i=a.import_private_key_image(String(e.imageBase64),String(e.imagePassword),n),o=await R(i),u=JSON.parse(a.unlock_browser_wallet(i,n));return await j({walletId:o.id,network:r.selectedNetwork,...u}),E()}case"import-private-key":{const n=String(e.password),i=a.import_private_key(String(e.privateKey),n),o=await R(i),u=JSON.parse(a.unlock_browser_wallet(i,n));return await j({walletId:o.id,network:r.selectedNetwork,...u}),E()}case"unlock":{const n=await C(),i=O(n,r.selectedNetwork);if(!i)throw new Error("No wallet exists.");const o=JSON.parse(a.unlock_browser_wallet(i.walletJson,String(e.password)));await j({walletId:i.id,network:r.selectedNetwork,...o});try{await Et(a,o)}catch(u){console.warn("Automatic wallet registration failed during unlock.",u)}return E()}case"switch-wallet":{const n=await C(),i=String(e.walletId),o=n.wallets.find(u=>u.id===i);if(!o||o.network!==r.selectedNetwork)throw new Error("The selected wallet does not exist.");return await D(),n.activeWalletIds[r.selectedNetwork]=i,await L(n),E()}case"rename-wallet":{const n=await C(),i=n.wallets.find(u=>u.id===String(e.walletId));if(!i)throw new Error("The selected wallet does not exist.");const o=String(e.label).trim();if(o.length<1||o.length>40)throw new Error("Wallet labels must contain between 1 and 40 characters.");return i.label=o,await L(n),E()}case"lock":return await D(),E();case"save-settings":{const n=String(e.testnetApiUrl??r.testnetApiUrl).replace(/\/+$/,""),i=String(e.mainnetApiUrl??r.mainnetApiUrl).replace(/\/+$/,""),o={selectedNetwork:r.selectedNetwork,testnetApiUrl:n,mainnetApiUrl:i,apiUrl:r.selectedNetwork==="mainnet"?i:n,autoLockMinutes:Math.max(1,Number(e.autoLockMinutes))};return await chrome.storage.local.set({[B]:o}),await T(),E()}case"register-wallet":{if(!s)throw new Error("Wallet is locked.");const n=await G(a,s);return await T(),n}case"wallet-balances":{if(!s)throw new Error("Wallet is locked.");const n=await S(),i=a.create_handshake_proof(s.public_key,s.private_key),o={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i},u=encodeURIComponent(s.short_address),[c,h,p]=await Promise.all([fetch(`${y(n)}/api/v1/balances?address=${u}`,{headers:o}),fetch(`${y(n)}/api/v1/tokens`,{headers:o}),fetch(`${y(n)}/api/v1/nfts`,{headers:o})]),[w,_,g]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{}),p.json().catch(()=>{})]);if(!c.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Balance lookup failed with HTTP ${c.status}.`);return await T(),{address:s.short_address,balances:((l=w.data)==null?void 0:l.balances)??[],tokens:h.ok&&(_==null?void 0:_.success)===!0?((d=_.data)==null?void 0:d.tokens)??[]:[],nfts:p.ok&&(g==null?void 0:g.success)===!0?((f=g.data)==null?void 0:f.nfts)??[]:[],tokenCatalogError:h.ok&&(_==null?void 0:_.success)===!0?void 0:(_==null?void 0:_.error)??`Token lookup failed with HTTP ${h.status}.`,nftCatalogError:p.ok&&(g==null?void 0:g.success)===!0?void 0:(g==null?void 0:g.error)??`NFT lookup failed with HTTP ${p.status}.`}}case"wallet-nft-details":{if(!s)throw new Error("Wallet is locked.");const n=String(e.name??"").trim(),i=Number(e.series??0);if(!n||n.length>15||!Number.isInteger(i)||i<0||i>4294967295)throw new Error("A valid NFT or RWA identifier is required.");const o=await S(),u=a.create_handshake_proof(s.public_key,s.private_key),c={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":u},h=`name=${encodeURIComponent(n)}&series=${i}`,[p,w]=await Promise.all([fetch(`${y(o)}/api/v1/nfts/details?${h}`,{headers:c}),fetch(`${y(o)}/api/v1/nfts/media?${h}`,{headers:c})]),[_,g]=await Promise.all([p.json().catch(()=>{}),w.json().catch(()=>{})]);if(!p.ok||(_==null?void 0:_.success)!==!0)throw new Error((_==null?void 0:_.error)??`NFT details lookup failed with HTTP ${p.status}.`);let k="",st=!1,at={},X;if(w.ok&&(g==null?void 0:g.success)===!0){at=(v=g.data)!=null&&v.metadata&&typeof g.data.metadata=="object"?g.data.metadata:{},st=((m=g.data)==null?void 0:m.image_available)===!0;const nt=String(((A=g.data)==null?void 0:A.image_url)??"");if(nt)try{const H=await fetch(new URL(nt,`${y(o)}/`).toString(),{headers:c});H.ok?k=Tt(await H.arrayBuffer(),H.headers.get("Content-Type")??"image/png"):X=`NFT image returned HTTP ${H.status}.`}catch{X="NFT image could not be retrieved."}}else X=(g==null?void 0:g.error)??`NFT media lookup failed with HTTP ${w.status}.`;return await T(),{..._.data,metadata:at,image_data_url:k,image_available:st,media_error:X}}case"wallet-receive-address":{if(!s)throw new Error("Wallet is locked.");const n=await S(),i=a.create_handshake_proof(s.public_key,s.private_key),o=encodeURIComponent(s.short_address),u=await fetch(`${y(n)}/api/v1/addresses/vanity?address=${o}`,{headers:{"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i}}),c=await u.json().catch(()=>{});if(!u.ok||(c==null?void 0:c.success)!==!0)throw new Error((c==null?void 0:c.error)??`Vanity address lookup failed with HTTP ${u.status}.`);await T();const h=typeof((b=c.data)==null?void 0:b.vanity_address)=="string"&&c.data.vanity_address.trim()!==""?c.data.vanity_address:void 0;return{shortAddress:s.short_address,receiveAddress:h??s.short_address,vanity:!!h}}case"wallet-prepare-transfer":{if(!s)throw new Error("Wallet is locked.");const n=await S(),i=a.create_handshake_proof(s.public_key,s.private_key),o={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i},u=String(e.receiver??"").trim().toLowerCase(),c=s.short_address.endsWith(".cltc")?"cltc":"clc";let h=u;if(new RegExp(`^[0-9a-f]{40}\\.${c}$`).test(u)){const g=await fetch(`${y(n)}/api/v1/addresses/registration?address=${encodeURIComponent(h)}`,{headers:o}),k=await g.json().catch(()=>{});if(!g.ok||(k==null?void 0:k.success)!==!0)throw new Error((k==null?void 0:k.error)??`Address lookup failed with HTTP ${g.status}.`);if(((K=k.data)==null?void 0:K.registered)!==!0)throw new Error("The receiving wallet is not registered.")}else{if(!new RegExp(`^[a-z]{1,20}\\.${c}$`).test(u))throw new Error(`Enter a valid Contractless ${c.toUpperCase()} address.`);const g=await fetch(`${y(n)}/api/v1/addresses/vanity/resolve?address=${encodeURIComponent(u)}`,{headers:o}),k=await g.json().catch(()=>{});if(!g.ok||(k==null?void 0:k.success)!==!0)throw new Error((k==null?void 0:k.error)??`Vanity address lookup failed with HTTP ${g.status}.`);if(h=String(((W=k.data)==null?void 0:W.owner_address)??""),!h)throw new Error("That vanity address is not registered.")}const p=Number(e.nftSeries??0);if(!Number.isInteger(p)||p<0||p>4294967295)throw new Error("The NFT/RWA series number is invalid.");const w={txtype:2,time:Math.floor(Date.now()/1e3),value:String(e.valueAtomic??""),coin:String(e.asset??"").trim().padEnd(15," "),nft_series:p,sender:s.short_address,receiver:h,txfee:String(e.feeAtomic??"")},_=JSON.parse(a.inspect_transaction_request(JSON.stringify(w)));return await T(),{transaction:w,review:_.review,hash:_.hash,receiverInput:u}}case"wallet-broadcast-transfer":{if(!s)throw new Error("Wallet is locked.");const n=e.transaction;if(!n||typeof n!="object")throw new Error("The reviewed transfer is unavailable.");const i=JSON.parse(a.sign_transaction_request(JSON.stringify(n),s.private_key,s.public_key,1));return bt(a,i)}case"wallet-activity":{if(!s)throw new Error("Wallet is locked.");const n=await S(),i=a.create_handshake_proof(s.public_key,s.private_key),o=encodeURIComponent(s.short_address),u={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":i},[c,h]=await Promise.all([fetch(`${y(n)}/api/v1/addresses/latest?address=${o}&limit=25`,{headers:u}),fetch(`${y(n)}/api/v1/height`,{headers:u})]),[p,w]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{})]);if(!c.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Activity lookup failed with HTTP ${c.status}.`);if(!h.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Block height lookup failed with HTTP ${h.status}.`);return await T(),{address:s.short_address,current_height:Number(((N=w.data)==null?void 0:N.height)??0),transactions:Array.isArray((I=p.data)==null?void 0:I.transactions)?p.data.transactions:[]}}case"wallet-transaction":{if(!s)throw new Error("Wallet is locked.");const n=String(e.txid);if(!/^[0-9a-f]{64}$/i.test(n))throw new Error("A valid transaction ID is required.");const i=await S(),o=a.create_handshake_proof(s.public_key,s.private_key),u={"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":o},[c,h]=await Promise.all([fetch(`${y(i)}/api/v1/transactions/lookup?txid=${encodeURIComponent(n)}`,{headers:u}),fetch(`${y(i)}/api/v1/height`,{headers:u})]),[p,w]=await Promise.all([c.json().catch(()=>{}),h.json().catch(()=>{})]);if(!c.ok||(p==null?void 0:p.success)!==!0)throw new Error((p==null?void 0:p.error)??`Transaction lookup failed with HTTP ${c.status}.`);if(!h.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Block height lookup failed with HTTP ${h.status}.`);return await T(),{...p.data,current_height:Number((($=w.data)==null?void 0:$.height)??0)}}case"export-wallet":{const n=O(await C(),r.selectedNetwork);if(!n)throw new Error("No wallet exists.");return n.walletJson}case"export-legacy-wallet":{const n=O(await C(),r.selectedNetwork);if(!n)throw new Error("No wallet exists.");return a.export_legacy_wallet(n.walletJson,String(e.password),String(e.legacyPassword))}case"export-private-key-image":{const n=O(await C(),r.selectedNetwork);if(!n)throw new Error("No wallet exists.");const i=JSON.parse(a.export_legacy_wallet(n.walletJson,String(e.password),String(e.imagePassword)));if(typeof i.private_key!="string")throw new Error("The wallet image could not be created.");return i.private_key}case"reveal-private-key":{const n=O(await C(),r.selectedNetwork);if(!n)throw new Error("No wallet exists.");const i=JSON.parse(a.unlock_browser_wallet(n.walletJson,String(e.password)));if(typeof i.private_key!="string")throw new Error("The private key could not be decrypted.");return await T(),{label:n.label,address:n.address,privateKey:i.private_key}}case"provider-request":{const n=$t(t),i=String(e.method),o=e.params&&typeof e.params=="object"?e.params:{};if(i==="contractless_detect")return{installed:!0,providerVersion:"1.0.0"};if(i==="contractless_connect"){rt(o,n);const c=P(o.appId),h=_t(o.timestamp);mt(o.nonce);const p=kt(o.message),w={id:crypto.randomUUID(),method:i,params:{...o,walletSessionId:s==null?void 0:s.sessionId},origin:n,createdAt:Date.now(),risk:it(i,o),display:{request:"Connect application",application_id:c,website:n,wallet_address:(s==null?void 0:s.short_address)??"Unlock wallet to continue",message:p,requested_timestamp:h,access:"Address access and future wallet requests until this wallet locks"}};if(await lt(w),!await dt(w.id))throw new Error("The wallet connection request was rejected.");return wt(a,w)}if(i==="contractless_accounts")try{return await U(o,n),s?[s.short_address]:[]}catch{return[]}if(i==="contractless_balances"){if(await U(o,n),!s)throw new Error("Wallet is locked.");const c=await S(),h=a.create_handshake_proof(s.public_key,s.private_key),p=await fetch(`${y(c)}/api/v1/balances?address=${encodeURIComponent(s.short_address)}`,{headers:{"X-Contractless-Address":s.short_address,"X-Contractless-Public-Key":s.public_key,"X-Contractless-Signature":h}}),w=await p.json().catch(()=>{});if(!p.ok||(w==null?void 0:w.success)!==!0)throw new Error((w==null?void 0:w.error)??`Balance lookup failed with HTTP ${p.status}.`);return await T(),w.data}if(i==="contractless_disconnect"){const c=await U(o,n),h=(await et()).filter(p=>!(p.origin===c.origin&&p.appId===c.appId&&p.accessKey===c.accessKey));return await ft(h),{disconnected:!0}}if(i==="contractless_completeDualTransaction"){await U(o,n);const c=Z(o.transaction);return JSON.parse(a.complete_dual_transaction_request(JSON.stringify(c),String(o.signature1??""),String(o.publicKey1??""),String(o.signature2??""),String(o.publicKey2??"")))}if(!["contractless_signMessage","contractless_sendTransaction","contractless_signDualTransaction"].includes(i))throw new Error("The website requested an unsupported wallet method.");if(await U(o,n),i==="contractless_sendTransaction"){const c=vt(o.transaction);await ct(a,c)}else if(i==="contractless_signDualTransaction"){const c=Z(o.transaction);await ct(a,c)}const u={id:crypto.randomUUID(),method:i,params:o,origin:n,createdAt:Date.now(),risk:it(i,o),display:i==="contractless_signMessage"?{request:"Sign a text message",application_id:P(o.appId),website:n,message:yt(o.message),warning:"This is a text signature. It cannot move wallet assets."}:i==="contractless_signDualTransaction"?(()=>{const c=JSON.parse(a.inspect_transaction_request(JSON.stringify(o.transaction)));return{application_id:P(o.appId),website:n,transaction_type:c.transaction_name,signer_slot:o.signerSlot,transaction_fields:c.review,action:"Sign and return this signature to the application without broadcasting."}})():(()=>{const c=JSON.parse(a.inspect_transaction_request(JSON.stringify(o.transaction)));return{application_id:P(o.appId),website:n,transaction_type:c.transaction_name,transaction_fields:c.review,action:"Sign and broadcast this transaction."}})()};if(await lt(u),!await dt(u.id))throw new Error("The wallet request was rejected.");return wt(a,u)}case"pending-provider-approval":{const n=await Y(),i=n[0]??"";if(!i)return null;const o=`approval:${i}`,c=(await chrome.storage.session.get(o))[o];return c?s?(c.method==="contractless_connect"&&(c.params={...c.params,walletSessionId:s.sessionId},c.display={...c.display??{},wallet_address:s.short_address},await chrome.storage.session.set({[o]:c})),{locked:!1,request:c,position:1,total:n.length}):{locked:!0}:(await tt(i),null)}case"resolve-provider-approval":{if(!s)throw new Error("Unlock the wallet before approving this request.");const n=String(e.id??""),i=await Y();if(!n||i[0]!==n)throw new Error("The wallet approval request has expired.");const o=`approval:${n}`,c=(await chrome.storage.session.get(o))[o];if(!c)throw new Error("The wallet approval request has expired.");return c.method==="contractless_connect"&&(c.params={...c.params,walletSessionId:s.sessionId},await chrome.storage.session.set({[o]:c})),await chrome.storage.session.set({[`approval-result:${n}`]:{approved:e.approved===!0}}),await chrome.storage.session.remove(o),{resolved:!0,remaining:(await tt(n)).length}}default:throw new Error("Unsupported wallet request.")}}chrome.runtime.onMessage.addListener((e,t,r)=>(Ct(e,t).then(a=>r({ok:!0,result:a})).catch(a=>r({ok:!1,error:a instanceof Error?a.message:String(a)})),!0));chrome.alarms.onAlarm.addListener(e=>{e.name===V&&D()}); diff --git a/extension/dist/firefox/chunks/core-D2IK1U91.js b/extension/dist/firefox/chunks/core-D2IK1U91.js new file mode 100644 index 0000000..ace83d1 --- /dev/null +++ b/extension/dist/firefox/chunks/core-D2IK1U91.js @@ -0,0 +1 @@ +function _e(n){let e,t;try{const i=F(n,o.__wbindgen_malloc),l=w,s=o.bytes_to_short_address(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function re(n,e,t,_,r){let i,l;try{const f=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),A=w,W=u(_,o.__wbindgen_malloc,o.__wbindgen_realloc),$=w,z=u(r,o.__wbindgen_malloc,o.__wbindgen_realloc),G=w,T=o.complete_dual_transaction_request(f,d,m,p,b,A,W,$,z,G);var s=T[0],a=T[1];if(T[3])throw s=0,a=0,x(T[2]);return i=s,l=a,h(s,a)}finally{o.__wbindgen_free(i,l,1)}}function oe(n,e){let t,_;try{const l=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),s=w,a=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=o.create_handshake_proof(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,x(d[2]);return t=r,_=i,h(r,i)}finally{o.__wbindgen_free(t,_,1)}}function ce(n,e){let t,_;try{const l=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),s=w,a=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=o.create_wallet_registration(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,x(d[2]);return t=r,_=i,h(r,i)}finally{o.__wbindgen_free(t,_,1)}}function ie(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.create_wallet_registration_from_keys(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function se(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.decode_transaction(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function le(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.decode_transfer(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function ae(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.export_legacy_wallet(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function de(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.generate_browser_wallet(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function fe(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.import_legacy_wallet(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function be(n,e){let t,_;try{const l=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),s=w,a=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=o.import_private_key(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,x(d[2]);return t=r,_=i,h(r,i)}finally{o.__wbindgen_free(t,_,1)}}function we(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.import_private_key_image(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function ge(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.inspect_transaction_request(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function ue(n){let e,t;try{const i=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=o.public_key_to_short_address(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,x(s[2]);return e=_,t=r,h(_,r)}finally{o.__wbindgen_free(e,t,1)}}function ye(n){const e=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),t=w,_=o.short_address_to_bytes(e,t);if(_[3])throw x(_[2]);var r=Y(_[0],_[1]).slice();return o.__wbindgen_free(_[0],_[1]*1,1),r}function me(n,e,t){let _,r;try{const s=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),d=w,m=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),p=w,b=o.sign_message_request(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,x(b[2]);return _=i,r=l,h(i,l)}finally{o.__wbindgen_free(_,r,1)}}function pe(n,e,t,_){let r,i;try{const a=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),m=w,p=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),b=w,A=o.sign_transaction_request(a,f,d,m,p,b,_);var l=A[0],s=A[1];if(A[3])throw l=0,s=0,x(A[2]);return r=l,i=s,h(l,s)}finally{o.__wbindgen_free(r,i,1)}}function he(n){let e,t;try{const _=F(n,o.__wbindgen_malloc),r=w,i=o.skein_128_hex(_,r);return e=i[0],t=i[1],h(i[0],i[1])}finally{o.__wbindgen_free(e,t,1)}}function ve(n){let e,t;try{const _=F(n,o.__wbindgen_malloc),r=w,i=o.skein_256_hex(_,r);return e=i[0],t=i[1],h(i[0],i[1])}finally{o.__wbindgen_free(e,t,1)}}function xe(n){let e,t;try{const _=F(n,o.__wbindgen_malloc),r=w,i=o.skein_512_hex(_,r);return e=i[0],t=i[1],h(i[0],i[1])}finally{o.__wbindgen_free(e,t,1)}}function ke(){let n,e;try{const r=o.transaction_type_registry();var t=r[0],_=r[1];if(r[3])throw t=0,_=0,x(r[2]);return n=t,e=_,h(t,_)}finally{o.__wbindgen_free(n,e,1)}}function Ae(n,e){let t,_;try{const l=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),s=w,a=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=o.unlock_browser_wallet(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,x(d[2]);return t=r,_=i,h(r,i)}finally{o.__wbindgen_free(t,_,1)}}function $e(n,e,t){const _=F(n,o.__wbindgen_malloc),r=w,i=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=o.verify_bytes_hex(_,r,i,l,s,a);if(f[2])throw x(f[1]);return f[0]!==0}function Te(n,e,t){const _=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),r=w,i=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),l=w,s=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),a=w,f=o.verify_hash_hex(_,r,i,l,s,a);if(f[2])throw x(f[1]);return f[0]!==0}function We(n,e,t,_){let r,i;try{const a=u(n,o.__wbindgen_malloc,o.__wbindgen_realloc),f=w,d=u(e,o.__wbindgen_malloc,o.__wbindgen_realloc),m=w,p=u(t,o.__wbindgen_malloc,o.__wbindgen_realloc),b=w,A=u(_,o.__wbindgen_malloc,o.__wbindgen_realloc),W=w,$=o.verify_message_proof(a,f,d,m,p,b,A,W);var l=$[0],s=$[1];if($[3])throw l=0,s=0,x($[2]);return r=l,i=s,h(l,s)}finally{o.__wbindgen_free(r,i,1)}}function J(){return{__proto__:null,"./contractless_browser_core_bg.js":{__proto__:null,__wbg___wbindgen_is_function_1ff95bcc5517c252:function(e){return typeof e=="function"},__wbg___wbindgen_is_object_a27215656b807791:function(e){const t=e;return typeof t=="object"&&t!==null},__wbg___wbindgen_is_string_ea5e6cc2e4141dfe:function(e){return typeof e=="string"},__wbg___wbindgen_is_undefined_c05833b95a3cf397:function(e){return e===void 0},__wbg___wbindgen_throw_344f42d3211c4765:function(e,t){throw new Error(h(e,t))},__wbg_call_a6e5c5dce5018821:function(){return U(function(e,t,_){return e.call(t,_)},arguments)},__wbg_crypto_38df2bab126b63dc:function(e){return e.crypto},__wbg_getRandomValues_c44a50d8cfdaebeb:function(){return U(function(e,t){e.getRandomValues(t)},arguments)},__wbg_length_1f0964f4a5e2c6d8:function(e){return e.length},__wbg_msCrypto_bd5a034af96bcba6:function(e){return e.msCrypto},__wbg_new_with_length_e6785c33c8e4cce8:function(e){return new Uint8Array(e>>>0)},__wbg_node_84ea875411254db1:function(e){return e.node},__wbg_process_44c7a14e11e9f69e:function(e){return e.process},__wbg_prototypesetcall_4770620bbe4688a0:function(e,t,_){Uint8Array.prototype.set.call(Y(e,t),_)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return U(function(e,t){e.randomFillSync(t)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return U(function(){return module.require},arguments)},__wbg_static_accessor_GLOBAL_4ef717fb391d88b7:function(){const e=typeof global>"u"?null:global;return D(e)?0:q(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){const e=typeof globalThis>"u"?null:globalThis;return D(e)?0:q(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){const e=typeof self>"u"?null:self;return D(e)?0:q(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){const e=typeof window>"u"?null:window;return D(e)?0:q(e)},__wbg_subarray_3ed232c8a6baee09:function(e,t,_){return e.subarray(t>>>0,_>>>0)},__wbg_versions_276b2795b1c6a219:function(e){return e.versions},__wbindgen_cast_0000000000000001:function(e,t){return Y(e,t)},__wbindgen_cast_0000000000000002:function(e,t){return h(e,t)},__wbindgen_init_externref_table:function(){const e=o.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}function q(n){const e=o.__externref_table_alloc();return o.__wbindgen_externrefs.set(e,n),e}function Y(n,e){return n=n>>>0,S().subarray(n/1,n/1+e)}function h(n,e){return Oe(n>>>0,e)}let R=null;function S(){return(R===null||R.byteLength===0)&&(R=new Uint8Array(o.memory.buffer)),R}function U(n,e){try{return n.apply(this,e)}catch(t){const _=q(t);o.__wbindgen_exn_store(_)}}function D(n){return n==null}function F(n,e){const t=e(n.length*1,1)>>>0;return S().set(n,t/1),w=n.length,t}function u(n,e,t){if(t===void 0){const s=j.encode(n),a=e(s.length,1)>>>0;return S().subarray(a,a+s.length).set(s),w=s.length,a}let _=n.length,r=e(_,1)>>>0;const i=S();let l=0;for(;l<_;l++){const s=n.charCodeAt(l);if(s>127)break;i[r+l]=s}if(l!==_){l!==0&&(n=n.slice(l)),r=t(r,_,_=l+n.length*3,1)>>>0;const s=S().subarray(r+l,r+_),a=j.encodeInto(n,s);l+=a.written,r=t(r,_,l,1)>>>0}return w=l,r}function x(n){const e=o.__wbindgen_externrefs.get(n);return o.__externref_table_dealloc(n),e}let N=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});N.decode();const Se=2146435072;let H=0;function Oe(n,e){return H+=e,H>=Se&&(N=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),N.decode(),H=e),N.decode(S().subarray(n,n+e))}const j=new TextEncoder;"encodeInto"in j||(j.encodeInto=function(n,e){const t=j.encode(n);return e.set(t),{read:n.length,written:t.length}});let w=0,o;function K(n,e){return o=n.exports,R=null,o.__wbindgen_start(),o}async function qe(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(r){if(n.ok&&t(n.type)&&n.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}const _=await n.arrayBuffer();return await WebAssembly.instantiate(_,e)}else{const _=await WebAssembly.instantiate(n,e);return _ instanceof WebAssembly.Instance?{instance:_,module:n}:_}function t(_){switch(_){case"basic":case"cors":case"default":return!0}return!1}}function Re(n){if(o!==void 0)return o;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const e=J();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));const t=new WebAssembly.Instance(n,e);return K(t)}async function Q(n){if(o!==void 0)return o;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),n===void 0&&(n=new URL("/assets/contractless_browser_core_bg-Dl61GrlP.wasm",import.meta.url));const e=J();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));const{instance:t,module:_}=await qe(await n,e);return K(t)}const Ee=Object.freeze(Object.defineProperty({__proto__:null,bytes_to_short_address:_e,complete_dual_transaction_request:re,create_handshake_proof:oe,create_wallet_registration:ce,create_wallet_registration_from_keys:ie,decode_transaction:se,decode_transfer:le,default:Q,export_legacy_wallet:ae,generate_browser_wallet:de,import_legacy_wallet:fe,import_private_key:be,import_private_key_image:we,initSync:Re,inspect_transaction_request:ge,public_key_to_short_address:ue,short_address_to_bytes:ye,sign_message_request:me,sign_transaction_request:pe,skein_128_hex:he,skein_256_hex:ve,skein_512_hex:xe,transaction_type_registry:ke,unlock_browser_wallet:Ae,verify_bytes_hex:$e,verify_hash_hex:Te,verify_message_proof:We},Symbol.toStringTag,{value:"Module"}));function Me(n){let e,t;try{const i=I(n,c.__wbindgen_malloc),l=g,s=c.bytes_to_short_address(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function je(n,e,t,_,r){let i,l;try{const f=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),A=g,W=y(_,c.__wbindgen_malloc,c.__wbindgen_realloc),$=g,z=y(r,c.__wbindgen_malloc,c.__wbindgen_realloc),G=g,T=c.complete_dual_transaction_request(f,d,m,p,b,A,W,$,z,G);var s=T[0],a=T[1];if(T[3])throw s=0,a=0,k(T[2]);return i=s,l=a,v(s,a)}finally{c.__wbindgen_free(i,l,1)}}function Le(n,e){let t,_;try{const l=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),s=g,a=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=c.create_handshake_proof(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,k(d[2]);return t=r,_=i,v(r,i)}finally{c.__wbindgen_free(t,_,1)}}function Fe(n,e){let t,_;try{const l=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),s=g,a=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=c.create_wallet_registration(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,k(d[2]);return t=r,_=i,v(r,i)}finally{c.__wbindgen_free(t,_,1)}}function Ie(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.create_wallet_registration_from_keys(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function Ue(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.decode_transaction(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function De(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.decode_transfer(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function Be(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.export_legacy_wallet(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function Ce(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.generate_browser_wallet(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function Pe(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.import_legacy_wallet(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function Ne(n,e){let t,_;try{const l=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),s=g,a=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=c.import_private_key(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,k(d[2]);return t=r,_=i,v(r,i)}finally{c.__wbindgen_free(t,_,1)}}function Ve(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.import_private_key_image(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function ze(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.inspect_transaction_request(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function Ge(n){let e,t;try{const i=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=c.public_key_to_short_address(i,l);var _=s[0],r=s[1];if(s[3])throw _=0,r=0,k(s[2]);return e=_,t=r,v(_,r)}finally{c.__wbindgen_free(e,t,1)}}function He(n){const e=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),t=g,_=c.short_address_to_bytes(e,t);if(_[3])throw k(_[2]);var r=Z(_[0],_[1]).slice();return c.__wbindgen_free(_[0],_[1]*1,1),r}function Xe(n,e,t){let _,r;try{const s=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),d=g,m=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),p=g,b=c.sign_message_request(s,a,f,d,m,p);var i=b[0],l=b[1];if(b[3])throw i=0,l=0,k(b[2]);return _=i,r=l,v(i,l)}finally{c.__wbindgen_free(_,r,1)}}function Ye(n,e,t,_){let r,i;try{const a=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),m=g,p=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),b=g,A=c.sign_transaction_request(a,f,d,m,p,b,_);var l=A[0],s=A[1];if(A[3])throw l=0,s=0,k(A[2]);return r=l,i=s,v(l,s)}finally{c.__wbindgen_free(r,i,1)}}function Ze(n){let e,t;try{const _=I(n,c.__wbindgen_malloc),r=g,i=c.skein_128_hex(_,r);return e=i[0],t=i[1],v(i[0],i[1])}finally{c.__wbindgen_free(e,t,1)}}function Je(n){let e,t;try{const _=I(n,c.__wbindgen_malloc),r=g,i=c.skein_256_hex(_,r);return e=i[0],t=i[1],v(i[0],i[1])}finally{c.__wbindgen_free(e,t,1)}}function Ke(n){let e,t;try{const _=I(n,c.__wbindgen_malloc),r=g,i=c.skein_512_hex(_,r);return e=i[0],t=i[1],v(i[0],i[1])}finally{c.__wbindgen_free(e,t,1)}}function Qe(){let n,e;try{const r=c.transaction_type_registry();var t=r[0],_=r[1];if(r[3])throw t=0,_=0,k(r[2]);return n=t,e=_,v(t,_)}finally{c.__wbindgen_free(n,e,1)}}function en(n,e){let t,_;try{const l=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),s=g,a=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=c.unlock_browser_wallet(l,s,a,f);var r=d[0],i=d[1];if(d[3])throw r=0,i=0,k(d[2]);return t=r,_=i,v(r,i)}finally{c.__wbindgen_free(t,_,1)}}function nn(n,e,t){const _=I(n,c.__wbindgen_malloc),r=g,i=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=c.verify_bytes_hex(_,r,i,l,s,a);if(f[2])throw k(f[1]);return f[0]!==0}function tn(n,e,t){const _=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),r=g,i=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),l=g,s=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),a=g,f=c.verify_hash_hex(_,r,i,l,s,a);if(f[2])throw k(f[1]);return f[0]!==0}function _n(n,e,t,_){let r,i;try{const a=y(n,c.__wbindgen_malloc,c.__wbindgen_realloc),f=g,d=y(e,c.__wbindgen_malloc,c.__wbindgen_realloc),m=g,p=y(t,c.__wbindgen_malloc,c.__wbindgen_realloc),b=g,A=y(_,c.__wbindgen_malloc,c.__wbindgen_realloc),W=g,$=c.verify_message_proof(a,f,d,m,p,b,A,W);var l=$[0],s=$[1];if($[3])throw l=0,s=0,k($[2]);return r=l,i=s,v(l,s)}finally{c.__wbindgen_free(r,i,1)}}function ee(){return{__proto__:null,"./contractless_browser_core_bg.js":{__proto__:null,__wbg___wbindgen_is_function_1ff95bcc5517c252:function(e){return typeof e=="function"},__wbg___wbindgen_is_object_a27215656b807791:function(e){const t=e;return typeof t=="object"&&t!==null},__wbg___wbindgen_is_string_ea5e6cc2e4141dfe:function(e){return typeof e=="string"},__wbg___wbindgen_is_undefined_c05833b95a3cf397:function(e){return e===void 0},__wbg___wbindgen_throw_344f42d3211c4765:function(e,t){throw new Error(v(e,t))},__wbg_call_a6e5c5dce5018821:function(){return B(function(e,t,_){return e.call(t,_)},arguments)},__wbg_crypto_38df2bab126b63dc:function(e){return e.crypto},__wbg_getRandomValues_c44a50d8cfdaebeb:function(){return B(function(e,t){e.getRandomValues(t)},arguments)},__wbg_length_1f0964f4a5e2c6d8:function(e){return e.length},__wbg_msCrypto_bd5a034af96bcba6:function(e){return e.msCrypto},__wbg_new_with_length_e6785c33c8e4cce8:function(e){return new Uint8Array(e>>>0)},__wbg_node_84ea875411254db1:function(e){return e.node},__wbg_process_44c7a14e11e9f69e:function(e){return e.process},__wbg_prototypesetcall_4770620bbe4688a0:function(e,t,_){Uint8Array.prototype.set.call(Z(e,t),_)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return B(function(e,t){e.randomFillSync(t)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return B(function(){return module.require},arguments)},__wbg_static_accessor_GLOBAL_4ef717fb391d88b7:function(){const e=typeof global>"u"?null:global;return C(e)?0:E(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){const e=typeof globalThis>"u"?null:globalThis;return C(e)?0:E(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){const e=typeof self>"u"?null:self;return C(e)?0:E(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){const e=typeof window>"u"?null:window;return C(e)?0:E(e)},__wbg_subarray_3ed232c8a6baee09:function(e,t,_){return e.subarray(t>>>0,_>>>0)},__wbg_versions_276b2795b1c6a219:function(e){return e.versions},__wbindgen_cast_0000000000000001:function(e,t){return Z(e,t)},__wbindgen_cast_0000000000000002:function(e,t){return v(e,t)},__wbindgen_init_externref_table:function(){const e=c.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}function E(n){const e=c.__externref_table_alloc();return c.__wbindgen_externrefs.set(e,n),e}function Z(n,e){return n=n>>>0,O().subarray(n/1,n/1+e)}function v(n,e){return on(n>>>0,e)}let M=null;function O(){return(M===null||M.byteLength===0)&&(M=new Uint8Array(c.memory.buffer)),M}function B(n,e){try{return n.apply(this,e)}catch(t){const _=E(t);c.__wbindgen_exn_store(_)}}function C(n){return n==null}function I(n,e){const t=e(n.length*1,1)>>>0;return O().set(n,t/1),g=n.length,t}function y(n,e,t){if(t===void 0){const s=L.encode(n),a=e(s.length,1)>>>0;return O().subarray(a,a+s.length).set(s),g=s.length,a}let _=n.length,r=e(_,1)>>>0;const i=O();let l=0;for(;l<_;l++){const s=n.charCodeAt(l);if(s>127)break;i[r+l]=s}if(l!==_){l!==0&&(n=n.slice(l)),r=t(r,_,_=l+n.length*3,1)>>>0;const s=O().subarray(r+l,r+_),a=L.encodeInto(n,s);l+=a.written,r=t(r,_,l,1)>>>0}return g=l,r}function k(n){const e=c.__wbindgen_externrefs.get(n);return c.__externref_table_dealloc(n),e}let V=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});V.decode();const rn=2146435072;let X=0;function on(n,e){return X+=e,X>=rn&&(V=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),V.decode(),X=e),V.decode(O().subarray(n,n+e))}const L=new TextEncoder;"encodeInto"in L||(L.encodeInto=function(n,e){const t=L.encode(n);return e.set(t),{read:n.length,written:t.length}});let g=0,c;function ne(n,e){return c=n.exports,M=null,c.__wbindgen_start(),c}async function cn(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(r){if(n.ok&&t(n.type)&&n.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}const _=await n.arrayBuffer();return await WebAssembly.instantiate(_,e)}else{const _=await WebAssembly.instantiate(n,e);return _ instanceof WebAssembly.Instance?{instance:_,module:n}:_}function t(_){switch(_){case"basic":case"cors":case"default":return!0}return!1}}function sn(n){if(c!==void 0)return c;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const e=ee();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));const t=new WebAssembly.Instance(n,e);return ne(t)}async function te(n){if(c!==void 0)return c;n!==void 0&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),n===void 0&&(n=new URL("/assets/contractless_browser_core_bg-CM1Z7v2F.wasm",import.meta.url));const e=ee();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));const{instance:t,module:_}=await cn(await n,e);return ne(t)}const ln=Object.freeze(Object.defineProperty({__proto__:null,bytes_to_short_address:Me,complete_dual_transaction_request:je,create_handshake_proof:Le,create_wallet_registration:Fe,create_wallet_registration_from_keys:Ie,decode_transaction:Ue,decode_transfer:De,default:te,export_legacy_wallet:Be,generate_browser_wallet:Ce,import_legacy_wallet:Pe,import_private_key:Ne,import_private_key_image:Ve,initSync:sn,inspect_transaction_request:ze,public_key_to_short_address:Ge,short_address_to_bytes:He,sign_message_request:Xe,sign_transaction_request:Ye,skein_128_hex:Ze,skein_256_hex:Je,skein_512_hex:Ke,transaction_type_registry:Qe,unlock_browser_wallet:en,verify_bytes_hex:nn,verify_hash_hex:tn,verify_message_proof:_n},Symbol.toStringTag,{value:"Module"})),P={};async function an(n="testnet"){const e=n==="mainnet"?ln:Ee;return P[n]??(P[n]=n==="mainnet"?te():Q()),await P[n],e}export{an as c}; diff --git a/extension/dist/firefox/chunks/modulepreload-polyfill-B5Qt9EMX.js b/extension/dist/firefox/chunks/modulepreload-polyfill-B5Qt9EMX.js new file mode 100644 index 0000000..3e0a78a --- /dev/null +++ b/extension/dist/firefox/chunks/modulepreload-polyfill-B5Qt9EMX.js @@ -0,0 +1 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))i(e);new MutationObserver(e=>{for(const r of e)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function s(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?r.credentials="include":e.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(e){if(e.ep)return;e.ep=!0;const r=s(e);fetch(e.href,r)}})(); diff --git a/extension/dist/firefox/content.js b/extension/dist/firefox/content.js new file mode 100644 index 0000000..0ce4e56 --- /dev/null +++ b/extension/dist/firefox/content.js @@ -0,0 +1 @@ +const o=document.createElement("script");o.src=chrome.runtime.getURL("provider.js");o.onload=()=>o.remove();(document.head||document.documentElement).appendChild(o);window.addEventListener("message",e=>{var t;e.source!==window||((t=e.data)==null?void 0:t.source)!=="contractless-page"||chrome.runtime.sendMessage({type:"provider-request",method:e.data.method,params:e.data.params},a=>{window.postMessage({source:"contractless-wallet",id:e.data.id,response:a},window.location.origin)})}); diff --git a/extension/dist/firefox/contractless-logo-128.png b/extension/dist/firefox/contractless-logo-128.png new file mode 100644 index 0000000000000000000000000000000000000000..86681b09fe7274de45113b33cf43455c76d808a1 GIT binary patch literal 6168 zcmV+z80Y7SP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D7p+M|K~#8N?Oh9y z9L0H-FxZKKAdGp4$33Qd_Kq{4#0rK$f(*ex1qTr5xSQ_YJDspanM5ud;uvgTU4Vqp z?R59to+KoZP@+s!h^GrM7z_v#@i1=(hlfES;-xo*gdUN^ZR+oyJwe~;ZfAC9Zf5Vk zs=p`+?cX!q|8)QTKgW$5WvK5I6Rg&`b%^9AV~0~j#m^CS7a}U|$HaXR5&qwZ@KumPn`4b35h#w&u%1TT z#?P{uxEc|D4c5DJjhOH!FySs{AW;09_2-KT z=2MIzW*{~P+m73gsqDs7K8va7vpW|Q?GC-Ddlpd^F)fiOgZ$t4q=lzYv^(Y(GoAB` znDDijie=alKWKE^Z<)_EhG;R~YUgJlB5p*m=*%l-x)v4fj$VJE&Bd%XNhMsF=?fGg zDppyHFSd!eaPoI^Uo{_g3{`|p`MH>gJ8b5y&P-oe%yce@Y0>viAb6Rsn?W!>#*{yd zi2MEe&RhS?eD*O^fW~(D9Yn-kHk0dM(bYCw_I4f*!Lj2D!Zu9hqnOEy#W0W(rS&APQ!X&S6JHEKKpQUK1LN_0uU9y z>{s*#nXsx+zeUeC0fV(rk-lB*`STvra8$>T;@>&HXi<4@1L>|e=Ver&j@~d4GkG6O z1T2g>NmU_Oa4^(>c^DKiB6cAnK1GyoLWHlwl&?WVe26Ij031X5&wL#w{9{bSR!n%G z{{4JkAgZX4f(5fvSrQ){bwU8%I!yU;So|oyGG&wjrHjfUBJzEUh!-&xw_(En6%o;9 z5q>JBUduPy=Art|-Xof`g+owV{+OoDg$-~Eu^5<|y)1J0^_YqW5tZOQ{6q=E^eQT- zOlskz-u;-)J=&b7nuI>{`K?jd?)3sKgs*D7P52`=5!cy7oQ7w4UooE}2##ql90_h^ zOxz`i%9qu`DXqR5f*_0Fz`{h_Q%7z**c`jIFmus<*b#ZH2vuY9G%4o{m|>Y*jR>FL z(4If9zB3nzJs!7t2vI%@?EdO{r*1733Nq*?U^H_0EfZ%hs$GW?+<|Q-cW5nmkckLN z>PuAT=w?hrk4^dCnPWx;2oOPz=&-4HTq%*DBbd(@fJzD~rs7(2teSxBxZgsAzn`g+ zJzw7(RG`Ph5VbQ>ju$w)F_AyURIIM_SkpHlz6JCYbDUJ8Wt#gn2({8)yn!zsjQs7A zip_|MU*Ku84>iXd38?ThD(-{bt&%IPQj7_I!@9WpICG5D0x@x&I`b<&_x0jqB34;c zPEDFg6|8$U^RB~0ej46$=_#cUIquyx5m%tDTugkRBzwTi1|d+m=7V?bWz?2G#T+L| zz|8GJl&{HjgnMV-2(=SYZ${Z(&K!l%<3IE@) zg0GE4{Pp_Io@SGGYG7x@_w8(9TcsMZuRFZf*e*{n$4D}4+H)?Za&9(*(f~|kD~5=s5Q?D^9OiAbN%v_c-^9bFe3sqW zyStLDUr&J8g4)wA{u{hpjT}`L}S1O(h{!!?wuTABG$uk%2XYx%Pj=ltpKJM?rDLy_y zY8DlnZPIh5$=^it1%*Q}<2lUa-I$3xf)Zl#PMeAAK!8l%)dr&8#h8k1nSgVnm1w@k z?&6loGjTv!aW$kbz7esh@#g#pE}tkwyUk-3Al!kQRXQcLC)KA^fSN zIl)F0X%ql}?T8L_+X-?E=qu#AO{8$V$#2vmtpb4C<{=fk7$7=IKdZY1G0|c2t2uxY z2s#0F_&=(MpS>Wh0?;($rUMZbcLnhg*nX}dIEYMsHG#%gilCN32!2IGJXkY&0Ju6;QYaBi5R=b9(uS)3(X~h^Jxw!~ z6fIVZ0x)h|1NF{QieLaeK!v>%`K-kj9A@%M70~qg$6z8MQR6vP0HSlgdO5u%?wJrj z&i^s<_a&rR03f&p5xybFbx_9)iZ>w!(d3s3SXo&I3y+ET6K38nl^UkpzJq@SwJZRQ zZTSqQ;t%Tm2YI%^$TtYBM^v0=@=G-A4)-Wb_>ZALqYCFPGdZM|1)!PoiHNwr31Svj zN+97oAnwrQmslW{zW_6-JcOanyc!jN`tx%WY$|RKQWL@dX!>j-erWPb9N-#fm4f7hbm31%U9S;RL{)ZSos&K$;e2Vu{VX?Licqp{SMx zpuY3g37EKdgfRvsP5|myccV?k{W`EC{FZN0Eek+Xd*Mh#_-})LEQu2U@Zn?TJrza8 zk6IQ0Wd|Vq)gX3&{#pW5{M_U>BB-O?El{f6o(_v&*?B)0)v^FIFn1Crd`%Ebp#OpO zL6HiRU+idZD`XJizpsX}w>R<=BOW)$E+NeVkfHg%$60STc=^od+8ZfhA$+?<#B`Hi ztWXnA#A7O|Hoyy%MSfBUylm4Yw?J~pN^|@Y(kuXwJr(o@piRMiT_cg-HTlJcNjmFy zd8HLGOzJO_l2zF-J22%><80x2oA&Ir^h;U=0HS+UaA=V8A9h3)7AD`oS#N~0q;t7_ zY{KWNvq&d!R7`5&wJ_~e(ZLM5ffT-JvF^jhwYCmf`X#Lb(9$~Z2t>uJfzJPuPDI2r zxNDe;t2f2ipi65vJ3lQv(Rsm=t?&+BLO|1rbuDy}E0uu3n z$uAbbwu7j6H|%78kxKdR@*_<64G;}vj#my+DFDUdcuYkv4(J$DSHNsf--v{SLGB!K z`2BWg70!Kl5tRYNUqFsH+Z-zh(kK8bfrg5Af^Pr5D|n05&O1$>kpofhaywht5%i%= zD#Zd|%I}2)5_6oONTUE`DE}UUo`wN+DDVPe%HM68c4NF@;WiO}i5#&i=#|AJz4$8A zb!o=Qf887>4ALe5R_mgJz;+T;``0C9bz(@YY2r|47cqWwrW5Y_=0gP_RX@)wT0|^? zo-@+afXh05IieVJ5aJg=LTjD~tU8KZx*U-~u(rs03*e zfaBU{9}cPLLA`&a=R|~Wjt4IlJy~LYV|{zQzHPatzW{F&(WHH zu(Mx1r?LRLFUQ)Q)M7nnU@Eqk6TG=M(#0Lc>zRn^-K9kU>?}VMXL~*j>iSjWo5nHC zUup7<4A3ea6Zs#Z9=Jr>tP9;a&Num23uzDluyJ529@l=8fzL1;!3T&Oz6qLHn7ktc z6lGLhGAjD|Rn6O*$}RQ~21yry6WDG0L)KFzACmqpUmCCWPxg{vz}dHKP3G-xjn=987BM4;D;-}9{jHAKeR4@Q+kIxb*yFcM;EhqoC z<~WhU@9p!R^7;+(U_+9wYr6vqADDcjLQ(`EL%UBzlt0*?|2W84Ws?e!DfHQnxXBzR za$rYZhKL)=>!-t&-FNJ1?olS+s4&t30O4`S$zP6{_eQmXW3}SvzAz%qBoW~^>sBWL zUj$xU$MW57@{AHAB>*kCk$#luxd6fcBxp#3hwuVk@6A}@eov8H^+|!O)P(k zs^AgIU8w>+o;*3`V#aX^03z<`@NacFo8Z^u;mE%|{Slg4n`6fY8>)3tu`&1+MrxBK z;cjcp9Xw+b04ly+iD`WA#I@4L!(3g3FQE3ky?Xq6(gTsL_}jd%qhSZUXC z2)2DY+w&o&e406C?63*{7qyiKeM#-GD57lqrOeYT0P3ji@HSYqJN_u&!2qpSv;r9H zCAG(jZ-KrzCeNsmP65yXo|t)SYziUX(e^7U8;J0^OYaw_CnfwiA z`R|xK69+`xD|8!^V0Hjs2Y9-%eRik}-%1dd0N6~NRF(kf3|`gl9-3Ywn!g-s0-O92 z3GB!&M0sFWurB~_#OVeuAua)c^6WzjfS>)OGpOW7Ok|J6~`zS7Cfs^&l8b5-KTFePmg4ai_Ygg+ZNgGEh@EZWq) z)Z`g8;uC^9q#g&%B9G0J6cBI_7f4Hk&$>Ha6pI>0Hrr9f(FSZ*C-K} z0N^$cAtHW@s91=pm;r6y%zsl8K*W`PV#k2V8j5_y@ik1nzc6`5iMRv+qNVFwdx!it zH34u=V8TCD6Enz!?Tvf^*cx|pheWVOycDACtMsN1K%=Aafq zWfI;JS6UcgBm^Miv7>Zw&OWJ5;G5*K;^Th;{Z(;z8hX{Yh zSL_0jj+zylpy{*8Hwu6NAj(%%CIIf!CR_*+Zd-n7ArPIouI}P2?3N z%h!Mx8HV)a@O$B`Gx=5sPO#4l_e z#XI1=ha;UlBi5(FM*#7Cmq0&j-jamq)uBj?;z$~g&pzJJ;blH9PtzA ztbwV#Y;S}};h$_GE}T4b(Xfgu*!XQooDFI!FU?EG{Gv_8LP#Muc_$82a=Cq>ps{jm z1~du*skk>LUW&D_QG__0b?=WHerw?Caf$rQ=}dc!rCurpWD0?CC(JPblz~1%lrM&A zqbBdP0Wr~msSI4+ea~Dd|H^&GlLZHxyc3I-*4zOW<+lWO4wXnxRv)7Ik#BHR0c_TN zlB$^y^j74P4P|mWdbee=qRr%;c-S2f3nw>)(FN4Y>)&lmUAuE1^=+a7u8I0~6Z|Ly zQl(xTem59}O#X=n^tQ1GFN8@LDUpBI{vQaeH2EhP(AEWP8h%%k0q<1~>3n~=zS6!3 zBMMbCl8U!N-F+2l0}-P9bqKFE`6m%|lutwszrAGa8Td|Rkh=GS9wZmXTI4YbAS$2? z%C1T#!_R;J6K3%kiNc~KE9(#ucUH9c@b&BZ{%;@K&c9)fkvdGCnfodx?gNz^1=>{H z3zM=AqKA_BRUqO`wux9#X|X5xEuwNOZqLs!$4D*g_U@A~6{|v35c~Y(D20me##Ht; zwTT9EoRNSwe~UIu#asH^4tM4&0zuc=Qa2~wpfProxmp*I58a-2MSM#wU~(iLPXqy9Dcn`^3$>7O@V4!P3?sv!CVc#h7z4J zSzZ=?C zMETFmIT>}Z3AYf1-ojNZotj|s4PtANjvgdGT(g+dobR1`p?IUu;o+4W{BYxJ@7;UV+|5;0QvLufr7DtSRTudzkPyp==wpb3=sRg{j+% qsrw_Fbf1=CJ&k@r>(Sw^_3{6XQ5ZCV!930Y0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0$52zK~y+TZIaDv z6G0fpgD7bIDtKybiQRc8+3dlCJ*X&n@FKJzh$Y#X*(9xL8j>D7iFnC5Cc87cYg^+- z(~7k9pkgil1)@kjRQ$k;7f&9ff(Jhk8JVqF^3mUI-}iZ*nVt8IM7F^gEAPW;?;522 z4PfqXpyDS^doO^A@lI_Qh}i(l`(PB8C1$P!Vy`30UjY+R)quHAqM63-PG0~}_W)wz zlTiwUkKz-R{mouH<@W<~7mU&aiHN<_?)(oBr=aKNzXKHy)iKV!?2nkjHogOatuSawzgthJekQqD*$J16!0f&?laqwLHeQ2wPWfI7$Y z$%X{#EQe;@@(%$OU$+|kva0os)_Z_B-?{=w?WURrB2Fm`K&Cxy6qh72ou|#3Hda3f zly9m4NV-VXfZE0Qr8{auo9fUo0GL=x6z)q*_=U~@V6Kd(D*ZtD4W&`FXj!-5j?3mxzg9 pz}!FB^4`TP?`q#@xu;XB_y_WI0Wgs7wPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1!GA>K~z{rtygV` zltmo3A}|dLBQMQ5Z|6U|*HvI>h4vzSD1!V@ao6q6JoD`C?I~&WA%r4AmP94beP*7w z(>q_1NK=W#>2l`OVD#ZD!0k z4`fTDH&Zv-08VfSxc?bpY7&_G7M$QHal)6Vh*v@XrYr4v{~5I4-9kllkh-zXRd(uZ zX-wm9Dk4qYNN0p+Sp&c3=UjtWW@!U|d zVDi~vL;&}bvEkh)j{ z>V?4kl_0_+=Crsn*8(E=9LmA;{328EDTwe7ykA^AF%-VrJuq^W&9%{8tj+`{crg(n zb*{2o1M~LVytV))U+-PD#~eK#If(FhPkvJuj^Xa-uddEo*za93e`R$R?%bY_0PeqK z<~qJMSHt9OHm4;hlNrL*N#On@VRDj|wx7zdtq(T z+d#nJ2mulPN=0D&0l3^}b6Ns-hIh8GzdG0KunC!gXD%aLeTV*#I%E%*cQkXFL705O zIHMbB+zjwwj?HNc6q0r0HMAJNnJv_MXAB&;h%ogvh8i9%8qTyiTEf&|;=Dq0jwEU~;n;Kp^q2$|nn*$+nSz(MIa5IL@_H(w4|2m8|4~Cd zWh0Bt_%sA$gj|X~fCB2FIb?Ir0cC12xY4OJgm4j)`QmaHDXxNpEjLB|4s$&G0W|5qO%OulR~Uwv`v zMrSiz7MnRH3OW>kf(cijVzi`Dfb(sh0SIqJdQ@0Y@OOsQN>g||nA52M!n`LNDLJ{) z12(4tQjo7SQYU`@L+b2Q0LhQsOWpWP5&_AEKm;pnoJUhR7AfS4%U&%E=`#CMlx_vE*9A(`2xA zjcuy|U>-A`U%xBDq_R0F+6e&ejbHchUSkKZG7%F0423PNk3I$Aa=6)92=mt2oD}T@ z5bnvOB@0dFq#`~>25ZZ08&g2JDwuqodTT*FVRKTn698PreUI$J()|;NAXsq!<}2*^ zEkT4@mKv;I!Lv3eMLPkQGqUCJ#}@W`bM1L;fkpxAz8h&;G@d(wNyO$M>gD(cJZf|> z6ugM3I~(HR!Hqt~CX|ZsDCCnW zN&CI4!3lme-4CX4?*EC+jcubPvckVTTf)3wuY4jrk;`vcVDl2_3zE;d0G=i@U-u60 z#?3r$bJ~KiTB8=^l0NWA+xTq)aeS4YVB#OaFWp78$mX?0Pu}kWCpex~!+JCN6=pVU z(`-J16oVxoqJxc!SMUE?)sc>X{Qwp5NqqH~s_4dv5PS!6wU;pYG~wzgVA3N@9R|n$ zD-B_EVsuU@)YjW}r-jTzTW_Eu{t)lcq}22&R)729+Yon|q*?5CFno6+=Xc=VTHD@v zq08Ai8=PPhxZ$LEjMlqg6RM_Hh?6j^n8zso|61Cz{ja!|%lY8OYd{3A0{1_`rh+ha o8o2rboZv7x;YRcWdtN8_8z)GM(OON6^Z)<=07*qoM6N<$f<`OJmjD0& literal 0 HcmV?d00001 diff --git a/extension/dist/firefox/contractless-logo-48.png b/extension/dist/firefox/contractless-logo-48.png new file mode 100644 index 0000000000000000000000000000000000000000..3697789f60ef783d9c37fa6a55e870cf0e8cee4a GIT binary patch literal 2272 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 sz + + + + + Import Contractless Wallet + + + + + +

+ +
+
+ Restore Contractless wallet +

Import wallet image

+

+ Select your encrypted Contractless private-key image and enter the + encryption key originally used to create it. +

+ +
+ + + + +
+ + +
+ +
+ Processed locally by Contractless Wallet + The wallet image and encryption key are not sent to the website you were visiting. +
+ + + +
+
+ + +
+ + + diff --git a/extension/dist/firefox/import-wallet.js b/extension/dist/firefox/import-wallet.js new file mode 100644 index 0000000..7b1b204 --- /dev/null +++ b/extension/dist/firefox/import-wallet.js @@ -0,0 +1 @@ +import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";const a=t=>document.getElementById(t),u=a("import-form"),l=a("wallet-image"),r=a("image-password"),s=a("import-button"),i=a("notice");m("status").then(t=>{const e=t;a("selected-network").textContent=e.networkName}).catch(t=>{i.textContent=d(t)});function w(t){let e="";for(let o=0;o{var t,e;a("image-file-name").textContent=((e=(t=l.files)==null?void 0:t[0])==null?void 0:e.name)??"Choose wallet image",i.textContent=""});a("reveal-password").addEventListener("click",t=>{const e=t.currentTarget,n=r.type==="text";r.type=n?"password":"text",e.textContent=n?"Show":"Hide"});u.addEventListener("submit",t=>{t.preventDefault(),(async()=>{var c;const e=(c=l.files)==null?void 0:c[0];if(!e)throw new Error("Choose a wallet image.");if(!r.value.trim())throw new Error("Enter the wallet image encryption key.");i.textContent="",s.disabled=!0,s.textContent="Importing wallet...";const n=w(new Uint8Array(await e.arrayBuffer())),o=await m("import-wallet-image",{imageBase64:n,imagePassword:r.value,password:r.value});r.value="",a("imported-address").textContent=o.address??"Imported wallet",a("import-panel").hidden=!0,a("success-panel").hidden=!1})().catch(e=>{i.textContent=d(e),s.disabled=!1,s.textContent="Import wallet"})});a("close-page").addEventListener("click",()=>window.close()); diff --git a/extension/dist/firefox/manifest.json b/extension/dist/firefox/manifest.json new file mode 100644 index 0000000..389d071 --- /dev/null +++ b/extension/dist/firefox/manifest.json @@ -0,0 +1,57 @@ +{ + "manifest_version": 3, + "name": "Contractless Wallet", + "version": "0.1.1", + "description": "A local-signing Web3 wallet for Contractless.", + "browser_specific_settings": { + "gecko": { + "id": "wallet@contractless.dev", + "strict_min_version": "149.0", + "data_collection_permissions": { + "required": ["none"] + } + }, + "gecko_android": { + "strict_min_version": "149.0" + } + }, + "content_security_policy": { + "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'" + }, + "permissions": ["storage", "alarms", "activeTab", "clipboardWrite"], + "host_permissions": ["https://api.contractless.dev/*"], + "optional_host_permissions": ["https://*/"], + "action": { + "default_popup": "popup.html", + "default_title": "Contractless Wallet", + "default_icon": { + "16": "contractless-logo-16.png", + "32": "contractless-logo-32.png", + "48": "contractless-logo-48.png", + "128": "contractless-logo-128.png" + } + }, + "icons": { + "16": "contractless-logo-16.png", + "32": "contractless-logo-32.png", + "48": "contractless-logo-48.png", + "128": "contractless-logo-128.png" + }, + "background": { + "scripts": ["background.js"], + "type": "module" + }, + "content_scripts": [ + { + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"], + "js": ["content.js"], + "run_at": "document_start" + } + ], + "web_accessible_resources": [ + { + "resources": ["provider.js"], + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"] + } + ] +} diff --git a/extension/dist/firefox/popup.html b/extension/dist/firefox/popup.html new file mode 100644 index 0000000..1aaf6fa --- /dev/null +++ b/extension/dist/firefox/popup.html @@ -0,0 +1,654 @@ + + + + + + Contractless Wallet + + + + + + +
+
+
+ Contractless +
+
+

Opening wallet

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/extension/dist/firefox/popup.js b/extension/dist/firefox/popup.js new file mode 100644 index 0000000..f57b0b4 --- /dev/null +++ b/extension/dist/firefox/popup.js @@ -0,0 +1,8 @@ +import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";import{c as Yt}from"./chunks/core-D2IK1U91.js";function Cn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var de={},De,Ct;function En(){return Ct||(Ct=1,De=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),De}var Ue={},ee={},Et;function se(){if(Et)return ee;Et=1;let e;const t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return ee.getSymbolSize=function(o){if(!o)throw new Error('"version" cannot be null or undefined');if(o<1||o>40)throw new Error('"version" should be in range from 1 to 40');return o*4+17},ee.getSymbolTotalCodewords=function(o){return t[o]},ee.getBCHDigit=function(n){let o=0;for(;n!==0;)o++,n>>>=1;return o},ee.setToSJISFunction=function(o){if(typeof o!="function")throw new Error('"toSJISFunc" is not a valid function.');e=o},ee.isKanjiModeEnabled=function(){return typeof e<"u"},ee.toSJIS=function(o){return e(o)},ee}var qe={},bt;function lt(){return bt||(bt=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,r){if(e.isValid(o))return o;try{return t(o)}catch{return r}}})(qe)),qe}var Fe,kt;function bn(){if(kt)return Fe;kt=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const n=Math.floor(t/8);return(this.buffer[n]>>>7-t%8&1)===1},put:function(t,n){for(let o=0;o>>n-o-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),t&&(this.buffer[n]|=128>>>this.length%8),this.length++}},Fe=e,Fe}var Ve,At;function kn(){if(At)return Ve;At=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,n,o,r){const i=t*this.size+n;this.data[i]=o,r&&(this.reservedBit[i]=!0)},e.prototype.get=function(t,n){return this.data[t*this.size+n]},e.prototype.xor=function(t,n,o){this.data[t*this.size+n]^=o},e.prototype.isReserved=function(t,n){return this.reservedBit[t*this.size+n]},Ve=e,Ve}var Ke={},Nt;function An(){return Nt||(Nt=1,(function(e){const t=se().getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const r=Math.floor(o/7)+2,i=t(o),a=i===145?26:Math.ceil((i-13)/(2*r-2))*2,l=[i-7];for(let s=1;s=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const i=r.size;let a=0,l=0,s=0,d=null,u=null;for(let m=0;m=5&&(a+=t.N1+(l-5)),d=f,l=1),f=r.get(p,m),f===u?s++:(s>=5&&(a+=t.N1+(s-5)),u=f,s=1)}l>=5&&(a+=t.N1+(l-5)),s>=5&&(a+=t.N1+(s-5))}return a},e.getPenaltyN2=function(r){const i=r.size;let a=0;for(let l=0;l=10&&(l===1488||l===93)&&a++,s=s<<1&2047|r.get(u,d),u>=10&&(s===1488||s===93)&&a++}return a*t.N3},e.getPenaltyN4=function(r){let i=0;const a=r.data.length;for(let s=0;s=0;){const a=i[0];for(let s=0;s0){const l=new Uint8Array(this.degree);return l.set(i,a),l}return i},Je=t,Je}var We={},He={},Ye={},Rt;function Qt(){return Rt||(Rt=1,Ye.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),Ye}var O={},It;function Zt(){if(It)return O;It=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let n="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";n=n.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+n+`)(?:.|[\r +]))+`;O.KANJI=new RegExp(n,"g"),O.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),O.BYTE=new RegExp(o,"g"),O.NUMERIC=new RegExp(e,"g"),O.ALPHANUMERIC=new RegExp(t,"g");const r=new RegExp("^"+n+"$"),i=new RegExp("^"+e+"$"),a=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return O.testKanji=function(s){return r.test(s)},O.testNumeric=function(s){return i.test(s)},O.testAlphanumeric=function(s){return a.test(s)},O}var Pt;function ce(){return Pt||(Pt=1,(function(e){const t=Qt(),n=Zt();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(i,a){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!t.isValid(a))throw new Error("Invalid version: "+a);return a>=1&&a<10?i.ccBits[0]:a<27?i.ccBits[1]:i.ccBits[2]},e.getBestModeForData=function(i){return n.testNumeric(i)?e.NUMERIC:n.testAlphanumeric(i)?e.ALPHANUMERIC:n.testKanji(i)?e.KANJI:e.BYTE},e.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},e.isValid=function(i){return i&&i.bit&&i.ccBits};function o(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(i,a){if(e.isValid(i))return i;try{return o(i)}catch{return a}}})(He)),He}var Mt;function Bn(){return Mt||(Mt=1,(function(e){const t=se(),n=Gt(),o=lt(),r=ce(),i=Qt(),a=7973,l=t.getBCHDigit(a);function s(p,f,h){for(let w=1;w<=40;w++)if(f<=e.getCapacity(w,h,p))return w}function d(p,f){return r.getCharCountIndicator(p,f)+4}function u(p,f){let h=0;return p.forEach(function(w){const R=d(w.mode,f);h+=R+w.getBitsLength()}),h}function m(p,f){for(let h=1;h<=40;h++)if(u(p,h)<=e.getCapacity(h,f,r.MIXED))return h}e.from=function(f,h){return i.isValid(f)?parseInt(f,10):h},e.getCapacity=function(f,h,w){if(!i.isValid(f))throw new Error("Invalid QR Code version");typeof w>"u"&&(w=r.BYTE);const R=t.getSymbolTotalCodewords(f),C=n.getTotalCodewordsCount(f,h),B=(R-C)*8;if(w===r.MIXED)return B;const E=B-d(w,f);switch(w){case r.NUMERIC:return Math.floor(E/10*3);case r.ALPHANUMERIC:return Math.floor(E/11*2);case r.KANJI:return Math.floor(E/13);case r.BYTE:default:return Math.floor(E/8)}},e.getBestVersionForData=function(f,h){let w;const R=o.from(h,o.M);if(Array.isArray(f)){if(f.length>1)return m(f,R);if(f.length===0)return 1;w=f[0]}else w=f;return s(w.mode,w.getLength(),R)},e.getEncodedBits=function(f){if(!i.isValid(f)||f<7)throw new Error("Invalid QR Code version");let h=f<<12;for(;t.getBCHDigit(h)-l>=0;)h^=a<=0;)s^=t<0&&(i=this.data.substr(r),a=parseInt(i,10),o.put(a,l*3+1))},Ze=t,Ze}var Xe,Ut;function In(){if(Ut)return Xe;Ut=1;const e=ce(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function n(o){this.mode=e.ALPHANUMERIC,this.data=o}return n.getBitsLength=function(r){return 11*Math.floor(r/2)+6*(r%2)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(r){let i;for(i=0;i+2<=this.data.length;i+=2){let a=t.indexOf(this.data[i])*45;a+=t.indexOf(this.data[i+1]),r.put(a,11)}this.data.length%2&&r.put(t.indexOf(this.data[i]),6)},Xe=n,Xe}var et,qt;function Pn(){if(qt)return et;qt=1;const e=ce();function t(n){this.mode=e.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}return t.getBitsLength=function(o){return o*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(n){for(let o=0,r=this.data.length;o=33088&&i<=40956)i-=33088;else if(i>=57408&&i<=60351)i-=49472;else throw new Error("Invalid SJIS character: "+this.data[r]+` +Make sure your charset is UTF-8`);i=(i>>>8&255)*192+(i&255),o.put(i,13)}},tt=n,tt}var nt={exports:{}},Vt;function $n(){return Vt||(Vt=1,(function(e){var t={single_source_shortest_paths:function(n,o,r){var i={},a={};a[o]=0;var l=t.PriorityQueue.make();l.push(o,0);for(var s,d,u,m,p,f,h,w,R;!l.empty();){s=l.pop(),d=s.value,m=s.cost,p=n[d]||{};for(u in p)p.hasOwnProperty(u)&&(f=p[u],h=m+f,w=a[u],R=typeof a[u]>"u",(R||w>h)&&(a[u]=h,l.push(u,h),i[u]=d))}if(typeof r<"u"&&typeof a[r]>"u"){var C=["Could not find a path from ",o," to ",r,"."].join("");throw new Error(C)}return i},extract_shortest_path_from_predecessor_list:function(n,o){for(var r=[],i=o;i;)r.push(i),n[i],i=n[i];return r.reverse(),r},find_path:function(n,o,r){var i=t.single_source_shortest_paths(n,o,r);return t.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(n){var o=t.PriorityQueue,r={},i;n=n||{};for(i in o)o.hasOwnProperty(i)&&(r[i]=o[i]);return r.queue=[],r.sorter=n.sorter||o.default_sorter,r},default_sorter:function(n,o){return n.cost-o.cost},push:function(n,o){var r={value:n,cost:o};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(nt)),nt.exports}var Kt;function Dn(){return Kt||(Kt=1,(function(e){const t=ce(),n=Rn(),o=In(),r=Pn(),i=Mn(),a=Zt(),l=se(),s=$n();function d(C){return unescape(encodeURIComponent(C)).length}function u(C,B,E){const L=[];let D;for(;(D=C.exec(E))!==null;)L.push({data:D[0],index:D.index,mode:B,length:D[0].length});return L}function m(C){const B=u(a.NUMERIC,t.NUMERIC,C),E=u(a.ALPHANUMERIC,t.ALPHANUMERIC,C);let L,D;return l.isKanjiModeEnabled()?(L=u(a.BYTE,t.BYTE,C),D=u(a.KANJI,t.KANJI,C)):(L=u(a.BYTE_KANJI,t.BYTE,C),D=[]),B.concat(E,L,D).sort(function(N,A){return N.index-A.index}).map(function(N){return{data:N.data,mode:N.mode,length:N.length}})}function p(C,B){switch(B){case t.NUMERIC:return n.getBitsLength(C);case t.ALPHANUMERIC:return o.getBitsLength(C);case t.KANJI:return i.getBitsLength(C);case t.BYTE:return r.getBitsLength(C)}}function f(C){return C.reduce(function(B,E){const L=B.length-1>=0?B[B.length-1]:null;return L&&L.mode===E.mode?(B[B.length-1].data+=E.data,B):(B.push(E),B)},[])}function h(C){const B=[];for(let E=0;E=0&&k<=6&&(_===0||_===6)||_>=0&&_<=6&&(k===0||k===6)||k>=2&&k<=4&&_>=2&&_<=4?y.set(b+k,S+_,!0,!0):y.set(b+k,S+_,!1,!0))}}function h(y){const N=y.size;for(let A=8;A>k&1)===1,y.set(T,b,S,!0),y.set(b,T,S,!0)}function C(y,N,A){const v=y.size,T=u.getEncodedBits(N,A);let b,S;for(b=0;b<15;b++)S=(T>>b&1)===1,b<6?y.set(b,8,S,!0):b<8?y.set(b+1,8,S,!0):y.set(v-15+b,8,S,!0),b<8?y.set(8,v-b-1,S,!0):b<9?y.set(8,15-b-1+1,S,!0):y.set(8,15-b-1,S,!0);y.set(v-8,8,1,!0)}function B(y,N){const A=y.size;let v=-1,T=A-1,b=7,S=0;for(let k=A-1;k>0;k-=2)for(k===6&&k--;;){for(let _=0;_<2;_++)if(!y.isReserved(T,k-_)){let X=!1;S>>b&1)===1),y.set(T,k-_,X),b--,b===-1&&(S++,b=7)}if(T+=v,T<0||A<=T){T-=v,v=-v;break}}}function E(y,N,A){const v=new n;A.forEach(function(_){v.put(_.mode.bit,4),v.put(_.getLength(),m.getCharCountIndicator(_.mode,y)),_.write(v)});const T=e.getSymbolTotalCodewords(y),b=l.getTotalCodewordsCount(y,N),S=(T-b)*8;for(v.getLengthInBits()+4<=S&&v.put(0,4);v.getLengthInBits()%8!==0;)v.putBit(0);const k=(S-v.getLengthInBits())/8;for(let _=0;_=7&&R(_,N),B(_,S),isNaN(v)&&(v=a.getBestMask(_,C.bind(null,_,A))),a.applyMask(v,_),C(_,A,v),{modules:_,version:N,errorCorrectionLevel:A,maskPattern:v,segments:T}}return Ue.create=function(N,A){if(typeof N>"u"||N==="")throw new Error("No input text");let v=t.M,T,b;return typeof A<"u"&&(v=t.from(A.errorCorrectionLevel,t.M),T=d.from(A.version),b=a.from(A.maskPattern),A.toSJISFunc&&e.setToSJISFunction(A.toSJISFunc)),D(N,T,v,b)},Ue}var rt={},ot={},zt;function Xt(){return zt||(zt=1,(function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let o=n.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+n);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(i){return[i,i]}))),o.length===6&&o.push("F","F");const r=parseInt(o.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const r=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,i=o.width&&o.width>=21?o.width:void 0,a=o.scale||4;return{width:i,scale:i?4:a,margin:r,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,r){return r.width&&r.width>=o+r.margin*2?r.width/(o+r.margin*2):r.scale},e.getImageWidth=function(o,r){const i=e.getScale(o,r);return Math.floor((o+r.margin*2)*i)},e.qrToImageData=function(o,r,i){const a=r.modules.size,l=r.modules.data,s=e.getScale(a,i),d=Math.floor((a+i.margin*2)*s),u=i.margin*s,m=[i.color.light,i.color.dark];for(let p=0;p=u&&f>=u&&p"u"&&(!a||!a.getContext)&&(s=a,a=void 0),a||(d=o()),s=t.getOptions(s);const u=t.getImageWidth(i.modules.size,s),m=d.getContext("2d"),p=m.createImageData(u,u);return t.qrToImageData(p.data,i,s),n(m,d,u),m.putImageData(p,0,0),d},e.renderToDataURL=function(i,a,l){let s=l;typeof s>"u"&&(!a||!a.getContext)&&(s=a,a=void 0),s||(s={});const d=e.render(i,a,s),u=s.type||"image/png",m=s.rendererOpts||{};return d.toDataURL(u,m.quality)}})(rt)),rt}var it={},Jt;function Fn(){if(Jt)return it;Jt=1;const e=Xt();function t(r,i){const a=r.a/255,l=i+'="'+r.hex+'"';return a<1?l+" "+i+'-opacity="'+a.toFixed(2).slice(1)+'"':l}function n(r,i,a){let l=r+i;return typeof a<"u"&&(l+=" "+a),l}function o(r,i,a){let l="",s=0,d=!1,u=0;for(let m=0;m0&&p>0&&r[m-1]||(l+=d?n("M",p+a,.5+f+a):n("m",s,0),s=0,d=!1),p+1':"",f="',h='viewBox="0 0 '+m+" "+m+'"',R=''+p+f+` +`;return typeof l=="function"&&l(null,R),R},it}var Wt;function Vn(){if(Wt)return de;Wt=1;const e=En(),t=Un(),n=qn(),o=Fn();function r(i,a,l,s,d){const u=[].slice.call(arguments,1),m=u.length,p=typeof u[m-1]=="function";if(!p&&!e())throw new Error("Callback required as last argument");if(p){if(m<2)throw new Error("Too few arguments provided");m===2?(d=l,l=a,a=s=void 0):m===3&&(a.getContext&&typeof d>"u"?(d=s,s=void 0):(d=s,s=l,l=a,a=void 0))}else{if(m<1)throw new Error("Too few arguments provided");return m===1?(l=a,a=s=void 0):m===2&&!a.getContext&&(s=l,l=a,a=void 0),new Promise(function(f,h){try{const w=t.create(l,s);f(i(w,a,s))}catch(w){h(w)}})}try{const f=t.create(l,s);d(null,i(f,a,s))}catch(f){d(f)}}return de.create=t.create,de.toCanvas=r.bind(null,n.render),de.toDataURL=r.bind(null,n.renderToDataURL),de.toString=r.bind(null,function(i,a,l){return o.render(i,l)}),de}var Kn=Vn();const jn=Cn(Kn),c=e=>document.getElementById(e),zn=Array.from(document.querySelectorAll(".screen")),M=c("notice"),en=navigator.userAgent.includes("Firefox");let Le="",fe="",ge="",ie="",g,dt,Te="held",K=1,ae=0;const we=8;let x,H=[],Z,P,_e,tn="activity",G,ve="",oe="";const he=20,On={1:"Mining Reward",2:"Transfer",3:"Token Creation",4:"NFT/RWA Creation",5:"Marketing",6:"Swap",7:"Loan",8:"Loan Payment",9:"Collateral Claim",10:"Asset Burn",11:"Token Issuance",12:"Vanity Address",100:"Storage Key",101:"Data Storage Bool",102:"Data Storage U8",103:"Data Storage U16",104:"Data Storage U32",105:"Data Storage U64",106:"Data Storage U128",107:"Data Storage String",108:"Data Storage I8",109:"Data Storage I16",110:"Data Storage I32",111:"Data Storage I64",112:"Data Storage I128",113:"Delete Stored Data",200:"Proposal",201:"Proposal Vote",202:"Activation Vote"};async function $(e,t={}){const n=await chrome.runtime.sendMessage({type:e,...t});if(!(n!=null&&n.ok))throw new Error((n==null?void 0:n.error)??"Wallet request failed.");return n.result}function I(e,t=!0){zn.forEach(n=>{n.hidden=n.id!==e}),t&&(M.textContent="")}function V(e){g=e;const t=e.networkName,n=e.networkSymbol;document.querySelectorAll("[data-network-name]").forEach(o=>{o.textContent=t}),document.querySelectorAll("[data-network-symbol]").forEach(o=>{o.textContent=n}),c("base-asset-name").textContent=`Contractless ${t}`,c("wallet-address").textContent=e.address??"",c("wallet-address-short").textContent=e.address?`${e.address.slice(0,6)}...${e.address.slice(-6)}`:"Account",c("settings-testnet-api-url").value=e.testnetApiUrl,c("settings-mainnet-api-url").value=e.mainnetApiUrl,document.querySelectorAll("[data-select-network]").forEach(o=>{const r=o.dataset.selectNetwork===e.selectedNetwork;o.classList.toggle("active",r),o.setAttribute("aria-pressed",String(r))}),c("settings-lock-timeout").value=String(e.autoLockMinutes),Xn(e),e.exists?e.unlocked?at().then(o=>{o||(I("dashboard-screen"),Be())}):I("locked-screen"):I("create-screen")}function Jn(e,t){return e==="contractless_connect"?"Connect application":e==="contractless_signMessage"?"Sign text message":e==="contractless_sendTransaction"||e==="contractless_signDualTransaction"?`Sign ${String(t.transaction_type??"transaction")}`:"Review request"}function j(e,t,n){const o=document.createElement("dt");o.textContent=t.replaceAll("_"," ");const r=document.createElement("dd");r.textContent=typeof n=="object"?JSON.stringify(n,null,2):String(n),e.append(o,r)}function te(e,t,n,o){const r=re(e[t]),i=String(e[n]??"").trim().toUpperCase(),a=Number(e[o]??0);return`${r} ${i}${a>0?` #${a}`:""}`}function Ht(e,t,n){const o=n===1?2:1,r=(g==null?void 0:g.networkSymbol)??"CLTC";j(e,"Your miner tip",te(t,`tip${n}`,`ticker${n}`,`nft_series${n}`)),j(e,"Your transaction fee",`${re(t[`txfee${n}`])} ${r}`),j(e,"Other party miner tip",te(t,`tip${o}`,`ticker${o}`,`nft_series${o}`)),j(e,"Other party transaction fee",`${re(t[`txfee${o}`])} ${r}`)}function Wn(e,t){var a;const n=((a=g==null?void 0:g.address)==null?void 0:a.trim().toLowerCase())??"",o=String(t.sender1??"").trim().toLowerCase(),r=String(t.sender2??"").trim().toLowerCase(),i=n===o?1:n===r?2:0;if(i===1){j(e,"Sending",te(t,"value1","ticker1","nft_series1")),j(e,"Receiving",te(t,"value2","ticker2","nft_series2")),Ht(e,t,1);return}if(i===2){j(e,"Sending",te(t,"value2","ticker2","nft_series2")),j(e,"Receiving",te(t,"value1","ticker1","nft_series1")),Ht(e,t,2);return}j(e,"First party sending",te(t,"value1","ticker1","nft_series1")),j(e,"Second party sending",te(t,"value2","ticker2","nft_series2"))}function ye(e){const t=c("approve-provider-approval"),n=c("reject-provider-approval"),o=e!==null;t.disabled=o,n.disabled=o,t.classList.toggle("is-processing",e==="approve"),n.classList.toggle("is-processing",e==="reject"),t.textContent=e==="approve"?"Processing...":"Approve",n.textContent=e==="reject"?"Rejecting...":"Reject"}async function at(){const e=await $("pending-provider-approval");if(!(e!=null&&e.request))return!1;const t=e.request;ye(null),oe=t.id;const n=(e.total??0)>1?` · Request ${e.position??1} of ${e.total}`:"";c("provider-approval-origin").textContent=`${t.origin}${n}`;const o=c("provider-approval-risk");o.className=`risk-label risk-${t.risk}`,o.textContent=t.risk==="safe"?"Safe":t.risk==="low"?"Low risk":"High risk";const r=t.display??{},i=t.method==="contractless_sendTransaction"||t.method==="contractless_signDualTransaction";c("provider-approval-title").textContent=Jn(t.method,r),c("provider-approval-intro").textContent=i?"Review every transaction field before signing.":"Review this request before approving it.";const a=c("provider-approval-details");return a.replaceChildren(),Object.entries(r).forEach(([l,s])=>{if(l==="transaction_fields"&&s&&typeof s=="object"){const d=s,u=Number(d.txtype??0),m=new Set(["ticker1","nft_series1","value1","ticker2","nft_series2","value2","tip1","tip2","txfee1","txfee2"]);u===6&&Wn(a,d),Object.entries(d).forEach(([p,f])=>{u===6&&m.has(p)||j(a,p==="txtype"?"transaction_type_id":p,dn(u,p,f))});return}j(a,l,s)}),I("provider-approval-screen"),!0}async function nn(e,t){if(!(e>0&&await at())){if(t){const n=Date.now()+1500;for(;Date.now()setTimeout(o,75))}}window.close()}}function Hn(e){return e.replace(/[.0]/g,"").length>0}function st(){const e=c("token-list");if(e.replaceChildren(),!x){const s=document.createElement("div");s.className="empty-assets";const d=document.createElement("strong");d.textContent="Loading token balances...";const u=document.createElement("span");u.textContent="Balances are retrieved from the selected Contractless API.",s.append(d,u),e.append(s);return}const t=(g==null?void 0:g.networkSymbol)??"CLTC",n=new Set(x.tokens.map(s=>s.token.trim().toUpperCase())),o=new Set(x.nfts.map(s=>`${s.name.trim().toUpperCase()}|${Number(s.series||0)}`)),r=x.balances.filter(s=>{const d=s.asset.trim().toUpperCase(),u=`${d}|${Number(s.nft_series||0)}`;return s.nft_series===0&&d!=="CLTC"&&d!=="CLC"&&n.has(d)&&!o.has(u)}),i=new Map(r.map(s=>[s.asset.trim().toUpperCase(),s])),a=Te==="all"?x.tokens.map(s=>s.token):r.filter(s=>Hn(s.balance)).map(s=>s.asset),l=[...new Set(a.map(s=>s.trim().toUpperCase()))].filter(s=>s!==t&&!o.has(`${s}|0`)).sort((s,d)=>s.localeCompare(d));if(l.length===0){const s=document.createElement("div");s.className="empty-assets";const d=document.createElement("strong");d.textContent=Te==="held"?"No token balances found":"No tokens found";const u=document.createElement("span");u.textContent=Te==="held"?"Switch to All tokens to view the complete network token list.":x.tokenCatalogError?`Token catalog unavailable: ${x.tokenCatalogError}`:"The selected API did not return any fungible tokens.",s.append(d,u),e.append(s);return}l.forEach(s=>{const d=i.get(s),u=document.createElement("div");u.className="asset-row";const m=document.createElement("div");m.className="asset-symbol token-symbol",m.textContent=s.slice(0,3);const p=document.createElement("div");p.className="asset-name";const f=document.createElement("strong");f.textContent=s;const h=document.createElement("span");h.textContent="Contractless token",p.append(f,h);const w=document.createElement("div");w.className="asset-value";const R=document.createElement("strong");R.textContent=(d==null?void 0:d.balance)??"0.00000000";const C=document.createElement("span");C.textContent=s,w.append(R,C),u.append(m,p,w),e.append(u)})}async function Be(){if(g!=null&&g.unlocked){x=void 0,c("base-balance").textContent="--",c("base-asset-balance").textContent="--",st();try{if(!g.apiUrl)throw new Error(`No ${g.networkName} API is configured.`);const e=await $("wallet-balances");x={balances:Array.isArray(e.balances)?e.balances:[],tokens:Array.isArray(e.tokens)?e.tokens:[],nfts:Array.isArray(e.nfts)?e.nfts:[],tokenCatalogError:e.tokenCatalogError,nftCatalogError:e.nftCatalogError};const t=g.networkSymbol,n=x.balances.find(r=>r.nft_series===0&&r.asset.toUpperCase()===t),o=(n==null?void 0:n.balance)??"0.00000000";c("base-balance").textContent=o,c("base-asset-balance").textContent=o,st()}catch(e){const t=c("token-list");t.replaceChildren();const n=document.createElement("div");n.className="empty-assets balance-error";const o=document.createElement("strong");o.textContent="Unable to load balances";const r=document.createElement("span");r.textContent=F(e),n.append(o,r),t.append(n),M.textContent=F(e)}}}function Ne(e,t){return`${e.trim().toUpperCase()}|${t}`}function Yn(e){try{return Y(e,"Balance")>0n}catch{return!1}}function rn(e){if(e.ownership_type!==1)return"Complete ownership";try{const t=Y(e.balance,"Balance"),n=Y(e.supply,"Supply");if(n<=0n)return"0% ownership";const o=t*100000000n/n,r=o/1000000n,i=(o%1000000n).toString().padStart(6,"0").replace(/0+$/,"");return`${r}${i?`.${i}`:""}% ownership`}catch{return"Fractional ownership"}}function ut(e){var t;return(t=e.details)!=null&&t.metadata&&typeof e.details.metadata=="object"?e.details.metadata:{}}function ft(e){const t=ut(e).name;return typeof t=="string"&&t.trim()?t.trim():e.series>0?`${e.name} #${e.series}`:e.name}function on(e){const n=ut(e).contractless;return n&&typeof n=="object"&&String(n.metadata_type??"").toLowerCase()==="rwa"?"RWA":"NFT"}function be(e){return e.series>0?`${e.name}_${e.series}`:e.name}function Gn(e,t=7,n=7){return e.length>t+n+3?`${e.slice(0,t)}...${e.slice(-n)}`:e}function Qn(e,t){var r;const n=document.createElement("div");if(n.className=t,(r=e.details)!=null&&r.image_data_url){const i=document.createElement("img");return i.src=e.details.image_data_url,i.alt=ft(e),n.append(i),n}const o=document.createElement("span");return o.textContent=e.loading?"...":e.name.slice(0,2).toUpperCase(),n.append(o),n}function an(){const e=(K-1)*we;return H.slice(e,e+we)}function Ce(){const e=c("nfts-list");e.replaceChildren();const t=Math.max(1,Math.ceil(H.length/we));if(K=Math.min(Math.max(1,K),t),c("nfts-count").textContent=H.length===1?"1 owned asset":`${H.length} owned assets`,c("nfts-page").textContent=String(K),c("nfts-pages").textContent=String(t),c("nfts-pagination").hidden=t<=1,c("nfts-previous").disabled=K<=1,c("nfts-next").disabled=K>=t,!H.length){const n=document.createElement("div");n.className="nfts-empty";const o=document.createElement("strong");o.textContent="No NFTs or RWAs found";const r=document.createElement("span");r.textContent=x!=null&&x.nftCatalogError?`NFT catalog unavailable: ${x.nftCatalogError}`:"Assets owned by this wallet will appear here.",n.append(o,r),e.append(n);return}an().forEach(n=>{const o=document.createElement("button");o.type="button",o.className="nft-card",o.append(Qn(n,"nft-card-media"));const r=document.createElement("div");r.className="nft-card-identity";const i=document.createElement("span");i.textContent=on(n);const a=document.createElement("strong");a.textContent=ft(n);const l=document.createElement("small");l.textContent=be(n);const s=document.createElement("b");if(s.textContent=rn(n),r.append(i,a,l,s),n.error){const d=document.createElement("em");d.textContent="Media unavailable",r.append(d)}o.append(r),o.addEventListener("click",()=>Zn(n)),e.append(o)})}function Se(e,t,n){const o=document.createElement("div"),r=document.createElement("dt");r.textContent=t;const i=document.createElement("dd");i.textContent=n||"--",o.append(r,i),e.append(o)}function xe(e){Z=e;const t=e.details,n=ut(e),o=on(e),r=ft(e);c("nft-detail-title").textContent=r,c("nft-detail-kind").textContent=`${o} details`,c("nft-detail-badge").textContent=o,c("nft-detail-name").textContent=r,c("nft-detail-ownership").textContent=rn(e);const i=c("nft-detail-image");i.src=(t==null?void 0:t.image_data_url)??"",i.alt=r,i.hidden=!(t!=null&&t.image_data_url);const a=n.description??n.summary;c("nft-detail-description").textContent=typeof a=="string"&&a.trim()?a.trim():t?"No description was included in the NFT metadata.":"Loading NFT metadata and provenance...";const l=c("nft-detail-attributes");l.replaceChildren(),(Array.isArray(n.attributes)?n.attributes.slice(0,12):[]).forEach(m=>{if(!m||typeof m!="object")return;const p=m,f=document.createElement("div"),h=document.createElement("span");h.textContent=String(p.trait_type??p.type??"Attribute");const w=document.createElement("strong");w.textContent=String(p.value??""),f.append(h,w),l.append(f)}),l.hidden=l.childElementCount===0;const d=c("nft-detail-fields");d.replaceChildren(),Se(d,"Asset",be(e)),Se(d,"Creator",(t==null?void 0:t.creator)??"--"),Se(d,"IPFS CID",(t==null?void 0:t.item_ipfs)??"--"),Se(d,"Origin transaction",(t==null?void 0:t.genesis_txid)??e.origin_txid);const u=c("nft-detail-history");if(u.replaceChildren(),t)if(t.history.length)t.history.slice().reverse().forEach(m=>{const p=document.createElement("button");p.type="button",p.className="nft-history-row",p.title=`View full transaction ${m.txid}`;const f=document.createElement("strong");f.textContent=m.action;const h=document.createElement("span");h.textContent=`Block ${Number(m.block).toLocaleString()}`;const w=document.createElement("small");w.textContent=Gn(m.txid),p.append(f,h,w),p.addEventListener("click",()=>{fn({txid:m.txid,block_height:Number(m.block),transaction_hex:""},"nft")}),u.append(p)});else{const m=document.createElement("p");m.textContent="No provenance records were returned.",u.append(m)}else{const m=document.createElement("p");m.textContent="Loading provenance...",u.append(m)}}function Zn(e){xe(e),I("nft-detail-screen")}async function mt(e){const t=an().filter(r=>!r.details&&!r.loading);let n=0;const o=async()=>{for(;n[Ne(r.name,r.series),r]));H=x.nfts.map(r=>{const i=x==null?void 0:x.balances.find(l=>Ne(l.asset,Number(l.nft_series||0))===Ne(r.name,Number(r.series||0)));if(!i||!Yn(i.balance))return null;const a=n.get(Ne(r.name,r.series));return{name:r.name.trim(),series:Number(r.series||0),origin_txid:r.origin_txid,ownership_type:Number(r.ownership_type||0),supply:r.supply,balance:i.balance,details:a==null?void 0:a.details,error:a==null?void 0:a.error}}).filter(r=>r!==null).sort((r,i)=>r.name.localeCompare(i.name)||r.series-i.series);const o=Math.max(1,Math.ceil(H.length/we));K=Math.min(K,o),Ce(),await mt(t)}function Xn(e){const t=c("known-addresses");t.replaceChildren(),e.wallets.forEach(n=>{const o=document.createElement("div");o.className=`known-address${n.active?" active-address":""}`;const r=document.createElement("button");r.type="button",r.className="address-select",r.dataset.walletId=n.id;const i=document.createElement("span");i.className="address-avatar";const a=document.createElement("img");a.src=chrome.runtime.getURL("contractless-logo.png"),a.alt="",i.append(a);const l=document.createElement("span");l.className="address-details";const s=document.createElement("strong");s.textContent=n.label;const d=document.createElement("small");d.textContent=n.address,l.append(s,d);const u=document.createElement("span");u.className="selected-mark",u.textContent=n.active?"✓":"",r.append(i,l,u),r.addEventListener("click",()=>{if(n.active){z(!1);return}U(async()=>{z(!1),fe="",ie="",V(await $("switch-wallet",{walletId:n.id}))})});const m=document.createElement("button");m.type="button",m.className="rename-address",m.title="Rename wallet",m.setAttribute("aria-label",`Rename ${n.label}`),m.textContent="✎",m.addEventListener("click",()=>{const p=window.prompt("Wallet label",n.label);p===null||p.trim()===n.label||U(async()=>{const f=await $("rename-wallet",{walletId:n.id,label:p});V(f),z(!0)})}),o.append(r,m),t.append(o)})}function z(e){const t=c("account-drawer"),n=c("drawer-backdrop"),o=c("account-menu-button");t.classList.toggle("open",e),t.setAttribute("aria-hidden",String(!e)),o.setAttribute("aria-expanded",String(e)),n.hidden=!e}function gt(){c("revealed-private-key").value="",c("private-key-result").hidden=!0}function Ee(e){if(c("backup-key-modal").hidden=!e,c("backup-key-backdrop").hidden=!e,e){const t=c("backup-key-input");t.value="",t.focus()}else c("backup-key-input").value="",dt=void 0}async function er(){const e=await $("wallet-receive-address"),t=String(e.receiveAddress??"");if(!t)throw new Error("No active wallet address is available.");c("receive-address-label").textContent=e.vanity?"Vanity address":"Wallet address",c("receive-address-value").textContent=t;const n=c("receive-qr");await jn.toCanvas(n,t,{width:220,margin:1,errorCorrectionLevel:"M",color:{dark:"#071016",light:"#ffffff"}}),I("receive-screen")}function Y(e,t){const n=e.trim();if(!/^(?:0|[1-9]\d*)(?:\.\d{1,8})?$/.test(n))throw new Error(`${t} must be a positive number with no more than 8 decimal places.`);const[o,r=""]=n.split(".");return BigInt(o)*100000000n+BigInt(r.padEnd(8,"0"))}function ne(e){const t=e/100000000n,n=(e%100000000n).toString().padStart(8,"0");return`${t}.${n}`}function sn(){if(P)return P.balance;const e=c("send-asset").value,t=x==null?void 0:x.balances.find(n=>n.nft_series===0&&n.asset.trim().toUpperCase()===e);return(t==null?void 0:t.balance)??"0.00000000"}function cn(){const e=c("send-asset").value,t=(g==null?void 0:g.networkSymbol)??"CLTC";if(e!==t)return 100000000n;const n=c("send-amount").value.trim();if(!n)return 0n;try{return(Y(n,"Amount")+99n)/100n}catch{return 0n}}function Re(){const e=(P==null?void 0:P.name)??c("send-asset").value,t=(g==null?void 0:g.networkSymbol)??"CLTC",n=P?be(P):e;c("send-amount-symbol").textContent=n,c("send-available").textContent=`Available: ${sn()} ${n}`;const o=cn();c("send-fee").value=ne(o),c("send-fee-note").textContent=!P&&e===t?"Minimum fee: 1% of the transfer amount.":`Minimum fee: 1 ${t} for asset transfers.`}function tr(){const e=c("send-asset");e.replaceChildren();const t=(g==null?void 0:g.networkSymbol)??"CLTC",n=new Set([t]);x==null||x.tokens.forEach(o=>{const r=o.token.trim().toUpperCase();(x==null?void 0:x.balances.find(a=>a.nft_series===0&&a.asset.trim().toUpperCase()===r&&Y(a.balance,"Balance")>0n))&&n.add(r)}),n.forEach(o=>{const r=document.createElement("option");r.value=o,r.textContent=o,e.append(r)}),Re()}function nr(){if(!x)throw new Error("Wallet balances are still loading.");P=void 0,G=void 0,c("send-form").reset(),c("send-asset").disabled=!1,c("send-amount").disabled=!1,tr(),I("send-screen")}function rr(e){if(!x)throw new Error("Wallet balances are still loading.");P=e,G=void 0,c("send-form").reset();const t=c("send-asset");t.replaceChildren();const n=document.createElement("option");n.value=e.name,n.textContent=be(e),t.append(n),t.disabled=!0;const o=c("send-amount");e.ownership_type===0?(o.value="1.00000000",o.disabled=!0):(o.value="",o.disabled=!1),Re(),I("send-screen")}async function or(){var w;if(!(g!=null&&g.address))throw new Error("No active wallet is available.");const e=(P==null?void 0:P.name)??c("send-asset").value,t=P?be(P):e,n=Q(c("send-recipient").value,"Enter a receiving address."),o=Q(c("send-amount").value,"Enter an amount to send."),r=Q(c("send-fee").value,"Enter a transaction fee."),i=Y(o,"Amount"),a=Y(r,"Transaction fee");if(i===0n)throw new Error("The transfer amount must be greater than zero.");if((P==null?void 0:P.ownership_type)===0&&i!==100000000n)throw new Error("An indivisible NFT must be transferred as one complete asset.");if((P==null?void 0:P.ownership_type)===1&&i>100000000n)throw new Error("A fractional NFT/RWA transfer cannot exceed one complete asset.");const l=cn();if(as)throw new Error(`Insufficient ${e} balance.`);const d=g.networkSymbol,u=((w=x==null?void 0:x.balances.find(R=>R.nft_series===0&&R.asset.trim().toUpperCase()===d))==null?void 0:w.balance)??"0.00000000",m=Y(u,"Base balance");if((e===d?i+a:a)>m)throw new Error(`Insufficient ${d} balance including the fee.`);const f=await $("wallet-prepare-transfer",{receiver:n,asset:e,nftSeries:(P==null?void 0:P.series)??0,valueAtomic:i.toString(),feeAtomic:a.toString()}),h=e===d?`${ne(i+a)} ${d}`:`${ne(i)} ${t} + ${ne(a)} ${d}`;G={transaction:f.transaction,receiverInput:f.receiverInput,asset:e,amount:ne(i),fee:ne(a),total:h},c("review-amount").textContent=G.amount,c("review-asset").textContent=t,c("review-sender").textContent=g.address,c("review-recipient").textContent=f.receiverInput,c("review-resolved-recipient").textContent=String(f.review.receiver??""),c("review-fee").textContent=G.fee,c("review-total").textContent=h,I("send-review-screen")}function ln(e){if(!/^[0-9a-f]+$/i.test(e)||e.length<10)return;const t=e.slice(2,10).match(/../g);if(!t||t.length!==4)return;const n=t.reduce((r,i,a)=>r+Number.parseInt(i,16)*2**(a*8),0),o=new Date(n*1e3);return Number.isNaN(o.getTime())?void 0:o}function ir(e){return e.split("_").map(t=>t&&`${t[0].toUpperCase()}${t.slice(1)}`).join(" ")}function re(e){try{const t=ne(BigInt(String(e??"0"))),[n,o]=t.split("."),r=o.replace(/0+$/,"");return r?`${n}.${r}`:`${n}.0`}catch{return String(e??"")}}function ar(e,t){var o;return t.startsWith("txfee")?!0:((o={1:new Set(["value"]),2:new Set(["value"]),3:new Set(["number"]),6:new Set(["value1","value2","tip1","tip2"]),7:new Set(["loan_amount","collateral_amount","payment_amount","max_late_value"]),8:new Set(["payback_amount","tip"]),10:new Set(["value"]),11:new Set(["number"])}[e])==null?void 0:o.has(t))??!1}function dn(e,t,n){if(typeof n=="boolean")return n?"True":"False";if(ar(e,t))return re(n);if(t==="time"||t==="timestamp"||t==="offer_expiration"){const o=Number(n);if(Number.isFinite(o))return`${new Date(o*1e3).toLocaleString()} (${o})`}return t==="payment_period"?{d:"Daily",w:"Weekly",m:"Monthly"}[String(n).trim().toLowerCase()]??String(n??""):e===3&&t==="hard_limit"?Number(n)===1?"Yes":"No":e===4&&t==="series"?Number(n)===1?"Series":"Single NFT/RWA":e===4&&t==="ownership_type"?Number(n)===1?"Fractional ownership":"Complete ownership":(e===201||e===202)&&t==="vote"?Number(n)===1?"Approve":"Reject":(t==="previous"||t.endsWith("_hash"))&&/^0+$/.test(String(n))?"None":e===5&&(t==="impression_value"||t==="click_value")?(Number(n)/100).toFixed(2):typeof n=="string"?n.trim():String(n??"")}function q(e,t,n,o=!1,r=0){const i=document.createElement("div");i.className=`transaction-field${o?" technical-field":""}`;const a=document.createElement("span");a.textContent=ir(t);const l=document.createElement("strong");l.textContent=o?String(n??""):dn(r,t,n),i.append(a,l),e.append(i)}function ht(e,t){return!e||!t||t=he?`${n} confirmations`:`${n}/${he} confirmations`:`Pending · 0/${he} confirmations`}async function fn(e,t="activity"){_e=e,tn=t;const n=c("close-transaction");n.title=t==="nft"?"Back to NFT/RWA details":"Back to activity",n.setAttribute("aria-label",t==="nft"?"Back to NFT/RWA details":"Back to activity"),I("transaction-screen"),c("transaction-title").textContent="Loading transaction",c("transaction-header-status").textContent="",c("transaction-full-txid").textContent=e.txid,c("transaction-overview").replaceChildren(),c("transaction-fields").replaceChildren(),c("transaction-technical-fields").replaceChildren(),c("transaction-miner-earnings").replaceChildren(),c("miner-earnings-section").hidden=!0;try{const o=await $("wallet-transaction",{txid:e.txid}),r=await Yt((g==null?void 0:g.selectedNetwork)??"testnet"),i=JSON.parse(r.decode_transaction(o.transaction_hex)),l=ht(o.block_height,o.current_height){q(u,f,h,!1,i.txtype)});const m=e.miner_earnings??[];if(m.length>0){const f=c("transaction-miner-earnings");m.forEach((h,w)=>{q(f,`earning_${w+1}_type`,h.type),q(f,`earning_${w+1}_asset`,h.asset),q(f,`earning_${w+1}_nft_series`,h.nft_series),q(f,`earning_${w+1}_amount`,`${re(h.amount_atomic)} ${h.asset.trim()}`)}),c("miner-earnings-section").hidden=!1}const p=c("transaction-technical-fields");i.stored_hash&&q(p,"stored_hash",i.stored_hash,!0),i.signature&&q(p,"signature",i.signature,!0),i.signature1&&q(p,"signature_1",i.signature1,!0),i.signature2&&q(p,"signature_2",i.signature2,!0),q(p,"raw_transaction_bytes",o.transaction_hex,!0)}catch(o){c("transaction-title").textContent="Transaction unavailable";const r=c("transaction-fields");r.replaceChildren(),q(r,"error",F(o))}}function ue(e){const t=String(e??"").trim();return t.length>18?`${t.slice(0,8)}...${t.slice(-7)}`:t}function sr(e,t){const n=e.fields,o=t.trim().toLowerCase(),r=(g==null?void 0:g.networkSymbol)??"CLTC",i=s=>String(n[s]??"").trim(),a=(s,d,u="")=>`${u}${re(n[s])} ${d}`,l=()=>`-${re(n.txfee??0)} ${r}`;switch(e.txtype){case 1:return{title:"Mining reward",subtitle:"From network",amount:a("value",r,"+"),direction:"incoming"};case 2:{const s=i("coin"),d=String(n.sender??"").trim().toLowerCase()===o;return{title:d?`Sent ${s}`:`Received ${s}`,subtitle:d?`To: ${ue(n.receiver)}`:`From: ${ue(n.sender)}`,amount:a("value",s,d?"-":"+"),direction:d?"outgoing":"incoming"}}case 3:{const s=i("ticker");return{title:`Created ${s}`,subtitle:"Token creation",amount:a("number",s,"+"),secondary:l(),direction:"incoming"}}case 4:{const s=String(n.count??"1");return{title:`Created ${i("nft_name")}`,subtitle:Number(n.series??0)===0?"NFT/RWA":"NFT/RWA collection",amount:`+${s} ${Number(s)===1?"item":"items"}`,secondary:l(),direction:"incoming"}}case 6:{const s=String(n.sender1??"").trim().toLowerCase()===o,d=i(s?"ticker1":"ticker2"),u=i(s?"ticker2":"ticker1");return{title:"Completed swap",subtitle:`With: ${ue(n[s?"sender2":"sender1"])}`,amount:a(s?"value1":"value2",d,"-"),secondary:a(s?"value2":"value1",u,"+"),direction:"neutral"}}case 7:{const s=String(n.lender??"").trim().toLowerCase()===o;return{title:s?"Loan funded":"Loan received",subtitle:s?`To: ${ue(n.borrower)}`:`From: ${ue(n.lender)}`,amount:a("loan_amount",i("loan_coin"),s?"-":"+"),direction:s?"outgoing":"incoming"}}case 8:return{title:"Loan payment",subtitle:`Contract: ${ue(n.contract_hash)}`,amount:`-${re(n.payback_amount)}`,direction:"outgoing"};case 10:return{title:`Burned ${i("coin")}`,subtitle:"Removed from supply",amount:a("value",i("coin"),"-"),direction:"outgoing"};case 11:{const s=i("ticker");return{title:`Issued ${s}`,subtitle:"Additional token supply",amount:a("number",s,"+"),secondary:l(),direction:"incoming"}}case 12:return{title:"Created vanity address",subtitle:String(n.vanity_address??"").trim(),amount:l(),direction:"outgoing"};default:return{title:e.transaction_name,subtitle:"Contractless transaction",amount:l(),direction:"outgoing"}}}async function cr(e,t){const n=c("activity-list");if(n.replaceChildren(),c("activity-count").textContent=`${e.length} shown`,e.length===0){const r=document.createElement("div");r.className="activity-empty";const i=document.createElement("strong");i.textContent="No wallet activity found";const a=document.createElement("span");a.textContent="New transactions will appear here after they reach the selected API.",r.append(i,a),n.append(r);return}const o=await Yt((g==null?void 0:g.selectedNetwork)??"testnet");e.forEach(r=>{let i;try{i=JSON.parse(o.decode_transaction(r.transaction_hex))}catch{const E=Number.parseInt(r.transaction_hex.slice(0,2),16);i={txtype:E,transaction_name:On[E]??`Transaction Type ${E}`,fields:{}}}const a=sr(i,(g==null?void 0:g.address)??""),l=ln(r.transaction_hex),d=ht(r.block_height,t){fn(r)}),n.append(u)})}async function mn(){if(!(g!=null&&g.unlocked))return;c("activity-count").textContent="Loading";const e=c("activity-list");e.replaceChildren();const t=document.createElement("div");t.className="activity-empty",t.textContent="Loading recent activity...",e.append(t);try{const n=await $("wallet-activity");await cr(Array.isArray(n.transactions)?n.transactions:[],Number(n.current_height??0))}catch(n){e.replaceChildren();const o=document.createElement("div");o.className="activity-empty activity-error",o.textContent=F(n),e.append(o),c("activity-count").textContent="Unavailable"}}function F(e){return e instanceof Error?e.message:String(e).replace(/^JsValue\((.*)\)$/,"$1")}async function U(e,t=!1){M.textContent="",t&&I("loading");try{await e()}catch(n){throw M.textContent=F(n),n}}function Q(e,t){if(!e.trim())throw new Error(t);return e}function lr(e){let t="";for(let o=0;oURL.revokeObjectURL(r),1e3)}async function gn(e,t){g=e,fe=t,ie=String(await $("export-private-key-image",{password:t,imagePassword:t})),c("wallet-image-preview").src=`data:image/png;base64,${ie}`;const n=c("backup-confirmed");n.disabled=!0,n.checked=!1,c("open-wallet").disabled=!0,I("backup-screen")}document.querySelectorAll(".navigation").forEach(e=>{e.addEventListener("click",()=>{const t=String(e.dataset.screen);if(t==="image-screen"&&en){chrome.tabs.create({url:chrome.runtime.getURL("import-wallet.html"),active:!0});return}I(t)})});c("account-menu-button").addEventListener("click",()=>z(!0));c("close-account-drawer").addEventListener("click",()=>z(!1));c("drawer-backdrop").addEventListener("click",()=>z(!1));function hn(e){z(!1),c("cancel-wallet-add").hidden=!1,I(e)}c("menu-create-wallet").addEventListener("click",()=>{hn("create-screen")});c("menu-import-wallet").addEventListener("click",()=>{z(!1),en?chrome.tabs.create({url:chrome.runtime.getURL("import-wallet.html"),active:!0}):hn("image-screen")});c("cancel-wallet-add").addEventListener("click",()=>{c("cancel-wallet-add").hidden=!0,g&&V(g)});c("menu-settings").addEventListener("click",()=>{z(!1),gt(),g&&(c("settings-testnet-api-url").value=g.testnetApiUrl,c("settings-mainnet-api-url").value=g.mainnetApiUrl,c("settings-lock-timeout").value=String(g.autoLockMinutes)),I("settings-screen")});c("close-settings").addEventListener("click",()=>{gt(),g&&V(g)});c("drawer-lock-wallet").addEventListener("click",()=>{U(async()=>{z(!1),fe="",ie="",V(await $("lock"))})});c("open-receive").addEventListener("click",()=>{U(er)});c("open-send").addEventListener("click",()=>{U(async()=>nr())});c("close-send").addEventListener("click",()=>{G=void 0,P?(xe(P),I("nft-detail-screen")):g&&V(g)});c("send-asset").addEventListener("change",Re);c("send-amount").addEventListener("input",Re);c("send-form").addEventListener("submit",e=>{e.preventDefault(),U(or)});c("send-form").addEventListener("keydown",e=>{!(e instanceof KeyboardEvent)||e.key!=="Enter"||e.target instanceof HTMLInputElement&&(e.preventDefault(),c("send-form").requestSubmit())});c("edit-send").addEventListener("click",()=>{I("send-screen")});c("sign-broadcast-transfer").addEventListener("click",()=>{U(async()=>{if(!G)throw new Error("The reviewed transfer is unavailable.");ve=(await $("wallet-broadcast-transfer",{transaction:G.transaction})).txid,c("send-result-txid").textContent=ve,G=void 0,I("send-success-screen")})});c("copy-send-txid").addEventListener("click",()=>{ve&&navigator.clipboard.writeText(ve).then(()=>{M.textContent="Transaction ID copied."}).catch(e=>{M.textContent=F(e)})});c("finish-send").addEventListener("click",()=>{ve="";const e=!!P;P=void 0,g&&(Be(),e?(Z=void 0,I("nfts-screen"),pt(!0)):V(g))});c("open-activity").addEventListener("click",()=>{I("activity-screen"),mn()});c("open-nfts").addEventListener("click",()=>{K=1,Z=void 0,I("nfts-screen"),pt(!0)});c("close-nfts").addEventListener("click",()=>{ae+=1,g&&V(g)});c("refresh-nfts").addEventListener("click",()=>{pt(!0)});c("close-nft-detail").addEventListener("click",()=>{Z=void 0,I("nfts-screen")});c("transfer-nft").addEventListener("click",()=>{U(async()=>{if(!Z)throw new Error("No NFT or RWA is selected.");rr(Z)})});c("nfts-previous").addEventListener("click",()=>{if(K<=1)return;K-=1;const e=++ae;Ce(),mt(e)});c("nfts-next").addEventListener("click",()=>{const e=Math.max(1,Math.ceil(H.length/we));if(K>=e)return;K+=1;const t=++ae;Ce(),mt(t)});c("close-activity").addEventListener("click",()=>{g&&V(g)});c("close-transaction").addEventListener("click",()=>{tn==="nft"&&Z?(xe(Z),I("nft-detail-screen")):I("activity-screen")});c("copy-transaction-txid").addEventListener("click",()=>{const e=_e==null?void 0:_e.txid;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Transaction ID copied."}).catch(t=>{M.textContent=F(t)})});c("refresh-activity").addEventListener("click",()=>{mn()});c("refresh-balances").addEventListener("click",()=>{Be()});document.querySelectorAll("[data-token-filter]").forEach(e=>{e.addEventListener("click",()=>{Te=e.dataset.tokenFilter==="all"?"all":"held",document.querySelectorAll("[data-token-filter]").forEach(t=>{t.classList.toggle("active",t===e)}),st()})});c("close-receive").addEventListener("click",()=>{g&&V(g)});c("copy-receive-address").addEventListener("click",()=>{var t;const e=(t=c("receive-address-value").textContent)==null?void 0:t.trim();if(!e){M.textContent="No active wallet address is available.";return}navigator.clipboard.writeText(e).then(()=>{M.textContent="Wallet address copied."}).catch(n=>{M.textContent=F(n)})});c("save-wallet-settings").addEventListener("click",()=>{U(async()=>{const e=c("settings-testnet-api-url").value.replace(/\/+$/,""),t=c("settings-mainnet-api-url").value.replace(/\/+$/,"");if(!e)throw new Error("A testnet API URL is required.");for(const n of[e,t].filter(Boolean)){const o=new URL(n);if(o.protocol!=="https:"&&o.hostname!=="localhost"&&o.hostname!=="127.0.0.1")throw new Error("Contractless API URLs must use HTTPS.");const r=`${o.origin}/*`;if(!await chrome.permissions.contains({origins:[r]})&&!await chrome.permissions.request({origins:[r]}))throw new Error("Permission to contact this API endpoint was denied.")}g=await $("save-settings",{testnetApiUrl:e,mainnetApiUrl:t,autoLockMinutes:c("settings-lock-timeout").value}),M.textContent="Settings saved."})});document.querySelectorAll("[data-select-network]").forEach(e=>{e.addEventListener("click",()=>{const t=e.dataset.selectNetwork;!t||t===(g==null?void 0:g.selectedNetwork)||U(async()=>{z(!1),V(await $("switch-network",{network:t}))})})});document.querySelectorAll("[data-backup-action]").forEach(e=>{e.addEventListener("click",()=>{dt=e.dataset.backupAction,Ee(!0)})});c("close-backup-key").addEventListener("click",()=>Ee(!1));c("backup-key-backdrop").addEventListener("click",()=>Ee(!1));c("confirm-backup-key").addEventListener("click",()=>{const e=dt,t=c("backup-key-input").value;if(e){if(!t){M.textContent="Enter the active wallet encryption key.";return}U(async()=>{var r;if(e==="image"){const i=String(await $("export-private-key-image",{password:t,imagePassword:t})),a=((r=g==null?void 0:g.address)==null?void 0:r.split(".")[0])??"contractless";pn(i,`${a}.wallet.png`),Ee(!1),M.textContent="Wallet image downloaded.";return}const n=await $("reveal-private-key",{password:t});if(Ee(!1),e==="private"){c("revealed-private-key").value=n.privateKey,c("private-key-result").hidden=!1,c("private-key-result").scrollIntoView({block:"nearest"});return}const o=crypto.randomUUID();await chrome.storage.session.set({[`print-backup:${o}`]:{label:n.label,address:n.address,privateKey:n.privateKey,encryptionKey:t}}),await chrome.windows.create({url:chrome.runtime.getURL(`print.html?id=${encodeURIComponent(o)}`),type:"popup",width:820,height:760})})}});c("clear-private-key").addEventListener("click",gt);c("copy-private-key").addEventListener("click",()=>{const e=c("revealed-private-key").value;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Private key copied."}).catch(t=>{M.textContent=F(t)})});document.querySelectorAll(".reveal").forEach(e=>{e.addEventListener("click",()=>{const t=c(String(e.dataset.input)),n=t.type==="text";t.type=n?"password":"text",e.textContent=n?"Show":"Hide"})});c("continue-create").addEventListener("click",()=>{try{Le=Q(c("new-password").value,"Enter an encryption key."),c("verify-password").value="",I("verify-screen")}catch(e){M.textContent=F(e)}});c("create-wallet").addEventListener("click",()=>{if(c("verify-password").value!==Le){M.textContent="The encryption keys do not match.";return}U(async()=>{const t=Le,n=await $("create-wallet",{password:t});Le="",c("new-password").value="",c("verify-password").value="",await gn(n,t)},!0).catch(()=>I("verify-screen",!1))});const ct=c("wallet-image");ct.addEventListener("change",()=>{var t;const e=(t=ct.files)==null?void 0:t[0];ge="",c("image-file-name").textContent=(e==null?void 0:e.name)??"Choose wallet image",e&&e.arrayBuffer().then(n=>{ge=lr(new Uint8Array(n))}).catch(n=>{M.textContent=F(n)})});c("import-image-form").addEventListener("submit",e=>{e.preventDefault();const t=c("image-password").value;try{Q(t,"Enter the wallet image encryption key."),Q(ge,"Choose a wallet image.")}catch(n){M.textContent=F(n);return}U(async()=>{const n=await $("import-wallet-image",{imageBase64:ge,imagePassword:t,password:t});fe=t,ge="",ct.value="",c("image-password").value="",V(n)},!0).catch(()=>I("image-screen",!1))});c("import-private").addEventListener("click",()=>{const e=c("private-key").value.trim(),t=c("private-password").value;try{Q(e,"Paste the private key."),Q(t,"Enter a new encryption key.")}catch(n){M.textContent=F(n);return}U(async()=>{const n=await $("import-private-key",{privateKey:e,password:t});c("private-key").value="",c("private-password").value="",await gn(n,t)},!0).catch(()=>I("private-screen",!1))});c("save-image").addEventListener("click",()=>{U(async()=>{var n;if(!ie)throw new Error("The wallet image is not ready.");const e=((n=g==null?void 0:g.address)==null?void 0:n.split(".")[0])??"contractless";pn(ie,`${e}.wallet.png`);const t=c("backup-confirmed");t.disabled=!1,t.checked=!1,c("open-wallet").disabled=!0})});c("backup-confirmed").addEventListener("change",e=>{c("open-wallet").disabled=!e.currentTarget.checked});c("open-wallet").addEventListener("click",()=>{fe="",ie="",c("wallet-image-preview").removeAttribute("src"),g&&V(g)});c("unlock-form").addEventListener("submit",e=>{e.preventDefault();const t=c("unlock-password").value;try{Q(t,"Enter your encryption key.")}catch(n){M.textContent=F(n);return}U(async()=>{const n=await $("unlock",{password:t});fe=t,c("unlock-password").value="",V(n)},!0).catch(()=>I("locked-screen",!1))});c("approve-provider-approval").addEventListener("click",()=>{oe&&(ye("approve"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!0});oe="",await nn(e.remaining??0,!0)}).catch(()=>ye(null)))});c("reject-provider-approval").addEventListener("click",()=>{oe&&(ye("reject"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!1});oe="",await nn(e.remaining??0,!1)}).catch(()=>ye(null)))});$("status").then(e=>V(e)).catch(e=>{I("create-screen"),M.textContent=F(e)}); diff --git a/extension/dist/firefox/print.html b/extension/dist/firefox/print.html new file mode 100644 index 0000000..7eeccfa --- /dev/null +++ b/extension/dist/firefox/print.html @@ -0,0 +1,44 @@ + + + + + + Contractless Wallet Backup + + + + + +
+ +
+

Contractless Wallet Backup

+

Private recovery information

+
+
+ +

+ Keep this page private. Anyone with the private key and encryption key can + control this wallet. +

+ +
+

Wallet

+

+    
+
+

Address

+

+    
+
+

Private Key

+

+    
+
+

Encryption Key

+

+    
+ + + + diff --git a/extension/dist/firefox/print.js b/extension/dist/firefox/print.js new file mode 100644 index 0000000..c86b6e5 --- /dev/null +++ b/extension/dist/firefox/print.js @@ -0,0 +1 @@ +import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";async function a(){const e=new URLSearchParams(location.search).get("id");if(!e)throw new Error("Missing printable wallet backup.");const n=`print-backup:${e}`,o=await chrome.storage.session.get(n);await chrome.storage.session.remove(n);const t=o[n];if(!t)throw new Error("The printable wallet backup has expired.");document.getElementById("wallet-label").textContent=t.label,document.getElementById("wallet-address").textContent=t.address,document.getElementById("wallet-private-key").textContent=t.privateKey,document.getElementById("wallet-encryption-key").textContent=t.encryptionKey,setTimeout(()=>{window.focus(),window.print()},150)}a().catch(e=>{document.getElementById("print-error").textContent=e instanceof Error?e.message:String(e)}); diff --git a/extension/dist/firefox/provider.js b/extension/dist/firefox/provider.js new file mode 100644 index 0000000..47444f0 --- /dev/null +++ b/extension/dist/firefox/provider.js @@ -0,0 +1 @@ +const a=new Map;window.addEventListener("message",e=>{var s,t,o;if(e.source!==window||((s=e.data)==null?void 0:s.source)!=="contractless-wallet")return;const r=a.get(e.data.id);r&&(a.delete(e.data.id),(t=e.data.response)!=null&&t.ok?r.resolve(e.data.response.result):r.reject(new Error(((o=e.data.response)==null?void 0:o.error)??"Wallet request failed.")))});const n=Object.freeze({isContractless:!0,request({method:e,params:r}){const s=crypto.randomUUID();return new Promise((t,o)=>{a.set(s,{resolve:t,reject:o}),window.postMessage({source:"contractless-page",id:s,method:e,params:r},window.location.origin)})}});Object.defineProperty(window,"contractless",{value:n,writable:!1,configurable:!1}); diff --git a/extension/dist/manifest.json b/extension/dist/manifest.json new file mode 100644 index 0000000..c8137d2 --- /dev/null +++ b/extension/dist/manifest.json @@ -0,0 +1,45 @@ +{ + "manifest_version": 3, + "name": "Contractless Wallet", + "version": "0.1.1", + "description": "A local-signing Web3 wallet for Contractless.", + "content_security_policy": { + "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'" + }, + "permissions": ["storage", "alarms", "activeTab", "clipboardWrite"], + "host_permissions": ["https://api.contractless.dev/*"], + "optional_host_permissions": ["https://*/"], + "action": { + "default_popup": "popup.html", + "default_title": "Contractless Wallet", + "default_icon": { + "16": "contractless-logo.png", + "32": "contractless-logo.png", + "48": "contractless-logo.png", + "128": "contractless-logo.png" + } + }, + "icons": { + "16": "contractless-logo.png", + "32": "contractless-logo.png", + "48": "contractless-logo.png", + "128": "contractless-logo.png" + }, + "background": { + "service_worker": "background.js", + "type": "module" + }, + "content_scripts": [ + { + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"], + "js": ["content.js"], + "run_at": "document_start" + } + ], + "web_accessible_resources": [ + { + "resources": ["provider.js"], + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"] + } + ] +} diff --git a/extension/dist/popup.html b/extension/dist/popup.html new file mode 100644 index 0000000..77a3b93 --- /dev/null +++ b/extension/dist/popup.html @@ -0,0 +1,635 @@ + + + + + + Contractless Wallet + + + + + + +
+
+
+ Contractless +
+
+

Opening wallet

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/extension/dist/popup.js b/extension/dist/popup.js new file mode 100644 index 0000000..6f113ab --- /dev/null +++ b/extension/dist/popup.js @@ -0,0 +1,8 @@ +import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";import{c as Yt}from"./chunks/core-CvwXoH-U.js";function yn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var de={},De,Ct;function Cn(){return Ct||(Ct=1,De=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),De}var Ue={},ee={},Et;function se(){if(Et)return ee;Et=1;let e;const t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return ee.getSymbolSize=function(o){if(!o)throw new Error('"version" cannot be null or undefined');if(o<1||o>40)throw new Error('"version" should be in range from 1 to 40');return o*4+17},ee.getSymbolTotalCodewords=function(o){return t[o]},ee.getBCHDigit=function(n){let o=0;for(;n!==0;)o++,n>>>=1;return o},ee.setToSJISFunction=function(o){if(typeof o!="function")throw new Error('"toSJISFunc" is not a valid function.');e=o},ee.isKanjiModeEnabled=function(){return typeof e<"u"},ee.toSJIS=function(o){return e(o)},ee}var Fe={},bt;function lt(){return bt||(bt=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,r){if(e.isValid(o))return o;try{return t(o)}catch{return r}}})(Fe)),Fe}var qe,kt;function En(){if(kt)return qe;kt=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const n=Math.floor(t/8);return(this.buffer[n]>>>7-t%8&1)===1},put:function(t,n){for(let o=0;o>>n-o-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),t&&(this.buffer[n]|=128>>>this.length%8),this.length++}},qe=e,qe}var Ve,At;function bn(){if(At)return Ve;At=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,n,o,r){const i=t*this.size+n;this.data[i]=o,r&&(this.reservedBit[i]=!0)},e.prototype.get=function(t,n){return this.data[t*this.size+n]},e.prototype.xor=function(t,n,o){this.data[t*this.size+n]^=o},e.prototype.isReserved=function(t,n){return this.reservedBit[t*this.size+n]},Ve=e,Ve}var Ke={},Lt;function kn(){return Lt||(Lt=1,(function(e){const t=se().getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const r=Math.floor(o/7)+2,i=t(o),a=i===145?26:Math.ceil((i-13)/(2*r-2))*2,l=[i-7];for(let c=1;c=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const i=r.size;let a=0,l=0,c=0,d=null,u=null;for(let f=0;f=5&&(a+=t.N1+(l-5)),d=m,l=1),m=r.get(p,f),m===u?c++:(c>=5&&(a+=t.N1+(c-5)),u=m,c=1)}l>=5&&(a+=t.N1+(l-5)),c>=5&&(a+=t.N1+(c-5))}return a},e.getPenaltyN2=function(r){const i=r.size;let a=0;for(let l=0;l=10&&(l===1488||l===93)&&a++,c=c<<1&2047|r.get(u,d),u>=10&&(c===1488||c===93)&&a++}return a*t.N3},e.getPenaltyN4=function(r){let i=0;const a=r.data.length;for(let c=0;c=0;){const a=i[0];for(let c=0;c0){const l=new Uint8Array(this.degree);return l.set(i,a),l}return i},We=t,We}var Je={},He={},Ye={},Rt;function Qt(){return Rt||(Rt=1,Ye.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),Ye}var z={},It;function Zt(){if(It)return z;It=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let n="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";n=n.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+n+`)(?:.|[\r +]))+`;z.KANJI=new RegExp(n,"g"),z.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),z.BYTE=new RegExp(o,"g"),z.NUMERIC=new RegExp(e,"g"),z.ALPHANUMERIC=new RegExp(t,"g");const r=new RegExp("^"+n+"$"),i=new RegExp("^"+e+"$"),a=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return z.testKanji=function(c){return r.test(c)},z.testNumeric=function(c){return i.test(c)},z.testAlphanumeric=function(c){return a.test(c)},z}var Pt;function ce(){return Pt||(Pt=1,(function(e){const t=Qt(),n=Zt();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(i,a){if(!i.ccBits)throw new Error("Invalid mode: "+i);if(!t.isValid(a))throw new Error("Invalid version: "+a);return a>=1&&a<10?i.ccBits[0]:a<27?i.ccBits[1]:i.ccBits[2]},e.getBestModeForData=function(i){return n.testNumeric(i)?e.NUMERIC:n.testAlphanumeric(i)?e.ALPHANUMERIC:n.testKanji(i)?e.KANJI:e.BYTE},e.toString=function(i){if(i&&i.id)return i.id;throw new Error("Invalid mode")},e.isValid=function(i){return i&&i.bit&&i.ccBits};function o(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(i,a){if(e.isValid(i))return i;try{return o(i)}catch{return a}}})(He)),He}var Mt;function _n(){return Mt||(Mt=1,(function(e){const t=se(),n=Gt(),o=lt(),r=ce(),i=Qt(),a=7973,l=t.getBCHDigit(a);function c(p,m,g){for(let v=1;v<=40;v++)if(m<=e.getCapacity(v,g,p))return v}function d(p,m){return r.getCharCountIndicator(p,m)+4}function u(p,m){let g=0;return p.forEach(function(v){const R=d(v.mode,m);g+=R+v.getBitsLength()}),g}function f(p,m){for(let g=1;g<=40;g++)if(u(p,g)<=e.getCapacity(g,m,r.MIXED))return g}e.from=function(m,g){return i.isValid(m)?parseInt(m,10):g},e.getCapacity=function(m,g,v){if(!i.isValid(m))throw new Error("Invalid QR Code version");typeof v>"u"&&(v=r.BYTE);const R=t.getSymbolTotalCodewords(m),C=n.getTotalCodewordsCount(m,g),_=(R-C)*8;if(v===r.MIXED)return _;const E=_-d(v,m);switch(v){case r.NUMERIC:return Math.floor(E/10*3);case r.ALPHANUMERIC:return Math.floor(E/11*2);case r.KANJI:return Math.floor(E/13);case r.BYTE:default:return Math.floor(E/8)}},e.getBestVersionForData=function(m,g){let v;const R=o.from(g,o.M);if(Array.isArray(m)){if(m.length>1)return f(m,R);if(m.length===0)return 1;v=m[0]}else v=m;return c(v.mode,v.getLength(),R)},e.getEncodedBits=function(m){if(!i.isValid(m)||m<7)throw new Error("Invalid QR Code version");let g=m<<12;for(;t.getBCHDigit(g)-l>=0;)g^=a<=0;)c^=t<0&&(i=this.data.substr(r),a=parseInt(i,10),o.put(a,l*3+1))},Ze=t,Ze}var Xe,Ut;function Rn(){if(Ut)return Xe;Ut=1;const e=ce(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function n(o){this.mode=e.ALPHANUMERIC,this.data=o}return n.getBitsLength=function(r){return 11*Math.floor(r/2)+6*(r%2)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(r){let i;for(i=0;i+2<=this.data.length;i+=2){let a=t.indexOf(this.data[i])*45;a+=t.indexOf(this.data[i+1]),r.put(a,11)}this.data.length%2&&r.put(t.indexOf(this.data[i]),6)},Xe=n,Xe}var et,Ft;function In(){if(Ft)return et;Ft=1;const e=ce();function t(n){this.mode=e.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}return t.getBitsLength=function(o){return o*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(n){for(let o=0,r=this.data.length;o=33088&&i<=40956)i-=33088;else if(i>=57408&&i<=60351)i-=49472;else throw new Error("Invalid SJIS character: "+this.data[r]+` +Make sure your charset is UTF-8`);i=(i>>>8&255)*192+(i&255),o.put(i,13)}},tt=n,tt}var nt={exports:{}},Vt;function Mn(){return Vt||(Vt=1,(function(e){var t={single_source_shortest_paths:function(n,o,r){var i={},a={};a[o]=0;var l=t.PriorityQueue.make();l.push(o,0);for(var c,d,u,f,p,m,g,v,R;!l.empty();){c=l.pop(),d=c.value,f=c.cost,p=n[d]||{};for(u in p)p.hasOwnProperty(u)&&(m=p[u],g=f+m,v=a[u],R=typeof a[u]>"u",(R||v>g)&&(a[u]=g,l.push(u,g),i[u]=d))}if(typeof r<"u"&&typeof a[r]>"u"){var C=["Could not find a path from ",o," to ",r,"."].join("");throw new Error(C)}return i},extract_shortest_path_from_predecessor_list:function(n,o){for(var r=[],i=o;i;)r.push(i),n[i],i=n[i];return r.reverse(),r},find_path:function(n,o,r){var i=t.single_source_shortest_paths(n,o,r);return t.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(n){var o=t.PriorityQueue,r={},i;n=n||{};for(i in o)o.hasOwnProperty(i)&&(r[i]=o[i]);return r.queue=[],r.sorter=n.sorter||o.default_sorter,r},default_sorter:function(n,o){return n.cost-o.cost},push:function(n,o){var r={value:n,cost:o};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(nt)),nt.exports}var Kt;function $n(){return Kt||(Kt=1,(function(e){const t=ce(),n=xn(),o=Rn(),r=In(),i=Pn(),a=Zt(),l=se(),c=Mn();function d(C){return unescape(encodeURIComponent(C)).length}function u(C,_,E){const N=[];let D;for(;(D=C.exec(E))!==null;)N.push({data:D[0],index:D.index,mode:_,length:D[0].length});return N}function f(C){const _=u(a.NUMERIC,t.NUMERIC,C),E=u(a.ALPHANUMERIC,t.ALPHANUMERIC,C);let N,D;return l.isKanjiModeEnabled()?(N=u(a.BYTE,t.BYTE,C),D=u(a.KANJI,t.KANJI,C)):(N=u(a.BYTE_KANJI,t.BYTE,C),D=[]),_.concat(E,N,D).sort(function(L,A){return L.index-A.index}).map(function(L){return{data:L.data,mode:L.mode,length:L.length}})}function p(C,_){switch(_){case t.NUMERIC:return n.getBitsLength(C);case t.ALPHANUMERIC:return o.getBitsLength(C);case t.KANJI:return i.getBitsLength(C);case t.BYTE:return r.getBitsLength(C)}}function m(C){return C.reduce(function(_,E){const N=_.length-1>=0?_[_.length-1]:null;return N&&N.mode===E.mode?(_[_.length-1].data+=E.data,_):(_.push(E),_)},[])}function g(C){const _=[];for(let E=0;E=0&&k<=6&&(B===0||B===6)||B>=0&&B<=6&&(k===0||k===6)||k>=2&&k<=4&&B>=2&&B<=4?y.set(b+k,S+B,!0,!0):y.set(b+k,S+B,!1,!0))}}function g(y){const L=y.size;for(let A=8;A>k&1)===1,y.set(T,b,S,!0),y.set(b,T,S,!0)}function C(y,L,A){const w=y.size,T=u.getEncodedBits(L,A);let b,S;for(b=0;b<15;b++)S=(T>>b&1)===1,b<6?y.set(b,8,S,!0):b<8?y.set(b+1,8,S,!0):y.set(w-15+b,8,S,!0),b<8?y.set(8,w-b-1,S,!0):b<9?y.set(8,15-b-1+1,S,!0):y.set(8,15-b-1,S,!0);y.set(w-8,8,1,!0)}function _(y,L){const A=y.size;let w=-1,T=A-1,b=7,S=0;for(let k=A-1;k>0;k-=2)for(k===6&&k--;;){for(let B=0;B<2;B++)if(!y.isReserved(T,k-B)){let X=!1;S>>b&1)===1),y.set(T,k-B,X),b--,b===-1&&(S++,b=7)}if(T+=w,T<0||A<=T){T-=w,w=-w;break}}}function E(y,L,A){const w=new n;A.forEach(function(B){w.put(B.mode.bit,4),w.put(B.getLength(),f.getCharCountIndicator(B.mode,y)),B.write(w)});const T=e.getSymbolTotalCodewords(y),b=l.getTotalCodewordsCount(y,L),S=(T-b)*8;for(w.getLengthInBits()+4<=S&&w.put(0,4);w.getLengthInBits()%8!==0;)w.putBit(0);const k=(S-w.getLengthInBits())/8;for(let B=0;B=7&&R(B,L),_(B,S),isNaN(w)&&(w=a.getBestMask(B,C.bind(null,B,A))),a.applyMask(w,B),C(B,A,w),{modules:B,version:L,errorCorrectionLevel:A,maskPattern:w,segments:T}}return Ue.create=function(L,A){if(typeof L>"u"||L==="")throw new Error("No input text");let w=t.M,T,b;return typeof A<"u"&&(w=t.from(A.errorCorrectionLevel,t.M),T=d.from(A.version),b=a.from(A.maskPattern),A.toSJISFunc&&e.setToSJISFunction(A.toSJISFunc)),D(L,T,w,b)},Ue}var rt={},ot={},zt;function Xt(){return zt||(zt=1,(function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let o=n.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+n);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(i){return[i,i]}))),o.length===6&&o.push("F","F");const r=parseInt(o.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const r=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,i=o.width&&o.width>=21?o.width:void 0,a=o.scale||4;return{width:i,scale:i?4:a,margin:r,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,r){return r.width&&r.width>=o+r.margin*2?r.width/(o+r.margin*2):r.scale},e.getImageWidth=function(o,r){const i=e.getScale(o,r);return Math.floor((o+r.margin*2)*i)},e.qrToImageData=function(o,r,i){const a=r.modules.size,l=r.modules.data,c=e.getScale(a,i),d=Math.floor((a+i.margin*2)*c),u=i.margin*c,f=[i.color.light,i.color.dark];for(let p=0;p=u&&m>=u&&p"u"&&(!a||!a.getContext)&&(c=a,a=void 0),a||(d=o()),c=t.getOptions(c);const u=t.getImageWidth(i.modules.size,c),f=d.getContext("2d"),p=f.createImageData(u,u);return t.qrToImageData(p.data,i,c),n(f,d,u),f.putImageData(p,0,0),d},e.renderToDataURL=function(i,a,l){let c=l;typeof c>"u"&&(!a||!a.getContext)&&(c=a,a=void 0),c||(c={});const d=e.render(i,a,c),u=c.type||"image/png",f=c.rendererOpts||{};return d.toDataURL(u,f.quality)}})(rt)),rt}var it={},Wt;function Fn(){if(Wt)return it;Wt=1;const e=Xt();function t(r,i){const a=r.a/255,l=i+'="'+r.hex+'"';return a<1?l+" "+i+'-opacity="'+a.toFixed(2).slice(1)+'"':l}function n(r,i,a){let l=r+i;return typeof a<"u"&&(l+=" "+a),l}function o(r,i,a){let l="",c=0,d=!1,u=0;for(let f=0;f0&&p>0&&r[f-1]||(l+=d?n("M",p+a,.5+m+a):n("m",c,0),c=0,d=!1),p+1':"",m="',g='viewBox="0 0 '+f+" "+f+'"',R=''+p+m+` +`;return typeof l=="function"&&l(null,R),R},it}var Jt;function qn(){if(Jt)return de;Jt=1;const e=Cn(),t=Dn(),n=Un(),o=Fn();function r(i,a,l,c,d){const u=[].slice.call(arguments,1),f=u.length,p=typeof u[f-1]=="function";if(!p&&!e())throw new Error("Callback required as last argument");if(p){if(f<2)throw new Error("Too few arguments provided");f===2?(d=l,l=a,a=c=void 0):f===3&&(a.getContext&&typeof d>"u"?(d=c,c=void 0):(d=c,c=l,l=a,a=void 0))}else{if(f<1)throw new Error("Too few arguments provided");return f===1?(l=a,a=c=void 0):f===2&&!a.getContext&&(c=l,l=a,a=void 0),new Promise(function(m,g){try{const v=t.create(l,c);m(i(v,a,c))}catch(v){g(v)}})}try{const m=t.create(l,c);d(null,i(m,a,c))}catch(m){d(m)}}return de.create=t.create,de.toCanvas=r.bind(null,n.render),de.toDataURL=r.bind(null,n.renderToDataURL),de.toString=r.bind(null,function(i,a,l){return o.render(i,l)}),de}var Vn=qn();const Kn=yn(Vn),s=e=>document.getElementById(e),jn=Array.from(document.querySelectorAll(".screen")),M=s("notice");let Ne="",fe="",ge="",ie="",h,dt,Te="held",K=1,ae=0;const ve=8;let x,J=[],Z,P,_e,en="activity",Y,we="",oe="";const he=20,zn={1:"Mining Reward",2:"Transfer",3:"Token Creation",4:"NFT/RWA Creation",5:"Marketing",6:"Swap",7:"Loan",8:"Loan Payment",9:"Collateral Claim",10:"Asset Burn",11:"Token Issuance",12:"Vanity Address",100:"Storage Key",101:"Data Storage Bool",102:"Data Storage U8",103:"Data Storage U16",104:"Data Storage U32",105:"Data Storage U64",106:"Data Storage U128",107:"Data Storage String",108:"Data Storage I8",109:"Data Storage I16",110:"Data Storage I32",111:"Data Storage I64",112:"Data Storage I128",113:"Delete Stored Data",200:"Proposal",201:"Proposal Vote",202:"Activation Vote"};async function $(e,t={}){const n=await chrome.runtime.sendMessage({type:e,...t});if(!(n!=null&&n.ok))throw new Error((n==null?void 0:n.error)??"Wallet request failed.");return n.result}function I(e,t=!0){jn.forEach(n=>{n.hidden=n.id!==e}),t&&(M.textContent="")}function V(e){var i;h=e;const t=e.address??((i=e.wallets.find(a=>a.active))==null?void 0:i.address),n=(t==null?void 0:t.endsWith(".cltc"))??!0,o=n?"Testnet":"Mainnet",r=n?"CLTC":"CLC";document.querySelectorAll("[data-network-name]").forEach(a=>{a.textContent=o}),document.querySelectorAll("[data-network-symbol]").forEach(a=>{a.textContent=r}),s("base-asset-name").textContent=`Contractless ${o}`,s("wallet-address").textContent=e.address??"",s("wallet-address-short").textContent=e.address?`${e.address.slice(0,6)}...${e.address.slice(-6)}`:"Account",s("settings-api-url").value=e.apiUrl,s("settings-lock-timeout").value=String(e.autoLockMinutes),Zn(e),e.exists?e.unlocked?at().then(a=>{a||(I("dashboard-screen"),Be())}):I("locked-screen"):I("create-screen")}function On(e,t){return e==="contractless_connect"?"Connect application":e==="contractless_signMessage"?"Sign text message":e==="contractless_sendTransaction"||e==="contractless_signDualTransaction"?`Sign ${String(t.transaction_type??"transaction")}`:"Review request"}function j(e,t,n){const o=document.createElement("dt");o.textContent=t.replaceAll("_"," ");const r=document.createElement("dd");r.textContent=typeof n=="object"?JSON.stringify(n,null,2):String(n),e.append(o,r)}function te(e,t,n,o){const r=re(e[t]),i=String(e[n]??"").trim().toUpperCase(),a=Number(e[o]??0);return`${r} ${i}${a>0?` #${a}`:""}`}function Ht(e,t,n){var i;const o=n===1?2:1,r=(i=h==null?void 0:h.address)!=null&&i.endsWith(".cltc")?"CLTC":"CLC";j(e,"Your miner tip",te(t,`tip${n}`,`ticker${n}`,`nft_series${n}`)),j(e,"Your transaction fee",`${re(t[`txfee${n}`])} ${r}`),j(e,"Other party miner tip",te(t,`tip${o}`,`ticker${o}`,`nft_series${o}`)),j(e,"Other party transaction fee",`${re(t[`txfee${o}`])} ${r}`)}function Wn(e,t){var a;const n=((a=h==null?void 0:h.address)==null?void 0:a.trim().toLowerCase())??"",o=String(t.sender1??"").trim().toLowerCase(),r=String(t.sender2??"").trim().toLowerCase(),i=n===o?1:n===r?2:0;if(i===1){j(e,"Sending",te(t,"value1","ticker1","nft_series1")),j(e,"Receiving",te(t,"value2","ticker2","nft_series2")),Ht(e,t,1);return}if(i===2){j(e,"Sending",te(t,"value2","ticker2","nft_series2")),j(e,"Receiving",te(t,"value1","ticker1","nft_series1")),Ht(e,t,2);return}j(e,"First party sending",te(t,"value1","ticker1","nft_series1")),j(e,"Second party sending",te(t,"value2","ticker2","nft_series2"))}function ye(e){const t=s("approve-provider-approval"),n=s("reject-provider-approval"),o=e!==null;t.disabled=o,n.disabled=o,t.classList.toggle("is-processing",e==="approve"),n.classList.toggle("is-processing",e==="reject"),t.textContent=e==="approve"?"Processing...":"Approve",n.textContent=e==="reject"?"Rejecting...":"Reject"}async function at(){const e=await $("pending-provider-approval");if(!(e!=null&&e.request))return!1;const t=e.request;ye(null),oe=t.id;const n=(e.total??0)>1?` · Request ${e.position??1} of ${e.total}`:"";s("provider-approval-origin").textContent=`${t.origin}${n}`;const o=s("provider-approval-risk");o.className=`risk-label risk-${t.risk}`,o.textContent=t.risk==="safe"?"Safe":t.risk==="low"?"Low risk":"High risk";const r=t.display??{},i=t.method==="contractless_sendTransaction"||t.method==="contractless_signDualTransaction";s("provider-approval-title").textContent=On(t.method,r),s("provider-approval-intro").textContent=i?"Review every transaction field before signing.":"Review this request before approving it.";const a=s("provider-approval-details");return a.replaceChildren(),Object.entries(r).forEach(([l,c])=>{if(l==="transaction_fields"&&c&&typeof c=="object"){const d=c,u=Number(d.txtype??0),f=new Set(["ticker1","nft_series1","value1","ticker2","nft_series2","value2","tip1","tip2","txfee1","txfee2"]);u===6&&Wn(a,d),Object.entries(d).forEach(([p,m])=>{u===6&&f.has(p)||j(a,p==="txtype"?"transaction_type_id":p,ln(u,p,m))});return}j(a,l,c)}),I("provider-approval-screen"),!0}async function tn(e,t){if(!(e>0&&await at())){if(t){const n=Date.now()+1500;for(;Date.now()setTimeout(o,75))}}window.close()}}function Jn(e){return e.replace(/[.0]/g,"").length>0}function st(){var c;const e=s("token-list");if(e.replaceChildren(),!x){const d=document.createElement("div");d.className="empty-assets";const u=document.createElement("strong");u.textContent="Loading token balances...";const f=document.createElement("span");f.textContent="Balances are retrieved from the selected Contractless API.",d.append(u,f),e.append(d);return}const t=(c=h==null?void 0:h.address)!=null&&c.endsWith(".cltc")?"CLTC":"CLC",n=new Set(x.tokens.map(d=>d.token.trim().toUpperCase())),o=new Set(x.nfts.map(d=>`${d.name.trim().toUpperCase()}|${Number(d.series||0)}`)),r=x.balances.filter(d=>{const u=d.asset.trim().toUpperCase(),f=`${u}|${Number(d.nft_series||0)}`;return d.nft_series===0&&u!=="CLTC"&&u!=="CLC"&&n.has(u)&&!o.has(f)}),i=new Map(r.map(d=>[d.asset.trim().toUpperCase(),d])),a=Te==="all"?x.tokens.map(d=>d.token):r.filter(d=>Jn(d.balance)).map(d=>d.asset),l=[...new Set(a.map(d=>d.trim().toUpperCase()))].filter(d=>d!==t&&!o.has(`${d}|0`)).sort((d,u)=>d.localeCompare(u));if(l.length===0){const d=document.createElement("div");d.className="empty-assets";const u=document.createElement("strong");u.textContent=Te==="held"?"No token balances found":"No tokens found";const f=document.createElement("span");f.textContent=Te==="held"?"Switch to All tokens to view the complete network token list.":x.tokenCatalogError?`Token catalog unavailable: ${x.tokenCatalogError}`:"The selected API did not return any fungible tokens.",d.append(u,f),e.append(d);return}l.forEach(d=>{const u=i.get(d),f=document.createElement("div");f.className="asset-row";const p=document.createElement("div");p.className="asset-symbol token-symbol",p.textContent=d.slice(0,3);const m=document.createElement("div");m.className="asset-name";const g=document.createElement("strong");g.textContent=d;const v=document.createElement("span");v.textContent="Contractless token",m.append(g,v);const R=document.createElement("div");R.className="asset-value";const C=document.createElement("strong");C.textContent=(u==null?void 0:u.balance)??"0.00000000";const _=document.createElement("span");_.textContent=d,R.append(C,_),f.append(p,m,R),e.append(f)})}async function Be(){var e;if(h!=null&&h.unlocked){x=void 0,s("base-balance").textContent="--",s("base-asset-balance").textContent="--",st();try{const t=await $("wallet-balances");x={balances:Array.isArray(t.balances)?t.balances:[],tokens:Array.isArray(t.tokens)?t.tokens:[],nfts:Array.isArray(t.nfts)?t.nfts:[],tokenCatalogError:t.tokenCatalogError,nftCatalogError:t.nftCatalogError};const n=(e=h.address)!=null&&e.endsWith(".cltc")?"CLTC":"CLC",o=x.balances.find(i=>i.nft_series===0&&i.asset.toUpperCase()===n),r=(o==null?void 0:o.balance)??"0.00000000";s("base-balance").textContent=r,s("base-asset-balance").textContent=r,st()}catch(t){const n=s("token-list");n.replaceChildren();const o=document.createElement("div");o.className="empty-assets balance-error";const r=document.createElement("strong");r.textContent="Unable to load balances";const i=document.createElement("span");i.textContent=q(t),o.append(r,i),n.append(o),M.textContent=q(t)}}}function Le(e,t){return`${e.trim().toUpperCase()}|${t}`}function Hn(e){try{return H(e,"Balance")>0n}catch{return!1}}function nn(e){if(e.ownership_type!==1)return"Complete ownership";try{const t=H(e.balance,"Balance"),n=H(e.supply,"Supply");if(n<=0n)return"0% ownership";const o=t*100000000n/n,r=o/1000000n,i=(o%1000000n).toString().padStart(6,"0").replace(/0+$/,"");return`${r}${i?`.${i}`:""}% ownership`}catch{return"Fractional ownership"}}function ut(e){var t;return(t=e.details)!=null&&t.metadata&&typeof e.details.metadata=="object"?e.details.metadata:{}}function ft(e){const t=ut(e).name;return typeof t=="string"&&t.trim()?t.trim():e.series>0?`${e.name} #${e.series}`:e.name}function rn(e){const n=ut(e).contractless;return n&&typeof n=="object"&&String(n.metadata_type??"").toLowerCase()==="rwa"?"RWA":"NFT"}function be(e){return e.series>0?`${e.name}_${e.series}`:e.name}function Yn(e,t=7,n=7){return e.length>t+n+3?`${e.slice(0,t)}...${e.slice(-n)}`:e}function Gn(e,t){var r;const n=document.createElement("div");if(n.className=t,(r=e.details)!=null&&r.image_data_url){const i=document.createElement("img");return i.src=e.details.image_data_url,i.alt=ft(e),n.append(i),n}const o=document.createElement("span");return o.textContent=e.loading?"...":e.name.slice(0,2).toUpperCase(),n.append(o),n}function on(){const e=(K-1)*ve;return J.slice(e,e+ve)}function Ce(){const e=s("nfts-list");e.replaceChildren();const t=Math.max(1,Math.ceil(J.length/ve));if(K=Math.min(Math.max(1,K),t),s("nfts-count").textContent=J.length===1?"1 owned asset":`${J.length} owned assets`,s("nfts-page").textContent=String(K),s("nfts-pages").textContent=String(t),s("nfts-pagination").hidden=t<=1,s("nfts-previous").disabled=K<=1,s("nfts-next").disabled=K>=t,!J.length){const n=document.createElement("div");n.className="nfts-empty";const o=document.createElement("strong");o.textContent="No NFTs or RWAs found";const r=document.createElement("span");r.textContent=x!=null&&x.nftCatalogError?`NFT catalog unavailable: ${x.nftCatalogError}`:"Assets owned by this wallet will appear here.",n.append(o,r),e.append(n);return}on().forEach(n=>{const o=document.createElement("button");o.type="button",o.className="nft-card",o.append(Gn(n,"nft-card-media"));const r=document.createElement("div");r.className="nft-card-identity";const i=document.createElement("span");i.textContent=rn(n);const a=document.createElement("strong");a.textContent=ft(n);const l=document.createElement("small");l.textContent=be(n);const c=document.createElement("b");if(c.textContent=nn(n),r.append(i,a,l,c),n.error){const d=document.createElement("em");d.textContent="Media unavailable",r.append(d)}o.append(r),o.addEventListener("click",()=>Qn(n)),e.append(o)})}function Se(e,t,n){const o=document.createElement("div"),r=document.createElement("dt");r.textContent=t;const i=document.createElement("dd");i.textContent=n||"--",o.append(r,i),e.append(o)}function xe(e){Z=e;const t=e.details,n=ut(e),o=rn(e),r=ft(e);s("nft-detail-title").textContent=r,s("nft-detail-kind").textContent=`${o} details`,s("nft-detail-badge").textContent=o,s("nft-detail-name").textContent=r,s("nft-detail-ownership").textContent=nn(e);const i=s("nft-detail-image");i.src=(t==null?void 0:t.image_data_url)??"",i.alt=r,i.hidden=!(t!=null&&t.image_data_url);const a=n.description??n.summary;s("nft-detail-description").textContent=typeof a=="string"&&a.trim()?a.trim():t?"No description was included in the NFT metadata.":"Loading NFT metadata and provenance...";const l=s("nft-detail-attributes");l.replaceChildren(),(Array.isArray(n.attributes)?n.attributes.slice(0,12):[]).forEach(f=>{if(!f||typeof f!="object")return;const p=f,m=document.createElement("div"),g=document.createElement("span");g.textContent=String(p.trait_type??p.type??"Attribute");const v=document.createElement("strong");v.textContent=String(p.value??""),m.append(g,v),l.append(m)}),l.hidden=l.childElementCount===0;const d=s("nft-detail-fields");d.replaceChildren(),Se(d,"Asset",be(e)),Se(d,"Creator",(t==null?void 0:t.creator)??"--"),Se(d,"IPFS CID",(t==null?void 0:t.item_ipfs)??"--"),Se(d,"Origin transaction",(t==null?void 0:t.genesis_txid)??e.origin_txid);const u=s("nft-detail-history");if(u.replaceChildren(),t)if(t.history.length)t.history.slice().reverse().forEach(f=>{const p=document.createElement("button");p.type="button",p.className="nft-history-row",p.title=`View full transaction ${f.txid}`;const m=document.createElement("strong");m.textContent=f.action;const g=document.createElement("span");g.textContent=`Block ${Number(f.block).toLocaleString()}`;const v=document.createElement("small");v.textContent=Yn(f.txid),p.append(m,g,v),p.addEventListener("click",()=>{un({txid:f.txid,block_height:Number(f.block),transaction_hex:""},"nft")}),u.append(p)});else{const f=document.createElement("p");f.textContent="No provenance records were returned.",u.append(f)}else{const f=document.createElement("p");f.textContent="Loading provenance...",u.append(f)}}function Qn(e){xe(e),I("nft-detail-screen")}async function mt(e){const t=on().filter(r=>!r.details&&!r.loading);let n=0;const o=async()=>{for(;n[Le(r.name,r.series),r]));J=x.nfts.map(r=>{const i=x==null?void 0:x.balances.find(l=>Le(l.asset,Number(l.nft_series||0))===Le(r.name,Number(r.series||0)));if(!i||!Hn(i.balance))return null;const a=n.get(Le(r.name,r.series));return{name:r.name.trim(),series:Number(r.series||0),origin_txid:r.origin_txid,ownership_type:Number(r.ownership_type||0),supply:r.supply,balance:i.balance,details:a==null?void 0:a.details,error:a==null?void 0:a.error}}).filter(r=>r!==null).sort((r,i)=>r.name.localeCompare(i.name)||r.series-i.series);const o=Math.max(1,Math.ceil(J.length/ve));K=Math.min(K,o),Ce(),await mt(t)}function Zn(e){const t=s("known-addresses");t.replaceChildren(),e.wallets.forEach(n=>{const o=document.createElement("div");o.className=`known-address${n.active?" active-address":""}`;const r=document.createElement("button");r.type="button",r.className="address-select",r.dataset.walletId=n.id;const i=document.createElement("span");i.className="address-avatar";const a=document.createElement("img");a.src=chrome.runtime.getURL("contractless-logo.png"),a.alt="",i.append(a);const l=document.createElement("span");l.className="address-details";const c=document.createElement("strong");c.textContent=n.label;const d=document.createElement("small");d.textContent=n.address,l.append(c,d);const u=document.createElement("span");u.className="selected-mark",u.textContent=n.active?"✓":"",r.append(i,l,u),r.addEventListener("click",()=>{if(n.active){G(!1);return}U(async()=>{G(!1),fe="",ie="",V(await $("switch-wallet",{walletId:n.id}))})});const f=document.createElement("button");f.type="button",f.className="rename-address",f.title="Rename wallet",f.setAttribute("aria-label",`Rename ${n.label}`),f.textContent="✎",f.addEventListener("click",()=>{const p=window.prompt("Wallet label",n.label);p===null||p.trim()===n.label||U(async()=>{const m=await $("rename-wallet",{walletId:n.id,label:p});V(m),G(!0)})}),o.append(r,f),t.append(o)})}function G(e){const t=s("account-drawer"),n=s("drawer-backdrop"),o=s("account-menu-button");t.classList.toggle("open",e),t.setAttribute("aria-hidden",String(!e)),o.setAttribute("aria-expanded",String(e)),n.hidden=!e}function gt(){s("revealed-private-key").value="",s("private-key-result").hidden=!0}function Ee(e){if(s("backup-key-modal").hidden=!e,s("backup-key-backdrop").hidden=!e,e){const t=s("backup-key-input");t.value="",t.focus()}else s("backup-key-input").value="",dt=void 0}async function Xn(){const e=await $("wallet-receive-address"),t=String(e.receiveAddress??"");if(!t)throw new Error("No active wallet address is available.");s("receive-address-label").textContent=e.vanity?"Vanity address":"Wallet address",s("receive-address-value").textContent=t;const n=s("receive-qr");await Kn.toCanvas(n,t,{width:220,margin:1,errorCorrectionLevel:"M",color:{dark:"#071016",light:"#ffffff"}}),I("receive-screen")}function H(e,t){const n=e.trim();if(!/^(?:0|[1-9]\d*)(?:\.\d{1,8})?$/.test(n))throw new Error(`${t} must be a positive number with no more than 8 decimal places.`);const[o,r=""]=n.split(".");return BigInt(o)*100000000n+BigInt(r.padEnd(8,"0"))}function ne(e){const t=e/100000000n,n=(e%100000000n).toString().padStart(8,"0");return`${t}.${n}`}function an(){if(P)return P.balance;const e=s("send-asset").value,t=x==null?void 0:x.balances.find(n=>n.nft_series===0&&n.asset.trim().toUpperCase()===e);return(t==null?void 0:t.balance)??"0.00000000"}function sn(){var o;const e=s("send-asset").value,t=(o=h==null?void 0:h.address)!=null&&o.endsWith(".cltc")?"CLTC":"CLC";if(e!==t)return 100000000n;const n=s("send-amount").value.trim();if(!n)return 0n;try{return(H(n,"Amount")+99n)/100n}catch{return 0n}}function Re(){var r;const e=(P==null?void 0:P.name)??s("send-asset").value,t=(r=h==null?void 0:h.address)!=null&&r.endsWith(".cltc")?"CLTC":"CLC",n=P?be(P):e;s("send-amount-symbol").textContent=n,s("send-available").textContent=`Available: ${an()} ${n}`;const o=sn();s("send-fee").value=ne(o),s("send-fee-note").textContent=!P&&e===t?"Minimum fee: 1% of the transfer amount.":`Minimum fee: 1 ${t} for asset transfers.`}function er(){var o;const e=s("send-asset");e.replaceChildren();const t=(o=h==null?void 0:h.address)!=null&&o.endsWith(".cltc")?"CLTC":"CLC",n=new Set([t]);x==null||x.tokens.forEach(r=>{const i=r.token.trim().toUpperCase();(x==null?void 0:x.balances.find(l=>l.nft_series===0&&l.asset.trim().toUpperCase()===i&&H(l.balance,"Balance")>0n))&&n.add(i)}),n.forEach(r=>{const i=document.createElement("option");i.value=r,i.textContent=r,e.append(i)}),Re()}function tr(){if(!x)throw new Error("Wallet balances are still loading.");P=void 0,Y=void 0,s("send-form").reset(),s("send-asset").disabled=!1,s("send-amount").disabled=!1,er(),I("send-screen")}function nr(e){if(!x)throw new Error("Wallet balances are still loading.");P=e,Y=void 0,s("send-form").reset();const t=s("send-asset");t.replaceChildren();const n=document.createElement("option");n.value=e.name,n.textContent=be(e),t.append(n),t.disabled=!0;const o=s("send-amount");e.ownership_type===0?(o.value="1.00000000",o.disabled=!0):(o.value="",o.disabled=!1),Re(),I("send-screen")}async function rr(){var v;if(!(h!=null&&h.address))throw new Error("No active wallet is available.");const e=(P==null?void 0:P.name)??s("send-asset").value,t=P?be(P):e,n=Q(s("send-recipient").value,"Enter a receiving address."),o=Q(s("send-amount").value,"Enter an amount to send."),r=Q(s("send-fee").value,"Enter a transaction fee."),i=H(o,"Amount"),a=H(r,"Transaction fee");if(i===0n)throw new Error("The transfer amount must be greater than zero.");if((P==null?void 0:P.ownership_type)===0&&i!==100000000n)throw new Error("An indivisible NFT must be transferred as one complete asset.");if((P==null?void 0:P.ownership_type)===1&&i>100000000n)throw new Error("A fractional NFT/RWA transfer cannot exceed one complete asset.");const l=sn();if(ac)throw new Error(`Insufficient ${e} balance.`);const d=h.address.endsWith(".cltc")?"CLTC":"CLC",u=((v=x==null?void 0:x.balances.find(R=>R.nft_series===0&&R.asset.trim().toUpperCase()===d))==null?void 0:v.balance)??"0.00000000",f=H(u,"Base balance");if((e===d?i+a:a)>f)throw new Error(`Insufficient ${d} balance including the fee.`);const m=await $("wallet-prepare-transfer",{receiver:n,asset:e,nftSeries:(P==null?void 0:P.series)??0,valueAtomic:i.toString(),feeAtomic:a.toString()}),g=e===d?`${ne(i+a)} ${d}`:`${ne(i)} ${t} + ${ne(a)} ${d}`;Y={transaction:m.transaction,receiverInput:m.receiverInput,asset:e,amount:ne(i),fee:ne(a),total:g},s("review-amount").textContent=Y.amount,s("review-asset").textContent=t,s("review-sender").textContent=h.address,s("review-recipient").textContent=m.receiverInput,s("review-resolved-recipient").textContent=String(m.review.receiver??""),s("review-fee").textContent=Y.fee,s("review-total").textContent=g,I("send-review-screen")}function cn(e){if(!/^[0-9a-f]+$/i.test(e)||e.length<10)return;const t=e.slice(2,10).match(/../g);if(!t||t.length!==4)return;const n=t.reduce((r,i,a)=>r+Number.parseInt(i,16)*2**(a*8),0),o=new Date(n*1e3);return Number.isNaN(o.getTime())?void 0:o}function or(e){return e.split("_").map(t=>t&&`${t[0].toUpperCase()}${t.slice(1)}`).join(" ")}function re(e){try{const t=ne(BigInt(String(e??"0"))),[n,o]=t.split("."),r=o.replace(/0+$/,"");return r?`${n}.${r}`:`${n}.0`}catch{return String(e??"")}}function ir(e,t){var o;return t.startsWith("txfee")?!0:((o={1:new Set(["value"]),2:new Set(["value"]),3:new Set(["number"]),6:new Set(["value1","value2","tip1","tip2"]),7:new Set(["loan_amount","collateral_amount","payment_amount","max_late_value"]),8:new Set(["payback_amount","tip"]),10:new Set(["value"]),11:new Set(["number"])}[e])==null?void 0:o.has(t))??!1}function ln(e,t,n){if(typeof n=="boolean")return n?"True":"False";if(ir(e,t))return re(n);if(t==="time"||t==="timestamp"||t==="offer_expiration"){const o=Number(n);if(Number.isFinite(o))return`${new Date(o*1e3).toLocaleString()} (${o})`}return t==="payment_period"?{d:"Daily",w:"Weekly",m:"Monthly"}[String(n).trim().toLowerCase()]??String(n??""):e===3&&t==="hard_limit"?Number(n)===1?"Yes":"No":e===4&&t==="series"?Number(n)===1?"Series":"Single NFT/RWA":e===4&&t==="ownership_type"?Number(n)===1?"Fractional ownership":"Complete ownership":(e===201||e===202)&&t==="vote"?Number(n)===1?"Approve":"Reject":(t==="previous"||t.endsWith("_hash"))&&/^0+$/.test(String(n))?"None":e===5&&(t==="impression_value"||t==="click_value")?(Number(n)/100).toFixed(2):typeof n=="string"?n.trim():String(n??"")}function F(e,t,n,o=!1,r=0){const i=document.createElement("div");i.className=`transaction-field${o?" technical-field":""}`;const a=document.createElement("span");a.textContent=or(t);const l=document.createElement("strong");l.textContent=o?String(n??""):ln(r,t,n),i.append(a,l),e.append(i)}function ht(e,t){return!e||!t||t=he?`${n} confirmations`:`${n}/${he} confirmations`:`Pending · 0/${he} confirmations`}async function un(e,t="activity"){_e=e,en=t;const n=s("close-transaction");n.title=t==="nft"?"Back to NFT/RWA details":"Back to activity",n.setAttribute("aria-label",t==="nft"?"Back to NFT/RWA details":"Back to activity"),I("transaction-screen"),s("transaction-title").textContent="Loading transaction",s("transaction-header-status").textContent="",s("transaction-full-txid").textContent=e.txid,s("transaction-overview").replaceChildren(),s("transaction-fields").replaceChildren(),s("transaction-technical-fields").replaceChildren(),s("transaction-miner-earnings").replaceChildren(),s("miner-earnings-section").hidden=!0;try{const o=await $("wallet-transaction",{txid:e.txid}),r=await Yt(),i=JSON.parse(r.decode_transaction(o.transaction_hex)),l=ht(o.block_height,o.current_height){F(u,m,g,!1,i.txtype)});const f=e.miner_earnings??[];if(f.length>0){const m=s("transaction-miner-earnings");f.forEach((g,v)=>{F(m,`earning_${v+1}_type`,g.type),F(m,`earning_${v+1}_asset`,g.asset),F(m,`earning_${v+1}_nft_series`,g.nft_series),F(m,`earning_${v+1}_amount`,`${re(g.amount_atomic)} ${g.asset.trim()}`)}),s("miner-earnings-section").hidden=!1}const p=s("transaction-technical-fields");i.stored_hash&&F(p,"stored_hash",i.stored_hash,!0),i.signature&&F(p,"signature",i.signature,!0),i.signature1&&F(p,"signature_1",i.signature1,!0),i.signature2&&F(p,"signature_2",i.signature2,!0),F(p,"raw_transaction_bytes",o.transaction_hex,!0)}catch(o){s("transaction-title").textContent="Transaction unavailable";const r=s("transaction-fields");r.replaceChildren(),F(r,"error",q(o))}}function ue(e){const t=String(e??"").trim();return t.length>18?`${t.slice(0,8)}...${t.slice(-7)}`:t}function ar(e,t){const n=e.fields,o=t.trim().toLowerCase(),r=o.endsWith(".cltc")?"CLTC":"CLC",i=c=>String(n[c]??"").trim(),a=(c,d,u="")=>`${u}${re(n[c])} ${d}`,l=()=>`-${re(n.txfee??0)} ${r}`;switch(e.txtype){case 1:return{title:"Mining reward",subtitle:"From network",amount:a("value",r,"+"),direction:"incoming"};case 2:{const c=i("coin"),d=String(n.sender??"").trim().toLowerCase()===o;return{title:d?`Sent ${c}`:`Received ${c}`,subtitle:d?`To: ${ue(n.receiver)}`:`From: ${ue(n.sender)}`,amount:a("value",c,d?"-":"+"),direction:d?"outgoing":"incoming"}}case 3:{const c=i("ticker");return{title:`Created ${c}`,subtitle:"Token creation",amount:a("number",c,"+"),secondary:l(),direction:"incoming"}}case 4:{const c=String(n.count??"1");return{title:`Created ${i("nft_name")}`,subtitle:Number(n.series??0)===0?"NFT/RWA":"NFT/RWA collection",amount:`+${c} ${Number(c)===1?"item":"items"}`,secondary:l(),direction:"incoming"}}case 6:{const c=String(n.sender1??"").trim().toLowerCase()===o,d=i(c?"ticker1":"ticker2"),u=i(c?"ticker2":"ticker1");return{title:"Completed swap",subtitle:`With: ${ue(n[c?"sender2":"sender1"])}`,amount:a(c?"value1":"value2",d,"-"),secondary:a(c?"value2":"value1",u,"+"),direction:"neutral"}}case 7:{const c=String(n.lender??"").trim().toLowerCase()===o;return{title:c?"Loan funded":"Loan received",subtitle:c?`To: ${ue(n.borrower)}`:`From: ${ue(n.lender)}`,amount:a("loan_amount",i("loan_coin"),c?"-":"+"),direction:c?"outgoing":"incoming"}}case 8:return{title:"Loan payment",subtitle:`Contract: ${ue(n.contract_hash)}`,amount:`-${re(n.payback_amount)}`,direction:"outgoing"};case 10:return{title:`Burned ${i("coin")}`,subtitle:"Removed from supply",amount:a("value",i("coin"),"-"),direction:"outgoing"};case 11:{const c=i("ticker");return{title:`Issued ${c}`,subtitle:"Additional token supply",amount:a("number",c,"+"),secondary:l(),direction:"incoming"}}case 12:return{title:"Created vanity address",subtitle:String(n.vanity_address??"").trim(),amount:l(),direction:"outgoing"};default:return{title:e.transaction_name,subtitle:"Contractless transaction",amount:l(),direction:"outgoing"}}}async function sr(e,t){const n=s("activity-list");if(n.replaceChildren(),s("activity-count").textContent=`${e.length} shown`,e.length===0){const r=document.createElement("div");r.className="activity-empty";const i=document.createElement("strong");i.textContent="No wallet activity found";const a=document.createElement("span");a.textContent="New transactions will appear here after they reach the selected API.",r.append(i,a),n.append(r);return}const o=await Yt();e.forEach(r=>{let i;try{i=JSON.parse(o.decode_transaction(r.transaction_hex))}catch{const E=Number.parseInt(r.transaction_hex.slice(0,2),16);i={txtype:E,transaction_name:zn[E]??`Transaction Type ${E}`,fields:{}}}const a=ar(i,(h==null?void 0:h.address)??""),l=cn(r.transaction_hex),d=ht(r.block_height,t){un(r)}),n.append(u)})}async function fn(){if(!(h!=null&&h.unlocked))return;s("activity-count").textContent="Loading";const e=s("activity-list");e.replaceChildren();const t=document.createElement("div");t.className="activity-empty",t.textContent="Loading recent activity...",e.append(t);try{const n=await $("wallet-activity");await sr(Array.isArray(n.transactions)?n.transactions:[],Number(n.current_height??0))}catch(n){e.replaceChildren();const o=document.createElement("div");o.className="activity-empty activity-error",o.textContent=q(n),e.append(o),s("activity-count").textContent="Unavailable"}}function q(e){return e instanceof Error?e.message:String(e).replace(/^JsValue\((.*)\)$/,"$1")}async function U(e,t=!1){M.textContent="",t&&I("loading");try{await e()}catch(n){throw M.textContent=q(n),n}}function Q(e,t){if(!e.trim())throw new Error(t);return e}function cr(e){let t="";for(let o=0;oURL.revokeObjectURL(r),1e3)}async function pn(e,t){h=e,fe=t,ie=String(await $("export-private-key-image",{password:t,imagePassword:t})),s("wallet-image-preview").src=`data:image/png;base64,${ie}`;const n=s("backup-confirmed");n.disabled=!0,n.checked=!1,s("open-wallet").disabled=!0,I("backup-screen")}document.querySelectorAll(".navigation").forEach(e=>{e.addEventListener("click",()=>I(String(e.dataset.screen)))});s("account-menu-button").addEventListener("click",()=>G(!0));s("close-account-drawer").addEventListener("click",()=>G(!1));s("drawer-backdrop").addEventListener("click",()=>G(!1));function gn(e){G(!1),s("cancel-wallet-add").hidden=!1,I(e)}s("menu-create-wallet").addEventListener("click",()=>{gn("create-screen")});s("menu-import-wallet").addEventListener("click",()=>{gn("image-screen")});s("cancel-wallet-add").addEventListener("click",()=>{s("cancel-wallet-add").hidden=!0,h&&V(h)});s("menu-settings").addEventListener("click",()=>{G(!1),gt(),h&&(s("settings-api-url").value=h.apiUrl,s("settings-lock-timeout").value=String(h.autoLockMinutes)),I("settings-screen")});s("close-settings").addEventListener("click",()=>{gt(),h&&V(h)});s("drawer-lock-wallet").addEventListener("click",()=>{U(async()=>{G(!1),fe="",ie="",V(await $("lock"))})});s("open-receive").addEventListener("click",()=>{U(Xn)});s("open-send").addEventListener("click",()=>{U(async()=>tr())});s("close-send").addEventListener("click",()=>{Y=void 0,P?(xe(P),I("nft-detail-screen")):h&&V(h)});s("send-asset").addEventListener("change",Re);s("send-amount").addEventListener("input",Re);s("send-form").addEventListener("submit",e=>{e.preventDefault(),U(rr)});s("send-form").addEventListener("keydown",e=>{!(e instanceof KeyboardEvent)||e.key!=="Enter"||e.target instanceof HTMLInputElement&&(e.preventDefault(),s("send-form").requestSubmit())});s("edit-send").addEventListener("click",()=>{I("send-screen")});s("sign-broadcast-transfer").addEventListener("click",()=>{U(async()=>{if(!Y)throw new Error("The reviewed transfer is unavailable.");we=(await $("wallet-broadcast-transfer",{transaction:Y.transaction})).txid,s("send-result-txid").textContent=we,Y=void 0,I("send-success-screen")})});s("copy-send-txid").addEventListener("click",()=>{we&&navigator.clipboard.writeText(we).then(()=>{M.textContent="Transaction ID copied."}).catch(e=>{M.textContent=q(e)})});s("finish-send").addEventListener("click",()=>{we="";const e=!!P;P=void 0,h&&(Be(),e?(Z=void 0,I("nfts-screen"),pt(!0)):V(h))});s("open-activity").addEventListener("click",()=>{I("activity-screen"),fn()});s("open-nfts").addEventListener("click",()=>{K=1,Z=void 0,I("nfts-screen"),pt(!0)});s("close-nfts").addEventListener("click",()=>{ae+=1,h&&V(h)});s("refresh-nfts").addEventListener("click",()=>{pt(!0)});s("close-nft-detail").addEventListener("click",()=>{Z=void 0,I("nfts-screen")});s("transfer-nft").addEventListener("click",()=>{U(async()=>{if(!Z)throw new Error("No NFT or RWA is selected.");nr(Z)})});s("nfts-previous").addEventListener("click",()=>{if(K<=1)return;K-=1;const e=++ae;Ce(),mt(e)});s("nfts-next").addEventListener("click",()=>{const e=Math.max(1,Math.ceil(J.length/ve));if(K>=e)return;K+=1;const t=++ae;Ce(),mt(t)});s("close-activity").addEventListener("click",()=>{h&&V(h)});s("close-transaction").addEventListener("click",()=>{en==="nft"&&Z?(xe(Z),I("nft-detail-screen")):I("activity-screen")});s("copy-transaction-txid").addEventListener("click",()=>{const e=_e==null?void 0:_e.txid;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Transaction ID copied."}).catch(t=>{M.textContent=q(t)})});s("refresh-activity").addEventListener("click",()=>{fn()});s("refresh-balances").addEventListener("click",()=>{Be()});document.querySelectorAll("[data-token-filter]").forEach(e=>{e.addEventListener("click",()=>{Te=e.dataset.tokenFilter==="all"?"all":"held",document.querySelectorAll("[data-token-filter]").forEach(t=>{t.classList.toggle("active",t===e)}),st()})});s("close-receive").addEventListener("click",()=>{h&&V(h)});s("copy-receive-address").addEventListener("click",()=>{var t;const e=(t=s("receive-address-value").textContent)==null?void 0:t.trim();if(!e){M.textContent="No active wallet address is available.";return}navigator.clipboard.writeText(e).then(()=>{M.textContent="Wallet address copied."}).catch(n=>{M.textContent=q(n)})});s("save-wallet-settings").addEventListener("click",()=>{U(async()=>{const e=s("settings-api-url").value.replace(/\/+$/,""),t=new URL(e);if(t.protocol!=="https:"&&t.hostname!=="localhost"&&t.hostname!=="127.0.0.1")throw new Error("Contractless API URLs must use HTTPS.");const n=`${t.origin}/*`;if(!await chrome.permissions.contains({origins:[n]})&&!await chrome.permissions.request({origins:[n]}))throw new Error("Permission to contact this API endpoint was denied.");h=await $("save-settings",{apiUrl:e,autoLockMinutes:s("settings-lock-timeout").value}),M.textContent="Settings saved."})});document.querySelectorAll("[data-backup-action]").forEach(e=>{e.addEventListener("click",()=>{dt=e.dataset.backupAction,Ee(!0)})});s("close-backup-key").addEventListener("click",()=>Ee(!1));s("backup-key-backdrop").addEventListener("click",()=>Ee(!1));s("confirm-backup-key").addEventListener("click",()=>{const e=dt,t=s("backup-key-input").value;if(e){if(!t){M.textContent="Enter the active wallet encryption key.";return}U(async()=>{var r;if(e==="image"){const i=String(await $("export-private-key-image",{password:t,imagePassword:t})),a=((r=h==null?void 0:h.address)==null?void 0:r.split(".")[0])??"contractless";mn(i,`${a}.wallet.png`),Ee(!1),M.textContent="Wallet image downloaded.";return}const n=await $("reveal-private-key",{password:t});if(Ee(!1),e==="private"){s("revealed-private-key").value=n.privateKey,s("private-key-result").hidden=!1,s("private-key-result").scrollIntoView({block:"nearest"});return}const o=crypto.randomUUID();await chrome.storage.session.set({[`print-backup:${o}`]:{label:n.label,address:n.address,privateKey:n.privateKey,encryptionKey:t}}),await chrome.windows.create({url:chrome.runtime.getURL(`print.html?id=${encodeURIComponent(o)}`),type:"popup",width:820,height:760})})}});s("clear-private-key").addEventListener("click",gt);s("copy-private-key").addEventListener("click",()=>{const e=s("revealed-private-key").value;e&&navigator.clipboard.writeText(e).then(()=>{M.textContent="Private key copied."}).catch(t=>{M.textContent=q(t)})});document.querySelectorAll(".reveal").forEach(e=>{e.addEventListener("click",()=>{const t=s(String(e.dataset.input)),n=t.type==="text";t.type=n?"password":"text",e.textContent=n?"Show":"Hide"})});s("continue-create").addEventListener("click",()=>{try{Ne=Q(s("new-password").value,"Enter an encryption key."),s("verify-password").value="",I("verify-screen")}catch(e){M.textContent=q(e)}});s("create-wallet").addEventListener("click",()=>{if(s("verify-password").value!==Ne){M.textContent="The encryption keys do not match.";return}U(async()=>{const t=Ne,n=await $("create-wallet",{password:t});Ne="",s("new-password").value="",s("verify-password").value="",await pn(n,t)},!0).catch(()=>I("verify-screen",!1))});const ct=s("wallet-image");ct.addEventListener("change",()=>{var t;const e=(t=ct.files)==null?void 0:t[0];ge="",s("image-file-name").textContent=(e==null?void 0:e.name)??"Choose wallet image",e&&e.arrayBuffer().then(n=>{ge=cr(new Uint8Array(n))}).catch(n=>{M.textContent=q(n)})});s("import-image").addEventListener("click",()=>{const e=s("image-password").value;try{Q(e,"Enter the wallet image encryption key."),Q(ge,"Choose a wallet image.")}catch(t){M.textContent=q(t);return}U(async()=>{const t=await $("import-wallet-image",{imageBase64:ge,imagePassword:e,password:e});fe=e,ge="",ct.value="",s("image-password").value="",V(t)},!0).catch(()=>I("image-screen",!1))});s("import-private").addEventListener("click",()=>{const e=s("private-key").value.trim(),t=s("private-password").value;try{Q(e,"Paste the private key."),Q(t,"Enter a new encryption key.")}catch(n){M.textContent=q(n);return}U(async()=>{const n=await $("import-private-key",{privateKey:e,password:t});s("private-key").value="",s("private-password").value="",await pn(n,t)},!0).catch(()=>I("private-screen",!1))});s("save-image").addEventListener("click",()=>{U(async()=>{var n;if(!ie)throw new Error("The wallet image is not ready.");const e=((n=h==null?void 0:h.address)==null?void 0:n.split(".")[0])??"contractless";mn(ie,`${e}.wallet.png`);const t=s("backup-confirmed");t.disabled=!1,t.checked=!1,s("open-wallet").disabled=!0})});s("backup-confirmed").addEventListener("change",e=>{s("open-wallet").disabled=!e.currentTarget.checked});s("open-wallet").addEventListener("click",()=>{fe="",ie="",s("wallet-image-preview").removeAttribute("src"),h&&V(h)});s("unlock-form").addEventListener("submit",e=>{e.preventDefault();const t=s("unlock-password").value;try{Q(t,"Enter your encryption key.")}catch(n){M.textContent=q(n);return}U(async()=>{const n=await $("unlock",{password:t});fe=t,s("unlock-password").value="",V(n)},!0).catch(()=>I("locked-screen",!1))});s("approve-provider-approval").addEventListener("click",()=>{oe&&(ye("approve"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!0});oe="",await tn(e.remaining??0,!0)}).catch(()=>ye(null)))});s("reject-provider-approval").addEventListener("click",()=>{oe&&(ye("reject"),U(async()=>{const e=await $("resolve-provider-approval",{id:oe,approved:!1});oe="",await tn(e.remaining??0,!1)}).catch(()=>ye(null)))});$("status").then(e=>V(e)).catch(e=>{I("create-screen"),M.textContent=q(e)}); diff --git a/extension/dist/print.html b/extension/dist/print.html new file mode 100644 index 0000000..7eeccfa --- /dev/null +++ b/extension/dist/print.html @@ -0,0 +1,44 @@ + + + + + + Contractless Wallet Backup + + + + + +
+ +
+

Contractless Wallet Backup

+

Private recovery information

+
+
+ +

+ Keep this page private. Anyone with the private key and encryption key can + control this wallet. +

+ +
+

Wallet

+

+    
+
+

Address

+

+    
+
+

Private Key

+

+    
+
+

Encryption Key

+

+    
+ + + + diff --git a/extension/dist/print.js b/extension/dist/print.js new file mode 100644 index 0000000..c86b6e5 --- /dev/null +++ b/extension/dist/print.js @@ -0,0 +1 @@ +import"./chunks/modulepreload-polyfill-B5Qt9EMX.js";async function a(){const e=new URLSearchParams(location.search).get("id");if(!e)throw new Error("Missing printable wallet backup.");const n=`print-backup:${e}`,o=await chrome.storage.session.get(n);await chrome.storage.session.remove(n);const t=o[n];if(!t)throw new Error("The printable wallet backup has expired.");document.getElementById("wallet-label").textContent=t.label,document.getElementById("wallet-address").textContent=t.address,document.getElementById("wallet-private-key").textContent=t.privateKey,document.getElementById("wallet-encryption-key").textContent=t.encryptionKey,setTimeout(()=>{window.focus(),window.print()},150)}a().catch(e=>{document.getElementById("print-error").textContent=e instanceof Error?e.message:String(e)}); diff --git a/extension/dist/provider.js b/extension/dist/provider.js new file mode 100644 index 0000000..47444f0 --- /dev/null +++ b/extension/dist/provider.js @@ -0,0 +1 @@ +const a=new Map;window.addEventListener("message",e=>{var s,t,o;if(e.source!==window||((s=e.data)==null?void 0:s.source)!=="contractless-wallet")return;const r=a.get(e.data.id);r&&(a.delete(e.data.id),(t=e.data.response)!=null&&t.ok?r.resolve(e.data.response.result):r.reject(new Error(((o=e.data.response)==null?void 0:o.error)??"Wallet request failed.")))});const n=Object.freeze({isContractless:!0,request({method:e,params:r}){const s=crypto.randomUUID();return new Promise((t,o)=>{a.set(s,{resolve:t,reject:o}),window.postMessage({source:"contractless-page",id:s,method:e,params:r},window.location.origin)})}});Object.defineProperty(window,"contractless",{value:n,writable:!1,configurable:!1}); diff --git a/extension/package.json b/extension/package.json new file mode 100644 index 0000000..17df9f1 --- /dev/null +++ b/extension/package.json @@ -0,0 +1,29 @@ +{ + "name": "contractless-browser-wallet", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "build:wasm:testnet": "wasm-pack build ../core --target web --out-dir ../extension/src/wasm/testnet --out-name contractless_browser_core --no-default-features --features testnet", + "build:wasm:mainnet": "wasm-pack build ../core --target web --out-dir ../extension/src/wasm/mainnet --out-name contractless_browser_core --no-default-features --features mainnet", + "build:wasm": "pnpm run build:wasm:testnet && pnpm run build:wasm:mainnet", + "build:chrome": "pnpm run build:wasm && vite build --mode chrome", + "build:firefox": "pnpm run build:wasm && vite build --mode firefox", + "build": "pnpm run build:wasm && vite build --mode chrome && vite build --mode firefox", + "check": "tsc --noEmit", + "lint:firefox": "web-ext lint --source-dir dist/firefox", + "package:firefox": "web-ext build --source-dir dist/firefox --artifacts-dir web-ext-artifacts --overwrite-dest" + }, + "devDependencies": { + "@types/chrome": "^0.0.326", + "@types/node": "^22.15.3", + "@types/qrcode": "^1.5.6", + "typescript": "^5.8.3", + "vite": "^6.3.5", + "vite-plugin-static-copy": "^2.3.1", + "web-ext": "^10.5.0" + }, + "dependencies": { + "qrcode": "^1.5.4" + } +} diff --git a/extension/pnpm-lock.yaml b/extension/pnpm-lock.yaml new file mode 100644 index 0000000..e4a9b24 --- /dev/null +++ b/extension/pnpm-lock.yaml @@ -0,0 +1,3418 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + qrcode: + specifier: ^1.5.4 + version: 1.5.4 + devDependencies: + '@types/chrome': + specifier: ^0.0.326 + version: 0.0.326 + '@types/node': + specifier: ^22.15.3 + version: 22.20.1 + '@types/qrcode': + specifier: ^1.5.6 + version: 1.5.6 + typescript: + specifier: ^5.8.3 + version: 5.9.3 + vite: + specifier: ^6.3.5 + version: 6.4.3(@types/node@22.20.1) + vite-plugin-static-copy: + specifier: ^2.3.1 + version: 2.3.2(vite@6.4.3(@types/node@22.20.1)) + web-ext: + specifier: ^10.5.0 + version: 10.5.0 + +packages: + + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@8.0.0': + resolution: {integrity: sha512-sL6cvO2IfkSu/iU+zs2S/w01B7A8V7suXSIKEN4hPFFdZoiPGxrj5pAG0lCaqLWiEIrjKzdznIWuaLcxPR53qw==} + + '@devicefarmer/adbkit-logcat@2.1.3': + resolution: {integrity: sha512-yeaGFjNBc/6+svbDeul1tNHtNChw6h8pSHAt5D+JsedUrMTN7tla7B15WLDyekxsuS2XlZHRxpuC6m92wiwCNw==} + engines: {node: '>= 4'} + + '@devicefarmer/adbkit-monkey@1.2.1': + resolution: {integrity: sha512-ZzZY/b66W2Jd6NHbAhLyDWOEIBWC11VizGFk7Wx7M61JZRz7HR9Cq5P+65RKWUU7u6wgsE8Lmh9nE4Mz+U2eTg==} + engines: {node: '>= 0.10.4'} + + '@devicefarmer/adbkit@3.3.8': + resolution: {integrity: sha512-7rBLLzWQnBwutH2WZ0EWUkQdihqrnLYCUMaB44hSol9e0/cdIhuNFcqZO0xNheAU6qqHVA8sMiLofkYTgb+lmw==} + engines: {node: '>= 0.10.4'} + hasBin: true + + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.12': + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.12': + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.12': + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.12': + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.12': + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.12': + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.12': + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.12': + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.12': + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.12': + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.12': + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.12': + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.12': + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.12': + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.12': + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.2': + resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.6': + resolution: {integrity: sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.4': + resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@fluent/syntax@0.19.0': + resolution: {integrity: sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==} + engines: {node: '>=14.0.0', npm: '>=7.0.0'} + + '@fregante/relaxed-json@2.0.0': + resolution: {integrity: sha512-PyUXQWB42s4jBli435TDiYuVsadwRHnMc27YaLouINktvTWsL3FcKrRMGawTayFk46X+n5bE23RjUTWQwrukWw==} + engines: {node: '>= 0.10.0'} + + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@mdn/browser-compat-data@8.0.4': + resolution: {integrity: sha512-up6DsNsaPt3jq5d2TGx4UOXIqBKU0D86dxWwcVmmOOEYqP1rFaV1XcAcwHxMvb6bbtMfY5JpjUCszzy/aVc4yA==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pinojs/redact@0.4.0': + resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} + + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@3.0.3': + resolution: {integrity: sha512-//0sR/cow/s4ICQaYoAobOl4aU8cjU6x/V24V7XkKotb9+O+3zySIYp146vpaobYHnxa4pZX8NkV54Z5AwbDKA==} + engines: {node: '>=12'} + + '@rollup/rollup-android-arm-eabi@4.62.3': + resolution: {integrity: sha512-c0wdcekXtQvvn5Tsrk/+op/gUArrbWaFduBnTLP2l1cKLSQs4diMWjJw3m6A0DdzT8dAAX95KpkJ3qynCePbmw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.62.3': + resolution: {integrity: sha512-3YjElDdWN+qXAFbJ/CzPV+0wspLqh54k/I6GfdYtEJRqg7buSgc1yPM3B+93j1M4neobtkATHZTmxK2AMVGfnA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.62.3': + resolution: {integrity: sha512-Pch2pFNOxxz1hTjypIdPyRTR6riiwRl84+VcN9djS680fw+Co1nAJINrdpqp7KV0NvyuU8ilZXZCjd7ykJl1GQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.62.3': + resolution: {integrity: sha512-LEuncFUHFiF8t4yZVZvvZA1wk0pjAscRnsrn1EfTEmN4HXotBi2YtcnLRyaK6UbuczW7xZS5ES+81Rdz8Z0T6g==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.62.3': + resolution: {integrity: sha512-zvBUvsQUpOWALdDsk6qbS8bXf2VxmPisuudNDrY7x0p0jBdsoZl8HsHczIOgkQiZldmcacMKtBzpoGVNeIe2bQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.62.3': + resolution: {integrity: sha512-C2KmNrcSem/AMg984H/dev+si0lieQGdXdR/lYGJnuumXnFb9Y7QdiI62obFdLlxRYLBv4P0eUVIDbD4c1vVvw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.62.3': + resolution: {integrity: sha512-ggXnsTAEzNQx74XpunRsiZ9aBZDsI7XIa0hm2nzR9f4WzH5/f/d73ZSDaC5ejJ8YLY4NW+V3wr0tjOaeCq8hqA==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.62.3': + resolution: {integrity: sha512-2vng+FlzNUhKZxtej3IUqJgbZoQk2M/dwQM20+ULV0R/E/8tr9/P6uEf2iiGIk4HL0zMKh5Jry7mUHdUOvyGgA==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.62.3': + resolution: {integrity: sha512-LLLFZKt4/Nraf9rxDkhiU8QVgLF4WmCkfr0L4fj0fPfIZFBib0DeiFk1hhaYKd03LFAFJcxHslhDFlNJLylf5Q==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.62.3': + resolution: {integrity: sha512-WJkdQCvS9sWNOUBJZfQRKpZGFBztRzcowI+nndmflKgU4XY+3a420FgTOSKTsVqJbnzSxeT4vaJalpOaPo2YCQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.62.3': + resolution: {integrity: sha512-PwHXCCS2n64/1Ot6rP1YEYA02MGYBcQlr8CSZZyrUG2O7NH6NklYmvr9v3Jy+5e/eDeNchc/ukmKJi9LuflMIQ==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.62.3': + resolution: {integrity: sha512-vUjxINQu3RC8NZS3ykk1gN65gIz8pAopOq2HXuZhiIxHdx7TFvDG+jgrdSgInu1Eza4/Rfi2VzZgyIgEH4WOaw==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.62.3': + resolution: {integrity: sha512-wzko4aJ13+0G3kGnviCg5gnXFKd40izKsrf2uOw12US4XqprkDrmwOpeW14aSNa37V8bfPcz5Fkob6LZ3BAPmA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.62.3': + resolution: {integrity: sha512-8120ue0JUMSwy11stlwnfdX3pPd+WZYGCDBwEHWtIHi6pOpZmsEF5QKB7a/UN+XFdqvobxz98kv8RTqikyCEBw==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.62.3': + resolution: {integrity: sha512-XLFHnR3tXMjbOCh2vtVJHmxt+995uJsTERQyseFDRA0xxMxyTZPLa3OIUlyFaO4mF/Lu0FjmWHCuPXJT1n/IOg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.62.3': + resolution: {integrity: sha512-se6yXvNGMIl0f+RQzyh7XAmia8/9kplQx424wnG2w0C1oi6XgO6Y8otKhdXFHbHs88Ihavzmvh1NWjuovE76BQ==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.62.3': + resolution: {integrity: sha512-gNoxRefktVIiGflpONuxWWXZAzIQG++z9qHO3xKwk4WdDMuQja3JHGfE1u0i3PfPDyvhypdk+WrgIJqLhGG7sg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.62.3': + resolution: {integrity: sha512-V4KtWtQfAFMU7+9/A/VDps/VI8CHd3cYz0L8sgJzz8qK7eY7wI4ruFD82UYIYvW9Z4DtlTfhQcsl4XyPHW5uSg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.62.3': + resolution: {integrity: sha512-LBx9LYXvj2CBkMkjLdNAWLwH0MLMin7do2VcVo9kVPibGLkY0BQQut2fv7NVqkXqZ/CrAu9LqDHVV1xHCMpCPw==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.62.3': + resolution: {integrity: sha512-ABVf3Q0RCu7NcyCCOZQI0pJ3GuSdfSl8EXcy88QtdceIMIoCUdfhsJChZ64L9zVM2aJHjde1Bhn5uqSRcX9ySA==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.62.3': + resolution: {integrity: sha512-+2Cy/ldweGBLlPIKsQLF8U5N44a0KDdbrk1rAjHOM9M2K+kGdIVjHLmmrZIcx+9Ny3ke/1JomCsDI1ocb11+sg==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.62.3': + resolution: {integrity: sha512-dtZvzc8BedpSaFNy75x6uiWwAGTH+aZHDtdrqP6qk+WcLJrfti6sGje1ZJ9UxyzDLF23d/mV+PaMwuC0hL7UVA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.62.3': + resolution: {integrity: sha512-Rj8Ra4noo+aYy7sKBggCx0407mws34kAb1ySyWuq5DAtFBQdkSwnsjCgPrhPe9cvgBKZIukpE+CVHvORCS93kQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.62.3': + resolution: {integrity: sha512-vp7N084ew/odXn2gi/mzm9mUkQu9l6AiN6dt4IeUM2Uvm9o+cVmP+YkqbMOteLbiGgqBBlJZjIMYVCfOOIVbVQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.62.3': + resolution: {integrity: sha512-MOG/3gTOn4Fwf574RVOaY61I5o6P90legkFADiTyn1hyjNydT+cerU2rLUwPdZkKKyJ+iT+K9p7WXK4LM1Ka6g==} + cpu: [x64] + os: [win32] + + '@types/chrome@0.0.326': + resolution: {integrity: sha512-WS7jKf3ZRZFHOX7dATCZwqNJgdfiSF0qBRFxaO0LhIOvTNBrfkab26bsZwp6EBpYtqp8loMHJTnD6vDTLWPKYw==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/filesystem@0.0.36': + resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==} + + '@types/filewriter@0.0.33': + resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} + + '@types/har-format@1.2.16': + resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + '@types/node@22.20.1': + resolution: {integrity: sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==} + + '@types/qrcode@1.5.6': + resolution: {integrity: sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.18.0: + resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==} + engines: {node: '>=0.4.0'} + hasBin: true + + addons-linter@10.8.0: + resolution: {integrity: sha512-AotpGWlp5FrmUIH8kjyYjQvCmthnSqPLpw7kOEl7DfoAWEndOCV/ONuekAVM8QObiei802RyyIClEaekA51n5g==} + engines: {node: '>=20.0.0'} + hasBin: true + + addons-moz-compare@1.3.0: + resolution: {integrity: sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==} + + addons-scanner-utils@15.4.0: + resolution: {integrity: sha512-i3PnJx9YLZi96o4t4JWArP6JimC01949YVAcMJKHfyQ5qmUBaH21qNS8f12/RsloejW8IcCEljhh3Fq3gxFNsg==} + peerDependencies: + express: 5.2.1 + safe-compare: 1.1.4 + peerDependenciesMeta: + express: + optional: true + safe-compare: + optional: true + + adm-zip@0.5.18: + resolution: {integrity: sha512-ufJnssQGbxzLNS1Ho9bCtX4rQKCCvoVuDLHoJyc3F9dOGDB4BkWs2Ci0kv53lqocAEQ/Cbi+I2XCsNYGqVYqng==} + engines: {node: '>=12.0'} + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-differ@4.0.0: + resolution: {integrity: sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + array-union@3.0.1: + resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} + engines: {node: '>=12'} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + atomically@2.1.1: + resolution: {integrity: sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + + brace-expansion@1.1.18: + resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.2.0: + resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} + engines: {node: '>=20.18.1'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chrome-launcher@1.2.0: + resolution: {integrity: sha512-JbuGuBNss258bvGil7FT4HKdC3SC2K7UAEUqiPy3ACS3Yxo3hAW6bvFpCu2HsIJLgTqxgEX6BkujvzZfLpUD0Q==} + engines: {node: '>=12.13.0'} + hasBin: true + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + columnify@1.6.0: + resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} + engines: {node: '>=8.0.0'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + configstore@7.1.0: + resolution: {integrity: sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==} + engines: {node: '>=18'} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@6.0.1: + resolution: {integrity: sha512-G7Cqgaelq68XHJNGlZ7lrNQyhZGsFqpwtGFexqUv4IQdjKoSYF7ipZ9UuTJZUSQXFj/XaoBLuEVIVqr8EJngEQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} + + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + engines: {node: '>=18'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + encoding-sniffer@0.2.1: + resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + + esbuild@0.25.12: + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-plugin-no-unsanitized@4.1.5: + resolution: {integrity: sha512-MSB4hXPVFQrI8weqzs6gzl7reP2k/qSjtCoL2vUMSDejIIq9YL1ZKvq5/ORBXab/PvfBBrWO2jWviYpL+4Ghfg==} + peerDependencies: + eslint: ^9 || ^10 + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@9.39.4: + resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-patch@3.1.1: + resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.1.5: + resolution: {integrity: sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + firefox-profile@4.7.0: + resolution: {integrity: sha512-aGApEu5bfCNbA4PGUZiRJAIU6jKmghV2UVdklXAofnNtiDjqYw0czLS46W7IfFqVKgKhFB8Ao2YoNGHY4BoIMQ==} + engines: {node: '>=18'} + hasBin: true + + first-chunk-stream@3.0.0: + resolution: {integrity: sha512-LNRvR4hr/S8cXXkIY5pTgVP7L3tq6LlYWcg9nWBuW7o1NMxKZo6oOVa/6GIekMGI0Iw7uC+HWimMe9u/VAeKqw==} + engines: {node: '>=8'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} + + fs-extra@11.4.0: + resolution: {integrity: sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==} + engines: {node: '>=14.14'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fx-runner@1.5.0: + resolution: {integrity: sha512-EstfdRQu04tM+SXR3pBmc0+GYKZj9FMHAvA8XAbKPzTvUeHP0v1/F3aQ10bG7EluR6phvFqsvn5Z7SvYJsEgNw==} + hasBin: true + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.6.0: + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} + engines: {node: '>=18'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + htmlparser2@10.1.0: + resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + image-size@2.0.2: + resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} + engines: {node: '>=16.x'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + index-to-position@1.2.0: + resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} + engines: {node: '>=18'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-in-ci@1.0.0: + resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} + engines: {node: '>=18'} + hasBin: true + + is-in-ssh@1.0.0: + resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} + engines: {node: '>=20'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-installed-globally@1.0.0: + resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} + engines: {node: '>=18'} + + is-npm@6.1.0: + resolution: {integrity: sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + + is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.5: + resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} + engines: {node: '>=18'} + + jose@5.9.6: + resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.3.1: + resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-merge-patch@1.0.2: + resolution: {integrity: sha512-M6Vp2GN9L7cfuMXiWOmHj9bEFbeC250iVtcKQbqVgEsDVYnIsrNsbU+h/Y/PkbBQCtEa4Bez+Ebv0zfbC8ObLg==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} + + jsonwebtoken@9.0.3: + resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} + engines: {node: '>=12', npm: '>=6'} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + jwa@2.0.1: + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + + jws@4.0.1: + resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + ky@1.14.3: + resolution: {integrity: sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==} + engines: {node: '>=18'} + + latest-version@9.0.0: + resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} + engines: {node: '>=18'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + lighthouse-logger@2.0.2: + resolution: {integrity: sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + marky@1.3.0: + resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multimatch@6.0.0: + resolution: {integrity: sha512-I7tSVxHGPlmPN/enE3mS1aOSo6bWBfls+3HmuEeCUBCE7gWnm3cBXCBkpurzFjVRwC6Kld8lLaZ1Iv5vOcjvcQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nanoid@3.3.16: + resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-forge@1.4.0: + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} + engines: {node: '>= 6.13.0'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + + open@11.0.0: + resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} + engines: {node: '>=20'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@7.0.6: + resolution: {integrity: sha512-I4Prw6ivkd6p8PiYR1tXASOAOBzIJwu0TB7fqaX0c/8c3QAehNYmX57EijyGGGBt3c/BIowGwV03RVBtXvHEVg==} + engines: {node: '>=18'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json@10.0.1: + resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} + engines: {node: '>=18'} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + + pino-abstract-transport@3.0.0: + resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} + + pino-std-serializers@7.1.0: + resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==} + + pino@10.3.1: + resolution: {integrity: sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==} + hasBin: true + + pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + + postcss@8.5.24: + resolution: {integrity: sha512-8RyVklq0owXUTa4xlpzu4l9AaVKIdQvAcOHZWaMh98HgySsUtxRVf/chRe3dsSLqb6i40BzGRzEUddRaI+9TSw==} + engines: {node: ^10 || ^12 || >=14} + + powershell-utils@0.1.0: + resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} + engines: {node: '>=20'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process-warning@5.1.0: + resolution: {integrity: sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==} + + promise-toolbox@0.21.0: + resolution: {integrity: sha512-NV8aTmpwrZv+Iys54sSFOBx3tuVaOBvvrft5PNppnxy9xpU/akHbaWIril22AB22zaPgrgwKdD0KsrM0ptUtpg==} + engines: {node: '>=6'} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pupa@3.3.0: + resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} + engines: {node: '>=12.20'} + + qrcode@1.5.4: + resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} + engines: {node: '>=10.13.0'} + hasBin: true + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + + real-require@1.0.0: + resolution: {integrity: sha512-P4nbQYQfePJxRSmY+v/KINxVucm4NF3p3s7pJveMTtom52FR4YGltUQLB8idDXwDDWW+eYrWDFbuzUnjoWHF7g==} + + registry-auth-token@5.1.1: + resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==} + engines: {node: '>=14'} + + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup@4.62.3: + resolution: {integrity: sha512-Gu0c0iH9FzgX1L1t7ByIbbS3Vmdz+6KHm/EsqmmC71gUQ82yvZRkTK6XzrFObSka91WUVdynqp6nsfilzr5k6Q==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.6.1: + resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==} + engines: {node: '>=11.0.0'} + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.4: + resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} + engines: {node: '>= 0.4'} + + sonic-boom@4.2.1: + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + split@1.0.1: + resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + + strip-bom-buf@2.0.0: + resolution: {integrity: sha512-gLFNHucd6gzb8jMsl5QmZ3QgnUJmp7qn4uUSHNwEXumAp7YizoGYw19ZUVfuq4aBOQUtyn2k8X/CwzWB73W2lQ==} + engines: {node: '>=8'} + + strip-bom-stream@4.0.0: + resolution: {integrity: sha512-0ApK3iAkHv6WbgLICw/J4nhwHeDZsBxIIsOD+gHgZICL6SeJ0S9f/WZqemka9cjkTyMN5geId6e8U5WGFAn3cQ==} + engines: {node: '>=8'} + + strip-bom@5.0.0: + resolution: {integrity: sha512-p+byADHF7SzEcVnLvc/r3uognM1hUhObuHXxJcgLCfD194XAkaLbjq3Wzb0N5G2tgIjH0dgT708Z51QxMeu60A==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} + + stubborn-fs@2.0.0: + resolution: {integrity: sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==} + + stubborn-utils@1.0.2: + resolution: {integrity: sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + thread-stream@4.2.0: + resolution: {integrity: sha512-e2zZ96wSChazBsbENf/Pcm/4swHt2cEKQ92rhUjkL9GCKiTDJIaTBenjE/m9DXi0QBmTMDkFDdOomUy20A1tDQ==} + engines: {node: '>=20'} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + + tmp@0.2.7: + resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==} + engines: {node: '>=14.14'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + undici@7.29.0: + resolution: {integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==} + engines: {node: '>=20.18.1'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + upath@3.0.7: + resolution: {integrity: sha512-VjBBquch25nUGMuVBpOb2Cj3gc8Kb7lJBqbsXR/0anZ/5uJsL14Kpth9JKfnBsckxCfgIp6hPvcvvmZ97R9X7g==} + engines: {node: '>=20'} + + update-notifier@7.3.1: + resolution: {integrity: sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==} + engines: {node: '>=18'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vite-plugin-static-copy@2.3.2: + resolution: {integrity: sha512-iwrrf+JupY4b9stBttRWzGHzZbeMjAHBhkrn67MNACXJVjEMRpCI10Q3AkxdBkl45IHaTfw/CNVevzQhP7yTwg==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + + vite@6.4.3: + resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + watchpack@2.5.2: + resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} + engines: {node: '>=10.13.0'} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + web-ext@10.5.0: + resolution: {integrity: sha512-tveUHhZHu5A2Qrs7u+hbh2S+7ZPuKVH/ILzqkRwpdivFOnVmgPhDLtmtGNKT3a8N9PZbW5uP6INe6Byj5qePVQ==} + engines: {node: '>=20.0.0', npm: '>=8.0.0'} + hasBin: true + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + when-exit@2.1.5: + resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + + winreg@0.0.12: + resolution: {integrity: sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + + wsl-utils@0.3.1: + resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} + engines: {node: '>=20'} + + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + + xml2js@0.6.2: + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@3.4.0: + resolution: {integrity: sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zip-dir@2.0.0: + resolution: {integrity: sha512-uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==} + +snapshots: + + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/runtime@8.0.0': {} + + '@devicefarmer/adbkit-logcat@2.1.3': {} + + '@devicefarmer/adbkit-monkey@1.2.1': {} + + '@devicefarmer/adbkit@3.3.8': + dependencies: + '@devicefarmer/adbkit-logcat': 2.1.3 + '@devicefarmer/adbkit-monkey': 1.2.1 + bluebird: 3.7.2 + commander: 9.5.0 + debug: 4.3.7 + node-forge: 1.4.0 + split: 1.0.1 + transitivePeerDependencies: + - supports-color + + '@esbuild/aix-ppc64@0.25.12': + optional: true + + '@esbuild/android-arm64@0.25.12': + optional: true + + '@esbuild/android-arm@0.25.12': + optional: true + + '@esbuild/android-x64@0.25.12': + optional: true + + '@esbuild/darwin-arm64@0.25.12': + optional: true + + '@esbuild/darwin-x64@0.25.12': + optional: true + + '@esbuild/freebsd-arm64@0.25.12': + optional: true + + '@esbuild/freebsd-x64@0.25.12': + optional: true + + '@esbuild/linux-arm64@0.25.12': + optional: true + + '@esbuild/linux-arm@0.25.12': + optional: true + + '@esbuild/linux-ia32@0.25.12': + optional: true + + '@esbuild/linux-loong64@0.25.12': + optional: true + + '@esbuild/linux-mips64el@0.25.12': + optional: true + + '@esbuild/linux-ppc64@0.25.12': + optional: true + + '@esbuild/linux-riscv64@0.25.12': + optional: true + + '@esbuild/linux-s390x@0.25.12': + optional: true + + '@esbuild/linux-x64@0.25.12': + optional: true + + '@esbuild/netbsd-arm64@0.25.12': + optional: true + + '@esbuild/netbsd-x64@0.25.12': + optional: true + + '@esbuild/openbsd-arm64@0.25.12': + optional: true + + '@esbuild/openbsd-x64@0.25.12': + optional: true + + '@esbuild/openharmony-arm64@0.25.12': + optional: true + + '@esbuild/sunos-x64@0.25.12': + optional: true + + '@esbuild/win32-arm64@0.25.12': + optional: true + + '@esbuild/win32-ia32@0.25.12': + optional: true + + '@esbuild/win32-x64@0.25.12': + optional: true + + '@eslint-community/eslint-utils@4.10.1(eslint@9.39.4)': + dependencies: + eslint: 9.39.4 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.2': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.6': + dependencies: + ajv: 6.15.0 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.3.1 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.4': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@fluent/syntax@0.19.0': {} + + '@fregante/relaxed-json@2.0.0': {} + + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@mdn/browser-compat-data@8.0.4': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@pinojs/redact@0.4.0': {} + + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@3.0.3': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + + '@rollup/rollup-android-arm-eabi@4.62.3': + optional: true + + '@rollup/rollup-android-arm64@4.62.3': + optional: true + + '@rollup/rollup-darwin-arm64@4.62.3': + optional: true + + '@rollup/rollup-darwin-x64@4.62.3': + optional: true + + '@rollup/rollup-freebsd-arm64@4.62.3': + optional: true + + '@rollup/rollup-freebsd-x64@4.62.3': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.62.3': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.62.3': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.62.3': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.62.3': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.62.3': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.62.3': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.62.3': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.62.3': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.62.3': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.62.3': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.62.3': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.62.3': + optional: true + + '@rollup/rollup-linux-x64-musl@4.62.3': + optional: true + + '@rollup/rollup-openbsd-x64@4.62.3': + optional: true + + '@rollup/rollup-openharmony-arm64@4.62.3': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.62.3': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.62.3': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.62.3': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.62.3': + optional: true + + '@types/chrome@0.0.326': + dependencies: + '@types/filesystem': 0.0.36 + '@types/har-format': 1.2.16 + + '@types/estree@1.0.9': {} + + '@types/filesystem@0.0.36': + dependencies: + '@types/filewriter': 0.0.33 + + '@types/filewriter@0.0.33': {} + + '@types/har-format@1.2.16': {} + + '@types/json-schema@7.0.15': {} + + '@types/minimatch@3.0.5': {} + + '@types/node@22.20.1': + dependencies: + undici-types: 6.21.0 + + '@types/qrcode@1.5.6': + dependencies: + '@types/node': 22.20.1 + + acorn-jsx@5.3.2(acorn@8.18.0): + dependencies: + acorn: 8.18.0 + + acorn@8.18.0: {} + + addons-linter@10.8.0: + dependencies: + '@fluent/syntax': 0.19.0 + '@fregante/relaxed-json': 2.0.0 + '@mdn/browser-compat-data': 8.0.4 + addons-moz-compare: 1.3.0 + addons-scanner-utils: 15.4.0 + ajv: 8.20.0 + cheerio: 1.2.0 + columnify: 1.6.0 + common-tags: 1.8.2 + css-tree: 3.2.1 + deepmerge: 4.3.1 + eslint: 9.39.4 + eslint-plugin-no-unsanitized: 4.1.5(eslint@9.39.4) + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esprima: 4.0.1 + fast-json-patch: 3.1.1 + image-size: 2.0.2 + json-merge-patch: 1.0.2 + pino: 10.3.1 + semver: 7.8.5 + source-map-support: 0.5.21 + upath: 3.0.7 + yargs: 17.7.2 + yauzl: 3.4.0 + transitivePeerDependencies: + - express + - jiti + - safe-compare + - supports-color + + addons-moz-compare@1.3.0: {} + + addons-scanner-utils@15.4.0: + dependencies: + common-tags: 1.8.2 + first-chunk-stream: 3.0.0 + jsonwebtoken: 9.0.3 + strip-bom-stream: 4.0.0 + upath: 3.0.7 + yauzl: 3.4.0 + + adm-zip@0.5.18: {} + + agent-base@7.1.4: {} + + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.5 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + + argparse@2.0.1: {} + + array-differ@4.0.0: {} + + array-union@3.0.1: {} + + async@3.2.6: {} + + atomic-sleep@1.0.0: {} + + atomically@2.1.1: + dependencies: + stubborn-fs: 2.0.0 + when-exit: 2.1.5 + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + bluebird@3.7.2: {} + + boolbase@1.0.0: {} + + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.6.2 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.41.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.2 + + brace-expansion@1.1.18: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + buffer-equal-constant-time@1.0.1: {} + + buffer-from@1.1.2: {} + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.1.0 + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + camelcase@8.0.0: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.6.2: {} + + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.2.2 + css-what: 6.2.2 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + + cheerio@1.2.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + encoding-sniffer: 0.2.1 + htmlparser2: 10.1.0 + parse5: 7.3.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 7.29.0 + whatwg-mimetype: 4.0.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chrome-launcher@1.2.0: + dependencies: + '@types/node': 22.20.1 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 2.0.2 + transitivePeerDependencies: + - supports-color + + cli-boxes@3.0.0: {} + + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone@1.0.4: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + columnify@1.6.0: + dependencies: + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + commander@12.1.0: {} + + commander@9.5.0: {} + + common-tags@1.8.2: {} + + concat-map@0.0.1: {} + + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + configstore@7.1.0: + dependencies: + atomically: 2.1.1 + dot-prop: 9.0.0 + graceful-fs: 4.2.11 + xdg-basedir: 5.1.0 + + core-util-is@1.0.3: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-tree@3.2.1: + dependencies: + mdn-data: 2.27.1 + source-map-js: 1.2.1 + + css-what@6.2.2: {} + + debounce@1.2.1: {} + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decamelize@1.2.0: {} + + decamelize@6.0.1: {} + + deep-extend@0.6.0: {} + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + default-browser-id@5.0.1: {} + + default-browser@5.5.0: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.1 + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + define-lazy-prop@3.0.0: {} + + dijkstrajs@1.0.3: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dot-prop@9.0.0: + dependencies: + type-fest: 4.41.0 + + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + + emoji-regex@10.6.0: {} + + emoji-regex@8.0.0: {} + + encoding-sniffer@0.2.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + + entities@4.5.0: {} + + entities@6.0.1: {} + + entities@7.0.1: {} + + es6-error@4.1.1: {} + + esbuild@0.25.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 + + escalade@3.2.0: {} + + escape-goat@4.0.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-plugin-no-unsanitized@4.1.5(eslint@9.39.4): + dependencies: + eslint: 9.39.4 + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@9.39.4: + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.4) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.6 + '@eslint/js': 9.39.4 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + ajv: 6.15.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) + eslint-visitor-keys: 4.2.1 + + espree@11.2.0: + dependencies: + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) + eslint-visitor-keys: 5.0.1 + + esprima@4.0.1: {} + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-patch@3.1.1: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.1.5: {} + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + firefox-profile@4.7.0: + dependencies: + adm-zip: 0.5.18 + fs-extra: 11.4.0 + ini: 4.1.3 + minimist: 1.2.8 + xml2js: 0.6.2 + + first-chunk-stream@3.0.0: {} + + flat-cache@4.0.1: + dependencies: + flatted: 3.4.4 + keyv: 4.5.4 + + flatted@3.4.4: {} + + fs-extra@11.4.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + + fsevents@2.3.3: + optional: true + + fx-runner@1.5.0: + dependencies: + commander: 12.1.0 + shell-quote: 1.8.4 + which: 4.0.0 + winreg: 0.0.12 + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.6.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + + globals@14.0.0: {} + + graceful-fs@4.2.10: {} + + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + + htmlparser2@10.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + image-size@2.0.2: {} + + immediate@3.0.6: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + index-to-position@1.2.0: {} + + inherits@2.0.4: {} + + ini@1.3.8: {} + + ini@4.1.1: {} + + ini@4.1.3: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-docker@2.2.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-in-ci@1.0.0: {} + + is-in-ssh@1.0.0: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-installed-globally@1.0.0: + dependencies: + global-directory: 4.0.1 + is-path-inside: 4.0.0 + + is-npm@6.1.0: {} + + is-number@7.0.0: {} + + is-path-inside@4.0.0: {} + + is-utf8@0.2.1: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + is-wsl@3.1.1: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + isexe@3.1.5: {} + + jose@5.9.6: {} + + js-tokens@4.0.0: {} + + js-yaml@4.3.1: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-merge-patch@1.0.2: + dependencies: + fast-deep-equal: 3.1.3 + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + jsonfile@6.2.1: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonwebtoken@9.0.3: + dependencies: + jws: 4.0.1 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.8.5 + + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + jwa@2.0.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@4.0.1: + dependencies: + jwa: 2.0.1 + safe-buffer: 5.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + ky@1.14.3: {} + + latest-version@9.0.0: + dependencies: + package-json: 10.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lie@3.3.0: + dependencies: + immediate: 3.0.6 + + lighthouse-logger@2.0.2: + dependencies: + debug: 4.4.3 + marky: 1.3.0 + transitivePeerDependencies: + - supports-color + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.includes@4.3.0: {} + + lodash.isboolean@3.0.3: {} + + lodash.isinteger@4.0.4: {} + + lodash.isnumber@3.0.3: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.merge@4.6.2: {} + + lodash.once@4.1.1: {} + + make-error@1.3.6: {} + + marky@1.3.0: {} + + mdn-data@2.27.1: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.18 + + minimist@1.2.8: {} + + ms@2.1.3: {} + + multimatch@6.0.0: + dependencies: + '@types/minimatch': 3.0.5 + array-differ: 4.0.0 + array-union: 3.0.1 + minimatch: 3.1.5 + + nanoid@3.3.16: {} + + natural-compare@1.4.0: {} + + node-forge@1.4.0: {} + + normalize-path@3.0.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + on-exit-leak-free@2.1.2: {} + + open@11.0.0: + dependencies: + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-in-ssh: 1.0.0 + is-inside-container: 1.0.0 + powershell-utils: 0.1.0 + wsl-utils: 0.3.1 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@7.0.6: {} + + p-try@2.2.0: {} + + package-json@10.0.1: + dependencies: + ky: 1.14.3 + registry-auth-token: 5.1.1 + registry-url: 6.0.1 + semver: 7.8.5 + + pako@1.0.11: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.29.7 + index-to-position: 1.2.0 + type-fest: 4.41.0 + + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.3.0 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.3.0 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + pend@1.2.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.2: {} + + picomatch@4.0.5: {} + + pino-abstract-transport@3.0.0: + dependencies: + split2: 4.2.0 + + pino-std-serializers@7.1.0: {} + + pino@10.3.1: + dependencies: + '@pinojs/redact': 0.4.0 + atomic-sleep: 1.0.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 3.0.0 + pino-std-serializers: 7.1.0 + process-warning: 5.1.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.1 + thread-stream: 4.2.0 + + pngjs@5.0.0: {} + + postcss@8.5.24: + dependencies: + nanoid: 3.3.16 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + powershell-utils@0.1.0: {} + + prelude-ls@1.2.1: {} + + process-nextick-args@2.0.1: {} + + process-warning@5.1.0: {} + + promise-toolbox@0.21.0: + dependencies: + make-error: 1.3.6 + + proto-list@1.2.4: {} + + punycode@2.3.1: {} + + pupa@3.3.0: + dependencies: + escape-goat: 4.0.0 + + qrcode@1.5.4: + dependencies: + dijkstrajs: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + + queue-microtask@1.2.3: {} + + quick-format-unescaped@4.0.4: {} + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.2 + + real-require@0.2.0: {} + + real-require@1.0.0: {} + + registry-auth-token@5.1.1: + dependencies: + '@pnpm/npm-conf': 3.0.3 + + registry-url@6.0.1: + dependencies: + rc: 1.2.8 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + require-main-filename@2.0.0: {} + + resolve-from@4.0.0: {} + + reusify@1.1.0: {} + + rollup@4.62.3: + dependencies: + '@types/estree': 1.0.9 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.62.3 + '@rollup/rollup-android-arm64': 4.62.3 + '@rollup/rollup-darwin-arm64': 4.62.3 + '@rollup/rollup-darwin-x64': 4.62.3 + '@rollup/rollup-freebsd-arm64': 4.62.3 + '@rollup/rollup-freebsd-x64': 4.62.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.3 + '@rollup/rollup-linux-arm-musleabihf': 4.62.3 + '@rollup/rollup-linux-arm64-gnu': 4.62.3 + '@rollup/rollup-linux-arm64-musl': 4.62.3 + '@rollup/rollup-linux-loong64-gnu': 4.62.3 + '@rollup/rollup-linux-loong64-musl': 4.62.3 + '@rollup/rollup-linux-ppc64-gnu': 4.62.3 + '@rollup/rollup-linux-ppc64-musl': 4.62.3 + '@rollup/rollup-linux-riscv64-gnu': 4.62.3 + '@rollup/rollup-linux-riscv64-musl': 4.62.3 + '@rollup/rollup-linux-s390x-gnu': 4.62.3 + '@rollup/rollup-linux-x64-gnu': 4.62.3 + '@rollup/rollup-linux-x64-musl': 4.62.3 + '@rollup/rollup-openbsd-x64': 4.62.3 + '@rollup/rollup-openharmony-arm64': 4.62.3 + '@rollup/rollup-win32-arm64-msvc': 4.62.3 + '@rollup/rollup-win32-ia32-msvc': 4.62.3 + '@rollup/rollup-win32-x64-gnu': 4.62.3 + '@rollup/rollup-win32-x64-msvc': 4.62.3 + fsevents: 2.3.3 + + run-applescript@7.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-stable-stringify@2.5.0: {} + + safer-buffer@2.1.2: {} + + sax@1.6.1: {} + + semver@7.8.5: {} + + set-blocking@2.0.0: {} + + setimmediate@1.0.5: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.4: {} + + sonic-boom@4.2.1: + dependencies: + atomic-sleep: 1.0.0 + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + split2@4.2.0: {} + + split@1.0.1: + dependencies: + through: 2.3.8 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.6.0 + strip-ansi: 7.2.0 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.2.2 + + strip-bom-buf@2.0.0: + dependencies: + is-utf8: 0.2.1 + + strip-bom-stream@4.0.0: + dependencies: + first-chunk-stream: 3.0.0 + strip-bom-buf: 2.0.0 + + strip-bom@5.0.0: {} + + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + + strip-json-comments@5.0.3: {} + + stubborn-fs@2.0.0: + dependencies: + stubborn-utils: 1.0.2 + + stubborn-utils@1.0.2: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + thread-stream@4.2.0: + dependencies: + real-require: 1.0.0 + + through@2.3.8: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + + tmp@0.2.7: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@4.41.0: {} + + typescript@5.9.3: {} + + undici-types@6.21.0: {} + + undici@7.29.0: {} + + universalify@2.0.1: {} + + upath@3.0.7: {} + + update-notifier@7.3.1: + dependencies: + boxen: 8.0.1 + chalk: 5.6.2 + configstore: 7.1.0 + is-in-ci: 1.0.0 + is-installed-globally: 1.0.0 + is-npm: 6.1.0 + latest-version: 9.0.0 + pupa: 3.3.0 + semver: 7.8.5 + xdg-basedir: 5.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + vite-plugin-static-copy@2.3.2(vite@6.4.3(@types/node@22.20.1)): + dependencies: + chokidar: 3.6.0 + fast-glob: 3.3.3 + fs-extra: 11.4.0 + p-map: 7.0.6 + picocolors: 1.1.1 + vite: 6.4.3(@types/node@22.20.1) + + vite@6.4.3(@types/node@22.20.1): + dependencies: + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + postcss: 8.5.24 + rollup: 4.62.3 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 22.20.1 + fsevents: 2.3.3 + + watchpack@2.5.2: + dependencies: + graceful-fs: 4.2.11 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + web-ext@10.5.0: + dependencies: + '@babel/runtime': 8.0.0 + '@devicefarmer/adbkit': 3.3.8 + addons-linter: 10.8.0 + camelcase: 8.0.0 + chrome-launcher: 1.2.0 + debounce: 1.2.1 + decamelize: 6.0.1 + es6-error: 4.1.1 + firefox-profile: 4.7.0 + fx-runner: 1.5.0 + https-proxy-agent: 7.0.6 + jose: 5.9.6 + jszip: 3.10.1 + multimatch: 6.0.0 + open: 11.0.0 + parse-json: 8.3.0 + pino: 10.3.1 + promise-toolbox: 0.21.0 + source-map-support: 0.5.21 + strip-bom: 5.0.0 + strip-json-comments: 5.0.3 + tmp: 0.2.7 + update-notifier: 7.3.1 + watchpack: 2.5.2 + yargs: 17.7.2 + zip-dir: 2.0.0 + transitivePeerDependencies: + - express + - jiti + - safe-compare + - supports-color + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + when-exit@2.1.5: {} + + which-module@2.0.1: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@4.0.0: + dependencies: + isexe: 3.1.5 + + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + + winreg@0.0.12: {} + + word-wrap@1.2.5: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.2.0 + + wsl-utils@0.3.1: + dependencies: + is-wsl: 3.1.1 + powershell-utils: 0.1.0 + + xdg-basedir@5.1.0: {} + + xml2js@0.6.2: + dependencies: + sax: 1.6.1 + xmlbuilder: 11.0.1 + + xmlbuilder@11.0.1: {} + + y18n@4.0.3: {} + + y18n@5.0.8: {} + + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + + yargs-parser@21.1.1: {} + + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@3.4.0: + dependencies: + pend: 1.2.0 + + yocto-queue@0.1.0: {} + + zip-dir@2.0.0: + dependencies: + async: 3.2.6 + jszip: 3.10.1 diff --git a/extension/pnpm-workspace.yaml b/extension/pnpm-workspace.yaml new file mode 100644 index 0000000..09a02ca --- /dev/null +++ b/extension/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +allowBuilds: + esbuild: true +onlyBuiltDependencies: + - esbuild diff --git a/extension/src/assets/contractless-logo-128.png b/extension/src/assets/contractless-logo-128.png new file mode 100644 index 0000000000000000000000000000000000000000..86681b09fe7274de45113b33cf43455c76d808a1 GIT binary patch literal 6168 zcmV+z80Y7SP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D7p+M|K~#8N?Oh9y z9L0H-FxZKKAdGp4$33Qd_Kq{4#0rK$f(*ex1qTr5xSQ_YJDspanM5ud;uvgTU4Vqp z?R59to+KoZP@+s!h^GrM7z_v#@i1=(hlfES;-xo*gdUN^ZR+oyJwe~;ZfAC9Zf5Vk zs=p`+?cX!q|8)QTKgW$5WvK5I6Rg&`b%^9AV~0~j#m^CS7a}U|$HaXR5&qwZ@KumPn`4b35h#w&u%1TT z#?P{uxEc|D4c5DJjhOH!FySs{AW;09_2-KT z=2MIzW*{~P+m73gsqDs7K8va7vpW|Q?GC-Ddlpd^F)fiOgZ$t4q=lzYv^(Y(GoAB` znDDijie=alKWKE^Z<)_EhG;R~YUgJlB5p*m=*%l-x)v4fj$VJE&Bd%XNhMsF=?fGg zDppyHFSd!eaPoI^Uo{_g3{`|p`MH>gJ8b5y&P-oe%yce@Y0>viAb6Rsn?W!>#*{yd zi2MEe&RhS?eD*O^fW~(D9Yn-kHk0dM(bYCw_I4f*!Lj2D!Zu9hqnOEy#W0W(rS&APQ!X&S6JHEKKpQUK1LN_0uU9y z>{s*#nXsx+zeUeC0fV(rk-lB*`STvra8$>T;@>&HXi<4@1L>|e=Ver&j@~d4GkG6O z1T2g>NmU_Oa4^(>c^DKiB6cAnK1GyoLWHlwl&?WVe26Ij031X5&wL#w{9{bSR!n%G z{{4JkAgZX4f(5fvSrQ){bwU8%I!yU;So|oyGG&wjrHjfUBJzEUh!-&xw_(En6%o;9 z5q>JBUduPy=Art|-Xof`g+owV{+OoDg$-~Eu^5<|y)1J0^_YqW5tZOQ{6q=E^eQT- zOlskz-u;-)J=&b7nuI>{`K?jd?)3sKgs*D7P52`=5!cy7oQ7w4UooE}2##ql90_h^ zOxz`i%9qu`DXqR5f*_0Fz`{h_Q%7z**c`jIFmus<*b#ZH2vuY9G%4o{m|>Y*jR>FL z(4If9zB3nzJs!7t2vI%@?EdO{r*1733Nq*?U^H_0EfZ%hs$GW?+<|Q-cW5nmkckLN z>PuAT=w?hrk4^dCnPWx;2oOPz=&-4HTq%*DBbd(@fJzD~rs7(2teSxBxZgsAzn`g+ zJzw7(RG`Ph5VbQ>ju$w)F_AyURIIM_SkpHlz6JCYbDUJ8Wt#gn2({8)yn!zsjQs7A zip_|MU*Ku84>iXd38?ThD(-{bt&%IPQj7_I!@9WpICG5D0x@x&I`b<&_x0jqB34;c zPEDFg6|8$U^RB~0ej46$=_#cUIquyx5m%tDTugkRBzwTi1|d+m=7V?bWz?2G#T+L| zz|8GJl&{HjgnMV-2(=SYZ${Z(&K!l%<3IE@) zg0GE4{Pp_Io@SGGYG7x@_w8(9TcsMZuRFZf*e*{n$4D}4+H)?Za&9(*(f~|kD~5=s5Q?D^9OiAbN%v_c-^9bFe3sqW zyStLDUr&J8g4)wA{u{hpjT}`L}S1O(h{!!?wuTABG$uk%2XYx%Pj=ltpKJM?rDLy_y zY8DlnZPIh5$=^it1%*Q}<2lUa-I$3xf)Zl#PMeAAK!8l%)dr&8#h8k1nSgVnm1w@k z?&6loGjTv!aW$kbz7esh@#g#pE}tkwyUk-3Al!kQRXQcLC)KA^fSN zIl)F0X%ql}?T8L_+X-?E=qu#AO{8$V$#2vmtpb4C<{=fk7$7=IKdZY1G0|c2t2uxY z2s#0F_&=(MpS>Wh0?;($rUMZbcLnhg*nX}dIEYMsHG#%gilCN32!2IGJXkY&0Ju6;QYaBi5R=b9(uS)3(X~h^Jxw!~ z6fIVZ0x)h|1NF{QieLaeK!v>%`K-kj9A@%M70~qg$6z8MQR6vP0HSlgdO5u%?wJrj z&i^s<_a&rR03f&p5xybFbx_9)iZ>w!(d3s3SXo&I3y+ET6K38nl^UkpzJq@SwJZRQ zZTSqQ;t%Tm2YI%^$TtYBM^v0=@=G-A4)-Wb_>ZALqYCFPGdZM|1)!PoiHNwr31Svj zN+97oAnwrQmslW{zW_6-JcOanyc!jN`tx%WY$|RKQWL@dX!>j-erWPb9N-#fm4f7hbm31%U9S;RL{)ZSos&K$;e2Vu{VX?Licqp{SMx zpuY3g37EKdgfRvsP5|myccV?k{W`EC{FZN0Eek+Xd*Mh#_-})LEQu2U@Zn?TJrza8 zk6IQ0Wd|Vq)gX3&{#pW5{M_U>BB-O?El{f6o(_v&*?B)0)v^FIFn1Crd`%Ebp#OpO zL6HiRU+idZD`XJizpsX}w>R<=BOW)$E+NeVkfHg%$60STc=^od+8ZfhA$+?<#B`Hi ztWXnA#A7O|Hoyy%MSfBUylm4Yw?J~pN^|@Y(kuXwJr(o@piRMiT_cg-HTlJcNjmFy zd8HLGOzJO_l2zF-J22%><80x2oA&Ir^h;U=0HS+UaA=V8A9h3)7AD`oS#N~0q;t7_ zY{KWNvq&d!R7`5&wJ_~e(ZLM5ffT-JvF^jhwYCmf`X#Lb(9$~Z2t>uJfzJPuPDI2r zxNDe;t2f2ipi65vJ3lQv(Rsm=t?&+BLO|1rbuDy}E0uu3n z$uAbbwu7j6H|%78kxKdR@*_<64G;}vj#my+DFDUdcuYkv4(J$DSHNsf--v{SLGB!K z`2BWg70!Kl5tRYNUqFsH+Z-zh(kK8bfrg5Af^Pr5D|n05&O1$>kpofhaywht5%i%= zD#Zd|%I}2)5_6oONTUE`DE}UUo`wN+DDVPe%HM68c4NF@;WiO}i5#&i=#|AJz4$8A zb!o=Qf887>4ALe5R_mgJz;+T;``0C9bz(@YY2r|47cqWwrW5Y_=0gP_RX@)wT0|^? zo-@+afXh05IieVJ5aJg=LTjD~tU8KZx*U-~u(rs03*e zfaBU{9}cPLLA`&a=R|~Wjt4IlJy~LYV|{zQzHPatzW{F&(WHH zu(Mx1r?LRLFUQ)Q)M7nnU@Eqk6TG=M(#0Lc>zRn^-K9kU>?}VMXL~*j>iSjWo5nHC zUup7<4A3ea6Zs#Z9=Jr>tP9;a&Num23uzDluyJ529@l=8fzL1;!3T&Oz6qLHn7ktc z6lGLhGAjD|Rn6O*$}RQ~21yry6WDG0L)KFzACmqpUmCCWPxg{vz}dHKP3G-xjn=987BM4;D;-}9{jHAKeR4@Q+kIxb*yFcM;EhqoC z<~WhU@9p!R^7;+(U_+9wYr6vqADDcjLQ(`EL%UBzlt0*?|2W84Ws?e!DfHQnxXBzR za$rYZhKL)=>!-t&-FNJ1?olS+s4&t30O4`S$zP6{_eQmXW3}SvzAz%qBoW~^>sBWL zUj$xU$MW57@{AHAB>*kCk$#luxd6fcBxp#3hwuVk@6A}@eov8H^+|!O)P(k zs^AgIU8w>+o;*3`V#aX^03z<`@NacFo8Z^u;mE%|{Slg4n`6fY8>)3tu`&1+MrxBK z;cjcp9Xw+b04ly+iD`WA#I@4L!(3g3FQE3ky?Xq6(gTsL_}jd%qhSZUXC z2)2DY+w&o&e406C?63*{7qyiKeM#-GD57lqrOeYT0P3ji@HSYqJN_u&!2qpSv;r9H zCAG(jZ-KrzCeNsmP65yXo|t)SYziUX(e^7U8;J0^OYaw_CnfwiA z`R|xK69+`xD|8!^V0Hjs2Y9-%eRik}-%1dd0N6~NRF(kf3|`gl9-3Ywn!g-s0-O92 z3GB!&M0sFWurB~_#OVeuAua)c^6WzjfS>)OGpOW7Ok|J6~`zS7Cfs^&l8b5-KTFePmg4ai_Ygg+ZNgGEh@EZWq) z)Z`g8;uC^9q#g&%B9G0J6cBI_7f4Hk&$>Ha6pI>0Hrr9f(FSZ*C-K} z0N^$cAtHW@s91=pm;r6y%zsl8K*W`PV#k2V8j5_y@ik1nzc6`5iMRv+qNVFwdx!it zH34u=V8TCD6Enz!?Tvf^*cx|pheWVOycDACtMsN1K%=Aafq zWfI;JS6UcgBm^Miv7>Zw&OWJ5;G5*K;^Th;{Z(;z8hX{Yh zSL_0jj+zylpy{*8Hwu6NAj(%%CIIf!CR_*+Zd-n7ArPIouI}P2?3N z%h!Mx8HV)a@O$B`Gx=5sPO#4l_e z#XI1=ha;UlBi5(FM*#7Cmq0&j-jamq)uBj?;z$~g&pzJJ;blH9PtzA ztbwV#Y;S}};h$_GE}T4b(Xfgu*!XQooDFI!FU?EG{Gv_8LP#Muc_$82a=Cq>ps{jm z1~du*skk>LUW&D_QG__0b?=WHerw?Caf$rQ=}dc!rCurpWD0?CC(JPblz~1%lrM&A zqbBdP0Wr~msSI4+ea~Dd|H^&GlLZHxyc3I-*4zOW<+lWO4wXnxRv)7Ik#BHR0c_TN zlB$^y^j74P4P|mWdbee=qRr%;c-S2f3nw>)(FN4Y>)&lmUAuE1^=+a7u8I0~6Z|Ly zQl(xTem59}O#X=n^tQ1GFN8@LDUpBI{vQaeH2EhP(AEWP8h%%k0q<1~>3n~=zS6!3 zBMMbCl8U!N-F+2l0}-P9bqKFE`6m%|lutwszrAGa8Td|Rkh=GS9wZmXTI4YbAS$2? z%C1T#!_R;J6K3%kiNc~KE9(#ucUH9c@b&BZ{%;@K&c9)fkvdGCnfodx?gNz^1=>{H z3zM=AqKA_BRUqO`wux9#X|X5xEuwNOZqLs!$4D*g_U@A~6{|v35c~Y(D20me##Ht; zwTT9EoRNSwe~UIu#asH^4tM4&0zuc=Qa2~wpfProxmp*I58a-2MSM#wU~(iLPXqy9Dcn`^3$>7O@V4!P3?sv!CVc#h7z4J zSzZ=?C zMETFmIT>}Z3AYf1-ojNZotj|s4PtANjvgdGT(g+dobR1`p?IUu;o+4W{BYxJ@7;UV+|5;0QvLufr7DtSRTudzkPyp==wpb3=sRg{j+% qsrw_Fbf1=CJ&k@r>(Sw^_3{6XQ5ZCV!930Y0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0$52zK~y+TZIaDv z6G0fpgD7bIDtKybiQRc8+3dlCJ*X&n@FKJzh$Y#X*(9xL8j>D7iFnC5Cc87cYg^+- z(~7k9pkgil1)@kjRQ$k;7f&9ff(Jhk8JVqF^3mUI-}iZ*nVt8IM7F^gEAPW;?;522 z4PfqXpyDS^doO^A@lI_Qh}i(l`(PB8C1$P!Vy`30UjY+R)quHAqM63-PG0~}_W)wz zlTiwUkKz-R{mouH<@W<~7mU&aiHN<_?)(oBr=aKNzXKHy)iKV!?2nkjHogOatuSawzgthJekQqD*$J16!0f&?laqwLHeQ2wPWfI7$Y z$%X{#EQe;@@(%$OU$+|kva0os)_Z_B-?{=w?WURrB2Fm`K&Cxy6qh72ou|#3Hda3f zly9m4NV-VXfZE0Qr8{auo9fUo0GL=x6z)q*_=U~@V6Kd(D*ZtD4W&`FXj!-5j?3mxzg9 pz}!FB^4`TP?`q#@xu;XB_y_WI0Wgs7wPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1!GA>K~z{rtygV` zltmo3A}|dLBQMQ5Z|6U|*HvI>h4vzSD1!V@ao6q6JoD`C?I~&WA%r4AmP94beP*7w z(>q_1NK=W#>2l`OVD#ZD!0k z4`fTDH&Zv-08VfSxc?bpY7&_G7M$QHal)6Vh*v@XrYr4v{~5I4-9kllkh-zXRd(uZ zX-wm9Dk4qYNN0p+Sp&c3=UjtWW@!U|d zVDi~vL;&}bvEkh)j{ z>V?4kl_0_+=Crsn*8(E=9LmA;{328EDTwe7ykA^AF%-VrJuq^W&9%{8tj+`{crg(n zb*{2o1M~LVytV))U+-PD#~eK#If(FhPkvJuj^Xa-uddEo*za93e`R$R?%bY_0PeqK z<~qJMSHt9OHm4;hlNrL*N#On@VRDj|wx7zdtq(T z+d#nJ2mulPN=0D&0l3^}b6Ns-hIh8GzdG0KunC!gXD%aLeTV*#I%E%*cQkXFL705O zIHMbB+zjwwj?HNc6q0r0HMAJNnJv_MXAB&;h%ogvh8i9%8qTyiTEf&|;=Dq0jwEU~;n;Kp^q2$|nn*$+nSz(MIa5IL@_H(w4|2m8|4~Cd zWh0Bt_%sA$gj|X~fCB2FIb?Ir0cC12xY4OJgm4j)`QmaHDXxNpEjLB|4s$&G0W|5qO%OulR~Uwv`v zMrSiz7MnRH3OW>kf(cijVzi`Dfb(sh0SIqJdQ@0Y@OOsQN>g||nA52M!n`LNDLJ{) z12(4tQjo7SQYU`@L+b2Q0LhQsOWpWP5&_AEKm;pnoJUhR7AfS4%U&%E=`#CMlx_vE*9A(`2xA zjcuy|U>-A`U%xBDq_R0F+6e&ejbHchUSkKZG7%F0423PNk3I$Aa=6)92=mt2oD}T@ z5bnvOB@0dFq#`~>25ZZ08&g2JDwuqodTT*FVRKTn698PreUI$J()|;NAXsq!<}2*^ zEkT4@mKv;I!Lv3eMLPkQGqUCJ#}@W`bM1L;fkpxAz8h&;G@d(wNyO$M>gD(cJZf|> z6ugM3I~(HR!Hqt~CX|ZsDCCnW zN&CI4!3lme-4CX4?*EC+jcubPvckVTTf)3wuY4jrk;`vcVDl2_3zE;d0G=i@U-u60 z#?3r$bJ~KiTB8=^l0NWA+xTq)aeS4YVB#OaFWp78$mX?0Pu}kWCpex~!+JCN6=pVU z(`-J16oVxoqJxc!SMUE?)sc>X{Qwp5NqqH~s_4dv5PS!6wU;pYG~wzgVA3N@9R|n$ zD-B_EVsuU@)YjW}r-jTzTW_Eu{t)lcq}22&R)729+Yon|q*?5CFno6+=Xc=VTHD@v zq08Ai8=PPhxZ$LEjMlqg6RM_Hh?6j^n8zso|61Cz{ja!|%lY8OYd{3A0{1_`rh+ha o8o2rboZv7x;YRcWdtN8_8z)GM(OON6^Z)<=07*qoM6N<$f<`OJmjD0& literal 0 HcmV?d00001 diff --git a/extension/src/assets/contractless-logo-48.png b/extension/src/assets/contractless-logo-48.png new file mode 100644 index 0000000000000000000000000000000000000000..3697789f60ef783d9c37fa6a55e870cf0e8cee4a GIT binary patch literal 2272 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 sz>; + wallets: StoredWallet[]; +}; + +async function settings(): Promise { + const stored = await chrome.storage.local.get(SETTINGS_KEY); + const previous = (stored[SETTINGS_KEY] ?? {}) as Partial; + const selectedNetwork = previous.selectedNetwork === "mainnet" ? "mainnet" : "testnet"; + const testnetApiUrl = previous.testnetApiUrl ?? previous.apiUrl ?? DEFAULT_SETTINGS.testnetApiUrl; + const mainnetApiUrl = previous.mainnetApiUrl ?? ""; + return { + selectedNetwork, + testnetApiUrl, + mainnetApiUrl, + apiUrl: selectedNetwork === "mainnet" ? mainnetApiUrl : testnetApiUrl, + autoLockMinutes: previous.autoLockMinutes ?? DEFAULT_SETTINGS.autoLockMinutes + }; +} + +function requireApiUrl(configured: StoredSettings): string { + if (!configured.apiUrl) { + throw new Error(`No ${configured.selectedNetwork} API is configured.`); + } + return configured.apiUrl; +} + +function networkFromAddress(address: string): ContractlessNetwork { + if (address.endsWith(".cltc")) return "testnet"; + if (address.endsWith(".clc")) return "mainnet"; + throw new Error("The wallet address does not identify a supported Contractless network."); +} + +function walletMetadata(walletJson: string): { address: string; publicKey: string; network: ContractlessNetwork } { + const wallet = JSON.parse(walletJson) as { + short_address?: string; + public_key?: string; + }; + if (typeof wallet.short_address !== "string" || typeof wallet.public_key !== "string") { + throw new Error("The encrypted wallet metadata is invalid."); + } + return { + address: wallet.short_address, + publicKey: wallet.public_key, + network: networkFromAddress(wallet.short_address) + }; +} + +async function walletCollection(): Promise { + const stored = await chrome.storage.local.get([WALLETS_KEY, WALLET_KEY]); + const existing = stored[WALLETS_KEY] as ( + StoredWalletCollection + | { version: 1; activeWalletId?: string; wallets: Array> } + | undefined + ); + if (existing?.version === 2 && Array.isArray(existing.wallets)) { + return existing; + } + if (existing?.version === 1 && Array.isArray(existing.wallets)) { + const old = existing; + const wallets = old.wallets.map((wallet) => ({ + ...wallet, + network: networkFromAddress(wallet.address) + })); + const active = wallets.find((wallet) => wallet.id === old.activeWalletId); + const migrated: StoredWalletCollection = { + version: 2, + activeWalletIds: active ? { [active.network]: active.id } : {}, + wallets + }; + await saveWalletCollection(migrated); + return migrated; + } + + const legacyWallet = stored[WALLET_KEY]; + if (typeof legacyWallet !== "string") { + return { version: 2, activeWalletIds: {}, wallets: [] }; + } + + const metadata = walletMetadata(legacyWallet); + const migrated: StoredWallet = { + id: crypto.randomUUID(), + label: "Contractless Account 1", + address: metadata.address, + publicKey: metadata.publicKey, + walletJson: legacyWallet, + network: metadata.network + }; + const collection: StoredWalletCollection = { + version: 2, + activeWalletIds: { [metadata.network]: migrated.id }, + wallets: [migrated] + }; + await chrome.storage.local.set({ [WALLETS_KEY]: collection }); + await chrome.storage.local.remove(WALLET_KEY); + return collection; +} + +async function saveWalletCollection(collection: StoredWalletCollection): Promise { + await chrome.storage.local.set({ [WALLETS_KEY]: collection }); +} + +function activeStoredWallet( + collection: StoredWalletCollection, + network: ContractlessNetwork +): StoredWallet | undefined { + const candidates = collection.wallets.filter((wallet) => wallet.network === network); + return candidates.find((wallet) => wallet.id === collection.activeWalletIds[network]) + ?? candidates[0]; +} + +async function addWallet(walletJson: string): Promise { + const collection = await walletCollection(); + const metadata = walletMetadata(walletJson); + const duplicate = collection.wallets.find((wallet) => wallet.address === metadata.address); + + if (duplicate) { + duplicate.walletJson = walletJson; + duplicate.publicKey = metadata.publicKey; + collection.activeWalletIds[metadata.network] = duplicate.id; + await saveWalletCollection(collection); + return duplicate; + } + + const wallet: StoredWallet = { + id: crypto.randomUUID(), + label: `Contractless Account ${collection.wallets.filter((candidate) => candidate.network === metadata.network).length + 1}`, + address: metadata.address, + publicKey: metadata.publicKey, + walletJson, + network: metadata.network + }; + collection.wallets.push(wallet); + collection.activeWalletIds[metadata.network] = wallet.id; + await saveWalletCollection(collection); + return wallet; +} + +async function status(): Promise { + await restoreUnlockedWallet(); + const collection = await walletCollection(); + const configured = await settings(); + const active = activeStoredWallet(collection, configured.selectedNetwork); + const wallets = collection.wallets.filter((wallet) => wallet.network === configured.selectedNetwork); + return { + exists: wallets.length > 0, + unlocked: Boolean(unlocked && unlocked.walletId === active?.id && unlocked.network === configured.selectedNetwork), + activeWalletId: active?.id, + activeWalletLabel: active?.label, + address: unlocked?.short_address, + publicKey: unlocked?.public_key, + wallets: wallets.map((wallet) => ({ + id: wallet.id, + label: wallet.label, + address: wallet.address, + publicKey: wallet.publicKey, + network: wallet.network, + active: wallet.id === active?.id + })), + selectedNetwork: configured.selectedNetwork, + networkName: configured.selectedNetwork === "testnet" ? "Testnet" : "Mainnet", + networkSymbol: configured.selectedNetwork === "testnet" ? "CLTC" : "CLC", + testnetApiUrl: configured.testnetApiUrl, + mainnetApiUrl: configured.mainnetApiUrl, + apiUrl: configured.apiUrl, + autoLockMinutes: configured.autoLockMinutes + }; +} + +async function resetLockAlarm(): Promise { + if (!unlocked) return; + const configured = await settings(); + unlocked.expiresAt = Date.now() + (configured.autoLockMinutes * 60_000); + await chrome.storage.session.set({ [UNLOCKED_SESSION_KEY]: unlocked }); + await chrome.alarms.clear(LOCK_ALARM); + await chrome.alarms.create(LOCK_ALARM, { + when: unlocked.expiresAt + }); +} + +function arrayBufferDataUrl(buffer: ArrayBuffer, contentType: string): string { + const bytes = new Uint8Array(buffer); + let binary = ""; + const chunkSize = 0x8000; + for (let offset = 0; offset < bytes.length; offset += chunkSize) { + binary += String.fromCharCode(...bytes.subarray(offset, offset + chunkSize)); + } + return `data:${contentType};base64,${btoa(binary)}`; +} + +async function rememberUnlockedWallet( + wallet: Omit +): Promise { + await clearApplicationSessions(); + unlocked = { + ...wallet, + sessionId: crypto.randomUUID(), + expiresAt: 0 + }; + await resetLockAlarm(); +} + +async function registerWalletKeys( + wasm: Awaited>, + wallet: Pick +): Promise { + const registration = JSON.parse( + wasm.create_wallet_registration_from_keys( + wallet.short_address, + wallet.public_key, + wallet.private_key + ) + ); + const handshakeSignature = wasm.create_handshake_proof( + wallet.public_key, + wallet.private_key + ); + const configured = await settings(); + if (!configured.apiUrl) { + throw new Error(`No ${configured.selectedNetwork} API is configured.`); + } + const response = await fetch(`${requireApiUrl(configured)}/api/v1/addresses/register`, { + method: "POST", + headers: { + "Content-Type": "application/json", + "X-Contractless-Address": wallet.short_address, + "X-Contractless-Public-Key": wallet.public_key, + "X-Contractless-Signature": handshakeSignature + }, + body: JSON.stringify({ + address: registration.short_address, + public_key: registration.public_key, + signature: registration.signature + }) + }); + const result = await response.json().catch(() => undefined); + if (!response.ok || result?.success !== true) { + throw new Error(result?.error ?? `Wallet registration failed with HTTP ${response.status}.`); + } + return result.data; +} + +async function ensureWalletRegistered( + wasm: Awaited>, + wallet: Pick +): Promise { + const configured = await settings(); + if (!configured.apiUrl) return; + const handshakeSignature = wasm.create_handshake_proof( + wallet.public_key, + wallet.private_key + ); + const response = await fetch( + `${requireApiUrl(configured)}/api/v1/addresses/registration?address=${encodeURIComponent(wallet.short_address)}`, + { + headers: { + "X-Contractless-Address": wallet.short_address, + "X-Contractless-Public-Key": wallet.public_key, + "X-Contractless-Signature": handshakeSignature + } + } + ); + const result = await response.json().catch(() => undefined); + if (!response.ok || result?.success !== true) { + throw new Error( + result?.error ?? `Wallet registration lookup failed with HTTP ${response.status}.` + ); + } + if (result.data?.registered !== true) { + await registerWalletKeys(wasm, wallet); + } +} + +async function restoreUnlockedWallet(): Promise { + const configured = await settings(); + if (unlocked) { + if (unlocked.expiresAt > Date.now() && unlocked.network === configured.selectedNetwork) return; + await lock(); + return; + } + + const stored = await chrome.storage.session.get(UNLOCKED_SESSION_KEY); + const candidate = stored[UNLOCKED_SESSION_KEY] as UnlockedWallet | undefined; + if (!candidate || candidate.expiresAt <= Date.now()) { + await chrome.storage.session.remove(UNLOCKED_SESSION_KEY); + return; + } + if (candidate.network !== configured.selectedNetwork) { + await chrome.storage.session.remove(UNLOCKED_SESSION_KEY); + await clearApplicationSessions(); + return; + } + if (!candidate.sessionId) { + candidate.sessionId = crypto.randomUUID(); + await clearApplicationSessions(); + await chrome.storage.session.set({ [UNLOCKED_SESSION_KEY]: candidate }); + } + unlocked = candidate; +} + +async function lock(): Promise { + if (unlocked) { + unlocked.private_key = ""; + unlocked = undefined; + } + await chrome.storage.session.remove([ + UNLOCKED_SESSION_KEY, + APP_SESSIONS_KEY + ]); + await chrome.alarms.clear(LOCK_ALARM); +} + +async function applicationSessions(): Promise { + const stored = await chrome.storage.session.get(APP_SESSIONS_KEY); + const sessions = stored[APP_SESSIONS_KEY]; + return Array.isArray(sessions) ? sessions as ApplicationSession[] : []; +} + +async function saveApplicationSessions( + sessions: ApplicationSession[] +): Promise { + await chrome.storage.session.set({ [APP_SESSIONS_KEY]: sessions }); +} + +async function clearApplicationSessions(): Promise { + await chrome.storage.session.remove(APP_SESSIONS_KEY); +} + +function randomHex(byteLength: number): string { + const bytes = crypto.getRandomValues(new Uint8Array(byteLength)); + return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join(""); +} + +async function sha256Hex(value: string): Promise { + const digest = await crypto.subtle.digest( + "SHA-256", + new TextEncoder().encode(value) + ); + return Array.from( + new Uint8Array(digest), + (byte) => byte.toString(16).padStart(2, "0") + ).join(""); +} + +function providerParameters(request: ApprovalRecord): Record { + if (!request.params || typeof request.params !== "object") { + return {}; + } + return request.params as Record; +} + +function validatedApplicationId(value: unknown): string { + const appId = String(value ?? "").trim(); + if (!/^[A-Za-z0-9_-]{5,32}$/.test(appId)) { + throw new Error( + "The application ID must contain 5 to 32 URL-safe characters." + ); + } + return appId; +} + +function validateClaimedOrigin( + params: Record, + actualOrigin: string +): void { + if (String(params.origin ?? "") !== actualOrigin) { + throw new Error("The application origin does not match the requesting website."); + } +} + +function connectionTimestamp(value: unknown): number { + const timestamp = Number(value); + const now = Math.floor(Date.now() / 1_000); + if ( + !Number.isInteger(timestamp) + || Math.abs(now - timestamp) > 300 + ) { + throw new Error( + "The application connection timestamp must be within five minutes." + ); + } + return timestamp; +} + +function connectionNonce(value: unknown): string { + const nonce = String(value ?? "").trim().toLowerCase(); + if (!/^[0-9a-f]{32,128}$/.test(nonce) || nonce.length % 2 !== 0) { + throw new Error( + "The application nonce must contain 16 to 64 random hexadecimal bytes." + ); + } + return nonce; +} + +function connectionMessage(value: unknown): string { + const message = String(value ?? "").trim(); + if (!message || new TextEncoder().encode(message).length > 75) { + throw new Error( + "The application connection message must contain 1 to 75 bytes." + ); + } + return message; +} + +function signedTextMessage(value: unknown): string { + const message = String(value ?? "").trim(); + if (!message || new TextEncoder().encode(message).length > 75) { + throw new Error("A signed website message must contain 1 to 75 bytes."); + } + return message; +} + +function approvalRisk( + method: string, + params: Record +): ApprovalRecord["risk"] { + if ( + method === "contractless_connect" + || method === "contractless_signMessage" + ) { + return "safe"; + } + const transaction = params.transaction; + if (!transaction || typeof transaction !== "object") return "high"; + const txtype = Number((transaction as Record).txtype); + return Number.isInteger(txtype) && txtype >= 100 && txtype <= 113 + ? "low" + : "high"; +} + +function websiteTransaction(value: unknown): Record { + if (!value || typeof value !== "object") { + throw new Error("A complete transaction object is required."); + } + const transaction = value as Record; + const txtype = Number(transaction.txtype); + if (!Number.isInteger(txtype)) { + throw new Error("The transaction type is invalid."); + } + if (txtype === 6 || txtype === 7) { + throw new Error( + "Swaps and loan creation require a staged signing workflow." + ); + } + return transaction; +} + +function websiteDualTransaction(value: unknown): Record { + if (!value || typeof value !== "object") { + throw new Error("A complete or partially signed transaction object is required."); + } + const transaction = value as Record; + const unsigned = transaction.unsigned_swap + ?? transaction.unsigned_loan_contract + ?? transaction; + if (!unsigned || typeof unsigned !== "object") { + throw new Error("The unsigned transaction fields are missing."); + } + const txtype = Number((unsigned as Record).txtype); + if (txtype !== 6 && txtype !== 7) { + throw new Error("Staged signing is only available for swaps and loan creation."); + } + return transaction; +} + +async function ensureRegisteredTransactionParticipants( + wasm: Awaited>, + transaction: Record +): Promise { + if (!unlocked) throw new Error("Wallet is locked."); + const unsignedValue = transaction.unsigned_swap + ?? transaction.unsigned_loan_contract + ?? transaction; + if (!unsignedValue || typeof unsignedValue !== "object") return; + const unsigned = unsignedValue as Record; + const txtype = Number(unsigned.txtype); + const participants: Array<[string, string]> = txtype === 2 + ? [["Receiving", String(unsigned.receiver ?? "")]] + : txtype === 6 + ? [ + ["First swap participant", String(unsigned.sender1 ?? "")], + ["Second swap participant", String(unsigned.sender2 ?? "")] + ] + : txtype === 7 + ? [ + ["Lender", String(unsigned.lender ?? "")], + ["Borrower", String(unsigned.borrower ?? "")] + ] + : []; + if (participants.length === 0) return; + + // Inspection performs canonical field validation before any API request. + wasm.inspect_transaction_request(JSON.stringify(transaction)); + const configured = await settings(); + const signature = wasm.create_handshake_proof( + unlocked.public_key, + unlocked.private_key + ); + const headers = { + "X-Contractless-Address": unlocked.short_address, + "X-Contractless-Public-Key": unlocked.public_key, + "X-Contractless-Signature": signature + }; + const checked = new Map(); + for (const [label, address] of participants) { + const canonical = address.trim().toLowerCase(); + let registered = checked.get(canonical); + if (registered === undefined) { + const response = await fetch( + `${requireApiUrl(configured)}/api/v1/addresses/registration?address=${encodeURIComponent(canonical)}`, + { headers } + ); + const reply = await response.json().catch(() => undefined); + if (!response.ok || reply?.success !== true) { + throw new Error( + reply?.error ?? `Address registration lookup failed with HTTP ${response.status}.` + ); + } + registered = reply.data?.registered === true; + checked.set(canonical, registered); + } + if (!registered) throw new Error(`${label} wallet is not registered.`); + } +} + +async function broadcastSignedTransaction( + wasm: Awaited>, + signed: Record +) { + if ( + signed.complete !== true + || typeof signed.bytes_hex !== "string" + || typeof signed.hash !== "string" + ) { + throw new Error("The transaction could not be completed."); + } + if (!unlocked) throw new Error("Wallet is locked."); + + const configured = await settings(); + const handshakeSignature = wasm.create_handshake_proof( + unlocked.public_key, + unlocked.private_key + ); + const response = await fetch( + `${requireApiUrl(configured)}/api/v1/transactions/broadcast`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + "X-Contractless-Address": unlocked.short_address, + "X-Contractless-Public-Key": unlocked.public_key, + "X-Contractless-Signature": handshakeSignature + }, + body: JSON.stringify({ transaction_hex: signed.bytes_hex }) + } + ); + const reply = await response.json().catch(() => undefined); + if (!response.ok || reply?.success !== true) { + throw new Error( + reply?.error ?? `Transaction broadcast failed with HTTP ${response.status}.` + ); + } + await resetLockAlarm(); + return { + txid: signed.hash, + bytes: signed.bytes_hex, + broadcast: reply.data + }; +} + +async function authorizedApplication( + params: Record, + actualOrigin: string +): Promise { + if (!unlocked) throw new Error("Wallet is locked."); + validateClaimedOrigin(params, actualOrigin); + const appId = validatedApplicationId(params.appId); + const accessKey = String(params.accessKey ?? ""); + const session = (await applicationSessions()).find((candidate) => + candidate.origin === actualOrigin + && candidate.appId === appId + && candidate.accessKey === accessKey + && candidate.walletId === unlocked?.walletId + && candidate.unlockSessionId === unlocked?.sessionId + ); + if (!session) { + throw new Error( + "The application session is invalid or has expired. Reconnect the wallet." + ); + } + return session; +} + +async function approvalQueue(): Promise { + const stored = await chrome.storage.session.get(PENDING_APPROVAL_KEY); + const value = stored[PENDING_APPROVAL_KEY]; + const ids = Array.isArray(value) + ? value.filter((id): id is string => typeof id === "string" && id.length > 0) + : typeof value === "string" && value.length > 0 + ? [value] + : []; + if (ids.length === 0) return []; + + const approvalKeys = ids.map((id) => `approval:${id}`); + const approvals = await chrome.storage.session.get(approvalKeys); + const now = Date.now(); + const active: string[] = []; + const expiredKeys: string[] = []; + for (const id of ids) { + const key = `approval:${id}`; + const request = approvals[key] as ApprovalRecord | undefined; + if (!request || now - request.createdAt >= APPROVAL_TIMEOUT_MS) { + expiredKeys.push(key); + } else { + active.push(id); + } + } + if (expiredKeys.length > 0 || active.length !== ids.length) { + await chrome.storage.session.set({ [PENDING_APPROVAL_KEY]: active }); + if (expiredKeys.length > 0) await chrome.storage.session.remove(expiredKeys); + } + return active; +} + +async function removeApprovalFromQueue(id: string): Promise { + const remaining = (await approvalQueue()).filter((candidate) => candidate !== id); + await chrome.storage.session.set({ [PENDING_APPROVAL_KEY]: remaining }); + return remaining; +} + +async function openApproval(request: ApprovalRecord): Promise { + const queue = await approvalQueue(); + const queuedRecords = await chrome.storage.session.get( + queue.map((id) => `approval:${id}`) + ); + const duplicateConnection = request.method === "contractless_connect" + && queue.some((id) => { + const candidate = queuedRecords[`approval:${id}`] as ApprovalRecord | undefined; + if (!candidate || candidate.method !== "contractless_connect") return false; + const candidateParams = providerParameters(candidate); + const requestParams = providerParameters(request); + return candidate.origin === request.origin + && candidateParams.appId === requestParams.appId; + }); + if (duplicateConnection) { + throw new Error("This application already has a wallet connection request pending."); + } + if (queue.length >= MAX_PENDING_APPROVALS) { + throw new Error("The wallet approval queue is full. Resolve a pending request first."); + } + await chrome.storage.session.set({ + [PENDING_APPROVAL_KEY]: [...queue, request.id], + [`approval:${request.id}`]: request + }); + try { + await chrome.action.openPopup(); + } catch { + // Browsers that cannot open the action automatically retain the request + // so the user can open the wallet from the toolbar and approve it. + } +} + +async function waitForApproval(id: string): Promise { + const resultKey = `approval-result:${id}`; + const expiresAt = Date.now() + APPROVAL_TIMEOUT_MS; + while (Date.now() < expiresAt) { + const stored = await chrome.storage.session.get(resultKey); + if (stored[resultKey]) { + await chrome.storage.session.remove(resultKey); + return stored[resultKey].approved === true; + } + await new Promise((resolve) => setTimeout(resolve, 150)); + } + await chrome.storage.session.remove([ + `approval:${id}`, + resultKey + ]); + await removeApprovalFromQueue(id); + throw new Error("Wallet approval request expired."); +} + +function requestOrigin(sender: chrome.runtime.MessageSender): string { + const candidate = sender.url ?? sender.origin; + if (!candidate) throw new Error("The requesting website origin is unavailable."); + const origin = new URL(candidate).origin; + if (origin === "null") throw new Error("Requests from opaque origins are not supported."); + return origin; +} + +async function executeApprovedRequest( + wasm: Awaited>, + request: ApprovalRecord +) { + if (!unlocked) throw new Error("Wallet is locked."); + await resetLockAlarm(); + + switch (request.method) { + case "contractless_connect": { + const params = providerParameters(request); + validateClaimedOrigin(params, request.origin); + const requestedSessionId = String(params.walletSessionId ?? ""); + if (requestedSessionId && requestedSessionId !== unlocked.sessionId) { + throw new Error( + "The active wallet changed while the connection was being approved." + ); + } + const appId = validatedApplicationId(params.appId); + const requestedAt = connectionTimestamp(params.timestamp); + const nonce = connectionNonce(params.nonce); + const message = connectionMessage(params.message); + const accessKey = randomHex(32); + const accessKeyHash = await sha256Hex(accessKey); + const now = Math.floor(Date.now() / 1_000); + const proofExpiresAt = Math.min( + now + 15 * 60, + Math.floor(unlocked.expiresAt / 1_000) + ); + const signedMessage = [ + "Contractless application connection", + `Application ID: ${appId}`, + `Origin: ${request.origin}`, + `Requested timestamp: ${requestedAt}`, + `Message: ${message}`, + `Session key hash: ${accessKeyHash}` + ].join("\n"); + const proof = JSON.parse( + wasm.sign_message_request( + JSON.stringify({ + origin: request.origin, + message: signedMessage, + nonce, + issued_at: now, + expires_at: proofExpiresAt + }), + unlocked.private_key, + unlocked.public_key + ) + ) as Record; + const session: ApplicationSession = { + origin: request.origin, + appId, + accessKey, + walletId: unlocked.walletId, + unlockSessionId: unlocked.sessionId, + createdAt: Date.now() + }; + const sessions = await applicationSessions(); + sessions.push(session); + await saveApplicationSessions(sessions); + return { + address: unlocked.short_address, + publicKey: unlocked.public_key, + signature: proof.signature, + proof, + accessKey, + appId, + origin: request.origin, + sessionExpiresAt: unlocked.expiresAt + }; + } + case "contractless_signMessage": { + const params = providerParameters(request); + await authorizedApplication(params, request.origin); + const now = Math.floor(Date.now() / 1000); + const expiresAt = Number(params.expires_at ?? now + 300); + const appId = validatedApplicationId(params.appId); + const messageRequest = { + origin: request.origin, + message: [ + "Contractless application message", + `Application ID: ${appId}`, + `Message: ${signedTextMessage(params.message)}` + ].join("\n"), + nonce: String(params.nonce ?? ""), + issued_at: now, + expires_at: expiresAt + }; + return JSON.parse( + wasm.sign_message_request( + JSON.stringify(messageRequest), + unlocked.private_key, + unlocked.public_key + ) + ); + } + case "contractless_sendTransaction": { + const params = providerParameters(request); + await authorizedApplication(params, request.origin); + const transaction = websiteTransaction(params.transaction); + const signed = JSON.parse( + wasm.sign_transaction_request( + JSON.stringify(transaction), + unlocked.private_key, + unlocked.public_key, + 1 + ) + ) as Record; + return broadcastSignedTransaction(wasm, signed); + } + case "contractless_signDualTransaction": { + const params = providerParameters(request); + await authorizedApplication(params, request.origin); + const transaction = websiteDualTransaction(params.transaction); + const signerSlot = Number(params.signerSlot); + if (signerSlot !== 1 && signerSlot !== 2) { + throw new Error("The signer slot must be 1 or 2."); + } + const signed = JSON.parse( + wasm.sign_transaction_request( + JSON.stringify(transaction), + unlocked.private_key, + unlocked.public_key, + signerSlot + ) + ) as Record; + return { + complete: false, + txid: signed.hash, + unsignedBytes: signed.unsigned_bytes_hex, + canonicalUnsignedJson: JSON.parse( + wasm.inspect_transaction_request(JSON.stringify(transaction)) + ).canonical_unsigned_json, + signedTransaction: signed.signed_transaction, + signature: signerSlot === 1 ? signed.signature1 : signed.signature2, + signature1: signed.signature1, + signature2: signed.signature2, + signerSlot, + signerPublicKey: unlocked.public_key + }; + } + default: + throw new Error("The website requested an unsupported wallet method."); + } +} + +async function handle(message: Record, sender: chrome.runtime.MessageSender) { + const configured = await settings(); + if (message.type === "switch-network") { + const selectedNetwork = message.network === "mainnet" ? "mainnet" : "testnet"; + await lock(); + const next = { + ...configured, + selectedNetwork, + apiUrl: selectedNetwork === "mainnet" + ? configured.mainnetApiUrl + : configured.testnetApiUrl + }; + await chrome.storage.local.set({ [SETTINGS_KEY]: next }); + return status(); + } + const wasm = await core(configured.selectedNetwork); + await restoreUnlockedWallet(); + switch (message.type) { + case "status": + return status(); + case "create-wallet": { + const password = String(message.password); + const walletJson = wasm.generate_browser_wallet(password); + const opened = JSON.parse(wasm.unlock_browser_wallet(walletJson, password)); + const storedWallet = await addWallet(walletJson); + await rememberUnlockedWallet({ + walletId: storedWallet.id, + network: configured.selectedNetwork, + ...opened + }); + if (configured.apiUrl) { + try { + await registerWalletKeys(wasm, opened); + } catch (error) { + console.warn("Automatic wallet registration failed during creation.", error); + } + } + return status(); + } + case "import-wallet": { + const walletJson = wasm.import_legacy_wallet( + String(message.walletJson), + String(message.legacyPassword), + String(message.password) + ); + const storedWallet = await addWallet(walletJson); + const opened = JSON.parse( + wasm.unlock_browser_wallet(walletJson, String(message.password)) + ); + await rememberUnlockedWallet({ walletId: storedWallet.id, network: configured.selectedNetwork, ...opened }); + return status(); + } + case "import-wallet-image": { + const password = String(message.password); + const walletJson = wasm.import_private_key_image( + String(message.imageBase64), + String(message.imagePassword), + password + ); + const storedWallet = await addWallet(walletJson); + const opened = JSON.parse(wasm.unlock_browser_wallet(walletJson, password)); + await rememberUnlockedWallet({ walletId: storedWallet.id, network: configured.selectedNetwork, ...opened }); + return status(); + } + case "import-private-key": { + const password = String(message.password); + const walletJson = wasm.import_private_key(String(message.privateKey), password); + const storedWallet = await addWallet(walletJson); + const opened = JSON.parse(wasm.unlock_browser_wallet(walletJson, password)); + await rememberUnlockedWallet({ walletId: storedWallet.id, network: configured.selectedNetwork, ...opened }); + return status(); + } + case "unlock": { + const collection = await walletCollection(); + const wallet = activeStoredWallet(collection, configured.selectedNetwork); + if (!wallet) throw new Error("No wallet exists."); + const opened = JSON.parse( + wasm.unlock_browser_wallet(wallet.walletJson, String(message.password)) + ); + await rememberUnlockedWallet({ walletId: wallet.id, network: configured.selectedNetwork, ...opened }); + try { + await ensureWalletRegistered(wasm, opened); + } catch (error) { + console.warn("Automatic wallet registration failed during unlock.", error); + } + return status(); + } + case "switch-wallet": { + const collection = await walletCollection(); + const walletId = String(message.walletId); + const selected = collection.wallets.find((wallet) => wallet.id === walletId); + if (!selected || selected.network !== configured.selectedNetwork) { + throw new Error("The selected wallet does not exist."); + } + await lock(); + collection.activeWalletIds[configured.selectedNetwork] = walletId; + await saveWalletCollection(collection); + return status(); + } + case "rename-wallet": { + const collection = await walletCollection(); + const wallet = collection.wallets.find( + (candidate) => candidate.id === String(message.walletId) + ); + if (!wallet) throw new Error("The selected wallet does not exist."); + const label = String(message.label).trim(); + if (label.length < 1 || label.length > 40) { + throw new Error("Wallet labels must contain between 1 and 40 characters."); + } + wallet.label = label; + await saveWalletCollection(collection); + return status(); + } + case "lock": + await lock(); + return status(); + case "save-settings": { + const testnetApiUrl = String(message.testnetApiUrl ?? configured.testnetApiUrl).replace(/\/+$/, ""); + const mainnetApiUrl = String(message.mainnetApiUrl ?? configured.mainnetApiUrl).replace(/\/+$/, ""); + const next: StoredSettings = { + selectedNetwork: configured.selectedNetwork, + testnetApiUrl, + mainnetApiUrl, + apiUrl: configured.selectedNetwork === "mainnet" ? mainnetApiUrl : testnetApiUrl, + autoLockMinutes: Math.max(1, Number(message.autoLockMinutes)) + }; + await chrome.storage.local.set({ [SETTINGS_KEY]: next }); + await resetLockAlarm(); + return status(); + } + case "register-wallet": { + if (!unlocked) throw new Error("Wallet is locked."); + const result = await registerWalletKeys(wasm, unlocked); + await resetLockAlarm(); + return result; + } + case "wallet-balances": { + if (!unlocked) throw new Error("Wallet is locked."); + const configured = await settings(); + const signature = wasm.create_handshake_proof( + unlocked.public_key, + unlocked.private_key + ); + const headers = { + "X-Contractless-Address": unlocked.short_address, + "X-Contractless-Public-Key": unlocked.public_key, + "X-Contractless-Signature": signature + }; + const address = encodeURIComponent(unlocked.short_address); + const [balancesResponse, tokensResponse, nftsResponse] = await Promise.all([ + fetch(`${requireApiUrl(configured)}/api/v1/balances?address=${address}`, { headers }), + fetch(`${requireApiUrl(configured)}/api/v1/tokens`, { headers }), + fetch(`${requireApiUrl(configured)}/api/v1/nfts`, { headers }) + ]); + const [balancesReply, tokensReply, nftsReply] = await Promise.all([ + balancesResponse.json().catch(() => undefined), + tokensResponse.json().catch(() => undefined), + nftsResponse.json().catch(() => undefined) + ]); + if (!balancesResponse.ok || balancesReply?.success !== true) { + throw new Error( + balancesReply?.error ?? `Balance lookup failed with HTTP ${balancesResponse.status}.` + ); + } + await resetLockAlarm(); + return { + address: unlocked.short_address, + balances: balancesReply.data?.balances ?? [], + tokens: tokensResponse.ok && tokensReply?.success === true + ? tokensReply.data?.tokens ?? [] + : [], + nfts: nftsResponse.ok && nftsReply?.success === true + ? nftsReply.data?.nfts ?? [] + : [], + tokenCatalogError: tokensResponse.ok && tokensReply?.success === true + ? undefined + : tokensReply?.error ?? `Token lookup failed with HTTP ${tokensResponse.status}.`, + nftCatalogError: nftsResponse.ok && nftsReply?.success === true + ? undefined + : nftsReply?.error ?? `NFT lookup failed with HTTP ${nftsResponse.status}.` + }; + } + case "wallet-nft-details": { + if (!unlocked) throw new Error("Wallet is locked."); + const name = String(message.name ?? "").trim(); + const series = Number(message.series ?? 0); + if ( + !name + || name.length > 15 + || !Number.isInteger(series) + || series < 0 + || series > 4_294_967_295 + ) { + throw new Error("A valid NFT or RWA identifier is required."); + } + + const configured = await settings(); + const signature = wasm.create_handshake_proof( + unlocked.public_key, + unlocked.private_key + ); + const headers = { + "X-Contractless-Address": unlocked.short_address, + "X-Contractless-Public-Key": unlocked.public_key, + "X-Contractless-Signature": signature + }; + const query = `name=${encodeURIComponent(name)}&series=${series}`; + const [detailsResponse, mediaResponse] = await Promise.all([ + fetch(`${requireApiUrl(configured)}/api/v1/nfts/details?${query}`, { headers }), + fetch(`${requireApiUrl(configured)}/api/v1/nfts/media?${query}`, { headers }) + ]); + const [detailsReply, mediaReply] = await Promise.all([ + detailsResponse.json().catch(() => undefined), + mediaResponse.json().catch(() => undefined) + ]); + if (!detailsResponse.ok || detailsReply?.success !== true) { + throw new Error( + detailsReply?.error + ?? `NFT details lookup failed with HTTP ${detailsResponse.status}.` + ); + } + + let imageDataUrl = ""; + let imageAvailable = false; + let metadata: Record = {}; + let mediaError: string | undefined; + if (mediaResponse.ok && mediaReply?.success === true) { + metadata = mediaReply.data?.metadata + && typeof mediaReply.data.metadata === "object" + ? mediaReply.data.metadata + : {}; + imageAvailable = mediaReply.data?.image_available === true; + const imagePath = String(mediaReply.data?.image_url ?? ""); + if (imagePath) { + try { + const imageResponse = await fetch( + new URL(imagePath, `${requireApiUrl(configured)}/`).toString(), + { headers } + ); + if (imageResponse.ok) { + imageDataUrl = arrayBufferDataUrl( + await imageResponse.arrayBuffer(), + imageResponse.headers.get("Content-Type") ?? "image/png" + ); + } else { + mediaError = `NFT image returned HTTP ${imageResponse.status}.`; + } + } catch { + mediaError = "NFT image could not be retrieved."; + } + } + } else { + mediaError = mediaReply?.error + ?? `NFT media lookup failed with HTTP ${mediaResponse.status}.`; + } + + await resetLockAlarm(); + return { + ...detailsReply.data, + metadata, + image_data_url: imageDataUrl, + image_available: imageAvailable, + media_error: mediaError + }; + } + case "wallet-receive-address": { + if (!unlocked) throw new Error("Wallet is locked."); + const configured = await settings(); + const signature = wasm.create_handshake_proof( + unlocked.public_key, + unlocked.private_key + ); + const address = encodeURIComponent(unlocked.short_address); + const response = await fetch( + `${requireApiUrl(configured)}/api/v1/addresses/vanity?address=${address}`, + { + headers: { + "X-Contractless-Address": unlocked.short_address, + "X-Contractless-Public-Key": unlocked.public_key, + "X-Contractless-Signature": signature + } + } + ); + const reply = await response.json().catch(() => undefined); + if (!response.ok || reply?.success !== true) { + throw new Error( + reply?.error ?? `Vanity address lookup failed with HTTP ${response.status}.` + ); + } + await resetLockAlarm(); + const vanityAddress = + typeof reply.data?.vanity_address === "string" && + reply.data.vanity_address.trim() !== "" + ? reply.data.vanity_address + : undefined; + return { + shortAddress: unlocked.short_address, + receiveAddress: vanityAddress ?? unlocked.short_address, + vanity: Boolean(vanityAddress) + }; + } + case "wallet-prepare-transfer": { + if (!unlocked) throw new Error("Wallet is locked."); + const configured = await settings(); + const signature = wasm.create_handshake_proof( + unlocked.public_key, + unlocked.private_key + ); + const headers = { + "X-Contractless-Address": unlocked.short_address, + "X-Contractless-Public-Key": unlocked.public_key, + "X-Contractless-Signature": signature + }; + const receiverInput = String(message.receiver ?? "").trim().toLowerCase(); + const suffix = unlocked.short_address.endsWith(".cltc") ? "cltc" : "clc"; + let receiver = receiverInput; + + if (!new RegExp(`^[0-9a-f]{40}\\.${suffix}$`).test(receiverInput)) { + if (!new RegExp(`^[a-z]{1,20}\\.${suffix}$`).test(receiverInput)) { + throw new Error(`Enter a valid Contractless ${suffix.toUpperCase()} address.`); + } + const response = await fetch( + `${requireApiUrl(configured)}/api/v1/addresses/vanity/resolve?address=${encodeURIComponent(receiverInput)}`, + { headers } + ); + const reply = await response.json().catch(() => undefined); + if (!response.ok || reply?.success !== true) { + throw new Error( + reply?.error ?? `Vanity address lookup failed with HTTP ${response.status}.` + ); + } + receiver = String(reply.data?.owner_address ?? ""); + if (!receiver) throw new Error("That vanity address is not registered."); + } else { + const response = await fetch( + `${requireApiUrl(configured)}/api/v1/addresses/registration?address=${encodeURIComponent(receiver)}`, + { headers } + ); + const reply = await response.json().catch(() => undefined); + if (!response.ok || reply?.success !== true) { + throw new Error( + reply?.error ?? `Address lookup failed with HTTP ${response.status}.` + ); + } + if (reply.data?.registered !== true) { + throw new Error("The receiving wallet is not registered."); + } + } + + const nftSeries = Number(message.nftSeries ?? 0); + if ( + !Number.isInteger(nftSeries) + || nftSeries < 0 + || nftSeries > 4_294_967_295 + ) { + throw new Error("The NFT/RWA series number is invalid."); + } + const transaction = { + txtype: 2, + time: Math.floor(Date.now() / 1_000), + value: String(message.valueAtomic ?? ""), + coin: String(message.asset ?? "").trim().padEnd(15, " "), + nft_series: nftSeries, + sender: unlocked.short_address, + receiver, + txfee: String(message.feeAtomic ?? "") + }; + const inspection = JSON.parse( + wasm.inspect_transaction_request(JSON.stringify(transaction)) + ); + await resetLockAlarm(); + return { + transaction, + review: inspection.review, + hash: inspection.hash, + receiverInput + }; + } + case "wallet-broadcast-transfer": { + if (!unlocked) throw new Error("Wallet is locked."); + const transaction = message.transaction; + if (!transaction || typeof transaction !== "object") { + throw new Error("The reviewed transfer is unavailable."); + } + const signed = JSON.parse( + wasm.sign_transaction_request( + JSON.stringify(transaction), + unlocked.private_key, + unlocked.public_key, + 1 + ) + ); + return broadcastSignedTransaction( + wasm, + signed as Record + ); + } + case "wallet-activity": { + if (!unlocked) throw new Error("Wallet is locked."); + const configured = await settings(); + const signature = wasm.create_handshake_proof( + unlocked.public_key, + unlocked.private_key + ); + const address = encodeURIComponent(unlocked.short_address); + const headers = { + "X-Contractless-Address": unlocked.short_address, + "X-Contractless-Public-Key": unlocked.public_key, + "X-Contractless-Signature": signature + }; + const [response, heightResponse] = await Promise.all([ + fetch( + `${requireApiUrl(configured)}/api/v1/addresses/latest?address=${address}&limit=25`, + { headers } + ), + fetch(`${requireApiUrl(configured)}/api/v1/height`, { headers }) + ]); + const [reply, heightReply] = await Promise.all([ + response.json().catch(() => undefined), + heightResponse.json().catch(() => undefined) + ]); + if (!response.ok || reply?.success !== true) { + throw new Error( + reply?.error ?? `Activity lookup failed with HTTP ${response.status}.` + ); + } + if (!heightResponse.ok || heightReply?.success !== true) { + throw new Error( + heightReply?.error ?? `Block height lookup failed with HTTP ${heightResponse.status}.` + ); + } + await resetLockAlarm(); + return { + address: unlocked.short_address, + current_height: Number(heightReply.data?.height ?? 0), + transactions: Array.isArray(reply.data?.transactions) + ? reply.data.transactions + : [] + }; + } + case "wallet-transaction": { + if (!unlocked) throw new Error("Wallet is locked."); + const txid = String(message.txid); + if (!/^[0-9a-f]{64}$/i.test(txid)) { + throw new Error("A valid transaction ID is required."); + } + const configured = await settings(); + const signature = wasm.create_handshake_proof( + unlocked.public_key, + unlocked.private_key + ); + const headers = { + "X-Contractless-Address": unlocked.short_address, + "X-Contractless-Public-Key": unlocked.public_key, + "X-Contractless-Signature": signature + }; + const [response, heightResponse] = await Promise.all([ + fetch( + `${requireApiUrl(configured)}/api/v1/transactions/lookup?txid=${encodeURIComponent(txid)}`, + { headers } + ), + fetch(`${requireApiUrl(configured)}/api/v1/height`, { headers }) + ]); + const [reply, heightReply] = await Promise.all([ + response.json().catch(() => undefined), + heightResponse.json().catch(() => undefined) + ]); + if (!response.ok || reply?.success !== true) { + throw new Error( + reply?.error ?? `Transaction lookup failed with HTTP ${response.status}.` + ); + } + if (!heightResponse.ok || heightReply?.success !== true) { + throw new Error( + heightReply?.error ?? `Block height lookup failed with HTTP ${heightResponse.status}.` + ); + } + await resetLockAlarm(); + return { + ...reply.data, + current_height: Number(heightReply.data?.height ?? 0) + }; + } + case "export-wallet": { + const wallet = activeStoredWallet(await walletCollection(), configured.selectedNetwork); + if (!wallet) throw new Error("No wallet exists."); + return wallet.walletJson; + } + case "export-legacy-wallet": { + const wallet = activeStoredWallet(await walletCollection(), configured.selectedNetwork); + if (!wallet) throw new Error("No wallet exists."); + return wasm.export_legacy_wallet( + wallet.walletJson, + String(message.password), + String(message.legacyPassword) + ); + } + case "export-private-key-image": { + const wallet = activeStoredWallet(await walletCollection(), configured.selectedNetwork); + if (!wallet) throw new Error("No wallet exists."); + const legacy = JSON.parse( + wasm.export_legacy_wallet( + wallet.walletJson, + String(message.password), + String(message.imagePassword) + ) + ) as { private_key?: string }; + if (typeof legacy.private_key !== "string") { + throw new Error("The wallet image could not be created."); + } + return legacy.private_key; + } + case "reveal-private-key": { + const wallet = activeStoredWallet(await walletCollection(), configured.selectedNetwork); + if (!wallet) throw new Error("No wallet exists."); + const opened = JSON.parse( + wasm.unlock_browser_wallet(wallet.walletJson, String(message.password)) + ) as { private_key?: string }; + if (typeof opened.private_key !== "string") { + throw new Error("The private key could not be decrypted."); + } + await resetLockAlarm(); + return { + label: wallet.label, + address: wallet.address, + privateKey: opened.private_key + }; + } + case "provider-request": { + const origin = requestOrigin(sender); + const method = String(message.method); + const params = message.params && typeof message.params === "object" + ? message.params as Record + : {}; + + if (method === "contractless_detect") { + return { + installed: true, + providerVersion: "1.0.0" + }; + } + + if (method === "contractless_connect") { + validateClaimedOrigin(params, origin); + const appId = validatedApplicationId(params.appId); + const timestamp = connectionTimestamp(params.timestamp); + connectionNonce(params.nonce); + const appMessage = connectionMessage(params.message); + const request: ApprovalRecord = { + id: crypto.randomUUID(), + method, + params: { + ...params, + walletSessionId: unlocked?.sessionId + }, + origin, + createdAt: Date.now(), + risk: approvalRisk(method, params), + display: { + request: "Connect application", + application_id: appId, + website: origin, + wallet_address: unlocked?.short_address ?? "Unlock wallet to continue", + message: appMessage, + requested_timestamp: timestamp, + access: "Address access and future wallet requests until this wallet locks" + } + }; + await openApproval(request); + if (!(await waitForApproval(request.id))) { + throw new Error("The wallet connection request was rejected."); + } + return executeApprovedRequest(wasm, request); + } + + if (method === "contractless_accounts") { + try { + await authorizedApplication(params, origin); + return unlocked ? [unlocked.short_address] : []; + } catch { + return []; + } + } + + if (method === "contractless_balances") { + await authorizedApplication(params, origin); + if (!unlocked) throw new Error("Wallet is locked."); + const configured = await settings(); + const signature = wasm.create_handshake_proof( + unlocked.public_key, + unlocked.private_key + ); + const response = await fetch( + `${requireApiUrl(configured)}/api/v1/balances?address=${encodeURIComponent(unlocked.short_address)}`, + { + headers: { + "X-Contractless-Address": unlocked.short_address, + "X-Contractless-Public-Key": unlocked.public_key, + "X-Contractless-Signature": signature + } + } + ); + const reply = await response.json().catch(() => undefined); + if (!response.ok || reply?.success !== true) { + throw new Error( + reply?.error ?? `Balance lookup failed with HTTP ${response.status}.` + ); + } + await resetLockAlarm(); + return reply.data; + } + + if (method === "contractless_disconnect") { + const session = await authorizedApplication(params, origin); + const remaining = (await applicationSessions()).filter((candidate) => + !( + candidate.origin === session.origin + && candidate.appId === session.appId + && candidate.accessKey === session.accessKey + ) + ); + await saveApplicationSessions(remaining); + return { disconnected: true }; + } + + if (method === "contractless_completeDualTransaction") { + await authorizedApplication(params, origin); + const transaction = websiteDualTransaction(params.transaction); + return JSON.parse(wasm.complete_dual_transaction_request( + JSON.stringify(transaction), + String(params.signature1 ?? ""), + String(params.publicKey1 ?? ""), + String(params.signature2 ?? ""), + String(params.publicKey2 ?? "") + )); + } + + if (![ + "contractless_signMessage", + "contractless_sendTransaction", + "contractless_signDualTransaction" + ].includes(method)) { + throw new Error("The website requested an unsupported wallet method."); + } + await authorizedApplication(params, origin); + if (method === "contractless_sendTransaction") { + const transaction = websiteTransaction(params.transaction); + await ensureRegisteredTransactionParticipants(wasm, transaction); + } else if (method === "contractless_signDualTransaction") { + const transaction = websiteDualTransaction(params.transaction); + await ensureRegisteredTransactionParticipants(wasm, transaction); + } + const request: ApprovalRecord = { + id: crypto.randomUUID(), + method, + params, + origin, + createdAt: Date.now(), + risk: approvalRisk(method, params), + display: method === "contractless_signMessage" + ? { + request: "Sign a text message", + application_id: validatedApplicationId(params.appId), + website: origin, + message: signedTextMessage(params.message), + warning: "This is a text signature. It cannot move wallet assets." + } + : method === "contractless_signDualTransaction" + ? (() => { + const inspection = JSON.parse( + wasm.inspect_transaction_request(JSON.stringify(params.transaction)) + ) as Record; + return { + application_id: validatedApplicationId(params.appId), + website: origin, + transaction_type: inspection.transaction_name, + signer_slot: params.signerSlot, + transaction_fields: inspection.review, + action: "Sign and return this signature to the application without broadcasting." + }; + })() + : (() => { + const inspection = JSON.parse( + wasm.inspect_transaction_request(JSON.stringify(params.transaction)) + ) as Record; + return { + application_id: validatedApplicationId(params.appId), + website: origin, + transaction_type: inspection.transaction_name, + transaction_fields: inspection.review, + action: "Sign and broadcast this transaction." + }; + })() + }; + await openApproval(request); + if (!(await waitForApproval(request.id))) { + throw new Error("The wallet request was rejected."); + } + return executeApprovedRequest(wasm, request); + } + case "pending-provider-approval": { + const queue = await approvalQueue(); + const id = queue[0] ?? ""; + if (!id) return null; + const approvalKey = `approval:${id}`; + const approvalStored = await chrome.storage.session.get(approvalKey); + const request = approvalStored[approvalKey] as ApprovalRecord | undefined; + if (!request) { + await removeApprovalFromQueue(id); + return null; + } + if (!unlocked) return { locked: true }; + + if (request.method === "contractless_connect") { + request.params = { + ...(request.params as Record), + walletSessionId: unlocked.sessionId + }; + request.display = { + ...(request.display ?? {}), + wallet_address: unlocked.short_address + }; + await chrome.storage.session.set({ [approvalKey]: request }); + } + return { locked: false, request, position: 1, total: queue.length }; + } + case "resolve-provider-approval": { + if (!unlocked) throw new Error("Unlock the wallet before approving this request."); + const id = String(message.id ?? ""); + const queue = await approvalQueue(); + if (!id || queue[0] !== id) { + throw new Error("The wallet approval request has expired."); + } + const approvalKey = `approval:${id}`; + const approvalStored = await chrome.storage.session.get(approvalKey); + const request = approvalStored[approvalKey] as ApprovalRecord | undefined; + if (!request) throw new Error("The wallet approval request has expired."); + + if (request.method === "contractless_connect") { + request.params = { + ...(request.params as Record), + walletSessionId: unlocked.sessionId + }; + await chrome.storage.session.set({ [approvalKey]: request }); + } + await chrome.storage.session.set({ + [`approval-result:${id}`]: { approved: message.approved === true } + }); + await chrome.storage.session.remove(approvalKey); + const remaining = await removeApprovalFromQueue(id); + return { resolved: true, remaining: remaining.length }; + } + default: + throw new Error("Unsupported wallet request."); + } +} + +chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { + handle(message, sender) + .then((result) => sendResponse({ ok: true, result })) + .catch((error: unknown) => + sendResponse({ ok: false, error: error instanceof Error ? error.message : String(error) }) + ); + return true; +}); + +chrome.alarms.onAlarm.addListener((alarm) => { + if (alarm.name === LOCK_ALARM) void lock(); +}); diff --git a/extension/src/content.ts b/extension/src/content.ts new file mode 100644 index 0000000..c8903cf --- /dev/null +++ b/extension/src/content.ts @@ -0,0 +1,25 @@ +const script = document.createElement("script"); +script.src = chrome.runtime.getURL("provider.js"); +script.onload = () => script.remove(); +(document.head || document.documentElement).appendChild(script); + +window.addEventListener("message", (event) => { + if (event.source !== window || event.data?.source !== "contractless-page") return; + chrome.runtime.sendMessage( + { + type: "provider-request", + method: event.data.method, + params: event.data.params + }, + (response) => { + window.postMessage( + { + source: "contractless-wallet", + id: event.data.id, + response + }, + window.location.origin + ); + } + ); +}); diff --git a/extension/src/core.ts b/extension/src/core.ts new file mode 100644 index 0000000..fa0df01 --- /dev/null +++ b/extension/src/core.ts @@ -0,0 +1,12 @@ +import initTestnet, * as testnet from "./wasm/testnet/contractless_browser_core"; +import initMainnet, * as mainnet from "./wasm/mainnet/contractless_browser_core"; +import type { ContractlessNetwork } from "./types"; + +const initialized: Partial>> = {}; + +export async function core(network: ContractlessNetwork = "testnet") { + const module = network === "mainnet" ? mainnet : testnet; + initialized[network] ??= network === "mainnet" ? initMainnet() : initTestnet(); + await initialized[network]; + return module; +} diff --git a/extension/src/import-wallet.css b/extension/src/import-wallet.css new file mode 100644 index 0000000..6589be1 --- /dev/null +++ b/extension/src/import-wallet.css @@ -0,0 +1,200 @@ +:root { + font: 16px/1.5 Arial, Helvetica, sans-serif; + color: #fff; + background: #08131c; +} + +* { box-sizing: border-box; } + +body { + min-width: 320px; + min-height: 100vh; + margin: 0; + background: #08131c; +} + +button, +input { font: inherit; } + +button { cursor: pointer; } +button:disabled { cursor: wait; opacity: .72; } + +.site-header { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 76px; + padding: 0 32px; + border-bottom: 1px solid #2e4757; + background: #0d1d28; +} + +.brand { + display: flex; + align-items: center; + gap: 12px; +} + +.brand img { + width: 39px; + filter: brightness(0) invert(1); +} + +.brand div { display: grid; } +.brand strong { font-size: 18px; } +.brand span, +.local-page { color: #b9cbd6; font-size: 13px; } + +main { + display: grid; + place-items: start center; + padding: 54px 20px; +} + +.import-panel, +.success-panel { + width: min(100%, 500px); + padding: 34px; + border: 1px solid #385666; + background: #10222e; +} + +.eyebrow { + color: #58d5e7; + font-size: 12px; + font-weight: 700; + text-transform: uppercase; +} + +h1 { + margin: 7px 0 10px; + font-size: 31px; + line-height: 1.15; + letter-spacing: 0; +} + +.intro, +.success-panel p { margin: 0 0 26px; color: #c8d6de; } + +form { display: grid; } + +label { + margin: 21px 0 8px; + font-size: 13px; + font-weight: 700; +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip: rect(0 0 0 0); + white-space: nowrap; +} + +.file-picker { + display: flex; + align-items: center; + gap: 14px; + min-height: 78px; + margin-top: 8px; + padding: 13px; + border: 1px solid #5ac9de; + background: #132d3b; + cursor: pointer; +} + +.file-picker > span:last-child { display: grid; gap: 3px; } +.file-picker small { color: #afc6d1; font-weight: 400; } + +.file-icon { + display: grid; + place-items: center; + width: 44px; + height: 44px; + border: 1px solid #62d7e9; + color: #62d7e9; + font-size: 25px; +} + +.input-row { + display: grid; + grid-template-columns: 1fr auto; +} + +.input-row input { + min-width: 0; + height: 50px; + padding: 0 14px; + border: 1px solid #5a7180; + border-right: 0; + background: #08151e; + color: white; +} + +.input-row button { + width: 68px; + border: 1px solid #5a7180; + background: #173345; + color: white; +} + +.security-note, +.address-result { + display: grid; + gap: 4px; + margin-top: 20px; + padding: 13px 14px; + border-left: 3px solid #57d0df; + background: #0a1922; +} + +.security-note span, +.address-result span { color: #b7cad4; font-size: 13px; } + +.address-result strong { overflow-wrap: anywhere; } + +.primary { + min-height: 50px; + margin-top: 24px; + border: 1px solid #67d5e4; + background: #236eaa; + color: white; + font-weight: 700; +} + +#notice { + margin: 14px 0 0; + padding: 10px 12px; + border-left: 3px solid #ff7168; + background: #321c20; + color: #ffc0bb; + font-size: 13px; +} + +#notice:empty { display: none; } + +.success-mark { + display: grid; + place-items: center; + width: 58px; + height: 58px; + margin-bottom: 25px; + border: 2px solid #62d7e9; + border-radius: 50%; + color: #62d7e9; + font-size: 31px; + font-weight: 700; +} + +.completion-message { margin-top: 24px !important; } + +@media (max-width: 560px) { + .site-header { padding: 0 18px; } + .local-page { display: none; } + main { padding: 24px 12px; } + .import-panel, + .success-panel { padding: 24px 20px; } + h1 { font-size: 27px; } +} diff --git a/extension/src/import-wallet.html b/extension/src/import-wallet.html new file mode 100644 index 0000000..fcf7ff6 --- /dev/null +++ b/extension/src/import-wallet.html @@ -0,0 +1,69 @@ + + + + + + Import Contractless Wallet + + + + + +
+
+ Restore Contractless wallet +

Import wallet image

+

+ Select your encrypted Contractless private-key image and enter the + encryption key originally used to create it. +

+ +
+ + + + +
+ + +
+ +
+ Processed locally by Contractless Wallet + The wallet image and encryption key are not sent to the website you were visiting. +
+ + + +
+
+ + +
+ + + + diff --git a/extension/src/import-wallet.ts b/extension/src/import-wallet.ts new file mode 100644 index 0000000..185cdcf --- /dev/null +++ b/extension/src/import-wallet.ts @@ -0,0 +1,78 @@ +import type { WalletStatus } from "./types"; + +const byId = (id: string) => document.getElementById(id) as T; +const form = byId("import-form"); +const imageInput = byId("wallet-image"); +const passwordInput = byId("image-password"); +const importButton = byId("import-button"); +const notice = byId("notice"); + +void send("status").then((status) => { + const walletStatus = status as WalletStatus; + byId("selected-network").textContent = walletStatus.networkName; +}).catch((error) => { + notice.textContent = errorText(error); +}); + +function bytesToBase64(bytes: Uint8Array): string { + let binary = ""; + const chunkSize = 0x8000; + for (let offset = 0; offset < bytes.length; offset += chunkSize) { + binary += String.fromCharCode(...bytes.subarray(offset, offset + chunkSize)); + } + return btoa(binary); +} + +function errorText(error: unknown): string { + return error instanceof Error ? error.message : String(error); +} + +async function send(type: string, values: Record = {}) { + const response = await chrome.runtime.sendMessage({ type, ...values }); + if (!response?.ok) throw new Error(response?.error ?? "Wallet request failed."); + return response.result; +} + +imageInput.addEventListener("change", () => { + byId("image-file-name").textContent = + imageInput.files?.[0]?.name ?? "Choose wallet image"; + notice.textContent = ""; +}); + +byId("reveal-password").addEventListener("click", (event) => { + const button = event.currentTarget as HTMLButtonElement; + const showing = passwordInput.type === "text"; + passwordInput.type = showing ? "password" : "text"; + button.textContent = showing ? "Show" : "Hide"; +}); + +form.addEventListener("submit", (event) => { + event.preventDefault(); + void (async () => { + const file = imageInput.files?.[0]; + if (!file) throw new Error("Choose a wallet image."); + if (!passwordInput.value.trim()) throw new Error("Enter the wallet image encryption key."); + + notice.textContent = ""; + importButton.disabled = true; + importButton.textContent = "Importing wallet..."; + + const imageBase64 = bytesToBase64(new Uint8Array(await file.arrayBuffer())); + const status = await send("import-wallet-image", { + imageBase64, + imagePassword: passwordInput.value, + password: passwordInput.value + }) as WalletStatus; + + passwordInput.value = ""; + byId("imported-address").textContent = status.address ?? "Imported wallet"; + byId("import-panel").hidden = true; + byId("success-panel").hidden = false; + })().catch((error) => { + notice.textContent = errorText(error); + importButton.disabled = false; + importButton.textContent = "Import wallet"; + }); +}); + +byId("close-page").addEventListener("click", () => window.close()); diff --git a/extension/src/manifest.chrome.json b/extension/src/manifest.chrome.json new file mode 100644 index 0000000..c42233e --- /dev/null +++ b/extension/src/manifest.chrome.json @@ -0,0 +1,45 @@ +{ + "manifest_version": 3, + "name": "Contractless Wallet", + "version": "0.1.1", + "description": "A local-signing Web3 wallet for Contractless.", + "content_security_policy": { + "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'" + }, + "permissions": ["storage", "alarms", "activeTab", "clipboardWrite"], + "host_permissions": ["https://api.contractless.dev/*"], + "optional_host_permissions": ["https://*/"], + "action": { + "default_popup": "popup.html", + "default_title": "Contractless Wallet", + "default_icon": { + "16": "contractless-logo-16.png", + "32": "contractless-logo-32.png", + "48": "contractless-logo-48.png", + "128": "contractless-logo-128.png" + } + }, + "icons": { + "16": "contractless-logo-16.png", + "32": "contractless-logo-32.png", + "48": "contractless-logo-48.png", + "128": "contractless-logo-128.png" + }, + "background": { + "service_worker": "background.js", + "type": "module" + }, + "content_scripts": [ + { + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"], + "js": ["content.js"], + "run_at": "document_start" + } + ], + "web_accessible_resources": [ + { + "resources": ["provider.js"], + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"] + } + ] +} diff --git a/extension/src/manifest.firefox.json b/extension/src/manifest.firefox.json new file mode 100644 index 0000000..389d071 --- /dev/null +++ b/extension/src/manifest.firefox.json @@ -0,0 +1,57 @@ +{ + "manifest_version": 3, + "name": "Contractless Wallet", + "version": "0.1.1", + "description": "A local-signing Web3 wallet for Contractless.", + "browser_specific_settings": { + "gecko": { + "id": "wallet@contractless.dev", + "strict_min_version": "149.0", + "data_collection_permissions": { + "required": ["none"] + } + }, + "gecko_android": { + "strict_min_version": "149.0" + } + }, + "content_security_policy": { + "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'" + }, + "permissions": ["storage", "alarms", "activeTab", "clipboardWrite"], + "host_permissions": ["https://api.contractless.dev/*"], + "optional_host_permissions": ["https://*/"], + "action": { + "default_popup": "popup.html", + "default_title": "Contractless Wallet", + "default_icon": { + "16": "contractless-logo-16.png", + "32": "contractless-logo-32.png", + "48": "contractless-logo-48.png", + "128": "contractless-logo-128.png" + } + }, + "icons": { + "16": "contractless-logo-16.png", + "32": "contractless-logo-32.png", + "48": "contractless-logo-48.png", + "128": "contractless-logo-128.png" + }, + "background": { + "scripts": ["background.js"], + "type": "module" + }, + "content_scripts": [ + { + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"], + "js": ["content.js"], + "run_at": "document_start" + } + ], + "web_accessible_resources": [ + { + "resources": ["provider.js"], + "matches": ["https://*/*", "http://localhost/*", "http://127.0.0.1/*"] + } + ] +} diff --git a/extension/src/popup.html b/extension/src/popup.html new file mode 100644 index 0000000..39295ad --- /dev/null +++ b/extension/src/popup.html @@ -0,0 +1,652 @@ + + + + + + Contractless Wallet + + + +
+
+
+ Contractless +
+
+

Opening wallet

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + diff --git a/extension/src/popup.ts b/extension/src/popup.ts new file mode 100644 index 0000000..4d82910 --- /dev/null +++ b/extension/src/popup.ts @@ -0,0 +1,2293 @@ +import type { WalletStatus } from "./types"; +import QRCode from "qrcode"; +import { core } from "./core"; + +const byId = (id: string) => document.getElementById(id) as T; +const screens = Array.from(document.querySelectorAll(".screen")); +const notice = byId("notice"); +const firefoxToolbarPopup = navigator.userAgent.includes("Firefox"); + +let pendingPassword = ""; +let currentPassword = ""; +let selectedImageBase64 = ""; +let backupImageBase64 = ""; +let walletStatus: WalletStatus | undefined; +let pendingBackupAction: "image" | "private" | "print" | undefined; +let tokenFilter: "held" | "all" = "held"; +let nftPage = 1; +let nftLoadId = 0; +const NFT_PAGE_SIZE = 8; +let walletBalances: + | { + balances: Array<{ + asset: string; + nft_series: number; + balance: string; + }>; + tokens: Array<{ + token: string; + origin_txid: string; + }>; + nfts: Array<{ + name: string; + series: number; + origin_txid: string; + ownership_type: number; + supply: string; + }>; + tokenCatalogError?: string; + nftCatalogError?: string; + } + | undefined; + +type ActivityRecord = { + txid: string; + block_height: number; + transaction_hex: string; + miner_earnings?: Array<{ + type: string; + asset: string; + nft_series: number; + amount_atomic: string; + }>; +}; + +type OwnedNft = { + name: string; + series: number; + origin_txid: string; + ownership_type: number; + supply: string; + balance: string; + details?: NftDetails; + loading?: boolean; + error?: string; +}; + +type NftDetails = { + nft_name: string; + series: number; + asset_name: string; + genesis_txid: string; + creator: string; + item_ipfs: string; + metadata_uri: string; + current_holder?: string | null; + history_count: number; + history: Array<{ + txid: string; + block: number; + transaction_type: number; + action: string; + from?: string | null; + to?: string | null; + received_asset?: string; + received_series?: number; + received_value?: string; + }>; + metadata: Record; + image_data_url: string; + image_available: boolean; + media_error?: string; +}; + +let ownedNfts: OwnedNft[] = []; +let selectedNft: OwnedNft | undefined; +let sendNft: OwnedNft | undefined; + +type DecodedTransaction = { + txtype: number; + transaction_name: string; + fields: Record; + stored_hash?: string | null; + signature?: string | null; + signature1?: string | null; + signature2?: string | null; +}; + +let selectedTransaction: ActivityRecord | undefined; +let transactionReturnScreen: "activity" | "nft" = "activity"; +let pendingTransfer: + | { + transaction: Record; + receiverInput: string; + asset: string; + amount: string; + fee: string; + total: string; + } + | undefined; +let lastSentTxid = ""; +let pendingProviderApprovalId = ""; +const CONFIRMED_AFTER_BLOCKS = 20; + +const TRANSACTION_NAMES: Record = { + 1: "Mining Reward", + 2: "Transfer", + 3: "Token Creation", + 4: "NFT/RWA Creation", + 5: "Marketing", + 6: "Swap", + 7: "Loan", + 8: "Loan Payment", + 9: "Collateral Claim", + 10: "Asset Burn", + 11: "Token Issuance", + 12: "Vanity Address", + 100: "Storage Key", + 101: "Data Storage Bool", + 102: "Data Storage U8", + 103: "Data Storage U16", + 104: "Data Storage U32", + 105: "Data Storage U64", + 106: "Data Storage U128", + 107: "Data Storage String", + 108: "Data Storage I8", + 109: "Data Storage I16", + 110: "Data Storage I32", + 111: "Data Storage I64", + 112: "Data Storage I128", + 113: "Delete Stored Data", + 200: "Proposal", + 201: "Proposal Vote", + 202: "Activation Vote" +}; + +async function send(type: string, values: Record = {}) { + const response = await chrome.runtime.sendMessage({ type, ...values }); + if (!response?.ok) throw new Error(response?.error ?? "Wallet request failed."); + return response.result; +} + +function showScreen(id: string, clearNotice = true): void { + screens.forEach((screen) => { + screen.hidden = screen.id !== id; + }); + if (clearNotice) notice.textContent = ""; +} + +function showStatus(status: WalletStatus): void { + walletStatus = status; + const networkName = status.networkName; + const networkSymbol = status.networkSymbol; + document.querySelectorAll("[data-network-name]").forEach((element) => { + element.textContent = networkName; + }); + document.querySelectorAll("[data-network-symbol]").forEach((element) => { + element.textContent = networkSymbol; + }); + byId("base-asset-name").textContent = `Contractless ${networkName}`; + byId("wallet-address").textContent = status.address ?? ""; + byId("wallet-address-short").textContent = status.address + ? `${status.address.slice(0, 6)}...${status.address.slice(-6)}` + : "Account"; + byId("settings-testnet-api-url").value = status.testnetApiUrl; + byId("settings-mainnet-api-url").value = status.mainnetApiUrl; + document.querySelectorAll("[data-select-network]").forEach((button) => { + const active = button.dataset.selectNetwork === status.selectedNetwork; + button.classList.toggle("active", active); + button.setAttribute("aria-pressed", String(active)); + }); + byId("settings-lock-timeout").value = String(status.autoLockMinutes); + renderKnownAddresses(status); + if (!status.exists) { + showScreen("create-screen"); + } else if (!status.unlocked) { + showScreen("locked-screen"); + } else { + void showPendingProviderApproval().then((shown) => { + if (!shown) { + showScreen("dashboard-screen"); + void loadWalletBalances(); + } + }); + } +} + +function approvalTitle(method: string, display: Record): string { + if (method === "contractless_connect") return "Connect application"; + if (method === "contractless_signMessage") return "Sign text message"; + if ( + method === "contractless_sendTransaction" + || method === "contractless_signDualTransaction" + ) { + return `Sign ${String(display.transaction_type ?? "transaction")}`; + } + return "Review request"; +} + +function appendApprovalValue( + container: HTMLElement, + label: string, + value: unknown +): void { + const term = document.createElement("dt"); + term.textContent = label.replaceAll("_", " "); + const description = document.createElement("dd"); + description.textContent = typeof value === "object" + ? JSON.stringify(value, null, 2) + : String(value); + container.append(term, description); +} + +function swapApprovalAmount( + fields: Record, + valueField: "value1" | "value2" | "tip1" | "tip2", + tickerField: "ticker1" | "ticker2", + seriesField: "nft_series1" | "nft_series2" +): string { + const amount = formatAtomicDisplay(fields[valueField]); + const ticker = String(fields[tickerField] ?? "").trim().toUpperCase(); + const series = Number(fields[seriesField] ?? 0); + return `${amount} ${ticker}${series > 0 ? ` #${series}` : ""}`; +} + +function appendSwapApprovalCosts( + container: HTMLElement, + fields: Record, + signerSlot: 1 | 2 +): void { + const otherSlot = signerSlot === 1 ? 2 : 1; + const baseSymbol = walletStatus?.networkSymbol ?? "CLTC"; + appendApprovalValue( + container, + "Your miner tip", + swapApprovalAmount( + fields, + `tip${signerSlot}`, + `ticker${signerSlot}`, + `nft_series${signerSlot}` + ) + ); + appendApprovalValue( + container, + "Your transaction fee", + `${formatAtomicDisplay(fields[`txfee${signerSlot}`])} ${baseSymbol}` + ); + appendApprovalValue( + container, + "Other party miner tip", + swapApprovalAmount( + fields, + `tip${otherSlot}`, + `ticker${otherSlot}`, + `nft_series${otherSlot}` + ) + ); + appendApprovalValue( + container, + "Other party transaction fee", + `${formatAtomicDisplay(fields[`txfee${otherSlot}`])} ${baseSymbol}` + ); +} + +function appendSwapApprovalSummary( + container: HTMLElement, + fields: Record +): void { + const activeAddress = walletStatus?.address?.trim().toLowerCase() ?? ""; + const sender1 = String(fields.sender1 ?? "").trim().toLowerCase(); + const sender2 = String(fields.sender2 ?? "").trim().toLowerCase(); + const signerSlot = activeAddress === sender1 ? 1 : activeAddress === sender2 ? 2 : 0; + + if (signerSlot === 1) { + appendApprovalValue( + container, + "Sending", + swapApprovalAmount(fields, "value1", "ticker1", "nft_series1") + ); + appendApprovalValue( + container, + "Receiving", + swapApprovalAmount(fields, "value2", "ticker2", "nft_series2") + ); + appendSwapApprovalCosts(container, fields, 1); + return; + } + + if (signerSlot === 2) { + appendApprovalValue( + container, + "Sending", + swapApprovalAmount(fields, "value2", "ticker2", "nft_series2") + ); + appendApprovalValue( + container, + "Receiving", + swapApprovalAmount(fields, "value1", "ticker1", "nft_series1") + ); + appendSwapApprovalCosts(container, fields, 2); + return; + } + + appendApprovalValue( + container, + "First party sending", + swapApprovalAmount(fields, "value1", "ticker1", "nft_series1") + ); + appendApprovalValue( + container, + "Second party sending", + swapApprovalAmount(fields, "value2", "ticker2", "nft_series2") + ); +} + +function setApprovalProcessing(action: "approve" | "reject" | null): void { + const approve = byId("approve-provider-approval"); + const reject = byId("reject-provider-approval"); + const processing = action !== null; + approve.disabled = processing; + reject.disabled = processing; + approve.classList.toggle("is-processing", action === "approve"); + reject.classList.toggle("is-processing", action === "reject"); + approve.textContent = action === "approve" ? "Processing..." : "Approve"; + reject.textContent = action === "reject" ? "Rejecting..." : "Reject"; +} + +async function showPendingProviderApproval(): Promise { + const pending = await send("pending-provider-approval") as { + locked?: boolean; + position?: number; + total?: number; + request?: { + id: string; + method: string; + origin: string; + risk: "safe" | "low" | "high"; + display?: Record; + }; + } | null; + if (!pending?.request) return false; + + const request = pending.request; + setApprovalProcessing(null); + pendingProviderApprovalId = request.id; + const queueLabel = (pending.total ?? 0) > 1 + ? ` · Request ${pending.position ?? 1} of ${pending.total}` + : ""; + byId("provider-approval-origin").textContent = `${request.origin}${queueLabel}`; + const risk = byId("provider-approval-risk"); + risk.className = `risk-label risk-${request.risk}`; + risk.textContent = request.risk === "safe" + ? "Safe" + : request.risk === "low" + ? "Low risk" + : "High risk"; + const display = request.display ?? {}; + const transactionRequest = request.method === "contractless_sendTransaction" + || request.method === "contractless_signDualTransaction"; + byId("provider-approval-title").textContent = approvalTitle(request.method, display); + byId("provider-approval-intro").textContent = transactionRequest + ? "Review every transaction field before signing." + : "Review this request before approving it."; + const details = byId("provider-approval-details"); + details.replaceChildren(); + Object.entries(display).forEach(([label, value]) => { + if (label === "transaction_fields" && value && typeof value === "object") { + const fields = value as Record; + const txtype = Number(fields.txtype ?? 0); + const swapAmountFields = new Set([ + "ticker1", + "nft_series1", + "value1", + "ticker2", + "nft_series2", + "value2", + "tip1", + "tip2", + "txfee1", + "txfee2" + ]); + if (txtype === 6) appendSwapApprovalSummary(details, fields); + Object.entries(fields).forEach(([field, fieldValue]) => { + if (txtype === 6 && swapAmountFields.has(field)) return; + appendApprovalValue( + details, + field === "txtype" ? "transaction_type_id" : field, + transactionFieldDisplay(txtype, field, fieldValue) + ); + }); + return; + } + appendApprovalValue(details, label, value); + }); + showScreen("provider-approval-screen"); + return true; +} + +async function showNextProviderApproval( + remaining: number, + waitForFollowup: boolean +): Promise { + if (remaining > 0 && await showPendingProviderApproval()) return; + + if (waitForFollowup) { + const expiresAt = Date.now() + 1_500; + while (Date.now() < expiresAt) { + if (await showPendingProviderApproval()) return; + await new Promise((resolve) => setTimeout(resolve, 75)); + } + } + + window.close(); +} + +function decimalHasValue(value: string): boolean { + return value.replace(/[.0]/g, "").length > 0; +} + +function renderTokenBalances(): void { + const list = byId("token-list"); + list.replaceChildren(); + if (!walletBalances) { + const empty = document.createElement("div"); + empty.className = "empty-assets"; + const title = document.createElement("strong"); + title.textContent = "Loading token balances..."; + const description = document.createElement("span"); + description.textContent = "Balances are retrieved from the selected Contractless API."; + empty.append(title, description); + list.append(empty); + return; + } + + const baseSymbol = walletStatus?.networkSymbol ?? "CLTC"; + const tokenNames = new Set( + walletBalances.tokens.map((token) => token.token.trim().toUpperCase()) + ); + const nftKeys = new Set( + walletBalances.nfts.map( + (nft) => `${nft.name.trim().toUpperCase()}|${Number(nft.series || 0)}` + ) + ); + const fungibleBalances = walletBalances.balances.filter((balance) => { + const asset = balance.asset.trim().toUpperCase(); + const key = `${asset}|${Number(balance.nft_series || 0)}`; + return ( + balance.nft_series === 0 + && asset !== "CLTC" + && asset !== "CLC" + && tokenNames.has(asset) + && !nftKeys.has(key) + ); + }); + const balancesByAsset = new Map( + fungibleBalances.map((balance) => [balance.asset.trim().toUpperCase(), balance]) + ); + + const displayedTokenNames = tokenFilter === "all" + ? walletBalances.tokens.map((token) => token.token) + : fungibleBalances + .filter((balance) => decimalHasValue(balance.balance)) + .map((balance) => balance.asset); + const uniqueNames = [...new Set(displayedTokenNames.map((name) => name.trim().toUpperCase()))] + .filter((name) => name !== baseSymbol && !nftKeys.has(`${name}|0`)) + .sort((left, right) => left.localeCompare(right)); + + if (uniqueNames.length === 0) { + const empty = document.createElement("div"); + empty.className = "empty-assets"; + const title = document.createElement("strong"); + title.textContent = tokenFilter === "held" + ? "No token balances found" + : "No tokens found"; + const description = document.createElement("span"); + description.textContent = tokenFilter === "held" + ? "Switch to All tokens to view the complete network token list." + : walletBalances.tokenCatalogError + ? `Token catalog unavailable: ${walletBalances.tokenCatalogError}` + : "The selected API did not return any fungible tokens."; + empty.append(title, description); + list.append(empty); + return; + } + + uniqueNames.forEach((name) => { + const balance = balancesByAsset.get(name); + const row = document.createElement("div"); + row.className = "asset-row"; + + const symbol = document.createElement("div"); + symbol.className = "asset-symbol token-symbol"; + symbol.textContent = name.slice(0, 3); + + const identity = document.createElement("div"); + identity.className = "asset-name"; + const title = document.createElement("strong"); + title.textContent = name; + const subtitle = document.createElement("span"); + subtitle.textContent = "Contractless token"; + identity.append(title, subtitle); + + const value = document.createElement("div"); + value.className = "asset-value"; + const amount = document.createElement("strong"); + amount.textContent = balance?.balance ?? "0.00000000"; + const ticker = document.createElement("span"); + ticker.textContent = name; + value.append(amount, ticker); + + row.append(symbol, identity, value); + list.append(row); + }); +} + +async function loadWalletBalances(): Promise { + if (!walletStatus?.unlocked) return; + walletBalances = undefined; + byId("base-balance").textContent = "--"; + byId("base-asset-balance").textContent = "--"; + renderTokenBalances(); + try { + if (!walletStatus.apiUrl) { + throw new Error(`No ${walletStatus.networkName} API is configured.`); + } + const result = await send("wallet-balances") as { + balances: Array<{ asset: string; nft_series: number; balance: string }>; + tokens: Array<{ token: string; origin_txid: string }>; + nfts: Array<{ + name: string; + series: number; + origin_txid: string; + ownership_type: number; + supply: string; + }>; + tokenCatalogError?: string; + nftCatalogError?: string; + }; + walletBalances = { + balances: Array.isArray(result.balances) ? result.balances : [], + tokens: Array.isArray(result.tokens) ? result.tokens : [], + nfts: Array.isArray(result.nfts) ? result.nfts : [], + tokenCatalogError: result.tokenCatalogError, + nftCatalogError: result.nftCatalogError + }; + const baseSymbol = walletStatus.networkSymbol; + const base = walletBalances.balances.find( + (balance) => + balance.nft_series === 0 && balance.asset.toUpperCase() === baseSymbol + ); + const baseBalance = base?.balance ?? "0.00000000"; + byId("base-balance").textContent = baseBalance; + byId("base-asset-balance").textContent = baseBalance; + renderTokenBalances(); + } catch (error) { + const list = byId("token-list"); + list.replaceChildren(); + const empty = document.createElement("div"); + empty.className = "empty-assets balance-error"; + const title = document.createElement("strong"); + title.textContent = "Unable to load balances"; + const description = document.createElement("span"); + description.textContent = errorText(error); + empty.append(title, description); + list.append(empty); + notice.textContent = errorText(error); + } +} + +function nftKey(name: string, series: number): string { + return `${name.trim().toUpperCase()}|${series}`; +} + +function positiveDecimal(value: string): boolean { + try { + return decimalToAtomic(value, "Balance") > 0n; + } catch { + return false; + } +} + +function nftOwnership(nft: OwnedNft): string { + if (nft.ownership_type !== 1) return "Complete ownership"; + try { + const balance = decimalToAtomic(nft.balance, "Balance"); + const supply = decimalToAtomic(nft.supply, "Supply"); + if (supply <= 0n) return "0% ownership"; + const scaled = balance * 100_000_000n / supply; + const whole = scaled / 1_000_000n; + const fraction = (scaled % 1_000_000n) + .toString() + .padStart(6, "0") + .replace(/0+$/, ""); + return `${whole}${fraction ? `.${fraction}` : ""}% ownership`; + } catch { + return "Fractional ownership"; + } +} + +function nftMetadata(nft: OwnedNft): Record { + return nft.details?.metadata && typeof nft.details.metadata === "object" + ? nft.details.metadata + : {}; +} + +function nftDisplayName(nft: OwnedNft): string { + const metadataName = nftMetadata(nft).name; + if (typeof metadataName === "string" && metadataName.trim()) { + return metadataName.trim(); + } + return nft.series > 0 ? `${nft.name} #${nft.series}` : nft.name; +} + +function nftKind(nft: OwnedNft): "NFT" | "RWA" { + const metadata = nftMetadata(nft); + const contractless = metadata.contractless; + if ( + contractless + && typeof contractless === "object" + && String((contractless as Record).metadata_type ?? "") + .toLowerCase() === "rwa" + ) { + return "RWA"; + } + return "NFT"; +} + +function nftAssetLabel(nft: OwnedNft): string { + return nft.series > 0 ? `${nft.name}_${nft.series}` : nft.name; +} + +function shortenNftValue(value: string, start = 7, end = 7): string { + return value.length > start + end + 3 + ? `${value.slice(0, start)}...${value.slice(-end)}` + : value; +} + +function createNftMedia(nft: OwnedNft, className: string): HTMLElement { + const media = document.createElement("div"); + media.className = className; + if (nft.details?.image_data_url) { + const image = document.createElement("img"); + image.src = nft.details.image_data_url; + image.alt = nftDisplayName(nft); + media.append(image); + return media; + } + const fallback = document.createElement("span"); + fallback.textContent = nft.loading ? "..." : nft.name.slice(0, 2).toUpperCase(); + media.append(fallback); + return media; +} + +function visibleNfts(): OwnedNft[] { + const start = (nftPage - 1) * NFT_PAGE_SIZE; + return ownedNfts.slice(start, start + NFT_PAGE_SIZE); +} + +function renderNftGallery(): void { + const list = byId("nfts-list"); + list.replaceChildren(); + const totalPages = Math.max(1, Math.ceil(ownedNfts.length / NFT_PAGE_SIZE)); + nftPage = Math.min(Math.max(1, nftPage), totalPages); + byId("nfts-count").textContent = ownedNfts.length === 1 + ? "1 owned asset" + : `${ownedNfts.length} owned assets`; + byId("nfts-page").textContent = String(nftPage); + byId("nfts-pages").textContent = String(totalPages); + byId("nfts-pagination").hidden = totalPages <= 1; + byId("nfts-previous").disabled = nftPage <= 1; + byId("nfts-next").disabled = nftPage >= totalPages; + + if (!ownedNfts.length) { + const empty = document.createElement("div"); + empty.className = "nfts-empty"; + const title = document.createElement("strong"); + title.textContent = "No NFTs or RWAs found"; + const copy = document.createElement("span"); + copy.textContent = walletBalances?.nftCatalogError + ? `NFT catalog unavailable: ${walletBalances.nftCatalogError}` + : "Assets owned by this wallet will appear here."; + empty.append(title, copy); + list.append(empty); + return; + } + + visibleNfts().forEach((nft) => { + const card = document.createElement("button"); + card.type = "button"; + card.className = "nft-card"; + card.append(createNftMedia(nft, "nft-card-media")); + + const identity = document.createElement("div"); + identity.className = "nft-card-identity"; + const kind = document.createElement("span"); + kind.textContent = nftKind(nft); + const name = document.createElement("strong"); + name.textContent = nftDisplayName(nft); + const asset = document.createElement("small"); + asset.textContent = nftAssetLabel(nft); + const ownership = document.createElement("b"); + ownership.textContent = nftOwnership(nft); + identity.append(kind, name, asset, ownership); + if (nft.error) { + const error = document.createElement("em"); + error.textContent = "Media unavailable"; + identity.append(error); + } + card.append(identity); + card.addEventListener("click", () => openNftDetails(nft)); + list.append(card); + }); +} + +function appendNftDetailField( + container: HTMLElement, + label: string, + value: string +): void { + const row = document.createElement("div"); + const term = document.createElement("dt"); + term.textContent = label; + const description = document.createElement("dd"); + description.textContent = value || "--"; + row.append(term, description); + container.append(row); +} + +function renderNftDetails(nft: OwnedNft): void { + selectedNft = nft; + const details = nft.details; + const metadata = nftMetadata(nft); + const kind = nftKind(nft); + const name = nftDisplayName(nft); + byId("nft-detail-title").textContent = name; + byId("nft-detail-kind").textContent = `${kind} details`; + byId("nft-detail-badge").textContent = kind; + byId("nft-detail-name").textContent = name; + byId("nft-detail-ownership").textContent = nftOwnership(nft); + + const image = byId("nft-detail-image"); + image.src = details?.image_data_url ?? ""; + image.alt = name; + image.hidden = !details?.image_data_url; + + const description = metadata.description ?? metadata.summary; + byId("nft-detail-description").textContent = + typeof description === "string" && description.trim() + ? description.trim() + : details + ? "No description was included in the NFT metadata." + : "Loading NFT metadata and provenance..."; + + const attributes = byId("nft-detail-attributes"); + attributes.replaceChildren(); + const metadataAttributes = Array.isArray(metadata.attributes) + ? metadata.attributes.slice(0, 12) + : []; + metadataAttributes.forEach((attribute) => { + if (!attribute || typeof attribute !== "object") return; + const values = attribute as Record; + const item = document.createElement("div"); + const label = document.createElement("span"); + label.textContent = String(values.trait_type ?? values.type ?? "Attribute"); + const value = document.createElement("strong"); + value.textContent = String(values.value ?? ""); + item.append(label, value); + attributes.append(item); + }); + attributes.hidden = attributes.childElementCount === 0; + + const fields = byId("nft-detail-fields"); + fields.replaceChildren(); + appendNftDetailField(fields, "Asset", nftAssetLabel(nft)); + appendNftDetailField(fields, "Creator", details?.creator ?? "--"); + appendNftDetailField(fields, "IPFS CID", details?.item_ipfs ?? "--"); + appendNftDetailField(fields, "Origin transaction", details?.genesis_txid ?? nft.origin_txid); + + const history = byId("nft-detail-history"); + history.replaceChildren(); + if (!details) { + const loading = document.createElement("p"); + loading.textContent = "Loading provenance..."; + history.append(loading); + } else if (!details.history.length) { + const empty = document.createElement("p"); + empty.textContent = "No provenance records were returned."; + history.append(empty); + } else { + details.history.slice().reverse().forEach((entry) => { + const row = document.createElement("button"); + row.type = "button"; + row.className = "nft-history-row"; + row.title = `View full transaction ${entry.txid}`; + const action = document.createElement("strong"); + action.textContent = entry.action; + const block = document.createElement("span"); + block.textContent = `Block ${Number(entry.block).toLocaleString()}`; + const transaction = document.createElement("small"); + transaction.textContent = shortenNftValue(entry.txid); + row.append(action, block, transaction); + row.addEventListener("click", () => { + void openTransaction( + { + txid: entry.txid, + block_height: Number(entry.block), + transaction_hex: "" + }, + "nft" + ); + }); + history.append(row); + }); + } +} + +function openNftDetails(nft: OwnedNft): void { + renderNftDetails(nft); + showScreen("nft-detail-screen"); +} + +async function hydrateVisibleNfts(loadId: number): Promise { + const queue = visibleNfts().filter((nft) => !nft.details && !nft.loading); + let cursor = 0; + const worker = async (): Promise => { + while (cursor < queue.length && loadId === nftLoadId) { + const nft = queue[cursor++]; + nft.loading = true; + renderNftGallery(); + try { + nft.details = await send("wallet-nft-details", { + name: nft.name, + series: nft.series + }) as NftDetails; + nft.error = nft.details.media_error; + } catch (error) { + nft.error = errorText(error); + } finally { + nft.loading = false; + } + if (loadId !== nftLoadId) return; + renderNftGallery(); + if (selectedNft === nft) renderNftDetails(nft); + } + }; + await Promise.all([worker(), worker()]); +} + +async function loadOwnedNfts(force = false): Promise { + const loadId = ++nftLoadId; + byId("nfts-count").textContent = "Loading ownership..."; + if (!walletBalances || force) { + await loadWalletBalances(); + } + if (loadId !== nftLoadId || !walletBalances) return; + + const previous = force + ? new Map() + : new Map(ownedNfts.map((nft) => [nftKey(nft.name, nft.series), nft])); + ownedNfts = walletBalances.nfts + .map((catalog): OwnedNft | null => { + const balance = walletBalances?.balances.find( + (entry) => + nftKey(entry.asset, Number(entry.nft_series || 0)) + === nftKey(catalog.name, Number(catalog.series || 0)) + ); + if (!balance || !positiveDecimal(balance.balance)) return null; + const existing = previous.get(nftKey(catalog.name, catalog.series)); + return { + name: catalog.name.trim(), + series: Number(catalog.series || 0), + origin_txid: catalog.origin_txid, + ownership_type: Number(catalog.ownership_type || 0), + supply: catalog.supply, + balance: balance.balance, + details: existing?.details, + error: existing?.error + }; + }) + .filter((nft): nft is OwnedNft => nft !== null) + .sort((left, right) => + left.name.localeCompare(right.name) || left.series - right.series + ); + const totalPages = Math.max(1, Math.ceil(ownedNfts.length / NFT_PAGE_SIZE)); + nftPage = Math.min(nftPage, totalPages); + renderNftGallery(); + await hydrateVisibleNfts(loadId); +} + +function renderKnownAddresses(status: WalletStatus): void { + const container = byId("known-addresses"); + container.replaceChildren(); + + status.wallets.forEach((wallet) => { + const row = document.createElement("div"); + row.className = `known-address${wallet.active ? " active-address" : ""}`; + + const select = document.createElement("button"); + select.type = "button"; + select.className = "address-select"; + select.dataset.walletId = wallet.id; + + const avatar = document.createElement("span"); + avatar.className = "address-avatar"; + const logo = document.createElement("img"); + logo.src = chrome.runtime.getURL("contractless-logo.png"); + logo.alt = ""; + avatar.append(logo); + + const details = document.createElement("span"); + details.className = "address-details"; + const label = document.createElement("strong"); + label.textContent = wallet.label; + const address = document.createElement("small"); + address.textContent = wallet.address; + details.append(label, address); + + const selected = document.createElement("span"); + selected.className = "selected-mark"; + selected.textContent = wallet.active ? "✓" : ""; + select.append(avatar, details, selected); + + select.addEventListener("click", () => { + if (wallet.active) { + setAccountDrawer(false); + return; + } + void action(async () => { + setAccountDrawer(false); + currentPassword = ""; + backupImageBase64 = ""; + showStatus(await send("switch-wallet", { walletId: wallet.id }) as WalletStatus); + }); + }); + + const rename = document.createElement("button"); + rename.type = "button"; + rename.className = "rename-address"; + rename.title = "Rename wallet"; + rename.setAttribute("aria-label", `Rename ${wallet.label}`); + rename.textContent = "✎"; + rename.addEventListener("click", () => { + const nextLabel = window.prompt("Wallet label", wallet.label); + if (nextLabel === null || nextLabel.trim() === wallet.label) return; + void action(async () => { + const nextStatus = await send("rename-wallet", { + walletId: wallet.id, + label: nextLabel + }) as WalletStatus; + showStatus(nextStatus); + setAccountDrawer(true); + }); + }); + + row.append(select, rename); + container.append(row); + }); +} + +function setAccountDrawer(open: boolean): void { + const drawer = byId("account-drawer"); + const backdrop = byId("drawer-backdrop"); + const trigger = byId("account-menu-button"); + drawer.classList.toggle("open", open); + drawer.setAttribute("aria-hidden", String(!open)); + trigger.setAttribute("aria-expanded", String(open)); + backdrop.hidden = !open; +} + +function clearRevealedPrivateKey(): void { + byId("revealed-private-key").value = ""; + byId("private-key-result").hidden = true; +} + +function setBackupKeyModal(open: boolean): void { + byId("backup-key-modal").hidden = !open; + byId("backup-key-backdrop").hidden = !open; + if (open) { + const input = byId("backup-key-input"); + input.value = ""; + input.focus(); + } else { + byId("backup-key-input").value = ""; + pendingBackupAction = undefined; + } +} + +async function openReceiveScreen(): Promise { + const result = await send("wallet-receive-address"); + const address = String(result.receiveAddress ?? ""); + if (!address) throw new Error("No active wallet address is available."); + byId("receive-address-label").textContent = result.vanity + ? "Vanity address" + : "Wallet address"; + byId("receive-address-value").textContent = address; + const canvas = byId("receive-qr"); + await QRCode.toCanvas(canvas, address, { + width: 220, + margin: 1, + errorCorrectionLevel: "M", + color: { + dark: "#071016", + light: "#ffffff" + } + }); + showScreen("receive-screen"); +} + +function decimalToAtomic(value: string, label: string): bigint { + const normalized = value.trim(); + if (!/^(?:0|[1-9]\d*)(?:\.\d{1,8})?$/.test(normalized)) { + throw new Error(`${label} must be a positive number with no more than 8 decimal places.`); + } + const [whole, fraction = ""] = normalized.split("."); + return BigInt(whole) * 100_000_000n + BigInt(fraction.padEnd(8, "0")); +} + +function atomicToDecimal(value: bigint): string { + const whole = value / 100_000_000n; + const fraction = (value % 100_000_000n).toString().padStart(8, "0"); + return `${whole}.${fraction}`; +} + +function selectedSendBalance(): string { + if (sendNft) return sendNft.balance; + const asset = byId("send-asset").value; + const balance = walletBalances?.balances.find( + (entry) => entry.nft_series === 0 && entry.asset.trim().toUpperCase() === asset + ); + return balance?.balance ?? "0.00000000"; +} + +function minimumSendFeeAtomic(): bigint { + const asset = byId("send-asset").value; + const baseSymbol = walletStatus?.networkSymbol ?? "CLTC"; + if (asset !== baseSymbol) return 100_000_000n; + const amount = byId("send-amount").value.trim(); + if (!amount) return 0n; + try { + const atomic = decimalToAtomic(amount, "Amount"); + return (atomic + 99n) / 100n; + } catch { + return 0n; + } +} + +function updateSendForm(): void { + const asset = sendNft?.name ?? byId("send-asset").value; + const baseSymbol = walletStatus?.networkSymbol ?? "CLTC"; + const assetLabel = sendNft ? nftAssetLabel(sendNft) : asset; + byId("send-amount-symbol").textContent = assetLabel; + byId("send-available").textContent = + `Available: ${selectedSendBalance()} ${assetLabel}`; + const minimumFee = minimumSendFeeAtomic(); + byId("send-fee").value = atomicToDecimal(minimumFee); + byId("send-fee-note").textContent = !sendNft && asset === baseSymbol + ? "Minimum fee: 1% of the transfer amount." + : `Minimum fee: 1 ${baseSymbol} for asset transfers.`; +} + +function populateSendAssets(): void { + const select = byId("send-asset"); + select.replaceChildren(); + const baseSymbol = walletStatus?.networkSymbol ?? "CLTC"; + const assets = new Set([baseSymbol]); + walletBalances?.tokens.forEach((token) => { + const symbol = token.token.trim().toUpperCase(); + const balance = walletBalances?.balances.find( + (entry) => + entry.nft_series === 0 && + entry.asset.trim().toUpperCase() === symbol && + decimalToAtomic(entry.balance, "Balance") > 0n + ); + if (balance) assets.add(symbol); + }); + assets.forEach((asset) => { + const option = document.createElement("option"); + option.value = asset; + option.textContent = asset; + select.append(option); + }); + updateSendForm(); +} + +function openSendScreen(): void { + if (!walletBalances) throw new Error("Wallet balances are still loading."); + sendNft = undefined; + pendingTransfer = undefined; + byId("send-form").reset(); + byId("send-asset").disabled = false; + byId("send-amount").disabled = false; + populateSendAssets(); + showScreen("send-screen"); +} + +function openNftSendScreen(nft: OwnedNft): void { + if (!walletBalances) throw new Error("Wallet balances are still loading."); + sendNft = nft; + pendingTransfer = undefined; + byId("send-form").reset(); + + const select = byId("send-asset"); + select.replaceChildren(); + const option = document.createElement("option"); + option.value = nft.name; + option.textContent = nftAssetLabel(nft); + select.append(option); + select.disabled = true; + + const amount = byId("send-amount"); + if (nft.ownership_type === 0) { + amount.value = "1.00000000"; + amount.disabled = true; + } else { + amount.value = ""; + amount.disabled = false; + } + + updateSendForm(); + showScreen("send-screen"); +} + +async function prepareTransfer(): Promise { + if (!walletStatus?.address) throw new Error("No active wallet is available."); + const asset = sendNft?.name ?? byId("send-asset").value; + const assetLabel = sendNft ? nftAssetLabel(sendNft) : asset; + const receiver = requireValue( + byId("send-recipient").value, + "Enter a receiving address." + ); + const amount = requireValue( + byId("send-amount").value, + "Enter an amount to send." + ); + const fee = requireValue( + byId("send-fee").value, + "Enter a transaction fee." + ); + const amountAtomic = decimalToAtomic(amount, "Amount"); + const feeAtomic = decimalToAtomic(fee, "Transaction fee"); + if (amountAtomic === 0n) throw new Error("The transfer amount must be greater than zero."); + if (sendNft?.ownership_type === 0 && amountAtomic !== 100_000_000n) { + throw new Error("An indivisible NFT must be transferred as one complete asset."); + } + if (sendNft?.ownership_type === 1 && amountAtomic > 100_000_000n) { + throw new Error("A fractional NFT/RWA transfer cannot exceed one complete asset."); + } + const minimumFee = minimumSendFeeAtomic(); + if (feeAtomic < minimumFee) { + throw new Error(`The minimum transaction fee is ${atomicToDecimal(minimumFee)}.`); + } + const assetBalance = decimalToAtomic(selectedSendBalance(), "Available balance"); + if (amountAtomic > assetBalance) throw new Error(`Insufficient ${asset} balance.`); + + const baseSymbol = walletStatus.networkSymbol; + const baseBalanceText = walletBalances?.balances.find( + (entry) => + entry.nft_series === 0 && entry.asset.trim().toUpperCase() === baseSymbol + )?.balance ?? "0.00000000"; + const baseBalance = decimalToAtomic(baseBalanceText, "Base balance"); + const baseRequired = asset === baseSymbol ? amountAtomic + feeAtomic : feeAtomic; + if (baseRequired > baseBalance) throw new Error(`Insufficient ${baseSymbol} balance including the fee.`); + + const result = await send("wallet-prepare-transfer", { + receiver, + asset, + nftSeries: sendNft?.series ?? 0, + valueAtomic: amountAtomic.toString(), + feeAtomic: feeAtomic.toString() + }) as { + transaction: Record; + review: Record; + receiverInput: string; + }; + const total = asset === baseSymbol + ? `${atomicToDecimal(amountAtomic + feeAtomic)} ${baseSymbol}` + : `${atomicToDecimal(amountAtomic)} ${assetLabel} + ${atomicToDecimal(feeAtomic)} ${baseSymbol}`; + pendingTransfer = { + transaction: result.transaction, + receiverInput: result.receiverInput, + asset, + amount: atomicToDecimal(amountAtomic), + fee: atomicToDecimal(feeAtomic), + total + }; + byId("review-amount").textContent = pendingTransfer.amount; + byId("review-asset").textContent = assetLabel; + byId("review-sender").textContent = walletStatus.address; + byId("review-recipient").textContent = result.receiverInput; + byId("review-resolved-recipient").textContent = String(result.review.receiver ?? ""); + byId("review-fee").textContent = pendingTransfer.fee; + byId("review-total").textContent = total; + showScreen("send-review-screen"); +} + +function transactionTimestamp(transactionHex: string): Date | undefined { + if (!/^[0-9a-f]+$/i.test(transactionHex) || transactionHex.length < 10) return undefined; + const bytes = transactionHex.slice(2, 10).match(/../g); + if (!bytes || bytes.length !== 4) return undefined; + const seconds = bytes.reduce( + (value, byte, index) => value + (Number.parseInt(byte, 16) * (2 ** (index * 8))), + 0 + ); + const date = new Date(seconds * 1_000); + return Number.isNaN(date.getTime()) ? undefined : date; +} + +function fieldLabel(name: string): string { + return name + .split("_") + .map((part) => part ? `${part[0].toUpperCase()}${part.slice(1)}` : part) + .join(" "); +} + +function formatAtomicDisplay(value: unknown): string { + try { + const decimal = atomicToDecimal(BigInt(String(value ?? "0"))); + const [whole, fraction] = decimal.split("."); + const trimmed = fraction.replace(/0+$/, ""); + return trimmed ? `${whole}.${trimmed}` : `${whole}.0`; + } catch { + return String(value ?? ""); + } +} + +function isAtomicTransactionField(txtype: number, name: string): boolean { + if (name.startsWith("txfee")) return true; + const fieldsByType: Record> = { + 1: new Set(["value"]), + 2: new Set(["value"]), + 3: new Set(["number"]), + 6: new Set(["value1", "value2", "tip1", "tip2"]), + 7: new Set([ + "loan_amount", + "collateral_amount", + "payment_amount", + "max_late_value" + ]), + 8: new Set(["payback_amount", "tip"]), + 10: new Set(["value"]), + 11: new Set(["number"]) + }; + return fieldsByType[txtype]?.has(name) ?? false; +} + +function transactionFieldDisplay(txtype: number, name: string, value: unknown): string { + if (typeof value === "boolean") return value ? "True" : "False"; + if (isAtomicTransactionField(txtype, name)) return formatAtomicDisplay(value); + if (name === "time" || name === "timestamp" || name === "offer_expiration") { + const timestamp = Number(value); + if (Number.isFinite(timestamp)) { + return `${new Date(timestamp * 1_000).toLocaleString()} (${timestamp})`; + } + } + if (name === "payment_period") { + const periods: Record = { d: "Daily", w: "Weekly", m: "Monthly" }; + return periods[String(value).trim().toLowerCase()] ?? String(value ?? ""); + } + if (txtype === 3 && name === "hard_limit") { + return Number(value) === 1 ? "Yes" : "No"; + } + if (txtype === 4 && name === "series") { + return Number(value) === 1 ? "Series" : "Single NFT/RWA"; + } + if (txtype === 4 && name === "ownership_type") { + return Number(value) === 1 ? "Fractional ownership" : "Complete ownership"; + } + if ((txtype === 201 || txtype === 202) && name === "vote") { + return Number(value) === 1 ? "Approve" : "Reject"; + } + if ((name === "previous" || name.endsWith("_hash")) && /^0+$/.test(String(value))) { + return "None"; + } + if (txtype === 5 && (name === "impression_value" || name === "click_value")) { + return (Number(value) / 100).toFixed(2); + } + return typeof value === "string" ? value.trim() : String(value ?? ""); +} + +function appendTransactionField( + container: HTMLElement, + name: string, + value: unknown, + technical = false, + txtype = 0 +): void { + const row = document.createElement("div"); + row.className = `transaction-field${technical ? " technical-field" : ""}`; + const label = document.createElement("span"); + label.textContent = fieldLabel(name); + const contents = document.createElement("strong"); + contents.textContent = technical + ? String(value ?? "") + : transactionFieldDisplay(txtype, name, value); + row.append(label, contents); + container.append(row); +} + +function transactionConfirmations(blockHeight: number, currentHeight: number): number { + if (!blockHeight || !currentHeight || currentHeight < blockHeight) return 0; + return currentHeight - blockHeight; +} + +function confirmationLabel(blockHeight: number, currentHeight: number): string { + const confirmations = transactionConfirmations(blockHeight, currentHeight); + if (!blockHeight) return `Pending · 0/${CONFIRMED_AFTER_BLOCKS} confirmations`; + if (confirmations >= CONFIRMED_AFTER_BLOCKS) { + return `${confirmations} confirmations`; + } + return `${confirmations}/${CONFIRMED_AFTER_BLOCKS} confirmations`; +} + +async function openTransaction( + record: ActivityRecord, + returnScreen: "activity" | "nft" = "activity" +): Promise { + selectedTransaction = record; + transactionReturnScreen = returnScreen; + const back = byId("close-transaction"); + back.title = returnScreen === "nft" + ? "Back to NFT/RWA details" + : "Back to activity"; + back.setAttribute( + "aria-label", + returnScreen === "nft" ? "Back to NFT/RWA details" : "Back to activity" + ); + showScreen("transaction-screen"); + byId("transaction-title").textContent = "Loading transaction"; + byId("transaction-header-status").textContent = ""; + byId("transaction-full-txid").textContent = record.txid; + byId("transaction-overview").replaceChildren(); + byId("transaction-fields").replaceChildren(); + byId("transaction-technical-fields").replaceChildren(); + byId("transaction-miner-earnings").replaceChildren(); + byId("miner-earnings-section").hidden = true; + + try { + const lookup = await send("wallet-transaction", { txid: record.txid }) as { + txid: string; + block_height: number; + current_height: number; + transaction_hex: string; + }; + const wasm = await core(walletStatus?.selectedNetwork ?? "testnet"); + const decoded = JSON.parse( + wasm.decode_transaction(lookup.transaction_hex) + ) as DecodedTransaction; + const confirmations = transactionConfirmations( + lookup.block_height, + lookup.current_height + ); + const pending = confirmations < CONFIRMED_AFTER_BLOCKS; + const timestamp = transactionTimestamp(lookup.transaction_hex); + + byId("transaction-title").textContent = decoded.transaction_name; + byId("transaction-header-status").textContent = pending ? "Pending" : "Confirmed"; + byId("transaction-header-status").className = pending + ? "transaction-pending" + : "transaction-confirmed"; + byId("transaction-full-txid").textContent = lookup.txid; + + const overview = byId("transaction-overview"); + appendTransactionField(overview, "status", pending ? "Pending" : "Confirmed"); + appendTransactionField( + overview, + "block_height", + lookup.block_height ? lookup.block_height.toLocaleString() : "Mempool" + ); + appendTransactionField( + overview, + "confirmations", + confirmationLabel(lookup.block_height, lookup.current_height) + ); + if (timestamp) appendTransactionField(overview, "date", timestamp.toLocaleString()); + appendTransactionField(overview, "transaction_type", decoded.txtype); + + const fields = byId("transaction-fields"); + Object.entries(decoded.fields).forEach(([name, value]) => { + appendTransactionField(fields, name, value, false, decoded.txtype); + }); + + const earnings = record.miner_earnings ?? []; + if (earnings.length > 0) { + const earningsContainer = byId("transaction-miner-earnings"); + earnings.forEach((earning, index) => { + appendTransactionField(earningsContainer, `earning_${index + 1}_type`, earning.type); + appendTransactionField(earningsContainer, `earning_${index + 1}_asset`, earning.asset); + appendTransactionField( + earningsContainer, + `earning_${index + 1}_nft_series`, + earning.nft_series + ); + appendTransactionField( + earningsContainer, + `earning_${index + 1}_amount`, + `${formatAtomicDisplay(earning.amount_atomic)} ${earning.asset.trim()}` + ); + }); + byId("miner-earnings-section").hidden = false; + } + + const technical = byId("transaction-technical-fields"); + if (decoded.stored_hash) { + appendTransactionField(technical, "stored_hash", decoded.stored_hash, true); + } + if (decoded.signature) { + appendTransactionField(technical, "signature", decoded.signature, true); + } + if (decoded.signature1) { + appendTransactionField(technical, "signature_1", decoded.signature1, true); + } + if (decoded.signature2) { + appendTransactionField(technical, "signature_2", decoded.signature2, true); + } + appendTransactionField(technical, "raw_transaction_bytes", lookup.transaction_hex, true); + } catch (error) { + byId("transaction-title").textContent = "Transaction unavailable"; + const fields = byId("transaction-fields"); + fields.replaceChildren(); + appendTransactionField(fields, "error", errorText(error)); + } +} + +type ActivitySummary = { + title: string; + subtitle: string; + amount: string; + secondary?: string; + direction: "incoming" | "outgoing" | "neutral"; +}; + +function shortActivityAddress(value: unknown): string { + const address = String(value ?? "").trim(); + return address.length > 18 + ? `${address.slice(0, 8)}...${address.slice(-7)}` + : address; +} + +function activitySummary(decoded: DecodedTransaction, address: string): ActivitySummary { + const fields = decoded.fields; + const active = address.trim().toLowerCase(); + const baseSymbol = walletStatus?.networkSymbol ?? "CLTC"; + const asset = (name: string) => String(fields[name] ?? "").trim(); + const amount = (name: string, symbol: string, sign = "") => + `${sign}${formatAtomicDisplay(fields[name])} ${symbol}`; + const fee = () => `-${formatAtomicDisplay(fields.txfee ?? 0)} ${baseSymbol}`; + + switch (decoded.txtype) { + case 1: + return { + title: "Mining reward", + subtitle: "From network", + amount: amount("value", baseSymbol, "+"), + direction: "incoming" + }; + case 2: { + const symbol = asset("coin"); + const sent = String(fields.sender ?? "").trim().toLowerCase() === active; + return { + title: sent ? `Sent ${symbol}` : `Received ${symbol}`, + subtitle: sent + ? `To: ${shortActivityAddress(fields.receiver)}` + : `From: ${shortActivityAddress(fields.sender)}`, + amount: amount("value", symbol, sent ? "-" : "+"), + direction: sent ? "outgoing" : "incoming" + }; + } + case 3: { + const symbol = asset("ticker"); + return { + title: `Created ${symbol}`, + subtitle: "Token creation", + amount: amount("number", symbol, "+"), + secondary: fee(), + direction: "incoming" + }; + } + case 4: { + const count = String(fields.count ?? "1"); + return { + title: `Created ${asset("nft_name")}`, + subtitle: Number(fields.series ?? 0) === 0 ? "NFT/RWA" : "NFT/RWA collection", + amount: `+${count} ${Number(count) === 1 ? "item" : "items"}`, + secondary: fee(), + direction: "incoming" + }; + } + case 6: { + const first = String(fields.sender1 ?? "").trim().toLowerCase() === active; + const sentAsset = asset(first ? "ticker1" : "ticker2"); + const receivedAsset = asset(first ? "ticker2" : "ticker1"); + return { + title: "Completed swap", + subtitle: `With: ${shortActivityAddress(fields[first ? "sender2" : "sender1"])}`, + amount: amount(first ? "value1" : "value2", sentAsset, "-"), + secondary: amount(first ? "value2" : "value1", receivedAsset, "+"), + direction: "neutral" + }; + } + case 7: { + const lender = String(fields.lender ?? "").trim().toLowerCase() === active; + return { + title: lender ? "Loan funded" : "Loan received", + subtitle: lender + ? `To: ${shortActivityAddress(fields.borrower)}` + : `From: ${shortActivityAddress(fields.lender)}`, + amount: amount("loan_amount", asset("loan_coin"), lender ? "-" : "+"), + direction: lender ? "outgoing" : "incoming" + }; + } + case 8: + return { + title: "Loan payment", + subtitle: `Contract: ${shortActivityAddress(fields.contract_hash)}`, + amount: `-${formatAtomicDisplay(fields.payback_amount)}`, + direction: "outgoing" + }; + case 10: + return { + title: `Burned ${asset("coin")}`, + subtitle: "Removed from supply", + amount: amount("value", asset("coin"), "-"), + direction: "outgoing" + }; + case 11: { + const symbol = asset("ticker"); + return { + title: `Issued ${symbol}`, + subtitle: "Additional token supply", + amount: amount("number", symbol, "+"), + secondary: fee(), + direction: "incoming" + }; + } + case 12: + return { + title: "Created vanity address", + subtitle: String(fields.vanity_address ?? "").trim(), + amount: fee(), + direction: "outgoing" + }; + default: + return { + title: decoded.transaction_name, + subtitle: "Contractless transaction", + amount: fee(), + direction: "outgoing" + }; + } +} + +async function renderActivity( + records: ActivityRecord[], + currentHeight: number +): Promise { + const list = byId("activity-list"); + list.replaceChildren(); + byId("activity-count").textContent = `${records.length} shown`; + + if (records.length === 0) { + const empty = document.createElement("div"); + empty.className = "activity-empty"; + const title = document.createElement("strong"); + title.textContent = "No wallet activity found"; + const description = document.createElement("span"); + description.textContent = "New transactions will appear here after they reach the selected API."; + empty.append(title, description); + list.append(empty); + return; + } + + const wasm = await core(walletStatus?.selectedNetwork ?? "testnet"); + records.forEach((record) => { + let decoded: DecodedTransaction; + try { + decoded = JSON.parse(wasm.decode_transaction(record.transaction_hex)) as DecodedTransaction; + } catch { + const txtype = Number.parseInt(record.transaction_hex.slice(0, 2), 16); + decoded = { + txtype, + transaction_name: TRANSACTION_NAMES[txtype] ?? `Transaction Type ${txtype}`, + fields: {} + }; + } + const summary = activitySummary(decoded, walletStatus?.address ?? ""); + const date = transactionTimestamp(record.transaction_hex); + const confirmations = transactionConfirmations(record.block_height, currentHeight); + const pending = confirmations < CONFIRMED_AFTER_BLOCKS; + const row = document.createElement("button"); + row.type = "button"; + row.className = "activity-row"; + + const marker = document.createElement("span"); + marker.className = `activity-marker ${summary.direction}`; + marker.textContent = pending + ? "..." + : summary.direction === "incoming" + ? "\u2191" + : summary.direction === "outgoing" + ? "\u2193" + : "\u2194"; + + const details = document.createElement("div"); + details.className = "activity-details"; + const name = document.createElement("strong"); + name.textContent = summary.title; + const counterpart = document.createElement("span"); + counterpart.textContent = pending ? `Pending · ${summary.subtitle}` : summary.subtitle; + const timestamp = document.createElement("small"); + timestamp.textContent = date + ? date.toLocaleString() + : "Transaction time unavailable"; + details.append(name, counterpart, timestamp); + + const status = document.createElement("div"); + status.className = "activity-status"; + const transactionAmount = document.createElement("strong"); + transactionAmount.className = summary.direction; + transactionAmount.textContent = summary.amount; + status.append(transactionAmount); + if (summary.secondary) { + const secondary = document.createElement("span"); + secondary.textContent = summary.secondary; + status.append(secondary); + } + const confirmation = document.createElement("span"); + confirmation.className = pending ? "pending" : "confirmed"; + confirmation.textContent = confirmationLabel(record.block_height, currentHeight); + status.append(confirmation); + + row.append(marker, details, status); + row.addEventListener("click", () => { + void openTransaction(record); + }); + list.append(row); + }); +} + +async function loadActivity(): Promise { + if (!walletStatus?.unlocked) return; + byId("activity-count").textContent = "Loading"; + const list = byId("activity-list"); + list.replaceChildren(); + const loading = document.createElement("div"); + loading.className = "activity-empty"; + loading.textContent = "Loading recent activity..."; + list.append(loading); + + try { + const result = await send("wallet-activity") as { + current_height?: number; + transactions?: ActivityRecord[]; + }; + await renderActivity( + Array.isArray(result.transactions) ? result.transactions : [], + Number(result.current_height ?? 0) + ); + } catch (error) { + list.replaceChildren(); + const failed = document.createElement("div"); + failed.className = "activity-empty activity-error"; + failed.textContent = errorText(error); + list.append(failed); + byId("activity-count").textContent = "Unavailable"; + } +} + +function errorText(error: unknown): string { + if (error instanceof Error) return error.message; + return String(error).replace(/^JsValue\((.*)\)$/, "$1"); +} + +async function action(run: () => Promise, loading = false): Promise { + notice.textContent = ""; + if (loading) showScreen("loading"); + try { + await run(); + } catch (error) { + notice.textContent = errorText(error); + throw error; + } +} + +function requireValue(value: string, message: string): string { + if (!value.trim()) throw new Error(message); + return value; +} + +function bytesToBase64(bytes: Uint8Array): string { + let binary = ""; + const chunkSize = 0x8000; + for (let offset = 0; offset < bytes.length; offset += chunkSize) { + binary += String.fromCharCode(...bytes.subarray(offset, offset + chunkSize)); + } + return btoa(binary); +} + +function downloadBase64Png(contents: string, filename: string): void { + const binary = atob(contents); + const bytes = new Uint8Array(binary.length); + for (let index = 0; index < binary.length; index += 1) { + bytes[index] = binary.charCodeAt(index); + } + const url = URL.createObjectURL(new Blob([bytes], { type: "image/png" })); + const link = document.createElement("a"); + link.href = url; + link.download = filename; + link.click(); + setTimeout(() => URL.revokeObjectURL(url), 1_000); +} + +async function openBackupScreen(status: WalletStatus, password: string): Promise { + walletStatus = status; + currentPassword = password; + backupImageBase64 = String(await send("export-private-key-image", { + password, + imagePassword: password + })); + byId("wallet-image-preview").src = + `data:image/png;base64,${backupImageBase64}`; + const confirmation = byId("backup-confirmed"); + confirmation.disabled = true; + confirmation.checked = false; + byId("open-wallet").disabled = true; + showScreen("backup-screen"); +} + +document.querySelectorAll(".navigation").forEach((button) => { + button.addEventListener("click", () => { + const destination = String(button.dataset.screen); + if (destination === "image-screen" && firefoxToolbarPopup) { + void chrome.tabs.create({ + url: chrome.runtime.getURL("import-wallet.html"), + active: true + }); + return; + } + showScreen(destination); + }); +}); + +byId("account-menu-button").addEventListener("click", () => setAccountDrawer(true)); +byId("close-account-drawer").addEventListener("click", () => setAccountDrawer(false)); +byId("drawer-backdrop").addEventListener("click", () => setAccountDrawer(false)); + +function openAddWalletFlow(screen: "create-screen" | "image-screen"): void { + setAccountDrawer(false); + byId("cancel-wallet-add").hidden = false; + showScreen(screen); +} + +byId("menu-create-wallet").addEventListener("click", () => { + openAddWalletFlow("create-screen"); +}); + +byId("menu-import-wallet").addEventListener("click", () => { + setAccountDrawer(false); + if (firefoxToolbarPopup) { + void chrome.tabs.create({ + url: chrome.runtime.getURL("import-wallet.html"), + active: true + }); + } else { + openAddWalletFlow("image-screen"); + } +}); + +byId("cancel-wallet-add").addEventListener("click", () => { + byId("cancel-wallet-add").hidden = true; + if (walletStatus) showStatus(walletStatus); +}); + +byId("menu-settings").addEventListener("click", () => { + setAccountDrawer(false); + clearRevealedPrivateKey(); + if (walletStatus) { + byId("settings-testnet-api-url").value = walletStatus.testnetApiUrl; + byId("settings-mainnet-api-url").value = walletStatus.mainnetApiUrl; + byId("settings-lock-timeout").value = + String(walletStatus.autoLockMinutes); + } + showScreen("settings-screen"); +}); + +byId("close-settings").addEventListener("click", () => { + clearRevealedPrivateKey(); + if (walletStatus) showStatus(walletStatus); +}); + +byId("drawer-lock-wallet").addEventListener("click", () => { + void action(async () => { + setAccountDrawer(false); + currentPassword = ""; + backupImageBase64 = ""; + showStatus(await send("lock") as WalletStatus); + }); +}); + +byId("open-receive").addEventListener("click", () => { + void action(openReceiveScreen); +}); + +byId("open-send").addEventListener("click", () => { + void action(async () => openSendScreen()); +}); + +byId("close-send").addEventListener("click", () => { + pendingTransfer = undefined; + if (sendNft) { + renderNftDetails(sendNft); + showScreen("nft-detail-screen"); + } else if (walletStatus) { + showStatus(walletStatus); + } +}); + +byId("send-asset").addEventListener("change", updateSendForm); +byId("send-amount").addEventListener("input", updateSendForm); + +byId("send-form").addEventListener("submit", (event) => { + event.preventDefault(); + void action(prepareTransfer); +}); + +byId("send-form").addEventListener("keydown", (event) => { + if (!(event instanceof KeyboardEvent) || event.key !== "Enter") return; + if (!(event.target instanceof HTMLInputElement)) return; + event.preventDefault(); + byId("send-form").requestSubmit(); +}); + +byId("edit-send").addEventListener("click", () => { + showScreen("send-screen"); +}); + +byId("sign-broadcast-transfer").addEventListener("click", () => { + void action(async () => { + if (!pendingTransfer) throw new Error("The reviewed transfer is unavailable."); + const result = await send("wallet-broadcast-transfer", { + transaction: pendingTransfer.transaction + }) as { txid: string }; + lastSentTxid = result.txid; + byId("send-result-txid").textContent = lastSentTxid; + pendingTransfer = undefined; + showScreen("send-success-screen"); + }); +}); + +byId("copy-send-txid").addEventListener("click", () => { + if (!lastSentTxid) return; + void navigator.clipboard.writeText(lastSentTxid) + .then(() => { + notice.textContent = "Transaction ID copied."; + }) + .catch((error) => { + notice.textContent = errorText(error); + }); +}); + +byId("finish-send").addEventListener("click", () => { + lastSentTxid = ""; + const nftTransfer = Boolean(sendNft); + sendNft = undefined; + if (walletStatus) { + void loadWalletBalances(); + if (nftTransfer) { + selectedNft = undefined; + showScreen("nfts-screen"); + void loadOwnedNfts(true); + } else { + showStatus(walletStatus); + } + } +}); + +byId("open-activity").addEventListener("click", () => { + showScreen("activity-screen"); + void loadActivity(); +}); + +byId("open-nfts").addEventListener("click", () => { + nftPage = 1; + selectedNft = undefined; + showScreen("nfts-screen"); + void loadOwnedNfts(true); +}); + +byId("close-nfts").addEventListener("click", () => { + nftLoadId += 1; + if (walletStatus) showStatus(walletStatus); +}); + +byId("refresh-nfts").addEventListener("click", () => { + void loadOwnedNfts(true); +}); + +byId("close-nft-detail").addEventListener("click", () => { + selectedNft = undefined; + showScreen("nfts-screen"); +}); + +byId("transfer-nft").addEventListener("click", () => { + void action(async () => { + if (!selectedNft) throw new Error("No NFT or RWA is selected."); + openNftSendScreen(selectedNft); + }); +}); + +byId("nfts-previous").addEventListener("click", () => { + if (nftPage <= 1) return; + nftPage -= 1; + const loadId = ++nftLoadId; + renderNftGallery(); + void hydrateVisibleNfts(loadId); +}); + +byId("nfts-next").addEventListener("click", () => { + const totalPages = Math.max(1, Math.ceil(ownedNfts.length / NFT_PAGE_SIZE)); + if (nftPage >= totalPages) return; + nftPage += 1; + const loadId = ++nftLoadId; + renderNftGallery(); + void hydrateVisibleNfts(loadId); +}); + +byId("close-activity").addEventListener("click", () => { + if (walletStatus) showStatus(walletStatus); +}); + +byId("close-transaction").addEventListener("click", () => { + if (transactionReturnScreen === "nft" && selectedNft) { + renderNftDetails(selectedNft); + showScreen("nft-detail-screen"); + } else { + showScreen("activity-screen"); + } +}); + +byId("copy-transaction-txid").addEventListener("click", () => { + const txid = selectedTransaction?.txid; + if (!txid) return; + void navigator.clipboard.writeText(txid) + .then(() => { + notice.textContent = "Transaction ID copied."; + }) + .catch((error) => { + notice.textContent = errorText(error); + }); +}); + +byId("refresh-activity").addEventListener("click", () => { + void loadActivity(); +}); + +byId("refresh-balances").addEventListener("click", () => { + void loadWalletBalances(); +}); + +document.querySelectorAll("[data-token-filter]").forEach((button) => { + button.addEventListener("click", () => { + tokenFilter = button.dataset.tokenFilter === "all" ? "all" : "held"; + document.querySelectorAll("[data-token-filter]").forEach((candidate) => { + candidate.classList.toggle("active", candidate === button); + }); + renderTokenBalances(); + }); +}); + +byId("close-receive").addEventListener("click", () => { + if (walletStatus) showStatus(walletStatus); +}); + +byId("copy-receive-address").addEventListener("click", () => { + const address = byId("receive-address-value").textContent?.trim(); + if (!address) { + notice.textContent = "No active wallet address is available."; + return; + } + void navigator.clipboard.writeText(address) + .then(() => { + notice.textContent = "Wallet address copied."; + }) + .catch((error) => { + notice.textContent = errorText(error); + }); +}); + +byId("save-wallet-settings").addEventListener("click", () => { + void action(async () => { + const testnetApiUrl = byId("settings-testnet-api-url").value.replace(/\/+$/, ""); + const mainnetApiUrl = byId("settings-mainnet-api-url").value.replace(/\/+$/, ""); + if (!testnetApiUrl) throw new Error("A testnet API URL is required."); + for (const apiUrl of [testnetApiUrl, mainnetApiUrl].filter(Boolean)) { + const parsed = new URL(apiUrl); + if (parsed.protocol !== "https:" + && parsed.hostname !== "localhost" + && parsed.hostname !== "127.0.0.1") { + throw new Error("Contractless API URLs must use HTTPS."); + } + const originPermission = `${parsed.origin}/*`; + const alreadyGranted = await chrome.permissions.contains({ origins: [originPermission] }); + if (!alreadyGranted) { + const granted = await chrome.permissions.request({ origins: [originPermission] }); + if (!granted) throw new Error("Permission to contact this API endpoint was denied."); + } + } + + walletStatus = await send("save-settings", { + testnetApiUrl, + mainnetApiUrl, + autoLockMinutes: byId("settings-lock-timeout").value + }) as WalletStatus; + notice.textContent = "Settings saved."; + }); +}); + +document.querySelectorAll("[data-select-network]").forEach((button) => { + button.addEventListener("click", () => { + const network = button.dataset.selectNetwork; + if (!network || network === walletStatus?.selectedNetwork) return; + void action(async () => { + setAccountDrawer(false); + showStatus(await send("switch-network", { network }) as WalletStatus); + }); + }); +}); + +document.querySelectorAll("[data-backup-action]").forEach((button) => { + button.addEventListener("click", () => { + pendingBackupAction = button.dataset.backupAction as "image" | "private" | "print"; + setBackupKeyModal(true); + }); +}); + +byId("close-backup-key").addEventListener("click", () => setBackupKeyModal(false)); +byId("backup-key-backdrop").addEventListener("click", () => setBackupKeyModal(false)); + +byId("confirm-backup-key").addEventListener("click", () => { + const actionName = pendingBackupAction; + const password = byId("backup-key-input").value; + if (!actionName) return; + if (!password) { + notice.textContent = "Enter the active wallet encryption key."; + return; + } + + void action(async () => { + if (actionName === "image") { + const image = String(await send("export-private-key-image", { + password, + imagePassword: password + })); + const address = walletStatus?.address?.split(".")[0] ?? "contractless"; + downloadBase64Png(image, `${address}.wallet.png`); + setBackupKeyModal(false); + notice.textContent = "Wallet image downloaded."; + return; + } + + const backup = await send("reveal-private-key", { password }) as { + label: string; + address: string; + privateKey: string; + }; + setBackupKeyModal(false); + + if (actionName === "private") { + byId("revealed-private-key").value = backup.privateKey; + byId("private-key-result").hidden = false; + byId("private-key-result").scrollIntoView({ block: "nearest" }); + return; + } + + const printId = crypto.randomUUID(); + await chrome.storage.session.set({ + [`print-backup:${printId}`]: { + label: backup.label, + address: backup.address, + privateKey: backup.privateKey, + encryptionKey: password + } + }); + await chrome.windows.create({ + url: chrome.runtime.getURL(`print.html?id=${encodeURIComponent(printId)}`), + type: "popup", + width: 820, + height: 760 + }); + }); +}); + +byId("clear-private-key").addEventListener("click", clearRevealedPrivateKey); +byId("copy-private-key").addEventListener("click", () => { + const privateKey = byId("revealed-private-key").value; + if (!privateKey) return; + void navigator.clipboard.writeText(privateKey) + .then(() => { + notice.textContent = "Private key copied."; + }) + .catch((error) => { + notice.textContent = errorText(error); + }); +}); + +document.querySelectorAll(".reveal").forEach((button) => { + button.addEventListener("click", () => { + const input = byId(String(button.dataset.input)); + const showing = input.type === "text"; + input.type = showing ? "password" : "text"; + button.textContent = showing ? "Show" : "Hide"; + }); +}); + +byId("continue-create").addEventListener("click", () => { + try { + pendingPassword = requireValue( + byId("new-password").value, + "Enter an encryption key." + ); + byId("verify-password").value = ""; + showScreen("verify-screen"); + } catch (error) { + notice.textContent = errorText(error); + } +}); + +byId("create-wallet").addEventListener("click", () => { + const verification = byId("verify-password").value; + if (verification !== pendingPassword) { + notice.textContent = "The encryption keys do not match."; + return; + } + void action(async () => { + const password = pendingPassword; + const status = await send("create-wallet", { password }) as WalletStatus; + pendingPassword = ""; + byId("new-password").value = ""; + byId("verify-password").value = ""; + await openBackupScreen(status, password); + }, true).catch(() => showScreen("verify-screen", false)); +}); + +const walletImage = byId("wallet-image"); +walletImage.addEventListener("change", () => { + const file = walletImage.files?.[0]; + selectedImageBase64 = ""; + byId("image-file-name").textContent = file?.name ?? "Choose wallet image"; + if (!file) return; + void file.arrayBuffer() + .then((buffer) => { + selectedImageBase64 = bytesToBase64(new Uint8Array(buffer)); + }) + .catch((error) => { + notice.textContent = errorText(error); + }); +}); + +byId("import-image-form").addEventListener("submit", (event) => { + event.preventDefault(); + const password = byId("image-password").value; + try { + requireValue(password, "Enter the wallet image encryption key."); + requireValue(selectedImageBase64, "Choose a wallet image."); + } catch (error) { + notice.textContent = errorText(error); + return; + } + + void action(async () => { + const status = await send("import-wallet-image", { + imageBase64: selectedImageBase64, + imagePassword: password, + password + }) as WalletStatus; + currentPassword = password; + selectedImageBase64 = ""; + walletImage.value = ""; + byId("image-password").value = ""; + showStatus(status); + }, true).catch(() => showScreen("image-screen", false)); +}); + +byId("import-private").addEventListener("click", () => { + const privateKey = byId("private-key").value.trim(); + const password = byId("private-password").value; + try { + requireValue(privateKey, "Paste the private key."); + requireValue(password, "Enter a new encryption key."); + } catch (error) { + notice.textContent = errorText(error); + return; + } + + void action(async () => { + const status = await send("import-private-key", { privateKey, password }) as WalletStatus; + byId("private-key").value = ""; + byId("private-password").value = ""; + await openBackupScreen(status, password); + }, true).catch(() => showScreen("private-screen", false)); +}); + +byId("save-image").addEventListener("click", () => { + void action(async () => { + if (!backupImageBase64) throw new Error("The wallet image is not ready."); + const address = walletStatus?.address?.split(".")[0] ?? "contractless"; + downloadBase64Png(backupImageBase64, `${address}.wallet.png`); + const confirmation = byId("backup-confirmed"); + confirmation.disabled = false; + confirmation.checked = false; + byId("open-wallet").disabled = true; + }); +}); + +byId("backup-confirmed").addEventListener("change", (event) => { + byId("open-wallet").disabled = + !(event.currentTarget as HTMLInputElement).checked; +}); + +byId("open-wallet").addEventListener("click", () => { + currentPassword = ""; + backupImageBase64 = ""; + byId("wallet-image-preview").removeAttribute("src"); + if (walletStatus) showStatus(walletStatus); +}); + +byId("unlock-form").addEventListener("submit", (event) => { + event.preventDefault(); + const password = byId("unlock-password").value; + try { + requireValue(password, "Enter your encryption key."); + } catch (error) { + notice.textContent = errorText(error); + return; + } + void action(async () => { + const status = await send("unlock", { password }) as WalletStatus; + currentPassword = password; + byId("unlock-password").value = ""; + showStatus(status); + }, true).catch(() => showScreen("locked-screen", false)); +}); + +byId("approve-provider-approval").addEventListener("click", () => { + if (!pendingProviderApprovalId) return; + setApprovalProcessing("approve"); + void action(async () => { + const result = await send("resolve-provider-approval", { + id: pendingProviderApprovalId, + approved: true + }) as { remaining?: number }; + pendingProviderApprovalId = ""; + await showNextProviderApproval(result.remaining ?? 0, true); + }).catch(() => setApprovalProcessing(null)); +}); + +byId("reject-provider-approval").addEventListener("click", () => { + if (!pendingProviderApprovalId) return; + setApprovalProcessing("reject"); + void action(async () => { + const result = await send("resolve-provider-approval", { + id: pendingProviderApprovalId, + approved: false + }) as { remaining?: number }; + pendingProviderApprovalId = ""; + await showNextProviderApproval(result.remaining ?? 0, false); + }).catch(() => setApprovalProcessing(null)); +}); + +send("status") + .then((status) => showStatus(status as WalletStatus)) + .catch((error) => { + showScreen("create-screen"); + notice.textContent = errorText(error); + }); diff --git a/extension/src/print.css b/extension/src/print.css new file mode 100644 index 0000000..d2c3468 --- /dev/null +++ b/extension/src/print.css @@ -0,0 +1,73 @@ +* { + box-sizing: border-box; +} + +body { + max-width: 760px; + margin: 0 auto; + padding: 34px; + color: #111820; + font: 14px/1.45 Arial, Helvetica, sans-serif; +} + +header { + display: flex; + align-items: center; + gap: 15px; + padding-bottom: 18px; + border-bottom: 3px solid #2167a5; +} + +header img { + width: 58px; +} + +h1 { + margin: 0; + font-size: 24px; +} + +header p { + margin: 2px 0 0; + color: #5c6972; +} + +.warning { + margin: 22px 0; + border: 2px solid #9b1c1c; + padding: 12px; + color: #7a1111; + font-weight: 700; +} + +section { + margin-top: 18px; +} + +h2 { + margin: 0 0 7px; + color: #42515b; + font-size: 12px; + text-transform: uppercase; +} + +pre { + margin: 0; + overflow-wrap: anywhere; + white-space: pre-wrap; + border: 1px solid #aebac2; + padding: 11px; + font: 10px/1.35 Consolas, monospace; +} + +.print-error { + color: #9b1c1c; + font-weight: 700; +} + +@media print { + body { + max-width: none; + padding: 0; + } +} diff --git a/extension/src/print.html b/extension/src/print.html new file mode 100644 index 0000000..49e4901 --- /dev/null +++ b/extension/src/print.html @@ -0,0 +1,43 @@ + + + + + + Contractless Wallet Backup + + + +
+ +
+

Contractless Wallet Backup

+

Private recovery information

+
+
+ +

+ Keep this page private. Anyone with the private key and encryption key can + control this wallet. +

+ +
+

Wallet

+

+    
+
+

Address

+

+    
+
+

Private Key

+

+    
+
+

Encryption Key

+

+    
+ + + + + diff --git a/extension/src/print.ts b/extension/src/print.ts new file mode 100644 index 0000000..284e663 --- /dev/null +++ b/extension/src/print.ts @@ -0,0 +1,32 @@ +type PrintableBackup = { + label: string; + address: string; + privateKey: string; + encryptionKey: string; +}; + +async function initialize(): Promise { + const id = new URLSearchParams(location.search).get("id"); + if (!id) throw new Error("Missing printable wallet backup."); + + const storageKey = `print-backup:${id}`; + const stored = await chrome.storage.session.get(storageKey); + await chrome.storage.session.remove(storageKey); + const backup = stored[storageKey] as PrintableBackup | undefined; + if (!backup) throw new Error("The printable wallet backup has expired."); + + document.getElementById("wallet-label")!.textContent = backup.label; + document.getElementById("wallet-address")!.textContent = backup.address; + document.getElementById("wallet-private-key")!.textContent = backup.privateKey; + document.getElementById("wallet-encryption-key")!.textContent = backup.encryptionKey; + + setTimeout(() => { + window.focus(); + window.print(); + }, 150); +} + +initialize().catch((error: unknown) => { + document.getElementById("print-error")!.textContent = + error instanceof Error ? error.message : String(error); +}); diff --git a/extension/src/provider.ts b/extension/src/provider.ts new file mode 100644 index 0000000..d8a0ca5 --- /dev/null +++ b/extension/src/provider.ts @@ -0,0 +1,36 @@ +type Pending = { + resolve: (value: unknown) => void; + reject: (reason?: unknown) => void; +}; + +const pending = new Map(); + +window.addEventListener("message", (event) => { + if (event.source !== window || event.data?.source !== "contractless-wallet") return; + const request = pending.get(event.data.id); + if (!request) return; + pending.delete(event.data.id); + if (event.data.response?.ok) request.resolve(event.data.response.result); + else request.reject(new Error(event.data.response?.error ?? "Wallet request failed.")); +}); + +const provider = Object.freeze({ + isContractless: true, + request({ method, params }: { method: string; params?: unknown }): Promise { + const id = crypto.randomUUID(); + return new Promise((resolve, reject) => { + pending.set(id, { resolve, reject }); + window.postMessage( + { source: "contractless-page", id, method, params }, + window.location.origin + ); + }); + } +}); + +Object.defineProperty(window, "contractless", { + value: provider, + writable: false, + configurable: false +}); + diff --git a/extension/src/types.ts b/extension/src/types.ts new file mode 100644 index 0000000..dfe2524 --- /dev/null +++ b/extension/src/types.ts @@ -0,0 +1,48 @@ +export type ContractlessNetwork = "testnet" | "mainnet"; + +export type StoredSettings = { + selectedNetwork: ContractlessNetwork; + testnetApiUrl: string; + mainnetApiUrl: string; + apiUrl: string; + autoLockMinutes: number; +}; + +export type WalletStatus = { + exists: boolean; + unlocked: boolean; + activeWalletId?: string; + activeWalletLabel?: string; + address?: string; + publicKey?: string; + wallets: WalletSummary[]; + selectedNetwork: ContractlessNetwork; + networkName: "Testnet" | "Mainnet"; + networkSymbol: "CLTC" | "CLC"; + testnetApiUrl: string; + mainnetApiUrl: string; + apiUrl: string; + autoLockMinutes: number; +}; + +export type WalletSummary = { + id: string; + label: string; + address: string; + publicKey: string; + network: ContractlessNetwork; + active: boolean; +}; + +export type ProviderRequest = { + id: string; + method: string; + params?: unknown; + origin: string; +}; + +export type ApprovalRecord = ProviderRequest & { + createdAt: number; + risk: "safe" | "low" | "high"; + display?: Record; +}; diff --git a/extension/src/wallet.css b/extension/src/wallet.css new file mode 100644 index 0000000..f267e41 --- /dev/null +++ b/extension/src/wallet.css @@ -0,0 +1,2076 @@ +:root { + --blue: #2167a5; + --blue-deep: #174d7c; + --ink: #13202a; + --muted-white: rgb(255 255 255 / 90%); + --danger: #b9382e; + --danger-soft: #fff0ee; + --success: #1d8054; + --dark: #0c151d; + --surface: #111e28; + --surface-raised: #172936; + --surface-active: #1b3547; + --dark-line: #314957; + --dark-muted: #c4d0d7; + --accent: #55c5dc; + font: 14px/1.45 Arial, Helvetica, sans-serif; +} + +* { box-sizing: border-box; } + +body { + width: 390px; + min-width: 390px; + min-height: 600px; + margin: 0; + background: var(--blue); + color: white; +} + +button, +input, +textarea, +select { font: inherit; } + +button { cursor: pointer; } +button:disabled { cursor: not-allowed; } + +.wallet-shell { + position: relative; + width: 390px; + height: 600px; + overflow: hidden; + background: var(--blue); +} + +.screen { + width: 100%; + height: 100%; + background: var(--blue); +} + +.screen[hidden] { display: none; } + +.wallet-header { + height: 72px; + display: flex; + align-items: center; + gap: 11px; + padding: 0 20px; + border-bottom: 1px solid rgb(255 255 255 / 70%); +} + +.wallet-header img { + width: 37px; + filter: brightness(0) invert(1); +} + +.wallet-header div { display: grid; } +.wallet-header strong { font-size: 18px; } +.wallet-header small { color: var(--muted-white); font-size: 14px; } +.wallet-header > span { margin-left: auto; font-size: 13px; font-weight: 700; } + +.screen-content { padding: 28px 24px 22px; } +.screen-content.compact { padding-top: 18px; } + +.eyebrow { + font-size: 11px; + font-weight: 700; + text-transform: uppercase; +} + +h1 { + margin: 7px 0 9px; + font-size: 27px; + line-height: 1.12; + letter-spacing: 0; +} + +.intro { + margin: 0 0 24px; + color: var(--muted-white); + line-height: 1.5; +} + +label { + display: block; + margin-bottom: 8px; + font-size: 12px; + font-weight: 700; +} + +.input-row { + height: 49px; + display: grid; + grid-template-columns: 1fr auto; + border: 1px solid white; + background: white; +} + +.input-row:focus-within, +textarea:focus { + outline: 2px solid rgb(255 255 255 / 28%); + outline-offset: 2px; +} + +.input-row input { + min-width: 0; + border: 0; + padding: 0 13px; + color: var(--ink); + outline: 0; +} + +.reveal { + border: 0; + border-left: 1px solid #d9e0e5; + padding: 0 13px; + background: white; + color: var(--blue); + font-size: 11px; + font-weight: 700; +} + +textarea { + width: 100%; + min-height: 82px; + margin-bottom: 13px; + resize: none; + border: 1px solid white; + padding: 11px 13px; + color: var(--ink); + outline: 0; +} + +.note { + display: grid; + gap: 2px; + margin: 18px 0 23px; + border-left: 3px solid var(--accent); + padding: 13px; + background: var(--surface-raised); + color: white; + font-size: 12px; +} + +.note span { color: var(--dark-muted); } +.compact-note { margin: 12px 0 14px; padding: 10px 13px; } + +.warning { + margin: 18px 0 25px; + border-left: 3px solid var(--danger); + padding: 13px; + background: #321c20; + color: #ffbbb5; + font-size: 12px; + line-height: 1.4; +} + +.warning strong { display: block; } + +.primary, +.secondary { + width: 100%; + min-height: 48px; + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + border: 1px solid var(--accent); + background: var(--accent); + color: #08202b; + font-weight: 700; +} + +.primary span { font-size: 18px; } + +.secondary { + min-height: 42px; + margin-top: 9px; + background: transparent; + color: #dcecf3; + font-size: 12px; +} + +.secondary:disabled { + border-color: rgb(255 255 255 / 35%); + color: rgb(255 255 255 / 50%); +} + +.text-button { + width: 100%; + margin-top: 8px; + border: 0; + padding: 8px; + background: transparent; + color: var(--muted-white); +} + +.divider { + display: flex; + align-items: center; + gap: 10px; + margin: 17px 0 12px; + color: rgb(255 255 255 / 68%); + font-size: 12px; + text-transform: uppercase; +} + +.divider::before, +.divider::after { + height: 1px; + flex: 1; + background: rgb(255 255 255 / 30%); + content: ""; +} + +.file-heading { margin-top: 20px; } + +.file-picker { + min-height: 86px; + display: flex; + align-items: center; + gap: 13px; + margin-bottom: 24px; + border: 1px dashed rgb(255 255 255 / 72%); + padding: 14px; + background: rgb(255 255 255 / 10%); + cursor: pointer; +} + +.file-picker > span:last-child { display: grid; gap: 4px; } +.file-picker small { color: rgb(255 255 255 / 68%); font-weight: 400; } + +.file-icon { + width: 34px; + height: 34px; + display: grid; + flex: 0 0 34px; + place-items: center; + border: 1px solid white; + font-size: 22px; + font-weight: 400; +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip: rect(0 0 0 0); + clip-path: inset(50%); + white-space: nowrap; +} + +.loading-screen { + position: relative; +} + +.loading-brand { + position: absolute; + inset: 0; + display: grid; + place-content: center; + justify-items: center; + gap: 34px; +} + +.loading-brand img, +.large-logo { + width: 148px; + filter: brightness(0) invert(1); +} + +.spinner { + width: 28px; + aspect-ratio: 1; + border: 3px solid rgb(255 255 255 / 28%); + border-top-color: white; + border-radius: 50%; + animation: spin 0.85s linear infinite; +} + +.loading-screen > p { + position: absolute; + bottom: 35px; + width: 100%; + margin: 0; + color: rgb(255 255 255 / 72%); + font-size: 12px; + text-align: center; + text-transform: uppercase; +} + +@keyframes spin { to { transform: rotate(360deg); } } + +.success-mark { + width: 38px; + height: 38px; + display: grid; + place-items: center; + border-radius: 50%; + border: 1px solid #55c98a; + background: #123727; + color: #66dfa0; + font-size: 22px; + font-weight: 700; +} + +.image-preview { + position: relative; + height: 142px; + margin: 18px 0; + overflow: hidden; + border: 1px solid var(--dark-line); + background: var(--surface); +} + +.image-preview img { + width: 100%; + height: 100%; + display: block; + object-fit: contain; +} + +.confirmation { + display: grid; + grid-template-columns: 18px 1fr; + gap: 9px; + align-items: start; + margin: 14px 0; + color: rgb(255 255 255 / 84%); + font-size: 11px; + line-height: 1.35; +} + +.confirmation input { width: 16px; height: 16px; margin: 0; } + +.centered-content { + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + padding: 36px 28px; + text-align: center; +} + +.centered-content { align-items: stretch; } +.centered-content .large-logo { align-self: center; width: 92px; margin-bottom: 25px; } +.centered-content h1 { text-align: center; } +.centered-content .primary { margin-top: 22px; } + +.dashboard-header { + height: 66px; +} + +.account-button { + min-width: 105px; + max-width: 132px; + height: 34px; + display: flex; + align-items: center; + gap: 7px; + margin-left: auto; + overflow: hidden; + border: 1px solid rgb(255 255 255 / 45%); + padding: 0 10px; + background: transparent; + color: white; + font-size: 14px; +} + +.account-button > span:last-child { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.network-dot { + width: 7px; + height: 7px; + flex: 0 0 7px; + border-radius: 50%; + background: #63d18d; +} + +.assets-dashboard { + height: calc(100% - 66px); + overflow: hidden; +} + +.portfolio-balance { + padding: 22px 22px 19px; + border-bottom: 1px solid rgb(255 255 255 / 24%); + background: var(--blue-deep); +} + +.portfolio-balance > span { + color: var(--muted-white); + font-size: 14px; + text-transform: uppercase; +} + +.portfolio-balance > strong { + display: block; + margin-top: 4px; + font-size: 31px; + line-height: 1.2; +} + +.portfolio-balance > strong small { + font-size: 13px; +} + +.portfolio-balance p { + max-width: 100%; + margin: 7px 0 0; + overflow: hidden; + color: rgb(255 255 255 / 82%); + font-size: 13px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.wallet-actions { + height: 88px; + display: grid; + grid-template-columns: repeat(4, 1fr); + border-bottom: 1px solid rgb(255 255 255 / 24%); +} + +.wallet-actions button { + display: grid; + place-items: center; + align-content: center; + gap: 5px; + border: 0; + border-right: 1px solid rgb(255 255 255 / 18%); + background: transparent; + color: white; + font-size: 14px; + font-weight: 700; +} + +.wallet-actions button:last-child { + border-right: 0; +} + +.action-icon { + width: 29px; + height: 29px; + display: grid; + place-items: center; + border: 1px solid rgb(255 255 255 / 65%); + font-size: 16px; + font-weight: 400; +} + +.asset-ledger { + height: calc(100% - 209px); + background: var(--dark); + color: white; +} + +.asset-filter { + height: 42px; + display: grid; + grid-template-columns: 1fr 1fr; + border-bottom: 1px solid var(--dark-line); + padding: 5px 19px; + background: #0f1a22; +} + +.asset-filter button { + border: 0; + border-bottom: 2px solid transparent; + background: transparent; + color: var(--dark-muted); + font-size: 14px; + font-weight: 700; +} + +.asset-filter button.active { + border-bottom-color: var(--accent); + color: white; +} + +.asset-ledger-heading { + height: 45px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 19px; + border-bottom: 1px solid var(--dark-line); +} + +.asset-ledger-heading h1 { + margin: 0; + font-size: 19px; +} + +.asset-ledger-heading button { + width: 30px; + height: 30px; + border: 0; + background: transparent; + color: var(--accent); + font-size: 17px; +} + +.asset-row { + min-height: 66px; + display: grid; + grid-template-columns: 38px minmax(0, 1fr) auto; + gap: 11px; + align-items: center; + padding: 10px 19px; + border-bottom: 1px solid var(--dark-line); + background: var(--surface); +} + +.asset-symbol { + width: 36px; + height: 36px; + display: grid; + place-items: center; + background: var(--blue); + color: white; + font-size: 12px; + font-weight: 700; +} + +.contractless-symbol img { + width: 25px; + filter: brightness(0) invert(1); +} + +.asset-name, +.asset-value { + min-width: 0; + display: grid; + gap: 2px; +} + +.asset-name strong, +.asset-value strong { + overflow: hidden; + font-size: 16px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.asset-name span, +.asset-value span { + color: var(--dark-muted); + font-size: 13px; +} + +.asset-value { + max-width: 125px; + text-align: right; +} + +.token-list { + max-height: calc(100% - 148px); + overflow-y: auto; +} + +.empty-assets { + display: grid; + gap: 5px; + padding: 27px 20px; + color: var(--dark-muted); + text-align: center; +} + +.empty-assets strong { + color: #dce8ee; + font-size: 16px; +} + +.empty-assets span { + font-size: 14px; +} + +.receive-screen { + background: var(--dark); +} + +.receive-screen .wallet-header { + background: var(--blue); +} + +.send-screen, +.send-review-screen, +.send-success-screen { + background: var(--dark); + color: white; +} + +.send-screen .wallet-header, +.send-review-screen .wallet-header, +.send-success-screen .wallet-header { + background: var(--blue); +} + +.send-content, +.send-review-content, +.send-success-content { + height: calc(100% - 72px); + padding: 22px; + overflow-y: auto; +} + +.send-content { + display: grid; + align-content: start; + gap: 17px; +} + +.send-content label { + color: white; + font-size: 14px; +} + +.send-content input, +.send-content select { + width: 100%; + min-height: 48px; + border: 1px solid var(--dark-line); + padding: 0 13px; + background: var(--surface); + color: white; + outline: 0; +} + +.send-content input:focus, +.send-content select:focus { + border-color: var(--accent); +} + +.send-amount-row { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; +} + +.send-amount-row input { + border-right: 0; +} + +.send-amount-row > span { + min-width: 64px; + display: grid; + place-items: center; + border: 1px solid var(--dark-line); + background: var(--surface-raised); + color: var(--accent); + font-weight: 700; +} + +.field-note { + display: block; + margin-top: 7px; + color: var(--dark-muted); + font-size: 13px; +} + +.send-continue { + margin-top: 5px; +} + +.send-review-content { + padding: 0 22px 24px; +} + +.send-review-amount { + margin: 0 -22px 20px; + padding: 24px 22px; + background: var(--blue-deep); +} + +.send-review-amount > span { + color: var(--muted-white); + font-size: 13px; + text-transform: uppercase; +} + +.send-review-amount strong { + display: block; + margin-top: 5px; + font-size: 29px; +} + +.send-review-amount small { + color: var(--accent); + font-size: 15px; +} + +.send-review-details { + margin: 0 0 18px; +} + +.send-review-details > div { + padding: 12px 0; + border-bottom: 1px solid var(--dark-line); +} + +.send-review-details dt { + margin-bottom: 4px; + color: var(--dark-muted); + font-size: 13px; +} + +.send-review-details dd { + margin: 0; + overflow-wrap: anywhere; + color: white; + font-weight: 700; +} + +.signing-notice { + margin: 18px 0; + padding-left: 12px; + border-left: 3px solid var(--accent); + color: var(--dark-muted); +} + +.send-success-content { + text-align: center; +} + +.send-success-content p { + color: var(--dark-muted); +} + +.send-txid { + margin: 24px 0 14px; + padding: 14px; + border: 1px solid var(--dark-line); + background: var(--surface); + text-align: left; +} + +.send-txid span { + display: block; + margin-bottom: 5px; + color: var(--dark-muted); + font-size: 13px; +} + +.send-txid strong { + overflow-wrap: anywhere; +} + +.send-success-content .secondary { + margin-bottom: 10px; +} + +.receive-content { + height: calc(100% - 72px); + overflow-y: auto; + padding: 25px 24px 22px; + text-align: center; +} + +.receive-label { + color: var(--accent); + font-size: 12px; + font-weight: 700; + text-transform: uppercase; +} + +.receive-content h1 { + margin-top: 8px; +} + +.receive-content > p { + margin: 0 auto 20px; + color: var(--dark-muted); + font-size: 11px; + line-height: 1.45; +} + +.qr-frame { + width: 238px; + height: 238px; + display: grid; + place-items: center; + margin: 0 auto 19px; + border: 1px solid #708693; + padding: 8px; + background: white; +} + +.qr-frame canvas { + width: 220px; + height: 220px; + display: block; +} + +.receive-address { + display: grid; + gap: 6px; + border: 1px solid var(--dark-line); + padding: 13px; + background: var(--surface); + text-align: left; +} + +.receive-address span { + color: var(--dark-muted); + font-size: 11px; + font-weight: 700; + text-transform: uppercase; +} + +.receive-address strong { + overflow-wrap: anywhere; + color: #e5f0f5; + font: 12px/1.4 Consolas, monospace; +} + +.receive-copy { + margin-top: 13px; +} + +.nfts-screen, +.nft-detail-screen { + background: var(--dark); + color: white; +} + +.nfts-screen .wallet-header, +.nft-detail-screen .wallet-header { + background: var(--blue); +} + +.header-refresh { + width: 34px; + height: 34px; + display: grid; + place-items: center; + margin-left: auto; + border: 1px solid rgb(255 255 255 / 70%); + background: transparent; + color: white; + font-size: 18px; +} + +.nfts-content, +.nft-detail-content { + height: calc(100% - 72px); + overflow-y: auto; +} + +.nfts-summary { + min-height: 42px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 18px; + border-bottom: 1px solid var(--dark-line); + background: #0f1a22; + color: var(--dark-muted); + font-size: 13px; + font-weight: 700; + text-transform: uppercase; +} + +.nfts-summary span:first-child { + color: var(--accent); +} + +.nfts-list { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 1px; + padding: 1px; + background: var(--dark-line); +} + +.nft-card { + min-width: 0; + display: grid; + align-content: start; + border: 0; + padding: 0; + background: var(--surface); + color: white; + text-align: left; +} + +.nft-card:focus-visible { + outline: 2px solid var(--accent); + outline-offset: -2px; +} + +.nft-card-media { + width: 100%; + aspect-ratio: 1; + display: grid; + place-items: center; + overflow: hidden; + background: #17303e; + color: var(--accent); + font-size: 28px; + font-weight: 700; +} + +.nft-card-media img { + width: 100%; + height: 100%; + display: block; + object-fit: cover; +} + +.nft-card-identity { + min-height: 116px; + display: grid; + align-content: start; + gap: 3px; + padding: 11px 12px 13px; +} + +.nft-card-identity > span { + color: var(--accent); + font-size: 11px; + font-weight: 700; +} + +.nft-card-identity strong { + overflow: hidden; + font-size: 15px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.nft-card-identity small { + overflow: hidden; + color: var(--dark-muted); + font-size: 12px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.nft-card-identity b { + margin-top: 5px; + color: white; + font-size: 12px; +} + +.nft-card-identity em { + color: #e9c667; + font-size: 11px; + font-style: normal; +} + +.nfts-empty { + grid-column: 1 / -1; + min-height: 300px; + display: grid; + place-content: center; + gap: 6px; + padding: 30px; + background: var(--surface); + color: var(--dark-muted); + text-align: center; +} + +.nfts-empty strong { + color: white; + font-size: 17px; +} + +.nfts-pagination { + min-height: 52px; + display: grid; + grid-template-columns: 42px 1fr 42px; + align-items: center; + gap: 10px; + padding: 7px 14px; + border-top: 1px solid var(--dark-line); + background: #0f1a22; + text-align: center; +} + +.nfts-pagination[hidden] { + display: none; +} + +.nfts-pagination button { + width: 38px; + height: 38px; + border: 1px solid var(--dark-line); + background: var(--surface); + color: var(--accent); + font-size: 17px; +} + +.nfts-pagination button:disabled { + color: #61727c; +} + +.nfts-pagination span { + color: var(--dark-muted); + font-size: 13px; +} + +.nft-detail-media { + width: 100%; + aspect-ratio: 16 / 11; + display: grid; + place-items: center; + overflow: hidden; + border-bottom: 1px solid var(--dark-line); + background: #142934; +} + +.nft-detail-media img { + width: 100%; + height: 100%; + display: block; + object-fit: contain; +} + +.nft-detail-heading { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + gap: 15px; + align-items: end; + padding: 18px 20px 14px; +} + +.nft-detail-heading > div { + min-width: 0; +} + +.nft-detail-heading span { + color: var(--accent); + font-size: 11px; + font-weight: 700; +} + +.nft-detail-heading h1 { + overflow-wrap: anywhere; + margin: 4px 0 0; + font-size: 23px; +} + +.nft-detail-heading > strong { + color: #63d18d; + font-size: 13px; + text-align: right; +} + +.nft-detail-description { + margin: 0; + padding: 0 20px 17px; + color: var(--dark-muted); + font-size: 14px; + line-height: 1.5; +} + +.nft-detail-attributes { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 7px; + padding: 0 20px 18px; +} + +.nft-detail-attributes[hidden] { + display: none; +} + +.nft-detail-attributes > div { + min-width: 0; + display: grid; + gap: 2px; + border: 1px solid var(--dark-line); + padding: 9px; + background: var(--surface-raised); +} + +.nft-detail-attributes span { + overflow: hidden; + color: var(--dark-muted); + font-size: 11px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.nft-detail-attributes strong { + overflow-wrap: anywhere; + font-size: 13px; +} + +.nft-detail-fields { + margin: 0; + border-top: 1px solid var(--dark-line); +} + +.nft-detail-fields > div { + display: grid; + gap: 4px; + padding: 12px 20px; + border-bottom: 1px solid var(--dark-line); +} + +.nft-detail-fields dt { + color: var(--dark-muted); + font-size: 12px; +} + +.nft-detail-fields dd { + margin: 0; + overflow-wrap: anywhere; + color: white; + font: 12px/1.45 Consolas, monospace; +} + +.nft-detail-actions { + padding: 18px 20px 0; +} + +.nft-provenance { + padding: 18px 20px 25px; +} + +.nft-provenance h2 { + margin: 0 0 11px; + font-size: 16px; +} + +.nft-provenance p { + color: var(--dark-muted); +} + +.nft-history-row { + width: 100%; + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + gap: 3px 12px; + border: 0; + padding: 10px 0; + border-bottom: 1px solid var(--dark-line); + background: transparent; + color: white; + text-align: left; +} + +.nft-history-row:hover, +.nft-history-row:focus-visible { + background: var(--surface-raised); +} + +.nft-history-row:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; +} + +.nft-history-row strong { + font-size: 13px; +} + +.nft-history-row span { + color: var(--dark-muted); + font-size: 12px; + text-align: right; +} + +.nft-history-row small { + grid-column: 1 / -1; + color: var(--accent); + font: 11px Consolas, monospace; +} + +.activity-screen { + background: var(--dark); + color: white; +} + +.activity-screen .wallet-header { + background: var(--blue); +} + +.activity-content { + height: calc(100% - 72px); + overflow-y: auto; +} + +.activity-summary { + min-height: 42px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 18px; + border-bottom: 1px solid var(--dark-line); + background: #0f1a22; + color: var(--dark-muted); + font-size: 13px; + text-transform: uppercase; +} + +.activity-summary strong { + color: var(--accent); + font-size: 13px; +} + +.activity-summary > div { + display: flex; + align-items: center; + gap: 8px; +} + +.activity-summary button { + width: 30px; + height: 30px; + border: 1px solid var(--dark-line); + background: transparent; + color: var(--accent); + font-size: 17px; +} + +.activity-list { + background: var(--surface); +} + +.activity-row { + width: 100%; + min-height: 98px; + display: grid; + grid-template-columns: 31px minmax(0, 1fr) auto; + gap: 10px; + align-items: center; + padding: 11px 17px; + border-bottom: 1px solid var(--dark-line); + border-top: 0; + border-right: 0; + border-left: 0; + background: transparent; + color: white; + text-align: left; +} + +.activity-row:focus-visible { + outline: 2px solid var(--accent); + outline-offset: -2px; +} + +.activity-marker { + width: 29px; + height: 29px; + display: grid; + place-items: center; + border: 1px solid #607987; + color: var(--accent); + font-size: 13px; + font-weight: 700; +} + +.activity-marker.incoming, +.activity-status .incoming { + color: #63d18d; +} + +.activity-marker.outgoing, +.activity-status .outgoing { + color: white; +} + +.activity-details, +.activity-status { + min-width: 0; + display: grid; + gap: 2px; +} + +.activity-details strong { + overflow: hidden; + font-size: 16px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.activity-details span { + color: #c1d0d8; + font: 13px Consolas, monospace; +} + +.activity-details small, +.activity-status span { + color: var(--dark-muted); + font-size: 13px; +} + +.activity-status { + max-width: 132px; + text-align: right; +} + +.activity-status strong { + font-size: 14px; + white-space: nowrap; +} + +.activity-status .confirmed { + color: #63d18d; +} + +.activity-status .pending { + color: #e9c667; +} + +.activity-empty { + display: grid; + gap: 6px; + padding: 42px 24px; + color: var(--dark-muted); + font-size: 14px; + text-align: center; +} + +.activity-empty strong { + color: #dce8ee; + font-size: 16px; +} + +.activity-error { + color: #ffaaa4; +} + +.transaction-screen { + background: var(--dark); + color: white; +} + +.transaction-screen .wallet-header { + background: var(--blue); +} + +.transaction-confirmed { + color: #84e7aa; +} + +.transaction-pending { + color: #f1d27b; +} + +.transaction-content { + height: calc(100% - 72px); + overflow-y: auto; + padding-bottom: 24px; +} + +.transaction-identity { + display: grid; + gap: 13px; + padding: 18px; + border-bottom: 1px solid var(--dark-line); + background: var(--surface-raised); +} + +.transaction-identity > div { + display: grid; + gap: 7px; +} + +.transaction-identity span, +.transaction-field span { + color: var(--dark-muted); + font-size: 12px; + font-weight: 700; + text-transform: uppercase; +} + +.transaction-identity strong { + overflow-wrap: anywhere; + color: white; + font: 13px/1.55 Consolas, monospace; +} + +.transaction-identity button { + min-height: 40px; + border: 1px solid var(--accent); + background: transparent; + color: var(--accent); + font-size: 14px; + font-weight: 700; +} + +.transaction-section { + border-top: 1px solid var(--dark-line); +} + +.transaction-section h2 { + margin: 0; + padding: 16px 18px 10px; + font-size: 16px; +} + +.transaction-fields { + display: grid; +} + +.transaction-field { + display: grid; + gap: 6px; + padding: 13px 18px; + border-bottom: 1px solid var(--dark-line); + background: var(--surface); +} + +.transaction-field strong { + overflow-wrap: anywhere; + color: white; + font-size: 15px; + font-weight: 600; + line-height: 1.45; +} + +.transaction-technical { + border-top: 1px solid var(--dark-line); +} + +.transaction-technical summary { + padding: 17px 18px; + color: var(--accent); + font-size: 15px; + font-weight: 700; + cursor: pointer; +} + +.technical-field strong { + font: 12px/1.55 Consolas, monospace; + word-break: break-all; +} + +.drawer-backdrop { + position: absolute; + inset: 0; + z-index: 10; + background: rgb(9 26 39 / 54%); +} + +.account-drawer { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 11; + width: 338px; + display: flex; + flex-direction: column; + border-left: 1px solid var(--dark-line); + background: var(--dark); + color: white; + transform: translateX(100%); + transition: transform 180ms ease-out; +} + +.account-drawer.open { + transform: translateX(0); +} + +.drawer-header { + height: 72px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 18px; + border-bottom: 1px solid var(--dark-line); + background: var(--blue); + color: white; +} + +.drawer-header > div { + display: grid; + gap: 2px; +} + +.drawer-header strong { + font-size: 19px; +} + +.drawer-header span { + color: var(--muted-white); + font-size: 14px; +} + +.drawer-header button { + width: 34px; + height: 34px; + border: 1px solid rgb(255 255 255 / 45%); + background: transparent; + color: white; + font-size: 23px; + line-height: 1; +} + +.drawer-section { + max-height: 244px; + overflow-y: auto; + padding: 17px 15px 14px; + border-bottom: 1px solid var(--dark-line); +} + +.drawer-label { + display: block; + margin: 0 3px 8px; + color: var(--dark-muted); + font-size: 13px; + font-weight: 700; + text-transform: uppercase; +} + +.known-address { + width: 100%; + min-height: 58px; + display: grid; + grid-template-columns: minmax(0, 1fr) 30px; + gap: 4px; + align-items: center; + border: 1px solid var(--dark-line); + padding: 4px; + background: var(--surface); + color: white; +} + +.known-address + .known-address { + margin-top: 7px; +} + +.known-address.active-address { + border-color: var(--accent); + background: var(--surface-active); +} + +.address-select { + min-width: 0; + min-height: 48px; + display: grid; + grid-template-columns: 36px minmax(0, 1fr) 20px; + gap: 10px; + align-items: center; + border: 0; + padding: 5px 6px; + background: transparent; + color: white; + text-align: left; +} + +.rename-address { + width: 28px; + height: 34px; + border: 0; + background: transparent; + color: var(--accent); + font-size: 16px; +} + +.address-avatar { + width: 34px; + height: 34px; + display: grid; + place-items: center; + background: #204f70; +} + +.address-avatar img { + width: 24px; + filter: brightness(0) invert(1); +} + +.address-details { + min-width: 0; + display: grid; + gap: 2px; +} + +.address-details strong { + font-size: 15px; +} + +.address-details small { + overflow: hidden; + color: var(--dark-muted); + font-size: 13px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.selected-mark { + color: var(--success); + font-size: 14px; + font-weight: 700; +} + +.drawer-navigation { + display: grid; + padding: 8px 0; +} + +.drawer-navigation button { + min-height: 72px; + display: grid; + grid-template-columns: 34px minmax(0, 1fr) 16px; + gap: 10px; + align-items: center; + border: 0; + border-bottom: 1px solid var(--dark-line); + padding: 9px 18px; + background: transparent; + color: white; + text-align: left; +} + +.drawer-navigation button > span:nth-child(2) { + display: grid; + gap: 2px; +} + +.drawer-navigation strong { + font-size: 16px; +} + +.drawer-navigation small { + color: var(--dark-muted); + font-size: 13px; +} + +.menu-icon { + width: 32px; + height: 32px; + display: grid; + place-items: center; + border: 1px solid #607987; + color: var(--accent); + font-size: 15px; + font-weight: 700; +} + +.menu-arrow { + color: var(--dark-muted); + font-size: 20px; + text-align: right; +} + +.drawer-lock { + min-height: 46px; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + margin: auto 15px 15px; + border: 1px solid var(--dark-line); + background: var(--surface-raised); + color: #dce8ee; + font-size: 14px; + font-weight: 700; +} + +.header-back { + width: 34px; + height: 34px; + border: 1px solid rgb(255 255 255 / 45%); + background: transparent; + color: white; + font-size: 18px; +} + +.settings-screen { + background: var(--dark); + color: white; +} + +.settings-screen .wallet-header { + background: var(--blue); + color: white; +} + +.settings-content { + height: calc(100% - 72px); + overflow-y: auto; + padding-bottom: 20px; +} + +.settings-group { + padding: 18px 20px; + border-bottom: 1px solid var(--dark-line); + background: var(--surface); +} + +.settings-heading { + display: grid; + gap: 3px; + margin-bottom: 15px; +} + +.settings-heading strong { + font-size: 13px; +} + +.settings-heading span { + color: var(--dark-muted); + font-size: 12px; + line-height: 1.4; +} + +.settings-group label { + color: #b7c6ce; + font-size: 12px; + text-transform: uppercase; +} + +.settings-group input, +.settings-group select { + width: 100%; + height: 44px; + border: 1px solid #8699a5; + padding: 0 11px; + background: white; + color: var(--ink); + outline: 0; +} + +.settings-group input:focus, +.settings-group select:focus { + border-color: var(--blue); + outline: 2px solid rgb(33 103 165 / 14%); +} + +.settings-save { + width: calc(100% - 40px); + margin: 16px 20px; + border-color: var(--accent); + background: var(--accent); + color: #08202b; +} + +.backup-settings { + padding-right: 0; + padding-left: 0; +} + +.backup-settings .settings-heading { + padding: 0 20px; +} + +.settings-action { + width: 100%; + min-height: 61px; + display: grid; + grid-template-columns: 34px minmax(0, 1fr) 16px; + gap: 10px; + align-items: center; + border: 0; + border-top: 1px solid var(--dark-line); + padding: 9px 20px; + background: transparent; + color: white; + text-align: left; +} + +.settings-action:last-child { + border-bottom: 1px solid var(--dark-line); +} + +.settings-action > span:nth-child(2) { + display: grid; + gap: 2px; +} + +.settings-action strong { + font-size: 14px; +} + +.settings-action small { + color: var(--dark-muted); + font-size: 11px; +} + +.settings-action > span:last-child { + color: var(--dark-muted); + font-size: 20px; +} + +.settings-action-icon { + width: 32px; + height: 32px; + display: grid; + place-items: center; + border: 1px solid #607987; + color: var(--accent); + font-size: 15px; + font-weight: 700; +} + +.private-key-result { + margin: 16px 20px 0; + border: 1px solid var(--dark-line); + padding: 13px; + background: var(--surface-raised); +} + +.private-key-result > div { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 9px; +} + +.private-key-result > div > strong { + font-size: 11px; + text-transform: uppercase; +} + +.private-key-result > div > button { + width: 28px; + height: 28px; + border: 0; + background: transparent; + color: var(--dark-muted); + font-size: 19px; +} + +.private-key-result textarea { + height: 95px; + min-height: 95px; + margin: 0 0 10px; + border: 1px solid #8699a5; + padding: 9px; + background: white; + color: var(--ink); + font-size: 11px; +} + +.private-key-result .secondary { + border-color: var(--accent); + color: var(--accent); +} + +.modal-backdrop { + position: absolute; + inset: 0; + z-index: 30; + background: rgb(9 26 39 / 68%); +} + +.backup-key-modal { + position: absolute; + top: 50%; + right: 20px; + left: 20px; + z-index: 31; + border: 1px solid white; + background: var(--blue); + color: white; + transform: translateY(-50%); +} + +.backup-key-modal > header { + min-height: 65px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 12px 15px; + border-bottom: 1px solid rgb(255 255 255 / 40%); +} + +.backup-key-modal > header > div { + display: grid; + gap: 2px; +} + +.backup-key-modal > header strong { + font-size: 13px; +} + +.backup-key-modal > header span { + color: var(--muted-white); + font-size: 11px; +} + +.backup-key-modal > header button { + width: 30px; + height: 30px; + border: 1px solid rgb(255 255 255 / 45%); + background: transparent; + color: white; + font-size: 20px; +} + +.backup-key-modal > div { + padding: 17px 15px; +} + +.backup-key-modal .primary { + margin-top: 16px; +} + +#notice { + position: absolute; + right: 18px; + bottom: 14px; + left: 18px; + z-index: 40; + margin: 0; + padding: 10px 12px; + border: 1px solid #8d4448; + border-left: 3px solid #ff7168; + background: #321c20; + color: #ffc0bb; + font-size: 11px; +} + +#notice:empty { display: none; } + +.provider-approval-screen { + display: flex; + flex-direction: column; +} + +.provider-approval-screen .screen-content { + min-height: 0; + flex: 1; + overflow-y: auto; + padding-bottom: 18px; +} + +.approval-context { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.approval-context .eyebrow { + min-width: 0; + overflow-wrap: anywhere; +} + +.risk-label { + flex: 0 0 auto; + padding: 5px 8px; + border: 1px solid currentColor; + font-size: 11px; + font-weight: 700; + text-transform: uppercase; +} + +.risk-safe { + background: #123b2d; + color: #63e5a9; +} + +.risk-low { + background: #403612; + color: #ffe16c; +} + +.risk-high { + background: #481f24; + color: #ff8b8b; +} + +.approval-details { + display: grid; + grid-template-columns: minmax(100px, 0.8fr) minmax(0, 1.4fr); + margin: 20px 0; + border: 1px solid #315466; + background: #091923; +} + +.approval-details dt, +.approval-details dd { + min-width: 0; + margin: 0; + padding: 11px 12px; + border-bottom: 1px solid #203d4c; + overflow-wrap: anywhere; +} + +.approval-details dt { + color: #85dce8; + font-size: 12px; + font-weight: 700; + text-transform: capitalize; +} + +.approval-details dd { + color: #f5f9fb; + font: 13px/1.45 Arial, Helvetica, sans-serif; + white-space: pre-wrap; +} + +.approval-details dt:last-of-type, +.approval-details dd:last-of-type { + border-bottom: 0; +} + +.approval-actions { + display: grid; + flex: 0 0 auto; + grid-template-columns: 1fr 1fr; + gap: 10px; + padding: 14px 24px 18px; + border-top: 1px solid rgb(255 255 255 / 35%); + background: var(--blue-deep); +} + +.approval-actions button { + min-height: 48px; + margin: 0; +} + +.approval-actions button.is-processing::before { + width: 15px; + height: 15px; + content: ""; + border: 2px solid currentcolor; + border-right-color: transparent; + border-radius: 50%; + animation: approval-spin 700ms linear infinite; +} + +.approval-actions button:disabled { + opacity: 0.72; +} + +@keyframes approval-spin { + to { transform: rotate(360deg); } +} + +.network-choice { + display: grid; + grid-template-columns: 1fr 1fr; + width: 100%; + margin: 0 0 18px; + border: 1px solid #5b8caf; + background: #0a1b27; +} + +.network-choice button { + min-height: 42px; + border: 0; + border-right: 1px solid #315466; + background: transparent; + color: #b9cfdb; + font: 700 13px/1 Arial, Helvetica, sans-serif; +} + +.network-choice button:last-child { border-right: 0; } + +.network-choice button.active { + background: #43d6e8; + color: #06151e; +} + +.drawer-network { margin: 8px 0 0; } + +.settings-help { + display: block; + margin-top: 8px; + color: #a9c2cf; + font-size: 12px; + line-height: 1.45; +} diff --git a/extension/tsconfig.json b/extension/tsconfig.json new file mode 100644 index 0000000..1c7ad3a --- /dev/null +++ b/extension/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "noEmit": true, + "lib": ["ESNext", "DOM"], + "types": ["chrome", "node"] + }, + "include": ["src/**/*.ts", "vite.config.ts"] +} diff --git a/extension/vite.config.ts b/extension/vite.config.ts new file mode 100644 index 0000000..07c9127 --- /dev/null +++ b/extension/vite.config.ts @@ -0,0 +1,42 @@ +import { defineConfig } from "vite"; +import { viteStaticCopy } from "vite-plugin-static-copy"; +import { resolve } from "node:path"; + +export default defineConfig(({ mode }) => { + const browser = mode === "firefox" ? "firefox" : "chrome"; + + return { + root: "src", + build: { + outDir: `../dist/${browser}`, + emptyOutDir: true, + rollupOptions: { + input: { + popup: resolve(__dirname, "src/popup.html"), + "import-wallet": resolve(__dirname, "src/import-wallet.html"), + print: resolve(__dirname, "src/print.html"), + background: resolve(__dirname, "src/background.ts"), + content: resolve(__dirname, "src/content.ts"), + provider: resolve(__dirname, "src/provider.ts") + }, + output: { + entryFileNames: "[name].js", + chunkFileNames: "chunks/[name]-[hash].js", + assetFileNames: "assets/[name]-[hash][extname]" + } + } + }, + plugins: [ + viteStaticCopy({ + targets: [ + { + src: `manifest.${browser}.json`, + dest: ".", + rename: "manifest.json" + }, + { src: "assets/contractless-logo*.png", dest: "." } + ] + }) + ] + }; +}); diff --git a/sdk/README.md b/sdk/README.md new file mode 100644 index 0000000..b1abe19 --- /dev/null +++ b/sdk/README.md @@ -0,0 +1,310 @@ +# Contractless Browser Wallet JavaScript + +`contractless.js` is the website client for the Contractless browser wallet. +It detects the injected wallet provider and manages a temporary, +origin-bound application session. + +## Application ID + +Choose a readable application ID containing 5 to 32 letters, numbers, +underscores, or hyphens, and keep it unchanged for the lifetime of the +application. It only needs to distinguish applications using the same website +origin. The wallet binds the ID to the website's actual browser origin, so the +same ID used by a different website does not share access. + +Example: + +```text +example-marketplace +``` + +## Installation + +Download `contractless.js` with the application and import it as an ES module: + +```js +import { + ContractlessWallet, + ContractlessWalletNotInstalledError +} from "./contractless.js"; + +const wallet = new ContractlessWallet({ + appId: "example-marketplace", + api: { + url: "https://api.contractless.dev", + address: "dedicated-application-address.cltc", + publicKey: "dedicated-application-public-key", + signature: "precomputed-signature-for-aced", + apiKey: "optional-public-quota-key" + } +}); +``` + +## Detecting The Wallet + +```js +if (!wallet.isInstalled()) { + // Show the application's Contractless Wallet installation link. +} +``` + +The provider is injected at document start. Applications that execute +immediately can use `waitForContractlessWallet()` before showing an +installation notice. + +## Connecting + +Use a server-generated nonce when the signed proof will authenticate a user +with an application server: + +```js +const connection = await wallet.connect({ + message: "Sign in to Example Marketplace", + timestamp: Math.floor(Date.now() / 1000), + nonce: "4f3c2a1b9d8e7f60514233445566778899aabbccddeeff001122334455667788" +}); + +console.log(connection.address); +console.log(connection.signature); +console.log(connection.proof); +``` + +After approval, the wallet generates a 256-bit access key. The library stores +it in the website tab's `sessionStorage`. The matching authorization remains +inside extension session storage. + +## Reading Balances + +Applications can request every balance owned by the connected wallet: + +```js +const balances = await wallet.balances(); +``` + +Use `getBalance()` when only one base coin, token, NFT, or RWA balance is +needed. Missing assets return a zero balance instead of an error: + +```js +const cltc = await wallet.getBalance({ asset: "CLTC" }); +const nft = await wallet.getBalance({ asset: "FLOWERPRINCESS", nftSeries: 0 }); + +console.log(cltc.balance, cltc.balance_atomic); +``` + +Applications may use these methods to warn about an insufficient balance before +requesting a transaction. The wallet still performs its own checks, and the +node remains the final authority because balances can change between lookup +and broadcast. + +## Transaction Errors + +Rejected transaction Promises contain the useful verification reason returned +by the node, such as an insufficient balance, an unregistered participant, or +a fee below the required minimum. Applications should display the Error +message to the user instead of replacing it with a generic failure notice. + +The wallet checks directly named participants before showing transfer, swap, +and loan approvals. This catches unregistered receivers and counterparties +before the user is asked to sign. + +The key is reusable for that wallet unlock session. It is not consumed after +one request. + +The session becomes invalid when: + +- The Contractless wallet locks. +- The active wallet changes. +- The configured wallet lock period expires. +- The application calls `disconnect()`. +- The website tab's session storage is cleared. + +The SDK removes the stored website session as soon as its expiration time is +reached. Applications can update their interface when that happens: + +```js +window.addEventListener("contractless:sessionExpired", () => { + showWalletAsDisconnected(); +}); +``` + +If an application later requests an account, signature, or transaction without +a usable session, the SDK automatically opens the wallet connection flow. A +locked wallet asks the user to unlock it, creates a new session after approval, +and then continues the original request. The website never reuses an expired +access key. + +## Reading The Connected Address + +```js +const accounts = await wallet.accounts(); +``` + +An empty array means the application no longer has a valid wallet session. + +## Signing A Text Message + +```js +const proof = await wallet.signMessage({ + message: "Confirm profile ownership", + nonce: "1188aabbccddeeff00112233445566778899aabbccddeeff00112233445566" +}); +``` + +Text signatures are domain-separated from transactions and cannot move +wallet assets. Website connection and text-signature messages are limited to +75 UTF-8 bytes. The wallet calculates this limit from bytes rather than visible +character count. + +## Sending A Transaction + +```js +const result = await wallet.sendTransaction({ + transaction: { + txtype: 2, + time: Math.floor(Date.now() / 1000), + value: "2500000000", + coin: "CLTC ", + nft_series: 0, + sender: "sender-address.cltc", + receiver: "receiver-address.cltc", + txfee: "25000000" + } +}); + +console.log(result.txid); +console.log(result.bytes); +``` + +Applications must provide the complete transaction object. The wallet +validates and serializes that object, calculates its hash locally, displays +the signed fields, and signs only the hash it calculated. After approval, the +wallet broadcasts the signed bytes through its configured Contractless API. +The transaction ID and signed bytes are returned only after that API accepts +the broadcast. Arbitrary hash signing is not exposed. + +## Swaps And Loan Creation + +Swaps and loan creation use two independent wallet signatures. The application +sends the exact same unsigned transaction to two separate computers. Neither +party receives or validates the other party's signature before signing. + +The first party's browser runs: + +```js +const result = await wallet.signDualTransaction({ + transaction, + signerSlot: 1 +}); + +await sendSignatureToApplication({ + transactionId: result.txid, + result +}); +``` + +The second party's browser independently runs: + +```js +const result = await wallet.signDualTransaction({ + transaction, + signerSlot: 2 +}); + +await sendSignatureToApplication({ + transactionId: result.txid, + result +}); +``` + +Each response contains the same transaction hash, canonical unsigned data, +unsigned wire-byte prefix, the signer's slot, public key, and that wallet's +signature. `sendSignatureToApplication()` represents an application endpoint, +database, matchmaking service, or other shared coordination layer. It is not a +wallet SDK function. + +After the shared application has received both results, it returns them to one +client for final verification, assembly, and broadcast: + +```js +const { transaction, signer1, signer2 } = await getCompletedSigningRequest( + transactionId +); + +const complete = await wallet.completeDualTransaction({ + transaction, + signer1, + signer2 +}); + +const broadcast = await wallet.broadcastTransaction({ + bytes: complete.bytes_hex +}); + +console.log(complete.hash); +console.log(complete.bytes_hex); +console.log(broadcast); +``` + +The final client does not sign again. It only invokes the browser core to +compare the transaction data, verify both Falcon signatures, and construct the +complete bytes. An application backend implementing the same Contractless +codec may instead perform verification, assembly, and broadcasting itself. + +For swaps, signer slot 1 is `sender1` and signer slot 2 is `sender2`. For loan +creation, signer slot 1 is the `lender` and signer slot 2 is the `borrower`. +The application may store pending details locally, but it must never store a +wallet private key or encryption key. + +`completeDualTransaction()` checks that both wallets signed the same hash, +that each public key belongs to the address assigned to its signer slot, and +that both Falcon signatures are valid. It does not ask either wallet to sign +again. + +## Direct API Identity + +An application can use a dedicated, registered, zero-balance wallet identity +for public API lookups and broadcasting already signed transactions. Generate +its reusable handshake signature with the node CLI: + +```bash +./sign_message "aced" +``` + +Configure that address, its public key, and the returned signature in the SDK +constructor as shown above. This proof permits the API and node handshake; it +does not permit the application to sign transactions or spend from the +identity. + +Applications can use the same identity for API lookups: + +```js +const balance = await wallet.apiRequest("/api/v1/balances/base", { + query: { + address: userAddress, + coin: "CLTC" + } +}); +``` + +`apiRequest()` accepts any enabled `/api/v1` route, optional query values, an +HTTP method, and an optional JSON body. It returns the API's `data` value and +throws when the API rejects the request. + +These values are visible to anyone who can inspect the website. Use a dedicated +address that holds no funds. An API key embedded in browser JavaScript is also +public and should only identify traffic or select a quota. Services requiring +a secret API key or HMAC secret must proxy API requests through a backend. + +Contractless API and PHP integration source: + +- https://contractless.dev/contractless/Contractless-PHP-API +- https://contractless.dev/contractless/Contractless-PHP-RPC + +## Disconnecting + +```js +await wallet.disconnect(); +``` + +Applications must never ask users to paste private keys, wallet files, +encryption keys, or access keys into a website. diff --git a/sdk/contractless.js b/sdk/contractless.js new file mode 100644 index 0000000..1388a8a --- /dev/null +++ b/sdk/contractless.js @@ -0,0 +1,399 @@ +const APP_ID_PATTERN = /^[A-Za-z0-9_-]{5,32}$/; +const SESSION_PREFIX = "contractless:web3:"; + +export class ContractlessWalletNotInstalledError extends Error { + constructor() { + super( + "Contractless Wallet is not installed. Install the browser wallet before continuing." + ); + this.name = "ContractlessWalletNotInstalledError"; + this.code = "CONTRACTLESS_WALLET_NOT_INSTALLED"; + } +} + +function randomHex(byteLength) { + const bytes = crypto.getRandomValues(new Uint8Array(byteLength)); + return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join(""); +} + +function provider() { + return window.contractless; +} + +function websiteMessage(value, label) { + const message = String(value ?? "").trim(); + if (!message || new TextEncoder().encode(message).length > 75) { + throw new TypeError(`${label} must contain 1 to 75 bytes.`); + } + return message; +} + +export function isContractlessWalletInstalled() { + return Boolean(provider()?.isContractless && typeof provider()?.request === "function"); +} + +export async function waitForContractlessWallet(timeoutMs = 1_500) { + const expiresAt = Date.now() + timeoutMs; + while (Date.now() < expiresAt) { + if (isContractlessWalletInstalled()) return true; + await new Promise((resolve) => setTimeout(resolve, 25)); + } + return isContractlessWalletInstalled(); +} + +export class ContractlessWallet { + constructor({ appId, api = null }) { + if (!APP_ID_PATTERN.test(String(appId ?? ""))) { + throw new TypeError( + "appId must contain 5 to 32 URL-safe characters and must never change for the application." + ); + } + this.appId = appId; + this.api = api; + this.storageKey = `${SESSION_PREFIX}${location.origin}:${appId}`; + this.expirationTimer = undefined; + this.scheduleStoredSessionExpiration(); + } + + isInstalled() { + return isContractlessWalletInstalled(); + } + + session() { + let stored; + try { + stored = sessionStorage.getItem(this.storageKey); + } catch { + return null; + } + if (!stored) return null; + try { + const session = JSON.parse(stored); + if ( + session.origin !== location.origin + || session.appId !== this.appId + || typeof session.accessKey !== "string" + || session.accessKey.length !== 64 + || !Number.isFinite(Number(session.sessionExpiresAt)) + || Number(session.sessionExpiresAt) <= Date.now() + ) { + this.clearSession({ expired: true }); + return null; + } + this.scheduleSessionExpiration(session); + return session; + } catch { + this.clearSession(); + return null; + } + } + + async connect({ message, timestamp, nonce } = {}) { + await this.requireProvider(); + const connectionMessage = websiteMessage( + message ?? `Connect to ${location.origin}`, + "Connection message" + ); + const response = await provider().request({ + method: "contractless_connect", + params: { + origin: location.origin, + appId: this.appId, + message: connectionMessage, + timestamp: Number(timestamp ?? Math.floor(Date.now() / 1_000)), + nonce: String(nonce ?? randomHex(32)) + } + }); + const session = { + origin: location.origin, + appId: this.appId, + address: response.address, + publicKey: response.publicKey, + accessKey: response.accessKey, + sessionExpiresAt: response.sessionExpiresAt + }; + sessionStorage.setItem(this.storageKey, JSON.stringify(session)); + this.scheduleSessionExpiration(session); + return { + ...response, + session + }; + } + + async accounts() { + const response = await this.authorizedRequest("contractless_accounts"); + const accounts = Array.isArray(response) ? response : []; + if (accounts.length === 0) this.clearSession(); + return accounts; + } + + async balances() { + const response = await this.authorizedRequest("contractless_balances"); + return Array.isArray(response?.balances) ? response.balances : []; + } + + async getBalance({ asset, nftSeries = 0 } = {}) { + const requestedAsset = String(asset ?? "").trim().toUpperCase(); + const requestedSeries = Number(nftSeries); + if (!requestedAsset) throw new TypeError("An asset name is required."); + if (!Number.isInteger(requestedSeries) || requestedSeries < 0) { + throw new TypeError("nftSeries must be a non-negative integer."); + } + const balance = (await this.balances()).find((entry) => + String(entry.asset ?? "").trim().toUpperCase() === requestedAsset + && Number(entry.nft_series ?? 0) === requestedSeries + ); + return balance ?? { + asset: requestedAsset, + nft_series: requestedSeries, + balance_atomic: 0, + balance: "0.00000000" + }; + } + + async signMessage({ message, nonce, expiresAt } = {}) { + const signedMessage = websiteMessage(message, "Signed message"); + const now = Math.floor(Date.now() / 1_000); + return this.authorizedRequest("contractless_signMessage", { + message: signedMessage, + nonce: String(nonce ?? randomHex(32)), + expires_at: Number(expiresAt ?? now + 300) + }); + } + + async sendTransaction({ transaction } = {}) { + if (!transaction || typeof transaction !== "object") { + throw new TypeError("A complete transaction object is required."); + } + const txtype = Number(transaction.txtype); + if (txtype === 6 || txtype === 7) { + throw new TypeError( + "Swaps and loan creation require a staged signing workflow." + ); + } + return this.authorizedRequest("contractless_sendTransaction", { + transaction + }); + } + + async signDualTransaction({ + transaction, + signerSlot + } = {}) { + if (!transaction || typeof transaction !== "object") { + throw new TypeError("A complete or partially signed transaction object is required."); + } + const txtype = Number(transaction.txtype + ?? transaction.unsigned_swap?.txtype + ?? transaction.unsigned_loan_contract?.txtype); + if (txtype !== 6 && txtype !== 7) { + throw new TypeError("Staged signing is only available for swaps and loan creation."); + } + if (signerSlot !== 1 && signerSlot !== 2) { + throw new TypeError("signerSlot must be 1 or 2."); + } + return this.authorizedRequest("contractless_signDualTransaction", { + transaction, + signerSlot + }); + } + + async completeDualTransaction({ transaction, signer1, signer2 } = {}) { + if (!transaction || typeof transaction !== "object") { + throw new TypeError("The original unsigned transaction is required."); + } + for (const [name, signer, slot] of [ + ["signer1", signer1, 1], + ["signer2", signer2, 2] + ]) { + if (!signer || Number(signer.signerSlot) !== slot) { + throw new TypeError(`${name} must contain the result for signer slot ${slot}.`); + } + } + if (signer1.txid !== signer2.txid) { + throw new Error("The two wallets signed different transaction hashes."); + } + if (signer1.unsignedBytes !== signer2.unsignedBytes) { + throw new Error("The two wallets serialized different unsigned transaction bytes."); + } + return this.authorizedRequest("contractless_completeDualTransaction", { + transaction, + signature1: signer1.signature, + publicKey1: signer1.signerPublicKey, + signature2: signer2.signature, + publicKey2: signer2.signerPublicKey + }); + } + + async broadcastTransaction({ bytes, api = this.api } = {}) { + if (typeof bytes !== "string" || !/^[0-9a-f]+$/i.test(bytes) || bytes.length % 2) { + throw new TypeError("Complete hexadecimal transaction bytes are required."); + } + return this.apiRequest("/api/v1/transactions/broadcast", { + method: "POST", + body: { transaction_hex: bytes }, + api + }); + } + + async apiRequest(path, { + method = "GET", + query = null, + body = null, + api = this.api + } = {}) { + const url = String(api?.url ?? "").replace(/\/+$/, ""); + const address = String(api?.address ?? "").trim().toLowerCase(); + const publicKey = String(api?.publicKey ?? "").trim().toLowerCase(); + const signature = String(api?.signature ?? "").trim().toLowerCase(); + if (!url || !address || !publicKey || !signature) { + throw new TypeError( + "API url, address, publicKey, and the precomputed 'aced' signature are required." + ); + } + const route = String(path ?? ""); + if (!route.startsWith("/api/v1")) { + throw new TypeError("Contractless API routes must begin with /api/v1."); + } + const requestUrl = new URL(`${url}${route}`); + if (query && typeof query === "object") { + for (const [key, value] of Object.entries(query)) { + if (value !== undefined && value !== null) { + requestUrl.searchParams.set(key, String(value)); + } + } + } + const headers = { + "X-Contractless-Address": address, + "X-Contractless-Public-Key": publicKey, + "X-Contractless-Signature": signature + }; + if (api.apiKey) headers["X-API-Key"] = String(api.apiKey); + if (body !== null) headers["Content-Type"] = "application/json"; + const response = await fetch(requestUrl, { + method: String(method).toUpperCase(), + headers, + body: body === null ? undefined : JSON.stringify(body) + }); + const reply = await response.json().catch(() => undefined); + if (!response.ok || reply?.success !== true) { + throw new Error(reply?.error ?? `Contractless API request failed with HTTP ${response.status}.`); + } + return reply.data; + } + + async disconnect() { + const active = this.session(); + if (!active) return { disconnected: true }; + try { + return await this.authorizedRequest( + "contractless_disconnect", + {}, + { reconnect: false } + ); + } finally { + this.clearSession(); + } + } + + clearSession({ expired = false } = {}) { + if (this.expirationTimer !== undefined) { + clearTimeout(this.expirationTimer); + this.expirationTimer = undefined; + } + try { + sessionStorage.removeItem(this.storageKey); + } catch { + // The extension session still expires when the wallet locks. + } + if (expired) { + window.dispatchEvent(new CustomEvent("contractless:sessionExpired", { + detail: { + origin: location.origin, + appId: this.appId + } + })); + } + } + + scheduleStoredSessionExpiration() { + let stored; + try { + stored = sessionStorage.getItem(this.storageKey); + } catch { + return; + } + if (!stored) return; + try { + this.scheduleSessionExpiration(JSON.parse(stored)); + } catch { + this.clearSession(); + } + } + + scheduleSessionExpiration(session) { + if (this.expirationTimer !== undefined) { + clearTimeout(this.expirationTimer); + this.expirationTimer = undefined; + } + const expiresAt = Number(session?.sessionExpiresAt); + if (!Number.isFinite(expiresAt)) return; + const remaining = expiresAt - Date.now(); + if (remaining <= 0) { + this.clearSession({ expired: true }); + return; + } + this.expirationTimer = setTimeout(() => { + this.clearSession({ expired: true }); + }, remaining); + } + + async requireProvider() { + if (!await waitForContractlessWallet()) { + throw new ContractlessWalletNotInstalledError(); + } + return provider(); + } + + async authorizedRequest(method, params = {}, { reconnect = true } = {}) { + await this.requireProvider(); + let session = this.session(); + if (!session && reconnect) { + const connection = await this.connect({ + message: "Connect this application to continue" + }); + session = connection.session; + } + if (!session) { + throw new Error( + "No active Contractless wallet session exists. Call connect() first." + ); + } + try { + return await this.sendAuthorizedRequest(method, params, session); + } catch (error) { + if (/session is invalid|session.*expired|wallet is locked/i.test(String(error))) { + this.clearSession(); + if (reconnect) { + const connection = await this.connect({ + message: "Reconnect this application to continue" + }); + return this.sendAuthorizedRequest(method, params, connection.session); + } + } + throw error; + } + } + + async sendAuthorizedRequest(method, params, session) { + return provider().request({ + method, + params: { + ...params, + origin: location.origin, + appId: this.appId, + accessKey: session.accessKey + } + }); + } +} diff --git a/serve-tests.mjs b/serve-tests.mjs new file mode 100644 index 0000000..160e3e4 --- /dev/null +++ b/serve-tests.mjs @@ -0,0 +1,33 @@ +import { createReadStream } from "node:fs"; +import { createServer } from "node:http"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; + +const root = dirname(fileURLToPath(import.meta.url)); +const port = Number(process.env.PORT ?? 8080); +const files = new Map([ + ["/", ["tests/tests.html", "text/html; charset=utf-8"]], + ["/tests.html", ["tests/tests.html", "text/html; charset=utf-8"]], + ["/sdk/contractless.js", ["sdk/contractless.js", "text/javascript; charset=utf-8"]] +]); + +const server = createServer((request, response) => { + const pathname = new URL(request.url ?? "/", "http://127.0.0.1").pathname; + const target = files.get(pathname); + if (!target) { + response.writeHead(404, { "Content-Type": "text/plain; charset=utf-8" }); + response.end("Not found"); + return; + } + + response.writeHead(200, { + "Content-Type": target[1], + "Cache-Control": "no-store", + "X-Content-Type-Options": "nosniff" + }); + createReadStream(join(root, target[0])).pipe(response); +}); + +server.listen(port, "127.0.0.1", () => { + console.log(`Contractless wallet test: http://127.0.0.1:${port}/tests.html`); +}); diff --git a/tests/dual-signature-store.php b/tests/dual-signature-store.php new file mode 100644 index 0000000..7aa89cb --- /dev/null +++ b/tests/dual-signature-store.php @@ -0,0 +1,141 @@ + false, 'error' => 'POST is required.']); +} + +$length = (int) ($_SERVER['CONTENT_LENGTH'] ?? 0); +if ($length > 2_000_000) { + reply(413, ['success' => false, 'error' => 'The request body is too large.']); +} + +try { + $request = json_decode(file_get_contents('php://input'), true, 64, JSON_THROW_ON_ERROR); +} catch (JsonException) { + reply(400, ['success' => false, 'error' => 'The request body must be valid JSON.']); +} + +if (!is_array($request)) { + reply(400, ['success' => false, 'error' => 'The request body must be a JSON object.']); +} + +$action = (string) ($request['action'] ?? ''); +$txid = strtolower(trim((string) ($request['txid'] ?? ''))); +if (!preg_match('/^[a-f0-9]{64}$/', $txid)) { + reply(400, ['success' => false, 'error' => 'A valid 64-character transaction hash is required.']); +} + +$storageDirectory = __DIR__ . '/storage/dual-signatures'; +if (!is_dir($storageDirectory) && !mkdir($storageDirectory, 0770, true) && !is_dir($storageDirectory)) { + reply(500, ['success' => false, 'error' => 'The JSON storage directory could not be created.']); +} + +$fileName = $txid . '.json'; +$path = $storageDirectory . '/' . $fileName; + +if ($action === 'load') { + if (!is_file($path)) { + reply(404, ['success' => false, 'error' => 'No saved transaction exists for that hash.']); + } + $handle = fopen($path, 'rb'); + if ($handle === false || !flock($handle, LOCK_SH)) { + if (is_resource($handle)) fclose($handle); + reply(500, ['success' => false, 'error' => 'The saved transaction could not be opened.']); + } + $record = json_decode(stream_get_contents($handle) ?: '', true); + flock($handle, LOCK_UN); + fclose($handle); + if (!is_array($record)) { + reply(500, ['success' => false, 'error' => 'The saved transaction JSON is invalid.']); + } + reply(200, ['success' => true, 'data' => ['file' => $fileName, 'record' => $record]]); +} + +if ($action !== 'save_signature') { + reply(400, ['success' => false, 'error' => 'The storage action is not supported.']); +} + +$kind = strtolower(trim((string) ($request['kind'] ?? ''))); +$slot = (int) ($request['signer_slot'] ?? 0); +$transaction = $request['transaction'] ?? null; +$signature = $request['signature'] ?? null; +if (!in_array($kind, ['swap', 'loan'], true)) { + reply(400, ['success' => false, 'error' => 'The transaction kind must be swap or loan.']); +} +if ($slot !== 1 && $slot !== 2) { + reply(400, ['success' => false, 'error' => 'The signer slot must be 1 or 2.']); +} +if (!is_array($transaction) || !is_array($signature)) { + reply(400, ['success' => false, 'error' => 'The transaction and signature result are required.']); +} +if (strtolower((string) ($signature['txid'] ?? '')) !== $txid) { + reply(400, ['success' => false, 'error' => 'The signature result does not match the transaction hash.']); +} +if ((int) ($signature['signerSlot'] ?? 0) !== $slot) { + reply(400, ['success' => false, 'error' => 'The signature result does not match the signer slot.']); +} + +$handle = fopen($path, 'c+'); +if ($handle === false || !flock($handle, LOCK_EX)) { + if (is_resource($handle)) fclose($handle); + reply(500, ['success' => false, 'error' => 'The transaction JSON could not be locked.']); +} + +$existingJson = stream_get_contents($handle) ?: ''; +$record = $existingJson === '' ? null : json_decode($existingJson, true); +if ($record !== null && !is_array($record)) { + flock($handle, LOCK_UN); + fclose($handle); + reply(500, ['success' => false, 'error' => 'The existing transaction JSON is invalid.']); +} +if ($record !== null && ( + ($record['kind'] ?? null) !== $kind + || json_encode($record['transaction'] ?? null) !== json_encode($transaction) +)) { + flock($handle, LOCK_UN); + fclose($handle); + reply(409, ['success' => false, 'error' => 'That hash is already associated with different transaction data.']); +} + +$record ??= [ + 'txid' => $txid, + 'kind' => $kind, + 'transaction' => $transaction, + 'signer1' => null, + 'signer2' => null, + 'created_at' => gmdate(DATE_ATOM), +]; +$record['signer' . $slot] = $signature; +$record['updated_at'] = gmdate(DATE_ATOM); +$encoded = json_encode($record, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); +if ($encoded === false) { + flock($handle, LOCK_UN); + fclose($handle); + reply(500, ['success' => false, 'error' => 'The transaction record could not be encoded.']); +} + +rewind($handle); +ftruncate($handle, 0); +if (fwrite($handle, $encoded . PHP_EOL) === false) { + flock($handle, LOCK_UN); + fclose($handle); + reply(500, ['success' => false, 'error' => 'The transaction record could not be saved.']); +} +fflush($handle); +flock($handle, LOCK_UN); +fclose($handle); + +reply(200, ['success' => true, 'data' => ['file' => $fileName, 'record' => $record]]); + diff --git a/tests/storage/.gitkeep b/tests/storage/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/tests/storage/.gitkeep @@ -0,0 +1 @@ + diff --git a/tests/tests.html b/tests/tests.html new file mode 100644 index 0000000..ffae2d0 --- /dev/null +++ b/tests/tests.html @@ -0,0 +1,1652 @@ + + + + + + Contractless Wallet Integration Test + + + +
+

Contractless Wallet Integration Test

+

Website SDK and browser extension connection checks

+
+ +
+
+
+ Wallet detected + Checking +
+
+ Application session + Not connected +
+
+ Address retrieved + Not tested +
+
+ +
+ + + + +
+ +
+

Connected Wallet

+
+
Origin
+
+
Application ID
+
+
Address
+
No address received
+
Session expires
+
No active session
+
+
+ +
+

Wallet Connection Code

+

+        
+ +
+
+ +
+

Transaction Examples

+

+ Select a transaction type, replace any example-dependent values, then + submit it to the wallet for review, signing, and broadcast. + Dual-signature tests use a small PHP backend to save one JSON file + per transaction hash, allowing two separate computers to sign the + same transaction before it is broadcast. +

+
+ + + +
+
+ +
+
+

Editable Transaction JSON

+ +
+
+

Application Code

+

+          
+
+
+ + +
+ +
+
+ + + +

jUA1GWQhf zpp&3i@T3#6_wl5;b!A4%5zLCXP@XfvycdIcLU~ba>sY6bh{dKR@C(O-`tdz*7B~mU z^qVbb;D7oI{T=chsi}BQxn^qO%pn`w985{WEQ7&dG~^g^4JJdL!EDGkSPTV5gVAWr zG3FXg#yq3hm~XTg3vvuO#+;m-+#FL*UXD2@KgW_&kZZ^_=H}$)=9+Tza?QEW zv&CGHZ^$?1=j7++oAUGW&H4HHmiz*X!D6)JSaK~UOP zfS_yVc3+sI-C!kSK|RJT5#y7C!6QCGpZ}}hbq6%a7 z4xGumeG1+~X&=RLA<38!{Um5Q-?^q9b_A3S!$$3NH@;rV$iUp5hqT>*5WNQPR5vVt z?o8NmX4qkyf^Dz?;)3k!ZC7k;E*L|c%y8%qUJ+?Me_Zi>E1;X^29G2DM%KrdQn!g9|B>8q6Pg-}$mKOYmq03HI85V0?`yk;ALt2qc=cZ(a z_FxXma%#Z*mPP`+n&U5#NxV{kCz{$?50!9*)DLD4<)4o9bg~|5SH=wi z9(){)yzcz*VOha#rR+wW1v8s08)j|;%ISr2i1*Auh^Ev0bb!NQ7Y_ael}00IwK_qs z3KJrwXq;5VsyZZfV+4?mxOJ?0pXBvIQ(PXC&H)r!=e+a zlfu{1H^N!@2kAHA59tCQ-lu55=rM~QfBcEr3m#hbg`xBtFt_XnR;Zhb8= zNu$+=b&NL`6mEF-v(I(;4=&lD(H9Mt`zuAEDC^8=5#mTOLuW(fhadh}5fx>AQ-hRwn5sVQx%GS%3dK{nWfvp-MCf&5;?BEqsFB|GcGZM24i(2$5?4%DJCOF=B)` zQ>s#jOMFzgWI=yZwHcBypm}_FS5dFBXp+=AjsK5%Y8-;ARBE-LQEN527=2P$m+*v$ z=*aLWDO!w;?VyX}B}<=u>5Vtv-M#nyW2e7r z;UvZY`GrOOOGi$bw+NA2-gtBO`}+@^{)%g5k0RoasWxTal2woG-G3k=Cath&Xz9es zl~b#1$^%QDMV5E>9zXrn4-qj#OKpmO-pku|?ELuCAO17=d!;>}a5?pw6@rLC{+e0%qvPh;ZZCs+RR>*W@I!>z}TMz$ST%nPsW+;ia5<14vA%U2i{ zC+|P-kHh<0Mvs{^S)+}L?vs7?oYR%xf8gMu4=yR6=6i4N!9$;Y{`KV+POj=P=eRVd zM4Kq7W12Tb`ZubQwarOl7cDPkOD0Jp@*1@!Mn5(xR#Tx7r6j#h)QTDrHXJcrQi)+| zKC+W)v?ftA5w@ZD@UhYm5!MnZMjaJiD0S^sB{xX7^zy%_n)9NVpq_I{yjc^c>#U<` zcMDh~L4C6(T{TRfAz^Ze#;^=2K^-RgHz6w9=s&ORCq{__U_?n*&1s40tj&(e6uU=t zkMb{+=B$hh>vZqKs%#hlgvic1|BfEsaQ`O>&Cx3VN!^c+i}||d%8vfmwf-+V6^VMa zMLSFzuJ(p?6DLVG>-=*&C+XvKWs?7X^~QDK@se?^)O@73CS0ZRua9p2S;NbH)rfsS z^6wB6#i)pDR#ZCFudz=HD81aH<*`g(+KBam*0F1KN2e>WgSj@wW}jyFda$`RU1vKL zxGRIhb6UKi<&Z{Wvy=LTdnYnoE8-Hy$1Fk=SN=BA(rCV zqqPju0Ro$*T?nT&J`^9wABbZ$;g%P+LbTIDCPr|lk%!jbKk%geVlD20SJk;)4OJ|6 zp&Yyi6(}p%5M2Im)jrvV3%BDuu(k$_t5+sPnVl;FI>G=vX)WG_eIYX=I{93NoZi>4Cf&8ZIz!lSBBR@d6Pes)+5C7*wfPc%(#-3-=ch!R z%-ww1tYfc9tv4OhHw6I482MELjFQ)m&pR)YRr$EHd_Sd6@=tW=?LJdM38(K93sre(^^U;qC9E zb_m`DmQ!<#)>@0fWGzVJ>Z1aGI#5-oSn}Cy#xLL1ZJkj zMre?kb+}^>1uH$Q#^`*LuK*nYiPc9);VFxFm<`xtZRkM#Yn^XLtK?ThFKb E4-kMs0ssI2 literal 0 HcmV?d00001 diff --git a/extension/dist/firefox/assets/contractless_browser_core_bg-Dl61GrlP.wasm b/extension/dist/firefox/assets/contractless_browser_core_bg-Dl61GrlP.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c1c41b848cf2c81b672630b0ce5c3ee48ac73c17 GIT binary patch literal 703517 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%0A&>j%WCGU%aG=AQ=&4^ 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