├── .gitignore ├── transfer.rgb ├── psbt └── usdt-transfer.psbt ├── contracts ├── rgb20-usdt.contract.rgb └── rgb20-usdt.contract.rgba ├── Cargo.toml ├── src └── main.rs ├── Readme.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | .DS_Store 3 | .alice 4 | .bob 5 | -------------------------------------------------------------------------------- /transfer.rgb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oneforalone/rgb20-usdt/HEAD/transfer.rgb -------------------------------------------------------------------------------- /psbt/usdt-transfer.psbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oneforalone/rgb20-usdt/HEAD/psbt/usdt-transfer.psbt -------------------------------------------------------------------------------- /contracts/rgb20-usdt.contract.rgb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oneforalone/rgb20-usdt/HEAD/contracts/rgb20-usdt.contract.rgb -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rgb20-usdt" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | amplify = "4.0.1" 10 | strict_encoding = "2.5.0" 11 | strict_types = "1.6.1" 12 | bp-core = "0.10.9" 13 | rgb-std = { version = "0.10.8", features = ["serde", "fs"] } 14 | serde = "1.0.152" 15 | serde_json = "1.0.93" 16 | rgb-schemata = "0.10.0" 17 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use rgbstd::interface::{rgb20, ContractBuilder, FungibleAllocation, Rgb20}; 2 | 3 | use std::convert::Infallible; 4 | use std::fs; 5 | 6 | use amplify::hex::FromHex; 7 | use bp::{Chain, Outpoint, Tx, Txid}; 8 | use rgb_schemata::{nia_rgb20, nia_schema}; 9 | use rgbstd::containers::BindleContent; 10 | use rgbstd::contract::WitnessOrd; 11 | use rgbstd::persistence::{Inventory, Stock}; 12 | use rgbstd::resolvers::ResolveHeight; 13 | use rgbstd::stl::{ 14 | Amount, ContractData, DivisibleAssetSpec, Precision, RicardianContract, Timestamp, 15 | }; 16 | use rgbstd::validation::{ResolveTx, TxResolverError}; 17 | use strict_encoding::StrictDumb; 18 | 19 | struct DumbResolver; 20 | 21 | impl ResolveTx for DumbResolver { 22 | fn resolve_tx(&self, _txid: Txid) -> Result { 23 | Ok(Tx::strict_dumb()) 24 | } 25 | } 26 | 27 | impl ResolveHeight for DumbResolver { 28 | type Error = Infallible; 29 | fn resolve_height(&mut self, _txid: Txid) -> Result { 30 | Ok(WitnessOrd::OffChain) 31 | } 32 | } 33 | 34 | #[rustfmt::skip] 35 | fn main() { 36 | let name = "USDT"; 37 | let decimal = Precision::CentiMicro; // Decimal: 8 38 | let desc = "USD Tether Token"; 39 | let spec = DivisibleAssetSpec::with("RGB20", name, decimal, Some(desc)).unwrap(); 40 | let terms = RicardianContract::default(); 41 | let contract_data = ContractData { terms, media: None }; 42 | let created = Timestamp::now(); 43 | let txid = "0018dc9fff99382ac228a6cbcbdddb0989329d85d95c1e354b74a488da324516"; 44 | let vout_index = 1; 45 | let beneficiary = Outpoint::new(Txid::from_hex(txid).unwrap(), vout_index); 46 | 47 | const ISSUE: u64 = 1_000_000_000; 48 | 49 | let contract = ContractBuilder::with(rgb20(), nia_schema(), nia_rgb20()) 50 | .expect("schema fails to implement RGB20 interface") 51 | .set_chain(Chain::Testnet3) 52 | .add_global_state("spec", spec) 53 | .expect("invalid nominal") 54 | .add_global_state("created", created) 55 | .expect("invalid creation date") 56 | .add_global_state("issuedSupply", Amount::from(ISSUE)) 57 | .expect("invalid issued supply") 58 | .add_global_state("data", contract_data) 59 | .expect("invalid contract text") 60 | .add_fungible_state("assetOwner", beneficiary, ISSUE) 61 | .expect("invalid asset amount") 62 | .issue_contract() 63 | .expect("contract doesn't fit schema requirements"); 64 | 65 | let contract_id = contract.contract_id(); 66 | debug_assert_eq!(contract_id, contract.contract_id()); 67 | 68 | let bindle = contract.bindle(); 69 | eprintln!("{bindle}"); 70 | bindle.save("contracts/rgb20-usdt.contract.rgb") 71 | .expect("unable to save contract"); 72 | fs::write("contracts/rgb20-usdt.contract.rgba", bindle.to_string()) 73 | .expect("unable to save contract"); 74 | 75 | // Let's create some stock - an in-memory stash and inventory around it: 76 | let mut stock = Stock::default(); 77 | stock.import_iface(rgb20()).unwrap(); 78 | stock.import_schema(nia_schema()).unwrap(); 79 | stock.import_iface_impl(nia_rgb20()).unwrap(); 80 | 81 | // Noe we verify our contract consignment and add it to the stock 82 | let verified_contract = match bindle.unbindle().validate(&mut DumbResolver) { 83 | Ok(consignment) => consignment, 84 | Err(consignment) => { 85 | panic!( 86 | "can't produce valid consignment. Report: {}", 87 | consignment.validation_status() 88 | .expect("status always present upon validation") 89 | ); 90 | } 91 | }; 92 | stock.import_contract(verified_contract, &mut DumbResolver).unwrap(); 93 | 94 | // Reading contract state through the interface from the stock: 95 | let contract = stock 96 | .contract_iface(contract_id, rgb20().iface_id()) 97 | .unwrap(); 98 | let contract = Rgb20::from(contract); 99 | let owner = vec![beneficiary]; 100 | let allocations = contract.fungible("assetOwner", &owner).unwrap(); 101 | eprintln!("{}", serde_json::to_string(&contract.spec()).unwrap()); 102 | 103 | for FungibleAllocation { owner, witness, value } in allocations { 104 | eprintln!("amount={value}, owner={owner}, witness={witness}"); 105 | } 106 | eprintln!("totalSupply={}", contract.total_supply()); 107 | eprintln!("created={}", contract.created().to_local().unwrap()); 108 | } 109 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # RGB20 USDT Demo 2 | 3 | **DECLAIMER: This is just a demo for RGB20 on testnet, it's NOT the offical 4 | USDT of RGB20** 5 | 6 | ## Pre-request 7 | 8 | To complete the demo, you need to setup the following toolchains: 9 | 10 | 1. [Git][git] 11 | 2. [Rust][rust] 12 | 3. [Sparrow][sparrow] 13 | 4. [RGB-CLI][rgb-cli] 14 | 15 | [git]: https://git-scm.com/ 16 | [rust]: https://www.rust-lang.org/tools/install 17 | [sparrow]: https://sparrowwallet.com/ 18 | [rgb-cli]: https://github.com/RGB-WG/rgb 19 | 20 | Also, you need to create two different wallets in Sparrow. Let's say `alice` and 21 | `bob`, and get some satoshis in these two wallets. You may get satoshis faucet 22 | from and 23 | 24 | > NOTE: Sparrow default is mainnet, so create wallet after restarting Sparrow 25 | > in testnet. 26 | 27 | Here are the tpub of wallets I created: 28 | 29 | - Alice: `tpubDCRYBMFMJcwYAd7g7GEdNzTnqg7k8wE2PQZ6NgXq2tJER3aWSK4sRNpje4nnvxC9Ffs2borWAgdQMDi8J8b4sXBQNqMnFxVWWVA6BswzGyU` 30 | - Bob: `tpubDCeaDjmVbxPkLxvXgmdsTjGF55WWL4Kf1Z64eQstJAyqQ7DaBD9DDGo7Q26yxww5ifbFuELZcmxnM8LkJ1Xmij6itneguA5VKcqc5YbMbjz` 31 | 32 | ### RGB-CLI 33 | 34 | Cause there's issue while making transfer, so we need to make a trivial change 35 | with source code and build rgb-cli from source. 36 | 37 | First, clone it from Github: 38 | 39 | ```bash 40 | $ git clone https://github.com/RGB-WG/rgb.git rgb-cli 41 | ``` 42 | 43 | Then, build it to downloading the dependencies: 44 | 45 | ``` 46 | $ cd rgb-cli 47 | $ cargo build 48 | ``` 49 | 50 | After that, locate `rgb-wallet` source codes path, for me, it's: 51 | `~/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rgb-wallet-0.10.9/src` 52 | 53 | Comment out **line 157** in `pay.rs`: 54 | 55 | ```rust 56 | // .filter(|index| *index == RGB_NATIVE_DERIVATION_INDEX || *index == RGB_TAPRET_DERIVATION_INDEX) 57 | ``` 58 | 59 | Finally, install `rgb` command line: 60 | 61 | ``` 62 | $ cd rgb-cli 63 | $ cargo install rgb-contracts --all-features --force --path . 64 | ``` 65 | 66 | > For some reason, I failed with clone `rgb-wallet` lib source code and change 67 | > its dependencies in `rgb` source codes on local machine. I know I can fork 68 | > `rgb-wallet` into my repo, and modify it. Change `rgb` dependency to my repo, 69 | > but i believe there must be a way to do it on local. Also, cause I'm not sure 70 | > whether the `filter` is an issue or a feature. Therefore, I choose to make it 71 | > in some kind nasty way. If anyone has good ideas, please let me know. 72 | 73 | ## Create and import 74 | 75 | To create a RGB20 contract, just clone this repo to you local machine. Then 76 | compile and run it. 77 | 78 | ```bash 79 | $ git clone https://github.com/oneforalone/rgb20-usdt.git 80 | $ cd rgb20-usdt 81 | $ cargo run 82 | ``` 83 | 84 | Now, we are creating a RGB20 usdt contract, which stores in `contracts` fold. 85 | 86 | Before importing contracts, let's import our wallets to rgb. 87 | 88 | For Alice: 89 | ```bash 90 | $ rgb -d .alice create default 91 | $ rgb -d .alice import contracts/rgb20-usdt.contract.rgb 92 | ``` 93 | 94 | For Bob: 95 | ```bash 96 | $ rgb -d .bob create default 97 | $ rgb -d .bob import contracts/rgb20-usdt.contract.rgb 98 | ``` 99 | 100 | After that, we can inspect contracts state with `rgb state` command. 101 | 102 | For Alice: 103 | ```bash 104 | $ rgb -d .alice contracts 105 | rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp 106 | 107 | $ rgb -d .alice state rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp RGB20 108 | Global: 109 | spec := (naming=(ticker=("RGB20"), name=("USDT"), details=1(("USD Tether Token"))), precision=8) 110 | data := (terms=(""), media=~) 111 | issuedSupply := (1000000000) 112 | created := (1697651102) 113 | 114 | Owned: 115 | assetOwner: 116 | amount=1000000000, utxo=0018dc9fff99382ac228a6cbcbdddb0989329d85d95c1e354b74a488da324516:1, witness=~ # owner unknown 117 | 118 | $ rgb -d .alice state rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp RGB20 -w default 119 | Global: 120 | spec := (naming=(ticker=("RGB20"), name=("USDT"), details=1(("USD Tether Token"))), precision=8) 121 | data := (terms=(""), media=~) 122 | issuedSupply := (1000000000) 123 | created := (1697651102) 124 | 125 | Owned: 126 | assetOwner: 127 | amount=1000000000, utxo=0018dc9fff99382ac228a6cbcbdddb0989329d85d95c1e354b74a488da324516:1, witness=~, derivation=*/0/0 128 | ``` 129 | 130 | For Bob: 131 | 132 | ```bash 133 | $ rgb -d .bob contracts 134 | rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp 135 | 136 | $ rgb -d .bob state rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp RGB20 137 | Global: 138 | spec := (naming=(ticker=("RGB20"), name=("USDT"), details=1(("USD Tether Token"))), precision=8) 139 | data := (terms=(""), media=~) 140 | issuedSupply := (1000000000) 141 | created := (1697651102) 142 | 143 | Owned: 144 | assetOwner: 145 | amount=1000000000, utxo=0018dc9fff99382ac228a6cbcbdddb0989329d85d95c1e354b74a488da324516:1, witness=~ # owner unknown 146 | ``` 147 | 148 | Now we'are successfully create an USDT rgb20 token, and the owner is 149 | `0018dc9fff99382ac228a6cbcbdddb0989329d85d95c1e354b74a488da324516:1`, which is 150 | belongs to Alice. 151 | 152 | ## Transfer 153 | 154 | There're about five steps in a complete transfer: 155 | 1. Create an invoice 156 | 2. Construct a psbt 157 | 3. Make a transfer 158 | 4. Accept transfer 159 | 5. Sign psbt and broadcast it 160 | 161 | Let's say Alice need to send 1,000 USDT to Bob. 162 | 163 | ### Create an invoice 164 | 165 | To receive 1,000 USDT, Bob needs to create an invoice and send it to Alice. 166 | 167 | ```bash 168 | $ rgb -d .bob invoice s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp RGB20 1000 tapret1st:42a3d5805a4f7e315bb5905c0dc0dd95914f5c97239b409360bf223a7d9dea0e:0 169 | rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp/RGB20/1000+utxob:bm9pt3W-KCodqSqLq-UPXdsdv8f-f5nszKdEe-T4yZhw5sj-TcdG5G 170 | ``` 171 | The last arguments is an utxo of Bob, you can specify any utxo on chian. 172 | 173 | ### Construct a psbt 174 | 175 | Bob sent the invoice to Alice, and then Alice start to construct a psbt using 176 | Sparrow. Just create a simple transfer tx to send some satoshis to an address 177 | of herself. And save it before sign and broadcast. I save it in `psbt/usdt-transfer.psbt`. 178 | For some reason i don't know, we need also `set-host` with the psbt: 179 | 180 | ```bash 181 | $ rgb -d .alice set-host psbt/usdt-transfer.psbt 182 | PSBT file 'psbt/usdt-transfer.psbt' is updated with tapret1st host now set. 183 | ``` 184 | 185 | ### Make a transfer 186 | 187 | After constructing a psbt file and `set-host` to it. Alice now can make a 188 | tranfser with the psbt and invoice provided by Bob: 189 | 190 | ```bash 191 | $ rgb -d .alice transfer psbt/usdt-transfer.psbt rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp/RGB20/1000+utxob:bm9pt3W-KCodqSqLq-UPXdsdv8f-f5nszKdEe-T4yZhw5sj-TcdG5G transfer.rgb 192 | ``` 193 | 194 | The transfer is saved in `transfer.rgb` file, and need to send it to Bob 195 | waiting him to accept it. 196 | 197 | ### Accept transfer 198 | 199 | After receiving the `transfer.rgb` file, Bob could validate it before accepting: 200 | 201 | ```bash 202 | $ rgb -d .bob validate transfer.rgb 203 | Consignment has non-mined terminal(s) 204 | Non-mined terminals: 205 | - 26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943 206 | Validation warnings: 207 | - terminal witness transaction 26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943 is not yet mined. 208 | ``` 209 | 210 | The result show that Alice not publich the psbt and not mined yet. So, let's 211 | make Bob accept: 212 | 213 | ```bash 214 | $ rgb -d .bob accept -f transfer.rgb 215 | Consignment has non-mined terminal(s) 216 | Non-mined terminals: 217 | - 26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943 218 | Validation warnings: 219 | - terminal witness transaction 26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943 is not yet mined. 220 | 221 | Transfer accepted into the stash 222 | ``` 223 | 224 | These show that Bob already accept the transfer. 225 | 226 | ### Sign psbt and broadcast it 227 | 228 | Now it's Alice's turn to sign the psbt file and broadcast it. Just load the 229 | psbt file with Sparrow, sign it, and broadcast it. And just waiting it mined. 230 | 231 | After a few minutes, the psbt would mined on chain. In that time, Bob and Alice 232 | would get different outputs with `rgb state` and `rgb validate`. 233 | 234 | For Alice: 235 | 236 | ```bash 237 | $ rgb -d .alice state rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp RGB20 238 | Global: 239 | spec := (naming=(ticker=("RGB20"), name=("USDT"), details=1(("USD Tether Token"))), precision=8) 240 | data := (terms=(""), media=~) 241 | issuedSupply := (1000000000) 242 | created := (1697651102) 243 | 244 | Owned: 245 | assetOwner: 246 | amount=999999000, utxo=26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943:0, witness=26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943 # owner unknown 247 | amount=1000000000, utxo=0018dc9fff99382ac228a6cbcbdddb0989329d85d95c1e354b74a488da324516:1, witness=~ # owner unknown 248 | ``` 249 | 250 | For Bob: 251 | 252 | ```bash 253 | $ rgb -d .bob state rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp RGB20 254 | Global: 255 | spec := (naming=(ticker=("RGB20"), name=("USDT"), details=1(("USD Tether Token"))), precision=8) 256 | data := (terms=(""), media=~) 257 | issuedSupply := (1000000000) 258 | created := (1697651102) 259 | 260 | Owned: 261 | assetOwner: 262 | amount=999999000, utxo=26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943:0, witness=26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943 # owner unknown 263 | amount=1000, utxo=42a3d5805a4f7e315bb5905c0dc0dd95914f5c97239b409360bf223a7d9dea0e:0, witness=26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943 # owner unknown 264 | amount=1000000000, utxo=0018dc9fff99382ac228a6cbcbdddb0989329d85d95c1e354b74a488da324516:1, witness=~ # owner unknown 265 | 266 | $ rgb -d .bob state rgb:s6syetq-eN85tdbpb-hBut9K6F3-uFfjVZsJ6-WVYGv6FXa-UTwCnp RGB20 -w default 267 | Global: 268 | spec := (naming=(ticker=("RGB20"), name=("USDT"), details=1(("USD Tether Token"))), precision=8) 269 | data := (terms=(""), media=~) 270 | issuedSupply := (1000000000) 271 | created := (1697651102) 272 | 273 | Owned: 274 | assetOwner: 275 | amount=999999000, utxo=26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943:0, witness=26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943 # owner unknown 276 | amount=1000, utxo=42a3d5805a4f7e315bb5905c0dc0dd95914f5c97239b409360bf223a7d9dea0e:0, witness=26fbb878fa910068c7dc0b1cae2bef235f477ca095aa9b85eaeeb1a87adfe943, derivation=*/0/0 277 | amount=1000000000, utxo=0018dc9fff99382ac228a6cbcbdddb0989329d85d95c1e354b74a488da324516:1, witness=~ # owner unknown 278 | 279 | $ rgb -d .bob validate transfer.rgb 280 | Consignment is valid 281 | ``` 282 | 283 | Vola, we just made it. 284 | 285 | The RGB21 and RGB25 are just the same except some initial arguments. You may 286 | check the details with [rgb-schemata][rgb-schemata] repo. 287 | 288 | [rgb-schemata]: https://github.com/RGB-WG/rgb-schemata/tree/master/examples 289 | -------------------------------------------------------------------------------- /contracts/rgb20-usdt.contract.rgba: -------------------------------------------------------------------------------- 1 | -----BEGIN RGB CONTRACT----- 2 | Id: rgb:s6syetqeN85tdbpbhBut9K6F3uFfjVZsJ6WVYGv6FXaUTwCnp 3 | Terminals: 4 | Version: v1 5 | 6 | 0RR9100htnnPN@1$kJz}QkMcLJk_hfR!(msTQmCc0RYhl9YPCb&_Nn 7 | f7#)iO^V)-|nN@v))3dt=n_gSYAUreU0RYkmh>TceV>`O*gwADFAe3iZ1@l19{2t5VaJV^T`{fc?xMUvnKPbj1keWo0098e2LS*90MZ8m0 10 | 098g2LS*900E#60RaF10003HC)hu};4cm3v~2hf;U4$>@L|V|mt8Tf>F%PuK$$b1 11 | YybhE4*>xG{{f&60RaF107w7;0U2$DDaiKPL`@Y=jhu|Vo)3+Q0$Mw;ks-!CQm`I 12 | }1p%ec`!aPC2Yyc<$zXDlf<&Mmp^R+W^_bcVS2e5$Ue^TXSbr?`c)x>LmNtG~n8CcwYZ>30fb98cVaA;*G2x4+!V{2t}OehFqa$#d@Wpq+02w`({WpZhAYbpeAY;|)h1!He 17 | *ZDA}0ZE0?Gb1eg8Z*(pNb8KOAXfFhMWpZyY18;6+F#~jWZ!!gRXmVv`GX!RDb#g 18 | QWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjO_7Z)|UFItg=SZD~VqY;SHm1Z 19 | -tay|%gb!BsOX>V>n0%3GO0YO0lLP7yULjgoY0YyatM 20 | n(ZgM*&Dk0ZB;#N=gAsO94zw0ZmN-PEG+&PXSO+0Z~x_Qc?j^Qvp;|0aaB2R#pL5 21 | R{>a90a;lAT3QNoaYAxoV{2t}Oj`+JVPk7kY+-X~Tnck>LULhaYh`p&T?J!da%FU 22 | 025fI+VRL9-2x4JlYjkO2YhVFkVF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c& 23 | dkY-|B-Z2@j>0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQ31dQXVP 24 | k7$bWD2$aA|O5dD^138|7M^`NNc{jXEg#>2x#JO!0is)`buE3*f$s=76iu$kGUmiLl6xgyxtl_ 27 | YhuIBKsLaq!auKz+ykBO{1Aqf=b!-3wb8lz?19NnE0t01qcmo4vZ*&9$Wo~f=17T 28 | xp1_NScYzG2ja|i-xbO{1%W(op!bPEDzW()#jat#7=Zw>-;X%7QrY-JDwWMeTA17 29 | u?|5(8voGZO=3V>A>5Zee3<6$5j5ZWaS&bYd3+V_|L>0%dI(19Np^8Utl>V;cfya 30 | ~uL^a~%S5a~=Y9a~}nBaA9L*AOvN2V{9P?admHWWpg3~Xkl|`BL-w|Y;0k2BnNP1 31 | a${v~bR`L4ZE$6Bb75{|CJJG2Z*z2VZ*XX3CkSG4VPk7$bWA7+Vsc?)Yh`p&DF|V 32 | 6bY*gBb89LDaBOvRD+Ob3ZEayJ1#M|=b#pBPWN&mX1#@g+b7(IFdS!BNFavLHWib 33 | PEcW*KUbZByAWite3Z*_7s1ZHV=WiCgZ)|UFI|OWHb8|ceWpQ<3Y&{2Oa%Ew3WpX|Uadl;LbZKvHKLTNNK 35 | mkEP0YX9nLqh>XL;*!b0Y*jvM@IojNC8Pn0ZK{%OG^PvOaV#Xj}? 37 | &aYAxoV{2t}Qe6dOVRB`3UIuJ$WMOk?UkGAhV{3G2V{2dmVPOGcVgX}g0c2zWWn} 38 | ?oW&vks0cdCeX=wp!Y5{9&0c>mmZEXQ=ZUJv^0dQ~uad821ashL50d#Z$b#(!Db^ 39 | &*H0eE-;d3gbPdI@7fa$#d@Wpqq?1aN6^Wqb)^LULhaYh`p&eFb!BY-DAA17u}ve 40 | ;68}&)D!afk;000UlyXM^SUjou?S!lz~={Ksq~8H9n?t5^aES} 41 | >)T@Q_YKH-LWcN}4?zI{00000000O800000000=b1>s$}>vwm-`P?*~@NU^2lz=Z 42 | ys}J#chLs9)jD7_HjCrNP622RPUKzbqehC`4fM6T8=Og>`W>k?z4yB1H7|WDz5|h 43 | su4xM=1##_akM=$^Wt^4(jv6#$*DE3PM1p!tKmiMH2B(lTb1P)|lIgi#~)sbZ^DM 44 | LcPrTIA(QB)a6Ef?5g2d57qF{xOgXr*o{)>A*6W=t7(+FbemVul6;3UG2|c29M5a 45 | CLO(YCz3gCHcMLg#T%!5i+MiDWH17z$yORD!eAooFZYY1~?adl;GV`TvuZG|bw_S!^E6;6$ujJ=) 47 | @jfnzUJFt-<#ywK79)|~aX>@L7b8~ZdLvS{eAW6+Al?bYFeB*+hvPCXc=uXu9ES+XYD&AihihV|j!U3UR${yE1y*))Yvlt77$sH1sa10V!-HD53Q1a& 53 | oEF#!a1HD59U1a&oEGXn&5HD5FY1a&oEH3bB9HD5Lc1a&oEHwOfDHD5Rg1a&oEIS 54 | B=IHD56>3I%mFUokNY1$8xFF)|DVbv0ixGYtiGHD56_4h3~JUokZg1$8xFF*Xndb 55 | v0ixHxUJOHD56}5(RZNUoklo1$8xFGB6Ycbv0iyF%<=MHD59^76o-RUotZn1$8xF 56 | GBg+kbv0iyH5mnUHD59|8U=MVUotlv1$8xFGB_Lsbv0iyIUNOcHD5C@9tCwZUo$Z 57 | uC9Czh5)>D@qdC-Hdlhx3aZBNPbr@aHF*SPB$t~%I1px%+Sbr?`c)x>L9@Q>iQ81gEX6C4qGWM}19*F@#XVmjaq%az$04KD-Vbij2IPrk>V25D|^b#!xgz_`|Kk 60 | I-(uR2m_oithNR+O_nW%z^_Hs!rRD&3#k{Z*_EVb#!yGf~}wyndU6~Y)V&#VN(sg 61 | %9AXn_Sa9^Yhha}76yw5Y;R+0RB3HxHQF5&IUsJk-Q1+ZJ%=&s@|&mHbl*M5f*>4 62 | D7PYw?DqE_oP>KHujTH+>EdJQM&>E4z*R)+SA#T-nt8wey2OO)v!`LRkztQP;3W% 63 | Qi%!_9htpQ3t>=3qD6)+-@LLdMwB^fyf0@XL;*!b0Y*jvM@IojNC8Pn0ZK{%OG^PvOaV_}K!%T;s%5OuhfN 68 | v=>n`G9Ox)Es_jVP?Hp`k}J(B}J1Y}`zXe|VKWpZyY18;6+F#~jWZ!!gRXmVv`GX 69 | !RDb#gQWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjO&sK>P*4F;Q2|m?0aH@}R8#>~RRLC3 71 | 0asT6SXcpBSpiyF0byYQVqyVfV*zAj0cB+YW@Z6rX8~wv0cmLgYH9&%YXNL*0c~v 72 | oZf*f@Zvk*{0da8wa&iH4a{+X80d;i&c6I@GcL8{K0eN`=dU`e59ThnsZoA#wq{B 73 | UjG3xT0r`mMiJ;;I}98MOsxf}%nrO*2^brT1EPanx(a*~2XpdO)&Y})mh+6z}TtO 74 | s7#ICTWEOMDJSZAYFLM|~u8B!Bn=Wb8dls`ok|_d#@P1py_i^|=xh7rLW4)L(lQb 75 | *FJl;d*r#UC=Q#deq4+>4rRt-HA9h_`pmDJs(9)l_k%Xr`J_-milHr+p6!VLzDwF 76 | 0YO0lLP7yULjgoY0YyatMn(ZgM*&Dk0ZB;#N=gAsO94zw0ZmN-PEG+&PXSO+0Z~x 77 | _Qc?j^Qvp;|0aaB2R#pL5R{>a90a;lAT3P{NVF6-d0b^qUWMlzlWdUYp0cU3cXlM 78 | axX#r|#0c&dkY-|B-Z2@j>0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc> 79 | #KQJkg?^%&nV|dnPbniKwLeAs8?!PIJYq3V03Xs{mee11$t)cw=lK1ZZJ%Xd?z>Z 80 | )|K~awG#`ZEz+8aBOvRD+FX=b7(CCWN&mX1bSt1Z!iOIZe=k8ba!tu1$1a~Wo0u2 81 | W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGWoc(MgX1!G}yWprK!Y;R;?b7)@ 82 | yVPOGcVgX}g0c2zWWn}?oW&vks0cdCeX=wp!Y5{9&0c>mmZEXQ=ZUJv^0dQ~uad8 83 | 21ashL50d#Z$b#(!Db^&*H0eE-;d3gbPdOs_2x5Td+V+^*_{|Jk(H4u~TMq8eJM= 84 | D_eg5*ipR0ssVVZ*FDSKfd5E4dt|K_z&S8_xV!Z000000RR60000000 90 | 8kVVUkpGd$`Y%tH+|x7jy#}XjniyMKGzRN8C=se)CB>A-UGmW9Y=e&Z9u6<(rzBu 91 | eZ)?$hH?$m+=@s9b91v+4VL$$c_gyK-vkb1V>yr3U)7OiEGa`mzoq#(6;V_O`>9x 92 | R8a*>q2D50xZ(4$R31H0PIsUw_;fcDKIn~;D0000000000|Nj6000000RvszPSJX 93 | ZN=}v83nST!Iacp(F8sifA!NybC^8=Jn2t3iEoy@J9k$WaEUx}!s`ym)GDo%67tO 94 | |Gy=Bof+a{&MV0000006+i$0000009>I-SY72b?vbnl1H>1Nsg8a>I`c#0nSFF19TD^=GS9xEuuG0V@n0eX6ANi>WNCJ3b7^91 96 | WdH4q11PWtiZggo)X>4q11qE$sV{&f 97 | >31nqsX-#Qka&HF;V`Xl1X-#Qka&HI(Zeeb32?%6mV`)xdZf^<+V`Xl1X-;8oZwm 98 | x)X=85;2xMhrX;5inZw(1!Wo~q7P-$at4h3dqZFFxB31nqsX+~vjbZ-y}V`Xl1X+ 99 | ~vjbZ-#^VRUqF5?~d;=Lck|^or*l)JV$o16%*=+hXtc4aj*yhWL>WK?5WNdS!BNF 100 | avLHWibPEcW*KUbZByAWite3Z*_7s1ZHV=Wio 102 | @QBeU>QUOy_0aR20RaF62RsmO60a#c8Sy=&ET49DF(R;4&W&+>mb;*F>vukd;=m` 103 | ygb@x#_>`RmOO#=c2W?^h|WdH`W>k?z4yB1H2Xl2|ba`-PkM=L%t#9W3YJy!`Re3y$$a1YODV 109 | XIBla>6Wiaa}K2V-bqa&u*LkM=L%t#9W3YJy!`Re3y$$a1YODVXIBla>6Wiaa}Ka 110 | *n2om)>+B_9|IvuuF#~1iwYr-#C?=ekSLqB#`8-13v_MWpZyY18;6+F#~jWZ!!gR 111 | XmVv`GX!RDb#gQWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjO&sK>P*4F;Q2|m?0aH@}R8# 113 | >~RRLC30asT6SXcpBSpiyF25fI+VRL9-0byYQVqyVfV*zAj0cB+YW@Z6rX8~wv0c 114 | mLgYH9&%YXNL*0c~voZf*f@Zvk*{0da8wa&iH4a{+X80d;i&c6I@GcL8{K0eN`=d 115 | U|trLvS{eAW6+Al?bYFeB*+hvPCXc=uXu9E>j2pLB 117 | $7uaG4rw<`9saT1WDh5!Hn000000RR90{{R300DxDn2lR 118 | WAI?Tm3AJ0J9DT3%h_gCFnv2AP8lmIubiGld%-d|T7z@-B^7xU$ig 119 | sTXqNww_EvvDF-UGmW9Y=e&Z9u6<(rzBueZ)?$hH?$m+=@s9b91u@3v5sglqN)C` 120 | *FbNba(@Hm9%7GSh?&`oz~QTblg<)0RR9100000C;$Ke00000h>TceV>4NmyOwH13hJ6Wiaa}K1O 124 | fmAZf|a7*gwADFAe3iZ1@l19{2t5VaJV^T`{fc?xMUvnKPbj0R(ezZDkm@1>s$}> 125 | vwm-`P?*~@NU^2lz=Zys}J#chLs9)jDC+ej~gaaD&)?_rinzLQ&_n0fy*Yd 126 | yZ9}hJM#tt1$JR1@dg40ZeeX{ZfD+nbv$d;X 130 | LR^-MKElnV?dV>&fpvE%8?-auJ4n-^@a&>a%E#_b7^mGT?51yjj4`)KRWY6X>N95Y-wara&K>D0~Bd)b9H8BX=7<+Zgf&*b7gXNWpe}+ 136 | X>N0MW@c$)X=QG7LvMCva$#p>1r=#?b9H4!cw=Q{WOG4mY;SjAZewKzqk=;7%h%D 137 | +p%U7S;b1RT)c9`>#Kd;Rz-U=aO9W+B1pz8ss;p3n{|Sv13rH;f*u2mhk-*oqT{0 138 | nV)po0K>)oZ#`!aPC2Yyc<$zXDlf<&Mmp^R+W^_bcVS2e5$Ue^EwrY<;26H$a1JD 139 | sMvd20sfjCICqGWM}19*F@#XVmjaq%az$ 142 | 04KD-Vbij2IPrk>V1p#I<+GM-+ygbSEB1JD#cc?f7&CQhnYs6=vIZVN#w2!iat)L 143 | c}<}CbdN>_$qQw_b!lPsq8*H7AOVOuK}28#%gJ7jQqgpV60Q!3=n#-@oxpi@}5@P 144 | W%Fv%B~$o;&jZ0000000030|Ns900002CALmz2;DYO^VP;=uuCfU*mJ%b7mQ5gJn 145 | o@QBeU>QUOy_0aR20RaF62RsmO60a#c8Sy=&ES 150 | ^;5U0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~ 151 | 0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX78D3P(oYQ^>D5Lu%jciN~UGoeFU(?$r 152 | h3j_QCeU(K63Iuv(a&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_ax?^HX?A5b19NG3HU) 153 | EKc4cli1!ZYxXmmIPZfS01IllZJ{AQ&Y{bW*VIunOL=kX9N3%>t4!A4H=_ds@ZTm 154 | =CotM$1O6c@UqIn-Z!6?La^OW}HT7+ugYHG0&^E$N2GrCQbY>njuo*`hZ^&4JOTb 155 | ;79dnRe%+n#Xt7UOlx41m;+OEcST6gIVN=cD;^N?KWp?nYaleMc%`0D|O6*W}ngzThtn<+N=058)p7{qSMOjh9_9t?B 158 | Nfyg->Vo@@XB-h6dDYt?6T_;N)sY@}mAmk`e28|})GApEZHlfU(b1_K6kX=7_;a) 159 | 4K^2lRWAI?Tm3AJ0J9DT3%h_gCFnv2AlTS#F>3Xo9YKQ;Tlg9WGn 161 | 5m)2^IEdiz2Gxp2N10<_i1#?o%bldW=g<)D%W58v8gxp-1^NU600eGtZe`d%zTht 162 | n<+N=058)p7{qSMOjh9_9t?BNfyg->Vo@@aGb8l^B55vx6`R 163 | XPesE755vx6`RXPesE7S+XYD&<_B@7FdvLwh?!jlXKMox1bSt1Z!iOIZe=k8ba!tu1$1a~Wo0u2W^Z+JGz4a8c4a 168 | jKb7^=s1#@L~Wo|bGWoc(MgX19W9>K?Y@PWp-t5LI!kqWo&k3LkM(eX> 169 | xRBWo|?WW^Z+JbY*33MF(bSW^`p`ZbtIDB!Cv4eL6_}05B~d-+;N}5sv|)Tc&j_e 170 | b0gK2sj8FtG~n8CcwYZ>30fOpeZskt`?6&l-r#0;SW8UbNp0b*hSV`BkiWC3M 172 | m0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{ 173 | r)cXt7Jcma8N0eX7-saSFvJu_4WvuML_T7r2AV9eq<{=Bc@iMp6M)!KLg00E7csW 174 | F;3a3A@4JbhVx@#t44UssnZVqFkI=R@wQ6-NvJ15!sq0|3yV4*&oF0RRM`4~>_pF 175 | `77VANhJbeOZ0+=vOCSSC=YcT@XU&L++{-M*si;E{qApy}4ROl}jmztVoHYT(^9X 176 | 3Y7SZ8Z)(aEkpY~00mM#!wSY=~6@jI2b%^Ho0^4h` 177 | N6bqMfQQ6em^T$yfj)VXK2V-(&VRU6=0b;l_K%3oNk|D3>jgMiHNFD$nH%jLO?ZJ 178 | GP>y9~kh5-NsWMOn+0UbgMWzazyQWzbJ0`uB~s+m=Ng446R2b*47%pg27;{gB+X> 179 | )URWn@!zaBysS0f>xPWn((=JC(Q18jXtb+QHlu3zu?H+0@$e$59-PgaH8#a%FIAV 180 | Pj=vQ+04~YV>pY;13LVQyn(0s#O43w3 183 | a0VRU6uX=iA30RaF200BmOtbsYP^%MO!vmSIsorVgs_HZ-Wn$&XU+C3lhihBeHV{ 184 | &C-bY)}!0RRC21Y}`!VE_RD0RRkXb8~fNWK(r;aBO)10RRC21aoj@V*mjF0RRLFV 185 | RLh3bWe9~WpV%j0RR69Vs&zEMR0FpXaE2J0RR$dZf0y@bZKvHL2PVqcVTX0WdHyG 186 | |NjehaAaY0Wm0KpXmkJo009610|5gB1_VNNa&7?uF^Mk0V 190 | RUJ4Zb58pZ+BsCV`TvV|NjCDVr6b+W@%$-VRCr^3So0|Wpqz>Ze?-+0RR66W_5IR 191 | a%BM$X>Mk0VRUJ4Zb58pZ+BsCV`TsU|Nj640RsdE0SjVfZe?a^V`*V>c?nN&Wo|` 192 | qZ)0cy00035b#rB80SRJta&AR%Z)0cy0096331W3}Zc=GyXmkJp00965Ze@6M0SR 193 | Jta&AR%Z)0cx00961009YNb#iV}X=iA322y2iVQpmr009GTWp@Dtb8uy20RRC20R 194 | (k(Wn=*hb#P>1bY)U$XJ~W*0096224;11b#i3^3w3a0VRU6uX=iA30003100037W 195 | _5IRa%BfnWpHd^V`TvWF^Ze?-+0RR66W_5IRa%BMtVs&zEQfX&sbN~PW000C50s{pB3u0w%WoB 198 | t(X<>4C2vl-mZgXa3asU7T0SIt%Wp-(Ab#nmZe?--0RR600RjOFVr6b+W@%$-VRCr@p@*K2R=w8!jH4sDP 200 | dVUVWICprIU$jh)(lLFe0u@N0SHubVQzC~WpYRW009|og(=AP+C)tiPK}(5y`B$^ 201 | i2_%Xzy^d7vHg1k5H90tF4%ya@=dSJu9IL;>*e1Zg(dl;zh@Se)i)R+C0ZK 203 | mX5VlzrFd~pb0000000000|NsC0000003v5sglqN)C`*FbNba(@Hm9%7GSh?&`oz 204 | ~QTblg<)178JmaA9L*AOvN2V{9P?admHWWpg3~Xkl|`BL-w|Y;0k2BnNP1a${v~b 205 | R`L4ZE$6Bb75{|CJJG2Z*z2VZ*XX3CkSG4VPk7$bWA7+Vsc?)Yh`p&DF|V6bY*gB 206 | b89LDaBOvRD+Ob3ZEayJ1#M|=b#pBPWN&mX1#@g+b7(IFdS!BNFavLHWibPEcW*K 207 | UbZByAWite3Z*_7s1ZHV=WiCgZ)|UFI|OWHb8|ceWpQ<3Y&{2Oa%Ew3WpX|Uadl;LbZKvHKLTNNKmkEP0Y 209 | X9nLqh>XL;*!b0Y*jvM@IojNC8Pn0ZK{%OG^PvOaV#Xj}?&aYAxo 211 | V{2t}Qe6dOVRB`3UIuJ$WMOk?UkGAhV{3G2V{2dmVPOGcVgX}g0c2zWWn}?oW&vk 212 | s0cdCeX=wp!Y5{9&0c>mmZEXQ=ZUJv^0dQ~uad821ashL50d#Z$b#(!Db^&*H0eE 213 | -;d3gbPdI@7fa$#d@Wpqq?1aN6^Wqb)^LULhaYh`p&eFb!BY-DAA4$>Ms8HM=uUm 214 | E|%CLL8DYpYB02F=7s{mYlP#7GIv1_A_iba-#*YCz3gCHcMLg#T%!5i+MiDNX7aiufEJ#8I!OHhFfAY7fVtxlj{%}vrgbfS&w=jiig<^P^iq%O>z;nx4d6w&I5o0Zgp$`19NX^0RwY%cme}uba(> 217 | ;Wp8u@17&V;1p{GYYX$>iWo!omVsi)rXmkkzY-S1qc618@W@ZcmV{#1wb8ij;b7> 218 | C)WNc*+17u?{5d&mnG71&2WMecG1a4ttYZU`?d2SX1WprW}17l%s7y@N&83 219 | S{5Vj2Twb7LCZ)|K~awG?EWpZO>ZgeFHVQp|_a&uvBWF`t>aBp*Ta&K^GWhV$?a$#d@Wpqp^ 221 | 2x4+!V{2t}QYi>wb97~LX>)5T1aNG1b1Ma7Z*6U1ECp?8Zgq1l17vS>E(LRJVRL9 222 | N1bSt1Z!iOIZe=k8ba!tu1$1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGWoc 223 | (MgX1!He)Z*DpXb7gI5LvL(vZaV~QWpi^p1!Zw{VQf7IXL4m>bY*fr2y 224 | t~~b98BMZa)HHbU*P*4F;Q2|m?0aH@}R8#>~RRLC30asT6SXcpBSpiyF3UhHna$#d@Wpqqi 226 | 31VSmYg24tb7))&b8$j)VPk7$bW&XfV_|Y-bY2E*Z)9O}XkQ3oVPk7_X=7_(0byY 227 | QVqyVfV*zAj0cB+YW@Z6rX8~wv0cmLgYH9&%YXNL*0c~voZf*f@Zvk*{0da8wa&i 228 | H4a{+X80d;i&c6I@GcL8{K0eN`=dU^?CLULhaYh`pydjxQ4aAkZ6V?uIaV{2t}Qh 229 | fz4R=egkA>Y=0OUq2ujzy-}mg+ibEJ3)Bsbjc3&2vsPnoltFZ`R6~N~QW 230 | U2Iu=N;5Y%Jc(U|Lfag@AnPJc|wNxkqw}4<9w&x@J^JY| 232 | $Mh>NkDHzL?ZxWNw7!I9y+{RnQn@2DI{;m7yr3U)7OiEGa`mzoq#(6;V_fM=clFVh5)WAu*{~p=hOUD%Mj!oMucJciLR}{$ 234 | hp(1PX9+Wp+<>bZ~Wa=xRXCTqXIv;)MTcr4cfxK`S9uy$)6q!N22#m0-mN33F*@Q 235 | )6;zaCA6z1hGqe4n}Q9o)<@bBy=Qy_yc6@Jxi+hIw1E!bZZE6WpQ<7ZewKu8Eu6r 236 | $oASqO%+a!oQ%Dm4~>ZeT05|jA;vvYupWm8cWHEPWpi_LcSCSClORdWD3u7RaeU) 237 | ~ow7wPRp?IC{4PArE&!bztG~n8CcwYZ>30fw<32;hs$B9ZCsU(1!DsC|W1LOd&b_IRG-(&Q$wPGo0j1CTGIbLNeor6C 241 | U~-azM4%p_jBMKVnA!_hHLM3-*COQLmg&8HT!!`G-(7bBYW_LLJlQmbP?SK4jHsh 242 | |UIQQmbv0iw00eb4Uoim$bv0iy0t9t6Uo!&)bv0i!1O#<8Uo`~;bv0i$1_X6AUpE 243 | H?bv0i&2n2OCUpWZ{bv0ixFbV~AHD56?3k7vGUokQa1$8xFF*6MXbv0ixG!6xIHD 244 | 56`4+V8KUokci1$8xFF*gwfbv0ixI1&YQHD56~69siOUotQh1$8xFGBFhebv0iyG 245 | 8P4OHD59_7X@`SUotcp1$8xFGBp_mbv0iyHW~$WHD59}8wGVWUotox1$8xFGC3Uu 246 | bv0izFdhYUHD5C^A0?~xxe^o?x}!PNUwajGr*TW+dUY6G&@nZ7)X6RBh6Mox=2(9 247 | $_ISU8S>%Xzy^d7vHg1k5H90tF4%ya@=dSK498GLjv+DX03WGG8V-FxLLzo( 249 | 5@daCLNZcfh#TZjaDzzEm0^qKfYLsM@vkn#_U&6sk_!jm>>j2XA$BaCLNZvVyIk7 250 | MbQO{A@~BhGA0;y~>j;ruNrQ+G}B3D;5Te2yAa-YgB1%Wi{Fz6*(YoyWQNR!##&F 251 | >hhbX+H~JN$bujoP8PMf94cF?tWb&n35^vCNG$%?ywDnvz}K{0G9hl&cB^sg-3J` 252 | 2zr)xjz`xPycM6D}`pk=G7OeqFKI{;-SrsrMkU}5;EhQN_2LjonNK1L*iRZiWsLI 253 | #-T`Rz)_(vVOZ==9G0~!HAK>P*4F;Q2|m?0aH@}R8#>~RRLC30asT6SXcpBSpiyFEz#OYN$6`1d 255 | (R?%l%4dE;psM`z20{rsAz5*FkEmW07x;8%Aj(G3)xaIsZm;LsuY+jte!uyUZPTt 256 | us~8Lr=bP`3SxC~ZcuV>Z)S5xvr`~b_&>p|I=+ZSHXzGneTL3no@QBeU>Q 260 | UOy_0aR20RaF62RsmO60a#c8Sy=&ES^;5U0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y 261 | 0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX5 262 | h+8q@+Aa1+e+@!-jhcW8%o2S}z-#y5JARJB>wYeMx0j1CTGIbLNeor6CU~-azM4% 263 | p_jBMKVnA!_hHLM3-*En?qu}gdoMr}u)7e{?0bR>WH17z$yORD!eAooFZYXt!%tM 264 | $1O6c@UqIn-Z!6?La^OW}HT7+ugYHG0&^E$N0lirtAgHu%6y2R$D}O_e3jmZ#TMa 265 | +dmLJ=?19s6&(kGyy?D0YX9nLqh>XL;*!b0Y*jvM@IojNC8Pn0ZK{%OG^PvOaVmmZEXQ=ZUJv^0dQ~uad821ashL50d#Z$b#( 268 | !Db^&*H0eE-;d3gbPdOXphoy@J9k$WaEUx}!s`ym)GDo%67tO|Gy=Bof+a|0~|Wq 269 | 4z3Ap~e)b7&(5WN&P2VR9q`VQp|G1aNG1b1MX7VRL9L17vS>E(CgIa&IsLZ*FBV1 270 | 9W$9G6i&Ka%E*R1ZHn_ax?^HX?A5b19NG3HU)EKc4cli1!ZYxXmmIPZfS01IR#^3 271 | a%FU025fI+VRL9-0byYQVqyVfV*zAj0cB+YW@Z6rX8~wv0cmLgYH9&%YXNL*0c~v 272 | oZf*f@Zvk*{0da8wa&iH4a{+X80d;i&c6I@GcL8{K0eN`=dU`)Aa<{~<8ep?nYaleMc%`0D|O6*W?8OW2z$*=&?u0vV`BWnw}8RoT}CO>V%FwxrCjOXV 274 | x@IMYn(@h5^MUvO8NyVMYp&P~kr{`@Vw(r~naH;kFK+d0H97bAybczVb@xPq-Dzr 276 | 4oJgUK7OifU&ls!tbsYP^%MO!vmSIsorVgs_HZ-Wn$&XU+C3lhihBkD2y$g}WpZ| 277 | 9b4RmNAXE51!L2&Jh($Ia%Vd3q&R*o>-d45AI6^+T%}29SAXE51!L2&Jh($Ia%Vd 278 | 3q&R*o>-d45AI6^+T%?S?D8ao+<`1M~J|HmdBRUd1sOY#QI#7OYp6avD7|R0gwX!*5!Gc?n?5;yM1jui=Thm^szjcmMzZ000000RR6 282 | 00000009GC;&{xzx0_jd|U73Fl>Tzs!yBgyX`N76h+VcaHPzXHHqMgjGn~{4aFkg 283 | wNr28QlFe*-S#jFZ=4d$x=UULBe00000002M$00000003N}NmyOwH13hJ(~}Y-IohWMyM%0R>}aZggn^1#M|;Y-s}tWMyM%O=)awX#@&mWo~q7 286 | O=)awX$1vsX=8G41_@+kV`)ukV{&f?3S(t%bZJd#V{&f@1a4t&ZwUxwWn*bhVQy~ 287 | <31ek$bZJguZf^?&aA{+23`!Wo>kC4+&&tV`) 288 | ZZZFFxC3S(t%bZJIqZFFxD1YvY^ZxUb?z~={Ksq~8H9n?t5^aES}>)T@Q_YKH-LW 289 | cN}4?zPY1bSt1Z!iOIZe=k8ba!tu1$1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~W 290 | o|bGWoc(MgX0YO0lLP7yULjgoY0YyatMn(ZgM*&Dk0ZB;#N=gAsO94zw 291 | 0ZmN-PEG+&PXSO+0Z~x_Qc?j^Qvp;|0aaB2R#pL5R{>a90a;lAT3TU-BGG%U@MZ$ 292 | v=XJ?|;InIPy66cFfOYp#JM2r7_Dur<1!iGvb7cSobaHiN0b;l_K%3oNk|D3>jgM 293 | iHNFD$nH%jLO?ZJGP>y9~kh6MpF(b`B!=xYvp&mw-5o%E66={BRi-ghCWXl@%YTy 294 | P^}sv{KWu}8?Vgx|B8o)FQTs@3}HgpNG9gq@LR)-*~8`>9xR8a*>q2D50xZ(4$R3 295 | 1H0PIsUw_;fcDKIn~;D0RR9100000{{R3000000W-{7jyY;+0$@L;dFH?7@I0Vhj 296 | l>lqRXQ4Sv!J@Q}07PdUxwmH*`NL~G`BOJt?Xr$1fCw}4<9w&x@J^JY|$Mh>NkDF<_PVsv?MWsmkR;H_`w{%V 298 | 34N{X9r_wVRCb2bdUBg;H_`w{%V34N{XL63FikIGWAoeO*X|PL&CIr7l*55dloPH+frzDW%tph&o 302 | @QBeU>QUOy_0aR20RaF62RsmO60a#c8Sy=&ES_W)yWMOk?UjboZ0b*hSV`BkiWC3 303 | Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d 304 | {r)cXt7Jcma8N0eX6KcSCSClORdWD3u7RaeU)~ow7wPRp?IC{4PArE&!bc0mr3U) 305 | %NQv6bIR&H$}~X(WZ66sPLI~=cAg(ch_D$wRga{)^3l`ZoX6+A)<=z_^8^o^qS0q 306 | 0~D%G+l|eAR0tVIEf?5g2d57qF{xOgXr*o{)>A*6W=t7(+FbemVukmmQBm47aRFOswrHLs80ahL 312 | <&{xzx0_jd|U73Fl>Tzs!yBgyX`N76h+VcaHP>=R6;H_`w{%V34N{X9NNO1a5C`W!OKy;4cm3v~2hf;U4$>@L|V|mt8Tf>F%PuK$$b1Yy 314 | kvwZ*655w*}!{x$Ad#!TH=Yp73tj9+ZGDO{)*_d4`n=bBunFJ7jQqgpV60Q!3=n# 315 | -@oxpi@}5@PW%Fv%B~$o;&jf0tI$qY;|Rq_16YMt|~K4NmyOwH13hJMoUe04l))n|10az!v~q+>vr5YFHm?aGlL{I2hlzx9R*aB^j1X>)0BZe0V!7 320 | mcZoem^?%L*to!bRZoO^d~aUzM`;8jz95VBB3$Q<#&`&0chaasUHUfle3k7vFUokQa1$8uEF*6MXbu? 323 | cwG!6xIG+!|_521&ik5;|b{fwg{xlcLZU}QR`nmHknl-3MPihO$k$O8rrb9HcVY< 324 | W#-b8TUCV`u>nZf|ZyadlyAL2Yk!Zgg`33~6q5VQgt+P;zf?W&;#yZgX{JW@%$-W 325 | o~p*Wpib6c4cz}6lrdAb!KL1V`*h>bVF};WpZI>Wd#*!b8~fNMR;RnWn^7Ze$2%Z*_8XWo2$<2WDwzbY*33W~h9|d1Pnh 331 | SJy=4$znR-49k_-8VxT4-*mur5>LLzo&^DBGTLOj^}IaE^&&+tQ+KF11kKHr0Bgi 332 | &p*c*!qO^~)f~}wyndU6~Y)V&#VN(sg%9AXn_Sa9^Yhha}76yw5kUL~>d4!J}CQ~ 333 | Zp&c>#RM4(exxbT6?CbPTvEuK5`0000000000|NsC000000wjbwLPT+#;sbOYcX0 334 | EacFqRS{kd{p#WSb|o=g4&w1_A_hd2nTC9l5t>7x}|$Jo!^MUG1`tCx8jkVz2mWB 335 | j174Z9bs}WNBw*b95?Os;p3n{|Sv13rH;f*u2mhk-*oqT{0nV)po0K>)pDb9wvivQ?KZsgQ9)}m{mMgX0YO0lLP7yULjgoY0Yy 338 | atMn(ZgM*&Dk0ZB;#N=gAsO94zw0ZmN-PEG+&PXSO+0Z~x_Qc?j^Qvp;|0aaB2R# 339 | pL5R{>a90a;lAT3P{NVF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dkY-|B-Z 340 | 2@j>0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQyeN^e#%jg&<`7w< 341 | Aa~lRBQv2xThm4evkL?K0ezK40}2FsWpZyY18;6+F#~jWZ!!gRXmVv`GX!RDb#gQ 342 | WW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjVh59{gsd8U18ZYC02#KAOx^Y=h@bX)}iC9Czh5)>D@qdC-Hdlhx3aZBNPbr@aHF*SPB$t~%I$E8};_U 344 | kJY2ic-GMa_ZHrgg%o@R@e!qngKe*Iqrf2n6O>e=PQRzk^xih<3e>RP8oyjwdxaI 345 | A{*p){f_{?f?J)000000RR90{{R300LuT5uCs~&piVX+Q;&{e*II?7Wy=ZbFl?k_K$j5C;2Z7Aks$o8?~} 348 | jvh6V!$bZKL2WpaR5t_Spck~+-AHXqMG*(rkPLHAePS+Q+<+sNv^nWY47VQpnl6c 349 | AqwKqkr(tFAYF;%|;TpkR&DY)C%W4@VhX(=^lvWMy<=X>4;vw}2&v0mUY=J6lL$M 350 | hcKn;XgI|zJmp*01;Q@0XT@@@CMb2Mn{=rV2JlP&dZ&oyywsm?#pT(j~aAJ!v*>T 351 | 0ssVVZ*FDSKfd5E4dt|K_z&S8_xSsKFP7nY4g;Flf93~qr!XIkUWl1p1!rpm5CnQ7Zbb)XX=Zd~Wo}0Dx+H)Wo_#t<{Qxj6AK 359 | !qv;}MSmqFbhQEq%{{?+7>u9IL;>*e1Zg(dl;zh@Se)i)R+C0ZKmX5VlzrFd~pb0 360 | 000000000|Nj6000000`4m;t2@#H=ITLm*{QiV2NfFIf5Z%-0~!Hg 361 | VF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dkY-|B-Z2@j>0dH>saBu-}aRG9 362 | 20dsQ!baVlAbpdvE0e5!+cz6MMc>#KQ`>9xR8a*>q2D50xZ(4$R31H0PIsUw_;fc 363 | DKIn~;D0RWg7DAxZl)URW 365 | n@!zaBysS00000(+3A*a%Ew3Wn=&V0004?4+>#(b7gc-cWz~J00000009su2vl-m 366 | ZgXa3asU7T00000000000GJpk*8ec%bQl6%%>00000(+2?n2mqcLFl7J$0004?4*>xH0|6FAGTMlwbW1fJT-k-4GKmS>-O 369 | J0SD8ec@ng5^M7ytnP005v2ROBMsTIL7<%9=X>0002*LCl;5w2f8-l53SJ%KdB9q 370 | y^||hH?L8)L8)o@Dz#w00000000000000000 371 | 372 | -----END RGB CONTRACT----- 373 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "aluvm" 7 | version = "0.10.6" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "e624a600eaf54f24da48e42604ffb0fbd543808a078e5081a9441243077233df" 10 | dependencies = [ 11 | "amplify", 12 | "baid58", 13 | "getrandom", 14 | "half", 15 | "paste", 16 | "ripemd", 17 | "serde", 18 | "sha2", 19 | "strict_encoding", 20 | "strict_types", 21 | "wasm-bindgen", 22 | ] 23 | 24 | [[package]] 25 | name = "amplify" 26 | version = "4.5.0" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | checksum = "8629db306c0bbeb0a402e2918bdcf0026b5ddb24c46460f3bf5410b350d98710" 29 | dependencies = [ 30 | "amplify_apfloat", 31 | "amplify_derive", 32 | "amplify_num", 33 | "amplify_syn", 34 | "ascii", 35 | "serde", 36 | "serde_json", 37 | "serde_yaml", 38 | "stringly_conversions", 39 | "toml", 40 | "wasm-bindgen", 41 | ] 42 | 43 | [[package]] 44 | name = "amplify_apfloat" 45 | version = "0.2.0" 46 | source = "registry+https://github.com/rust-lang/crates.io-index" 47 | checksum = "f5b7f29fad2a3def5dfbfed0da85b886eb927a18fe0296c06e39880b7a96db05" 48 | dependencies = [ 49 | "amplify_num", 50 | "bitflags", 51 | ] 52 | 53 | [[package]] 54 | name = "amplify_derive" 55 | version = "4.0.0" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "759dcbfaf94d838367a86d493ec34ccc8aa6fe365cb7880d6bf89006de24d9c1" 58 | dependencies = [ 59 | "amplify_syn", 60 | "proc-macro2", 61 | "quote", 62 | "syn 1.0.109", 63 | ] 64 | 65 | [[package]] 66 | name = "amplify_num" 67 | version = "0.5.0" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "ddce3bc63e807ea02065e8d8b702695f3d302ae4158baddff8b0ce5c73947251" 70 | dependencies = [ 71 | "serde", 72 | ] 73 | 74 | [[package]] 75 | name = "amplify_syn" 76 | version = "2.0.1" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "7736fb8d473c0d83098b5bac44df6a561e20470375cd8bcae30516dc889fd62a" 79 | dependencies = [ 80 | "proc-macro2", 81 | "quote", 82 | "syn 1.0.109", 83 | ] 84 | 85 | [[package]] 86 | name = "android-tzdata" 87 | version = "0.1.1" 88 | source = "registry+https://github.com/rust-lang/crates.io-index" 89 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 90 | 91 | [[package]] 92 | name = "android_system_properties" 93 | version = "0.1.5" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 96 | dependencies = [ 97 | "libc", 98 | ] 99 | 100 | [[package]] 101 | name = "arrayref" 102 | version = "0.3.7" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 105 | 106 | [[package]] 107 | name = "arrayvec" 108 | version = "0.7.4" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 111 | 112 | [[package]] 113 | name = "ascii" 114 | version = "1.1.0" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" 117 | dependencies = [ 118 | "serde", 119 | ] 120 | 121 | [[package]] 122 | name = "autocfg" 123 | version = "1.1.0" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 126 | 127 | [[package]] 128 | name = "baid58" 129 | version = "0.4.4" 130 | source = "registry+https://github.com/rust-lang/crates.io-index" 131 | checksum = "bc0585242d87ed976e05db6ae86a0f771f140104a4b6c91b4c3e43b9b2357486" 132 | dependencies = [ 133 | "base58", 134 | "blake3", 135 | "mnemonic", 136 | "sha2", 137 | ] 138 | 139 | [[package]] 140 | name = "base58" 141 | version = "0.2.0" 142 | source = "registry+https://github.com/rust-lang/crates.io-index" 143 | checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" 144 | 145 | [[package]] 146 | name = "base64" 147 | version = "0.21.4" 148 | source = "registry+https://github.com/rust-lang/crates.io-index" 149 | checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" 150 | 151 | [[package]] 152 | name = "base85" 153 | version = "2.0.0" 154 | source = "registry+https://github.com/rust-lang/crates.io-index" 155 | checksum = "36915bbaca237c626689b5bd14d02f2ba7a5a359d30a2a08be697392e3718079" 156 | dependencies = [ 157 | "thiserror", 158 | ] 159 | 160 | [[package]] 161 | name = "bitcoin-private" 162 | version = "0.1.0" 163 | source = "registry+https://github.com/rust-lang/crates.io-index" 164 | checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" 165 | 166 | [[package]] 167 | name = "bitflags" 168 | version = "1.3.2" 169 | source = "registry+https://github.com/rust-lang/crates.io-index" 170 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 171 | 172 | [[package]] 173 | name = "blake3" 174 | version = "1.5.0" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" 177 | dependencies = [ 178 | "arrayref", 179 | "arrayvec", 180 | "cc", 181 | "cfg-if", 182 | "constant_time_eq", 183 | ] 184 | 185 | [[package]] 186 | name = "block-buffer" 187 | version = "0.10.4" 188 | source = "registry+https://github.com/rust-lang/crates.io-index" 189 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 190 | dependencies = [ 191 | "generic-array", 192 | ] 193 | 194 | [[package]] 195 | name = "bp-consensus" 196 | version = "0.10.11" 197 | source = "registry+https://github.com/rust-lang/crates.io-index" 198 | checksum = "0d7b87840e5fc65bcbcd3881e0a0150ecef4a9b18b1356eb7a8a9adc85280c63" 199 | dependencies = [ 200 | "amplify", 201 | "chrono", 202 | "commit_verify", 203 | "secp256k1", 204 | "serde", 205 | "strict_encoding", 206 | "strict_types", 207 | ] 208 | 209 | [[package]] 210 | name = "bp-core" 211 | version = "0.10.11" 212 | source = "registry+https://github.com/rust-lang/crates.io-index" 213 | checksum = "3a8b5219d96064b5d277c166fd5321ce6ee3e8a74e50bf2281d47726f365ead4" 214 | dependencies = [ 215 | "amplify", 216 | "bp-consensus", 217 | "bp-dbc", 218 | "bp-seals", 219 | "commit_verify", 220 | "serde", 221 | "single_use_seals", 222 | "strict_encoding", 223 | "strict_types", 224 | ] 225 | 226 | [[package]] 227 | name = "bp-dbc" 228 | version = "0.10.11" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "e265b111f61acb39cf36778c4da9a3d3c49fcc7a7e4116fd40ab250d598b1280" 231 | dependencies = [ 232 | "amplify", 233 | "base85", 234 | "bp-consensus", 235 | "commit_verify", 236 | "secp256k1", 237 | "serde", 238 | "strict_encoding", 239 | ] 240 | 241 | [[package]] 242 | name = "bp-seals" 243 | version = "0.10.11" 244 | source = "registry+https://github.com/rust-lang/crates.io-index" 245 | checksum = "8ccb60735209233ece5927a5c66355037af8479104b5ff55371ae4a0f53c96b2" 246 | dependencies = [ 247 | "amplify", 248 | "baid58", 249 | "bp-consensus", 250 | "bp-dbc", 251 | "commit_verify", 252 | "rand", 253 | "serde", 254 | "single_use_seals", 255 | "strict_encoding", 256 | ] 257 | 258 | [[package]] 259 | name = "bumpalo" 260 | version = "3.14.0" 261 | source = "registry+https://github.com/rust-lang/crates.io-index" 262 | checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" 263 | 264 | [[package]] 265 | name = "byteorder" 266 | version = "1.5.0" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 269 | 270 | [[package]] 271 | name = "cc" 272 | version = "1.0.83" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 275 | dependencies = [ 276 | "libc", 277 | ] 278 | 279 | [[package]] 280 | name = "cfg-if" 281 | version = "1.0.0" 282 | source = "registry+https://github.com/rust-lang/crates.io-index" 283 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 284 | 285 | [[package]] 286 | name = "chrono" 287 | version = "0.4.31" 288 | source = "registry+https://github.com/rust-lang/crates.io-index" 289 | checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" 290 | dependencies = [ 291 | "android-tzdata", 292 | "iana-time-zone", 293 | "js-sys", 294 | "num-traits", 295 | "wasm-bindgen", 296 | "windows-targets", 297 | ] 298 | 299 | [[package]] 300 | name = "commit_encoding_derive" 301 | version = "0.10.0" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "00033f14d67c4169d588f085ea2faeb7b610cf03a74d42ea09eeba31abef2047" 304 | dependencies = [ 305 | "amplify", 306 | "amplify_syn", 307 | "proc-macro2", 308 | "quote", 309 | "syn 1.0.109", 310 | ] 311 | 312 | [[package]] 313 | name = "commit_verify" 314 | version = "0.10.6" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "91d9d6e86f6cec8d4af19a0e418bac9cb266a6dc70660bcdcdac1e0fa924e0d1" 317 | dependencies = [ 318 | "amplify", 319 | "commit_encoding_derive", 320 | "rand", 321 | "ripemd", 322 | "serde", 323 | "sha2", 324 | "strict_encoding", 325 | "strict_types", 326 | ] 327 | 328 | [[package]] 329 | name = "constant_time_eq" 330 | version = "0.3.0" 331 | source = "registry+https://github.com/rust-lang/crates.io-index" 332 | checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" 333 | 334 | [[package]] 335 | name = "core-foundation-sys" 336 | version = "0.8.4" 337 | source = "registry+https://github.com/rust-lang/crates.io-index" 338 | checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 339 | 340 | [[package]] 341 | name = "cpufeatures" 342 | version = "0.2.9" 343 | source = "registry+https://github.com/rust-lang/crates.io-index" 344 | checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" 345 | dependencies = [ 346 | "libc", 347 | ] 348 | 349 | [[package]] 350 | name = "crunchy" 351 | version = "0.2.2" 352 | source = "registry+https://github.com/rust-lang/crates.io-index" 353 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 354 | 355 | [[package]] 356 | name = "crypto-common" 357 | version = "0.1.6" 358 | source = "registry+https://github.com/rust-lang/crates.io-index" 359 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 360 | dependencies = [ 361 | "generic-array", 362 | "typenum", 363 | ] 364 | 365 | [[package]] 366 | name = "digest" 367 | version = "0.10.7" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 370 | dependencies = [ 371 | "block-buffer", 372 | "crypto-common", 373 | ] 374 | 375 | [[package]] 376 | name = "equivalent" 377 | version = "1.0.1" 378 | source = "registry+https://github.com/rust-lang/crates.io-index" 379 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 380 | 381 | [[package]] 382 | name = "generic-array" 383 | version = "0.14.7" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 386 | dependencies = [ 387 | "typenum", 388 | "version_check", 389 | ] 390 | 391 | [[package]] 392 | name = "getrandom" 393 | version = "0.2.10" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" 396 | dependencies = [ 397 | "cfg-if", 398 | "js-sys", 399 | "libc", 400 | "wasi", 401 | "wasm-bindgen", 402 | ] 403 | 404 | [[package]] 405 | name = "half" 406 | version = "2.2.1" 407 | source = "registry+https://github.com/rust-lang/crates.io-index" 408 | checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" 409 | dependencies = [ 410 | "crunchy", 411 | ] 412 | 413 | [[package]] 414 | name = "hashbrown" 415 | version = "0.14.1" 416 | source = "registry+https://github.com/rust-lang/crates.io-index" 417 | checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" 418 | 419 | [[package]] 420 | name = "heck" 421 | version = "0.4.1" 422 | source = "registry+https://github.com/rust-lang/crates.io-index" 423 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 424 | 425 | [[package]] 426 | name = "iana-time-zone" 427 | version = "0.1.57" 428 | source = "registry+https://github.com/rust-lang/crates.io-index" 429 | checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" 430 | dependencies = [ 431 | "android_system_properties", 432 | "core-foundation-sys", 433 | "iana-time-zone-haiku", 434 | "js-sys", 435 | "wasm-bindgen", 436 | "windows", 437 | ] 438 | 439 | [[package]] 440 | name = "iana-time-zone-haiku" 441 | version = "0.1.2" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 444 | dependencies = [ 445 | "cc", 446 | ] 447 | 448 | [[package]] 449 | name = "indexmap" 450 | version = "2.0.2" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" 453 | dependencies = [ 454 | "equivalent", 455 | "hashbrown", 456 | ] 457 | 458 | [[package]] 459 | name = "itoa" 460 | version = "1.0.9" 461 | source = "registry+https://github.com/rust-lang/crates.io-index" 462 | checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" 463 | 464 | [[package]] 465 | name = "js-sys" 466 | version = "0.3.64" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" 469 | dependencies = [ 470 | "wasm-bindgen", 471 | ] 472 | 473 | [[package]] 474 | name = "lazy_static" 475 | version = "1.4.0" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 478 | 479 | [[package]] 480 | name = "libc" 481 | version = "0.2.149" 482 | source = "registry+https://github.com/rust-lang/crates.io-index" 483 | checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" 484 | 485 | [[package]] 486 | name = "log" 487 | version = "0.4.20" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 490 | 491 | [[package]] 492 | name = "memchr" 493 | version = "2.6.4" 494 | source = "registry+https://github.com/rust-lang/crates.io-index" 495 | checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" 496 | 497 | [[package]] 498 | name = "mime" 499 | version = "0.3.17" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 502 | 503 | [[package]] 504 | name = "mnemonic" 505 | version = "1.0.1" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "29fae0e4c0b155d3b019a7cbc27abe4a90e15c06814d27889ce9f5f44e2faf77" 508 | dependencies = [ 509 | "byteorder", 510 | "lazy_static", 511 | ] 512 | 513 | [[package]] 514 | name = "num-traits" 515 | version = "0.2.17" 516 | source = "registry+https://github.com/rust-lang/crates.io-index" 517 | checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" 518 | dependencies = [ 519 | "autocfg", 520 | ] 521 | 522 | [[package]] 523 | name = "once_cell" 524 | version = "1.18.0" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" 527 | 528 | [[package]] 529 | name = "paste" 530 | version = "1.0.14" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 533 | 534 | [[package]] 535 | name = "ppv-lite86" 536 | version = "0.2.17" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 539 | 540 | [[package]] 541 | name = "proc-macro2" 542 | version = "1.0.69" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" 545 | dependencies = [ 546 | "unicode-ident", 547 | ] 548 | 549 | [[package]] 550 | name = "quote" 551 | version = "1.0.33" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" 554 | dependencies = [ 555 | "proc-macro2", 556 | ] 557 | 558 | [[package]] 559 | name = "rand" 560 | version = "0.8.5" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 563 | dependencies = [ 564 | "libc", 565 | "rand_chacha", 566 | "rand_core", 567 | ] 568 | 569 | [[package]] 570 | name = "rand_chacha" 571 | version = "0.3.1" 572 | source = "registry+https://github.com/rust-lang/crates.io-index" 573 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 574 | dependencies = [ 575 | "ppv-lite86", 576 | "rand_core", 577 | ] 578 | 579 | [[package]] 580 | name = "rand_core" 581 | version = "0.6.4" 582 | source = "registry+https://github.com/rust-lang/crates.io-index" 583 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 584 | dependencies = [ 585 | "getrandom", 586 | ] 587 | 588 | [[package]] 589 | name = "rgb-core" 590 | version = "0.10.8" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "74ace164ee5d1a2ba5224aee07cf365a69ca028b7bd1b3dc4906a4d1b889c246" 593 | dependencies = [ 594 | "aluvm", 595 | "amplify", 596 | "baid58", 597 | "bp-core", 598 | "commit_verify", 599 | "getrandom", 600 | "mime", 601 | "secp256k1-zkp", 602 | "serde", 603 | "single_use_seals", 604 | "strict_encoding", 605 | "strict_types", 606 | "wasm-bindgen", 607 | ] 608 | 609 | [[package]] 610 | name = "rgb-schemata" 611 | version = "0.10.1" 612 | source = "registry+https://github.com/rust-lang/crates.io-index" 613 | checksum = "93b7eeaf94787c528ee1ae5066285fc253fee1d46bd65c1c3ed468d8a1ea26d1" 614 | dependencies = [ 615 | "aluvm", 616 | "amplify", 617 | "bp-core", 618 | "rgb-std", 619 | "serde", 620 | "serde_json", 621 | "sha2", 622 | "strict_encoding", 623 | "strict_types", 624 | ] 625 | 626 | [[package]] 627 | name = "rgb-std" 628 | version = "0.10.9" 629 | source = "registry+https://github.com/rust-lang/crates.io-index" 630 | checksum = "339c5bdeed7a4039d2ccc44f85d56559a9c60c88d48957fe00524a2c971fc0f6" 631 | dependencies = [ 632 | "amplify", 633 | "baid58", 634 | "base85", 635 | "bp-core", 636 | "chrono", 637 | "commit_verify", 638 | "getrandom", 639 | "rgb-core", 640 | "serde", 641 | "strict_encoding", 642 | "strict_types", 643 | "wasm-bindgen", 644 | ] 645 | 646 | [[package]] 647 | name = "rgb20-usdt" 648 | version = "0.1.0" 649 | dependencies = [ 650 | "amplify", 651 | "bp-core", 652 | "rgb-schemata", 653 | "rgb-std", 654 | "serde", 655 | "serde_json", 656 | "strict_encoding", 657 | "strict_types", 658 | ] 659 | 660 | [[package]] 661 | name = "ripemd" 662 | version = "0.1.3" 663 | source = "registry+https://github.com/rust-lang/crates.io-index" 664 | checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" 665 | dependencies = [ 666 | "digest", 667 | ] 668 | 669 | [[package]] 670 | name = "ryu" 671 | version = "1.0.15" 672 | source = "registry+https://github.com/rust-lang/crates.io-index" 673 | checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" 674 | 675 | [[package]] 676 | name = "secp256k1" 677 | version = "0.27.0" 678 | source = "registry+https://github.com/rust-lang/crates.io-index" 679 | checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" 680 | dependencies = [ 681 | "rand", 682 | "secp256k1-sys", 683 | "serde", 684 | ] 685 | 686 | [[package]] 687 | name = "secp256k1-sys" 688 | version = "0.8.1" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" 691 | dependencies = [ 692 | "cc", 693 | ] 694 | 695 | [[package]] 696 | name = "secp256k1-zkp" 697 | version = "0.9.2" 698 | source = "registry+https://github.com/rust-lang/crates.io-index" 699 | checksum = "026efcdacb95ee6aae5cc19144dc1549973eac36a4972700c28493de1ee5d69f" 700 | dependencies = [ 701 | "bitcoin-private", 702 | "rand", 703 | "secp256k1", 704 | "secp256k1-zkp-sys", 705 | "serde", 706 | ] 707 | 708 | [[package]] 709 | name = "secp256k1-zkp-sys" 710 | version = "0.8.1" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | checksum = "d03ab1ca75a18e1899e8d9b8d28b5998ae1ddcb42fec5956769718543293c723" 713 | dependencies = [ 714 | "cc", 715 | "secp256k1-sys", 716 | ] 717 | 718 | [[package]] 719 | name = "serde" 720 | version = "1.0.189" 721 | source = "registry+https://github.com/rust-lang/crates.io-index" 722 | checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" 723 | dependencies = [ 724 | "serde_derive", 725 | ] 726 | 727 | [[package]] 728 | name = "serde_derive" 729 | version = "1.0.189" 730 | source = "registry+https://github.com/rust-lang/crates.io-index" 731 | checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" 732 | dependencies = [ 733 | "proc-macro2", 734 | "quote", 735 | "syn 2.0.38", 736 | ] 737 | 738 | [[package]] 739 | name = "serde_json" 740 | version = "1.0.107" 741 | source = "registry+https://github.com/rust-lang/crates.io-index" 742 | checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" 743 | dependencies = [ 744 | "itoa", 745 | "ryu", 746 | "serde", 747 | ] 748 | 749 | [[package]] 750 | name = "serde_spanned" 751 | version = "0.6.3" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" 754 | dependencies = [ 755 | "serde", 756 | ] 757 | 758 | [[package]] 759 | name = "serde_str_helpers" 760 | version = "0.1.2" 761 | source = "registry+https://github.com/rust-lang/crates.io-index" 762 | checksum = "b744a7c94f2f3785496af33a0d93857dfc0c521e25c38e993e9c5bb45f09c841" 763 | dependencies = [ 764 | "serde", 765 | "serde_derive", 766 | ] 767 | 768 | [[package]] 769 | name = "serde_yaml" 770 | version = "0.9.25" 771 | source = "registry+https://github.com/rust-lang/crates.io-index" 772 | checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" 773 | dependencies = [ 774 | "indexmap", 775 | "itoa", 776 | "ryu", 777 | "serde", 778 | "unsafe-libyaml", 779 | ] 780 | 781 | [[package]] 782 | name = "sha2" 783 | version = "0.10.8" 784 | source = "registry+https://github.com/rust-lang/crates.io-index" 785 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 786 | dependencies = [ 787 | "cfg-if", 788 | "cpufeatures", 789 | "digest", 790 | ] 791 | 792 | [[package]] 793 | name = "single_use_seals" 794 | version = "0.10.1" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "ed7655b4b597fca10d2cf7579d3dfee1987a45342bdeecf90cab5affec1c7197" 797 | dependencies = [ 798 | "amplify_derive", 799 | ] 800 | 801 | [[package]] 802 | name = "strict_encoding" 803 | version = "2.6.1" 804 | source = "registry+https://github.com/rust-lang/crates.io-index" 805 | checksum = "ab7b75b4af0aff9dd97b68df262bf0e807b7d007cc860fa217943f898a05a5ab" 806 | dependencies = [ 807 | "amplify", 808 | "half", 809 | "serde", 810 | "strict_encoding_derive", 811 | ] 812 | 813 | [[package]] 814 | name = "strict_encoding_derive" 815 | version = "2.0.1" 816 | source = "registry+https://github.com/rust-lang/crates.io-index" 817 | checksum = "37064ec285e2a633465eb525c8698eea51373dee889fe310e0d32df8343e7f4f" 818 | dependencies = [ 819 | "amplify_syn", 820 | "heck", 821 | "proc-macro2", 822 | "quote", 823 | "syn 1.0.109", 824 | ] 825 | 826 | [[package]] 827 | name = "strict_types" 828 | version = "1.6.3" 829 | source = "registry+https://github.com/rust-lang/crates.io-index" 830 | checksum = "d10cc45e67d452cfe0d87d4714c3250190d97479af3502bbd823651bfe0f505f" 831 | dependencies = [ 832 | "amplify", 833 | "baid58", 834 | "base64", 835 | "half", 836 | "indexmap", 837 | "serde", 838 | "serde_json", 839 | "serde_yaml", 840 | "sha2", 841 | "strict_encoding", 842 | "toml", 843 | ] 844 | 845 | [[package]] 846 | name = "stringly_conversions" 847 | version = "0.1.1" 848 | source = "registry+https://github.com/rust-lang/crates.io-index" 849 | checksum = "ff63080f492dd4d289ffcaed8d7ece38adfb423db910eb342c0e04d409536a7a" 850 | dependencies = [ 851 | "paste", 852 | "serde_str_helpers", 853 | ] 854 | 855 | [[package]] 856 | name = "syn" 857 | version = "1.0.109" 858 | source = "registry+https://github.com/rust-lang/crates.io-index" 859 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 860 | dependencies = [ 861 | "proc-macro2", 862 | "quote", 863 | "unicode-ident", 864 | ] 865 | 866 | [[package]] 867 | name = "syn" 868 | version = "2.0.38" 869 | source = "registry+https://github.com/rust-lang/crates.io-index" 870 | checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" 871 | dependencies = [ 872 | "proc-macro2", 873 | "quote", 874 | "unicode-ident", 875 | ] 876 | 877 | [[package]] 878 | name = "thiserror" 879 | version = "1.0.49" 880 | source = "registry+https://github.com/rust-lang/crates.io-index" 881 | checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" 882 | dependencies = [ 883 | "thiserror-impl", 884 | ] 885 | 886 | [[package]] 887 | name = "thiserror-impl" 888 | version = "1.0.49" 889 | source = "registry+https://github.com/rust-lang/crates.io-index" 890 | checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" 891 | dependencies = [ 892 | "proc-macro2", 893 | "quote", 894 | "syn 2.0.38", 895 | ] 896 | 897 | [[package]] 898 | name = "toml" 899 | version = "0.8.2" 900 | source = "registry+https://github.com/rust-lang/crates.io-index" 901 | checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" 902 | dependencies = [ 903 | "serde", 904 | "serde_spanned", 905 | "toml_datetime", 906 | "toml_edit", 907 | ] 908 | 909 | [[package]] 910 | name = "toml_datetime" 911 | version = "0.6.3" 912 | source = "registry+https://github.com/rust-lang/crates.io-index" 913 | checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 914 | dependencies = [ 915 | "serde", 916 | ] 917 | 918 | [[package]] 919 | name = "toml_edit" 920 | version = "0.20.2" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 923 | dependencies = [ 924 | "indexmap", 925 | "serde", 926 | "serde_spanned", 927 | "toml_datetime", 928 | "winnow", 929 | ] 930 | 931 | [[package]] 932 | name = "typenum" 933 | version = "1.17.0" 934 | source = "registry+https://github.com/rust-lang/crates.io-index" 935 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 936 | 937 | [[package]] 938 | name = "unicode-ident" 939 | version = "1.0.12" 940 | source = "registry+https://github.com/rust-lang/crates.io-index" 941 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 942 | 943 | [[package]] 944 | name = "unsafe-libyaml" 945 | version = "0.2.9" 946 | source = "registry+https://github.com/rust-lang/crates.io-index" 947 | checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" 948 | 949 | [[package]] 950 | name = "version_check" 951 | version = "0.9.4" 952 | source = "registry+https://github.com/rust-lang/crates.io-index" 953 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 954 | 955 | [[package]] 956 | name = "wasi" 957 | version = "0.11.0+wasi-snapshot-preview1" 958 | source = "registry+https://github.com/rust-lang/crates.io-index" 959 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 960 | 961 | [[package]] 962 | name = "wasm-bindgen" 963 | version = "0.2.87" 964 | source = "registry+https://github.com/rust-lang/crates.io-index" 965 | checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" 966 | dependencies = [ 967 | "cfg-if", 968 | "wasm-bindgen-macro", 969 | ] 970 | 971 | [[package]] 972 | name = "wasm-bindgen-backend" 973 | version = "0.2.87" 974 | source = "registry+https://github.com/rust-lang/crates.io-index" 975 | checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" 976 | dependencies = [ 977 | "bumpalo", 978 | "log", 979 | "once_cell", 980 | "proc-macro2", 981 | "quote", 982 | "syn 2.0.38", 983 | "wasm-bindgen-shared", 984 | ] 985 | 986 | [[package]] 987 | name = "wasm-bindgen-macro" 988 | version = "0.2.87" 989 | source = "registry+https://github.com/rust-lang/crates.io-index" 990 | checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" 991 | dependencies = [ 992 | "quote", 993 | "wasm-bindgen-macro-support", 994 | ] 995 | 996 | [[package]] 997 | name = "wasm-bindgen-macro-support" 998 | version = "0.2.87" 999 | source = "registry+https://github.com/rust-lang/crates.io-index" 1000 | checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" 1001 | dependencies = [ 1002 | "proc-macro2", 1003 | "quote", 1004 | "syn 2.0.38", 1005 | "wasm-bindgen-backend", 1006 | "wasm-bindgen-shared", 1007 | ] 1008 | 1009 | [[package]] 1010 | name = "wasm-bindgen-shared" 1011 | version = "0.2.87" 1012 | source = "registry+https://github.com/rust-lang/crates.io-index" 1013 | checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" 1014 | 1015 | [[package]] 1016 | name = "windows" 1017 | version = "0.48.0" 1018 | source = "registry+https://github.com/rust-lang/crates.io-index" 1019 | checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" 1020 | dependencies = [ 1021 | "windows-targets", 1022 | ] 1023 | 1024 | [[package]] 1025 | name = "windows-targets" 1026 | version = "0.48.5" 1027 | source = "registry+https://github.com/rust-lang/crates.io-index" 1028 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1029 | dependencies = [ 1030 | "windows_aarch64_gnullvm", 1031 | "windows_aarch64_msvc", 1032 | "windows_i686_gnu", 1033 | "windows_i686_msvc", 1034 | "windows_x86_64_gnu", 1035 | "windows_x86_64_gnullvm", 1036 | "windows_x86_64_msvc", 1037 | ] 1038 | 1039 | [[package]] 1040 | name = "windows_aarch64_gnullvm" 1041 | version = "0.48.5" 1042 | source = "registry+https://github.com/rust-lang/crates.io-index" 1043 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1044 | 1045 | [[package]] 1046 | name = "windows_aarch64_msvc" 1047 | version = "0.48.5" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1050 | 1051 | [[package]] 1052 | name = "windows_i686_gnu" 1053 | version = "0.48.5" 1054 | source = "registry+https://github.com/rust-lang/crates.io-index" 1055 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1056 | 1057 | [[package]] 1058 | name = "windows_i686_msvc" 1059 | version = "0.48.5" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1062 | 1063 | [[package]] 1064 | name = "windows_x86_64_gnu" 1065 | version = "0.48.5" 1066 | source = "registry+https://github.com/rust-lang/crates.io-index" 1067 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1068 | 1069 | [[package]] 1070 | name = "windows_x86_64_gnullvm" 1071 | version = "0.48.5" 1072 | source = "registry+https://github.com/rust-lang/crates.io-index" 1073 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1074 | 1075 | [[package]] 1076 | name = "windows_x86_64_msvc" 1077 | version = "0.48.5" 1078 | source = "registry+https://github.com/rust-lang/crates.io-index" 1079 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1080 | 1081 | [[package]] 1082 | name = "winnow" 1083 | version = "0.5.17" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c" 1086 | dependencies = [ 1087 | "memchr", 1088 | ] 1089 | --------------------------------------------------------------------------------