From 95d8bb71b74fddab9bf6bec48040e28bb40c0fcb Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Wed, 11 Dec 2024 12:55:00 -0500 Subject: [PATCH 01/20] Add new circuit to prove UTXO ownership only Signed-off-by: Jim Zhang --- zkp/circuits/lib/check-utxos-owner.circom | 46 +++++++ zkp/js/test/lib/check-utxos-owner.js | 151 ++++++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 zkp/circuits/lib/check-utxos-owner.circom create mode 100644 zkp/js/test/lib/check-utxos-owner.js diff --git a/zkp/circuits/lib/check-utxos-owner.circom b/zkp/circuits/lib/check-utxos-owner.circom new file mode 100644 index 0000000..51fe836 --- /dev/null +++ b/zkp/circuits/lib/check-utxos-owner.circom @@ -0,0 +1,46 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma circom 2.1.9; + +include "../lib/check-positive.circom"; +include "../lib/check-hashes.circom"; +include "../lib/check-sum.circom"; +include "../node_modules/circomlib/circuits/babyjub.circom"; + +// This version of the circuit performs the following operations: +// - derive the sender's public key from the sender's private key +// - check the commitments match the calculated hashes +template CheckUTXOsOwner(nInputs) { + signal input inputCommitments[nInputs]; + signal input inputValues[nInputs]; + signal input inputSalts[nInputs]; + // must be properly hashed and trimmed to be compatible with the BabyJub curve. + // Reference: https://github.com/iden3/circomlib/blob/master/test/babyjub.js#L103 + signal input inputOwnerPrivateKey; + + // derive the sender's public key from the secret input + // for the sender's private key. This step demonstrates + // the sender really owns the private key for the input + // UTXOs + var inputOwnerPubKeyAx, inputOwnerPubKeyAy; + (inputOwnerPubKeyAx, inputOwnerPubKeyAy) = BabyPbk()(in <== inputOwnerPrivateKey); + + var inputOwnerPublicKeys[nInputs][2]; + for (var i = 0; i < nInputs; i++) { + inputOwnerPublicKeys[i]= [inputOwnerPubKeyAx, inputOwnerPubKeyAy]; + } + CheckHashes(nInputs)(commitments <== inputCommitments, values <== inputValues, salts <== inputSalts, ownerPublicKeys <== inputOwnerPublicKeys); +} diff --git a/zkp/js/test/lib/check-utxos-owner.js b/zkp/js/test/lib/check-utxos-owner.js new file mode 100644 index 0000000..bd6b8d3 --- /dev/null +++ b/zkp/js/test/lib/check-utxos-owner.js @@ -0,0 +1,151 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const { expect } = require('chai'); +const { join } = require('path'); +const { wasm: wasm_tester } = require('circom_tester'); +const { genKeypair } = require('maci-crypto'); +const { Poseidon, newSalt } = require('../../index.js'); + +const ZERO_PUBKEY = [0n, 0n]; +const poseidonHash = Poseidon.poseidon4; + +describe('check-hashes circuit tests', () => { + let circuit; + const sender = {}; + const receiver = {}; + + before(async function () { + this.timeout(60000); + + circuit = await wasm_tester(join(__dirname, '../circuits/check-hashes.circom')); + + let keypair = genKeypair(); + sender.privKey = keypair.privKey; + sender.pubKey = keypair.pubKey; + + keypair = genKeypair(); + receiver.privKey = keypair.privKey; + receiver.pubKey = keypair.pubKey; + }); + + it('should return true for valid witness', async () => { + const values = [32, 40]; + + // create two input UTXOs, each has their own salt, but same owner + const salt1 = newSalt(); + const input1 = poseidonHash([BigInt(values[0]), salt1, ...sender.pubKey]); + const salt2 = newSalt(); + const input2 = poseidonHash([BigInt(values[1]), salt2, ...sender.pubKey]); + const commitments = [input1, input2]; + + const witness = await circuit.calculateWitness( + { + commitments, + values, + salts: [salt1, salt2], + ownerPublicKeys: [sender.pubKey, sender.pubKey], + }, + true + ); + + // console.log(witness.slice(0, 10)); + // console.log('commitments', commitments); + // console.log('sender public key', sender.pubKey); + expect(witness[1]).to.equal(BigInt(commitments[0])); + expect(witness[2]).to.equal(BigInt(commitments[1])); + expect(witness[3]).to.equal(BigInt(sender.pubKey[0])); + expect(witness[4]).to.equal(BigInt(sender.pubKey[1])); + }); + + it('should return true for valid witness using a single input value', async () => { + const values = [72, 0]; + + // create two input UTXOs, each has their own salt, but same owner + const salt1 = newSalt(); + const input1 = poseidonHash([BigInt(values[0]), salt1, ...sender.pubKey]); + const commitments = [input1, 0]; + + const witness = await circuit.calculateWitness( + { + commitments, + values, + salts: [salt1, 0], + ownerPublicKeys: [sender.pubKey, [0n, 0n]], + }, + true + ); + + expect(witness[1]).to.equal(BigInt(commitments[0])); + expect(witness[2]).to.equal(BigInt(commitments[1])); + expect(witness[3]).to.equal(BigInt(sender.pubKey[0])); + expect(witness[4]).to.equal(BigInt(sender.pubKey[1])); + }); + + it('should return true for valid witness using a single input value', async () => { + const values = [0, 72]; + + // create two input UTXOs, each has their own salt, but same owner + const salt1 = newSalt(); + const input1 = poseidonHash([BigInt(values[1]), salt1, ...sender.pubKey]); + const commitments = [0n, input1]; + + const witness = await circuit.calculateWitness( + { + commitments, + values, + salts: [0, salt1], + ownerPublicKeys: [[0n, 0n], sender.pubKey], + }, + true + ); + + expect(witness[1]).to.equal(BigInt(commitments[0])); + expect(witness[2]).to.equal(BigInt(commitments[1])); + expect(witness[3]).to.equal(0n); + expect(witness[4]).to.equal(0n); + expect(witness[5]).to.equal(BigInt(sender.pubKey[0])); + expect(witness[6]).to.equal(BigInt(sender.pubKey[1])); + }); + + it('should fail to generate a witness because of invalid input commitments', async () => { + const inputValues = [25, 100]; + + // create two input UTXOs, each has their own salt, but same owner + const salt1 = newSalt(); + const input1 = poseidonHash([BigInt(inputValues[0]), salt1, ...sender.pubKey]); + const salt2 = newSalt(); + const input2 = poseidonHash([BigInt(inputValues[1]), salt2, ...sender.pubKey]); + const inputCommitments = [input1 + BigInt(1), input2]; + + let error; + try { + await circuit.calculateWitness( + { + commitments: inputCommitments, + values: inputValues, + salts: [salt1, salt2], + ownerPublicKeys: [sender.pubKey, sender.pubKey], + }, + true + ); + } catch (e) { + error = e; + } + // console.log(error); + expect(error).to.match(/Error in template CheckHashes_76 line: 47/); // hash check failed + }); +}); From 01beeb37ebef78f64a78bfec05675b9413d5ff28 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Thu, 12 Dec 2024 16:12:46 -0500 Subject: [PATCH 02/20] lock states for tokens not using nullifiers Signed-off-by: Jim Zhang --- solidity/contracts/factory.sol | 30 ++- ...e.sol => izeto_fungible_initializable.sol} | 4 +- .../lib/interfaces/izeto_lockable.sol | 46 ++++ .../lib/interfaces/izeto_nf_initializable.sol | 25 ++ .../lib/verifier_check_utxos_nf_owner.sol | 175 +++++++++++++ .../lib/verifier_check_utxos_owner.sol | 175 +++++++++++++ .../lib/verifier_check_utxos_owner_batch.sol | 231 ++++++++++++++++++ solidity/contracts/lib/zeto_base.sol | 9 - solidity/contracts/lib/zeto_common.sol | 24 +- solidity/contracts/lib/zeto_fungible.sol | 2 + .../contracts/lib/zeto_fungible_withdraw.sol | 2 + solidity/contracts/lib/zeto_lock.sol | 129 ++++++++++ solidity/contracts/lib/zeto_nullifier.sol | 3 +- solidity/contracts/zeto_anon.sol | 23 +- solidity/contracts/zeto_anon_enc.sol | 17 +- .../contracts/zeto_anon_enc_nullifier.sol | 1 - .../contracts/zeto_anon_enc_nullifier_kyc.sol | 1 - ...eto_anon_enc_nullifier_non_repudiation.sol | 1 - solidity/contracts/zeto_anon_nullifier.sol | 2 - .../contracts/zeto_anon_nullifier_kyc.sol | 2 - solidity/contracts/zeto_nf_anon.sol | 22 +- solidity/contracts/zeto_nf_anon_nullifier.sol | 2 - solidity/contracts/zkDvP.sol | 19 +- solidity/ignition/modules/lib/deps.ts | 23 ++ solidity/ignition/modules/zeto_anon.ts | 6 + solidity/ignition/modules/zeto_anon_enc.ts | 6 + solidity/ignition/modules/zeto_nf_anon.ts | 10 +- solidity/scripts/tokens/Zeto_Anon.ts | 4 + solidity/scripts/tokens/Zeto_AnonEnc.ts | 4 + solidity/scripts/tokens/Zeto_NfAnon.ts | 4 +- solidity/test/utils.ts | 101 +++++++- solidity/test/zeto_anon.ts | 58 ++++- solidity/test/zeto_anon_enc.ts | 47 ++++ solidity/test/zeto_nf_anon.ts | 48 +++- solidity/test/zkDvP.ts | 48 +--- .../circuits/check_utxos_nf_owner.circom | 8 +- zkp/circuits/check_utxos_owner.circom | 20 ++ zkp/circuits/check_utxos_owner_batch.circom | 20 ++ zkp/circuits/gen-config.json | 9 + zkp/circuits/lib/check-utxos-nf-owner.circom | 45 ++++ zkp/circuits/lib/check-utxos-owner.circom | 22 +- zkp/js/integration-test/check_utxos_owner.js | 169 +++++++++++++ zkp/js/test/check_utxos_nf_owner.js | 98 ++++++++ ...ck-utxos-owner.js => check_utxos_owner.js} | 71 ++++-- zkp/js/test/lib/check-hashes.js | 2 - 45 files changed, 1615 insertions(+), 153 deletions(-) rename solidity/contracts/lib/interfaces/{zeto_fungible_initializable.sol => izeto_fungible_initializable.sol} (89%) create mode 100644 solidity/contracts/lib/interfaces/izeto_lockable.sol create mode 100644 solidity/contracts/lib/interfaces/izeto_nf_initializable.sol create mode 100644 solidity/contracts/lib/verifier_check_utxos_nf_owner.sol create mode 100644 solidity/contracts/lib/verifier_check_utxos_owner.sol create mode 100644 solidity/contracts/lib/verifier_check_utxos_owner_batch.sol create mode 100644 solidity/contracts/lib/zeto_lock.sol rename solidity/contracts/lib/interfaces/zeto_nf_initializable.sol => zkp/circuits/check_utxos_nf_owner.circom (81%) create mode 100644 zkp/circuits/check_utxos_owner.circom create mode 100644 zkp/circuits/check_utxos_owner_batch.circom create mode 100644 zkp/circuits/lib/check-utxos-nf-owner.circom create mode 100644 zkp/js/integration-test/check_utxos_owner.js create mode 100644 zkp/js/test/check_utxos_nf_owner.js rename zkp/js/test/{lib/check-utxos-owner.js => check_utxos_owner.js} (65%) diff --git a/solidity/contracts/factory.sol b/solidity/contracts/factory.sol index de069ac..525699a 100644 --- a/solidity/contracts/factory.sol +++ b/solidity/contracts/factory.sol @@ -17,8 +17,8 @@ pragma solidity ^0.8.20; import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {IZetoFungibleInitializable} from "./lib/interfaces/zeto_fungible_initializable.sol"; -import {IZetoNonFungibleInitializable} from "./lib/interfaces/zeto_nf_initializable.sol"; +import {IZetoFungibleInitializable} from "./lib/interfaces/izeto_fungible_initializable.sol"; +import {IZetoNonFungibleInitializable} from "./lib/interfaces/izeto_nf_initializable.sol"; contract ZetoTokenFactory is Ownable { // all the addresses needed by the factory to @@ -32,6 +32,8 @@ contract ZetoTokenFactory is Ownable { address verifier; address batchVerifier; address batchWithdrawVerifier; + address lockVerifier; + address batchLockVerifier; } event ZetoTokenDeployed(address indexed zetoToken); @@ -84,6 +86,14 @@ contract ZetoTokenFactory is Ownable { args.batchWithdrawVerifier != address(0), "Factory: batchWithdrawVerifier address is required" ); + require( + args.lockVerifier != address(0), + "Factory: lockVerifier address is required" + ); + require( + args.batchLockVerifier != address(0), + "Factory: batchLockVerifier address is required" + ); address instance = Clones.clone(args.implementation); require( instance != address(0), @@ -95,7 +105,9 @@ contract ZetoTokenFactory is Ownable { args.depositVerifier, args.withdrawVerifier, args.batchVerifier, - args.batchWithdrawVerifier + args.batchWithdrawVerifier, + args.lockVerifier, + args.batchLockVerifier ); emit ZetoTokenDeployed(instance); return instance; @@ -110,6 +122,14 @@ contract ZetoTokenFactory is Ownable { args.implementation != address(0), "Factory: failed to find implementation" ); + require( + args.lockVerifier != address(0), + "Factory: lockVerifier address is required" + ); + require( + args.batchLockVerifier != address(0), + "Factory: batchLockVerifier address is required" + ); address instance = Clones.clone(args.implementation); require( instance != address(0), @@ -117,7 +137,9 @@ contract ZetoTokenFactory is Ownable { ); (IZetoNonFungibleInitializable(instance)).initialize( initialOwner, - args.verifier + args.verifier, + args.lockVerifier, + args.batchLockVerifier ); emit ZetoTokenDeployed(instance); return instance; diff --git a/solidity/contracts/lib/interfaces/zeto_fungible_initializable.sol b/solidity/contracts/lib/interfaces/izeto_fungible_initializable.sol similarity index 89% rename from solidity/contracts/lib/interfaces/zeto_fungible_initializable.sol rename to solidity/contracts/lib/interfaces/izeto_fungible_initializable.sol index 2b0485f..4902974 100644 --- a/solidity/contracts/lib/interfaces/zeto_fungible_initializable.sol +++ b/solidity/contracts/lib/interfaces/izeto_fungible_initializable.sol @@ -22,6 +22,8 @@ interface IZetoFungibleInitializable { address _withdrawVerifier, address _verifier, address _batchVerifier, - address _batchWithdrawVerifier + address _batchWithdrawVerifier, + address _lockVerifier, + address _batchLockVerifier ) external; } diff --git a/solidity/contracts/lib/interfaces/izeto_lockable.sol b/solidity/contracts/lib/interfaces/izeto_lockable.sol new file mode 100644 index 0000000..aaa2c87 --- /dev/null +++ b/solidity/contracts/lib/interfaces/izeto_lockable.sol @@ -0,0 +1,46 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma solidity ^0.8.20; + +import {Commonlib} from "../common.sol"; + +interface IZetoLockable { + error UTXOAlreadyLocked(uint256 utxo); + event UTXOsLocked( + uint256[] utxos, + address indexed delegate, + address indexed submitter, + bytes data + ); +} + +interface ILockVerifier { + function verifyProof( + uint[2] calldata _pA, + uint[2][2] calldata _pB, + uint[2] calldata _pC, + uint[2] calldata _pubSignals + ) external view returns (bool); +} + +interface IBatchLockVerifier { + function verifyProof( + uint[2] calldata _pA, + uint[2][2] calldata _pB, + uint[2] calldata _pC, + uint[10] calldata _pubSignals + ) external view returns (bool); +} diff --git a/solidity/contracts/lib/interfaces/izeto_nf_initializable.sol b/solidity/contracts/lib/interfaces/izeto_nf_initializable.sol new file mode 100644 index 0000000..eeef510 --- /dev/null +++ b/solidity/contracts/lib/interfaces/izeto_nf_initializable.sol @@ -0,0 +1,25 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma solidity ^0.8.20; + +interface IZetoNonFungibleInitializable { + function initialize( + address initialOwner, + address _verifier, + address _lockVerifier, + address _batchLockVerifier + ) external; +} diff --git a/solidity/contracts/lib/verifier_check_utxos_nf_owner.sol b/solidity/contracts/lib/verifier_check_utxos_nf_owner.sol new file mode 100644 index 0000000..16091cc --- /dev/null +++ b/solidity/contracts/lib/verifier_check_utxos_nf_owner.sol @@ -0,0 +1,175 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Groth16Verifier_CheckUtxosNfOwner { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant deltax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant deltay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + + + uint256 constant IC0x = 11834817990125450207882662317178229662168921017394937249039476333827021752358; + uint256 constant IC0y = 13264538448072108567381414814630071256184633843121427054058706352307968334015; + + uint256 constant IC1x = 8878207471551106406125401855398991204845318231252966942470425545081611724129; + uint256 constant IC1y = 10113481109969380664898495596562127194211384278039881640923082804507768499008; + + uint256 constant IC2x = 5958066283968045199378225973004359886908075353202509196118312823692263538912; + uint256 constant IC2y = 191875097869937814700522008522923610529603316540953877209254386949444051430; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[2] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/solidity/contracts/lib/verifier_check_utxos_owner.sol b/solidity/contracts/lib/verifier_check_utxos_owner.sol new file mode 100644 index 0000000..bb0d4ff --- /dev/null +++ b/solidity/contracts/lib/verifier_check_utxos_owner.sol @@ -0,0 +1,175 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Groth16Verifier_CheckUtxosOwner { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant deltax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant deltay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + + + uint256 constant IC0x = 5961892133655469174588966950916576296738755992343172721356529017335297389409; + uint256 constant IC0y = 14333163046797333444798765436665643398629491431485287677360671189173098157441; + + uint256 constant IC1x = 17214718495523785535701657719670011964855503384278062826642155179345426580098; + uint256 constant IC1y = 12678898308813596443127633044318475259792489274472242452023364053911511648639; + + uint256 constant IC2x = 4382937387936351427147757775456574969020583627402302746338787268231726676873; + uint256 constant IC2y = 4583555676960040664251711232618687088763042218077749116431082796685416720755; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[2] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/solidity/contracts/lib/verifier_check_utxos_owner_batch.sol b/solidity/contracts/lib/verifier_check_utxos_owner_batch.sol new file mode 100644 index 0000000..54aaf52 --- /dev/null +++ b/solidity/contracts/lib/verifier_check_utxos_owner_batch.sol @@ -0,0 +1,231 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Groth16Verifier_CheckUtxosOwnerBatch { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant deltax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant deltay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + + + uint256 constant IC0x = 2019133110334799079425720252524978656148677442307733829029335718239844248642; + uint256 constant IC0y = 15437078419307830169493280368839094900608721512242255553932766493989126096923; + + uint256 constant IC1x = 12902785943338106540191163237267156787790413011031228585840630350245008538803; + uint256 constant IC1y = 18508603445541812803605845259504365909862734604958606568697447707078592718152; + + uint256 constant IC2x = 16052987633030516259956058349277640461371654868535498810044785725121944322273; + uint256 constant IC2y = 8909405537520661410404436053871970394298922830025828257566581081798732946452; + + uint256 constant IC3x = 1001638733758156440282758805166347664879973243421851481973719940836571668732; + uint256 constant IC3y = 1805355357950459346172787152177029694219914080020783280713837995712005345062; + + uint256 constant IC4x = 5775424207900901686941009808240165861032026997076785514633616152434195725669; + uint256 constant IC4y = 9221275075255565955657520911628947744808244750095308891818236663540957277909; + + uint256 constant IC5x = 13936138480435344205614871824836050090297527171400322397842611171170832980542; + uint256 constant IC5y = 20145310508389131287822928089996506337466564235011098953824959738488970172165; + + uint256 constant IC6x = 3942730393330289653942526126435774599373208702832247026422315771694230682831; + uint256 constant IC6y = 12270621553298218415551240556526593092586562257362108921560182003055694431509; + + uint256 constant IC7x = 4544743727087143780925184959665988204772393544843712720909770146447748764959; + uint256 constant IC7y = 15184443634863895420712018160942679166357680634966874689308604787467495758854; + + uint256 constant IC8x = 21482233861155139035528810938943999305836362224395593527256392378343952917660; + uint256 constant IC8y = 7877281370804700424157926266579645538073826532047151452368511164507053013565; + + uint256 constant IC9x = 5852234013532731854804102395708112377709177292961453250455371504103979378578; + uint256 constant IC9y = 8085200381926110621075189316790821783825496633277171915381866269101379466858; + + uint256 constant IC10x = 21149401748448051688539999249500090252279838765037889429252946026745436718535; + uint256 constant IC10y = 19123077706920296738482923194055175588030967051902200489009585219220575264666; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[10] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64))) + + g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96))) + + g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128))) + + g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160))) + + g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192))) + + g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224))) + + g1_mulAccC(_pVk, IC9x, IC9y, calldataload(add(pubSignals, 256))) + + g1_mulAccC(_pVk, IC10x, IC10y, calldataload(add(pubSignals, 288))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + checkField(calldataload(add(_pubSignals, 64))) + + checkField(calldataload(add(_pubSignals, 96))) + + checkField(calldataload(add(_pubSignals, 128))) + + checkField(calldataload(add(_pubSignals, 160))) + + checkField(calldataload(add(_pubSignals, 192))) + + checkField(calldataload(add(_pubSignals, 224))) + + checkField(calldataload(add(_pubSignals, 256))) + + checkField(calldataload(add(_pubSignals, 288))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/solidity/contracts/lib/zeto_base.sol b/solidity/contracts/lib/zeto_base.sol index 35f4e0e..9fb8290 100644 --- a/solidity/contracts/lib/zeto_base.sol +++ b/solidity/contracts/lib/zeto_base.sol @@ -88,15 +88,6 @@ abstract contract ZetoBase is IZetoBase, ZetoCommon { revert UTXOAlreadyOwned(sortedOutputs[i]); } } - - // check if the proof has been locked - bytes32 proofHash = Commonlib.getProofHash(proof); - if (lockedProofs[proofHash] != address(0)) { - require( - lockedProofs[proofHash] == msg.sender, - "Locked proof can only be submitted by the locker address" - ); - } return true; } diff --git a/solidity/contracts/lib/zeto_common.sol b/solidity/contracts/lib/zeto_common.sol index 79013a1..34f2859 100644 --- a/solidity/contracts/lib/zeto_common.sol +++ b/solidity/contracts/lib/zeto_common.sol @@ -24,6 +24,7 @@ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Own /// @author Kaleido, Inc. /// @dev Implements common functionalities of Zeto based tokens abstract contract ZetoCommon is OwnableUpgradeable { + uint256 public constant MAX_BATCH = 10; error UTXONotMinted(uint256 utxo); error UTXOAlreadyOwned(uint256 utxo); error UTXOAlreadySpent(uint256 utxo); @@ -31,32 +32,9 @@ abstract contract ZetoCommon is OwnableUpgradeable { error IdentityNotRegistered(address addr); error UTXOArrayTooLarge(uint256 maxAllowed); - // used for multi-step transaction flows that require counterparties - // to upload proofs. To protect the party that uploads their proof first, - // and prevent the other party from utilizing the uploaded proof to execute - // a transaction, the proof can be locked and only usable by the same party - // that did the locking. - mapping(bytes32 => address) internal lockedProofs; - function __ZetoCommon_init(address initialOwner) internal onlyInitializing { __Ownable_init(initialOwner); } - - // should be called by escrow contracts that will use uploaded proofs - // to execute transactions, in order to prevent the proof from being used - // by parties other than the escrow contract - function lockProof( - Commonlib.Proof calldata proof, - address delegate - ) public { - bytes32 proofHash = Commonlib.getProofHash(proof); - require( - lockedProofs[proofHash] == address(0) || - lockedProofs[proofHash] == msg.sender, - "Proof already locked by another party" - ); - lockedProofs[proofHash] = delegate; - } function checkAndPadCommitments( uint256[] memory inputs, uint256[] memory outputs, diff --git a/solidity/contracts/lib/zeto_fungible.sol b/solidity/contracts/lib/zeto_fungible.sol index 562876f..0e109de 100644 --- a/solidity/contracts/lib/zeto_fungible.sol +++ b/solidity/contracts/lib/zeto_fungible.sol @@ -17,6 +17,7 @@ pragma solidity ^0.8.20; import {Groth16Verifier_CheckHashesValue} from "./verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckNullifierValue} from "./verifier_check_nullifier_value.sol"; +import {ZetoBase} from "./zeto_base.sol"; import {Commonlib} from "./common.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; @@ -29,6 +30,7 @@ abstract contract ZetoFungible is OwnableUpgradeable { // this can be used in the optional deposit calls to verify that // the UTXOs match the deposited value Groth16Verifier_CheckHashesValue internal depositVerifier; + error WithdrawArrayTooLarge(uint256 maxAllowed); IERC20 internal erc20; diff --git a/solidity/contracts/lib/zeto_fungible_withdraw.sol b/solidity/contracts/lib/zeto_fungible_withdraw.sol index f943dff..f560cf1 100644 --- a/solidity/contracts/lib/zeto_fungible_withdraw.sol +++ b/solidity/contracts/lib/zeto_fungible_withdraw.sol @@ -18,6 +18,8 @@ pragma solidity ^0.8.20; import {Groth16Verifier_CheckHashesValue} from "./verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckInputsOutputsValue} from "./verifier_check_inputs_outputs_value.sol"; import {Groth16Verifier_CheckInputsOutputsValueBatch} from "./verifier_check_inputs_outputs_value_batch.sol"; +import {Groth16Verifier_CheckUtxosOwner} from "./verifier_check_utxos_owner.sol"; +import {Groth16Verifier_CheckUtxosOwnerBatch} from "./verifier_check_utxos_owner_batch.sol"; import {ZetoFungible} from "./zeto_fungible.sol"; import {Commonlib} from "./common.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; diff --git a/solidity/contracts/lib/zeto_lock.sol b/solidity/contracts/lib/zeto_lock.sol new file mode 100644 index 0000000..27e4d18 --- /dev/null +++ b/solidity/contracts/lib/zeto_lock.sol @@ -0,0 +1,129 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma solidity ^0.8.20; + +import {IZetoBase} from "./interfaces/izeto_base.sol"; +import {IZetoLockable, ILockVerifier, IBatchLockVerifier} from "./interfaces/izeto_lockable.sol"; +import {Commonlib} from "./common.sol"; +import {Registry} from "./registry.sol"; +import {ZetoCommon} from "./zeto_common.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; + +/// @title A sample base implementation of a Zeto based token contract +/// without using nullifiers. Each UTXO's spending status is explicitly tracked. +/// @author Kaleido, Inc. +/// @dev Implements common functionalities of Zeto based tokens without nullifiers +abstract contract ZetoLock is IZetoBase, IZetoLockable, OwnableUpgradeable { + // used for multi-step transaction flows that require counterparties + // to upload proofs. To protect the party that uploads their proof first, + // and prevent any other party from utilizing the uploaded proof to execute + // a transaction, the input UTXOs or nullifiers can be locked and only usable + // by the same party that did the locking. + mapping(uint256 => address) internal lockedUTXOs; + + ILockVerifier internal lockVerifier; + IBatchLockVerifier internal batchLockVerifier; + + function __ZetoLock_init( + address _lockVerifier, + address _batchLockVerifier + ) public onlyInitializing { + lockVerifier = ILockVerifier(_lockVerifier); + batchLockVerifier = IBatchLockVerifier(_batchLockVerifier); + } + + // should be called by escrow contracts that will use uploaded proofs + // to execute transactions, in order to prevent the proof from being used + // by parties other than the escrow contract + function lockStates( + uint256[] memory utxos, + Commonlib.Proof calldata proof, + address delegate, + bytes calldata data + ) public { + for (uint256 i = 0; i < utxos.length; ++i) { + if (utxos[i] == 0) { + continue; + } + if ( + lockedUTXOs[utxos[i]] != address(0) && + lockedUTXOs[utxos[i]] != msg.sender + ) { + revert UTXOAlreadyLocked(utxos[i]); + } + lockedUTXOs[utxos[i]] = delegate; + } + // verify that the proof is valid + if (utxos.length <= 2) { + uint256[2] memory utxosArray; + for (uint256 i = 0; i < utxos.length; ++i) { + utxosArray[i] = utxos[i]; + } + for (uint256 i = utxos.length; i < 2; ++i) { + utxosArray[i] = 0; + } + + require(_verifyLockProof(utxosArray, proof), "Invalid proof"); + } else { + uint256[10] memory utxosArray; + for (uint256 i = 0; i < utxos.length; ++i) { + utxosArray[i] = utxos[i]; + } + for (uint256 i = utxos.length; i < 10; ++i) { + utxosArray[i] = 0; + } + + require(_verifyBatchLockProof(utxosArray, proof), "Invalid proof"); + } + + emit UTXOsLocked(utxos, delegate, msg.sender, data); + } + + function validateLockedStates( + uint256[] memory utxos + ) internal returns (bool) { + for (uint256 i = 0; i < utxos.length; ++i) { + if (utxos[i] == 0) { + continue; + } + // check if the UTXO has been locked + if (lockedUTXOs[utxos[i]] != address(0)) { + if (lockedUTXOs[utxos[i]] != msg.sender) { + revert UTXOAlreadyLocked(utxos[i]); + } + delete lockedUTXOs[utxos[i]]; + } + } + return true; + } + + function _verifyLockProof( + uint256[2] memory utxos, + Commonlib.Proof calldata proof + ) internal view returns (bool) { + return lockVerifier.verifyProof(proof.pA, proof.pB, proof.pC, utxos); + } + + function _verifyBatchLockProof( + uint256[10] memory utxos, + Commonlib.Proof calldata proof + ) internal view returns (bool) { + return + batchLockVerifier.verifyProof(proof.pA, proof.pB, proof.pC, utxos); + } +} diff --git a/solidity/contracts/lib/zeto_nullifier.sol b/solidity/contracts/lib/zeto_nullifier.sol index 519d450..64a7206 100644 --- a/solidity/contracts/lib/zeto_nullifier.sol +++ b/solidity/contracts/lib/zeto_nullifier.sol @@ -23,12 +23,11 @@ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {SmtLib} from "@iden3/contracts/lib/SmtLib.sol"; import {PoseidonUnit3L} from "@iden3/contracts/lib/Poseidon.sol"; -uint256 constant MAX_SMT_DEPTH = 64; - /// @title A sample base implementation of a Zeto based token contract with nullifiers /// @author Kaleido, Inc. /// @dev Implements common functionalities of Zeto based tokens using nullifiers abstract contract ZetoNullifier is IZetoBase, ZetoCommon { + uint256 public constant MAX_SMT_DEPTH = 64; SmtLib.Data internal _commitmentsTree; using SmtLib for SmtLib.Data; mapping(uint256 => bool) private _nullifiers; diff --git a/solidity/contracts/zeto_anon.sol b/solidity/contracts/zeto_anon.sol index 59bd4b8..a678716 100644 --- a/solidity/contracts/zeto_anon.sol +++ b/solidity/contracts/zeto_anon.sol @@ -16,9 +16,12 @@ pragma solidity ^0.8.20; import {IZeto} from "./lib/interfaces/izeto.sol"; +import {ILockVerifier} from "./lib/interfaces/izeto_lockable.sol"; import {Groth16Verifier_CheckHashesValue} from "./lib/verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckInputsOutputsValue} from "./lib/verifier_check_inputs_outputs_value.sol"; import {Groth16Verifier_CheckInputsOutputsValueBatch} from "./lib/verifier_check_inputs_outputs_value_batch.sol"; +import {Groth16Verifier_CheckUtxosOwner} from "./lib/verifier_check_utxos_owner.sol"; +import {Groth16Verifier_CheckUtxosOwnerBatch} from "./lib/verifier_check_utxos_owner_batch.sol"; import {Groth16Verifier_Anon} from "./lib/verifier_anon.sol"; import {Groth16Verifier_AnonBatch} from "./lib/verifier_anon_batch.sol"; @@ -26,11 +29,11 @@ import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; import {ZetoBase} from "./lib/zeto_base.sol"; import {ZetoFungible} from "./lib/zeto_fungible.sol"; +import {ZetoLock} from "./lib/zeto_lock.sol"; import {ZetoFungibleWithdraw} from "./lib/zeto_fungible_withdraw.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -uint256 constant MAX_BATCH = 10; uint256 constant INPUT_SIZE = 4; uint256 constant BATCH_INPUT_SIZE = 20; @@ -41,7 +44,13 @@ uint256 constant BATCH_INPUT_SIZE = 20; /// - the sum of the input values match the sum of output values /// - the hashes in the input and output match the `hash(value, salt, owner public key)` formula /// - the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes -contract Zeto_Anon is IZeto, ZetoBase, ZetoFungibleWithdraw, UUPSUpgradeable { +contract Zeto_Anon is + IZeto, + ZetoBase, + ZetoFungibleWithdraw, + ZetoLock, + UUPSUpgradeable +{ Groth16Verifier_Anon internal verifier; Groth16Verifier_AnonBatch internal batchVerifier; @@ -51,7 +60,9 @@ contract Zeto_Anon is IZeto, ZetoBase, ZetoFungibleWithdraw, UUPSUpgradeable { Groth16Verifier_CheckHashesValue _depositVerifier, Groth16Verifier_CheckInputsOutputsValue _withdrawVerifier, Groth16Verifier_AnonBatch _batchVerifier, - Groth16Verifier_CheckInputsOutputsValueBatch _batchWithdrawVerifier + Groth16Verifier_CheckInputsOutputsValueBatch _batchWithdrawVerifier, + address _lockVerifier, + address _batchLockVerifier ) public initializer { __ZetoBase_init(initialOwner); __ZetoFungibleWithdraw_init( @@ -59,6 +70,7 @@ contract Zeto_Anon is IZeto, ZetoBase, ZetoFungibleWithdraw, UUPSUpgradeable { _withdrawVerifier, _batchWithdrawVerifier ); + __ZetoLock_init(_lockVerifier, _batchLockVerifier); verifier = _verifier; batchVerifier = _batchVerifier; } @@ -109,6 +121,11 @@ contract Zeto_Anon is IZeto, ZetoBase, ZetoFungibleWithdraw, UUPSUpgradeable { "Invalid transaction proposal" ); + require( + validateLockedStates(inputs), + "At least one UTXO in the inputs are locked" + ); + // Check the proof if (inputs.length > 2 || outputs.length > 2) { uint256[] memory publicInputs = constructPublicInputs( diff --git a/solidity/contracts/zeto_anon_enc.sol b/solidity/contracts/zeto_anon_enc.sol index df91670..56718d8 100644 --- a/solidity/contracts/zeto_anon_enc.sol +++ b/solidity/contracts/zeto_anon_enc.sol @@ -19,17 +19,20 @@ import {IZetoEncrypted} from "./lib/interfaces/izeto_encrypted.sol"; import {Groth16Verifier_CheckHashesValue} from "./lib/verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckInputsOutputsValue} from "./lib/verifier_check_inputs_outputs_value.sol"; import {Groth16Verifier_CheckInputsOutputsValueBatch} from "./lib/verifier_check_inputs_outputs_value_batch.sol"; +import {Groth16Verifier_CheckUtxosOwner} from "./lib/verifier_check_utxos_owner.sol"; +import {Groth16Verifier_CheckUtxosOwnerBatch} from "./lib/verifier_check_utxos_owner_batch.sol"; + import {Groth16Verifier_AnonEnc} from "./lib/verifier_anon_enc.sol"; import {Groth16Verifier_AnonEncBatch} from "./lib/verifier_anon_enc_batch.sol"; import {ZetoFungibleWithdraw} from "./lib/zeto_fungible_withdraw.sol"; import {ZetoBase} from "./lib/zeto_base.sol"; import {ZetoFungible} from "./lib/zeto_fungible.sol"; +import {ZetoLock} from "./lib/zeto_lock.sol"; import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -uint256 constant MAX_BATCH = 10; uint256 constant INPUT_SIZE = 15; uint256 constant BATCH_INPUT_SIZE = 63; @@ -46,6 +49,7 @@ contract Zeto_AnonEnc is IZetoEncrypted, ZetoBase, ZetoFungibleWithdraw, + ZetoLock, UUPSUpgradeable { Groth16Verifier_AnonEnc internal verifier; @@ -57,7 +61,9 @@ contract Zeto_AnonEnc is Groth16Verifier_CheckHashesValue _depositVerifier, Groth16Verifier_CheckInputsOutputsValue _withdrawVerifier, Groth16Verifier_AnonEncBatch _batchVerifier, - Groth16Verifier_CheckInputsOutputsValueBatch _batchWithdrawVerifier + Groth16Verifier_CheckInputsOutputsValueBatch _batchWithdrawVerifier, + address _lockVerifier, + address _batchLockVerifier ) public initializer { __ZetoBase_init(initialOwner); __ZetoFungibleWithdraw_init( @@ -65,9 +71,9 @@ contract Zeto_AnonEnc is _withdrawVerifier, _batchWithdrawVerifier ); + __ZetoLock_init(_lockVerifier, _batchLockVerifier); verifier = _verifier; batchVerifier = _batchVerifier; - batchVerifier = _batchVerifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -133,6 +139,11 @@ contract Zeto_AnonEnc is "Invalid transaction proposal" ); + require( + validateLockedStates(inputs), + "At least one UTXO in the inputs are locked" + ); + // Check the proof if (inputs.length > 2 || outputs.length > 2) { uint256[] memory publicInputs = constructPublicInputs( diff --git a/solidity/contracts/zeto_anon_enc_nullifier.sol b/solidity/contracts/zeto_anon_enc_nullifier.sol index 7a5e010..5fd7170 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier.sol @@ -27,7 +27,6 @@ import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -uint256 constant MAX_BATCH = 10; uint256 constant INPUT_SIZE = 18; uint256 constant BATCH_INPUT_SIZE = 74; diff --git a/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol b/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol index 54e86b9..eaa399a 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol @@ -27,7 +27,6 @@ import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -uint256 constant MAX_BATCH = 10; uint256 constant INPUT_SIZE = 19; uint256 constant BATCH_INPUT_SIZE = 75; diff --git a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol index d3da9db..818c9dc 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol @@ -26,7 +26,6 @@ import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_n import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; -uint256 constant MAX_BATCH = 10; uint256 constant INPUT_SIZE = 36; uint256 constant BATCH_INPUT_SIZE = 140; diff --git a/solidity/contracts/zeto_anon_nullifier.sol b/solidity/contracts/zeto_anon_nullifier.sol index ea6809c..5d1b31e 100644 --- a/solidity/contracts/zeto_anon_nullifier.sol +++ b/solidity/contracts/zeto_anon_nullifier.sol @@ -30,8 +30,6 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/U import {SmtLib} from "@iden3/contracts/lib/SmtLib.sol"; import {PoseidonUnit3L} from "@iden3/contracts/lib/Poseidon.sol"; -uint256 constant MAX_SMT_DEPTH = 64; -uint256 constant MAX_BATCH = 10; uint256 constant INPUT_SIZE = 7; uint256 constant BATCH_INPUT_SIZE = 31; diff --git a/solidity/contracts/zeto_anon_nullifier_kyc.sol b/solidity/contracts/zeto_anon_nullifier_kyc.sol index 8ecb960..6cfede4 100644 --- a/solidity/contracts/zeto_anon_nullifier_kyc.sol +++ b/solidity/contracts/zeto_anon_nullifier_kyc.sol @@ -31,8 +31,6 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/U import {SmtLib} from "@iden3/contracts/lib/SmtLib.sol"; import {PoseidonUnit3L} from "@iden3/contracts/lib/Poseidon.sol"; -uint256 constant MAX_SMT_DEPTH = 64; -uint256 constant MAX_BATCH = 10; uint256 constant INPUT_SIZE = 8; uint256 constant BATCH_INPUT_SIZE = 32; diff --git a/solidity/contracts/zeto_nf_anon.sol b/solidity/contracts/zeto_nf_anon.sol index 864f239..fe89295 100644 --- a/solidity/contracts/zeto_nf_anon.sol +++ b/solidity/contracts/zeto_nf_anon.sol @@ -16,8 +16,12 @@ pragma solidity ^0.8.20; import {IZeto} from "./lib/interfaces/izeto.sol"; +import {Groth16Verifier_CheckUtxosNfOwner} from "./lib/verifier_check_utxos_nf_owner.sol"; +import {IZetoLockable} from "./lib/interfaces/izeto_lockable.sol"; + import {Groth16Verifier_NfAnon} from "./lib/verifier_nf_anon.sol"; import {ZetoBase} from "./lib/zeto_base.sol"; +import {ZetoLock} from "./lib/zeto_lock.sol"; import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; @@ -29,14 +33,23 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/U /// - The sender owns the private key whose public key is part of the pre-image of the input UTXOs commitments /// (aka the sender is authorized to spend the input UTXOs) /// - The input UTXOs and output UTXOs are valid in terms of obeying mass conservation rules -contract Zeto_NfAnon is IZeto, ZetoBase, UUPSUpgradeable { +contract Zeto_NfAnon is + IZeto, + IZetoLockable, + ZetoBase, + ZetoLock, + UUPSUpgradeable +{ Groth16Verifier_NfAnon internal verifier; function initialize( address initialOwner, - Groth16Verifier_NfAnon _verifier + Groth16Verifier_NfAnon _verifier, + address _lockVerifier, + address _batchLockVerifier ) public initializer { __ZetoBase_init(initialOwner); + __ZetoLock_init(_lockVerifier, _batchLockVerifier); verifier = _verifier; } @@ -67,6 +80,11 @@ contract Zeto_NfAnon is IZeto, ZetoBase, UUPSUpgradeable { "Invalid transaction proposal" ); + require( + validateLockedStates(inputs), + "At least one UTXO in the inputs are locked" + ); + // construct the public inputs uint256[2] memory publicInputs; publicInputs[0] = input; diff --git a/solidity/contracts/zeto_nf_anon_nullifier.sol b/solidity/contracts/zeto_nf_anon_nullifier.sol index b353e29..aa0dbcb 100644 --- a/solidity/contracts/zeto_nf_anon_nullifier.sol +++ b/solidity/contracts/zeto_nf_anon_nullifier.sol @@ -25,8 +25,6 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/U import {SmtLib} from "@iden3/contracts/lib/SmtLib.sol"; import {PoseidonUnit3L} from "@iden3/contracts/lib/Poseidon.sol"; -uint256 constant MAX_SMT_DEPTH = 64; - /// @title A sample implementation of a Zeto based non-fungible token with anonymity and history masking /// @author Kaleido, Inc. /// @dev The proof has the following statements: diff --git a/solidity/contracts/zkDvP.sol b/solidity/contracts/zkDvP.sol index 6578e83..83460ad 100644 --- a/solidity/contracts/zkDvP.sol +++ b/solidity/contracts/zkDvP.sol @@ -196,7 +196,8 @@ contract zkDvP { function completeTrade( uint256 tradeId, - Commonlib.Proof calldata proof + Commonlib.Proof calldata proof, + Commonlib.Proof calldata lockProof ) public { Trade memory trade = trades[tradeId]; require( @@ -204,12 +205,24 @@ contract zkDvP { "Trade must be in ACCEPTED state to complete" ); bytes32 proofHash = getProofHash(proof); + uint256[] memory lockedStates; if (trade.paymentProofHash == proofHash) { trade.paymentProof = proof; - paymentToken.lockProof(proof, address(this)); + lockedStates = new uint256[](trade.paymentInputs.length); + for (uint256 i = 0; i < trade.paymentInputs.length; i++) { + lockedStates[i] = trade.paymentInputs[i]; + } + paymentToken.lockStates( + lockedStates, + lockProof, + address(this), + "0x" + ); } else if (trade.assetProofHash == proofHash) { trade.assetProof = proof; - assetToken.lockProof(proof, address(this)); + lockedStates = new uint256[](1); + lockedStates[0] = trade.assetInput; + assetToken.lockStates(lockedStates, lockProof, address(this), "0x"); } else { revert("Invalid proof"); } diff --git a/solidity/ignition/modules/lib/deps.ts b/solidity/ignition/modules/lib/deps.ts index 71df1eb..0b68536 100644 --- a/solidity/ignition/modules/lib/deps.ts +++ b/solidity/ignition/modules/lib/deps.ts @@ -71,6 +71,29 @@ export const BatchWithdrawVerifierModule = buildModule( }, ); +export const LockVerifierModule = buildModule( + "Groth16Verifier_CheckUtxosOwner", + (m) => { + const verifier = m.contract("Groth16Verifier_CheckUtxosOwner", []); + return { verifier }; + }, +); +export const BatchLockVerifierModule = buildModule( + "Groth16Verifier_CheckUtxosOwnerBatch", + (m) => { + const verifier = m.contract("Groth16Verifier_CheckUtxosOwnerBatch", []); + return { verifier }; + }, +); + +export const NfLockVerifierModule = buildModule( + "Groth16Verifier_CheckUtxosNfOwner", + (m) => { + const verifier = m.contract("Groth16Verifier_CheckUtxosNfOwner", []); + return { verifier }; + }, +); + function PoseidonArtifact(param: number): Artifact { const abi = poseidonContract.generateABI(param); const bytecode = poseidonContract.createCode(param); diff --git a/solidity/ignition/modules/zeto_anon.ts b/solidity/ignition/modules/zeto_anon.ts index 65f2050..a73afa1 100644 --- a/solidity/ignition/modules/zeto_anon.ts +++ b/solidity/ignition/modules/zeto_anon.ts @@ -19,6 +19,8 @@ import { DepositVerifierModule, WithdrawVerifierModule, BatchWithdrawVerifierModule, + LockVerifierModule, + BatchLockVerifierModule, } from "./lib/deps"; const VerifierModule = buildModule("Groth16Verifier_Anon", (m) => { @@ -39,11 +41,15 @@ export default buildModule("Zeto_Anon", (m) => { const { verifier: batchWithdrawVerifier } = m.useModule( BatchWithdrawVerifierModule, ); + const { verifier: lockVerifier } = m.useModule(LockVerifierModule); + const { verifier: batchLockVerifier } = m.useModule(BatchLockVerifierModule); return { depositVerifier, withdrawVerifier, verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, }; }); diff --git a/solidity/ignition/modules/zeto_anon_enc.ts b/solidity/ignition/modules/zeto_anon_enc.ts index 7710ab2..196b421 100644 --- a/solidity/ignition/modules/zeto_anon_enc.ts +++ b/solidity/ignition/modules/zeto_anon_enc.ts @@ -19,6 +19,8 @@ import { DepositVerifierModule, WithdrawVerifierModule, BatchWithdrawVerifierModule, + LockVerifierModule, + BatchLockVerifierModule, } from "./lib/deps"; const VerifierModule = buildModule("Groth16Verifier_AnonEnc", (m) => { @@ -39,11 +41,15 @@ export default buildModule("Zeto_AnonEnc", (m) => { const { verifier: batchWithdrawVerifier } = m.useModule( BatchWithdrawVerifierModule, ); + const { verifier: lockVerifier } = m.useModule(LockVerifierModule); + const { verifier: batchLockVerifier } = m.useModule(BatchLockVerifierModule); return { depositVerifier, withdrawVerifier, verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, }; }); diff --git a/solidity/ignition/modules/zeto_nf_anon.ts b/solidity/ignition/modules/zeto_nf_anon.ts index a1f8230..2f31221 100644 --- a/solidity/ignition/modules/zeto_nf_anon.ts +++ b/solidity/ignition/modules/zeto_nf_anon.ts @@ -15,7 +15,10 @@ // limitations under the License. import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; - +import { + NfLockVerifierModule, + BatchLockVerifierModule, +} from "./lib/deps"; const VerifierModule = buildModule("Groth16Verifier_NfAnon", (m) => { const verifier = m.contract("Groth16Verifier_NfAnon", []); return { verifier }; @@ -23,6 +26,9 @@ const VerifierModule = buildModule("Groth16Verifier_NfAnon", (m) => { export default buildModule("Zeto_NfAnon", (m) => { const { verifier } = m.useModule(VerifierModule); + const { verifier: lockVerifier } = m.useModule(NfLockVerifierModule); + // TODO: update this to use the correct batch verifier + const { verifier: batchLockVerifier } = m.useModule(BatchLockVerifierModule); - return { verifier }; + return { verifier, lockVerifier, batchLockVerifier }; }); diff --git a/solidity/scripts/tokens/Zeto_Anon.ts b/solidity/scripts/tokens/Zeto_Anon.ts index 500c0b5..7fef7aa 100644 --- a/solidity/scripts/tokens/Zeto_Anon.ts +++ b/solidity/scripts/tokens/Zeto_Anon.ts @@ -26,6 +26,8 @@ export async function deployDependencies() { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, } = await ignition.deploy(zetoModule); return { deployer, @@ -36,6 +38,8 @@ export async function deployDependencies() { withdrawVerifier.target, batchVerifier.target, batchWithdrawVerifier.target, + lockVerifier.target, + batchLockVerifier.target, ], }; } diff --git a/solidity/scripts/tokens/Zeto_AnonEnc.ts b/solidity/scripts/tokens/Zeto_AnonEnc.ts index 47cb0eb..13a5b4f 100644 --- a/solidity/scripts/tokens/Zeto_AnonEnc.ts +++ b/solidity/scripts/tokens/Zeto_AnonEnc.ts @@ -26,6 +26,8 @@ export async function deployDependencies() { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, } = await ignition.deploy(zetoModule); return { deployer, @@ -36,6 +38,8 @@ export async function deployDependencies() { withdrawVerifier.target, batchVerifier.target, batchWithdrawVerifier.target, + lockVerifier.target, + batchLockVerifier.target, ], }; } diff --git a/solidity/scripts/tokens/Zeto_NfAnon.ts b/solidity/scripts/tokens/Zeto_NfAnon.ts index e18dce2..8a1766a 100644 --- a/solidity/scripts/tokens/Zeto_NfAnon.ts +++ b/solidity/scripts/tokens/Zeto_NfAnon.ts @@ -20,9 +20,9 @@ import zetoModule from "../../ignition/modules/zeto_nf_anon"; export async function deployDependencies() { const [deployer] = await ethers.getSigners(); - const { verifier } = await ignition.deploy(zetoModule); + const { verifier, lockVerifier, batchLockVerifier, } = await ignition.deploy(zetoModule); return { deployer, - args: [await deployer.getAddress(), verifier.target], + args: [await deployer.getAddress(), verifier.target, lockVerifier.target, batchLockVerifier.target], }; } diff --git a/solidity/test/utils.ts b/solidity/test/utils.ts index b81d715..0c40d4d 100644 --- a/solidity/test/utils.ts +++ b/solidity/test/utils.ts @@ -18,8 +18,9 @@ import { readFileSync } from "fs"; import * as path from "path"; import { BigNumberish } from "ethers"; import { groth16 } from "snarkjs"; -import { loadCircuit, encodeProof } from "zeto-js"; +import { loadCircuit, encodeProof, tokenUriHash } from "zeto-js"; import { User, UTXO } from "./lib/utils"; +import { formatPrivKeyForBabyJub, stringifyBigInts } from "maci-crypto"; function provingKeysRoot() { const PROVING_KEYS_ROOT = process.env.PROVING_KEYS_ROOT; @@ -213,3 +214,101 @@ export async function prepareWithdrawProof( encodedProof, }; } + +export async function prepareLockProof( + signer: User, + inputs: UTXO[], +) { + const commitments: BigNumberish[] = inputs.map( + (input) => input.hash || 0n, + ) as BigNumberish[]; + const values = inputs.map((input) => BigInt(input.value || 0n)); + const salts = inputs.map((input) => input.salt || 0n); + const otherInputs = stringifyBigInts({ + ownerPrivateKey: formatPrivKeyForBabyJub(signer.babyJubPrivateKey), + }); + + const startWitnessCalculation = Date.now(); + let circuit = await loadCircuit("check_utxos_owner"); + let { provingKeyFile: provingKey } = loadProvingKeys("check_utxos_owner"); + if (commitments.length > 2) { + circuit = await loadCircuit("check_utxos_owner_batch"); + ({ provingKeyFile: provingKey } = loadProvingKeys("check_utxos_owner_batch")); + } + + const witness = await circuit.calculateWTNSBin( + { + commitments, + values, + salts, + ...otherInputs, + }, + true, + ); + const timeWitnessCalculation = Date.now() - startWitnessCalculation; + + const startProofGeneration = Date.now(); + const { proof, publicSignals } = (await groth16.prove( + provingKey, + witness, + )) as { proof: BigNumberish[]; publicSignals: BigNumberish[] }; + const timeProofGeneration = Date.now() - startProofGeneration; + console.log( + `Witness calculation time: ${timeWitnessCalculation}ms, Proof generation time: ${timeProofGeneration}ms`, + ); + const encodedProof = encodeProof(proof); + return { + commitments, + encodedProof, + }; +} + +export async function prepareAssetLockProof( + signer: User, + inputs: UTXO[], +) { + const commitments: BigNumberish[] = inputs.map( + (input) => input.hash || 0n, + ) as BigNumberish[]; + const tokenIds = inputs.map((input) => BigInt(input.tokenId || 0n)); + const tokenUris = inputs.map((input) => BigInt(input.uri ? tokenUriHash(input.uri) : 0n)); + const salts = inputs.map((input) => input.salt || 0n); + const otherInputs = stringifyBigInts({ + ownerPrivateKey: formatPrivKeyForBabyJub(signer.babyJubPrivateKey), + }); + + const startWitnessCalculation = Date.now(); + let circuit = await loadCircuit("check_utxos_nf_owner"); + let { provingKeyFile: provingKey } = loadProvingKeys("check_utxos_nf_owner"); + if (commitments.length > 2) { + circuit = await loadCircuit("check_utxos_owner_batch"); + ({ provingKeyFile: provingKey } = loadProvingKeys("check_utxos_owner_batch")); + } + + const witness = await circuit.calculateWTNSBin( + { + commitments, + tokenIds, + tokenUris, + salts, + ...otherInputs, + }, + true, + ); + const timeWitnessCalculation = Date.now() - startWitnessCalculation; + + const startProofGeneration = Date.now(); + const { proof, publicSignals } = (await groth16.prove( + provingKey, + witness, + )) as { proof: BigNumberish[]; publicSignals: BigNumberish[] }; + const timeProofGeneration = Date.now() - startProofGeneration; + console.log( + `Witness calculation time: ${timeWitnessCalculation}ms, Proof generation time: ${timeProofGeneration}ms`, + ); + const encodedProof = encodeProof(proof); + return { + commitments, + encodedProof, + }; +} diff --git a/solidity/test/zeto_anon.ts b/solidity/test/zeto_anon.ts index 5a33699..35e1da5 100644 --- a/solidity/test/zeto_anon.ts +++ b/solidity/test/zeto_anon.ts @@ -32,6 +32,7 @@ import { import { loadProvingKeys, prepareDepositProof, + prepareLockProof, prepareWithdrawProof, } from "./utils"; import { Zeto_Anon } from "../typechain-types"; @@ -382,6 +383,50 @@ describe("Zeto based fungible token with anonymity without encryption or nullifi }); }); + describe("lockStates() tests", function () { + it("lockStates() should succeed when using unlocked states", async function () { + const { commitments, encodedProof } = await prepareLockProof(Bob, [utxo7, ZERO_UTXO]); + + const tx = await zeto.connect(Bob.signer).lockStates( + commitments.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Alice.ethAddress, // make Alice the delegate who can spend the state (if she has the right proof) + "0x", + ); + const results = await tx.wait(); + console.log(`Method transfer() complete. Gas used: ${results?.gasUsed}`); + }); + + it("lockStates() should fail when trying to lock as non-delegate", async function () { + if (network.name !== "hardhat") { + return; + } + + // Bob is the owner of the UTXO, so he can generate the right proof + const { commitments, encodedProof } = await prepareLockProof(Bob, [utxo7, ZERO_UTXO]); + + // but he's no longer the delegate (Alice is) to spend the state + await expect(zeto.connect(Bob.signer).lockStates( + commitments.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Bob.ethAddress, + "0x", + )).rejectedWith(`UTXOAlreadyLocked(${utxo7.hash.toString()})`); + }); + + it("the original owner can NOT use the proper proof to spend the locked state", async function () { + const utxo8 = newUTXO(15, Alice); + const { inputCommitments, outputCommitments, encodedProof } = await prepareProof(circuit, provingKey, Bob, [utxo7, ZERO_UTXO], [utxo8, ZERO_UTXO], [Alice, Alice]); + await expect(sendTx(Bob, inputCommitments, outputCommitments, encodedProof)).to.be.rejectedWith("UTXOAlreadyLocked"); + }); + + it("the designated delegate can use the proper proof to spend the locked state", async function () { + const utxo8 = newUTXO(15, Alice); + const { inputCommitments, outputCommitments, encodedProof } = await prepareProof(circuit, provingKey, Bob, [utxo7, ZERO_UTXO], [utxo8, ZERO_UTXO], [Alice, Alice]); + await expect(sendTx(Alice, inputCommitments, outputCommitments, encodedProof)).to.be.fulfilled; + }); + }); + async function doTransfer( signer: User, inputs: UTXO[], @@ -417,7 +462,6 @@ describe("Zeto based fungible token with anonymity without encryption or nullifi signer, inputCommitments, outputCommitments, - outputOwnerAddresses, encodedProof, ); } @@ -426,10 +470,8 @@ describe("Zeto based fungible token with anonymity without encryption or nullifi signer: User, inputCommitments: BigNumberish[], outputCommitments: BigNumberish[], - outputOwnerAddresses: AddressLike[], encodedProof: any, ) { - const signerAddress = await signer.signer.getAddress(); const tx = await zeto.connect(signer.signer).transfer( inputCommitments.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works outputCommitments.filter((oc) => oc !== 0n), // trim off empty utxo hashes to check padding logic for batching works @@ -440,11 +482,17 @@ describe("Zeto based fungible token with anonymity without encryption or nullifi console.log(`Method transfer() complete. Gas used: ${results?.gasUsed}`); for (const input of inputCommitments) { + if (input === 0n) { + continue; + } const owner = await zeto.spent(input); expect(owner).to.equal(true); } - for (let i = 0; i < outputCommitments.length; i++) { - expect(await zeto.spent(outputCommitments[i])).to.equal(false); + for (const output of outputCommitments) { + if (output === 0n) { + continue; + } + expect(await zeto.spent(output)).to.equal(false); } return results; diff --git a/solidity/test/zeto_anon_enc.ts b/solidity/test/zeto_anon_enc.ts index 0e29e3c..7232aeb 100644 --- a/solidity/test/zeto_anon_enc.ts +++ b/solidity/test/zeto_anon_enc.ts @@ -43,6 +43,7 @@ import { import { loadProvingKeys, prepareDepositProof, + prepareLockProof, prepareWithdrawProof, } from "./utils"; import { deployZeto } from "./lib/deploy"; @@ -370,6 +371,52 @@ describe("Zeto based fungible token with anonymity and encryption", function () }); }); + describe("lockStates() tests", function () { + it("lockStates() should succeed when using unlocked states", async function () { + const { commitments, encodedProof } = await prepareLockProof(Alice, [utxo4, ZERO_UTXO]); + + const tx = await zeto.connect(Alice.signer).lockStates( + commitments.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Bob.ethAddress, // make Bob the delegate who can spend the state (if she has the right proof) + "0x", + ); + const results = await tx.wait(); + console.log(`Method transfer() complete. Gas used: ${results?.gasUsed}`); + }); + + it("lockStates() should fail when trying to lock as non-delegate", async function () { + if (network.name !== "hardhat") { + return; + } + + // Bob is the owner of the UTXO, so he can generate the right proof + const { commitments, encodedProof } = await prepareLockProof(Alice, [utxo4, ZERO_UTXO]); + + // but he's no longer the delegate (Alice is) to spend the state + await expect(zeto.connect(Alice.signer).lockStates( + commitments.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Alice.ethAddress, + "0x", + )).rejectedWith(`UTXOAlreadyLocked(${utxo4.hash.toString()})`); + }); + + it("the original owner can NOT use the proper proof to spend the locked state", async function () { + const utxo8 = newUTXO(5, Charlie); + const ephemeralKeypair = genKeypair(); + const { inputCommitments, outputCommitments, encodedProof, encryptedValues, encryptionNonce } = await prepareProof(Alice, [utxo4, ZERO_UTXO], [utxo8, ZERO_UTXO], [Charlie, Alice], ephemeralKeypair.privKey); + await expect(sendTx(Alice, inputCommitments, outputCommitments, encryptedValues, encryptionNonce, encodedProof, ephemeralKeypair.pubKey)).to.be.rejectedWith("UTXOAlreadyLocked"); + }); + + it("the designated delegate can use the proper proof to spend the locked state", async function () { + const utxo8 = newUTXO(5, Charlie); + const ephemeralKeypair = genKeypair(); + const { inputCommitments, outputCommitments, encodedProof, encryptedValues, encryptionNonce } = await prepareProof(Alice, [utxo4, ZERO_UTXO], [utxo8, ZERO_UTXO], [Charlie, Alice], ephemeralKeypair.privKey); + await expect(sendTx(Bob, inputCommitments, outputCommitments, encryptedValues, encryptionNonce, encodedProof, ephemeralKeypair.pubKey)).to.be.fulfilled; + }); + }); + async function doTransfer( signer: User, inputs: UTXO[], diff --git a/solidity/test/zeto_nf_anon.ts b/solidity/test/zeto_nf_anon.ts index 9fa70e2..754fc72 100644 --- a/solidity/test/zeto_nf_anon.ts +++ b/solidity/test/zeto_nf_anon.ts @@ -20,8 +20,8 @@ import { expect } from "chai"; import { loadCircuit, tokenUriHash, encodeProof } from "zeto-js"; import { groth16 } from "snarkjs"; import { formatPrivKeyForBabyJub, stringifyBigInts } from "maci-crypto"; -import { User, UTXO, newUser, newAssetUTXO, doMint } from "./lib/utils"; -import { loadProvingKeys } from "./utils"; +import { User, UTXO, newUser, newAssetUTXO, doMint, ZERO_UTXO } from "./lib/utils"; +import { loadProvingKeys, prepareAssetLockProof } from "./utils"; import { deployZeto } from "./lib/deploy"; describe("Zeto based non-fungible token with anonymity without encryption or nullifiers", function () { @@ -122,6 +122,50 @@ describe("Zeto based non-fungible token with anonymity without encryption or nul }); }); + describe("lockStates() tests", function () { + it("lockStates() should succeed when using unlocked states", async function () { + const { commitments, encodedProof } = await prepareAssetLockProof(Charlie, [utxo3, ZERO_UTXO]); + + const tx = await zeto.connect(Bob.signer).lockStates( + commitments.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Alice.ethAddress, // make Alice the delegate who can spend the state (if she has the right proof) + "0x", + ); + const results = await tx.wait(); + console.log(`Method transfer() complete. Gas used: ${results?.gasUsed}`); + }); + + it("lockStates() should fail when trying to lock as non-delegate", async function () { + if (network.name !== "hardhat") { + return; + } + + // Charlie is the owner of the UTXO, so he can generate the right proof + const { commitments, encodedProof } = await prepareAssetLockProof(Charlie, [utxo3, ZERO_UTXO]); + + // but he's no longer the delegate (Alice is) to spend the state + await expect(zeto.connect(Charlie.signer).lockStates( + commitments.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Bob.ethAddress, + "0x", + )).rejectedWith(`UTXOAlreadyLocked(${utxo3.hash.toString()})`); + }); + + it("the original owner can NOT use the proper proof to spend the locked state", async function () { + const utxo8 = newAssetUTXO(utxo3.tokenId!, utxo3.uri!, Alice); + const { inputCommitment, outputCommitment, encodedProof } = await prepareProof(circuit, provingKey, Charlie, utxo3, utxo8, Alice); + await expect(sendTx(Charlie, inputCommitment, outputCommitment, encodedProof)).to.be.rejectedWith("UTXOAlreadyLocked"); + }); + + it("the designated delegate can use the proper proof to spend the locked state", async function () { + const utxo8 = newAssetUTXO(utxo3.tokenId!, utxo3.uri!, Alice); + const { inputCommitment, outputCommitment, encodedProof } = await prepareProof(circuit, provingKey, Charlie, utxo3, utxo8, Alice); + await expect(sendTx(Alice, inputCommitment, outputCommitment, encodedProof)).to.be.fulfilled; + }); + }); + async function doTransfer(signer: User, input: UTXO, output: UTXO, to: User) { let inputCommitment: BigNumberish; let outputCommitment: BigNumberish; diff --git a/solidity/test/zkDvP.ts b/solidity/test/zkDvP.ts index 2c96007..60c2868 100644 --- a/solidity/test/zkDvP.ts +++ b/solidity/test/zkDvP.ts @@ -15,7 +15,7 @@ // limitations under the License. import { ethers, ignition, network } from "hardhat"; -import { Signer, encodeBytes32String, ZeroHash } from "ethers"; +import { Signer, encodeBytes32String, ZeroHash, lock } from "ethers"; import { expect } from "chai"; import { loadCircuit, getProofHash } from "zeto-js"; import zkDvPModule from "../ignition/modules/zkDvP"; @@ -31,7 +31,7 @@ import { ZERO_UTXO, parseUTXOEvents, } from "./lib/utils"; -import { loadProvingKeys } from "./utils"; +import { loadProvingKeys, prepareLockProof, prepareAssetLockProof } from "./utils"; import { deployZeto } from "./lib/deploy"; describe("DvP flows between fungible and non-fungible tokens based on Zeto with anonymity without encryption or nullifiers", function () { @@ -163,6 +163,7 @@ describe("DvP flows between fungible and non-fungible tokens based on Zeto with [Bob, {}], ); const hash1 = getProofHash(proof1.encodedProof); + const lockProof1 = await prepareLockProof(Alice, [_utxo1, ZERO_UTXO]); // 1.3 Alice initiates the trade with Bob const tx1 = await zkDvP @@ -188,6 +189,7 @@ describe("DvP flows between fungible and non-fungible tokens based on Zeto with Alice, ); const hash2 = getProofHash(proof2.encodedProof); + const lockProof2 = await prepareAssetLockProof(Bob, [utxo3, ZERO_UTXO]); await expect( zkDvP @@ -206,13 +208,13 @@ describe("DvP flows between fungible and non-fungible tokens based on Zeto with // 3. Alice sends her proof to complete the trade (the trade will still be pending completion) const tx2 = await zkDvP .connect(Alice.signer) - .completeTrade(tradeId, proof1.encodedProof); + .completeTrade(tradeId, proof1.encodedProof, lockProof1.encodedProof); const tx2Result = await tx2.wait(); // 4. Bob sends his proof to complete the trade (the trade will be completed) const tx3 = await zkDvP .connect(Bob.signer) - .completeTrade(tradeId, proof2.encodedProof); + .completeTrade(tradeId, proof2.encodedProof, lockProof2.encodedProof); const tx3Result = await tx3.wait(); // check that the trade is completed @@ -445,43 +447,5 @@ describe("DvP flows between fungible and non-fungible tokens based on Zeto with ), ).rejectedWith("Payment outputs must be provided to accept the trade"); }); - - it("test proof locking", async function () { - const circuit1 = await loadCircuit("anon"); - const { provingKeyFile: provingKey1 } = loadProvingKeys("anon"); - const utxo1 = newUTXO(100, Alice); - const proof = await zetoAnonTests.prepareProof( - circuit1, - provingKey1, - Alice, - [utxo1, ZERO_UTXO], - [utxo1, ZERO_UTXO], - [Alice, {}], - ); - - await expect( - zkPayment - .connect(Alice.signer) - .lockProof(proof.encodedProof, await Alice.signer.getAddress()), - ).fulfilled; - await expect( - zkPayment - .connect(Bob.signer) - .lockProof(proof.encodedProof, await Bob.signer.getAddress()), - ).rejectedWith("Proof already locked by another party"); - await expect( - zkPayment - .connect(Alice.signer) - .lockProof(proof.encodedProof, await Bob.signer.getAddress()), - ).fulfilled; - await expect( - zkPayment - .connect(Bob.signer) - .lockProof( - proof.encodedProof, - "0x0000000000000000000000000000000000000000", - ), - ).fulfilled; - }); }); }).timeout(600000); diff --git a/solidity/contracts/lib/interfaces/zeto_nf_initializable.sol b/zkp/circuits/check_utxos_nf_owner.circom similarity index 81% rename from solidity/contracts/lib/interfaces/zeto_nf_initializable.sol rename to zkp/circuits/check_utxos_nf_owner.circom index 00dd56b..688d7f3 100644 --- a/solidity/contracts/lib/interfaces/zeto_nf_initializable.sol +++ b/zkp/circuits/check_utxos_nf_owner.circom @@ -13,8 +13,8 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -pragma solidity ^0.8.20; +pragma circom 2.1.9; -interface IZetoNonFungibleInitializable { - function initialize(address initialOwner, address _verifier) external; -} +include "./lib/check-utxos-nf-owner.circom"; + +component main {public [ commitments ]} = CheckUTXOsNFOwner(2); diff --git a/zkp/circuits/check_utxos_owner.circom b/zkp/circuits/check_utxos_owner.circom new file mode 100644 index 0000000..0a24b82 --- /dev/null +++ b/zkp/circuits/check_utxos_owner.circom @@ -0,0 +1,20 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma circom 2.1.9; + +include "./lib/check-utxos-owner.circom"; + +component main {public [ commitments ]} = CheckUTXOsOwner(2); diff --git a/zkp/circuits/check_utxos_owner_batch.circom b/zkp/circuits/check_utxos_owner_batch.circom new file mode 100644 index 0000000..f9d29e0 --- /dev/null +++ b/zkp/circuits/check_utxos_owner_batch.circom @@ -0,0 +1,20 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma circom 2.1.9; + +include "./lib/check-utxos-owner.circom"; + +component main {public [ commitments ]} = CheckUTXOsOwner(10); diff --git a/zkp/circuits/gen-config.json b/zkp/circuits/gen-config.json index e4a0f3c..f72b1e9 100644 --- a/zkp/circuits/gen-config.json +++ b/zkp/circuits/gen-config.json @@ -58,6 +58,15 @@ "batchPtau": "powersOfTau28_hez_final_19", "skipSolidityGenaration": false }, + "check_utxos_owner": { + "ptau": "powersOfTau28_hez_final_13", + "batchPtau": "powersOfTau28_hez_final_14", + "skipSolidityGenaration": false + }, + "check_utxos_nf_owner": { + "ptau": "powersOfTau28_hez_final_13", + "skipSolidityGenaration": false + }, "check_nullifiers": { "ptau": "powersOfTau28_hez_final_13", "skipSolidityGenaration": true diff --git a/zkp/circuits/lib/check-utxos-nf-owner.circom b/zkp/circuits/lib/check-utxos-nf-owner.circom new file mode 100644 index 0000000..a62be09 --- /dev/null +++ b/zkp/circuits/lib/check-utxos-nf-owner.circom @@ -0,0 +1,45 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma circom 2.1.9; + +include "./check-hashes-tokenid-uri.circom"; +include "../node_modules/circomlib/circuits/babyjub.circom"; + +// This version of the circuit performs the following operations: +// - derive the sender's public key from the sender's private key +// - check the commitments match the calculated hashes for a non-fungible UTXO +template CheckUTXOsNFOwner(nInputs) { + signal input commitments[nInputs]; + signal input tokenIds[nInputs]; + signal input tokenUris[nInputs]; + signal input salts[nInputs]; + // must be properly hashed and trimmed to be compatible with the BabyJub curve. + // Reference: https://github.com/iden3/circomlib/blob/master/test/babyjub.js#L103 + signal input ownerPrivateKey; + + // derive the sender's public key from the secret input + // for the sender's private key. This step demonstrates + // the sender really owns the private key for the input + // UTXOs + var ownerPubKeyAx, ownerPubKeyAy; + (ownerPubKeyAx, ownerPubKeyAy) = BabyPbk()(in <== ownerPrivateKey); + + var ownerPublicKeys[nInputs][2]; + for (var i = 0; i < nInputs; i++) { + ownerPublicKeys[i]= [ownerPubKeyAx, ownerPubKeyAy]; + } + CheckHashesForTokenIdAndUri(nInputs)(commitments <== commitments, tokenIds <== tokenIds, tokenUris <== tokenUris, salts <== salts, ownerPublicKeys <== ownerPublicKeys); +} diff --git a/zkp/circuits/lib/check-utxos-owner.circom b/zkp/circuits/lib/check-utxos-owner.circom index 51fe836..ea2bc72 100644 --- a/zkp/circuits/lib/check-utxos-owner.circom +++ b/zkp/circuits/lib/check-utxos-owner.circom @@ -15,32 +15,30 @@ // limitations under the License. pragma circom 2.1.9; -include "../lib/check-positive.circom"; -include "../lib/check-hashes.circom"; -include "../lib/check-sum.circom"; +include "./check-hashes.circom"; include "../node_modules/circomlib/circuits/babyjub.circom"; // This version of the circuit performs the following operations: // - derive the sender's public key from the sender's private key // - check the commitments match the calculated hashes template CheckUTXOsOwner(nInputs) { - signal input inputCommitments[nInputs]; - signal input inputValues[nInputs]; - signal input inputSalts[nInputs]; + signal input commitments[nInputs]; + signal input values[nInputs]; + signal input salts[nInputs]; // must be properly hashed and trimmed to be compatible with the BabyJub curve. // Reference: https://github.com/iden3/circomlib/blob/master/test/babyjub.js#L103 - signal input inputOwnerPrivateKey; + signal input ownerPrivateKey; // derive the sender's public key from the secret input // for the sender's private key. This step demonstrates // the sender really owns the private key for the input // UTXOs - var inputOwnerPubKeyAx, inputOwnerPubKeyAy; - (inputOwnerPubKeyAx, inputOwnerPubKeyAy) = BabyPbk()(in <== inputOwnerPrivateKey); + var ownerPubKeyAx, ownerPubKeyAy; + (ownerPubKeyAx, ownerPubKeyAy) = BabyPbk()(in <== ownerPrivateKey); - var inputOwnerPublicKeys[nInputs][2]; + var ownerPublicKeys[nInputs][2]; for (var i = 0; i < nInputs; i++) { - inputOwnerPublicKeys[i]= [inputOwnerPubKeyAx, inputOwnerPubKeyAy]; + ownerPublicKeys[i]= [ownerPubKeyAx, ownerPubKeyAy]; } - CheckHashes(nInputs)(commitments <== inputCommitments, values <== inputValues, salts <== inputSalts, ownerPublicKeys <== inputOwnerPublicKeys); + CheckHashes(nInputs)(commitments <== commitments, values <== values, salts <== salts, ownerPublicKeys <== ownerPublicKeys); } diff --git a/zkp/js/integration-test/check_utxos_owner.js b/zkp/js/integration-test/check_utxos_owner.js new file mode 100644 index 0000000..cf36a79 --- /dev/null +++ b/zkp/js/integration-test/check_utxos_owner.js @@ -0,0 +1,169 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const { expect } = require("chai"); +const { groth16 } = require("snarkjs"); +const { genKeypair, formatPrivKeyForBabyJub } = require("maci-crypto"); +const { + Merkletree, + InMemoryDB, + str2Bytes, + ZERO_HASH, +} = require("@iden3/js-merkletree"); +const { Poseidon, newSalt, loadCircuit } = require("../index.js"); +const { loadProvingKeys } = require("./utils.js"); + +const SMT_HEIGHT = 64; +const poseidonHash = Poseidon.poseidon4; +const poseidonHash3 = Poseidon.poseidon3; + +describe("check_nullifier_value circuit tests", () => { + let circuit, provingKeyFile, verificationKey, smtAlice; + + const Alice = {}; + let senderPrivateKey; + + before(async () => { + circuit = await loadCircuit("check_nullifier_value"); + ({ provingKeyFile, verificationKey } = loadProvingKeys( + "check_nullifier_value", + )); + + let keypair = genKeypair(); + Alice.privKey = keypair.privKey; + Alice.pubKey = keypair.pubKey; + senderPrivateKey = formatPrivKeyForBabyJub(Alice.privKey); + + // initialize the local storage for Alice to manage her UTXOs in the Spart Merkle Tree + const storage1 = new InMemoryDB(str2Bytes("")); + smtAlice = new Merkletree(storage1, true, SMT_HEIGHT); + }); + + it("should generate a valid proof that can be verified successfully and fail when public signals are tampered", async () => { + const inputValues = [15, 100]; + const outputValues = [35]; + + // create two input UTXOs, each has their own salt, but same owner + const senderPrivateKey = formatPrivKeyForBabyJub(Alice.privKey); + const salt1 = newSalt(); + const input1 = poseidonHash([ + BigInt(inputValues[0]), + salt1, + ...Alice.pubKey, + ]); + const salt2 = newSalt(); + const input2 = poseidonHash([ + BigInt(inputValues[1]), + salt2, + ...Alice.pubKey, + ]); + const inputCommitments = [input1, input2]; + + // create the nullifiers for the input UTXOs + const nullifier1 = poseidonHash3([ + BigInt(inputValues[0]), + salt1, + senderPrivateKey, + ]); + const nullifier2 = poseidonHash3([ + BigInt(inputValues[1]), + salt2, + senderPrivateKey, + ]); + const nullifiers = [nullifier1, nullifier2]; + + // calculate the root of the SMT + await smtAlice.add(input1, input1); + await smtAlice.add(input2, input2); + + // generate the merkle proof for the inputs + const proof1 = await smtAlice.generateCircomVerifierProof( + input1, + ZERO_HASH, + ); + const proof2 = await smtAlice.generateCircomVerifierProof( + input2, + ZERO_HASH, + ); + + // create two output UTXOs, they share the same salt, and different owner + const salt3 = newSalt(); + const output1 = poseidonHash([ + BigInt(outputValues[0]), + salt3, + ...Alice.pubKey, + ]); + const outputCommitments = [output1]; + + const startTime = Date.now(); + const witness = await circuit.calculateWTNSBin( + { + nullifiers, + inputCommitments, + inputValues, + inputSalts: [salt1, salt2], + inputOwnerPrivateKey: senderPrivateKey, + root: proof1.root.bigInt(), + merkleProof: [ + proof1.siblings.map((s) => s.bigInt()), + proof2.siblings.map((s) => s.bigInt()), + ], + enabled: [1, 1], + outputCommitments, + outputValues, + outputSalts: [salt3], + outputOwnerPublicKeys: [Alice.pubKey], + }, + true, + ); + + const { proof, publicSignals } = await groth16.prove( + provingKeyFile, + witness, + ); + console.log("Proving time: ", (Date.now() - startTime) / 1000, "s"); + + let verifyResult = await groth16.verify( + verificationKey, + publicSignals, + proof, + ); + expect(verifyResult).to.be.true; + // console.log('nullifiers', nullifiers); + // console.log('inputCommitments', inputCommitments); + // console.log('outputCommitments', outputCommitments); + // console.log('root', proof1.root.bigInt()); + // console.log("public signals", publicSignals); + const tamperedOutputHash = poseidonHash([ + BigInt(100), + salt3, + ...Alice.pubKey, + ]); + let tamperedPublicSignals = publicSignals.map((ps) => + ps.toString() === outputCommitments[0].toString() + ? tamperedOutputHash + : ps, + ); + // console.log("tampered public signals", tamperedPublicSignals); + + verifyResult = await groth16.verify( + verificationKey, + tamperedPublicSignals, + proof, + ); + expect(verifyResult).to.be.false; + }).timeout(600000); +}); diff --git a/zkp/js/test/check_utxos_nf_owner.js b/zkp/js/test/check_utxos_nf_owner.js new file mode 100644 index 0000000..c433d5d --- /dev/null +++ b/zkp/js/test/check_utxos_nf_owner.js @@ -0,0 +1,98 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const { expect } = require('chai'); +const { join } = require('path'); +const { wasm: wasm_tester } = require('circom_tester'); +const { genKeypair, formatPrivKeyForBabyJub } = require('maci-crypto'); +const { Poseidon, newSalt, tokenUriHash } = require('../index.js'); + +const poseidonHash = Poseidon.poseidon5; + +describe('check_utxos_nf_owner circuit tests', () => { + let circuit; + const sender = {}; + let senderPrivateKey; + + before(async function () { + this.timeout(60000); + + circuit = await wasm_tester(join(__dirname, '../../circuits/check_utxos_nf_owner.circom')); + + let keypair = genKeypair(); + sender.privKey = keypair.privKey; + sender.pubKey = keypair.pubKey; + senderPrivateKey = formatPrivKeyForBabyJub(sender.privKey); + }); + + it('should return true for valid witness', async () => { + const tokenIds = [1001, 0]; + const tokenUris = [tokenUriHash('http://ipfs.io/some-file-hash'), 0]; + + // create two input UTXOs, each has their own salt, but same owner + const salt1 = newSalt(); + const input1 = poseidonHash([BigInt(tokenIds[0]), tokenUris[0], salt1, ...sender.pubKey]); + const commitments = [input1, 0]; + + const witness = await circuit.calculateWitness( + { + commitments, + tokenIds, + tokenUris, + salts: [salt1, 0], + ownerPrivateKey: senderPrivateKey, + }, + true + ); + + // console.log(witness.slice(0, 10)); + // console.log('commitments', commitments); + // console.log('sender public key', sender.pubKey); + // console.log('sender private key', senderPrivateKey); + expect(witness[1]).to.equal(BigInt(commitments[0])); + expect(witness[9]).to.equal(BigInt(senderPrivateKey)); + expect(witness[10]).to.equal(BigInt(sender.pubKey[0])); + expect(witness[11]).to.equal(BigInt(sender.pubKey[1])); + }); + + it('should fail to generate a witness because of invalid owner private key', async () => { + const tokenIds = [1001, 0]; + const tokenUris = [tokenUriHash('http://ipfs.io/some-file-hash'), 0]; + + // create two input UTXOs, each has their own salt, but same owner + const salt1 = newSalt(); + const input1 = poseidonHash([BigInt(tokenIds[0]), tokenUris[0], salt1, ...sender.pubKey]); + const commitments = [input1, 0]; + + let error; + try { + await circuit.calculateWitness( + { + commitments, + tokenIds, + tokenUris, + salts: [salt1, 0], + ownerPrivateKey: senderPrivateKey + BigInt(1), + }, + true + ); + } catch (e) { + error = e; + } + // console.log(error); + expect(error).to.match(/Error in template CheckHashesForTokenIdAndUri_88 line: 51/); // hash check failed + }); +}); diff --git a/zkp/js/test/lib/check-utxos-owner.js b/zkp/js/test/check_utxos_owner.js similarity index 65% rename from zkp/js/test/lib/check-utxos-owner.js rename to zkp/js/test/check_utxos_owner.js index bd6b8d3..17fba51 100644 --- a/zkp/js/test/lib/check-utxos-owner.js +++ b/zkp/js/test/check_utxos_owner.js @@ -17,29 +17,26 @@ const { expect } = require('chai'); const { join } = require('path'); const { wasm: wasm_tester } = require('circom_tester'); -const { genKeypair } = require('maci-crypto'); -const { Poseidon, newSalt } = require('../../index.js'); +const { genKeypair, formatPrivKeyForBabyJub } = require('maci-crypto'); +const { Poseidon, newSalt } = require('../index.js'); const ZERO_PUBKEY = [0n, 0n]; const poseidonHash = Poseidon.poseidon4; -describe('check-hashes circuit tests', () => { +describe('check_utxos_owner circuit tests', () => { let circuit; const sender = {}; - const receiver = {}; + let senderPrivateKey; before(async function () { this.timeout(60000); - circuit = await wasm_tester(join(__dirname, '../circuits/check-hashes.circom')); + circuit = await wasm_tester(join(__dirname, '../../circuits/check_utxos_owner.circom')); let keypair = genKeypair(); sender.privKey = keypair.privKey; sender.pubKey = keypair.pubKey; - - keypair = genKeypair(); - receiver.privKey = keypair.privKey; - receiver.pubKey = keypair.pubKey; + senderPrivateKey = formatPrivKeyForBabyJub(sender.privKey); }); it('should return true for valid witness', async () => { @@ -57,7 +54,7 @@ describe('check-hashes circuit tests', () => { commitments, values, salts: [salt1, salt2], - ownerPublicKeys: [sender.pubKey, sender.pubKey], + ownerPrivateKey: senderPrivateKey, }, true ); @@ -65,10 +62,12 @@ describe('check-hashes circuit tests', () => { // console.log(witness.slice(0, 10)); // console.log('commitments', commitments); // console.log('sender public key', sender.pubKey); + // console.log('sender private key', senderPrivateKey); expect(witness[1]).to.equal(BigInt(commitments[0])); expect(witness[2]).to.equal(BigInt(commitments[1])); - expect(witness[3]).to.equal(BigInt(sender.pubKey[0])); - expect(witness[4]).to.equal(BigInt(sender.pubKey[1])); + expect(witness[7]).to.equal(BigInt(senderPrivateKey)); + expect(witness[8]).to.equal(BigInt(sender.pubKey[0])); + expect(witness[9]).to.equal(BigInt(sender.pubKey[1])); }); it('should return true for valid witness using a single input value', async () => { @@ -84,15 +83,16 @@ describe('check-hashes circuit tests', () => { commitments, values, salts: [salt1, 0], - ownerPublicKeys: [sender.pubKey, [0n, 0n]], + ownerPrivateKey: senderPrivateKey, }, true ); expect(witness[1]).to.equal(BigInt(commitments[0])); expect(witness[2]).to.equal(BigInt(commitments[1])); - expect(witness[3]).to.equal(BigInt(sender.pubKey[0])); - expect(witness[4]).to.equal(BigInt(sender.pubKey[1])); + expect(witness[7]).to.equal(BigInt(senderPrivateKey)); + expect(witness[8]).to.equal(BigInt(sender.pubKey[0])); + expect(witness[9]).to.equal(BigInt(sender.pubKey[1])); }); it('should return true for valid witness using a single input value', async () => { @@ -108,17 +108,16 @@ describe('check-hashes circuit tests', () => { commitments, values, salts: [0, salt1], - ownerPublicKeys: [[0n, 0n], sender.pubKey], + ownerPrivateKey: senderPrivateKey, }, true ); expect(witness[1]).to.equal(BigInt(commitments[0])); expect(witness[2]).to.equal(BigInt(commitments[1])); - expect(witness[3]).to.equal(0n); - expect(witness[4]).to.equal(0n); - expect(witness[5]).to.equal(BigInt(sender.pubKey[0])); - expect(witness[6]).to.equal(BigInt(sender.pubKey[1])); + expect(witness[7]).to.equal(BigInt(senderPrivateKey)); + expect(witness[8]).to.equal(BigInt(sender.pubKey[0])); + expect(witness[9]).to.equal(BigInt(sender.pubKey[1])); }); it('should fail to generate a witness because of invalid input commitments', async () => { @@ -138,7 +137,35 @@ describe('check-hashes circuit tests', () => { commitments: inputCommitments, values: inputValues, salts: [salt1, salt2], - ownerPublicKeys: [sender.pubKey, sender.pubKey], + ownerPrivateKey: senderPrivateKey, + }, + true + ); + } catch (e) { + error = e; + } + // console.log(error); + expect(error).to.match(/Error in template CheckHashes_88 line: 47/); // hash check failed + }); + + it('should fail to generate a witness because of invalid owner private key', async () => { + const inputValues = [25, 100]; + + // create two input UTXOs, each has their own salt, but same owner + const salt1 = newSalt(); + const input1 = poseidonHash([BigInt(inputValues[0]), salt1, ...sender.pubKey]); + const salt2 = newSalt(); + const input2 = poseidonHash([BigInt(inputValues[1]), salt2, ...sender.pubKey]); + const inputCommitments = [input1, input2]; + + let error; + try { + await circuit.calculateWitness( + { + commitments: inputCommitments, + values: inputValues, + salts: [salt1, salt2], + ownerPrivateKey: senderPrivateKey + BigInt(1), }, true ); @@ -146,6 +173,6 @@ describe('check-hashes circuit tests', () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template CheckHashes_76 line: 47/); // hash check failed + expect(error).to.match(/Error in template CheckHashes_88 line: 47/); // hash check failed }); }); diff --git a/zkp/js/test/lib/check-hashes.js b/zkp/js/test/lib/check-hashes.js index a744c43..cded1dc 100644 --- a/zkp/js/test/lib/check-hashes.js +++ b/zkp/js/test/lib/check-hashes.js @@ -21,8 +21,6 @@ const { wasm: wasm_tester } = require("circom_tester"); const { genKeypair } = require("maci-crypto"); const { Poseidon, newSalt } = require("../../index.js"); -const MAX_VALUE = 2n ** 40n - 1n; -const ZERO_PUBKEY = [0n, 0n]; const poseidonHash = Poseidon.poseidon4; describe("check-hashes circuit tests", () => { From deb1d0aa16260adf32a61cbc8610f822c456b129 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Thu, 12 Dec 2024 16:30:18 -0500 Subject: [PATCH 03/20] Clean up unused imports in Solidity Signed-off-by: Jim Zhang --- solidity/contracts/lib/zeto_base.sol | 6 +----- solidity/contracts/lib/zeto_common.sol | 1 - solidity/contracts/lib/zeto_fungible.sol | 1 - solidity/contracts/lib/zeto_fungible_withdraw.sol | 3 --- .../contracts/lib/zeto_fungible_withdraw_nullifier.sol | 2 -- solidity/contracts/lib/zeto_lock.sol | 4 ---- solidity/contracts/lib/zeto_nullifier.sol | 3 --- solidity/contracts/zeto_anon.sol | 7 ++----- solidity/contracts/zeto_anon_enc.sol | 7 ++----- solidity/contracts/zeto_anon_enc_nullifier.sol | 1 - .../contracts/zeto_anon_enc_nullifier_non_repudiation.sol | 1 - solidity/contracts/zeto_anon_nullifier.sol | 4 ---- solidity/contracts/zeto_anon_nullifier_kyc.sol | 3 --- solidity/contracts/zeto_nf_anon.sol | 4 +--- solidity/contracts/zeto_nf_anon_nullifier.sol | 4 ---- 15 files changed, 6 insertions(+), 45 deletions(-) diff --git a/solidity/contracts/lib/zeto_base.sol b/solidity/contracts/lib/zeto_base.sol index 9fb8290..696c750 100644 --- a/solidity/contracts/lib/zeto_base.sol +++ b/solidity/contracts/lib/zeto_base.sol @@ -17,10 +17,7 @@ pragma solidity ^0.8.20; import {IZetoBase} from "./interfaces/izeto_base.sol"; import {Commonlib} from "./common.sol"; -import {Registry} from "./registry.sol"; import {ZetoCommon} from "./zeto_common.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; /// @title A sample base implementation of a Zeto based token contract /// without using nullifiers. Each UTXO's spending status is explicitly tracked. @@ -48,8 +45,7 @@ abstract contract ZetoBase is IZetoBase, ZetoCommon { function validateTransactionProposal( uint256[] memory inputs, - uint256[] memory outputs, - Commonlib.Proof calldata proof + uint256[] memory outputs ) internal view returns (bool) { // sort the inputs and outputs to detect duplicates ( diff --git a/solidity/contracts/lib/zeto_common.sol b/solidity/contracts/lib/zeto_common.sol index 34f2859..30d9dcf 100644 --- a/solidity/contracts/lib/zeto_common.sol +++ b/solidity/contracts/lib/zeto_common.sol @@ -16,7 +16,6 @@ pragma solidity ^0.8.20; import {Commonlib} from "./common.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {Arrays} from "@openzeppelin/contracts/utils/Arrays.sol"; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/solidity/contracts/lib/zeto_fungible.sol b/solidity/contracts/lib/zeto_fungible.sol index 0e109de..b35a719 100644 --- a/solidity/contracts/lib/zeto_fungible.sol +++ b/solidity/contracts/lib/zeto_fungible.sol @@ -17,7 +17,6 @@ pragma solidity ^0.8.20; import {Groth16Verifier_CheckHashesValue} from "./verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckNullifierValue} from "./verifier_check_nullifier_value.sol"; -import {ZetoBase} from "./zeto_base.sol"; import {Commonlib} from "./common.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; diff --git a/solidity/contracts/lib/zeto_fungible_withdraw.sol b/solidity/contracts/lib/zeto_fungible_withdraw.sol index f560cf1..2c8a859 100644 --- a/solidity/contracts/lib/zeto_fungible_withdraw.sol +++ b/solidity/contracts/lib/zeto_fungible_withdraw.sol @@ -18,11 +18,8 @@ pragma solidity ^0.8.20; import {Groth16Verifier_CheckHashesValue} from "./verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckInputsOutputsValue} from "./verifier_check_inputs_outputs_value.sol"; import {Groth16Verifier_CheckInputsOutputsValueBatch} from "./verifier_check_inputs_outputs_value_batch.sol"; -import {Groth16Verifier_CheckUtxosOwner} from "./verifier_check_utxos_owner.sol"; -import {Groth16Verifier_CheckUtxosOwnerBatch} from "./verifier_check_utxos_owner_batch.sol"; import {ZetoFungible} from "./zeto_fungible.sol"; import {Commonlib} from "./common.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; uint256 constant WITHDRAW_INPUT_SIZE = 4; uint256 constant BATCH_WITHDRAW_INPUT_SIZE = 12; diff --git a/solidity/contracts/lib/zeto_fungible_withdraw_nullifier.sol b/solidity/contracts/lib/zeto_fungible_withdraw_nullifier.sol index cc942c4..f41ce00 100644 --- a/solidity/contracts/lib/zeto_fungible_withdraw_nullifier.sol +++ b/solidity/contracts/lib/zeto_fungible_withdraw_nullifier.sol @@ -20,8 +20,6 @@ import {Groth16Verifier_CheckNullifierValue} from "./verifier_check_nullifier_va import {Groth16Verifier_CheckNullifierValueBatch} from "./verifier_check_nullifier_value_batch.sol"; import {ZetoFungible} from "./zeto_fungible.sol"; import {Commonlib} from "./common.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; uint256 constant WITHDRAW_INPUT_SIZE = 7; uint256 constant BATCH_WITHDRAW_INPUT_SIZE = 23; diff --git a/solidity/contracts/lib/zeto_lock.sol b/solidity/contracts/lib/zeto_lock.sol index 27e4d18..70d5a61 100644 --- a/solidity/contracts/lib/zeto_lock.sol +++ b/solidity/contracts/lib/zeto_lock.sol @@ -18,10 +18,6 @@ pragma solidity ^0.8.20; import {IZetoBase} from "./interfaces/izeto_base.sol"; import {IZetoLockable, ILockVerifier, IBatchLockVerifier} from "./interfaces/izeto_lockable.sol"; import {Commonlib} from "./common.sol"; -import {Registry} from "./registry.sol"; -import {ZetoCommon} from "./zeto_common.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; /// @title A sample base implementation of a Zeto based token contract diff --git a/solidity/contracts/lib/zeto_nullifier.sol b/solidity/contracts/lib/zeto_nullifier.sol index 64a7206..225e500 100644 --- a/solidity/contracts/lib/zeto_nullifier.sol +++ b/solidity/contracts/lib/zeto_nullifier.sol @@ -16,10 +16,7 @@ pragma solidity ^0.8.20; import {IZetoBase} from "./interfaces/izeto_base.sol"; -import {Commonlib} from "./common.sol"; -import {Registry} from "./registry.sol"; import {ZetoCommon} from "./zeto_common.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {SmtLib} from "@iden3/contracts/lib/SmtLib.sol"; import {PoseidonUnit3L} from "@iden3/contracts/lib/Poseidon.sol"; diff --git a/solidity/contracts/zeto_anon.sol b/solidity/contracts/zeto_anon.sol index a678716..99c4c59 100644 --- a/solidity/contracts/zeto_anon.sol +++ b/solidity/contracts/zeto_anon.sol @@ -25,13 +25,10 @@ import {Groth16Verifier_CheckUtxosOwnerBatch} from "./lib/verifier_check_utxos_o import {Groth16Verifier_Anon} from "./lib/verifier_anon.sol"; import {Groth16Verifier_AnonBatch} from "./lib/verifier_anon_batch.sol"; -import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; import {ZetoBase} from "./lib/zeto_base.sol"; -import {ZetoFungible} from "./lib/zeto_fungible.sol"; import {ZetoLock} from "./lib/zeto_lock.sol"; import {ZetoFungibleWithdraw} from "./lib/zeto_fungible_withdraw.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; uint256 constant INPUT_SIZE = 4; @@ -117,7 +114,7 @@ contract Zeto_Anon is (inputs, outputs) = checkAndPadCommitments(inputs, outputs, MAX_BATCH); require( - validateTransactionProposal(inputs, outputs, proof), + validateTransactionProposal(inputs, outputs), "Invalid transaction proposal" ); @@ -199,7 +196,7 @@ contract Zeto_Anon is uint256[] memory outputs = new uint256[](inputs.length); outputs[0] = output; (inputs, outputs) = checkAndPadCommitments(inputs, outputs, MAX_BATCH); - validateTransactionProposal(inputs, outputs, proof); + validateTransactionProposal(inputs, outputs); _withdraw(amount, inputs, output, proof); processInputsAndOutputs(inputs, outputs); emit UTXOWithdraw(amount, inputs, output, msg.sender, data); diff --git a/solidity/contracts/zeto_anon_enc.sol b/solidity/contracts/zeto_anon_enc.sol index 56718d8..aa673cd 100644 --- a/solidity/contracts/zeto_anon_enc.sol +++ b/solidity/contracts/zeto_anon_enc.sol @@ -26,11 +26,8 @@ import {Groth16Verifier_AnonEnc} from "./lib/verifier_anon_enc.sol"; import {Groth16Verifier_AnonEncBatch} from "./lib/verifier_anon_enc_batch.sol"; import {ZetoFungibleWithdraw} from "./lib/zeto_fungible_withdraw.sol"; import {ZetoBase} from "./lib/zeto_base.sol"; -import {ZetoFungible} from "./lib/zeto_fungible.sol"; import {ZetoLock} from "./lib/zeto_lock.sol"; -import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; uint256 constant INPUT_SIZE = 15; @@ -135,7 +132,7 @@ contract Zeto_AnonEnc is // Check and pad commitments (inputs, outputs) = checkAndPadCommitments(inputs, outputs, MAX_BATCH); require( - validateTransactionProposal(inputs, outputs, proof), + validateTransactionProposal(inputs, outputs), "Invalid transaction proposal" ); @@ -238,7 +235,7 @@ contract Zeto_AnonEnc is outputs[0] = output; // Check and pad commitments (inputs, outputs) = checkAndPadCommitments(inputs, outputs, MAX_BATCH); - validateTransactionProposal(inputs, outputs, proof); + validateTransactionProposal(inputs, outputs); _withdraw(amount, inputs, output, proof); processInputsAndOutputs(inputs, outputs); emit UTXOWithdraw(amount, inputs, output, msg.sender, data); diff --git a/solidity/contracts/zeto_anon_enc_nullifier.sol b/solidity/contracts/zeto_anon_enc_nullifier.sol index 5fd7170..1b6f935 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier.sol @@ -23,7 +23,6 @@ import {Groth16Verifier_AnonEncNullifier} from "./lib/verifier_anon_enc_nullifie import {Groth16Verifier_AnonEncNullifierBatch} from "./lib/verifier_anon_enc_nullifier_batch.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; -import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; diff --git a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol index 818c9dc..92c6659 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol @@ -23,7 +23,6 @@ import {Groth16Verifier_AnonEncNullifierNonRepudiation} from "./lib/verifier_ano import {Groth16Verifier_AnonEncNullifierNonRepudiationBatch} from "./lib/verifier_anon_enc_nullifier_non_repudiation_batch.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; -import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; uint256 constant INPUT_SIZE = 36; diff --git a/solidity/contracts/zeto_anon_nullifier.sol b/solidity/contracts/zeto_anon_nullifier.sol index 5d1b31e..4c1d416 100644 --- a/solidity/contracts/zeto_anon_nullifier.sol +++ b/solidity/contracts/zeto_anon_nullifier.sol @@ -23,12 +23,8 @@ import {Groth16Verifier_AnonNullifier} from "./lib/verifier_anon_nullifier.sol"; import {Groth16Verifier_AnonNullifierBatch} from "./lib/verifier_anon_nullifier_batch.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; -import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -import {SmtLib} from "@iden3/contracts/lib/SmtLib.sol"; -import {PoseidonUnit3L} from "@iden3/contracts/lib/Poseidon.sol"; uint256 constant INPUT_SIZE = 7; uint256 constant BATCH_INPUT_SIZE = 31; diff --git a/solidity/contracts/zeto_anon_nullifier_kyc.sol b/solidity/contracts/zeto_anon_nullifier_kyc.sol index 6cfede4..05657a6 100644 --- a/solidity/contracts/zeto_anon_nullifier_kyc.sol +++ b/solidity/contracts/zeto_anon_nullifier_kyc.sol @@ -26,10 +26,7 @@ import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -import {SmtLib} from "@iden3/contracts/lib/SmtLib.sol"; -import {PoseidonUnit3L} from "@iden3/contracts/lib/Poseidon.sol"; uint256 constant INPUT_SIZE = 8; uint256 constant BATCH_INPUT_SIZE = 32; diff --git a/solidity/contracts/zeto_nf_anon.sol b/solidity/contracts/zeto_nf_anon.sol index fe89295..7bb38c9 100644 --- a/solidity/contracts/zeto_nf_anon.sol +++ b/solidity/contracts/zeto_nf_anon.sol @@ -22,9 +22,7 @@ import {IZetoLockable} from "./lib/interfaces/izeto_lockable.sol"; import {Groth16Verifier_NfAnon} from "./lib/verifier_nf_anon.sol"; import {ZetoBase} from "./lib/zeto_base.sol"; import {ZetoLock} from "./lib/zeto_lock.sol"; -import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; /// @title A sample implementation of a Zeto based non-fungible token with anonymity and no encryption @@ -76,7 +74,7 @@ contract Zeto_NfAnon is uint256[] memory outputs = new uint256[](1); outputs[0] = output; require( - validateTransactionProposal(inputs, outputs, proof), + validateTransactionProposal(inputs, outputs), "Invalid transaction proposal" ); diff --git a/solidity/contracts/zeto_nf_anon_nullifier.sol b/solidity/contracts/zeto_nf_anon_nullifier.sol index aa0dbcb..470103a 100644 --- a/solidity/contracts/zeto_nf_anon_nullifier.sol +++ b/solidity/contracts/zeto_nf_anon_nullifier.sol @@ -18,12 +18,8 @@ pragma solidity ^0.8.20; import {IZeto} from "./lib/interfaces/izeto.sol"; import {Groth16Verifier_NfAnonNullifier} from "./lib/verifier_nf_anon_nullifier.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; -import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -import {SmtLib} from "@iden3/contracts/lib/SmtLib.sol"; -import {PoseidonUnit3L} from "@iden3/contracts/lib/Poseidon.sol"; /// @title A sample implementation of a Zeto based non-fungible token with anonymity and history masking /// @author Kaleido, Inc. From 5fe96df4c966d56e79470d4a6698664286a55efb Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Thu, 12 Dec 2024 17:26:51 -0500 Subject: [PATCH 04/20] fix unit test Signed-off-by: Jim Zhang --- solidity/test/factory.ts | 76 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/solidity/test/factory.ts b/solidity/test/factory.ts index e0c3b1d..d0a42ff 100644 --- a/solidity/test/factory.ts +++ b/solidity/test/factory.ts @@ -42,6 +42,8 @@ describe("(factory) Zeto based fungible token with anonymity without encryption depositVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", withdrawVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", batchWithdrawVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + lockVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + batchLockVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", }; await expect( factory.connect(nonOwner).registerImplementation("test", implInfo as any), @@ -62,6 +64,8 @@ describe("(factory) Zeto based fungible token with anonymity without encryption depositVerifier: "0x0000000000000000000000000000000000000000", withdrawVerifier: "0x0000000000000000000000000000000000000000", batchWithdrawVerifier: "0x0000000000000000000000000000000000000000", + lockVerifier: "0x0000000000000000000000000000000000000000", + batchLockVerifier: "0x0000000000000000000000000000000000000000", }; await expect( factory.connect(deployer).registerImplementation("test", implInfo as any), @@ -82,6 +86,8 @@ describe("(factory) Zeto based fungible token with anonymity without encryption depositVerifier: "0x0000000000000000000000000000000000000000", withdrawVerifier: "0x0000000000000000000000000000000000000000", batchWithdrawVerifier: "0x0000000000000000000000000000000000000000", + lockVerifier: "0x0000000000000000000000000000000000000000", + batchLockVerifier: "0x0000000000000000000000000000000000000000", }; await expect( factory.connect(deployer).registerImplementation("test", implInfo as any), @@ -102,6 +108,8 @@ describe("(factory) Zeto based fungible token with anonymity without encryption depositVerifier: "0x0000000000000000000000000000000000000000", withdrawVerifier: "0x0000000000000000000000000000000000000000", batchWithdrawVerifier: "0x0000000000000000000000000000000000000000", + lockVerifier: "0x0000000000000000000000000000000000000000", + batchLockVerifier: "0x0000000000000000000000000000000000000000", }; await expect( factory.connect(deployer).registerImplementation("test", implInfo as any), @@ -122,6 +130,8 @@ describe("(factory) Zeto based fungible token with anonymity without encryption depositVerifier: "0x0000000000000000000000000000000000000000", withdrawVerifier: "0x0000000000000000000000000000000000000000", batchWithdrawVerifier: "0x0000000000000000000000000000000000000000", + lockVerifier: "0x0000000000000000000000000000000000000000", + batchLockVerifier: "0x0000000000000000000000000000000000000000", }; const tx1 = await factory .connect(deployer) @@ -148,6 +158,8 @@ describe("(factory) Zeto based fungible token with anonymity without encryption depositVerifier: "0x0000000000000000000000000000000000000000", withdrawVerifier: "0x0000000000000000000000000000000000000000", batchWithdrawVerifier: "0x0000000000000000000000000000000000000000", + lockVerifier: "0x0000000000000000000000000000000000000000", + batchLockVerifier: "0x0000000000000000000000000000000000000000", }; const tx1 = await factory .connect(deployer) @@ -175,6 +187,8 @@ describe("(factory) Zeto based fungible token with anonymity without encryption depositVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", withdrawVerifier: "0x0000000000000000000000000000000000000000", batchWithdrawVerifier: "0x0000000000000000000000000000000000000000", + lockVerifier: "0x0000000000000000000000000000000000000000", + batchLockVerifier: "0x0000000000000000000000000000000000000000", }; const tx1 = await factory .connect(deployer) @@ -202,6 +216,8 @@ describe("(factory) Zeto based fungible token with anonymity without encryption depositVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", withdrawVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", batchWithdrawVerifier: "0x0000000000000000000000000000000000000000", + lockVerifier: "0x0000000000000000000000000000000000000000", + batchLockVerifier: "0x0000000000000000000000000000000000000000", }; const tx1 = await factory .connect(deployer) @@ -215,6 +231,64 @@ describe("(factory) Zeto based fungible token with anonymity without encryption ).rejectedWith("Factory: batchWithdrawVerifier address is required"); }); + it("attempting to deploy a fungible token but with a registered implementation that misses required lockVerifier should fail", async function () { + // we want to test the effectiveness of the factory contract + // to create clones of the Zeto implementation contract + const Factory = await ethers.getContractFactory("ZetoTokenFactory"); + const factory = await Factory.deploy(); + await factory.waitForDeployment(); + + const implInfo = { + implementation: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + verifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + batchVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + depositVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + withdrawVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + batchWithdrawVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + lockVerifier: "0x0000000000000000000000000000000000000000", + batchLockVerifier: "0x0000000000000000000000000000000000000000", + }; + const tx1 = await factory + .connect(deployer) + .registerImplementation("test", implInfo as any); + await tx1.wait(); + + await expect( + factory + .connect(deployer) + .deployZetoFungibleToken("test", await deployer.getAddress()), + ).rejectedWith("Factory: lockVerifier address is required"); + }); + + it("attempting to deploy a fungible token but with a registered implementation that misses required batchLockVerifier should fail", async function () { + // we want to test the effectiveness of the factory contract + // to create clones of the Zeto implementation contract + const Factory = await ethers.getContractFactory("ZetoTokenFactory"); + const factory = await Factory.deploy(); + await factory.waitForDeployment(); + + const implInfo = { + implementation: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + verifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + batchVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + depositVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + withdrawVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + batchWithdrawVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + lockVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + batchLockVerifier: "0x0000000000000000000000000000000000000000", + }; + const tx1 = await factory + .connect(deployer) + .registerImplementation("test", implInfo as any); + await tx1.wait(); + + await expect( + factory + .connect(deployer) + .deployZetoFungibleToken("test", await deployer.getAddress()), + ).rejectedWith("Factory: batchLockVerifier address is required"); + }); + it("attempting to deploy a fungible token with a properly registered implementation should succeed", async function () { // we want to test the effectiveness of the factory contract // to create clones of the Zeto implementation contract @@ -229,6 +303,8 @@ describe("(factory) Zeto based fungible token with anonymity without encryption depositVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", withdrawVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", batchWithdrawVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + lockVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", + batchLockVerifier: "0xae92d5aD7583AD66E49A0c67BAd18F6ba52dDDc1", }; const tx1 = await factory .connect(deployer) From a76db9eca04cd38dd2160185e94485747d5a74b3 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Fri, 13 Dec 2024 09:33:04 -0500 Subject: [PATCH 05/20] Update cloneable contract deploy in hardhat tests Signed-off-by: Jim Zhang --- solidity/test/lib/deploy.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/solidity/test/lib/deploy.ts b/solidity/test/lib/deploy.ts index 3d58987..d95b25c 100644 --- a/solidity/test/lib/deploy.ts +++ b/solidity/test/lib/deploy.ts @@ -56,6 +56,8 @@ export async function deployZeto(tokenName: string) { withdrawVerifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, ] = args; // we want to test the effectiveness of the factory contract @@ -75,6 +77,10 @@ export async function deployZeto(tokenName: string) { batchVerifier || "0x0000000000000000000000000000000000000000", batchWithdrawVerifier: batchWithdrawVerifier || "0x0000000000000000000000000000000000000000", + lockVerifier: + lockVerifier || "0x0000000000000000000000000000000000000000", + batchLockVerifier: + batchLockVerifier || "0x0000000000000000000000000000000000000000", }; // console.log(implInfo); const tx1 = await factory From 06305e0fd2f1778c220eb45983df45e8f5e0fa45 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Fri, 13 Dec 2024 14:32:48 -0500 Subject: [PATCH 06/20] add lock support for tokens using nullifiers Signed-off-by: Jim Zhang --- solidity/contracts/factory.sol | 7 +- .../lib/interfaces/izeto_nf_initializable.sol | 3 +- .../verifier_check_nullifiers_nf_owner.sol | 175 ++++++++++ .../lib/verifier_check_nullifiers_owner.sol | 175 ++++++++++ .../verifier_check_nullifiers_owner_batch.sol | 231 +++++++++++++ .../lib/verifier_check_nullifiers_value.sol | 210 ++++++++++++ .../verifier_check_nullifiers_value_batch.sol | 322 ++++++++++++++++++ .../contracts/zeto_anon_enc_nullifier.sol | 13 +- .../contracts/zeto_anon_enc_nullifier_kyc.sol | 12 +- ...eto_anon_enc_nullifier_non_repudiation.sol | 12 +- solidity/contracts/zeto_anon_nullifier.sol | 12 +- .../contracts/zeto_anon_nullifier_kyc.sol | 12 +- solidity/contracts/zeto_nf_anon.sol | 5 +- solidity/contracts/zeto_nf_anon_nullifier.sol | 17 +- solidity/ignition/modules/lib/deps.ts | 23 ++ .../modules/zeto_anon_enc_nullifier.ts | 10 + .../modules/zeto_anon_enc_nullifier_kyc.ts | 10 + ...zeto_anon_enc_nullifier_non_repudiation.ts | 10 + .../ignition/modules/zeto_anon_nullifier.ts | 10 + .../modules/zeto_anon_nullifier_kyc.ts | 10 + .../modules/zeto_nf_anon_nullifier.ts | 5 +- .../scripts/tokens/Zeto_AnonEncNullifier.ts | 4 + .../tokens/Zeto_AnonEncNullifierKyc.ts | 4 + .../Zeto_AnonEncNullifierNonRepudiation.ts | 4 + solidity/scripts/tokens/Zeto_AnonNullifier.ts | 4 + .../scripts/tokens/Zeto_AnonNullifierKyc.ts | 4 + solidity/scripts/tokens/Zeto_NfAnon.ts | 4 +- .../scripts/tokens/Zeto_NfAnonNullifier.ts | 4 +- solidity/test/utils.ts | 56 ++- solidity/test/zeto_anon.ts | 2 + solidity/test/zeto_anon_enc.ts | 2 + solidity/test/zeto_anon_enc_nullifier.ts | 100 ++++++ solidity/test/zeto_anon_nullifier.ts | 143 ++++++-- solidity/test/zeto_nf_anon.ts | 2 + zkp/circuits/check_nullifiers_nf_owner.circom | 21 ++ .../check_nullifiers_owner.circom} | 5 +- .../check_nullifiers_owner_batch.circom | 21 ++ ...e.circom => check_nullifiers_value.circom} | 2 +- ...om => check_nullifiers_value_batch.circom} | 2 +- zkp/circuits/gen-config.json | 11 +- ...om => check-nullifiers-tokenid-uri.circom} | 4 +- ...com => check-nullifiers-value-base.circom} | 0 zkp/circuits/nf_anon_nullifier.circom | 4 +- .../integration-test/check_nullifier_value.js | 6 +- zkp/js/integration-test/check_utxos_owner.js | 6 +- ...id-uri.js => check_nullifiers_nf_owner.js} | 82 ++--- zkp/js/test/check_nullifiers_owner.js | 106 ++++++ ...ier_value.js => check_nullifiers_value.js} | 4 +- 48 files changed, 1767 insertions(+), 124 deletions(-) create mode 100644 solidity/contracts/lib/verifier_check_nullifiers_nf_owner.sol create mode 100644 solidity/contracts/lib/verifier_check_nullifiers_owner.sol create mode 100644 solidity/contracts/lib/verifier_check_nullifiers_owner_batch.sol create mode 100644 solidity/contracts/lib/verifier_check_nullifiers_value.sol create mode 100644 solidity/contracts/lib/verifier_check_nullifiers_value_batch.sol create mode 100644 zkp/circuits/check_nullifiers_nf_owner.circom rename zkp/{js/test/circuits/check-nullifier-tokenid-uri.circom => circuits/check_nullifiers_owner.circom} (80%) create mode 100644 zkp/circuits/check_nullifiers_owner_batch.circom rename zkp/circuits/{check_nullifier_value.circom => check_nullifiers_value.circom} (93%) rename zkp/circuits/{check_nullifier_value_batch.circom => check_nullifiers_value_batch.circom} (93%) rename zkp/circuits/lib/{check-nullifier-tokenid-uri.circom => check-nullifiers-tokenid-uri.circom} (92%) rename zkp/circuits/lib/{check-nullifier-value-base.circom => check-nullifiers-value-base.circom} (100%) rename zkp/js/test/{lib/check-nullifier-tokenid-uri.js => check_nullifiers_nf_owner.js} (50%) create mode 100644 zkp/js/test/check_nullifiers_owner.js rename zkp/js/test/{check_nullifier_value.js => check_nullifiers_value.js} (98%) diff --git a/solidity/contracts/factory.sol b/solidity/contracts/factory.sol index 525699a..1c058b4 100644 --- a/solidity/contracts/factory.sol +++ b/solidity/contracts/factory.sol @@ -126,10 +126,6 @@ contract ZetoTokenFactory is Ownable { args.lockVerifier != address(0), "Factory: lockVerifier address is required" ); - require( - args.batchLockVerifier != address(0), - "Factory: batchLockVerifier address is required" - ); address instance = Clones.clone(args.implementation); require( instance != address(0), @@ -138,8 +134,7 @@ contract ZetoTokenFactory is Ownable { (IZetoNonFungibleInitializable(instance)).initialize( initialOwner, args.verifier, - args.lockVerifier, - args.batchLockVerifier + args.lockVerifier ); emit ZetoTokenDeployed(instance); return instance; diff --git a/solidity/contracts/lib/interfaces/izeto_nf_initializable.sol b/solidity/contracts/lib/interfaces/izeto_nf_initializable.sol index eeef510..418c8e6 100644 --- a/solidity/contracts/lib/interfaces/izeto_nf_initializable.sol +++ b/solidity/contracts/lib/interfaces/izeto_nf_initializable.sol @@ -19,7 +19,6 @@ interface IZetoNonFungibleInitializable { function initialize( address initialOwner, address _verifier, - address _lockVerifier, - address _batchLockVerifier + address _lockVerifier ) external; } diff --git a/solidity/contracts/lib/verifier_check_nullifiers_nf_owner.sol b/solidity/contracts/lib/verifier_check_nullifiers_nf_owner.sol new file mode 100644 index 0000000..9e67a82 --- /dev/null +++ b/solidity/contracts/lib/verifier_check_nullifiers_nf_owner.sol @@ -0,0 +1,175 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Groth16Verifier_CheckNullifiersNfOwner { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant deltax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant deltay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + + + uint256 constant IC0x = 4309308528273276555069543879562573478975407913854086083779827033416284670724; + uint256 constant IC0y = 5817651292625894880399535368272757856426406145357248162801188302741402124546; + + uint256 constant IC1x = 17224538472459936668342188732120409807794796861334686524777971239307689494925; + uint256 constant IC1y = 14212750221780665075930805194627428108087299328089222953442904533004160200955; + + uint256 constant IC2x = 21500052851511985596831587241759129211123695069562820995499323777626243316126; + uint256 constant IC2y = 6037878515570259558330310553021098940773801877350844236400848654303871580548; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[2] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/solidity/contracts/lib/verifier_check_nullifiers_owner.sol b/solidity/contracts/lib/verifier_check_nullifiers_owner.sol new file mode 100644 index 0000000..e444a3a --- /dev/null +++ b/solidity/contracts/lib/verifier_check_nullifiers_owner.sol @@ -0,0 +1,175 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Groth16Verifier_CheckNullifiersOwner { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant deltax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant deltay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + + + uint256 constant IC0x = 15437714711895179585754171189554237454088536508405751294008657725960538859948; + uint256 constant IC0y = 5710533217469067717186587986116078680339061653407180992040478614510129315034; + + uint256 constant IC1x = 3211630958423405965645811650201696530075836912509538993985233171207873761985; + uint256 constant IC1y = 17050217014800887370997347083304667458491029620002200967162286391747502526964; + + uint256 constant IC2x = 5681943598545403685791415579924324264146018151001697015873174306053210278697; + uint256 constant IC2y = 20507069607443186103258412319299600869810562974913520243781177854985777891137; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[2] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/solidity/contracts/lib/verifier_check_nullifiers_owner_batch.sol b/solidity/contracts/lib/verifier_check_nullifiers_owner_batch.sol new file mode 100644 index 0000000..e5c8dc2 --- /dev/null +++ b/solidity/contracts/lib/verifier_check_nullifiers_owner_batch.sol @@ -0,0 +1,231 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Groth16Verifier_CheckNullifiersOwnerBatch { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant deltax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant deltay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + + + uint256 constant IC0x = 8528258850388115894839180341519266267367686588288569264287268731024366872860; + uint256 constant IC0y = 19600183692835121679382286637250267730246517882194573081305375648515304074261; + + uint256 constant IC1x = 7804014301922502791984996098232318551440582117393565561980532861951630345933; + uint256 constant IC1y = 18393509660314493628867878128701912387916030708797139965325544838352633397100; + + uint256 constant IC2x = 18023705155351853794584162763747335484529412907622179937293531816118095106495; + uint256 constant IC2y = 7843447535209241282604273122793508134923847088489313289414005639562255015297; + + uint256 constant IC3x = 4696859123331385039283279211470469614104930148109990268896377108020593698496; + uint256 constant IC3y = 8856752372630989930473403421802256528933588482262844231236735371476204390394; + + uint256 constant IC4x = 4636025386643250230640245302445001469421113073289614407221321496499381035973; + uint256 constant IC4y = 12508504376111309964398226715694813267590879393001332178565844948828250735517; + + uint256 constant IC5x = 11230479099166432242180540276977609410708655995150098471084756178766087690778; + uint256 constant IC5y = 4731871312849871661598664510626149831472363321343192253304437529823021632224; + + uint256 constant IC6x = 3123867397076179883389864618354436140932244790448380851652341514912684727079; + uint256 constant IC6y = 21314076904576873571820702856080651475889073451736070497050633450083747608405; + + uint256 constant IC7x = 13331397003303173743861740658278852061313051434720467673364609295435848039134; + uint256 constant IC7y = 6209865124755994762923064266473200429800026027977612938127517835340190098311; + + uint256 constant IC8x = 10502431752531188182995281969747831614984173788443027928285273343469567628838; + uint256 constant IC8y = 2877936783563873261036697418140218742631617877178441408689796062523241167964; + + uint256 constant IC9x = 9691072418637662079461155609639777067376614407935958036140095266969252746430; + uint256 constant IC9y = 12286673545494268313852033319112010708002639353895982399141406219708860646184; + + uint256 constant IC10x = 386932868540425777696051802119276166303608321519914221990800817511285603363; + uint256 constant IC10y = 18664618993163635443332042785707501651198320496510245414706674899760771895734; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[10] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64))) + + g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96))) + + g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128))) + + g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160))) + + g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192))) + + g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224))) + + g1_mulAccC(_pVk, IC9x, IC9y, calldataload(add(pubSignals, 256))) + + g1_mulAccC(_pVk, IC10x, IC10y, calldataload(add(pubSignals, 288))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + checkField(calldataload(add(_pubSignals, 64))) + + checkField(calldataload(add(_pubSignals, 96))) + + checkField(calldataload(add(_pubSignals, 128))) + + checkField(calldataload(add(_pubSignals, 160))) + + checkField(calldataload(add(_pubSignals, 192))) + + checkField(calldataload(add(_pubSignals, 224))) + + checkField(calldataload(add(_pubSignals, 256))) + + checkField(calldataload(add(_pubSignals, 288))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/solidity/contracts/lib/verifier_check_nullifiers_value.sol b/solidity/contracts/lib/verifier_check_nullifiers_value.sol new file mode 100644 index 0000000..008685d --- /dev/null +++ b/solidity/contracts/lib/verifier_check_nullifiers_value.sol @@ -0,0 +1,210 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Groth16Verifier_CheckNullifiersValue { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant deltax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant deltay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + + + uint256 constant IC0x = 5372465145930131904181936844224539702598562677294839351793739913813002422248; + uint256 constant IC0y = 17408194426033394784509716657563038781374557284116121966988820958100327208947; + + uint256 constant IC1x = 18721682748794380402768397518142652407455353988834810677058243887163649195944; + uint256 constant IC1y = 3510524177671077561512337051711627169148530693705071780712030685548737096143; + + uint256 constant IC2x = 8122158197879371180286109309676763127376056183929764072927375068599106569793; + uint256 constant IC2y = 14069702746185228450937432180611779524058868979912356630903216371660230563795; + + uint256 constant IC3x = 12054470835972212708497793935866295196617705336672489963811855490085993758837; + uint256 constant IC3y = 3414164109693343726343912594769661343694119217245254408298451715214194698056; + + uint256 constant IC4x = 20788158480360140113733456986338078732985477544997534478761000739379167086988; + uint256 constant IC4y = 18739927009843693757028260696367700177351944363013044083149375549875761468959; + + uint256 constant IC5x = 19951574778071643021012085154476313617081511627644669051221009630908944086558; + uint256 constant IC5y = 16230451990376817064850835151093534344795062721521761792474659514233372650410; + + uint256 constant IC6x = 13177431207016748663806898438333194070079646082467860253233651704586403557256; + uint256 constant IC6y = 20902096558452622927027397347274817235993975444465062231225253027029751104905; + + uint256 constant IC7x = 16080914620084423806474567527530474918486311214600624165372750879022214015497; + uint256 constant IC7y = 11018353982179097918136151910235210507904716869524646248692012722240219927007; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[7] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64))) + + g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96))) + + g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128))) + + g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160))) + + g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + checkField(calldataload(add(_pubSignals, 64))) + + checkField(calldataload(add(_pubSignals, 96))) + + checkField(calldataload(add(_pubSignals, 128))) + + checkField(calldataload(add(_pubSignals, 160))) + + checkField(calldataload(add(_pubSignals, 192))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/solidity/contracts/lib/verifier_check_nullifiers_value_batch.sol b/solidity/contracts/lib/verifier_check_nullifiers_value_batch.sol new file mode 100644 index 0000000..96db7f1 --- /dev/null +++ b/solidity/contracts/lib/verifier_check_nullifiers_value_batch.sol @@ -0,0 +1,322 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Groth16Verifier_CheckNullifiersValueBatch { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant deltax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant deltay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + + + uint256 constant IC0x = 17366683354852295992407143995504174653074195591417819551747878918252419851555; + uint256 constant IC0y = 19483006769124497327131823516486718544957590921235503972246996412536778649980; + + uint256 constant IC1x = 10366104846534137715500591309814118886022119944596398433735317084138833334792; + uint256 constant IC1y = 18643499405451183547036528756385786304465469271907167766660424194164058707394; + + uint256 constant IC2x = 21527677578578888285885541980444416714072945316839881166233809028918267698233; + uint256 constant IC2y = 6063324619444599539166268744543898744271662754151538561975809930969069774378; + + uint256 constant IC3x = 5659430035828023753430174422783281723178462397264403842527625530517452189999; + uint256 constant IC3y = 2524917828174102567027356560699115590340023663960388221257861988015650700591; + + uint256 constant IC4x = 7238189621429832667411485007166185860893028785898240074557092538061430786966; + uint256 constant IC4y = 20390153919215256777155824947030000580196832273416110104565624202061427202468; + + uint256 constant IC5x = 15894469854222667910812295936601612004318640816386618401404798091678758027724; + uint256 constant IC5y = 14356168113450460554678860751069980826494953509135368818216408384111747891420; + + uint256 constant IC6x = 3942663716298823998869531263141686282324249719050386829948592397432348708056; + uint256 constant IC6y = 3035466022559911517709445948547486025175916218731187151424634579526798275616; + + uint256 constant IC7x = 1553309902541816224998744612658270612542776491552112107717121674403292493359; + uint256 constant IC7y = 11180635816568547989345458896877617901909650248852843301038895683628956771263; + + uint256 constant IC8x = 3701018914736177770292204885016878725979532325238333503986400101377864703276; + uint256 constant IC8y = 19833990420531737080526472786919541772537650521778260464568233706284118513049; + + uint256 constant IC9x = 12025524461625658475137301154601859231184602771266597356005073433551998537077; + uint256 constant IC9y = 1456393002982685462391054585518332799475085362766843390052131361397104224000; + + uint256 constant IC10x = 16807793107311666302190473961042321317453287634331068595488371659019485509298; + uint256 constant IC10y = 18660554898013959088019910686200094855986079232329695676414858332384484100222; + + uint256 constant IC11x = 9789863392723531300259587179323466696537747572630489833683814294587664776868; + uint256 constant IC11y = 4021843822169944439345128570575352294119541799048090956488246619674844965472; + + uint256 constant IC12x = 10214507374407129083284926029820451365753765776330479881523358522180753325104; + uint256 constant IC12y = 6174874849309167082617299735152158687361915126002906606614371830494266455367; + + uint256 constant IC13x = 10940606823101131233309979818887945079384613067709355569336590477206410424368; + uint256 constant IC13y = 1529208575010684508442716482754348867936757320711258330891648162641538044536; + + uint256 constant IC14x = 10087732249910916073426006557040806210935045993195380389004671191499603659207; + uint256 constant IC14y = 7443393664317545329254912123081736912386566669005719193913868247214148583503; + + uint256 constant IC15x = 16404969434890860611574834353483070312895732476387812161187868979316241878917; + uint256 constant IC15y = 19676747737804121937999539792895793757453717532009730518885557633073507270372; + + uint256 constant IC16x = 11130436916472796659130880446782841087239080661463103611590285506562232306164; + uint256 constant IC16y = 13396283331421200879055216177372556296918660983129101109962712961278727949285; + + uint256 constant IC17x = 18218360746339548031724109374686253420716818661174497636632005644706100544635; + uint256 constant IC17y = 21172625106199967128593353246092551188199701584176729699213074514231209994675; + + uint256 constant IC18x = 19758930414401357761821077915160309020962693098586679596228991300362584487736; + uint256 constant IC18y = 13569184175490052261123892597281797139167978224682715950489992695657542966533; + + uint256 constant IC19x = 13280061894247793894958942691701119684528737183396784669637060695805643386178; + uint256 constant IC19y = 13473180960238185615076221510950965535376963989105989970070499050578446283305; + + uint256 constant IC20x = 1883062788684859331882578642430274233076862028256499324766210198222044285374; + uint256 constant IC20y = 21175110562847535813966290632423195949054616850607561678958250643497836918190; + + uint256 constant IC21x = 12895836754941507779121370416231719346694197724945981683615558906276745887603; + uint256 constant IC21y = 6646006890301769910107555005644233902910512644919054229046263085688091816853; + + uint256 constant IC22x = 17308914241678938030422526322338288734470378999652358159021166607108962704968; + uint256 constant IC22y = 18406851446505143717056856075557317602320041669211343434213146566599365910852; + + uint256 constant IC23x = 7080930845263346356578029481773118223285460683970543357645916770136148160025; + uint256 constant IC23y = 1811823263315974161935966519923924161086093162314533117675697138869841933466; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[23] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64))) + + g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96))) + + g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128))) + + g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160))) + + g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192))) + + g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224))) + + g1_mulAccC(_pVk, IC9x, IC9y, calldataload(add(pubSignals, 256))) + + g1_mulAccC(_pVk, IC10x, IC10y, calldataload(add(pubSignals, 288))) + + g1_mulAccC(_pVk, IC11x, IC11y, calldataload(add(pubSignals, 320))) + + g1_mulAccC(_pVk, IC12x, IC12y, calldataload(add(pubSignals, 352))) + + g1_mulAccC(_pVk, IC13x, IC13y, calldataload(add(pubSignals, 384))) + + g1_mulAccC(_pVk, IC14x, IC14y, calldataload(add(pubSignals, 416))) + + g1_mulAccC(_pVk, IC15x, IC15y, calldataload(add(pubSignals, 448))) + + g1_mulAccC(_pVk, IC16x, IC16y, calldataload(add(pubSignals, 480))) + + g1_mulAccC(_pVk, IC17x, IC17y, calldataload(add(pubSignals, 512))) + + g1_mulAccC(_pVk, IC18x, IC18y, calldataload(add(pubSignals, 544))) + + g1_mulAccC(_pVk, IC19x, IC19y, calldataload(add(pubSignals, 576))) + + g1_mulAccC(_pVk, IC20x, IC20y, calldataload(add(pubSignals, 608))) + + g1_mulAccC(_pVk, IC21x, IC21y, calldataload(add(pubSignals, 640))) + + g1_mulAccC(_pVk, IC22x, IC22y, calldataload(add(pubSignals, 672))) + + g1_mulAccC(_pVk, IC23x, IC23y, calldataload(add(pubSignals, 704))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + checkField(calldataload(add(_pubSignals, 64))) + + checkField(calldataload(add(_pubSignals, 96))) + + checkField(calldataload(add(_pubSignals, 128))) + + checkField(calldataload(add(_pubSignals, 160))) + + checkField(calldataload(add(_pubSignals, 192))) + + checkField(calldataload(add(_pubSignals, 224))) + + checkField(calldataload(add(_pubSignals, 256))) + + checkField(calldataload(add(_pubSignals, 288))) + + checkField(calldataload(add(_pubSignals, 320))) + + checkField(calldataload(add(_pubSignals, 352))) + + checkField(calldataload(add(_pubSignals, 384))) + + checkField(calldataload(add(_pubSignals, 416))) + + checkField(calldataload(add(_pubSignals, 448))) + + checkField(calldataload(add(_pubSignals, 480))) + + checkField(calldataload(add(_pubSignals, 512))) + + checkField(calldataload(add(_pubSignals, 544))) + + checkField(calldataload(add(_pubSignals, 576))) + + checkField(calldataload(add(_pubSignals, 608))) + + checkField(calldataload(add(_pubSignals, 640))) + + checkField(calldataload(add(_pubSignals, 672))) + + checkField(calldataload(add(_pubSignals, 704))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/solidity/contracts/zeto_anon_enc_nullifier.sol b/solidity/contracts/zeto_anon_enc_nullifier.sol index 1b6f935..e9aff2e 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier.sol @@ -23,6 +23,7 @@ import {Groth16Verifier_AnonEncNullifier} from "./lib/verifier_anon_enc_nullifie import {Groth16Verifier_AnonEncNullifierBatch} from "./lib/verifier_anon_enc_nullifier_batch.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; +import {ZetoLock} from "./lib/zeto_lock.sol"; import {Commonlib} from "./lib/common.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; @@ -42,6 +43,7 @@ contract Zeto_AnonEncNullifier is IZetoEncrypted, ZetoNullifier, ZetoFungibleWithdrawWithNullifiers, + ZetoLock, UUPSUpgradeable { Groth16Verifier_AnonEncNullifier internal verifier; @@ -53,7 +55,9 @@ contract Zeto_AnonEncNullifier is Groth16Verifier_CheckHashesValue _depositVerifier, Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonEncNullifierBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier + Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, + address _lockVerifier, + address _batchLockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( @@ -61,6 +65,7 @@ contract Zeto_AnonEncNullifier is _withdrawVerifier, _batchWithdrawVerifier ); + __ZetoLock_init(_lockVerifier, _batchLockVerifier); verifier = _verifier; batchVerifier = _batchVerifier; } @@ -143,6 +148,12 @@ contract Zeto_AnonEncNullifier is validateTransactionProposal(nullifiers, outputs, root), "Invalid transaction proposal" ); + + require( + validateLockedStates(nullifiers), + "At least one UTXO in the input nullifiers are locked" + ); + // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { uint256[] memory publicInputs = constructPublicInputs( diff --git a/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol b/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol index eaa399a..5175596 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol @@ -23,6 +23,7 @@ import {Groth16Verifier_AnonEncNullifierKyc} from "./lib/verifier_anon_enc_nulli import {Groth16Verifier_AnonEncNullifierKycBatch} from "./lib/verifier_anon_enc_nullifier_kyc_batch.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; +import {ZetoLock} from "./lib/zeto_lock.sol"; import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; @@ -43,6 +44,7 @@ contract Zeto_AnonEncNullifierKyc is IZetoEncrypted, ZetoNullifier, ZetoFungibleWithdrawWithNullifiers, + ZetoLock, Registry, UUPSUpgradeable { @@ -55,7 +57,9 @@ contract Zeto_AnonEncNullifierKyc is Groth16Verifier_CheckHashesValue _depositVerifier, Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonEncNullifierKycBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier + Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, + address _lockVerifier, + address _batchLockVerifier ) public initializer { __Registry_init(); __ZetoNullifier_init(initialOwner); @@ -64,6 +68,7 @@ contract Zeto_AnonEncNullifierKyc is _withdrawVerifier, _batchWithdrawVerifier ); + __ZetoLock_init(_lockVerifier, _batchLockVerifier); verifier = _verifier; batchVerifier = _batchVerifier; } @@ -154,6 +159,11 @@ contract Zeto_AnonEncNullifierKyc is "Invalid transaction proposal" ); + require( + validateLockedStates(nullifiers), + "At least one UTXO in the input nullifiers are locked" + ); + // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { uint256[] memory publicInputs = constructPublicInputs( diff --git a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol index 92c6659..b204e97 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol @@ -23,6 +23,7 @@ import {Groth16Verifier_AnonEncNullifierNonRepudiation} from "./lib/verifier_ano import {Groth16Verifier_AnonEncNullifierNonRepudiationBatch} from "./lib/verifier_anon_enc_nullifier_non_repudiation_batch.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; +import {ZetoLock} from "./lib/zeto_lock.sol"; import {Commonlib} from "./lib/common.sol"; uint256 constant INPUT_SIZE = 36; @@ -40,6 +41,7 @@ uint256 constant BATCH_INPUT_SIZE = 140; contract Zeto_AnonEncNullifierNonRepudiation is ZetoNullifier, ZetoFungibleWithdrawWithNullifiers, + ZetoLock, UUPSUpgradeable { event UTXOTransferNonRepudiation( @@ -65,7 +67,9 @@ contract Zeto_AnonEncNullifierNonRepudiation is Groth16Verifier_CheckHashesValue _depositVerifier, Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonEncNullifierNonRepudiationBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier + Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, + address _lockVerifier, + address _batchLockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( @@ -73,6 +77,7 @@ contract Zeto_AnonEncNullifierNonRepudiation is _withdrawVerifier, _batchWithdrawVerifier ); + __ZetoLock_init(_lockVerifier, _batchLockVerifier); verifier = _verifier; batchVerifier = _batchVerifier; } @@ -177,6 +182,11 @@ contract Zeto_AnonEncNullifierNonRepudiation is "Invalid transaction proposal" ); + require( + validateLockedStates(nullifiers), + "At least one UTXO in the input nullifiers are locked" + ); + // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { require( diff --git a/solidity/contracts/zeto_anon_nullifier.sol b/solidity/contracts/zeto_anon_nullifier.sol index 4c1d416..81e113a 100644 --- a/solidity/contracts/zeto_anon_nullifier.sol +++ b/solidity/contracts/zeto_anon_nullifier.sol @@ -23,6 +23,7 @@ import {Groth16Verifier_AnonNullifier} from "./lib/verifier_anon_nullifier.sol"; import {Groth16Verifier_AnonNullifierBatch} from "./lib/verifier_anon_nullifier_batch.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; +import {ZetoLock} from "./lib/zeto_lock.sol"; import {Commonlib} from "./lib/common.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; @@ -41,6 +42,7 @@ contract Zeto_AnonNullifier is IZeto, ZetoNullifier, ZetoFungibleWithdrawWithNullifiers, + ZetoLock, UUPSUpgradeable { Groth16Verifier_AnonNullifier internal verifier; @@ -52,7 +54,9 @@ contract Zeto_AnonNullifier is Groth16Verifier_CheckHashesValue _depositVerifier, Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonNullifierBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier + Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, + address _lockVerifier, + address _batchLockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( @@ -60,6 +64,7 @@ contract Zeto_AnonNullifier is _withdrawVerifier, _batchWithdrawVerifier ); + __ZetoLock_init(_lockVerifier, _batchLockVerifier); verifier = _verifier; batchVerifier = _batchVerifier; } @@ -124,6 +129,11 @@ contract Zeto_AnonNullifier is "Invalid transaction proposal" ); + require( + validateLockedStates(nullifiers), + "At least one UTXO in the input nullifiers are locked" + ); + // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { uint256[] memory publicInputs = constructPublicInputs( diff --git a/solidity/contracts/zeto_anon_nullifier_kyc.sol b/solidity/contracts/zeto_anon_nullifier_kyc.sol index 05657a6..41c1e1c 100644 --- a/solidity/contracts/zeto_anon_nullifier_kyc.sol +++ b/solidity/contracts/zeto_anon_nullifier_kyc.sol @@ -24,6 +24,7 @@ import {Groth16Verifier_AnonNullifierKyc} from "./lib/verifier_anon_nullifier_ky import {Groth16Verifier_AnonNullifierKycBatch} from "./lib/verifier_anon_nullifier_kyc_batch.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; +import {ZetoLock} from "./lib/zeto_lock.sol"; import {Registry} from "./lib/registry.sol"; import {Commonlib} from "./lib/common.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; @@ -43,6 +44,7 @@ contract Zeto_AnonNullifierKyc is IZeto, ZetoNullifier, ZetoFungibleWithdrawWithNullifiers, + ZetoLock, Registry, UUPSUpgradeable { @@ -55,7 +57,9 @@ contract Zeto_AnonNullifierKyc is Groth16Verifier_CheckHashesValue _depositVerifier, Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonNullifierKycBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier + Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, + address _lockVerifier, + address _batchLockVerifier ) public initializer { __Registry_init(); __ZetoNullifier_init(initialOwner); @@ -64,6 +68,7 @@ contract Zeto_AnonNullifierKyc is _withdrawVerifier, _batchWithdrawVerifier ); + __ZetoLock_init(_lockVerifier, _batchLockVerifier); verifier = _verifier; batchVerifier = _batchVerifier; } @@ -135,6 +140,11 @@ contract Zeto_AnonNullifierKyc is "Invalid transaction proposal" ); + require( + validateLockedStates(nullifiers), + "At least one UTXO in the input nullifiers are locked" + ); + // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { uint256[] memory publicInputs = constructPublicInputs( diff --git a/solidity/contracts/zeto_nf_anon.sol b/solidity/contracts/zeto_nf_anon.sol index 7bb38c9..953c6d7 100644 --- a/solidity/contracts/zeto_nf_anon.sol +++ b/solidity/contracts/zeto_nf_anon.sol @@ -43,11 +43,10 @@ contract Zeto_NfAnon is function initialize( address initialOwner, Groth16Verifier_NfAnon _verifier, - address _lockVerifier, - address _batchLockVerifier + address _lockVerifier ) public initializer { __ZetoBase_init(initialOwner); - __ZetoLock_init(_lockVerifier, _batchLockVerifier); + __ZetoLock_init(_lockVerifier, address(0)); verifier = _verifier; } diff --git a/solidity/contracts/zeto_nf_anon_nullifier.sol b/solidity/contracts/zeto_nf_anon_nullifier.sol index 470103a..5581321 100644 --- a/solidity/contracts/zeto_nf_anon_nullifier.sol +++ b/solidity/contracts/zeto_nf_anon_nullifier.sol @@ -18,6 +18,7 @@ pragma solidity ^0.8.20; import {IZeto} from "./lib/interfaces/izeto.sol"; import {Groth16Verifier_NfAnonNullifier} from "./lib/verifier_nf_anon_nullifier.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; +import {ZetoLock} from "./lib/zeto_lock.sol"; import {Commonlib} from "./lib/common.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; @@ -29,14 +30,21 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/U /// - the hashes in the input and output match the hash(value, salt, owner public key) formula /// - the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers /// - the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash -contract Zeto_NfAnonNullifier is IZeto, ZetoNullifier, UUPSUpgradeable { +contract Zeto_NfAnonNullifier is + IZeto, + ZetoNullifier, + ZetoLock, + UUPSUpgradeable +{ Groth16Verifier_NfAnonNullifier verifier; function initialize( address initialOwner, - Groth16Verifier_NfAnonNullifier _verifier + Groth16Verifier_NfAnonNullifier _verifier, + address _lockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); + __ZetoLock_init(_lockVerifier, address(0)); verifier = _verifier; } @@ -69,6 +77,11 @@ contract Zeto_NfAnonNullifier is IZeto, ZetoNullifier, UUPSUpgradeable { "Invalid transaction proposal" ); + require( + validateLockedStates(nullifiers), + "The input nullifier is locked" + ); + // construct the public inputs uint256[3] memory publicInputs; publicInputs[0] = nullifier; diff --git a/solidity/ignition/modules/lib/deps.ts b/solidity/ignition/modules/lib/deps.ts index 0b68536..e1b627f 100644 --- a/solidity/ignition/modules/lib/deps.ts +++ b/solidity/ignition/modules/lib/deps.ts @@ -94,6 +94,29 @@ export const NfLockVerifierModule = buildModule( }, ); +export const LockNullifiersVerifierModule = buildModule( + "Groth16Verifier_CheckNullifiersOwner", + (m) => { + const verifier = m.contract("Groth16Verifier_CheckNullifiersOwner", []); + return { verifier }; + }, +); +export const BatchLockNullifiersVerifierModule = buildModule( + "Groth16Verifier_CheckNullifiersOwnerBatch", + (m) => { + const verifier = m.contract("Groth16Verifier_CheckNullifiersOwnerBatch", []); + return { verifier }; + }, +); + +export const NfLockNullifiersVerifierModule = buildModule( + "Groth16Verifier_CheckNullifiersNfOwner", + (m) => { + const verifier = m.contract("Groth16Verifier_CheckNullifiersNfOwner", []); + return { verifier }; + }, +); + function PoseidonArtifact(param: number): Artifact { const abi = poseidonContract.generateABI(param); const bytecode = poseidonContract.createCode(param); diff --git a/solidity/ignition/modules/zeto_anon_enc_nullifier.ts b/solidity/ignition/modules/zeto_anon_enc_nullifier.ts index 8b16995..c867180 100644 --- a/solidity/ignition/modules/zeto_anon_enc_nullifier.ts +++ b/solidity/ignition/modules/zeto_anon_enc_nullifier.ts @@ -20,6 +20,8 @@ import { DepositVerifierModule, WithdrawNullifierVerifierModule, BatchWithdrawNullifierVerifierModule, + LockNullifiersVerifierModule, + BatchLockNullifiersVerifierModule, } from "./lib/deps"; const VerifierModule = buildModule("Groth16Verifier_AnonEncNullifier", (m) => { @@ -46,6 +48,12 @@ export default buildModule("Zeto_AnonEncNullifier", (m) => { const { verifier: batchWithdrawVerifier } = m.useModule( BatchWithdrawNullifierVerifierModule, ); + const { verifier: lockVerifier } = m.useModule( + LockNullifiersVerifierModule, + ); + const { verifier: batchLockVerifier } = m.useModule( + BatchLockNullifiersVerifierModule, + ); return { depositVerifier, @@ -53,6 +61,8 @@ export default buildModule("Zeto_AnonEncNullifier", (m) => { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon3, }; diff --git a/solidity/ignition/modules/zeto_anon_enc_nullifier_kyc.ts b/solidity/ignition/modules/zeto_anon_enc_nullifier_kyc.ts index f422870..ed076ff 100644 --- a/solidity/ignition/modules/zeto_anon_enc_nullifier_kyc.ts +++ b/solidity/ignition/modules/zeto_anon_enc_nullifier_kyc.ts @@ -20,6 +20,8 @@ import { DepositVerifierModule, WithdrawNullifierVerifierModule, BatchWithdrawNullifierVerifierModule, + LockNullifiersVerifierModule, + BatchLockNullifiersVerifierModule, } from "./lib/deps"; const VerifierModule = buildModule( @@ -49,6 +51,12 @@ export default buildModule("Zeto_AnonEncNullifierKyc", (m) => { const { verifier: batchWithdrawVerifier } = m.useModule( BatchWithdrawNullifierVerifierModule, ); + const { verifier: lockVerifier } = m.useModule( + LockNullifiersVerifierModule, + ); + const { verifier: batchLockVerifier } = m.useModule( + BatchLockNullifiersVerifierModule, + ); return { depositVerifier, @@ -56,6 +64,8 @@ export default buildModule("Zeto_AnonEncNullifierKyc", (m) => { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon2, poseidon3, diff --git a/solidity/ignition/modules/zeto_anon_enc_nullifier_non_repudiation.ts b/solidity/ignition/modules/zeto_anon_enc_nullifier_non_repudiation.ts index fbb3e30..1de99fc 100644 --- a/solidity/ignition/modules/zeto_anon_enc_nullifier_non_repudiation.ts +++ b/solidity/ignition/modules/zeto_anon_enc_nullifier_non_repudiation.ts @@ -20,6 +20,8 @@ import { DepositVerifierModule, WithdrawNullifierVerifierModule, BatchWithdrawNullifierVerifierModule, + LockNullifiersVerifierModule, + BatchLockNullifiersVerifierModule, } from "./lib/deps"; const VerifierModule = buildModule( @@ -55,12 +57,20 @@ export default buildModule("Zeto_AnonEncNullifierNonRepudiation", (m) => { const { verifier: batchWithdrawVerifier } = m.useModule( BatchWithdrawNullifierVerifierModule, ); + const { verifier: lockVerifier } = m.useModule( + LockNullifiersVerifierModule, + ); + const { verifier: batchLockVerifier } = m.useModule( + BatchLockNullifiersVerifierModule, + ); return { depositVerifier, withdrawVerifier, verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon3, }; diff --git a/solidity/ignition/modules/zeto_anon_nullifier.ts b/solidity/ignition/modules/zeto_anon_nullifier.ts index d1aca6c..478a027 100644 --- a/solidity/ignition/modules/zeto_anon_nullifier.ts +++ b/solidity/ignition/modules/zeto_anon_nullifier.ts @@ -20,6 +20,8 @@ import { DepositVerifierModule, WithdrawNullifierVerifierModule, BatchWithdrawNullifierVerifierModule, + LockNullifiersVerifierModule, + BatchLockNullifiersVerifierModule, } from "./lib/deps"; const VerifierModule = buildModule("Groth16Verifier_AnonNullifier", (m) => { @@ -46,6 +48,12 @@ export default buildModule("Zeto_AnonNullifier", (m) => { const { verifier: batchWithdrawVerifier } = m.useModule( BatchWithdrawNullifierVerifierModule, ); + const { verifier: lockVerifier } = m.useModule( + LockNullifiersVerifierModule, + ); + const { verifier: batchLockVerifier } = m.useModule( + BatchLockNullifiersVerifierModule, + ); return { depositVerifier, @@ -53,6 +61,8 @@ export default buildModule("Zeto_AnonNullifier", (m) => { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon3, }; diff --git a/solidity/ignition/modules/zeto_anon_nullifier_kyc.ts b/solidity/ignition/modules/zeto_anon_nullifier_kyc.ts index 44be1b2..705e938 100644 --- a/solidity/ignition/modules/zeto_anon_nullifier_kyc.ts +++ b/solidity/ignition/modules/zeto_anon_nullifier_kyc.ts @@ -20,6 +20,8 @@ import { DepositVerifierModule, WithdrawNullifierVerifierModule, BatchWithdrawNullifierVerifierModule, + LockNullifiersVerifierModule, + BatchLockNullifiersVerifierModule, } from "./lib/deps"; const VerifierModule = buildModule("Groth16Verifier_AnonNullifierKyc", (m) => { @@ -46,6 +48,12 @@ export default buildModule("Zeto_AnonNullifierKyc", (m) => { const { verifier: batchWithdrawVerifier } = m.useModule( BatchWithdrawNullifierVerifierModule, ); + const { verifier: lockVerifier } = m.useModule( + LockNullifiersVerifierModule, + ); + const { verifier: batchLockVerifier } = m.useModule( + BatchLockNullifiersVerifierModule, + ); return { depositVerifier, @@ -53,6 +61,8 @@ export default buildModule("Zeto_AnonNullifierKyc", (m) => { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon2, poseidon3, diff --git a/solidity/ignition/modules/zeto_nf_anon_nullifier.ts b/solidity/ignition/modules/zeto_nf_anon_nullifier.ts index 6f3cc2c..54b734b 100644 --- a/solidity/ignition/modules/zeto_nf_anon_nullifier.ts +++ b/solidity/ignition/modules/zeto_nf_anon_nullifier.ts @@ -15,7 +15,7 @@ // limitations under the License. import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; -import { SmtLibModule } from "./lib/deps"; +import { SmtLibModule, NfLockNullifiersVerifierModule } from "./lib/deps"; const VerifierModule = buildModule("Groth16Verifier_NfAnonNullifier", (m) => { const verifier = m.contract("Groth16Verifier_NfAnonNullifier", []); @@ -25,6 +25,7 @@ const VerifierModule = buildModule("Groth16Verifier_NfAnonNullifier", (m) => { export default buildModule("Zeto_NfAnonNullifier", (m) => { const { smtLib, poseidon3 } = m.useModule(SmtLibModule); const { verifier } = m.useModule(VerifierModule); + const { verifier: lockVerifier } = m.useModule(NfLockNullifiersVerifierModule); - return { verifier, smtLib, poseidon3 }; + return { verifier, lockVerifier, smtLib, poseidon3 }; }); diff --git a/solidity/scripts/tokens/Zeto_AnonEncNullifier.ts b/solidity/scripts/tokens/Zeto_AnonEncNullifier.ts index e61c204..7bdcd03 100644 --- a/solidity/scripts/tokens/Zeto_AnonEncNullifier.ts +++ b/solidity/scripts/tokens/Zeto_AnonEncNullifier.ts @@ -26,6 +26,8 @@ export async function deployDependencies() { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon3, } = await ignition.deploy(zetoModule); @@ -38,6 +40,8 @@ export async function deployDependencies() { withdrawVerifier.target, batchVerifier.target, batchWithdrawVerifier.target, + lockVerifier.target, + batchLockVerifier.target, ], libraries: { SmtLib: smtLib.target, diff --git a/solidity/scripts/tokens/Zeto_AnonEncNullifierKyc.ts b/solidity/scripts/tokens/Zeto_AnonEncNullifierKyc.ts index fadbcf4..101ba89 100644 --- a/solidity/scripts/tokens/Zeto_AnonEncNullifierKyc.ts +++ b/solidity/scripts/tokens/Zeto_AnonEncNullifierKyc.ts @@ -26,6 +26,8 @@ export async function deployDependencies() { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon2, poseidon3, @@ -39,6 +41,8 @@ export async function deployDependencies() { withdrawVerifier.target, batchVerifier.target, batchWithdrawVerifier.target, + lockVerifier.target, + batchLockVerifier.target, ], libraries: { SmtLib: smtLib.target, diff --git a/solidity/scripts/tokens/Zeto_AnonEncNullifierNonRepudiation.ts b/solidity/scripts/tokens/Zeto_AnonEncNullifierNonRepudiation.ts index a10a15f..518f8bc 100644 --- a/solidity/scripts/tokens/Zeto_AnonEncNullifierNonRepudiation.ts +++ b/solidity/scripts/tokens/Zeto_AnonEncNullifierNonRepudiation.ts @@ -26,6 +26,8 @@ export async function deployDependencies() { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon3, } = await ignition.deploy(zetoModule); @@ -38,6 +40,8 @@ export async function deployDependencies() { withdrawVerifier.target, batchVerifier.target, batchWithdrawVerifier.target, + lockVerifier.target, + batchLockVerifier.target, ], libraries: { SmtLib: smtLib.target, diff --git a/solidity/scripts/tokens/Zeto_AnonNullifier.ts b/solidity/scripts/tokens/Zeto_AnonNullifier.ts index a02bce7..a2467b1 100644 --- a/solidity/scripts/tokens/Zeto_AnonNullifier.ts +++ b/solidity/scripts/tokens/Zeto_AnonNullifier.ts @@ -26,6 +26,8 @@ export async function deployDependencies() { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon3, } = await ignition.deploy(zetoModule); @@ -38,6 +40,8 @@ export async function deployDependencies() { withdrawVerifier.target, batchVerifier.target, batchWithdrawVerifier.target, + lockVerifier.target, + batchLockVerifier.target, ], libraries: { SmtLib: smtLib.target, diff --git a/solidity/scripts/tokens/Zeto_AnonNullifierKyc.ts b/solidity/scripts/tokens/Zeto_AnonNullifierKyc.ts index a299fa7..9f0cf2b 100644 --- a/solidity/scripts/tokens/Zeto_AnonNullifierKyc.ts +++ b/solidity/scripts/tokens/Zeto_AnonNullifierKyc.ts @@ -26,6 +26,8 @@ export async function deployDependencies() { verifier, batchVerifier, batchWithdrawVerifier, + lockVerifier, + batchLockVerifier, smtLib, poseidon2, poseidon3, @@ -39,6 +41,8 @@ export async function deployDependencies() { withdrawVerifier.target, batchVerifier.target, batchWithdrawVerifier.target, + lockVerifier.target, + batchLockVerifier.target, ], libraries: { SmtLib: smtLib.target, diff --git a/solidity/scripts/tokens/Zeto_NfAnon.ts b/solidity/scripts/tokens/Zeto_NfAnon.ts index 8a1766a..50e3648 100644 --- a/solidity/scripts/tokens/Zeto_NfAnon.ts +++ b/solidity/scripts/tokens/Zeto_NfAnon.ts @@ -20,9 +20,9 @@ import zetoModule from "../../ignition/modules/zeto_nf_anon"; export async function deployDependencies() { const [deployer] = await ethers.getSigners(); - const { verifier, lockVerifier, batchLockVerifier, } = await ignition.deploy(zetoModule); + const { verifier, lockVerifier } = await ignition.deploy(zetoModule); return { deployer, - args: [await deployer.getAddress(), verifier.target, lockVerifier.target, batchLockVerifier.target], + args: [await deployer.getAddress(), verifier.target, lockVerifier.target], }; } diff --git a/solidity/scripts/tokens/Zeto_NfAnonNullifier.ts b/solidity/scripts/tokens/Zeto_NfAnonNullifier.ts index ff308e7..02c20df 100644 --- a/solidity/scripts/tokens/Zeto_NfAnonNullifier.ts +++ b/solidity/scripts/tokens/Zeto_NfAnonNullifier.ts @@ -20,10 +20,10 @@ import zetoModule from "../../ignition/modules/zeto_nf_anon_nullifier"; export async function deployDependencies() { const [deployer] = await ethers.getSigners(); - const { verifier, smtLib, poseidon3 } = await ignition.deploy(zetoModule); + const { verifier, lockVerifier, smtLib, poseidon3 } = await ignition.deploy(zetoModule); return { deployer, - args: [await deployer.getAddress(), verifier.target], + args: [await deployer.getAddress(), verifier.target, lockVerifier.target], libraries: { SmtLib: smtLib.target, PoseidonUnit3L: poseidon3.target, diff --git a/solidity/test/utils.ts b/solidity/test/utils.ts index 0c40d4d..d97168a 100644 --- a/solidity/test/utils.ts +++ b/solidity/test/utils.ts @@ -128,11 +128,11 @@ export async function prepareNullifierWithdrawProof( outputSalts: [output.salt || 0n], outputOwnerPublicKeys, }; - let circuit = await loadCircuit("check_nullifier_value"); - let { provingKeyFile } = loadProvingKeys("check_nullifier_value"); + let circuit = await loadCircuit("check_nullifiers_value"); + let { provingKeyFile } = loadProvingKeys("check_nullifiers_value"); if (inputCommitments.length > 2) { - circuit = await loadCircuit("check_nullifier_value_batch"); - ({ provingKeyFile } = loadProvingKeys("check_nullifier_value_batch")); + circuit = await loadCircuit("check_nullifiers_value_batch"); + ({ provingKeyFile } = loadProvingKeys("check_nullifiers_value_batch")); } const startWitnessCalculation = Date.now(); @@ -263,6 +263,54 @@ export async function prepareLockProof( }; } +export async function prepareNullifiersLockProof( + signer: User, + _nullifiers: UTXO[], +) { + const nullifiers: BigNumberish[] = _nullifiers.map( + (input) => input.hash || 0n, + ) as BigNumberish[]; + const values = _nullifiers.map((input) => BigInt(input.value || 0n)); + const salts = _nullifiers.map((input) => input.salt || 0n); + const otherInputs = stringifyBigInts({ + ownerPrivateKey: formatPrivKeyForBabyJub(signer.babyJubPrivateKey), + }); + + const startWitnessCalculation = Date.now(); + let circuit = await loadCircuit("check_nullifiers_owner"); + let { provingKeyFile: provingKey } = loadProvingKeys("check_nullifiers_owner"); + if (nullifiers.length > 2) { + circuit = await loadCircuit("check_nullifiers_owner_batch"); + ({ provingKeyFile: provingKey } = loadProvingKeys("check_nullifiers_owner_batch")); + } + + const witness = await circuit.calculateWTNSBin( + { + nullifiers, + values, + salts, + ...otherInputs, + }, + true, + ); + const timeWitnessCalculation = Date.now() - startWitnessCalculation; + + const startProofGeneration = Date.now(); + const { proof, publicSignals } = (await groth16.prove( + provingKey, + witness, + )) as { proof: BigNumberish[]; publicSignals: BigNumberish[] }; + const timeProofGeneration = Date.now() - startProofGeneration; + console.log( + `Witness calculation time: ${timeWitnessCalculation}ms, Proof generation time: ${timeProofGeneration}ms`, + ); + const encodedProof = encodeProof(proof); + return { + nullifiers, + encodedProof, + }; +} + export async function prepareAssetLockProof( signer: User, inputs: UTXO[], diff --git a/solidity/test/zeto_anon.ts b/solidity/test/zeto_anon.ts index 35e1da5..6419b67 100644 --- a/solidity/test/zeto_anon.ts +++ b/solidity/test/zeto_anon.ts @@ -423,6 +423,8 @@ describe("Zeto based fungible token with anonymity without encryption or nullifi it("the designated delegate can use the proper proof to spend the locked state", async function () { const utxo8 = newUTXO(15, Alice); const { inputCommitments, outputCommitments, encodedProof } = await prepareProof(circuit, provingKey, Bob, [utxo7, ZERO_UTXO], [utxo8, ZERO_UTXO], [Alice, Alice]); + // Bob (in reality this is usually a contract that orchestrates a trade flow) can spend the locked state + // using the proof generated by the trade counterparty (Alice in this case) await expect(sendTx(Alice, inputCommitments, outputCommitments, encodedProof)).to.be.fulfilled; }); }); diff --git a/solidity/test/zeto_anon_enc.ts b/solidity/test/zeto_anon_enc.ts index 7232aeb..cc11bb5 100644 --- a/solidity/test/zeto_anon_enc.ts +++ b/solidity/test/zeto_anon_enc.ts @@ -413,6 +413,8 @@ describe("Zeto based fungible token with anonymity and encryption", function () const utxo8 = newUTXO(5, Charlie); const ephemeralKeypair = genKeypair(); const { inputCommitments, outputCommitments, encodedProof, encryptedValues, encryptionNonce } = await prepareProof(Alice, [utxo4, ZERO_UTXO], [utxo8, ZERO_UTXO], [Charlie, Alice], ephemeralKeypair.privKey); + // Bob (in reality this is usually a contract that orchestrates a trade flow) can spend the locked state + // using the proof generated by the trade counterparty (Alice in this case) await expect(sendTx(Bob, inputCommitments, outputCommitments, encryptedValues, encryptionNonce, encodedProof, ephemeralKeypair.pubKey)).to.be.fulfilled; }); }); diff --git a/solidity/test/zeto_anon_enc_nullifier.ts b/solidity/test/zeto_anon_enc_nullifier.ts index ddaaf37..b76adcf 100644 --- a/solidity/test/zeto_anon_enc_nullifier.ts +++ b/solidity/test/zeto_anon_enc_nullifier.ts @@ -45,6 +45,7 @@ import { import { loadProvingKeys, prepareDepositProof, + prepareNullifiersLockProof, prepareNullifierWithdrawProof, } from "./utils"; import { deployZeto } from "./lib/deploy"; @@ -472,6 +473,105 @@ describe("Zeto based fungible token with anonymity using nullifiers and encrypti expect(endingBalance - startingBalance).to.be.equal(80); }); + describe("lockStates() tests", function () { + let nullifier1: any; + it("lockStates() should succeed when using unlocked states", async function () { + nullifier1 = newNullifier(utxo4, Alice); + const { nullifiers, encodedProof } = await prepareNullifiersLockProof(Alice, [nullifier1, ZERO_UTXO]); + + const tx = await zeto.connect(Alice.signer).lockStates( + nullifiers.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Bob.ethAddress, // make Bob the delegate who can spend the state (if he has the right proof) + "0x", + ); + const results = await tx.wait(); + console.log(`Method transfer() complete. Gas used: ${results?.gasUsed}`); + }); + + it("lockStates() should fail when trying to lock as non-delegate", async function () { + if (network.name !== "hardhat") { + return; + } + + // Bob is the owner of the UTXO, so he can generate the right proof + const { nullifiers, encodedProof } = await prepareNullifiersLockProof(Alice, [nullifier1, ZERO_UTXO]); + + // but he's no longer the delegate (Alice is) to spend the state + await expect(zeto.connect(Alice.signer).lockStates( + nullifiers.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Alice.ethAddress, + "0x", + )).rejectedWith(`UTXOAlreadyLocked(${nullifier1.hash.toString()})`); + }); + + it("the original owner can NOT use the proper proof to spend the locked state", async function () { + // Alice generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation + const root = await smtAlice.root(); + const proof1 = await smtAlice.generateCircomVerifierProof(utxo4.hash, root); + const proof2 = await smtAlice.generateCircomVerifierProof(0n, root); + const merkleProofs = [ + proof1.siblings.map((s) => s.bigInt()), + proof2.siblings.map((s) => s.bigInt()), + ]; + + // Alice proposes the output UTXOs, attempting to transfer to Charlie + const utxo9 = newUTXO(5, Charlie); + + // Alice should NOT be able to spend the UTXO which has been locked and delegated to Bob + await expect(doTransfer( + Alice, + [utxo4, ZERO_UTXO], + [nullifier1, ZERO_UTXO], + [utxo9, ZERO_UTXO], + root.bigInt(), + merkleProofs, + [Charlie, Alice], + )).to.be.rejectedWith("UTXOAlreadyLocked"); + }); + + it("the designated delegate can use the proper proof to spend the locked state", async function () { + // Alice generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation + const root = await smtAlice.root(); + const proof1 = await smtAlice.generateCircomVerifierProof(utxo4.hash, root); + const proof2 = await smtAlice.generateCircomVerifierProof(0n, root); + const merkleProofs = [ + proof1.siblings.map((s) => s.bigInt()), + proof2.siblings.map((s) => s.bigInt()), + ]; + + // Alice proposes the output UTXOs, attempting to transfer to Charlie + const utxo9 = newUTXO(5, Charlie); + + const ephemeralKeypair = genKeypair(); + const result = await prepareProof( + Alice, + [utxo4, ZERO_UTXO], + [nullifier1, ZERO_UTXO], + [utxo9, ZERO_UTXO], + root.bigInt(), + merkleProofs, + [Charlie, Alice], + ephemeralKeypair.privKey, + ); + const nullifiers = [nullifier1.hash]; + + // Bob (in reality this is usually a contract that orchestrates a trade flow) can spend the locked state + // using the proof generated by the trade counterparty (Alice in this case) + await expect(sendTx( + Bob, + nullifiers, + result.outputCommitments, + root.bigInt(), + result.encryptedValues, + result.encryptionNonce, + result.encodedProof, + ephemeralKeypair.pubKey, + )).to.be.fulfilled; + }); + }); + describe("failure cases", function () { // the following failure cases rely on the hardhat network // to return the details of the errors. This is not possible diff --git a/solidity/test/zeto_anon_nullifier.ts b/solidity/test/zeto_anon_nullifier.ts index 7b4e925..9503996 100644 --- a/solidity/test/zeto_anon_nullifier.ts +++ b/solidity/test/zeto_anon_nullifier.ts @@ -33,6 +33,7 @@ import { import { loadProvingKeys, prepareDepositProof, + prepareNullifiersLockProof, prepareNullifierWithdrawProof, } from "./utils"; import { deployZeto } from "./lib/deploy"; @@ -50,6 +51,7 @@ describe("Zeto based fungible token with anonymity using nullifiers without encr let utxo3: UTXO; let utxo4: UTXO; let utxo7: UTXO; + let utxo9: UTXO; let circuit: any, provingKey: any; let batchCircuit: any, batchProvingKey: any; let smtAlice: Merkletree; @@ -444,6 +446,103 @@ describe("Zeto based fungible token with anonymity using nullifiers without encr expect(endingBalance - startingBalance).to.be.equal(80); }); + describe("lockStates() tests", function () { + let nullifier1: any; + it("lockStates() should succeed when using unlocked states", async function () { + nullifier1 = newNullifier(utxo7, Bob); + const { nullifiers, encodedProof } = await prepareNullifiersLockProof(Bob, [nullifier1, ZERO_UTXO]); + + const tx = await zeto.connect(Bob.signer).lockStates( + nullifiers.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Alice.ethAddress, // make Alice the delegate who can spend the state (if she has the right proof) + "0x", + ); + const results = await tx.wait(); + console.log(`Method transfer() complete. Gas used: ${results?.gasUsed}`); + }); + + it("lockStates() should fail when trying to lock as non-delegate", async function () { + if (network.name !== "hardhat") { + return; + } + + // Bob is the owner of the UTXO, so he can generate the right proof + const { nullifiers, encodedProof } = await prepareNullifiersLockProof(Bob, [nullifier1, ZERO_UTXO]); + + // but he's no longer the delegate (Alice is) to spend the state + await expect(zeto.connect(Bob.signer).lockStates( + nullifiers.filter((ic) => ic !== 0n), // trim off empty utxo hashes to check padding logic for batching works + encodedProof, + Bob.ethAddress, + "0x", + )).rejectedWith(`UTXOAlreadyLocked(${nullifier1.hash.toString()})`); + }); + + it("the original owner can NOT use the proper proof to spend the locked state", async function () { + // Bob generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation + const root = await smtBob.root(); + const proof1 = await smtBob.generateCircomVerifierProof(utxo7.hash, root); + const proof2 = await smtBob.generateCircomVerifierProof(0n, root); + const merkleProofs = [ + proof1.siblings.map((s) => s.bigInt()), + proof2.siblings.map((s) => s.bigInt()), + ]; + + // Bob proposes the output UTXOs, attempting to transfer to Alice + utxo9 = newUTXO(15, Alice); + + // Bob should NOT be able to spend the UTXO which has been locked and delegated to Bob + await expect(doTransfer( + Bob, + [utxo7, ZERO_UTXO], + [nullifier1, ZERO_UTXO], + [utxo9, ZERO_UTXO], + root.bigInt(), + merkleProofs, + [Alice, Bob], + )).to.be.rejectedWith("UTXOAlreadyLocked"); + }); + + it("the designated delegate can use the proper proof to spend the locked state", async function () { + // Bob generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation + const root = await smtBob.root(); + const proof1 = await smtBob.generateCircomVerifierProof(utxo7.hash, root); + const proof2 = await smtBob.generateCircomVerifierProof(0n, root); + const merkleProofs = [ + proof1.siblings.map((s) => s.bigInt()), + proof2.siblings.map((s) => s.bigInt()), + ]; + + // Bob proposes the output UTXOs, attempting to transfer to Alice + utxo9 = newUTXO(15, Alice); + + const result = await prepareProof( + Bob, + [utxo7, ZERO_UTXO], + [nullifier1, ZERO_UTXO], + [utxo9, ZERO_UTXO], + root.bigInt(), + merkleProofs, + [Alice, Bob], + ); + const nullifiers = [nullifier1.hash]; + + // Alice (in reality this is usually a contract that orchestrates a trade flow) can spend the locked state + // using the proof generated by the trade counterparty (Bob in this case) + await expect(sendTx( + Alice, + nullifiers, + result.outputCommitments, + root.bigInt(), + result.encodedProof, + )).to.be.fulfilled; + + // Alice keeps the local SMT in sync + await smtAlice.add(utxo9.hash, utxo9.hash); + }); + }); + describe("failure cases", function () { // the following failure cases rely on the hardhat network // to return the details of the errors. This is not possible @@ -545,30 +644,22 @@ describe("Zeto based fungible token with anonymity using nullifiers without encr }).timeout(600000); it("transfer with existing UTXOs in the output should fail (mass conservation protection)", async function () { - // give Bob another UTXO to be able to spend - const _utxo1 = newUTXO(15, Bob); - await doMint(zeto, deployer, [_utxo1]); - await smtBob.add(_utxo1.hash, _utxo1.hash); - - const nullifier1 = newNullifier(utxo7, Bob); - const nullifier2 = newNullifier(_utxo1, Bob); - let root = await smtBob.root(); - const proof1 = await smtBob.generateCircomVerifierProof(utxo7.hash, root); - const proof2 = await smtBob.generateCircomVerifierProof( - _utxo1.hash, - root, - ); + const nullifier1 = newNullifier(utxo9, Alice); + let root = await smtAlice.root(); + const proof1 = await smtAlice.generateCircomVerifierProof(utxo9.hash, root); + const proof2 = await smtAlice.generateCircomVerifierProof(0n, root); const merkleProofs = [ proof1.siblings.map((s) => s.bigInt()), proof2.siblings.map((s) => s.bigInt()), ]; + const _utxo1 = newUTXO(5, Alice); await expect( doTransfer( - Bob, - [utxo7, _utxo1], - [nullifier1, nullifier2], - [utxo1, utxo2], + Alice, + [utxo9, ZERO_UTXO], + [nullifier1, ZERO_UTXO], + [utxo1, _utxo1], root.bigInt(), merkleProofs, [Alice, Alice], @@ -577,14 +668,14 @@ describe("Zeto based fungible token with anonymity using nullifiers without encr }).timeout(600000); it("spend by using the same UTXO as both inputs should fail", async function () { - const _utxo1 = newUTXO(20, Alice); - const _utxo2 = newUTXO(10, Bob); - const nullifier1 = newNullifier(utxo7, Bob); - const nullifier2 = newNullifier(utxo7, Bob); + const _utxo1 = newUTXO(10, Alice); + const _utxo2 = newUTXO(20, Bob); + const nullifier1 = newNullifier(utxo9, Alice); + const nullifier2 = newNullifier(utxo9, Alice); // generate inclusion proofs for the UTXOs to be spent - let root = await smtBob.root(); - const proof1 = await smtBob.generateCircomVerifierProof(utxo7.hash, root); - const proof2 = await smtBob.generateCircomVerifierProof(utxo7.hash, root); + let root = await smtAlice.root(); + const proof1 = await smtAlice.generateCircomVerifierProof(utxo9.hash, root); + const proof2 = await smtAlice.generateCircomVerifierProof(utxo9.hash, root); const merkleProofs = [ proof1.siblings.map((s) => s.bigInt()), proof2.siblings.map((s) => s.bigInt()), @@ -592,8 +683,8 @@ describe("Zeto based fungible token with anonymity using nullifiers without encr await expect( doTransfer( - Bob, - [utxo7, utxo7], + Alice, + [utxo9, utxo9], [nullifier1, nullifier2], [_utxo1, _utxo2], root.bigInt(), diff --git a/solidity/test/zeto_nf_anon.ts b/solidity/test/zeto_nf_anon.ts index 754fc72..8a86afc 100644 --- a/solidity/test/zeto_nf_anon.ts +++ b/solidity/test/zeto_nf_anon.ts @@ -162,6 +162,8 @@ describe("Zeto based non-fungible token with anonymity without encryption or nul it("the designated delegate can use the proper proof to spend the locked state", async function () { const utxo8 = newAssetUTXO(utxo3.tokenId!, utxo3.uri!, Alice); const { inputCommitment, outputCommitment, encodedProof } = await prepareProof(circuit, provingKey, Charlie, utxo3, utxo8, Alice); + // Alice (in reality this is usually a contract that orchestrates a trade flow) can spend the locked state + // using the proof generated by the trade counterparty (Charlie in this case) await expect(sendTx(Alice, inputCommitment, outputCommitment, encodedProof)).to.be.fulfilled; }); }); diff --git a/zkp/circuits/check_nullifiers_nf_owner.circom b/zkp/circuits/check_nullifiers_nf_owner.circom new file mode 100644 index 0000000..f7ebc10 --- /dev/null +++ b/zkp/circuits/check_nullifiers_nf_owner.circom @@ -0,0 +1,21 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma circom 2.2.1; + +include "./lib/check-nullifiers-tokenid-uri.circom"; +include "./node_modules/circomlib/circuits/babyjub.circom"; + +component main { public [ nullifiers ] } = CheckNullifiersForTokenIdAndUri(2); \ No newline at end of file diff --git a/zkp/js/test/circuits/check-nullifier-tokenid-uri.circom b/zkp/circuits/check_nullifiers_owner.circom similarity index 80% rename from zkp/js/test/circuits/check-nullifier-tokenid-uri.circom rename to zkp/circuits/check_nullifiers_owner.circom index 75ecbcd..1e1efeb 100644 --- a/zkp/js/test/circuits/check-nullifier-tokenid-uri.circom +++ b/zkp/circuits/check_nullifiers_owner.circom @@ -15,6 +15,7 @@ // limitations under the License. pragma circom 2.2.1; -include "../../../circuits/lib/check-nullifier-tokenid-uri.circom"; +include "./lib/check-nullifiers.circom"; +include "./node_modules/circomlib/circuits/babyjub.circom"; -component main {public [ nullifiers ]} = CheckNullifierForTokenIdAndUri(1); \ No newline at end of file +component main { public [ nullifiers ] } = CheckNullifiers(2); \ No newline at end of file diff --git a/zkp/circuits/check_nullifiers_owner_batch.circom b/zkp/circuits/check_nullifiers_owner_batch.circom new file mode 100644 index 0000000..ecd8db1 --- /dev/null +++ b/zkp/circuits/check_nullifiers_owner_batch.circom @@ -0,0 +1,21 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma circom 2.2.1; + +include "./lib/check-nullifiers.circom"; +include "./node_modules/circomlib/circuits/babyjub.circom"; + +component main { public [ nullifiers ] } = CheckNullifiers(10); \ No newline at end of file diff --git a/zkp/circuits/check_nullifier_value.circom b/zkp/circuits/check_nullifiers_value.circom similarity index 93% rename from zkp/circuits/check_nullifier_value.circom rename to zkp/circuits/check_nullifiers_value.circom index 8c447a2..508d0f3 100644 --- a/zkp/circuits/check_nullifier_value.circom +++ b/zkp/circuits/check_nullifiers_value.circom @@ -15,6 +15,6 @@ // limitations under the License. pragma circom 2.2.1; -include "./lib/check-nullifier-value-base.circom"; +include "./lib/check-nullifiers-value-base.circom"; component main { public [ nullifiers, outputCommitments, root, enabled ] } = CheckNullifiersInputsOutputsValue(2, 1, 64); diff --git a/zkp/circuits/check_nullifier_value_batch.circom b/zkp/circuits/check_nullifiers_value_batch.circom similarity index 93% rename from zkp/circuits/check_nullifier_value_batch.circom rename to zkp/circuits/check_nullifiers_value_batch.circom index 5f4fabe..07d1594 100644 --- a/zkp/circuits/check_nullifier_value_batch.circom +++ b/zkp/circuits/check_nullifiers_value_batch.circom @@ -15,6 +15,6 @@ // limitations under the License. pragma circom 2.2.1; -include "./lib/check-nullifier-value-base.circom"; +include "./lib/check-nullifiers-value-base.circom"; component main { public [ nullifiers, outputCommitments, root, enabled ] } = CheckNullifiersInputsOutputsValue(10, 1, 64); diff --git a/zkp/circuits/gen-config.json b/zkp/circuits/gen-config.json index f72b1e9..78101f8 100644 --- a/zkp/circuits/gen-config.json +++ b/zkp/circuits/gen-config.json @@ -53,7 +53,7 @@ "batchPtau": "powersOfTau28_hez_final_14", "skipSolidityGenaration": false }, - "check_nullifier_value": { + "check_nullifiers_value": { "ptau": "powersOfTau28_hez_final_17", "batchPtau": "powersOfTau28_hez_final_19", "skipSolidityGenaration": false @@ -67,6 +67,15 @@ "ptau": "powersOfTau28_hez_final_13", "skipSolidityGenaration": false }, + "check_nullifiers_owner": { + "ptau": "powersOfTau28_hez_final_11", + "batchPtau": "powersOfTau28_hez_final_13", + "skipSolidityGenaration": false + }, + "check_nullifiers_nf_owner": { + "ptau": "powersOfTau28_hez_final_11", + "skipSolidityGenaration": false + }, "check_nullifiers": { "ptau": "powersOfTau28_hez_final_13", "skipSolidityGenaration": true diff --git a/zkp/circuits/lib/check-nullifier-tokenid-uri.circom b/zkp/circuits/lib/check-nullifiers-tokenid-uri.circom similarity index 92% rename from zkp/circuits/lib/check-nullifier-tokenid-uri.circom rename to zkp/circuits/lib/check-nullifiers-tokenid-uri.circom index ff574b8..5575cdc 100644 --- a/zkp/circuits/lib/check-nullifier-tokenid-uri.circom +++ b/zkp/circuits/lib/check-nullifiers-tokenid-uri.circom @@ -20,7 +20,7 @@ include "../node_modules/circomlib/circuits/comparators.circom"; include "../node_modules/circomlib/circuits/babyjub.circom"; include "../node_modules/circomlib/circuits/smt/smtverifier.circom"; -// CheckNullifierForTokenIdAndUri is a circuit that checks the integrity of transactions of Non-Fungible Tokens +// CheckNullifiersForTokenIdAndUri is a circuit that checks the integrity of transactions of Non-Fungible Tokens // - check that the nullifiers are correctly computed from the token ids, uris and salts // - check that the input commitments match the calculated hashes // - check that the input commitments are included in the Sparse Merkle Tree with the root `root` @@ -28,7 +28,7 @@ include "../node_modules/circomlib/circuits/smt/smtverifier.circom"; // commitment = hash(tokenId, uri, salt, ownerPublicKey1, ownerPublicKey2) // nullifier = hash(tokenId, uri, salt, ownerPrivatekey) // -template CheckNullifierForTokenIdAndUri(numInputs) { +template CheckNullifiersForTokenIdAndUri(numInputs) { signal input tokenIds[numInputs]; signal input tokenUris[numInputs]; signal input nullifiers[numInputs]; diff --git a/zkp/circuits/lib/check-nullifier-value-base.circom b/zkp/circuits/lib/check-nullifiers-value-base.circom similarity index 100% rename from zkp/circuits/lib/check-nullifier-value-base.circom rename to zkp/circuits/lib/check-nullifiers-value-base.circom diff --git a/zkp/circuits/nf_anon_nullifier.circom b/zkp/circuits/nf_anon_nullifier.circom index 00f1093..d6e4605 100644 --- a/zkp/circuits/nf_anon_nullifier.circom +++ b/zkp/circuits/nf_anon_nullifier.circom @@ -15,7 +15,7 @@ // limitations under the License. pragma circom 2.2.1; -include "./lib/check-nullifier-tokenid-uri.circom"; +include "./lib/check-nullifiers-tokenid-uri.circom"; include "./lib/check-hashes-tokenid-uri.circom"; include "./lib/check-smt-proof.circom"; include "./node_modules/circomlib/circuits/babyjub.circom"; @@ -54,7 +54,7 @@ template Zeto(nSMTLevels) { CheckHashesForTokenIdAndUri(1)(tokenIds <== [tokenId], tokenUris <== [tokenUri], commitments <== [outputCommitment], salts <== [outputSalt], ownerPublicKeys <== [outputOwnerPublicKey]); - CheckNullifierForTokenIdAndUri(1)(nullifiers <== [nullifier], tokenIds <== [tokenId], tokenUris <== [tokenUri], salts <== [inputSalt], ownerPrivateKey <== inputOwnerPrivateKey); + CheckNullifiersForTokenIdAndUri(1)(nullifiers <== [nullifier], tokenIds <== [tokenId], tokenUris <== [tokenUri], salts <== [inputSalt], ownerPrivateKey <== inputOwnerPrivateKey); CheckSMTProof(1, nSMTLevels)(root <== root, merkleProof <== [merkleProof], enabled <== [1], leafNodeIndexes <== [inputCommitment]); } diff --git a/zkp/js/integration-test/check_nullifier_value.js b/zkp/js/integration-test/check_nullifier_value.js index cf36a79..0419fb7 100644 --- a/zkp/js/integration-test/check_nullifier_value.js +++ b/zkp/js/integration-test/check_nullifier_value.js @@ -30,16 +30,16 @@ const SMT_HEIGHT = 64; const poseidonHash = Poseidon.poseidon4; const poseidonHash3 = Poseidon.poseidon3; -describe("check_nullifier_value circuit tests", () => { +describe("check_nullifiers_value circuit tests", () => { let circuit, provingKeyFile, verificationKey, smtAlice; const Alice = {}; let senderPrivateKey; before(async () => { - circuit = await loadCircuit("check_nullifier_value"); + circuit = await loadCircuit("check_nullifiers_value"); ({ provingKeyFile, verificationKey } = loadProvingKeys( - "check_nullifier_value", + "check_nullifiers_value", )); let keypair = genKeypair(); diff --git a/zkp/js/integration-test/check_utxos_owner.js b/zkp/js/integration-test/check_utxos_owner.js index cf36a79..a04a77d 100644 --- a/zkp/js/integration-test/check_utxos_owner.js +++ b/zkp/js/integration-test/check_utxos_owner.js @@ -30,16 +30,16 @@ const SMT_HEIGHT = 64; const poseidonHash = Poseidon.poseidon4; const poseidonHash3 = Poseidon.poseidon3; -describe("check_nullifier_value circuit tests", () => { +describe("check_utxos_owner circuit tests", () => { let circuit, provingKeyFile, verificationKey, smtAlice; const Alice = {}; let senderPrivateKey; before(async () => { - circuit = await loadCircuit("check_nullifier_value"); + circuit = await loadCircuit("check_utxos_owner"); ({ provingKeyFile, verificationKey } = loadProvingKeys( - "check_nullifier_value", + "check_utxos_owner", )); let keypair = genKeypair(); diff --git a/zkp/js/test/lib/check-nullifier-tokenid-uri.js b/zkp/js/test/check_nullifiers_nf_owner.js similarity index 50% rename from zkp/js/test/lib/check-nullifier-tokenid-uri.js rename to zkp/js/test/check_nullifiers_nf_owner.js index b40c668..ca62e5d 100644 --- a/zkp/js/test/lib/check-nullifier-tokenid-uri.js +++ b/zkp/js/test/check_nullifiers_nf_owner.js @@ -14,24 +14,17 @@ // See the License for the specific language governing permissions and // limitations under the License. -const { expect } = require("chai"); -const { join } = require("path"); -const { wasm: wasm_tester } = require("circom_tester"); -const { genKeypair, formatPrivKeyForBabyJub } = require("maci-crypto"); -const { Poseidon, newSalt, tokenUriHash } = require("../../index.js"); -const { - Merkletree, - InMemoryDB, - str2Bytes, - ZERO_HASH, -} = require("@iden3/js-merkletree"); +const { expect } = require('chai'); +const { join } = require('path'); +const { wasm: wasm_tester } = require('circom_tester'); +const { genKeypair, formatPrivKeyForBabyJub } = require('maci-crypto'); +const { Poseidon, newSalt, tokenUriHash } = require('../index.js'); +const { Merkletree, InMemoryDB, str2Bytes, ZERO_HASH } = require('@iden3/js-merkletree'); -const SMT_HEIGHT = 64; -const poseidonHash = Poseidon.poseidon5; const poseidonHash4 = Poseidon.poseidon4; -describe("check-nullifier-tokenid-uri circuit tests", () => { - let circuit, smt; +describe('check_nullifiers_nf_owner circuit tests', () => { + let circuit; const sender = {}; const receiver = {}; let senderPrivateKey; @@ -39,9 +32,7 @@ describe("check-nullifier-tokenid-uri circuit tests", () => { before(async function () { this.timeout(60000); - circuit = await wasm_tester( - join(__dirname, "../circuits/check-nullifier-tokenid-uri.circom"), - ); + circuit = await wasm_tester(join(__dirname, '../../circuits/check_nullifiers_nf_owner.circom')); let keypair = genKeypair(); sender.privKey = keypair.privKey; @@ -51,32 +42,24 @@ describe("check-nullifier-tokenid-uri circuit tests", () => { keypair = genKeypair(); receiver.privKey = keypair.privKey; receiver.pubKey = keypair.pubKey; - - const storage = new InMemoryDB(str2Bytes("")); - smt = new Merkletree(storage, true, SMT_HEIGHT); }); - it("should return true for valid witness", async () => { + it('should return true for valid witness', async () => { const tokenId = 1001; - const tokenUri = tokenUriHash("http://ipfs.io/some-file-hash"); + const tokenUri = tokenUriHash('http://ipfs.io/some-file-hash'); const salt1 = newSalt(); - const nullifier1 = poseidonHash4([ - BigInt(tokenId), - tokenUri, - salt1, - senderPrivateKey, - ]); + const nullifier1 = poseidonHash4([BigInt(tokenId), tokenUri, salt1, senderPrivateKey]); const witness = await circuit.calculateWitness( { - tokenIds: [tokenId], - tokenUris: [tokenUri], - nullifiers: [nullifier1], - salts: [salt1], + tokenIds: [tokenId, 0], + tokenUris: [tokenUri, 0], + nullifiers: [nullifier1, 0], + salts: [salt1, 0], ownerPrivateKey: senderPrivateKey, }, - true, + true ); // console.log('tokenUri', tokenUri); @@ -85,41 +68,34 @@ describe("check-nullifier-tokenid-uri circuit tests", () => { // console.log(witness.slice(0, 10)); expect(witness[1]).to.equal(BigInt(nullifier1)); - expect(witness[2]).to.equal(BigInt(tokenId)); - expect(witness[3]).to.equal(tokenUri); - expect(witness[4]).to.equal(salt1); + expect(witness[3]).to.equal(BigInt(tokenId)); + expect(witness[5]).to.equal(tokenUri); + expect(witness[7]).to.equal(salt1); }); - it("should fail to calculate witness due to invalid nullifier", async () => { + it('should fail to calculate witness due to invalid nullifier', async () => { const tokenId = 1001; - const tokenUri = tokenUriHash("http://ipfs.io/some-file-hash"); + const tokenUri = tokenUriHash('http://ipfs.io/some-file-hash'); const salt1 = newSalt(); - const nullifier1 = poseidonHash4([ - BigInt(tokenId), - tokenUri, - salt1, - senderPrivateKey, - ]); + const nullifier1 = poseidonHash4([BigInt(tokenId), tokenUri, salt1, senderPrivateKey]); let error; try { const witness = await circuit.calculateWitness( { - tokenIds: [tokenId], - tokenUris: [tokenUri], - nullifiers: [nullifier1 + BigInt(1)], - salts: [salt1], + tokenIds: [tokenId, 0], + tokenUris: [tokenUri, 0], + nullifiers: [nullifier1 + BigInt(1), 0], + salts: [salt1, 0], ownerPrivateKey: senderPrivateKey, }, - true, + true ); } catch (e) { error = e; } // console.log(error); - expect(error).to.match( - /Error in template CheckNullifierForTokenIdAndUri_76 line: 52/, - ); + expect(error).to.match(/Error in template CheckNullifiersForTokenIdAndUri_76 line: 52/); }); }); diff --git a/zkp/js/test/check_nullifiers_owner.js b/zkp/js/test/check_nullifiers_owner.js new file mode 100644 index 0000000..8bce438 --- /dev/null +++ b/zkp/js/test/check_nullifiers_owner.js @@ -0,0 +1,106 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const { expect } = require('chai'); +const { join } = require('path'); +const { wasm: wasm_tester } = require('circom_tester'); +const { genKeypair, formatPrivKeyForBabyJub } = require('maci-crypto'); +const { Poseidon, newSalt } = require('../index.js'); + +const poseidonHash3 = Poseidon.poseidon3; + +describe('check_nullifiers_owner circuit tests', () => { + let circuit; + const sender = {}; + const receiver = {}; + let senderPrivateKey; + + before(async function () { + this.timeout(60000); + + circuit = await wasm_tester(join(__dirname, '../../circuits/check_nullifiers_owner.circom')); + + let keypair = genKeypair(); + sender.privKey = keypair.privKey; + sender.pubKey = keypair.pubKey; + senderPrivateKey = formatPrivKeyForBabyJub(sender.privKey); + + keypair = genKeypair(); + receiver.privKey = keypair.privKey; + receiver.pubKey = keypair.pubKey; + }); + + it('should return true for valid witness', async () => { + const values = [32, 40]; + const salt1 = newSalt(); + const salt2 = newSalt(); + + // create two input nullifiers, corresponding to the input UTXOs + const nullifier1 = poseidonHash3([BigInt(values[0]), salt1, senderPrivateKey]); + const nullifier2 = poseidonHash3([BigInt(values[1]), salt2, senderPrivateKey]); + const nullifiers = [nullifier1, nullifier2]; + + const witness = await circuit.calculateWitness( + { + nullifiers, + values, + salts: [salt1, salt2], + ownerPrivateKey: senderPrivateKey, + }, + true + ); + + // console.log('nullifiers', nullifiers); + // console.log('inputValues', inputValues); + // console.log('inputSalts', [salt1, salt2]); + // console.log('owner private key', senderPrivateKey); + // console.log(witness.slice(0, 15)); + + expect(witness[1]).to.equal(BigInt(nullifiers[0])); + expect(witness[2]).to.equal(BigInt(nullifiers[1])); + expect(witness[3]).to.equal(BigInt(values[0])); + expect(witness[4]).to.equal(BigInt(values[1])); + expect(witness[7]).to.equal(senderPrivateKey); + }); + + it('should fail to generate a witness because incorrect values are not used', async () => { + const values = [15, 100]; + const salt1 = newSalt(); + const salt2 = newSalt(); + + // create two input nullifiers, corresponding to the input UTXOs + const nullifier1 = poseidonHash3([BigInt(values[0]), salt1, senderPrivateKey]); + const nullifier2 = poseidonHash3([BigInt(values[1] + 1), salt2, senderPrivateKey]); + const nullifiers = [nullifier1, nullifier2]; + + let err; + try { + await circuit.calculateWitness( + { + nullifiers, + values, + salts: [salt1, salt2], + ownerPrivateKey: senderPrivateKey, + }, + true + ); + } catch (e) { + err = e; + } + // console.log(err); + expect(err).to.match(/Error in template CheckNullifiers_72 line: 51/); + }); +}); diff --git a/zkp/js/test/check_nullifier_value.js b/zkp/js/test/check_nullifiers_value.js similarity index 98% rename from zkp/js/test/check_nullifier_value.js rename to zkp/js/test/check_nullifiers_value.js index 8c5ad50..0b73210 100644 --- a/zkp/js/test/check_nullifier_value.js +++ b/zkp/js/test/check_nullifiers_value.js @@ -30,7 +30,7 @@ const SMT_HEIGHT = 64; const poseidonHash = Poseidon.poseidon4; const poseidonHash3 = Poseidon.poseidon3; -describe("check_nullifier_value circuit tests", () => { +describe("check_nullifiers_value circuit tests", () => { let circuit, smtAlice; const Alice = {}; @@ -40,7 +40,7 @@ describe("check_nullifier_value circuit tests", () => { this.timeout(60000); circuit = await wasm_tester( - join(__dirname, "../../circuits/check_nullifier_value.circom"), + join(__dirname, "../../circuits/check_nullifiers_value.circom"), ); let keypair = genKeypair(); From da7ca61675e54600875c26220d8883272b2c2ee3 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Fri, 13 Dec 2024 15:14:17 -0500 Subject: [PATCH 07/20] add integration test for circuits Signed-off-by: Jim Zhang --- .../check_nullifiers_owner.js | 76 ++++++++++++++++ ...ier_value.js => check_nullifiers_value.js} | 0 zkp/js/integration-test/check_utxos_owner.js | 86 +++---------------- 3 files changed, 89 insertions(+), 73 deletions(-) create mode 100644 zkp/js/integration-test/check_nullifiers_owner.js rename zkp/js/integration-test/{check_nullifier_value.js => check_nullifiers_value.js} (100%) diff --git a/zkp/js/integration-test/check_nullifiers_owner.js b/zkp/js/integration-test/check_nullifiers_owner.js new file mode 100644 index 0000000..7ff6dc5 --- /dev/null +++ b/zkp/js/integration-test/check_nullifiers_owner.js @@ -0,0 +1,76 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const { expect } = require('chai'); +const { groth16 } = require('snarkjs'); +const { genKeypair, formatPrivKeyForBabyJub } = require('maci-crypto'); +const { Poseidon, newSalt, loadCircuit } = require('../index.js'); +const { loadProvingKeys } = require('./utils.js'); + +const poseidonHash3 = Poseidon.poseidon3; + +describe('check_nullifiers_owner circuit tests', () => { + let circuit, provingKeyFile, verificationKey; + + const Alice = {}; + let senderPrivateKey; + + before(async () => { + circuit = await loadCircuit('check_nullifiers_owner'); + ({ provingKeyFile, verificationKey } = loadProvingKeys('check_nullifiers_owner')); + + let keypair = genKeypair(); + Alice.privKey = keypair.privKey; + Alice.pubKey = keypair.pubKey; + senderPrivateKey = formatPrivKeyForBabyJub(Alice.privKey); + }); + + it('should generate a valid proof that can be verified successfully and fail when public signals are tampered', async () => { + const values = [15, 100]; + + // create two input UTXOs, each has their own salt, but same owner + const senderPrivateKey = formatPrivKeyForBabyJub(Alice.privKey); + const salt1 = newSalt(); + const salt2 = newSalt(); + + // create the nullifiers for the input UTXOs + const nullifier1 = poseidonHash3([BigInt(values[0]), salt1, senderPrivateKey]); + const nullifier2 = poseidonHash3([BigInt(values[1]), salt2, senderPrivateKey]); + const nullifiers = [nullifier1, nullifier2]; + + const startTime = Date.now(); + const witness = await circuit.calculateWTNSBin( + { + nullifiers, + values, + salts: [salt1, salt2], + ownerPrivateKey: senderPrivateKey, + }, + true + ); + + const { proof, publicSignals } = await groth16.prove(provingKeyFile, witness); + console.log('Proving time: ', (Date.now() - startTime) / 1000, 's'); + + let verifyResult = await groth16.verify(verificationKey, publicSignals, proof); + expect(verifyResult).to.be.true; + const tamperedNullifier = poseidonHash3([BigInt(values[0] + 1), salt1, senderPrivateKey]); + let tamperedPublicSignals = publicSignals.map((ps) => (ps.toString() === nullifiers[0].toString() ? tamperedNullifier : ps)); + + verifyResult = await groth16.verify(verificationKey, tamperedPublicSignals, proof); + expect(verifyResult).to.be.false; + }).timeout(600000); +}); diff --git a/zkp/js/integration-test/check_nullifier_value.js b/zkp/js/integration-test/check_nullifiers_value.js similarity index 100% rename from zkp/js/integration-test/check_nullifier_value.js rename to zkp/js/integration-test/check_nullifiers_value.js diff --git a/zkp/js/integration-test/check_utxos_owner.js b/zkp/js/integration-test/check_utxos_owner.js index a04a77d..a2a27b4 100644 --- a/zkp/js/integration-test/check_utxos_owner.js +++ b/zkp/js/integration-test/check_utxos_owner.js @@ -17,16 +17,9 @@ const { expect } = require("chai"); const { groth16 } = require("snarkjs"); const { genKeypair, formatPrivKeyForBabyJub } = require("maci-crypto"); -const { - Merkletree, - InMemoryDB, - str2Bytes, - ZERO_HASH, -} = require("@iden3/js-merkletree"); const { Poseidon, newSalt, loadCircuit } = require("../index.js"); const { loadProvingKeys } = require("./utils.js"); -const SMT_HEIGHT = 64; const poseidonHash = Poseidon.poseidon4; const poseidonHash3 = Poseidon.poseidon3; @@ -46,86 +39,34 @@ describe("check_utxos_owner circuit tests", () => { Alice.privKey = keypair.privKey; Alice.pubKey = keypair.pubKey; senderPrivateKey = formatPrivKeyForBabyJub(Alice.privKey); - - // initialize the local storage for Alice to manage her UTXOs in the Spart Merkle Tree - const storage1 = new InMemoryDB(str2Bytes("")); - smtAlice = new Merkletree(storage1, true, SMT_HEIGHT); }); it("should generate a valid proof that can be verified successfully and fail when public signals are tampered", async () => { - const inputValues = [15, 100]; - const outputValues = [35]; + const values = [15, 100]; // create two input UTXOs, each has their own salt, but same owner const senderPrivateKey = formatPrivKeyForBabyJub(Alice.privKey); const salt1 = newSalt(); const input1 = poseidonHash([ - BigInt(inputValues[0]), + BigInt(values[0]), salt1, ...Alice.pubKey, ]); const salt2 = newSalt(); const input2 = poseidonHash([ - BigInt(inputValues[1]), - salt2, - ...Alice.pubKey, - ]); - const inputCommitments = [input1, input2]; - - // create the nullifiers for the input UTXOs - const nullifier1 = poseidonHash3([ - BigInt(inputValues[0]), - salt1, - senderPrivateKey, - ]); - const nullifier2 = poseidonHash3([ - BigInt(inputValues[1]), + BigInt(values[1]), salt2, - senderPrivateKey, - ]); - const nullifiers = [nullifier1, nullifier2]; - - // calculate the root of the SMT - await smtAlice.add(input1, input1); - await smtAlice.add(input2, input2); - - // generate the merkle proof for the inputs - const proof1 = await smtAlice.generateCircomVerifierProof( - input1, - ZERO_HASH, - ); - const proof2 = await smtAlice.generateCircomVerifierProof( - input2, - ZERO_HASH, - ); - - // create two output UTXOs, they share the same salt, and different owner - const salt3 = newSalt(); - const output1 = poseidonHash([ - BigInt(outputValues[0]), - salt3, ...Alice.pubKey, ]); - const outputCommitments = [output1]; + const commitments = [input1, input2]; const startTime = Date.now(); const witness = await circuit.calculateWTNSBin( { - nullifiers, - inputCommitments, - inputValues, - inputSalts: [salt1, salt2], - inputOwnerPrivateKey: senderPrivateKey, - root: proof1.root.bigInt(), - merkleProof: [ - proof1.siblings.map((s) => s.bigInt()), - proof2.siblings.map((s) => s.bigInt()), - ], - enabled: [1, 1], - outputCommitments, - outputValues, - outputSalts: [salt3], - outputOwnerPublicKeys: [Alice.pubKey], + commitments, + values, + salts: [salt1, salt2], + ownerPrivateKey: senderPrivateKey, }, true, ); @@ -147,17 +88,16 @@ describe("check_utxos_owner circuit tests", () => { // console.log('outputCommitments', outputCommitments); // console.log('root', proof1.root.bigInt()); // console.log("public signals", publicSignals); - const tamperedOutputHash = poseidonHash([ - BigInt(100), - salt3, + const tamperedCommitment = poseidonHash([ + BigInt(values[0] + 1), + salt1, ...Alice.pubKey, ]); let tamperedPublicSignals = publicSignals.map((ps) => - ps.toString() === outputCommitments[0].toString() - ? tamperedOutputHash + ps.toString() === commitments[0].toString() + ? tamperedCommitment : ps, ); - // console.log("tampered public signals", tamperedPublicSignals); verifyResult = await groth16.verify( verificationKey, From e5715696babdf9d856c68e8778304923f403637d Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Fri, 13 Dec 2024 16:32:09 -0500 Subject: [PATCH 08/20] fix deploy arguments for nf tokens Signed-off-by: Jim Zhang --- solidity/contracts/factory.sol | 2 +- solidity/ignition/modules/zeto_nf_anon.ts | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/solidity/contracts/factory.sol b/solidity/contracts/factory.sol index 1c058b4..2e94eb0 100644 --- a/solidity/contracts/factory.sol +++ b/solidity/contracts/factory.sol @@ -29,10 +29,10 @@ contract ZetoTokenFactory is Ownable { address implementation; address depositVerifier; address withdrawVerifier; + address lockVerifier; address verifier; address batchVerifier; address batchWithdrawVerifier; - address lockVerifier; address batchLockVerifier; } diff --git a/solidity/ignition/modules/zeto_nf_anon.ts b/solidity/ignition/modules/zeto_nf_anon.ts index 2f31221..3961ec7 100644 --- a/solidity/ignition/modules/zeto_nf_anon.ts +++ b/solidity/ignition/modules/zeto_nf_anon.ts @@ -17,7 +17,6 @@ import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; import { NfLockVerifierModule, - BatchLockVerifierModule, } from "./lib/deps"; const VerifierModule = buildModule("Groth16Verifier_NfAnon", (m) => { const verifier = m.contract("Groth16Verifier_NfAnon", []); @@ -27,8 +26,6 @@ const VerifierModule = buildModule("Groth16Verifier_NfAnon", (m) => { export default buildModule("Zeto_NfAnon", (m) => { const { verifier } = m.useModule(VerifierModule); const { verifier: lockVerifier } = m.useModule(NfLockVerifierModule); - // TODO: update this to use the correct batch verifier - const { verifier: batchLockVerifier } = m.useModule(BatchLockVerifierModule); - return { verifier, lockVerifier, batchLockVerifier }; + return { verifier, lockVerifier }; }); From 655568696e084c01770ef61938fcbdc1264443fc Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Fri, 13 Dec 2024 18:27:32 -0500 Subject: [PATCH 09/20] add temp debug for build failures Signed-off-by: Jim Zhang --- solidity/test/lib/deploy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/solidity/test/lib/deploy.ts b/solidity/test/lib/deploy.ts index d95b25c..711e8cf 100644 --- a/solidity/test/lib/deploy.ts +++ b/solidity/test/lib/deploy.ts @@ -48,6 +48,7 @@ export async function deployZeto(tokenName: string) { ? deployFungibleCloneable : deployNonFungibleCloneable; const result = await deployFunc(tokenName); + console.log("deployFunc result: ", JSON.stringify(result, null, 2)); ({ deployer, zetoImpl, erc20, args } = result as any); const [ deployerAddr, @@ -82,7 +83,7 @@ export async function deployZeto(tokenName: string) { batchLockVerifier: batchLockVerifier || "0x0000000000000000000000000000000000000000", }; - // console.log(implInfo); + console.log("impl info: ", JSON.stringify(implInfo, null, 2)); const tx1 = await factory .connect(deployer) .registerImplementation(tokenName, implInfo as any); From 2c3e110950787a88578e069ab9c7b789dc2579b4 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Mon, 16 Dec 2024 12:36:36 -0500 Subject: [PATCH 10/20] protect lock states from withdrarw() calls Signed-off-by: Jim Zhang --- .../contracts/lib/interfaces/izeto_base.sol | 3 ++ .../contracts/lib/interfaces/izeto_common.sol | 22 ++++++++++++ .../lib/interfaces/izeto_encrypted.sol | 4 +-- solidity/contracts/lib/zeto_common.sol | 11 ++---- solidity/contracts/lib/zeto_lock.sol | 6 ++-- solidity/contracts/zeto_anon.sol | 19 ++++------ solidity/contracts/zeto_anon_enc.sol | 18 ++++------ .../contracts/zeto_anon_enc_nullifier.sol | 18 ++++------ .../contracts/zeto_anon_enc_nullifier_kyc.sol | 19 +++++----- ...eto_anon_enc_nullifier_non_repudiation.sol | 18 ++++------ solidity/contracts/zeto_anon_nullifier.sol | 18 ++++------ .../contracts/zeto_anon_nullifier_kyc.sol | 18 ++++------ solidity/contracts/zeto_nf_anon.sol | 14 +++----- solidity/contracts/zeto_nf_anon_nullifier.sol | 5 +-- solidity/scripts/tokens/Zeto_NfAnon.ts | 6 +++- .../scripts/tokens/Zeto_NfAnonNullifier.ts | 6 +++- solidity/test/lib/deploy.ts | 7 ++-- solidity/test/zeto_anon.ts | 17 +++++++-- solidity/test/zeto_anon_enc.ts | 15 ++++++-- solidity/test/zeto_anon_enc_nullifier.ts | 36 ++++++++++++++++++- solidity/test/zeto_anon_nullifier.ts | 36 ++++++++++++++++++- 21 files changed, 198 insertions(+), 118 deletions(-) create mode 100644 solidity/contracts/lib/interfaces/izeto_common.sol diff --git a/solidity/contracts/lib/interfaces/izeto_base.sol b/solidity/contracts/lib/interfaces/izeto_base.sol index d9d37bb..7a06370 100644 --- a/solidity/contracts/lib/interfaces/izeto_base.sol +++ b/solidity/contracts/lib/interfaces/izeto_base.sol @@ -24,4 +24,7 @@ interface IZetoBase { address indexed submitter, bytes data ); + error UTXONotMinted(uint256 utxo); + error UTXOAlreadyOwned(uint256 utxo); + error UTXOAlreadySpent(uint256 utxo); } diff --git a/solidity/contracts/lib/interfaces/izeto_common.sol b/solidity/contracts/lib/interfaces/izeto_common.sol new file mode 100644 index 0000000..75b9e24 --- /dev/null +++ b/solidity/contracts/lib/interfaces/izeto_common.sol @@ -0,0 +1,22 @@ +// Copyright © 2024 Kaleido, Inc. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +pragma solidity ^0.8.20; + +uint256 constant MAX_BATCH = 10; +interface IZetoCommon { + error UTXODuplicate(uint256 utxo); + error UTXOArrayTooLarge(uint256 maxAllowed); +} diff --git a/solidity/contracts/lib/interfaces/izeto_encrypted.sol b/solidity/contracts/lib/interfaces/izeto_encrypted.sol index a3627df..e7995d5 100644 --- a/solidity/contracts/lib/interfaces/izeto_encrypted.sol +++ b/solidity/contracts/lib/interfaces/izeto_encrypted.sol @@ -15,9 +15,7 @@ // limitations under the License. pragma solidity ^0.8.20; -import {IZetoBase} from "./izeto_base.sol"; - -interface IZetoEncrypted is IZetoBase { +interface IZetoEncrypted { event UTXOTransferWithEncryptedValues( uint256[] inputs, uint256[] outputs, diff --git a/solidity/contracts/lib/zeto_common.sol b/solidity/contracts/lib/zeto_common.sol index 30d9dcf..b22e87c 100644 --- a/solidity/contracts/lib/zeto_common.sol +++ b/solidity/contracts/lib/zeto_common.sol @@ -16,21 +16,14 @@ pragma solidity ^0.8.20; import {Commonlib} from "./common.sol"; +import {IZetoCommon} from "./interfaces/izeto_common.sol"; import {Arrays} from "@openzeppelin/contracts/utils/Arrays.sol"; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; /// @title A sample base implementation of a Zeto based token contract /// @author Kaleido, Inc. /// @dev Implements common functionalities of Zeto based tokens -abstract contract ZetoCommon is OwnableUpgradeable { - uint256 public constant MAX_BATCH = 10; - error UTXONotMinted(uint256 utxo); - error UTXOAlreadyOwned(uint256 utxo); - error UTXOAlreadySpent(uint256 utxo); - error UTXODuplicate(uint256 utxo); - error IdentityNotRegistered(address addr); - error UTXOArrayTooLarge(uint256 maxAllowed); - +abstract contract ZetoCommon is IZetoCommon, OwnableUpgradeable { function __ZetoCommon_init(address initialOwner) internal onlyInitializing { __Ownable_init(initialOwner); } diff --git a/solidity/contracts/lib/zeto_lock.sol b/solidity/contracts/lib/zeto_lock.sol index 70d5a61..e4ef438 100644 --- a/solidity/contracts/lib/zeto_lock.sol +++ b/solidity/contracts/lib/zeto_lock.sol @@ -36,10 +36,10 @@ abstract contract ZetoLock is IZetoBase, IZetoLockable, OwnableUpgradeable { IBatchLockVerifier internal batchLockVerifier; function __ZetoLock_init( - address _lockVerifier, - address _batchLockVerifier + ILockVerifier _lockVerifier, + IBatchLockVerifier _batchLockVerifier ) public onlyInitializing { - lockVerifier = ILockVerifier(_lockVerifier); + lockVerifier = _lockVerifier; batchLockVerifier = IBatchLockVerifier(_batchLockVerifier); } diff --git a/solidity/contracts/zeto_anon.sol b/solidity/contracts/zeto_anon.sol index 99c4c59..4e056a7 100644 --- a/solidity/contracts/zeto_anon.sol +++ b/solidity/contracts/zeto_anon.sol @@ -16,7 +16,8 @@ pragma solidity ^0.8.20; import {IZeto} from "./lib/interfaces/izeto.sol"; -import {ILockVerifier} from "./lib/interfaces/izeto_lockable.sol"; +import {MAX_BATCH} from "./lib/interfaces/izeto_common.sol"; +import {ILockVerifier, IBatchLockVerifier} from "./lib/interfaces/izeto_lockable.sol"; import {Groth16Verifier_CheckHashesValue} from "./lib/verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckInputsOutputsValue} from "./lib/verifier_check_inputs_outputs_value.sol"; import {Groth16Verifier_CheckInputsOutputsValueBatch} from "./lib/verifier_check_inputs_outputs_value_batch.sol"; @@ -58,8 +59,8 @@ contract Zeto_Anon is Groth16Verifier_CheckInputsOutputsValue _withdrawVerifier, Groth16Verifier_AnonBatch _batchVerifier, Groth16Verifier_CheckInputsOutputsValueBatch _batchWithdrawVerifier, - address _lockVerifier, - address _batchLockVerifier + ILockVerifier _lockVerifier, + IBatchLockVerifier _batchLockVerifier ) public initializer { __ZetoBase_init(initialOwner); __ZetoFungibleWithdraw_init( @@ -113,15 +114,8 @@ contract Zeto_Anon is // Check and pad inputs and outputs based on the max size (inputs, outputs) = checkAndPadCommitments(inputs, outputs, MAX_BATCH); - require( - validateTransactionProposal(inputs, outputs), - "Invalid transaction proposal" - ); - - require( - validateLockedStates(inputs), - "At least one UTXO in the inputs are locked" - ); + validateTransactionProposal(inputs, outputs); + validateLockedStates(inputs); // Check the proof if (inputs.length > 2 || outputs.length > 2) { @@ -197,6 +191,7 @@ contract Zeto_Anon is outputs[0] = output; (inputs, outputs) = checkAndPadCommitments(inputs, outputs, MAX_BATCH); validateTransactionProposal(inputs, outputs); + validateLockedStates(inputs); _withdraw(amount, inputs, output, proof); processInputsAndOutputs(inputs, outputs); emit UTXOWithdraw(amount, inputs, output, msg.sender, data); diff --git a/solidity/contracts/zeto_anon_enc.sol b/solidity/contracts/zeto_anon_enc.sol index aa673cd..3d4e134 100644 --- a/solidity/contracts/zeto_anon_enc.sol +++ b/solidity/contracts/zeto_anon_enc.sol @@ -16,6 +16,8 @@ pragma solidity ^0.8.20; import {IZetoEncrypted} from "./lib/interfaces/izeto_encrypted.sol"; +import {ILockVerifier, IBatchLockVerifier} from "./lib/interfaces/izeto_lockable.sol"; +import {MAX_BATCH} from "./lib/interfaces/izeto_common.sol"; import {Groth16Verifier_CheckHashesValue} from "./lib/verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckInputsOutputsValue} from "./lib/verifier_check_inputs_outputs_value.sol"; import {Groth16Verifier_CheckInputsOutputsValueBatch} from "./lib/verifier_check_inputs_outputs_value_batch.sol"; @@ -59,8 +61,8 @@ contract Zeto_AnonEnc is Groth16Verifier_CheckInputsOutputsValue _withdrawVerifier, Groth16Verifier_AnonEncBatch _batchVerifier, Groth16Verifier_CheckInputsOutputsValueBatch _batchWithdrawVerifier, - address _lockVerifier, - address _batchLockVerifier + ILockVerifier _lockVerifier, + IBatchLockVerifier _batchLockVerifier ) public initializer { __ZetoBase_init(initialOwner); __ZetoFungibleWithdraw_init( @@ -131,15 +133,8 @@ contract Zeto_AnonEnc is ) public returns (bool) { // Check and pad commitments (inputs, outputs) = checkAndPadCommitments(inputs, outputs, MAX_BATCH); - require( - validateTransactionProposal(inputs, outputs), - "Invalid transaction proposal" - ); - - require( - validateLockedStates(inputs), - "At least one UTXO in the inputs are locked" - ); + validateTransactionProposal(inputs, outputs); + validateLockedStates(inputs); // Check the proof if (inputs.length > 2 || outputs.length > 2) { @@ -236,6 +231,7 @@ contract Zeto_AnonEnc is // Check and pad commitments (inputs, outputs) = checkAndPadCommitments(inputs, outputs, MAX_BATCH); validateTransactionProposal(inputs, outputs); + validateLockedStates(inputs); _withdraw(amount, inputs, output, proof); processInputsAndOutputs(inputs, outputs); emit UTXOWithdraw(amount, inputs, output, msg.sender, data); diff --git a/solidity/contracts/zeto_anon_enc_nullifier.sol b/solidity/contracts/zeto_anon_enc_nullifier.sol index e9aff2e..3593094 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier.sol @@ -16,6 +16,8 @@ pragma solidity ^0.8.20; import {IZetoEncrypted} from "./lib/interfaces/izeto_encrypted.sol"; +import {MAX_BATCH} from "./lib/interfaces/izeto_common.sol"; +import {ILockVerifier, IBatchLockVerifier} from "./lib/interfaces/izeto_lockable.sol"; import {Groth16Verifier_CheckHashesValue} from "./lib/verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckNullifierValue} from "./lib/verifier_check_nullifier_value.sol"; import {Groth16Verifier_CheckNullifierValueBatch} from "./lib/verifier_check_nullifier_value_batch.sol"; @@ -56,8 +58,8 @@ contract Zeto_AnonEncNullifier is Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonEncNullifierBatch _batchVerifier, Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - address _lockVerifier, - address _batchLockVerifier + ILockVerifier _lockVerifier, + IBatchLockVerifier _batchLockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( @@ -144,15 +146,8 @@ contract Zeto_AnonEncNullifier is outputs, MAX_BATCH ); - require( - validateTransactionProposal(nullifiers, outputs, root), - "Invalid transaction proposal" - ); - - require( - validateLockedStates(nullifiers), - "At least one UTXO in the input nullifiers are locked" - ); + validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { @@ -257,6 +252,7 @@ contract Zeto_AnonEncNullifier is MAX_BATCH ); validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); _withdrawWithNullifiers(amount, nullifiers, output, root, proof); processInputsAndOutputs(nullifiers, outputs); emit UTXOWithdraw(amount, nullifiers, output, msg.sender, data); diff --git a/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol b/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol index 5175596..8f8c533 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol @@ -16,6 +16,8 @@ pragma solidity ^0.8.20; import {IZetoEncrypted} from "./lib/interfaces/izeto_encrypted.sol"; +import {ILockVerifier, IBatchLockVerifier} from "./lib/interfaces/izeto_lockable.sol"; +import {MAX_BATCH} from "./lib/interfaces/izeto_common.sol"; import {Groth16Verifier_CheckHashesValue} from "./lib/verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckNullifierValue} from "./lib/verifier_check_nullifier_value.sol"; import {Groth16Verifier_CheckNullifierValueBatch} from "./lib/verifier_check_nullifier_value_batch.sol"; @@ -58,8 +60,8 @@ contract Zeto_AnonEncNullifierKyc is Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonEncNullifierKycBatch _batchVerifier, Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - address _lockVerifier, - address _batchLockVerifier + ILockVerifier _lockVerifier, + IBatchLockVerifier _batchLockVerifier ) public initializer { __Registry_init(); __ZetoNullifier_init(initialOwner); @@ -154,15 +156,8 @@ contract Zeto_AnonEncNullifierKyc is outputs, MAX_BATCH ); - require( - validateTransactionProposal(nullifiers, outputs, root), - "Invalid transaction proposal" - ); - - require( - validateLockedStates(nullifiers), - "At least one UTXO in the input nullifiers are locked" - ); + validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { @@ -272,6 +267,8 @@ contract Zeto_AnonEncNullifierKyc is MAX_BATCH ); validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); + _withdrawWithNullifiers(amount, nullifiers, output, root, proof); processInputsAndOutputs(nullifiers, outputs); emit UTXOWithdraw(amount, nullifiers, output, msg.sender, data); diff --git a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol index b204e97..a692585 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol @@ -21,6 +21,8 @@ import {Groth16Verifier_CheckNullifierValue} from "./lib/verifier_check_nullifie import {Groth16Verifier_CheckNullifierValueBatch} from "./lib/verifier_check_nullifier_value_batch.sol"; import {Groth16Verifier_AnonEncNullifierNonRepudiation} from "./lib/verifier_anon_enc_nullifier_non_repudiation.sol"; import {Groth16Verifier_AnonEncNullifierNonRepudiationBatch} from "./lib/verifier_anon_enc_nullifier_non_repudiation_batch.sol"; +import {MAX_BATCH} from "./lib/interfaces/izeto_common.sol"; +import {ILockVerifier, IBatchLockVerifier} from "./lib/interfaces/izeto_lockable.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoFungibleWithdrawWithNullifiers} from "./lib/zeto_fungible_withdraw_nullifier.sol"; import {ZetoLock} from "./lib/zeto_lock.sol"; @@ -68,8 +70,8 @@ contract Zeto_AnonEncNullifierNonRepudiation is Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonEncNullifierNonRepudiationBatch _batchVerifier, Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - address _lockVerifier, - address _batchLockVerifier + ILockVerifier _lockVerifier, + IBatchLockVerifier _batchLockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( @@ -177,15 +179,8 @@ contract Zeto_AnonEncNullifierNonRepudiation is outputs, MAX_BATCH ); - require( - validateTransactionProposal(nullifiers, outputs, root), - "Invalid transaction proposal" - ); - - require( - validateLockedStates(nullifiers), - "At least one UTXO in the input nullifiers are locked" - ); + validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { @@ -307,6 +302,7 @@ contract Zeto_AnonEncNullifierNonRepudiation is MAX_BATCH ); validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); _withdrawWithNullifiers(amount, nullifiers, output, root, proof); processInputsAndOutputs(nullifiers, outputs); emit UTXOWithdraw(amount, nullifiers, output, msg.sender, data); diff --git a/solidity/contracts/zeto_anon_nullifier.sol b/solidity/contracts/zeto_anon_nullifier.sol index 81e113a..4f38700 100644 --- a/solidity/contracts/zeto_anon_nullifier.sol +++ b/solidity/contracts/zeto_anon_nullifier.sol @@ -16,6 +16,8 @@ pragma solidity ^0.8.20; import {IZeto} from "./lib/interfaces/izeto.sol"; +import {MAX_BATCH} from "./lib/interfaces/izeto_common.sol"; +import {ILockVerifier, IBatchLockVerifier} from "./lib/interfaces/izeto_lockable.sol"; import {Groth16Verifier_CheckHashesValue} from "./lib/verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckNullifierValue} from "./lib/verifier_check_nullifier_value.sol"; import {Groth16Verifier_CheckNullifierValueBatch} from "./lib/verifier_check_nullifier_value_batch.sol"; @@ -55,8 +57,8 @@ contract Zeto_AnonNullifier is Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonNullifierBatch _batchVerifier, Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - address _lockVerifier, - address _batchLockVerifier + ILockVerifier _lockVerifier, + IBatchLockVerifier _batchLockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( @@ -124,15 +126,8 @@ contract Zeto_AnonNullifier is MAX_BATCH ); - require( - validateTransactionProposal(nullifiers, outputs, root), - "Invalid transaction proposal" - ); - - require( - validateLockedStates(nullifiers), - "At least one UTXO in the input nullifiers are locked" - ); + validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { @@ -221,6 +216,7 @@ contract Zeto_AnonNullifier is MAX_BATCH ); validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); _withdrawWithNullifiers(amount, nullifiers, output, root, proof); processInputsAndOutputs(nullifiers, outputs); emit UTXOWithdraw(amount, nullifiers, output, msg.sender, data); diff --git a/solidity/contracts/zeto_anon_nullifier_kyc.sol b/solidity/contracts/zeto_anon_nullifier_kyc.sol index 41c1e1c..52902b0 100644 --- a/solidity/contracts/zeto_anon_nullifier_kyc.sol +++ b/solidity/contracts/zeto_anon_nullifier_kyc.sol @@ -16,6 +16,8 @@ pragma solidity ^0.8.20; import {IZeto} from "./lib/interfaces/izeto.sol"; +import {MAX_BATCH} from "./lib/interfaces/izeto_common.sol"; +import {ILockVerifier, IBatchLockVerifier} from "./lib/interfaces/izeto_lockable.sol"; import {Groth16Verifier_CheckHashesValue} from "./lib/verifier_check_hashes_value.sol"; import {Groth16Verifier_CheckNullifierValue} from "./lib/verifier_check_nullifier_value.sol"; import {Groth16Verifier_CheckNullifierValueBatch} from "./lib/verifier_check_nullifier_value_batch.sol"; @@ -58,8 +60,8 @@ contract Zeto_AnonNullifierKyc is Groth16Verifier_CheckNullifierValue _withdrawVerifier, Groth16Verifier_AnonNullifierKycBatch _batchVerifier, Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - address _lockVerifier, - address _batchLockVerifier + ILockVerifier _lockVerifier, + IBatchLockVerifier _batchLockVerifier ) public initializer { __Registry_init(); __ZetoNullifier_init(initialOwner); @@ -135,15 +137,8 @@ contract Zeto_AnonNullifierKyc is MAX_BATCH ); - require( - validateTransactionProposal(nullifiers, outputs, root), - "Invalid transaction proposal" - ); - - require( - validateLockedStates(nullifiers), - "At least one UTXO in the input nullifiers are locked" - ); + validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); // Check the proof if (nullifiers.length > 2 || outputs.length > 2) { @@ -232,6 +227,7 @@ contract Zeto_AnonNullifierKyc is MAX_BATCH ); validateTransactionProposal(nullifiers, outputs, root); + validateLockedStates(nullifiers); _withdrawWithNullifiers(amount, nullifiers, output, root, proof); processInputsAndOutputs(nullifiers, outputs); emit UTXOWithdraw(amount, nullifiers, output, msg.sender, data); diff --git a/solidity/contracts/zeto_nf_anon.sol b/solidity/contracts/zeto_nf_anon.sol index 953c6d7..81eef66 100644 --- a/solidity/contracts/zeto_nf_anon.sol +++ b/solidity/contracts/zeto_nf_anon.sol @@ -17,7 +17,7 @@ pragma solidity ^0.8.20; import {IZeto} from "./lib/interfaces/izeto.sol"; import {Groth16Verifier_CheckUtxosNfOwner} from "./lib/verifier_check_utxos_nf_owner.sol"; -import {IZetoLockable} from "./lib/interfaces/izeto_lockable.sol"; +import {ILockVerifier, IBatchLockVerifier} from "./lib/interfaces/izeto_lockable.sol"; import {Groth16Verifier_NfAnon} from "./lib/verifier_nf_anon.sol"; import {ZetoBase} from "./lib/zeto_base.sol"; @@ -31,22 +31,16 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/U /// - The sender owns the private key whose public key is part of the pre-image of the input UTXOs commitments /// (aka the sender is authorized to spend the input UTXOs) /// - The input UTXOs and output UTXOs are valid in terms of obeying mass conservation rules -contract Zeto_NfAnon is - IZeto, - IZetoLockable, - ZetoBase, - ZetoLock, - UUPSUpgradeable -{ +contract Zeto_NfAnon is IZeto, ZetoBase, ZetoLock, UUPSUpgradeable { Groth16Verifier_NfAnon internal verifier; function initialize( address initialOwner, Groth16Verifier_NfAnon _verifier, - address _lockVerifier + ILockVerifier _lockVerifier ) public initializer { __ZetoBase_init(initialOwner); - __ZetoLock_init(_lockVerifier, address(0)); + __ZetoLock_init(_lockVerifier, IBatchLockVerifier(address(0))); verifier = _verifier; } diff --git a/solidity/contracts/zeto_nf_anon_nullifier.sol b/solidity/contracts/zeto_nf_anon_nullifier.sol index 5581321..8cc7d24 100644 --- a/solidity/contracts/zeto_nf_anon_nullifier.sol +++ b/solidity/contracts/zeto_nf_anon_nullifier.sol @@ -16,6 +16,7 @@ pragma solidity ^0.8.20; import {IZeto} from "./lib/interfaces/izeto.sol"; +import {ILockVerifier, IBatchLockVerifier} from "./lib/interfaces/izeto_lockable.sol"; import {Groth16Verifier_NfAnonNullifier} from "./lib/verifier_nf_anon_nullifier.sol"; import {ZetoNullifier} from "./lib/zeto_nullifier.sol"; import {ZetoLock} from "./lib/zeto_lock.sol"; @@ -41,10 +42,10 @@ contract Zeto_NfAnonNullifier is function initialize( address initialOwner, Groth16Verifier_NfAnonNullifier _verifier, - address _lockVerifier + ILockVerifier _lockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); - __ZetoLock_init(_lockVerifier, address(0)); + __ZetoLock_init(_lockVerifier, IBatchLockVerifier(address(0))); verifier = _verifier; } diff --git a/solidity/scripts/tokens/Zeto_NfAnon.ts b/solidity/scripts/tokens/Zeto_NfAnon.ts index 50e3648..18e4819 100644 --- a/solidity/scripts/tokens/Zeto_NfAnon.ts +++ b/solidity/scripts/tokens/Zeto_NfAnon.ts @@ -23,6 +23,10 @@ export async function deployDependencies() { const { verifier, lockVerifier } = await ignition.deploy(zetoModule); return { deployer, - args: [await deployer.getAddress(), verifier.target, lockVerifier.target], + args: [ + await deployer.getAddress(), + verifier.target, + lockVerifier.target, + ], }; } diff --git a/solidity/scripts/tokens/Zeto_NfAnonNullifier.ts b/solidity/scripts/tokens/Zeto_NfAnonNullifier.ts index 02c20df..5970da2 100644 --- a/solidity/scripts/tokens/Zeto_NfAnonNullifier.ts +++ b/solidity/scripts/tokens/Zeto_NfAnonNullifier.ts @@ -23,7 +23,11 @@ export async function deployDependencies() { const { verifier, lockVerifier, smtLib, poseidon3 } = await ignition.deploy(zetoModule); return { deployer, - args: [await deployer.getAddress(), verifier.target, lockVerifier.target], + args: [ + await deployer.getAddress(), + verifier.target, + lockVerifier.target, + ], libraries: { SmtLib: smtLib.target, PoseidonUnit3L: poseidon3.target, diff --git a/solidity/test/lib/deploy.ts b/solidity/test/lib/deploy.ts index 711e8cf..7828153 100644 --- a/solidity/test/lib/deploy.ts +++ b/solidity/test/lib/deploy.ts @@ -48,9 +48,8 @@ export async function deployZeto(tokenName: string) { ? deployFungibleCloneable : deployNonFungibleCloneable; const result = await deployFunc(tokenName); - console.log("deployFunc result: ", JSON.stringify(result, null, 2)); ({ deployer, zetoImpl, erc20, args } = result as any); - const [ + let [ deployerAddr, verifier, depositVerifier, @@ -60,6 +59,9 @@ export async function deployZeto(tokenName: string) { lockVerifier, batchLockVerifier, ] = args; + if (!isFungible) { + ({ deployerAddr, verifier, lockVerifier } = args); + } // we want to test the effectiveness of the factory contract // to create clones of the Zeto implementation contract @@ -83,7 +85,6 @@ export async function deployZeto(tokenName: string) { batchLockVerifier: batchLockVerifier || "0x0000000000000000000000000000000000000000", }; - console.log("impl info: ", JSON.stringify(implInfo, null, 2)); const tx1 = await factory .connect(deployer) .registerImplementation(tokenName, implInfo as any); diff --git a/solidity/test/zeto_anon.ts b/solidity/test/zeto_anon.ts index 6419b67..45a3256 100644 --- a/solidity/test/zeto_anon.ts +++ b/solidity/test/zeto_anon.ts @@ -414,10 +414,21 @@ describe("Zeto based fungible token with anonymity without encryption or nullifi )).rejectedWith(`UTXOAlreadyLocked(${utxo7.hash.toString()})`); }); - it("the original owner can NOT use the proper proof to spend the locked state", async function () { + it("the original owner can NOT spend the locked state", async function () { const utxo8 = newUTXO(15, Alice); - const { inputCommitments, outputCommitments, encodedProof } = await prepareProof(circuit, provingKey, Bob, [utxo7, ZERO_UTXO], [utxo8, ZERO_UTXO], [Alice, Alice]); - await expect(sendTx(Bob, inputCommitments, outputCommitments, encodedProof)).to.be.rejectedWith("UTXOAlreadyLocked"); + await expect(doTransfer(Bob, [utxo7, ZERO_UTXO], [utxo8, ZERO_UTXO], [Alice, Alice])).to.be.rejectedWith("UTXOAlreadyLocked"); + }); + + it("the original owner can NOT withdraw the locked state", async function () { + const outputCommitment = newUTXO(5, Bob); + + const { inputCommitments, outputCommitments, encodedProof } = + await prepareWithdrawProof(Bob, [utxo7, ZERO_UTXO], outputCommitment); + + // Alice withdraws her UTXOs to ERC20 tokens + await expect(zeto + .connect(Bob.signer) + .withdraw(10, inputCommitments, outputCommitments[0], encodedProof, "0x")).to.be.rejectedWith("UTXOAlreadyLocked"); }); it("the designated delegate can use the proper proof to spend the locked state", async function () { diff --git a/solidity/test/zeto_anon_enc.ts b/solidity/test/zeto_anon_enc.ts index cc11bb5..6fff404 100644 --- a/solidity/test/zeto_anon_enc.ts +++ b/solidity/test/zeto_anon_enc.ts @@ -402,11 +402,20 @@ describe("Zeto based fungible token with anonymity and encryption", function () )).rejectedWith(`UTXOAlreadyLocked(${utxo4.hash.toString()})`); }); - it("the original owner can NOT use the proper proof to spend the locked state", async function () { + it("the original owner can NOT spend the locked state", async function () { const utxo8 = newUTXO(5, Charlie); const ephemeralKeypair = genKeypair(); - const { inputCommitments, outputCommitments, encodedProof, encryptedValues, encryptionNonce } = await prepareProof(Alice, [utxo4, ZERO_UTXO], [utxo8, ZERO_UTXO], [Charlie, Alice], ephemeralKeypair.privKey); - await expect(sendTx(Alice, inputCommitments, outputCommitments, encryptedValues, encryptionNonce, encodedProof, ephemeralKeypair.pubKey)).to.be.rejectedWith("UTXOAlreadyLocked"); + await expect(doTransfer(Alice, [utxo4, ZERO_UTXO], [utxo8, ZERO_UTXO], [Charlie, Alice])).to.be.rejectedWith("UTXOAlreadyLocked"); + }); + + it("the original owner can NOT withdraw the locked state", async function () { + const utxo8 = newUTXO(0, Alice); + const { inputCommitments, outputCommitments, encodedProof } = + await prepareWithdrawProof(Alice, [utxo4, ZERO_UTXO], utxo8); + + await expect(zeto + .connect(Alice.signer) + .withdraw(5, inputCommitments, outputCommitments[0], encodedProof, "0x")).to.be.rejectedWith("UTXOAlreadyLocked"); }); it("the designated delegate can use the proper proof to spend the locked state", async function () { diff --git a/solidity/test/zeto_anon_enc_nullifier.ts b/solidity/test/zeto_anon_enc_nullifier.ts index b76adcf..7d82b45 100644 --- a/solidity/test/zeto_anon_enc_nullifier.ts +++ b/solidity/test/zeto_anon_enc_nullifier.ts @@ -506,7 +506,7 @@ describe("Zeto based fungible token with anonymity using nullifiers and encrypti )).rejectedWith(`UTXOAlreadyLocked(${nullifier1.hash.toString()})`); }); - it("the original owner can NOT use the proper proof to spend the locked state", async function () { + it("the original owner can NOT spend the locked state", async function () { // Alice generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation const root = await smtAlice.root(); const proof1 = await smtAlice.generateCircomVerifierProof(utxo4.hash, root); @@ -531,6 +531,40 @@ describe("Zeto based fungible token with anonymity using nullifiers and encrypti )).to.be.rejectedWith("UTXOAlreadyLocked"); }); + it("the original owner can NOT withdraw the locked state", async function () { + // Alice generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation + const root = await smtAlice.root(); + const proof1 = await smtAlice.generateCircomVerifierProof(utxo4.hash, root); + const proof2 = await smtAlice.generateCircomVerifierProof(0n, root); + const merkleProofs = [ + proof1.siblings.map((s) => s.bigInt()), + proof2.siblings.map((s) => s.bigInt()), + ]; + + const utxo9 = newUTXO(0, Alice); + + const { nullifiers, outputCommitments, encodedProof } = + await prepareNullifierWithdrawProof( + Alice, + [utxo4, ZERO_UTXO], + [nullifier1, ZERO_UTXO], + utxo9, + root.bigInt(), + merkleProofs, + ); + + await expect(zeto + .connect(Alice.signer) + .withdraw( + 80, + nullifiers, + outputCommitments[0], + root.bigInt(), + encodedProof, + "0x", + )).to.be.rejectedWith("UTXOAlreadyLocked"); + }); + it("the designated delegate can use the proper proof to spend the locked state", async function () { // Alice generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation const root = await smtAlice.root(); diff --git a/solidity/test/zeto_anon_nullifier.ts b/solidity/test/zeto_anon_nullifier.ts index 9503996..b96f4d5 100644 --- a/solidity/test/zeto_anon_nullifier.ts +++ b/solidity/test/zeto_anon_nullifier.ts @@ -479,7 +479,7 @@ describe("Zeto based fungible token with anonymity using nullifiers without encr )).rejectedWith(`UTXOAlreadyLocked(${nullifier1.hash.toString()})`); }); - it("the original owner can NOT use the proper proof to spend the locked state", async function () { + it("the original owner can NOT spend the locked state", async function () { // Bob generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation const root = await smtBob.root(); const proof1 = await smtBob.generateCircomVerifierProof(utxo7.hash, root); @@ -504,6 +504,40 @@ describe("Zeto based fungible token with anonymity using nullifiers without encr )).to.be.rejectedWith("UTXOAlreadyLocked"); }); + it("the original owner can NOT withdraw the locked state", async function () { + // Bob generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation + const root = await smtBob.root(); + const proof1 = await smtBob.generateCircomVerifierProof(utxo7.hash, root); + const proof2 = await smtBob.generateCircomVerifierProof(0n, root); + const merkleProofs = [ + proof1.siblings.map((s) => s.bigInt()), + proof2.siblings.map((s) => s.bigInt()), + ]; + + const _utxo = newUTXO(5, Bob); + + const { nullifiers, outputCommitments, encodedProof } = + await prepareNullifierWithdrawProof( + Bob, + [utxo7, ZERO_UTXO], + [nullifier1, ZERO_UTXO], + _utxo, + root.bigInt(), + merkleProofs, + ); + + await expect(zeto + .connect(Bob.signer) + .withdraw( + 80, + nullifiers, + outputCommitments[0], + root.bigInt(), + encodedProof, + "0x", + )).to.be.rejectedWith("UTXOAlreadyLocked"); + }); + it("the designated delegate can use the proper proof to spend the locked state", async function () { // Bob generates inclusion proofs for the UTXOs to be spent, as private input to the proof generation const root = await smtBob.root(); From a51e34019f04b53b2a61750b83be7a4db5ba1c34 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Mon, 16 Dec 2024 12:36:58 -0500 Subject: [PATCH 11/20] change circom version to 2.2.1 Signed-off-by: Jim Zhang --- zkp/circuits/check_utxos_nf_owner.circom | 2 +- zkp/circuits/check_utxos_owner.circom | 2 +- zkp/circuits/check_utxos_owner_batch.circom | 2 +- zkp/circuits/lib/check-utxos-nf-owner.circom | 2 +- zkp/circuits/lib/check-utxos-owner.circom | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/zkp/circuits/check_utxos_nf_owner.circom b/zkp/circuits/check_utxos_nf_owner.circom index 688d7f3..4df7489 100644 --- a/zkp/circuits/check_utxos_nf_owner.circom +++ b/zkp/circuits/check_utxos_nf_owner.circom @@ -13,7 +13,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -pragma circom 2.1.9; +pragma circom 2.2.1; include "./lib/check-utxos-nf-owner.circom"; diff --git a/zkp/circuits/check_utxos_owner.circom b/zkp/circuits/check_utxos_owner.circom index 0a24b82..470ca57 100644 --- a/zkp/circuits/check_utxos_owner.circom +++ b/zkp/circuits/check_utxos_owner.circom @@ -13,7 +13,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -pragma circom 2.1.9; +pragma circom 2.2.1; include "./lib/check-utxos-owner.circom"; diff --git a/zkp/circuits/check_utxos_owner_batch.circom b/zkp/circuits/check_utxos_owner_batch.circom index f9d29e0..919b32d 100644 --- a/zkp/circuits/check_utxos_owner_batch.circom +++ b/zkp/circuits/check_utxos_owner_batch.circom @@ -13,7 +13,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -pragma circom 2.1.9; +pragma circom 2.2.1; include "./lib/check-utxos-owner.circom"; diff --git a/zkp/circuits/lib/check-utxos-nf-owner.circom b/zkp/circuits/lib/check-utxos-nf-owner.circom index a62be09..875b1f5 100644 --- a/zkp/circuits/lib/check-utxos-nf-owner.circom +++ b/zkp/circuits/lib/check-utxos-nf-owner.circom @@ -13,7 +13,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -pragma circom 2.1.9; +pragma circom 2.2.1; include "./check-hashes-tokenid-uri.circom"; include "../node_modules/circomlib/circuits/babyjub.circom"; diff --git a/zkp/circuits/lib/check-utxos-owner.circom b/zkp/circuits/lib/check-utxos-owner.circom index ea2bc72..2d54ed8 100644 --- a/zkp/circuits/lib/check-utxos-owner.circom +++ b/zkp/circuits/lib/check-utxos-owner.circom @@ -13,7 +13,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -pragma circom 2.1.9; +pragma circom 2.2.1; include "./check-hashes.circom"; include "../node_modules/circomlib/circuits/babyjub.circom"; From e02bf1c39886a2230317a34ce3c8a3e99c2ee153 Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Mon, 16 Dec 2024 13:33:47 -0500 Subject: [PATCH 12/20] fix deployment args for non-fungible tokens Signed-off-by: Jim Zhang --- solidity/test/lib/deploy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solidity/test/lib/deploy.ts b/solidity/test/lib/deploy.ts index 7828153..a2a47b7 100644 --- a/solidity/test/lib/deploy.ts +++ b/solidity/test/lib/deploy.ts @@ -60,7 +60,7 @@ export async function deployZeto(tokenName: string) { batchLockVerifier, ] = args; if (!isFungible) { - ({ deployerAddr, verifier, lockVerifier } = args); + ([deployerAddr, verifier, lockVerifier] = args); } // we want to test the effectiveness of the factory contract From 30b3715ecf56d1d7cd2ad60bd15c12a57bfeb75f Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Mon, 16 Dec 2024 16:58:32 -0500 Subject: [PATCH 13/20] rename internal var vs. public func params Signed-off-by: Jim Zhang --- go-sdk/go.mod | 2 +- go-sdk/go.sum | 2 ++ go-sdk/integration-test/e2e_test.go | 14 ++++---- solidity/contracts/lib/zeto_fungible.sol | 18 +++++----- .../contracts/lib/zeto_fungible_withdraw.sol | 23 +++++++------ .../lib/zeto_fungible_withdraw_nullifier.sol | 22 ++++++------ solidity/contracts/lib/zeto_lock.sol | 16 ++++----- solidity/contracts/zeto_anon.sol | 34 +++++++++---------- solidity/contracts/zeto_anon_enc.sol | 34 +++++++++---------- .../contracts/zeto_anon_enc_nullifier.sol | 34 +++++++++---------- .../contracts/zeto_anon_enc_nullifier_kyc.sol | 34 +++++++++---------- ...eto_anon_enc_nullifier_non_repudiation.sol | 34 +++++++++---------- solidity/contracts/zeto_anon_nullifier.sol | 34 +++++++++---------- .../contracts/zeto_anon_nullifier_kyc.sol | 34 +++++++++---------- solidity/contracts/zeto_nf_anon.sol | 12 +++---- solidity/contracts/zeto_nf_anon_nullifier.sol | 12 +++---- 16 files changed, 181 insertions(+), 178 deletions(-) diff --git a/go-sdk/go.mod b/go-sdk/go.mod index e2bb617..dca55d4 100644 --- a/go-sdk/go.mod +++ b/go-sdk/go.mod @@ -46,7 +46,7 @@ require ( github.com/iden3/go-rapidsnark/types v0.0.2 // indirect github.com/iden3/go-rapidsnark/witness/v2 v2.0.0 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - golang.org/x/crypto v0.30.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/sys v0.28.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/driver/postgres v1.5.9 diff --git a/go-sdk/go.sum b/go-sdk/go.sum index 8585f89..89887a1 100644 --- a/go-sdk/go.sum +++ b/go-sdk/go.sum @@ -90,6 +90,8 @@ github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJ github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= diff --git a/go-sdk/integration-test/e2e_test.go b/go-sdk/integration-test/e2e_test.go index 7376fda..2e28944 100644 --- a/go-sdk/integration-test/e2e_test.go +++ b/go-sdk/integration-test/e2e_test.go @@ -132,7 +132,7 @@ func (s *E2ETestSuite) TearDownSuite() { assert.NoError(s.T(), err) } -func (s *E2ETestSuite) TestZeto_1_SuccessfulProving() { +func (s *E2ETestSuite) TestZeto_anon_SuccessfulProving() { calc, provingKey, err := loadCircuit("anon") assert.NoError(s.T(), err) assert.NotNil(s.T(), calc) @@ -193,7 +193,7 @@ func (s *E2ETestSuite) TestZeto_1_SuccessfulProving() { assert.Equal(s.T(), 4, len(proof.PubSignals)) } -func (s *E2ETestSuite) TestZeto_2_SuccessfulProving() { +func (s *E2ETestSuite) TestZeto_anon_enc_SuccessfulProving() { calc, provingKey, err := loadCircuit("anon_enc") assert.NoError(s.T(), err) assert.NotNil(s.T(), calc) @@ -271,7 +271,7 @@ func (s *E2ETestSuite) TestZeto_2_SuccessfulProving() { assert.Equal(s.T(), output1.String(), calculatedHash.String()) } -func (s *E2ETestSuite) TestZeto_3_SuccessfulProving() { +func (s *E2ETestSuite) TestZeto_anon_nullifier_SuccessfulProving() { calc, provingKey, err := loadCircuit("anon_nullifier") assert.NoError(s.T(), err) assert.NotNil(s.T(), calc) @@ -355,7 +355,7 @@ func (s *E2ETestSuite) TestZeto_3_SuccessfulProving() { assert.Equal(s.T(), 7, len(proof.PubSignals)) } -func (s *E2ETestSuite) TestZeto_4_SuccessfulProving() { +func (s *E2ETestSuite) TestZeto_anon_enc_nullifier_SuccessfulProving() { calc, provingKey, err := loadCircuit("anon_enc_nullifier") assert.NoError(s.T(), err) assert.NotNil(s.T(), calc) @@ -444,7 +444,7 @@ func (s *E2ETestSuite) TestZeto_4_SuccessfulProving() { assert.Equal(s.T(), 18, len(proof.PubSignals)) } -func (s *E2ETestSuite) TestZeto_5_SuccessfulProving() { +func (s *E2ETestSuite) TestZeto_nf_anon_SuccessfulProving() { calc, provingKey, err := loadCircuit("nf_anon") assert.NoError(s.T(), err) assert.NotNil(s.T(), calc) @@ -503,7 +503,7 @@ func (s *E2ETestSuite) TestZeto_5_SuccessfulProving() { } -func (s *E2ETestSuite) TestZeto_5_SuccessfulProvingWithConcurrency() { +func (s *E2ETestSuite) TestZeto_nf_anon_SuccessfulProvingWithConcurrency() { concurrency := 10 resultChan := make(chan struct{}, concurrency) @@ -582,7 +582,7 @@ func (s *E2ETestSuite) TestZeto_5_SuccessfulProvingWithConcurrency() { } -func (s *E2ETestSuite) TestZeto_6_SuccessfulProving() { +func (s *E2ETestSuite) TestZeto_nf_anon_nullifier_SuccessfulProving() { calc, provingKey, err := loadCircuit("nf_anon_nullifier") assert.NoError(s.T(), err) assert.NotNil(s.T(), calc) diff --git a/solidity/contracts/lib/zeto_fungible.sol b/solidity/contracts/lib/zeto_fungible.sol index b35a719..9f0b867 100644 --- a/solidity/contracts/lib/zeto_fungible.sol +++ b/solidity/contracts/lib/zeto_fungible.sol @@ -25,23 +25,23 @@ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Own /// @author Kaleido, Inc. /// @dev Defines the verifier library for checking UTXOs against a claimed value. abstract contract ZetoFungible is OwnableUpgradeable { - // depositVerifier library for checking UTXOs against a claimed value. + // _depositVerifier library for checking UTXOs against a claimed value. // this can be used in the optional deposit calls to verify that // the UTXOs match the deposited value - Groth16Verifier_CheckHashesValue internal depositVerifier; + Groth16Verifier_CheckHashesValue internal _depositVerifier; error WithdrawArrayTooLarge(uint256 maxAllowed); - IERC20 internal erc20; + IERC20 internal _erc20; function __ZetoFungible_init( - Groth16Verifier_CheckHashesValue _depositVerifier + Groth16Verifier_CheckHashesValue depositVerifier ) public onlyInitializing { - depositVerifier = _depositVerifier; + _depositVerifier = depositVerifier; } - function setERC20(IERC20 _erc20) public onlyOwner { - erc20 = _erc20; + function setERC20(IERC20 erc20) public onlyOwner { + _erc20 = erc20; } function _deposit( @@ -59,7 +59,7 @@ abstract contract ZetoFungible is OwnableUpgradeable { // Check the proof require( - depositVerifier.verifyProof( + _depositVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -69,7 +69,7 @@ abstract contract ZetoFungible is OwnableUpgradeable { ); require( - erc20.transferFrom(msg.sender, address(this), amount), + _erc20.transferFrom(msg.sender, address(this), amount), "Failed to transfer ERC20 tokens" ); } diff --git a/solidity/contracts/lib/zeto_fungible_withdraw.sol b/solidity/contracts/lib/zeto_fungible_withdraw.sol index 2c8a859..2ee83b6 100644 --- a/solidity/contracts/lib/zeto_fungible_withdraw.sol +++ b/solidity/contracts/lib/zeto_fungible_withdraw.sol @@ -31,17 +31,18 @@ abstract contract ZetoFungibleWithdraw is ZetoFungible { // nullifierVerifier library for checking nullifiers against a claimed value. // this can be used in the optional withdraw calls to verify that the nullifiers // match the withdrawn value - Groth16Verifier_CheckInputsOutputsValue internal withdrawVerifier; - Groth16Verifier_CheckInputsOutputsValueBatch internal batchWithdrawVerifier; + Groth16Verifier_CheckInputsOutputsValue internal _withdrawVerifier; + Groth16Verifier_CheckInputsOutputsValueBatch + internal _batchWithdrawVerifier; function __ZetoFungibleWithdraw_init( - Groth16Verifier_CheckHashesValue _depositVerifier, - Groth16Verifier_CheckInputsOutputsValue _withdrawVerifier, - Groth16Verifier_CheckInputsOutputsValueBatch _batchWithdrawVerifier + Groth16Verifier_CheckHashesValue depositVerifier, + Groth16Verifier_CheckInputsOutputsValue withdrawVerifier, + Groth16Verifier_CheckInputsOutputsValueBatch batchWithdrawVerifier ) public onlyInitializing { - __ZetoFungible_init(_depositVerifier); - withdrawVerifier = _withdrawVerifier; - batchWithdrawVerifier = _batchWithdrawVerifier; + __ZetoFungible_init(depositVerifier); + _withdrawVerifier = withdrawVerifier; + _batchWithdrawVerifier = batchWithdrawVerifier; } function constructPublicInputs( @@ -92,7 +93,7 @@ abstract contract ZetoFungibleWithdraw is ZetoFungible { } // Check the proof require( - batchWithdrawVerifier.verifyProof( + _batchWithdrawVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -114,7 +115,7 @@ abstract contract ZetoFungibleWithdraw is ZetoFungible { } // Check the proof require( - withdrawVerifier.verifyProof( + _withdrawVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -125,7 +126,7 @@ abstract contract ZetoFungibleWithdraw is ZetoFungible { } require( - erc20.transfer(msg.sender, amount), + _erc20.transfer(msg.sender, amount), "Failed to transfer ERC20 tokens" ); } diff --git a/solidity/contracts/lib/zeto_fungible_withdraw_nullifier.sol b/solidity/contracts/lib/zeto_fungible_withdraw_nullifier.sol index f41ce00..153e0dd 100644 --- a/solidity/contracts/lib/zeto_fungible_withdraw_nullifier.sol +++ b/solidity/contracts/lib/zeto_fungible_withdraw_nullifier.sol @@ -31,17 +31,17 @@ abstract contract ZetoFungibleWithdrawWithNullifiers is ZetoFungible { // nullifierVerifier library for checking nullifiers against a claimed value. // this can be used in the optional withdraw calls to verify that the nullifiers // match the withdrawn value - Groth16Verifier_CheckNullifierValue internal withdrawVerifier; - Groth16Verifier_CheckNullifierValueBatch internal batchWithdrawVerifier; + Groth16Verifier_CheckNullifierValue internal _withdrawVerifier; + Groth16Verifier_CheckNullifierValueBatch internal _batchWithdrawVerifier; function __ZetoFungibleWithdrawWithNullifiers_init( - Groth16Verifier_CheckHashesValue _depositVerifier, - Groth16Verifier_CheckNullifierValue _withdrawVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier + Groth16Verifier_CheckHashesValue depositVerifier, + Groth16Verifier_CheckNullifierValue withdrawVerifier, + Groth16Verifier_CheckNullifierValueBatch batchWithdrawVerifier ) internal onlyInitializing { - __ZetoFungible_init(_depositVerifier); - withdrawVerifier = _withdrawVerifier; - batchWithdrawVerifier = _batchWithdrawVerifier; + __ZetoFungible_init(depositVerifier); + _withdrawVerifier = withdrawVerifier; + _batchWithdrawVerifier = batchWithdrawVerifier; } function constructPublicInputs( @@ -103,7 +103,7 @@ abstract contract ZetoFungibleWithdrawWithNullifiers is ZetoFungible { } // Check the proof require( - batchWithdrawVerifier.verifyProof( + _batchWithdrawVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -126,7 +126,7 @@ abstract contract ZetoFungibleWithdrawWithNullifiers is ZetoFungible { } // Check the proof require( - withdrawVerifier.verifyProof( + _withdrawVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -137,7 +137,7 @@ abstract contract ZetoFungibleWithdrawWithNullifiers is ZetoFungible { } require( - erc20.transfer(msg.sender, amount), + _erc20.transfer(msg.sender, amount), "Failed to transfer ERC20 tokens" ); } diff --git a/solidity/contracts/lib/zeto_lock.sol b/solidity/contracts/lib/zeto_lock.sol index e4ef438..ce2b469 100644 --- a/solidity/contracts/lib/zeto_lock.sol +++ b/solidity/contracts/lib/zeto_lock.sol @@ -32,15 +32,15 @@ abstract contract ZetoLock is IZetoBase, IZetoLockable, OwnableUpgradeable { // by the same party that did the locking. mapping(uint256 => address) internal lockedUTXOs; - ILockVerifier internal lockVerifier; - IBatchLockVerifier internal batchLockVerifier; + ILockVerifier internal _lockVerifier; + IBatchLockVerifier internal _batchLockVerifier; function __ZetoLock_init( - ILockVerifier _lockVerifier, - IBatchLockVerifier _batchLockVerifier + ILockVerifier lockVerifier, + IBatchLockVerifier batchLockVerifier ) public onlyInitializing { - lockVerifier = _lockVerifier; - batchLockVerifier = IBatchLockVerifier(_batchLockVerifier); + _lockVerifier = lockVerifier; + _batchLockVerifier = batchLockVerifier; } // should be called by escrow contracts that will use uploaded proofs @@ -112,7 +112,7 @@ abstract contract ZetoLock is IZetoBase, IZetoLockable, OwnableUpgradeable { uint256[2] memory utxos, Commonlib.Proof calldata proof ) internal view returns (bool) { - return lockVerifier.verifyProof(proof.pA, proof.pB, proof.pC, utxos); + return _lockVerifier.verifyProof(proof.pA, proof.pB, proof.pC, utxos); } function _verifyBatchLockProof( @@ -120,6 +120,6 @@ abstract contract ZetoLock is IZetoBase, IZetoLockable, OwnableUpgradeable { Commonlib.Proof calldata proof ) internal view returns (bool) { return - batchLockVerifier.verifyProof(proof.pA, proof.pB, proof.pC, utxos); + _batchLockVerifier.verifyProof(proof.pA, proof.pB, proof.pC, utxos); } } diff --git a/solidity/contracts/zeto_anon.sol b/solidity/contracts/zeto_anon.sol index 4e056a7..8b9d923 100644 --- a/solidity/contracts/zeto_anon.sol +++ b/solidity/contracts/zeto_anon.sol @@ -49,28 +49,28 @@ contract Zeto_Anon is ZetoLock, UUPSUpgradeable { - Groth16Verifier_Anon internal verifier; - Groth16Verifier_AnonBatch internal batchVerifier; + Groth16Verifier_Anon internal _verifier; + Groth16Verifier_AnonBatch internal _batchVerifier; function initialize( address initialOwner, - Groth16Verifier_Anon _verifier, - Groth16Verifier_CheckHashesValue _depositVerifier, - Groth16Verifier_CheckInputsOutputsValue _withdrawVerifier, - Groth16Verifier_AnonBatch _batchVerifier, - Groth16Verifier_CheckInputsOutputsValueBatch _batchWithdrawVerifier, - ILockVerifier _lockVerifier, - IBatchLockVerifier _batchLockVerifier + Groth16Verifier_Anon verifier, + Groth16Verifier_CheckHashesValue depositVerifier, + Groth16Verifier_CheckInputsOutputsValue withdrawVerifier, + Groth16Verifier_AnonBatch batchVerifier, + Groth16Verifier_CheckInputsOutputsValueBatch batchWithdrawVerifier, + ILockVerifier lockVerifier, + IBatchLockVerifier batchLockVerifier ) public initializer { __ZetoBase_init(initialOwner); __ZetoFungibleWithdraw_init( - _depositVerifier, - _withdrawVerifier, - _batchWithdrawVerifier + depositVerifier, + withdrawVerifier, + batchWithdrawVerifier ); - __ZetoLock_init(_lockVerifier, _batchLockVerifier); - verifier = _verifier; - batchVerifier = _batchVerifier; + __ZetoLock_init(lockVerifier, batchLockVerifier); + _verifier = verifier; + _batchVerifier = batchVerifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -132,7 +132,7 @@ contract Zeto_Anon is // Check the proof using batchVerifier require( - batchVerifier.verifyProof( + _batchVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -153,7 +153,7 @@ contract Zeto_Anon is } // Check the proof require( - verifier.verifyProof( + _verifier.verifyProof( proof.pA, proof.pB, proof.pC, diff --git a/solidity/contracts/zeto_anon_enc.sol b/solidity/contracts/zeto_anon_enc.sol index 3d4e134..5e351e2 100644 --- a/solidity/contracts/zeto_anon_enc.sol +++ b/solidity/contracts/zeto_anon_enc.sol @@ -51,28 +51,28 @@ contract Zeto_AnonEnc is ZetoLock, UUPSUpgradeable { - Groth16Verifier_AnonEnc internal verifier; - Groth16Verifier_AnonEncBatch internal batchVerifier; + Groth16Verifier_AnonEnc internal _verifier; + Groth16Verifier_AnonEncBatch internal _batchVerifier; function initialize( address initialOwner, - Groth16Verifier_AnonEnc _verifier, - Groth16Verifier_CheckHashesValue _depositVerifier, - Groth16Verifier_CheckInputsOutputsValue _withdrawVerifier, - Groth16Verifier_AnonEncBatch _batchVerifier, - Groth16Verifier_CheckInputsOutputsValueBatch _batchWithdrawVerifier, - ILockVerifier _lockVerifier, - IBatchLockVerifier _batchLockVerifier + Groth16Verifier_AnonEnc verifier, + Groth16Verifier_CheckHashesValue depositVerifier, + Groth16Verifier_CheckInputsOutputsValue withdrawVerifier, + Groth16Verifier_AnonEncBatch batchVerifier, + Groth16Verifier_CheckInputsOutputsValueBatch batchWithdrawVerifier, + ILockVerifier lockVerifier, + IBatchLockVerifier batchLockVerifier ) public initializer { __ZetoBase_init(initialOwner); __ZetoFungibleWithdraw_init( - _depositVerifier, - _withdrawVerifier, - _batchWithdrawVerifier + depositVerifier, + withdrawVerifier, + batchWithdrawVerifier ); - __ZetoLock_init(_lockVerifier, _batchLockVerifier); - verifier = _verifier; - batchVerifier = _batchVerifier; + __ZetoLock_init(lockVerifier, batchLockVerifier); + _verifier = verifier; + _batchVerifier = batchVerifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -154,7 +154,7 @@ contract Zeto_AnonEnc is // Check the proof using batchVerifier require( - batchVerifier.verifyProof( + _batchVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -178,7 +178,7 @@ contract Zeto_AnonEnc is } // Check the proof require( - verifier.verifyProof( + _verifier.verifyProof( proof.pA, proof.pB, proof.pC, diff --git a/solidity/contracts/zeto_anon_enc_nullifier.sol b/solidity/contracts/zeto_anon_enc_nullifier.sol index 3593094..e3cfb5c 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier.sol @@ -48,28 +48,28 @@ contract Zeto_AnonEncNullifier is ZetoLock, UUPSUpgradeable { - Groth16Verifier_AnonEncNullifier internal verifier; - Groth16Verifier_AnonEncNullifierBatch internal batchVerifier; + Groth16Verifier_AnonEncNullifier internal _verifier; + Groth16Verifier_AnonEncNullifierBatch internal _batchVerifier; function initialize( address initialOwner, - Groth16Verifier_AnonEncNullifier _verifier, - Groth16Verifier_CheckHashesValue _depositVerifier, - Groth16Verifier_CheckNullifierValue _withdrawVerifier, - Groth16Verifier_AnonEncNullifierBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - ILockVerifier _lockVerifier, - IBatchLockVerifier _batchLockVerifier + Groth16Verifier_AnonEncNullifier verifier, + Groth16Verifier_CheckHashesValue depositVerifier, + Groth16Verifier_CheckNullifierValue withdrawVerifier, + Groth16Verifier_AnonEncNullifierBatch batchVerifier, + Groth16Verifier_CheckNullifierValueBatch batchWithdrawVerifier, + ILockVerifier lockVerifier, + IBatchLockVerifier batchLockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( - _depositVerifier, - _withdrawVerifier, - _batchWithdrawVerifier + depositVerifier, + withdrawVerifier, + batchWithdrawVerifier ); - __ZetoLock_init(_lockVerifier, _batchLockVerifier); - verifier = _verifier; - batchVerifier = _batchVerifier; + __ZetoLock_init(lockVerifier, batchLockVerifier); + _verifier = verifier; + _batchVerifier = batchVerifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -168,7 +168,7 @@ contract Zeto_AnonEncNullifier is // Check the proof using batchVerifier require( - batchVerifier.verifyProof( + _batchVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -193,7 +193,7 @@ contract Zeto_AnonEncNullifier is } // Check the proof require( - verifier.verifyProof( + _verifier.verifyProof( proof.pA, proof.pB, proof.pC, diff --git a/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol b/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol index 8f8c533..f52ecef 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier_kyc.sol @@ -50,29 +50,29 @@ contract Zeto_AnonEncNullifierKyc is Registry, UUPSUpgradeable { - Groth16Verifier_AnonEncNullifierKyc internal verifier; - Groth16Verifier_AnonEncNullifierKycBatch internal batchVerifier; + Groth16Verifier_AnonEncNullifierKyc internal _verifier; + Groth16Verifier_AnonEncNullifierKycBatch internal _batchVerifier; function initialize( address initialOwner, - Groth16Verifier_AnonEncNullifierKyc _verifier, - Groth16Verifier_CheckHashesValue _depositVerifier, - Groth16Verifier_CheckNullifierValue _withdrawVerifier, - Groth16Verifier_AnonEncNullifierKycBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - ILockVerifier _lockVerifier, - IBatchLockVerifier _batchLockVerifier + Groth16Verifier_AnonEncNullifierKyc verifier, + Groth16Verifier_CheckHashesValue depositVerifier, + Groth16Verifier_CheckNullifierValue withdrawVerifier, + Groth16Verifier_AnonEncNullifierKycBatch batchVerifier, + Groth16Verifier_CheckNullifierValueBatch batchWithdrawVerifier, + ILockVerifier lockVerifier, + IBatchLockVerifier batchLockVerifier ) public initializer { __Registry_init(); __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( - _depositVerifier, - _withdrawVerifier, - _batchWithdrawVerifier + depositVerifier, + withdrawVerifier, + batchWithdrawVerifier ); - __ZetoLock_init(_lockVerifier, _batchLockVerifier); - verifier = _verifier; - batchVerifier = _batchVerifier; + __ZetoLock_init(lockVerifier, batchLockVerifier); + _verifier = verifier; + _batchVerifier = batchVerifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -178,7 +178,7 @@ contract Zeto_AnonEncNullifierKyc is // Check the proof using batchVerifier require( - batchVerifier.verifyProof( + _batchVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -203,7 +203,7 @@ contract Zeto_AnonEncNullifierKyc is } // Check the proof require( - verifier.verifyProof( + _verifier.verifyProof( proof.pA, proof.pB, proof.pC, diff --git a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol index a692585..dc9e82d 100644 --- a/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol +++ b/solidity/contracts/zeto_anon_enc_nullifier_non_repudiation.sol @@ -57,31 +57,31 @@ contract Zeto_AnonEncNullifierNonRepudiation is bytes data ); - Groth16Verifier_AnonEncNullifierNonRepudiation internal verifier; - Groth16Verifier_AnonEncNullifierNonRepudiationBatch internal batchVerifier; + Groth16Verifier_AnonEncNullifierNonRepudiation internal _verifier; + Groth16Verifier_AnonEncNullifierNonRepudiationBatch internal _batchVerifier; // the arbiter public key that must be used to // encrypt the secrets of every transaction uint256[2] private arbiter; function initialize( address initialOwner, - Groth16Verifier_AnonEncNullifierNonRepudiation _verifier, - Groth16Verifier_CheckHashesValue _depositVerifier, - Groth16Verifier_CheckNullifierValue _withdrawVerifier, - Groth16Verifier_AnonEncNullifierNonRepudiationBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - ILockVerifier _lockVerifier, - IBatchLockVerifier _batchLockVerifier + Groth16Verifier_AnonEncNullifierNonRepudiation verifier, + Groth16Verifier_CheckHashesValue depositVerifier, + Groth16Verifier_CheckNullifierValue withdrawVerifier, + Groth16Verifier_AnonEncNullifierNonRepudiationBatch batchVerifier, + Groth16Verifier_CheckNullifierValueBatch batchWithdrawVerifier, + ILockVerifier lockVerifier, + IBatchLockVerifier batchLockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( - _depositVerifier, - _withdrawVerifier, - _batchWithdrawVerifier + depositVerifier, + withdrawVerifier, + batchWithdrawVerifier ); - __ZetoLock_init(_lockVerifier, _batchLockVerifier); - verifier = _verifier; - batchVerifier = _batchVerifier; + __ZetoLock_init(lockVerifier, batchLockVerifier); + _verifier = verifier; + _batchVerifier = batchVerifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -206,7 +206,7 @@ contract Zeto_AnonEncNullifierNonRepudiation is // Check the proof using batchVerifier require( - batchVerifier.verifyProof( + _batchVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -236,7 +236,7 @@ contract Zeto_AnonEncNullifierNonRepudiation is } // Check the proof require( - verifier.verifyProof( + _verifier.verifyProof( proof.pA, proof.pB, proof.pC, diff --git a/solidity/contracts/zeto_anon_nullifier.sol b/solidity/contracts/zeto_anon_nullifier.sol index 4f38700..46b3861 100644 --- a/solidity/contracts/zeto_anon_nullifier.sol +++ b/solidity/contracts/zeto_anon_nullifier.sol @@ -47,28 +47,28 @@ contract Zeto_AnonNullifier is ZetoLock, UUPSUpgradeable { - Groth16Verifier_AnonNullifier internal verifier; - Groth16Verifier_AnonNullifierBatch internal batchVerifier; + Groth16Verifier_AnonNullifier internal _verifier; + Groth16Verifier_AnonNullifierBatch internal _batchVerifier; function initialize( address initialOwner, - Groth16Verifier_AnonNullifier _verifier, - Groth16Verifier_CheckHashesValue _depositVerifier, - Groth16Verifier_CheckNullifierValue _withdrawVerifier, - Groth16Verifier_AnonNullifierBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - ILockVerifier _lockVerifier, - IBatchLockVerifier _batchLockVerifier + Groth16Verifier_AnonNullifier verifier, + Groth16Verifier_CheckHashesValue depositVerifier, + Groth16Verifier_CheckNullifierValue withdrawVerifier, + Groth16Verifier_AnonNullifierBatch batchVerifier, + Groth16Verifier_CheckNullifierValueBatch batchWithdrawVerifier, + ILockVerifier lockVerifier, + IBatchLockVerifier batchLockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( - _depositVerifier, - _withdrawVerifier, - _batchWithdrawVerifier + depositVerifier, + withdrawVerifier, + batchWithdrawVerifier ); - __ZetoLock_init(_lockVerifier, _batchLockVerifier); - verifier = _verifier; - batchVerifier = _batchVerifier; + __ZetoLock_init(lockVerifier, batchLockVerifier); + _verifier = verifier; + _batchVerifier = batchVerifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -145,7 +145,7 @@ contract Zeto_AnonNullifier is // Check the proof using batchVerifier require( - batchVerifier.verifyProof( + _batchVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -167,7 +167,7 @@ contract Zeto_AnonNullifier is } // Check the proof require( - verifier.verifyProof( + _verifier.verifyProof( proof.pA, proof.pB, proof.pC, diff --git a/solidity/contracts/zeto_anon_nullifier_kyc.sol b/solidity/contracts/zeto_anon_nullifier_kyc.sol index 52902b0..8219843 100644 --- a/solidity/contracts/zeto_anon_nullifier_kyc.sol +++ b/solidity/contracts/zeto_anon_nullifier_kyc.sol @@ -50,29 +50,29 @@ contract Zeto_AnonNullifierKyc is Registry, UUPSUpgradeable { - Groth16Verifier_AnonNullifierKyc internal verifier; - Groth16Verifier_AnonNullifierKycBatch internal batchVerifier; + Groth16Verifier_AnonNullifierKyc internal _verifier; + Groth16Verifier_AnonNullifierKycBatch internal _batchVerifier; function initialize( address initialOwner, - Groth16Verifier_AnonNullifierKyc _verifier, - Groth16Verifier_CheckHashesValue _depositVerifier, - Groth16Verifier_CheckNullifierValue _withdrawVerifier, - Groth16Verifier_AnonNullifierKycBatch _batchVerifier, - Groth16Verifier_CheckNullifierValueBatch _batchWithdrawVerifier, - ILockVerifier _lockVerifier, - IBatchLockVerifier _batchLockVerifier + Groth16Verifier_AnonNullifierKyc verifier, + Groth16Verifier_CheckHashesValue depositVerifier, + Groth16Verifier_CheckNullifierValue withdrawVerifier, + Groth16Verifier_AnonNullifierKycBatch batchVerifier, + Groth16Verifier_CheckNullifierValueBatch batchWithdrawVerifier, + ILockVerifier lockVerifier, + IBatchLockVerifier batchLockVerifier ) public initializer { __Registry_init(); __ZetoNullifier_init(initialOwner); __ZetoFungibleWithdrawWithNullifiers_init( - _depositVerifier, - _withdrawVerifier, - _batchWithdrawVerifier + depositVerifier, + withdrawVerifier, + batchWithdrawVerifier ); - __ZetoLock_init(_lockVerifier, _batchLockVerifier); - verifier = _verifier; - batchVerifier = _batchVerifier; + __ZetoLock_init(lockVerifier, batchLockVerifier); + _verifier = verifier; + _batchVerifier = batchVerifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -156,7 +156,7 @@ contract Zeto_AnonNullifierKyc is // Check the proof using batchVerifier require( - batchVerifier.verifyProof( + _batchVerifier.verifyProof( proof.pA, proof.pB, proof.pC, @@ -178,7 +178,7 @@ contract Zeto_AnonNullifierKyc is } // Check the proof require( - verifier.verifyProof( + _verifier.verifyProof( proof.pA, proof.pB, proof.pC, diff --git a/solidity/contracts/zeto_nf_anon.sol b/solidity/contracts/zeto_nf_anon.sol index 81eef66..c1139f4 100644 --- a/solidity/contracts/zeto_nf_anon.sol +++ b/solidity/contracts/zeto_nf_anon.sol @@ -32,16 +32,16 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/U /// (aka the sender is authorized to spend the input UTXOs) /// - The input UTXOs and output UTXOs are valid in terms of obeying mass conservation rules contract Zeto_NfAnon is IZeto, ZetoBase, ZetoLock, UUPSUpgradeable { - Groth16Verifier_NfAnon internal verifier; + Groth16Verifier_NfAnon internal _verifier; function initialize( address initialOwner, - Groth16Verifier_NfAnon _verifier, - ILockVerifier _lockVerifier + Groth16Verifier_NfAnon verifier, + ILockVerifier lockVerifier ) public initializer { __ZetoBase_init(initialOwner); - __ZetoLock_init(_lockVerifier, IBatchLockVerifier(address(0))); - verifier = _verifier; + __ZetoLock_init(lockVerifier, IBatchLockVerifier(address(0))); + _verifier = verifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -83,7 +83,7 @@ contract Zeto_NfAnon is IZeto, ZetoBase, ZetoLock, UUPSUpgradeable { // Check the proof require( - verifier.verifyProof(proof.pA, proof.pB, proof.pC, publicInputs), + _verifier.verifyProof(proof.pA, proof.pB, proof.pC, publicInputs), "Invalid proof" ); diff --git a/solidity/contracts/zeto_nf_anon_nullifier.sol b/solidity/contracts/zeto_nf_anon_nullifier.sol index 8cc7d24..44dfb75 100644 --- a/solidity/contracts/zeto_nf_anon_nullifier.sol +++ b/solidity/contracts/zeto_nf_anon_nullifier.sol @@ -37,16 +37,16 @@ contract Zeto_NfAnonNullifier is ZetoLock, UUPSUpgradeable { - Groth16Verifier_NfAnonNullifier verifier; + Groth16Verifier_NfAnonNullifier _verifier; function initialize( address initialOwner, - Groth16Verifier_NfAnonNullifier _verifier, - ILockVerifier _lockVerifier + Groth16Verifier_NfAnonNullifier verifier, + ILockVerifier lockVerifier ) public initializer { __ZetoNullifier_init(initialOwner); - __ZetoLock_init(_lockVerifier, IBatchLockVerifier(address(0))); - verifier = _verifier; + __ZetoLock_init(lockVerifier, IBatchLockVerifier(address(0))); + _verifier = verifier; } function _authorizeUpgrade(address) internal override onlyOwner {} @@ -91,7 +91,7 @@ contract Zeto_NfAnonNullifier is // Check the proof require( - verifier.verifyProof(proof.pA, proof.pB, proof.pC, publicInputs), + _verifier.verifyProof(proof.pA, proof.pB, proof.pC, publicInputs), "Invalid proof" ); From abadf567247cdab28e25c7eca475ce6730e7c32b Mon Sep 17 00:00:00 2001 From: Jim Zhang Date: Fri, 20 Dec 2024 11:53:29 -0500 Subject: [PATCH 14/20] Move content from README to docs Signed-off-by: Jim Zhang --- .github/workflows/docs.yaml | 61 +++++++ .gitignore | 1 + README.md | 170 +----------------- doc-site/.devcontainer/Dockerfile | 3 + doc-site/.devcontainer/devcontainer.json | 20 +++ doc-site/.gitignore | 2 + doc-site/README.md | 74 ++++++++ doc-site/docs/assets/paladin-icon-light.png | Bin 0 -> 1844 bytes doc-site/docs/assets/paladin-logo-dark.svg | 15 ++ doc-site/docs/assets/paladin-logo-light.svg | 15 ++ doc-site/docs/concepts/basics.md | 15 ++ doc-site/docs/concepts/how-zeto-works.md | 22 +++ .../docs/contributing/asking-a-question.md | 18 ++ .../docs/contributing/how-to-contribute.md | 68 +++++++ doc-site/docs/contributing/reporting-a-bug.md | 14 ++ .../docs/contributing/requesting-a-change.md | 158 ++++++++++++++++ doc-site/docs/faqs.md | 48 +++++ doc-site/docs/glossary.md | 11 ++ .../docs/images/nullifiers.jpg | Bin doc-site/docs/images/overview.jpg | Bin 0 -> 854937 bytes doc-site/docs/images/zeto-arch.svg | 1 + doc-site/docs/implementations/anon.md | 16 ++ doc-site/docs/implementations/anon_enc.md | 17 ++ .../implementations/anon_enc_nullifier.md | 16 ++ .../implementations/anon_enc_nullifier_kyc.md | 17 ++ .../anon_enc_nullifier_non_repudiation.md | 21 +++ .../docs/implementations/anon_nullifier.md | 23 +++ .../implementations/anon_nullifier_kyc.md | 20 +++ doc-site/docs/implementations/index.md | 26 +++ doc-site/docs/implementations/nf_anon.md | 14 ++ .../docs/implementations/nf_anon_nullifier.md | 13 ++ doc-site/docs/index.md | 27 +++ doc-site/docs/stylesheets/zeto.css | 44 +++++ doc-site/mkdocs.yml | 117 ++++++++++++ doc-site/overrides/main.html | 8 + doc-site/overrides/partials/header.html | 161 +++++++++++++++++ doc-site/overrides/partials/logo.html | 25 +++ doc-site/overrides/partials/nav.html | 34 ++++ doc-site/requirements.txt | 39 ++++ resources/c-utxo-zkp-1.jpg | Bin 886352 -> 0 bytes 40 files changed, 1186 insertions(+), 168 deletions(-) create mode 100644 .github/workflows/docs.yaml create mode 100644 doc-site/.devcontainer/Dockerfile create mode 100644 doc-site/.devcontainer/devcontainer.json create mode 100644 doc-site/.gitignore create mode 100644 doc-site/README.md create mode 100644 doc-site/docs/assets/paladin-icon-light.png create mode 100644 doc-site/docs/assets/paladin-logo-dark.svg create mode 100644 doc-site/docs/assets/paladin-logo-light.svg create mode 100644 doc-site/docs/concepts/basics.md create mode 100644 doc-site/docs/concepts/how-zeto-works.md create mode 100644 doc-site/docs/contributing/asking-a-question.md create mode 100644 doc-site/docs/contributing/how-to-contribute.md create mode 100644 doc-site/docs/contributing/reporting-a-bug.md create mode 100644 doc-site/docs/contributing/requesting-a-change.md create mode 100644 doc-site/docs/faqs.md create mode 100644 doc-site/docs/glossary.md rename resources/c-utxo-zkp-2.jpg => doc-site/docs/images/nullifiers.jpg (100%) create mode 100644 doc-site/docs/images/overview.jpg create mode 100644 doc-site/docs/images/zeto-arch.svg create mode 100644 doc-site/docs/implementations/anon.md create mode 100644 doc-site/docs/implementations/anon_enc.md create mode 100644 doc-site/docs/implementations/anon_enc_nullifier.md create mode 100644 doc-site/docs/implementations/anon_enc_nullifier_kyc.md create mode 100644 doc-site/docs/implementations/anon_enc_nullifier_non_repudiation.md create mode 100644 doc-site/docs/implementations/anon_nullifier.md create mode 100644 doc-site/docs/implementations/anon_nullifier_kyc.md create mode 100644 doc-site/docs/implementations/index.md create mode 100644 doc-site/docs/implementations/nf_anon.md create mode 100644 doc-site/docs/implementations/nf_anon_nullifier.md create mode 100644 doc-site/docs/index.md create mode 100644 doc-site/docs/stylesheets/zeto.css create mode 100644 doc-site/mkdocs.yml create mode 100644 doc-site/overrides/main.html create mode 100644 doc-site/overrides/partials/header.html create mode 100644 doc-site/overrides/partials/logo.html create mode 100644 doc-site/overrides/partials/nav.html create mode 100644 doc-site/requirements.txt delete mode 100644 resources/c-utxo-zkp-1.jpg diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml new file mode 100644 index 0000000..3b722e7 --- /dev/null +++ b/.github/workflows/docs.yaml @@ -0,0 +1,61 @@ +name: Docs Site + +on: + push: + branches: + - main + paths: + - 'doc-site/docs/**' + pull_request: + paths: + - 'doc-site/docs/**' + release: + types: [released] +jobs: + build: + runs-on: ubuntu-latest + env: + LATEST_TAG: '' + permissions: + contents: write + steps: + - name: Checkout source + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Docs Deploy + run: | + git config --global user.name "GitHub Actions" + git config --global user.email "noreply@github.com" + + - name: Get the latest tag + run: | + git fetch --tags + latest_tag=$(git tag -l | sort -V | grep -v "rc" | tail -n 1) + echo "latest tag: $latest_tag" + echo "LATEST_TAG=$latest_tag" >> $GITHUB_ENV + + - name: Install docs dependencies + working-directory: doc-site + run: pip install -r requirements.txt + + - name: Update doc site for release + if: github.event.action == 'released' && github.ref_name != env.LATEST_TAG + working-directory: doc-site + run: mike deploy ${{ github.event.release.tag_name }} --push + + - name: Update doc site for latest release + if: github.event.action == 'released' && github.ref_name == env.LATEST_TAG + working-directory: doc-site + run: mike deploy ${{ github.event.release.tag_name }} latest -u --push + + - name: Update doc site for `main` branch + if: ${{ github.event_name == 'push' }} + working-directory: doc-site + run: mike deploy head --push + + - name: Test building the doc site but do not deploy it + if: ${{ github.event_name == 'pull_request' }} + working-directory: doc-site + run: mkdocs build diff --git a/.gitignore b/.gitignore index e43b0f9..71712d1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +.vscode/launch.json \ No newline at end of file diff --git a/README.md b/README.md index bda8fe6..c78029c 100644 --- a/README.md +++ b/README.md @@ -1,174 +1,8 @@ # Zeto - UTXO based privacy-preserving token toolkit using Zero Knowledge Proofs -This project hosts the multiple patterns to implement privacy preserving tokens on EVM. The patterns all share the same basic architectural concepts: +This project hosts the multiple patterns to implement privacy preserving tokens on EVM. -- **Transaction model**: the UTXO model is adopted instead of the account model, for better support of parallel processing. Due to the necessity of maintaining private states offchain in order to achieve privacy, the client must continuously keep their private states in sync with the smart contract. Using an account model makes it more difficult to achieve this because incoming transfers from other parties would invalidate an account's state, making the account owner unable to spend from its account unless the private state has been sync'ed again. Solutions to this issue, often referred to as front-running, typically involve a spending window with a pending queue, which result in limited parallel processing of transactions from the same spending account. With a UTXO model, each state is independent of the others, so parallel processing is better achieved. -- **Commitments**: each UTXO is tracked by the smart contract as a hash, or commitment, of the following components: value, salt and owner public key -- **Finality**: each transaction's validity is verified by the smart contract before allowing the proposed input UTXOs to be nullified and the output UTXOs to come into existence. In other words, this is not an optimistic design and as such does not rely on a multi-day challenge period before a transaction is finalized. Every transaction is immediately finalized once it's mined into a block. - -# Overview of how Zeto tokens work - -The following diagram illustrates the basics of Zeto tokens. - -![Zeto token basics](/resources/c-utxo-zkp-1.jpg) - -- Party A owns 3 Zeto tokens at the beginning: `#1, #2, #3`. The 3 tokens have been minted in the Zeto smart contract and represented by their commitments, or `hash(value, owner public key, salt)` - - As the owner of the tokens, party A also has access to the secrets that the commitments can be opened to, namely the value and salt. The secrets are represented as private states: `s1, s2, s3` - - How party A obtained the secrets for the owned tokens, is dependent on the specific Zeto implementation. It can be from offchain channels or from onchain (encrypted) data -- Party A sends transaction `Tx1` to transfer some value to party B. The transaction consumes 2 tokens (`#1, #2`) and produces 2 new tokens (`#4, #5`). `#5` is the value to be transferred to party B. `#4` is the remainder value that goes back to party A - - Even though party A knows the secrets of `#5`, they won't be able to spend the token because party A is not the owner of the token. Ownership verification is enforced by the Zeto smart contract when it verifies the zero knowledge proofs. Each ZKP circuit ensures that the sender's private key is used as a private input signal to derive the public key, which is then hashed to calculate the commitments -- Party B sends transaction `Tx2` to transfer some value to party C. This works the same as `Tx1` -- All parties get the commitments, `#1, #2, ... #7`, from the onchain events - -The above diagram illustrates that the secrets are transmitted from the sender to the receiver in an off-chain secure channel. Other means of sharing the secrets are avaiable in Zeto token implementations. For instance, the [Zeto_AnonEnc](./solidity/contracts/zeto_anon_enc.sol) implementation includes encrypted secrets in the transaction input, and emits an event with the encrypted values. The encrypted values can only be decrypted by the receiver. - -# Zeto fungible and non-fungible token implementations - -The various patterns in this project use Zero Knowledge Proofs (ZKP) to demonstrate the validity of the proposed transaction. There is no centralized party to trust as in the [Notary pattern](#enforce-token-transfer-policies-with-a-notary), which is not implemented in this project but discussed briefly below. - -Using ZKPs as validity proofs, each participant can independently submit transactions to the smart contract directly. As long as the participant is able to produce a valid proof, the transaction will be successfully verified and allowed to go through. - -This project includes multiple ZKP circuits to support various privacy levels with Zeto, as listed below. - -Performing key pair operations, such as deriving the public key from the private key, in the ZKP circuit requires using ZKP-friendly curves, for which we picked Babyjubjub instead of the regular Ethereum curve (secp256k1). - -Another implication to the usage of ZKPs as transaction validity proof and the usage of the Babyjubjub curve, is that the signer of the transaction, eg. `msg.sender`, no longer bears the same significance as in other token implementations such as ERC20, ERC721, where the signer's EVM account address holds the actual assets. In Zeto tokens, it's the Babyjubjub public keys that hold the entitlement to spend the tokens. In fact, the applications are encouraged to use a different signing key for each transaction, to avoid leaking transaction behaviors and breaking anonymity. - -## Zeto_Anon - -This is the simplest version of the ZKP circuit. Because the secrets required to open the commitment hashes, namely the output UTXO value and salt, are NOT encrypted and published as part of the transaction payload, using this version requires the secrets to be transmitted from the sender to the receiver in off-chain channels. - -The statements in the proof include: - -- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) -- the sum of the input values match the sum of output values -- the hashes in the input and output match the `hash(value, salt, owner public key)` formula -- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes - -There is no history masking, meaning the associations between the consumed input UTXOs and the output UTXOs are in the clear. - -## Zeto_AnonEnc - -This verison of the ZKP circuit adds encryption that makes it possible to provide data availability onchain. The circuit uses the sender's private key and the receiver's public key to generate a shared secret with ECDH, which guarantees that the receiver will be able to decrypt the values. The encrypted values include the value and salt of the output UTXO for the receiver. With these values the receiver is guaranteed to be able to spend the UTXO sent to them. - -The statements in the proof include: - -- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) -- the sum of the input values match the sum of output values -- the hashes in the input and output match the hash(value, salt, owner public key) formula -- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes -- the encrypted values in the transaction are derived from the receiver's UTXO value and encrypted with a shared secret using the ECDH protocol between a random private key and the receiver (this guarantees data availability for the receiver, because the public key for the random private key used by the sender is published in the transaction) - -There is no history masking, meaning the association between the consumed input UTXOs and the output UTXOs are in the clear. - -## Zeto_AnonNullifier - -To mask the association between the consumed UTXOs and the output UTXOs, we hide which UTXOs are being consumed by each transaction. - -To achieve this, we employ the usage of `nullifiers`. It's a unique hash derived from the unique commitment it consumes. For a UTXO commitment `hash(value, salt, owner public key)`, the nullifier is calculated as `hash(value, salt, owner private key)`. Only the owner of the commitment can generate the nullifier hash. Each transaction will record the nullifiers in the smart contract, to ensure that they don't get re-used (double spending). - -In order to prove that the UTXOs to be spent actually exist, we use a merkle tree proof inside the zero knowledge proof circuit. The merkle proof is validated against a merkle tree root that is maintained by the smart contract. The smart contract keeps track of all the new UTXOs in each transaction's output commitments array, and uses a merkle tree to calculate the root hash. Then the ZKP circuit can use a root hash as public input, to prove that the input commitments (UTXOs to be spent), which are private inputs to the circuit, are included in the merkle tree represented by the root. - -The end result is that, from the onchain data, no one can figure out which UTXOs have been spent, while double spending is prevented. - -The statements in the proof include: - -- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) -- the sum of the nullified values match the sum of output values -- the hashes in the output match the hash(value, salt, owner public key) formula -- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers -- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash - -![History masking with nullifiers](/resources/c-utxo-zkp-2.jpg) - -## Zeto_AnonNullifierKyc - -The concept of "KYC with privacy" is introduced in this implementation pattern. - -How to enforce a policy of "all senders and receivers of a transaction must be in a KYC registry", while maintaining anomymity of the sender and the receiver? The solution is similar to how nullifiers are supported, via merkle tree proofs. - -The implementation of this pattern maintains a `KYC registry` in the smart contract as a Sparse Merkle Tree. The registry is maintained by a designated authority, and includes the public keys of entities that have cleared the KYC process. Each transaction must demonstrate that the public keys of the sender and the receivers are included in the KYC merkle tree, by generating a merkle proof and using it as a private input to the ZKP circuit. - -The statements in the proof include: - -- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) -- the sum of the nullified values match the sum of output values -- the hashes in the output match the hash(value, salt, owner public key) formula -- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers -- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash -- the sender and receiver public keys are included in the Sparse Merkle Tree for the KYC registry, represented by the latest root hash known to the smart contract - -## Zeto_AnonEncNullifier - -This implementation adds encryption, as described in the section above for Zeto_AnonEnc, to the pattern Zeto_AnonNullifier above. - -The statements in the proof include: - -- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) -- the sum of the nullified values match the sum of output values -- the hashes in the output match the hash(value, salt, owner public key) formula -- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers -- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash -- the encrypted values in the transaction are derived from the receiver's UTXO value and encrypted with a shared secret using the ECDH protocol between a random private key and the receiver (this guarantees data availability for the receiver, because the public key for the random private key used by the sender is published in the transaction) - -## Zeto_AnonEncNullifierKyc - -This implementation adds encryption, as described in the section above for Zeto_AnonEnc, to the pattern Zeto_AnonNullifierKyc above. - -The statements in the proof include: - -- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) -- the sum of the nullified values match the sum of output values -- the hashes in the output match the hash(value, salt, owner public key) formula -- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers -- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash -- the sender and receiver public keys are included in the Sparse Merkle Tree for the KYC registry, represented by the latest root hash known to the smart contract -- the encrypted values in the transaction are derived from the receiver's UTXO value and encrypted with a shared secret using the ECDH protocol between a random private key and the receiver (this guarantees data availability for the receiver, because the public key for the random private key used by the sender is published in the transaction) - -## Zeto_AnonEncNullifierNonRepudiation - -The concept of "non-repudiation" is introduced in this implementation pattern. - -Since all onchain states are hashes, with ownership information for the assets hidden, it's possible that a participant can send a transaction but subsequently deny it. Because the transaction signer account no longer reflects the identity of the asset owner, as discussed above, it will be impossible to know who was the sender of a transaction from purely looking at the onchain data, which is exactly the point for Zeto's anonymity support. This gives a malicious party the ability to gain repudiation, or deny that they were responsible for a past transaction. - -This implementation pattern addresses that concern by encrypting the ownership information of each UTXO involved in a transaction with an authority's registered key. Only the designated authority will be able to decrypt the ownership information. The encryption is performed inside the ZKP circuit, thus guaranteeing that they are the actual owners of the UTXOs. - -The statements in the proof include: - -- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) -- the sum of the nullified values match the sum of output values -- the hashes in the output match the hash(value, salt, owner public key) formula -- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers -- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash -- the encrypted values in the transaction contains cipher texts derived from the receiver's UTXO values and encrypted with a shared secret using the ECDH protocol between a random private key and the receiver (this guarantees data availability for the receiver, because the public key for the random private key used by the sender is published in the transaction) -- the encrypted values in the transaction contains cipher texts derived from the receiver's UTXO values and encrypted with a shared secret using the ECDH protocol between a random private key and the authority's public key - -## Zeto_NfAnon - -This implements a basic non-fungible token. - -For non-fungible tokens, the main concern with the transaction validity check is that the output UTXO contains the same secrets (id, uri) as the input UTXO, with only the ownership updated. - -The statements in the proof include: - -- the output UTXO hashes are based on the same `id, uri` as the input UTXO hashes -- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes - -## Zeto_NfAnonNullifier - -This implements a non-fungible token using nullifiers, thus hiding the spending graph. - -The statements in the proof include: - -- the output UTXO hashes are based on the same `id, uri` as the input UTXO hashes -- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers -- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash - -# Enforce token transfer policies with a Notary - -This pattern relies on a central party, called "Notary", that has access to the private states of all the parties in the system. This knowledge allows the Notary to check the validity of a proposed transaction, and enforce dynamic policies that would otherwise be difficult with some of the other approaches. Every transaction must be accompanied by a "notary certificate" that approve the proposed transaction. The certificate will be verified by the smart contract before allowing the transaction to go through. - -The project does not include an implementation of a notary based token transfer policy enforcement. +Refer to the [Zeto documentation](https://hyperledger-labs.github.io/zeto) for details. # Sub-projects diff --git a/doc-site/.devcontainer/Dockerfile b/doc-site/.devcontainer/Dockerfile new file mode 100644 index 0000000..156896f --- /dev/null +++ b/doc-site/.devcontainer/Dockerfile @@ -0,0 +1,3 @@ +# Specify version of MkDocs Material +FROM squidfunk/mkdocs-material:latest +RUN pip install mike \ No newline at end of file diff --git a/doc-site/.devcontainer/devcontainer.json b/doc-site/.devcontainer/devcontainer.json new file mode 100644 index 0000000..0506865 --- /dev/null +++ b/doc-site/.devcontainer/devcontainer.json @@ -0,0 +1,20 @@ +{ + "name": "MkDocs Material editor", + "dockerFile": "Dockerfile", + "workspaceMount": "source=${localWorkspaceFolder}/doc-site,target=/docs,type=bind", + "workspaceFolder": "/docs", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.shell.linux": "/bin/sh" + }, + "extensions": [ + "ms-vscode-remote.remote-containers" + ] + } + }, + "forwardPorts": [ + 8001 + ], + "postStartCommand": "mkdocs serve -a localhost:8001", +} diff --git a/doc-site/.gitignore b/doc-site/.gitignore new file mode 100644 index 0000000..b25f8f9 --- /dev/null +++ b/doc-site/.gitignore @@ -0,0 +1,2 @@ +venv +site diff --git a/doc-site/README.md b/doc-site/README.md new file mode 100644 index 0000000..82523b9 --- /dev/null +++ b/doc-site/README.md @@ -0,0 +1,74 @@ +# Zeto Documentation Site + +This directory is based on the [Hyperledger documentation template](https://github.com/hyperledger-labs/documentation-template). The template utilizes MkDocs (documentation at [mkdocs.org](https://www.mkdocs.org)) and the theme Material for MkDocs (documentation at [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/)). Material adds a number of extra features to MkDocs, and Hyperledger repositories can take advantage of the theme's [Insiders](https://squidfunk.github.io/mkdocs-material/insiders/) capabilities. + +[Material for MkDocs]: https://squidfunk.github.io/mkdocs-material/ +[Mike]: https://github.com/jimporter/mike + +## Prerequisites + +To test the documents and update the published site, the following tools are needed: + +- A Bash shell +- git +- Python 3 +- The [Material for Mkdocs] theme. +- The [Mike] MkDocs plugin for publishing versions to gh-pages. + - Not used locally, but referenced in the `mkdocs.yml` file and needed for + deploying the site to gh-pages. + +### git + +`git` can be installed locally, as described in the [Install Git Guide from GitHub](https://github.com/git-guides/install-git). + +### Python 3 + +`Python 3` can be installed locally, as described in the [Python Getting Started guide](https://www.python.org/about/gettingstarted/). + +### Virtual environment + +It is recommended to install your Python dependencies in a virtual environment in case you have other conflicting Python installations on your machine. This also removes the need to install these packages globally on your computer. + +```bash +cd doc-site +python3 -m venv venv +source venv/bin/activate +``` + +### Mkdocs + +The Mkdocs-related items can be installed locally, as described in the [Material +for Mkdocs] installation instructions. The short, case-specific version of those +instructions follow: + +```bash +pip install -r requirements.txt +``` + +### Verify Setup + +To verify your setup, check that you can run `mkdocs` by running the command `mkdocs --help` to see the help text. + +## Useful MkDocs Commands + +The commands you will usually use with `mkdocs` are: + +- `mkdocs serve` - Start the live-reloading docs server. +- `mkdocs build` - Build the documentation site. +- `mkdocs -h` - Print help message and exit. + +## Adding Content + +The basic process for adding content to the site is: + +- Create a new markdown file under the `docs` folder +- Add the new file to the table of contents (`nav` section in the `mkdocs.yml` file) + +If you are using this as a template for creating your own documentation, please see [the instructions for customization](./docs/index.md). + +## Repository layout + + mkdocs.yml # The configuration file. + docs/ + index.md # The documentation homepage. + ... # Other markdown pages, images and other files. diff --git a/doc-site/docs/assets/paladin-icon-light.png b/doc-site/docs/assets/paladin-icon-light.png new file mode 100644 index 0000000000000000000000000000000000000000..5222675cc92421509591024c9f224cf6b7aa74af GIT binary patch literal 1844 zcmV-42g~@0P)0 zK~!jgy;*H+Th$qU-g^^ThP2sLE3I^ilMFg0bz(>`sO?6XHti1#O=uuM`@vF1R|Ygr zvt}P%6GK@W+PZdtt{G|tKbR&OBvz_w)4r+`#k%R zgk8JN^|{yHo?pK2dC&Vk&%MXz<2^zW^}@14hZZ+BG~7**ZvnUwz~`ohhe2{uL{32D zwc_;j{;B7lJ6ErqQV#*4bUFyb=mq%%fNPy?Q^UjM?$Z$2&C8ej?OnTawdOWz4bW^^ z-+;&oki94)KM$?}`GhQ3a6Hi6{qgxKApT3?2v}H115c2t%ymf<6Wa!iD z*Dv?l(USn#x6f3-OVInXjuTibB5MJRYxsZ4RBEr>cb}&r=}AD-(xqz%-0tcm@;*g6 zmn>YkJR6DZKA%YJwl7^;4v|g(?^j6?`ONj#KkS8*_Bya)Z0wo~x!ef=p?O@!Kn`RJ zgO6KBE>1a4qo-?R=dZ2`@ewN}Vo6`KAAa(ni}4`1fJ z_ZGF1ibyaPyNl!|0JoO6lYGQZCSTBr)u7`905Y@6IYneRI(; zehTv2a9Ne-5#Yoh6uB{evmL4ur@gV>g{q!%xB~>gw#J)b|r?Zv-0i^ZF zkrtx$w8-0;_(Im_tbqIpvc*eu3RZu2M8z=co@LHb>ld2#Z+oFUwNgZmK3z@UXcIP z4dO+>n?i1CwyYIS`^iY;I7Iq&<9rg2{8{N@k|4xz3)dGmfljl>Z z_nfxHJv}!mrTPFs$d9}b@^(J}%)Oa~RO&_9x38oQG%-Cr0Kl!z^G@#K#cd@q<8h-{ zEWRKj3ju&4+HW85z85kazi)3^wrpKVdq+n>DYY6vrP6o-hSABPp^u%$fNggHh|WC= z`MMn-OQ+9p=5ItG!SU)7U*Dz{_D+fGxUySoiD6_5YA0ZY6P(iSi~ z^DHehUu&4=9x02Hot}OgB5yfN$LwHmYe~F#+z|3b0N0hpT;}DPNn1cuW8;@m`95J) zvt|9jX<$c3!BnafGgavVmFg_NaS7ydj{#U!A>M*OQ`3qH_KMK|0*-Nd704~2bh^!H zIvI_=E95f}*=na!N1bhf?(VjV!)y*pwd?ZI{|}H4xU^nJkv&pYD{Z`R;VHXND4AMC zM1&l|)kDYWbiXbwKQ}b + + + + + + + + + + + + + + diff --git a/doc-site/docs/assets/paladin-logo-light.svg b/doc-site/docs/assets/paladin-logo-light.svg new file mode 100644 index 0000000..d075c32 --- /dev/null +++ b/doc-site/docs/assets/paladin-logo-light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/doc-site/docs/concepts/basics.md b/doc-site/docs/concepts/basics.md new file mode 100644 index 0000000..49ffb7e --- /dev/null +++ b/doc-site/docs/concepts/basics.md @@ -0,0 +1,15 @@ +# Basic Concepts + +Zeto is built on the following fundamental concepts. + +## Transaction model + +The UTXO model is adopted instead of the account model, for better support of parallel processing. Due to the necessity of maintaining private states offchain in order to achieve privacy, the client must continuously keep their private states in sync with the smart contract. Using an account model makes it more difficult to achieve this because incoming transfers from other parties would invalidate an account's state, making the account owner unable to spend from its account unless the private state has been sync'ed again. Solutions to this issue, often referred to as front-running, typically involve a spending window with a pending queue, which result in limited parallel processing of transactions from the same spending account. With a UTXO model, each state is independent of the others, so parallel processing is better achieved. + +## Commitments + +Each UTXO is tracked by the smart contract as a hash, or commitment, of the following components: value, salt and owner public key + +## Finality + +Each transaction's validity is verified by the smart contract before allowing the proposed input UTXOs to be nullified and the output UTXOs to come into existence. In other words, this is not an optimistic design and as such does not rely on a multi-day challenge period before a transaction is finalized. Every transaction is immediately finalized once it's mined into a block. diff --git a/doc-site/docs/concepts/how-zeto-works.md b/doc-site/docs/concepts/how-zeto-works.md new file mode 100644 index 0000000..5ae4d3c --- /dev/null +++ b/doc-site/docs/concepts/how-zeto-works.md @@ -0,0 +1,22 @@ +# How Zeto tokens work + +![Zeto overview](../images/overview.jpg) + +- Party A owns 3 Zeto tokens at the beginning: `#1, #2, #3`. The 3 tokens have been minted in the Zeto smart contract and represented by their commitments, aka `hash(value, owner public key, salt)` + - As the owner of the tokens, party A also has access to the secrets that the commitments can be opened to, namely the value and salt. The secrets are represented as private states: `s1, s2, s3` + - How party A obtained the secrets for the owned tokens, is dependent on the specific Zeto implementation. It can be from offchain channels or from onchain (encrypted) data +- Party A sends transaction `Tx1` to transfer some value to party B. The transaction consumes 2 tokens `#1, #2` and produces 2 new tokens `#4, #5`. `#5` is the value to be transferred to party B. `#4` is the remainder value that goes back to party A + - Even though party A knows the secrets of `#5`, they won't be able to spend the token because party A is not the owner of the token. + - Ownership verification is enforced by the Zeto smart contract when it verifies the zero knowledge proofs. Each ZKP circuit ensures that the sender's private key is used as a private input signal to derive the public key, which is then hashed to calculate the commitments +- Party B sends transaction `Tx2` to transfer some value to party C. This works the same as `Tx1` +- All parties get the commitments, `#1, #2, ... #7`, from the onchain events + +The above diagram illustrates that the secrets are transmitted from the sender to the receiver in an off-chain secure channel. Other means of sharing the secrets are avaiable in Zeto token implementations. For instance, the [Zeto_AnonEnc](https://github.com/hyperledger-labs/zeto/blob/main/solidity/contracts/zeto_anon_enc.sol) implementation includes encrypted secrets in the transaction input, and emits an event with the encrypted values. The encrypted values can only be decrypted by the receiver. + +## EC Cryptography + +Performing key pair operations, such as deriving the public key from the private key, in the ZKP circuit requires ZKP-friendly curves, for which we picked [Babyjubjub](https://docs.iden3.io/publications/pdfs/Baby-Jubjub.pdf) instead of the regular Ethereum curve (secp256k1). + +## Transaction Signing + +Another implication to the usage of ZKPs as transaction validity proof and the usage of the Babyjubjub curve, is that the signer of the transaction, eg. `msg.sender`, no longer bears the same significance as in other token implementations such as ERC20, ERC721, where the signer's EVM account address holds the actual assets. In Zeto tokens, it's the Babyjubjub public keys that hold the entitlement to spend the tokens. In fact, the applications are encouraged to use a different signing key for each transaction, to avoid leaking transaction behaviors and breaking anonymity. diff --git a/doc-site/docs/contributing/asking-a-question.md b/doc-site/docs/contributing/asking-a-question.md new file mode 100644 index 0000000..6482600 --- /dev/null +++ b/doc-site/docs/contributing/asking-a-question.md @@ -0,0 +1,18 @@ +# Asking a Question + +!!! tip + + * check the [FAQs](../faqs.md) to see if your question has already been asked. + * make sure you provide all relevant details. + * include information about what you have already tried. + * review [How to Ask Technical Questions to Get Quality Answers](https://opensource.com/life/16/10/how-ask-technical-questions) prior to asking your question. + +## Chat + +[Hyperledger’s Discord server](https://discord.gg/hyperledger) is the place to go for real-time chat about everything from quick help to involved discussions. + +For general Zeto discussions, join the Discord server and visit _Labs/Zeto_. + +## Mailing Lists + +The Paladin mailing list is hosted by the Hyperledger Foundation: https://lists.lfdecentralizedtrust.org. diff --git a/doc-site/docs/contributing/how-to-contribute.md b/doc-site/docs/contributing/how-to-contribute.md new file mode 100644 index 0000000..63cf427 --- /dev/null +++ b/doc-site/docs/contributing/how-to-contribute.md @@ -0,0 +1,68 @@ +# How to Contribute + +## Ways to Contribute + +Contributions from the development community help improve the capabilities of +Zeto. These contributions are the most effective way to +make a positive impact on the project. + +Ways you can contribute: + +- Bugs or issues: Report problems or defects found when working with the project (see [Reporting a Bug](./reporting-a-bug.md)) +- Core features and enhancements: Provide expanded capabilities or optimizations +- Documentation: Improve existing documentation or create new information +- Tests: Add functional, performance, or scalability tests + +Issues can be found in GitHub. Any unassigned items are probably still open. When in doubt, ask on Discord about a specific issue (see [Asking a Question](./asking-a-question.md)). We also use the #good-first-issue tag to represent issues that might be good for first timers. + +## The Commit Process + +Zeto is Apache 2.0 licensed and accepts contributions via GitHub pull requests. When contributing code, please follow these guidelines: + +- Fork the repository and make your changes in a feature branch +- Include unit and integration tests for any new features and updates to existing tests +- Ensure that the unit and integration tests run successfully prior to submitting the pull request. + +### Pull Request Guidelines + +A pull request can contain a single commit or multiple commits. The most +important guideline is that a single commit should map to a single fix or +enhancement. Here are some example scenarios: + +- If a pull request adds a feature but also fixes two bugs, the pull request should have three commits: one commit for the feature change and two commits for the bug fixes. +- If a PR is opened with five commits that contain changes to fix a single issue, the PR should be rebased to a single commit. +- If a PR is opened with several commits, where the first commit fixes one issue and the rest fix a separate issue, the PR should be rebased to two commits (one for each issue). + +!!! important +Your pull request should be rebased against the current master branch. Do not merge the current master branch in with your topic branch. Do not use the Update Branch button provided by GitHub on the pull request page. + +### Commit Messages + +Commit messages should follow common Git conventions, such as using the imperative mood, separate subject lines, and a line length of 72 characters. These rules are well documented in [Chris Beam's blog post](https://chris.beams.io/posts/git-commit/#seven-rules). + +### Signed-off-by + +Each commit must include a "Signed-off-by" line in the commit message (`git commit -s`). This sign-off indicates that you agree the commit satisfies the [Developer Certificate of Origin (DCO)](http://developercertificate.org/). + +### Commit Email Address + +Your commit email address must match your GitHub email address. For more information, see https://help.github.com/articles/setting-your-commit-email-address-in-git/ + +### Important GitHub Requirements + +A pull request cannot merged until it has passed these status checks: + +- The build must pass all checks +- The PR must be approved by at least two reviewers without any + outstanding requests for changes + +## Inclusive Language + +- Consider that users who will read the source code and documentation are from different background and cultures and that they have different preferences. +- Avoid potential offensive terms and, for instance, prefer "allow list and deny list" to "white list and black list". +- We believe that we all have a role to play to improve our world, and even if writing inclusive code and documentation might not look like a huge improvement, it's a first step in the right direction. +- We suggest to refer to [Microsoft bias free writing guidelines](https://learn.microsoft.com/en-us/style-guide/bias-free-communication) and [Google inclusive doc writing guide](https://developers.google.com/style/inclusive-documentation) as starting points. + +## Credits + +This document is based on [Hyperledger Sawtooth's Contributing documentation](https://github.com/hyperledger/sawtooth-docs/blob/main/community/contributing.md). diff --git a/doc-site/docs/contributing/reporting-a-bug.md b/doc-site/docs/contributing/reporting-a-bug.md new file mode 100644 index 0000000..e6793a6 --- /dev/null +++ b/doc-site/docs/contributing/reporting-a-bug.md @@ -0,0 +1,14 @@ +# Reporting a Bug + +To report a bug, submit an issue in our public [issue tracker]. + +When reporting an issue, please provide as much detail as possible about how to reproduce it. If possible, explain how to reproduce the issue. Details are very helpful. Please include the following information: + +- Operating system and version (if Mac, include the processor) +- Project version +- Environment details (virtual, physical, etc.) +- Steps to reproduce the issue +- Actual results +- Expected results + + [issue tracker]: https://github.com/hyperledger-labs/zeto/issues diff --git a/doc-site/docs/contributing/requesting-a-change.md b/doc-site/docs/contributing/requesting-a-change.md new file mode 100644 index 0000000..e052da2 --- /dev/null +++ b/doc-site/docs/contributing/requesting-a-change.md @@ -0,0 +1,158 @@ +# Requesting a Change + +Zeto is a powerful tool which serves a wide range of use cases. +Put yourself in our shoes – with a project of this size, it can be challenging +to maintain existing functionality while constantly adding new features at the +same time. We highly value every idea or contribution from our community, and +we kindly ask you to take the time to read the following guidelines before +submitting your change request in our public [issue tracker]. This will help us +better understand the proposed change, and how it will benefit the community. + +This guide is our best effort to explain the criteria and reasoning behind our +decisions when evaluating change requests and considering them for +implementation. + +[issue tracker]: https://github.com/hyperledger-labs/zeto/issues + +## Before creating an issue + +Before you invest your time to fill out and submit a change request, we kindly +ask you to do some preliminary work by answering some questions to determine if +your idea is a good fit and matches the project's philosophy and tone. + +**Please find answers to the following questions before creating an issue.** + +### It's not a bug, it's a feature + +Change requests are intended for suggesting minor adjustments, ideas for new +features, or to influence the project's direction and vision. It is important +to note that change requests are not intended for reporting bugs, as they're +missing essential information for debugging. + +If you want to report a bug, please refer to our [bug reporting guide] instead. + +[bug reporting guide]: reporting-a-bug.md + +### Source of inspiration + +If you have seen your idea implemented in similar project, make sure to collect enough information on its implementation before submitting, as this allows us to evaluate potential fit more quickly. Explain what you like and dislike about the implementation. + +### Benefit for the community + +Our [Discord server] is the best place to connect with our community. When +evaluating new ideas, it's essential to seek input from other users and consider +alternative viewpoints. This approach helps to implement new features in a way +that benefits a large number of users. + +[Discord server]: https://discord.gg/hyperledger + +## Issue template + +Now that you have taken the time to do the necessary preliminary work and ensure +that your idea meets our requirements, you are invited to create a change +request. The following guide will walk you through all necessary steps to help +you submit a comprehensive and useful issue: + +- [Title] +- [Context] optional +- [Description] +- [Related links] +- [Use cases] +- [Visuals] optional +- [Checklist] + + [Title]: #title + [Context]: #context + [Description]: #description + [Related links]: #related-links + [Use cases]: #use-cases + [Visuals]: #visuals + [Checklist]: #checklist + +### Title + +A good title is short and descriptive. It should be a one-sentence executive +summary of the idea, so the potential impact and benefit for the community can +be inferred from the title. + +### Context optional { #context } + +Before describing your idea, you can provide additional context for us to +understand what you are trying to achieve. Explain the circumstances +in which you're using Zeto, and what you _think_ might be +relevant. Don't write about the change request here. + +!!! success "Why we need this" +Some ideas might only benefit specific settings, environments or edge cases. With a little context, change requests can be prioritized more accurately. + +### Description + +Next, provide a detailed and clear description of your idea. Explain why your +idea is relevant to Zeto and must be implemented here, and not +in one of its dependencies. + +- **Explain the what, not the why** – don't explain + [the benefits of your idea][Use cases] here, we're getting there. + Focus on describing the proposed change request as precisely as possible. + +- **Keep it short and concise** – be brief and to the point when describing + your idea, there is no need to over-describe it. Maintainers and future + users will be grateful for having to read less. + +- **One idea at a time** – if you have multiple ideas that don't belong + together, please open separate change requests for each of those ideas. + +- :material-run-fast: **Stretch goal** – if you have a customization or another way to add the proposed change, you can help other users by sharing it here before we maintainers can add it to our code base. + +!!! success "Why we need this" +To understand and evaluate your proposed change, we need to have a clear understanding of your idea. By providing a detailed and precise description, you can help save you and us time spent discussing further clarification of your idea in the comments. + +### Related links + +Please provide any relevant links to issues, discussions, or documentation +sections related to your change request. If you (or someone else) already +discussed this idea with the community on our discussion board, please include +the link to the discussion as well. + +!!! success "Why we need this" +Related links help us gain a comprehensive understanding of your change request by providing additional context. Additionally, linking to previous issues and discussions allows us to quickly evaluate the feedback and input already provided by the community. + +### Use cases + +Explain how your change request would work from a user's +perspective – what's the expected impact and why does it not only benefit you, +but other users? How many of them? Furthermore, would it potentially break +existing functionality? + +!!! success "Why we need this" +Understanding the use cases and benefits of an idea is crucial in evaluating its potential impact and usefulness for the project and its users. This information helps us to understand the expected value of the idea and how it aligns with the goals of the project. + +### Visuals optional { #visuals } + +We now have a clear and detailed description of your idea, including information +on its potential use cases and relevant links for context. If you have any +visuals, such as sketches, screenshots, mockups, or external assets, you may +present them in this section. + +!!! tip +You can drag and drop the files here or include links to external assets. + +Additionally, if you have seen this change, feature, or improvement used +elsewhere, please provide an example by showcasing +it and describing how it was implemented and incorporated. + +!!! success "Why we need this" +Illustrations and visuals can help us maintainers better understand and envision your idea. Screenshots, sketches, or mockups can create an additional level of detail and clarity that text alone may not be able to convey. Also, seeing how your idea has been implemented in other projects can help us understand its potential impact and feasibility in Zeto, which helps us maintainers evaluate and triage change requests. + +### Checklist + +Thanks for following the change request guide and creating a high-quality +change request. This section ensures that you have read this guide and have +worked to your best knowledge to provide us with every piece of information to +review your idea for Zeto. + +**We'll take it from here.** + +## Credits + +This document is based on [Material for MkDocs Requesting a Change](https://github.com/squidfunk/mkdocs-material/blob/master/docs/contributing/requesting-a-change.md). diff --git a/doc-site/docs/faqs.md b/doc-site/docs/faqs.md new file mode 100644 index 0000000..dbba874 --- /dev/null +++ b/doc-site/docs/faqs.md @@ -0,0 +1,48 @@ +# Frequently Asked Questions + +## Can I develop a self-custody wallet for Zeto tokens? + +Due to the usage of UTXOs for the onchain token commitments, a "wallet" for Zeto will be architecturally similar to a Bitcoin wallet. It must index the entire chain of blocks since the deployment of the Zeto contract, in order to discover all the Zeto tokens that belong to the user. Figuring out the user's balance is achieved by adding together the values of all the UTXOs owned by the account, meaning the `owner public key` part of the commitment hash matches the user's Babyjubjub public key. + +Spending Zeto tokens requires surveying the account's UTXOs and select the collection of tokens that makes the most sense for the requested amount. + +Finally the wallet must be able to generate the appropriate ZK proofs for the intended transactions to send to the Zeto smart contract. + +In summary, a Zeto wallet is a sophisticated software that will be more complex than typical self-custody wallets such as Metamask, which only needs to manage signing keys and make JSON-RPC calls against the target blockchain. Refer to an existing implementation of a Zeto client such as [Paladin](https://github.com/LF-Decentralized-Trust-labs/paladin) for details. + +## What "SDK" should I use in my application to work with Zeto tokens? + +As explained above, working with Zeto tokens requires a sophisticated client such as [Paladin](https://github.com/LF-Decentralized-Trust-labs/paladin). Even though the Zeto project provides a [go-sdk](https://github.com/hyperledger-labs/zeto/tree/main/go-sdk), to build a robust client for Zeto is a major engineering effort. Starting with Paladin is highly recommended instead of re-implementing one from scratch. + +## Why do I need Zeto tokens if I already get privacy with ZK rollups or Validium Layer 2's? + +It's a common misconception that ZK rollups (Linea, zkSync, Polygon zkEVM, etc.) provides privacy. As of this writing, all the ZK rollups except Aztec use Zero Knowledge Proofs for scalability rather than privacy. All the transaction data are public information in two contexts: + +- the L2 network is a transparent shared ledger, where all the transactions are broadcast to all the L2 nodes +- all the L2 transaction data are sent to the verifier contract in L1 + +Due to the above two aspects, ZK rollups provides no privacy over L2 transactions. + +What about [Validium L2's](https://ethereum.org/en/developers/docs/scaling/validium/)? They send hashes of the L2 transactions rather than the transaction data to L1, and uses DAC's (Data Availability Committees) to manage the transaction data. Even though there is no information exposure to L1, there is still no privacy due to the follow two aspects: + +- the L2 network is a transparent shared ledger, where all the transactions are broadcast to all the L2 nodes +- the DAC must make all the transaction data available to anyone who wants to ask for it, in order for a L2 user to generate a merkle proof to withdraw their assets from the Validium network's L1 contract + +In summary, even if a L2 network uses ZKP, there is no privacy over the transactions that are sent to the L2 network. + +## How is Zeto different than Aztec? + +As mentioned above, [Aztec](https://docs.aztec.network/) is a rollup L2 that offers privacy at the protocol level. Zeto shares some common designs with Aztec: + +- UTXOs: both Zeto and Aztec use UTXOs (Unspent Transaction Outputs) as the onchain state model +- private storage: client maintains private storage that persists secrets belonging to a user +- ZKP: zero knowledge proofs are used to ensure transactions are honestly constructed and state transitions are correct + +On the other hand, there are significant differences: + +- target EVM: Zeto is implemented on top of a vanilla EVM, making it compatible with any EVM blockchain including both L1's and L2's. On the other hand, Aztec is an L2 protocol and relies on a specialized EVM. So far Zeto has been tested on multiple EVM based L1 and L2 blockchains: + - Ethereum + - Polygon + - Linea + - Arbitrum +- ZK circuit design language: Zeto currently uses [circom](https://github.com/iden3/circomlib) which is the most widely used DSL for designing ZK circuits, and most widely supported by the different proving systems (groth16, plonk, fflonk, nova). To develop ZK circuits for Aztec, you use [Noir](https://noir-lang.org/docs). diff --git a/doc-site/docs/glossary.md b/doc-site/docs/glossary.md new file mode 100644 index 0000000..47d22af --- /dev/null +++ b/doc-site/docs/glossary.md @@ -0,0 +1,11 @@ +**UTXO** + +: Unspent Transaction Output. First pioneered by the Bitcoin network, the UTXO state model uses individual tokens similar to coins to represent states. Instead of maintaining a per-account state (such as ERC20 balances) as is in the account model, which is the other significant state model, UTXO states are independent to each other. Each UTXO defines its own spending rules that must be satisfied in order to spend. + +**Commitment** + +: Every UTXO state maintained by the Zeto smart contract is a representation of the secrets (value, ownership) behind the token. The form of representation is a secure cryptographic hash of the secrets. This is formally called a commitment because it "locks down" the secrets. Any attempts to change the secrets such as the value or the ownership of a token will result in a different hash. These commitments are critical in verifying ZKPs to process transactions. + +**Nullifier** + +: It's a special type of hash that is securely, and secretly, bound to an UTXO. It's sole purpose is to demonstrate that a UTXO has been spent, although which particular UTXO is known only to the owner. Only the owner of an UTXO can produce the proper nullifier for the UTXO, which can be proven with a ZKP. Nullifiers are used when history masking is required, so that no one other than the owner of a UTXO can find out which UTXO have been spent by a transaction. diff --git a/resources/c-utxo-zkp-2.jpg b/doc-site/docs/images/nullifiers.jpg similarity index 100% rename from resources/c-utxo-zkp-2.jpg rename to doc-site/docs/images/nullifiers.jpg diff --git a/doc-site/docs/images/overview.jpg b/doc-site/docs/images/overview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cc5bc2861a6dab1e65a760a8d46230784c76dde8 GIT binary patch literal 854937 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%0DSqZ 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≷K(~S*D7(;ay4qHp7My%B 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 Bub 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%0DQAN~ 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

oS&}9FlXou2+1IhHQ@7hoF@MmX{9AFRZ|qo`UYV zJ;qh$n19$c9lh!YY54R#7&7G2sDsNx#R zu8Vo#UME+_MNF4=j41qis6kXeOH0yLr=i?I@q&mUY}64<%I**4!DlqFi{Bo_12LM; z4FT6vBU+V(R@JXuB+h4 z#yw}O(`rnulOXrIWEZwI9uUjkl3%aM&OZB+l6LmP6mjfR+ms9A)wOo!qDaE5ngP8q zrf^WzmOgb~!FE<$pwL=`m7~r#d=8}%;7JfPVQ>C=slYAiC9Kz7^XDlfi=+!S+H;#@T z4~iev%oiU1Z6t}1U%LSmx)6y z6{2fmrKe$`KbPGe?sRy#xD{#9p|$5*`W6WR;$VyYiNxXL025bsh1n?LY4dWX*BX5i zN?No;0PVeS@hiSXM1^f0hapLPAVo!nUJ z*FRKTw_E#G;SgG32KPqBl7%(nW_UMMdMvt@CXFImZ8tgLr4>X%G(6K|Y@u#*T*s<% z>BGPF*~1D4oiZ=nbFeM(>8xy_q}m{$95~ieZP}gsFHS&7J>CQeT(1Y4MWnQIT(k1*EEn7kJ@@`rRXTQGkvqKDV!& z32M$i`JsAr&E@kqkO4yTC~!y4ZF9la4l7z;bYu_hTC;B zZ=S7Xd`@3ulpRqnZGE7=^RhluLj#7rmD3@$j3DXO$Mx!#q}G@IQHS^G83DcGAM<19 z*p~O1-nJfGxKYxmTw`e}aJ_J{l@?T(GYQv&^Yy|do*n!~E>Odh_24Xa{W`J6%Pe*F ziVt4g@^&)$Y6z{^8+9#d(Brk)P<-X8F`v$1TEStqS_ALbtx{m%H||}U4OT4ee|%6u zU_e+K?+miu;L-833CPGDWba3dI&|$|@zRK_=bN7b5e@bsN2sJ8Ew$D;nB?m= zIza8!5z|GflaxBiP#2>v#JQiboJ08c>PNCGv49?xMv8zw)a#A<9n3RRBJjlxd za3U%JZD3$7lv|ZG@r1W1*|xHAG~*k{B78}}T0d;1FE-GBJE2D%w+Yvc@lCc-1kY6J zwLZ1Pq>pTRba&rV>?&sqC13AXVk@Vrk4lYWJzbe|eNE=wlQotD9GmVaf!vU#gl9Mr(N_b0IQ|yZs$@+)^_mSrD z+bs_1NnSfSzV^?P<Mn^4j`wPwJ1`qxm2JQG9TxGI>EIV= zYP?luJ}LO-(U*ifXXQqJ2c44HPT%rwsL8LJ`HH#oo%-Ev^D7IT_fodu`}oc&^`b`- zpc{f`{wTo1IaxFP4OJu^GY!9Me7TYagLFgzXNb|%Sv=S=DzDa`MU$7j!qarU1}bQ} zEm_ZYUc{E@pA?RthJ2*LJb3}RdEmP)QBL2Yw!hdAkhqIY-9x>(X+SGmV&bRfOwStS zna;}1!mZ^R{Fj(HBk|>FY&xOsyB#C+8?6q#OPfPItUO1+ik)C9MPh)CAq$CXbYp1qbxh}tG6wQ&E z&RGy0`c=0eOBU>CRAK06tIRf-Fc@TCznc8h1IvsghpSQ9_#u2cJxQ)1_QnEIq#wyp zlDOPuM=u}B!}7j-MtO2c!3BLR^}xziRZq(d!{gW@;JHU;lB(PAV_B!C0YJSnnwc`` zD<`*O>V~Ht(jLV-=0RN2= zwT{S4z5FwOgCwVpLjYSuy_-4FadoY&^ZcRHtEhs3VgA%Gk+i`%G8JWOBjEwA&VYGl z!GZJEI77j`(rd%e+kFQ~zMqONj6F`Uj$H|2c~qnZ@4@ds;24@;P@VVA8&V$0X*Ywt zmL)1`T8&}^OH&K52}A1ev$^;Niz*KXf?1kgKrWtE&dPWXL{JAnAV!TSrz?}ZjGcW| z!}{Y`Q(g?2z*s0$ZB>G$ zU%z?K3LJM4d(}xTt~cmrL`uDW0JC>`42(HVpW6)Anl|^wPgOnm;VuX>^A7N!6ILbH zw@fMm(sI`^R@65lmho^xX?aV$aE_S8ipQXr!qT$D*beCysIEE-1VS5atlVS@&_}F^ zOFkT`{0>TpuDY{=*mpQyc2SA@4TKi>g9Pb>sLh-1!RNod_A%jPQ@72H`YNiglg#eG zZ%BoB2rL$=IpF2I`psX=ORRj}Ymbv^1&z7~OMfWtQN}DE1W7q>0$P8lUt(80OUI6U zTXC1M=t+yr?vW=0tq{7^f@3WS|&s{3kM_yAK_Mkd+ z)*MVk=+yQbwhCwb@ZwT1ow3#Czeek2DRGFjbh67ec{GcX2V2k_5}$cVgMNI*Z%yK`H<t19=kEW7P!8|RmaBHVt7P!CNB`HooYVzQ_ePp$1|10yp#iI`@Nlwi z2`Aa9yr>uzbbp{k#3|XdbzpW$&t!I0Dc0w-2cgu`ilhOJcvSGB@O^n$nrQuw&{a*t z3)bSdd5aB#Op_j^R>`kQn zo(CVFXNG={!NbH=1R;*+j~7ya-9zIqCqCc!2jl}V7XLT@{kO#Uzm^#1c=maGAX=%$B-$#31c;3%)V7Pul3@ok>&|8QZ}F0mgrPzGNF*i2#Pc2|lNuL5?JI zMt-oxj~p4D{E}i>XXeCDHp+(j+(nVC0+1b4Lp748@B}{Y0cWf$8yJeG3bLFs_H(M> zcGInpJq*wNJff7km-HexaQRc}%gFprpcrMT}=iR{%kzB{G3$Ou9euf8hHU#sU-f?L^$IIYNxNTIP% zye=c!_4GtOB&z$E&4KZxLL4XPT+TsPq>V&+58<)w?$PWGYrn~3M`UW;{# zky-Q-M61S*U?I7jMd$U2fpM|`PXl}jUB7b>J4G>xHNouXf%y%0WXAARck{s`@|2T$ zxFaj+($s~d9IqbZCyq1E4&`OZdOF1?79<61XO$(xgvo#sn&ynQs%jkFD2F z`(2*B?nN8;W|UkPp0s*0Fl}w4M$V1++h2&QsV+k>QjDc6f~G1;B5{$N-|gc$(z#$Yh^*^TdKjGMR-+?Hr<^&DeN`^H|Vif*~?qVe;f&f!YT zEhVGx|L6ZAeO{!Me;{6c<Vs2nG|AlYqhS>j;QQY|2^V@v zw~xL&^1J;k`_6ZdJoh)yl%UYR>6Tu8_~)&Q*iXY(obNezYO38TXyuFR)QlEhc|`Nu zazzf=^+~HgD0{U^`TztiRg4xuCmiQN=PgQ!7S7t~uO8ZV7|=J9jKB#uOp%7kQS4r2 zw6CL9g~pg;7rv>8JZzO$Pd7#L9SHaK%yNL&=Y9F*`gRdjgWaLY8gJ1SWgv+qr>%~H)p#i*K5A5l`fQ|Y0ZF0j z8)$gD=EK`tpvK_RzW((2Zy?5jMYp=?5~^b}Wc!G;AkYSq%q-ZV%=xPv1ov;gdVI^d zn%MI~)EmEBPQ{BjLlxV`)LlM*#`Fv1)uMrApAXRT=L<@MTd&VKh^VpT|Bf&Gss1SliywsXaL{zMYC)Z_F*w})$Y?q^Riu7blOC(R7(LHvPG&({w#eX>tb(HR4 zYq2!t^xG*;!n%xWOk-@H8O*w^wUQak`@U+FKFftut9D4banKC#U1n$vrc^jt{Rgow@~C_wWW?6}eTCMSfg$2nPb<-qTY}vn2+PW9DnUQkZWJJ)#aH zvW5!0my0)e#Amuxvg2I{*iB%ZW3hONk09I2&g-^wE>}nyI5GaL#=anU7q38EVtH); z`>!oC)=A7IO?c7-?(PILPs!vvoHIt0H#MQVF_PnPINmF)V1);IKy^E=v%hnF^@W_u zHoombl&1fut^uo8u%Mvhsm9}NNt;x}k+#w+J@25F#meO75$GG}&J!0eR$2Zyja)0E zLEcPAB5?^0N9%a%D9NMhkUw5LvDK?zi_jGlGhk}J*oOWmCD(9o21|1+I=7NGRgfu? zTiIl=m9*v<*4!`7$C+bHF8O(pX_qg5<; zO6&QG5^60E*=uFHqv^^rKc(7gbm(CAr;Onaf%vj1j<@W60+md9oO=M;;CfCYNM4J{ zD)-Z_cx|}jY@9KJm1=UsCLY;TEre+>TxxTKvvy{Ba@OI@bwXxAg zy)u}ff+em^`1}m|nSqnm0XQxPrZkJ=il$J3D6W#d)Ax7kX-L03W4tHX5nn+CI+6f~ zdKX2U;wEPbuJjK2`E01&tP`vMspm66*PV)ZT$oVH}fvB zor}Mudg)bkufPpD$UE}pN29VFilF9Y{LH}6m8)h8;sZS$X*bocEhjCQ8VuoaSUEPs zhLhz~()t(;`U1q8f81=Qk~wIJZjC-1vo$FgoJS?{C2Yc-ra9YP@`xC~ENzoHfXOHa zX%!o`O>P;{@Y0_qH9<>ioaw`h(StiGMCl*_pw4L#y z)LDcDjuEp+0a+Twxf?2H??>eJ3rc>OQAMu2?upF zQu0=Z9(NQMlD57o4;{u1PfKQbB{Laq++IE15;5=U*R>n;difM%RzyEEf{;x!*_2;YO z-x4Q!t;WkMUhX9+c>evA-@Iriy265yeiZ?cS^bv**Omx}5pzk$A9D&3L| zDSN57w6=~NaK=ZIcKK9B?tT0xrlWtd_SDk9KjCbW&thB+4*dqQtQ%;Q;~#Q8B`qzt zm;@I$aCD^d^R*E65||L%H>y}hh?@Ze1y&PZ{)fcdt^eH;Z~tWMiHTcmgc8mjQ+0Z* zbVS3*nMKA+rM|8`Yi+Ew7NRTb{l>Vx#nhUG2gwX{lH>UqCHn0x!B1oJubOkjnRNZM zsvfMBQu)>$qIX@EG<}xc4{4zXJSWV?dzq^o@Rf{L3L~N6%v4`FQF^(52DE`Qx=3>jmlV+GC!Qq?eS6($be6M2D?5l!Px@b50r$>i05RN)b#c@GFVFzPdv!Lrfy^lecqrcM);XuSI zPkv>iKtoPWvs_NjnP9I zvN*^($a!2rO0~ap?q}QI|J4KjxBYf9#d&(iG^~pFc2YCrJBbF~3!|1<+puGciXL^! zj|X-t57YSfi^ueS5lZlG3w|%Fx#dua{Z&s4x$oIMP<)OiYf+aq_!RW8_3xIQz2h;q zpGU`)@7D<5vuJxtuiDaY)%Dy8e)QCwsJ-&ZtYEvE)QZ0VHvEUHzi0pBUw}fAux#{c zeBtEFU9b8@zpF=g$o&;(*1?`7|C1YT5QFa@@GsNn=FT|>x5kX^SbFaI{FDcE{!XFc zUuO7^e*7=b;Qb#N|3ABT)(hZYJn@JBMxBCPTpDUBJoPvCy>`0tCOYFK1aMv`sR1`o z5aJdxlJsh5(KXazI9=_^L1JM5QhQBX!9(;bRh*-&s|&z$`Br{kOf#}nw0p25wNWfk zA;GXZv4oA6DR;YB^J=;NQP3uwfd^-THNt7#bp{PEr>+uJgB7r&?%{{M2m1Of@$zEs za?9DVC7J}2wCfE4nY!Quj?MrUL0d8T!#>LC*GJi=-F9+C4Y0k=+sI{*B=nSV>4=$bYO*Pq1D zLdGe)jy`ZR0HL>V^wL+Y{CNbn%;0tp46MxVpD#o^j2P%L1Rjgh{Ey_^)h`l( zplk!tP62po&#aC_z3|1TArVfrCXb|#Nl~xld{osBgjugHwx|_i`uQjC&AhL*$fp%H zmmo>ky6^flyppCXdhlZAC)5@$un?``_*jITe*EBKH1>^b^Asv-rLAr{quIo8ETzv( zdr2z&TALp8julUc;bYLpu2Tx-+HMWD(w3GN?F#x5C+&g?@X^HO*BjL^8e|d=m(fu~ zn{&#}NB+PFNc6C`(=#+>=#}>`U8OELqD%?6q!{llc|mVAJVhm`tm=pCL#VsUj8>^j z6UMRcS)Zsf_>k^m=YaR)$!%4RNCV_JMVD(?@=U`Q5UcNC&qh?v_=Xt1421atSa-cJ zqQ@{X;lahr3D$XWYGCCX9JO%M?x-jX*nxEA@$1JK>?x^AiUo->IRya#edFP*!hK6T z+26iO@z#MjT~5cnK_UedTJrC@CWLdAjNd6|@5{mCsXRY(a%`cTw;fxWB!(uvSGkmK zujwusC|L+rvk663Pe+BiBKHMYkth!569dgiJ)H(JZGya67_5>NW_Fg4Z@e){>G|Wzm~^x8F&$=qO3P=^3w^f zub)9DQ#{^U4q@8PJ$E;7r+gV&pGjcO0H$&&LLGEQh?|{D}De1KoA6ezS{sD`EhQ}p;D~Gh~zB?zTfB)yM z+0}*^tX2DE#KcJx#^?a)f+Ie#^GrP1KsT~a0o@)9h#(|Wf}3Cmr!5AXc6=UOcTzHX zn*dYxGU$QoJY;M;d^E6*&2m$^sO_>r>N1-_B@kh8sjd3Fa29}pD?v_$%=X@!?}K96 z9v752?$*)vzy-sO*)$D`ETptqNIi*${>roFX|mey{J253vK0tB27S+ZV>T!N2pd*_xt`ZRd8);FtMn~=mg z&>x%*&rJtMKg2B6GQ%0HW{YG)c8ayAl-DQ308)&)0fU~=H(~UPJ|Y`2Xbc6|L{)Z| z27~sI2%fQn251CEXS?nHYAsueglc)z>t6JmmX@~-@zQSyJ+VuX=Ri-OINI2=D`5Yjqyd=?UuBiF8U&`jHPMd1Z%7(4 z$!m(Al-NS={J8Y0g3rF*s1GMg+FrOydujA>2r23qlS@osAqK#G<#_D2tC~JHz-V}T zv~ynFFoDV9Y@n77+2O5!IaXppr08{z*0S}RyonsejpVm-tB}ValfYXb(3;$qZSqex zW8x*XB-xTdK}Q~}BiTVb&DVY8OIwd=M&tb^bzY`+53n4-?26rf-CpqSc1ad^gSDD= zi7%$8uZrfK2Pc%xn^E(hR8e9PUIBsZRmFl6OL6R+o`pG4<%T^Ua$^=E2H-Q39jS-2 z@*Z@x-%onR{@FI)CC=v18={;flXqP&_ZE2vIOn{<*i3Kt)%S+zu2Y1FZ8x;xsW+Z$ zyBB07I2p>65Q(;^g!lw}G^fyvC!CYe6iSR36R!W#b2El0V3p!M)_?)i-^vuner^$I z!32^yrIc>axg9{K1xGc<%aVXBRy8ii*Ul4wzvUu*6Lrc+c9a zk|)2IZ+~hr$#;Dr{53Z8*%n)%QdLJ2vsYlR%haZ-4mcml899PTyhUqZlMP^qSZpHO zh2Nv1CDRROMIz{}vY9P*23jCn3+eAF`DgOXhk;+~;NpVy1DUDa8JJM{(+Q^Cdp7Fx zwC$^WG^IBOXUxNI;00`z6m9@;0NMcV4yfzoOW~ZuM zsc3MCJ=TG>=Cc*Fl11N-J8xUn3GS|4S#G*xozCXTmE%xP-w;!!NzqeMa^yWH=OZ6X zoMPP<0-fle67e7Xc+}C`>rr6K**hO=07Gtz_=4ATG6o~Bs`EXP7dDzz0!S#$Fkmnm zi+eKSDN@qW5*1U}LC8i+Ds-eF_>wWgkgnW4Zh|7RQs-6Fn&(|7?lx61|t6ixv%edr@e*=Vaz6pGqhg{Nn6JTDP2@ zzcQ_Epew-6(Nas&w=o6N|Kj73jEZ{&twCL@VdCwo2aiZ{ac@7|{Dmsq{JHHd)+_H? z4_T~hrOUbap^2gF0vfYfNH94!nm0j~r`*e9VHgh44ru66V;y4^oP*2lVFeF5XEL8+ z?eg-*pI$a;`Od8W1Iho=oDux3BKBULHkk8$l*Kn`wyyc!O9@O&4vX)nNgAlzZaVVw zRX=>0=0)duv!Wq+lK5(}gp`RV&)6_p+dHBO z`LloXeWJ&vW4}RtFQeM-XO7_is55NCz1AD215aeKwcU8Wo_S@&Ets_uZUR0W*H;i{ zW5FeLDc{d_+(6IILE*Xc*+@u#)I27`vQ$Lp4$aoQYhxB!67P9=)*#qVb(?3U!96zL z*36MWVpH&NJx1!uLN4hIlAIMIhQbFgxQUD4KGdhR+7Rk|e&o3HiOq%g!|VVAFn!U90X}DEDDeB>V0ldm-HoFGthq^ z{eT`)V_EWOA}G&cakW=OV8*B4EUoLB3^=4Cf z>3;r|;dj&>|L$#d4%@n1*;r19e&QxzZaG9?9Md}r#Lj>P?AixIB$j4e8e5l}*of@sOs&hFNei`!WIlSBel!Q=$Pf1JZUF~lYZb}V975--b<7W9fR4h=^wi-7bdEDhaM$j zvU|v;*B(~gtenLzRxajXyq`9#lr|2I&m2Um1m2YOJ?t7ZePWhWN46U2X(4oQ6}20- zuo}YoQ0yJs{#`z>ys>`X2?@if(_ymO6eYQ}&|qCb5SM;!Srq=v zsRmiyYmZS|=B$mr-gN8AhbnLJ@5*|VGq7w9c;1vvb%EU6yt*hb*iAmmce}17CVyDp zdMIY-)8Vx0pY$}-Mj|NPuPkxBs`>9G}Lt^xd z;42~af7rxucdQ=B#CpVuA%>YZ@6iA0+5gGQ8~v1co3p~eKIpp8rEA}9IbU51>h|aC zDa7^m)v#t-QI2W>sXIemR9^LuI2W($Dk~bz3@@2l2;*~6<9wORw7RPQ(-Tu`-xYuA zS@6d}G7M96#frm;?Sk_sw!8Y;3Noo8Y}qU-Ul(9g;f4&U!Z)`*b5xdvj}hE!Y4A8r zuRw9nY~bk8Itmx+Qd1nStHBrz0uvWeKmP4_=k#mJLv@Ihq;;YkdmIYDq*3&IfgUz^ zbo6%1IODRwQl9^6T);-vqW~WC+yyelYIJjd-O> zRni}XO%RqBGk4Pu{ldb{F;uKwz~!)zwceT=@gLRhSyM65N!U@-7X+Mve?f*?$=d)x zx6QMPvytMZtI0j(4^W86*V7b}i{lem4~TnVjE5bnqv zPv2y{P&kI4Vl?=y08`!}9Hzh5#iCAlZ*)vrtC=ngXg&UADs_tIe|Ps2C7gwTz2_e(_5E>^eXj(qK< zoYEobsdC_>eCBqI-KC)B`0P^kSq&d71xYNFQ&B-}2d_6TN0Nj3In0EL1f`vN^ej_Y zk|3-txjQygB9+osMVOPfkXXmnrh~0jEvyBbvH*>Exb-k8i1={6Xv6hx2I> z85n7o4^9AKzg|T%>CBh33qAg$80ktyTTY@gkt?OtHtM7N$w(}C;%$-}JUPUgYqd%$ zlTVfYGbm!>9WYazkEG-@+_E#Hl*cEbzt%?E`9CmqMl@YgY7LLt#?SX@Re|Tkm&z7% zD-EBUEfk#+ah0-cyN4st?v9WzP1sWQ%B5ff`oZ;aNu))bMkGc0eG@wY_~|-92`d5Q~VO z3&eU;$x*XCi#P5)8s9)Q+2w}6#!i#YN+Ub1m;F_4bJ;&sYa1&f9J<5TTfDE|n9kbi zTe#-!NTX)S=Z{4m6dyWGZ9d9ehXfzj{Pgz(Q&!bo4k`Z*($@w=E7xC14)b%VDw$Ol zF6ky~h#>Z0fMfdahWwf68haO;T4j&eog&cV{z}G@PPJurj(IQ8NN0SyaMSi|*w+Ab zBx`4D_vN3dSgyq%2H*C1g~WlYjlN3`ttmDi9?kuCv43yv|F?~NYD2BS^n-VV$;whT zTzB~%!E5;XG-lUHy2XULh-v!ZX3E%HN!UPT=jjL?Imx z&dC=`9W*JeqaU^2j9;F_I-6#`TBFb`0_@2-D#FANp@lG&L3K<2R;5qzx23Ab1{U-9 zY+;4J7eeRzDPB$#Qz{lO9_Mtws{MHQLfZ*D#t@NKm{&`AWn3Iiu@=1X0o>u6mm@2j zBPSeh*5RqN2Rc(y4Fa*uIi|l7_1khbgFQyGwmHKtSmOu@@L%#{sS6k9F*^vac>rY3 zW-#&QI*T6CaB=Wa^L&tG%on2;$$|6RGQx+`HOySQ8HbXHYm=N`noSo6CB4GwkMrU1 z`*`Dg=nrWuT~*LH!|l=(e8%UTwu9*FvG`K`mKkjs4Bf7#D6+_ha3=cd7v=tlF|yeUwL#BaJi>R9gi7|h#9d1y5C{gW*LnNj zGf`LB2&ZOB3~Y-azwd?EQZ$=PBJxZYUkYq*M@wxb=&>;Au?z`B=Dehcq`@HiAIUn6 z>^eo>PwJ=h;bC7&a@usycG$}UpNl!Xp{eV02J5zpfSznz;`oCzXU>R1dW*YCu3Lsh ze4dKU%QET1ouvTm5X_-GH{DLFUrxmUfjTE9Kqt9}?%9n97mKsUy{Xn!AYY=yo5H(d zY1RnA>)Ew$n;I3j8|AT*CWdGD@Q`vG2`u{i9qNC* z;Z&-YeTuY?eR}(Cl?nx`7PmBn7lnrLc+%NgUiQcaUml095pBiQzh2s%-m>5_yZCX_ z0+Z!_0;MOtmCeduIP(C2q{voX!yU%ntRdAa{XOyIyPQqmJw&?l%Iy#p|JDDV1O9(9 z2VDK$^W_N{k1dvl$oF`Krp<2}Yjfu9Yc{CZg}=S~(XP#{WsvW8nkNO?Cno`opiK^s zCa~={pF87pkeKSHfL{wYF`CDx;qxBt2M2pEV!+bIJ{f&@G=+tE0E}}VPMZf_)Brnz zP#Lj(=rWC2)=a5oaV9-hvcC`?B5Z%$sla5%>Nt`|zHIprVHqP_Ihe_>FGn2$2-!=n zk1nJ{Wp0wRAs!-nhv@D@sh6Sy_pS_otmb|n7dMQ;*@{6#wV7fZpJb*ZvJu$;w*A9$ zt;^OvN%snK1j@U@LCmd&WolNqRJRM8A+)~Uw%)df<$VfbHSq<3{5U&XFG^x|t(;^c zg%3#Ccq>5#P4P7DhU4COg9#k*99c?h?t*NLQa%!&Z;=DW=C)Y*=G@4{$Z@2|=^BGA z7*};s>MM0#IgZsB0}C>(dAn3XZD|v!ho;Hq2cw+6)ahMVSmd!GYtXC*wzDv^_$Rr! zl`Jd@szDLb{>_295BDod%!lO`;AT7BtKEbo1ROqV)(!yl{Soo#bTz5xb9KKt=rq9L z9;mKltZ?Q6N%_i-s!ou(pIr(>_}~|tdl_>w=V_8GaJ@Xw+%BaTwEax(51f%(WW+Q$ z{*Bq_o5OrTM+UUBbOF9rG{Vl*`#eFp1bk?#x8C&Vvg-Z-;cJq5D@Wn@YX&l>eESGo z%^L9hSNY#O1p68+V(`jFi+4X~nz97n&fT;2HeF9A6!$BSXCpp!x;;_9Kkly@%GlNj4^?P;GWOwtqC00_e3$>P zsx~f{(iIR6#Go1tQdq{sm+$firWUfQLK&VP3-r5KSWHUgW7!6fH*?>X0%KX3|7ZrefhA>{~`IN`K=#7Q-qxyh<61kT7?8E8~%Y~o-laO8mkqES5FzfsJkWLqNaH+8K(mwJdhD0CU9 zZ}wzf(bj)WZ+&e~f0@yGcpoDw>_^9w#{g&MgF_JB~_hlJ0OmGqVQe?#*} zWW=1j)&>xXmD{yfLa9zeIl?(9Ej+SV-b&CFwmZN|l;x&M2`n!IkGoEXa?B;-?K@5F z#;uv6R=|rvXjK>Lkt=+ms}ka9a1dKEZBN7udcVuV=Ht9)dbcFy<*a?&+dX)&2j|0! zxh@O;ZY08?`rFiqm=kpc%X?E_r~h+3tY580d-iMpd;RPHye1_YV+}4dYcf(`pG3zF z*3a*6<8g7RF$<~dwspF5oCy~T&PEz8r~gKYB5D0pyaI>8!>0|#`Y;Y1V8P{k(SLPa zGcY!jaPWart@<^9UucCe@gEHZk&gf41Liy5_=iFAU(>fbS}$9s-Hj%G8Ti{2Gp7g!8s_cvyb z%ENo7wd?y)b8@NRfHfr9f0mstWy2fE8+!67J%4PQL@A+^Sosm%Kq(@so_hP#zs}xdJOLj8j~D8N2PIM);yl% zR_Z+@`j)F7={}Kz8(9UJ)~n^nDeu7f@!*$hH8~{D_NIVWz3<;u zBb^Rz2DPj*7tN`gDmRULRMao;byXi-nGDf3p9Y?@CGFmFD_yg_Vu?lq&%m z&h)?Tcoi)N?TA$Bbf$BxemQ2_q^-zst>``q58eCg4%eT>svT^qgdITxV*kH4C_Rp= z&gan7H>Ymbt`p%|MytAU2@28V9jQr`XQmQrnWK_-F0H%LV^1^QGEY0*^+EY=Jd_5j z$$1^DT=B*@e3?N81YsL&OZ05}^oGWtv>r-oqoUwr7=WKbv2`?%1P`cs0q;_{AFjYf zx-J6Iva~`GvV;zILnP!G*V$)-Lr(Gxir7Z1D~~D*HY~u5qlxb1imp;Wv5$lxh-k>K z<#0q$`~SnU>tF1@7U(y=^DOoDM!{S9zVt0(MW2qUQ_?=mYit#qD<3xVm4J1#O{@g*0<# zq-C{|G1yA}Q{0`}K`wQBo0)@J*t%}xs7m>+I&9|F>BZ^sWx@6d zG1EyeELp9(RvFxY-qioVdYi-gH=Bw4?HlB}#pO~Q! zhRvKv_hxD5VlAteQJN-Q+`cAwP=^SH2)5!uwI_$~@%eX@D*2DxIc9G>&zM+X;kPd& z(1sxtZt7`aM6emDetyhymzKuNw%N;2 zAM+YH_17OC6Pw4r+%UDrbooj;AF{<^H6m;SHn^@34M3j7s)1<0XO-@ar_9Qro?GG6LZoE%iM zC}d!NvqU}z+IM&1?I0FiYc~41k4EioxFL=?8&2A_r=5RYP}LnxbtM7q31OrJn4b1PA7s-*#|NyrdIetI3w}Od zLr)rMD<4!fs?jKiGSROuwbW0$ccr}>;gh*$zk1=*TayEuE9gQZL~j0eZuz*aM=l2E zD~3!0z(jdaC{#ZPc?oK(}{B>1PL*n{m5HfCfnkXk2YM5$lfPAYh5A~rO zCo+*2acE?|14-Gx88_@C$Bk?PY!Iv_7vMQ{O_7{JwGQvwM#!5hY-50TX*@s_q zNUtlt)R4*T27)&1whp0d9~#Q=PL>S#F|QJfE!hoAQ{H%JQ$_FrCh~mzS;(i)yEX?jbb3M0rOfF4*YZm=k)`E_4Q z-0Wl9iS@$@Mqo@2nL5zoTHdDv)YZA6aWm>Q(jv<=3b+FB#*kOvfJC092vkJ zp)(}%1M)||E731|bqfLz(^~e49l2+vm@He#p?sv){BFGQ+o$JHxbScs{v*?g?3%aA z3{-e#cMy9G~Z%yS4Hr%>17L7DjFkc%1#LLzp|z>%O8@cMV)$3bW1qIAWx2abm09yw zKBS2WZd-)pKSSX2&3yFaJ~!4QC!PR=ik`4)JENjBp$9^XY>$}SyEz-eWhTULZwl=u zcYnHLi4brjC+^+=kg+LbKEoma@1o+td<14ON(Y(sCgHCi9LNC5qaXflmZyXIb@`q* zk*+N8T#wE#d$*KN=W^-@3cY~a+J!I3R=!p%3J8sG~kXFtcEpOgP`ettG$MMr7{vYp`e8fbsWKAJk&zid)p^;ZQ=btFC_vW$gLj~ej29&zh%Fc^b3m_X5V|f2IL(OUU_@;n`iQ3f1u{? z7_AYh{olVzQm`8l=QW7|3qAUFpKn0EKDiv@$Z$eK>>uaiJkb%nn46R_w|JOy>525o zq+N=kxM~k&Pwzw!Nxu5LcO`AVULsE{-~7i`-aiii=byiXdy`i#=_e_ki?QVkPA(JtQ=6Unqtv5HP+C?+`NMDI+lKJ+DuBEnmZFk0S zXqSxHk_3V&Hn9-eo3`8;yAR-AfQCRRjctUixzn{c>9F^K*J(~u6JuDgjL{JXC$tzN&v+WXdv(Hdn;trq$q}y_=bC%`R zbBqV6hpt|s17P<%sU~MUjp?dcM2T6XF`LYEv%vtp-~r<&TjsSWG_HklYnD5Aq8+`{ z8*Ly|GmX9LAk?E^b|(q^kR~c9I&uTO$T7Bvn=4_xrWcXi-@f)>1@Lb&5CaHLfjj?8 zfSua}zo8wpVJxwsZQ-J(+)``~$X~AtBjVW{aLNXL$o1x;ZOfAYj#ne*^ElWe zf4N2p1O_vPps*@GvGy9C5i*$^UFu9zPkh7`o5)_HW0H_S*Y+!EMvG=AX=y^Wb+~Q# z6Pch~EzYPKhGL!!i|f!8aH@D=;{aG*@=jVTWny;RL=e6`C~`(oVNDldol}Y@cJ=$sAMv2ZWFd6QBL-qxjxuMx@?GI+r16;fGNdDV{XfL znK&8b%vy+!CNT$POc`W8iZSsipvZ$d;{X##tJ(}@X;%*&kCFZBshb;vBQGVc`&s!G zYah{q3%u_2fYr&xtrR!~jak57$7H>^;@8&J)&ojQl;xbsV2k+mgYSmGV6e)HN!{U2 z(Rl%bgd8oyW9TE{Y>E}1ccgcWabMr4oY!#a8jtL^61VR!m@G!4;2aU;MG;~7=X`wb zbtd2XP0A{!?#tMSIByz?FL{3wvk5QuE3ISe1A@W?pC{#Z=B45dTH075c--BiteUeb z!I}^)h`Glgc-W)v4B}DW*w$64hunrgw3&tEo_8$Cf#;%?J5-d-%%HBHcK1i10+bkd zZirF)EWq9bPzak(qbKo-T$C7MKKzH@{gwVz@P5+637?%cq1T5We~d3Uc>gz9iqot! zamzYcySDD%FT|-&|F$jKS?|k|@gV!ze@^^zx9{B#7jrTay3=^XobdO8(6hJxz3XgL zH%}YU;f(2|N^6ZM8{>7xMNaPYTy>>=Q#-BIIvuHqeQkC7jB}0E7H)#NT9E`+fVT}k zr+SiW@F@Pa*}{zW@h>9oja>==>qgC9S@C+2SvbY$>oRAeFRNbbYFW>ts%A>BWvg%W zDeEO@PonQ?Gi8N`p!d2Yr}9e;I5qK&WUBjizI~PtIwLNLtwNU-KN=DTU>|5ZrlK-HBYlIz8;vQuDP=(gw2dj4H&q60fh`=Kv zP9s4AQ6N+LJ(=;#uHb2BlIZ%=5#A^_V2pPz^Viok?FD9lq^Vh5iAtA+VeZkA+L1Rp z3$(mUThTV{I`Y;obK;+6|V*SlOeP-wo~VG%+aeZB5d+!-k=A4&H# zw2y}=p2e{#iCwj%B6t%wo8v=;YUiRsy&^@t*Hsv8O0W~VH62ZIhuPiEE^O;wS}1C0 zZq!XZQZL}XQ$*ftZhzWJk?T(jRKAp=sHd@1Fqhhxj5**;cHNw2aa#Y6m-K)SMbvg}Rgv9V~pY2?Rc#5e2S z+z$*gEeXobHB0R(3#DHRs#>-Ol^wL%v4o_Ia~K~hW!&Q1Ib1D@jECF#E-c*r{6*73 z5PnfVX2<`dX+4Kk4ryEh60Zw|iJDXOW(V{JpxPMWAtLj0{|H|OnN0-2_`;}i2%%#o z^RPv1K+;rHN^CuQSr?6qb`Wz1(k0ks=Xj$L>thIPjCqGv)Xr)bNAk5HkCc{xoLDx; z0kgwz4x;6Ur*gGh_G0O>%a_v6D1JFAmn&<#sM+Bz)+mpU1Cy>p9h(L=boptu)bL697x9{_S`w|(K>Dc0BqRPb78u^hY z8gc4xvBrs68A&P6I`Bheoh@9X1x$1O?9;CpH6Bct;k9=);Hq8oF(05PkQ8$7^QLi% zr_{Vp)tar{6C>Hjd@7fDP>}V$47`V_d#|>ALxkAvQyWfe++hbADniCVf|~U`^UG;| zTamu*nTL@<%tuxXLm%KtH%5YyHMzCq7gs0A`@;|WGl-LskM|F_M_SuP4tUY%;pF58 z;NTAxjNNiXu!SULXI{je1+uv6jt(f{nePvT(rdIMaYZcFqJ3xIpRz5F_82P_zAZ7F z;{53b#M^v=Q6R@W!?vVU_nMktw>Ak{=#z@$^P=X^(}JCi)$S{SX_finLu#9zmDy3y zXv*&^bfql61Mw}LZhR9H?1{nTuiU3Dx)hQ(p4sATaQK|ZfyTzaQ4RJMv&mvo#C#lC zTit}1mlmqTcTM7+cfxGawR*65879A~>@uXY8E9I*j3U28<)L=O+%!}2o1g?O@13;t z3tSl3VaYn3+q;Z9v3p5j8#JGRi&sfYp<9Icxd`qQda2HN4ayNe=yvV zv}02}MjqeRJFPj5*|u*wo`to)16=Ir){``OV6*BFg8QZ4tqh%d-(kD*3QaEPqr7rC z6${;)@~Rxdl7RQRHg&lGTvY9*Ckn@sh$T|P`@49{yp&uE@2&$jD|2_Smf_1n%OgDv zX<`T!lDCbFRgTs91zR6hU#VLxns&(aDuXVCu>|GA;TCZ<9S?XqMbd)JUat}Z-&Gdj zA{=!rYxeA47wEF)W9|<#@r-d-V?_A)13*m7zcredDJQryTJf--oJ0Ww+FCxTr_f8LB)7axx|S&tecKqL+DidbEY3+@6War z>17uhgxy?`yV#U!G-**G72|B~YQrkaGN6y#-0xguD?lv-cDq?I%O`6(l99QW7o5vZ zo~FrgpR)11zLz?{zIZ-Q2m*vg@I#qaj=@k+Yi*9^FY(^iPEBqby#cLhx}Ij)rA>3` zFYWyadeF!5A0kKLqb)=QLY#W}K;Pk8c-(jL+M8evQ%S$X^EwjT^?T1(aQikgn~|q2 z=yDVBW=cWqS}WXXe|sf%*A@i-DrIeSy_u|{COOp_@<)m8FH@A=O zL<%F!Hw#PZxWwA+w-D#t8xRY7UL-r;+m0r&Lfb2zo*1+(ka<B2-8`kdO%;d)f1K^tX5aj zdgks%+$17$b$}Xa**&PD>{>ZuYcOSX0aA1bm5?=rU%YMjV&`GUi0>sJQe3S1{)z%= z+ucv+MrR!6vAu?*|0FK14AI$;WaZ};A|*WQASPzGh~V0cOYj^iMV_!&7>#6=;2?f# zGI)t}fomRTpB#eF>EP&ip*y9fj_|C%F-kyXA&?c!`&XQ#-#vl>E6jeS!x@V~Y5XD4 zUma8St4%>G8L^A?p$lxPkG8VjjFu@Ynn%6sTS$^Q7{ zs>an5p?5Az5odYN6;I(siSO$zzEu5&UMzHdt>a#_fyNa=Rzz-(>x&s_?qOp~TDYM- z!O5CPFdY}|asl2Jh^~h!-t+Ac*-u{_<+Q4QK(SV{#lcj`$o^_kCu&u+UBG#D_nLt% z(cy+`5M#(DOhtR3VT(&y#{byC77hTYmfmL|RasHB7fo~)ks zUlKE*0A7U_8&?idBDji5aoB!`!Sh6iij&0;xka8lGZp`4q`4w%CeIOGWHY1a=Y1dn zmfVw(PWP&K)DweWs9dSyjY60cfab*htgL6UJKR0$Lng9=zpB)!bnw)7UC?8EY-=m( zcbqhAk~mNd)9Ti4izT>k5FaVZTTYu)n-pCFKfiudG3-|MxxuyEVj<6Yf%ZBq11;3V z;bwCgem7`u$Q?Q>&rW1B?8`?SHTvuh52+!7}8?2O&8aRJlMhMWR_v1=PDnu-_k9a z!^#k<59U%+%<^_F^nqnJ@W5T-1!Q(s5JW?1iE~Zfawr$IE;D^-fuxl(Vh}K@obw8p z7pSwQRM&6c6iz*gdHao7K=W{9pj)Kb&RVLF4n-PY4Pg>Apc~ zEJ$N{zFf9dZ2AZJ?>~mpk_&f9=5@2B6WdG4A3vNep3YwmX|!I()r5tYq-yLxb#$s) z>WS5Zsp)03bZV`(<6E60Im^}a&Nv1~*X*&pa|jSlc4)rv2Lr(O__~p6Y*bB#RWgU@ zA*KJj-@Vei7jZMt<*00XKmp^2yVNIR>2Ry0P` zt=qX^&%qIy-UWq>;VjYLV45^X;uE!a<=woi9>UGtNtSD!?T0#1w`>Uw3Uaq{^WLXa z_YP8kb#FAc=6zkdT6cv#{GuQbZ}g0zp`nf;tDpeW$5UeWr%-ZPrp*}VD1`7SO@njc zc4zeFcAiX+VW&LW4hps)@*+uHu&&{E_=&{AUO-5!Dp(sAWaT?WNYmxU$Gfdr0qR$Y zH+nzRry{0>u6KvLt)r?9>x~+Q%{!3HB^a;ybj^b7L)A9COzsbos&QogL_)tw%39k} z3UN5JJSwhdHpiie1F)kvl-NO@BjFYU_~b2ifXqgB0(0)wqFA@|1N?F zk*-`ckBOwO4rOjUo{Vko{{Doy*J;O`A|5uwY}Ygxpt_n9%T%~&Z_$p=J=Jd&`c(dJ zS;yR(e6^r$#SxW{-GQl#xR|aH^g>r)Ms7gxp30p3L4f}6fobg>1(K;8ylcrr?GXq! z`L~KGvG}YhI*~=3)T8+wRjye=WK;e}@Kctvap;w#^5jliH&Pvn$HR0;WyMc>QD6K5 zf0F4J=oC)fuLt1;(UxREEM$kNIfZ@VT!~{h^Z2g)yo`0|w&UD_M1_eeVj&ifx01cM zKkaUiKI;LHr3NZ7Cnk(ys_!|V8xT#bZ{SEPrEK@-8_{~r00j}boVv{5;Y5Lxuyu*^ zAFH|*ZZ-`W_XIo0MxjqtfpkD!s(74Y>U=d06;6IX#yaA3MDli0L%4j~0)TDPKx$DA znEBaU^oWk7&+jjv-wzTMp=FW&2=c1x!l7$^08p*#3O*@VP|zNKn0LjOy(W&Z? z_@0N{9-_kB$Y*8PRoCtwEiI#SRspt=$^f=I8UgtO%l=Z+>gE2T{c0 zw4|l-(&UrmTI<_mTi(YY$BkU?4`h6Fs4egSnpYgM!~?)&)Vxjp8Mo8Xa=*85JRgRY ztEw(C5>>fM$2)SOk}CI7tnql$p{xn_<6Ug;BMi2Nfs+1ejiM0a@Svs&+FBH1vX{pM z`*s`WkZbq2xpCm=6||jk=w-|kG@VD!INFfVD0cdA;m|nG`}xjI_{41eWWqa$!Jku* zlSZ92Kh91rLPnBHEAP}>=Wdt+qdz?H915VJ4WGG0D|_#l%(5>H9P6Ji8M?B{efa>a z`%V00EyD>^s^?d|kQ+ofwaPy2sOJ@AWxOvC;0KZF;X9a)0o33061SFW6FZ9%oz|g@ zew(So!z9 z2+@)R4m;7>!rK6b)PIX+eqM!tU)O{W~6{ zgMfJL#}8wEO#EIk`DaJ}(Ekf+qs^bc_n^2kl%cRCybj`*FJ-BMO&5iUN~+U zE3?4i3323zv>yJYTde9lc}c*x6aEK-`zFlB{(Tyr<3@Ku@25w{=PKeo|FO=;SZP{bm7W;mrwg;IJUXh z%;K_-eT8U8Q&cpr>a*h3<$z1=Lx}><{8oe&nlXPc2tt+ZqZyiyp38{17SQZkG`xcs z@=B!JUWsPKo2<5pc*91K~fTXkqvBB0f`` z{H_SUC>(l)bjx#|swpwf;+jYzOvWnuVljwG*j;!++;uJyG(rd>QlbTnQ4T2*g71pB+tY_q;T4aH6T!EYtZQrqe*-F-v z)Jrb_pLSWgou5CSkIBk@`R3zEZWd69ERtiOm+Rk@Dn4%p=D$e3v(dx)MZ0|{GhB?4 zG&CKc>5;@PMX>3d(K>o+H`^2FA@@1u;MF%1J~BnI>UmvIM;KPcMRM_zF_X08~Tx3iP+jyr|S?qAD(GJJn^DGi4o0bi5u=d$Zc z^TAOgol41~<5#QNSRKgutkICM5WrQ^<85e6Y~HGp2xeV&v8i3RbgZxKdiz2IVGz-x z9UV%>_JRbu0^IVxn}4TnuK5NiF_b%AaXT4)YuzNs@eE%@XPfiVx_C3fg@c^^rch&- zCo`QaxgsIa$CJY}*>T<4X8JUGijlA`F0k9)xgD*Ws5L!~weF z36)@T_QVst)9sX9K++!!MV57!8B|{h8p3D!b{(M8vRW~;UpPgixuqXQRQJT68|N5U z#r5ii!!G|2Xuk*~f+h;+spj8hMDehNHMM3L8%b8#IU&r$d&q94ua+ zt8Wjjd(VA90jax`Xm0hGuzg-gp>9S5;*(GhO9#cwM^)+Y9+XBk7C=`+RIWw_5}A_)L@q5CqfP z*E?sK|8c`(L3C?jR2xfnsTq%#_v(^Rtr}=}JG6)<_D$)ExO>7VLKz;`eimX;h94&= zN=ypQX;&}37($llNIn7OZIHqx6JK0}49+y4Yi5$NV#REN?ulTK)w6Fwt@u%(OZnmA z?+e9LyJ+jY4FQ0^dkBbSjH{e>WEwrMm^g^iN zEE93T*FWpNDrq(Y%9vRgT3p)60N4P}A(mKp=9|T(&kwabNfp#m|bF?EQh^Zngc&=?H(fj$k3>1~v<~ zKJ!i;LnIDMm}4U3h5{ZCMtyit)V1Hbc=D!uVSPo;!Wg0M>q*|~Di2e>Pn_x#>@%4k zX*y|)u8qt+J!hV2*$?e4!d!aqr zh)B^fa`+$;!w-^AMlG7O?U{MC)ja)V%C^qq>$@4 zrcMUzH$Cr)hN$Eg4?9NQ7H7W*3W_)RDCj1$aLex4Vz)f;4~BP9?lqw@559FSiuE-z z0@DLywM+|Jw*3-Wk}rg1852JjxbQWPCq&guagCoFW7htLnCGf(+a7xPv_4%O1-<;& zdWd(Z|ILSzbB2?N8VT$rjJ)(D1f91#=NF7OD5%tq&V(a6W5gBaFek{47n0nSu7jS) zduWFp&C4gc+akYjtH=H3>S$9N_fSP%z+DG0h>{1;$$G@ZCLLmK`&*3_SM&ln1`%|+ zWlp31fxhm{hYR^%qt9pU@TA6)z$AWHMfO4I+^xsp5$U?N=Q8LSGrJmFnnGbG!R;bZ zcDq<}Y$$y@iL??VRj9*PsRbF=n#}uL#}MHijChdI^ZK4|LyALCA<57s$H7Xo)JWg( zT1n3saNLV)#_CC&{xw}5sXCWzBtIP5?USsD5Z1%(yt(Kgb`m{rd(JZg-vvovvP5-d9YnVJmw$N!JlDgNfQ|4FUY$MIf7qc5*dhCF8)N-kZx6-u?Jv3JivsEuyi^4T8Bdh~e;X1n->Mmz(axfn2m!2c zQnjk5WEpr{813u4;Hkmx-$ie)C;j@~8z+aO+TrjKP$l0GS8vb5Ih_d4B$1B+f@N?X z8UGSXro8POQm?MQG$4rGTT{p7brkP{u1GzqFhu$u{)+!V!Ro$yTwI2HsL)9QbJ zck<+%3N!e@e$ZPRmJ&tN@8c9Cdio0;nhY|0%HWe-JaO~Ae)b?@79?uEmFK72M;A%a zv^tXQ^#dyGG@+V;8+TDEs;|TW$@)2;9Q*q~eZMU@X6Q(SH%sN=W~?WF<++Mfzpd6i z1ivl!Yy08N7sWs_a_rSrb8){)<CIKsGAeJ?7p8JSHimj)ACPml*UwEo@8`o zgnE@&y4Y%InhE6ubD?U_s}^h^Jn670cO_DU|3WsuQ6A&hFQpn;Q~NSrs9&-&MG)h@;RM z9_ZEjS}R;L#p9hxNOs{>+o?3a$A-Z>232jA_L`oS*v+9E5>ncHF;Mp-Y!Ao; zovVjr<_R^$icz?w7e{*D|5E;aK35Q*Xrg6a?SQ7H*23YUnS0qWeHQm+jaRr;^o+ifKYaNhny=Hc zptcEFrv((}1Bwek#ZB!sb%8 zdmfs9mzHU#_eCRB)3q?E`hkYMqe?;T=PtUQkv`ZZgCobJJ!%3zXqv6%UVz9w1%WI~ zlD8C3mq>tImm(LvnlFd)=$V&dhy9^9h zql1@&<5KT-%wfe!d)(^wA)AYzckY?&VEFjyGUuI%vYJ3^3PiIP*H;g0lTRk#Cvv+A zervaSJh;zsT__WaqDvE;5B|Wq$-l$hTJV~z5g~3u?l?Nm)C!vkij7xFpLluE4GE7L zYjMZ-m#>Nz-B9sop;LUdlsXDY)Y{<~(*}zBI-pYFR8Y)<}NocGEv zvD}#z;xQA=H!bP2x-~s3>O!l{j#W^sfd=qKyW{ZK8of5p>C}#4MB+{Xtr0RnBg76E zeU#}{wob=2{=x8j?S~7oNi}HBlh55j)>5*&X>gS*$f;b?{nq(jFv>%N8)Vax!#f8E zVpZ~s-8``8!P5k*yxx|U?mERVepCfq^uJB74D8bF+Sif0Zx0;Y)Fnra^#_ir$fhyy z8j6$-HYIR|I(CG}K&`;8C5_)*W(ct{>GKOb+b~iT66zPU1yFDf`oQpQxG>JlDm}?@ zSVr_*@7Pqt_1VDD$m>AqBE2RVR^BdOARXM$3()!vKe2af16^9UY1`S-#MWxPV$AjS z3r;)u+%%HiV3u6u2dVk>!flu7^bS);9UC7QGqh>MO;B7_Ci%!oAUw0GG*G^DT-RQu zyUJnqD!t6?zR7v_L~t7j%Fhm*9uJytv>IG|t&Lgutj};R3(@KL_Na4zkRk7X}9+7f6iyorI9vfPE?2M_1KP1ZbmHs zHl?vs-}b;ObI+iY{9$(qiZfd+--h;CT8Zcg$^wH{h2^Lcy9y=BD3>hAS681h%@J9L znb5Fp&v#Xmj9tNa3DyLQ(Z1$^(J&!AjVc1D?w*WT$bN#nD@>R7Zgcd9e7QK?aQWk2 z?5mqKv?RxY(%Zb>$5^_M=wXf>5yfcj+6A1XMxqj{p*cf#RZLu#5Pr^g$ccBdL&F+Z zGq7~pf_quMPm1<9K;%Feq}2v^nw3tdnq4`51Of-X8TlH~p3#ult$Eb6&Twy7xFkc< zUdt6$BmPQ=WMd2Dudx=?L%;nlBGMc_*m7+im)Z%p!p!6H41PWFwG1h+(W4@E15Ap4 zxj=Z+Qd3UhF$3S9bHTq)tV@af2+*{;j^U35KZ8gd#t+-djtuhjHL-XhcL2Uy+YydA1Q-qENt~MNeUJ z>4>u{0RCyH!lDoxbH$*{NIdo%m@HQi9LW}^xsx5l|A-&FY|&zHs)k`bMK#ehK%jKC zH;KczbP9?n-8^ihp63+QAT3O%jI7d0+PC^h%-Xr93^HQV%%HEzDkUWLY*9-RvPpPq z%3&{{PFu%l-0{(z`&2fZh9(PP7AarwpKHLwPk(jGlmoOMrFw~XuzW$T-Xh@1Mtc)7 z?i9#I^Uz*%y-Bu_cHW9<8Wbu^eWvpCY;>1cR>$aEgS4$!bAvAxaaN>G@Npp;4V2Zr z87u4S(HjJMlzW=OYLqYkSog3fBkOSkS^2pbQ}pk{<8E2ksy^cu>$n{CbE-{7U7XT+0r>Si(JH-|sKOA#W>`*%uK^GDbDvbLoRG8~gMvf35 z=W1j*`3~C23{UWT?)0SCx_w|Xa1TlnM!OT|yQnY|5_4K&u=Du2LCls^p#gnu?Csy8 z_8wK-N+s9pgC^#C_rL<~n{3hc1`wNXx0Id3!hTsvtp-|%l_7)r@g)UAN}lmPwuvB< zK&K{FZ8ImHg3s74m8~o+DlV0Ca_H-`C^{LpCJj&sWMbaryWxbH4c-6VG|nWI^RS+r zKl^we{n}rtS<`__uP*=laQ-|g^KqS2!0!)K*=5$K%@W@tqC`*nfjf`3RaXLDuP1i@ z_eR$V>lxA{iaIyo&*NYHa7K4rU}jwwaa^Vurj$G7nEQ{eJ6o1L^)?*UpM+!!E>R3+ zb_e{cn;*5$K@MF9{_Nt7OxazUVt=IBocQc-R~}7$)Wd1Hm>Gr6_(xYmuaDYMh~3(` zw|&L(P?equ5N(ZfN;Dn3UIzZND@ej=qUg2NS7t7gGmE(?2aC#9Qz{NVxW{scKfA7I zbslW5N7nGc^*)S2Hq}FQkTp)P34VsnU55YYvi;LpE~ebL45zicpDz08qMuLE&mY>~ zhN+)p(a+)f=Nm2O;m?=;(e}@{=x6BoGj#kJUH^S<@~0nuPC$On(e{5%V}H){eSKfD+J2Lr*Hj!Mxs3XKSsD19~NSN#=j6Kxr@e#Y>a z6ns3x!6}Di7vlZMaV_MuMtO7K(5=;Nc1Wl;clqd~P9LbZ1bVIF(KL|Sx=p7U+9^QF z+XLx1O8bSn11~7V{)upgXz9ZUlV=raiil4G)%m#6XtVshY&%J$c|hw}u=!%z-B&(O zl6-`V<%IGY0?m@BDuKH9B<~zxMlD>kQVo*9ODsjPc{NOy&3yAXbfu11VO*-=a#=gz zrNl5i!qd`&1pcsy>XZt<37@&|s~t#)^OqbiNUfP-jVpm!aiORZ7nrS^6b3h+`j@n) zuEY^tvNKsNR{SLTA%24PUD!NCu7@c$h|X=Yg*h>{(o&k}-)7dUb}1W|UuBDI7J6e}yg~h>rrohgP_FG2kHTZ459)W7 z5pL#VF{Krh6ps&)k=N#)Ja3v6Anm#85+g+*^A12m? zUvo$PSNEqb%{`+~woYqfW6U^? znA-R=lN=9C#&MhR@z=<7?ZRBY!8!kSE)+U{w%1BEM2;%bzBVJa?tvUTDH14Et?1ow zxZVF9YUZ@(Rkz?Bxy{}4$vE*vJa<{Lm^vMf{Sun=B$<0P`Bpus=1}k!XNcPkzGOJB z#BLz$Q0-|`gYzCsHOG2Db$k8SEe0pTxt`!N-Q12-uKkUiwi?k{?;6=#^9w0{7oXkC z^Mmh-aPq%T~DKMI7A(Gr#?|sS)WT(X%f^>te5ox z9;nMK)pqS$9lz|4nLAJowJ2j8gO0S%$Z6Qy?BzY&Wsg+Bd^vTU+V$%2t}mp2c2L1x@xQcae;1>G*7{9MC}fAIen6;LY%?v86%Og`4hB&23jHoi zWD1?3zLj_6X>Vk^*b$ufji4MB#}%0c_ss~PfR(Hrb-Bi1Xm3MN%RE$GbtE?Yi$ruU zPeCBEtoh-nw1>n-P!>!5`OYP1NWPZ?7KL_><(hY)4LQKF*i9q~qnJ#qtJ^R|7Re!H ziYKCIOT1nVQ3vNW%nFQKo1!=Gb>Y0`d|kb9lG;%(kA#Udi}=)={>^#*ehwLGsD^OK z5@{#v!po>Bmulzm2+=8IFYDr9R$%Ki!WWO;mXUORY#5rezKVa;`ZY3X_ ziiGJi%R*rfnvjmq=(W`$u~`6!ruVZePI9s(jzUPg8jqLXYR~YLj!O_(3 zzWV!Pey>|6p6vbD{KtER;pC4}uIhJmegu7;#s6vc&v#B}1^%ZBuD5^n{!h_gMza40 zx!@!vv_xHVhR3|9LU{h!KhyO-aoTZbc<*K$NBe{G(MzlAR(83loGxr7+0p$zs&K2d zR^@#BWt%)N176}}u#MuZaxIcBD5=~91e{cq3vKdB1-#r3Zu-<FOm7|Ag>X*WQ%OA~Z!WP!}5Zs-D(zZB4AO8o|*rZ+A}>@K~3+Wc(8%NsSk6I>yo z=VYIVe3p|RhwTq|8I!(aCSbK-7b33ZvoJmbJ91;~49=)7(!mwWd@D{pG2?dt*s1J@ zv`RYdYr;*D6RPSggxbp{Tq_O0Z_VqFUPrKh%dzwCQfp4V?(ORa4$SKek&i4G*k#Nv zBoyU;;y`Dxb#M1tm-bhO#wt!c$#xAQSrWF|aRGA6pQd-GH$GOHyK;t$Fa9|o*+49 zh~zq4G>l4+OSSj*d0lCwO)&kUGmqM)tOciIJXF^p+Sn*VuVM+x`f_@DRAc3LgotO@ zuQ?XhzlLR~c{^$mwxCRv5K3=r1kQhGfr&ZL;$0{YCP}a3GR-VU*SrNlVK>FYp$LqU z;sPcSmp*<)lR9KvXD%+Ud_+Sv*}uymPkHA>$HgU`5vAAk^3eIk5MD6F_VDm@5$w`z zl7;Ju%4xY8pvBv&$6rGonC)^%W|Hfmu}LfxCU-l3n$nh)hKoX9pQTp{BBpKF9XjfO zYKFUQZ{sJC4iju6w<*qt!~UrCAeaPM93T)ReVZr0y2r;=doiyF3H_kU?Px3Xh1cK# z^cg4L{ZYjiEB*;VzKXY}v5_|4FN$|4e#Lgaz6}P6!cn4QjN`i!;e*-BP^k6f%@So} zx6oM9*W$|}RkX4j=RQxm8a~WPxq~mcBvz>xIEZBpVf;l=z$cZwR%39!7IPD2#bb1- za0Z)`m+4@sD0YXmjBQDf?wmHbX!jXLWDSj)1E?##M`^D*m<$Aqu2A2Ib##7dtnx=~ z2E5P3Ha>Enu})fuBch_`oGEL_Y$rvo`z_jYq9F5_UO%n;5xDD(lIHH=6OkoJj9rX5 zE!^6REF~j^s-!TTS{n;SAy>${7WYiw+4dP~Ac(t`2K~i+T5FrP)5fL`1*gHSOd0BS79aq}f=PcXLQ-vs|yp-@dt0}-4@oeM2%cp~0>?{_I6R8`gL zg=q3+NE_pEMJ4BaT&(={5gkZpc;pD>%FV=7p5>FJetRh;X3^q)tUG&gm@)6B@95Zd zi}8B9VyS!<#1=)KXSQ~pEDB|h&?o6D-gULmER7c`b;MyGTyn#?xwS9usNGOQpd-78 zu_UI2Q$hGzCBE9lNOANGpak3j@nw zphv3r^Zg+KKfb2m?2x=B6KSCH=pbqA9053^xnR{2z|zH2-@LnA-lFj2&bON0rho>R z2(pkl+kI1U-X2MdanG-zn9S!Fu|PFE-7Ium;C$RC9EvJx9Z@rT;>GN|w}!*^)G60jr^nYXz9C3A0;v0@({?3o zK++{qR?wsQHEG2a>z8!V@{dLv38@U;ZuU_~ueyhDG=g@^(G9}#J(sOtP$+)^-Q2>Z zSw{3dIJ>syE27B$n?;*}QEh?`+t-NVnat~73)mlix|02_e86UvW$+QfQ!xg(e_z-{ z)XqsRN_!p^UPvh%*F1S?lS-++Q%kX`A%GqH0XZ2fZB`l{mCa=XkgsAeLuT&21vcE5 z0gpNAv)5)Fp6{z2kLjXvOE>XZ1&x(TsGx8GofcU`Tx?e`PZ|$}PLOSI0p+42Naw7y zda*&xrz%K6D;W(Dg?V`mRPNXLr>_H5R(<XwaGJE@ZV)VI}Dj zf?dlbno{m*pj$2Eb5odzmnLWvdFo1`YY&Rlr43fK5L8+dh$YdmtJU~-5X+pNw5e8n zOJ<7h+sZV6(OlMSbX=$lj;@HQxEQd+(uyWT@biSb>Ij=mz>W$gf;t{_H^};aFKuws zM~#ZFlgg9147^HI?IUQ}##z}h5FJsQx*6>fZp_|DrO*}OaYeY-8KzF|9L&(x9J)fx zRv)Z4e-t5NrnGuMho6>j4I%F+D(xwM^XsbO<{Vz~U|rE3)N&HHxg?OTuhI)u(@zwAx`taC@)W&DHT|7iaiSNuq6%enVl-H>Fs zX!atsXQT#wNA+(+>3^F3_d6Fv|8pi=-IGcBCA=|XFRQkOUfR=s;?aEKSa#0hLjNCP|j8ga&Stp$QF56p$>T$w6`s5+(X$X4e_!?d*H| z-e>oH_xJtM|J=H_ZdIK+U3Km`brKk9k(?IHKnRSuN`y#60}i%&!*+&&qJ~Dd>$>IY z4(S}$r%UCf%;Hb0zcu~S0=J5dWz{RYX98B+j&_wj+ONQ=hjxOup>^HTab9AfGP<0J z3clN)qP!{%90D5fuTqVna;`SEw$3|Hgk6knoLXKbcHb_8a=2rA)F!Y5esdS`Uu1#;wTla8P z?l1DkU;E*=H?8%QzFwaXawTM}MgB-Lk_CIQ+pj0dNA=sA!{w1Hf<4S@j+)ba_c$wb zaHqBk%3X9=e|wYY!T;GbOKNH^zg6eCy61P`G zK%1D|3GmLO#tmZ1TJUENCB} zHyj_k{CbA={}LKjH6d@ICAi3L_saK$P4~&i#BK)0Ba%kwg%SCf)Jqc42c6w-B?{;B zk??tcEW3f5z9&1E|7S89sqd$o7mjF{y(^-QckAaEYV){(2Im#g=YTY?tAlp z^h()!seeE6I&rCbdS&S+HPnD!-na;{SLcA~1K0OHPWR;ANwl;N;{pz2l?-^`rFZhd zCH>O|d*=$7uF}1)`wHwETV0LF(lXVGU^3Qv>B|^2t+5nnOfXATOo%Ihp^~BjOf2N_ zt~&|#wYj46F<;OvtLnaIxr+&>hi=Q=`EV`O02MvMWk^_~Xi4UI)dIIyw%#|y_vrS> zTZJWXH1QDZL&SC*thusYfA|g*8QH~Gzw70coBQ+g{6sxQ3@FD0BdkL!tle>a*G`Q! zbH8;_ryb%bA4)7%S2FR6mIDR6qMNFSj|Rz-sMNu3Xf4|`*R}x5?a)}!c>zlrJWZEq z>XpG|Xbv<V_`$MJD^Rln%Ey2+a z5roFAF71xH9!P3!Lf14^iww*OSLMR72uAhAgeq}4>9*Vw)IMj}tm#zT*$#yWM~@W@ zHWr#BiXmcrvq)5;wzrYl_Kbms;aMuLWZPBqTVQ(rP5Ype`*x&F^-=5fXAk$}#vY&A z*(#SE4qmd`f;mb*{|?f>cVdz6Q2x#JdVUeSvt&8^`ZqG|mwCGa+!mYO1GnZFl$a#1 zfY{L2Tp>n=k%7K7NQ&KXXYE&8JhwfT7NK*|^RK)|VCsUwR7MesPGU<)QB)R8m+6y~ z!rzSW`-2nV5|*2)hSF2Zqw96J>*|FgMw@~MRtGnftq8sw0nh9_fXBJ}t>PZ@s@{dC zKbE#K;&r(ITM3h_L@%sdy-fgpp!?HF8ChQh7(qxi?q2<uP79wQ|3lj@~5=4>|ecDQPPfA#(E#l%*x;jcoeuW^}6)A*KG2J@~)9OG}Z z>jd0C{a$Q0y*F|uY-PhSCca0Q)-QANO+uhS1zqjh!{3Xtai`qr)oV!IR%o4GIA2l3 z15Yu`p5e8YOTQPdI$T^aQ>8qNTDEAfuR$2rJoj~q`-{JxkofOK%}*j#DUwo1lVfm> zv2(n34ma8H&N`+$$5i?FBk}9k^!O8c%wQa|U&qYpuWa)%uY4>?9Lrh9Qs^(@`mv0D zd}Q$ZDa!GI%Hhe=F|T~gEC1ilE5j^vR$0l7R5)rjGpMCH6!^lfK$XKg3t{qw;I1Kf zF2P36^j(*sbctg5(rs(J;GRG(sxY$NU_I_?_E2>C+xT+{Y)NAo1BqQNxARMxH-$e3 zkvLYP9=-A2lv=Q?x&f$8-UeIGns-t-iUd&bgm(72F0ivtP_rXot>FVa-m%Kt7!Y=-%()y*3zocjslmFFm;YYjYzxVs6B_mZ%XXA^` z1%=z=iY)XWCJ@1$CmH!PU$4ei~1JLE_`Pk%763w>|68|$#!Z~y#YbY&SYlyI_> zD9&?si}JNcdh*w+akHtqOW_WU#*&Z8D6H@Oy>X78|0ftYb!1<@V}E8B?lJge1ZDcw z@M+g_=HfbRE=otapXGTB0$N(b#2&EH~b|HF&KtZ8?p~50mE3hA56RbzLO% zqmFkEHPGBVE=5;G&Of6WkNZT;EAbB1J-{fGnWS0ZEu)-SG%^{*C5Gql#o1wuY z#?kX2a?8o67Z%xRDHtu_25{c2tV!@K=4(k^=Te1ZW9G051vb4yV?U-4)|45Ov#O@? z-g4k_7yjz#Ga%I*#eo#f6B=)>9SmTsXta;?6*?j7_WQqK+ilr*V>RN5%M@i&WZJ*B z$_{H%SS`l%^V+3tZyr2d+^tN!vb-OGv## zk|PY%IP18kMpCRDir}rQWiZs(dJBxG0(U{fV3=>=%byA_J?LCK5h}tXrF5p)tDWeW zD@9<9$PyM43)ia(1~Q;CB#p^knv=l`DGe=omp*MvTh(pQejTP5k_>uBRO=kpmwO0r zp@pU8a3$&13(R0}*v)7lF_iMizC!4#@~nj3S}Q4L|3>zB4$UlV&+B+G+*vK2n58GE zkVd2^o0h4VcGSxSefpQ9>0j};M4D4-a@vr*`d;5U)WMs>7=<2}8_S}jsHp-FTr4bE z0bmCiFj~RsA0=nMzW2ZDiFkf8UgEql^E1N+drG=79zA)x=m>gwSqmIC@U+p>G?Gk6 z+)_`_4P{jgJ<4`{Nx`Spg|j9hAuSJ8tzWE_T$Pu=-(Bsb-k(hAyhT3R<%5TsCVxwfnlJysN{V zLS=m>=f>b&rcG?@ME_C9;+NYs#f{0R0feLncE9%7P29?t!T zyYJ2a+t(8tO6sboMi1S<$2}f)i)w8p@&w71G#;ic$(q+$q%I)ocD&epP6q5MEYN!8 z?+Wm0Y=*2ZfFRuAZv)nIk|v7fx>;nVSa#rzF{Qu;iI%{Xh;z_B6)9%!WfyZ^?Q>a0 z&3d;Vm;@k=};evxaqQcBN-k4}nS+*vx8{UG(SkmzsC&&aNNPq;_P$F~Y3L>frlD5Y?&ga&^jW4V^DYrOj|dDZxo;`1XtUE)OyP_L^%eoZg$!}#t< z)t?q&#P`A*)e?72g!=4VD@D+FWuZ5)OfX1U*&sO$@J%Y7i@qv&*5K9`PpaIpk7h_P z)6xLg)`HJz^+Tvk9~D5vgBL-YWJ`bA`ClLY(@7b($tSeCQC-X1jVR|Jp0|XoshuCJ zIBx=&cnvi%#!b9Pa-1JA!yK@htrdM?RHfjyw0p;`yIGI6eV=Fjt7VBxkCX%!(1~o10Fmd8j~{%;z?mb`+&$$Zt1$WVs`HfeoIz79BDE1 zIwEUV(5lxv1&G)s=Y6OR5udGEkhxdg7=}84fm<$Uvkj^?>9z_djBqTEOMD?wS7gpChZq50<(yD@RwK>;{m^82{ z9GojAeIrW=m61{CPYaL%!!l(+XjZ3ZO#uluNw@1x;jJ3jgR)AXPj?8jLNW-2ed^bj zE?5Ovn}J|3N>?Mt$!^qH1JSg^QeGY<-9}F49j7iU4$)w-nI18p#YK`m1SUkHa$)@R z2W(xR3{_Ts82{Gk{UTy*D?#{+++of$2Lj+=Gt~2XfxnPHL)(*@h)4u@K?JN3R0g)5 zE9SzovPgqA)*{broo6de%S^&#z5kfz_l<0D*}&l&8Rtwz4#mpRQ7EMY@=u*MCdT#t z%shrO_8tx#d^8U*T#*{_>VlD$Ht8{`9*n^)4D8-=wt6G>r=jX@(f=0Y^p{a=QRTe}iFSd%ekkru{#OHkj8|J~q+d3(JjB4E2{iYd z$n*W?{=Eo6ezE^apt&>9#iBl`!!WQh6|Xz#GmKRRJVJZhwoAWy2oUBtxR3Z_r&*Nl#!%x;bc2F5S4atNv((SE5seIK(v@*68w%?CP*LXf@vndVfjl z=TX$fFoEpwn7l+vyRI7)kI7pq%VHQMgOV$f|=wD{Mi<*f}V#2AxQDq|SOPxq(B-YPi zwY014hh5qG6AMzJbgsDvPA2S)400V$G8Bu>Q^;CQ@`wVp-21F-h&9R0C1BW&0}x{# z$uox$X2xxrf9mf@fA`K|Fg218;=Yh&Febep+4Cb)&Yh9)0opNt>8RdI@io4Dg}o^`ty_74 zc?w$7uJ6@ha$G2aQyX`5jK<R3$srI66gR)g<+_;`2P>-; z)CE4s+C%#1CXrM4_n8fllg$OQlIC3OK+D8%=bC31D^r@i*d2S*1;@9Lu4LMX0h!!^ zVO+bm@SDzqXIUR>_da56CyQ=&cW5}@xoyQ=ODhW3w!FFNMVRYH7X+mR#)V&SA7r}1 z8dn_nIS`2`^cZ|60kV|6;8GzaC#e$PVoO+a;T*MM)kuy}YFg>BstFr7n-oi6l z*sWz2nstTQx%|n+B8D6(K5r#?i<;i zTw2n4(d=}!Grf6$MMw(oGqGguq;SZMwz^>R!SK4q=VxEG>9oCX@K2~MNzl!meZ6Sc zRoQS&u1PJumiaLFRku4U7_>CnreoruPI{DKBX{^0 z_zlkrb;>H}Jh!+-_QUv7p5^LY$w}C>V6J+I!p!v+2qdXU52>*Z^^S{g3J1a3owa%- z-UEgzOnHlxjkNJ9#*TeG-2MTYC}6rIB z`IA6lgw#^FfsD_(N+Z@sn^-zSny~7}?OvA5 zj=g9M@K-{*2XcvX&ZWhi4imCOZq?#+(zc{#YVCvR6SPeNRK)u#|0`1a|8V{FBck;Q z!QC+2()gKOb?F)gxl|8p>%?qm;<$u=#?led`X^!#n!!eXE_7Qt`J;Y8_Lr@Leci5X z%_WERdt^WIeaGehQaH|EhhtQX!2=jVV4tRavRB^NbYWn;W^^A47BJ!_M?&gmqPQbv zkW?VuvpgsC)^-i{a{8$mNB0~tT;@-?EVXk64HM<^+qB?WYX*k`o)JlQw45|N2(u<1 zvbP{Rl~E&VO8KPe;?--_5hx`XcIe7OC3z)!c^c&&Bo%cb002ZT03ZNB++Pxqen$Wq znTyVPsk}+Up0*}S?iD4SF5fZ&dw%Mjgd$C9RnrGK3&!RiCT8$Km|x2$Eq14GWM<6U ztSF8}S+|2~^ZtX`sS9xtp>b%*)e?2JnXb?Kv>h|$_1*Zrnb$tOZk-Hf0?02PYta)a z$)=RbT_}ZV&)Q+r^?L=+e+Pg}P&J%`eW`E|V$#}A-?&qX9LmHa9`dw?aM4Ey&MPq> zURnhEJEcXl?=s?QC%qfTi-iAri3c0p%@qzb@yf|B{ydc0y^eQB zdOzg{+x)Ok9rhQ-?d+{1Rex4I|0{xGn=o@{n4r~%!Z>Kmu3;lSoK;mvcmPF z+?&Pw0QZcc@XP3kcVD%h-@G8$bfy{fDwEDhDn24*lW^XR&(&6U>`{wcx3$%FfJ2Wn z612D;d|+XhIz5Hbny!knf5qD?7HPuE(q!#`FA`zh=bN|#fam~BI?ixJ778x`p6Y5Z zXK5t5pC!FDqorLqP9&RgOJtXi-<6vGT7w(1K`~`gy z(oq|n7$1z#O~4DhGgak?sG_SI@V6{ki;JL-VZ3T8oPDVe6;q-vrQ%nrE@?iSXyH!l z?-YcXnUuq)SEN?@Z-%xiy1!`PQIGEExRZqjajRjX=1TKnO{@klvN{8o#aLnewnOqK z7H#j|uGV1bogWsgz3O+7=$8a6Ip(TW`wb#KPFQce*%+`Q2501nb2V?&bco>+GdZN7 z3Ay@)!O8^<{@Aul5XP~R!CX(tG!Lngfb_Cq94IQ{Yl?kI8fSWY3(A`NMk#}{hEF|L zR(eu4oM9rgFTPWyZp2!&V;7QW9~3=KLj`PZY11gA#aEX!Exdqig9U5Y1P87?@s|yw zBQWgCmJcBwIz)({$2bPW&fho%>y&F*C#?Zi^QlY@Bv40ypGk;ESRQ`06s9bq_(4xU zosiJwW5R!{yERHGKai`+#hJ@;qrjRl0O0s|fJ~1EC0F2i9PB$gy1weKZ8|M664a}u zgB#KZKSC~PjKGvDwxp%Q(otf9s|NKEF~a=WQF;vX zR1d82*V~!IHN8K{G-0!GrlyW}Bz??OQ(5(wLllK}Go3Z^5B86^CqRXLRip0U}SWXH2G&L@}-uth90%)<`|ZzrHQB`#NOc5utJ@f`BTYuAaR{K z+WFu$QKY(Mo!B*dfYha8#afWtN^&j282~8rPd>|nB~%i2Quh|O_43iJ{**6Q;REo@ zv=6jaM4jGx+qIi_GhPL%R=H={hxVnil`Hwjt&8;4@tE2sPi6JJfEStKVv;(1qw5t( zOL(mi#rO}C6#bWG9R{vh^~Z9*o-+!;5Oy!o7AmwbzWJmsrpdFol;6<>^)%(55(a9G z3iWX}D=ul8X)0Oa)oNuQow{3h%fLXuUsa#JOSSi`DA^g|)q+RR{q%Hg$Y!Cw;+d)) z#*GKrdx~pn!X}CieKlNV4cUSl)P{pSsj9bYIv1j5n`oZ{x7H|6nixS>c|qN6pa?T6 zT8%z4tV4#ZZbu28uagj*ZL6f$fR7R0YwmNV?7xzpRr(~w=|=V|<<`@7&~|~D1IZm@obs2sJIb7ttvxy^5p05gBYFVT?XQ{&k{xCN7duUV5YuxnF)Bnn20!!+jF*<=$5Y|pk+J5w0V#%| z@?shjJ98`GWkpPSSvbNZF36rAMN!t9_eC3FR=o@nt4E2~y@{iT;mqp15TN=(l-0_waCC3zG%a zy=0eFDrSUPCXe=_*f$0tJH$1jv?1X0H5W)fe0aqCk<ZbYm%;Yc=7Oy?J-oed~K~kGdY!dRDO?I2zRMGvx$2SQ=CFSzB$fLElqNo=3J3qQ9 zMQa>^&6ArW6gkq>@x?JZPwdy{^=`Hn4koUl-=-Cr$H^*+Y5C%`0{px-J2m2VVG61i z7WayjyD-i5sUpTj56|OiuRSvAMsTf=K<4A4z`FT>TIWREtFP9aD|oCzh!}%apevm( zc7C!O!LlpShV+QLw^?}vrZbLqZx*UtOUJn{SsF)N%Pi?J(2OxHdpz*jy`w>+o2yD( zfRKKnQcSv@)c;YR|~lHDJmf3i1Jd7a9*YP(kHk*aMWL1E^nKwNx0JuT7@<0vyI zkB5EqsTZS)@c}RxU(x4B2K;Xn|2J7SrmH{IyWIF;b_3y`0Y@$cNm||RG;jY#rZKU1 zXb$j5A{p)6KW)muI>cmx>YsqKh`Be=Y&@zj&dL2)5hX5RgcIdaVfAhy9O~H;)S_|N zcrm5V*`14h`4*DXB7XC!gFVhM1<+KnRJoXDl>}2&(}&xSikwAvar{aH-E9%M6J(r4Q zmqLvZP-Br!WUPO%vOD_U{IeBC7tAM37Setm#GkG1Vz>nlc)xkFp(Q1ESCE0pK-u`d zopCvXo$S+$6byNwh*S%*&uqeJtLK^?IQ8`B)1%?TSQq(zE=msl*;aDzHl^1YPV?jx zlOCYF5PDH0S0Yi9;jcyvKG8Ei_La0FVH78H1*wgi?M-UB1iN*fj$#Qlr*8q<3}6Uj zULr`e#1-3^=35J+R=MdTjqyoOd=Xd{wF{lBYwPu+9hL0J)P~`%rZ5)tSQ&T7gCQpy zhZ=%?vgD-LKQ9WQavj?lf#_2KCHIAutKgbTO)pC4f|0tkS7w=$@;p}=e-U#GfwsUPAUufjX}1BK{x$ZV-y#Z z!X?y4GQRrVw*HzmqHdJrK`UWFa%dO$QnEXj{pd+B%yEg!)4-r@w)EM83szDaPdyLejATR6{ z7b4JiZ)u?j60!dF?^6L^=AJvqE||G)Pm#P?B9FV9Blu1g8a#2;&;YQYdcLMs?@1(8 z-IRfbUCC(7t&3@c*{eGeIGAW5iu=*-;Sv&tyZdm~nrjqG=OQwl6YirN_}`gtzz}z? z(`5xAJ!`Y&*nJ6IQkPnE;`+?;t)yQI@`{dJ(Orgib*fc2W*KmqVAhYHw+u)l~Ckefy1UQm!_T|KQQNPh@02JVOn|FG?s)40ZCE za~R*O&9ba+(wZP~nvcudTRD@j2g=_SF{^iyH>-chw2Bj2tADaLpM}9TfXJ((T9PXC zclOmNUWxN%t~UTqTS-yTvsvk7Jz`nIUSh4_csqM(OJ%$X_U!vIo^vT6Q>=GhOdvrP zLZ2J}cELdga09X@&o#wEEh7ZN^RDN@cBZ|SR8aN>&JymOxi<#nz$!iXmL={YTJ?gs zv+v67LKbX|U#!YUFPA8GFAJY%;I$w8MyAg=qxC_rb%Mp>{>R;55-9|#KUi1il%~5l zRduHmS}3%{vS#TN*8)TIsn6i;Bqj#)xVOH*M4ktu}v<*CE>cBu>m( zy%V*YGh#*i2*9qxXCb0a`{JNOin#gIgGn>$=GTpp+NH0Jn=!F{`qNqtY%1!QqFH&O znAe55<_7-ytOI`MI`RBFN?+zH{D!{7FN%oet$AosFT(e4sXY1l_nN?r=8!$N<*_Yy zL$i{W(Ep2H@yED5i-B6&$XhA50$<4G@3TBEt-Ke>*Ck3Ygt}q!TB&N_N*b*Ij{rCg&kK(c__%; zXypyJ`&sgf31gkcQr#?WWsgwt78<~JnH}hN3-3hK1+{;SPQ+$`9qdAggaNDkPgUjx zpVT3cj$Br+_-OWe8f6u4e5QKK@wQR7iP?7gv6uRsYy+~S+O2^9o%o^-g_TRDhV!QO`&Marb zk51+<8Rue?emy(BEOzf`-O)0WFkhX9_6d#D55;x6kIV|ypN2r86^?}LhY)d{$wd$q z46Oi@rPTpA69uD|A2z%Vyza~q&@4IDBnhNA%1PG22Xtb4q?uT!9QUa_T=A7-Dbl*= z`qEZY9I~!FeQ#m|W-o4*;yfz01hbFqgNX#tri*-`x+c(>6R0qX8@ds@eK~8~EY&NJ zw!hg^jbCL>GOda}S0uEhr*^D7QU+c{UHo)O9M=O?;RU zh&U@t9V#O$FHB>#W78v#ik>6p@t)c8`a~~rf(ozYzisO6Hoa@~LYHN-RqUBj$Ri_% zJYpM~q%$q%2!qYSbo=(mnt7g+oozigof0n&XeN6<)eVtnvx1id%90olL)bxF=G@7y z#FO{GmRj9dP+~S1;^K^sDK{#4G}SBej65?2ZJ)GEi|ZUx`#71(c`89ls#G{f*&<*# zLMbl1X%?Y-e$I^6QMDT0kWJo>16UwA`dJ(o%B-&XAl4y;--B3(n%D zjvn0GAGy-m9Ry{T57j(rQ`vbK?ZJS_QxzIzZLim`@o3U{YY;z8u3(F8YKk0NFm~Pu z^>k4uKF(2gy)o7S%$+W>@DnIl5=kyx7>_TX^r;%O-q3rDntryyjig0TPo8^(4l9foWmkk``16L=-ilGWUM=QtDNG z9qGW^q_(qTICH+M=vtvL$F6L2bl-cor&9nPa>yjML+&Nh&4Qp(9V<&iOJzUz*KeV2~V37k7z3qE})ayCoq`kyeti=3= z1YKSW{*-&oYngA3oBHRUP^lL+{N9I^#l+C7>0J5T{C-*l0k7d*9cNP@4)v%I4va}s zUe%+qyxuFwz{rdG3>V3xJ0G-K#bdnVa%!lbh14aoI3oyU_ZI(%f#bVB!@$3{&9^&y zG`))+1j5aNVaE+`mC$$NsSgb$KKu9%+%9tDW<-OBDYq{+U(dK6MO}Qf0 z(6WM@7(qMe(sOHVejzzz4N=>rVd*kOQZk<^Uu?EqqQi=^MxfiLqu}F-JR8*6l?|t_lk-uPbz*;e? z9gD~SxnvX~9&S>1G|r5qS_0`Eq)rS!`QrPY69NhJ05>oMK~jg+)6~SrCVh*aO5Xh;Y zYMS_%3xn0|BeX<74ik&>PHaAoeq9->s0uP?E4bgaEbetj!_$Q*dcUrm(CL)5E#ecrh|h&5wlSFc5+|j z@j@D7LEtXb(*SeFM-;{vfBxd>(xCKKGi0aq>V*(ERDcbYVm#@G3peQTW7WNZbXJt; zU@Znvx)fD(s(d*^%$KXK(kn^DzW{nUIb)I-0H6eh@QXdvgH9eUGZO6Hf~63t3l4Be z#5MHLf8-p;B<8jY-%JnBlyLy++~Bxy+JVf^(KE4^{yeGJ4-^)$j|Wt=)%1%;l6&T+ zSYyh3Gj7kaMuHvnRGT*o#_Lt++fo?%*Jx6b>x_{*um0{7*@iu)HsicrWVk&A6+9v?eyM z$s(^6l-)~`jNJZ4c5|x5=Hmr^_Lo}hiiow@PlVajl<{rp19@7rCvm`N+?=%Bgb*fCZElj zrEBc%BL)^}9N)~PWtptHJsnCN5g2H(a|#EZANrj9_kaI8P6$85JoR|LQh0yVI4etI zK6|6t-V%cqH*=U~6@FRix?$j0bD{0#&DP)m?N`_o^@J3=6_U^> z8;VG&Y6wN`KtCFOdLrqHvFo8}H)LdT2=ShLus8HGCx6pU6gd)sgN75!Mx~zzP6m? zhdD{5Y>gx4Udz~mVPX-KqnjqyK{Y5c)<_?MX;4TX!!JsKr=7UI_9H=W!QxvEIIKG7*mE*%x1-4Wr z1E4F7RNxTe={Fo0x|w0NfRc&4tL9!8fyj*Ezdgi*YN6{-H%+sXPzi?|>Nd&S?#*xYjA>7QHPleO{{Z@RdVDu+*Lt_Sxpw^3>pGgO-24N)A{ z4WCHufRtJaIb5$jQXxLxH#(0v<#N%qLvD3F`{v!?<5zw`*fCy?7sGG6=Xfz3FNS~e zVsMUVRm-rY${%aX(~D3+b84?$v@&CJ~3+Kg+YB8zUUK{`kgE zm*E#qHJ%F<#hO4203|F~i?? zf9e=;5GhZyrj`?dEH^5#y2fdx1)Fw~!3&?UU% z$_1F%aV6Wzk?aQvw(azoG70YsCQAlLK~q6nK7(P75Y6SHb12PL5!t|t&iZ~}gp3h5 zz$ZG(r)!MJ{?qz^`-{s9!9jC^f~GtanEBLc9MZy)T*r@vxT>nSrA}Oi$sngQwC8u+ zL10?r&tyTiaL-9Oie?L`u&+N~?YQszMX0QW>57D_#-wUya$_uuCQ}ltye&GMDlPdX z*~%|m&K;bPb@v6Opd4fJsZs9~_rh&1EuedueGvjB0ZW8y&2PnPMV*`%Qcjq6f<(;OAF|96ruKxg;3$DQo;r(7=)`LZAP_Fuk-RR zcd;`1+p%m%-;|fu9mXtK64;{?vzb7$tJ<`m6-sb*20dy-V}xtpy)C>5gusfmM+3Ox zAqTLK9f|<_sAcmvOM`X`B^9(%*co|&-@ar7n+xkr384o7lv4vQjH1(3U)FA>hs_7m z!zIR0!I6S|B+qG=ban!JHnC~pBDoG6xF)r*22)B6UX>bXb1NC7(wT&{r*+Ta5`S8_ z_cw$60}uXJZG~ z*Q7#Zz{3{pqj*}NyX-710)9JIDwN!i9=y^6xxkt__Vs7!I*#hYLDGyH&TsvZ`+1rE zw)e<{*Khv^1f9)kv}pfOA`y5?p!I5aIz*u~wDKDno}^x)9{cK`CRkh@!^M(H^H6)W zULa@5;z^8^c=eiC7lLj>BR+GQb3(TLi-Hf}GnGxgkBOzFsXN)SAP^taTY|`5lP>9RCQ7yueS4*M-{L;*=UIzU1Iu@4pjZDpFKDC0`N_1`+tIxma zXu*Ne(jpV1_{~e@JIMe4kga3~WTpeMf6Cj@QCC;#Z;I3LlQ&C(je-<&Tjix?WvBWB zNR9E;Hi)0ll&?$tO2K{taWECgc@%IfAgrvr0}a==c$K6i#U$jMp^dn@4=Q0B3XH>T z-sut(#S;q*+)T}|nX|>X+P`yN8+{F>M9k_s~4NPXpU^Y$DIii@GD`!v? zaZ2NJ5kz)28IH~CdW7|3%iiT=CX!}kWWZEZ)Xz%Mb@6DEnD7|nfnufMFXb|W0r26nGCwm0zRW4aU}C)VLvmoKZ*Pi>4djEh-> z$TGT`JyM$~D)2be<+eHj6~<-z*HT|!>Y%;{;(_Ow@gTLimSM~au}Q!krBq6k&*zuw zU77jyZss?LrIVLZEaN3QHTD-rZiT;~o|Lrq&hAKXBLaa6vQmlzlFr!N-GTDQbMU@# zA}DBhXw_GPGVDt^eTAaO6iJ?qCI0v3j@%YshNJ73t+r({&NjM?T+~asyM{^%p;A>V zY-5_u@Z4Mu6Av$RSq2+!6}czEPyKZ;*F&|&52@+erh)6-(rD*Krr(BzaGzL>7pXza zs+RSqP5eEmpKq%&jN;Z)hb^IY4>*5^^!4wK=V+0)|=$EyAyn_C+vyZpf|7jWo z>C!6{=&RcWvvEfTYfrf08>Gl}R*2EgRLq%Uv9yPV0NE-S@H-%mJ1Ef}yKzXwhQT=d z{o6@VQ4LkpoTkOb?1JHIcvy4ca63VYz>#7pV+php5^NZ+-(u=8cO4bh8WpoC=SxHp)21Ky z)O}c!y?{$i4QT2|Qo9l_$+V*tW7q?`2TH6gIjQWrR#a?jn7@(fg)>iGxf`B!&O!UG zCDqHdt&8I2y#YnTGr?D;&D=}dULf8tAgMh;ixMgnRSvpQPd?7?2MHA_w$halUaJjR zsXcP8rp)b-z6 zZ)_sx=9XtDZ3UE5fkplx17GWi|^m?6?YWZ@~v8ml|*j`)KeS8 zq)dgIE%Cj75q71Po=aF*s&Vn_NcQ!^=$4<7Pq=vxsJdpS=C`nQQ9&CUHE%)@CFR*0XX9$fL+ThnPyBD@@3|(y z94cJD?iycI>lA;gb~^rjJ4?QO%t(9L*#2hO`Tkoa*94<=&5)FsPo#EhS}JO!0MuA) zMa9*0^7Dz!4mB8p^zh+BFt03FCICZcU_e}zYD&`TPNh9$zhoYC7}wSGFa)q6cv?PO z(Y`9v(>mZZK4oCGwI%@v4N21XaL8j9&o8N42?7WqxfdPuP7?!_1AWHzk`N|ANoFgt z*r zW^ZXcMAkY532KK(pi&3|G&(rL3+0hraW~)Fg!+Gg$#hav34qlFudmq2XI>zq_=_fz zC#%{s&E@BQ*jJavE=}ai{l{O<7T{LCMA$MlYOADpJoDZi>DR3fdj^uC+;mT`p#hb( zbTYt%NeqyfRxP<5w@4H&kp<5{pG~{7b$WMd;t{Gueoejo)Kl?Tfrr{{S}R~~O9=it zp$q4nn(lPyH=Y!p3#_PStf-bd!UQN&`z;$}1NOc&#hONTtf4oR3PeOB(eecGv?AI= zzeG@1BVi7=(Q-|NzOZnTDqmmJJa7Id^YIeBuQdptq`{DoSB~x4s#)oh#Je#nmSsYS zthB+Y>aV3V`fsfY=}{t zm&~lV4h1DP#TF4p2JYM`gu4d5AOPHRMzV6ViHSQuuN!-cvGs+{1nO1y(8!{f-R&&e?uu;rmcN|#5Fmk1xz4yvJOu=5;B1~ zzxQr`3im1A&81eU+7)%bW;)@FsZ|% z6?qnV+F-E~(>5L;#{?NKTp6k8!8HrnZF&T+g@ey$lS9qh2Y|Gg7I>+Q{Ey6E|1PTj zUd6xO`^tMWr}f7DvUep&%MBgU=5l6MJ7JNzVFI?Bol z5OATT$hd`ZZTm3PAzQeGo?<)w>X_sVV#))wx;thHwg?6jr*0Ce(Zu2O59-;175WU&Z#TKbvQRT=>7UYwNngo&F22oo zlbmXlfU~B@WtTxX;(DCsYq^qSNITDXfj;RT=;D>CxY#&N-)UxJWZqJi#sJuNCc@1K zzGDjOL`|UhZS@`I2nQ$W*=-gL+uM_bUOA=trzgZQQ7^@gH@E69Sw@VR`jgRtR{r=O z9E~#y^FJDcR0JurQ&&-Pmvl?xV4CUfX6)zR)0nFG9f{Rs)>E2-yc4BLLw0iD(;s{P zXWcblEEarFB#>W-yPzi4R;W+zm>76f>_&we5O3z`n-!=@#oAdy;V6TA+)1&~PeC3y z?g3b>3-><)CcqO`nE{x|u`+5ehbTzCFtbi;zx)Mx=Ri(v-VUV}L!GXvk>;d1T41>@z{h&^{wQkUPGO<+D_~IGmNm#PfeJFsIf5rLQ`0>daiB7J@84O6epmNhuAttxLIgluI@5_eBH zNab8>Ji{)G3mXcOK;Ap!9sftL|MR<3*s^hDrq{+(0%v&gwb@2zxw*$)4XQ&wZ*i#j z?FLEDEC=sz+lcJe%CEheyWNu|=Kv98RtOh_3Doo3QC>V!{d4;W>+b4j>n%*s^!Y7j zjw%v~y)_*!y$MI_L0!^y=>g|R%tW(gbj#=5$G?c^)C!`PArJ^^;~ z+2#aw_|<)?IH`m;;7)I6 zjMRG}70UmQz4w4>YFpQaal6&6f^LL>RJT+~C{hB1qHZN1B_JdrbQGi|6zLrlrAyc# zH8c$nNCH7hD4~fI=|~B^_pWpW(Lei~yYKPbZ=ZY5z2m>%f5$)W8Ur%tS}^BaGjq)~ z=lj0T^JqC9SOC*_cuPjq{l#~BBrnf)?09pjb}w|dO$HY@MHMDRhfXN2)E&6Th96Ym zZpS`5eH%vei=V!)Fqa69px8jLOX zUO0LK(Tr?XaVF;Nd7s2qhxB?&C-lk_2`PAM2w5fj#toJvJ&E$;MUbws@%3hL;-zs( zCku!Az#mza5no!Dn(B+sso4{p>;?^OTCP52p7V#<1lpyV8g`?@#721dmlR+Y^9bbP z9-=?{c7c;b8pIo?+em&~KxYRzYSn`a23#BJyWN#>&Jgdi@nAjm8YM(kC@G&HHvG|z z`n6S2oL>;&&vTh(yTA&Q#z>`9m^=l8Z$Q4YUEyn2D9%?Gn@&BmPuTR!!H- zc5Tdj(+Qv?7pEMc#6s9lXhMl=S|)$G@Bv)j?-(~gr6P(9VJKykCU-0hP)yY~&Gwk= zZ6_5XZojcPRF>SguRx8hB-&NXcu$yK66MtWWPY#k%jy9MP;qkIJmnJ!t6T@FHh9p2 zs7QB|ZCP2}vrwv&GtBnXRRSHnc%{#d$K{je$E#G#bO^t_aS-PSeYzgi^2d`%|S4W4W z&EmDrne(%~?UZo!a&@>&f%W{_D9-XTlZY3Hb&bWXwUSVp)cmKd5*5)B3i5v{a3hk3s` zjp`8;1Q`rzWNNyRaWOa{buSIV=V6*@G6x(p74o}5h(ro!lQsgq&aA$ZOlKW+!2>s| zl=PVVFe0c$3*n(vcPVM`kmm~b=cr!&8?hE)hw4&*%@es}H{D*?4Br17e!+HLZdmCX zll;0KWom+|EwB?snetD(?;K+l=-Qsv)9aHd!Te8?tbT67}4)`GBLujubsZ7k?sqIN3QQ; zU$9L_b;9q?FOrquQ)?AAw&ZhZC_=Yuvgy4W zM6U~9Os{=`LwD@PH2sFH>PXz&JYMht#6autt0-kvo-Dy}8n{p`mI1O*QQc<%Qg)kmS1Xhv<}GbFuUSF4h!YdM8O^s!fbUvbGIJww+J%c(rVMS zb&G`i$?ybg`Ag*+wryibEpfwLZR!Yje!ZnX^0j(xnPIWT9(0;0ju{m*PNXxdu9+xF zPLXUe>2o)BT{SF>KM%Sl!WCrlYM5AZ*%@Q B%C<-l9ESU`)eM}5p3>Ox5-5w>9*tFTn_xWjhN&-rvK|r`}hB|ov(BypslP09333& zX9Dr;*DJ+8ISlIBxcPwG@;$3JPdT2!_|k-lJ^WWFz(AUKyteJjBvjRhKsjCabOuVS z7|cM4bt!UO+2X6-yBk~?uF|)5XpqW#iz#>c-*3ntS5FMg*67(a7}>5wyPndMb}lo} zHa6Iut$vOsWy8xC`qgw3k!rf}BnRATl*98y&Gbr}CD~xeb#=`dyV(F6%j$aawdGfa zg)qm+yqw4=A_YgFSg=56Yv5+H*9NYO z_ia=uKW!?kh6xN!ibU4zQu?C>H{Nm3mYXd5kQNNCr^^ASiNl0N$&{)Ha+qMPUUeSU zF8WFAh*>jTT5Un=$%8Hikz{kRMDsAWc7R*$Xq#t2RHlY9l5VJ=oUSX@S2#xkqSJME z^3U4`x0T=IR+yDr{uwirAt;+6*UQ>_W6$+T#Z;=T)IE;(-fNKL~t=zYIUMA7cTLd7j>{YMGdruNZ0s^&|VA0$LX~FnFm`L$5et zdS}Yky5l3e9qYb$9mdtW!<;N`PKU6Qb)Z-?# zEUsppE1Dq@gZG0+Z=Sa6zTyO{Gb*eM$&f25)mBn6qTl#>BQzfTMM#(LJbw3Jq&nW` zjMAg^L2+w`7+XUDxY+}1Q`FsgB*KWX=k7kHY@}$; zq_1EesaWXRIu$9(%yz_XI68{CKGniK4BGBT6noo5qH;a_B%|_iRFe(G%=ho5OeoFm zg=Wu51h zQYmI88A*=c-<3q_m;QqmG#v~x`U_O} z3(dVN%-gG0kx`)-Hw(?MnxB9zx*2MYIwPNWRS=G8nJKYj_^(8?$%hh z(m-Nubti%5;gaXE4{4;*Y`jz{4eTkx$;gU#=Q{4Kg*2|r$CNl{`&M{>H|C0*G_Q!1 z>gLJ4X4|57zv&R-cfcvmX;A{Nu-oI>YH1Uy@`nz2le=32U8rlN#T_B${DW+F98}R{ zPIVDrIXxdLCs{TVwls(hf%mB`$E7a^+hP# zWzsuAIYV+>dsI57`Q6(q4m6{+MXE(1)$nlCQ!NQc;)IH$^P?gbAq*~V20%0P_JHIR zz=V=&&XGAT)tNXZyETxSjNPo9G{rb=R@Eu^rk3nPa?6OQN7mvo4Y*xVP08*N)?$)O zggc9U_U%bZjdN@>Y^(y5nu4=UiAZ0x6|qvxyVjOth(0pp>qrY6oRfV}VY2>u04DeX z@lgL37Ge@YO&$u=u7>FGm z?Y!A->(zo8;xCd6s{3=hmsQoa45o zICaWa&SBQc^qc6+DZ(`hjyR`2uqyK+=si7t~$GF?}Qo^-~2cv z`uj6?*2T^&p`&xZX6j>@)yQB8R@oYTKS^}Qy}x~AZnw8J-IRo;ZvcTu+-jlUV@6oV zbIVqB7V)J7v;ak-_9dH zGj#jNS?hstzy%HU!!&nbdQ>D{veX4w#NxC6X?IKbk<}GFnkoOehDvKaVvVp(+2*cq zSjaWGl`p6BW|R+#JT@Qy-snF)PF!%3P9r9Ly4fAAv)Zw@7aJAVg)#e0EovZMLx8ab zZy!7Y6;0*?h8)t{iJdx4$rne3<1xs1291(wxnp!Z9`R#caXDPEYro$ zKrdv}LBdVYP=2L#{2ybiu=3M|LsPZ6KqbFDu^ScIiiTyn&C)gG`@)7@f-s` zAaVVINutZ$@NwM2PA^t+yUEyg$tLPV~ z4hJwqTv*Dz-uv*aqpdY8S4=5oL#_@(GLqjpBx=k)u|5IT;>w z4>hZzA2DVGg|h@Xc}c;u&x<)ov%_>9o2+=Z>7Ds1^R$70LtwW`)GNOlGgp?yx^GNA zL{Dg7H^HQxm>v-=)CVy;kjxkY5*u&8??|W=<>g0iY4aq;T8}a&vuK8WmZ9lo|0%6j znw6D(>*{IpyySVRBfXRia@96W!e>UA-3j)}%n+SYCmlg_avw3?|;kV%KX+8Na&`Nj)|3MQ^M&-t}8d3ChhO}?6QEdPvxtB;^_Q#!_ z&|6NtdWZc;<=E8fRw6?-m^daE^RUV=;hpjO!MqSV8_W2c$96Y-V2$c@230|4w$Tok zdFgpB3s>sa5xoM}2Aqd2xT#|;wRw;}n^YQ@II524`}y<+lzohF4KKq0BZ#FhL6}bI z{XYCpnwOhpn#5#&a@C?ik}{_%>g-=zqqh37ASFY9l|_wrw)zc(UK@PXEr<5}ng@nCmsmcQzsf2;qWN}X)9tIrR5aFkH(%bUwQzrE+5&roas z_&T{q_4v-t#qr#+)`e?!qR9+xt*XQN&}S37oC8KvQ@-cEF?qkreSGrnUuj|fsk;7i zfAr5=ywIxQUo@PL4X$in?fKs3(hvI2*<29a`i`E$(V&81?u@Y#tF(|d1%ew!PrLF! zB(fo>O6dGbGPMEVQ$CWwnNVKtD{XkD0y1SBGG#2whMZn%ZSpSe2b;yeIj#}L4$dFIJ7Oby;R3cxQdNMpd$jVfV8>!>xmS9RB$y!6Yl|`o4`)+?RD2?o-KjNlro1 zhCZ*JZfKZ7f$KM>H!VqrX}Auj=LZKOEvzmVhev=W8R{=)$zD3PYU@K|<=3 z9nW|T_dENj==azm%M!Y<+4uOTO!y|a+Za7M>XC`dT_Y7l47ej>-6#|U z61vilM4AZri%X>YW{0e#LBoo>2IG_D)NGWxy5BZ^)p41`1Y2F@uLd}ldo78%;6zQY zXNmUX%NAm2^qcBdZlo+xUf+_G>FJr!vi8E5kCQ((AwFfZS&7b`BXM!5va{sws7UM3 z>HHsb7vl8w0c?GEpsR*gjm5CxkRcqu3(;T3dSzJ^ zpfQwfq4N&@1*^I9&tn12cWVy&GzEJjs8TLDd1~%yB-Pe==#VEIscGMKLqFhg zEYRH{<>;aTB*mYPhHh5V(}cNcVD!1|GZQJ34`YUM%>_hHpD27>e|@5w)-v_9EkTNvYd!)SJ0sRi6qHM~YN!Xor^Kk*Mz7~GtAl4NZm zSo-n!Qy$r((}!0U2PGQT^RPcj3>lAU^KcrLr*=<;>w@wI$Ggvwi0^B3WAYUvy7&2g zJ^^D9-XCI%@u)g(svsg}yEM0P}O@Xk6m8{9EeM}$1z*GkM;TFiU(xw&B zxVBE1$XX(jH@ZM?D3*`CdBsUsNs_KmUPX~@_fm1?(!03-!F7u=T2bEpP9=eV#G`5i zGff+zfDwSQo~aN*k{wiBcayq-Fk~=(+9x$~ePfDc;8#CC+nV2`>4nea;WAej1@3;D zq_`-^5F(aDHuFD}ASNe~h=EOzyxfS4o%|f1RH|4?TDPN57&H=2qxg^0g6yt#|4BjG4c`F(jyd$(n=cR(?}zcY}I-pE8ZEj8Xxf@7@PUz48b8oI<)^&U{7cx9XZk= zhO=J$`0-;?Pj#Yv7w+|*BcoH6xF^yx;S#~OvU3wf(sO(^OQm2+`viUamDm%M@ z=zd5G(ygWZF6Os2wv-z+b4P1jeCCtc8H*{j^2?(G4_)#5y#*N4A{Usyoy%{ZEYDf3 z556`jrXLR3H}($rGF+r?WNap9<0Y2@;8GQ_AS&|8siA(-e$3c;fc^0mHOm>?wddP2 zvsm7$U>d;JtV)^xOBs)~o|h-d@@|E?hS%kQIziD~qCP02CrKC^7NZ{*b-QV$f`)k>>MA7Hj! zE%H?GkkJr${m?fwT~XsFJ+|DuBHEorg1qXUrwXQ92L}WO7RJuz=VyQ#*oWuR*7gNN z$cjF5&ldwetNG=|zk%Gf?fAy1}=g-&db-o`~ucQPmNKR^q-GQjoTCA$} z(7%X_e0W)hZ~1!EiaM%g5ohAQZU66AeB#A$ePXHo`P1UHM)@E4EpKFwxe{|C`+5h- z+@&LwO?-BQybDhjRh`i3JtqT}d ze{}wkWJc3H)oY6K+Vs3jBlgmOuo)K5k`--$696GOiS-e(x&h&?Wy~~C=%!frzm$9N zS^piq^Q%DNhx%%C|H%VElR-S1M5#HLVV-VnF_^wm4yb?)psdNsC`u9c#-ZB>Rmm`EBn_lL_2U z_Tqbm03{`cou7KEKZL0-7sc={*lttFHSa{y&wBg^U*`ARcI5A=8Jua6dojUofuwuI z$K6VS8yc^_F-2@lk?tHfL6&}K{3=)xM7((L^AgS`SPL!~!Ngws@7MIl)qf5_c+*O^ zg_rBg+?U%q=@AOwWuEJ%9=>BeSliF_>v7M+Go6Sr`=jLl+~-A>%&)ILhi@8e%)4dI ze;oPSvmtuw3#`7Dp9((avfF=S{@ZR4-S8WeCySCS=Y7dmznf@sFfA;DN4+M{?uwhL zTlAAni$_cjZIA!7{{PvkW6a-qRtSse4Nm7kvT|{t>>mB#6mf1mF(y%2bJQ>R&`&c( zDo@gQ#3VI?&x*3&^L6Av@V66jk6!-SJ(pCUJ$yBL(E&9x2hw+tXQ`m+=tXT-^SFlYB$=88L8SSDVmQLE>rETK(C+DGRy3f>xUNP;P ziqGTbK&7&0epbtLHvxJOo@_w1+LQ27?3OiFWTd}Vjk2y}Y7^C@uw2;*jPHd4gaJYh z>_4kb3>FjLM}+?+X8F%LiD9w4>?9n&KYrMLe$kTNcrh(Ey2~pnk~?d9=%-#oF4mwu zPNa3B;^y7mjd-7vJp0$Wl{PZ>L&Ex_%!N3qrhOXEkNn0|1^@M@eunndQze^dRPmMtiw2&iAmva3@zWVBTKTCLcY9(r59mW$&hq~8bCN5^ z{+PRtYspVnAk&#izGCQC@m#O`-U+#ZO%@@XP&9rE3Y~fNQ8|m}$3N+XfawrF;#_WS zm?j~0h1ZqA>Xf-)&icDF7AowqnXax%mV8*#Apd1PF*mNX7mxzF^r=SCKTMw7Jf`O|9UQ;C71YC(V$#7q?FmjE~X7%VsdSquGd)zyfEf} zWHpHRYfBmZ+$ZGLr;nug2fYBec$;A$;J z_675N(rv3wSWs27p0TMDvE2Bjg%r6Gc7BZ6$wdnC(+7J1?P_mXC;$w@vhEBiV$LDPxWi3M>{bVF4|YHM@@JWA?k z6-jF+o;YJoLiOZ*+r64ZJ+u$4a-^_ere0{pjIX(g7}V zc!g}BKw@|nZl+Spyfo%b1$Ggg{>Uibv3h`D;tstwD=gt7b(`$t zP+Lu?0ZR|b${K!%SN59g?0c>ME6TOl8Z@8qzI);Bgb+4U2<6ahlDTdC<|)Y>YzL(u?@SNVa5u8X1?ZZ!wvSdH3?=II$WwEk2z8*4R4n zQ%m^IrjG6dOns6@D71uiP zLVSzYnVD6r??6{R;mJ;;Y!+`M$L2Qev?vGAfp|-PZ{+ETb!v*D_u1+5&0psNdqZ%e?gZ-h{+ut=>DP+Mt}N z5Ij&ZRmi!wR>B?0xpOH)edtKeV1}gfKtJ7(!`K<{;yv6Dl(V>yA6i^z)Ze#OGuU;h z==Cm87q)HW_>Czg_0E&6<25c@W=>{UxI{%%B@wfnc3vc(fJK$dc?zaK*ZAEqN+#eK zDx=l*EKeU9o*gb?x9K)POm0$*+!iDiUM8)H!x06Yq0jRp$;_^J>cCdLXElv{;OAq{ z$;o6Zf2K=CfkUdJQyUt{AcOd=gc8?YfGYNI_rU{!QV#G+zdMpuS9W4M71mATP+Elo zRV^uDeeWbAdsaRp$o=?kR~oVXtFNXQIaKutmE`rovU1sYtr+1Xkjp zTpnFZ_a7Z#sB$d1y}PmP4IzP6+^VmPN%NMMYY1Ckqqo1NuI4v;ZHsDArz&%KUvt$j z*qEdWinww zagNoxwuen5PoVQ4K!3I;jNP?u5pZ$5BUJP!4`7q0r< zlap#rhVMQaI-RM24t98E(3zVd;Y&)jeE5=3(4`EV)VA30z~&*`Yk7IaY2cCRvcp^m z4kzEptY6_-TujV1iOBdVA|m3kYk}AK3tSaYyGAdq^ROS!<{--CIzuk^R}M+L#C`dbrf&!BMa%B8R-jx6Q4l26?G1Np0%RV7EOzy{?O@pH9 z=R6xa-!NB6qMvWd6dzskx<1{rbY&JGH2-V$cNr^>o#K6cfcHCQtMckDl93{~wLJcn zd#V?Fk@XCx;8DL+A4?*WHR@FluwsFE{u`5@&Ec# z@R&u?Nblw59^lp+XzN8!BtK`lRu9dd4^=gPNJXK;dysOM26YbY7_^{n_&3Xmw4!0M z7Q8(+BegkM`L?mRaWKxOlw~aUEqkJYfr$%%{kJ+hLql*MNYG87%A`f4Rtd~jhBniO z{-_i3(-^NS^>T}}9L6M_L9X|T`SF6^dg^QcNc{HbH29{lGwOUdY+AW?v>e^Ox-N?$ z67w@wKZ_*p7FT_6PmZcGBaz5`BtHy&wLe?}P;s=^j+=6-xOGUP(NZrdzKo2ZxKA!j zM?^%CNIsp>`FT05Dzzk1rsDnZGouXQCf*q9%L)3xs&S;0dMQwLXAYSIazcvB(});ojkpzEZxh*~wX;|FAUI z;JxwvQlz$qv3FunJHcDpq%c;U97jQ@O9Og(y(>J(w&TPWU(KYla+Q|Oj<1T%0B5c0 z+?EwLTwz>iq1vL@XFAeRr(bOuB}qZR^b4cqd4?%%r6K?w&Bz%-rLFL0#-%x<3I2`% zZT#o>Gv2KF3X@s3^Ln)yZHCGEw5D5}U7go`zC7p4-Y0D*uQ%@JZ*Y7zhC0?F4BiaU zz$ge8PcMzMOG(#Lg(Z%Y!HD0+#fl(BLbB>3*>2W)B@EQQxeC4L_O89hIEgRm;HHB_ z{b@qm1IsG^o2%^Km`=Z!F8`1@o;{|BXmo#G-& z@l&qK)AZUGSvXtn#OLm8vM7wlHev@MBH1Pq^LUzi%ZHn38dcp`Ln`lr6*(id=~gvSsF*`2XVO-Pi^p3M{`V6Abr*YXK$mIZvUF*NO67D{L@;*rdHiLIpP42dSyXTZ8n-j_a{4(T?& zZ`l>)XTmr-Y;Z?l^OkbaJDpH*{dy!!!D9)xfHY@iy+ytM%DAC@CecUo8~R&A z@-l@xIi&n7;~3-0I0eg+p+F_MAKIV3v!ysMOlr<>ZPnRYp)nGKGeS=B=H^1%Bw+cq zY&2-zZ<$ORK=uMqYET6J)4L>%pL$VkdXL?-*1U3{2q)y=7T@`ySUoT={Lwcib9NT4 z)4umF7^T-&kK^&3&$Fv%+Ku@KC7jCVJ6;%*w*2Qj9#wH?fU4_g9s)%_9NahaeOfAe z{+_kjsR#!tL+uxkc67TPddQvzLUKYeah{AHUOE)2hB#S&%3`$0IZdQJrG*~q%5OAT zbZ=5((uGiIKyPN(MZ|Rmm_PvDY1x3lNN!y&)zp37dN=u7{fe`3S%6+QB58+?A#JfZ+l(cTG#%OM8j+)G4r^uZjONb^QD zRLg`i`Ww^zv+Jztog<(1$}){*<*r?KYP|4%0M(6%zG%NR-E>kI!{b!^TrAZFn`U8@<=hde&?(`lZO^*lUmOITKS6^K|CKY~N<@Rvm z-r7qKY~5>@JX7WS=0u*z-%9>I^*=jcK&*V+*jr!QpSozn?ms~7Egv(bHNo0aNi7SA zl}Xz|x*w!Wcl4^8ZW`wd&jqDMYNhF=USVWiRa(5PIpaB?Q_%bAQ4#sI1Ck?ER21Mk zch@Uxz2&hKm2HxbL#9?XgMb}ApM>}U+8q$zG@=lwrHu0}p&KqqoNAFL$=KqLqhEXw zQtLPTI)Ky_@~~MU0iVxof0aEGtT9Dqi6l5sGS5aH@970F@n?VEtA9uoS4D} zN;UQjwJK@?@cXD@HK@H!1sH2<+&qj^&7F4R8&fX)_NkFCtMfkzc>7<{_V%VO1$E~OcIeHS>2MxbtJESKnkDrp)dk1EuGfB@s3 z!%+!UrVrbni?M`^KF_4Ugo-GJ&UGXU6;$QmTDIw^?kb6N^t}i8&u{%db@u;;Sf^~M zi^^lK3(cUkVe|`adBJ>3mAM!a5oWQ0e2CnTw*VE*dP-8;U;&3oH8v_<+)B(!>cbnmraVr~`QV=&R)eQ(NY@WfD2m(ffDBW_2?Y86*W` z?&%cw|mkhqd{8htB_4 z9i#7kFW>nkg?D;_?|o@J5cArGXmPbItRCoZ1{KXbPzXG=$DwdAdAojM+2KADgJ=5R zemj4cKe;pI)RY?cO#XRMlke^JA*)02JFbC+WeAqS)Q70{A;J6Z{PB{r^Ha2J zuTHYc-~GmvE_(5ZRQ&~TkN>Sxb`?@`Jy6_hyv}@(RcQbfV*XA@Tyu+~LlQW;xm!CXKB|e*eR~=}@d(p7#lk{o(HcV=D zJMJC0Bh8zAHl3HSs;{p4H0JTxK_9jqSye20y-AW9xDXfmMtyOALxqmhjfytAb2 za`-UzQwfhVQybPO%P^gF(>#D;ZQPl%5DDG2f3t>Pt~7^R?pNLF%}B21mPs2|jc&av z)ONYeXgSx~;vJsa<%W)m?u&Y6Q!+MuoVuOb=>}o@(WoC`F?#Q9R95X-6=ul0@{Xj& zv`3$3(0PeTosb}#!O0fUFZeDviN-TRpm(P0Xe|NtD}B zr6(?5 z^mDxj+yi>UHd#WFy1t)NE~hC=dZZ0h+9pbHysN6=D1QY`+^~H6P>fdB{44oB6Vn5Z zyFDCSV~s2_O9BphDU;T5+d({J^Gm>QOa=3^&MRSQUelmOjg7!a$^8LOZu3p)x$|Ic zwhEPKP-aAps)V+!b5`pGkA$Ea&H?|6pRf~$IXB1eWIhtVIjiiw`r9`q*9*P`)NZbf;^PzA z|A7bMkLtfS<=CIi8qc-#zN|2s`t|ZCSb5Dq5a5@~$u(|cy)U%>pdqXKW)o1e^{Ll) znWmMj0$0Wo1&t~=P-2K8UZ%hKqv%5n#zA7heOwZt4>#y*TFJwqvborupeRVU1!KsQ zNVPwOkK1_z!|0J=1?I3y{)ODWz4M|?J8!=+!C-2e(tYTR3&~G2v-bQ1@HsD$5+vCo z&W(n$z|$NZ?dYg66=bIC4EK*v^xarDp+pzx5g^XAZV4zd?`WmG4uH9gR0~|6>^9c6 z>rlB7*CipV((6IND41KC?dtk@ZY+}+Guj%hrI<#+CCbM4+o(18n36y|re$?jTAr~N z8bLmNrsnWwH5<+qoQ-7!k#cmA0)1o*fwm6M0a3fLcY&EUfa(eizfr-Cs{_u z#5QI6hnKH+QDWJ~XOY&MY$ZwZby)DqT?S&)?;BGeL?NhwGrgGi#b>TW{rh4&qsock z9UeWnzEgm+9nVQ_Qu>&F@QSb%bxm|y_40)3jRVtov*ar8NH2_MKVZ@ljx8?C%v?d! z)R)RL+e_3(9>f&m^OT}%1`^HE^^siFgzbTejGY(P%P)-z%-FTax94A*C26ZmmaY{k zpEM`iMVBoV^L49lhJ#ll@<#x-#-}}py?-8&b_$z{x=!ytA46J$@!0^(E=*$WEe6~z z=$k+wUj!4=<>K~NBQEay@nav+j#y52(dhksUC($rIU zWrdrr6U6IP4#igBjd&P=19nB(lSGek*M}ptZ2Cj;)L%Myc{y3fRk4O+D4(kNM(wKL zw-5S_uaV|(brdz|L=1z?pi2WHH{~YCQv|ppRC4m%Y++G(2cgNcoT$>{(G=UPu=j*_ z**<^lrpofc&?|EG1FIrFv&s0NHvw3mO*}Wu-R&B*PmsuB2dP<418s{0#>=wHea#V7Af3LNAfDdI{$8 z1slAh_qF*Z#Moa%g;HC8%4VKk=WBg;B>Z7+j@R0n70xF;VYQY(yE`{I8<8Isy@J#a zR;Si)L%uO}-8^D%3eq{^1Ft!%Tmc)bj@hWTR}~`Yy!*ZFEngS>ly|61z04u=b0Y`9 zM}{7o_>5m3Y}X>CkrdrO+d zhSRcdD8Un27q+)28Yad|`i<&45M`3=P;^!ZljFWi7sRjzz3EF&7?!eQ&T5oPYEQ2& zu^Q{JMh{L(?XnJPtBi{5WIxPbyglK^-NaxTGoz6fHAE&^)TZ{9pdMXKe@(7%DdiImpeA1AqZLSUPCEZA}Rp#Yh zL3jTA2+G8yGY!9s@1?+WcAI>`W#`@OE@|uQS+{sPQ|a#q(3#fNvW9PW(Z|u_`#X}l zlRKV6t~AHUu+*WG*Nd(p7cpx2u}@_jHkm#A20q7`Gle@>_rdNMpQH(g7=rle`v3~!m~d_V*q65M zULhgR+vF(~g&hk_J8z!j72`MnxVSi%@9mm?KmSXYUgznl%Z2ScDaksYM^^*RhI*4{ z8%yESM+nwx1djT!FOcmOFZGg=l#PHx;pe5)0SGwZa)s>LAlUf|wF`by$eahPMObGI zE&^rS9kv*3TQ7Kexi~>?*jnkjm8YGC3U5<<0~J)=GP)gkrrIZs3DC{Ar?Y3s>VOe{ zyC_V+hry0yABTQq2Lt=@)h_g5rkd{9yr1f**Z9s=H_H>&&i7y>3`V+Z7O&)YpzT{v zzcoJ?HNk^xf%kt9zy~JWD+X|?nJ;KKQ)vF}T<*lOb(d5yg0$`&vQc``eYp` zSZoBw=p>K0^KNK7rX(K`I(_^O+zK)?&-qsu`Z!5;uxl+T2?Z5vcHzmEdFuPCyPF?b z;u_Pgtk;K$vp#5Nj%@Ih>s1?0G7Zf<*Pg1+ww|TZ<-uS&LV9ba1>{u!@<8Wt&4{cl z$Ue)t@p2NuM2qaFMZt#DvOYxLDI(mRw^G%oQD$4_q3UFlj2=Wd=wgAH_cx~biF&BY zX%9;XwEW52-AV~-Jytd(>z zzDR24qNH0er*Y}UQ;v;2Zr}ZhbsU9#@)jPfi-?mn!^HrX@)%vNCiy9k9mxFu#+4e)R1#_Dk6#Yl49o>u}e#~_1U&Hno?vmO)c!!?*UXVdped>u0|JA&t%%#;YxlFZYX%o+? zOg928lMx(+u3xLHAhbH-v^@9!%zyMOm!>vJ zPx9Aufl9Tj4+i+61A|6Yxb^=?7%V+uG&F-k4gP=Fd+)d=v$bs$$FVY~hykRCQYADI zLNAtt9xx`M7o`)Lgbo6V140mxE}^KQClCz1BVD=yLNC&Lk>2NIzx$m%?%B?}=l7oT zo%6llnf&vt^*m43z1Di#TKBrI>#EVp(5cjrc|mf_9a4Uw_K$?&nj~@*Uf7$v%fGp> zllAg}o6y#Q^_q?HuL(j(o+ga##^@*E;LkC+h3!*`D=pT`QwO=r{+I8 zV>98@*yxc!KI0gztET7!1xR;sjq%v>QGID#Ik$!OnPh>`+SsScPeSP*s>d$AGwV*% zJI}ki4ytsrXdDvTeg19UV(vvUE^y5h%N)S9s}GA+lgoe6G3}EwR|(fyZwT zuSgo)%nP|_!Fx^Jf|Lb!%2FyDf8s3ebHBUbt$#hm-C%Iuh>EeAjoyO!QdP5vn|1|pVS_>ebz<4aHU)f>kFa;5h|uo60z?`I_PF%e1cv_dWvmyFRThI zps{;;)t)snp5Z>DSX=XutxDO7?k&^p2*TwP&VN|z?;L;`>j~F;DY`MPKFi`d28%qb zXx+K1I@O}WmS+^S>ANH}cH*J(VUTf}XWWW^RC6>P@Y_QEj)jp{W+W^J?_Wnh`}WvB z(iiCx^<-ac|0EK0+`B0)B|=)ci*8?h;~nAFGmUssU)Pd_ zN#QqhbDX{)+-zqC|JlictI(8?xv1O34fwE~8rs^G2m{FIQ^!!(t`BJRwXj`G+O(F~IR(Ijf( zjh7w^@~96-78NPwib76Tm`C`LDus>DEqNvS4}@Qv&FQ+DId4%o9;lK- zsBC8>6}zWJfRNIC+Xb5Ec3P4uC0dr!Kkmr}#s_==y)TH~U+t8oaKMm!99n`{&PtED zq*SUqC6NxU3rg<5q}%Bx#f-HizZHqf5xE$UkWbaPZ){#ls@dav@ugN*Ev}Tu-Y!(r zx5!7Tnaa6f=Eai8FtBr-EpTh`O-Pj6(kx=FtyKgns$oGxQ?&VQbN-h87K%YJ`xd3q z2U8&Bu4omiF)EfeX;o%OeG|Kg`{?&%*L@JH_1tC@>$)!#?eTpyO&qfM5CNu8${Dd7u54W>0h4Mf^e|rOB~_ zbl(N0ICRome;SUi+YNqGTNkyHG$cY>_c_G&gbxTbT=+Z23&PELkhEC)JlgmBDjV>FlobBWH zeRh>TPnrK!JVWfJC-O}ROYSB8rQu0?Q13#ZGVF>lx;j209NLGI?jX-iA)u_d`KZiunlE zDXG?$$o1)v18xB0N=wGcnmxz7NY3tCqt5$()OY6mG zH4N=jr;hDo+BEPOVjJLcl0mRkEc7<3twvdEn~#$}T{X z;oNW*-cfWAn2ss$^;DmMPh0ZU7rg1bY>^HqH$8tU*v5go8d< z=7J!5q+`53h;rs0I~V;zlTP&?hukQd4K@sKwlWPTytFud&QN)#Q%-KzP*HVe4CLtO zeE18EWQTLYXo8>7vd4n=qtl-2W#&Yl23`1hD@L~BRs(3j)9$;T=Ar^)bmA>dO%KXk zl$u1B(c7iHxk`8}^HbwSl_q5_SUVahjmP3LobEK|MDJ;3bPGQ>`7s3!IY1-q2A+v+nvSV>j6W2P$XGVrc7)HB`rr!0?<v1o2|oI!*w(iy zu6@(+kPf+R(AkmPvGW1zixJi2&HGXTa&6d+ERA*}2(eMN3NOxuF~7<6u1r2#A#2Gu zb(*DQIlO2}r**p8cg(dKVM^$c&CCw;=a=pY80p1ti0^M6IRU&;r!(!KQOW*Pt{FBy z9o06Y#jJ|Ga$K?U9+i(mS#+!=G;!GEFp}XN^)b|e7P=`HEW_j0$e$^2{jZ?`Ci0Qf zVgTLcsm;x9pwrCT6ly#msogdLAc8tIVW$+WP=AfZcr$f8(K7>k{$H)Km`|8iXvop7UBhdV!>sRl#O1W`7!M351JFjN$MDs)3->%5N|NS{A zPScWVf87hkM86Hb~Zf&>6L)_YI zJ3;cctTXDMlVi9(ok}KbNO>7nU^MG;fIGD2uppZ$xgILOVD{P6n4J}MjjQndII@2@uj~6YVaDt_O!l@p-sw|d@ z(aTNO0j`j;x<5a2;E|WR68-gIR}I^(dyP%hC^nW}5Ca&+`2-C967;g)OcB=!%$Uli zdR@>n`!_fBrV)oRiDN5$K~6pp&YSVVo!UTGvvzN4wBWtx2Ple5$q5|7~STo4d?EO(1`ASr%Oz?&(l*cH!38_cRYj0r| z3wo;I4Esb4!@`%%O&JfKzzv*P0K_Rw6g15xNq>YlV}y|hPcG|o+9FsJ3ipa7x@832$~&t!j1a}ig3tgN_~ zLDiLbli%z(;Ays70V*wUKdhS=Fjus_&)~k)!aw zZOLu5#Ta5Zv_}DRe}sBGCw`&1m2yhQm2J6B^HBN6V2HmH6vBSL0D&H| zRIckRWWX#!WmJNPC=5joF+xa?t2n3tN#ChO{YqhUlf%qkp;3LmlEFWaSnbyoO1u8@ zR^BlYI~1PdQe~+-OOD?0a>El$BdDk}1N@3g84kBn9=I5@|%cvDX4wk+?|x!NGVPCCE?q zI`XZ15m)LC;{&G)wnt*K@2fjvrAQYfq8JdhRq-~NrkVN~qz=t%JN=HP>JF{3 zGTG`F)Vy&2{@%&Q+4$!mfB&}#_xN{cob)H65@9qmp@q80%jNo@&=Q8On3_%03l7ZB z>r*aQ#qeu)J9`_{2-rmFCQcvneJsyff@cv@uND<)s3w<7O;oTuzIR0~ME+Qzr`zbL zvM^|G+~5B;fJ^#Q)ZyF}4m)`&;n>lub!S@mu(o;?Fc?MR4cly4MC~O#1TS+Jvb4ON ziP|1=(8x~O6dAyc1QF&-%d6y*95)D2-8=#jS5?}*?RBw{8TqoWT3U|6-2$58g9ARe z@iZTP%+p&W-slttsE9#%> zs*h`fIk)E|W!fxs&2ufRyfO26T_ruzu-+vQ!#q>!imu0FLWnc#K+*T<*Bjcz3W{$Q zsgUo#z}q+RG$om=s@z_R4$)-36C{?iR5ntaRmeETV{iIArt zb*HgxwG6Il0#-XE4TA7W;Wh>0@F*;*>`HlzGryRDs595e;oAp-BxAnxR8l7$xYrg0 zwY?Exg;c5}i+-XYCUMW*+%%USw}d+th4Z|M`P6A?02!>wC+hXD7PXYSHoiDFIKMEr zFzzDO-7;v&l@bvKc4ot1FcdHXL00|7;rHzn<^Q+7#D71M`0b1nCi(d&1BHv`CGOO9 zQnw1cf;2wD{R_@r`9e=PWZ4H}(`5YO^DOA4yi=-H-R=c%WbEf<19^4A=pa6o40rF! zU$jFQ|BOT~<9Rc|yC=;A21gBGZ~F8l3?6A$w{7nk?(`5Vbcx!Pw4+8*e-8F*H)30V;@}=uf z#4k9MdV3IRUD2ctdzRvMgaB`5R*GR3w{=xKlQNJutE@+9CC9dj^}N+KJyv-z+r=X} z7+*-ohhQ^tA-e>NaDrL5c~sy+L4sXxA!Vf zR@9d;us&+mW;6QPQ9>t${C0fv_D9S#1Oe8;aV`Ymu`W2^dvg4OK>CzjX5!>0lBj4S z&G}>+_HCArQnOc8BE|(-y({o|N&WNZtiXLnAZ-v#p2 z-k%DnF`(8~Ail~=cW#XWOo_27LrNN-#RRuER2|FAH!wh%j6)flEjsypb;p~zh)p{O zfdW~kDHR=!dzh$#G6DTrm1S{6Um_S`EObk1#G3r(=6GpdvYLmVf^exx3awk!wi^BO zwbNp42}`<;C&w4cD{GDUuh4;Q8P<|_fVU-nq2X@{UW)VP-jiRF(C#w*X{JlM4hb`+=Y z=s-UUZw&QPO7M;{N|Zf~N`lX>dX_xR+Wz1ItJC?Z3d3@q)rd`E(c;RL=z=AcasRVj zQj;hbP>w@T@Y0Q)XExnpVu|TACqI63cmHSdFL&JU`s9?!P&LZXC$EE{wmDf4nNI1GurR{a5;@l8g5<( zwJ6H76j<`m_qQq|eJUfNxSf+{LDcv-khx7+7#h`swr1j6`2;c$`=U0qEfsjG$s>!) z;02erxqVqYHrplC3l-*uCq}dzQQQ_dOPRwA^t9BWsvID7tt)~QqjFaIEGn`l$miYf zYX67X|C6w9f7rmmQir(Q1{4G{hRZ3*S{%CG1D|fC{vFL}Tmnqx$ z;)6^Z@|*H+UFKYe?87reE!xye{qNgIMpTx|*Zk=g!^2Sg36W1RqmJ48?$2P{1^QIE#;D_$ zmr5Jg#yTh`hhBu*mp(AI-`p`k8X^&{PDR$d!9#5kVNe)MQ-#L!5E;H^d`92Ap(G5` zTj)Jpt9ir-c1UOmN_2t3calQG4y@{XGeu%)e+KmcRHg%QOsJ;0Y1CX*EiPmBj`Wvn zw3n=^9*koGQp?R+Q5qD4Gk?sMT7%~Kuo?Yj$~F_^uN7RU zDvVaq_ALuYQ6`JiKsdIQa>ZRhzA?5c(q3BzW0N50NOt)$gU5Ye6YF=EZvrurgFyDU zwX`O21LBzE3tZOQdRrf6I~;UL;1{-RVTNU#bHVtvld-@1;~!`L*E4_o!}iHZZl_jO zTui9RL40juc4XmdRBv|dM^h)K0(^27K zg|WeTBCBqMgLC4SePN9ju|qm(3R|*9Y_HdQhTPr|z-f&kAb(BBfCZ{mb z7KTL9Q{{m8GQy-LLP_98(krm7eh-<77p0d~{zOkGHyY?Djeje0J~JrnI?aQBS>gJ% zwSRqDf9;9?#`gDwCkjKCm3g~M$mB{Q*udKrwb&rEIhS<+04P5G9RW%q?{Ab>iL}23 z{My7E@oP{o*uy`(VEA_!1xA#K=#54O+Vu<>s=H%ubLOGWXWEm)8_g3vx^FTthgzU&7 zzevp2?gnpf2kn@cx!$sz%vZ78eV8gGZq(mMbI>k$rcGPn%N5t6$^pu!;2`B#;P}>> z=PQttQD$oe%}!iNcDJQInGEaD(yQEcqQ(KSt4q{ zK2A{NQHh~LvBA>jQfjg%hYm<#L7uH&cX?HF%UNo>SjQiaD-hY`$1F7!F!GxklTP!b z+MAI%+J_yw)n$YesWL0e5Y6yB8CqUTt7~`7wELax?Q6ZPO;{*HwtV_Q(;3Kvn{4<@ z3ZhRL1Oq|YLU8Yx3fOGzYa>^w@CSqGSsU9&7T}9yxUXa(8-?thnR%yN&7Rii8Lz|H z8o1KXFe$Y#2G!&Drhkf(W2=MEV@q^3K1@#dNJ3896l46{rIUx(#7XLg>HcMO{Xkxr?SzicnMX094`s3eQrr}>8DWBzChfOTX zfWiswCZr!We*m?~;wBF;;0sjRl&5<9kcu)uzgro)+ zG@kE6kk|DaKEz5TYOtC~+VNhG9dbd>b?2^P6g;V_&o~9-m)rFV&C>-5;Fe(7!MnH3 zSs&kiq=7*ree|uVU^~L`_~U#7OM){f=hLujv!T+L-ix-Q4en!nY? zD)!)ip(!!`09>A=u87(f^ck8p?(mhxV)X_o>EX%(`UKq9?Xx1$Gvh24NMEK2)O>?KcZ*+#%sxlM*oJ$5k~k;U2=Et2|#LNG`GOiR9NLS$iE2cXzmk4Ke2lyO~~)L~2JNdZS>QVl1#5S|sV> z*6rh7eY;9?7BX2dn6oWl#DnctYe4~-^?sxmqt?SZ_#i4ZY}>cRIxqK>GMx)_V|}q4 zj`lmHEvuz^9_aQ4lQl$Xnbti2GNt_$M3|w~P&J5u#szt$XuhJ8%S%rzp_H}SY?$&x z&N6*++>&#!RcrP|_=6#FhP~iH+=Aa}P!I@qrW5rqQDFdL#CrU|ciI7GwW>n7z8FLYz^MqXNaweg$DJTo0 zUf{81Dn7Y|b2}vOlvAahx_^4A_V}=ocPf5ap^!5()F-r80;JWMyL3YawL~6pzqS`f z4b-Alp{2Ai9j08w ze>K;J$&+ZZVf`cF#aCno>v)2%0I6k`Z1`B!Y!u4YK!LTnuVbg2bp{}^kwtduL3n{% zRX6Gwt;9tu+X(%n`d%t_Zh9rrCp~`_Fy5xrR`L<4m6Bx#D=Q=NI%?*| zfXqb~lHT?YsBkPj{_ zj~xkU8`Xlc797mTdJ;9e3Lk7LJwcl+|FFOsQ)hJubGEgyWjTmtoiz*!O=8l=Smvq` z2D1dl-?$fHsh~y`^L_fmIU#yA7(v-WSSCcD0={UG=ge8R77@4eFHGxbi^W)>r&N zD_s)QwbRJJvb1Fsh+Xi5=qdvICAebx%QLS#-!t)_`~F9853`?E%xez5#miks0ug<> z$a>%&XGyZQu5mr3vN~^WIX;dgd_BGHKxw=h)ZX5Nwt!Xw++l$Ad&`aZQaIE&6x@x$ z<9N%k>E=}~w-B`^cuwnvy>S*GQ2(o@kd!%{j8X7sZe; zOPcpERIgS1@tvXtF}y5%62 z1rV!H-ZEe@f^29ZTEkD0ZhS&>-uT&naSi_ahfb?lRl=QFZR}ul=_!fo$z0Ts&&;4H zbm4M_Z9)m5f-(YuXacb!YFPWEfr$Ij14coj4dw@tkerI8Rco}IC>Kb4;>r!gv;;@1TwGJYos|fyK zZBZG`Dxgh^Tz-?{P|nG#8w=?@?t?LGP7SQ4!Bh&Npx(kP948f(>lXg{bWrl2Z7GN0 z+Fj(2(S;A1#KlC-BBfcvYzMP&g)k2w@CicUqg0@ty<~pcFEmyaR_r^pWnT_Okg_Nt z9jTq2IZFuTMkE5PL{&M^EnApL&uU;#iy7#1sE`hs*9+W8pLG0S!kitJJY7P9^`>KO zxk`%8tRa!;B2Zu8YJY6{focAPt-K{iJ>#6fGUcnxd92MqMYC?@O{!2(xSGfn{tLG2 z=wYr*pHAMdU^u)I*-}{`w`<+W^PMR0`d=n6}2^PR9%tm1T`SVmUfY zHr(ZFz6sDPHO)y%W}Y%uckLMRz+q;sOW-=Njs!9St~Ov60qWK+#b;K)ye_D|W_}@< z-^y#7mQgz7u^)nx9d7|INc4Snai(+h0Bpzvug*7C1>zu2*js2mYD2nV{LY>v|t&SIJ5_i$te?+8iC+k!>+jfN{;+2fRwwnTGMhQSRw z9$XPEwQo#2{Xewlo_oCSU^-%*iV2GkX>e!m0qcm^x2EGOfmA>`pWTV~R5t*Ef|$Mi zmOk!Bnjc<&|D*K3H!|&C>wHlFJDS$tG)Vh0ssca6tefR;dx3j+(*a zg2#)(K0aEL7%9Gj2A|A#1oIAOvk~VpR%1K{6AIBTH}YaIekSOy9gFmZG+aA(rjuTR ztT!DuQ2J6R+QXOZ9ysriqh|oJm(xJqnH!E21>{M)>Ts*4W4#_WxyqPlWSU&lkl~sCwglSx;AE6K`fjX~d_T?$SzuYR{9?sOA`1wVFrq z>)iB48F}T#Y*T1_6GL1-QuplvZN|@Qmdqb}`v%sMl3DH9qGaBG1rrf2m>|rw4v9 zkv?T-db}!E)OM=9$>V9Ca*L?w`GGnz7fNH^|3~ zuYVbmnk)Zy^pW%fQ;|H+%THHPh;Bs+$C(SNvyV0G>AB#%!Sio~j7*WmQ)C z8(zm&g<&RbXJQ9z8HxNYv~~hPvBl0AkB|h>@vqfxC1b1J69ZTUW@UlRxvEsXzY5f^Ld6qMp zIJvYb-yTqEQHg2(g+^VhP=|8|Mgod_SQEZPbJoN*7ly6woA;}7Wd(S}8u@(In(CQN z9ZVh&YT^-b48Y97nxSx<%SvjyvdEG$)z6~XA9eX*RYTB|7YkhW8X)^p<;%J0-q#u% zcR1b1j1rtXl2K)+5@_a0VO%M-%-V~=gxRp0_C0x865ELfuVu z%O>SWE%zW`k^e%IL@6QPQh&S9v)qU1X}r=)bY>3T>+{sv=68R#K++kmoZLDe{=(@2 z)!zg!J9zuH#irE{Q#HNHk%@T9ig`}b!6)?%A0ERsPxa7D8WP1N{zkDg`>@4JP0B=W zL*B*CsSsc|efSCUBeYOhg7o-RZcd)z{NwDLdLex^85^m&EL@r2u~t_p(;6iyN6j^k z*DZKBab*X2d8{b4qql)cUdyge ziAs7HVPNLYB%r}YcX=Ur12zE!O^{qWon zdalRWOUJX!XFZcazG@ue_Ab550Hp_0)nnlEw-nBal;jjJOs>V@B09R3BK9~itW0VU zO~PJeI*-XhPjHc9d*!ww(6LYKDKhmUHYMP>Gn1ki2!J>$Z|kv4&ppBCbdTOaluP;NucTN1oQsm&r=0sK z*W1i&P*&;8%M;x_qJ6YW1Q^n7MCo4A zDGR~9XE7Uz%PVI|jS<(T)a{&E$b#8}%~8uzj`z3EW4{{ppmJRZ#cFKc`HWWg+2z}F zBPE(1Hr?A&5f;ZxLkF%7La5V^uE65bTufs{K=?6MciUjN} z_6LVtJG@jZa#HNFfN;$j&gRSV6>Onsf_s$zd{*agRrxom{}&*fztzB8i{IUX&b@#N z(OQw}k&D@4{pdSm@2h?_E-`H+8Z_E9MD;RHK3Lc3aXfJlU$`gu$otlB|NfWM{|JA~ z54rXO5y<$c=QdwgnBQ+e4$h0NP@||9V-U2BO2unQEc-5+vr@r$Jm=sg4f5_HR+2%9 zw~t+{ul1S-3>{Re(JeUNpJ3BFz16{%-na$Jr!xWq?6)FISz`Ay@ThR-80trA5r4E8 zXB>b|54pl*3w`C#I~3X}o`?09Nk9xy+yw-GQfgIMiEGwuOb-i5Lk7=dE6>j4rhZM3 zv?usB@1I?BlX{n3?_mkDwJ~CwpDA~y7uT*2ALkP9R-v>jZ6^kQ91%|s%FmWKhLhn* z@XgHC+10JDO|bw%_sb;wDwCJK{zbajy^)xK{QK;dXBw}7@~U5CCLg1SeAf6Jmy6{2 z8sbDyju8cc1o!OlzVvEulXrGl7K6e@-?YFdGVx;1Xbimm<@)~L-oatGQKSB23=*#V z(=F0}5H;Jf1mjDQ9-N#`NUn<3L5`cZlh23ahi&e~Y#uUFV@^;4F@vb!wnF##T-Sq~ zZMAa+#(i&^Ru!IKO|7D&U$lH%6qMH7Fubq8Q;W26#I*)mAW80=R%DdZS*Hh zlR~SG;B40%Oh(b+-t>^n>A10?3uMaGzL4%S<1#N*Uo6GkjJ9rEC_Y~RG40uL+3c{h z*##26TKRM&gBIZ^%! zg-?MOO?QJeV~}9YNW2Yp0b}!OMm4d-Vphyg`j(RFxYfi{3zPC{!p*t&+Bs0W;EdE@ zOcs&4iepR%nW%spuCyiPZcIuEzbbfq5NgShk{OkdUN}ChGBAz&66%t@zl6`Kfr+Dz z&&_<*T4Zw%di`GD~=RVBpESKP7Q<}>SV*VAZMt%|=+`l}26 zx(oh4e-Oe5m+bBq*ayZ?LTf%4PCBft8!V2;%;V>4FjMI5LNb&8;^&a`j2DBhv#Q`( zak7HVPSo?_X$#@ggNoLI!4*xmrNfRQ8P6B;^_*yV5K0@Fd0Yk}8KFosXIIStoiz&L zv*5EqvC~$|0hHL#A&Zp=fbCMZW+e0nR8SfHn~at2APz;bEtv4Wf2R^v&IBw(-^Rzc zn6>`&vj+0&M;f6&kSY8h7ifF3Wu`dG?bf#c_|&R^L;cxmgvWcA@fl_X`i2Uc^S`-& zOer*S3d*?j2jlF1Ja><}*azLMhN^ff$u1Z)9!RT0U;Rsw;`5oSMEFhwUx*Whvt1O$hUIgvuCF++7h%4hd$K7JE;Z zs6M@+`>+S)5rR&tNQKIrdJ{FmUVrtQ;y7CN*p(cE92}-luZ95AY!*Kp`joLfVv(;; z-)vJrhH+Ij^M5h-I`-+gBX^9@HZ2b{*0Uwm0a>47&nS?9*Hz4w9m}CJoSYzccMt2I z4T>z8Hu{9EodjvLD9z0~+}@kksslUoZgzk*CsaE?ir@lozQ^HN zOYc&MF_?kX7%{_Zm=ORgUa9`DrJvlqZ{9*3vP_H!73d_`8{wuk2j&Id`N(~hegCx* z-v{!O0Yp@1Z@1X(bTZJZAsjR6VRLk zJF^mgPeLpp52+Cfwj*VeP?dd>o~}pOYw*i65-#>kdW`Jvi&W*g4EsFCY@fGf*cOg+ zccODi4J%3+HkZn`bhT);I|`9+P!zeA@>cEwr^>+{S47W}&HViQ4SRV(`Z@*%r96og z{hn=lsq6H_dsD+#?+5Z^5U?@{Bkk?6<8pqF5;Dsp#1IheVjU-AAQ3r7zN|@eAs4_& zWUk=!y#ZTu;6H9K#=DzPDbt|Rt~5Uo>;n=+l*Ra$qVU2IJ)_q~N6TbxDwb23Te6zc zXdlu9OE|Qcx5`}}B%~=!?{B}#B2t(BX~p-4uQe_J3DwcFd{@9cA81lpl`YzR;g&oS zQnl9m>OLJA?FHz2BbUQS#8GF4g5cZ?l#4Y!2n$lzi`EN;V0BqSu5=fY5X6G5&yqNn zSWd@6`2Y%0YpN79nYHv05NDl(bzqL1hJ~ZoVh?)9T>bHp53|>*p@w0 z-x`t+*f}p?uMrGF+M7D`P&jQ;ZkT=rcY~F!U!h!V)90OqcAYQkn{*5=Ni0Yn1LOs` zOh$X|lTL=(7e5$S-s~k<2)gt{J4u|q5h_k~PKn#XH#h+)GGa}Vw=={SCsWewl~^KP zdxo(raIASU#hW&_xAfS?z!sK$ZsSC(3(hpEOvZ$TX@i!~)-$Cbh~~sQfP#F<$~m>{ zIAQ(~c*Z$a7qpnk=b0G42{|FaOL2*mrq8CdX{9#Ht));QyC*U-YHF51LOg2{@nFk2 zhN=;@8eN7QZr(S?++sGHL2`a6H;Ixsz~MLbq;F*rOQLBJfbr$ zgLyB{3HcaG>ZoebZCg5D$;E?vrBcj}WFz(kU@f7WLzzL#%MV-st*!s4%L$0*ccVi1 zucN;!xc)%=pLoUoj^dkU)6Xs9oBOw+_9qY$;r%S_1ripmZ?-&R49sFtH*b!pvy-BV z7gaLDlm$bLZ&tFnm8pxo_^{-0|7`zSB1khUtl2)jSi(xu)k4M8&U#w2i?~we&G(O} z(C>EXpC&KvPW(ojn*2zy~^XUy;LRIFpv%BGn41N)>dtI&8%!!#c!GWbTJ(q7MjDI7G zh;dLtD%q7bvHmo>eJL}lqfHSSY#j-)1qvaBbObyc2)HQMd19F`l>nA9nU1N_r(L1w z3TqFUm0HFmkrz21%I}=TCNyuWGn6>3%-MQKw0bQE;giCI+d;?1yNB;DKS9*bg4=G} zl67nqjY`9hfVn|lz-6n&Vo|DQ1@bFP%SHEbvn3Z_6WaDB9R)qm9HHmt;5GGw;I@dwt8DIrfnz zmo|}uoqY~wztE@=CP2}2ySfML9C5V{GNtRyxe%l5BexmFO?=gjZ|vLNWL+a|%P5Nc zJnZT`9c7Fu*V|ui^P5LLz5h*XdLKysy#eP+7G_&{E5E7q%iqk?XTNi-ZR(#ptYUDY zbjCuz?SqTIndj2GGZqj|BJVxrog};!#C}`pYrol7%6nc-%VCzXz6<@U)2jaJwB5h% zw7(wD|8w7IP8JLJHeQ85KZwBLZN+XXrM?_r0Fx)7fk4m?Dkltr$H^ai*SuM#A#4(B z(ct65*ACLjGShE%&pb-pYUniI4GbImc`inu7&-YMQgcQ`Eswc44spmtP?ScaP0Tei znzL+H#d~g>I9<6GUu=NkN@6(pP@fzr^4OzP@oYj(P?vsZs!NO*#MRCwc}tGnXK%6D zYm{-Miuo1Q0lR+ZyCaD2?nHFJ>|A+51hV^Cl7{k36a1Sc)6uqC>Lok8!8N|6+_dv? zg*5<=qJe0p=%OM|QSCFu(qnr5V|ro?$S<>>>fK3XRzLR{33en2dL)DbPQ04M^O|im za{#m(+orY-6ZM=g*e;b$m?@K$uS(9`9?a(8Mr?mlVRSu ze*d$$fvB_1RC?^rlFCK=SNDWjhw9R-gW&$~Y$*&$=HU_29sgznUUL-lcphU9rwU!( zUi)sd{_RffkxKNSpiLxt0)sL}&%Rh-HDSOuIQPaZMD&QthLZIJ;!1yDR9TDPVnds| zJuXrLeR`w6u*`=2s-_BH+6HnS*WJL80OL-*L~;{AIhQ|N?upPyx&Y1;sTgH;tz~e@ zAQo^jg51m?(i5tbzQ{%~2b?F2xNS+ieV4W6*E)_KCvp_d>>i*zsTdQh8m z8`0LE&=uS@4W3764L(EHT$!N8d^ppQ=7!aZZQfv0B|d3exGVqYHP7L=R<4%B|DJk6 zv4t^OkmGs(m|Efpq~*O%_me)|lWM|{_4>)z4oJ`vtoWaP+DE8kl1A37NWUh7^&hLS=Q_s7l}`s zm87n(B+*`}&=3CHq-0ans@JFWHeSfIDJ&LL4hnIstgi>p5HI1lD;QqD=CWgQmTzlk zXl5i0XZ) zE}P)*xOE|eG--9a@4{XKHp4_%naeV&z^fhAv&1~7sEBYu_R-1$WV5knZV@nlYA)d z&@k)4?G!Qq#uhZy2SM}|y>ol?T|0l@`Fqf-=8#WRf9GELu8-*NK&}O|CywgI$51v3 zr!u@;biZNB)vO!=&PTU+yrW?pefD42`k#O3&%GfzNPK1&emZtKzVT2K%=%46iBIFm zEa+hC;9;dzX*ZR2xsmv9`-ELWw2|3SWUaE5#f&yZsK@|J3pdc-mR=6zo<|o35sj07 zhCGmctu&xqV5x3Zu_I%b-h|loHxT3WaW+lM40vpZpEAvrWp$}1v4bt|U;Fl1$*)$fej^(|=l3m8_JmidWcfLC@!)>7aHe3E{h|a;`5t1NRwY^o?QEI z>1YhK6j!*=FS6y%myRt83xv#X8;7Fi_d1z;ha73USHzp=qm{QiIqj2Z#UE469*)V|^{%#f{ z}swYo@wFWanDy=LZj&IBN34Y8+ z)kB>57cRe_&t2ynb>DKAP2+z7bRJ{V2+yo7!IDDnS$XfT}n2vReDz1-wveF(8dI^Yxym*%zpBa>AXzr@H9o&_T-gxTe zAz3{94MK)hR2># ztn+3t#iq@QS_&5%4CJ1jOYu>sh#SYaP4KbHfWB1XwCfVMrU6mP!#2W9S#V=ej9TyZ z@wU)tSB7S_X>v1&Mux!1P`hgi3ZWbSzu0>VsJ6CsZJ3tIZcBwyT)K-pMS>P+H&)yd zf(2Tf1St|ESY;QNjhA4>LjpkqBv@PAi-h2m;u2hnlzuti|DU_}`R~5>p8Ne*zB|TY z3`R0#Wz9L)TvOipyw5XfUy6l_&)62&2`=cxfKbRCkd-1)!Qc-)@Bj4cJ!?rhX^VFj zPprfjuSkU5dUje}LeRd+rggG3+6Z#AdrFXy#w2EFps`WB;ccHADcqltX(Qgi{a7@z z;InGys56lwTa1cmI8apui&FdsBhdTz{r;}f`~$<4?A>ku$bjmG`{Tc>!TzUaqE^Oh zHElk0$4Q=vzvm6{Ob(iQHVbw9X6rPvRZ89mttDAHdL+k`p5#m2qC>N&sO{(8j)) z&Peho4q!F(ps4VvXA7d?*_NmHvHepHnOn~}fNU0Fs*ZJ4o9~E zzo4U9fO8*iH_%HuVT~UB))}y9MN?yJGH;!Q+w&z7w4A`f--7wUEhmby#`W` z%vLw|g*AmXQW>~G)qSAh5IDUBH)17y!z&)3>a&LZ^)nT{R!jGdS7i!1BQ7Mv*KXeQ z-bcuFp)yHO+mf44S|#>yYn;on!YRYgowq2mKiGsVrDwfQ?|x4-;6?9sq{gPU#bpcr z(tghuz*snJmNzonE`C!?+j8OJ4z=|5mM|^_igjmL0JySC)RRZo_XMqCD0KPUw7F#` zt7YX@YzYGm*a^DpLEyz;PS^GnK5mfruDDHcZnCkJn^R^RW;nO7)F-kO%y)-dq6s41 z_o0SdjH&^J-G&HmB@4D|dqzGz>$!w2Fi*0L2m6DVVo0j1zU4(+(3pzdWqXAnoVY!j z?AtIikJPp&gi7PMpAu2anvz6TR=Ah(Yq=>ufKJp03!OgOi3!D`9s5|sk!E0N{eau+ z99pv7PIvn+U2I5aRyzvik8B>@`<5M7O{*>y*Z6`Ui9{CQ&AW@#72_1-GD%=HG%O=J<-#o#sG-%wi~q|UV3j*e&=vF zN!FKbY35<8bg?jTmk_y%K%rk*jdJ296BI4bV!y1w%%Uul8&hhwoHnhm3_Cx*Sh$$Y z9}HRI2$=GeFS-Uc<*n6)za>G}R*cdDKaE=prRKrwf9w1X^5X&WC|lM?_7B?=Vqn@Fa~y3VAU;4_t*9{ z23#67O!nOxKwJs@@gO=}bH|vNp5d~nrDNfpDAvVTp4U6DfKg@;sw4$zrwUdRc2o6s zSM>s`>G7kA(Sm|uII6OGZC89EtGJSav;Z2@@Rb5QaVjyX!R=K7PMLWFl9_LSap)~U z4|O#3y(#DI$$$z;DaH4xr+otRct`f7wyE)PhC~RRB{)A4x&MQzOKOE2VzwoD)$LLG z#2fpJp%zn5t)5##aW{eeH411zr7kONS-|Q76l1TRD~Nu9;1t9d(iw2+sfQ5QM!ste zem}`Gh;CePJk9CTA1S>*iw68eB@{c9?q`?M2f~Dw!Rgv8=pp>DPH()UqKBm=`9 zV||yR_=+AgE*9)l(`5wEt9lSHhknmqE)c4zNzEELeT@)=uz_q5{<#sWq1f9$k`qMike#>*4qS}Y92u|ZZr42#@jv2g!c^A7Y8?QZXNn;8U&@_rr458-|H2m1?l4!gs(ds93G*CAn|3a1e z46}bVsF?+_RH6Syvs4-35K-!r6nnxJPtMPK zJ$(_9X*5Rol})JP$jP3uE@NK)wJ9p9KdNPK>fiibIws+Tb?fBm;JUH(U`mL~9|YdS zeSRk)giq`^mw(pwZk#Gc@z3enW#yW*x1YnUuKaO>m)ZNs!FFl%diQz&xwwFh%yM30PlR%X)Dn#fo|nX$!1^sfOc^PiVbl~QxG zK6+A+W`MnEQDW7o39!))>7P{=7;80w-Z9qG(MqeT&I0r{d5)_djg`2=^5FDR-Plab z@PKBnP`oi^29_a24fzJJ4q6rUF|RxEnyxsP4izBWc@qHL5v<;;r&1cwOxC6WCblLE z(Z%j(mbIbt7J3!a9@lFKn4n0Kgb4kE82J20H1=x-g9hJ=Yrp>4!t4J&wk9_DsJ`5I z4jkBA)(9}T&P{e(TQ7`4Z-2e|ko~f{@`t3zL!vE=Mu-KvpRjnt*H{-0fwa6D9mq)2 z*W0&Ciw`A&0Q;%@S=o(PAobX5xooG5lp=(LPRL_)aan#WxM&MTe+wIg_LOIzac9(4 zBCPjKLKF1|8d)xgT%<)$Qu7th*59i|CJ~Jhg6wo*?!$OY>nhr3tfw8e^hhkcV4qMV z-^sN<-G5ghOymCA#g^AtqHBk{Lz8V!WJHj3ME^AF{esQyh$)0@h}qDnYjebXj+C=& zE^oh&qZg8uJ-LFi#u&Emp{rck1~WkdE_H5cgxtcUVZ~|o>lo4O5pVdZnIps;@4Phv ze7gDT>)Gp@JESn#*t4mS+Hl5J=7qEE0oL^)Sr6PU7+{`W?OaE|68J`u$n}oB^AAa< zsy6pjP4{knA#oXl{cF@$Fc>(9NUIR&cOge|#CTYoyEsc0iOH4QR4;7o=X+xP?l=Gj z%k=0l4Nmte;KBbwBtKZct$ngo2<;P!3h&_z$*EW z;Fnc6U4DRzV#OYZ8B4%QVhU?(L|MGKGLC#s5y2ni7!_-`H=bsBJrjyCTJ7iqM88oZ z9gBoG?ULAQ#RCcc!>>#BXOayA2c@bIZbK&^$J@3iU82(!HO7V|ZYAhuFa`|fCc3~N zEqO!Y=!jGJp}rw(yoj4D<`VxbT#y^O-Uu?5T4_`i2_QB$eW8zC#*KQC8X?**aFY}T zIG>bPSXEL^aD7vQ^7oT0=i|Jrx_+>RcI1vOEF&^DcIwzPGCaf3;yS0d7{~pLMxTb7 zo*u4Ao+4^fXKtIdan4#*Qtr-tV||%xfMc#LGb<~bt2z!vQH6F2&upbu{JE=Szm0f9 zQJtn0Kqm(`6E**|2!a4+GA*XQPa$p_JCB{pVDGw-BnDg@4kOnhrw@h+5p<9rRAJ{l z3sk^Ks}|DLP5Fa&QacEURk!(7&DHwwWyJ=?Ol3!x!^5EH-KMt|JVT3tcsxD5`AMi6 z%l22KIBHYq47*Iu`at_V?C0H(TW*9m7c6)Jyn#WsCdCtl4Z#HLpkJAKCibf{86}c3 z2^7$U)ealBhKI)ww~kGOXI{%Qq^l|VH?6^cHZ1)saaZq>dAeCaE~Dm7P&b;Q_>tcR zI6K%9xxgM}o}3tS>>#~2gcd%i)7Fz^AUqr9Y|hfVfDN4tOGznEJ zXsj7$JgO{!*gvJof`lTkV#_y{zwTqrVpa zpM6s2w7xsN_+>3p{*iTzi?rOP*wdA-c*~qZik-)MI)>X*hy+p{1gt82p`!YSA^o2< z-@g*^A8$y%@`ug8X6e!&LQgqb1mwWwRu+p^w|cr8vKvPSLWQLm`~_|Ct)n_?2p`ol zbqqiif7?YBRf$%9MR)ff!3z_5I|7Tw5zPfgCTV zB*=6gIeiCsWnfwePuYJ7;PQ=X`9am>o^qAZE~s2s!Q9XW(ZhSAtYy|%Vn|I0icXVJ z9LPsU5}~|EFKuk&h~!?fEx&!w*?CSM>!Vw*->?tX6bxx#d_{q%v87?XwKLbcR7U2bkVXA(;{ovfLi0bGNRPI z2J-wByg1LTHH5vLh$m1oj9%^45H_<`Jo5uL`JE(Gc)QbuHBCs;u7n~8N8h8ziu;Ui zGeG*p+uIVA6H2Yd*Ci!6%srdM#5ruN=^wR)xh69*TVSL3q}x2zv%5WW0g9;)vd-fC zo11S*boL~JnTT}>BOMCW^}i7TfE871Nj$Ccwe@MmBcWjTAgu*rqJS&W0#`RNH!v#B z823(qz6@x!w7>aAZ%uvw?4!Q)&7O7aV8C;ud0~?QX*K7P;`UlRC<-s4rQ3X0j6&7e z#aat4C=JnzbZX|e3V}$_Id)H!h?uYGP=sPhlO(A%I>>At!lQKv~1g?RTd_GD$42(Fj8FA zuScM~;QQF%YFD+hmGs#mgGYRP9IfB1A3ZPYx14>SFc(TDc4Z67+L-Cc0lFT5P=!Ar#OV?Gxy!gwgeZAiz3|)tGRC# z-!i#xTDL{nwAKelUJ`isE`)J|4%d?YRuoRh%Ul*Y4?}9;*k9m!)2DhTi*vWs%if+R zD@s~Y6ab7pw!d$_p)+-@OCXBLsloF?328s5-rg(Gs0e{shO#^&{wBS8qkXmqq=(n^3gSbepl2JnZAmr1ADizbcpG6rVs9cl3Mw=jS)n zMC?U?dXav-v9Y`aIi>{-0GZ-9O>vxNG!VZ5eJZqei0wTQvh>mfgQ7Q+wmWXs?0?v4W z`d2~2>V*iam7KcW)TYp!m_SKKHr;rvu3_KaIH8EFYcRPjC5Ri%oExv3q7pb92O}WnKswu9$UsF16`wGO3-EJ6{{s# z2ssnIp_-S(ieviKPM1nf9N4(lX1s%!z~wM43YO%VUl+K#H9DVwg7Ww_F)@( z{#oKZ$m%Q%lNW2Qq1w3yiZ->3Y=ik)9&ld&in$I1UQ-ZR#sc+D0z*4u&yata3R8xL@S59Pv}%O}ePeTWKI7u;+YUC*m7 z*%QOAf1R|aIT$5O0$BOegg2ngNTjTJbbQ(LG{^*#-iY=YbS~m{QzV$~ogBPOC^(0I z4WOygyh0Iv1P;KyChq0CXEv{&ULk;U&o*I*Ihtg+5%=eCo*ZE=v+Zb6T{QK8bWZBTet92_2W$W=jJl(tCw8&T|W zKzuTz#jl&-e7$%@34kHTF&j}MD3UX`-X9>Un{fC%p|^(7j)7WBLk1425%lRBENs}7 z$6S`eu>HC9fVY*rEqQE5I15AzN#I14b6h`O?E6CWU`8g7oc3<&cMYF~y ztd*$g0#r~a9&S4p3l`nQwk+s5sATvn{3W=0cK=d|p?`BC&FLIo_r$P%GC;3}~gH_vQ@IbSBe#I22i2)Q~;q$nb1B zVOyQKeGIW|TmPA`G>#GlRvH68ku0HBecu*Tz2GopG1`N|^~Z8S2d{sqm3qZ`y1K^F zVw4p$TF?wEH|DJE1#Nn|naJpcc9Us)S~R__g!pbqR`5>v1;|K9%)RK{P|;VR@Wq6M z(2k5WvMwQ|0lq@}71K#n=?ZZBW39&UP4r^UG z0U#{&+#7VLKak@0+(H!Sa4y?3)!gphFvc&mSW{VZjcs&f7)K6~x@m_S<>e}Cw?|BU+2rm^&S+~s7bi1IaH~Vt&IgaSDOf1^>Kyq8!?Q!Ew+_a z!sRJ?Uv5ZSe2Ki2Uu`BZ^pm0YZ1S{Nikg09{1!!JZxSqE>M!P*C|d6J*l0>iwfEM=dV7g^_!~ zE^fd*H5H;s7UPk5JD*(9F9dZlZ8}Yit&+Y=@kcp#r*^Zh*RJ34m}ZN)N>KUrpSsc7 zE}jUV$DM4EZ3uux(=u0TfIkar21#980BYZ>aj@}v(PId#)iO8bTsrPh_DuO{9x9_Y zLxR)N>B%R0y0UkF7*VgiXq!*b$V_vYxqse$xpzY5*`vt5smosZAMpXtKbclu_jjna z6t4C#01)|!Q?WkkBX;rl&hSN(EsAX!#8?=0?i1qp_ zY1kjQkS+Z!v~|sN+J*!yZe()VrK=KcBV-nVEBnY5^vJNk^xK1rz0Dp+*_=r|u}>!f zfDUI&V|xy*HS`l8`Ob@#c%oDV>^n0@cJ+w>_%l9>(mKC*4Q&E+iIBkxXxV;G~tcTGPao#vu{u9ud}@~%5$0%6t2a%|zK#*trOeK9E>p%-J0qNP{G=`+#kQ>~)rC^}uxkopMFgg4ucXl;LI z{NOLzE*1ZewoA^P3q^%;(xf33Ykk8Pxe1lA%w{|~G^t248x7t)!xPb^;+6olL2wS@ zhT^R$apTs`pSx2u?zyUqM>phBL=gvRX$8Jm&>haL9eth_2Ne_>_q}(Un%MV)>eJS# z`wuFL4~qLaW5{I4*;E1{NkV&c(K_1kSfyBnyU`8wtvw{^670V(vj+1i=fZH-GEdV= zD+r`s5U{WR9Pss0(4Us*H~HUo-FH~a!s@@WKlPXS7DH;8-nnr9z$;|C{+z<+vNVrL zr>ucz4`=^!f_N+cQTmzs`rPKXFe47#b1wMyQQ%{Z@0PP?qCco8v@pkYYZR^9Ip6QK zKdAb;sEcp&{-B~Id<$rLFcOv+5 zUQ_96Zgp$o*a}~$vfD_6u@GAh;()4Zo>LCQpya`c3zXx-KP?uvfF|Jp51wZ}H&`?1 z60=AS7SCS1!18+~mYGjIER#1)cbC#w(VMwbQ|O3|GHGN&wo#}iVhXbp{ey}h&Tp4m z+TF}Fu=_Idqz>D-x%$X%EB)u7Jn{O&w+-W4^eLm`_niw9(wOfxoIH(1C|L1NOU+M< zCb0_Hc`HmU(WV4>4`<*(yxHkKs)D>zOg0^f-!L?jo@-(KNZ8vZ=QXqbrl6x5U0QgW zRdGu-^1-{$(iN!{BZIH70{Emw$+otZnXIFDhqJ+ZIwa;6;-blL>J++XUE2EdbHw!( z;Tb#3GMe<*Z z`~4l2n74e-qLOrU#ie$B?(&&x>tV@f6726dOy1L4&>xG;p71!S@i;1dqz-%TB`n1Gzk?#=H{G!KIl36)IB6{bsb8`LgyyZzEI&X6 zH}**-ODSPXEr-uuy$xh2TJ8~8xttiZl(dD_F3jBGqbZb&0X$;7w%Qxk9DF_rQ7VQs&^X-w?8+gn5UjC~UTbf_qe@+g?7 zQdo#F?KRfFTc$GZRzy?|pjSo_X2R;Ojw;>Xu~X(=sQPJ6c5H0Eg(2lHX4ZmxPbqfR z{r84uK3M~Dd8V_mS>cU>JwaUHqx`2RkL+q6AH`Uk`L$LJ&fL{Y{LK}H$efTghidiq z4t8`*DU=gXOl?T35b%Ilu#h0; z+^4tZ`*c7CCi1SbaQ4N3z5*70Z(EL^uXRWDsFG0*@N`-pR)-zV3oR`DBe0JuS>k*; zt?ZLGtv%!xzYlXPV2}F68R*92QK8H-so(gdBN`hI9|1_U#WMX{riEe zl8!NYM>4N?bf*E!Ld9mMwfVZbm#7TBNo)6~S(PSqJ-N;aYdHN?D{2D)0x6hEOY}uh zqUS^BRCRr`%>;8#IZ}9x$S(yNm0Ih_-2(udNgAi()#E1r6Vc34Q{>KB2TZ@5+(k)o z07(5MrQS9>cXeV^l@zxm^6p}}(S`!lVJqG1E|y~GUMek(vsyxSk`*Asb%kTuV$4P9 z;_95KLn{r#U*d*+{n|I#A1RlVfBDHM&Q3U^5NK8`N(=;fBk{(#!ByJk4D!n1v(6JK z-G@dxWP18xFtFK5e%}ijyukDLYG_{P)cYJ;<|`1>sc0Z@x!A~lZW_FX8Jtw;rn&m6 z6iTvqXdfAGb|`e2z_dSKc5}4IJ!0mi60OQT+I$1m&as)$3RHM@#qD?hiaGHAe-aI0 zQDXeKPLh3aS&ykkE+x=(S8O>Jmu z8aHcL`?&H#?cFf?2D7>}T^p6^xS4LwBA1_p66+Ne={?Pb@B5c5dtAA^M6PnL2luI> zn(R}@2TLgsa%cMBPMo@^%fP#DVfLj3&R<$T>uS@0hMqTQJ`G0~)8(rxPVkKjdjcwX zGx_`IHe&LqZqsMrt3o9-MBSO=qc|4xaIG0rv}Gh{5hBm#ZFaX;GM!auAr?Z5F4mN| zn)F7picw+1l#6MOO@Td(&XU#rZOu0adtKHA$XI66F{qMvw>HG2umMz0a6>u0{5M+h zzebz%p9*p5d5m;YS4mSZOcZ33;i#z@F6K6Er_fna08%v_$~jrR-i79pA;8tXL`Giv zmng-lIq>SjvRQ*Tp7Xijz@fnz0e&=DLV1HBxm<$BmLiW;*&!&%r?s~Db$)%k*=>s0 z8IF2U+OPiAg;{5*ebU~DQ&;0|BmKI*1i}si7>ompD?FVMgoqjiW{2Ikv#lUEMP)R6 zF-xf6XaxnJ?7Ykj`meRIQs!HT)YFW{Mn;~O)0T-7T!MS&?WuuH%{5vnstLpibaFgt zkP~m7vGH`-30ZU%U`ZrOfkqMr2140e!M!|zIjv(3>&C8xNe5Ro9*6=lL5&OiI+wC~ z_*{$@qkin;z9{2esrI%e<}GTOAX{9)PKaSaV(a@$-ePk3Gz#A$eQM<`uY~=Lqqbt` zce^$QgpNv>=t!!9eV`^l1R`9TBJi&97A*avK~GH0DPKkQp6~XFEqp}31a_K8HhLSk z=`pgOUs7IF`Xq}OfBSHWrSC*Y7a7ZPoyFlw zncI=^G=^`GYFuT#xaf6dmbn(nOp2~zu#0sPV@1@ZM@J1sM&&&5q3)=6`5HZ6KUou- z(@{Q`@|+M+oEg&MRy%x*r;y`>kF#GwG^cw{$XE$95MB_)wwa>BxQfRT-BBV$i7tJI z@~_Ggio1&530>ytrSaX(cBMs`W!8%w!)T~afRhbt|A>W$cB-FAaIm~WvgkFOASXVa zASVOm2I@Cz&MG9&zHFWUP(h(GmYf&%_xr?Ll_JY=5WcB>FGZ+PBx@RAx60~UP?%;L zf%RE~DX<;r(wQb&@%zo_WTtv?PG%mtO!W0$hT%#+?j0u;}$JSw<2Q zJ-O4^im_2bj8-eog||M{1m5_yq)zDe@E$|Y%}WduvZt=0OoP!R0s#Q9nn#~YfZY5S?xJW{aD=0zmSs0KynMy}g$yv#>+6M50wbp6uvjINJIf!Cr-J*Hf0 z3E&|UQVi z0oWqngd@W^MqGZrwPMIppr{z`W%0bWL?<2#_ImnTr7Nw{L7erv^iMQTDe#00a`S3} z^4CsR{BQJfjG3{E_jFvQvfF#Yg6QY*{+lV+o5lU(MW3FBWG@{zxqA(}Z#fsS>xNKK zOy0_Sp>sc|yk%y2N~C)`6%%%4As%EC4Ng})dj?A{*ZhjL+u`BX5?(m6`wHa zv!RhbW+5j!K9}$fx)oGuy~z>uG{vL|aSG|$TITTua8wF0K)QoQ=rJE2EKfvLR^>qX&6<>Ye(J#L@T zn(49dt@agr<6K>+u?t&>_4)!SLU~+~=@xblEA<%1(#qGYKSSrg;#lGYV7M!A1oS>H zp%_bL<2G=AFaC2tLqiB6f0FBg1Rs|dcA)!$Mzq`blNhHGn)X^~5dj(0eD5y>fss6HQwR0@aTbhJN+F-u;<* zZ`-)OcsY@9jThruENalf0zD$cI<3{3XX1dbjP+&+_pT-gNs(psWj&#*tK;k%BagY>m)%uX)wstJDVoqYHK&ZWq!xcGf8%upc5 z%rJemuFVG>1I2eAhSmK6)hX;Qcm+b5pH3F_ylyOkO9SXRtewAcu0dJ*`h?5=t_g@_BEhR3-##|6EXSaix>8>{gV;Mrd z8g&gC9Vj3gX8an!5*{8g@mRdfw&c7m;GX03q(GH}0Qs9+)7-MdgMws`g&P{W*hqKcwwOJx#pLkmZ^W)Ta^~NX zlFW5V--syJ8u6Xu{_QX9tsFCJFv@;9WcOg1ymk)7Dc)#q>BwU*D{lGF`B$F7RgU6Ylbf_<4m5dG3&-?8235;b>Xa=9TE=jvgIbr~(;%dKdbo zBr!925M#kkm)UrovgJORq{DX@h{k?ydT*AxskFCXlosE4I!+ha*fw$uXD&KkcB`|J z(0}O4fMi~WVajn6NF*`~kYKhL#9eC3G`fcM%Ak-{wSf$2wiZgedZ&7N4_iqYA<1?1 zG@tcma@7NXRMrx*1#&@w=3$aj~P~^PTNb2armm@DJYvsSsHvRYcRA$~@TI%zY zk(f3_yw{hjplQm4ajKcFu|?!^SF9JE^bJl=Z@$i0;xL(iR6&rRjudgHaEgz?p2IS= z4O^^BJ5fk%CO<(=!6`J6O}i958CWwizID$KGze<1(7#kV1Dj~%M>%&z*NVn=;KSH| zP+jhO1#=j!zb$8dWe;a2!0n0lKBp#HY;acG=1UK_UqU+&)Qt!A+9;Wc(BH*VXaRLu zsfqNKjY`SuWxMs-B$uib=D08~c?;s!Elc73d){6j4NfNPWB9;MF|hzogu6~Sd1-qv zsw0x~ZS$XPEdHmdcKlf#{tx50gbyb8gll{%KF{niEE=^DbXNGCP;;7SD8==g>s=dA zca$r=VG*c01NFw!!lpw6YkpC|xPBAj0Lhh^tet2*eYdo;-`V5@+I#`j%OX8yFky@6 z{>h88N~Y<(h|$-RO=mm8080-Sgw?Pl&=rB<3|`|D8XLtM7XS}x*AKF9j0;t8Jg94V z;!0|4A@ve=TAuD*EAC|Dzxw>)ibpXJ-Mp zS?B2{@&3=IL1PSkVR@fSZ5(k2Njt<+T{WL|9Lzoy9v-cx>N9UK6oJVIf9W4oA)SGD zWqmg^07GNKE{{+5j;+|KIqW*;t=T!CGv=qUnKf1LM*c;sbXz1ZiL9J@NB*i-Ok8hFJ=$YyK`rb%p@iV4nseGxnB*qY0~e5 zHF?w#DrN4LC^oP(`2&PWN&mFcmE5F{agwPz*wuX zmBr8n=yssp#f|+Zgg}hL3WR*ni!n*N`iu;+p8k;dWWP_+k=6 zfAEQu-!N(N?M=#ZN(pw)NZxH8?p{`e2gX^6QVcb+oDWuB((A)AahvrLwlF2SoSrr9 zGhYiMOA}|eTSca%tOUjByE4$Mct$IBo)XRt(s&}*-lsi{a7m3z{s-1iw3p=l8+Jel2x!5b)r+YI6Fay4S$*T~?{Q&C;Q^hK4SqkU(u4;r*6oz`Lk_=7Xe;r2IrSDX7aIv}8A^6jNjiAPBn-D#~LU z5I0QK#to}@H5P)Fs_xkP{Ir+S)Rfu_r}JMlGj6_hYF%Ids0@m5z`<43=7zL>{%O*Q zBJtGOklrd+tZ5g!C6d^iUTvgTUSowoGckfGE7x4@#?OS+9PTXNhn}ZDITYS0`{1`b zxLgpq+UJi=?7RE1-^;Vo1mTxKDvXPX`q+g z{;bB{PRNQMlKysJ!kqv>7awFLjeP#vJn3_NTz=4_fH1jRghc12CEw9pCU;FHh<7ew zqYO|4LB7knHz@DcmB4u{Fn#k*`&ihumPBuQ@o`a{&rp3PFGMjh ze;xOgV^?~MLwQMCJ77%PUPsNptd%jNWKS)qA8p=U+;E1M%s^^jX2_!>6r4UqYC=_& z{Geq$$R%th?tGRI#C^Sw1Z!1XaGiM+(wnN{P_l#?n99XDz^(4b_K37YQ4kIGU;0PA zjFqH-2ppO~fzm(H`2G2Ex1`F!URS1G8-5npRC!Fa%L}Ze^q4fqDepLNqwk_u76ISg z0IvOTTaW4@mRy8;Qv=_Nx~ZKCG)2cT8iFOT^614^5p;4j@&KqhdBIa_!Rig?X0c8x z^Q@ZI8q^um|M5n_GUT57ey>fl>I@K?3(JKS{o>6Eu0A)h;}HBvl#9zU)gC~)FuNCL zUG;CO$@aibgB+3u)F8`%2sCcOdmm~OWVs457EyU-cQd}bG$PisM*8p_5rL^z9i#(+ zDE|gZ?{6o0bV)^rGEE(GEWpf1h?bbo;hDILdY#kxdybCj`NVN}P)rg$&UU>NUY@@X z4`^iFAhHq9fo`_@bB#sRGmacEqvhb|QUB11tc0fxOIc-(h9s_ew zozHE|(dx-(hB08(L6~ob}*u?dwG&-_4T5ydl=~RFEVxzHI6fhyU75%XP zCjM&_;Cr=8&4{7X;SjF8k|$IZq-W1^C^y-YN6!%phGJC{YP=V^E5_&Y+bkXv{g*vq zLnhDHa6yDUt>^ zw7~)4M5t5*G3qWt1qD#7k2ansDJZ&4lYt4=6_W2_g4UMW2~SUp^;vi~erjqj8-9&9 z$RLkS!m~neKnh4N{|$M+wfLjB1>&);6pNPPgaVXxtq1)PbEN3E_|WfnZO z)lj4jxn{_^kzB^^89#@7I!aUbA(?b7l>$YaP#H=F$q`XMLNMs|^yPU4ClNwdOqL+_^_hjK_zywB5C`xV#b@2l>#m|RdP zcNfrIlH&?{SUC}y6KjnHj-#`$S18Kd3x#~&YSgch$pP1dr|^mSG1z z2kcz(8YO!ZgfgZLQ3s%i9&G7gnYB)McHs02ras7!9}^Ngkrrz@7uORtkno);3bdo; zM8%}G{kNSWXR1(oKX&h>C_%xVi6E&a*wmesK&?)d8C2d z^3#a)#`Gv>qqDaO5WrYHVw(UCxRaAf%+QsE2sseG6?(2mgr6-jh)ebP6h7!5vzou` z)@SO5OrCijQmYz3x4&8}z7LNjju;pPMt=^X>A@n|YUw?G6gj z*RV3jwrGMlTPz&FO>qLnbq$d;1;sm?-_SK*qbYp*2^`Zgfm8MU>exlwA~}LX)a6d~ z=5Xl4ym9!mlXoQb&!!l``-5%hZ+V+Xc6wXqys1gEiE$$9rA)?mmf+ntJ9jQse71lS z=|4YS-mBzer^m*3w$7o2Z;{1Vf3rJirqkooBHi0Drq$1qJt_1w|2Ql)5q6TY8=x}ZXywn;ZN+f{wDPJub2O4 zeqO|pX=|`_UF*MoQ@L)S7U3bqUy6e27x2&^SMfsWX#7f}c&(b=B(mZ9lQ`+T0n3&Y zyN0Ek-3bX`{ESV_)9M!hba;AX{K_&;O7Aw<7Xi}EQ(H?>&@^O(c1Q9>I>sWnW)noF zAoX6UY`9*gINk@XcN>R#0_zmFKwcSZsc3YW7J4l(@VqJ547(k6=HTT=ACyNS-8dEw z%we1Dt9{&Rtz4F!0&95igNkYI)xp_6sJQ<3SVOqNdHg-_tO_!B z`&&mgX`lx%bLR(DwEN#?5^5R@xMMH+S>Xr^TQk0Q;_JWTQV@40usIxKY0ig~8h*V6 z_+I*5mN|X-U~jk2_gCe4ju2~QVUnN9xp>3%rooetv$!O#^y8-Jqj3wF!{D-Hk6?CW zVMjkci8R40Ty0bvWZrjF*w8bbD=2=V5O>pCgpYgkPJO`^`+PA&F&rtjJ ztg5JufxeVZE`6^Z%|0`#*4OqT7Mw+Hpk+MmN1VY?u|B8)R!el?_c24)Kc34$yn?J65Mi z?dAF0_7+Ym`{Hn;)cW)gHch7}lInu%Kd90W$ z&|xKs`j4Wx6XXz<%L*XSA@Jl@aV}1uIxklU&uSl7)wUEX+OQZ|ABA1M^g`v7J3*VP zAbB%j2E8oT^S?*M!+|eXK1cqw@soC&og0?AHH?ktGAu;YuxTM};Cp+zTZU+ovZN$E_{-Cl=|LjzFrNa~~@sP+X`Z3iHD@|y%ax;NOlK95O$yUOi zV%i{DgGF=OCpOgpe@OI7mSA3F(D1@qUvgD&)ZoYVtq)h||3DU~g#YpyeN6zG6YJz) z)4}ZtU?bs-)u6fCK;Rct&`S@R$_aNz?ehV@euYg&_{VQnXrB>ttjE^Y=iVr^3O6b| zCLWEffD`+4jUyGb#j2X7-`O%5wuM$9o5F6-+D=CbA#*#_AZJBoW5dm%Sg@cv2Ax~` z#%Orf#UxPIv83hO>*>ougeJZx#<~hJX+n$z^vXM{YG2>p@5AZ^MAJ2`CYmP5BYm5} z=4E%?G+6|9mX@Jzjda!(0p_TPLp|fbmes&3SuMuD4%1cO^#{vlyA}st`+eiNh>;Nn zRaLdHMGdN0t9TXI!)t1;6Py84$ZL1i71V%#*_p4PijO~^_NHY!l2N<6g}|H-vY%oh zrpry8%OmcBPNk4FupE0K#jn$Qf4WV%=><9Lm{sl($LbElvhfCZuhf!=3Ym>H`7WF8YY5?8e9Et zT}#?#PZF(uFVXGaZymbld##_L&r0yf?Uk`$k=VgD^pKrwo?4cN8y`@0qQX4eZ^5+v+RvZQ~< zco||ktHf-`N=qwKJyQ&X^4((d27UQo?7atATgj3(ERV<8*n>$X&j1D!ZGr%iJYyp; zc`yOR$dPIpzkm86Bx$rl%9UjvC znN#ZQXfdQU)t{$hyU>>g4Rr^Db=UjjXCvU2jFgI6AhZXUrC8pVXK}dsc9C63r6&~U zkRD6R%t|--35_JESE#j&go!}g%dKeUu7E3&{MJe}hX}I}NajBtAd4_WqDQYPsjC-^Ovj(SwfuLS|Ha}Dw$8=*WEQvBA9&HpQ z9TT5>Ws1rdggUjjD5HuEFfZ1I)I0S~?m;_%+RY>gmBNHvxND$cVKh-}qY z@@=3@Ms@><#$3hS6S?l)x+AMUh-G1Me8?7r4|0I(=ynzt3#?@eon4RN7GWX6%|8r) z@LX^vv>aKz1L_0iIMC7T0cJhTXAwi?_D13q+|A=ch-yQfHU5vXfwz@5Mw_c@~$S- zH-!1oHi@@zoIW(D_7LhVjMpw94Y&_w>T5p{TO#|Yb87BbXs9tDqE}}oiDZT!j~VX_ z`Nzbh6~%kOea4prfl%c7N(s!p6?uBIzEs`f<$|aZYdIKhU-51jglfU_ zf^+nn6vVNHj%-;*+=jtkCDrb;NFM6N`m0%r>`{5W!Z77nJR&HEz5fdUd~YnWY2(qt zy9;WFzt;cXZEsriH7}{xr$ZcO9vNhUSC(c7;M1uPhsCp4#$<t>Jk|OC#4nvHXO?Pti&v==+&G*G&%O1?7cA z*Cz?0tX25;MkG(W4P|G_37uxh`(6jcd>0K|E}6FB;H_6!rMovZ$W)@>3LcrC^5i1*3+RvfTW-ZDX5~Y=xi!3OL_+$s>c)DPU*j)yUYgHLks;`31X~+N zEAu$$Rz!d)Y^Wq{ZLg(Ydi1XNXk9U8S)we+lS=QjOD{2# z!3-ZY-0&Xrbf|hnkkBy6-W<-0IdRwQ7GmS1ds*?K8X8s*3+dFEv$7!wh7bT}Ouyaj z`?q}mC#3(U#5Va)XzFi8oTcBG7;F4#w?BU}$=(#@wYEC_!;vj)y;Fwqji=fP{TG18 zJ_`l{+0r?k2xXz_;1PHuK5FQYOxYl5hj5TrJ&)*CoDcThRTSFo=Z)0r< zwgi4w7Sq^J1)XJq_z3q`{Zdz9V`(uOKx}q$bgGHf=P15qapKv@0kdP<#~LQZHt!<~8l^W4EBabAWO>USd4GRG*^jqAz}G%lAk*EH@Z z+8+IoHYk3h>$zx9*i9WBu`FAL*0@( z76l<)BG)cXW7eu_9TH)ZwDoa5p^_+}F+qUpv^X&_5WPuI&cyW@zmj2wgn*d1I&SnmP6pp0?0P)ZP5>WZTXPT`j2Ii=Qnk$@+u{NcoEZ|N>);0QuzW<})F;f;La0$0 zvaIc@_7_G-A9v_FdBOW!74R|V_5$hRn%{**Ai7-CR? ztTfRCoOxyV^?n+3YRR=20kOaXe`w{LI$S*h-RZ+S3l%rswIQ5ru~VJn86Z|RG;E^E z-F0_a*l3dv$5wRrX5-JRbi%#jJm&!$?406=R%VZY} zgb2(bvRu;BvW)|j2(}~Unp(q;i~Bj5;dFsCA;Wkaucf3YX!b*`8G*|KsFPwZ)}$|r zXsiG&2*t}(T4WZxL9V7GvlJEzST)Y^(f3A5^qH7KLS1?vAD@dGTXr184D@*g{bCXU8)|v>y zddPWqHbp8N`cvJV_RA#Jn*z7={NG5LzFoQCTr^;^VbL?#CM4GIy+l;w9HDuRI9l0E zB&-7OncgqWY4#QQd0J4DwP3>5;nk>psL?#70PV}(S&ijgqmeKR)Zbo#MhF%#eoPoI zL`}ok=*t+&MA4Y${yag}v&9--Tx7mGD+8s93=BY^qly6G7G@zaXOV*hm&M{smv&K& zpYjYyv&SpTu7h@FVx8jCUDaZtA(dcPQTp}Gnzz@LPlZBiY^(akFr1ZD zQQ}!DP+5BfZI_8D!Cp#42N_ynG)v3erN~vU-uY{lQF4W9oI1B_M_Z=YEz2KWbA$;q z8iruH)AAXU+14=zrqeX0QeAj{5u)2f#-T)l!Dt0b#V!8m>+rb*F+>-i6e|G*Ped8# z%q&{YRi9fN=3_P3bsriw^k9Id=cr1*oee^}tTpZ_<*G>4UWx*4I^I#kVo#!CEn|rg zXvRkTcE{j!GMa;mj&aQqU%txgm2Xy_N^RdHNVblB1GOV7Juxp< zyN}lH{0NxJ{rEM&EL zGMVE$g>5&Ey@^C-R%?>f4O(v%&6T9=E zM+}HqX@UTvm=s-tb1E@&Xmn=NWx5W`OkGf1k#M&4P@%&M`23VrJqEi7~X}+$*;_~M-Z&$U~ ze3u{l>BEEWW}PL}2e|jCs6h3FeY6z|3r0u}V-lmfkOBgZB5TStI$(t)rdIiQDW6~+ zgdc-v-RN`_US6UjKPYr80F7Qq#WnHgH)48Y6ivdJ+EX|)>*AF;7atDWSrrVe7q!Rc zloEz-Oemi_$6*6UJj3$V(Mg%X`+>ByKwV@Nt&CQ_O?XosCNoJYSNp|n8~k!jbX>$k zn;Xd#bu;G_#cl?pJ;7Lp=7_OT@X-xnNmYBprXgGvG^Z0GM+iwOT61bLkZT_ym|@hC zbw`x;`pHM5_kP^QIHx9RTN=w0K2{S!jzyEU^jggW#jiv&y0r*o%`+B+%;&$Q2p)KY zK%24JcR+2PnTzAa`jnO9&YW0s_JUFbm>Rd@0Yg^KJL@V2ujH)oDY3{zEw&BMs*@io zEgj$_{!X9XhyhR%MmY+0b5YRTef;2tUfx>Na4RVa72Qt2isXfItgO}Pda4tI9LDtX z7lM*pCW-D^Ae;AS|59NJg+zpc@qtP?Idi4J6@M$pqF|H~!FuI=`XZtHU{AsAU_YI> zh4BrmC^c%8egj|?_?Oo^+s5{rL4&DQ%U9g}BBDBql@;fy5!7Hhgm(l&aRb`XT zPaX1uEM*;rG9z!s(SA*?q?bMU^!*xN02<4Ofn#Zzwv-&Aa<^+OgYrDx7r=|9;1PrvbMenEJRkYeDQO5A)6JpR_8@!ZnP z`0}mR3EQP(@|(g;|7H3&5O~3!PBuj+d3zM$AJtY z;Q+VNyHqC5fb1~An|J8UjyiaKDTY6lg6&mq$4$CLKLe&Fn~6l4hmU(K$Wlb4{o`9 z0i3586+Z85^^-E;i7o2y9ZiLOAAy$QIQ3EC#7Q}8YqR61R#EEtok^+*O;Vx}w=A@< zKjl~Vt7!37-{qmsKwCW4^(R5Qk`@Nscg zQ00pclW&jwU8MxFlEb??!uK~Ld1j+eh~02^XhFoaqcHb2k`{5SvvA9;_VFQV_+W;B zj~(oE)4$~#+vS3TEH*%4Pk(l0iNE%7j`23`{aWZQi*JXWZrKB|HkKYq&kTV9s*YBQ zmJEVIbs`AfpBxSDD2{fQs8a$eqeSDNn$GMOnH(BA1^il6-gD`iQ+}dv>nt zs8hQeyL%%9n>B0nYvzd0+y_L}h&rOiG)yge%$U>PE5?0$DrxEqdh-wz@6@ zTjyqVAbao5i2nR_#29O;r=Da`z3ILHK3|snHbvuV7?4$cI^pm-iO(Z)!rL2gfx+_0 z*F1l5(8J=?3OFLif+{}=P~WwpuJq-LoqT-cEf#%2DBet-v+|1PJ4nu+FD%GtzJal_Zu<}ICXD^WspMny_)PcBPhW3O)o9AWP_S?u@;JF3 zc00#`fr$w=%qiQQi=V&QSaY7RuAGjk3hi0h>3x&_W0Q?Nv!j|Rvd$=}Xfkvr0bb%^ z4=oISIzRXB)wKFAu8jwVA#X}YMPje#5=utPs@e}yX5AuDx;U~t6za)9(l8^6_in7bqU;^LriH>J)7J&KzK6}2j+G{m=^G{Pq**6{XY*$-J< z#SQ6?g0~}b#vHF*O@zdfxvWF0^0eMR+AufnIdCqnF0H)WKWGT{uotMQX>wA6)MQ~;E6Z5nJffC#uW62EZmlsHZMiIJ+&od+DfEO z%n{k|&iefPRaO818nKzf%q@kkj`%>|4k>aAb;cUIA-TAG5>Z>+-V2fZsZgP#$b;Fh zTL$DHrV9g+Gj=K5=vDS!?WHq<+i(_i8Y;Tv09dlTkBHd*mr|WB<+Uh|^Wk z>!l@uSEtjE7u;&Qwe}Dj#}M+}Gd+XvzH(8BVJcN~krgs;JF+y8tRWbnuw_P7dvl&y zQM4?xVHl6fJX^Zu{ncGm|HXvS^PCSyhMgsr@m+F736l|_L2gEb(fNn^>L(+TeoJi$ zg-a9h_~6Cp!b`KUWsX3eSM>u94HfN0isQPnaM-d$Zv@`pUH#*``^3^U<7}C{PPg^0 z@7KLuQf^Q4S3qe++1CMTzec%S2d-d*6Pzs1)m`A_jzeLsa~At6+pF4pxTI3X=O(Jt z8I@KS_YOZ3IHqmjxvQ1;hwb_=u4nhHln!X$GWvL{t|P!E*|3t8;+?bS$x_J0$L`&* z`qP>3&UG*cRid(4;mo7i&-g%}rq`_E1AN<}Jj&Be>D~b@eSZA4Oa50M@c$;h=hc_P zo|jaf6>YH$84d8bz%WT7 zxwK~Xh&=s`*Ww5nBMX>ijk0@Ax~+M(-F7589BqK=8}l_H>`+Epu{MjURld0uT|$Gc z=5a!`jg)?}cT#?IypopsJPBKii6x=ga{4r89CkxO@ew_7&hg83PQV5x@z72$vUGM| z1=2bzKb84|S^1{7)fhe6LRgnE-!@)jK|~D5l1!QBLY}Uud;yrBL^>YaLGd;1FCG1& z`UczYpl)psg1A2Q)P<7z-yp>t;m#UY7=^`07?%@PT*s}F<{h{U z%tO(k_U(H4nyuV%y9~3vRIabKnqwmT(9ll1yJR6JC(m_SF{%S%EbJP~RBr3JF4K@9 ztjS6XCtIgnqN+zD@?A85lPjIA37GhjkuGsNDqxD#r()CAX2QaH_4VYNk?xz z-#AxGZ@QGFW3=L0N{F`lg{_4?4{os1!ZJs|ZD?qF;rNRmuREu&zn;upUq;;Ss#P$? zD3PiQD+r_`-M0<-*X;_5if&95kcI9b{o$_InXj+>y`Vgo-5Jb6qwPmj{R*>6$i}%| zhN&xYeARufdsj+~N=hEt;AHgKNG>>!7$}^s_$4)5OJ-4}#M`a6Su#yxM)q2mm>Nv6 zMDfC25qxYmSQ13l`mPcd30&0w40AL0zz6W|MEhl^HgqH=sokofX(D8;eSQvJZyZ*k zqf8Gti%|M1P1I*^YHJm5Ig_wc&9!LBLR)!UT(p0m;y5M>$m4kqGIcWhiIC(2X_HS7 zJ2{9+(KGlkS7O6YWOd0K4_Momm)VMNz&G^@Y9~n_`g?Iv5z>}dhLst z-BCKzwfwNE9S;t%GF;&)be@;{NH{1qnd#^()12aSn*d%rkuW0-rO4nzBPG57X3uh} zcZl9r2e>l|{k7Y4$As5{e&gdDdqc-z`{wYZ*+P|3Js#%EenV>S)C|R9@%GvU52ohE zDHg0ZH@<=C5;4kzaOZAUZet?xBP!Q7%55qVOwoA&9T40e?gnW8s)2A;s?pd}b4V1Zu_^K;LeZ^}3u2HmYc zp?mF&tQkzjUHDy%`VGn7aQUq%7c~4^GcPH);$dTLg#zWa-swEM!fw*1d*yzzD;j+7 ziq|y5zQK&K8K}&Ji($0r0pE@MS%L63@bceH8ZP;|joHXIFt8P;fnUUW4bmFRIPCosEP@V6mP|&a5iylDr`{?7cvnEy8q}T zN`lz-xIm%r*OUl?Mmah43lI_JzDadatM_`A125j5NQpWWKLRVOH%wKABe?|QOJ{q( z+M7d-V@jnJ;+iNK8?jT!wXO@%++mwmd4|I|sGrY782x>3=KmSGxaT(ulpn^Ms?p`# zJ1WOnkIe55!}gE900Q!nu-rWvpC17~F#X2w*>Bb-Y58+MyNn;=XR|8~Yx#e^1LNH@ z712F1fz49R#R~pK>bLBF$MesLkIlay8hgS`sOttgE3oSe*td5BiHMlbuSZ&Q(Bosa zSYn-bND^%;UjCWxbtca<0ZCv?E5YjCv76Qn>_XV<4&dD-FTTtaRf8OJs-<5+3mf{Y zrC+x}P8HSC&)SbhbNITs(WT_2&pVt_FE`ZmRvaYOvsTQ~8Ey^-XAdo`Ola-;;wuSR zA+IAj?GUNu99iz!?_;J|E{<=bNS*j!7g-`8;5mb;B>^0F@t8?rFBAfoJs;NZcRmUy z2?aCkP2t-JUfBaPrmK?75Dz21?9kdhXHZ3Dy0fdvh0 z@`|WQC?VjNq%mE-!)X$uB+x}JM;?|YiS#UP2;jvZoc)*xlpQv!rGp$lAL~V=vOC!! zXS{#)$-i&cw`PN)8uo5p_=ehTaK6cim8F6M!a@8a=hHuG`gu$ev@vkLk)#}Zfr=sB zp}CuoUr)LBqYs^Bwy!#D3Yq#!N+ZJ0{e1y3YWA0<>PtmB)mefYK&@tu7en~*UWR>a z_6*H`IU{RSDA^RIAslMtbwWvtSh_w>DJG2?{(X&^2PrDOO~|KVG7b{r)!Fn!sFlFw zyQCZ?`UQQVoVQAYb^CPHa2tpWhXOFce@j<$F0|)5J<{_)D}jf-w0Lz~MWE*zEiGR|k>txs<6PR7QO1r15#kEQL=ylZ}+RXK40mNR;zTOxA{;n>4v&D4VK3HMq`La7A&!6#z5rD7d*!Oxs{Lowbvf1mWB0L*dI^r%b`XZ$jYG}1Qg1>>2X#LiHl$*9mgF4;Hdh`4)y!=%m+W6 znHj8-g;`{CZlrwO45ZBorEUfW2d6E&7ER5Re(yg2LoX_c!OMWdVv;zTkVI)tHnYr`1k`+UXI2hk$yg~J~ZkRIxo0W5V8QrtO zR%f{LOjKOv-W5eK5>=^CD=C;%9T`&L0!&qmk5%`coE# z2(^FV`CGjZ1@W!QXh2(`Ab(Y>M3wPgMUz%_w)FK?&TB_HD(k|sy|{OQPWzt2Sgofv z<5>6AMVNY)4%NM?bo+1WhkrccGZ*dY3QI3{VWr?w$8!yC8xD`g%pCG!>6XoMtWLOP zQCLuw1XNL%gqU8gZNONBF0BWP7ppmz_uLt*mgmW(XcsoFzAP9PiO^(YDn$kNraTZA zOFd(G^7QVULV>b#Ci=6`b!9RLKhvwRKZ8ui)->H;#No2f+J9u}^#ofWXp=o^WqjmP zG;=FAL~rU-+>&T=T2VcauznJH~27;SVlnEL>#XRWMK#{ne07}pfJjV zUw+XL*3eK#2j4U`tKO7v`?`(90EH?lY6=iclH+$dGwQ+|+SNZjEn)HyfOHSW(thkA zh2**`;TLDX6i>RI5^dnP@gXFTgff&0Ulp{d!G zO3m+wU4`%E?U+qD4PISLuZ0EpfVj67%-`-yr_UQr1I~y1d$Fp1Z|(p61@lQObkF&@ zKR$I5edZh2WmctZe@91LJ_I){8=kxR%@X3L>PTN!C*`G>1NDq%)8hP%z0(upzI^>v zx9y(+KZ^Xu()n)|5D!e+pUhV8=(K6M?gTt~V*D4u?{xnn^;`CTl=DB&mcqUL~5fAA}d`BmSD_;#QXIQpx~#2P?)r%Vxh=nEiT0M4#&xhvAfpel|m# z7dPA&%bi@89+A1^w1*6ziW_^{CvV;(Ikn1p!MM>Y3xPXz z_Y=Eo_@(g=CzG#Y9SleN#`_Hhc4evs6mE5&6ZxF&ZW6j{TN7qN4HpHPe9gW~JHc4q1I$lfk9!oc(x3`bv`XQ`te2Dlyst z>37M?cgC47j+Rwq+X~wru^Y#7-dK1R|9j~&zwyKxw+j;95$H=F+6c``<5ye#}-FTwWyTW11SPP+H znOsb;29Ez>VxXE`N(qYruE-uN337N}mB`H7Z0iI;qO6jT?jtwO4GN{F^ zz&u>Cm{%?kSq$|>G^&{`ZQCNe@DbST+Y#YgDcd4Hi{F@R6)k4BjkUqQ&HPRPx2R=}-8&kp9l+OkYTpE_zjD6XlvERaqT8pab9W>NOhR@kI9nBx<2tPb;xbwjS zeVl2!p%Wnb2W{hIkOHR|Cz2t=}6az8=n+gD(k$rr-zLx0PI~-Yq%>OMFN;ZDPFjK7L89y3ndd64HCm zn=nU;K<;*H`>HM9xt}&hYbo|A9$1N-Ma@x$EwSm(%n8g$^>D^kuTO(&WAL83cqUNy^2A>&yo0ih%+j=u(mp!UG#RmMq?*u`s!XP~ z_X(MpL2cu}1M7xl{Kw6zagcJ+RE@It2=YT*GliBV>en{zD4k6AXeb!Eu&}V}6>a?i zP7-h9d(bT(224~l2x42<9ezHhz8lAIhSv z>SsQgfy{eX9-WChaY{}Pa;axzFw zv;RTwz*_U5m{jPR=cBV;@*}h39|GU>2R&=>+N*yIrn-{Y(kj6Z1kI!KuXXkf=*^Vi zfLY$QK`9N-?-OlrIT`!@h=lsqk(Fh~qWa(hot40?KY9-RIqT4lQDUU8C z&A6-*oaPN1m?{??6kv06fKEAu^7uRX8>2P|AMmdYh;%Gg12`Hj#RVcRZ;N1Y1ZN?m z0+)fF;Kb}5K}}@4J@$Tm1DoOPR)Wv8T+y21tk~|4-}O@87paG!gRA|>Yi~ojT_c4; z1naD9KZrkXi^uI_1ryjVRv^NmTJGk+LKV|}@@>M*th#0E0{T*h#Lh`adTvMSagz2d zCgozJQ2YIsv%ovY85I<#~SoUD1 zRPP>Cu6rIe@=#cMl-qHu?9;iFSQSZZzi_^TjPutjbO560GtcfWQqR{>prKDTI zq`{@7+Gb-wO?V)_hnBWIY?Vq%JWu~zfeG{v*)Jjj{iuisGtB_x$l+1yyBzb zlA??fF`UiEd}UE$6ZD9FC19k_bQQ*24}=Snu&jzkiBhC_Bj*Ou!i2@PXM8Q<*tPGT zx?5T~PWMMLl})qjV@CFO(i>Lx+Y%$@qh73}rh!C!L^tj%+-B0X^f;Bb-tY|&rC^e4 zBMsz?C&C?MQy!ECyqKw2XsWM$^9KHV_NG6m%U8Xx4IR=&&!=dsX3C=D zc=r8lM@WG_v{(c_*Hiec4StJe-r4vFZtKb0P1h^P0JID3sfqP0)_~>-517r?FbDf8 zevWwA3v9@hA0?&;AkpDnN`7<-4>7M3079isUu6RTVAtep@Nzs)jWIVxqzD%V1IP3U zoMhB27-FlF*$Dx6=b(tVbwMThk(3D)i9V2Pkl$G42ic&G)rebgpGW5x=7GMd`N*Sl zt->(Zg}N)5C1FYnGOmqdC`+&O2>h1v^%O5TqQPZ4SSiW1uhxhDZBG`Vvf$SWok-i> z>NcuNR*}xaQhVn_Qy#}1$42APc$VB<&5uzaMc98V4jdj`ACuzcZ|=u$(_bNq%LZ~3 zdsWxo{G%u-_O72s?%j7W+D1&7eEd};w|(WTuHBKLfxrAr zE)p->_^cc@vJvqIwe#pEd(k%Etu7^nTPNqf`=bJx->K0}uFd~F>|Di-AV4-yMz6a& zRt#|7G#?MLJP-PKrX;@7!PItEU3b*m%paxCULN~OwMb_vA1UR{K-;dUEI`;$92+RZ z>F6@fil(USb2Q6bVRsQ;iBas55sRp~87cRn{rOAl%8@&}t+tdnGD|BwE<+%Cv7d#(|{F<5c~Gt!vDbiy-FhLHv(>)_cM6Dzr?{#YkgzHkEyO=I|cQIzwz# z^=i#6@@lu^qH5oFuXoyo{1-k~Idx&#U9WKZ$gHu6&xObBNHje?Ufj!Dt(03c`20hS zlU?j<<_2MK|Gaf{mw&2vCwYXSK#d0#x|oT?6`B-ixNEEcyPJvli+`=W(3|!qy@Rre z4jiMsFd?W`wT51}ymPD$_I7*nlcJale2I5oy!L7hgKFuK1TEQ^cAwd^*^#dtd_eV4Z{S zjXUwijI2YS7JOa@274fXiWs}UWiYKrNPtH5`&xml<-qWBRkkfh3q`}~6 z8Z1dTbu&(3apE>^fH^2w5C{u{UjRO7P>K4D_WO*_E-hu+(SK|aiWqPYM^?1qY~TNY z60N>lvWqWgZ4y2%xFZT=Fal<%~#=O;@rn`AbSsuy? z$a|(NvE=;ZIuOYOddpS$jNoh>^l=;hyELH#nKO!4v?V6*V!V+A%rOozz)x>jz^PeQ z*h$?3ZCApQ-8|JkT=MnrYctDwkJOn;> zOIY@X^y6m|5z@oSG`5B~F5inf*D8V{tJysxn71DMAq$z)ZjuEyEW2I=Ui?wtEIVzA z_M8T8mt)jI{cu2!KKpmdkDn9tj=BfDCQ~Kuk7p&U-%D25@g;T1_LJY`FmgOnC+8A_ z*}zX6`tL*<2R>cHD0ZCNod`57Ji^>a&&5{n=zSJu?G`j_Wq z-Az=Rh(Co5*=E>|RR z72?A>xmHKq>)VfnT=A`>?TSydFv=HPaC}*NEq_91iX(X6cYWz(M}eDirm}$TK(e*M z81`}EdH}mgO?JIJ&HCOX+;u&KEGP;Ix`|L>uvJDPk!G$;4t-v zZK=A6m#{Vb21gFfSjc=!DYSL7=C|5@`kev!UsIE{v^5WX-BAs0QCXEeaK+WQ4SH*j{a$qaG$ zl|!&+6`e=jvKm@g8Os%_Jv#F+&kvd887uoRxzG4q+2E1AT7!Il*K1Ib;nm%i?qXfy zOeX}JqID=uU?Zka8(+2E1|t`%2o#tY8#kMO@N@}OY*wjb7?~{q%E9uuxGki7$RcLH z&C=@a5aRwIDBG1+Z3C`$YAH%0oI%U*#!M?fa}+PT9M%MZKA_6H#jzZ$NT?!)CZ)Yrz$)iq<`i)A8p=5q%#po{Mf{G58M;~&#QF$&tutu=7)@swm)Frcm0(qZ_+=p1 z$DlDB=Q7lFbyJ5nS!XUJsfvIvj_WQjvo^8?0vW(YH+AFEx`*YFTc(y@A~5JL$BSA9o!Nyw&4d7r-5NRdI~uwUkmEK3l()(t98hGtRnk9kg;UdQpC| zmbUGzU4ESU|LmXM#l1%)Gu$fbCgHQH>a+s`uqgpM@w%-!8FAftK;U++bV;>V;IJmaJPN_q17t4WK3=&Tuxq~UAZutiN!`;si1ue_g0I#aRy1#0y&hDEd*2 zIhdnLCHtk=`s*1$f${P9^!N1EuQV4J4CkvBR&XW1hR>utrIC(OS53dS zRIm~QA|ktTN;xwQ?HS8sYXP1guh*2xc(|>MOeDF&;BMgds>*@}6Zoy3%$$V$3M#@C&2G@qYEKFG-kl)t?BYlb(=$%ZGSFJbK^#PA9z#1bx*E|RwkL!#Z$7^-n zp>q*@AAvAxppK;7)E2jt^@$MgE}P?cl{K3E2t6VD*v;0Y|Jm~T$2jD?B&4gNqasYN zdAu(5a)<4cWb1S-ugeybdQAaLX*M0*=W4SEXCaiCSP+MghdBZ-n~lD2VKdbTajG8n zwfKN(-geW11`{NVg`%o&i2B-l?ufjIa2q5wwyk76WT`g@i86mWR_x+YE4Cf5IvMqT z@$v%Ub~T7zm?kWgT2emJXEP+>K-zG8p!GZ6a>8;2GPQ zPDFB1ojU2f$so1?F6*3`6&&ti)?=4I%RJ4Co!09ba2pbkrd**14qX>Edy= z$o9kJl33Xgn}a*Fwl?{~r`PQ7F?ma7o>$~mhF0-$@ZUTfPo_r@g z%q?!w%9d20u!_=Sc1q8Fn71g#9YuLm%^lfuvWr@o)trVIU(7D<1*$9FdhF!s79lWx zquvVMic46;v@*~+*b_x!VdSL5HX*S5Et>1HY9UK_D8g^&;>y4y;NoHwx?B6urizdU z*JfbEo93RC@8pHSjSqc1aiDOdk7u@L*fU~axk1`P(Nm#wp|nNhH{ zST6!$iI}g6Qf(M@5O8v46x!IE-CfPMzRF9qK9mT!MpgAg<7uFtbAe?%7PR$CHcnY= z8CFv4DVW8v*rch`J*3O=eDSGT#$NETvd~TaY8QMbGNsf66i?Ubt2IN`@^Y+~`-6ak zD(EdqCqq*bV&p}}d5qrMLmFPj`+BTYZOyW+}}m}#Id z@o68XagVZan*Q+_S(M4X(~TlJ@5`X>ta>M%&{&}nnzO;kRt*_mmB^pS$j8MR5XX>v z+S+ceY^VV)f`9-&o>kDE#<6R(Hlncb;o}BLH+%WjC@h!Y{whTD-qMUBw0F%Y!jWDP z+LcJjO4)IUdzL0G4@A_SImr&FJ1A5z8!aT>%e@@KeS3|;{_W@#6lyz#S*SNr4I`9l zH1S=p?tLbJX_HFlwDd61OzlY91yj^mx^N=KSqWo|X2>kkalKOqT^k+qY>Tc=TS^7s zVtyn5KnX&2ltNantzdHo8=s4~Ts%~{=fwnbcyRt~eb>12sT zhNfz33(m&D1jqL(jOIZwD&oKtfjFW7V3z7C0%%T5QxFBc{iwG#jylR zJ2s~6w%Fq*)+ORxQYTW7mwj`@-7RkEgqS-MTxA2Ut%&iY(MiDeMjM*cJKn~eFvkE#*wz(=_nBB;TAWDzMvRC_!n?<|1 zlDqOb(Kg72cY1{1t7oncfEx~WQy0cJgppesQ2Sf-Nc=e=9}?Qu*S0Av9<{q~9XkE9 z*aoe-#r1e+>BPad5|er;5C*&2zR?Vj{}bLV0HB6Bml{8sSuarxyS#)=;@9RXEe(Pi zy-KfL#A#K#!oU#CYZ^M4+B)}F%2-$%$Z;!ncndJQoe(}7lZxQcLV`$IrrO%-33txd zd(9C}o;r9bOzItE)s+Ytm;fbNXE0xAY z0FAGPCSSri!9+-&_K@{=>{%U&UOrqDf*F6r?O;YrWYP?PiR0f2^97kEzbezj296)= z_Lvt$ByN=YAQL#r`zgtn!@d9pQAzZlo>QG*()p)+dhMfjbGIGRQ!h>{W@I$%4o2&e z=|>~xzjJcSbsTRVXI;_cz_9fxQgREGZa*G{`@hr68VYx!m|#dA*xPt7Q~ zlps)|Q;N#53;wQ=p84ssT(98)*7U6Ej}Hu*lV)6Tuo4D@OZGWxJSw=Xbv9T3*afBV zTBh}lSSp-SOiQ<%^ZcgRpxTy4GTO+A8V%`9!oO|Pe{TAJjmQ4u{`@B~9y_nTQs?Kt zW|L%)^aTK-scm<=n}yyEY1JzmA-J75n;Xk{E!Jt!eNM}?U|^$n#&JJJ7i6V;uy(7| z+f|xgvrj!~OnE_6T{kS@&~jZx!%H-hFFY&LqBkg8egwEGDDdY_W@nVlve0DCRi=&y zTXST-jdsfyKrsGDb9+hDadfQixHbN5Z|o8;2+>c7%)FEy!@Hq#-fa4+!f5^>H#ZO@aRPU&nITjahW8YK!dD9ql#6J{*8PdG$~!uWUFq>u z@NR~-=i&z{f*JTOUpUtqH~-xZL0YL2Fbo2zfM?ry;Q|T43Cv-wz@f8Rs~(Y)R<}M? z5{bLaS$z6aR@Dx*%jOphgZO^;l zH`|tc%4YzK<9}|r0%`#x&!BiCD>s_2pk)jU1}k*DbO`XU2fYAVZV6EFgjVRF8cU#J z$n^fhF@Lnytnx6=$+^?I=LOm3o###*(pxOWeFTFkgC~1~Xmgy1^;LJEv%Qo&3cCcj z?I#8Rq_gD!i<*9kmz=BoEZ*Usyhzw^WmQG*%J6uu9nZqsn!6K_Qe0fF(ap2HWlfs* z%8QJ0Qjf$>sm`C>4A}txw%&lG)QLx{;?K`&X;trXnk|I%9rH8=I0SC$ZvTAt`|&4# zZWVxom469t(RKWj&gDD%ydrPl{UF1tzFf<^fpR<{z(UfgVf5V6%1inF?gNAdPEy_E zs-y;(avS8X|ehtL_kV9O03c3%;C!=s;nIzQS7{r&NpXC# z(KH9(UE*pB%wXGWIi)pmZF7a^?HSJHFkPwj>@H2q9i(Mbg>fBr|dF)3LXM@{tA4s1B|8orDVFpC-sqX#PvpQ9_2_$^|f1(nsE zF^@2Uma^#tCva+%d`MTuS&rYEOC0;R0lybDSF$+Wbzk-V2NZ`y`oHJ9Rrb<;epzM1 z=eky=-%4&A7Hh|gvMG#H=T7VmNc4gMiy5J2GHH+)g_&(;JSgbG9OKQzJcicBGx+!A z^EGG1=qxFK3>*7@WGZV=33LauU0zF!`?TS1v;j&GDTt3=Jkba*cG33JJFpuQ0}RyZ z2tU_|@nj6TcqPxFRzyaWMjxkksP(1qqz;h*U=KIbo*z&UFcZLjx*#FS@T&v zkS;x5xDIlI^yi|iL(@DAi<8$~oQc`9%M`GD9QI*aeCc~;L-7MyXbH!nG^PS#Wpc*E8N!7hoCKoLmhye7Uq(%1F}sP-KpLGmRJRQr zCv6f+Kxj48S?p(?2}a=~i*{eG5BMi)TliJ@iwzW(V$z60>0Yw|;OYW7Qu~;R(H837 z6zjqXFtr&9W*DSnp~9H_y45Z-EQm?>{h@(RhbvO`cq zyZv9K>Glo+scLdd^?{<8=XSG% z9_D{Nc4$Yt*5s;tJCYgJ7IKU!XE(wJ^=;)qdhQEGt(__1XkIRBOZz_Q*-hovS1j8L zCSNXMR(^IUhpOOdT2)Z0UZqT=$)Tj{4}fUSnxc0$M&3UEM)sq15AAXHQ-+zg)LtmMKD;x@IHBYA3s?h zB=Y*#PFJqpIGcx5c&)GKDI700bXful zx*DN@sNK!pR?CcN(?pxhuG;3PfBZxr6?L5@t+=VB_9xy#SDTqpc+)nWPp!`5xngvB zL)aL{N0fE=C(Vb=lec}l7>q{-LyIjK9m_|%ZPFJK5J`~f^xd0YWi0`rI&yoGRD0@)w z@|`3yOi={>v>D!Mmx0A^pI_rZqbolZ5W^eBxJc4^Wf+f86n)u^Zq@i)CA&f%Lx=r9 zcB+j1{HChWwi>(EmJR)vqHh&zOcFPYy$B5!t-?{Nr7~n

+wRJiULm7|nG8|St--l7+Fj+JforDG2Y+CXLy%F*bi(WUt|Wi02qDI# zoVo3bx=~cwaOXA%ETLAdmA}GTDjK%?c)dZEpH=AeSE1NyejkTFF_W-dCHsI&(9~w4 zl8qeR%riP?qe){aS)gw_Fj8c;NQ|kD(oFqi$1X$6pkSl62{Bl=&4!*lm`Um^v&GO} zG9q8b*iEbTbgQmtSj^x zso9%)WglM_QOaZj9oW`3simN(5xQeZrkVajKeCCNx6sXr%U6O&%;(8N0`s8FgpEXZ zFJN|fUAP0pT>I$Jx!4+;cB6h47m66-IBe^9_yW%PoK@Uqj?QL0R#jH=;b0RhiXM7` zjKYx3SiivDyx^40bor}vUCnnWxQw?+! z=Hs3|(w3Ds(xTZSW}Edp>a0tV&(DpH9+ft)(oR&mZLB?hB^81BC6KPF#f!MJ$`2>L z#wHYFa;^Jn;cz&NSb_vu%fPEp%)b{hGuysb8ArqM^05 zUfv2v<#I*gC57`}vL)w0*Y)?ym;kxuB-vGorE;_aL%gzXs=WIVQM;DPO4rF4wl^v~YjO`ZdWsY9XMEt^xLa*-m=UPwbCiSzrN z_X6IJ)NUe>6&wAh`o{cRR*)F-gB?@j_;!Prr8y5L)~1^>J1ck=g)WxjK+ zV%_<3hiQFjSJ}*>zJ)li3Q4Z#<0NSZ2gZZ~CG-+IRAh+OxhBQb4>vo(9=WK5~)? z&^*4o<>_PdqPKCsH|eSwWI9^v%$jPz&I;TKVWg^`V4%xr_^P$ehM9dGvOV288QZ>N z)FwLw`|*44zq2{3rKCNTqyP5z)_I679$o2NFIPS}SS-waq5+zDa3`2jo_qnR5Ig*J zSljZ_$jv;-IT)=oan1x81~t)nBxasC|8ewXbvQ`f==-+l8CoCovc6C_T8fct!E=a8 z{KFMzCruiq_MR3v4Ax;ODaR21I(`bj)W$o( z#zv{r$vp=qZwJmyedTS=nM(HWBSZ&FvzMDR=5ri9%_%ra{^H!C36v!crA|hA?K%B41aw$4I@W6jf+`^-N9X6uEP2K_&zEHa$XzrK;aPhu7-z))x|PO(xf~Eb>Kv z3G_#b@85rYs4Pr>9hJhMa;srZUt;x=)*cLV)pP*>sZ$#Qb%n^tBUFeMmV< zLuGSJ>`eD+2osqWA$Ik9}b@@rFa2`)QS`=qFNUB$&r03euszCR7*(lx%K9Nd4U z*JY(`I0sP*ym;|?oNq}*Ay~=j23tOgFqs+x%(w<+g=H)jh=!kS&&mu%<@4$XR>%j( z2Dt#|EK74lBq5U&_mJeed;1%k`;cf+Q58fF(|4=uA8HVq$9u1#6xZlo=JHY@Es<8w z3e(DzibI!ngjOp3brP5k9nw-w!g^b znxZm^ScXS2@!6qA2ymmMPz{4B@iJe;t?YC>So$6QAV-DjnWE|6?&!gw(eruIz-{Om z&;<)`5B+5PhAGPd;(CRN-_TwN;Mdl6Xm7R8)t22xYDDyepXnNl4CyDy#7%x4-3pcK z#ofHlk<(912?c{Gp#_9lvk6&i8?aMigf$(pJnwX~yh`u1i`5+TNQKWREmwv;)&4GGbd5f&vD|K$*3 z!#7R3(zxIHa7J**W!}TEcW2a!F^@VF%G5qV6W?~(-nA92@^S?WJ#EWj+WaTHu>*vF z3n~{~kJw#Wl%I;$i+(6gSo3GD>w7&97Z!~%{oFYT<`-N`IOTl0UC!oAqK_GEcV%nv z3d~mW4fGKz8pTxFq^^7ue3RgZa`!g9QJJISd?d#oIRorz>`|`o;yL^%2x=PeriAj= z(#_$Ra2pVkf|j|rOA{Vcbxs^1Ws8QHn1CMs)h%%DpCMB_k%c0&4r$DhAB7Yqo3Nqq zx9;(OeYZqY`i)!$thRy$o~Z2yP7k)b7CO0mv}w=49xm&6T% zSsMQnBq~hQNN%3chcaUf@Dl!A^1cakG{N>}Kky3bBa{u+cUYBO#yW=EPOo)u|Co48 zEj(sSlV!d1^|?W+?3Lmhz~Pp1;BkJE(hP|tjV1f+CNtad`U4RKlI$TU4Byjkx%qAe zcTg7g<;FY9R||1Z&y_}-H?{Nu9gJj|kMf_$-t0d7l!~#(RCG&V*R)uZD=hP?O=Ey=E&UvD*7L4;S^s>g*%yc{1w7NHW<(G-eU^ z(|^lY1h@uhBKqyNkGr9}k+`o)lCMj=M1c{wn5MqYBAoLCfuly8JD5W;E+v0cLxstS zSV*YXz^{n;dmY|-u1wEia4BNPNLw}0J%bGcQbLP-o_EG!kwpeqc3jkDc$&>>NE?df z(S0=j>`~pRQr-|flPeChmsb}DG>QG82-kx*tb{z^PO>6pj$EO zy-?t#!6$g!^axG31_BOM474G7$^;C894N7m^i;yj0q*5ko3^PC*P)M7M z8A?{TU{uq(Np0cN$C3P!+R33P2as1g!g!u`_FDKF1?3EUvf<>sC_5rwSfZSu z+s+2*m_7LN>3L}FNDJrQf-b~4R7CxnZJT$?o(jMTWD1RY>tHE`FWfMKUB4eA0;hK4 z^utX}k>ZcNqr8l4YgRbSfxrEAHhm%_KUa+ezH0>tBwo?I%i)}!EiG58Hv0rS4GpD? z8mzD#G@+f}zvLLehO_~%v@2J+^F&cFv2}kYzK2$rHW6+oqm7k7>wr!?rpVP zUN_||mgRV?VxDiJRY_WOBc_6G@3nvc8v7)vQ2ymG3Yf@LE!tZgDYs&D7S@hkyqxp9 z^vHM!`j5|621#;0O3gRRDkPZ-)q|#0x@*g!Sth>(1|+5R-WkwVoPMMO zXv1mJlCZ#*eug9`>xrHG|WZ1##!u-u;hNdMdrC^E~9 zdiU#pOri`zG*Qy!?U&xM`ezas)xscGSrdF<j9z8b~(z|iCC651cjEZYyGCskk}d$9OKRvXzj^@P|bp=KNYWCUB=*ZIc2M$^qmj;)doE&Z@H7{1o$Ekr=hM4RGbGe8d zbIkyTfJcHgKd3IEW1P79I}W(VC}I5;zmN<>G|zk^(ldd>wpW4H!Sllfh=ie+z$Ir`}m(%GU7%on=su7i4? z$f55CdDqGGb=`Lbu@CEoA$Eot57*Vex)}BvkVC}z$J3!~(Ap>5hLgw96d1h3cVy!SzY20Mzk&J|n$`POFx7#_1K*fPbCk zh-k#akE8zIaZ%ZE^2(`wsa@~N3LNJ(8i*uHa`BHM4%98;Wsg+hO@r7Ao^ckJ-T60|Dn+SL{MqgOhI>&#DKC z&U9`s`*FrxO)Awjypq*TNE#ygA0auqAo<{a@1c?=dA{x*!;m;$YI3-F_*G+k`tD3+N( zI1Js;Oe$k4F(c2@5#bT?^O1E^KO?jYL$n{IUi00F(cB{mF!BT8qt3hby~G3WfbHyi z<7`&nv1I8K*YG6bkxBTfy4xn5bL-~jx~3+>GWVLx+S^y+$cm|;x1Cj0q%u_d;w-jE zS)P`?oDo?Bch8z#v#Cc}-s~ z%?HiRxc&JPC3l=~6Eh)hrP=B9W8<1)6ovn`+DLIXrs4BV43L<;PSX zzfM>CmifgiU~vJle1()lVTGjTH_qtS@0-g70Yx*lC?IfW(vnM{zbym$^`{`m8<0=4 z(PHAe;_BHB7G%><=vtVDiR%bCJN!rIv7VZQcn6GpCd{U1O92w8B4#Dkq+mttR4s;B z3Nts%7^0a#Q7E|Pe;q7C@I|MXQU0i6uTQ-l<_bY5{VG%$mTkIZYAbnBK4X&NJ6on( z9GZ)JesPNodMN+O@)Y23UT;r)RY?8gK$bVCv0||}V;lBEHBBZcv|wknKd;O&8wxLX zb_$>2=~=X$g`gF53n}Zge?O)m+K3#N9lPd`+yAco5*T*alTv)FL5h3-Eqb>KPX5TY zgixTPF$K>kqxup3x#onKf@Kop_GdE!O$&A303D*FK z?m>mdQQVEb2MbY6KV=wAjI!P3B??pX4*F<|^Ma}R?S`UVD?SW*^v#<7=rY3{e$^>k z52KIqf%T*|7f9X3imGZ)$oKtNaNAmj-|Ko^vrZ0Dq+nE^5(;%*Dyl?L zu!IpjP#pR|WO9^7%i+JgX26_+1J!LVp=cW*A#4Y=OLCDM5^TDAubWpuUv7)~J?r~Z zzw#<_lcy9P^P8hLqf607Ct!ZTDrqzhD(dvcu+sHxC<_ij|2y1N6C+w{$88JxP?7T^ zPyd=%ANkE+jOl1-1^s@0OcnoGpSd~E(>u)|!brR>ExKp5@=Edtr~qF*{}kq3U7;R6 z@J6KtQA2&9MfQ{f2Ck_V`U1)%!OV3RF>YvUv4lrN2uAD#BUD|syfb^Yn!2#|v|MiX|ElZE3T!djV!fT16FB z|5XICS*+-5%J;+MHl)yUxe{>2oEpnF@E$dlo$e^zzd4nbU>Y1FBsKODYRE9I7rl1)8A&aRdOHkLr z|Kv-Pzi&j=jDF_keT47##2H`uVH_SOV>}(7Hkpuzod;+X0Hn#Tt7xuTu5y|{>qBK9 zgy7I6qy})bz)gNbs0ZPo(2teKsIYA(v7y5Ez3d=ARHS{7yd6#uzxSKU8=Q5ZTC4vt zTNF`E*V$_*?v|i^j%a*=kwFy()K*ebT0eN_jkXWGkK)imu#My{D8G{f(aR~~qAIrx?dU-?R$tIBoT}JYyCa^%t`USa1if7ql zMJIS08aF!R@yS+j za<9uUO$;!>Ced98+1;tJ&cqVuS#*Yi&&mXWzy#=*b=Xg1xuadM=^s@L^E=4otAitB zDB?ri96UY`X}e^kTE~saZ_K9*g+J81lhatPzmXBO5!!P=zvp>Hb0_CzAfz7NamV4e z4yi)hM1mAhJxGpgnY7)S>mNun+ZqF(kxot+-VnRw<^vHm2otEQ+{?? z&pp4eu@La#;JQ5u(prS_Kcl`+t9*S$+27 z!F`MaI$4Jb+BNVC1TFZjPzy&&QK;#VAcYL7eD;zQ4a5!sit50Qs@LtYDFD4~_D2(f z3e=D%(h(>h6YPQqISy2Y$B3_7Ym;|ohtPb01idn1>1PgS*I~x~!QCcN5tQ zFI(AA5$sCKJtbtSZV8o$r6{9x&y2oMDA3f@_7t|T_PTE7EUv84MU@)g zA31?QFU!^%3URsQa#WQl26z`$X*(Mthez*XOiZjw@1)Sj#{&6h=oA}=XIG+lV~c@m zTi&<|F0?NlxgQBQGRj3V_9H%>8Bm=c*SD_I4gO4miFHbM;y+$chftafi7 zsAhBdjLxJF=Z9+tW~4v7kBYj@q1O`N%w7j?89E!KeDp@j6#AB2i)mlia2s`tH2K{}v^evhjd zJg?qZ^b7G74XbIUp_nSu!6YZYZj+H=Tv-{)YaX$fUlH4v&ma;grXT}{bGyV&?r^6| z@AI<@vTDVxFR^<8*xiF?>T#wXUDBC7r$RG_%{oXsk0-uDScr~Nkg3?~q>p zl446lM^g;3j!Mk)?*1h(uAb1;0{$g%zUud^Ck*}Fj@B{VmLxU(frKUXT(q}(xTxWV z;-H@KF)DC_>OA3%hDy$YB#BAof)E{X&&K@T*yOIa)k^-;(S|!4^#;Ux=pf7vdKsv+ zHgmyptYbN!)Dmej`j}rMKYUBmsN4BQnmpU%blXjtYA#g}0sVxyGGCc3QtBiny7JTF zcznn|{DZ`rh4YYEA9EzaIJ(r+{+B>}lH_+4>G_p;=QuF9CXlE)J58Q6t2dV;q5Fkr zrzd_17^#DOWUn@G_~CHfQ0h-d9%^Jp6~2m;M_jD(Y3dS{;hD&haT{r_$X!D1d?4%L zlcJ*Tdgn&ta6&~H&IbZpQlQG!C^dB_->VG4mo1k-#ovr*yp3A`l79b~`f3`@i`HZXNUFQ$$__97&cpg?oUzFOH&*CYJ{-q7cv z*kdIXF@>fP_3P{8Ghu%0O!f8Vz%=wkBhYh#n8?IK$V__qxV({WQ0sMLp?Rd>l!yb! z@&UDF!5b|*@p8e#$Z_FgDys5aA&!Xm+qvN;@1soiUf2HWIS;o7SqCvXB&&{Fbo5AZ zU%g59&|K6xsr(`f;}Vn!KkZ{Xr}#lV@*w+^3ne!!wJIkwZ#`5#;bOEZc%2)~*hh`5 ztu0d6s<3mj^AmeFD~B16(>B5d8G*f4o%vYG&XG?nxy`OIN=*ax%|ei}v(e}_LgP7j z_f*!ynx{G#{c%f7QTZ7j=7IAvvBZN>m;G*(r%h3J#5uDzoQeQjEZ$&8v& zG|XO6I@2m*e8ZB*&G;*3XOWdSw|nO1_!ACpq&N9vN`KFe_oxJf^_?=k-MD|Z?#C-t) zk9rk~0l61R4!rIAPtk7gGEz)3P1i`T8t0CLLL0Z*yWE&=&C58EzVqB`A(oS)`(9yZm?ZYQ z{9tChXXx$4jdoy5Ug$p>-`2&s2xA}Wpe4e|Fbg?0h9k-;i|ap>170T*<$@h#x0F$- z#0XyRT+eE;HIKrA?R}qm9>8|>{UvZBNHB+9Oyte7z{uv=BqAXZw}A-nUPx1|l)5?g z6(iK2`nLSM$wZy$7e$~>P;T&}@2>7s%hK@{t5viwKmKi;PpL}@=ZNx3OTF*b59wm_ zgvlP7XeXFA(jYAGoyXs>y4jQo_uY3lUL{{W1qXyCo2_KqcU9TuANp`7N5_Z0n-{!C zSYh0&DL%CV^SQ6YPlL3n?3W=MFxvS(tHuk?fM@VPvG1DDzEj7<;;KsGH^6v)0g9yOL1_ILUQ&W7|pz4+dzb!19 zCOtx;x#nyaipyXAk*s&Cf9ze&+rjFq=>f6W0q)Dz96-TgZ?ubNSnIuEkTq0vg3`pQ zQPz?jH7L_n6@k~A1Xi@r-oFS*&N?b6ZQ6Qn=%+of4g9j=js1SNdqUEZD%gFZMPvtp zE=eowMQwjY5n~jd_o(l|vkym+H!u9QwhA9B$(~$Lc}Kmy8sXHVhRKpR_gs5Rd*h7y z^e+LwEi?(ev^+;hT2glzthH1^yEafehmp=WKSF`<#r{-^{@rWVy3{!{ht;{rw-aAE zs2{84q?+}pnfO9CW?Gt=vc7a+20J7sWAm}$ayLQn;YqNN=?GlcAY_xEinle zh0I-p8o#ATTvI8^mcqVXhAY1N{jZRkp`=-7wkmiWsr2z<)u% z%TZOg=Z2r4d(bYbIBWrKBM;9Rt+*TGQ`O}IZa)fM)sC|Q%B$jsqiJ%n(ecD zH$tN{bz6I38do|V4xBL$C#EXKXpSxunQhT{0NqkTh&)A2h2+Ope9;XWmGW zIFq;rV~3#?)y`FhhvQak(@Y{(q#M#~2fun%P9F4u;UTA#yMNvtE!axXSQ|+t5Z2jlPFJ9KXQ<;7CwmFk+1S(c6w;Z&b3EVeJITAoJh$Aa4 zQJq9=!Krs$iU=cE5ACbf4vaND@y){&8HO4fd}p#2?aO%NAO3d-+P2RH&vCF;Qs@wG z_*s)i1_r!5ibF6@$nBQkQ;CZl&X?29%&)^Mp{KK+qZ*T1M8}h!Q_tX6L@9ztaZCv& zqyr&jgJNvTyGdIe`F8L@29jg8jiaT}pLTLnD^;N2Pk<(WR%aja7t4Etx=CTei z9C3Tc$0jl^pMganyaKVK3b2W#3^&u!s#Y_E+WS`Cg-aG5KitwhL2q`iw z88Y`w*sDD6=QThroVLcELPP@^AVX%ox5om}CWbNY5?AY%6iY|*Tl^F(xUF%jgylgX zFGQ{$26zB51wAaT|LiHQJg?WD8%M9E(N~h!!|O7;q8C(_H7;~XZNDZ$*pv|bA^}^} z{a0<7LP$hJ=oihc`gdP;%s7vqG8AbeUbDwNr)|7J!IV}gFrxbasjlAN?BtKfSvoGx zhl=(zriA%5RN#pyTp96AEqYu$kVp0R>`iHDC0Uw>X84xaz(a6_1rv*eZ&#*MfApgF z2q_+#R!YglmVAY|9gVhU(JS8uMUJ$yyh`9>6R?y^bUAH8oMw|_Z-GWk^8u}qeeVrqbz(zuagBFxs zN8cvn=D8G#S<(!E;&zfVxVLKLX8&^rlQl-h z#m}q8pRrQ!9N!Ddi)SMaCGEHQ|BvhUbPmotk{{w*LR#S6W=EFoaMrz%+rI>;IVT+} zW5mZ`42Rv9-uE5U z;CrYivZJ>e)p=?5hj{k_!w46GnCJ=5k`O_Zxa(=RiEnX7Ov|%@cEHno`0-I`g)b0vKy~wRzX~=Zx=fpApUhRIIbML;>_h;7nIUjM}{VVLU?@D z>AUhSl>TvSCHE4qXm~~u`K1yb-|6A;2#n+S&E@>o)mO3sL(El*UUgFID-H;@ySK#c z@+wJi5{cu&hm7FqcZub9;u++slik9-3c(6{m=i z3PE9Kl6=SXw*ESgd4?e{S82Gg7vz{XHkxiXQ&dkm zLkU{P!ZJ)F=sa&nH&F-2g6Z}JrA#UudW3U+0E-Gw;O(wEh|e8H+}FHST{w|{{!7d% zR44WaCdQMHD*eqT@TkPe?~92xbh#e?JEWZAZxoVIYW4f^4=}SOzlkLyG;lNF$3i<3XSDBK*aeecM>rFHQm**`+;VG%FKK+R zU#(}1%;X=u+_fKaxMv5lmTn+1m&yt&_a~X?zLL?cu+qz8&jDKPL;0`|xUnY*mV8*u z0o6yI0c_;n3~)k%FM{~0ZwjTBM2Zu4_`zqey+ICKFdrE7{zlhX%fN2ucOgeR*%_Mv z#pUrc%L7Os0@Q-ER9c$h@YR)#`Xylh(zC_~9j<`6BRHgu$qsulvZQ)-?XPDUq_Q{W z8Z$iREAOL{K_3i+qTwL;ZM}dJmvTecj8JAv&W-9G!%BMop;`ip$a!;?SCsY)n_~8H zy)o0AlvQA>Zow;!x~oKOyAi_ld$~4KH0}*qdlR_!pP2~D+0P9a zk!K$LYP|MQRbb|xS|;m`MQYBM;K2P7;$^jlzEsi9STMXKexUeLjD;Sc0&x}j1a7(tLyOP0?U(u*(~o^;hPFmNbgvPsc&{&?JgF_k>7U>P74C;nr^E7I~#W`KmHp zotabojhcijAGhD;jeqd1Q~UZR^OFmAQB`GXkHu63LBZi5L}T(G8^XH1*;r1W!2V39 z-uMb!!wAOJlp&|yZ@C1p<5IouCTzy9X1y?k8mCs&p54P<(YWM4e6AFOuPG9<7FyEQ zcgbv#Bho&VUxe7%Bv3u2Z#|8`c3Gz;6wPKo43%}vR#C-!lvNL0Fpx};&k%n+emWPeXdD@>bl< zLj#9E-*_KbO~P<~E%Cy)IiT)K5VNjB}Vn3-xlkmbn&9w;vTrqDlW z;i46a0nPlS)jER8X0O&vL48Z1d|iW_azn}Zd~Yap=`Qi}jn#?d`!)kMr;}p8CM2X; z%vOEellZ=WiV4>b&&lf~jfJ!vr2E3?G)ti~eu}lab%YHw^D0M&v>a@i)h}j`6goC8_sA%tr1nX9tD5c6Xba{On%mqG1YD@N|k{Sc~38=$i(Xow0$k zot~;_+F`j$Qp~yO(+L)QYQn1cxP9Sz1N)0q7LX<86uC4pHGVHcbM^P&lm~Mt8t4v9 zR5WzrFmUdfpRY%ic_|JLG}(K%vI|OA(F2I}HYA}iBg~VtnH{kKb_DDnZ$cQuL)647lstC3DmakeDmHsvi>+cwEtT`UYp){7 zS?T4TU=_!Ku{roJf!kCrE@C1-qW#-nY%mi@%2}{)XD~HpNDF3F^AM23804Cs&PJMN z$P>Qth5H9W8_dN;at=yDrn$$P4um?DhdP+iL%(6O4EoRZt^z-}Rq`GsLeAH# zJ+Bx+#zZ=OJ)=}))8FDEy5BeY?b&Uy7p+Zg#vPN7~S(iA})E^U=-?ZK~{>9q}-G2J^t+?$2BPZ@i;8wZ8j&ylyl9bC@C=yv!=4n;l13XmfP9Led z#eMTzS4aq6sa-!9|A^)COCX6YX7hiHn5nt#eOWDtSmt){>Qy)76EdseQb-9GQ_>}W zZ6!zVh`jwdFfa%3)9B)*=!4gESw{h{mj~e(L!87xQKa9iX`%J|DL= z{W(iPBesXAkXVZv0rtF2OpUZ6X6-s`-o6h&E6PNK&I@ifZz%+1mL;?Nj)_a21ssKEI)oywN6rC>$ijYhGW$Lx5&B*!^6FwEA(JeW1H zJ3&A-B?rZ22EC1!zRO*x{ba5dv;Kw>@GrZyiEbboxJlGJXHC?!0+gRu9bx?_YEYjO zyX{%;=MyU6bue4}$Mjr+Pw9Nbi$ zX~y@Hwe05g$T~Z~h-;u0t4Ss}A&+!RPY6&jeYY*WForu)HIkLE45*sw z!|;7W%>U*C|C>cTom>z1xak`M`Xw;xsWK|B{B2105xnMTG+Fik{gj+?5u=6~yk(So zz<$=oAyF@1YbyICutI&Yl9BbpKmQhK{85wR@gh;f?9$~{7QfdqKy8-D6lM| zkiDRI*mZBzhEU%;l>OF#tvt?hRNr3vQZD8|CH+hQEU-algE8S#0oxavHm22lk4u(j z0@)XeR6I)p$b9)oxv3xB#HQLXmCp$|e=PZrrC`Mr0#IQ<0!}Xe^Ue4FV_oMGCY7(- zvv+0A8@m@&PN{bZjR06NofBCbc0#!@+C~%U!x5bT20sJtuEd9jhJu4pQ%|c4aV^$(WvzhM*c>B~Vm(jP zU);Zs0qJ%gbpL~w~?QTLF{t<51rB_jxrUY^RpNBL-GY8qjqgd`zP^e z{Wa==fRN2t&*1~^t+j-MSz5yQ%RFlCk1uZ@@y_gZq0iL*E~dNvJ~FOAw>`q$T`Ve7 zs?S?jr?zv1sBKV}8|}05iI^?iw4C&5T=Loe#DTvd^p%G}<-kXF!SHype`&o_+|6_} zX?ny~rR}n`^!^^WmoJOR_EZ|Z>~-d*2gl#uy3B2)6u~C5*XoB=JqW0H-!~TkyZKV@ z^mD(}8&b{myHc9FBy)O~)r6fwa`MBwcPh3ZDY1SPLzSpnU=jC7q!^z}1S6 zL8`v31X3wv)q9UWuWHQ8WY=Ugc>JRw}MT{myDMX;_hP1Q< z_avrJVYb1W@HV>(Rhv%I7W3uRl*k3ZIVJkAQ%r61^)@k=K0+L`FQsB}j6*b8LRf-r zmLjF(9kH{iOZR@d;MPb8q92jWvT>_F>~g$20GzOyq9doIkD!l;1WP#Bu)zie)N`I& z++IT|W55CfXTd*lo4!6P3ICyao6?zS_#MIS7#tLCXWy_*5tP7|~BdT4X2va;v1bweO+^^@X8e z>7+I?3O8P@?0)DRgV4*iIU4%&>X*RS-Y|gB7-O;WTtqeN%RiB!t`Lnfe zuBaS)yWr3~JA}2`dLG3xjE8=?{4V+hcG zFI9lP=k{{qD7x?6Dm1<$DeDKm!N{W^X@HnA^YLHE(3f6h$kzOm85@e}YbJ>?jt?DL zm8~f$OD}8DV5v98a~RG#d$;(dv)<9peLiqr_PH^l>| zzCQ@OQkHfd<+CNt)&UL-nd0>BcBnZMQI*khdJvOProBUJEIwcM3p27u>8Ra4qCFsT33KpePx^-);eRr*=X+DiJUbY_O`XA4; z4d>lg&Z^cz-B<0riyNGe20s%0NcRIi^|mdckEV(6S>U z2N>k3(GVL|!2^#oO3?2ml+z=xW~j{<%Sm}#QS^iz^17@whv0NA$2z3h->HwbzwS4#!ks^o1=%PR5tpxb z1XYyFdW-$hAxb1UBtDpQbM;6c1N{eFtP*M|t0K7B=yi5s;T)gb=+LB!KT zbDw-$EBXJ(WtPcd@<6ej{Dvw=Hod;2VtxD4$FWR}6+nKI^g&KIvoJZ0L}uQzTH9WIa($6rvu9(>OW=kx zK?$uo!{`WwW{8*(tNb(Y^=1^p;QD6vxMx2yji7b-TWoH!cg@Tl?9mLU zv_VA7=Nw>uI9P_6T7e#gunFv=P{`4^tt{G_!)&`mtAsT!H^TkfT4Z=5XKl!A!J%pW z$@Mo0aG-cT>rYSILiEwh3;-SDc~rlpMaib)dB|AK`PR#bAS0Mod$4 z0;`hqSqv2p=(jhRgcC$LiwrqnT1Z#})D`eLNW*eJ<+Em}*gJ)k9#{BbR{(HLGX2}L zs0t_LA9LMh$ZUM1PrLbWm2iF(q zx&zTqI=*s7#+zH*(vr?;!yAKi$Yf2AxYOdq9t7@4TEd&fWj1ZEqrpan&{GvP$0sFD zgmm_*Jli^P74sH;!94~F#Lq@lJ z&ZMDE->7%H^)U9PJG9_KW@PB+&7WSQ0FC~an;)!JI~sca-Vpy| z`O5NAIid9bV(z`e(th4_Vbgmt2D>J)Mr>aT*iEq|)}SCZG_eczUSq1U8++FTBMKBFcYaC6MQk;aH? zUDX8NNd8&tAJyz%0>nX$w4g9F*h(nQG25TBZ~;&PL#dBr*0&nliXyMkrhA;5!IW&_ zBl<({8q?OY!2#Gu#``SL5^8wXl+00EY+S!OThMVaki_9yLNWcuQxZ+o4eUor61{)e zlr*&e+_C0Q(nN*mBjkltmq$0m!Qs6rovIyW*597*?jz?XiZezcGkftrAF^Ww1l)Zq z!{9dMhRK8GyYmc@Uk^xC=4%ntaXbxmX1~OQsM{iT2x9p=E|XZ#(?h&@8Oup)dLg*V zPY7V42A10glamO3LLtaPBmUq?Pdk(g7>$*yPsK1H`#Wq2{2m%sxbu>=0k|BZn z;d10P>(_R}*nv}@S&l_85YmH1w+pMY!dP9l3`4w^^Ft3_emkP`Bt2;z@wbfEUTcW* z0-!K&-E2jl>JVXLV-Y`Jyg`$XhaT`PVfT`4oS3nZd!&ck5Ep7@v}_ts)L>A6ONCP4 zqC;!*s4;!jB{T5NNk>w|+G+ke{Z3TR4S6gKS^64Qnk(R+_1&AaW&p6HVCze?Yr!9I zzcG8!A&zZ|jqy%0H~jFV{?GB$m;nk`DjQ?`^(5KIhJ8F+P|rc{z=wLJP`0gi%l%=t z2_|c4-p@&exETQ2y~r4)y50s8TTFSII=lP^ti&B~-ud$&J_z z!!!DBx&;~^UJz_f56Ta21Q8}4EIXheWh?zVwV7-jTK!gZoTo`#C&#c?<{ca)C`=I$ zl9+I$m7TxfYQwN{G0)104d0X)`@^DQd(=6j`?2e(xd)}5xJz03{+1)awy}kmu%~2j z7;P-||NQxx_&L!U=olE(mgi_UvFv0ChmAHM*4}uSC!n}`ct2X5(rnGwW6$CSq zh`E4%k;cp(BajU9Y!+a5l=z;U{#;V&eR^$z)JF9D*J%}|qw7RclXnpZ6z~3F5yKVF z?m{j;?Cf^Q7(MQ$CRB_2BDd_?mqrh+AuYFBxorZ21M{#;S#{+-JQRT0xbO5c_hIp; zoO4$gY;5L&^>tuuskEtJA)4IZcS>K13bQ3~7Vj7Y+xcXV!4!v4Dbh|>L0PpSVzTRV zLCxtBTF|QUA?j%UDc;N4N}WXCgCyx;oX84q%=n3=ImuO-w)_RRJIzaxqKV~f%RI8_ zhUy`YLNC5r>$DuUOSscJ5*|gp3Kw)5lX3`gyZ2r882YuyoY$%i>7eZWCbD8RB|EjP z{3(6?^P3Lb$NgUdA)Fi5t1Invw-P6X7dgc?cX#JjiQRq1P#I2o(Sq#Qjgyn}c7GW{MseEf@-yQQH6( znDSDX%0!2))|yg@8DG)S)*Fwz+Xqsc79uX+EUg`#tmP;Sm-3SriSMdLEIG2$va|~d zvdrgnNQ4j=Z>%;D4fFs4@s^Hmzf-e?`(;Y8Rnx(9NH0IFr8U^^-=h|9`W$Ov`lOMa~ zOT#$R0Tb9<9l%Ih?rLH6#y(sPFCbW$?FaYbq#>oE2~(8!db@xKs!@&M`4?ZrKUC`k zP-LUl{RzJ3bfAeiq8p6D^Y%&nCvbM*8@I7jb`7J;x23=bsjX>*H0F9_CgK3lv*8)3 z|C_`Pz!44P$vORRQ-(4UI~a_0~;*FN3M)zu~L8_#}j{g*y>=Kgw?jE`2Y2 zEs{z(d=0aT-oxY)OSSZysxHKJgx%d&ODLmhP{aue4@bXLrF!cemSbJd2H340|6R#Q zkn)V}R|ZD9dYKNku4gO*Q)#lKu#_Yx(N&R~|LMTVe}jSlKGB>rEgSZ(zDY{lLuh;s z9xWj1cK6qD{{O|bBC(hlL23X)OIzT(1np_G%G%0(f5jm_C06h8Ttd_lJ|C>wzg>h8 z>*}mG3K6vXkk~#%0$9xGM{8* z+KA^uc1zrmPXZPQSiW*i9TCA7FquhS!4}uJl5qi#j`G~IX5!D+U2;~1@kp>s zHRdc5?%XaK8e&&VlBv*UCK*MRdNa9a8>-Z`Erz}Fq&`!1z`V_L6%^Wk%Qy@BqXyxJ zu!uo3`G)}V)(q)yhZS;0S7cJ?yN_&v{soo|CO71i1p3+q~4hA)PsO(HL zRFl${K827sc!=hDUmW%CK}{*pwInfI){L@4R~6><0Qa?Z>IVs$J5j>ZNb`r0zJBB5 za)O9h@cJ%$N$RFO!*646z$Hd_@%O+&17S zb+S35vvE$i5ru3CC@D-k8LuPL3w4G5s0%TpYE4k1zptDBEz26Uo5&y@U(m{#x zx+RY#C|u1yOU%h!cznWOu^^5T45bbn(S*uaw#?I?xiYZNq+a8wp@Rv|Xlc z6TLlQG$GGZ&Wwe}7n2!8{wA3+#3W$cy-P##Ctz^C6C1KL}Zrz!Ej_dTWmI-WY0FU;OMEV6ZK3o!QMw0xM{sNija zY}+NaR7K2hFA(oGeFJuY|5}X23ani!bJTSc4zHM&Kp-MlQ`vbeB?ilsMDH*m-GvvL?*;Adf7_n(zATRZm(etQ1t4Y$vU@#Zc-!Qd7XEm=&?s;nq` z9VG^jz{Kl_9>34xv|}TPd8AGjde@Wl*A8l;923_$;UH9q;l|4@UbMD|ePiRNIHWcUL&F7z$}Y;}M8gJ{o8HZQMq? zgdQr3I}|0F7MGwIf9KS+Y@3_zchw6(Hl@KXv^C!BC7wTL>e zcq$o(I{?~vp1S%u=WP(H3o*J9U{`PRG+NX{Qe5aol33Uqycv-1n8VpCpK$y6ydloS!58tw1mYRt(ZCA zJ|6pc{XuEIYij?{bhl;94{sbJlKnhslaGtK9%$1$0J6nm;}T=sJ4nTKFljks5>YQDL{rcO*tk85y=?-=Xra zNA7}FYIjVR2k8a?69nKwV#4O$srfWO=_jt2Z^Wei^rv_lwW2i(cDQpMBj*(Jhh582;RMG70~?M`eiM;Oqgu|?zxN3ooJ>Fk#39qxix zQ)`lypjK0!1FAS;La~?p1c1w>C>k#v6n<>Y$8S0^rWqeM>)R zv~=X-WAyXVaTZ_B6Q@SJXHHE0ZYt|Ck*v8iDpm?jzy_;3X`FP6i{1k!?r zz^|uL?b$K@zLeFXQtu3P>_Z_cTgQecjl0tzkO-3V^%lSh;F;u(Xe3SOj0jXrSx1tW>|FE3&e&D+H2G2mm{9qSvadR@@rRf)7!k2t5 zJq-7aw7z-<_S&=h#wSkq@mHRO1aZH-e#1^(;Dc0HS@U3jsTK@|P)mgYcfGvrSLd<= z<7Z-@JQes%&o0#@r6yV6Ef#@5A#d`gx)?(wngD}oi?dnxyFKIjq1Qf_>WZ5z?fDIt zR5-MPrt~-MBjb&J>YaF-eb#lWay(S=&BZ4p_#uHJZwe1>*Ku(0BOVv#Qi>9Yf-ngo zOLP_~;wfbxnQBOJR+vmVL~@9>R+i$Er2bJa=8+_(_|3qtycM?W`4nW4M(Wtu$o7hO z)gl-gQ=QbVDqR%;MaWKG1HJ8$4Z_f@OD4h^$&vMgJ!?xX7PAHl84DOJq4cMZ@`58OA*?tBptQIK=F1Qsc_C zFOt9ES5<$f_>b&kor;K#ksSrDDXZ@BjwRt3EyOT=!`BjX%A$9|@KSaq`UfQH_fqW? z&$vAy4@bPx-JWS8m-H!1cSkRxZ8ltl|j>gLdWV|1WBlFzEK+YL1(4=(fO7n@j9#H$#p7>Ig*1rYs93aiN#3Qt6pmpQVMb4|1rV4o z@|q`$hNYfsX?nH^L!z4ZbGk~uA% zepiy_OfL~ArWS6}#i4RmbMd$034`r|nzTgAYfIEj(86LIq>^Q-(N%X0%(`7HX zle=*9@JQM(8;FjHq}nMrK{3|tel0e6)KcEIma8P4x{X^Zx^KahemE7_H~tD7I>J2% z7HS?kkCzh6U!!O9_7oN8LReWHnMnprH<2x-Ysmjh$;A!;eP#c`QA;tED$r3?&tyJK=9`t0TC_8mp~2IH75Mabl_k zdQhFo5R}}-7k=5!d=uQ9wmU@z+JCT=)W3=!@{Qw9@+s?LjyH-+k;jMZXZ)hV70H)o zP0h_^i_V%_;Y!)ryGL9IvK6{-wkkX1YQ}juY1;#J%wCZHy->|^{-BD`Og15@9rZ<4 zp8mrUy|x3^RbZZ*_rMLoUmHwasN*^zp~tFc<-;@5r?_W{M%lYlU>reA*T~uqx%+4 zm4hLggA1~Dkpx5s_dJ>mV+HsD4}S4(rlQgwZ25426G#`ZOKCQt<4nG-XJ7B0ypd?h zJ*(a4k6V^ti}-*iQcTq2DL?!YNdW4{?f!m`0*m2cikGV!lDRQnLA!ip6xi06Fsy%s zG&rpNVF6f)HkoMY8IShBr4te9Az12^zDjh)-TkPUS3M$T$(73fFVtD z+sMN7Gz7UGwR#AW?DFU!4$~q%nA!^vBi$~ioM9NM1xZiuHuCZpb`S^t-p3VXa=w+o z^?GDRNP-q}36yP-EUzJdmLOGnm*r*8Ioh5?xf;w5M7%oiD+y=8#n~Al7sQ9>-6a=O zNXi!2RaQcG9q(Lxr_VGnw!YCeB&J+k%pATzgQ>PRKX)+o3GJ3~A*!zV(cjBc<15Qp zbjUxFIE|cLYY3gIC>wt?3Ep>d(*TvGxXit1uT$eUpd;uDbC1Ep-}roZ`|RpbPl)v6 zOKD}a(F+bclUJ?8JOCY@xqDfW4v7^)ZnlD^w+l4g;|x<^bZb!#SN)Bm_DlIc)D@#i zZ>^n*EFGe7vpS7a%HnpW=)-hy_5kkbMMDvEtXoU@{6HOap0C>VPD~lB=ESheC|`Aa zbz>>%a+W4?5UR%`meaEX)dsOHXU8JH!s$){{#DAK5fyKVW(50H-cK=ohk^PJ4-+z?G5Q~BxS3OC&lF2N*X;^k<^_`-$7fL?3jNo2A%?r`s8Gav1rUbu#>q_x*YsoAXc)o_9r(uWi{r#Z)guYE}Nty z7c-DkfCs;^+F;L?RHjY1r=(mJ)hEeSi-=w~Ob3eUqMr_`I`rMCu%;5TDuK<1ci6GI zc?*Z8djSU_(T=3gb6#~Y@ce7{_V^SU^*ivF-* zzL>E7VS#qWN4dUy9l7|UBpFA@E+1L$H(_k|3*6uYliSVnN|QPIjtig~ge$O+ zumnABY~Ed>*XUfDLUmeZpBiDZ0Ny&F_jG{F<)dlg+EP;q(=?LTk-Ve3#8jwgUHTeg zDfQQ9vjijTs);kj167oPN9QAypML84>L7DyH_0<9W*b+PR;Ie}su{c~!b~02GF-H&3 zqWRIGS`WKUy3stJ^B80VYAa*VAXPdt0DN=-jcXCW!(brm%Sa@XYp7lV{)&(%#XedP zBD@%D-=dg-8~kObxDwA_`}*^ln2+R+G;%^u%d2t(AIx%Q!8BUS3}=z!w?De=y@X!I z;(Vo;w|j73zL~0|7xu-r#7?qhOw9`+HyITbU(0eP=G#Ay!1Lvn9sNll#sck_)a}-_ z<~z{-X`*a3CAr%gHU+njm(X+Pa?XjeZMW-6m`%U2|yG_-aNCe}; zZ|=GcIc5BESSs#1HKic!BQvEua(%RR1wa!2j?r;ixk_uN1kmKV*WE|R}i zUQxd-V&4=0fM)f}E;&3**qdw>y#N%zlkV$u@)FAIt1X8&n=Y7I0ZYxEo-v^scqS$k zhad#=aC8_b>B!!F5n=nn+*I>J;$wWg2yTVUlhfLyxu_MA(?B!+_3UP8 z>aOO;y4w~TgJvpMC#Bh@ABue-WX=ApGJGPWE#wv#H*Q2|LclufmCuC(o~X*jdmcIh zTEW~rJ$X|%Krk)K3l7nyD>x+GlLlag1VbPId8o?cQ+#czi3e)7;;}Wnf>B}NX||Z?tX!r$=plaN@HG=$p&i6m znFeuPaVll*NI5Mn-BE1ofNL~8h??b$jv(*egSo}Yr;&r&n9apk87#+veLWeQFJ1Hy zl+mm-U=~?oMRpXqgc2&sOLQ1pP=MhnYwK=V1tYWD*pI1quU}hf-$+Vs-!u2o;O;Mn zn^qT!0TsgHEZIPJ($sZgGYhfywK4KuajonGLUd}%VBN%LvbpG$o;Jq)BNoBXbjGNt z|I?~2WM@6cLl=t_O?-(@F37<&e}!I z)3|vi>k~QrO_?ErQSmuKOuWS3Qj`5brVUxV2oo(7blr3wszT;H~j56)YZYHCv9zRPAe&%j@o?XX|_0*)1POA8W{sJgzpAJ98%&c`cL z4aU=0S*?l(>6)7KsyBLB=8$J{1!riF^*g_$>}9K&BpD*LOdG`@03HbsWI;i&hZK{V zaS@k$zPPdW*j@Lrc!q)+QqQ4B)lNs30P_X04h-HgoL1xPxr2g|R1{p-UV-hp+UABX zP{s-J$z#IgK8Sacg6`6+y{muDD0iHDqJm~WyeK-U_(ZScX{&FpgI@rO3Nn8+oZ9b! zqdWA>`L`e)Uw47d^J*XjKTSuZ9&jENqjXD_eZw=U^88Gw&6}x2zb%1|OIDDBi|}%$ z_pH>lnqGD6-uFGh3Ef9SI*=$iaZbdOxc0dhCozStk@>-MW5J7!pV51O3*pJXgwuj9 zyhgl~C0>&4L8ZM%&O2oZ=WZF6q7Z_U;yH8Pq&UM|R_5dC-p#WooZTX2#a%4%GEz$K z>K@si{pJ8fl!C?vS1y1|%exbaQSH%l(4A0_H&f&!T zzJN$$@5ZY9&0`SnqNG18j;f?O*@J+0^>)bGR6?|b281^yk*wl!5>ig2lcn}UPSwUM zPREsNwwA|gqAUjcxud>D=6+CTE}IvZ=KR}h5Z_z*`woP;Dd^^ThP1n#pN*{Uj-M)F zT~OGEv0AdWe$7U>HLxwyoTa;gGR7mhCq2K_V77;DKk(V{6W{*Lj`=M%_P~<((Cvph zSJ{lJiudP0G~-e$HJ~slzB%eYYm+c$~DxU#? zpwtRus4;zrrekjIn7Gt%y~IJetq;UXKo;zoJ{YNIg|YM>zuI>gS0U(fCTJ$1th;J& z=<{2xFjCKa@VtyNYZtl#YB=zqZE56d_D8NgX~8@bNe`vV?zTh5;WXu}%z?Amp%U^#vo|n@4rq=F8L$NO$5eYwsQ@KU*+Ka+-Mu) zTkFpq=@L4JD~jT0WVt@+lQf(h_8Y^r4H@Us7QtaJPzPC$~Au zx~=yo<15jJdkEho2T^-D$a2y=FI#qYsNcWVSx)0zo4LsYngd^N?#d}QAaJ?3!?MMa z$k*l}XRSg>$~bWc^@~q7T9*`72`+!F2Cf&(J8%9$lU@*3Vhdav9TyIbnElos8rgcC z>$!$al+5W{qz9Fc2CeYi?by6h(+%)#vu5wbxdV{5*P^7^iBAjh22-&|T|A9YJMNW2 zKFsEFfDx#|YzB+`qUxjIH6XKQfZ&1nA-}^Gt;OcR&I~=NUDK+GRYpi)GyJT_jtq2= zvSo6Th$=vmihGfq{cJi?6m+s8i`J-?>yH=JSsy(e=GDj(i*AE^w+XRn{i+b7-qsGz zL0Fm+Pu&LsO~G$*TKDGJN+-2kPs8rOYemwYfZjbDcO1FPFSI6TI?Xrh!Au;4{q~Ie z`r8`KaXQRet?ynoms&d4i2gNAd2vb046%7_ys_Dbzt=0loa`RxH(U%3 zh(7r1)bV<6m06mWt)6X3bpH|;F{vB#;Pp0ILH|BHE;ju%)H z*6}B>IBLP3Gdg^!h|70f;mu|OfV3M%lf}6feg-6)l&WOaWYyYGh%ls5)ta~T@V-5K zcSqCXz7l&OTgel2F~f9Ld4_R({qmv39W8w==y#Y6zsY2@UChfSx%?|9b;9H({Tuqk zyL-c=ZWUB%ZtQcPKU-sx;4)A!$;|N|^fO$j2~}=7UG%F$`eZvvGvIv}0mYtPXWCf; z>pnWP88LnXT@MNPg8z;T&*n2BuT5Sie!?EP#(W%EoPB*m+Qo)swY|Joco{pkyYUA8 zZIH52bW1+>1o`Fh{m z+)X`z^%)X_A1&whx&QQgddXZ@5zxGRj&JUrS?>I zVDw^(Ro@0ph9)N?dA6gc*wfIt>r`|@=xnp`Vk@K@S3X$h1?ak-<+5wp9_L+<$|_Hf zPrjFQF=QshK5m&#`rFZDQYpUHlG^QH9IAuS`gN^vu4S)NJU4{-?AIs!98`R1gaEw{ zNK}g-90Y>Fv|um8FO|im@*0w`lmpY0I>Us4Agzvlke8N8hs;FY!}xR4UFs?VEVn4{ z{$u0(KlkhZCMCTS)BlzjovpgiWaI>Lt|)Z)ju;`4Jff`JHK?q_R#j3IaDVrxHfwud zi>`AWZeP4)yO0 zVmdKW(J|uN&?o>0lm_U`fdCX!=yH`?GIF{>PwK|mqX*}<(Fm^&QA!Lz~jiB^~`k&1~ZgMMteE|))TQY!<1_9%*(yj zwV!z9)L|zbYN7njV)pn_MlYo(iPp$V31R$RM&Cf<1d#amJCyg>T`}yoQm^;&+~5(H ziZU=d(7o5^m%2SY{Lo@)O&DPcGHrh17Jw%R)K$)P`qUU{!wwgQE882mZ+(Y11Y0%L zADs}?iZMNUEpsKOYQ70&SV051xZMg~H44V3x`qxmx5&&#vYZ-1-x%~se&3m2b#$U5 z692;3v$ost^!(^+G7R8NmDAs8H9oiwCiSK0-?$L~HU_WH!We!OKu*?aMuUjuyg zfVhu`YUPB%*V?vi{;-&ecI28=Mkef|-pKIA8$kTjCae~$ZRdP@^kqVWzixP_k3wT4 z1%EC#Cc+1RM7@ksZ|1g=-~%@$ycz3^3sk$~65Ukb&iFM{r1*Q%45@QexMPVZrJ_NU z7DW{4yA!;(9J<|ii9E}2V(sgBPgbjnINzg)t{&9y0^igwC%(rembz(1=Y;mo*$_mq zyQ;joErvq1_S=#w97ZChLKw=DesxtaKXs`MEu-29VWi?!p<1ujURG;%Of%TP*qRq^@rZ;cp&0p=y5-PSQa>-`^==R6=< zS6hM$TQpAe+Dj+xaNFM#hFE#_h|nHrf7ysrMWh5kIIeV<;wDwjo(w3d`I4RgVOOvwox$SiBkcfT988~$Pa zMhA2nrfL*Zt}ah*+=|{vP1kMv!!iJUKo~dr#6+Dneu1zJD?hU@9l?x+4tq+1O0sl} ztg^}j)IEYTzF|}+Cw%g6vq=4Q^PjuyN{*a?ksMHLF4VYrHiW-T+=?#1q(IGqKtdd% zI}Ivi46nI@L%$SZoBdls<<+GXqSyD`xWQ|FBg-5moP!(EcStA|$F870tIYSwaF$c00f z=Izt)$0Z>#vb$S+Tj#8C&OpxjlDN3#M8hFMT~Z~2fAUE;`NvwDIB8 zY>&jVvpqlmPmPxUydBk}$F_mrt#joFOU%;>vaQya4$-T)VSdSzv`8{8lx7p z#`IfWY+N`=jm2piA0}$PI5k|oI65mt*nh?Ws=9T3f-K94kN>_I>t)uWginDL z)abPVwd9fInPP*M>3Q_NFqgF59_&?QEeD?UI>!>($ZG(P3@z9TbL?lEF*7h!H`(O*7tl`GcgE%_yd+YFFfP zai@1!$m<4*D62fgjL7tG= zpx^;-lbeX&*7P#b55Pu7K4UTc^pA$Cdv(rB`>DJUCZedO*e`cVg3J9hZp3~xiHytT z1q4rO?Q*XE`cTI|QG>1`nS|)*e{Ws@jr28nyjg7H9i7hODiX`=ZFi+sS$@By87Rm- z^iYJiI9OOxgC5emfcvoDRR(i2dB z`3@)6sC4_kDvTzJ!J>bPr02l#HwZbsSuT6ysw_FjuDVuMfuyLJW@Eh{K37c5E6+eY zER@8r6+&#sw?`LSeK&kvMuflri}C;Y%FhFE!svcOO;5$TWSgmf2|$_cJ+dM~2We;N zm=ajrhK>Nx*K_&|`QMcK=Zlj@RqE6rcqN!4hSd=?WF$`)imSH3aweHt@i!aH#xV(J zhc*;~)}crbQ9c-}i$hl$GD0O{E#IkQ;k{84wz=aX;SUR}s!#i9=Y;O3%d4cS*Of>K za=wftr~1+x?9%!*OT;DL*hJyP#PW4tBM*j*QnNd5=!cF-&bdhDO`P%>WpmZ#OS)Y~ zLO34JXCsKFRe-C-qm6xdKWj3jVR-gP3&~{6GqaC6mTFD_^>F)jzMf9Yi)m)%CxE;u zvQVM*H(A)UQ-)sL<7=kEe`8oaxrLKR>>U~5S8VWq$^XohIb}Z>7cKt6*hh7gb+q$u zlXL_5yAoFg`LZjk^POY!D(1(f_>x-qrgrpoxq!y+ZRe3fZ`LA*R)`7>yJ8qhh)~Y| z>O4TUt6H_>fe`&k@cHig;^y_{a#(kK{QQXK^P6VLhB8ed)&axRfEwbtWZ_CFiJ8t4 zxvZ;p1s49mB{or2l32pWmFiH&T}(#i*Efq|T8HVKiGM zk*ZI=7PaeZg{YtoVaNID&xgMAOdhF8oy*{w%ZSlP&mF?iF#Aa|CPuQXw5mnJq` z%PfH&aNMHvqVtS-QJ#}~1z1!Um-#7=t0SOS->e3i)|f@pXu3p*g0IN{fB4kmd=mO` zbB5ER8jqT6dq?3{*o^3W&IRzl@|V6(5Et7-B~51I_awf1&kZ_0b(#*PH*eYMKZJ}s zNQwi3aAu@$t)ja`T_Qj=^0cXdSnT^PcR|(w4uAaKauy!vlbNUVmL<62U$>06PHSS} zF_~&zLZU+GkoM$zs#4>j9?Wf~;xixNbY$m;}($g$a>a#K}}-ubavE*OlA znRWbOvCjCG7wWy;7M`AvF73}EK)L--t+;X{`_~(G`*5Uo+3RmE?_k^<8W##22Q1?K?S~7L}wW2!nL{m>O6x5wc7<$>NjG&Mtx9 zGNwA?+`}9OaNjlcO*FQO3cfJn(rYQ2G3V{-)q;ap3f$-qfH2=(LGR~_&;E5i|MXtD z1QuO3f96ZgMavlC^&z|(?hJIu6x!skXlIxTJ8X~4fx%couoI-yL3T%Gu_v44^f z(}XLoxY$NWvLXc26m!O{=0WnPTJjx5j{wG5&xN zM9LML^354hg9HTB_|mng*005P+b#VqcgtG>#v~u6kvLs;^?al*$fujqJ``67D)>Ig ztfLYr#q96?3rzk?2cBqg(suZioC%AnypQ>M@FCFs`A%rN6 zZ1-JB9lu+-28s0L`Xk8P*v}`P-SWvw17ick{DpC#b0l*J7@`<->!H_K|6=-|Uyrf5 z-N_%Ulb=&Fb%9Mqd8}eeFa^4|mj^PfDw+a9!YtP0mkt1f=j^WWRp9p_G=o%o24A6OB1%Cnp{-ibk2Z&&4It$NyUu|DP^TN|W}A4OVut?%aMNf3=Z5 z@m_&An^o{ytFIkM};j%d{4V8$57XG+N1G;pVCKRf)k10 z;1%Dm+6y>f0i+KpfI|b9R&V#-@{WN^nSdbr-8#H;E!6hKPhC}v^}T~vrr7{o#SB7y z4`lH01Sa*M6fU*G9nHi^;1+Yw;=*dWRU-dtv177aws=<2)a6sl;Kq&T0MWR}SyVp< zQ$~bd@FI3bHIn4*JnAo3KHVpE@t2(6H~w<6R`wO7TIQ1&E4oNA(}#dUkDkwV>u}>0 zLxy8_aUvyT0jI&u$2*O$xJVOq9Dzwivp2ZB(?L(-whYqD2#PaE@`hhpA!{*nQowSq zx-QLG|5D+)afoZ++EabUvUBl&Hvbrg!Lh9LQmwG?r@UJKl(+Pt&*>07z38c-A^H#$(NZ*N|LDT6R*h^q!+>- zHlbF#_la#wuiQvHL*3F$ofq=OU%B9F1@18-)Gb02Gu}j0+aDAayFhTv-j>XFT%g=E_JVmwd-mZ27ItMTswRBaDH7{morT4buV~7@Ze~V@rPv}zFJ_- z0Z>jTMD^0Tm&@f2K|g37=-OVK-3x(YoT6iOf<3>h$$aanBC?UJZ5r};BXcpKBOwzK&3ReXrJKq{-hoU zxHB+tlxS~YR%Ghi12u~+8T&ODBsWuZSlKe$&ccz!$!yw*Dfx1f=3fhmKjo{7lyoAAN-unKCf{i=-G z@7T)pY2%cg>im4|tOhlw35&>0$C2bz;O~UyYW!)17bA3^I5&3d^1&YDkAB{LxKac?3S+aw*iaM|$W<3+KHQ$RJag#7-#w zHf*U#m(+ca+&ij6K9P9d{yUm*?L#^m8ChzI zld9+amfv}&QhQ|h4~y#V$JR{a1q;6CZg0nhtCYE6x^I~IeYeqx4inP}sGK$VgW2^P zYIWd<5$Z7;%tx+sDRk^=Ulo{8!wxY65-yx?3gd5|7?O|?=N^Yy#X~2wwkb%*yzYzx z)ruKep=K5Jsgac-QNQZofPsESzE60j)#8wjj|4LotyI46rije_dgtEF?vm1xmnmt# zGHbQFVk;6@ji(M?@4iS|QLR0W%T0uIJZkOU(=A79M{$#3%f)e2>we5T78Wn5J5-TXDE+b$vlzkC1gSK0o{4GUqOe~WH<_|OO*b# zS-)yjVLNZyqJ*`vxj(5U$Hji(ME)188u5I??SP2_+}`k-va$N)T@LXlIScyV8I|X! zl{@?7t=+EvY6*h*6Soj@7UN7_9pHmBG5GH(^-ReQ@f^9wzsH(pb2pvt>BV5vaM5Bg zi}EonYv;Tm{JqT;6{3fkSwz({=33Avi6@)f{HU1JBrSWo&#i$z>fi_Rzgg??P=~h% zrqgD`2E$7&V{)d+JUFSiVCQf0@|-k1QodNDXo0(U839~Odbl%;ll*!9obw(>fli@d z*6cbEcjO&1?BvFWl}lGG=#*%$VXR-j&O8aFM`PDeS~eQI2Aaqv{uRaUpBbgT!TVtl z6NBsW&ir>FGfL$m|NInOKS9#JJ9U&xkqivR;ZL z)HUgTJguLMn_uB3ccC`~Q(4=;);!}1NewN^Sntcth@j@xSe*IR5JG2Jqag?>x! z{Q1Fgb9*oaUeiz7I=>BzH=9IzG&AQZ5DgUPjm}{;4P-e6 z-~BWq?(CXFBt2P;VjL~Si;(-3F{mn2%E&%aw19?XLt|`_YiuF0Q3H9Ycl+WWsjT1Z zy;LKAsN##(gP!5xC4OQsIz-BwxFdQ}Q|*{p(0#c- zEHYs4ju0@oOBu&0l{%c4MH62UGxqnnQiw}!kF!2o_q8&?$9k!K_>9`t3FpwarETWP zCR%Dk`B!O{X8XF(=Q&-sp08;kJ?Z9%wyk3h&%`!vw^GfqmDaqU;Hreu8mdufX~~On z)a}tn@%CP=^NaC|({snCxJdts4^gtW)tnepS?Bm$IJ0&gY3`BkN7OB%-hJD;?nntV zFJOBS{9u$=iA&{4L;W^Ly-{i%PJVDId3J79rYm6!EHi7hK|Kj`8yP8|2 zs(g~`9z;HL)^kwOPgi?SVIwPk9A-Eo@;ZQ#ouZ&dw0y|eOi;&3vRbYyocn&L?`6p_ zkQ8o%**_p4f9xL^3mYaF5uGoou|*pg6060({M;|w%ejxAK4 zx$#7w@G0FjJZ`;w)HO}l4~s7j1}=_6SWA&!J~?yRBrH<`LUa0E@Kt+vNAChRp3I*$ z%K=Vfs@+NtA+jxQMMc%JO96PQwG?XP=MK~$fQx(mhrxmi_Om}d6vL&BjjTL#Wm>89 zubRBn+Juur@*z!KS+{LN!W9&=j%_G8sxMX$cf@Nxn{XJ}N;QuWcVFDtQ0y|O1{1#2 z!JqslHADSfBx(+L19bIhB4Xp)${3sqQ`?dt$vWErj|Dj1Tc~Q z5iaIP=jvjL@yxPwS_&ysbS=ZuI@7b0-)m{Ybt`lPqydH!QGbUxmLAcc*`;KAZ@#uq z{hU?@Dke1AW-bmd$v9qhyKX|%EwHzL)Q-nATtTQrM7buDCeDvko*lGugT^>ESBJGu zNK|z7D)X%cI7ID>GS8_I9GcAd19TC7a`%`9xPDHt+TpSgu}dPg(((tpV0HU)Na_%& z*YDKDHN=e*oGmB}GxJ+1AZw`ZO%c>vUOGbt7lZ0GUiHzh#hWhDuNpJH3(57D zH#8@T-Kd`&@QF&WE3E<7bjKc5+Be!-uB9s?hn&Xq5l&l|+)lD;E>H{v#!yUQUkD%f zGLbpi9?7@!qH;SY9jj^9Qna%EuU|jzXJtiA#Kv=G(0nGC=YdE8AdYzdRtEX7vn7V0 z80{)rX~_2>{&}UOyh2y1AP$Jn!xtco^eJF@W`=7b|AGLf)OPtR=pyG2aQ|;y%Jpy< zAcgBS-*JT;--@~IbH{b4_1Jke?s4^lHwz*L89}C)rfF_f)~YZj5wn{s_9SQ8M4QG% zW2wkN{QscsJ)@f1{&!#8wk@`efGAC+N@!9-FWW7l7a<9u1(Z$-NN)m`EkY=6I)tXw z6bKMVfY78vXhH}bRC-6cfauNdf9}0!pEJ%K~;ud~!d`rgjcG5e<3>^T{_gML$qIuIG{NrJ*5p;!B*mu%D@N9` znuh@p*xH1SEbuFSEV@SZk-QpJGUwS>+fx4ziE@eU(dD`6LZQ&0e84@7=nN~718N`D z6hd>q2&IpX8-O-VUw>USLG^fnOQbiXuYY{d2CuH%W#16b7>iK&Rw`=34ta{OF?w_U zuPrSMSq+o@y?T&CFq7njonJvRAc)oB$r9?mTFcDPrypn8_MXH9U?#-b)){FGr+QzF zM4DcyCUw#jzZmnz6ocmjeu;|0)~+?rjn4)(gQk;`_qXRS1tt$R9 zOpdk%h?k~Fg(2rD;XL&hiD#r(7w%v za%3%BhLxGWr9jt`QWV>I2NG3Wtds`(ZvzNh|PcjNYS5I6(SuKF;`|ywK4d53gxvi zoI(3*QGSW*8<;=2lPe;4r+45v8+ZBp|EW1=#MgH-6&949Fkr*oX?<|oksrPhseFHa#(}l!%iFzv8ii>;y$UPH>Xr60;Wm*!t_FGV+1Q@<;&WRb zy}f4^uEEG+`z`fPwvsy3Qskg2$gTBYBgZFxE{3GMI1)_$YUDyP`?loqMdLdw*%w9Jnkh}QX3sB`8_n!kOAN3oH> zw9L`ba?9A98ZO{P%pIHio`F)I(8nR8V6Bl#sFAPl47p;s)U$4qzGpRvugl95@@Sdf zxA7@BOmF+e_R|#b6Lp!D0q`%>s@rs<%L&x$yN6LV#d&|c@4)3#u%VjqJsOp9J55oEs!HRt>vRbd}q~rXnoM;>|54g3fz@6o% zW3otCTYp)>R;d1m&l?5zx>Xlf=dtCI?*qL<5Oe6`+HM0slt+WGEnf9;OPk+_?o1%rKhK4aVRQ#w_kz*_Skg$1R^*G-R5d>?_x#y);s%jD1>lpEi zO`JPI=>q9&pG)?@4SVt&yS-cr--_)1h#_xgsrnZy_*JJbPDPF#^;USHT4flT^o9aEO(F4QjvTa)75Yr7l3Izw>oV$dm-8ebAu(sNzu8;2 zk|CM@rVF>PV-jeyA5wOK0vX#~%L(#$npjli3c6wf>lU7hL-IzmAPL`Cu^2CtHL~lx zT&1tMTKgy~dIRn6w${Y0JVX#`jLE~3L~bo|TS`y;at=kH|s(hm4HAz&^^xV7rn^(TOV-2l1j24i24zUrUXks$X8mHJNDL*HJ_*`t!z|!G6 z5S9Lw>)MZ8;ypbo9uX)kQ~O|`@C+i~oWpJ(q%+9T?-?OB^ZdPPk2fw;@@tI<2Px6~ zsfN(RBB)H4^c>t3Q@rzW{DD(8G5M@lR$ZIrnv7b0;#X^Hg}cR6M~(Xv5&%1rZa!b1 z{6$v##Lurll-Ng3VpHjQ)3cF)!-u>~`HPbIs7ZWd9CWr+51Ciye(kYB1R@+PHQKY@ z-{d@Ey$~iqT5_tPO&zb%XygzIQ?|)e$l=&AN?k_ge$e*(YVj;M41^vmY*eEQOtS8CafuI5c&x$%qb z(e(_M_n~Ql;dwGr&qG$~OLZl|(81{oxp{d-xO%pquU_~>Zlq;Tsw`3kTU4E%RWT+v zRf5wbCShLaM_$Cn>2cGZ zG@SeIY-j$geIj?--=18fE{l_#K6i_-p=p9Lf#1yIRnnbz{KY0Jf))3eb_#t{H_+SG zegsPi%<_J*v-&mOD_Qcagp{9D3IigQB(JP`Lrilu7Rg+Vnu(ONjfS zFP*q3h4^No*&u1rt_O@HOpQ`OZ*w93rlbt8kHCK(sZB4{pP!l^8`qN%>#}wAoXfiG z+Lr#Bdl=GpB`xIsY9`3&%GN6-oo)^*rcc`;aZou$M27`4z5MdE&m-}jEsl}dsk5my zf!E+9t{G(^-31UB(Z>zB=+)t3S?+};~8}5DE?*DCMrJ7-`}!~i&1qxbAnirq@>wyUmp+F28mnS!%r_IeUI8u8)8^xdg>d&oycbp)xyc1Yu6VfgAyC-Xw49XTNEAlbyR3Agd$|{+X4njpzoRE}77t0kX!-f(4caA60 zk2U|f5We#YJ(;0;348N-6`g(34#;&-Rn}kx)1~K-O+9Wi#3J@S1ZlgB=2>bc1^04B!DdiLS(+UU);-cJXw z9JUnuja(U7c%Bm{xzhM6{&4q<8~Ox^XWSZ9WZimm>q4RYjN;E?O<7x8{P|XC^73YK zKI-oLvfM>I>hbiN0DC&eP%z)2?H9q9E8$s36bRQ~uLKkxu z26+$a{QDs$Bi}~<{P^3o2_jPC44KLixgGU2Y~sa6U^_Q*G?!Ooe)Sfe{@C1f|8eTk~p2x^FhR2 zop?h&i(1^G$Rt+Hngs{UL}s!Kx3xS&r4OsoNV*$#P@D4!y9N~O9-6XU`uZG5Q`m0> zDQXkU|12hji39#`2o2J@a#UcD6vr;anJgN{{+L*5X%2mvDV(5dj#eZn`zgZt@j!rXBF8=sOsYa}+MxY0W z4fBVH<=O;zwST$^UKP+AI7RBMS3jS|XEAjju~PirImfw1Np(;JQ9)mNC~Q+l$1EVL z;dvB4#G9n~;C=QE`!$DozlDSQX2JtFOZh{aUu?p~vL=hWh*m0Q^7P>A`Sa9CGf_Ak zvZbqcPL5)CSliRg8wY|qJh|pB->Io;sUXhfh<^~?8x+8+cG0vdIn9uEzNBVKWM;7J zKj}7c0uxSSha?=4Myq;U1Gn}J)jg+XEc7Zs1?lm=eaHN(C(IC$Oe zbN_{|-_lV~x`6uxU`5bo5lD!+?v$ppG)PO?+!YwV#q=E#Yk&?K#(@HrNIn1|g6w&O z-Tx>I`=1tN|Erh(=jHbsp8E6X0d>IUFm-KTx)b%9L{(Gm*>)lFJQIm+q5ZO@f(9ylS0{og44!{YTsy$?vGpstYE#KJ~V z|DDU(CbRmQ8V^d)PC|OiSU?%KwZN&4ZR~+`+gK%!{r01Z{YGugO>S;HA6^9NXds*w zHyT|Q1=Nk@+U=ZNS@app=meoQ#=k3i;4qlmTM;LS$Dqu zHf=O6{Jw2CSzeX4S!)X!0TeY9exgkJ4O23nIv0#GjKbq}%$`>5=CO7U*(*4>r}8o$ z4%dS=I6hRRs*RraTX$6WN_WzZZe88{_>=6_cyyhvawuI}4u{hSiTvE524XL_DR3!$ zED_3SugP!ddO0(7RQNi~8Lka6HtE{)IAr_nk?w!HCq1a3`G%&~5 zzrDH`vd*>pW)9)Zg&*d4VgxdQeT*!Du;P+4FlHT zZ~A*22;^&=N|(xJ6&wk4!edbW1 z1O07xRt7emyRmC>LEvM}>}Ex+&3Hj^Q4t1W)`%$S50Cj#By@6->9X*u%ci(f;6!Gd z*bQ6MCqMuDq-hv5(vr1~G-Cn~yIs?>T zI>TPx0`>S-Od01w?2(L;VcRe#cR>wtUsd2Mm$xa@| z$rHa}J;+1>3;3#pqX7a3=len|MvyWGB6TSzv~M#ymTRAggd5)W2Y-$oUR}>{Zi7H> zMUP>YqL7)2)e`PQ85;$0v`1#NcM)SmR>&5&a?0tYyn9dC&VDCEVF}Ao&+p=k@rXuj z&;rX5RN|w`5t_wz!n%&y+5C{}%UU&vyLdNMGew_jxN`cu5Ax)CIh$5(ab$MZf=+KV zcBTGM80^qrJU+xav0W!ge8~;X$Vl{5_n#zz zrtN1}J{6B$yt(9ERAr0UWRiS6mft7lxgZd@4xrrzXLU1Iku7j1-Ad_oKLM4WDY;s{ zD|-pNq!~(z!}}4hn56}{4~Z2ZmgjtqVGSG;%JFsWgT#WOvI1-*`DULPm@h9?S^Q!} zcRrS7h9_{R2?uMC74BA=4LY&I9M#rR0H%{Jzz&kc-Rgo~U%`^;xU!G}uTT#ACHGMo zS{>tzJDdC{z;}tuwHOfV`Jp`x_SBy?Bb`h=fEg^RdaOwM%gL?WQ1>?9d?PxWEi+nh z)sWTv<3(I?@wD|)yypJ2=Sc$4eirdxjV~2{$xzF#lygCNsYcDuumlEvxldSsALcs@ zW+-Igb5t@}*V6|GJT30y=8sxr$q>09XOCHcl>Kg&;v^PhJ?AtJzcs4LVb|Ca@R4c(8v8jY49q*Wz-9b3?xcgm9M&{PEbLjSf&~E(RYIHFdOKtI6_}z`TgRpAUQUcXj zs4C9o=NzX@dZddEtg+Ejs8KT%9jzGG*a}?nSyOqzcKiWfgrC{f)bZJriJuBl2W`r{ z2z$?J4BPP>t~g`MS)t=lm!`=(4@DgE)P%kGPoMW`aBY`RIOWB}jdJD@;v3+_QQ(GN zMb{z$fnj;A&wN@uKS67Lu`PNqE~IDeS!D@jG}y%J_VCNHlA3~KxlGv~3z}W6ICwEI zwNvvYYp8v1)K=$~Ct;3XZeqnFrIMVN9T%`?PU%^34)Gvmh5ap?iaJi2ll48kBlZtn zM!&y%t*K^W3y^=-@yvE83zoRU0{<2f2sEKPBei9S|H$3J5D47-@%3fa=-HYRleHK; z;)_Mr)?-(uKV45}V}FR%z}!;<|si3I;T(m!;f#lad0hutS#q0o6(7_P;U+?FYp<>x59aH;@b{ zlo4n##OkMuqgO$ix`%QaKAtjb)%-EEhIYmWv-00hG!^oi|4|KvW~39Zf8L~GF6Ch= zq=vUmfa)Uf;gpR;eMY99qzwyXfI0ZafSM^(hL2dAQABB5)@kx^2?WYlUaco=;?`FJ zQV>gaM)_zG`BM0&11TWHYILi$!yjKylqAcio^=RSKXO3US@eKxjTHQyKXox#K?<9a z(8q0yBaY!_*;NR9=|0rQ29+k(F0Tr-&3^U4=9Iatr;W8F;hV*xdA9t{K6}_fopP7G zxoX=$BB&7n%eTQM8c3pO^oE|?hW!MKa}(~H_@A5QU&kyntU_C7;lJtQUef>doB!W_ zRFewCcs$d+R_{pf6w*T#B(j)i@FpR#Sl1{#X*Z>G#WW{*MSZ9VU5L3kn95ZXAZqV( z`poH0yQ0<8B5!HnZtD;$9n`8x9AB*)f?u zUIXUBg$WZvUYb1wQgpLQnfuy8z%Da1>zdIttv%5D+Py#>n|?%{=H;g2k0TkCZhET? z(R4unzBfNVNA}G*8RG+AhB4b&rSDe%cV}!qKvUAP9GoiYZK0AR$Z$WR2!}heVVbRR zsy-u9JUvHmuFPfhlrml$dh1>vKRo|f&#ygQ@~jPBEaR>-Qwd`U9Fl}~4a57hc^6LK zrth9O4IIZ(w$ZX(Lb{S#w~F9GhfdM0Fv?8FL{YGqPYymc{MENb(JdDPpI>a8ptm1- z=4p)sRukNX)eI#sMJZYRBMK6z=jFMK?}W2!I8c01u{+)PmD7u+uWLaxFGirt?Iq)- zG<}whjx`wU#7(}_yYojdR1U6SVrP+?SCu3F*Idbp6t^uOl~6=;OC-38iIeyjHMbkc zy8B2hj>U$?#7sXjB75DI(dyyX#E7OiU{td#CojC5eb=6k2@M?D-j%gp}r=(MD8BGxB!XUv98yOgDn;YCk@ zNtgLKZ*J;E06g2=1U<06%hu&*fV=Nmo&KBrL_|fgQbVgl)7xIR>%yJHNX5hZjn-%K zC(RBN7e{N5hu@B3zs?8kKkLX@;OV)0)`l+LbAD{&P1pn@_^L-J`@defbHGGM16D?y zkD@B)c&t4<{gq;3qz-NlwAfv*g&H&tt?pN`(#F9xR@Tf=!6rL zc4JC#%O&us*}9I5)$K?0la#T*D~lJ{dwWF50K;BeBU>YXKWSZRFy4~enWSSXubQ+; ztn=Ut&GHg#9zCu%APZXCA)R5}R|`k>pugCNg*i3>;_J>PW@Au$>#}VnNH`_<=fXV~ zRW>mG}4gPlpOLgCV9#>*TSL zbkFhgY1hV=(E+QLn-2{@rd{`<8#*eY;t-*~zY&_8OlIHuXLQN==VQiTPfTJ)(zHy9 zc|pa*q;OzYaZ@`7`91P3i2`N?!2j={HW<%h?*&IXT zamrWQ4zV`tZFl@G=~W(0-;zCpPaMdXQwnS7E~=v;^Hvxi=8iGmH8@MgbPgljO4Rh$l)qth-BfLRiT|UR_i!z#T#ZruKM- z;_?&1q?lzxYC)r8er1lbtR4POx6SAr>1pT>RN6bK^3WfX7XDlyB%J^BvXr45HR08raWgBl5A_S1K#Bx2N!=dHoc$CZQ5 zmg?+e>O|6=r?+nAuoF|XfUI;DO1!lwY=C{GnQwp`APL^$A7+3)jZ1OIpvF!vj>|O) z=H^fxO2658+?lj0bkw9BvXboq0V&*9lm?6|CoPs7js0`KdkKt8eA`vNF&FAv9Pl)N#lE~~T?){ILPu7M)%5qED^n@rUOP4w#n;&E zpRsYDc=3?>r;KvaYZ&eZkL=R3xdL@pB}d z{xwFSeUsnLC=p7V2*6wuWtHik-2piKbghs{kFheaaX6Jsq7vPMt@~Mqy`> zsf)>w6|3c=6rBEKe@Vz%Z3F8b+GfD7{mIh)J{W!^s;Og~Dq&L+Du|`@K?coPRJO+} z&jQXjTZg*4y#DQ}x~?F#!r#!=h2L+G@bd;GDvCG_oh=NU%tZ5|Q@$-U4n&qFSEIb5 z@)Hf&Lka^kmRBa~h+ui3c|Rzy5Xk`!Ht!(_``G}~#(a|>p_j$mhi|6@=e2red=o`O zrw?LmXPC2NUkW|Rn|qRzoCz$+>qOpr-ox+;>ut@{x@(S?{kRW$vNe(^ewCFWs(GPM zl2a1Pt6Bs=y+fx-9X%{jv6$4r3*>W6m)H;~u(lBhgP>kjuktfoWPwM76f})ZbPRis zzAX8@n?|P>j8?a=wmVG0;0X`r)3rUb1pam@i7!1chC)64bv*LLtSsD_8>T}toA{%T z)55zeZ+2!-pC`hvkTJn`J%u}N44Np0cs)8xup@U(n}aPo-uWP~h_}m9ZKZMf&h;OH zf?0Xlasu0*DH23(?NYXJyGt*g1z0~t@bkR*w$Gi~=jABRZex`YH%dK}HOkpcQ=O>o zX@{~v`=&0Qg8f%wI#iVZu+1Y_OGAN*vcBN(9P<6C@1jm=>rlawH5R>Nf!a3kIx{U%_nCMjP23V)Yb*CmZv19QSiSiEloyP%|;5PoXhN;0{Y}d}|M#YuKgEBV*te`VovK%F8|KyR{3}41qnkJePy5AI z9Pm>D0t^4|v%=k*X8#{LHt|hU`&Ry%Uu;01pW=`|HON}UwcZrbitS2DV0QXbElxmkfNMBM!i#Cd~MBX_)i;~2y_Iy%O+3jzs`Cd ztheJZ80Z?)*D`I;KT~ehh{FYf8EW^jc<`M-&`bLb&cea+OEGS}Bl-R7X)UTB^p_8} zQpe_r&Jj-BPQds)#REPC5uF2$-`^#BDL1ey*|$9~hx)=$PZqz@qD!BCs!sHqI*}5)pgI&+1U%@v2&uJhD!Vl6Gp;>T@kM=^*@Wz|eEyOYDMG0E5M$D2W9%tn zds>fp6Us0N9E(3WH?#}^H^a^)vkGd83UY(p{Be4~4alGkuAZA)1t7t-o>=8M9s#g? zyAff2P!M=DprDZTi|t)d>Well^ZGZf8QfKuKQt@hN^5+%CiCkD2R{y@6v@QT{GU2L zHz3p$Lx3tkQ61Auc?j1wcyz79#yRa7Z-ZJFi|d5-a$mot)Jb2xpYPN!Z0&FHxczsT z-<9J9&pu+LNPnHF1;bKR+DdIw0P+pEmQP$w3bWf=hN3j+%JveCr&`@67sfBTWdSQ2 zjmN(2pC_Md<6+k)dL5pBQ<_s$y7AeUe>24yvEalvp}RIjf_BfCTlQ~MDR5KFbZgzH zMLTPG3jGssCS2t-{_plXB8$Vmy5o+0sB;IJEb@oUAvXxL4Ee=&{;Y+9q|CEa)R&k> zhq+K=<;$SijJ;hwVUGSdD2s%Mz^{ln5>(4frG11x#H#bp@^w5!H#}{$ha zl~6iunA#)H5R&wVbBLqlJ<85I`XzSSI3dE1gRXZR-pR{(Em12O@Zw`e#cS`4IsPZ? z7!A#+(oswic+`^SA@r(9)jn3wB2SWei-y2qR|v)WJWWUxgV-IHwcY>JR(#P@QR%b7 z&2Qx6FaF`H{UpuEP5oHV!|Nw{NMIgC$P2&FOH&!t80DV$ zEJd7LoW6n^SaW{ip5@(n1s!>7qHApUUr53<+vPiUJ()QC2w7$NGT^4tZYis;tm0Yv zHG&WUS$s~Fja{AIm#KV(Gr=;pzRI#xQ&+uKjkge)B6!ShNj0#-dJj5>smXfSkU%HG z^c^$QTI90)&tiAfBg8B6NpML{WV=+a-Vr9AdvQKdGrYq<)PR??qT3OL$?OO1Jg-cE z992t*2lD!3zIU8lABlz?7Hw@>FnoNO7EF{!nrWdfMHn;3IT2m-4&6~GP_|^RUHw=p zA$6*hPi^c$JM=9pO_7lLQr17lt*P@YM>No;VyM}imZhB4wSb&%g`yBNmdvFfc_{^9 zcmef60m*6Y+-A8rbaLa=8}^G0U+^L@3!72v-3L!c`;F3Bv1;G^oojrooqdS&kz(?O zfiewUg-*bYUF16JJth^1TjPUocc|=zyOrz{tZWf!pJfWm{p?e##-ne2ZL=O6_KWTB zg3+$|@zYD&yV+&(H5e{8LB1JR&%=Gsl*`EtfF#tEPvz;WRu3!fNBtA%h}oI5rc~~( z%St-VHwE9IA={2913m7UQ_DC|szIUW$vv3&UWHtrBakN$5}Fi~Vj0|IB^6ZEXZ_Y& zIxl_&S<|u_LR0Iql~U-~Ol^n<>4}#Y)4QrXD<7*(v!aD;tWvM+Pc8sH?)W?a5fZhA)<5*}9D?YMTeU%F>oV5_iS5A+L3^2$)R|%{+XAZRC}g3j)1T53?q1`_gXWEkiV9MP+!a82L=A z)!J$S^}P*EhJFH}*zm9Z#mF*eE&V5bx#S6ET9DG`bEy26Ii95`Y3EVi(%~h5C}eht zCF+C1N0x`bL`90B&%X5>t45WCzTvYr(X$QdRa*-|MBolC>a!_+_ zKhPl0`wC5uIQ+@V7j3?&aLk3ojZ2ARPFg!GzIjmM=W_$41qmaoX>Ft3k8I-XU4xiG zl)eD$GM>nKh`0v6e}F$H7KUf|uYI!?y}uTP4iaI3 zkb~2IeTIIh+>X0jyx~$KM<2gQ>;oXY>^ies(^!!^Zw;=g z>dVn-#nP#+&39_r{7q%c2!?cjV`mjBp1bT0LQF-B#|eNRe#tDijyv>c{(NMm3jy_ z03f+-Cl2(k$g-SKJHkw2b6*_mxwnY4@&BG_DA6^^$0O)!OwY-nVlL#JTvo*XVsku$ zha@K_bCrMkWYKP7V#enfdCMx+8HI2kq2QbU1IXokUszAfuzg#h)ZdfgGdYLey=doQ z$=gA>0V>3$lp9=5Gl61`gu}Cofr=||&t}+>QRo%#rK3r+ZM7%&e(E9j;r5T6vQ(u= z{+iVsdeF^N-2UWThI< z@6{YyR;Vh@T8ogiTBNl!bI0E{yq76=j6AA4KC{XrPn1j;n?7t z)_K&&oyOz#tWiCDR%~b6UXqZ_bm120NDK{YN#(`bq)%V@)Z6ylM~+n^Su8sbV)>xK z0^daHKTP^UMrPJ;zYfZ49W-4QC8GOAkUC~x>U*4ub^PeVkY#5~Gz+1MFNxt183~)Q zNt|tXk6Ke_SSwpnOMx559?IMiK4;E63B95!N0)YMQSrWG26FHHzP^Xj+fuCp!+fu> zww_O2A)wQuxm&`i={Jj|0=_hl`&;`(E@<)gU4|13YivrLHzQX#xtC)I)$kb!!ZNLh zSX6X)Cfcg(r*BOYKl{ku=t$db8d zoJVSYxHB<@L$zx5)ZhN%@|8B@cfZ)OLO%aYAZeMa2yXv)e-iFVs)3e%Y0O;JvKJiS zx>qtbX@syF&da>8XzD!ej@s9+fZ5{i3%xhE7kH7Z+cEZ85(+fwZ1NA`p?ck0s_3wP zV%J;I9l3k)_lb(DWVnA(jRo125^<@no5-JCtPC<8dZ~9LPd;%`*TZh>+Pi9`SIf=k zSz3a8@@?2-&t{HSG9U*YH1oGOJ z#^^a8u10$M>_k?+UtEyMS|UZ z{AvbQTt*yLsew-zX4$|2e$9%L+RMv&5md6+mnEAp?iSX^|Kvzxqk^$ZDE^;#dIpv!}Z*lthnT+5-%*TchZ#~ZzyIC7Oq+XNT%2deS?6Yp*9O&MubQ! zcP)JEHozDsw7u5Aq_J=JN>-;Gar3%oL$TyU+vqN!n0zjb-jo)g!B-V_O}OGQNPi0M z7&&J*#?VQmBpGofdKRCXak>ZHtP6%=@Pv%>!GyM8&a_*RG(7{bUyEhPIBR*YWvG&~ z;NS+6h~~3d?+G183QUx{oZKFAG>oBqNQ2;B@w8Rs7o}>pBU7N^OoF<-8o{GAo`Gs+ zahw{zmT0$rJ*#x|G|b`I+nVq7R2+3GGgI@aMn#vgcKWWhgiHJPp%j*ZUP4IEgqxpO z!nNH1w$$q@@bVEi%A&1CO#{rNWQm)99NytcW%7b6jZtsiq=*>B!IEYrrQ#PY=i)?A zDeSZo++rF1TCDyC2tPqHHyO z)P@AV0rP9gJ6Z$4E`*;bNG0H zO+h#{@Fz6cVR7s83-8LXO<`Ocl;`pCp2iWQ_ zf;yq+5AM0-QY?aX3To4Hioa)0AU?kcy3O6KJPsDG4Sn14C#oV&BPlFJJ~XZ7xyXf{ zGdDKSV@=qZxy?r7ofkeTA;qpdRf;o@9r{R%&U`Yi#CbT!vy{GE%J3E;Bn?RKmJ*-#c$unQ-!epq@6gH+a)W7Vz}LBs4(YwX=penm~7ZC!9-I)Hqb- zNqKOUrBeGpQbI}%08EWSMAmoK{ZV;KUaFzsrA%lkbMt+Ye+tTUR!GFBtm3zX0TD5u z;N6$oT6%E6A)$OjFW0h2b;>f{U$?)b_zT$?nKq77WZ!k8&hlyczuGkrfHp3fNDJ8A z5Gzf+&07-6GiFIB-jGv}@PtW6D=o)&hLt3$qvKCRBbTHwaRwVe8)5N?ioWivx>+g} zY?GmH!UPDfidMYwE}EkJvbY>KQe3#w3~(3EOUq|5^Y(K@bKRhg9D z5M=N8%BiyA!bZgFwl4FCOSVUGA`9Yupa0rOD@$GFEx@eA6}a*j>ey=x<4Ab8dRD85 zYeQi|Q~FEQJ7jMUsqamip2;)=2jOQMA2vNP|5VsYg9k&=z9Sd%iao`P7q8xPy3NPO zkJhEIC|7yzQQ2);f1csqFv;+@)~@W==v9Bd@rpL;o{%hG8zfJ1LH(gVK4fi03)quy zO47cE4xY>fs^s4O1oEwTf_0`r7{jODDbS%>TjO!wCg)+xZopczr3i@0{rHm%_*`~? zLg!_kv4Vq?w7uustelxX8q8i7^kG*9E$qMRrs@n^8|?G2tt;M`89g{t=*|j}pm1=g z2;I}Eg(`)$q`wmvAFzdEb22%<+F&hVmXCOq3@0uXp!gD34iKH)oY)1X&2WgHL}-+- zXVJ%vgk4pD;?!;i6!=3VRrB-rs^73a3a6hIi&rh*Z82{~B*!Ri-Zmreul3thgYCA_ z5EaiHS5@zx%R}xYeEa3+jJc6k`{Pe{qbF} zs8VpNRkSRNJ%K6x$4DDd}=Sp}LScTs2r={?L{`hQEhbSw|-zp^Fx_JJnDHRCm>A zA@#v?%dctEddX8VBZh%6LwvC+q-}9AqM|`qu&JsK6R#gvxH^*vb(Mkl?wJhxrAfX{ z;jASL@oJMhAddX;T^gb(L8Qjdw*KXh%ms7~js%YbOH$ui6L1eg779#w&TG4Ep3P*o_HE~R6`i1;) z_j%f=S9IxKscAr-iKZe$yKqM}h?ur378Mm8$0r7nPx2~}6o%CeT5Yv-u-ofCZu-_H7fL8UyKP9-n! zo562bJ4W}%Ywzd8d2MLEWMu(eg`5a4`riLJmWtj#z0kv#`-_cTt)A|Am$)PVw;i{U% z5}@u0Jc*DBSDuWL?%`Qs&4WMcJ_hycvS=sI zr8_nyK6#Ci3AdJXX#v?%<+9{h$Q&V8?_bhaA(FKY?wH&o8aSb`Ub7jVtA35O&vHi6 z2fV%;S-uFa*4nz+1=tn@;Bc5pbH)2*?>|K9wcu}*-K6P}LB2^QHnFCE!@b@>rKSB9 ztDseb5b&_vpb=Mz9$8ma(btao1;>h}z&Kqn-0^eU^m7S|Q7AWcdNN@oeIVgd^r~n9 z&R^ka{C#GWs^$jdf9FIQq=$z8YZ&;AZ{p-PWtYA(PtzXQ5vvMFd&fDJ$){|qTQ;2` zj1a%tVfYRS{$>+}UgTQ$mO`F6Ro$a&B#hXn}P%?P*=yGakp{A5z<*8B354F<_ zw;HzIM(}^$_}bD{Cu8_)=Ny!Hw2abQCa^TaeN})*C2mwFV0D`TW$fY^H*-Y}Y+{f9Nd1+=qtl@b^}*xu`Q&)d4`e zAJG@&fNnXRuT|nN?KW6;+{zW0Q>_5a@i-FON3d~K!^5Q|gy$9cGiAO^4%m7E@4(pX zt$w@R-ZGG}`Gq^3%60yYi3`&FTzgCw2nZ$FhZxCQ&ZM^o9=G??QTUc|?YD>$D|;G^ zkV-0Ll1<=JUg0|xv4i{_a?0knvPmiSBDT;9PxC2Bu@ZdycY+Nj11=SBvkJFAlp!>^ zuRtxX@}S$h2|?Lj`m3ASWq&<=b_JH6cr{BFzXh*Bn#=lCCm z;fW2wt=ySlbF_Yj z^;We}CvUo0$$0{>c{VnZ1yH6>o>U@$ax%F_SY4PIgjF+!3TNBL$16n_F>&6J_gbq7 zenW_$;%Zu5CQP}|Dxtw@Lxq*9Rs2`R>?N2Ks5?5tx9@!ESm~L!wUHE0%xrCcfVV>H zV*0>LljYRV__d$Q>)%KmNdCIgcxvln5ct&NDU$O5-`;mMQGSijrjYi8H{`i?;PdAj z>ML19&|_MNB~6iei}~aJ9s}+d`0!CrbU9U#HfpHyeeQALwy-P*IN)DVmNHi zfKJBiY!XMQg)yl`y{KhE5MS!65jz>mtP{usCEAqBSwTqek%-FJ>g|1|vmhte+MLFo z58qJcyE;Pd4lE1<`k&h>!o8V5^2b8;#IId$R|CIn6Ngup>{07iv80ST5^YifDK zHxuLFG}Jc4E;?x0pN{X{>o_}KAGR(Sybef@UWm%Mw90ngn59W%J8MGz7Z|N&-T}9G z3>ELYOEn_3H6z5nG4KJ$-V>CrpesNJ1`G;~N|)5Y=hJ=X>x6xpx8 z73!iEL14ul>7YV}3% z;p0b9DKbo}HCrp}H{IZI!&1h9Oj9;wa*Z8a7(bQVqUF1xK+{nwVIf zBvaXnbH)wKd^)V&I7fCrlrIDF0y)D8&L-SWjF2X1FPEsf2kWyifbV9m~sfcop@uq@>+{ER{Ovg8r*wRC2$0 zkD6X&0*wD%7*TvRsK6W`{uuz+-V3Ts(ne-w=ZC9&93?_mNi*$f#?pSc$T>c6OsZ0& zO3LTFPRTUWtI)x#$R6V}PwBl)tw;Wm9vN4wuYUqPVh7T^HkBFrn`=26OSPe%K4qxA zkFEjD&p!mwwqiDpZdY9$AH5{wL&bDQ5CVOqu9@ud+f^%*r8?gTAq0TO@XW zC)K6lg2e{hI;bT^^s+aUTMK}Aw4#dX7EM*PYd5`5O1)@E9Ewi}d+p%kb=xRC!{F8S z#$O&vLahfUS$%_=Qc2*7EmM9KRr(8O>QKf?EctaZ`!BYbl`>dJohM&g6)@4p_F2L| z!(j67H}%bFMBDo5`B8s!ZvR2k{xoT&#f9sMm3Ky`GmtF`rlr-*z9ej9e-x%M6?*}= znZkDC!5#eVtt>Q zRhGa=n{^nb2@l8z>sIv!6LVwzBtuEuFm9u>P%7SOkcT=dY?ssXxLd~9 z_`FA_I?M*(#f2usT%JUf4eHJ_@fwJ(*^uHL2L=1=P9SmO?C7A67dk&Xd3&zDqur8V zoBiBwN8zUZYEc+3qt+B;7U=kOr9Y^US`2#PpeRYD@XTUZHxS)OG#EKz3-S{li7y}QJpzp z?ce|y9fa(L;mtE>YFOV%!1MVzZ_n(QzaJxN|vcK+aNTl?deqLqLqNN7eI%L~Opx@Ap#Z zrG;&>zdF51`+~+z|tWhAW7(!wSW>N zEGR8B1!)OMq$CikN|SDY5FmikJ4hE%_hiqUIlteTIq%H-{_#G4F_R%>=AP%d@9X+r zpHFJH3vN!e!|-SRZ?g$z7wSEtjuuvpy;&i3Y9br_dEIup8q9C~)GY`RJW2?@EihNh z3zQ2cP{x^Qbf`Bc3n0!U10!(-ugd!8>n=jDAX)(g71^{Jwe?MU5_31n}L7 zTS$?RKx#fwr3|M}8RAx*wKEOEF>Csr_jB~4D?h}+9qi<&?H(B)a$Tdthi2>V>OQ|8 ziFB~vcV!HqM54gL8QTuB)zEo6xa0_VSV zYp68RaV(8=?*;yren%Oy^0{d9Rw9=IxUNHS&2SRPxb2jce{>7MFE(WC(4S|YK;9{D zov{GGkxW9~d||7j=!`P=ub4=9xa@EyQgdHhaUx;h3rsn_2hwKov@~v>YCzdgoF~(AUp+s~5f@dR4;a}(k7h8TDulN3Q{mo;2&vW%oBl(#GF{6Hc_MI0<6+3Y4L{CWN| zAH1^D)0TYl7nfizkGwu}*H|_4xU)RbC~9uWzUe$}nAe7{nQFaJ^|$vJKR zTHko-S*;|=sGMUd`DSmY5pzLEjWB9GT=*tGrA9RYH_9jMYdL3v#id6}nswebmoi@0 z!L1d+2H8?43+~{N3kYa&65QCOb4)``rQty31pWo%Y))#NVzuXfOlT{|Ppv3Pu{fEk zJoRzFTQ-k`-PQhdNs4}I1GR#A9N0IxWFj~=9;Ejy)I6Objeg7|*4`QE6b~d;@=2ed zZjbpS0iSRO&&c?CA6%Mof?6HR*?gkS{+)fRVSdii8OI_l96xRTE!=FbNUw~G3U%WL zErQW2emaLu885zGe}SF>?epAK%` z?cy(3p&Ld4`j5g+e4cEeQd`%E#uOpN*>B4>})ctzg z?be~XoU=@!t8g2`5hArJH-(G2D6eX+iS9(QL7qW0#O@lGin)y*Pkf9Bdl=5+Qz^?aR-|Of@w2sY|e4V(FFAtz-H=8D|ri z-YHisn$a=5fL96SI?U&h^mh`j37;FvZ7qM$gUh<_)qBaGUdrm3JJ-?K?aDrF6hW(j z6cNMgvuD0f|M;+<#_0@m@LcXmPKqbhyI))I?s&??tLW*}%ZjMjud}}u1&7pZU3_`L zV^FGBfzAPRTVAH9GHbw>rsH-+3RN1KD!Yh}FqH;!&r%?wkOBhZ02PFy1KF8?LcbZP zmTqUw&f8@>537AJWFhaS@|WO07bKxPw8&4ahXDZe+#Z>5eKn+X24{TL$!CSma8VBC z+S7qgci;@&DXa+c=gUF>dc6En@7j{!y9q^pau;Ok!Kr-$5E zvMW+~MmJEtZE`n!p%rIQo&k&M3ybQjDWS=2-Ab;rtn1?bt#?BV&^Jb)2w?QE7%*j-jRcj5C zGVXV&gAb;MmNhzid&7T%91kD&z*9HrerS20Lm^X{K}yL#G>@Z%3LJoj?^dD&uqv1o9x`G}r$O%GHUxq)hM|Tr zhUYJceRf|Xoy9g0n!}wVX&|IBpRN7+;)y< z3VTonQ7U(DhSxHj_X#obhO+NCcwXQ>&^H@x;?m(Lr&vJYEyZu^A7~VzJ<_?3Q#cjVAn4W z6lY5SHY`e76ca>Y-Vmgt0RpA?deJKw^t%zGIU3gX7$efW>v(_^RP=5wEy(H3vrk*Z zjiB@`&<)M_1KksWAWrTj*v<^m)f^L2(chIcFfaH+MxBLz748Eh5!JRDS?W;Iv4voNB3`AUz7en@N@2WIi8?e|2ID{52r_t;9h%QQAP~(aWkLR))>J<(ncd-&F)a2BRKa+92UO)2nQn+0&{)p6crd zIoomz%i%ylFuxB`M&5b9hw8VM<1w)yzAMF1QETnD0pdy4VEScqb&arnkjrmU!)!|p zo#xDhgyhlu=a~@O*gO-LBC{;9QOT>^Ke#t^R56q2I?9L67bH~FnfzeE4!GRXTIsp_ zmHzxBbfOszG(E{cjs;P$G=Ejax_3`*|L8r1D8rm6r(oM<<6B(h0E@ZYLgm044;}n5 zWr5pYR}#3bY<6||m*gtPfsPhZNnL!O0AXq}je*0F(yve6e8~Alc-}vgWb}v(Qp&S_ z8~_IU>ecnIkvc|T^VNLSl;WDj%z3_BP7Ks-wfD`r(LL*Df&WY#7i9}Iecm67WEr}j zqI>0eP2(^k5<^~!(*Tn24GNP8)xZ49wC;7ALY@=0TPPR3f9FSX{(ZTx1gk|U1|idSy0i5fqA9x9qlG8js$}} znL0_X^TqdLsIkuLn!BIxLuu~bcg=&qWV7bJ54FL*MqbFSSv&C*?* zprV;AIFhmg9Zk(%Nuk(IE_Q==5WlB+D3pNoUv^;QMKZD+ap%~@MBe%r^oGO>pNBz0;PSISE4Nr7jQ^FJ-L`<+|2Ra+fsN4*4#h)=uH!SWh z6D6{6cO}1)xKAA0?>0Z6sH5saNXKhZ*3QV^z{Fje*OZo}9tEltyQrj`G2oKtoyL0g zbVyq)oDUK@S%Cd{e1ohYeuc~;I6j*$#XGYrTD-oKbgF#1<4qxd!Qws6yHDKK8aEMnvwV*wq7 z=JxNlNhbaAvQ}axH_O>QYbPtITlk}I=}AzPyP;ZPoy7vSbi4OC)sthsxWiWAB_?#% z44{CDzz{*xk)4z_r{m}F*`zM{;<~nwrd{h98Yh`~H6Vbusf_r(v1&DFBApXRrLn6LXbcL#ZzX=j9DbrcHYXlV|2yT&UD@>can_C%E$`aVL~bulI|UGCV(*s)NLk-B%~7)^r+#y<=wdIDEq<#-FXqsEwIctWV3bo`@VoyoLenpS6^}_kx<< zFpgvEjNKa|?eqx;?)z}Hm0QN=U^dOqFYCjaNc>P7+$9DGyuGzbSY!lhnZNziH4^y> z8+}4kJ=--QEj07MEap)b(#n|8P(gH~M9DZab9!}tn34bfuS@Yimm%9d(2i$heulmh z_w54V@Bew_|8IXC3$20)a+-(G?LB38+HaURPO23K8!Nfc_K$ac`QG7bAHPy`t77)Y zHJqYx*ACjBCuwJ0np_M0nOYZJ@XTfg-ybb86hG1%#QjOe<#u}gD@JG>(0bNiQzXB? zc(3KU(UuHMM#f_@l6Yt8Uon~nK7#pSC?08dkRDb-iOU0R3oeL#FpUu9$(GP_+_SCp ztQnq!BocZ3ael>#@`o!qL$=8?2UKHHBnQ~c`8m&`R42iXNrL-OB+^CJmkFsmbUNf~ zt&^3XI+GUA``kxI=4UWIZU2n#A@!G(Ir3`dkekdR>K2&lNF12DfJ z3S9eL^epE`V^;ULyuD(Cy` zo9OUSxijKT`ixbufe}!`DXJBuNJ5ba zGupjlg|w8ROlU`t8L2aM0dq3pV-@FFD7TQgdr#HK(@W&j{QK8J(b%!rFT4HP1&CF3 zPmXGh>2p2i89rimX?f!dDqvw)IS3|M)fD}&ScQF!1F3dL(yX1(b}q_kXxG2I$*EN} z8#Egry)OX^mX?$Ep6NVSwD82UbF*OoC|Vfd8;{EWX`H5S0=LmSBIX|QUuWg;quyFg zGvyC;txc7=!8H@c^-`|jtqopB^Utb_Dc4>&KX~#bs1MA!cH{QL_(kSBlkx|f#-Ylk zfnPd4u-%R@y$N}^zG<8TIZsYeB(4Z782;|_j;?7+Ygq{z%{*=(=5;1 zEXv5QtOijnhGuI_km2ZQ&oT)~6zM@>i{#A1<*@e+D*<(}mCp!j9tms>ZpFhgNAIbx z4ktb0XB2u0lj%|jereK8klU=eB)l6*P|Q9emyn{kq~=B@l*) z8w7aQ+3DS?In$4TFt9CBl=1NldLCO6;%0K>)g<>)tyKQ5`R$({;{W-><@EILmxrsA zGg5~p=X{ymf)QH1Pi42p8zLd!z#+9mSvQ{*XV#r;|iH8vE{S7UM!2xkkaTD^F?b_2G#@Q;Zy&*+DPykYi z$Fn~E+>wqn3@E~}KRTLJa!xeu+nZ*}cq}bD5#@v>jwvZuni{Qd$4NVy!)r2E9BEuR zrBH-95ajlBY{UcF&aKjtwA3*4l6FyN^c!Img*rA{TfNB7wAmn0-z4|LuQMBu@#YV& z#H)sAx$?&6mqIw2oKF9TeDV2;K8JzUSxY3);2GY6FQm>hqpEC=%vjmAUmU(k*u99E z(JOc~oSEF3d3ch1M`RN?B@BUuDwn|Ryz)O$<2JVP7hk6^NZ+*LyI1p(4*eh@9rZDg z_{PyYkY5Sdy`pXS=s0qMOvm5lj2%3Iv|f^J$12{rHs$@`8BFF3g}2I!0^44|*r0H! zyD_XYPJq+s{ku>QAlmj$kSM{IUfcdE@yky)JPK6s5CGckdQ zoJW}|d*XI`AuE|de!ufwQw>VP6N4fXlFm}PA!#EeAl!1epXrf_?4`P02WvSI(mIN^ z8H9t^Fe&|JFa5tjVYi>|2_y$5B$s>->#%EN-+PT9Xx(A3i)pLI%VlaqZq2$qCE zAoGx$%LjU9RS#GAy8YHHbN8v&rz%fSD6}RY!bcA~F+K%{{C9%bNs+Me8TuqQ9_A#} zN;@{Wcdboa0DLBWA4|)Zyyu2b#x_O`44CgPL>#80a(<$I&oq2uP-!MF4-oQu}Jv>sFY%fwRHUxT*>J+an4 zdeTu;>H05rjvsjCA6i5KU0fDAmbsrEUW|A0I$N$n;S>n};f;DCEe6fC59uru zsUjr2V;eJ$R@nN&4ok5f)y%9W*Iq8af6CrN{stkbU*JN^BQn@TE)oMmK4m>vMe>D= z|Dfq`B=XNKhXDuvI|ZcjdbfDDd7E;OXf9FY<12Xwk1jG>e*YHV^3P{*YZ$bdEq*6y zi62e1%@PjHNMMlpXt`=hFOkZNj6Kvb4_M)?TeKiP z#f^ZG#k0&(Y+fNbK39CYLwHjR)zx+InMNGoW|g~xUo(*xTm}etgbRc4AARfpjj<((Mma1W-3#R+-R=Qv6%TFpvI zTDaAMqZPGtD@D@e-rgD+Wh7dCsdUvywX$p>;0BqK(N@WR0k;_TVUH}SmXt7f@Nm_V zB*yGWUFhgIA@2)OnrxA3Yp3D!Xs7RW?;UBEN1EKb&`5ko4o|$I1tlI-G?uLY=aA8h zZ%er~ajKa$+6O-$+|tqY(%x&j{jXS!+*Z%e*IVMhUQ>P z2>b2M6{`-*lA*b!8cH;vm|lcK9#Am4WDJrVzf8SMqdbKCZ zl5?Qq=M$;V>0g%0QqEl5)MK*)TxR`?$mUfc>ZztgGh@h{o&bh4MxQ%qFoS6Vr2Tj? zMl6W&_El&O+s|5zV=e~;4vhROW>wHw7iV;_BKK&YhpS!EZhW0oI5+tC9d;93*Likm z=AmH$MGDF9_3USN3{1VI7Soy;?Ts(vR#d@=1h+{>JUb?k403 zo6^$PRedmbcjO5$ST86wpfKu+;m`oTN5nN2aSds#-*le5Uqh@b*`NWt-$juC#t@r{ zgB(>ge3A}}A04-F|ElCU)9I|2kCaxbuY+_>6td2%EXwXPFEp0ESch5tW7X#HcE~G* zr+asuD_cWP0l3caiXU7fV0WZ_L^STPMlurc>3?ZjTuqV);ga5GdaK=mItii7@-^>J z!T>BV)lxmX*Rk6;TtVsV46mFm?N}t`_F}ROb?MNDy+pQ8?QeZEGixV=ubUiD?Z`Pk zWL>E*>}|sAUb+w8ff`n`(3gE7%I*KtAUvn`lFvD%581h2auAavOL(7=CIuI)Zo~zdgM`duWADch=C=@k%ye16bHXGC97F{Mfkskd5cv+>Haj&p7I^*n?w? z(}N9>jO2C|-DE7+H)!eq+#Z>UwntMes}SdOaa;CUph{JzC+p7ES3+kLDd-+0+{lyR zneRT9t`+gmqGknTSH-^L~|v6pZ{`6S=<9rR6-Gh%dixiiyc|cOFeKkSmmV=iC-p zKzideo6{LeJWDHUyUN~LBNPplookn&{n#qC{iGms^^W`F+v6rp(i(E{E2l6T0&=+h zV4p3u+-a;Y%P_AGp8sOdBL6JOjfwniIWiwX3 zzU?g)8J~zJadv9^JBiHzz+!6=K8Y<)u5U&eY`&C8ymas5P`JOw?q<*t)@G1Q)0rLT zc_5XK1CA$>p4$!}1fgy}n%#t6*dj}s%m3JJTAaG?SuXm`*h;@Q(!N_>Db1sF95^gaDY^|`0(`KZI#lNOIKVj zYZ~Aj#_9opz1{+POyi@T);4os(FD+ZuR7#}0}>*7j6<%$eh>En^eaG99kW{BjE2~B zr9#+n$18bZ`uc0vvn=@bV8~QHU%J}o=AQ1(VC_vn&Rj^Prue;-XS8N!@{xYGehG!V zu&;WRLg@{Xr$V;wu|)l{R!`xobQJa~*>QwHVxhw}yT*vAc~D$-p7x(+<0fx3V)>%H zMs~D`*PW`W)?qDaV{B(It~%K9kDcBFp)0|blCtzsLI$dRxDsFGC%#lsGi+d+5SX`9ko+W&ZnySUDz zHW>Yd60Tlh*|2bT^{%k2a|Q^;Fl1&2^AF`FJ+1Ca0WI5T_x^$8#)ZJl91Q zc+p05_tpZv;`lE@9q6GW)n3LbriwM7OlUxIgK}x{m}h;*htN+5Gj<2P@aa?Ut~(jE zIFFr9pR!M-jF(BBjkEIB8i=*2zEVdp$}LB8AaloLTG)LjyT|2sg0HQ96R+l-CZtS= zA6;=xvDUoy5A!=K5T9rp9*rCmc_s-+ z{^%0VwB=Oaf)d4lOq|DFucryX?KC6l0)Vk-o|^ald8#WWsBtWo-p3w5)t}_tGB(2bvP`q*@wgR~B-7eqI&^N|# z3MvqQ_!v;1#rcpiQpo#u$w#TGrkEL+LlkB#)H9E?xj|a_N-0JLV>1U-8v988>efBr2I^|$HaRECWpXVaY&QMk zT0VD~VTlQ-W*f4@eTq^{-}~q8CWA$zgrq!?>ig176k5CG;tm0{iPFj`TfxGla7;J0ry{(53j6mrhwVcl|#(3 znV>#eorENrmZu0TNj*E4j5B=`rtHFmc`bn_DKZ!psZFFMzWUuLlt=4^OT%XC!IQNN z!Oe-krmIKtFSDdJe0RJ?RtCfg8WntuUkx7&p6YHZTx3$WK70h(3Y_~bbA^9QmVT%t zmiU!WuNvE1@Nub>BSNWQN7fnot|JsWN#3^Q)pGHRp)vIZuf86VI&eMm5>8uh$aJ`Z z-+Mx+Udm|?&;}UBG9wn5U=Xmrg8NZ45`mGQ{jms^ZHDkpoOmCWv3wTY?MX{EQsoF2 z7L@Nqt#Wy-gS5gr5?`#1>0ndP=;PS$;EOMp@u-}F#ID~!$>{}xKeC_Ym_!-ymIE89 z-U~dK+%O22b)b^@8>bzx6PqU2XRlKwRLbt|Y9Dzj=#*60xy`+M#i&+TJdI0Hc$-v_ zrn0eb`UdRg?hDNTt+0W~ElLVp6XkjGvmEIk(+PZ%=%_>!D6)~#dKI8#X@fw4GxkdU zIVbI%`fZX1x4}wwsJ}oW9Q}2?gjYuisy8lSK9z0LC~J}{q?)zKNx04#k<3JfK~}&? zxmY4gJ)}^l^zB*W%gdGf;Ypz3i2;n&`-e_vsiQ!>hMQ8E`dK#}TI_ z-Yxf44zwuItV|$ov6q)1nQz8sA^L{`2>KU?RAL+U}8$OExd`^nxg< z*-Was>vYQMr=-vr2@@ql;Fnuk7euwT|8K67@#7zc7L=pF3@FM71%cR(WZZljM8DfO zx)y|G2LYZVfyOY0tf*Q_ma%W4XUXfLCh53|u;rwW2ot(!)ZT0cdgWQ}!^8qD@UZXl zTnu}BZ*#e=PE0cEziOYDiPkTjrI?JW)`{=uv7tVH8f2v`PJ7=nXOj2M)yd`#)*m6) zofOGIpWstR?v!#d0mE{1koM^|2StN^B`>l`D^O$~9TlN13=8N2RleM%Kx)y;`N0!v zw!g2q$X?0Fs@|Y%Mfywz?jJ<8+lg0wZ-01{FX0cLdOK(cFhRvCgw7lE{x2u_(o@5~gY+?d92zl|$ z`_jr;dNsq@fSN!s8d<8R`IDcLhEM^4i|>gXt2-esggANfS1tN%YrQdf0UV_^&y`|J zeM%pO-Wt}L3e|7<_NMAGN>M!{A+@7)lOnz`{BzH^S37+;^yxGqhAKkXySlJrTT zdJCZQa_q6NIslj#VI&bH4FiBHqYt?xYZ%09eG4gJ78VM=4+Mq(D~18af?K7t?vjHH zn@(BE(N_tZ<*#9mWlx`qOgLm(@gSRl#fku~SbCo;K4#2r9ut{R0jb#g0s16s0$B0v zf17}`eE~(>qi)R?RX>~TJt;ew$BSj56-)JOToSVSbI&>3nB8+NaMT_Ayp%)mx|)Wg zYl9IBdwEfH zp|}szz{=2yuz2ayj8O8WCyQX--mJEE|pk4$cme-41c zvy6U%jz=GiDm7KiD6EN4RilXgvS|3<67-+#+;unE&^~Un;I6drIW(`^ntX*UEnGT^Yg#oH<^A2oi7_l18t4{S*J}*~;7uDW^r?o1lwPSY-6h=ygPh zoo%}>Cg#y>82d;y5<)LK1Ikce84TJeN2JiM9p|``#U&16#8c}zO4OY?Vp|{x-OtHKuvo*)+6?K0-%NI18B;G z4R)1_G!91ar-Q5lqU$riAs{HVVuWk7vsO^#s%A;?$8#Ki;Lnaa+mC2|^1L)cF9J+( z_r-W7<M|5mUY| zODL*RV0wb8j|V@B_898H9u(0~rE$PdH5;^OylPW*-SmFokGS%p!>Ez@)!np@H95E} zQ5k96w_GN>VSZ>=m67m)3XY(W)TEB(ei+_8p5Z3Ebw~VhK&MPF7n*5!XbHr}ZySbT zBjiRb^Gk>Y?jysVKUyk=PWosx4ZEE1Tr%}=d$aOB`bQ`jc4e5Rmh#LygiA|w_DFz- z5(4tH=ad=6VP5ZC?0q(G`>L0u3Nbegs4E6h5!Ah6zkcWzz3_XG?MdGfW&#F|=Kry2 zEH-&Z@@bg;TT;3fhYGC_Cdba%$vw|1VwoHHS<3bCiTqwz6nYE6m$tvr8~DAGk@LnR zNUu#$gAJt|Rk#r}M@>PgkBqs9i@RwNm`~}2OQHOZxaKY{_i|WM=Moz-9QtgT&<09X z<&UuXKUynaWyUMHwgxnj+49r2eJslrLRIo3-E}kdM-upp>01rqW%COQcz*eyfX|k8 z!}oU#1X|Rv3Srv|pUE{Z5hB$c;OnQrz=H`|30}D1y$oCpf=#Y1(b#pGj#3ppMmvJn zbB9>ZiIROQ_*h~l5PRDv@fT<9u;Y2d*_XZp+hO6C7e&N7iCBvo$4uWA#BQT0q#f`vR=ChEIEUj?DGAV`%q6$iJX3)m{z7<{4Bc0o-7xLarp|Oteo{>T0uJB9gbZ!s# zDT`v3M^oal_{D>?+fb_%|LGYar%mz=J5BbZ3tpBMU>y%s%tsIw*BClA>qw-#W%G&X z!<6>AixHj61@F=&PYIe_NKJ#Xay~vb+QccU|6kt0(XLzOAY?aElIJI*@{ARma zxhcHk@P{p&gAVhmNU)YWA(@=1D2fPB-1o;`z03nlQmwty-Y(*rK#^uTSi-)TKtJO&8yi zln>O^w%?-rOvanggBdk1@D`XJS^8Ltjx5h6IC6 zH*u_Nz)x1v2@hN=2Wf`>uTZ4T5S_DQce7<5pDdqk8n!N9?2ImJpo!+H7hjCw9t=o`K*2e*GKm>Q`BNOr2>7Tkq zA3OgQ8^QeGOEDZ5W|wSgyJ7tBlT7=L*(KU47YXLm@Eo)+<=5`-YUT;$OQ(6`cyJke zCHbg?yJQO3X~u8ZT#*Ele=5Q@Kx-WXLsIvV&gy;tifM3M?E({cLhXSvrI|P~t!|(c z388Avpn_<5d5a8UcsBFCtC7Y|#XEyY@3)4vzYqTTub4$g?cG_djB9t)Ie|`1ILX|| zB;^3AjB@?$aAcrM&$U*4SK~ja3vd#XoI!D$)F4w?Z?dcy9W1CjVOZa4DX{VLKt${q z(vdNl_@G@G|08QUNqZTXBQs4Mxqik?#vy%Z?SyklPOdvG)Kvhi{Lafq3&Otn+(d-L ziZvPjEB4DMVeah5D^otTw=^5drBySR9T)2O`vTEAVgARkE0X&4?~SXTcO-w8YpcG2 z3wYJSHjs^)d9Z5M3IAiL3SA1_SN4wA+MzD=7+}CKlJV)uJI0R!LnG48xL*p~p&l7T zQ%8n{;yMO3b6mJ2cbRoSgLpXE-S~EnTJlPA=`EW{g)My_! zqV0d2sn_)EewO}7#Byq!8<|pE_@LJ<5+1=mubgZm0SCy=E@y@-{H^Lyp&~17Y*YoHMCA!Kq323qVPMl0@gA@;nct$LY;UYb3 zgLrs!WAoB&Q?YtGYjBhJM6FK_6OA(Z*no|4nvBjzftik=bQ+lf?T5jyigm6!xuZre zu9|9V()3uqt8IadU1{%)vsR5&Iq&x>*yntQLYVH88cM-=?4b-CRTPx9v9CcCQ(?2O z5gUqCmgp>`G{Ws*ZAYNm?YGXTN0-4PQISh;X3tllu|7q_RJBe!n7kbk@PW)g=^z23 zLlPJ=e}JFP=*S!n3EQCxznBeVtZ)+53W+PyIicLlhdQRm^4J5y1$CDbgB&LC@g18n z0^L(257x%@-)j~X&_^0uNcZV&KL(7<`^}G+6n`#?%B#6F(t?;rLO$;QEtAw~EK=Tg zXm5tEt-R73EvkFza?aP6U-6gomDT-N&GuM1BHk|-2|l&9_bQ;usKHkzv_JixsB$_6 zo_c9f`#*eY<~n2% zn^Amjx4(V~^ocINQ`SK>x{7|Bb?8i>PR3w;E{9e=s(TDsAsk<5 zs7L5_YWKF=2?&98gFC=Rum^aK9|v0CcDGtPrFbUi+Rsk&Q96s!5U2 zI;>5%{K;wfL>(+V1FPk@ACH*}_3qg>qJABjYf?%>8TZx8&meg;8Xdh5X~3DOXca+0 zTl9xCwLX_vlYJ>k?LUJ<750Y?rp{a&i9YCYC%@L)OrcqdU)^-N;aGHxrY>)_3JzXL zg=RP)ymFr5B;prR%0ZP72=Z~{{|!e`E~QLoRZPT(4sK_C&3Pm-d8`(X)NJ@<*0%S_ z9ImJ3X{VfsHT5gQ)P1rTz!vUMFnT-t2LfT#S`9CGho{8Dr#!4RIwL$B1c zylWR(mVYHk=&b^o^)EHF_?TxIWvjsLX+p--hq*;=qDc>Q#zwE|>KjbI&PKG{%yx2K z>T!xnli)Z^nQcq-@b2$#(7y`BxlUt^+G+Vnk^tiNkiINYb_N$%K?%`U>yp3ucvVV} zX?;n3*q2t4YWCqd`2YG$+dkUT$gj;S|F6QjCTk-7;F#`twXz0xXQ29D)swC!w=4Us z5p()yU?#>>UauY5q6xq(Dh-T+k)ZRyhIeujzMM|OIZ4ku@0ty5Ct#74yss-re`iXdI)mR8%V^o(8|WHj6? zyW*CGF}@4@c-^*xn`r(FD+4pP^huriZ86KM^pRyi)!j6!L0#Js69>*A8$7r&bS}X7 zob3bn4b6;$m!)G&6AzA9}^l<%GQQf z%32)1_V;x<{_rkNGI?UNr?8hI9ydMM-V4PPmhMK!s2TgcU1wgTqYNBN*J=7G)SuGV zW-a1`7FqbWVqy|GeZzjHA>OKnol*Ka+f|tm#w*;<7VK0Xn&dV~ENg3H_j#|WIeye1 z%dVJYwxuKEe4DD7C$DNfcLaOk4|>}nA6l{}TiKn;K}eol4?Q~%jMT5r7h(wh9;55c zq1==d)Z#S|nW^O*q?Zz6gclr5!}uaSK@%yRJGMAi3WATOpp5=p?ML(vI<%lHuMywr zp0+4R_%Lfirsh*ctyu>$P)aF9J0J@X&_Nr^y*=|&1d`C+Mzn_)7Cyg=9|*A+-b(5I z+*>(I;EZ8ABw8xBov+aK| zTh3IxFi;JO?5_Z?jy);Pb&hI6N_c|qUJFE7>b}GYH3A`%Oef{c(Bk;IX>3@p%$q~4 z8JVJYl@<6Z>>nSMd;0k$If;X&#-+p`FGQ7QZRrH;v@R6ZtP5b0F3E@f*zjEmi7Eec zFS4Vnx9(=Z`=Qh@6x`JpYEis;DIvigr5NQjolpvm`sP>)6F`V5q6!y>GGz@2ZD5Kv zha-t(e{T^Jg7v3p$LTQq=QI3`_TWdGZvTq8Boe|z)Qm^0w8N$R)Q)uIU`Iv@5~CDu zVq%;{r&pnOSOE+S61#OR!`OeK&F;ou)x$D&R~A6UI&u?acONvvleO{(n0R?J5m-)5 z>>hre?kI08msu|dT5^^z|5q$C9L-!IoC{eeFRlutCNf9(==u_XP@LAFGkxvyWP!xjO zr=%+j-%kfc`^<lb-mXD`lOY)zagOLEKc}~i3 zxMtX^_Yxj;M3^S{ZoRuo;ig4`744`(;m#t>e}1fH;12E`3Ho^&_xx(eVHMT>bl}dn zE>7#$u%+Xn79jOiNf+#H=>9ASDaZQ#L{j_mgVM8^XC_>wamjnnbTpZ5LGddo;lK|I zuY%|9kQ402L(ew6i`~oxt`3Eyd>M2qDFT42-Y>Rq0k8OvW~v#_*M z|2~-LDxhBLJ)k&e01jK-nXRp1ider}58^Y`eM6@_$LPv0yG8;Sq!3F}nHC9<{7+wL zBiist+zu@88CfKaMDo^xmg-`KLu(uxJO6^liOzb3zF~|k4CZWZ>>KN=eKUQBmj8Sh z3Q8TUJ>t_kV4R+mLXRmcmEfq3mn`%-^34W#WdkjB;~^4yX7vF10Uj6u39t~hmvDN- zsCkdXrs7fQG!@L;@VX{c(%bg&oo7VnHVDk2KOB5ZtMF6wt%=h3_S#t)j{AbN!X#Er zxDxht+T6}gzMZS$GD4-xwu1QNXKU5R_1%>nTU)0MGhg2ejr!|3!-+vvAKQVQ$P;-1Alzbfad}5;n=H$A zS8!dYU^qN2!T@+1Um^BcPX0`$DDi`(QZ-Qpp~TS{zT2)5vWJ+0?4Z$V9vt3?oq;v! zhoPGX&Y%sDn9G|J&3d=X$a5bmzik$ax_PS}oBnYvD9Fl-{A7B7jX`QPZU1@1>Yg=@ zJ=yNbs6_Bhlw#6U^UUU5w?Fe!O}a(=ieN~Btu_RMML=NyLz%Hkfr`Qz-Dc#F&~N!h zVAH0nawydHJQuv27Z~5t3Ddw6n)w)1rXwAWdPE(QeUOJybtN!XbRU*60Evp16@F6J zRr2PS3V!A#!@j;OrWmvU^uI-+xJJXsd2%gnQ1KfcehqwG_2(#mpzA$9f+@7~OOTUP zDsFMOnov5=Q}l8z9#{>!_dd9sU^BeztVUk$pNtOO)YY#1rwL!pXMb_Q+xkEVTtzeX zMzBd4T@)8bg?0?Gi<#rUuO-b5fMlW>_mldwi$K5IjIQrkp>Pr)%;dh`zqV;D>4}c; zf)F~TaP{?a)k;Xc{=@){0;DE5RAT^Hxh~@4n9UcG9hEYatxEw%OOLso^Qqukv{glc+0)fjfMv+U_6xJAT=FH`A)n#=q-!MIWRsh2#LS zE+l>_n)^EG!=Tb%*itfiP7zm|hikdDd&qs-PI=I4I3y-b);HCAXeFV-HDFcaRV7p< zu%gr+Jm1!?Xg0L%xRqzw^o{*rneYFn>zCszcNZn2e)uMKoQ3^wizT6#R8;V2@P0|i z{U`1f8oOdLX&rz4_tuAda?|IgHbn_v-G;0=gTkHFI+7r^=2s=7_ULs2(>0JdtNO0n z_Pa66T-o}aJ-WWNdmrwbbl=1NisIX4>nta;fdQzUi6Siuh>e#&-fMCl=Y>$g=Y^%c z8)p2ya69%CN91Sie2mm(1YT~Fd*vMr@eH!qMvfDuUzs*1?A+_p0Hy3bIj7SiYDl_D zRTA55M$QiH$rhs43`a`^Jvm=Ur)udqy#~gH;jA~4CMFcX1qT68%OkC4QJgFPA zoJXW@bVvq`hi`v+@8qW553!=|P5ykO7~XWz-qOH7kk9e`c|AzA+}_dQmcz%JHxB@Z zT08Sawo>HTImM^|1yON||s-GB~tZU-E^^o8h?u&kT-I^tY9lU;+A`slM2ai z*#V+oWIOaV6y~BM&*pS`Q4YF$no*%;ltAI;bKg|;L$JL0}x0Z02mtIl;UkAz=3?^i*DdybkYts35Q2FMPpjP+UhaqqR1i}ZkeiE~4v zbrNtwlb>cmMX=|!j#_8>mmfASw6oRA&Yh{I{U5}gcU)7;+V5j`tLR3mH1`Gt=~6=I zSZD$PAqk-cluknLRko-gK|nf$ra=M(2sM;IK&5vf1PD#(1PCZqK=5XtbKbkpTkm~8 z_ukK)Ka#99$(prh&1B8Y^E}@lrQSXsiW*zcGRsFwpA!_fq7E8&kqUV$FXTV1H&oDT z8~I+)FsJuJ++r8ogx)|E!ev5S`tQ&Lp`*2pXmU&1%YA)+)t0Zi2cbPhjRV)2n&%U) z#5f;j|DKOc_z7q~gS|cHMonTe4_--8S;>|ULTjcn2~8O>Mn<43c1&wnWUVW$`pK{3 z;is*-M8%XShP{nxMeGoVm6TM!s)ZtMVl!Ih`lm_qXXYI`!in-4Bk%}1=IwOY@thLWBS_pa?+>u6e(%6ag6YUpc35_im` znn&8hr{!n37M`wod^~2*RU_)i|7z>$6x%GoM->>{-<=MTM29q z!k+ZjfGcY+>(7AZv1=yrQ~WK5f>L+5Te^v~#~SskOjDheg80R--f@kG1>Y6YSO4vP zi@)uEI?kQawL@Ea5pL1MTwyCw7;YsP5e8Jn52$ESY-Jxj!gB0Tl-3^R;V@ z6^9U?O+N)p?Xix=J`)9Mn_kuBK?}0m#VyURoE=F|DR=tug&RI0{uA(Zh2mx)Qf+HN zPE?pLYE_KrGkN{xho!|h+IL2ru~m|=^=dStxTs+18Xl`+`VH)N%KyBOJE1kSe>d|d zfY2_wOQ#8AdpLIF1}=A;uBd@BXDQ>U*n<0Srj}T{CcskxiMb zYEkB>gA|+8ewd;8Pry-p`1cP#0gJQL&Cp$bhq4ve6U&EZqGUiwoBj6nX{POe^4*^; zq9}Zcw;`m0c}(xuELm;UYzWWN#ZfT1f5dV{bZ&}1&Gfx@IfQ-)OQ=jcz2yIiJ3vhC zYR$%7*CvHZso)8D&;G7iT%xIPrS|S}vA}vJX{G3s$G2!pmwA5>O~-j@QQ(Rjm?e%8 zV0AxI>a}nQu5d|d6e32)s*3^#iwWByF&%KhGsCO*T>Dm=WmTQ-Z_A84r)7>lu@CHz zT6VHav?{XHuq#o~n;d33iO2}~qH#G$^A+dCCt3Dr=XA!1v^SWF{7RkVYg%I8j9m+V zLC;T-Gp`MPIZ^E5=09HaS!|Ez*iBIDNCbOgfY$Q3B##!tW#yG)W8>xE<~KCHYSr5? z0_kJ3HMdKE6|uA8Rf2`T!JriD)1ZG6+0$67Cn|7{8mw$c)Qi-1U9J$ zhuOMju5?oSoMN;5v7E*&PnNS_&C-di8h~UfiJ{W ztbt9=i`kkAO-&-ZJ2T4s7>2ZYB}M* zAK+GRxF+hNM_rh>0U*<*Wk{%fG0t!y&hPQU$Nju#l4B9mXhJkm0-BoLjbSd);1e|& ziXJk32t}lq_o$k8jAF6W@U_SBZt00A-p797=~hdX?3v-2+XwCq)^5zsR*c)=SLB#D zwfW9dn0E;)p)|jylfPJX}b4X#b*lDHgAFqAcWN}-s zxf$D=ULmf5PXp$>x7RzMtX>oX4qc8rX zZ6o5WHo@pIjFj{0ytKQ1$a=_4$1pi%bGtAd?MA_bMCqN|d6TiD!fojpvCaq(-nH6K zbZSU+lKLGgUj{6<3W`rvtd(ByU$IrW=~jB3kQs;Jk|7+S=WWL9mV~Vpa;5$2iDptN z+r6#Bu(9C$#9%~MK+qzvlicK={c3&Xi$Zm44rD@pgk1g&>|1y=K|VvMQCp848EiXu z#mbO~TZ1-MFt z%pG!|>E79!A9q7_^mf&GOV6mey4$XdDwvILLwDu9#xpX?ZEpEnKk6mb*w+M4Atlx; z1SzzQvgj>JmmUFT&*m;j0_hM|5!fm(Ru0Psda0rE!YP`{DYN`W0%~G|0z@xM?rM_= zxBwTt3~NzcoAp|pT?qb+!a@QWVwA4r6=k+4sl|e+snG<35|aAcK{j?40rW$CVtH&O zj#4RQZbGf-4NdjKYkIrTg)tAznu%q|V~VJF*wy`eyCoPr%`G)$?;sTjf$Oux4PFom z$YHR`qu5}}pHmJ5k=yq@J=^)Jzx)8Yd^EjaUr=Ly>rt)oz1(fj`@D9s%@w7Zr#SZ? z405@-nxQe+Hm6M~DjguRfnE2Vq-$3hmF^IocAKbr@uUs!b zZMI|f&XH8?3j>eVKAbFvNfa!I)1q#BE&%;S+JA{Cvl^0gATTbGbcAy4$2BqBv@#l$3DR%*7d4)%Na5?N8wfBn`dyoc=%_r1__fB0}l#03?WFNC?B z2~DUCDz7OmFYyTff;&=QC-abth6>LF(nKCh*b%4H{5=-^)#@$FkHB`bdP`-Pb$HOk zNBE7z`T*8qtVFyH9xo;oD3;$_?fr1A!0koCNEO$V_3+$H#0<~U6W>S$k@b5L^Q#j! zH_A;PSZ>hzixf)nDrg4*X3c9VM!ZS^U8J3EX2l6a>|$A(jrk)H@E6_Ed*5!u)%B>u{Ld zD>P{ZQm`2=o1zwP<}xKKK8Y{h8GS$*{N!32vYIh8W5DzK?(8 zYwcpcwQ-{Yiw$!LT*n6^SmnP&Ex*159=AF6I?QcAfsT_WgxLJkm_)QEOY8p_Rx-2y zG1A0KDg13@DFbo|-|tv|!YKKC0CD|;J0q=mD>MAZXnjy~7>p9o{N-Yz1Yw`v8k~ADU=2kTxFM7ugp0 z+3m7lQS0n;3pF(uX_Ov=QqAd^EwyZ7lg$?*6WPlWeNJ>m`a2i4F&|ZF+&1`PK?IW_ zckU^#!SG%u4iT2P^5?R|Kc)X4f%Cwc#w#(PTl3!7cO%LHwT44J6i_?^nU-A8;5&XJ z=GPh2ZoDaU&`7sYO^gZMXb#?LrtbG}r~d?iDJoZOVw4BmqmN0b_#TI&6x)I|$X4#% zu0pWgXk7t!w{v$@ORKj*lkZOeRrqA%b$iP_eB8wm23)`l?ca>J3b^!a=@9_1=DGeG zX~vSlRKK7~s)dpKp^(mKLOgP{O~sjfA?AZIjD7WwIhdB8C0-osojwyipR(06g_kXm zW&HA}qc5*=6xz`TGnpJ8eFzN*u=g*~Cgj=)XDc(M9dfmm$39EQgi6(a!FPEs7|{D= zT(TF@NK&JVvOPkdtTgGx;0i0sPBR4q z7ne8eV-$n1K13yD1zzjh<9cY%@wP}DL)B986+T}2Ctyo{TYtUJDy2i|t_{Ds2sTbn zIZE8coxLAU=_R2^=tAarW{;q0eW3{NrFsp!KXIm6z;z>_!K$>!u##pT6e*g(spo=e zO(`9%o}X=lGQ^W=-)0*`nj5djiI9cd52=5`W(qN7UO=eP_=_GcM}~$<95=#?dZ>Jk z7tC#ebDJ!1FbwsY-+K~j=+^%e5Jp}P+6pc!TTEchK^BEJ6lSrq1;Ovyw{lH_EP7G} z8b>COc?e6O#CkOS(4x@uM98gKWP@K{4y`gfO)6B)?HmoIxX#q%Lw;#ZRIr>vJKkr; zbB*jX{b_pG(IZ$P1l^jd304y(ldtBwU3tEI+uGaKk^_G_GFt2!?6ezF$c%=y$B$rr zfrJoD^yIxB*Sk*%HJ5mU+V+$KJ_rb5PUoS%i+_1~!_dcYNNGrk%{qH3n1cgVL)lw# zy_;i}gG1Y=UNFbLMPhx`xik2p4{xA8ML7yeQ<q?;IKnB;rJHbF zRZC9pb5=el;Fma)KfBdo5eaelOMyMcH&b;jQ3AOk_rY9H3`O@V2=TL_yL6E5vv<*9 zA$YUW=#pu--ow}_1~qj;GZP;-X!77jY*9;1W|7Da&$N_(U{_D7ni1u4TV2qnspky0 zMm9t-b2fLgdsod1Cf*2;uB-c}e*C}x@zg4FT$WdmN+1M&i8!nLz=64rD)SOkoW;b$ zu>xTxvaP(vYjcsFKk9N;bGUE1eXFpJ&nHu;>IgQ3U>ujyX2ZS&vaCF04ea24qb0yq z`QXLVT8nGTsZjUL_Qdu@50@4Mi1?}RxJqb<-24;pnqeX7=Y6E_B853ZGbby9d!MP} zCy7q#Ds2-_7C4R=-lY zu+CEP#Y*X93#w)JyJYn%Ywl7x(hKtr9`&?@KX58T#mw^_DU0w@2R2HRA_p;FqFyCBFX80!%RmjWZg0 zd>)m38O#Vf_YSUsct^WKQuzs`_V>)PPukG7oO#yL>V^m5gZf@AqarnWc;~EW30Xmx z{x&?8IkyytK|-{@fzSWJPBnn@@+A2_dEL5P0# zJ&n(}o{!eD2#Hl;A`!w~6%NDZa3!$y*X?#|Dwg`}qY~w$u9s!8^>G?8fP}zfmofDBF)-4acK760Z)MYSM$Xxu&Ds|Y9@}P8ziM?Wim2~~ z9lu&E+`NZFNCxmqe#BA&u$Z`-L@jinux-URvNBV~`AT->R$!&UK@4!DGQym@LS4^% ziY=>c5QZ;>!VG_D8Ius0Ow|uNYj5EppU}a#r*9Ed#51fFGMCWj8ppsFGj(Y~3=C(i zaxYa7;}b{gi+G_-Jg#U8Yz*1LCc05;j5)mPk240T%V42^b6|6Z&j(d2J})&B zusroDDQF=yQO(b1dI7E!f-fG@HHYV!ONekj-sg!M&3ux5 z**yj?Ok)1C)5c~RRRY^;$N4~y^1@&r=j0wm2=7iZfmjq{APn~9CA#>-1w7hOwm6#Y z6uRxP7yHx)s*I0fkCal5kyL2*?sLX3QKi?OB?OTAcy@;@e;mEdu*6pk$~b5l4aJA$ zW~?}g=Fysg4buLBO_n#3R@u|T`*l^2OAoF>Pi*ngc~C+!LVh^Bc3h0h%qjwfKTWFOE%dT4qD0N!x@{qczQ2qVH7XEHa!rdqoY0 z{i{s6Oc#6tV5a6aB8)Hdn%1+wb6r!i?CGYf#gy~~+cspcxD71He>D2L@AIFB{qLn9 z@kRFqb?$~?GZ`tT8FBDXoI;PW79toIf#p;JVV2tW@-XNuW0*X2mI-tcbsrxSmnmOU zVoCZQ$x9{f7?0TU5_$KE92e7q#msUC#RCQ_>lxdmN_ia>iXiw9vWe1g?wuexQZIYn zj0|}vU*7atGQLm3L++xW)&moNX?91F`|g3!qLw$*;jG#01y@*l9j5rU_$_N%k@FJP zjh|cz^wW88L0t!o#X65_cm-|%$G={=+m-T~BSR(OVvH9*dAKg-dJq4Q^StBQ>rXQH z(z(t=SjN8ZVhC8vFavf3If#m*2j3XcPQ=y4gH$Gm`D@B}Q;ZgP?RA zio-Z*usDV7t?D2TvYBYC;qni&mB&BKRy+UGZ1wL7U{Uy|)&6+aMAiqFjULtLF#`zs zc?W@`&#=gX9WjB)kMQmMoqqJIa!$dZ7M*9&~0_Q6>( z(n5>cCPwVFlO64&oHE8X?9%xKsG}FwF5S`lX*TvvZ?2q5tmjRgQ2(;`#g$Om=SJ)^ zJABT-5G7s-YjJD=i{!5Wzx2E-gSL}E|Btnz!f}aP_tl!-eqvHm>@XmiZYmV2 zs)ka_w2UKMYsuV+8F$XlwoeNP0%7A6=yZsY{vkB+{mDwVGhO>hD!PkoRU&-0 zR!;YQ!r0}-IdC=d?sV3!mu$Pe|y61vEzZUYqwyL#d|b zC~fdcBS37?&^y3BM|Y8W)_cYZ99t~yzeMf2#Kp6sGlU<$f5V7cL6KR_bMVi}EdcvT za-W)$a7zWXG6JlrNcyBnx&3vKRDIXg^x^vKhzbQDfiwhRdXmB|#vh1ME35pvOVJn* zsz3*KwD1;i{+u%-TK2vRKHVd*Kcb2H(q(MSGPtU@6KNk!X6=qg(ZnIu1ousm)84{` zM(;12aG&?@T1M?p5Kwj(@bXU@TUjCZ1#9an#rbk;{Vu-6C_Rqa@{sf}H;)!8rk8@o z<*|jSXl>cIue6XW9cl!mRHRdPzJpCJ47w$B z^-PL+-`4FmT;mpT)cQHaP`Us8iL(q)1`T9DbfXpL6VifzLpIU`?~(Xp)_9HGavC0PkDsab-~r?c8LkZr)-Lmd+m6N8+VqG zo}YH_Fx&qUv;8{?`y1tQ^@3w8_p*Fk={vXUDuxMpJh6Uq@20F>NVwxhxRxQ0 z#czORnf{X>GSVXPU;Wivpj;C`q##pZ_^KMZsEuGaVHMNHN7WJhrlqCw^$bV5YQnWM z!F3NTpI5|5ws`5{i*%E;%uk24+IF@k84ZP`(UcFlg!=VOOl3pwXN-JyA2Bk$_v_uB5`R8{18X4ZP!|A4V{CS8V|QK zJ?N%}Mg@NYJoK1)Fjo_8k97^A8?BZIAI(-dXO@Litdk9Wfv-POZOUV#deb{4Rwg!C(lUU80Kaiw=Mj^@>m`RL7*O z-f>+bCzr^_UOlLBV2Gj|U+u8xY*RW>m9H7_iZ${kp_P@`tIwFVFDgYUad2=Kj&yJ` zg`p}c@P#C?B9%XwhVEN#pHoJ&GioaQl|K|7@Q5$C27YXL*iKmEaFJDarV#03tO!!} zr9^p!#uqi!w91z1U5M!y^yu9Oq3>X&;@-W$6e$vLl2kdbt=MAi`HPQouy22*jK0tc8#mb z^wZ((yWt;b3DKUhqvs|Q#0wu2N2y>n{wJlVJxfVdx5fGR7_vg)G7TH-BtT^nlW*zS9> z`N4=EC|lngQD&;Kix&*x;rf2!y8XyK2kkpEOOG2%KFW{06gDL>{gG4g6?8%z#tBb8 zK#~LrtA0?Vpy!QW0mVU6T@#5xdl=w8@s*5%!n=k^rY_-|no$!S@HdLfRpUkGnv5KXMO^tWLUHu)T&rN>AT}oV;S~qaoWqpyg8#lzU)$qqBT+a zAHQ<;9x~zF-J|-932Bcp+?>L11(7-V%rMJMVr+E3Pry}fK_*Fpv|4u0m(7sbdqb{` ziI)>3s!R~2T#BX_NMdz~y13X7L*#Lr7M;oFn2mAab=ee;D(wfrt+vMC!dr*8T{9BU?t!Tk@A6L+%c8fH!;rfM-yfxHw#VDQ)+J#( zOSkc#^;jTArd zQ6K@GCC_XO|NWuTg?h*NjV^tGV8SQg^h{n2*06^I(W*T+-2?}N@aDPV8Fk5BA_{TA z%UO%eNZ19sBsaiTop$YM;5fyV>#@}-F{`5AN}rv7JRIA-{BA12^2Ru>sE(d1zDGHZ z;Tq|uVN{>?~^jfzY=LW9}9$&N^!Xv627X{}nstl;mZ<^XZLc;W|b<(2({1bgOF7dGoxidZv_ZijGflYNjG$LT!| zOF7)}{lV;gR&c(Jfz>p9JI*-g9WI_f(->s!_{S# z>OM}7Nt(_P)DR(45pShR(+_x*b0OW_7%X=atvPKsHt%DVJq-O)FlO(r;}(K3mow?s zp5za$RI*5X2xr=Rkm1w@1e03|8IxDJv0KzVxmMtymb09C*bP*gaI;LP6r^`}JvmZK zN<#_1bpazX8sr(N_1k+*+g=^T-FV@fvZwYbZCB{;)c(z_`9In`&*j=Hvor$j2u1VL zOJLvn3EC?~?75b~C@cX}k8U(plNNY>FPMq(i7frzadGN4d5Ap`vt)1(z|0pb$oH0t z!RA#%5sG5JgMHWN>5fDnz0jEa^6&ez*t(3v`USX^V-Kh{2tU2TCs)@nUhEoxoVeL7 zg(Q47zA1ShIO?xES?c|yO-s2ble9y58agB&wjd}Am#VNb zg2m&uCO$n6ydoBxY@la&k;D2Nn+J!xAQD@Mmz(VuQ5@)c|4FYAPeaKS`1LdG*wFsP zgMe`(_k(K~PQ zEJ9(aIL1i{)HRyL0&^oe_dtB&9X@pQq;?#Zno>dxXL>E8gnJqr3ll3b6^yO+`4V4O zQ<=_r^bG_b!)lnxZ4-{hdI+VMDAC~8AN?TrA}8V$%JfviJ`MuwZ-z=GWX&zU=!|EE zwE|5*!X%fenbyb;{t^^0?|IbsY-Gpmb}5hbE(CGS;acd}%MFK|AkTqtbpeHlp5#Mu z$4hZ_4=ukEA)`b1ardkii>9965=ymx(2IWLclM=w%2#|AXN>5YW=!;@GW>mJw3fGf znNQW}_EKy0uG~k&di*S{9~={Ib}hTI^cvFLdx0;s`MyS<-&P)KO~$r*_;GI$-l3l% z#Cf`|0%I~La<3j!FlrUOt1P^9Z-oIeP42pp*hzN?$=So#_j|7pV04)Ec2v)R8&m^_pTXxlWG4kxJjf`urX4rUra)nf3ao-*4 z+!~T@g$WngVjtpmC`?J-{-$nj?=ADn?oS_dUnZg=1;*fUOBs{B)cl^)K!gosqowy* zUMg10cYS-P-j}LK?q`&-D3(1are!qvyBlqQR<78G_2DsjIheoPkDUiTi>xwP+t z_MxZY0cb%+?|g$KQkjlx>vl{CFs0k$n>DnrKx1|v9jIQ z?5?j>KX0)HvhUcgD1JvAmTW5am$xbDDNf&0$!9Hd-w@#G+22WeQD)~OWg1Q6(lOMy z2lGzfAHj)jc^NGz?I(8v9Ih+(_QK z@?xAK@VLh{l(KYJNlX7zIu^A)WcX<&{Ti&~N1pa`%y#s!!)L+NWQT?-6^0%{l#ETq z{KblmyR)TWK3PpY)rRL^q;~%Bd!1fzYt8K3ZSk*%#igveU7{PV_PQPFaJ;gp{U8Z1 z=4DsQG>GXx^>2`Y$ryOrk5*e(&HDPQud6fUr|@eAFbnO-tgsr?DCAc-t~TKZ(VMtKb-%8svo-NE{S9dz-gmG#S{U<4>vwiar5 z-8NhG(#Dz6J~<{f`!-EBPr~3y0 z8u90ioVRq_fumw2@zI$(97&ZqoX2d_OgQo$o~P<@)zHi;Kk0)e1~TFDdtOvzPNISk z?~(3{3pCyn1ev~WmD2lm783Gp_1*EB2s&iw<{1~;Inv0al@Wm6cwreT~KxE?}m%3!- z0RW0l|NB}{A6M2xAJpA)5n2){N+@sbGX~`>46?z#WWj5~w35e`L>yZKqvaHK45Lw% zJq`D0JoDx&gTT*7EY{`vO2V@T(`=S zadhNsG0jrrP3R+j`k*-ql-JUoL$MmG*x33%;x?ZNd+d&Oqp(BT_y7R$e}8`eul8L2 z+o06YxD9`3`{X6xo4?BW2WH6oUob=Kh1Z3m{TjyCplk?fI1iFX*?&V{O|vvkLBx*< z4ZC-806~=Pxs_K~ZGmL_b(RyPZ8AhwDxCTWXiSRB&0say>gRtar=yH|m&9)UnWGuD zSUTKY@-&tqj9FROh41m7GHu|etEr`|4ie3CSMZ9C8ua)LrF$9p-#xcJC(B)#S-`hs z+%=dWhWN$0CszFs5b>wJY<6s}x))_P+175J5thU{huVSl*BG9s=itXCzDpQJ){YsT z%al}aZIGY2#3&`rN}%AzH(3&O)5p&z@FdlbmlXtjVJ>*Ykws7y*y`(cN7t$$pXD(D2iNxQi1(LdbKj1+w6i6SAFY^sh5%|m6Lmrq}+Zn66~g0ysFQ3!F?-efh>d{b5voas#ZylsL?JVNfyPhOSb%l^W8AO*FV4l}_3xq%;h*<{oxZ zC?c1~g>$-WMDcjWju&;v=%yN2W$;^Phq!eIbA7}*849_xb(k#N;T~6Tae<{t<=whg zoPM_DlXB|v_A7e$63nPK{}kC;{M(rk{ElzR&EnD&iorY*$kC60GX>+rz(r$yN^u`t ztEUQaA(S?l@lOCuZKLO{yZ45qzt(1iofZ3-t5WWzvBY62ir1W6Y9+ZmTfFNsF-!XT z#ip^QujE9gspE9Hf?$4~4pyR^I8k-4csvx9mpL(8gr&c4SANA2<09cTYmueo88<3k zYi_#Cmw-PG|6!DKrGvZd1Y)*nMtllZQ^_Ti@Re-LwN-HMm~yHF5xZ@jg|6UHwxxa+ zVPR7@ixXYmYE3W&cb(zuG<^8IC z%_7`un1BD+jewH4)VM@oYS23bFE3j@EF`L$0yKaaILRtK`f44or1be}-^NeC@w361 zEQc2r+4976i+z2cNG^BXg8-&*&7=u<^0HW)ib~B2PRUVNXzLls7a;h@UtRkg?BzE@ z{*Uqk!L}$ekdzd3ZNQK*vLSsB3De@R!r#KmWo+nhGwyyN3wZl9-OT*Vbnre`Qf@0Q zAX-zo5k>HX59;Da1}@fO@Y$k8Pj)Y|MHM&%PeD5*T02Voe>?f7LcyQOQ#!3jo0kZ+ z-l#qA?Cio_30Cc&Lh-zSQeb{s^6frCIT!l87cS5?rvfb@BF(V&(RE3L8XM=CU1L*C zn9-PF`Z<}ej!t8Ct%1V(XS$<*a155=>>Av>eX$t^{!fR3WrwZX&G2X^w4?BEee^qL zZ~U!TRmnNk%A_lkE3Ts@A;@=xyad~vUv5BsJq(kr`EMR_qrMkmT#bPS-kJl2A#VaR zIsFz4MM!t;%k7F0etvrEZKqAd>Q^TX&()|lN0MI@+c8ZeTa$6jb61BYE{~n-AH8 zjs|Le0=CP>NF;YynT5rxLY#1xD(v$HJRpk9n$12CuDnFPicv7^0nJ%`jAw;Y#7hJH zETKzEm`c6)0|hTzqOXlX5nlQkeT-n- z1^W@YenGkpb>-{#2lD?o z2SG-@ix0*smpn4hDQIabUnAGIZLr18A!;=?XsU;xrSInDOa;JLxxz}o#vFR_UHi5D zxBFhXAd;``g+&m40=(eR$A{>l`w#lbu?GumG&Zv-22Yvo`U**xiU|0X2LtOa%}jh$!?*_sp$tkQ1)q}HchXqM&^bmP9##M5 zg2>r&YE|eCp++!td}^sxSp~&;*;V)D{3t>3w#8N$>^Ci?cjwAIYz53iOnw4xCFlN2 z&1%wih@3`i<2^!Erh72Wx~G(y7s=fi#(moi$m(%_G#Iv!i0!3r* zDXzlI03l^Z+4P0zIfu)_Eqj+lU%Hzi8CN^tuK2`Mdng4i(~T+c;{qEqeeO6eSJ&}6 z+4taQwh=Ac<9!#+&#Wi_VFR{;3QT1&s;0Ke*p&59@{eANdM;7)+s&qmWqr~qUHJ2| zH+qj0GG|yKTgj5`=PY{q5S+Ltu%J7u%1G`y_3?5Cxl?(Iu94?@#BbKU@)r8 zt8jh%Ef}W7TA4h>|3`Da4D|8sZ`m+Ix$Wuz89mIcZC zdWnVE-u%%E^TvMD(cNaS-8suc!ZGh>m}Q=PSSiP|+GiEp&aX&8PB^E?&`PHB1GB23 zO%El@3utAhh8{PbvoW0f(3+F;)P_x1KTHVmF2yLevlIr?vSaPSHUtIcad4H7o#J9# z&!E}BFhPegi3{NHl;|kuAFKKAe0?i6gjTG|+uOYLm^}6ka(s}Y8ld{WxSQ`(@w8`| zLE*{YO$#I|Sk~L_A_5b6+rn@zqVvcb79V(VvBtfqw5%DtP)cFUq)kv)ORU^|0oNXn zCdd5lCGQgbd@Ih07hUU#Si;kW%tU3K0~h%OM_VNr%s9Hu_vGL|wIg4}O&Yq4TXx6w z{a8ZHrTfNO;*tR(kPa0WWWbY}Jslyd(b^DAZ>DzzLLR|>`TMo#Dvev0{U7(eS&Cc-$pj1-(etxaVkn*6nYi5bh)G6+`==E*%0+r2Fjf3e$W%&M|%42?tDyMX(4$!17+NImI2w=!`;Rp^NjW2Uu^~62;A`!4yRv7B>s8#*(`U#l0@)Hol9N~DKGWg?Pm;8^d z%T>S5x`Lj&#gk`y@4Hn_q>+5#{5|9a-%O)1^awc_27k_v|rh# zviISCSpI*p^Tf~`AAeNEqCjyAcg}P-=|au&V%a&Fse+1Ni+Lui)}(iIY>RK^mldgW z)xpH9@VU^4!CQ283jG+CV1B}y_!YniGmIasT+dO?XNaB=P=X&b6MZ0!GpPQy+ z0uOmuM{wD9I_g@`>cz|730D&JUbzO$^b>Z48#u!A(XSe-2X^u1_AKCS#hw8(vw$|w z(1c~Lw4Czt4fL0Nk%k&2&O^xT6N*uu`mXsYNZ4iBtr1TCZ&ufD1oJs8l}M<})~V}G zRdo6nv>xGdwZqmb&*BdL%K4|GHrTyp7)2j~)n6Ub{r8|`%}J|0e*Br^!=^SP?mkgngdu+*x8d*_2>L5W=WV-n@W+-W@n`d~6MRv~P@{2| zZKvs;-;f@E<;35A)wuH_DinUMi?>GU^6>ZEYRd8eIrYx)=f83U{;DvLt2ckqHw~A9 z!Q2puI5%8Za5JnXqRqLqZkX)rDxbW8(UC%vge;g%k84k~(4eQJDVC9_dNB&Kh!?j? z?PN8E)Z`?u7u~w$e68=(;9bK$)`kjgrZdi4dBd6cIXm*jnh-WCT6ih*W+Z<-_7jaX za&>trT}iRoy4&MYvyynTG|mRt|FYRm1SyOU;IN^5C~mDcjnS(7;EJoHIX}*On-}|g z#Cc0n=UDdnmp&)1E{qfU{ge%#QX9{fSzvA_|Dey|1ChBJB8jqp04$x}{}-+J|8~}? z7}##>5nJ-#ZDHqb{m9j1}=km`o_6=%w7{1=zF7 z?p0&gmfQ8ViTLd9uHx!1#Z6fjZR^6A0>gJd0o~Uz)O3*K@@=i0GE8ynCRvOlZm|!?q!`9U6lg578IZ@Fqo)3ixF)7hIg5cA57maAvAYvj#mbwk)UD~er0uS8WYDVC*cTr?r&On8LYy@(6R zY0hTyT=Hw@+Yd9_HA*4Oa9s3YO`5$m6X&X)`#seriFe(D`Oa!QH)+mL=uVrN)DSM+;+H_jr!*gS6c{ZoD+v&g3dti%F{$)1izRB? zVw`g0qyWrENy;&Z(UuxyT1E4mAGAenv09W5b;n$~vOJ_yz+xP1Nx+3T?taS1&W3Zr z>@IFM*=vo6hbeFQ4i>n8*w(7o8(_P-Qvvg^;0>i08i?H_jeIly)Z>Gg=UvzyA&bUg zNt>n+5>IYcv-y>-qi5y%^a@U=-roEEDC1+>pMZ5;#3aRi_8OBC`nkaQ-*1VaX=F3nh{eJ4| zbUpnrVCB7=PgLyzJ`R!W>97~Ni5KJ#v*v0^*#*tudpJ&yq;>R3vK5V$ulpzYfY}U3 zFP~8yh%>sVHG}jL08@iLn=!0c4K`7yMhjNm132-A;sst8Yc2=8CB{E+=AH1rFy9{P zr7AyQ5O5Iqqs&q6algWQvj(X$@0m3RyP_KSz2Xud8Oz4p=Tz(D-G@6F($$wA&%dCj ze79f-E%R+#Wcv2Q@5+TdNqN#1mOKb{>$NI*Pb;=d{SaFszq7q5lJA4bnn!&%2+)(R zbZ{J2QMZyk$A6OmYQnX7>wsPH(AiQg@S;lH;!1AgMsO7Yqk)j@f7LPmvRUvy|3aT~ zFH2T+x&<;t-%-?b@Bt5=K7gn5U<3SYR)C7Lf%vO9Ua5v%AG6;U842`g%^Qy}8+YCi4k&8Bx!bL=Ue_d@C&_4x@{kbO>NL>%%tWo(4$^|KJ)JYRS_O%&vy)^3<@6sVzC^e2CY z->Brd=uc^$yHai4>)OVwEoqlL2ZXIcRmE&Y*as%7-;u{x*cqxkc?SdrIaJ^zCdN zHRP!;Y8Xdy^0ALjZa*yHZG#`&2qJ-2s%R_{`q|x-E$dchW2hf<0DQWrQmAYUfOOVke{fgCf zth2xXrdeD37b}Z)i}(zy4i+|5Irn*;OM|LjGHn{lxhuH9M~63FFrx?Cn#aN%+mH;d zBHEx*%T|;nP{#mim{_JsZ;*3ms5Zj1gS4PV9MFC%Hh#9`*7pD@;G4g$eP4&Cv#G<) zXw6Ifd)a9vNhDBSbMTTo=sNf%M)E6lB}`>Zhw0QcHWk?5VTd}zhSF(WVpZj^=?=_m z2G<|szYE(%#2rB~!${}o_jQ@V^I|mmT<;GD4G&;8RCU{{t-@Hj7Nd^~a#v2{v%!d60EFYx|$|$&jAvLB4NtNoP z$DZ6~)Ywxg@(^C0UDgzN3LmR`R-I~!!w1%_AX~sm%V&STAl0)^9Ldc>n?4+i*&kjd zNO11;8L^FOVv1H0D6Qny(1BPy`5g>$YadjJpUIgp24@7eUH8fVX!PV}J=Ad68)~(X zFzqybY|>qp&DC%+wK-*uug|tKROKoCov8-9&BTqP4$4sLQhn3GcdjGI#(eDi=&0Q= zvR%-u_ONZkkH(2X_3qS^*l5hLi)r58(;%Z0nEJh>jGK2Ce+>4DYefac+<;QR%`g>6 zEx!sVKk3M{XrsG`823TZ4*9C3MRBqDno$(z=)FTfs;G0OJoT&4-VBOwNyyFzwuM|k z?dSmIznn{M_GZdqyQE=iEWFz2KuXp-VhgYQ`cbgI%0awa@?>6vv}50N+7-ww`iG29 zDb)T~TV>OsiVfJ{wE^J93nq9Bjw}8Ev_3Z&r6jwnT46b%gGlomr6o$a>;&*m+3Jg2 zmV!p=&gn?|m4H<&*ip$ww!QpS&q|b@r4+-@ay3)cr;Oe4g}$rzO<#SE6$~MUdt8@ZkwkK z(iTQM$(>1qee9|kmf@o1R2~ceK46DMdZf66O$Npa%d-T56pIJsB1P$AM0Qw~OR^#{ zBG7G}H$#k3N2LgmFv*+iR#7-e|DffDWSGGL!ZjB^9!UzL+9&Bdx+z?&K-y)fNGZ{g z{ZC-vVbTJOU6!sTh_}UDxzpC(KCmU2nNO%i#cX#=>BXm%TX9!k9+)XZ*asl>ANk@a z!Zr)-a4M*vY(ysfoh0&ddySlI*@A-9C#B?<$4+FF5aK;dD6zK3ikCU~v7?@YOf2xY zak6bDgAcrhW2`IVYh1g8Ir)hm8tTPb5Az*?En#gDNia9DFC?E#ta~yJ)DzIo>L>^N z3mGX_d;LKEj}bdh7T=P3o-XE-M(xlNxLQ`&D{c}YYp7+aRGO>%c!FLny{#?~UNzor zr2T5y0ngEI;fge!^)IobWLPdS>S2f=JrTmip?Y7sd%suVqGXL5zZEyO-zjPW%EO^j z)C&jCl$*aT{4`mZE;DnzDr9WM*Q^U64a+^@|hz-*h->ENbbvj4KV9@ng5wx zCSYWc+@BS=yNzSFh7{Z&7s3{x9_|}achdV?dx4ivVRR;l6rBN|AKOrvxR{S=b$^Tu1QU@I~y~yLL`8&yf}-iLHiPJ&S2}NoVJo z3({g*T}S25U)?B>}v ztE(!G`8sJKjp~1#a;Ks%6$Zg8j_nwMsc39!&48WA5{HH%b?&a z9O^ncCKnJW2_w5|#BqDuOoN&zsNF6AMP~^*sJ{|>)59Z?>m>Y0m{7ljzIw zfvMxQvIk1l7Ga+e$;@goMDz%PX+y?2!jHE~^x6ateuCLX2mj&Q)c4q~a0;F#HsA5$ z>~m=ta(O>|yz$Vu^XbBI$4vb)@Xa$X$m|-2d^b&E3;Z?q`vkR3hHCB2_oXUKG-klL zUx5S<+v6}+CjAWRXSM7ZDK}l%o8-liN~W!zjF!r8j z)wglgThW5g)Q#%-Gw;aM_GCg!ipqxjBskr`s#^tmRhkP9Nj-ub{I!i(H}iIIfE|fK z_>)url5g31L(HbngqQzl6N>^wbJwwVg7+Ki#%jP(`f2DQh z@CaJAlSKJYfR*afn)~O`!S{``#Tw1CLIg~-*q=BO$z?W*Qv#Negrb5U@rw(#=e=Q877@*ulk*$ zA{ENTdgKPWB1{nP54ACpprC^+7m1>Jl-IUYMUfj;%!Sj6dmC(Cl)7o@%I@N*PvdDW zv(oH51^st&MB@6p;44?@76Zz*KW*E6`g>*#i>|4>J4PoPeD$y645ap&Tf zD>YLKuXLxEsM@YMfX@L<2Z2E1kAIqNDa1WN=QfT?y-yMM2$L+#Bj=`3n^g^==Kr4OE#rq4QDQyO$ha4e0%71@z zP+%TuRC?U_tJaa(TPya1{`Xq?CcM#6Cmp0y5=gO9^pAp~XdiDn@q;3|M!9#vxIrnQ zwwo^)?M%~UVt~kwe~x38>EYm!fi^f)FCXr3ItSh=x0F3EzLdyE;5b-)xcWT6Z54M} zzo+f6VDw9@T(;WIHvy~;+?Qc(+g;bP(0FA+?dNM z0P>A+*Me~|Imjwgp~B$H=Xi?%sXvR}a+wvx5EQa%aXAI(K$`pdlKiq3qXk?lB5U#6 z{JpDAHVZx1A(EMR7*Y@f;*&e-EI+F%|>dBT$TFvKlWxK8Fv%9fQ5|&Lt_^;v+?nF z@3BMIYlN{0dsT8tkEJuzJ&W4CH1Jfb-N?)&@7JGb&MB0^?Nxp1Sko1^~Zw8YNS zO8iCStrkDsMX=+{%}FMyrG)6mq`drC0@n_Y%}FFI&-eRl`U-d`AQrEa!PJ@SPLMv>`Lc=ye_gE&kFX`hBxwP~R9XjyP~i45wVzQjW^23|GIfgMx%sMb-aTS? zFpTZ*&8r&;3Om3%SW3<=M?^*~U`JJ3-wgUh+_vhWj)~a>PtM+QJxte(w9*`7XJ9bF za^}OcMYrHj>VHuloS0U_cE2nWsni{&3$>>jlP!ed%S-6P@L29Pf!a+gE-e}ds>W`3 z`q*GpfzZosad6e*rETo>^5m`%q-NqnSLOCbvwi}J#!GR7S#bp_tVYv6Rs@&6R}Rkn zsXNLe_v6>JdqN?$Xs8IKra*0{%vH~Z@;4)9DVc-pfj=0vOY#!V&A5HGJ%^`ju za2tW4#`Ghx(L>5fU+4&M{Bn73{FYO)fEWXFM^{V0`j0qf?o-ELX+KfQ)U*Dy=OX55 z5-C-BzfkZmFE>QWNlXPWo#8 z?*l_cl$*3#`$0vL?;tFL^o*1Bq{H&7f|<4WG@ek8NBVDmWDG!`Sowq(T(y`_>?z14 z0y4IujlltOj(t9UT)fhA6&;7>I+h9+SFrnX@W=h_sj7{5sWtB4{Hpu~V{Lxrf_rF? zb45Tyi(gg)^QrPE7hcfO-OVqbhP0HCx=Se9z$jWv+E}1!{WVcAbq6RS1V})QfAnO$ zf^>#gyor^0u=s4&`8yBV_V_&)M`fou9v&d|X88a-xrWq)E>_zZ78Vj*TdF_(JyuaI z(jBa5dTe;VoAGd>*b}MiRUyONZJA$j&loO_iNqa(!(Vc*(bv0{5>n6dXF zh$%Pq)h%Y8YA{Del@fOh0YR+152s>lP1_dCj&3Dd`k{GvIbDb0G9S{Eh6}e`D(7HC z$7z88t)KL59SU$0_)h5&&c8+}%t`F_m8G*RgbZmdKo$FK!$|^P*&mHV z9mc3!qK-Mr-j#QcDl->10@LqoO^Hbw6#1JNbXrsNNNN2+lPktSus-(k-*a&X<`X78uRX!~*UG*d6&~-&s3EyiMKb^NOZh<<5f|~I zww0D$TDZ$qCc>qs{xlBewYc{y(-J~-Jy4c2ls zKYOs--1DAByQPl3seq8pH*_q1Q|g&u2d?W2j7LD2&p-H8y&69h3Pi`eAA1|^7`{nN z@9|Go31d<7&_q+*EMq<=(k$Br9%_R*%;}(IhqF!lTzgglxoQ zI!6-FlcnFLjQyt(XF15-8Ha}K-NrcumF|-Z)#(ct^IVEn>-S6YC!@ePEk)nEsjdAx zY5{PB70^_?)tUK^Z>+RmoeSE4C2ja(z3F`AFjE~5S}GXU8E4x6zvtgq`Pdsf8SB+C z+ZQXYn{S%p-8`A^z7FOl2Z8I?OSR+>)87cSV3RQpMtkR6`2lZ(#rE~=`@>g{t>B1C zYRTE+9@b?#!M@t+X-Oa!Ed{8_Cm<3o|2>}j-~EXn5`LX;Ac{EVlZVa6QA9th%2o&C z+V+sO6rd&ufx{0BHUM)OX(y7?^%48dY!{Ba!IT9ln>R?kS*(yz}*_7JRB8iqKSf zB)XGP(5Y;4<>o_Ko7)bXLbw_4D7{$7lgX+zjN+PKd%IR`2#k$U0D0i2(u#F#t|UMLWHt zKDKP0`PL_6%Hxa{v-GApsGzzBQp(vDdu&-mI!L4j$F|r^ID?*NKS8S(hP`m|F)fT~ zvJ8>wyk~Y+w5u)g&jqJ5peJLw+YG&i2j8wzBBC3%03-sifCZ+Jn(AM;Cgk|^Q+TAD z48;l(`+FyZl79+$jcJ1|()D=;$J`3gXP;!fZclpg1bLK=-ghX}4-{*lV&eVb0m8UU zE)-FEv{q~`jFic<8RS3710_w_(Tv9=_Iym9TCB|F@6`BA*g!5>|*;@kJsTdOkE+~b3g zqy;47IddwXW?fXjumJ`mHvU4%ID_&TO1{A#Xd`xUdgaRI2{dy>(|yAUWZpJ9tMmRw zP{qYkba7Sgr+vlYQS!!!lBYZhoVWY9nJ6xdt_ZH{Sf1YG>0BYSZm>q3o2QOhT$z}S zWgjb5V${+f>ZQl`q65X7k~rjYG`-3ed=C+S|NPd7P{WryhJzcI5HUaMNDex+Ypvz= zUA*z0_q6-m{so21tYuly&k$TVoW-&~; zYGHnp!OQVpF>In!9E#*GX_oM?3NLrdE6OM5p@=$*yPKh7f~*srIn{^~U*OZSKrV4c zwp7tT2D?LAKnV?TimgZux2Z8UZ9&Ryy=`j;lG7MP0nzJA4Izkt>+HqFIn^dc-Zh9P z`ub3w{H)+yEp2uWDBufz4lax)0ZQjvB(oSsC^i2#dY^Mn<8-`Ej<>>&O}5a27g&mI^k;mK+`!=enV; zS!@r%yw+-an*|iK+~^w|=FxS48u(VS^nB~sO}2jM#p?5uWlVU{7wTYe5vn}2kny&Q z>*R9d7|hY&FKRMd{cJH{0CUf2V&s zryabKeK)eA>e}0TPMZ7u<^`pg@z$Jtvw5>z`{|)603o5ZDayj)A)fRzM?|1+uk~8x zx7yntZj`uPmDF;BWdx}gL_w7smp~EY`Ozdg#|*x`JYre`-C*!fX6`%&ecv8^--ILhyO?qP&-{ll))vL$j$=9BO zc|KjT>mgZ1P|Edea%k&$+NqH{T;%0@$YZ`M`unKdrA~b_BhQxP@z6XWL?SJz>TYU+ z)3N!IfYe&jM@CksY4K#Titt3SvH7L~%jqz!SQEEo986H2-W=c5EQ!%jSlSX@w~u*{ z+#CFtRb5oeuKJvs=B39__Ekr3v&qO(nPt$L*Pu9Nx2c@xFQTezF;aYBT@i?n@xBTq2ce*Oo5f7 zJ)38_$|}ie9~pmDdi1WvmGfz`Z$WBiJmcdX9O((cCLr@bWq(gnT_O$jQgFI%f&%Fu zH#8{0iWRTZdXo2S$B;J)wv~wlb7KEn*L*6j-B9SCO$^B$IJv4SXHjtywf@4nFN3E-yEppH1+B9!; z=UkZARB{%?D=##yz9r}az*7nE%17pZT0cscuU)|X)CY@w#9p2$*+?ec89_clwo4#b ztF1x9-JPr)&zGYw*VR~h9AK`-<_*)cFc_RDzzZ`Lx5wNWC)93*;#o@oAS}Y_R#Dm; zMgq0!QmsC^YI6IMbTSuRS-8w%{3mPYWOA^88!(AL2^`?{ni!?P4CxS?dxb1>gMg_VBk@KR-i z%*N!b>Gu2*463b2a8VOJ-QVMeLK0P=3pf4V9$5t1)fsk34ZHg}XiH%M$nS-6uu79z zCXn8LU9EKUo~>%{7tZeB7p2$erlqWa7{)z*JGWR{95v8T;)ei+K>*vJ5Ru{0iJ(%1 ziD9NrQ_Mh1Qsn*(q#SIr{Ak6uuQiCs@lk}iX$NP0`YI%m5mE?E;eW#o~Ma;;y~ zZ1LQ!qXeci8fb{88mY%J57d#fgbe#sQ{s$mg^4$gLWKhqKS~@rJZYLP6^9m2sl>qD zA&l7yFmX=!Idv;b}+aaPA=0XhkOP{j|#Kdv&A}JgiFO@)@ zMJsePI=f#-EV)g`G!KFk(s~DxZ9`ss(~5mkwUP(sUuv8PWAWY_fpYaiA&AMm8hzR6VP{fCK;iOP_y6I@clYc`RJ3zVL;~5l5`CKnwZz(iroG}u9IwJy;v@3odP z#dncv|4s>fHO?bm70@hy=M~t-V#(usxyO&H+43e~jF6jMY~m}un%@A)Yb zb%gEIutvQj0xw4K#Jcy=&fKbBlkVHs%&f_obV>-AnR{ER z2g*w2Tc|39x;(ZFcz+K>Z?-H_G=is>m+z9Vb5ItGU5&1w#ITZ3fb6g)bILr;5uMYI znFlIuQ;4bQ=_xpbh2?Fq#erkJrP-69a{F|4>A);^a@A)E3Bxtql^M}J(>(g8n&XR$ zp4@qDO6S?0+7vSj>w6s83lBgA`lzarg2%KDEC86nAmRq*E61`qX7$JsmZPK}(4%rv zzvW*wOeCaNKq^Kaal3)Hbz_rkHEBICaQ#h168Cz0Kh1op9PqBeNPJUhxU zK%93q<+HJ>l)v}pwswP^Jy;Xb-wSjoInLY3y?USHWcjga$kutv>kf5ETks<};l@C_ zDtrg*k9_FrfK>!Z71m(`fh!O3hgxGdkJZ8^v$E!8!EduCy6(RS0pjAfw~Q`$gcj%` zVz^r+(#QRzMy#g5UWR#r9a6d{B~gCs70M%VHenwtYYlI})Cc8U*v zw5g9rEPGu?GUt&!V~C1)`Zk(T2erB=xtWJY7!($VKi(>@E77W5B}GS*n-MEdq5CB#L#@N3Mk?7^6NoRm7)*Tl?4ald zXhbkj8K0us)}=d-(w1Nk8b=X z6RR|uDdm?@7#%ZZQn7ebOr*0m(mQ!Lbtg<8b~VJmdC0Rk)_TsFS=MxlBC&1SKXX%X zdM5EGrRGKY@H)gZYwBqsp*9|mnK}T7i=@JN>j5JB97tJ+s=_j;kOP+CnBy6#Rg*VX z8y*)qbJASEqi7^Xbkoa!0u`{R>!}p5VF9Jwe!|j)t`L%Lr7~JHH2`{BtKoz8ZBq1| zQ2sIWyjsF19PpWVM8t=#Wbb#}E27Nz*J-z$Ds46tHh#ABQ^6fOo}ga4N!GAkg+Dvq zeFpzfYcjc7;O3}l)sn0{pIB-~Ngo$bgMIACucF+S*|+G`H?50q zLrp85@Fv8M`-`W^>kI|yfwwe|g@+VUUr@;&?yVh=g>*SE7`oKq zE$|w+R{y|~F;Rc;$5yqwm5r`I^V4oc9Y!=U#J@m8BC+M)bB^|Yd)9pS3xm4_8O_v9 z0Wt==Zxs7uL}|~i&!;++w)qGdGjc2FW#N>jL7e)`=VU6E0^-T2j761=`7Ms{&_|H_zNvu47rzaMhQ zt2_}8=C3f{)lZP|G(ZgN3lnGEEKYf)eaU~4qIA9|`Kag%3Zv`lx~mUX6xf#B zZ1HqjtbWvtoJc3;A6J`^TpNlk*zm_r`^Af>3yUDwT7kw=I9E_XP>=b_#OCoumd=yL zZmY(?)Iulm7MMaPIj?TU6X=S4{Af?en3P1o(IR_3TGLUhQvsSV=(4iB!o!@hcE`f5 zholwLA?-=ghT%LoR&y{Mschb2V_U3sd@fimH!z{IhZrc{!+lcJCV!|~xKX)P{2>wh zl8RRyxqSDp5W(tDixo15u`w_G){@}mv(d;C8vx85bA6+)9D!tbz2#qs60GfdDI?KW z*>@oc1b^DFfy$Fl@XXkg*3y9ZhA*zstaw+F5`pTiyT+OHzvqrxuFIbLZ5yXE8$Zw` zXxat_E_?o3M1NAL>(%nK`n)>O0&T!e{yA|j7QM2s8RYjm<6nnW+i zSTOBY)qWZ1^0MbGdLhqKs`0Z^jXpQovNEiDP+iCuoEi#EIn%#l%9U*G1;v>5{6H3HcGD?#TyL z8dWsZYwARigPmwVFdZMXiB3j|D!l77I4K}llG-a3i&pG(NiK&r7cH*=u8<#$;Rc@4 z>l=yzgOKm9bur3vf$A;(zJvV>Qyx)7El&l?NHAGfa8uk&9tSC1vO5+n9MiV%W}}8H zh$LK_aVrf_!jVMjR63`uiz^YG>y7Tc(chQInAcjXk15FeTWvVRxy@#MTKfBOysWhh<=Ti?zaK^@CR%X2w_>WAT4JK4N9l8(pHex62zlK> zN@XPmm`%Gh>|PuWVL!P<0tskg3b*wBvDVKPZ|ixFx;*f7R^oHbBOWFh!O@r)7ZSn7 z{VTZ^wwFkPrmIh%d?19`b54?eu-1n;61ZvVyhb%v!{ zP$=1*OE`o|eVKn5Y{fQjC*W0X*)Fp}C&l)Y5r0qq_VsZnuXFLllle>cx>?eRyPNXi z)V^q35)n|zo@|=~v z<>fS3Z17TUJmLg!1~-1Yo#nZc=-%``#r4NYDt0bb${**4xMfRnLdbF*^gAVPe_1em zqt(CwFfZ1Zm2BjYv+rt@pL9P)`)+4WgoRY!1Tp30NZ8Y=fR&7vSs8$aEqH}zAhkR*7#K?@~ z?Ro#DDD;V-Czu0ZaO9wLoE$Y1rrc6Ar|oFwbm@FeWT7RmSgd#3!{)u`rI%)wy^x`= zlo`MdaY8~ipDu;|fVR`?lHa^L=vA9?jl|Kh3y&GsbnukLX+(SU1q5AW+(0OKG z7%VC6SNFS?L3p!m>pso`~7?STDM+OObZb;+y#<=#FY@#X4sLq}Zs zq^ZnTm8H3H*}s0=n`5z2tXQ7KuOwg~sXMXV0INlZE~!9)_!Vh|D8}m~4KnO9y|E^l z#k7f*iThgH-wA&CCL!N#@a+|6oKQ#*-@Rj0CCS0sWOh9m>ysy9y0GB>W74NCr(B=c z@1fGti=B4CblCy}sJ}$wl&atedX-|bAS^&9_px&mPO>24zH zLzE^{-^-0|Asx8t){s1>Z}Z5E$Ekpnmqu-s_kNKmsL9(_CS0$O4**Iv{b?K2q1gM8go1Ga**Tha;Baod+@SW_}fyCF; zA7s1P@!HE$=aS6f0tXd2CLNtXrGJ$DX7F7>ulhr#fs zjkqK2i<_h4`PvPn#B91K=a!u9i!zfuF$6_)Ywji|gQ znG?RHYIO3t=W=H56D5VwG0-tp{V$A!ObmJR4jVUkd$3U(Snz)g721_FQPk2YvG!OG zjK=n(0ysz)JLZG;ueMpQ+06Sd9Nae&>?=gd9-0I8xB}_2|1nDcKjxSJ-=@zc&m97@ zdwsH5{_0k7#SLv)(Va}h)7Vq!6NYb?nF}TT?*Rm}WsJ{@SVRzlFZ;GFuAMsPEy(Y? zHfJr&?$DEp=9l&Zlg2xN%y_}To#6EF1SeM@C$3f6>*&=u`0cmdkU4>>f%Vu{n2 zz}Dl~_|@#i`%%N~H$T8|d6v*bN@4NjbXxQfT+?oi=ue>&59l}b|GPl*&gbA#)aTK5 z7gfm&V4J3LRa9&i`$r7+2EJ&{&ux<{?2+}au6Rep7itiCML0A!akVKMA>jmBmrlF; zVOiR=gg?q%S~F3Ipyr%O{&{Vd2nyd>JBm@UtsL{{(n?`ZSlwpCYfT>paT<=K?e7uR z`U~=xrFR4b1OPtl?8n~yK`N)5rZrh>`B=`={*^O4!e5)yGO771NvwzcTYSn6>b$M% z0~+U5VlgIP2umTB*RL~KfEjW4)-O6olKPQKVsBAPnlL<$iPSbjXOaZ`Nf1%Pm~k|* zlxp**Z{}SJw==}9fD3)X1RM2Y^3fQ&U1SxEZ^2BntetIERsW?I+vv7h7HP~z?{rKc z4Ff>>ypwmd-PVUX3DGWN-WCh-6hq$`%R?0{xAyc1IxUp28Z#-sCQr4H+QocbGgN9G z+IOQDahNCu68XO-s>w!p_{+_>SiLEaf`6TqiDE6$pXSc7Uv**{R}6d^VlwuQ=QT$# zZq2#tzXYxJ?p2S)^XF}}f|;N3mh#>Io*P7k1S=Kb91U99Z*R_5F@sT=Pqi-+my_2T zH>nn6-uOhWYI;*xR^RXT5D3)x`5g@?3BsKX)f2Nr%az_#>q24J{-szlI`UXD_yjP&GK{{8dy~p?{S* z*c50=sob(V`vSY?8)0t6?Wq30~Ybf$^(Yhw*Mdr zL?lIAbs>@an+@?#7Be_+oV{x?e$x!2Qi>P?T(@5~MAOB`V~^UE`A_X5gJVZFKKKDb z!QkThzBE%@=6=#c1SV@q-nha#iUxF41w_3MgKz3rB17lymrcErEBA*df^==n*BZ1I z8G7j@lms}r*5p&s0M1}|<#?zkY;NIlcbKEla6LU? z)oGYim;`2JnkbG1@wJ}vUG0i&dtS%h`zuaAhLWNyWM#QZuV#=>g<(KRsfD1;rD@qd z6>D}#RDdnbMxQJgc2>E!rE2LaC)>FJaBZmSKwsSY%G$D<(g5ww!WyhOO z{>-5oFXiu83RYV|VQMy>N67rguvYa;VvsRddZB8;tNtl$N)qvoIe^d_v(4hl8586H ztlErP1L z-TG~h$sBw-&}Ct!^4H5t5;&bhLGv~sX#+G7!)93Jlpj}5hQpWx1Jx0v{QDMDiOWN0 zRNT_Y{QzMsz4V&H1}}KjNOj5rAOAH_J8^+my7NhHS%(11dY1OinCCCp^0W z4p@?+i1+_Jr_Z%pU+Eoz(C|5`KO%XgZcH#zSv=oyMQNoSn)7>$j_>k6nhkBxCh+hem$>f=irz4iZ!xC z#FSf`PP@ry{Z%uyDp-?qS26&$6l#%EBhY{_zJ6#H%4Y}m`c3ILWd%6EWTR8(U>r`g zzk&VuXMJElE+>2cKl^c@Ug`$RL!dt1@L|oq01AIQXl$knFak)0wqAkSIj~<0SS8ne zhzNfP=}WEh1rDZ+8*fUmIW`8nvFl-dV~}20Xp-TYQTs6!3`5vWdIeE*@rbYVqLr&| zS#A?=qKvI4-4T3#5@ny6f)Fis*N%+@4_lwNkg3 z?|-&io?rU01nRQ(45;t<3O1E}VH=v|?eA8-g5a>e-KOZ~_R&}Q?nR3Uo`$zFT-u^# zh3?O>&3^38Z(Em8$#FRpP&TY5$;-fdoJ{4vcN_pa-Iv7ngoaauYM*`!n{{B{50G|e zKa3L4=9wfD{W>yuCYh{kRe8|yJmZPSbM0VbV=u&2Om=?WS-W`?mN}&y-E3dTaGJT$ ze$Bu=Crb2CW(JfoJHGBV#skbE0D17Ik&3_mM=9=~^``xX?B)b?LFM+jdpDKj3eG!Z z@mNCQHUW4ja?qqAj(Kxarl>U>zic?xRW|B2+BGx^Y++ES3!2{Dq|oLV;~<&|sEV|t zd$mAMSI**;LL+Yrk%^Lg6oeV|%P=OjhG zLUhw^kwjhZij)|QzMgcp?HV$cd)*2__#zD3cVoyyyAEUC@XV~L{pP#zX3#f&0$1HN zg44Aih^9Jy6}mi1`V#2)p{RFNVPO$Ts;~ew$j!$0p`0h3&(oFM&?(c!)(V_#k$+zj zTmJw4s79U~kD1J1?6Wx*@E7ER+EpTmlOt71;@}lOMLZ90HjTTXfdhf;_?@tfnGR~!~F$(=~T$xks8@{eIeq{jj z)<)=h5a$n=f!q_(GHdsV+ex>-x|&_^a^wrsDu{J07iZrvx z-jRtF^}-F-)h)2a90DJ|*?E~uv5HhOgBI0)7t0#Ng6y3FYY#W%CA1orf|BokWPas>a zZy2_T%>T=0{Y5bzruZP8FbN>zRz@AqI(iqw<+YP-+ueBg`-_SW+kaP#{aJKC6!6yk zn(W)>6vpU|K-U45JY~t-E?bJ0+{H6qfl6ncXJ3Ax&sbv{a;5Fm9cvgGicIdbf6oD9TJel9&e)IkN zp5zhe;&C&fgs@`LvV`Z#D>jUtSQq8kAmJXNhxzSy$quwZDs4&>VtV~bW*zJ^cpCxt zh4Bxvtr#Umo%>C!_0#|J5Z_JeQnU~la+ItE>x_3zuC=e@kuhwCE=~27su}QW)$7hF z@ot1A!!G=jjOp>lIg`TdOg7EaH$Drg)GlxWXq&}8NKqFRNKEX=P|S0b8^<)A#O|Hu zZgjqh$gg(~eY5;$rVy^v#{WYm>+|w8GofYXzvlo|(<1!$VSK2|=F{%@vBfRpSMvdZ z60QD?$;1)Y$;sRZLJnHgcT;9+n09Y(mJEZ7bZ@p+^PW#q+T}GHkF|OGgW0>HPeNzx z$q(rCz-sGYe`!22#@B{qUFR7ird1) z8(d|B*0wb;6vUa5@3)$Mt=m0peMcFC>2$Cff}(<~{2>YED_eALRfq@nTWs=t+k!>va`KpEDR67VDu zyn<9QDhE7x^BL>NNP6ho&!57>K1|%SR!G3SlJ)IHJIz@LbARo8Vk`jR8^H4}mB%NB ziwoOloiYRCeN}*d046*mDHGFoXypA`I*68;-cKmVMhl2W72T`j@hyESn;!$ooLrJg%vQ12j6uF^uedBoTX9&Lj!~ z@Cdwn$PY~>>T&;^#Fdx3x4Wcx+fz-L(UQ3B0LivQJnPy|odn2~Z(s%i6!^YN{b|o@ z?|WLd(Q--mm$GIY3A23H+uC6&`5r0@+7iC7j#HajGJ>~V9Iu#Y><`hr?gG&kP$pqw zTRBvm_X@*Og43cac%1GRZc94g{cL%cC5)s{1T?o8tJIbi#E zIcb;2{>0TLYm8rOA}^pPvGLH>ZGv|zElw+#m}XfxvIQ=gPJsK?a#++;rl9=i?4#hm z*bU{14T}f&JVu>c<*Rx|Z5~B`PsVH+v}kHNtC!5!^vMYYQKMZh^@WDc-}p-N9}O7{ z$-ZHS$>ia~?Zrpw&P=%9CKmfi`xMTH6!5it*AGrlQbuJ|y`efqT&T3;c0gAtB0j~+ zbMFBO!UUC1xdIdzgXAaAs#;Cw6~hx zIY0m|VHxaWB5JsDYRf@Gf~KD(lgYvL(b(wS-OHUUl2+;irkFJIgJyLWG71Q?h^Jd< z7B*#qZKm^T7EIR-Nr#U-&qh*i6@-!bVwl#;k~8B!RHX$=@(H|zcEw?>7-O@T30=Ws zbcd^*AM8M4>vZAlex%@x{ek46qhg{7*QaX$b0HQ3?p$Y)E$7s-L(wQ3L`exu(Qy#$ z@V2usgS7tU88bvGMNL(>#jT5DRqn;3Z>90Db8wqGui}iq;7b}uN~$kGL?-z}+Wo~ubTl>urro&7SFIBK zpIi-0CfM3L)1%adS0xrHyvuQTt@WC(>u2YJEO=s5Iqq@O8W52SE4{O7p=xW%d?-f9Q2R4Q@z=7eGla7TAj&}aG|f;l$H@^Lo4&#P(M7@)6~B`5(6_2@#<)Mz4^NL-mvaC5rR zmXUXO-S&+CN}|Pcvr=W_sy5LU*2jwvL-996t2*YVbdA@s(D{SgPC7lI#ZQGb7sAF_ zSy^SdJ=q4rGoF@cU1f@HMJf?oeW9+pmBlI7|?eNq--{33R*ve(pDX828Qyq{l)0+jWw7BzGt8Q^3<|;O*NOZ8!FnThopm_JU`uwFGioR zK}F>1603TDKDgvycQMA8R*m77kI3LH`*cWhTMz!I5lsB^TKhuAzvq%2`H#q32VV)^ zP8t$RCl$a=vd1Q}>NN|jbHXW~x*m{{I7m|@eJd%(PlEjxN-`(?HwAJc<(`%=7|u7h z!|&8N)N43K6;V;PdgE(QdoXkn)O+-Oc5<=6PT+t^o-`SKk$yt0GFN`EX!>1pIM0%! z8YBc?@%Pm}zh}J}%k4TjZM~wp<7fqvQsJBZ11%JK@)_lqXIC2lcTRT<5ou_d>DN%m zB$9Vp7XeyGT-hbFr$gdv5^zL{+beTAtr6{S@P<6;E3AqgtQAC6SxOnH3Y)#Ederqx z|Fx$hq>YfjSy)ssyoz=p2%na#gHJy=dx82K-)Psa1s&+PtKT?IEI+n@{(#CH;zP1b z155mIiduaDVO=J)WE$Tz&IAuiNV7kGE9sqiHX~>Q^)3I({IXaFN9vyE&4`qJu@d*c z)~V8+zdkz%oJ$XM@MsEYncOtM$l^(wi;ce>r>g+|~ zvLKO?WIe)j=E~$=tYG8__@q_J0NArFG&11|laIuU>|3iC84B$h12nveE_*q69EiDG z;SM~^MF&Ak&UtShh9dcC%o)HfL;(CGzDH)B==!q8T;)~dYW z@aDWV?-vD9+Oyo2!>I{O8!1NOfhJXfOZrJ?+ntb?rx7H2-y?Sqe}gQZuv4Z3dCjPQ&pj9%(0yd|#8@XjCYsEX$-CvZ z4-Yb=gItL`M*!RDwnY>C?Qyi-<@=2ftLz&}w((E`^(tNbp@~@zfy)a#@aX()hY|W% zGBT3naTv?Lzzxn5#PDc8ePv8Mz;)hnpvpOjF)n(ISxN)xk!J4C_kbz+oRf#Z6 zjA(hna|8>OlA0d0_`k?|@1Q34w%?bvEX#tp5F%Y4snSK7RF^_PN#ACHbG#!6Wc>^g%U(U~rw}p^Gh{FVd;Po-C z-uNGm{)hgDK5T#L&`atc9Ga((e%`5#!mA(hcJv!J^%&oF_jZ`_sHpCml~14JHHGTz zS5Qd$^Mn%E?;YMISKj|?Vus0EAqKN>sWrTzIIAIQ=$^Yy={ez;@cq9(*Z#jeE25_G zg+Ext8sR%CO*Mr15cFpgkMk&&AN&0MkSSHgZF!k1m6DP)THKD+rS;MWFmC5P_`KXm zTxz1M@V?jw#q zdZosz7_$Y-f}$ULa^+N8`)OpyP3fZ97N<;rc#IX9wN5oyXD|b&R2eET3zhp;I~FK( zi2YSFL}AJxz;xcdA9LW>YI;&9C6&R!XFK*^?+2F`t~;bnou8y81cQ8`1`cV4x#x&u zPWuoDo07t@!VQ=TUjmb`cTLoNpYqHYgEPBZU(to7B*G_DArp!wV0M;rGGRU4N#Fh2 z9lU~9h%8EJ7ANCW7}78m@%O8WPH8`!=S=eO8!y^wK6nonP(&*Hgka5_X+klHAp1In zxICFpr`?;$UqaR0lQCWIN@^ghlnjB1IJt=cRc_rD_5>#?5CWGfYaI(}f4#-a5>`hP zvKO4~>H*rE1{5tqBgMZI;J;4z_XF?jsbXKMLHJ@0&DV61u*2%M@cKlcye7xrT zF_Ky?IKr?XmA<^yoXNi;b8_j!9}$UGKk{0Rasq*7{)J0k_~7862ZjC-vdty*6lD#8 zop1S-=2v^}i}#y=BDgo&`^;4;pi%ACDQ8ZmpJS-869bYg7ix>HBfKzu!%nap=u&Nv z0tHj}K>Lma)dU7WeP)>g0dPYsAE(aWvd#wi)sVR0&N>PkQzb9G`D|n)Gin+}l&S-x zlQF?7vKL+M?^LBv9m=Vr$(3K;zq@s2R)F5RZTNU%Kv^ll5D~kqKSEcb!zSjv%&eC# z+Bwe%7k)YN`D=@6EaRSaqYihmV0b%E@^omeS(XWc^g|%$6j2VT=a8HoJ;LU%cQSuN zRKM7mCgjD;!P8~atM+%xZP#uXn$$4#VHW*BeHegk#@6eaJdDn~H9UB#)ssRyhap+> zIZuU3e4+9q6jP0yKE`e92kJ8v4P^OqC{K=c#e+Q`WEy!Gt*}uAo92@%VQy80>i9_jg-F%1 z@`Z)?Fhm$FT5XK%J**p)f~jD3$hCRX;`8JG)xZZ;iK{o zRjkF0zT6eFjC90*db0_H&ubQfc*fyts~Z0uB{~khb0VOK+memI#9nOz>w-7f8)44z zB+mP?Ho@#FZ%O}TSq+j4Wb0!tmTt<=L2He^xdh!G7rLoAd9JXitj{oPd14yk7~@*d z&*CoEW%EDyKe%l7ggd!jq*c8~XZ-SYQ#~k1JQ-_TyX`xoYfx}mR4LK=lcV=p;0AlL z360YV{O^H~Y&-Lk=M$F)lNC zes$5q8wYi=)VlW5BF65rXnjZQV#c~Tm;#Xf!N@R=j6!N^ z%1|qyU&DddLpIoc|H(|JkN5gaj*9;`c_?hp9nN}iy#?9yH!vG#lc<*>WMlKSeJxT$=B_S_@8P+9^sdDEeM)UC0?k5x2wo0*s?VJvl^1A5Hy zRKYseBH{XW&Ww??xW9eS9qUL+?U7#WY`WBl)43CTaI&$HaE3^%)om~DsHa~=$*;~|SJ8a;!#?(ee+4m*q;@(t?8`ZS=y9EdT=1pscNpuG@%NWo)32+ac00F> zi+B-->|T@GpjN6AGJ3c6!F}K@%7D#u9%~+vk}H{Rc6`&b$D;qDhA-*4RtGPVOx1CJ${(O z*Qf!!DnWIE;VyMp%`n?1ndg7+z^XkMiyfu#RIx?v7qxdOGYD@X^QV*IX+777S1t5} zv_Q~4Z48(NjeKx&dFo+iI4vos*6+`6ERHf4+;5T9Tz1l=fYM|v1^#0$vBa?USpX1K z9SC8UQ21cl(Og3>0`^tY)7rJh$VFe4`T8Zqa-+3pkol=+se#CoT; ziu>w66(-LHHq6Y|_FOpcfB(|bEaF%{JbOERy{x;Vl4;9uFXg6cy!8x$3)>}GYK}3cn!i| zX+q4EizjdTl^2ndHu6?S^T@HpL3FX6^0{=)79%@(N$BFVS4SqHh_*4^UPai_if99+ zygIbfcX%Ej3ioS2Ucp%hbC_7ldXAbt1O)IN6OU|+O5%aqtKcef~Ye?dr4m|1&aoPYy5kA!ya3Nvq0ij9 zg{%*ts)8#rq8bnj9w5ZhcSk)QeyhrAb|>xI(@9d*E`-4_+xPU<6M_tcr-g9~q6tkc zZ|f!J6$xhzzBsw5>Aj7cqxQi8!)D>Q6!RZ{PAyyyGN~Gd*Z$!kb<|qoU{SdSfNOKD zJa;PcaAKnLl`sE49Nm8qvaBTIhhxZsYz4**)^5%;LcadiJT^oerTv{ueb!w+>4sfM zvfNWt%N?`0Wz0ouJ5=@kxi9&bfBc;0lwHL|&6w#MJr+n8iE+WW($Tebr-+^tQ6rHP z4$^6&breoZ(rq5!)@iN-shAaF@PsBLrgSX=*Yy3n`oinkxuCy$FoxPK)TfU2Ej?G( z3tYTr($U|25<|p>a-1AO+#x(QOhxw*U)hIu&(d*w|8VgA!*M!qt!vqU^!`#W?kKAR(i5;jBi-e}rjYqV2|XEc zx>g+T4L_D;-J6L2jU}(2WwCkaJmGfNTf-xWyw_Ch;u1+{&YIm5@pNBwVl+~TaFzxS za5|hV-sJ7>+M0Ct51l6v))6L&c}xpgI~{$$(7INXK1`@#OP#xC5W9yGRlsFf`n)3$ z($nj(wwe>}1nCvWPPu30w>sIj79_R-z*qCZt;5*A{ws36#bdx;z#;~blkX5*nZLf8 z7VaH!wS+EJHWO&F_PRXgW@k;ipF)i%$go%V!C>Iy zk6y6u))bAuUhi0U%9fB*Vxl(Y3-+@JbD?D66}<|Bs^h&4MY* zG1k@Orx<8L55>kG$>oBQnyGiRYxTZ*Lvf5gR6f}sjIwcw6Dl>^_=n@dA7A}7U{YB! zhNogVJduW9u&NE%#gRR-}Eo=CPg z7r$<7YU7+oLc?Z_*X|&Ob+D|dxT^rms&_sCTsvI5Wo}gdR#vYnlD2t~CJPc)QR&;0 z_xXgD6ywj`#VkDC4Ev8pyOEkd`xb+8PUr3wl1G3gA}jbexTE?7yCxEf61yj?x|mWG zSQ%fi_}>q8$FB3uD8(=ypzh0%%IHw|-mjQLIhB&|7cm}WxlFrTyM%m;es&(3O_h=S zv7lIcb%jECcz&TqGs5NYP6UgJ|C)VKZP#Xe%{$!QR#ryTu!-SXYsHpUmRg7AMCU7~ zu(H5TiW1jdoFecot z7$28@U3691;56YxK-p;uw$inv+>(&5@wc;NtT#J{CbJho~=v|Z7otN4F7LdG}OM|b? z?3T^RGyp3`f(cKi7F!=A$1FW9nhtogiOme$mORssc=8WN(kz?mq7j(5OF7W0HVIs+ zUe;ea(e(I=23Q>iJD6on_xm*tsyz5~T0%8O;(C1TKPBF@Gm!jP95-Dxi*ZkTc)y@g zWW;PP;EEz`BXNu6`DfYJG~7dNKgm02tHC(UvpYrDRE6`k&F<e)wc;7o+%1)POlyooV zW4><4B|7iBpN-=%K(H0EC5-PC;Z}y1LRSOiXXL~0a?O(JQ!`3uh};w5NX3L9_kaoVbdivV|%~&W=9@JEqw$AJnv(n&SbeOT;L{H``?S3(~ zlaxc1-@4_PFWe3L$#a$G+pWfjnPK6dSp6{UZnKvBu3ns6Z$S+q(tAaJwDVc}HeoHl zc@(HTtj&_|-TW8`nx8a1`6-eJv9mFoc23Ma>5wv9Q99PLQw@j98T@8M=bg%3BWCjLB2omQ`Ii0T})MrC#Lc*&Btj896>p zqF1DH620#ngB=w5hr{i0hT)xBeeavB;TOHDp8_Kgi;0T&RE5MW>%|1IipNDU86}PA z@78kP1x15s8kPI``Hj#eU88V-e-&pUHDxop*Bk}C{-@uDZ;bkv_pAZH$)#Cog#b%- zV;ZOLALTOq(OjY`*XgHYIJPF@9L6hO9_nT^R_!k-6Q8=m)1tKZ(UL#T?jF^>&$O{( za30&kv#|-iVok^^%^x*Tz10@9F}#T_E=8F;qe0a@2uIo+s4KoX zWy8-#sciT1Y9i8l38IVH%;m8nPsJ{bTWmd^)w$>Pw#*fbj2~#L=bAFaDK8(%=*7ora%&L_vE;7@x$s zi4WBQr(Kq&-#%~kB#gKHP|)R`L}n*R`LihnBWHJ8T`9cAlV6Ke@SUB~s09MvqC!nXpsTjaxKn0Kp-WWwFd&lcsSt!jad zk1QuOqj&D?6&6O{d!c(Kvl5rlQR>Mzw&s539erB(6#F09<($%r*^z)K@i2m=xnP^X zN%iPZhJg3(V$-$K2;S7L_)whGYDF{UI@eG@>81k9X@2$I&2!C8g0F#IxLF-X^>1kj zP_bx4VT_cc&~%V^6LgjwcpnUbj_8KEgsrd0X28Jo69D3%Q7oa<$WgjK%f{0&baVzij>x#k?^={r)*@7pY$#^Sc4#fJ)ijB#D+t_7 z>WnMNKonm=+!Q98+b2_<5^Nmak73?WR33zGqA?mmjY8{b>S+*7zCZvGU*Vxqv2p0k zX%^SkA5TYd!yXzpRMOnu-i`Y@zmOTqyV6lyHI-E>C8Dkl32E-r&1ECE9g)YHimaqU z_g&-&-EO6JDM&uhlTNXpjEt~DpJ{=T0D2zQWv2a0}o|;|w)_>!UglbhF8H4B-@> z5rhSPO{P37wygeKKK1eFj$U|6`SMwMT=`VVJLh1j@;cPW0Bi(RPk3h~s^|yq57MDG zRw&Wf34%PlhuKM9`It`Bpk=jXi&X$acp|^~cIuaR`SSBl<6=VMK8C8@><=pgpjD)w zWf!F3l#87FM$e8+LjCI5-W8!9TvB9%l>V1p(*!gxM@!$@$MqyK&mO+m2Cr3?fZ{knu4DFgq7}CY*?5J z&hpx&UUi=!I^`tSJZ_|$hGu^ zwfC59v1}4s?HY0#-94Rc?U-&C!%wC<^0PI?j%Y)}r(0Ty{%mPvo5z@j4vwbTir5~9 z(GVEVVSy+c^JStFr)1rP_m7|zRq}T|3q2TnP3cZ1y0g4{^L7tqVlJWv6i~;|EhK-O z+@&2b27&{@BVH9$&&uVd-%8rwM=^OHkO!_3#FF{xw{1HLi9Gu!5_A>d+F3Ry8D-xo zD~y$e0?nPbvG|fPFT@vbV!)=iWeY?*)O6Qe{IE_N?Rp<%_n&r>E>L2)m~Zq(^bbLn z-_IU)c6{Dx^e4l{Jxb6~oetnE!f0E{}8bV(8?ug%1ILTn$ zd4y%^bak-5A?Q5g>I&`HTI6r}KdtJ`k26qX0}@Iaz5%^~&b!4s8dgM5|B=Hr!oVXP zFPI)ZN$)CP2bED1Yt!&c_fqy486%4mEvCL0lkncvvk=RDnwyj8y>kluFjncBWo7-m zP8${Hm5>2|zc4y1M99$F78xZ7#j$$ee$O!Z(}#Ol=C}#B8vxFu*XHSwU09p2_kLll z^CsM8;J);do6BU1qHwDzxx#4@WP0rDV(Jsu+{oQ?2K4Q-f7vIDEq+o?6;2j(tF;4o z%Jy4!A7y7-vhsxV1AdfVo;&q-D^Q(J><`Lyyw z=*Z*QV^!uS+nifpc=tR^(@VN~`$=EOs87{kRayB;#o6ITwgGhNn&(s_y&GAm5!s?z2>@x zUc0c}rx#Kf4ij^Z)Ymms?I#f6=De_CUbB zYkKCs#q%49Tz`XizVEZ)$ZXv7iCR5ea9=WQgMaf;oO?Clp6=a(+Kw!&B~!^`Xz}{~^zGMgN$qUIm2@Py8yHAb*4vJ4PIh>>ETV-41$ztvsQE6XYlTf|JXPWRMmsb$vC60`@BiUg`<4dLwav=~gZqUwQZ$J1 z0G!`*tu}gBYzfvj@D-nEVNtPoeaR{qj(hX?#TPqnC!v_lu}+?+wqjsr<|hQh7?%O# z+qA{Xtk%iwE3PPnC|JhiJ@{c8l)Bl8S4vX(x|Y}L-{wi!ApW(V&v~IT2JCXOw&Cu3 zZ13$Wb!8(y-EAj|$GX|h5$|C;0^UvzIgj>0JKaUe-zoTBXSF?xsfW;N5t+FvZtb_8 zeC7D9=wJWyV!1-1y+|KkzC}|%rd?47Tg?d)B7j$IahYOqFcH0G<>y$p(y}jg{+i2) z;wG3~*Sb#v+Wl{D*yTY^Tx0)+M2!q(yfrRtY&B8f<%QZ_$%4_+HL=EB4(1k|i8IdS zjRdADTR8nc;G;%u@1yy5L$~7ff{kUc@jyZ&gUZaWG9h6CQMcOszuDYS*HvY1y0|u2 z27=W}d0rfI+Qe*+*{(A+(R+G2O`n7ciM;gMcf)WIF3aoRxws~TQkdEcZB;6k!=!8a zBdq#{Dsp7Sp}|(9SQU&fG#0&DowNyNW0jafp|Aa5e~G*Zx4Qp@$-lA1M|eVXCy1>k zOABHUYeVsDE%1CiL6KKW28{^oasWZig}*<+YHILfkSR4q4ZNI%HM^~@TV9QKOEiFQ zipl=fS)RLK@Q89`h$vOus?_|kkMxaY+`uGg+1t{wuN<{q*Mtj$eDo3lbYx`_2%pk} zfK6SNfzlt`G|{8mg)DMVEG~0W%k%ROnQqAPhT8Rtr{Epg+I71Ki-(Xk*fNFBvi{dh zf3qOjhtoQ(U%!fp)U*DaXm(5dAl4r02MLY;737|e%!GQ`616FpDo_bf*?`1TJMzNV z0qDW1`}ir?P?U`uXQyStpS!5$rfVsGEwFOf4Zb=$vb~yYF*;(Y4BuX;Z66++5lx^E z#^dAmopiCYm1v2tv2_Yle$UT7K&+5q&EiNB+>41Y7 z5?%(swpNUYRVTYmd_^7B*VCp0wbl`~ws-B!4MDuz>TGCX>?nR&|Lb|B^6deSN&~}* z-EA@%N8VG}omPaXtTv3KRcy1_>))*^)PRB-7V615TRgBEo*ciVX`E45V_EmN0EuGe z>fq-S#NJ(-qVE#LyOYa>F!h_*fT^f;DTIc)MIb{})%th^|BApjJklymf09*-G04X* zZnH(T=VXg(os|KpvLdb~bKOXlITfh%Li`Ma?C_&2Xp7-N1HPwDroQ)cp$=-ee=Wj) zO2&4(#%&{LOG)cn@H*9g&`Q^$lLfa$QC!8}OHHt0hD4z5udPX7ynZj`GZTN@HEsU5 zYn@1P?^EM`oeo_7m}$g$h`WOt{tjDE&s_YgAt_6zaaFRU`H|gcJM6HmbBkhbasKm zF&*r6M$zrvzt*Fz=N+?Ugao6tycIqcd%2wVXvI1mE+mmaDh6E`gFN>U{jcGkdbF)7 z)iunAFYoy-+KLw)vjdj$Aef$g0}m<;>_~3>ZL!D4 zP@B>3kCr7%E(;xwUb09qD2Ld!ll0*tQaoueK#&;$Y?koIn|at!^Zd%4E>`@=Nj%i- zww2`(;7<7GUtjvSi66TAls=w~U*Ezc{Ed$Nh5= z+Iahi-bMKQb}Nk>hv&px@VgxF&=Ya+d=hO$A7WmPvfcs+7S%?kPX4i_Ri<#a=4%$2 zFFhGehzhIbnqA9X4t3TyAOW=#z;yNtR>V;67Y)`i^g8c5t#vkAe04rbGbC{EmB_$l z!UxY1W_{fv_?*;tb(v*)=o_<5v9xh7m&$3fmu-kd-mCDmaQns@{yOF8+D4(_v27?U zPc5LIGrQu2X=^_^jt#);^&mqkhrwNykk6|*SJMveuh;cR>5{GX3$vl&p`;lh1)eWs zKH=-Z*KA4QYxxcBhQfk)v-q0WpbrM&N~(S1rP6HctITuc6&V>n;NE$0!|Iq0`j+17 zyF1oq2!vd4%tDymr<}=hsAc`IX0l=APT_uU*f(TaR~=gzIKpvnLqRQOV)lg{$?O8D z3SzgKwgYJ$!=Y{5s}C4M!$dd(6zBlr&BDwuf@@?<_;ju9_i#z&6Ze_to`JnrkKA1B zx0qBC!nE%pqI63YGv`U2UQ5Sp_!N@x{_Evn{c(Qcu>w%9D8Hwnxf(11YyNd^-D9Gz zpltGAPV{I^^{017Ki76sMnm0ztpY1o%g>dGl^vMBx2KjW*;*A350`k{$QMkmtgq0 zBz!-;%dOdd!R#)xrvThVobXpoyHY${kO-d@k?ORb`Fa6x?S>Lw&OPmR zLOd|R+=wNZ;3yv8pC<)S`b)knN^$A@vaMD{pR*UmHdjevuG6_e9=?K{8{q5_rBYbskh-QUDN>&=Czs_KYn zgH!*$&;KtcC-j4fL?r(RT`)GAo0|u8z3P|urFa14)sD`((4Vtw1_ zQQCXsw&2l2a*+?;lyyirIkkoOGXtG; z+bLCk{c%T0s~?=nij$MbMxs-S^zL8hI^FFm_LM8HwW?4C;*Rqwj5F$k_?bJnxLdLD zY%2?s2rfY%A#m_xWnR}|-T+h#`99ac9b^Krh3lIaF*PKZW^kKUjKPh zW*zxXp0rrDNkU(LW}i?LM?78!C5fb`n)9ajo(41_U^52SU|#yW`TdjvV=T6x{%b6Fl$oX_E#eUk-C|z9)zDVbRb=1FFClHIv z+(1Ds?{&`}VoTqf_4#GxXA?i5-2yy@mI?d6q>b67+969=y}in>eFM{Hkson81{22- z>dwi8;Ae81MpjT-1yQJu%-Aw;+FnVHmttNq=T`RykUI7p)PfYdnQ!RSL+Jz?Lp z*V6jwLQUNwbp*Bw#+5CSProtkPO+KW)5#k*(z~&CQ0H#P6OFR?ed*=ftcPBHxJho9 zqDG+K7irb=Y4&G9BF%d8DpeG%B1W>5ZvbLBUzH)u6tgYLsd&~d{7DGBvMy=oO#TI5 zZof@S5>LPDN~-lPyq#&Hq1L70t?MYWFgTI4{B zFZF%-1f%S6>7zb~1j@RMh|5;TErKk#`)BI;ek4yH7d)KO%jRg00xyCm=GO^1YIfeZ zeb0kpfP8>^ao#8G=xM!F4*r}fB8>U3T6G}9uQ5aao2BO;931Dkl$p|d(JvbFb;j9k<>V)ElMucNoc zY+s>=&Z9xBv1?5=g`smSrPvdb+nr|p_S}M;gxGxB534Ptl>(X)kZi!1FG6F$^e#et zULHXqo9pk0b^|i8zP44?I6-a*v|5jE z583~&*rA>-7$jA$y@C_sY3YVMoRK=Y-z5lB8_1N^j+fn?prN-@on_k2x{6{W?u^fh zfAH7H^l^tEtA`^oVMuc06(S*AM1=f`G-)VaK1~QnkDPhO*mnKcL$%pHB)l%DwB3+h zfyWj<4=9CSX}ku6zlNNlJ=*J~?^6eV22E#Jdtc@bG!pWB1J4oRvRco%JgK82FCxJy zZ4NZKrfoFX^*#aNJN)rMfaonVHLby{x0~icZrTQtVtJXl{jNHu+h6SD-QaS`s-}`B zI$FmFg#lw{x0S@ej6)@(feW5WZ;Nt7taRET>gp7BrpjHQ_i-`45Q(d6>@M|E=hJ6} z*#2S74y%(DE>7l$3$NOrZ-;thQKA{zA{MEE%d2JN3oSLG8NKffIVVXlAjhSK)h@TZB> zZC18DNc)|Jh_c#}=oMs|FphSs?3cKy?94w;vnG~j-};$rczKIqh?lK8AAYh%%&^!t z3B_4?eWlK6VDySwTh}d1uUy4i!yKiRnd`5Nkz5Ky42hvKljg2y3R+n&X30vfXfu)R zQ#%Ih$O0jmm9s1lVQi%<;M_cBIdSjWb|L{gWG{w5k%p_7h;f0_x7F2zU$8>qo2^&@ zDI7H7W#0fa+gdt(Cj4eOYvc* z7uW=P_0IBmAITKaS?rgvZg-T8F=Zr6?IQtc=<2N zvw8mXbV5w)`2(ilY7WbHXTQMPjLV=LUsx1tbf;KS-VraK8$)5rUwnzX4LPhPvU9fbQx4om`5Rvl^2LXd>l0TR8?(}kS z{F<^`BTDXJwd=$Ao8CZM2m|=!I{-E3MnYa;%@Do!r|^x#j~p~{wU0_32rNJo z&~=xk3D48&d()*Twk!=TcM^o%Szi28Dc1uQi>h{MXo+%JOodKjZhk5b^dfAz+K9kh zfsi3-IxdI1h%gh#ZOxv1pb5kEUxdlwkFC9u?3Apyzwo2oMV|~&jYEqO5@C{AyL3V$!XF1f2eNY&g{Ft^4UngP-ADq)RQnT1jyJAzR^qZPj zVO|FHWpj4Cl(Yf2$7hsbnSiqtL5A5HLF49>V{gXil3oe2z1jP)zXsl^%a9DSG-6Ow z>!q_hJIKxTupUTqkK;=Z&vdkGgzP^Yh9+iRStr=ow<=dawA;+vhK2ig+pHtgsFSut(F#Yj z#$53SZzAzUnCz`lBstMvr#NprPYCX-z`DxyuQyeP8xj|2k{fljI#<&XCSKoP=9lD< zth5vldw87F=Mb%{W9x+Jz7`1yP6i`uqveK5(uQDZS-F-aC@7$AA#2&-d3=YfTCEbq z1$UX;4KrCryi?Io4LY?WO*t%X7v{8%P52h_m1#w_$81@x_$?S23d?rlH!ZkEIJ=iP z7Eju%BVhgmrfm)qEI{r zBo|?ntR+6?Sm94+>YXK*3FOUxIQDtYzu=T|DJ}tHa`uCcHjvyKg9%3B0p1QT9G@L{ zUJD!`vP|q1v-BnJn3_1mBHRj1rtc4%F9TlXh)u`Y&UowWXBgyLXhL}6bjQD8cw5QP zxl<(%s)i-dR`c#0#QZ?;t>=Ybm*Rl?{GT`Q=i9G#p8cCvUke2NU80ExjjrHdKcIg2 zC2^`y!vocwSX7KMzuc`_CkO8;9f3Smm~TP7?DIT{|6$k7OKTiYOyY3a5o4Jhk@w>F zM%PSAz}(eb6Yxcb#!9{m!9N&KvMd-sm9~obokLH^+LQ5?`jJLRxP~hBYT7bV%qq!X zj^nI@dT0(?y)&- zf9L`l+*kD3`L|$}bi8nS7m+fZWT7dqt`j-O-rVHStzCJQep!a#>U{4@d$N(ZziJ6v zIJ5-$8XMR7^zNZ7-2K^$h`*>V*#PMkjB35XN^2<~uKBBoJy$|yNE>3F z{L#_ixKs;`ek|3z#gWh>L(ZCv?N}wm#&j&BgZ5h?$1k}JMfFk(5eyT_z@<-E@)4^1DXDM^SrDIH6e;8&UOvFXGpu91 zCXU38KxK3YaryRE*>9Fq`sL7{_d}h+zo<1>vaJ)TK`T%bc~zLWDMbI}4#=X<(S0x&`GjBO`PCx^^FspvTCg9ckYVGKjo)Y8#0=t)zWR-iC%)%S1CPdgHvqLnRQ-3~d&6LcS$ zlB)Tc0c0p$I|Q@Q;w5Tb9GVf%=$gkrVzGotL`d|mnbw~dmHnTJk{NM%0WXL#%|oxp zHW~{jqpC*7N_qVlgZ3Va1q6JOs`DUw>N2*tEeo-T*687IjEeN^#GU-^I*d}37YU3K zu4dF#w8s@Wt~^Uu_lf>%R1%%&uLQx&nt2-#)`pg;rXQAK`!C5Q4KbJCHwbm*S>zH= z2KSf4s2i;f1YG~S;adEo5=88xRV_DrrA2yBUGd&IS?%xM7hBiZ3$^g{E{%aT@AZp1 z^Sz3c{wb>n5N|#tqwn9BiudSu}=lRmiWJ&H$7?@H+<2q^{_8CuYOXA6E!7XF+?)S z(oY@Uk)wOp-oByZ#0({jz!>mX*f}m}HmlsS^HJhAEQ)Re z%x~5stZROnb{$t*YGNQbwo|2qslo2&j6MY_S8XF$MFLXThC-poZhhDYQcuY>!?#Rs zgJS^!H|GPUak`F5z|&fl=^5``g-yg3Aiyf!JjKMx(=FM%e&r%^Vw4f92!;nu%0H8l z+Ydmqnv5jr5Wyqiu6?(0RT3-!D*J5Lw&bQPuYG%R&m*6AAa!Z>Q83`NPhaEfGjHgv z_7jKtE4L+y$}1AP8y>bC7QuzP`+isBx^fKHQuIAnWAgMjzDpv_xWflcS1i;>K?5%w~m z6y;oE_rW;!1fc0PNU7cJ*7WxVzX1`g`(B^kzzR>`DygQdpd36%LutJh&PD*FIe$uFqe!pI&^>1;>C9Vj22_8S5G^_PSXtpi#Q@O_>oN zJl0@TR|39nkRpm-p0%_g-YweZ9mp>&h$+0x!`|3;XKCo9!mk88U82Ht}vx z4~VyPZ>F0(f(mK{PE93(A&9e$lvk8+s3|( zviumFRJR`d^(omfy?#(iKnqCsL(=&urSI3`*Z)r%2mc><&Hpp;_&=l5kZ(T$ZPo-^ zbcBXmaZR7eRe}Ttry4$_vKF-N2h({q;{P8pYySXB>41?nD<8YzyjsNeEqWIpaJ?E* zbx$;*VDfTOC#!Lmvosg)5C#Tax8hjSX{TqQ1Mm{h>J10ji2Imt0OeW0-8b{u_o`UJ zllb%_FNC;fX&g_Vl2qXF8GE+BZnL>JHY{5ib0t1aLeyI69F{2JCB)5t_z%a9*vaB4 zEhc0|p*ItsoK_)ur&5zV8h=2{5reR0F9X+X8%I{n)_5-CRedV1#eP|kMtkoez7lko zVE=Ha<2Va%!-vNPt}mRfG&?pZ+AY_61;qYvnL-7c_bvkEbN@Sp?N;j@#67{su_OXo z;dH`g-W6*!;h7_WMkkXhC`WD!sKS0EGGqGU*rj;L0wGC!}fYb0y zHJZIY!rP}LXVc?3*?9yCb=f#KFG!5Y>Z)k#ELGK%nrY18GViymBQ@NcadXBfw^(ma zZRm=YmRUWsG`b4eKd{u4QZ2$tlGvP%RDDpG+2O-b?af0KLfessZI74nhFm%pANgW> z#_LS(l!iH7eH!uTMcs?=KG>^0v%g2_Ps&Z(*k88YQ{b<7c&hLi=NBiYeMSCU85Oj5H(F3xUaQ@Yp9Y>FLvADA~^!N=h=AnPeHjg^0$ta|lE zBYjps#*Y85&kSnakLG!OLJ6B&Qv91^e*Kl~L{|Cay~wV0D=`d z-anoz@LSwzSI46`dG+(@la~1LFyKtwOly_-L~JAyUp^)x5`*V15YzI5>3R&jDpmRR z6Zw=7ljiwL$^*gfm!f@_kax+4Cs^5=R+7X&W~S^dt?KKKY7lM`toFcGXjna97j0|2 zE&${F)-??vBUTG2l{e`by{|iz`d4&`*X?hOk->SZKJoueBy`FIEff51vaBRqo#PU zCo|+k&vWl7=gyzq3_DX&?4lpX;4&uCll`z#>+~$uUizlDJ!%En|YNYt~=v>VO znA=!50=`gk&L85+*$ErG=_sLZY6z@?SR+ArF zwy{#;F0>7A&b>zVUHUdTJI|}si&$V;vCb9~QHYasgbw=qNTZ!88e=1G6Jn}BrbCe7HAD9WQL`F$aPh6Hq4%k4d~;GMY-LlmU&00 zAsXZS98tXBolu1Ff%C3KAMbXd)~t4yi_8VuasrV0NnLkM(5KoU$+$uT!G|Z8vt%~L zBPrFP=NUBnhxWC9u~^IOt9NvT;xGH=i2KEwk$YnuD?WYA)8lvQ`M=^ZhqvJJ`)->w z8&DRU_XtxLnX1-WHu)^4s8q3k>zzwbTXjc*cVmR`sUsa*wbS*zo|DbDAlK4(V6QHY ze6|+`zQh?NDqZlnt|2BmxyU=z)*gl{{W^mcYrJRY^OEX#;!0*&GQ4dt@@elL94e9B zfp?_s*Rep4-3>oYxc)FJ@nFpr7hoHg9G?stCRo!E7Kz$6XNk`Az3O}thJzQpC&=uv zdGIOs@6QoENB->rwP*2EntMLv8sC!T@$Hr7!~k2|*_CEu*6*~4nTX})JCa80{YD=a zNmj#3?%6|HsxGsB3L_cUx?(J3%Hs>q{XYg%WupVaJ;gVRU$+m1gX1?{p2^w=*@t*{ zs7_{H8=o1Uwb{$;-w)LKeCuWVceb|_7$LaMWBN?rzERy&PFCRy z8VXhM(fM@*O#Ros3AHXi9vuf9r+;-ZyiiVkSMVS^SnF`X6@>QebJcVUNo^2iTQ9TvX6-jk9T-#OUV$^axv01$kK@0TJo8^{cXC*Hb1UE80qVn!2S$-K z&<3j5+q)>QPAR|but+|IzZT`bL`V=v7avyTa?fHNU(1|p?4&OZu)pw&N7X{!Ss87;6fw3i?wj%=Z*$m@O8Ii6scjrIw zl`zI^{16ZUh0cAs-Ss?-1Fo~y2bSxseR1gFD7(WfI$ruvVWyhT?_fbzAL3efTMY8N zy%d&{Pm7lg$(zoqA5NHy-ZQ?8D|Pan`4wHuLt#kH+$6xcCWpcH6K?wb4Wd&Gx|R0X zIcDU{wTaH-ez^K0wjrS=StKX{c?ba9ewV9cpst*4Np1CxFDw4LVYG$I8Y2uWhZ$cQ zwI!@eo1bQ<%9F2&&S$Jh1x8Vxc#AIja3K)Pkv#L=JR7cQGs2MS|yd;j&@zscTeZOU7}_FTbmnZ!X-)h4YgXv z5F$y~Hl&U*+%ji^g+qOB^$_lBiuT1RI}mg%QKYAj5AEW)yG(4cfuL>5{uH)@_-YyX z$56xPoc6%)Y{!3*CWKG7${4`u+X*m1$D=SSB4F z8Vc9?eE&y{NoKp!oo-t}hdf|{fuSwLkHu3Yd}oWfcUNIOw6y%m9DeTBxH*DfqTAMo z?SjDJ|J}e_ByMGLPF(5LyV|LPpo^`M=po4!Y!IfTIGtC6Qz%B1!|~WQdd8YS#gCCN zSiqA{9O7vwR)18YE}MS3PN_CTRebE0NvI(ETLTa+%FkY=e5aF5bH#7Rnv4NQ%~f|KA(u45 z)@MXhfgkmtqSvHuifv8~=&aC6OYyPPrBC>`FW6$_{hS4U@8WL{yw?-n6xHinKT;%m zWJ1CdlAh~%djXN6kqeSZ_|h5Rj2CqcWBBZUJcu7mKxPlq0Ucq=HbhIU>oeswW$pfE zRLm6kK8zSIv5{m~7S9bWB_UD87<`aPNpjWC3yr*0xhwRz7wwF88!_3k+|+SZ2?=L^ zLw()RPHpC{>OfmBK^;EYsCm36 z-Pry}XYj}Ay;}dpY3V~=B#1a}@IX=maGTuw(_Udx7kyn1*j0+#lIX0M^HjkM8Aeo^ zw_AX%_zZ86DFSFThS}iyEPO@|f#1)&l2D)4t}+;D5-yD%E8%q3(3T2P7N&U)+JCmn z9VrMnyZE&y{_&qHJXVh3Wwd6F#V~eoEsi^gN0+oznjhZj&q@I)9Uj!r$yP)yOX9B~l7&-2=eGeO`r1 z>n?hSJolZ1i{u*$%bFCzhX`ABU`2irrBA);^aJS>PFUw#pIaMo1|j2tcMxA=c%ujm zFyhHIO^SNCx!CA}dJfJe?YgIxAhI+vP1<7>#esAJ}OA8%>GD=ZNx^{cechNV?V=yA!ye>{ZB0IfgY%#`jXWW zkw#bPIlms@<#MRV2@-_L`ss=bYUC;^-2G`gAkXsJHIqL*>WPEcWKAz#SY1wXme#Qs z{IJk0q{-d~JYbl+vk3Pk;Ude^T?w7c4eE2n{hJAd5ZsO+d=vAxq0 z^5#vWPnL#x0jFNWL0r|I^i3twMsDDtaU2#v!eg`0VIvCZ0r0sz%I*vG9@i)y2??7ttq z8d1k>N1TMeMTy{9hCww!R~&so1ZeT*ZFFuew%LAIJBO+H-mYWwl8~pakIoi8?@8jz zTL40gc_o1^&K~A^`S{~h=C`rAA?>??`Yk|}Rn5=D>rl$ar(^Q-rlmQc(lmjk@ftk; zr5LPRZh^;EYc#eoQmD;@U9oR4FIdAw;^m{uLNHFd(V2wF*W28B%$x7Hw;>bTnVLhe zm(No^=3C7--%LbaadaeKD}X!-Le< zU)`IfBKDR=P_gm2wt^0}>Y$44tr=%vUl=piqFw$Z>;IGxw1sE8@ z4Fo^9G<_z~t*xQ!V`{P{?V2!U8UP3Eg|`Ne!urTZBm+ePM$9vZ4!?exCuM#sUDZoh`$}%@>?jWFeV0ofR5Ep#SZ6FJ zd77=ouYa1cIIWR;G}9Z;tuZ@k=2bfM(fs`v`;uGc8u-|A14plqAaHnhV^70#R>mt^ z_he3^=^bC=^hZ#D*Txy&4nD}bP^gvhxSzk^2iUUhGAzVFMV#3f4Fo{?_^QQjEA#@r+~Mr%pJ%R9 zXKoE({s&{nD59=d&NkwzzVI1fJ2?4hkldjKaR(eGTv}GB>Q%wJ$Y;jYi%Wd^BwU6e z1;>pKNL@<__Vv(?+kI#z3=AKHH02x_9)9XjF0wfA_s`0TQCeWg-qay$-Ikw5qtUf% zpf~4hg>n&X^(nlzh!<_Vp}o0I19Yc6aMFP9ceVwGLkkB1h=l`9JTw!lvXHaFvW;ld z@n4p8DGAE~y_ zZ@(qvdeA-^>cKkXcA{9Ssd1nH9ma%0U%Cr#(Kb$Aomam->k1UShor|}3#2E$gW%A< zOK9K3ZXKUmBZ4h<_HW!a%dzFJ>LTl9o}-H<9_y@0?`ubxOXNM#cF4=gy30d;+ z&?(CX;>743Fzi`Vr=i{^3#qlNX7Aiwy7u+S5v({*@i?@4Xm0DM*6_9RI%<8XIEyx> zfv1~H7fZQ(vq#7`$a!1JZ(p0d&u&Pm15rhj0HnkywhIQcF+L_PY;Z0;!R z)AOQ%ao@`EepJKLem$0!Bf-+ep=Qh1AB)W!m-3rZ^obr^3_l6g$)h?Nrb2Eh&9}8mNfS?Vt>6jS3Tl&Nlzs7dTo1oNzLNv zoriRP3=qj3v~IgQcpP(T;F5F1MK@UAa0#!}2w;_r;1&nzL5?%2yC6a|&ZkMbt|{Zn zl#55qpd1u6n-g?9_88Y{;U5HCEZ!>&;4rTidV{Hs8|cX#bmdAjvk=w0?ytu|vU63C zRtq@7MCPILj=0LaiDfw41PD63*<`B6pxL|9;Z>@%;Z-gpaK++JtVX zkZ!?maTSwcZC~>8yL|z&%*@XGEJyp)EL>#Ek^fG@&&YfrSM{e;SJGEx?9>oR$KLrC zL!RmxQ>CrYdiDOn4Q+lO1m?aq#NPy{n`6#xH(V|VoX0a0^d>f~O6lkKmB;nI@8|A5fOb!)ha;6~``?Tl&&HmjPv!j3Sso*4}=85bNXF)m5#RD0xl$>GC> zkyQdIz@LOL&(1S%FJH^~F!=oZK71yA^AIdR&KWd^Zo(_A&#Rd&l`~Rwieb9)gH0QA zdeo-xA7?{5{;E766&YNM1=IhXw(;PN`Kd9PCe!C<7k{FUUtKqS@H`&qmqR$W&o%Cp zdx5Y+EZWpwEzeDXF#rfd$w?-FNs4_par9Dq?cAoyIPQbVKqjU{tH|OO#Oy>T5^=-@ zDvbDdzpsHvUnBnxiP`uPo$5vmA{^B zRYCUMT{Fe_X{ybGawSGKr03G0p%vFVjIvni3P=$qUxl1WBi}GsP$is4MOpXVwGr+$ zF>M>~!xK6rxQZ0*-mDFoB^vNwcIZb|Rfor*2>`5%+h8+StK#8mPNz(yUYcHn+?Gkr zOhT(mQIBmuRVi78Te#YykE$DQcjekNjn7}W{01K{#fO3OkdDA8df0lWq? zyPO37$7lDk&ik{+u0n{B+Ssd(y+!v$R3#|O{`Nzrku`y`bwy;LqrYcY9l|UZHaL{E z9Frh*wwHPmO%VH-lozzhywEkRAw76=`dvWB6S^C*KU9j&vF$dSJG*gsrzl`b){Q^} z3^zO^NI=cN5wc@*XGg;P^wXp0&3xac831ad5P^`|mz-{{F%pa3(hikv4>djX5IJ=p z1ns+moKI5B8vC!eH@T3MDU0F10jS0E07}_5nC}IOYl0=IX*--!T84PNaG6QDuFZ2K z5Wr3-4=pBos-qeY?T2*9|x=oAGIhsNaGW}}&{+(g3rS_K+ z2kdlQB^c>>ss?WE_aGusN*$w2PDPU~&5s=EVtzTxFW7|swFvwFH~wFA27YMApE*Rv z^r+O>dzcJeNd4ELU1)dZv9vmPDZ7)&_c?lOtb_0q16k1*vu>BybNdW)2N5fu!ejni z!0OQ#q=b{7V@7}}XtMk=Im`{$Hs#l{GHc-cEx_t#Z-UeoZl%ULlm$-x+n32$TFB3S zXZ%O$>8>4NI{S7srpyA=rzfbug0|f1bLkCFVq_@FYZj}9-S3y&YFMjeYy!g#a%uEW zE2LaLnY<5}`^h$T%jSNa+}F9+otr?Mf?j1woC87Mwx^XxnD-3*=AK_~>s7>@ze+ZO zJa-`l$;Ygea@ElIe1cYyvU)ekFaI2Z;blQTebxdSONR->o((~bs|tbM76Ht*#TW24 z+x(4^M6J{HPha=*0XZw_pM_bgQz{D~F6i%>%hjJ$&O=-5l4_#kw}G6cIb4$q;SV+K9i=*H z;AbtCk)%y4$)tvg4*VFBiad^p<=>(}ugxXpWt>QLG4{c6PJ?^o!AtcJf@ zesb%OqqXULdMmZe*E`9pzdpS+nTzi`#^v2vC!Fa*hw&2KdyaSbIg@Jm#)_k(F~au* zJjExzvt{P3knXZA=nJ2hc-^|CrnPuTBEHH+K0NoA^Q#mAbqiigD)XYruyltx5N+)? zdf|&bfzyamxRkq+P`=9k@dH+0@~m9budm``-HM*f>xmSlnTmZzg~E-3LC0a+E3B&q zC=W8guRFw7kdJOsHYOMtU@75abned)+QiTjZ|mZAUJ^vnCM&Bq!7ut#g0YMycYRKJ zwkGqmqyDJI(oeb|P_U8)kA=k&o%+sYqJ&G_xnSdk_$06|ZQACRQC@8=OXI?2(JexM z8H!K#GTa)%+?lf;nhc+o$&bf~{FN=RTx)QkjKfWZwRs{@ z_NM(yZ)Td@2`$a}uQH7S^XW5>S_e2T8bM|~)fE)Jvmp?>S{$NxAjWSUJhNT8`^3eh z+MfdDfamdH1+YbZlaivu!wfY3JDa5OkSm*J$ndEJXYpRzBH1h#Zh{e^aV|xFvW@Oy zyZuq!IN;M}-m_&*K#P(^ThAuF*4iM*VEcBW?+bd^+uDm;z|+rlrOn>!W^!^PTshY} zH(#tKE??vQGkwajF{b^5<4BakoG-t+G*w)4V7R^|`iY!k z{J};1RZhw4w`of{k0Ri(>Z9u6p|MBZf9J*uB+-B<298C_@zdVEl+7gvY8`vIDlYEz zfU=00sx`NmTBx*;)l8+Eda34t;j@lm#5LI0)tJPT3=M~*%67j>xhs48S}Lgl=dc{{|$MCo*p zC;#QNuUk%7=-FlG>=4P{{qXNMZzxq4P7!_0;5rReBcRBWgzs!DqlgKO2}QBT!0^IMtnccIgJI*<#8*PzzUjO{K>={zl1ggW#mY-+ zhRi1;80*oANibDB@%bI2lNFcH%CK8)4i~5)`5mfo0ze- z4)+pNENoNW{<+l5`#bO6lHY7l2R0<(9syjUW*f^W3-}QGg^N@*VR!sPxq=0E#zOAf zq4{2^`h&%;o*%gxgW_b(z~#52k+;&*Rp*qzP@?v+4V4bI6CGvO(_1We>w`Bs$JP29 z8M(IJX&rMss`u;Me-rz`u(gWEV&Qsz5Ar%^Oi@WP6%*nV_IKogVj#xn{7({lqVZ-^ z+L)B$bDt{X4sp$^zB!A7%ORYc4%GD# z6#Q~vY$7IXby2KS4csZ*x#sB;7+cKp7-I>pdH5$J-3-5$8Dw({;>Bf4BAj&>YSbF2 zK3_YCubmqvgN(+FVK#MKy{Uu8A>=n&-2=v3?0+Kvrma92Mut{bca@UjSKOgtHr?$5 zuyaw9XSK}DfQwi(zb7ey&)ParL^z5^#ImEro%6;MMM2q;>V({e+QprIKLKbv=MZNL zhl4!F<-B^a?aUMXm>1xf&$Uh41{2S$a;a^;PsV-h`{){<byT{-HBntr!TLl zNI8vEWW{_ck@$4b7#+=aDf8%tYgDh5V;*d`l=e||E=1>aW*|}5u-yGF9str(MQx>) z2EqgT*u{= z=5gB-X3BmXz&%Z1<=Et;c5r<^{DO1o&{`)54m2Ld{K#&vx0#nQG%6ht!y_I|PkTKYZPqv4#l5!v8syVRFmb-M{Q3&S%xDXjQ?!9`6&KgN z*_P5D+(W3GKh3~X+{D4@SrJhHJg7MrZZH^Kdy65|qL9VI8@1AAZ*Y3&q~Gko{r%WO ze|FwU1>?0TA0&QZTW&CJl_Vw>euBe1|7$e+&NixO7l z4OltlQY0$k(?~>Lag7(aVS^an!|Ea27Vwu8Hqe;to#@Wl>@S!V>S}_EU)m$KxPJwh z|NV^{zq6grm%e(3KMg5JE5)PBSh}#V9F7XsCur7OTAU&#o8drC4nZMHt-<7K>_CCOSVC z#*wKh6(-7Z3EcLx#S~zu*pdKNcQV_L)%&kp&7UvHJnl@8@7QIpJ-E+I{=+pr8Sv*5 zyKdX1=_HaDzRX+j+I>NYdZp&=lK6c+rY9duP*E^gg(?*VrIFfkGnF+KK@ z<8RpqY#jVKR;;X5BdKjN|0T@YNXpG zpAvC1F9rN*f_{dh4D~-=Db7)3__I3gxO5(A{e8C+L_|^sbaWtac<`@xKZf7K@I?<> zhgeApep~^uBJigttSfezE)7xSaPotJ`3n)ZS;|S>?O5jTEQ}K=`uCT=9kr@+v)qFZI?r?}_}q^=3#?|C1IrTnO$3fOb&o|t=#EPcUO>2VhTYH9bu6HyF5T^! zL$7*Se9Z7Fg_Dbk>!32WEu)4koEwH(>^&)F-G*=zN$8%*^>}kyg7F&`)C!&3{-fYz z18NJ)NLK5W-#$jFPVsfrz<7g2UcGa8InmeADKa#)D_mp263hT~W|3vn&%a5%=GqV6 z&R48=v94om9hKpV9dp0QlVNMCkCx#>n-rSR{-Ghyz8g{7!$Y~(T%0^bzMnu&3!EZ~ z!m9%~NyPLkmWhrd6Xq0N<{yKs&qEe4?=e2vqj!rmy z?qCR_=Yg~c02W{+Aw`)DaYsHN;)UD@|qG{~9b?-`l zLjT8<^XS{_FXO;%J#yCy1qcSyxjEL@I2Q22NWy!LHO+e0SMPF`)rWfe{r{Pc%2)sE zhWS5FBnR$Du`jE7mj(Z6-m)y$@oSd%$1#6ry?nYOW#Ujd(IorlYR~?e z>{vFsI&k<9R}t%bH(z1%igK0}_j+dj_fOyY=cc`!(r?>d=PYJ#cObOq)QBK5uf7D* zN35Sa(QQ9~IQM~xVSGeKxZSQ121v3~bqmFbCh$llcZ~s6ZI_2QNKaUW2m9+~Xe{O( zy0fM$(J9W?t&}C~Ed7bADvB{FTXS)C^KHeCv&3T?BX&Xr`%2yevAm0cn}snV={kPa z%SbgeKys=zM)P)JwGd}p*yZi$sU7PkYr_cjy@hKRY?r6gUpf04>K<*A1yUZ-B=x%2tjc!Y8tt|o4>@zS-gHb0A;e!*eUe5a z?)*%&A8efz)=aqSbritPJ&#bs;^Lr@XuN>^Y>IUq6rbhnxRKB44C}8z z2qc89+2S{>W=2}=q~J{6pb51oVxT!Wx|gHaeF8q1SfC--Dde&EPG_X+EfX>&a(Ov` zntx%@NKpSboxC&|=2}V)+-|zxPIAUVr1|-~+h%v3hx@oio&C9+TBiz#5}B0Z7=Lwa zR;1+~cPBp0au*^7P{i4YdD?@V8bja-Cje*+M8*;57_i71{;jP|g_ z9cYi#AK6zh&0ghdu@?YQ=ptFk{mK6O$SXW2zuFKGi&%mjBDAC)b0b6E0WrB7vI>zbbIKS$7LY>(w01h)5lEm-kxh`n;4B^vQ z!{chS;ZJdp%t<{o)o6AV1gcBHiFbKNu&Et~y8`Q4CvoU z)%J_YvBF|gm?keM&!G%KH^&2tOJhqa-pIdic)D$oZRP%2$-HY<%Y0j(+uC*~6)0o# z#!nQVtV`Ii02jYfdeQ+p>mSzv2gXus&(g1vr>>sW6z}tmlr2T}o;lY&*b8)SO3Mqi z+ieO^a)#KZrhe==M9RAJ=r7T^N_?n?zjE)CB%_eAxzgbMW%Oso@jF39$yaucOkoD! z@?@<894KMrpTMe+XkJQ}IyR1^Rr~wgSBWhT` z%@rb$!%k6XPUn)624-Hk?0WqduNh*7J?`{v4ep4czmV?YUG9_oc**yVqaIEUWS;PcLhd$K)-d%e^C{ zUrkBU`93pW|#3UF$?>t*NA}zaa}E*a4C?GbQON zcutK(5=5DWax7hBOqIhWBK+H9ad)ut zUY-ARI97W=&kzs{zn7zp!2K&4%!2!p*0%2{H{lS}uvj%&RefVPWNh5KDZ5j(J(lZxy=JHu^0li3eI-EqcHf z7DmDG8qEY#;Ftj$&P`&aXMKUXUM1|KYwEIMO?K8**N|UT>+qHv?hjduqwj24EZ`B< z63Txqjkk8PD1Lp5%-+nxC@Bat>nBW`#$z>c0HXg*Sb>DMitoB;s^rts_j(p9zm6qk7_PJBobaLiJjNK@r+kJM@a%o4VY{cH#z_Dw@LP5^l?P*PK zKg7GHXKDNuB^f3xyA#$N%m+{KAqn>82!?b9*HRvAF##YHL2Ly6WMT&X4-W5B^ymVM zF*fX|>9l>P`r8bsZ>f8WtXNsE$)%pMc^1oVm=7vYobsP zM9W>$*#;aY8T+~B4fEvGQ$5P7;erE|q$%H`dMIqx$-)A9V6%>eboM``l_SOp84wN0 zw5HS1Ve-x;= zU>^j`Z(Y0A10_9S8QB}|tW9yHfI$v%H%^-ce4ZPAA? zWk|wOq3-x%7!7P#3>z9KD)t>|8|+J#f7kuZ$B>1W7qyxvdo-u{|MDS8q#~^n*RL}& z(r?_IN7y11!tI@5>F+=E(HO0A@|U&b?0`{C&A$k19(YH+ntzdY*q^M|oR!oEM_70B z^AXIz=2$EMg%h1pvYl%1M4GP{tG1yGQ55~bkHzBk{rV>Tcw}O60b2P0x?a3d=&9$A zZ9tg++U?O)yOPJ?@n8=vaR%4U$8Crb|5!s$;^r~>Me$v<2P--(Wk~TM@IM=tAIb46 z1*$Sy9nVZ%z|to-NAwj0H5RWRR*_Je-B`yuhKOdRgrJ;Vbfio)9#dRbl9K3Q1g(Z7 z9Q|IUTFh65h!RHQ0Zg5V^u@=^(-yRN9i%@0F|;R|#lp)0>H!$GQ>}-$%O&Na_$aLc z)pcqtGeu$;w7cL_C<=QFq-&(g+b6q_kP*1mC}n^W;hIIeu<&8c{gTLhTFlw+lUG)w zSX>OGi__D#_V8qluCf1W4=H~v9M~7fc7(f)<978i-8-f3w<+*gR4aN$I$JZs!ll{OaDQIyk?D+P#cK)TT)a zbImM4udKXgh8(Ee-;m3HA6H>EV(sZ2it6u%4yXpz)h{{u)Y-SBtxr8w2bUzjM21^D zs(*Xa!Gqs}G6ocjkRI5EYM7ty!P54$MSx7`j(Yfbf7OY)PZ4!4kTO2ZaDiJRLC9Q$ z1679(VUqDwxoIeGfJj1UACkV;F5Sb9teByC7*u%=-Iie(OJOBLI9TcMDKlrx#6 zXnbj^R;suQvDACmF?_x4q{NNX8!OOl;ZY$yOcX6Hwy0DRaZmo~bq@WjZ8;ovw!EgQ zsTUW5(8j2YOW##wF`&tnpS$P`a@B}&*OAV)WR@uv@6R$}`58fL4&$hjWvr=_evyCc zG?P`;;8xQvkrKQz{+5@ch$BzalL{X?`1+kqtKaJ+PeQpaBnvn@0$CbCSQxffMzu~o zUFry#sN#~ZvhECNWlj+8n1Kx=>S5i0UWlm2Fz9bbUOgIVVTTWyW5V6l!VGCSsrb(J zoh^r5f$gPg@ZFD>#O94W6O_EBYEy2^k>Bj2bOk#GYWjM5Q-^goJ@(5aBr(ST*)Qtd z!l$~%waOgr?X;2%|2 z_6yT^8w90}kg@ptrn>RDROVq?rTEs5fB8~fJ?A)@FE|VFG@ILO6zY@NyGPSxqacHj zi}C<6GzcC(jE|i{!4ATct>z+#eFD$ZEUP%DWh8>@z(KXd0JD{8Ox9U48NCdrZ)K5S zJKARp0ui?7#1lQ?>c>r}s!@k}&tJ$EA+e~s^6}}xr6v{eG_8Ta1kDG8z^<3^+|e{HNi~8ZzWfHm+8^I7FjJNX=EN`?~H`ugz1s*S=dRY0g)N4%2}I6RFEA{lXY~zDKZ9l&kKvS+uaHweaU; z3`V)PzWHnU!`-7BTB3m#jL+Ym*!k&N>#A;}cZP>6-`T8ZgN>qDJyJDg1bI@fsR54+pVD-D7;b82W z;w;OJK2R{hI@+bk?us<`V?rI*>pBDdYoIc!JoG=s&N-&{? z*(RW}8Gdjzu<&wdo8@bcXV+=zEfMuL_P_;lrD_81GhygguV{Qb=i$4BT&-j8h+ z+WY`gAOLMOJ%*JWzH-D`pS<*jeeJUEPr$E~O*#Tra(h;luRYa46UvL6o^+J#Ab(g^ znq)9$Dw`0kR-Q#A6i0za>k?c3T%eFzNhqiXm!t?sYpk5YU>2Z$BtYySJNvfCeWm`X z4N?`~G+7WH@J>8%dxX=X8-nsErAql%baV=P?a_r}1GstNU^^`tGmik9IA(3L6#$U- z;05tMHzrAlP~T>0qfQ#qI!dNu3cGD<(5JkKF|xJP-usIx(lx2PS3@L_xMkLYB1KyS&N6_?TtL%dFs2b@Vv5uB z6Ro-esLNfiit_l9ZU|OqXyBmwX3fTQa|-9QjR>M3iJKP!i7@_>ZyricK#wL+C}3 z%rrZ<(#ZWo;9Z_LFxW4xIWz$_CXH|S$AuEU*|jWhnDSPv%&NDVM!jwVS;;o%dY5t& zVzja;sPk7Z*S+}D&*le}_1r^*RVY&WEPu7Qoj?l=0Wl>}mZrb`) z5-SI-VCx&71A6csM`1NVis;Gt?`&|9+%gjf4K+RY9%ondCb>fa7cL>1PR&L**#gZQ z`akNDOpflq+=5GvivTD0ZK|x>PIv>aY#sU3+40e8JVUWB_dUM-tyuWKBD=E}LQj}X zzXOh|x-y^>d6zt9@ges3KwezRXmQH#*yhZ{4ZdSKRX}XucML8_vOGN@rk0jc0od{P ztK!=zf&47k^>0h>dzbnm@PD`Sb}bPTuT0^~_YLI<#~afttz0>TcKc@4E_7o+qTNun zuKT{iq==^&(g7q44qK{*>KqwM>ll>KI3se`zO!MY(togF?zV-2=Z$h+9aV*G^6ae^ zD%Ra5GTVrx0I5=<-lKNZAuJ^u3`62Yj=)|!MeH@ck=v8Ghu8>Zc*rzeO%n|uo2~9#mr-~4{I2aE_u%OPr4WV z9DTjlOL#!BEIu#G9s8wtE!|?KSiWP`Bq9H&%+{Yr+aW%sEFmdlLJXCD^^GHxuM^)X zX&Vojah!!H*O_&An$_lYO(s?CXujtu8^=;+WX7x(>r5-@)=TMRT=NBJ@1;eHT$G|O zUf6#FgZ%Ale9Dt)zbyZ?-6v-d+K%x?tvgh!vAOZu>pJ5Rdc#BK3$pcI=~v^R(SWa8 zRfXHL=-esvIzVXltq5OCL6}zC(;9M3P> zkMs##%;KYPssL?wqHuOhu4S&4N$KB-C*nCu=n1LX$<=_$v)}jzSAtj44m8q!DJd~8 zObjhpoJ9!4PtP~LTk*C{&$j(^$uR8wL?ZhP{`t^Qr!#F(-~3$VvsFP%bSdqwtxTPG zlMo}Y|9A5BDFgdGQTmk^&fIxZ5x$0ICfAMZd?P~wl6AXQ3v38<#W!#jHF!lxKsLxd zJ1|kpcSOKyPmqrVbBQXd)Z~WI`K4aE@;4_Rf|(qww&P3UD`N_s*+5Uaul4lv$Ovpp z+S`6K9S?X5!H#5A^(+oYe=UE+1|yrSg3Zs@|*a3*!RR;umz+8ZU=YT77-NC@vqtH$(?Zi1`s>Oh_O6ISj_*-34W3knep(A3#gRnSaxVWDKl7#JcSoK83Jg$ zlzL3&P(`3%`CxpVn_SVUSl@=~RFo2hd6*?citj$bm%ItM;DF<4PYdxg&gdOiaQ&cU zu7sbr5~kRg82%`-lGKaG?~rZrRQ%q$yq+p^kfDw0>ouzC%GdJb0WjX0G0JMK(y#Wc zO_h)1S6SEwZYrhELe$7OHweDzPl3tN134zmi${J_Bx~`^Jt(WBD!busY^BM9?Q-b` zPRL{EsXrjeUSz=18dqViIG~Er)m%sT8ENP%FtR_6Xy5WPh_lNT4IkQlndSZBXM_A? zZFd$KZX6XQ`9AgdN=i<^eeeKoe^-`Uk5;|oa=gNlpoJJ-^4)$@ammqiUdl&$7-bgZ z6cDv;Sz|u+Mpz9TAWEeOGX;gvu~-cPwt_K?-T&L!vqW&K*}uKAg*bNs*5dznT50z5 zbaEwMH2vj8E3wn>Yyhzzo>%%Qy~qo8rllxUAPfs@XP>R!R9+t#F^Fvty(#Rkk*Eg@ zGc0B)NYFJlX{7V;)-%m{G=Y7EI;EJ|k*D0P|MZLPN(h=91h+25W3Vi_G3TI2lzKU? zaz(}(ZhSoa6b7{`%_QLEMwFhEj8Mvfmyh!1{+*8g2)J~SQHAX5?-dZNoYgHl8poK! zi$1J-=MGRT!K$(Y--@knOUu<^NB zUHwexFCTw-xOvqzfj)J0r7%;E%L2id>Z@}WB|v2*5ZMEi8t-09vyIaemf0c$WN_F` zDp4u_heb6dhfmozG+HY`%sy?e63VdTh@PmQZXyz-W~>v)GR^{PgF;-SZpn=;yGWpK zPgy~^8FT8q{CwJJGJU#Nu*0Z__AT_0{ZbSjK z9Ic}-d)KUt@(8B;(!SKb0)VB72)Z_6esE6J?N2-LPlu!jdO6WyMLTCZ$ zB@`hPAru>(gaa6m&@|GLK&T-?C`Xar3=n!zdPzX3BEtFQ+&lBW@16PGnfIUj&i&(N zCV%WbJ8RZn*|YYup7ngcAN0wJWLdd-XR|#PDB`=)Y9Ytx^E!_(OmZN~)6Hn_-f;SD z-lHwOJ7Ul0n*xy$SgCRvv?Zh4`1)BRmn5{!7TYVjD5#+eCqD+0s4QD@@5H`I^RbT- zp` z<wwqgUd5DVnv3DS%s&cH^63Za+0K7Uj&SCywhg%KHokI%VqE2_xlhNcl~wt2L+gIw3$soF~dljJ%PYv+d1ZxmYQ_*HMW3Ykv70IB$nF> z-iQX7hiAGYy+$g9QH5^~)#4?XikV@4Unap^E(+$B%PHc5Iu9FuE2$^|gl(zI#$Me< z`h{;hF0P$6s$~{aFHL+dK`d})W?>c!ys0DesLVBdhDMO3%CIuo77u~j6GVmB<@Dsn z?77Sp&+>>`1AA99ofjwJ#j~uKP{$Y-qTRf`&G7qCrER=7@dOp0FA{EQGD<-kD6=g{ z)Yvse+&T%n7cTc4WQ`m&<+W)Qnj2s$+XSD#Du8?>fNa{woYtl2caka%j_TInD6+BR z`)oeHFUUXkD5lZ|7h6oZxM053^bv|o+D>$+Z*0&F)|xvTLsTQ~J2czowgZx&;d0(%vmfnBD`Gz~%ekv(SSKRh6lO+&i}K!HJQ z#YQNbHhJgUnfo7b^kQI4`DYDJxdLsk_?#U}vPyQQaE()?i+L$w-R3717DXAqHfR`% zH>hNWbhVD4zMtxTi_319P}inSRUHEWfgRn}5xcC_R7PQQ$MdKD@55||$5_m3DIt~$ zV678k$t~GjA<%?QEymWpnA7dus8P`y5_j#im#=mNY?o%tOf8 zrEeg(jD!2p|K(p%96Ok*xgBIXqc#A357zD=@lqi zfNsDD4dPOP^?QiqnQyv|Y?|7lYB((Jv=|Nfh8X1?@46?WW5?GT$$=J)`?F60k23wL6q0Jhh|X#NPn^+Yi)M6R)f=Txls*Yk8%q&?HNEaC z%2i`E<}gLh-OObxT1@c@M+Nr$)# z4U)(rM2N3RXG0?Kue5m+J8iyGU$FG!L}MHFVeTatE;kVR`T-3JZOn+D5iKb-G#7n6 zhw}(jPYu{6QpCu?GKqPiCNo`o*$Mz-XtRIuzsflpYtti!)@K(WE%?CwZ`)&^{hd zUiT)J&)l1G&Df^S$+2iEQ;JG9+Nc)!*GXuo`6A-ivh+dyO$kaF>3iK~#*E(V(N)NV zd#hoAI;12icN1ge>qdYKzml5~F4H(-Q&SMq=2^F05lxx z4Az-UE5rp5G3gGXLId)R9UJ%t`^Ui%S1N|v(jRuL?rTX9+XLc(PI0zta*U9J_j0gn zOZ6zvi5G{AbmM+#;}n#q@=~yd!`j}Avx`;#SR(_N?Jky{>oxtTO*lN*==)cU?AWYW zXQ0IBz)}<%WN{%CsN+k=B3dQ9eE8|I_ z+V<^H==4Y{0pO89!#!OzDZ{~|x4j0lbvJeA>MrAhA(*pi_tkD6%BtV_P&Vk^Qs^sn z&%L>vE2^))314D@dd#2Q`0;GL`$>#mV+N-Eat_NjS*VEU3kJqeEpJ*;+|4^yJ9HCS z_Gpm)%&bF%T@PpV%tcNmUawHfm#&%RdXWng9>>)+{3zHsP!Hw{S-YDB|DevK`D{7Kl0aFI*L*PI+|HJEE z-rv-6Mhrxq3E^q-XFAA6A&Uo?TI!yE`NlSDG?t3lCfW%&Sd@_8%R zzDZJLHIw(sM9weJx=Vu(vrpMex@`s3>*VK%E$WB5b2g3oHu2^Ke2=XBVFkz%MpcE4 zD*NTW2=4>tsBh#wv_IJg!(IK9c0lC%b6OQSE^z*kSrq%uZs~*Q&_u??Dmg*<{Ai$h zUwx#O<7`;1AiYLr|5yTqJ6xO`})bCDQ!i-GyH7vP>>WpVdN+jcrcb$gbjgLZ{ zT^uT_JOgHEj=hxlt3~)f!bJ1+&c0R5@-$aNv|1@tx+7q!4n+O_h&Ky{N-g=J5ZI=g z5=`oxn}zfN((b$7qo!h!#Yaq^_br=1z_MNU~}+vEYx!I_I33>suYd6gdGzHNBW6- z!qz^dnP{>L!0E;cq?q+H?H0nvox4|7pjRZ};#{k#r-iQca#eav$^kUr<(io(5# zjpV%_R5%@dFgaQIBq(kAxj2>$cl>m`db>reRGmO}xZ>KFXnznfCU@i6wt+SD_CdL+qtu+FyWyba|fv)1+Wunv?F*?Aka3`J}>hz}~2 zkV+{ft@qb=ed*+ae#fEDn?Tcz0y~rdVsTTYH%DlU%@Xh+zAlA@sJwE6#{J2$-jy28 zymiZl>7Q7&&-Feh)a(HK!BxBG{AN%Czu1aZ`S&S)-2@9_bF+Oxmtb1PIeGEOz9@K} z;Dyi-p|IIrbI#d30U{y12nqX~!)LQR%V|DBtsQV5@dD_5A+k8o;1-qwl5;Z6GLN_{A9YPYzl4^QGb7Lh2?g zQr@pJl{K@_=N(S9>~{7!YirHs9l ze9*Iv{HDD1Zv6vAeax|1k#A+ScDSWa_xY^Z2kx`i`g(}bJ*jpN{iSuXw+Pq9%P7l|LIcwFVNCak3kebRKMDIRDmW?pm#kgN&8? zk3aN|4HxmN)6_Wa-(H4NlPe2s9B>Fi}B zUdocfn9$f93HM3SC>7w4T_9CN&K|?CU(v0_1HzgWSk}&yQxa?vpd_~kMXIVT3|mgF z?Y}w`AJ~`Ir*av?r@&&YD^h`}c`Yv~f{B zFSbGQ+)Px!bHHDOG{VWbX-Ov=MOzyfSI1nhR_yVVCPY${0TB&SPmb5RT z$$3oNue_=GibyqMOr^WwZq z7ZaGhyZ2L1Dl~d!$+OA5xCrgIJN%tlw^3OY93gpw??vpd*I&$+0R7(79LuUSmx8UU zC47%Ih`jr!BL4UnEZHu+?uowrtv^i}bT{%^fI!1cTOB36^SI_JBJnAr?=-V-B3HR8 z>P9((cYK*tjMjE9D~1r_2#1StNk_NK9MKvErg6wSeYimDX~j^}nIYSCk;2m@7~#v^ zylF#k3x%GZVl#@L3fRJ>%*UAP1S!L6HP*4O3HCU?=@dpZ)L#cDd{huF_Vf=8k=3gH z`kg(Xp*KDkw=@4SQ%WhSmnfB3>pKeUeUpf0Yt=LN!P~d*0}#^UVaVmP+bug%eiQDrG@(OS)@L~!baX-D5t@Juyuxm~TiZG0_A8hEowpyn|n#yiP& zi2)3;&^HXCPwr2a`8KBnMrQ=Ri4nUqy;A$ZPyw}7ME3ig@xHlUo1eXKyMEb}$fhxr z{wzOA|6V{-ToSnLmiI^P-@n`%Bb)vl)W;bHK+^S#B{22z6Sy-qu;gB_^i7c$-8wuDZCUYG?*fEaNRV` zg(5Th5awYLC6Da*3q?nDHR)b+&zSytxDH7|hix0|`5KcC40a-Qyx`9oZmS!#?^auy z=4JKz)d2ZN4!mXXQHZZfcDAX|efuR#cdqe4@#HYf_$-NTdT!olQ$PnfY-XBJ!j6uT z_`A?M`bMm;lS_0UqF~?|G9Ahts3B`JZkyu$UHReLhTp%IbO=Gy&DOu-{d|I6N0O`! zfi2h?%GztHRRsje&kJ8DpPUOk&Rg9M7x);(pW>rj{3i#m9g)SiTmN-VT20Q17jNg0 zM*j}!@`k+}O%k-)1%BSa>khofF(~H=wai-diE)h*Aiz>(IyY3&>zwh5% z(ViO@N#!_Q6#R1O-9iPHoZaXfnnnF_S}rgsptNL}nsq*N*IH|Ok4;5j{(MSnh?MP z#1T6I3M1>JNrYq1vxPQ0Fs;LVk=8@$WxXh?R`dt72Xz96o!sZluRQN+>eq>7n{;*+ zt~}3HZ|a#d(9KgGJ@+KHfQ%dcHifj(RT%{XEIHXq>_N2fVZlqV37d^M(|x;E`y-=8 zQaD>BG8$&n%o~LAB?X$t20mEX*7j)4c`%^cPkf^bd{@JHmY2~8P!T{5uQt~O_n(e= zIMQFgK-&r4H>+8p`=vG29Q6l%f{cq_IzXm~mohapT*aun3KM}GE)ySZNxm#}lg;Z) z!<{{heH@}WtKOjYSpW3prO3Jw8|GZX<^$zTf12P>qrbMO=o%oWsdYo1_t#1>uEv#B=r} zdLH+Dah0jko3^9z%RCf>SYjiYc|8m_V1=930^rQoRlQ2L`le%(pr>%tr2<4!*!b6$ znpaoSXRfiJ4+2BvdE$j&mTr-PCo`rgaS_+*;qA7rgGsAj;@v8A=bsd`Nc#`PfrD)) z_t#F&PX~)T1D5+W%Kcp_Ui)12-41r~*Jc7*-*Q5S6kDU+lV4R>JWtxnj-}Ehw4&wt ztu@Boo`-WT#awvVUB15)qMmz4PsiZu6OEA_zHg*l%bRAPbo&{o(7t4yFNHW_uysoF ze`aqcKE;^8^FC+E)VY!Z)Tg)qzD*C7EJ!lIH^UC$GVGxluXYo+`;sYuK{ zIELWQY%tCr9Ro>*r&oWl>AucNsv^;&<9x56Myiz z^4N@7SR4`tbqi1Eh98K+mmv4qaN(a!{Zld(9b}i$;9dIHNPKQu7+k_~BSK$G%zrCW zt@iYKp^N4H(o!e!1^{>WXA?UmXkOF{u*b@$haN+(g=WiGZ1|pdpFYX@AjW@H()R?% zJts*%9o>38Xw$=@Q(|^=WHeDDQ-8WB$sL(H0}8d4X&yh0J9GE{G-v!T2zLH=O3{OB%JLpxsw^tb@%3JMLNt;o&atmp5n2WW z(V=Q=Kinx00JxGqCF=_iJNnUgK|~0a;zmr)Dt0)jwfkjX@cSvl8-Y>*1N)+AU>o0j zlyg$<8EPR&5u#Q%d~|vFwQR_*H)*l13Uw*+lAaK3Q}c9 z8msvLB9RS5hyL}kV4l)H{O=U?&CPd5dLDZ8DWQ9xrWx}{`a%7mkE;|;HhXWN&(1nIpdu0XjJd`|)`O zKRBXdjt=GTNp2i}!11+P3~8`h?B>*or}PK=VnAyki^*SpJ$tvm!1NfWs({5{$lExJv+G%Fnwoteg6?osY6~ z{89p9PF{{&hqN+V#d5ESmD_096O$7gwL%zzJK~Q{*ZZwhSy(bVG3!XqQ}Z|7oP&t< zrtA{-$R4}sIdMG#A|<$e~( z+&90!6-Xv7jlm;%Ul!gz-M~6m<#e0Hi_GSo7d7`!;2B67WHY8~&J&^B+$0^bF+%`e zLS~y9tFJ#x=QS1L7@WLhX!bg}L8@VSK&hS{v7;>-2dxY6heowNe;t<|Q)}7wW;Hmz$y6la%*~Dvgjg}NY;s7~l`h9v_@B9bj z%^42IE$sfcqjGA52W^nA7C8jsGfAuliCWRBRP|@Zpia8o5RM;Y>kSO4-WLml)PF24 zH4eN1TB%46naA#~lF@|e6_Ls$SX~A|okK-FBS8mz%IoZ$Of|p#u)~+SYwPM}tP#wb zC6R)={$qK1IofHmQFE$21UNDnO*m8!BI^#6cnJ)A&AjA-!>#2a-~9G~P=NK>OpVk9 z5N5bkf>7yK7UBF?k{6+~bZX@pRbj)Y<#bQcinRB1x_)mhD-A`EA{yY0zG7Jjs#qB@ zvBDfUjKMv23hvEpl~!TvQdN5|&HMRVMdQm!WDKspK7AJiE_p{@iL7E9*b#@gY z$3KbaH)}VP0N??XP+y`<1^m3islqWOL&ri~g;bqq%Z=iaF=#Sg#BQ!M=n9*4{7E`5 zb8%*ZCPUsG&)KKNUvIW*t{EPgKX0c7*_K#O!~CdRy`G#{R%uAQ&Ihp`VNaZZACcSl znR~gKS+zp;#Ot;yD^4q>Q1SdPiekfBp&_InQo|Ook=7c@&CNh4c%gPqro?tpz{6hE zCi9nh1Y^E)P&-2|=LfZ(HJ2zQ7)6L2UX(s5p{u#t6v_F7-9BHZz_zvDLduuW6(Jkf zs90m&^#!Y7Tn6Toevfyd8YZ3IF=nmR^&SS0kjGl7%{NOAa76Q|L9!+RsL-=Ie*sT^ zzst*O&?#!gUBTWBleoH5R{DfoU~f`pr=Y4#?-m`lY5tozH{Hsz>XZp{I#UP8UPN5F zn!vMs*6@YAYlR0ts3U22JHRN-sGz{zupCjcUa}1+X$qZ(-{$x^K9=d9E^4GRC>9;> zQQA_^_e7pW4pbdePWpg>^Jn10G7N56j6R#?7;K0T+s;8mbRm%fHJK-bk&%JSZ{8!8 zUro>du5;1vxRw(2@acJ%$y~BT62D~g?6SW(L>rIaF+%$V0r12?<-{cr1PW2$;JB+} z>PO1Xh1mJk-+b5PDjy{PAOO}1J}LM`mdO9Ba)E^P5)3JII)HD>dH-`fE<|TenZ2nRIjGB2N+*TpE`7 z5BR1^+CEsGRk0%y<`Gl!FIEC~K9~~m)oQ~Q*fnX#n%)g1$kOps#m_8re^BkE51oO< zSrk^(7CH$pKixqgZf>IW_b*#;d|P>Pp-ifn7_apzhwYixHG*_vnDY};*sf$xUfn~2 zGp0OK+Zy^&Z6BN-fE+jHqSTFF?}#)+LVv|#3}m<6Y=Am(?>M~LuS;e@YeGT;0_PiC z#!@7TO3*!pMP-YY({^Hy#%r(E2UeQyb5xC4CW@P_8(-JZUKzChnvZXw5oo+XhB2EQ+<@;j>Pn>L)IQjZHft2z-Gb}wJKO%fE=*WAz% zV-h4@gVj;eS7PhX?2Ug#1az*Q>7E)AtSr_k@z;AhIb|q0q3cw9LvP$x?q&bH?3)^v zQV@0d_nJ>SM&P3(lgq)x;q_+4X*)t*Yj;rn8!(^kmwI7}8<(oHxIb}^Eld`_D+tLD z7Qy%)apJ#N46Q%ATtCn)a7+x|z94G0t3K`Jn(kTSNTlWpY+!lpBl0>Lriba=q54n+ zj-fvsA(&D%VCdB{@b&aURs=QiLHq2WxiwZZdKA}_R8(xt-+S}Au?w0<_xQ>TKP+M! z@fLi0A9aVBlPPL;@2-H`xTnVuM$Z$o7l8e>vc!`}OWZRAG8vAv3}8QqT?q_WhaPNe zEdj<9(wCQ&{D1Kk1P?2;95yEX$#LrCqn~a`)C0TF1uW=@t?Wf(m~%);w0P+JhNQ22 z>EpH6_&Ebgb#=)6_~c*g)-nCz$F&CS5q34r^9PZ=Qzw8omN6ylP>_lv`q*|DECtK+ zT$6;rp`i>&;UC;tDCP>*!SK_hp9apxcte8PbyxIx4aT&CT~sv9Joc>7jSYJF>xH{dBBa8QZBzg%OYXf8jj#SJ zV+6_{1h(#HYF$OwtQ{8JS@>io9e+dV3jW z+23_y*hjY8m1V7b#)enkVCUHP_q2Jl(16PKq1)5MH5O$gXjnZ0-YijFS&Yhz=vh%B zJ1JRze5BnZA77!V%4L5e?n&W`dfV0eRIB#3q2IWCM0pc}D(=>CTmXkIVkZhVV#`}v zxfi~9j@lU8)Ttea$bb#fB563+h;*m)5?WdABwiwDEGgtuJm8_7ay2t_r%q@I5k9$Ei7iuoTtq+;uY3sgD}ylZ_N92GMQM`EwYa%5@m>H zzjA#iE+TsjMmK9KRZ;&Yo`$UB7xhQs8_&> z!D4y9w?4l@SNK`c-Yohy-{LHF_?3fOZ%7CD5nfgWZ#}(mRIxwzn}4GUi!UqUQ?f@+ zwJ8smLUlSNq^KVyb|nQAUxrZ97umXWDzDDYFVLS zuEyFeSdiY%zPRXQXQxv7)2Jhnr7mFB<3mG)}W>77`Iq8R8r-Y z&H9m31)tdwIMSD!A>5Yi{9}`Ck9Jry*!djrx{cyb~%t77a5XcAjnA7%S)~Qiy)kT$4mD~aIELeaPSM;%iIehM`&n` z19+Y`YTbJpB$eK^A_1}#rBdR`QkqMWo3!~AUT~aRtaZv%CJQ5DsUFfEC24{TdSd|t z8iM^Y3^v&_C?Bv!ld(^aB7FUy?^jeC|ep zcjLhR;VYq}p~Ya(rF@+av_{`6{lXfCzvo^(Gz(ZwI+5yy!o_<8?DIjO({hs;rh<{FIfhsW9X?qKA;LW<~58Il6RdelM(S znPR&6ub8+04cnY&L|5O^U-~2c4$Ne@r`;^lOADeJ=v&&;1Zi!%`U_VN literal 0 HcmV?d00001 diff --git a/doc-site/docs/images/zeto-arch.svg b/doc-site/docs/images/zeto-arch.svg new file mode 100644 index 0000000..1fd9a62 --- /dev/null +++ b/doc-site/docs/images/zeto-arch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc-site/docs/implementations/anon.md b/doc-site/docs/implementations/anon.md new file mode 100644 index 0000000..ee40c4e --- /dev/null +++ b/doc-site/docs/implementations/anon.md @@ -0,0 +1,16 @@ +# Zeto_Anon + +| Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ------------------ | --------------- | ---------- | --- | --------------- | ------------------- | +| :heavy_check_mark: | - | - | - | - | 326,583 | + +This is the simplest version of the ZKP circuit. Because the secrets required to open the commitment hashes, namely the output UTXO value and salt, are NOT encrypted and published as part of the transaction payload, using this version requires the secrets to be transmitted from the sender to the receiver in off-chain channels. + +The statements in the proof include: + +- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) +- the sum of the input values match the sum of output values +- the hashes in the input and output match the hash(value, salt, owner public key) formula +- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes + +There is no history masking, meaning the associations between the consumed input UTXOs and the output UTXOs are in the clear. diff --git a/doc-site/docs/implementations/anon_enc.md b/doc-site/docs/implementations/anon_enc.md new file mode 100644 index 0000000..25f0aab --- /dev/null +++ b/doc-site/docs/implementations/anon_enc.md @@ -0,0 +1,17 @@ +# Zeto_AnonEnc + +| Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ------------------ | --------------- | ------------------ | --- | --------------- | ------------------- | +| :heavy_check_mark: | - | :heavy_check_mark: | - | - | 425,338 | + +This verison of the ZKP circuit adds encryption that makes it possible to provide data availability onchain. The circuit uses the sender's private key and the receiver's public key to generate a shared secret with ECDH, which guarantees that the receiver will be able to decrypt the values. The encrypted values include the value and salt of the output UTXO for the receiver. With these values the receiver is guaranteed to be able to spend the UTXO sent to them. + +The statements in the proof include: + +- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) +- the sum of the input values match the sum of output values +- the hashes in the input and output match the hash(value, salt, owner public key) formula +- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes +- the encrypted values in the transaction are derived from the receiver's UTXO value and encrypted with a shared secret using the ECDH protocol between a random private key and the receiver (this guarantees data availability for the receiver, because the public key for the random private key used by the sender is published in the transaction) + +There is no history masking, meaning the association between the consumed input UTXOs and the output UTXOs are in the clear. diff --git a/doc-site/docs/implementations/anon_enc_nullifier.md b/doc-site/docs/implementations/anon_enc_nullifier.md new file mode 100644 index 0000000..c9cc213 --- /dev/null +++ b/doc-site/docs/implementations/anon_enc_nullifier.md @@ -0,0 +1,16 @@ +# Zeto_AnonEncNullifier + +| Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ------------------ | ------------------ | ------------------ | --- | --------------- | ------------------- | +| :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | - | - | 2,472,994 | + +This implementation adds encryption, as described in the section above for Zeto_AnonEnc, to the pattern Zeto_AnonNullifier above. + +The statements in the proof include: + +- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) +- the sum of the nullified values match the sum of output values +- the hashes in the output match the hash(value, salt, owner public key) formula +- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers +- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash +- the encrypted values in the transaction are derived from the receiver's UTXO value and encrypted with a shared secret using the ECDH protocol between a random private key and the receiver (this guarantees data availability for the receiver, because the public key for the random private key used by the sender is published in the transaction) diff --git a/doc-site/docs/implementations/anon_enc_nullifier_kyc.md b/doc-site/docs/implementations/anon_enc_nullifier_kyc.md new file mode 100644 index 0000000..850dc4d --- /dev/null +++ b/doc-site/docs/implementations/anon_enc_nullifier_kyc.md @@ -0,0 +1,17 @@ +# Zeto_AnonEncNullifier + +| Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ------------------ | ------------------ | ------------------ | ------------------ | --------------- | ------------------- | +| :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | - | 2,414,345 | + +This implementation adds encryption, as described in the section above for Zeto_AnonEnc, to the pattern Zeto_AnonNullifierKyc above. + +The statements in the proof include: + +- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) +- the sum of the nullified values match the sum of output values +- the hashes in the output match the hash(value, salt, owner public key) formula +- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers +- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash +- the sender and receiver public keys are included in the Sparse Merkle Tree for the KYC registry, represented by the latest root hash known to the smart contract +- the encrypted values in the transaction are derived from the receiver's UTXO value and encrypted with a shared secret using the ECDH protocol between a random private key and the receiver (this guarantees data availability for the receiver, because the public key for the random private key used by the sender is published in the transaction) diff --git a/doc-site/docs/implementations/anon_enc_nullifier_non_repudiation.md b/doc-site/docs/implementations/anon_enc_nullifier_non_repudiation.md new file mode 100644 index 0000000..b5fcec7 --- /dev/null +++ b/doc-site/docs/implementations/anon_enc_nullifier_non_repudiation.md @@ -0,0 +1,21 @@ +# Zeto_AnonEncNullifierNonRepudiation + +| Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ------------------ | ------------------ | ------------------ | --- | ------------------ | ------------------- | +| :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | - | :heavy_check_mark: | 2,763,071 | + +The concept of "non-repudiation" is introduced in this implementation pattern. + +Since all onchain states are hashes, with ownership information for the assets hidden, it's possible that a participant can send a transaction but subsequently deny it. Because the transaction signer account no longer reflects the identity of the asset owner, as discussed above, it will be impossible to know who was the sender of a transaction from purely looking at the onchain data, which is exactly the point for Zeto's anonymity support. This gives a malicious party the ability to gain repudiation, or deny that they were responsible for a past transaction. + +This implementation pattern addresses that concern by encrypting the ownership information of each UTXO involved in a transaction with an authority's registered key. Only the designated authority will be able to decrypt the ownership information. The encryption is performed inside the ZKP circuit, thus guaranteeing that they are the actual owners of the UTXOs. + +The statements in the proof include: + +- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) +- the sum of the nullified values match the sum of output values +- the hashes in the output match the hash(value, salt, owner public key) formula +- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers +- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash +- the encrypted values in the transaction contains cipher texts derived from the receiver's UTXO values and encrypted with a shared secret using the ECDH protocol between a random private key and the receiver (this guarantees data availability for the receiver, because the public key for the random private key used by the sender is published in the transaction) +- the encrypted values in the transaction contains cipher texts derived from the receiver's UTXO values and encrypted with a shared secret using the ECDH protocol between a random private key and the authority's public key diff --git a/doc-site/docs/implementations/anon_nullifier.md b/doc-site/docs/implementations/anon_nullifier.md new file mode 100644 index 0000000..efb40f0 --- /dev/null +++ b/doc-site/docs/implementations/anon_nullifier.md @@ -0,0 +1,23 @@ +# Zeto_AnonNullifier + +| Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ------------------ | ------------------ | ---------- | --- | --------------- | ------------------- | +| :heavy_check_mark: | :heavy_check_mark: | - | - | - | 2,005,587 | + +To mask the association between the consumed UTXOs and the output UTXOs, we hide which UTXOs are being consumed by each transaction. + +To achieve this, we employ the usage of nullifiers. It's a unique hash derived from the unique commitment it consumes. For a UTXO commitment hash(value, salt, owner public key), the nullifier is calculated as hash(value, salt, owner private key). Only the owner of the commitment can generate the nullifier hash. Each transaction will record the nullifiers in the smart contract, to ensure that they don't get re-used (double spending). + +In order to prove that the UTXOs to be spent actually exist, we use a merkle tree proof inside the zero knowledge proof circuit. The merkle proof is validated against a merkle tree root that is maintained by the smart contract. The smart contract keeps track of all the new UTXOs in each transaction's output commitments array, and uses a merkle tree to calculate the root hash. Then the ZKP circuit can use a root hash as public input, to prove that the input commitments (UTXOs to be spent), which are private inputs to the circuit, are included in the merkle tree represented by the root. + +The end result is that, from the onchain data, no one can figure out which UTXOs have been spent, while double spending is prevented. + +The statements in the proof include: + +- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) +- the sum of the nullified values match the sum of output values +- the hashes in the output match the hash(value, salt, owner public key) formula +- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers +- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash + +![nullifiers](../images/nullifiers.jpg) diff --git a/doc-site/docs/implementations/anon_nullifier_kyc.md b/doc-site/docs/implementations/anon_nullifier_kyc.md new file mode 100644 index 0000000..73e575c --- /dev/null +++ b/doc-site/docs/implementations/anon_nullifier_kyc.md @@ -0,0 +1,20 @@ +# Zeto_AnonNullifierKyc + +| Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ------------------ | ------------------ | ---------- | ------------------ | --------------- | ------------------- | +| :heavy_check_mark: | :heavy_check_mark: | - | :heavy_check_mark: | - | 2,310,424 | + +The concept of "KYC with privacy" is introduced in this implementation pattern. + +How to enforce a policy of "all senders and receivers of a transaction must be in a KYC registry", while maintaining anomymity of the sender and the receiver? The solution is similar to how nullifiers are supported, via merkle tree proofs. + +The implementation of this pattern maintains a KYC registry in the smart contract as a Sparse Merkle Tree. The registry is maintained by a designated authority, and includes the public keys of entities that have cleared the KYC process. Each transaction must demonstrate that the public keys of the sender and the receivers are included in the KYC merkle tree, by generating a merkle proof and using it as a private input to the ZKP circuit. + +The statements in the proof include: + +- each value in the output commitments must be a positive number in the range 0 ~ (2\*\*40 - 1) +- the sum of the nullified values match the sum of output values +- the hashes in the output match the hash(value, salt, owner public key) formula +- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers +- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash +- the sender and receiver public keys are included in the Sparse Merkle Tree for the KYC registry, represented by the latest root hash known to the smart contract diff --git a/doc-site/docs/implementations/index.md b/doc-site/docs/implementations/index.md new file mode 100644 index 0000000..2892d13 --- /dev/null +++ b/doc-site/docs/implementations/index.md @@ -0,0 +1,26 @@ +# Overview of Zeto Token Implementations + +Zeto is not a single privacy-preserving token implementation. It's a collection of implementations that meet a wide range of requirements in different use cases. The collection will continue to grow as new patterns are implemented. + +Below is a summary and comparison table among the current list of implementations. + +| Fungible Token Implementation | Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ----------------------------------- | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | ------------------- | +| Zeto_Anon | :heavy_check_mark: | - | - | - | - | 326,583 | +| Zeto_AnonNullifier | :heavy_check_mark: | :heavy_check_mark: | - | - | - | 2,005,587 | +| Zeto_AnonEnc | :heavy_check_mark: | - | :heavy_check_mark: | - | - | 425,338 | +| Zeto_AnonEncNullifier | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | - | - | 2,472,994 | +| Zeto_AnonNullifierKyc | :heavy_check_mark: | :heavy_check_mark: | - | :heavy_check_mark: | - | 2,310,424 | +| Zeto_AnonEncNullifierKyc | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | - | 2,414,345 | +| Zeto_AnonEncNullifierNonRepudiation | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | - | :heavy_check_mark: | 2,763,071 | + +| Non-Fungible Token Implementation | Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| --------------------------------- | ------------------ | ------------------ | ---------- | --- | --------------- | ------------------- | +| Zeto_NfAnon | :heavy_check_mark: | - | - | - | - | 271,890 | +| Zeto_NfAnonNullifier | :heavy_check_mark: | :heavy_check_mark: | - | - | - | 1,450,258 | + +The various patterns in this project use Zero Knowledge Proofs (ZKP) to demonstrate the validity of the proposed transaction. There is no centralized party to trust as in the Notary pattern, which is not implemented in this project but [in the Paladin project](https://lf-decentralized-trust-labs.github.io/paladin/head/concepts/tokens/). + +Using ZKPs as validity proofs, each participant can independently submit transactions to the smart contract directly. As long as the participant is able to produce a valid proof, the transaction will be successfully verified and allowed to go through. + +This project includes multiple ZKP circuits to support various privacy levels with Zeto. diff --git a/doc-site/docs/implementations/nf_anon.md b/doc-site/docs/implementations/nf_anon.md new file mode 100644 index 0000000..453480a --- /dev/null +++ b/doc-site/docs/implementations/nf_anon.md @@ -0,0 +1,14 @@ +# Zeto_NfAnon + +| Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ------------------ | --------------- | ---------- | --- | --------------- | ------------------- | +| :heavy_check_mark: | - | - | - | - | 271,890 | + +This implements a basic non-fungible token. + +For non-fungible tokens, the main concern with the transaction validity check is that the output UTXO contains the same secrets (id, uri) as the input UTXO, with only the ownership updated. + +The statements in the proof include: + +- the output UTXO hashes are based on the same id, uri as the input UTXO hashes +- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes diff --git a/doc-site/docs/implementations/nf_anon_nullifier.md b/doc-site/docs/implementations/nf_anon_nullifier.md new file mode 100644 index 0000000..0d9b56a --- /dev/null +++ b/doc-site/docs/implementations/nf_anon_nullifier.md @@ -0,0 +1,13 @@ +# Zeto_NfAnonNullifier + +| Anonymity | History Masking | Encryption | KYC | Non-repudiation | Gas Cost (estimate) | +| ------------------ | ------------------ | ---------- | --- | --------------- | ------------------- | +| :heavy_check_mark: | :heavy_check_mark: | - | - | - | 1,450,258 | + +This implements a non-fungible token using nullifiers, thus hiding the spending graph. + +The statements in the proof include: + +- the output UTXO hashes are based on the same id, uri as the input UTXO hashes +- the sender possesses the private BabyJubjub key, whose public key is part of the pre-image of the input commitment hashes, which match the corresponding nullifiers +- the nullifiers represent input commitments that are included in a Sparse Merkle Tree represented by the root hash diff --git a/doc-site/docs/index.md b/doc-site/docs/index.md new file mode 100644 index 0000000..0eff4e2 --- /dev/null +++ b/doc-site/docs/index.md @@ -0,0 +1,27 @@ +# Zeto + +Zeto is a collection of privacy-preserving token implementations on EVM, using Zero Knowledge Proof to enforce a varieties of tokenonmic policies, suited for use in enterprise use cases such as CBDCs, tokenized deposits, security trading that meet regulatory requirements such as KYC. + +![Zeto overview](./images/zeto-arch.svg) + +Zeto tokens give enterprises control of sensitive information without compromising transparency or scalability. + +The Zeto project is Apache 2.0 open source, with open governance through [Linux Foundation Decentralized Trust](https://www.lfdecentralizedtrust.org). + +## Programmable privacy for EVM + +The Ethereum Virtual Machine (EVM) powers over 80% of global blockchain projects, making it the 'de facto' +runtime environment for both enterprise and permissionless networks. + +However, there are requirements for enterprise use cases that are not met by the core standard +of EVM. The Zeto project is part of a larger effort, [the Paladin project](https://lf-decentralized-trust-labs.github.io/paladin/head/), which brings latest generation of innovation in solving these requirements in the +EVM ecosystem, and provides a comprehensive enterprise grade Apache 2.0 open source stack to deliver them. + +- Anonymity for all parties involved in transactions +- Confidential transaction details +- Transaction history masking to prevent tracking +- Selective data sharing +- Confidential business logic +- Privacy preserving smart contracts +- Private token and asset management +- Atomic transactions across privacy domains diff --git a/doc-site/docs/stylesheets/zeto.css b/doc-site/docs/stylesheets/zeto.css new file mode 100644 index 0000000..e4969dd --- /dev/null +++ b/doc-site/docs/stylesheets/zeto.css @@ -0,0 +1,44 @@ +[data-md-color-scheme="zeto"] { + --md-primary-fg-color: #F4FCFC; + --md-primary-fg-color--light: #2cd3d3; + --md-primary-fg-color--dark: #2cd3d3; + --md-primary-bg-color: #107070; + --md-primary-bg-color--light: #9E9E9E; + --md-primary-bg-color--dark: #9E9E9E; + --md-typeset-border-color: #1EC4C4; +} + +[data-md-color-scheme="zeto"] footer { + border-top: solid 1px #1EC4C4; + color: #107070; + background-color: #F4FCFC; +} + +[data-md-color-scheme="zeto"] img[src$="#only-dark"] { + display: none; +} + +[data-md-color-scheme="zeto-dark"] { + --md-primary-fg-color: #212121; + --md-primary-fg-color--light: #212121; + --md-primary-fg-color--dark: #20E2E2; + --md-primary-bg-color: #1EC4C4; + --md-primary-bg-color--light: #9E9E9E; + --md-primary-bg-color--dark: #9E9E9E; + --md-typeset-a-color: #1EC4C4; + --md-default-bg-color: #2C2C2C; + --md-default-fg-color--light: #EEEEEE; + --md-typeset-color: #EEEEEE; + --md-code-bg-color: #212121; + --md-code-text-color: #9E9E9E; + --md-code-fg-color: #9E9E9E; + --md-code-hl-punctuation-color: #9E9E9E; + --md-code-hl-name-color: #20E2E2; + --md-code-hl-string-color: #29c361; +} +[data-md-color-scheme="zeto-dark"] .md-tabs__link { + font-weight: bolder; +} +[data-md-color-scheme="zeto-dark"] img[src$="#only-light"] { + display: none; +} diff --git a/doc-site/mkdocs.yml b/doc-site/mkdocs.yml new file mode 100644 index 0000000..61e7418 --- /dev/null +++ b/doc-site/mkdocs.yml @@ -0,0 +1,117 @@ +site_name: Zeto +repo_name: hyperledger-labs/zeto +repo_url: https://github.com/hyperledger-labs/zeto +theme: + name: material + custom_dir: overrides + logo: assets/paladin-logo-light.svg + logo_dark: assets/paladin-logo-dark.svg + favicon: assets/paladin-icon-light.png + icon: + repo: fontawesome/brands/github + palette: + # Palette toggle for light mode + - media: '(prefers-color-scheme: light)' + scheme: zeto + toggle: + icon: material/brightness-7 + name: Switch to dark mode + # Palette toggle for dark mode + - media: '(prefers-color-scheme: dark)' + scheme: zeto-dark + toggle: + icon: material/brightness-4 + name: Switch to light mode + primary: custom + features: + - content.code.copy + - navigation.expand + - navigation.footer + - navigation.instant + - navigation.tabs + - navigation.tabs.sticky + - navigation.sidebar + - navigation.tracking + - navigation.path + - navigation.indexes +extra_css: + - stylesheets/zeto.css +markdown_extensions: + - abbr + - admonition + - attr_list + - def_list + - footnotes + - md_in_html + - toc: + permalink: true + toc_depth: 3 + - pymdownx.arithmatex: + generic: true + - pymdownx.betterem: + smart_enable: all + - pymdownx.caret + - pymdownx.details + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.keys + - pymdownx.magiclink: + repo_url_shorthand: true + user: squidfunk + repo: mkdocs-material + - pymdownx.mark + - pymdownx.smartsymbols + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.tabbed: + alternate_style: true + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.tilde +plugins: + - include-markdown: + rewrite_relative_urls: false + - literate-nav + - search + - mike +extra: + analytics: + provider: google + property: !ENV GOOGLE_ANALYTICS_KEY + version: + provider: mike + generator: false +exclude_docs: | + _includes/ +nav: + - Introduction: + - Introduction: index.md + - Concepts: concepts/basics.md + - How Zeto Works: concepts/how-zeto-works.md + - Implementations: + - Overview: implementations/index.md + - Fungible: + - Zeto_Anon: implementations/anon.md + - Zeto_AnonNullifier: implementations/anon_nullifier.md + - Zeto_AnonEnc: implementations/anon_enc.md + - Zeto_AnonNullifierKyc: implementations/anon_nullifier_kyc.md + - Zeto_AnonEncNullifier: implementations/anon_enc_nullifier.md + - Zeto_AnonEncNullifierKyc: implementations/anon_enc_nullifier_kyc.md + - Zeto_AnonEncNullifierNonRepudiation: implementations/anon_enc_nullifier_non_repudiation.md + - Non-Fungible: + - Zeto_NfAnon: implementations/nf_anon.md + - Zeto_NfAnonNullifier: implementations/nf_anon_nullifier.md + - FAQs: faqs.md + - Glossary: glossary.md + - Contributing: + - Ask a Question: contributing/asking-a-question.md + - How to contribute: contributing/how-to-contribute.md + - Report a bug: contributing/reporting-a-bug.md + - Request a change: contributing/requesting-a-change.md diff --git a/doc-site/overrides/main.html b/doc-site/overrides/main.html new file mode 100644 index 0000000..8d9f505 --- /dev/null +++ b/doc-site/overrides/main.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} + +{% block outdated %} + You're not viewing the latest version. + + Click here to go to latest. + +{% endblock %} diff --git a/doc-site/overrides/partials/header.html b/doc-site/overrides/partials/header.html new file mode 100644 index 0000000..f5368d5 --- /dev/null +++ b/doc-site/overrides/partials/header.html @@ -0,0 +1,161 @@ + + + +{% set class = "md-header" %} +{% if "navigation.tabs.sticky" in features %} + {% set class = class ~ " md-header--lifted" %} +{% endif %} + + +

+ + + + {% if "navigation.tabs.sticky" in features %} + {% if "navigation.tabs" in features %} + {% include "partials/tabs.html" %} + {% endif %} + {% endif %} +
\ No newline at end of file diff --git a/doc-site/overrides/partials/logo.html b/doc-site/overrides/partials/logo.html new file mode 100644 index 0000000..15a370c --- /dev/null +++ b/doc-site/overrides/partials/logo.html @@ -0,0 +1,25 @@ + + + +Paladin +Paladin diff --git a/doc-site/overrides/partials/nav.html b/doc-site/overrides/partials/nav.html new file mode 100644 index 0000000..e81caff --- /dev/null +++ b/doc-site/overrides/partials/nav.html @@ -0,0 +1,34 @@ +{#- + This file was automatically generated - do not edit +-#} +{% import "partials/nav-item.html" as item with context %} +{% set class = "md-nav md-nav--primary" %} +{% if "navigation.tabs" in features %} + {% set class = class ~ " md-nav--lifted" %} +{% endif %} +{% if "toc.integrate" in features %} + {% set class = class ~ " md-nav--integrated" %} +{% endif %} + diff --git a/doc-site/requirements.txt b/doc-site/requirements.txt new file mode 100644 index 0000000..1bd4b36 --- /dev/null +++ b/doc-site/requirements.txt @@ -0,0 +1,39 @@ +babel==2.16.0 +bracex==2.5.post1 +certifi==2024.8.30 +charset-normalizer==3.4.0 +click==8.1.7 +colorama==0.4.6 +ghp-import==2.1.0 +idna==3.10 +importlib_metadata==8.5.0 +importlib_resources==6.4.5 +Jinja2==3.1.4 +Markdown==3.7 +MarkupSafe==3.0.2 +mergedeep==1.3.4 +mike==2.1.3 +mkdocs==1.6.1 +mkdocs-get-deps==0.2.0 +mkdocs-include-markdown-plugin==7.0.0 +mkdocs-literate-nav==0.6.1 +mkdocs-material==9.5.44 +mkdocs-material-extensions==1.3.1 +packaging==24.2 +paginate==0.5.7 +pathspec==0.12.1 +platformdirs==4.3.6 +Pygments==2.18.0 +pymdown-extensions==10.12 +pyparsing==3.2.0 +python-dateutil==2.9.0.post0 +PyYAML==6.0.2 +pyyaml_env_tag==0.1 +regex==2024.11.6 +requests==2.32.3 +six==1.16.0 +urllib3==2.2.3 +verspec==0.1.0 +watchdog==6.0.0 +wcmatch==10.0 +zipp==3.20.2 \ No newline at end of file diff --git a/resources/c-utxo-zkp-1.jpg b/resources/c-utxo-zkp-1.jpg deleted file mode 100644 index 7422661a060519c36f8fd59eb9f32a657efa38b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 886352 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%0A49>$H1+H;acx=RdUSb{!m(jTwC$bs= zQTma%bkH{I99G4$kgloV;dXcFi-hcC1E^3Xd`xSgmYIoJk(o&%VIiSqXY+gQw~H%r z|6EcR3P*(Z$Jm2zs2u6VY9*#!3_7+FZz!nO(7UelK542TxJ%Z>zn)h;oIyf7?=OaP z;?A=tx4%za={~}|jzzfM|Cz*kpz2Ctwm1<1D*Bz7H*KrUe|*fq?%VZ-e)c~~ENYrt zQ=XwTeOO!A5Fim^VQ*+$(JzU9A#UMBCa+;t5^$fn5}woj{g{JxW8*qi9QYQ0`_b+W z%dTDyq^zI`F$+)jW(9yj&`@06A=g-fNep2G82n<1OTwo<+fJw;`f$woZJ=nY4db3* z6%A-B+G-d|o?BW6+-_8~d6{dVuiOIkf_m{C+i+j>3ADT6?5$!V$@-h&99ZMEigcTNX_6E7zl6?XlA^x?CrxO!v);^Kd7`LAu zW2()EN-pHS@i$Gfad{f*vl(AIjkM-p6?!Omw|(NqLqTjR+IN4w=$IJuqIXQFG2$I+ zO$Sm6SsAZ>tV$TmU+I~&w8eHRY0(mBJ$uscn)X-AM)&xhhr=!F<&uuAeObG(3JaiN zjnlJ?g(rgE=H9PhM(LxaZaJCnD#{;H-1%#vgR^Q zWj@!TzLkA?{SbeN2$iS0Ra-oqO_K|EPIZ~q7YA~X)vBu-$%kt1?cMJI>dfH6LM|nJ z&*Z5ok1SOeZTzcl%TmcJ9QrV?nVM@~DPx`Rr%%2PPXKb4s|{psnGN4^2}hk-+KF*( zh-}c7oDt^-fYvR$s2C#Lxv%7G=IEhm*5Cksw(x3vr8&S%GF}ERfIDSf6kN2ZZ0%{( zZh0}Z?cRVX?3e3CoN6paHZZGrY)!mdX0m7*L}KwU*I3z|<-{xXBUuUa2#Xn$+F5xQ zX?bdxC;)lQ-(Nr%>K*Zjsbk-Pkk;dQQ0#oS=@`tcJRFYW_Bd_ql8!II03{hCsvN~2 z6?iznx5SJ(f6|&P&^wlV`MU4&4dN3CN>D;>-L{GXdfYf+i0P!UwfcYxBTb>ttOwVWM`GN{6@V=!M(-Y~2Hwm@

BSR3RxVWI%yuBd& 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 Date: Fri, 20 Dec 2024 14:05:37 -0500 Subject: [PATCH 15/20] Enhance basics.md Signed-off-by: Jim Zhang --- doc-site/docs/concepts/basics.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/doc-site/docs/concepts/basics.md b/doc-site/docs/concepts/basics.md index 49ffb7e..2760f2f 100644 --- a/doc-site/docs/concepts/basics.md +++ b/doc-site/docs/concepts/basics.md @@ -2,13 +2,32 @@ Zeto is built on the following fundamental concepts. -## Transaction model +## Onchain state model: UTXO -The UTXO model is adopted instead of the account model, for better support of parallel processing. Due to the necessity of maintaining private states offchain in order to achieve privacy, the client must continuously keep their private states in sync with the smart contract. Using an account model makes it more difficult to achieve this because incoming transfers from other parties would invalidate an account's state, making the account owner unable to spend from its account unless the private state has been sync'ed again. Solutions to this issue, often referred to as front-running, typically involve a spending window with a pending queue, which result in limited parallel processing of transactions from the same spending account. With a UTXO model, each state is independent of the others, so parallel processing is better achieved. +The smart contract for a token economy must maintain states onchain. There are two ways to model states: account vs. UTXO. + +- The account model is very popular in the existing token standards such as ERC20/721/1155 etc. Each account is an entry in a map that the smart contract maintains, with the value being the account's state such as current balance, or list of assets. A transaction updates the states of one or more accounts. +- The UTXO model works very differently, by creating states that are independent to each other. Each UTXO state is in one of two modes: unspent or spent. A transaction consumes unspent states, at which point they become spent, and produces new (unspent) states. Each UTXO state specifies the spending rules that must be satisfied when a transaction attempts to spend it. + +### UTXO for better parallel processing + +The UTXO model is adopted for Zeto instead of the account model, for better support of parallel processing. Due to the necessity of maintaining private states offchain in order to achieve privacy, the client must continuously keep their private states in sync with the smart contract. Using an account model makes it more difficult to achieve this because incoming transfers from other parties would invalidate an account's state, making the account owner unable to spend from its account unless the private state has been sync'ed again. Solutions to this issue, often referred to as front-running, typically involve a spending window with a pending queue. One example of this is [Zether](https://eprint.iacr.org/2019/191), which describes an `epoch` construct with pending transaction queues to address the front-running problem. Using epochs results in limited parallel processing of transactions from the same spending account. + +With a UTXO model, on the other hand, since each state is independent of the others, spending multiple UTXOs at the same time, even if they call come from the same owner, can be easily achieved. + +### UTXO for better anonymity + +With an account model, given that the states are mapped to the owning accounts in the onchain storage, there is an inherent challenge to anonymity, where checking which account was updated by a transaction would reveal the counterparties of a transaction. This could be mitigated by using anonymity sets, where more accounts besides the real sender and receiver of a transaction are updated with an encrypted zero value. However this increases the gas cost of transactions. + +With the UTXO model, since each UTXO state describes its own ownership, in a masked form (`hash(value, owner public key, salt)`), there is no revelation of the owning account when a UTXO is spent or produced. Furthermore, the entitlement to spend the private UTXO token is demonstrated by the ZK proof, rather than the transaction signer (aka `msg.sender`). This allows Zeto transactions to be signed by any accounts. Zeto clients are encouraged to use one-time signing keys to submit transactions, such as those from an [HD wallet](https://en.bitcoin.it/wiki/BIP_0032). ## Commitments -Each UTXO is tracked by the smart contract as a hash, or commitment, of the following components: value, salt and owner public key +Each UTXO is tracked by the smart contract as a hash of the following components: value (for fungible Zeto) or token Id (for non-fungible Zeto), owner public key and salt. These are called commitments. They serve several important purposes: + +- Representing the existence of a Zeto token. A Zeto token's value is recognized only if it's commitment is known to the smart contract that maintains the token economy. +- Hiding the secret information about a Zeto token. The value or token Id and the ownership information are hidden behind the secure hash string, which can not be reverse-engineered back to the secerts. +- Acting as the public inputs for verifying ZK proofs. All Zeto transactions consume some existing UTXOs and produce some new UTXOs. For the smart contract to be convinced that a transaction is valid, a ZK proof must be provided that demonstrates a transaction proposal conforming to the policies of the specific token implementation. The commitment hashes are critical public inputs in almost all such ZK proof verifications. ## Finality From 6bfb7ee45b56d2540d9884a17781c766fa1205d4 Mon Sep 17 00:00:00 2001 From: jimthematrix Date: Sun, 22 Dec 2024 23:48:51 -0500 Subject: [PATCH 16/20] Update README.md Signed-off-by: jimthematrix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c78029c..6a9d0ed 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This project hosts the multiple patterns to implement privacy preserving tokens on EVM. -Refer to the [Zeto documentation](https://hyperledger-labs.github.io/zeto) for details. +Refer to the [Zeto documentation](https://hyperledger-labs.github.io/zeto/head) for details. # Sub-projects From f7ce3fa0e4c452d0501e3e92715b024b6af97cae Mon Sep 17 00:00:00 2001 From: Chengxuan Xing Date: Tue, 24 Dec 2024 08:05:37 +0000 Subject: [PATCH 17/20] set default to latest tag Signed-off-by: Chengxuan Xing --- .github/workflows/docs.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 3b722e7..a7f5bfb 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -5,17 +5,17 @@ on: branches: - main paths: - - 'doc-site/docs/**' + - "doc-site/docs/**" pull_request: paths: - - 'doc-site/docs/**' + - "doc-site/docs/**" release: types: [released] jobs: build: runs-on: ubuntu-latest env: - LATEST_TAG: '' + LATEST_TAG: "" permissions: contents: write steps: @@ -48,7 +48,9 @@ jobs: - name: Update doc site for latest release if: github.event.action == 'released' && github.ref_name == env.LATEST_TAG working-directory: doc-site - run: mike deploy ${{ github.event.release.tag_name }} latest -u --push + run: | + mike deploy ${{ github.event.release.tag_name }} latest -u --push + mike set-default latest - name: Update doc site for `main` branch if: ${{ github.event_name == 'push' }} From 2edc25a0b549ad66ee65cd7bc988c70ae6ac44d5 Mon Sep 17 00:00:00 2001 From: Chengxuan Xing Date: Tue, 24 Dec 2024 08:10:18 +0000 Subject: [PATCH 18/20] update trigger Signed-off-by: Chengxuan Xing --- .github/workflows/docs.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index a7f5bfb..86da382 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -6,9 +6,11 @@ on: - main paths: - "doc-site/docs/**" + - ".github/workflows/docs.yaml" pull_request: paths: - "doc-site/docs/**" + - ".github/workflows/docs.yaml" release: types: [released] jobs: From dc7cf519aa809e434a1ebd5da924143491e3388f Mon Sep 17 00:00:00 2001 From: Chengxuan Xing Date: Tue, 24 Dec 2024 08:16:51 +0000 Subject: [PATCH 19/20] update config and github action Signed-off-by: Chengxuan Xing --- .github/workflows/docs.yaml | 2 +- doc-site/mkdocs.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 86da382..49b9e06 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -52,7 +52,7 @@ jobs: working-directory: doc-site run: | mike deploy ${{ github.event.release.tag_name }} latest -u --push - mike set-default latest + mike set-default --push latest - name: Update doc site for `main` branch if: ${{ github.event_name == 'push' }} diff --git a/doc-site/mkdocs.yml b/doc-site/mkdocs.yml index 61e7418..31474ed 100644 --- a/doc-site/mkdocs.yml +++ b/doc-site/mkdocs.yml @@ -87,6 +87,7 @@ extra: property: !ENV GOOGLE_ANALYTICS_KEY version: provider: mike + alias: true generator: false exclude_docs: | _includes/ From 2cd6ebc77270c64a9dc4e18c1fac5dd46689684e Mon Sep 17 00:00:00 2001 From: Alexander Herranz Date: Fri, 27 Dec 2024 12:46:29 +0100 Subject: [PATCH 20/20] Update ".ts file extension" in README.md Signed-off-by: Alexander Herranz --- solidity/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solidity/README.md b/solidity/README.md index 7b23d7b..c4ef0a0 100644 --- a/solidity/README.md +++ b/solidity/README.md @@ -14,14 +14,14 @@ Zeto token contracts are all upgradeable contracts. They can be deployed with on ```console export ZETO_NAME=Zeto_AnonEncNullifier -npx hardhat run scripts/deploy_upgradeable.js +npx hardhat run scripts/deploy_upgradeable.ts ``` - [deploy_cloneable](/solidity/scripts/deploy_cloneable.ts): Deploys the target contract, designated by the `ZETO_NAME` environment variable, as a [cloneable contract](https://blog.openzeppelin.com/workshop-recap-cheap-contract-deployment-through-clones). ```console export ZETO_NAME=Zeto_AnonEncNullifier -npx hardhat run scripts/deploy_cloneable.js +npx hardhat run scripts/deploy_cloneable.ts ``` # Run The Hardhat Tests

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 z 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

{e$)JjN%Yx>eRHSd{csU6 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